CQkJCQkJCS0qLSB0ZXh0IC0qLQpHTlUgU2VydmljZSBEaXJlY3RvcnkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGlzIGlzIGEgbGlzdCBvZiBwZW9wbGUgd2hvIGhhdmUgYXNrZWQgdG8gYmUgbGlzdGVkIGFzIG9mZmVyaW5nCnN1cHBvcnQgc2VydmljZXMgZm9yIEdOVSBzb2Z0d2FyZSwgaW5jbHVkaW5nIEdOVSBFbWFjcywgZm9yIGEgZmVlCm9yIGluIHNvbWUgY2FzZXMgYXQgbm8gY2hhcmdlLgoKVGhlIGluZm9ybWF0aW9uIGNvbWVzIGZyb20gdGhlIHBlb3BsZSB3aG8gYXNrZWQgdG8gYmUgbGlzdGVkOwp3ZSBkbyBub3QgaW5jbHVkZSBhbnkgaW5mb3JtYXRpb24gd2Uga25vdyB0byBiZSBmYWxzZSwgYnV0IHdlCmNhbm5vdCBjaGVjayBvdXQgYW55IG9mIHRoZSBpbmZvcm1hdGlvbjsgd2UgYXJlIHRyYW5zbWl0dGluZyBpdCB0bwp5b3UgYXMgaXQgd2FzIGdpdmVuIHRvIHVzIGFuZCBkbyBub3QgcHJvbWlzZSBpdCBpcyBjb3JyZWN0LgpBbHNvLCB0aGlzIGlzIG5vdCBhbiBlbmRvcnNlbWVudCBvZiB0aGUgcGVvcGxlIGxpc3RlZCBoZXJlLgpXZSBoYXZlIG5vIG9waW5pb25zIGFuZCB1c3VhbGx5IG5vIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhYmlsaXRpZXMgb2YKYW55IHNwZWNpZmljIHBlcnNvbi4gIFdlIHByb3ZpZGUgdGhpcyBsaXN0IHRvIGVuYWJsZSB5b3UgdG8gY29udGFjdApzZXJ2aWNlIHByb3ZpZGVycyBhbmQgZGVjaWRlIGZvciB5b3Vyc2VsZiB3aGV0aGVyIHRvIGhpcmUgb25lLgoKQmVmb3JlIEZTRiB3aWxsIGxpc3QgeW91ciBuYW1lIGluIHRoZSBHTlUgU2VydmljZSBEaXJlY3RvcnksIHdlIGFzawp0aGF0IHlvdSBhZ3JlZSBpbmZvcm1hbGx5IHRvIHRoZSBmb2xsb3dpbmcgdGVybXM6CgoxLiBZb3Ugd2lsbCBub3QgcmVzdHJpY3QgKGV4Y2VwdCBieSBjb3B5bGVmdCkgdGhlIHVzZSBvciBkaXN0cmlidXRpb24Kb2YgYW55IHNvZnR3YXJlLCBkb2N1bWVudGF0aW9uLCBvciBvdGhlciBpbmZvcm1hdGlvbiB5b3Ugc3VwcGx5IGFueW9uZQppbiB0aGUgY291cnNlIG9mIG1vZGlmeWluZywgZXh0ZW5kaW5nLCBvciBzdXBwb3J0aW5nIEdOVSBzb2Z0d2FyZS4KVGhpcyBpbmNsdWRlcyBhbnkgaW5mb3JtYXRpb24gc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGFtZWxpb3JhdGUgdGhlCnVzZSBvZiBHTlUgc29mdHdhcmUuCgoyLiBZb3Ugd2lsbCBub3QgdGFrZSBhZHZhbnRhZ2Ugb2YgY29udGFjdCBtYWRlIHRocm91Z2ggdGhlIFNlcnZpY2UKRGlyZWN0b3J5IHRvIGFkdmVydGlzZSBhbiB1bnJlbGF0ZWQgYnVzaW5lc3MgKGUuZy4sIHNhbGVzIG9mCm5vbi1HTlUtcmVsYXRlZCBwcm9wcmlldGFyeSBpbmZvcm1hdGlvbikuICBZb3UgbWF5IHNwb250YW5lb3VzbHkKbWVudGlvbiB5b3VyIGF2YWlsYWJpbGl0eSBmb3IgZ2VuZXJhbCBjb25zdWx0aW5nLCBidXQgeW91IHNob3VsZCBub3QKcHJvbW90ZSBhIHNwZWNpZmljIHVucmVsYXRlZCBidXNpbmVzcyB1bmxlc3MgdGhlIGNsaWVudCBhc2tzLgoKUGxlYXNlIGluY2x1ZGUgc29tZSBpbmRpY2F0aW9uIG9mIHlvdXIgcmF0ZXMsIGJlY2F1c2Ugb3RoZXJ3aXNlIHVzZXJzCmhhdmUgbm90aGluZyB0byBnbyBieS4JUGxlYXNlIHB1dCBlYWNoIGUtbWFpbCBhZGRyZXNzIGluc2lkZSAiPD4iLgpQbGVhc2UgcHV0IG5vdGhpbmcgZWxzZSBpbnNpZGUgIjw+Ii4gIFRoYW5rcyEKCkZvciBhIGN1cnJlbnQgY29weSBvZiB0aGlzIGRpcmVjdG9yeSwgb3IgdG8gaGF2ZSB5b3Vyc2VsZiBsaXN0ZWQsIGFzazoKCWdudUBwcmVwLmFpLm1pdC5lZHUKCioqIFBsZWFzZSBrZWVwIHRoZSBlbnRyaWVzIGluIHRoaXMgZmlsZSBhbHBoYWJldGljYWwgKioKHwpBbHRyYXNvZnQJPGluZm9AYWx0cmFzb2Z0LmNvbT4KNDg4MCBTdGV2ZW5zIENyZWVrIEJsdmQuLCBTdWl0ZSAyMDUKU2FuIEpvc2UsIENBICA5NTEyOS0xMDM0CisxIDQwOCAyNDMgMzMwMApodHRwOi8vd3d3LmFsdHJhc29mdC5jb20KCkFsdHJhc29mdCBwcm92aWRlcyBjb3Jwb3JhdGUtcXVhbGl0eSBzdXBwb3J0LCBkZXZlbG9wbWVudCBhbmQgdXNlcgpkb2N1bWVudGF0aW9uIGZvciBHTlUgRW1hY3MsIFhFbWFjcyBhbmQgSW5mb0RvY2suICAoSW5mb0RvY2sgaXMgYSB0dXJua2V5CmluZm9ybWF0aW9uIG1hbmFnZW1lbnQgYW5kIHNvZnR3YXJlIGRldmVsb3BtZW50IHRvb2xzZXQgYnVpbHQgYXRvcCBlbWFjcywKd3JpdHRlbiBieSBvbmUgb2Ygb3VyIGFzc29jaWF0ZXMuKSAgRW1hY3MgZGlzdHJpYnV0aW9ucyBmb3IgYSB2YXJpZXR5IG9mCnBsYXRmb3JtcyBhcmUgYWxzbyBhdmFpbGFibGUsIGFzIGlzIHN1cHBvcnQgZm9yIG90aGVyIGVtYWNzIHZhcmlhbnRzLCBzdWNoIGFzCnRob3NlIG9mdGVuIGZvdW5kIG9uIFBDcy4KCk91ciB1bmlxdWUgZm9jdXMgb24gZW1hY3MtcmVsYXRlZCB3b3JrIGFsbG93cyB1cyB0byBhdHRyYWN0IGV4cGVydCB0YWxlbnQgaW4KdGhpcyBhcmVhIHRvIGtlZXAgeW91IG9uIHRoZSBsZWFkaW5nIGVkZ2Ugb2YgcHJvZHVjdGl2aXR5LCBlc3BlY2lhbGx5IGlmIHlvdQpkbyBzb2Z0d2FyZSBkZXZlbG9wbWVudCB3b3JrLiAgV2UgZG8gdGhlIHBvcnRpbmcsIHBhdGNoaW5nLCBjb2RpbmcsCmludGVncmF0aW5nLCBkZWJ1Z2dpbmcsIGRvY3VtZW50aW5nIGFuZCB0ZXN0aW5nIHNvIHRoYXQgeW91ciBwZW9wbGUgc3BlbmQKbXVjaCBtb3JlIHByb2R1Y3RpdmUgdGltZSBvbiB0aGVpciBtYWlubGluZSB0YXNrcy4KClN0YW5kYXJkIHN1cHBvcnQgcGFja2FnZXMgaW5jbHVkZSBoZWxwIG9uIGFsbCBhc3BlY3RzIG9mIHRoZSBwYWNrYWdlcwpzdXBwb3J0ZWQsIGluY2x1ZGluZyBhbGwgdG9vbHMgc2hpcHBlZCBhcyBhIHN0YW5kYXJkIHBhcnQgb2YgdGhlIG9yaWdpbmFsCnBhY2thZ2UgZGlzdHJpYnV0aW9uLiAgSW4gZ2VuZXJhbCwgd2Ugd2FudCB0byBnaXZlIHlvdSBhbiB1bmJlbGlldmFibHkgc3Ryb25nCmxldmVsIG9mIHN1cHBvcnQsIHNvIHdoZXJlIHdlIGNhbiwgd2Ugd2lsbCBhbHNvIGFuc3dlciBxdWVzdGlvbnMgY29uY2VybmluZwphbnkgYWRkLW9uIExpc3AgY29kZSB0aGF0IGlzIHVzZWQgYXQgeW91ciBzaXRlLiAgU2V0dXAgYW5kIGN1c3RvbWl6YXRpb24KaGVscCwgYnVnIGZpeGVzLCBhbmQgYW5ub3VuY2VtZW50cyBvZiBuZXcgcmVsZWFzZXMgYXJlLCBvZiBjb3Vyc2UsIGluY2x1ZGVkLgoKU3VwcG9ydCByYXRlcyBzdGFydCBhdCAkMSw1MDAgVVNELCBmb3Igc2luZ2xlIHVzZXIgc3VwcG9ydCBmb3Igb25lIHllYXIuCkRpc2NvdW50cyBhcmUgYXZhaWxhYmxlIGZvciBncm91cCBjb250cmFjdHMuICBXZSBhbHNvIG9mZmVyIEdvbGRlbiBTdXBwb3J0CmNvbnRyYWN0cyBmb3IgdGhvc2Ugd2hvIG5lZWQgdGhlIGFic29sdXRlIGJlc3QgaW4gbWlzc2lvbi1jcml0aWNhbCBzdXBwb3J0Owpjb250YWN0IHVzIGZvciBkZXRhaWxzLiAgSG91cmx5IGRldmVsb3BtZW50IHJhdGVzIGFuZCBmaXhlZCBiaWQgd29yayBhcmUKYXZhaWxhYmxlLgoKVXBkYXRlZDogMTk5Ny0wNS0xMgofCk1hZ251cyBBbHZlc3RhZCA8bWFnbnVzQGl0YW5hbHlzZS5ubz4KCkdOVSBFbWFjcywgR0NDLCB0aGUgVW5peCB0b29scywgTGludXgsIEpvbHQuCgpSYXRlczogRnJlZSwgb3IgZnJvbSAkNTAvaG91ci4KClVwZGF0ZWQ6ICAxOTk3LTA1LTA5Ch8KQU8gVXJiYW5Tb2Z0IDxpbmZvQHVzb2Z0LnNwYi5zdT4KU3QuIFBldGVyc2J1cmcgU3RhdGUgVW5pdmVyc2l0eSBTY2llbmNlIENhbXB1cwpTdC4gUGV0ZXJzYnVyZywgUnVzc2lhCnd3dy51c29mdC5zcGIucnUKCkFPIFVyYmFuU29mdCBwYWNrYWdlcywgbWFya2V0cyBhbmQgc3VwcG9ydHMKaW5kdXN0cnkgc3RhbmRhcmQgZnJlZSBzb2Z0d2FyZSBwcm9kdWN0cywKaW5jbHVkaW5nIHRoZSBMaW51eCBvcGVyYXRpbmcgc3lzdGVtIGFuZApUZVggZG9jdW1lbnQgY29tcGlsZXIuClRoZSBjb21wYW55IGFsc28gcHJvdmlkZXMgcHJvZ3JhbW1pbmcgc2VydmljZXMgCmJhc2VkIG9uIFRlWCwgVGssIFB5dGhvbiwgSFRNTCwgSmF2YSwgUGVybCBhbmQKSW50cmFuZXQuIAoKUmF0ZXMgYXBwcm94aW1hdGVseSAxNSBVU0QgcGVyIGhvdXIuCgpVcGRhdGVkOiAxOTk3LTA1LTI1Ch8KSm9zZXBoIEFyY2VuZWF1eCAgICAgICAgCTxqbGFAYWkubWl0LmVkdT4KUE8gQm94IDQ2MDYzMwkJCWh0dHA6Ly93d3cuc2Ftc2FyYS5jb20vfmpsYQpTYW4gRnJhbmNpc2NvLCBDQSAgOTQxNDYtMDYzMworMSA0MTUgNjQ4IDk5ODgKKzEgNDE1IDI4NSA5MDg4CgpSZWNlbnRseSBsZWQgdGhlIHByb2plY3QgbWFraW5nIFdlbGxzIEZhcmdvIEJhbmsgdGhlIGZpcnN0IHRvIHByb3ZpZGUKc2VjdXJlIGN1c3RvbWVyIGFjY291bnQgYWNjZXNzIG92ZXIgdGhlIEludGVybmV0LgoKRm9ybWVyIEZTRiBzdGFmZm1lbWJlci4gIFBlcmZvcm1lZCBYMTEgaW1wbGVtZW50YXRpb24gb2YgRW1hY3MgdmVyc2lvbgoxOSwgZGVzaWduZWQgYW5kIGltcGxlbWVudGVkIFdZU0lXWUcgRW1hY3MuICBJbnN0YWxsZWQgYW5kCmFkbWluaXN0ZXJlZCBGU0YgbmV0d29yay4gIE1haW50YWluZXIgb2YgR05VIGluZGVudC4gIE92ZXIgMTUgeWVhcnMKZXhwZXJpZW5jZSB3aXRoIFVuaXggYW5kIG90aGVyIHN5c3RlbXMsIGZyb20gd3JpdGluZyBST00gbW9uaXRvcnMgdG8KVUkgZGVzaWduIGFuZCBzeXN0ZW0gYWRtaW5pc3RyYXRpb24uCgpJIHByb3ZpZGUgaW5zdGFsbGF0aW9uLCBwb3J0aW5nLCBkZWJ1Z2dpbmcgYW5kIGN1c3RvbWl6YXRpb24gb3IKZGV2ZWxvcG1lbnQgb2YgR05VIGFuZCBvdGhlciBVbml4IHNvZnR3YXJlLiAgSSBhbHNvIGRlc2lnbiBhbmQKaW1wbGVtZW50IGZyZWUgc29mdHdhcmUgcHJvamVjdHMgYW5kIGNvbnN1bHQgb24gc29mdHdhcmUgZW5naW5lZXJpbmcKYW5kIHN5c3RlbXMgZGVzaWduLiAgSGFuZGhvbGRpbmcgYW5kICB0ZWFjaGluZyBzZXJ2aWNlcyBhcmUgYWxzbwphdmFpbGFibGUgYXMgd2VsbCBhcyB0aGluZ3MgbGlrZSBMQU4gYW5kIGNvbXB1dGUtLWluZnJhc3RydWN0dXJlIGRlc2lnbi4KClRpbWUgYW5kIG1hdGVyaWFsIHJhdGVzIGFyb3VuZCAkMTUwIFVTRCBwZXIgaG91ciwgZGVwZW5kaW5nIHVwb24gdGhlCnBhcnRpY3VsYXIgam9iLiAgSSBhbSBhbHNvIHZlcnkgaW50ZXJlc3RlZCBpbiBmaXhlZC1iaWQgam9icy4gIEZvcgpzZWxlY3RlZCBub24tcHJvZml0IG9yZ2FuaXphdGlvbnMgd2l0aCB3b3J0aHkgZ29hbHMsIEkgd29yayBmb3IgZnJlZS4KClVwZGF0ZWQ6IDE5OTUtMTAtMTcKHwpHZXJkIEFzY2hlbWFubgkJPEFzY2hlbWFubkBJbmZvcm1hdGlrLlRILURhcm1zdGFkdC5kZT4KT3Nhbm5zdHIuIDQ5CkQtNjQyODUgRGFybXN0YWR0ClRlbC46ICs0OSA2MTUxIDE2IDIyNTkKaHR0cDovL3d3dy5pbmZvcm1hdGlrLnRoLWRhcm1zdGFkdC5kZS9+YXNjaGVtYW4vCgotIFN5c3RlbSBBZG1pbmlzdHJhdG9yIChVTklYKSBhdCBDUyBEZXBhcnRtZW50LCBUVSBEYXJtc3RhZHQsIEdlcm1hbnkKLSAxNyB5ZWFycyBleHBlcmllbmNlIHdpdGggQ1MsIFN5c3RlbSBhZG1pbmlzdHJhdGlvbiBvbiBkaWZmZXJlbnQgcGxhdGZvcm1zCi0gMTAgeWVhcnMgd2l0aCBVTklYL05ldHdvcmtpbmcvRnJlZVdhcmUvR05VL1gxMQotICA4IHllYXJzIG9yZ2FuaXplciBvZiBPcGVyYXRpbmcgU3lzdGVtcyBhbmQgRGlzdHJpYnV0ZWQgU3lzdGVtcyBjb3Vyc2VzCi0gTGVjdHVyZXMgb24gU3lzdGVtIGFuZCBOZXR3b3JrIEFkbWluaXN0cmF0aW9uCi0gUGxhdGZvcm1zOiBTb2xhcmlzLCBTdW5PUywgVWx0cml4LCBPU0YxLCBIUC1VWCwgTGludXgsIEZyZWVCU0QsIEFJWCwgU0NPCi0gRGlzdHJpYnV0ZWQgUGxhdGZvcm1zIGFuZCBJbmZvcm1hdGlvbiBTeXN0ZW1zIChDT1JCQSwgV1dXLCBKYXZhLCBGVFApCi0gRXhwZXJpZW5jZSB3aXRoIHBhcmFsbGVsIGVudmlyb25tZW50cyAoQ29ubmVjdGlvbiBNYWNoaW5lLCBNZWlrbywgUGFyc3l0ZWMpCi0gQ29uc3VsdGFudAoKUmF0ZXMgYXJlIGF0IDEzMCwtLSBETSAofjgwIFVTJCkgcGVyIGhvdXIgbWluaW11bSwgZGVwZW5kaW5nIG9uIHRoZSBqb2IuCkkgYW0gd2lsbGluZyB0byB0cmF2ZWwgZm9yIHN1ZmZpY2llbnRseSBsYXJnZSBqb2JzLgoKVXBkYXRlZDogMTk5Ny0wNS0wNwofCgoJCQlCYXNpcyBUZWNobm9sb2d5IENvcnAuCgkJICAgICBPbmUgS2VuZGFsbCBTcXVhcmUsIEJsZGcgMjAwCgkJCSBDYW1icmlkZ2UsIE1BIDAyMTM5CgkJCQlVLlMuQS4KCgkJCSBUZWw6ICsxLTYxNy0yNTItNTYzNgoJCQkgRmF4OiArMS02MTctMjUyLTkxNTAKCQkgICAgICBFLW1haWw6IDxpbmZvQGJhc2lzdGVjaC5jb20+CgkJICAgIFdlYjogaHR0cDovL3d3dy5iYXNpc3RlY2guY29tCgpUZWNobmljYWwgRXhwZXJ0aXNlOgogIE11bHRpbGluZ3VhbCBzb2Z0d2FyZSBkZXZlbG9wbWVudAogIEludGVybmF0aW9uYWxpemF0aW9uIGFuZCBsb2NhbGl6YXRpb24gb2Ygc29mdHdhcmUgcHJvZHVjdHMKICBJbnRlcm5hdGlvbmFsIGNoYXJhY3RlciBlbmNvZGluZ3MsIGluY2x1ZGluZyBVbmljb2RlLCBJU08tMTA2NDYsCiAgICBJU08tMjAyMiwgSVNPLTg4NTktbiwgSklTLCBLU0M1NjAxLCBCSUc1LCBHQjIzMTIKICBUcmFuc2xhdGlvbiBvZiB0ZWNobmljYWwgbWF0ZXJpYWxzIGludG8gSmFwYW5lc2UsIEtvcmVhbiwgYW5kIENoaW5lc2UKICAgIGluY2x1ZGluZyBIVE1MLCBTR01MLCBSVEYsIE1JRiwgZXRjLgoKR05VLXJlbGF0ZWQgU2VydmljZXM6CiAgQ3VzdG9tIGludGVybmF0aW9uYWxpemF0aW9uIGFuZCBsb2NhbGl6YXRpb24gb2YgR05VIHNvZnR3YXJlLCBvcgogICAgYXBwbGljYXRpb25zIGRldmVsb3BlZCB1c2luZyBHTlUgdG9vbHMgKEdDQywgRysrLCBFbWFjcyBMaXNwLCBldGMuKQogIEN1c3RvbSBtdWx0aWxpbmd1YWwgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgYmFzZWQgb24gTVVMRS4KCkdOVSBDb250cmlidXRpb25zOgogIE9yZ2FuaXplZCAxOTkyLCAxOTkzLCBhbmQgMTk5NCBmdW5kLXJhaXNpbmcgc2VtaW5hcnMgYW5kIGxlY3R1cmUKICAgIHRvdXJzIGZvciBGU0YgaW4gSmFwYW4uCiAgTmVnb3RpYXRlZCBib29rIHJveWFsdHkgYWdyZWVtZW50cyB3aXRoIEphcGFuZXNlIHB1Ymxpc2hlcnMgb24KICAgIGJlaGFsZiBvZiB0aGUgRlNGLgogIE5lZ290aWF0ZWQgaGFyZHdhcmUgY29udHJpYnV0aW9ucyBmcm9tIEphcGFuZXNlIFBDIHZlbmRvcnMgdG8KICAgIHRoZSBGU0YuCgpDb250YWN0czoKICBDYXJsIEhvZmZtYW4sIFN0ZXZlIENvaGVuLCBvciBLYXJlbiBXYXR0cwoKVXBkYXRlZDogIDE5OTctMDUtMDcKHwpMYXVyZW50IEJlcm5hcmRpbgoxNiwgcnVlIERpY2tzCkwtNjk0NCBOaWVkZXJhbnZlbgpMdXhlbWJ1cmcKPGJlcm5hcmRpbkBpbmYuZXRoei5jaD4KKzQxIDEgNjMyIDc0NjkKClN1cHBvcnQgYW5kIGluc3RhbGxhdGlvbiBvZiBhbGwgR05VIHNvZnR3YXJlLgoKRXhwZXJ0aXNlOiBDLCBDKyssIEphdmEsIE1vdGlmLCBYLCBVbml4IGFkbWluaXN0cmF0aW9uLCBuZXR3b3JrIHNlY3VyaXR5CgpSYXRlczogfjYwIFVTJCAvIGhvdXIgKEZsdXggMjAwMC4tKQoKVXBkYXRlZDogIDE5OTctMDUtMDcKHwpQYXVsIEJsYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF1bGJAdHJpb2RlLmFwYW5hLm9yZy5hdT4KU3lkbmV5LCBBdXN0cmFsaWEKCiAgICAgSSBhbSBhdmFpbGFibGUgZm9yIGdlbmVyYWwgY29uc3VsdGluZyBvbiBHTlUgc29mdHdhcmUuICBNeSBzcGVjaWZpYwphcmVhcyBvZiBpbnRlcmVzdCBhcmU6CgktIGdlbmVyYWwgQywgQysrLCBBREEgYW5kIEFQTCBwcm9ncmFtbWluZwoJLSBHbnUvdW5peCB1dGlsaXRpZXMKCS0gVHJvZmYKCS0gUmVhbCBUaW1lIFNvZnR3YXJlCgktIExpbnV4CgktIElQIENvbW1zLCBTTVRQLCBOTlRQLCBIVFRQIGFuZCBXV1cKCS0gU2ltdWxhdGlvbgoKSSBhbSBoYXBweSB0byBwcm92aWRlIGZyZWUgY29uc3VsdGluZy9zZXJ2aWNlcyBpZiB0aGUgd29yayBpcyBvZiB0aGUgb3JkZXIgb2YKYSBjb3VwbGUgb2YgaG91cnMuIElmIG1vcmUgdGltZSBpcyByZXF1aXJlZCwgSSBhbSBoYXBweSB0byBuZWdvdGlhdGUgZGVwZW5kaW5nCm9uIHRoZSBuYXR1cmUgb2YgdGhlIHdvcmssIG15IGluZGljYXRpdmUgcmF0ZSBpcyAkNDAgcGVyIGhvdXIuCgpFbnRlcmVkOiAxOTk2LTA3LTEwCh8KS2VpdGggQm9zdGljCgoJSSdtIGludGVyZXN0ZWQgaW4gc3VwcG9ydGluZy9leHRlbmRpbmcgdGhlIGV4L3ZpIGVkaXRvcnMsCgl3aGljaCBJIHdyb3RlLiAgT24tc2l0ZSBvciBieSBlbWFpbCwgcmF0ZXMgYXJlIGJhc2VkIG9uIHRoZQoJcHJvamVjdC4gIDxib3N0aWNAY3MuYmVya2VsZXkuZWR1PgoKRW50ZXJlZDogIDE5OTYtMDctMTUKHwpQaGlsaXAgQnJvd24KPHBoaWxAbWl0cmUub3JnPgooNzAzKSA4OTMtODk2NyAocHJlZmVyIGVtYWlsKQpOb3J0aGVybi1WQSwgRC5DLiBBcmVhClJhdGVzOiAkNDAvSHI7IGxlc3MgZm9yIGVkdWNhdGlvbmFsIG9yIGNoYXJpdGFibGUgb3JnYW5pemF0aW9ucwoKU3lzdGVtcyBTdXBwb3J0ZWQ6CgkgSFA5MDAwLzd4eCBydW5uaW5nIEhQL1VYIDguMDcgLSAxMC5YCgkgSUJNIFJTNjAwMCBydW5uaW5nIEFJWCAzLjIuWAoJIEFsc28gU0dJL0luZHkgYW5kIFN1bi9TcGFyY3MKClNvZnR3YXJlIFN1cHBvcnRlZDoKCSBNb3N0IGFsbCBGU0YgKEdudSkgc29mdHdhcmUKCSBlc3AuIEdDQywgRW1hY3MsIEJpbnV0aWxzLCBHUywgZXRjLi4uCgpTdGF0ZW1lbnQ6CiAgICAgICAgSSdkIGJlIG1vcmUgdGhhbiBoYXBweSB0byBhc3Npc3QgYW55b25lIGluIG15IGFyZWEgd2l0aCBhY3F1aXJpbmcsCiAgICAgICAgaW5zdGFsbGluZywgYW5kIGNvbmZpZ3VyaW5nIGFueSBGU0YgdG9vbHMvdXRpbGl0aWVzIG9uIGFueSBvZiB0aGUKICAgICAgICBhYm92ZSBzeXN0ZW1zLiAgSSdtIGFsc28gd2lsbGluZyB0byB3b3JrIHdpdGggb3RoZXIgVU5JWCBzeXN0ZW1zIG5vdAogICAgICAgIGxpc3RlZCBhYm92ZS4gSW4gYWRkaXRpb24sIEknZCBiZSBoYXBweSB0byBzaGFyZSBteSBtYW55IHllYXJzIG9mCiAgICAgICAgZXhwZXJpZW5jZSB3aXRoIGFueW9uZSBoYXZpbmcgZGlmZmljdWx0eSB1c2luZyBvciBjb25maWd1cmluZyB0aGVzZQogICAgICAgIHRvb2xzLiAgSSd2ZSBiZWVuIGluc3RhbGxpbmcgYW5kIHVzaW5nIHRoZW0gZm9yIGFib3V0IDUgeWVhcnMgbm93CiAgICAgICAgYW5kIEknbGwgc3dlYXIgYnkgdGhlaXIgcXVhbGl0eSBhbmQgdGhlIHBlb3BsZS9wcmluY2lwbGVzIHRoYXQgbWFkZQogICAgICAgIHRoZW0gYXZhaWxhYmxlLgoKCgkJCVBoaWwgQnJvd24KClVwZGF0ZWQ6ICAxOTk3LTA1LTA3Ch8KSmFtZXMgQ3JhaWcgQnVybGV5Cjk3IEFycm93aGVhZCBDaXJjbGUKQXNobGFuZCwgTUEgMDE3MjEtMTk4Nwo1MDggODgxLTYwODcsIC00NzQ1CihQbGVhc2UgY2FsbCBvbmx5IGJldHdlZW4gMDkwMC0xNzAwIEVhc3Rlcm4gdGltZSwgYW5kIG9ubHkgaWYgeW91CmFyZSBwcmVwYXJlZCB0byBoaXJlIG1lIC0tIGFzayBtZSB0byBoZWxwIHlvdSBmb3IgZnJlZSBvbmx5CnZpYSBlbWFpbCwgdG8gd2hpY2ggSSBtaWdodCBvciBtaWdodCBub3QgcmVzcG9uZC4pCkVtYWlsOiA8YnVybGV5QGdudS5haS5taXQuZWR1PiAtLXByZWZlcnJlZC0tCiAgICAgICA8YnVybGV5QGN5Z251cy5jb20+CiAgICAgICA8YnVybGV5QHdvcmxkLnN0ZC5jb20+CgpFeHBlcnRpc2U6CiAgICBDb21waWxlciBJbnRlcm5hbHMgKGF1dGhvciBvZiBHTlUgRm9ydHJhbiwgZm9yIGV4YW1wbGUpCiAgICBPcGVyYXRpbmcgU3lzdGVtcyBJbnRlcm5hbHMKICAgIFRvb2xzL1V0aWxpdGllcyBEZXZlbG9wbWVudCBhbmQgTWFpbnRlbmFuY2UKICAgIE1pY3JvY29kZSBEZXZlbG9wbWVudCBhbmQgTWFpbnRlbmFuY2UgKHByaW1hcmlseSBWTElXIG1hY2hpbmVzKQogICAgU3lzdGVtIERlc2lnbiAoY29tcHV0ZXJzLCBvcGVyYXRpbmcgc3lzdGVtcywgdG9vbHNldHMsICZjKQogICAgRGVidWdnaW5nIChvZnRlbiBhc2tlZCB0byBoZWxwIGRlYnVnIE90aGVyIFBlb3BsZSdzIENvZGUpCiAgICBEb2N1bWVudGF0aW9uIChhdXRob3JlZCBtYW55IGJvb2tzIGFuZCByYW4gYSBmZXcgZG9jIHByb2plY3RzKQogICAgRXh0ZW5zaXZlIGV4cGVyaWVuY2Ugd2l0aCBhIHZhcmlldHkgb2Ygb3BlcmF0aW5nIHN5c3RlbXMsIGhhcmR3YXJlLAoJbGFuZ3VhZ2VzLCBhbmQgc28gb24KClJhdGU6ICQxMDAvaG91ciAtLSB3aWxsaW5nIHRvIGNvbnNpZGVyIGZsYXQtZmVlIGFycmFuZ2VtZW50cwoKVXBkYXRlZDogMTk5Ny0wNS0wNwofClRob21hcyBCdXNobmVsbCwgbi9CU0cJPHRob21hc0BnbnUuYWkubWl0LmVkdT4KQmVja2V0IEhvdXNlCjY2IEhpZ2hsYW5kIEF2ZS4gTm8uIDgKU29tZXJ2aWxsZSwgTUEgIDAyMTQzCig2MTcpIDYyMy0wNjU0CgoKQWxsIEdOVSBzb2Z0d2FyZTogSW5zdGFsbGF0aW9uLCBjdXN0b21pemF0aW9uLCBhbnN3ZXJpbmcgc2ltcGxlIG9yCgkJICBjb21wbGV4IHF1ZXN0aW9ucywgYnVnIGZpeGluZywgZXh0ZW5zaW9uLgoKRXhwZXJpZW5jZTogIEkgaGF2ZSBkb25lIFVuaXggYW5kIEdOVSBwcm9ncmFtbWluZyBmb3Igc2V2ZXJhbCB5ZWFycywKCSAgICAgSSBhbSB0aGUgcHJpbWFyeSBhdXRob3Igb2YgdGhlIEh1cmQgKHdoaWNoIHByb3ZpZGVzIG1vc3QKCSAgICAga2VybmVsIHJlbGF0ZWQgZmFjaWxpdGllcyBmb3IgdGhlIEdOVSBPUykuCgpJIGFtIGVhc2lseSBhdmFpbGFibGUgaW4gdGhlIENhbWJyaWRnZS9Cb3N0b24gYXJlYTsgd29yayB2aWEgZW1haWwuCkkgYW0gd2lsbGluZyB0byB0cmF2ZWwgZm9yIHN1ZmZpY2llbnRseSBsYXJnZSBqb2JzLgoKUmF0ZXM6ICQxMDAvaHIsIG5lZ290aWFibGUsIGxlc3MgZm9yIG5vbi1wcm9maXQgb3JnYW5pemFpb25zLgoKVXBkYXRlZDogMTk5Ny0wNS0wNwofCiAgIEMyVgkJCQlNaWNoZWwgRGVsdmFsIDxtZmRAY2N2LmZyPgogICA4MiBiZCBIYXVzc21hbm4JCUplYW4tQWxhaW4gTGUgQm9yZ25lIDxqYWxiQGNjdi5mcj4KICAgNzUwMDggUGFyaXMKICAgRnJhbmNlCiAgIFRlbCAoMzMgMSkgNDAuMDguMDcuMDcKICAgRmF4ICgzMyAxKSA0My44Ny4zNS45OQogICBDb21wdXNlcnZlIDEwMDQxMywxMDEyCiAgIGh0dHA6Ly9jMnYuY29tCgogICBXZSBvZmZlciBzb3VyY2Ugb3Igc291cmNlK2JpbmFyeSBkaXN0cmlidXRpb24sIGluc3RhbGxhdGlvbiwgdHJhaW5pbmcsCiAgIG1haW50ZW5hbmNlLCB0ZWNobmljYWwgc3VwcG9ydCwgY29uc3VsdGluZywgc3BlY2lmaWMgZGV2ZWxvcG1lbnQgYW5kCiAgIGZvbGxvd3VwIG9uIHRoZSBHTlUgc29mdHdhcmUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQ6IEVtYWNzLCBnY2MvZysrLAogICBiaW51dGlscywgZ2FzLCBnZGIuCgogICBFeHBlcmllbmNlOiBhZGFwdGVkIGdjYywgZ2FzIGFuZCBiaW51dGlscyB0byB3b3JrIGFzIGNyb3NzLWRldmVsb3BtZW50CiAgIHRvb2xzIGZvciB0aGUgVGhvbXNvbiBEOTUwIERTUCBjaGlwOiBHQ0MgcGFyc2VyIGFuZCB0eXBpbmcgc3lzdGVtCiAgIGhhdmUgYmVlbiBhdWdtZW50ZWQgdG8gYWxsb3cgdGhlIG1hbmlwdWxhdGlvbiBvZiB2YXJpYWJsZXMgbG9jYXRlZCBpbgogICBzZXBhcmF0ZWQgbWVtb3J5IHNwYWNlcy4gUG9ydGluZyBvbiBuZXcgcGxhdGZvcm1zLCBhbmQgcHJvZmVzc2lvbmFsbHkKICAgZGV2ZWxvcGluZyBzb2Z0d2FyZSB3aXRoIHRoZSBHTlUgdG9vbHMgaW4gdGhlIFVuaXgvWDExIGVudmlyb25tZW50CiAgIHNpbmNlIHRoZXkgd2VyZSBmaXJzdCBhdmFpbGFibGUuCgogICBSYXRlczogZnJvbSAyMDAwIEZGL2RheSB0byAxNTAgMDAwIEZGL3llYXIsIDQwJSBkaXNjb3VudCBmb3IKICAgZWR1Y2F0aW9uYWwgaW5zdGl0dXRpb25zLCBhZGQgdGF4ZXMgYW5kIGV4cGVuc2VzLiAgQXNrIGZvciBsaXN0LgoKVXBkYXRlZDogMTk5Ny0wNS0wOQofCkJydWNlIERhd3NvbiAgICAtICAgIDxqYmRAY29kZW1ldGEuY29tPgpDb2RlTWV0YSwgSW5jLgpFcHBpbmcsIE5IICBVU0EKODAwLTQ2OC04NzUwCgpTcGVjaWFsaXppbmcgaW4gR05VIHRvb2xzIHN1Y2ggYXMgZ3VpbGUsIENWUywgZ25hdHMsIGJhc2gsIGdhd2ssIGZpbGV1dGlscy4uLgoKU2VydmljZXM6CiAKIG8gODAwIHBob25lIHN1cHBvcnQuCgogbyBNb2RpZmljYXRpb24gYW5kIGRldmVsb3BtZW50LgoKIG8gVHJhaW5pbmcuCgpSYXRlOiAkNzUvaG91ciBvciBwZXIgcXVvdGUuCgpodHRwOi8vd3d3LmNvZGVtZXRhLmNvbQoKVXBkYXRlZDogMTk5Ny0wNS0wOQofCktldmluIENvc2dyb3ZlICAJPGtldmluY0BkT2luay5DT00+CgoKCUkgY2FuIGhlbHAgZm9sa3Mgd2l0aCBwb3J0aW5nICYgaW5zdGFsbGF0aW9uIG9mIG1hbnkgR05VCglhbmQgWCBwYWNrYWdlcyBvbiBhIHZhcmlldHkgb2YgVW5peCBwbGF0Zm9ybXMuCgoKCU15IHJhdGVzIGRlcGVuZCBvbiB0aGUgc2NvcGUgb2YgZWFjaCBwcm9qZWN0IGJ1dCByYW5nZQoJZnJvbSAkMzUgdG8gJDkwIHBlciBob3VyLgoKVXBkYXRlZDogIDE5OTctMDUtMDcKHwpDb3V2YXJlcyBDb25zdWx0aW5nCjIxMSBXLiBHaWxtYW4gU3QuLCBTdWl0ZSAzVwpNYWRpc29uLCBXSSA1MzcwMyBVU0EKUGhvbmU6ICg2MDgpIDI1Ni02MjAxCkVNYWlsOiA8Y291dmFyZXNAZmFtaWx5LmhhbXBzaGlyZS5lZHU+CkNvbnRhY3Q6IFBldGVyIEYuIENvdXZhcmVzCgpUeXBlIG9mIHN1cHBvcnQ6IFdlIG9mZmVyIHBob25lL2VtYWlsIHN1cHBvcnQsIGluc3RhbGxhdGlvbiwgb25nb2luZwogICAgIGFkbWluaXN0cmF0aW9uLCB0cmFpbmluZywgcHJvZ3JhbW1pbmcsIGFuZCBzcGVjaWFsaXplZCBjb25zdWx0aW5nIGZvcgogICAgIGZyZWUgc29mdHdhcmUgYW5kIG90aGVyIFVOSVggc3lzdGVtcy4KClNhbXBsZSBwcmljZXM6IFVTRDc1L2hvdXIgY29tbWVyY2lhbCwgNDAvaG91ciBub25wcm9maXQsIHNsaWRpbmcgc2NhbGUKZm9yIGluZGl2aWR1YWxzLgoKVXBkYXRlZDogIDE5OTYtMTItMDQKHwpTdHVhcnQgQ3JhY3JhZnQJCTxjcmFjcmFmdEBhaS5taXQuZWR1PgoyNTY4MiBDcmVzdGEgTG9tYQpMYWd1bmEgTmlndWVsLCBDQSwgOTI2NzcsIFVTQQpHTlVsaW5lOiA3MTQtMzA4LTc5MDAKV2Vic2l0ZTogaHR0cDovL3d3dy5lYXJ0aGxpbmsubmV0L35jcmFjcmFmdC9pbmRleC5odG1sClJhdGU6ICQ5MC9ob3VyCkNvbnN1bHRhdGlvbiB0b3BpY3M6CkVudGlyZSBHTlUgc3VpdGUgLSBwb3J0aW5nLCBjb21waWxhdGlvbiwgaW5zdGFsbGF0aW9uLAp1c2VyLXRyYWluaW5nLCBhZG1pbmlzdHJhdG9yLXRyYWluaW5nCk1ldGhvZDogdGVsZXBob25lIGxpbmUgc3VwcG9ydCwgY2FsbC1pbiB2aWEgbW9kZW0gdG8geW91ciBzaXRlLAp3b3JrIG92ZXIgdGhlIEludGVybmV0LCBvciBpbi1wZXJzb24gdmlzaXQuCiAKRXhwZXJpZW5jZTogc3VwcG9ydGluZyBHTlUgc2luY2UgdGhlIG1pZC0xOTgwJ3MsIGNvb3JkaW5hdG9yCm9mIEdOVSBDaGVzcyAob3JpZ2luYWwgYXV0aG9yKSwgR05VIFNob2dpLCBHTlUgR28uIFBvcnRlZCBHTlUgRW1hY3MKdG8gU29sYXJpcyAoU3lzdGVtIFYgUmVsZWFzZSA0KS4gRXhwZXJ0aXNlIGluIEMsIEVtYWNzIExpc3AsIFBlcmwsCkV4cGVjdCwgT3JhY2xlLCBJbmZvcm1peCwgU3VuT1MsIFNvbGFyaXMsIE5JUywgTkZTLgoKQ3VzdG9taXplZCBwcm9ncmFtbWluZyBhbHNvIGF2YWlsYWJsZS4KClVwZGF0ZWQ6IDE5OTctMDUtMDcKHwpOb2VsIENyYWdnICAgICAgICAgICAgICAgICAgICAgIDxub2VsQGN5Y2xpYy5jb20+CjYyNDQgQWJlcmRlZW4gQXYKR29sZXRhIENBIDkzMTE3CjgwNS04OTktNDY5NQoKSSdsbCBkbyBpbnN0YWxsYXRpb24sIGRlYnVnZ2luZywgYW5kIGV4dGVuc2lvbiBvZiBHTlUgdG9vbHMgb24gYQpjb250cmFjdCBiYXNpcy4gIENWUyBhbmQgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50IGFyZSBteSBjdXJyZW50CnNwZWNpYWx0aWVzLiAgUmF0ZTogJDc1L2hvdXIgb3IgcGVyLXByb2plY3QgbmVnb3RpYXRlZCBmZWUuCgpVcGRhdGVkOiAxOTk3LTA1LTA3Ch8KQ3lnbnVzIFNvbHV0aW9ucwo8aW5mb0BjeWdudXMuY29tPgoxMzI1IENoZXNhcGVha2UgVGVycmFjZQpTdW5ueXZhbGUsIENBIDk0MDg5IFVTQQorMSA0MDggNTQyIDk2MDAgdm9pY2UKKzEgNDA4IDU0MiA5Njk5IGZheApXZWIgU2l0ZTogaHR0cDovL3d3dy5jeWdudXMuY29tCgoKQ3lnbnVzIFNvbHV0aW9ucyBwcm92aWRlcyBzdXBwb3J0ZWQgYW5kIG1haW50YWluZWQgdmVyc2lvbnMgb2YgZ2NjLCBnKyssIGdkYgp3aXRoIEdVSSwgR05VIGxpbmtlciBhbmQgR05VIG1hY3JvIGFzc2VtYmxlci4gIEluIGFkZGl0aW9uLCBDeWdudXMgcHJvdmlkZXMKdGhlc2UgR05VIHNvZnR3YXJlIGRldmVsb3BtZW50IHRvb2xzIGZvciB3ZWxsIG92ZXIgMTAwIGhvc3QtdGFyZ2V0CmNvbmZpZ3VyYXRpb25zLiAgU3VwcG9ydCBpbmNsdWRlcyBidWcgZml4ZXMgYW5kIHNlbWktYW5udWFsIHJlbGVhc2VzIG9mIHRoZQp0b29sc2V0LiAgRWFjaCByZWxlYXNlIGlzIHJlZ3Jlc3Npb24gdGVzdGVkIGFuZCBpbmNsdWRlcyBzdWJzdGFudGlhbAppbXByb3ZlbWVudHMgYW5kIGFkZGl0aW9ucyB0byB0aGUgY3VycmVudCByZWxlYXNlLiAgU3VwcG9ydCBpcyBhdmFpbGFibGUgZm9yCmdyb3VwcyBvZiA1IG9yIDI1IG9uIGEgd2lkZSByYW5nZSBvZiBzdGFuZGFyZCwgc3BlY2lhbCBhbmQgdmludGFnZQp0b29sY2hhaW5zIGZvciBuYXRpdmUgYW5kIGVtYmVkZGVkIGFwcGxpY2F0aW9ucy4gIE5ldyB0YXJnZXQgcHJvY2Vzc29ycyBhcmUKYmVpbmcgYWRkZWQgcmVndWxhcmx5LiAgUmF0ZXMgZm9yIHN1cHBvcnQgZm9yIHN0YW5kYXJkIHByb2R1Y3RzIHN0YXJ0IGF0ICQ3NDk1LgoKQ3lnbnVzIFNvbHV0aW9ucyBjb250YWN0czoKCglLYXRoeSBQb3dlcnMKCXBoOiArMS0yMDYtODg4LTYwMDIKCWZ4OiArMS0yMDYtODg4LTYxNDUKCWVtYWlsOiA8a3Bvd2Vyc0BjeWdudXMuY29tPgoKCiAgIAlFcmlrIFdlc3Rjb3R0CiAgIAlwaDogKzEgNDA4IDU0MiA5NjM3CiAgIAlmeDogKzEgNDA4IDU0MiA5Njk5CiAgIAllbWFpbDogIDx3ZXN0Y290dEBjeWdudXMuY29tPgpVcGRhdGVkOiAxOTk3LTA1LTIzCh8KTWFyY3VzIEcuIERhbmllbHMgICAgICAgICAgICAgIDxtYXJjdXNkQGdudS5haS5taXQuZWR1PgozMTA2MCBTLiBLYXVmbWFuIFJkLiAgICAgICAgICAgPG1hcmN1c0B0ZGIuY29tPgpDYW5ieSwgT1IgIDk3MDEzLTk1MjAgICAgICAgICAgPG1hcmN1c0BzeXNjLnBkeC5lZHU+Cig1MDMpIDY1MS0yNjk0ICAgICAgICAgICAgICAgICAKCkkgY2FuIGN1c3RvbWl6ZSwgZXh0ZW5kLCBwb3J0LCBhbmQgcmVwYWlyIG1hbnkgdHlwZXMgb2YgZnJlZSBzb2Z0d2FyZS4KSSBtYWludGFpbiB0aGUgQ0xJU1AgQ29tbW9uIExpc3AgaW1wbGVtZW50YXRpb24gYW5kIGNvbnRyaWJ1dGUgdG8Kc2V2ZXJhbCBHTlUgcGFja2FnZXMgKGUuZy4gRW1hY3MpLiAgVGVuIHllYXJzIG9mIEMgYW5kIFVuaXgKZXhwZXJpZW5jZS4gIENvbnN1bHRpbmcgcmF0ZXMgc3RhcnQgYXQgJDQwIFVTL2hyLgoKVXBkYXRlZDogMTk5Ny0wNS0wNwofCkVkZ2FyIERlci1EYW5pZWxpYW50eiAoRGFuaWVseWFuKSA8ZWRkQGFjbS5vcmc+ClAuTy4gQm94IDEwICAgICAgICAgICAgIEZBWCArMzc0IDIgMjggNTAgODIKWWVyZXZhbiAzNzUwMDkKQVJNRU5JQQoKIFN1cHBvcnQgZm9yIEdDQywgWCBXaW5kb3cgU3lzdGVtLCBXV1csIFRjbC9UaywgbG9naWMgcHJvZ3JhbW1pbmcsCiBJbnRlcm5ldCBzZWN1cml0eSwgVENQL0lQLgoKIEV4cGVyaWVuY2U6CiAgICBPUydzOiA0LjRCU0QsIFNWUjQuMiwgRnJlZUJTRCwgU0NPLCBTb2xhcmlzLCBVbml4V2FyZS4KICAgIExhbmd1YWdlczogQywgQysrLCBPYmplY3RpdmUgQywgUGFzY2FsLCBUY2wvVGssIFBlcmwsIFByb2xvZwogICAgUGxhdGZvcm1zOiBJbnRlbCwgU1BBUkMsIE1hYywgVkFYLCBOZVhULgoKIFJhdGVzOiBEZXBlbmRpbmcgb24gdHlwZSBvZiB3b3JrLCBhcHByb3guICQyMC9ob3VyLiBDb250YWN0IGZvciBtb3JlCiAgICAgICAgaW5mb3JtYXRpb24uCiAgICBOZWdvdGlhYmxlIGZvciBpbmRpdmlkdWFscyBhbmQgbm9uLXByb2ZpdCBvcmdhbml6YXRpb25zLgogICAgRlJFRSBmb3IgaW5kaXZpZHVhbHMgd2hvIGNhbid0IHBheS4gWW91ciAnVGhhbmtzIScganVzdCBlbm91Z2ghIDotKQogICAgUGF5bWVudCBieSBpbnRlcm5hdGlvbmFsIHdpcmUgdHJhbnNmZXIgb3IgY2hlY2suCgpVcGRhdGVkOiAgMTk5Ny0wNS0wNwofCkVjaG8gTGFicyAgICAgICAgICAgICAgICAgIDxlY2hvQGlpbmV0Lm5ldC5hdT4KMjkgV2VsZCBTdCwgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5paW5ldC5uZXQuYXUvfmVjaG8vCk5lZGxhbmRzLCBXQSA2MDA5ClBlcnRoLCBBdXN0cmFsaWEKKzYxICgwKSA0MSA5ODUgOTYwMwoKRWNobyBMYWJzIGlzIGEgc29mdHdhcmUgY29uc3VsdGFuY3kgdGhhdCBhbHNvIHByb3ZpZGVzIHN1cHBvcnQgYW5kCmRldmVsb3BtZW50IHNraWxscy4gIFNwZWNpYWxpc2luZyBpbiBHTlUgc29mdHdhcmUsIHBhcnRpY3VsYXJseSBUY2wvVGsKYW5kIExpbnV4LiBXZSBjYW4gZGVsaXZlciBzeXN0ZW1zIGF0IGEgZnJhY3Rpb24gb2YgdGhlIGNvc3Qgb2YgdGhvc2UKYmFzZWQgb24gbW9yZSB0cmFkaXRpb25hbCB0ZWNobm9sb2dpZXMuICBJbnRlcm5ldC9pbnRyYW5ldCBhbmQgZGF0YQpjb21tdW5pY2F0aW9ucyBzb2x1dGlvbnMsIGZvciBhbGwgcGxhdGZvcm1zIGFyZSB1bmRlcnRha2VuLiAgR1VJCmZyb250LWVuZHMgZG9uZSBxdWlja2x5LgoKV2hpbGUgdHlwaWNhbGx5IGludm9sdmVkIGluIGVuZ2luZWVyaW5nIGFuZCB0ZWNobmljYWwgYXJlYSwgYW55CkdOVS9mcmVld2FyZSBzb2Z0d2FyZSB3aWxsIGJlIHN1cHBvcnRlZC4KCkZvciBmdXJ0aGVyIGRldGFpbHMgc2VlOiBodHRwOi8vd3d3LmlpbmV0Lm5ldC5hdS9+ZWNoby8KCkV4cGVyaWVuY2U6IDEyKyB5ZWFycyBDL1VuaXgsIFN1biwgU0NPLCBMaW51eCwgV2luL05ULgogICAgICAgICAgICBTeXN0ZW1zIHByb2dyYW1taW5nLCBkZXZpY2UgZHJpdmVycywgaGFyZHdhcmUgaW50ZXJmYWNpbmcuCiAgICAgICAgICAgIEdOVSB0b29scy91dGlsaXRpZXMsCiAgICAgICAgICAgIEVtYmVkZGVkICYgcmVhbHRpbWUgc3lzdGVtcywgc29mdHdhcmUsIGZpcm13YXJlLCBoYXJkd2FyZS4KICAgICAgICAgICAgQ29tbXVuaWNhdGlvbnMgcHJvdG9jb2xzIGFuZCBpbXBsZW1lbnRhdGlvbi4KCkRlZ3JlZXM6ICAgIEJBcHBTYyAoQ1MpLCBDdXJ0aW4gVW5pdmVyc2l0eSwgUGVydGgKClJhdGVzOiAgICAgIEFVUyAkNTAtNzUvaHIgbmVnLgoKVXBkYXRlZDogICAgMTk5Ny0wNS0wOQofCkZyZWUgU29mdHdhcmUgQXNzb2NpYXRpb24gb2YgR2VybWFueQpNaWNoYWVsYSBNZXJ6CkhlaW1hdHJpbmcgMTkKNjAwMCBGcmFua2Z1cnQvTWFpbiA3MApwaG9uZToJICAoKzQ5IDY5KSA2MzEyMDgzKQplcnQgIDoJICAoKzQ5LTE3Mi02OTg3MjQ2KQplbWFpbDoJICAoaW5mb0BlbGFyYS5mc2FnLmRlKQoKU3VwcG9ydGluZyBhbGwga2luZHMgb2YgZnJlZXdhcmUgKGkuZS4gR05VKSwgZnJlZXdhcmUgZGV2ZWxvcG1lbnQsIGNvbnN1bHRpbmcsCnRyYWluaW5nLCBpbnN0YWxsYXRpb24uCSBTcGVjaWFsIExJTlVYIHN1cHBvcnQgZ3JvdXAuCgpSQVRFUzoKCkNvbXBhbmllcyBhbmQgZm9yIHByb2ZpdApvcmdhbml6YXRpb25zCQkgICA6ICAxMDAgVVMkIC8gaG91cgpQcml2YXRlIGFuZCBub3QtZm9yLXByb2ZpdApvcmdhbml6YXRpb25zCQkgICA6ICAgNDAgVVMkIC8gaG91cgplcnQgKDI0aCBFbWVyZ2VuY3kKcmVzcG9uc2UgdGVhbSkJCSAgIDogIDMwMCBVUyQgLyBob3VyCgpFbnRlcmVkOiAxOTk0LTA0LTE0Ch8KTm9haCBGcmllZG1hbiAgICAgICAgICAgICAJPGZyaWVkbWFuQHByZXAuYWkubWl0LmVkdT4KMTExMSBXLiBFbCBDYW1pbm8gUmVhbCAjMTA5LTMzMQpTdW5ueXZhbGUsIENBIDk0MDg3CihwZXJtYW5lbnQpCgpBdXRob3Igb2Ygc2V2ZXJhbCBFbWFjcyBMaXNwIHBhY2thZ2VzIGFuZCBwYXJ0cyBvZiBFbWFjcywgYXMgd2VsbCBhcwpudW1lcm91cyBuZXR3b3JrIGFuZCB1bml4IHN5c3RlbSB1dGlsaXRpZXMuICBDby1tYWludGFpbmVkIEdOVSBUZXhpbmZvIGFuZApBdXRvY29uZiBmb3IgYSBjb3VwbGUgb2YgeWVhcnMuICBFeHBlcmllbmNlZCB1bml4IHN5c3RlbXMgYWRtaW5pc3RyYXRvci4KRlNGIGVtcGxveWVlIEZlYiAxOTkxLS1TZXAgMTk5NC4KCkkgY2FuIHBlcmZvcm0gaW5zdGFsbGF0aW9uLCBwb3J0aW5nLCBhbmQgZW5oYW5jZW1lbnQgb2YgYWxsIEdOVSBzb2Z0d2FyZQphbmQgYW55IG90aGVyIGZyZWUgc29mdHdhcmUsIGluY2x1ZGluZyB0aGUgTGludXgga2VybmVsOyBzeXN0ZW0gZGVzaWduIGFuZAphZG1pbmlzdHJhdGlvbiBmb3IgdW5peC10eXBlIHN5c3RlbXMgYW5kIElQIG5ldHdvcmtzOyBhbmQgSSBhbSB3aWxsaW5nIHRvCnByb3ZpZGUgaGFuZGhvbGRpbmcgZm9yIHNoZWxsIHByb2dyYW1taW5nLCBFbWFjcyBMaXNwIGRldmVsb3BtZW50LCBhbmQKdmVyc2lvbiBjb250cm9sIHN5c3RlbXMgc3VjaCBhcyBSQ1MgYW5kIENWUy4KCkZlZXMgbmVnb3RpYWJsZSwgYXZlcmFnaW5nICQ3NS0kMTAwL2hvdXIuICBJIGNhbiB3b3JrIGluIHRoZSBDYWxpZm9ybmlhIGJheQphcmVhIG9yIGFueXdoZXJlIGFjY2Vzc2libGUgb24gdGhlIEludGVybmV0LiAgRm9yIGxhcmdlciBqb2JzIEkgbWF5IGJlCndpbGxpbmcgdG8gdHJhdmVsLgoKVXBkYXRlZDogMTk5Ny0wNS0wOAofClJvbmFsZCBGLiBHdWlsbWV0dGUJPHJmZ0Btb25rZXlzLmNvbT4KUkcgQ29uc3VsdGluZwoxNzUxIEVhc3QgUm9zZXZpbGxlIFBrd3kuICMxODI4ClJvc2V2aWxsZSwgQ0EgOTU2NjEKVGVsOiArMSA5MTYgNzg2IDc5NDUKRkFYOiArMSA5MTYgNzg2IDUzMTEKClNlcnZpY2VzOglEZXZlbG9wbWVudCAmIHBvcnRpbmcgb2YgR05VIHNvZnR3YXJlIGRldmVsb3BtZW50IHRvb2xzLgoKR05VIENvbnRyaWJ1dGlvbnM6CgkJSW52ZW50ZWQsIGRlc2lnbmVkLCBhbmQgaW1wbGVtZW50ZWQgdGhlIHByb3RvaXplIGFuZAoJCXVucHJvdG9pemUgdG9vbHMgc3VwcGxpZWQgd2l0aCBHQ0MyLgoKCQlEZXNpZ25lZCBhbmQgZGV2ZWxvcGVkIGFsbCBjb2RlIHRvIHN1cHBvcnQgdGhlIGdlbmVyYXRpb24KCQlvZiBEd2FyZiBzeW1ib2xpYyBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gZm9yIFN5c3RlbSBWIFJlbGVhc2UKCQk0IGluIEdDQzIuCgoJCVBlcmZvcm1lZCBvcmlnaW5hbCBwb3J0IG9mIEdOVSBjb21waWxlcnMgdG8gU1ZyNCBzeXN0ZW0uCgoJCUZpbmlzaGVkIHBvcnQgb2YgR05VIGNvbXBpbGVycyB0byBJbnRlbCBpODYwIFJJU0MKCQlwcm9jZXNzb3IuCgpFeHBlcmllbmNlOgkxMysgeWVhcnMgVU5JWCBzeXN0ZW1zIGV4cGVyaWVuY2UsIGFsbCB3b3JraW5nIG9uIGNvbXBpbGVycwoJCWFuZCByZWxhdGVkIHRvb2xzLgoKCQk3KyB5ZWFycyB3b3JraW5nIHByb2Zlc3Npb25hbGx5IG9uIEdDQywgRysrLCBhbmQgR0RCIHVuZGVyCgkJY29udHJhY3QgdG8gdmFyaW91cyBmaXJtcyBpbmNsdWRpbmcgdGhlIE1pY3JvZWxlY3Ryb25pY3MKCQlhbmQgQ29tcHV0ZXIgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiAoTUNDKSwgRGF0YSBHZW5lcmFsIChERyksCgkJTmV0d29yayBDb21wdXRpbmcgRGV2aWNlcyAoTkNEKSwgYW5kIEludGVsIENvcnAuCgpPdGhlciBxdWFsaWZpY2F0aW9uczoKCQlEZXZlbG9wZXIgb2YgdGhlIFJvYWRUZXN0ICh0bSkgQyBhbmQgQysrIGNvbW1lcmNpYWwKCQljb21waWxlciB0ZXN0IHN1aXRlcy4KCgkJRm9ybWVyIHZpY2UtY2hhaXJtYW4gb2YgVU5JWCBJbnRlcm5hdGlvbmFsIFByb2dyYW1taW5nCgkJTGFuZ3VhZ2VzIFNwZWNpYWwgSW50ZXJlc3QgR3JvdXAgKFVJL1BMU0lHKS4KCgkJQmFjaGVsb3IncyBhbmQgYSBNYXN0ZXIncyBkZWdyZWVzLCBib3RoIGluIENvbXB1dGVyIFNjaWVuY2UuCgpSYXRlczoJCVZhcmlhYmxlIGRlcGVuZGluZyB1cG9uIGNvbnRyYWN0IGR1cmF0aW9uLiAgQ2FsbCBmb3IgcXVvdGUuCgpVcGRhdGVkOiAxOTk3LTA1LTA3Ch8KTWljaGFlbCBQLiBEZWlnbmFuCklkZWFtYXRpb24sIEluYy4KMTM2IE5lbHNvbiBTdHJlZXQKUHJvdmlkZW5jZSwgUkkgMDI5MDgKKDQwMSkgMzMxLTM3MDgKKDQwMSkgMjcyLTY0NDkgZmF4LgoKUmF0ZToJVmFyaWVzIGRlcGVuZGluZyBvbiBjb21wbGV4aXR5IG9mIHRhc2suCglIb3VybHkgYW5kIGZpeGVkLXJhdGUgY29udHJhY3RzIGFyZSBhdmFpbGFibGUuClByb2dyYW1zIFN1cHBvcnRlZDoJQWxsCgpVcGRhdGVkOiAxOTk3LTA1LTA3Ch8KSW50ZXJhY3RpdmUgSW5mb3JtYXRpb24gTGltaXRlZAoKSW50ZXJhY3RpdmUgSW5mb3JtYXRpb24gTGltaXRlZCBpcyBhbiBFZGluYnVyZ2gtYmFzZWQgY29tcGFueSB0aGF0CnNwZWNpYWxpc2VzIGluIFdXVyBzZXJ2aWNlcyBhbmQgc3VwcG9ydCBmb3IgdXNpbmcgdGhlIEludGVybmV0IGZvcgptYXJrZXRpbmcuCgpPdXIgc3RhZmYgaGF2ZSBtYW55IHllYXJzIGV4cGVyaWVuY2UgaW4gdXNpbmcsIGFuZCBkZXZlbG9waW5nIGxpc3AgcGFja2FnZXMKd2l0aGluLCBFbWFjcywgYW5kIGluIHVzaW5nIG90aGVyIEdOVS9Vbml4IHRvb2xzLCBwYXJ0aWN1bGFybHkgdW5kZXIgcHVibGljCmRvbWFpbiBVTklYZXMuCgpXZSBjYW4gcHJvdmlkZSBzZXJ2aWNlcyB0aHJvdWdob3V0IHRoZSBVSywgYXQgYW55IGxldmVsIGZyb20gZ2VuZXJhbApjb25zdWx0YW5jeSB0aHJvdWdoIGZldGNoaW5nLCBpbnN0YWxsaW5nIGFuZCBjdXN0b21pc2luZyBzb2Z0d2FyZSB0bwpiZXNwb2tlIHByb2dyYW1taW5nLiAgRmVlcyB3b3VsZCBiZSBpbiB0aGUgcmFuZ2UgIzMwMCAtICM2MDAgcGVyIGRheSwKZGVwZW5kaW5nIHByaW1hcmlseSBvbiB0aGUgc2l6ZSBvZiB0aGUgam9iLgoKWW91IGNhbiBjb250YWN0IHVzCglieSBlbWFpbDogPGVucXVpcmVAaW50ZXJhY3RpdmUuY28udWs+CglieSBwaG9uZTogMDM3MCAzMCA0MCA1MiAoVUspCgkJICAoKzQ0KSAzNzAgMzAgNDAgNTIgKEludGVybmF0aW9uYWwpCglieSBwb3N0OiAzLCBMYXVyaXN0b24gR2FyZGVucywKCQkgRWRpbmJ1cmdoIEVIMyA5SEgKCQkgU2NvdGxhbmQKCkVudGVyZWQ6IDE5OTctMDUtMDkKHwpTY290dCBELiBLYWx0ZXIJCQk8c2RrQHR3aW5zdW4uY29tPgoyMDMyIENvcnJhbCBDYW55b24KTWFsaWJ1LCBDQSA5MDI2NS05NTAzCkhvbWU6ICgzMTApIDQ1Ni0wMjU0CgpWZXJ5IGZhbWlsaWFyIHdpdGggYWxsIGxldmVscyBvZiBFbGlzcCBwcm9ncmFtbWluZy4gIFRhdWdodCBFbWFjcyB1c2UKYW5kIGN1c3RvbWl6YXRpb24gaW4gdW5pdmVyc2l0aWVzIGFuZCBpbmR1c3RyeS4gIEV4dGVuc2l2ZQp0cm91Ymxlc2hvb3RpbmcgYW5kIHVzZXIgc3VwcG9ydCBleHBlcmllbmNlLiAgQ28tZGV2ZWxvcGVkIGFuCm9iamVjdC1vcmllbnRlZCBleHRlbnNpb24gdG8gRWxpc3AgKEVvb3BzKSB0aGF0IGNhbiBiZSB1c2VkIGZvcgpwcm9qZWN0cy4gIEV4dGVuc2l2ZSBFbGlzcCBsZXZlbCBtb2RpZmljYXRpb24gZm9yIHJhcGlkIHByb3RvdHlwaW5nIG9mCmRlc2lnbnMgdXNlZCBpbiBncm91cHdhcmUgcmVzZWFyY2guICBUaGlzIGluY2x1ZGVzIHRoZSBkZXZlbG9wbWVudCBvZgphbiBpbmZyYXN0cnVjdHVyZSB0byBzdXBwb3J0IG11bHRpcGxlLCBjb21tdW5pY2F0aW5nIEVtYWNzIHByb2Nlc3Nlcy4KClByZWZlciBlLW1haWwgY29tbXVuaWNhdGlvbiB0byB0ZWxlcGhvbmUgY2FsbHMuCgpVcGRhdGVkOiAgMTk5Ny0wNS0wNwofCkthbWFuIFNjaWVuY2VzIENvcnBvcmF0aW9uCkdyaWZmaXNzIEJ1c2luZXNzICYgVGVjaG5vbG9neSBQYXJrCjc3NSBEYWVkYWxpYW4gRHJpdmUKUm9tZSwgTlkgMTM0NDEtNDkwOQooMzE1KSAzMzQtNDkwMAogCkNPTlRBQ1RTOiAKICAgICAgIERlbm5pcyBGaXR6Z2VyYWxkCTxkZml0emdlcmFsZEByb21lLmthbWFuLmNvbT4gCiAgICAgICBUb20gUm9iYmlucwkJPHRyb2JiaW5zQHJvbWUua2FtYW4uY29tPgogCkthbWFuIFNjaWVuY2VzIGhhcyBwZXJmb3JtZWQgYSBHTlUgcG9ydCBmb3IgYSBjdXN0b20gUklTQyBwcm9jZXNzb3IuCldlIGhhdmUgZXhwZXJpZW5jZSBpbiB0aGUgZGVmaW5pdGlvbiBhbmQgZGVzY3JpcHRpb24gb2YgdGhlIG1hY2hpbmUKcmVnaXN0ZXIgdHJhbnNmZXIgbGFuZ3VhZ2UgdG8gdGhlIEdOVSB0b29sLXNldC4gIFRoaXMgaW5jbHVkZXMgcmV3cml0aW5nCmFuZCBtb2RpZmljYXRpb24gb2YgdGhlIG5lY2Vzc2FyeSBkZXNjcmlwdGlvbiBhbmQgc291cmNlIGZpbGVzIG9mIGdjYywgZ2FzLAphbmQgZ2xkIGFuZCBvdGhlciBiaW51dGlscy4gIEthbWFuIGFsc28gaGFzIHNlcnZpY2VzIGZvciBpbnN0YWxsYXRpb24gYW5kCnNldHVwIG9mIEdOVSB0b29scywgKEdBV0ssIEdDQywgRU1BQ1MsIGV0Yy4pIG9uIFN1biB3b3Jrc3RhdGlvbnMuCiAgCldvcmsgaXMgb24gYSAic2VydmljZSBjb250cmFjdCIgYmFzaXMgYW5kIGRldmVsb3BtZW50IGlzIGNoYXJnZWQgZWl0aGVyCmhvdXJseSBvciBhcyBhIGZpeGVkIHByaWNlIGNvbnRyYWN0LgogCkNvbnN1bHRpbmcgcmF0ZXM6ICQ3MCB0byAkMTc1IHBlciBob3VyLgogClVwZGF0ZWQ6ICAxOTk3LTA1LTA3Ch8KRWh1ZCBLYXJuaSAgICAgIDxrZWh1ZEBzaW1vbndpZXNlbC5uZXQuaWw+CgpJIGFtIGFuIFVOSVggc3lzdGVtIHByb2dyYW1tZXIuIE15IHNraWxscyBpbmNsdWRlIHdyaXRpbmcgaW4gQyBhbmQgc2NyaXB0cy4KCkluIHRoZSBHTlUgZG9tYWluLCBJIGNvbnNpZGVyIG15c2VsZiBhbiBleHBlcnQgb24gRW1hY3MuICBJIGhhdmUgd3JpdHRlbiBzZXZlcmFsCnBhY2thZ2VzIGluIGVtYWNzLWxpc3AgKC5lbCkgaW5jbHVkaW5nOiBiZXR0ZXIgSGVicmV3IHN1cHBvcnQsIGFub3RoZXIgbWFya2luZwpzeXN0ZW0sIGVtdWxhdGlvbiBmb3IgQ0RDIGZ1bGwgc2NyZWVuIGVkaXRvciAoRlNFKSwgQ09CT0wgbW9kZSwgbWF0aGVtYXRpY2FsCmV4cHJlc3Npb24gY29tcHV0aW5nLCBhbmQgZW5oYW5jZW1lbnRzIHRvIHZjLmVsIChjdXN0b21pemF0aW9uKSBhbmQgdG8gYW5nZS1mdHAKKGFkZGVkIE5vdmVsbCBhbmQgTlQgb3BlcmF0aW5nIHN5c3RlbXMpLgogICAgIEkgaGF2ZSBpbnN0YWxsZWQgYW5kIHRlc3RlZCBFbWFjcyBhbmQgbXkgZWwncyBvbiBzZXZlcmFsIG1hY2hpbmVzOiBERywKSFAsIEFscGhhIChPU0YpIGFuZCBQQyAoRE9TKS4KICAgICBJIGluc3RhbGxlZCBhbmQgd29ya2VkIHdpdGggc2V2ZXJhbCBvdGhlciBHTlUgcGFja2FnZXMgLSBSQ1MsIEdtYWtlLCBHQ0MKYW5kIG1vcmUsIGJ1dCBJJ20gbm90IGFuIGV4cGVydCBpbiB0aGVzZSBwYWNrYWdlcy4KCkkgd29yayBpbiBJc3JhZWwgYW5kIG15IG5vcm1hbCByYXRlIGlzICQ0MCBwZXIgaG91ci4KCkVudGVyZWQ6ICAxOTk2LTA3LTE1Ch8KSm9zZXBoIFIuIEtpbmlyeQkJPGtpbmlyeUBjcy5jYWx0ZWNoLmVkdT4KQ2FsdGVjaCBNYWlsc3RvcCAyNTYtODAJCWh0dHA6Ly93d3cuY3MuY2FsdGVjaC5lZHUvfmtpbmlyeS8KUGFzYWRlbmEsIENBIDkxMTI1ICAgICAgICAgICAgICA8anJrQG1ldGFnZW5lc2lzLmNvbT4KUGhvbmU6IDgxOC0zOTUtNDg0MApGYXg6IDgxOC03OTItNDI1NwoKTG9uZy10ZXJtIGhpZ2gtbGV2ZWwgY29uc3VsdGFudCBpbiBhIHZhcmlldHkgb2YgZG9tYWlucy4gIFNlZQpodHRwOi8vd3d3LmNzLmNhbHRlY2guZWR1L35raW5pcnkvcmVzdW1lLmh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24KcHJvZmVzc2lvbmFsIGFuZCBhY2FkZW1pYyBiYWNrZ3JvdW5kLgoKSSBwcm92aWRlIGluc3RhbGxhdGlvbiwgcG9ydGluZywgZGVidWdnaW5nLCBjdXN0b21pemF0aW9uLCBkZXNpZ24sIGFuZApkZXZlbG9wbWVudCBvZiBHTlUgYW5kIG90aGVyIFVOSVggYW5kIG5vbi1VTklYIHNvZnR3YXJlLiAgSSBhbSBvciBoYXZlCmJlZW4gYSBjZXJ0aWZpZWQgZGV2ZWxvcGVyIHdpdGggTWljcm9zb2Z0LCBTdW5Tb2Z0LCBOZVhULCBhbmQgQW1pZ2EuCkkgaGF2ZSBhIGdyZWF0IGRlYWwgb2YgZGV2ZWxvcG1lbnQgYW5kIG1hbmFnZW1lbnQgZXhwZXJpZW5jZSBhbmQgYW4KZXh0cmVtZWx5IGJyb2FkIGJhY2tncm91bmQgd2hpY2ggY29udHJpYnV0ZXMgdG8gbXkgZXhjZWxsZW50IHN5c3RlbQppbnRlZ3JhdGlvbiBjYXBhYmlsaXRpZXMuICBJIGhhdmUgYSBzcGVjaWFsIGV4cGVydGlzZSBhbmQgY29uZHVjdApyZXNlYXJjaCBpbiBkaXN0cmlidXRlZCBvYmplY3QgdGVjaG5vbG9naWVzLgoKVGltZSBhbmQgbWF0ZXJpYWwgcmF0ZXMgZm9yIGxvY2FsIHdvcmsgdmFyeSByZWdpb25hbGx5LCBidXQgYXJlCmN1cnJlbnRseSAkMjUwIHBlciBob3VyIG9uIHRoZSB3ZXN0IGNvYXN0LiAgT3RoZXIgcmF0ZXMgYXBwbHkgZm9yCmxvbmctdGVybSBqb2JzIChkYXkgcmF0ZXMsIHRyYXZlbCwgZXRjLikgYW5kIHJlbW90ZSB3b3JrICh1c3VhbGx5IDEvMgpmZWUpLiAgSSBhbSBpbnRlcmVzdGVkIGluIGZpeGVkLWJpZCBqb2JzIGFuZCB3aWxsIHdvcmsgZm9yIGxvd2VyIHJhdGVzCmZvciBub24tcHJvZml0IG9yZ2FuaXphdGlvbnMgYW5kIGVkdWNhdGlvbmFsIGluc3RpdHV0aW9ucy4KClVwZGF0ZWQ6IDE5OTctMDUtMDcKHwpCcmFkbGV5IE0uIEt1aG4KPGJrdWhuQGFjbS5vcmc+Cmh0dHA6Ly93d3cuc21hcnQubmV0L35ia3VobgoKSSBhbSBhdmFpbGFibGUgZm9yIHByaW1hcmlseSBVbml4IHN5c3RlbSBhZG1pbmlzdHJhdGlvbiBjb25zdWx0aW5nLCBpbmNsdWRpbmcKYnV0IG5vdCBsaW1pdGVkIHRvIGluc3RhbGxhdGlvbiwgY29uZmlndXJhdGlvbiBhbmQgaW50ZWdyYXRpb24gb2YgR05VIHRvb2xzCmFuZCBvdGhlciBjb3B5LWxlZnRlZCBzb2Z0d2FyZSBzdWNoIGFzIEdOVS9MaW51eC4KCkkgYW0gcGFydGljdWxhcmx5IHNraWxsZWQgYXQgZW5kLXVzZXIgaGFuZC1ob2xkaW5nIGFuZCBhc3Npc3RpbmcgaW4gdGhlCmludGVncmF0aW9uIG9mIEdOVSBhbmQgb3RoZXIgY29weS1sZWZ0ZWQgc29mdHdhcmUgaW50byBuZXcgZW52aXJvbm1lbnRzIHRoYXQKaGF2ZSBub3QgdXNlZCBzdWNoIHRvb2xzIGluIHRoZSBwYXN0LgoKUGxlYXNlIHZpc2l0IG15IGhvbWVwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIG15IGJhY2tncm91bmQgYW5kIHNraWxscy4KCkkgYW0gYXZhaWxhYmxlIGZvciBib3RoIDEwOTkgKHByZWZlcnJlZCkgYW5kIFcyIG9uLXNpdGUgY29udHJhY3RpbmcgaW4gdGhlCkJhbHRpbW9yZSwgTUQgbWV0cm9wb2xpdGFuIGFyZWEsIGFzIHdlbGwgYXMgcmVtb3RlIGNvbnN1bHRpbmcgdmlhIGRpYWx1cCBvcgpJbnRlcm5ldCBjb25uZWN0aW9uIGFueXdoZXJlIGluIHRoZSBVUy4KCk15IHJhdGUgaXMgaW4gdGhlICQ0MC9ob3VyIHJhbmdlLCBkZXBlbmRpbmcgb24gdGhlIGNpcmN1bXN0YW5jZXMuICBSYXRlcyBmb3IKbm9uLXByb2ZpdCBvcmdhbml6YXRpb25zIGFyZSBzdWJzdGFudGlhbGx5IGxvd2VyLCBhbmQgcG9zc2libHkgZnJlZS4KClVwZGF0ZWQ6IDE5OTYtMTItMzEKHwpGZW4gTGFiYWxtZSAgICAgICAgICAgICAgICAgICAgICAgPGZlbkBjb21lZGlhLmNvbT4KQ29NZWRpYSBDb25zdWx0aW5nICAgICAgICAgICBodHRwLy93d3cuY29tZWRpYS5jb20vY29tZWRpYS8KNDAgQ2FybCBTdHJlZXQgIzQgICAgICAgICAgICAgICAgIFdFIEFSRSBFVkVSWVdIRVJFClNhbiBGcmFuY2lzY28gQ0EgOTQxMTcgICAgICAgICAgICAgSlVTVCBTQVkgIktOT1ciCgpDb25zdWx0aW5nLCBpbnN0YWxsYXRpb24sIGN1c3RvbWl6YXRpb24gYW5kIHRyYWluaW5nIGZvciBHTlUgRW1hY3MsCmFuZCBzZWxlY3RlZCBvdGhlciBHTlUgJiBuZXR3b3JrIHNvZnR3YXJlLiAgRGVzaWduICYgaW1wbGVtZW50YXRpb24Kb2YgZnJlZSBzb2Z0d2FyZSBwcm9qZWN0cywgYXMgd2VsbCBhcyBzb2Z0d2FyZSBlbmdpbmVlcmluZyAmIHN5c3RlbQpkZXNpZ24uICBJIGhhdmUgYmVlbiBoYWNraW5nIEVtYWNzIHNpbmNlICc3NiB3aGVuIGl0IHdhcyBURUNPIGFuZCBeUgptYWNyb3MgKGRvbid0IGFzayksIGFuZCBhbSBpbnRlci9pbnRyYS1uZXR3b3JrLCBVTklYICYgV2ViIGZyaWVuZGx5LgoKUmF0ZXM6CSQ3NSBob3VyICYgdXAsIGRlcGVuZGluZzsgIGZsYXQgcmF0ZSBqb2JzIGNvbnNpZGVyZWQuCglMb3dlciByYXRlcywgYmFydGVyIG9yIGZyZWUgZm9yIHNlbGVjdGVkIG5vbi1wcm9maXRzLgoKVXBkYXRlZDogMTk5Ny0wNS0wNwofCkdyZWcgTGVoZXkKTEVNSVMKUE8gQm94IDQ2MApFY2h1bmdhIFNBIDUxNTMKQXVzdHJhbGlhCgpQaG9uZToJKzYxLTgtODM4OC04MjUwCkZheDoJKzYxLTgtODM4OC04MjUwCk1vYmlsZToJKzYxLTQxLTczOS03MDYyCk1haWwJPGdyb2dAbGVtaXMuY29tPgoKU2VydmljZXM6IFN1cHBseSwgcG9ydGluZywgaW5zdGFsbGF0aW9uLCBjb25zdWx0YXRpb24gb24gYWxsIEdOVQpwcm9kdWN0cy4KCkV4cGVyaWVuY2U6IDIwIHllYXJzIE9TIGFuZCBjb21waWxlciBleHBlcmllbmNlLCBwb3J0cyBvZiBtb3N0IEdOVQpwcm9kdWN0cy4gIEF1dGhvciBvZiBwb3J0ZWQgc29mdHdhcmUgQ0QtUk9NIGZvciBVTklYIFN5c3RlbSBWLjQuMiwKIlBvcnRpbmcgVU5JWCBTb2Z0d2FyZSIgKE8nUmVpbGx5KSwgIkluc3RhbGxpbmcgYW5kIFJ1bm5pbmcgRnJlZUJTRCIKYW5kICJUaGUgQ29tcGxldGUgRnJlZUJTRCIgKGJvdGggV2FsbnV0IENyZWVrKS4KClJhdGVzOiBDaG9pY2Ugb2YgQVVEIDEyMCBwZXIgaG91ciBvciBob3RsaW5lIHJhdGVzIEFVRCAyLjUwIERNIHBlcgptaW51dGUuICBPdXRzaWRlIEF1c3RyYWxpYSwgJFVTIDEwMCBwZXIgaG91ciBvciAkVVMgMiBwZXIgbWludXRlLgpRdWljayBxdWVzdGlvbnMgbWF5IGJlIGZyZWUuICBMaW1pdGVkIGZyZWUgc3VwcG9ydCBhdmFpbGFibGUgZm9yCnB1cmNoYXNlcnMgb2YgTEVNSVMgQ0QtUk9Ncy4KClVwZGF0ZWQ6IDE5OTctMDUtMDkKHwpSb2hhbiBMZW5hcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJqbEB3ci5jb20uYXU+CjMyIEhvbHRlcm1hbm4gU3QuCkNyb3dzIE5lc3QsIE5TVyAyMDY1CkFVU1RSQUxJQQorNjEgNDExMjUwMDI0CgoqIFRoZSBodW1hbiBmYWNlIGJlaGluZCB0aGUgYnVnLWcrK0BwcmVwLmFpLm1pdC5lZHUgbWFpbGluZyBsaXN0IC0ga25vd24KICBpbiB0aGUgcGFzdCBhcyA8cmpsQGlhc3NmLmVhc2Ftcy5jb20uYXU+IGFuZCA8cmpsQG90LmNvbS5hdT4gLSBub3cKICBrbm93biBhcyA8cmpsQHdyLmNvbS5hdT4uCgoqIEludGVyZXN0ZWQgaW4gcHJvdmlkaW5nIGZpcnN0IGxpbmUgc3VwcG9ydCBhbmQgZGV2ZWxvcG1lbnQuCgpFeHBlcmllbmNlOiAxMCsgeWVhcnMgQy9Vbml4LCA2KyB5ZWFycyBDKysKICAgICAgICAgICAgRXh0ZW5zaXZlIGV4cGVyaWVuY2Ugd2l0aCBHTlUgdG9vbHMsIGNyb3NzLWNvbXBpbGVycywKICAgICAgICAgICAgZW1iZWRkZWQvaG9zdGVkIHN5c3RlbXMsIHJlYWx0aW1lLCBzaW11bGF0aW9ucywKICAgICAgICAgICAgYW5kIG1pbGl0YXJ5IHNvZnR3YXJlLgoKRGVncmVlczogICAgQlNjIChDUyksIEJFIChDb21tcyksIFVuaXZlcnNpdHkgb2YgTWVsYm91cm5lCgpSYXRlczogICAgICBBVVMgJDc1Ky9ociBuZWcuCgpVcGRhdGVkOiAgMTk5Ny0wNS0xNwofClJldXZlbiBNLiBMZXJuZXIJCTxyZXV2ZW5AbmV0dmlzaW9uLm5ldC5pbD4KMTcgRGlzcmFlbGkgU3RyZWV0CkhhaWZhIDM0MzMzCklzcmFlbAoKUGhvbmU6ICAgICAwNC04MjQtMjI2NSAod2l0aGluIElzcmFlbCkKICAgICAgICs5NzItNC04MjQtMjI2NSAob3V0c2lkZSBvZiBJc3JhZWwpCgpGYXg6ICAgICAgIDA0LTgyNi0xMjE5ICh3aXRoaW4gSXNyYWVsKQogICAgICAgKzk3Mi00LTgyNi0xMjE5IChvdXRzaWRlIG9mIElzcmFlbCkgICAgCgpXV1c6IGh0dHA6Ly93d3cubmV0dmlzaW9uLm5ldC5pbC9waHAvcmV1dmVuCgotIFN5c3RlbSBhbmQgbmV0d29yayBhZG1pbmlzdHJhdGlvbiwgZXNwZWNpYWxseSBMaW51eC1iYXNlZCBzeXN0ZW1zCiAgYW5kIG5ldHdvcmtzCi0gQWRtaW5pc3RyYXRpb24sIHRyYWluaW5nLCBhbmQgcHJvZ3JhbW1pbmcgZm9yIEludGVybmV0IG5vZGVzIGFuZAogIFdvcmxkLVdpZGUgV2ViIHNpdGVzCi0gSW5zdGFsbGF0aW9uLCBzdXBwb3J0IGFuZCB0cmFpbmluZyBpbiB0aGUgdXNlIG9mIExpbnV4LCBFbWFjcywgUGVybCwKICBhbmQgb3RoZXIgZnJlZSBzb2Z0d2FyZQotIEV4cGVydGlzZSBpbiBDLCBFbWFjcyBMaXNwLCBhbmQgUGVybAoKQ29uc3VsdGluZyByYXRlczogJDc1L2hvdXIsIGxlc3MgZm9yIGVkdWNhdGlvbmFsIGluc3RpdHV0aW9ucy4KClVwZGF0ZWQ6IDE5OTctMDUtMDcKHwpSaWNoYXJkIExldml0dGUgICAgICAgICAgICAgKGluIFRlWDogUmljaGFyZCBMZXZpdHRlCkxldml0dGUgUHJvZ3JhbW1pbmcgICAgICAgICAgICAgICAgICBMZXZpdHRlIFByb2dyYW1taW5nClNwYW5udmFnZW4gMzgsIEkgICAgICAgICAgICAgICAgICAgICBTcGFubnZcImFnZW4gMjgsIEkKUy0xNjggMzUgIEJyb21tYSAgICAgICAgICAgICAgICAgICAgIFMtMTY4IDM1ICBCcm9tbWEKU3dlZGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN3ZWRlbikKVGVsLm5yLjogICs0NiAoOCkgMjYgNTIgNDcgICAgICAodGhlcmUgaXMgYW4gYW5zd2VyaW5nIG1hY2hpbmUpCkNlbGx1bGFyOiArNDYgKDEwKSAyMjIgNjQgMDUKZS1tYWlsOiAgIDxsZXZpdHRlQGxwLnNlPgoKV2hhdCBJIGRvOgoJUHJpbWFybHkgSSB3b3JrIG9uIEdOVSBzb2Z0d2FyZSBmb3IgVk1TLCBib3RoIFZBWCBhbmQgQVhQLiAgSSd2ZQoJYmVlbiBwb3J0aW5nIEdOVSBFbWFjcyB0byBWTVMgc2luY2Ugc3ByaW5nIDE5OTEuICBJJ3ZlIAlwb3J0ZWQgYQoJYnVuY2ggb2Ygb3RoZXIgR05VIHByb2dyYW1zIGFzIHdlbGwuICBJIG1haW50YWluIEdOVSB2bXNsaWIuCglGb3IgZnVydGhlciBpbmZvLCBzZWUgaHR0cDovL3d3dy5scC5zZS9+bGV2aXR0ZS9wcm9mL3Jlc3VtZS5odG1sCgpQcm9ncmFtcyBzdXBwb3J0ZWQ6CglUbyBhIHZhcnlpbmcgZGVncmVlIChyYW5naW5nIGZyb20gZXh0ZW50aW9uIGFuZCBwb3J0aW5nIHRvCglpbnN0YWxsYXRpb24gYW5kIHNpbXBsZSBxdWVzdGlvbnMpIGF0IHRoZSB0aW1lIG9mIHVwZGF0aW5nIHRoaXMKCWVudHJ5OgoJLSBHTlUgdm1zbGliLCBlbWFjcywgYXV0b2NvbmYsIHppcCwgZGlmZnV0aWxzLCBtNCwgcGF0Y2gsIHRleGluZm8sCgkgIEMvQysrOyBvbiBib3RoIFZNUyBhbmQgVW5peC4KCS0gT3RoZXIgR05VIHByb2dyYW1zIHRvIGEgc21hbGwgZGVncmVlOyBvbiBVbml4LgoJRm9yIGZ1cnRoZXIgaW5mbywgbG9vayBhdCBodHRwOi8vd3d3LmxwLnNlL3Byb2R1Y3RzL2dudS5odG1sCgpFeHBlcmllbmNlOgoJRmx1ZW50IGluIFRlWC9MYVRlWCBhbmQgbWFueSBwcm9ncmFtbWluZyBsYW5ndWFnZXMuCglNb2RpZmllZCBrZXkgZWxlbWVudHMgaW4gRW1hY3MgKGUuZy4sIG1lbW9yeSBhbmQgcHJvY2VzcyBtYW5hZ2VtZW50KQoJdG8gd29yayB0cmFuc3BhcmVudGx5IG9uIFZNUy4gIEkgaGF2ZSB2ZXJ5IGdvb2Qga25vd2xlZGdlIGluIHRoZSBWTVMKCW9wZXJhdGluZyBzeXN0ZW0uICBJJ20gYWxzbyBrbm93bGVkZ2VkIGluIHRoZSBhIGZldyBVbml4IGZsYXZvcnMuCglGb3IgZnVydGhlciBpbmZvLCBzZWUgaHR0cDovL3d3dy5scC5zZS9+bGV2aXR0ZS9wcm9mL3Jlc3VtZS5odG1sCgpZb3VyIFJhdGU6CgkkNzAtJDEwMC9ob3VyICg1MDAtODAwIFNFSyBpbiBzd2VkZW4pLCBwbHVzIGV4cGVuc2VzLiAgTXkgcmF0ZXMKCWFyZSBuZWdvdGlhYmxlLCBkZXBlbmRpbmcgb24gaG93IGludGVyZXN0aW5nIHRoZSBwcm9qZWN0IGlzIHRvIG1lLgoKVXBkYXRlZDogMTk5Ny0wNS0wOAofCkxleGEgU29mdHdhcmUgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvQGxleGEuY29tCjE1OTAgVGhlIEFsYW1lZGEsIFN1aXRlIDEwMgpTYW4gSm9zZSwgQ0EgIDk1MTI2CgorMSA4MDAgMjc4LTIwNDAKKzEgNDA4IDI3OC0yMDQzICB2b2ljZQorMSA0MDggMjc4LTIwNDUgIGZheAoKaHR0cDovL3d3dy5sZXhhLmNvbQoKTGV4YSBTb2Z0d2FyZSBwcm92aWRlcyBzdXBwb3J0IGZvciBHTlUgQy9DKysgaW5jbHVkaW5nIHRoZSBHTlUgZGVidWdnZXIKYW5kIGxpbmtlci4gIExleGEgaGFzIGV4dGVuc2l2ZSBleHBlcmllbmNlIHN1cHBvcnRpbmcgR0NDL0crKyBvbiBTTkkKYW5kIFB5cmFtaWQgYXMgd2VsbCBhcyBhbGwgb3RoZXIgTUlQUyBBQkkgcGxhdGZvcm1zLiAgV2Ugb2ZmZXIgc3VwcG9ydAp0byAyLCA1LCAyNSBhbmQgbGFyZ2VyIG51bWJlciBvZiB1c2VycyB2aWEgcGhvbmUsIGVtYWlsLCBmdHAuCgpVcGRhdGVkOiAgMTk5Ny0wNS0wMQofCkdvcmQgTWF0emlna2VpdCAgICAgICAgICAgICAgICAgICAgICA8Z29yZEBnbnUuYWkubWl0LmVkdT4KMjIyMCBDYXBpdG9sIEhpbGwgQ3Jlc2NlbnQgICAgICAgICAgIGh0dHA6Ly93d3cubS10ZWNoLmFiLmNhL35nb3JkLwpDYWxnYXJ5LCBBbGJlcnRhICAgVDJNIDRCOSAgICAgICAgICAgVm9pY2U6ICg0MDMpIDI4Mi0xMzg3CkNBTkFEQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQVg6ICAgKDQwMykgMjg0LTAxMzcKCkkgd2lsbCBoZWxwIGluc3RhbGwgYmFkbHktYmVoYXZlZCBzb3VyY2UgY29kZSBwYWNrYWdlcywgYW5kIGhhdmUgZXhwZXJpZW5jZQpmaXhpbmcgdGhlbSB0byBjb25mb3JtIHRvIEdOVSBzdGFuZGFyZHMuICBJIHdpbGwgZ2xhZGx5IGhlbHAgbm92aWNlcyBhbmQKaW50ZXJtZWRpYXRlIGNvbXB1dGVyIHVzZXJzIHRvIHVuZGVyc3RhbmQsIGluc3RhbGwsIGFuZCB1c2UgZnJlZSBzb2Z0d2FyZSwKd2hldGhlciBvciBub3QgSSBoYXZlIHByaW9yIGV4cGVyaWVuY2Ugd2l0aCB0aGF0IHNvZnR3YXJlLiAgSSBrbm93IG15CmxpbWl0YXRpb25zIHdlbGwsIGFuZCB3aWxsIGZyZWVseSBnaXZlIG90aGVyIGNvbnRhY3RzIGlmIEkgZG8gbm90IHdhbnQgdG8Kc29sdmUgeW91ciBwcm9ibGVtIG15c2VsZi4KCkkgaGF2ZSBpbnN0YWxsZWQgYW5kIGFkbWluaXN0ZXJlZCBmcmVlIGFuZCBwcm9wcmlldGFyeSBzeXN0ZW1zIGluIGhvbWUsCmFjYWRlbWljLCBhbmQgYnVzaW5lc3MgZW52aXJvbm1lbnRzLiAgSSBoYXZlIHByYWN0aWNhbCBleHBlcmllbmNlIGluIG1vc3QKYXNwZWN0cyBvZiBVbml4IGFuZCBuZXR3b3JrIHNlY3VyaXR5LiAgSSBrbm93IGhvdyB0byBkaWFnbm9zZSBhIGNvbXBsZXgKZXhpc3RpbmcgY29tcHV0ZXIgc3lzdGVtIGFuZCBpbmNyZW1lbnRhbGx5IHJlcGxhY2UgaXQgd2l0aCBhIHN1cGVyaW9yIGZyZWUKc3lzdGVtIHdpdGhvdXQgZGlzcnVwdGluZyBzZXJ2aWNlLgoKSSBoYXZlIG92ZXIgMiB5ZWFycyBvZiBleHBlcmllbmNlIHdpdGggc2V2ZXJhbCBvZiB0aGUgbWFqb3IgZnJlZSBPU2VzOgpMaW51eC9HTlUgKFJlZCBIYXQsIERlYmlhbiwgU2xhY2t3YXJlKSwgTmV0QlNELCBGcmVlQlNELCBhbmQgR05VL0h1cmQuICBJIGFtCnRoZSBtYWludGFpbmVyIG9mIEdOVSBMaWJ0b29sIGFuZCBHTlUgRExELiAgU29tZSBvZiBteSBzcGVjaWFsdGllcyBhcmU6CkVtYWNzLCBBdXRvbWFrZSwgQXV0b2NvbmYsIFNBTkUsIEMsIFBlcmwsIGFuZCBzaGVsbCBzY3JpcHQgcHJvZ3JhbW1pbmcuCgpNeSByYXRlcyBzdGFydCBhdCAkMTAgKENhbmFkaWFuIGRvbGxhcnMpIHBlciBob3VyLiAgV2hlbiBJIGFtIG5vdCBzdGFydmluZywgSQpkbyBub3QgY2hhcmdlIHdvcnRoeSBub24tcHJvZml0IG9yZ2FuaXphdGlvbnMuCgpVcGRhdGVkOiAgMTk5Ny0wNS0wOAofCkFuZHJldyBNY0NhbGx1bQo2NjIzIERhbHplbGwgUGxhY2UKUGl0dHNidXJnaCwgUEEgIDE1MjE3CkhvbWU6ICg0MTIpIDQyMi0wNjg4CjxtY2NhbGx1bUBjcy5jbXUuZWR1PgpodHRwOi8vd3d3LmNzLnJvY2hlc3Rlci5lZHUvdS9tY2NhbGx1bQoKU2VydmljZXM6ICAgICBTdXBwb3J0LCBlbmhhbmNlbWVudHMsIG5ldyBkZXZlbG9wbWVudCBpbjoKCQlHTlUgT2JqZWN0aXZlIEMKCQlHTlVzdGVwLCBib3RoIGdyYXBoaWNhbCBhbmQgbm9uLWdyYXBoaWNhbC4KCQlHTlVzdGVwIEJhc2UgTGlicmFyeTogbGliZ251c3RlcC1iYXNlCgkJKGVzcGVjaWFsbHkgRGlzdHJpYnV0ZWQgT2JqZWN0cykKCQlJbnRlcmZhY2UgYmV0d2VlbiBPYmplY3RpdmUtQyBhbmQgR3VpbGUgb3IgVENMOiBsaWJndWlsZW9iamMuCgpFeHBlcmllbmNlOgkxMCsgeWVhcnMgb2YgVU5JWCBleHBlcmllbmNlLgoJCVByb2dyYW1taW5nIGZvciBOZVhUU1RFUCBzaW5jZSB2ZXJzaW9uIDAuOCwgMTk4OC4KCQlNQSBhbmQgUGhEIGluIENvbXB1dGVyIFNjaWVuY2UuCgkJRXh0ZW5zaXZlIHdvcmsgb24gR05VIE9iamVjdGl2ZSBDIFJ1bnRpbWUuCgkJQXV0aG9yIG9mIEdOVXN0ZXAgQmFzZSBMaWJyYXJ5LCBpbmNsdWRpbmcgRGlzdHJpYnV0ZWQgT2JqZWN0cwoJCUZTRiBDaGllZiBNYWludGFpbmVyIG9mIHRoZSBHTlVzdGVwIFByb2plY3QuCgkJQ29udHJpYnV0b3IgdG8gR0NDLCBFbWFjcywgR3VpbGUuCgkJQywgT2JqZWN0aXZlLUMsIFBvc3RzY3JpcHQsIFNjaGVtZSwgTGlzcCwgRUxpc3AsIExpbnV4LgoJCUVuZ2xpc2ggYW5kIEZyYW5jYWlzLgoKUmF0ZXM6CQkkOTAtJDE1MCAvIGhvdXIsIG5lZ290aWFibGUsIGRlcGVuZGluZyBvbiBtYW55IHZhcmlhYmxlcy4KClVwZGF0ZWQ6IDE5OTctMDUtMDcKHwpFcmlrIE5hZ2d1bQkJPGVyaWtAbmFnZ3VtLm5vPgpQLk8uIEJveCAxNTcwIFZpa2EJaHR0cDovL3d3dy5uYWdndW0ubm8KMDExOCBPU0xPCQlwaG9uZTogKzQ3IDg4MDAgODg3OQpOT1JXQVkJCQlOSUMgaGFuZGxlOiBFTjkKCkJhY2tncm91bmQ6IEkgaGF2ZSBleHRlbnNpdmUgZXhwZXJpZW5jZSB3aXRoIHByb2dyYW1taW5nIHVuZGVyIFVuaXgsIGluIEMKaW4gcGFydGljdWxhciAoc2luY2UgMTk4MyksIHdpdGggc3RhbmRhcmRzIGFuZCBzcGVjaWZpY2F0aW9ucyBmb3IgSW50ZXJuZXQKcHJvdG9jb2xzIChzaW5jZSAxOTg3KSwgSW50ZXJuYXRpb25hbCBTdGFuZGFyZHMgZm9yIGNoYXJhY3RlciBzZXRzIGFuZAplbmNvZGluZyBzY2hlbWVzIChzaW5jZSAxOTg4KSwgSVNPoDg4NzkgU0dNTCAoc2luY2UgMTk5MCwgbmF0aW9uYWwgaGVhZCBvZgpkZWxlZ2F0aW9uIHRvIElTTy9JRUMgSlRDIDEvU0MgMTgvV0cgOCBzaW5jZSAxOTkxKSwgYW5kIEFOU0kgWDMuMjI2IENvbW1vbgpMaXNwIChzaW5jZSBlYXJseSAxOTk0KS4gIEkgaGF2ZSBiZWVuIGFuIEVtYWNzIHVzZXIgYW5kIHByb2dyYW1tZXIgZnJvbQoxOTg0IHRvIDE5ODcgKFRPUFMtMjApIGFuZCBmcm9tIDE5OTEgdG8gcHJlc2VudCAoVW5peCkuICBzaW5jZSBlYXJseSAxOTk0LApJIGhhdmUgd29ya2VkIG9uIEdOVSBFbWFjcyBkZXZlbG9wbWVudCwgaW4gYm90aCBMaXNwIGFuZCBDLCBhbmQgc2luY2UgbWlkCjE5OTUsIEkgaGF2ZSBiZWVuIHRyYWNraW5nIHRoZSBkZXZlbG9wbWVudCBjb2RlLgoKU2VydmljZXMgSSBvZmZlciB0aGUgZnJlZSBzb2Z0d2FyZSBjb21tdW5pdHkgaW5jbHVkZSBzdXBwb3J0aW5nIEVtYWNzIHVzZXJzCmFuZCBwcm9ncmFtbWVycyB3aXRoIGV4cGVydCBhZHZpY2UgKGdyYXRpcyBvbiBVU0VORVQgb3IgbWFpbGluZyBsaXN0cyB3aGVyZQpvdGhlcnMgbWF5IGJlbmVmaXQpLCBjdXN0b21pemluZyBhbmQgd3JpdGluZyBFbWFjcyBmdW5jdGlvbnMgYW5kIHBhY2thZ2VzLApkZWxpdmVyaW5nIGNvdXJzZXMgYW5kIHNlbWluYXJzIGZyb20gdHV0b3JpYWxzIHRvIHdyaXRpbmcgRW1hY3MgTGlzcCBhbmQgQwpleHRlbnNpb25zLCBhbmQgcHJvdmlkaW5nIGdlbmVyYWwgYWlkIHdpdGggYWxsIEdOVSBzb2Z0d2FyZS4KCk15IHN0YW5kYXJkIHJhdGUgaXMgYSBmbGF0IFVTRCA4MCBwZXIgaG91ciBvciBVU0QgMiBwZXIgbWludXRlICh5b3UgZGVjaWRlCndoaWNoIHRpbWUgdW5pdCB0byBhcHBseSksIGJ1dCB0byBvZmZzZXQgdGhlIGNvc3Qgb2YgcHJvY2Vzc2luZyBtb25leSwgdGhlCm1pbmltdW0gY3JlZGl0IGNhcmQgY2hhcmdlIGlzIFVTRKAxMDAgYW5kIHRoZSBtaW5pbXVtIGludm9pY2VkIGFtb3VudCBpcwpVU0QgMjUwLiAgRGlzY291bnRzIGFyZSBhdmFpbGFibGUgdG8gd29ydGh5IGNhdXNlcyAtLSBwcmVzZW50IHlvdXIgY2FzZS4KVGltZSBhd2F5IGZyb20gaG9tZSBpcyBiaWxsZWQgYXQgVVNEIDQwIHBlciBob3VyIGFyb3VuZCB0aGUgY2xvY2sgdG8KZW5jb3VyYWdlIHJlbW90ZSB3b3JrLiAgKENvdXJzZXMgYW5kIHNlbWluYXJzIGFyZSBuZWdvdGlhdGVkIGluZGl2aWR1YWxseS4pCgpQbGVhc2UgY2FsbCBvbmx5IGFib3V0IGFjdHVhbCB3b3JrLCBJIHByZWZlciBtYWlsIGZvciBhbGwgb3RoZXIgcXVlc3Rpb25zLgoKVXBkYXRlZDogMTk5Ny0wNy0xOAofCk5FVC1Db21tdW5pdHkgICAgICAgICAgICAgICAgICAgPHNhbGVzQG5ldC1jb21tdW5pdHkuY29tPgo1MjIgU1cgNXRoIEF2ZW51ZSAgICAgICAgICAgICAgIGh0dHA6Ly93d3cubmV0LWNvbW11bml0eS5jb20KU3VpdGUgMTEwNQpQb3J0bGFuZCwgT1IgOTcyMDQgVVNBCjEtODAwLTkxOS0wMDYwIHZvaWNlICAKMS01MDMtMjc0LTQ0MjMgdm9pY2UgIAoxLTUwMy0yNzQtNTQwNiBmYXggICAgCgpORVQtQ29tbXVuaXR5IHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZSBjb21wbGV0ZSBHTlVzdGVwIHRvb2xzZXQKaW5jbHVkaW5nIHRoZSBPYmplY3RpdmUtQyBydW50aW1lIHdpdGhpbiBHQ0MsIHRoZSBHTlVzdGVwIEJhc2UgTGlicmFyeSwKdGhlIERpc3BsYXkgR2hvc3RzY3JpcHQgc3lzdGVtLCB0aGUgR05Vc3RlcCBHVUkgTGlicmFyeSwgdGhlIEdOVXN0ZXAKWC9EUFMgR1VJIEJhY2tlbmQsIGFuZCB0aGUgR05Vc3RlcCBEYXRhYmFzZSBMaWJyYXJ5LiBORVQtQ29tbXVuaXR5IGFsc28KcHJvdmlkZXMgc3VwcG9ydCBmb3IgaXRzIG93biBNZWRpYUJvb2sgc29mdHdhcmUgaW5jbHVkaW5nIHRoZSBNZWRpYUJvb2sKUmFuZG9tIExpYnJhcnkgYW5kIHRoZSBNZWRpYUJvb2sgU3BlZWNoIFN5bnRoZXNpcyBMaWJyYXJ5LiAKTkVULUNvbW11bml0eSBhY3RpdmVseSBzdXBwb3J0cyBhbmQgZGV2ZWxvcHMgZnJlZSBzb2Z0d2FyZSBvbiBhbGwKR05Vc3RlcCBwbGF0Zm9ybXM7IGEgcG9ydGlvbiBvZiB0aGUgcHJvY2VlZHMsIHVzdWFsbHkgMjAlLCBnZW5lcmF0ZWQKZnJvbSBDRC1ST00gc2FsZXMgZ28gdG93YXJkcyBhZGRpdGlvbmFsIGRldmVsb3BtZW50IGFuZCBlbmhhbmNlbWVudCBvZgpHTlVzdGVwLgoKVXBkYXRlZDogMTk5Ny0wNS0xMgofCiAgT3BlbiBTeXN0ZW1zIENvbnN1bHRhbnRzIGEucwogIFN0LiBPbGF2c2d0LiAyNAogIE4tMDE2NiBPU0xPCiAgTk9SV0FZCgpQaG9uZTogICAgICAgICAgICAgICBGYXg6CiAgKzQ3IDIyIDIwIDQwIDUwICAgICs0NyAyMiAyMCAwMiA4NQoKV2ViOiAgICAgICAgICAgICAgICAgRS1tYWlsOgogIGh0dHA6Ly93d3cub3NjLm5vICA8Z251LXN1cHBvcnRAb3NjLm5vPgoKT3BlbiBTeXN0ZW1zIENvbnN1bHRhbnRzIGEucyBjYW4gcHJvdmlkZSBwcm9ncmFtbWluZyBzdXBwb3J0IGZvciBhbGwKR05VIHNvZnR3YXJlIC0tIGV4dGVuZGluZyBvciBhZG9wdGluZyBpdCB0byBtZWV0IGN1c3RvbWVyIG5lZWRzLgpQcmljZXMgdmFyeSB3aXRoIHNvZnR3YXJlIGFuZCBwcm9qZWN0LiAgSG91cmx5IGZlZXMgYXJlIGluIHRoZSAkODAtMTIwCnJhbmdlLiAgRml4ZWQtcHJpY2VkIHByb2plY3RzIGFyZSBhbHNvIGF2YWlsYWJsZS4gIE5vIHBob25lIHN1cHBvcnQuCgpVcGRhdGVkOiAgMTk5Ny0wNS0wOAofCkZyYW5jZXNjbyBQb3RvcnRpYCA8Ri5Qb3RvcnRpQGNudWNlLmNuci5pdD4KVmlhIFMuU3RlZmFubywgOAo1NjEyMyBQaXNhLCBJdGFseQpUZWwuICgwNTApNTYwNjcxCgpFbWFjczoJaW5zdGFsbGF0aW9uIGFuZCBtYWludGVuYW5jZSwgdHJhaW5pbmcgYW5kIHR1dG9yaWFscywKCWN1c3RvbWlzYXRpb24sIGV4dGVuc2lvbnMsIHRyb3VibGVzaG9vdGluZy4gIEF1dGhvciBvZiBzb21lIG9mCgl0aGUgcGFja2FnZXMgaW4gdGhlIGVtYWNzIGRpc3RyaWJ1dGlvbiwgaGFzIG1hZGUgdGhlIHBvcnRpbmcKCW9mIGVtYWNzIHRvIHRoZSBNb3Rvcm9sYSBEZWx0YSBhcmNoaXRlY3R1cmUuCgpPdGhlcjoJaW5zdGFsbGF0aW9uIGFuZCBtYWludGVuYW5jZSBvZiBHTlUgc29mdHdhcmUuICBFeHBlcmllbmNlIHdpdGgKCWh5bGFmYXgsIFJDUywgZ3BlcmYsIGV0YWdzLCBzbWFpbCwgaW5kZW50LCBkaWZmLCBnYXdrLCBnY2MsCglzY3JlZW4uICBJcyB0aGUgY3VycmVudCBtYWludGFpbmVyIG9mIGV0YWdzLgoKUmF0ZXM6CTMwLTgwIEtML2hyLCBkZXBlbmRpbmcgb24gZXhwZXJpZW5jZSBvbiB0aGUgcGFydGljdWxhciB0YXNrLgoJQXZlcmFnZSBpcyA1MCBLTC9ociAkNTAvaHIuCglQcmVmZXIgZS1tYWlsIGNvbW11bmljYXRpb24gdG8gdGVsZXBob25lLgoKUXVhbGlmaWNhdGlvbnM6IEVsZWN0cm9uaWMgRW5naW5lZXJpbmcgZGVncmVlLCBQaXNhLiAgRnVsbCB0aW1lCglyZXNlYXJjaGVyIGluIENOVUNFLUNOUi4KCUZhbWlsaWFyIHdpdGggZWxpc3AgcHJvZ3JhbW1pbmcgYW5kIHBvcnRpbmcgb2YgQyBwcm9ncmFtcy4KClVwZGF0ZWQ6ICAxOTk3LTA1LTA4Ch8KRGlwbC4tSW5mb3JtLiBLbGF1cyBLYWVtcGYJCTxra2FlbXBmQHByb2dpcy5kZT4KcHJvR0lTIFNvZnR3YXJlCkpha29ic3RyLiAxMTcKRC01MjA2NCBBYWNoZW4KR2VybWFueQpodHRwOi8vd3d3LnByb2dpcy5kZQpUZWwgKzQ5IDI0MSA0NzA2NzAKRmF4ICs0OSAyNDEgNDcwNjcyOQoKLSAxNSB5ZWFycyBDL1VuaXggZXhwZXJpZW5jZQotIDYgeWVhcnMgVk1TIGV4cGVyaWVuY2UKLSBQb3J0ZWQgQkZEIGxpYnJhcnksIEJpbnV0aWxzLCBHTlUgQXNzZW1ibGVyLCBHTlUgQywgR05VIEMrKywKICBHTlUgQysrIGxpYnJhcmllcywgYW5kIEdOVSBNYWtlIHRvIG9wZW5WTVMvQWxwaGEuCgpXZSBkbyBhIGxvdCBvZiBjcm9zcy1wbGF0Zm9ybSAoVW5peC1WTVMtV2luZG93c05UKSBkZXZlbG9wbWVudAptb3N0bHkgd2l0aCB0aGUgR05VIGNvbXBpbGVyIGVudmlyb25tZW50LiBXZSBhcmUgYWN0aXZlbHkKc3VwcG9ydGluZyBHTlUgc29mdHdhcmUgb24gb3BlblZNUy9BbHBoYS4KClJhdGVzIHN0YXJ0IGF0IDE2MC4tIERNIC8gaG91ciBmb3Igc3VwcG9ydCBhbmQKaW5zdGFsbGF0aW9uLiBMYXJnZXIgcHJvamVjdHMgYXJlIG5lZ290aWFibGUuCgpVcGRhdGVkOiAxOTk3LTA1LTA4Ch8KUXVpb3RpeCBDb3Jwb3JhdGlvbgpNZW5sbyBQYXJrLCBDQQoKQ29udGFjdDogSmVmZnJleSBTaWVnYWwKICAgICAgICAgamJzQHF1aW90aXguY29tCiAgICAgICAgIDQxNSAzMjQtMDUzNQoKQXJlYSBvZiBmb2N1czogRW1iZWRkZWQgc3lzdGVtcy0tdXNpbmcgR05VIHNvZnR3YXJlIHRvIGRldmVsb3AgZm9yCmVtYmVkZGVkIHN5c3RlbXMsIHBvcnRpbmcgR05VIHNvZnR3YXJlIHRvIGVtYmVkZGVkIHN5c3RlbXMsIGV4dGVuZGluZyBHTlUKc29mdHdhcmUgdG8gYmV0dGVyIHN1cHBvcnQgZW1iZWRkZWQgZW52aXJvbm1lbnRzLCBkZXZlbG9waW5nIG5ldyB0b29scyBhbmQKdXRpbGl0aWVzIGZvciBlbWJlZGRlZCBkZXZlbG9wbWVudCB1c2luZyBHTlUgc29mdHdhcmUuCgpTZXJ2aWNlczogcG9ydGluZywgZGV2ZWxvcG1lbnQsIHN1cHBvcnQsIHByb2plY3QgbWFuYWdlbWVudCwgYWR2aXNvcnkKY29uc3VsdGluZy4KClJhdGVzOiAkMTI1LSQyNTAvaG91ciBvciBmaXhlZCBmZWVzIGRlcGVuZGluZyBvbiBzZXJ2aWNlcyBwcm92aWRlZC4KClVwZGF0ZWQ6ICAxOTk3LTA1LTE2Ch8KV29sZmdhbmcgUy4gUnVwcHJlY2h0CQk8d29sZmdhbmdAd3NyY2MuY29tPgo0NyBFc3Bhcml0byBBdmUuCkZyZW1vbnQsIENBIDk0NTM5LTM4MjcKKDUxMCkgNjU5LTk3NTcKCkFueXRoaW5nLCAobGlzcCwgQywgY3VzdG9taXphdGlvbiwgcG9ydGluZywgaW5zdGFsbGluZykgSSBoYXZlCndyaXR0ZW4gdGhvdXNhbmRzIG9mIGxpbmVzIG9mIEdOVSBFbWFjcyBDIGFuZCBMaXNwIGNvZGUuICBPcmlnaW5hbAphdXRob3Igb2YgdGhlIGZsb2F0aW5nIHBvaW50IGFkZGl0aW9ucyBpbiBFbWFjcyAxOS4KClJhdGVzOgkkOTUvaHIuCgpVcGRhdGVkOiAxOTk3LTA1LTA4Ch8KU3RhbmlzbGF2IFNoYWx1bm92CgpFbWFpbDogc2hhbHVub3ZAbWNjbWUucnUKUGhvbmVzOiBvbiByZXF1ZXN0CgpJbnN0YWxsaW5nLCBjb25maWd1cmluZywgaGVscGluZyBsZWFybiBhbnkgZnJlZSBzb2Z0d2FyZS4gIApIYW5kaG9sZGluZywgdHJvdWJsZSBzaG9vdGluZy4gIE1ha2luZyBjdXN0b20gY2hhbmdlcyB0byBmcmVlIApzb2Z0d2FyZSB3cml0dGVuIGluIEMuICBUZWFjaGluZywgbGVjdHVyaW5nLCBjb25zdWx0aW5nLgoKV2FudCB0byBoYXZlIGEgZnJlZSBPUyB3aXRoIGZyZWUgc29mdHdhcmUgc2VydmluZyB5b3VyIG5lZWRzIGJ1dCBkbyAKbm90IHdhbnQgdG8gc3BlbmQgdGltZSB5b3Vyc2VsZiBvciBub3QgdmVyeSBza2lsbGVkIHdpdGggdGhlIApjb21wdXRlcnM/ICBDYW5ub3QgZGVjaWRlIHdoaWNoIGZyZWUgc29mdHdhcmUgc3VpdHMgeW91ciBuZWVkcyAKYmV0dGVyPyAgRHJvcCBtZSBhIGxpbmUuCgpXZWxsLCBlc3NlbnRpYWxseSwgYW55dGhpbmcgZWxzZSBvbiBzcGVjaWFsIHJlcXVlc3QuICA6LSkKClJhdGU6ICQzMC9ob3VyIGlmIHlvdSBhcmUgaW4gTW9zY293IGFuZCBJIGFtIHRoZXJlIHdoZW4geW91IHJlcXVlc3QgCmpvYiBkb25lLCAkNTAgaWYgdGhlIGpvYiBtYXkgYmUgZG9uZSByZW1vdGVseSAobGlrZSBjb25maWd1cmluZyB1c2VyIApsZXZlbCBwcm9ncmFtKSwgJDYwL2hvdXIgKyB0cmF2ZWwgZXhwZW5zZXMgb3RoZXJ3aXNlLiAgKE5lZ290aWFibGUsIApzaWduaWZpY2FudCBkaXNjb3VudHMgbWF5IGFwcGx5LikKCkVudGVyZWQgMTk5Ny0wNy0xNwoMClZpbiBTaGVsdG9uCkV0aGVyU29mdCwgSW5jCjYxNy45MjQuNjQzNwo8YWNzQGFjbS5vcmc+CgpJIGhhdmUgYmVlbiBhIHByb2Zlc3Npb25hbCBwcm9ncmFtbWVyIGZvciAyMCB5ZWFycywgd2l0aCBtb3N0IG9mIHRoYXQgdGltZQpzcGVudCBkb2luZyBVTklYL0MvQysrIGhhY2tpbmcuICBNeSBzcGVjaWFsdGllcyBhcmUgKGluIG5vIHBhcnRpY3VsYXIKb3JkZXIpOiBzeXN0ZW0va2VybmVsIGhhY2tpbmcsIHNwZWVjaCByZWNvZ25pdGlvbiwgcGVybCwgb2JqZWN0LW9yaWVudGVkCmRlc2lnbiBhbmQgYW5hbHlzaXMsIEZTRiBzb2Z0d2FyZSAoSSBoYXZlIGJ1aWx0IG5lYXJseSBldmVyeSBGU0YgcGFja2FnZSBvbgpzZXZlcmFsIGRpZmZlcmVudCBwbGF0Zm9ybXMpLCBzbWFsbCBsYW5ndWFnZSBkZXNpZ24gYW5kIGltcGxlbWVudGF0aW9uLCBhbmQKSFRNTC93ZWIgcHJvZ3JhbW1pbmcuICBDdXJyZW50bHkgSSdtIGEgbWVtYmVyIG9mIHRoZSBYRW1hY3MgYmV0YSB0ZXN0aW5nCnRlYW0gLSBJJ20gcmVzcG9uc2libGUgZm9yIG1haW50YWluaW5nIHRoZSB2ZXJzaW9uIDE5LjE1IHBhdGNoZXMgYW5kIGhhdmUKd3JpdHRlbiBhIGZldyBzbWFsbCBwYWNrYWdlcy9saXNwIGhhY2tzLiAgTXkgcmF0ZXMgdmFyeSBmcm9tICQ2MCAtICQxMDAgcGVyCmhvdXIsIGRlcGVuZGluZyBvbiB0aGUgc2l6ZSBvZiB0aGUgcHJvamVjdC4KClVwZGF0ZWQ6IDE5OTctMDUtMDkKHwpTaWdudW0gU3VwcG9ydCBBQgkJPGluZm9Ac2lnbnVtLnNlPgpUZWtuaWtyaW5nZW4gOApTLTU4MyAzMCBMaW5rb3BpbmcsIFN3ZWRlbgorNDYgMTMgMjEgNDYgMDAgdm9pY2UKKzQ2IDEzIDIxIDQ3IDAwIGZheApodHRwOi8vd3d3LnNpZ251bS5zZS8KClNpZ251bSBTdXBwb3J0IEFCIGlzIGEgY29tcGFueSBkZWRpY2F0ZWQgdG8gc3VwcG9ydGluZywgZGV2ZWxvcGluZyBhbmQKZGlzdHJpYnV0aW5nIGZyZWUgc29mdHdhcmUgZm9yIG1haW5seSBVTklYIHN5c3RlbXMuIFRoZSBwZW9wbGUgYmVoaW5kClNpZ251bSBTdXBwb3J0IEFCIGhhdmUgbWFueSB5ZWFycyBvZiBnZW5lcmFsIFVOSVggYW5kIEludGVybmV0CmV4cGVyaWVuY2UsIGJvdGggYXMgc3lzdGVtIGFkbWluaXN0cmF0b3JzIGFuZCBhcyBwcm9ncmFtbWVycywgYW5kIGFsc28KZXh0ZW5zaXZlIGV4cGVyaWVuY2UgaW4gbWFpbnRhaW5pbmcgYW5kIGFkbWluaXN0cmluZyB0aGUgR05VIHByb2dyYW1zCmFuZCBMaW51eC4KClNpZ251bSBTdXBwb3J0IGRldmVsb3BzIGFuZCBtYXJrZXRzIHRoZSBmcmVlIEdVSSBlcXVpcGVkIFJlYWR5bmV0CkludGVybmV0IHNlcnZlciwgdGhlIGZyZWUgUEhUVFBEIGh0dHAgc2VydmVyIGFuZCB0aGUgZWFzeSB0byB1c2UgTGludXgKYmFzZWQgRnVlZ28gZmlyZXdhbGwuCgpTZXJ2aWNlcyBvZmZlcmVkOgoKIC0gU3VwcG9ydCBvbiBJbnRlcm5ldCBzZXJ2aWNlIHNvZnR3YXJlLCBlc3BlY2lhbGx5IHRoZSBmcmVlCiAgIFJlYWR5bmV0IEludGVybmV0IHNlcnZlciB3ZSBoYXZlIGRldmVsb3BlZCBmb3IgTGludXguCiAtIFN1cHBvcnQgb24gTGludXguCiAtIEN1c3RvbWl6YXRpb24gb2YgTGludXguCiAtIEluc3RhbGxhdGlvbiBhbmQgY3VzdG9taXppbmcgR05VIGFuZCBvdGhlciBmcmVlIHNvZnR3YXJlLiAgV2UgYXJlCiAgIG1ha2luZyBmcmVlIHNvZnR3YXJlIGFzIGVhc3kgdG8gaW5zdGFsbCBhbmQgdXNlIGFzIHNocmluayB3cmFwcGVkCiAgIHByb2dyYW1zLgogLSBXYXJyYW50eSBwcm90ZWN0aW9uLgogLSBGaW5kaW5nLCBSZWNvbW1lbmRpbmcgYW5kIEludmVzdGlnYXRpb24gb2YgZnJlZSBzb2Z0d2FyZSBpbiBhbnkKICAgYXJlYSBvZiB0aGUgY3VzdG9tZXJzIGNob2lzZS4KIC0gUmVndWxhciBjb25zdWx0aW5nLgoKUmF0ZXM6IEZvciBzb2Z0d2FyZSBpdGVtcywgcmVxdWVzdCBvdXIgcHJpY2UgbGlzdC4KICAgICAgIEZvciBjb25zdWx0aW5nLCA3MDAtOTAwIFNFSy9ob3VyLgoKVXBkYXRlZDogMTk5Ny0wNS0xMgofCiAgIEpvbiBTb2xvbW9uICAgICAgICAgICAgICAgICAgICAgPGpzb2xAZ251LmFpLm1pdC5lZHU+CiAgIDIzNSBNYWluIFN0LiwgQXB0IDNDLTEKICAgRWFzdCBIYXJ0Zm9yZCwgQ29ubi4gMDYxMTgKICAgKzEgODYwIDg5NS04Mjg5CgogICBNYWludGFpbnMgYWxsIEdOVSBzb2Z0d2FyZS4uLiBBdmFpbGFibGUgZm9yIEdlbmVyYWwgQ29uc3VsdGluZwogICAoY29udGFjdCBtZSBpZiB5b3UgYXJlIGludGVyZXN0ZWQpLi4uCiAgIFNlbmRtYWlsIGEgc3BlY2lhbHR5Li4uIENhbiBhbnN3ZXIgcXVlc3Rpb25zIHBlcnRhaW5pbmcgdG8gdGhlCiAgIGluc3RhbGxhdGlvbiwgbWFpbnRhaW5lbmNlLCBidWcgcmVwb3J0aW5nIGFuZCBmaXhpbmcgZm9yCiAgIG1vc3QgR05VIHByb2R1Y3RzLi4uIEFkaGVyaW5nIHRvIHRoZSBGU0YvR05VIGNvcHlsZWZ0IGZvciBhbGwKICAgd29yay4uLiAoSSBvbmx5IGNoYXJnZSBmb3IgdGhlIHRpbWUgaXQgdGFrZXMgdG8gZG8gdGhlIGFib3ZlLAogICB0aGUgc29mdHdhcmUgKGFuZCBtb3N0IEdOVSBjb3B5bGVmdCdkIHNvZnR3YXJlKSBpcyBmcmVlLgogICBJIGNhbiBtYWtlIHRhcGVzIGZvciB5b3UgaWYgeW91IG5lZWQgdGhhdC4uLgoKVXBkYXRlZDogMTk5Ny0wNS0wOQofCk5hbWU6ICAgICAgICAgICBKdWxpYW4gU3RhY2V5IDxqaHNAZnJlZWJzZC5vcmc+CkxvY2F0aW9uOglNdW5pY2ggR2VybWFueSwgJiBvbiB0aGUgSW50ZXJuZXQuClF1YWxpZmljYXRpb25zOiBVbml2ZXJzaXR5IERlZ3JlZSwgQlNjIEhvbnMgQ29tcHV0ZXIgJiBDeWJlcm5ldGljcywgMTk4MC4KUGhvbmU6ICAgICAgICAgICs0OS44OS4yNjg2MTYgICBGYXg6ICs0OS44OS4yNjA4MTIgICBEYXRhOiArNDkuODkuMjYwMjMyNzYKUmVzdW1lOgkJaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9+amhzLwpUaW1lIFpvbmU6ICAgICAgKzAxOjAwClJhdGU6ICAgICAgICAgICAxMzAtMTcwIERNL0hvdXIuICAyLjc4NDYgRE0gPSAxIFBvdW5kID0gVVMgJDEuNjMzMgpDb21tZXJjaWFsIEluZGVwZW5kZW50IEZyZWVsYW5jZSBDb25zdWx0YW5jeToKICAgICAgICAgICAgICAgIEFueSBVbml4IChpbmMgRnJlZUJTRCwgTGludXggZXRjKSwgQywgWC1XaW5kb3dzLCBGU0YgVG9vbHMsCiAgICAgICAgICAgICAgICBJbnRlcm5ldCwgU3lzdGVtcyBlbmdpbmVlcmluZywgaGFyZHdhcmUgaW50ZXJmYWNpbmcsIAogICAgICAgICAgICAgICAgcmVhbCB0aW1lLCBjb21tcyAmIHNjaWVudGlmaWMgaW5kdXN0cmlhbCwgZXZlbiBDeXJpbGxpYyAmCiAgICAgICAgICAgICAgICBDaGluZXNlIGludGVyZmFjZXMgZXRjLiAgTm8gRW1hY3MuIE5vIENvYm9sLgpGcmVlIFNvdXJjZXM6ICAgRlNGLCBGcmVlQlNEICYgTmV0QlNEIENWUyAmIGN1cnJlbnQgKGRhaWx5ISkgJiByZWxlYXNlcywKCQlYLVdpbmRvd3MsIFhGcmVlODYsIEZyZWUgZGlhbCBpbiBzb29uIChkZXRhaWxzIG9uIHdlYikuCgkJTWVkaWEgQ29weSBDaGFyZ2UgfkRNIDEwMCBRSUMgMS80IiA1MjVNLCAxNTBNLCAmIDYwTTsgJiBDQVMtNjBNLgpGcmVlIEdDQy0xLjQwCUZvciBTeW1tZXRyaWMgQ29tcHV0ZXIgU3lzdGVtcyBNb2RlbCAzNzUgKG5hdGl2ZSBjYyBpcyBicm9rZW4pLgpMYW5ndWFnZXM6ICAgICAgRGV1dHNjaCAmIEZyYW5jYWlzCiAgICAgICAgICAgICAgICBNYW4ga2FubiBtaXIgaW4gRGV1dHNjaCBzY2hyZWliZW4sIChvZGVyIG1pY2ggYW5ydWZlbikuCiAgICAgICAgICAgICAgICBKZSBjb21wcmVuZCBGcmFuY2FpcywgbWFpcyBqZSBuJ2VjcmlzIHBhcyBkZXMgcmVzcG9uc2VzIGVuIEZyLgohIE5PIEZSRUUgSEVMUCAhCgktIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZG8gbm90IHBheSBtZS4KCS0gSSBlYXJuIG15IGxpdmluZyBmcm9tIHByb2Zlc3Npb25hbCBjb25zdWx0YW5jeSBmZWVzLgoJLSBUaG91Z2ggSSB3cml0ZSBjb2RlIGZvciBwdWJsaWMgZG9tYWluIC4uLgoJLSBJIHdpbGwgTm90IHNvbHZlIHN0cmFuZ2VyJ3MgY29tcGxleCBwcm9ibGVtcyBmb3IgZnJlZSAhCldIRU4gQ09OVEFDVElORyBNRSwgIERPIFRISVMgOi0KCSAgMSkgVGVsbCBtZSBJbW1lZGlhdGVseSwgIEFyZSBZb3U6CgkJQSkgIEV4cGVjdGluZyB0byBwYXkgbXkgYmlsbCBmb3IgcHJvZmVzc2lvbmFsIGNvbnN1bHRhbmN5LgoJCUIpICBTZWVraW5nIGEgZmV3IG1pbnV0ZXMgYWR2aWNlIGZyZWUgb2YgY2hhcmdlLgoJICAyKSBHaXZlIG1lIHlvdXIgZW1haWwgYWRkZHJlc3MsIG9yIHRoYXQgb2YgYSBmcmllbmQuCgkgICAgIG9yIFZvbHVudGVlciB0byBwaG9uZSBiYWNrIH4gNSBkYXlzIGxhdGVyIHRvIGNvbGxlY3QgZm9sbG93LXVwCgkgICAgIGluZm8uICBmcm9tIHRoZSBuZXQuICAoTm8gSSB3aWxsIG5vdCBpbmN1ciBiaWxscyBwaG9uaW5nIHlvdSBiYWNrKS4KCSAgMykgU3BlYWsgRW5nbGlzaCBpZiB5b3Ugd2FudCBmcmVlIGFkdmljZSAhICBJIHNwZWFrIEdlcm1hbiwgJgoJICAgICBsaXN0ZW4gaW4gRnJlbmNoLCBidXQgaWYgeW91J3JlIG5vdCBwYXlpbmcsIG1ha2Ugc29tZSBlZmZvcnQgdG9vICEKClVwZGF0ZWQ6IDE5OTctMDUtMTUKHwpSaWNoYXJkIE0uIFN0YWxsbWFuCTxybXNAZ251LmFpLm1pdC5lZHU+CjU0NSBUZWNoIFNxLCBSbSA0MzAKQ2FtYnJpZGdlLCBNQSAwMjEzOQoKRW1hY3M6IGFueXRoaW5nIHdoYXRldmVyCklzIGFueW9uZSBpbnRlcmVzdGVkIGluIGNvdXJzZXMgaW4gdXNpbmcgb3IgZXh0ZW5kaW5nIEdOVSBFbWFjcz8KCk9yaWdpbmFsIGludmVudG9yIG9mIEVtYWNzIGFuZCBtYWluIGF1dGhvciBvZiBHTlUgRW1hY3MgYW5kIEdDQy4KClJhdGVzOiAkNi9taW4gb3IgJDI1MC9oci4KClVwZGF0ZWQ6IDE5OTctMDUtMDkKHwpLYXl2YW4gU3lsdmFuIDxrYXl2YW5Ac3lsdmFuLmNvbT4KU3lsdmFuIEFzc29jaWF0ZXMKODc5IExld2lzdG9uIERyaXZlClNhbiBKb3NlLCBDQSA5NTEzNi0xNTE3ClBob25lOiAoNDA4KSA5NzgtMTQwNwpGYXg6ICAgKDQwOCkgOTc4LTE0MTcKCkkgd2lsbCBoZWxwIHlvdSBwb3J0LCBpbnN0YWxsIGFuZCBjdXN0b21pemUgR05VIEVtYWNzLCBHQ0MsIEcrKywKYmlzb24sIGFuZCBvdGhlciBHTlUgdG9vbHMgb24gYWxtb3N0IGFueSBhcmNoaXRlY2h0dXJlIGFuZCBvcGVyYXRpbmcKc3lzdGVtLiBRdWVzdGlvbnMgYW5zd2VyZWQuIEdOVSBDIGFuZCBsaXNwIGhhY2tpbmcgYXZhaWxhYmxlLiBJIHdpbGwKYWxzbyBkbyBvbmdvaW5nIHN1cHBvcnQgYW5kIHBlcmlvZGljIHVwZ3JhZGVzIGlmIHlvdSBnZXQgb24gbXkgR05VCnNvZnR3YXJlIHN1YnNjcmlwdGlvbiBsaXN0LgoKUmF0ZXM6ICQ3MC0kMTAwL2hvdXIsIGRlcGVuZGluZyBvbiB0eXBlIG9mIHdvcmsuIFN1YnN0YW50aWFsIGRpc2NvdW50cwpmb3IgbG9uZy10ZXJtIGNvbnRyYWN0cyBhbmQgYWxzbyBmb3IgZWR1Y2F0aW9uYWwgb3Igbm9uLXByb2ZpdAppbnN0aXR1dGlvbnMuCgpFeHBlcmllbmNlOiBNYW55IGRpZmZlcmVudCBVbml4IHN5c3RlbXMgKDIuOUJTRCB0byA0LjRCU0QsIFhlbml4LCBTVlIzIGFuZApTVlI0LCBMaW51eCwgRnJlZUJTRCkuIFN5c3RlbXMgcHJvZ3JhbW1pbmcgYW5kIHN5c3RlbSBhZG1pbmlzdHJhdGlvbiBvbiBhbGwKYnJhbmRzIG9mIFVuaXguIEtlcm5lbCBoYWNraW5nIGV4cGVyaWVuY2UuIExvdHMgb2YgcG9ydGluZyBleHBlcmllbmNlLgoKVXBkYXRlZDogMTk5Ny0wNS0wOQofClRlcnJhVGVsIEFCIDxpbmZvQG5ldGcuc2U+ClRhbmtlZz1FNW5nZW4gNApTLTQxNyA1NiBHPUY2dGVib3JnLCBTd2VkZW4KKzQ2IDMxIDUwIDc5IDQwIHZvaWNlCis0NiAzMSA1MCA3OSAzOSBmYXgKaHR0cDovL3d3dy5uZXRnLnNlCgpUZXJyYVRlbCBBQiBpcyBhIGNvbXBhbnkgdGhhdCBkb2VzIGNvbnN1bHRhbnQgam9icyBhbmQgaG9sZHMgY291cnNlcwppbiB0aGUgZmllbGRzIG9mIFVuaXggc29mdHdhcmUsIFRDUC9JUCBuZXR3b3JraW5nIGFuZCBJbnRlcm5ldAphcHBsaWNhdGlvbnMuIFRoZSBwZW9wbGUgYmVoaW5kIFRlcnJhVGVsIEFCIGhhdmUgbWFueSB5ZWFycwpvZiBnZW5lcmFsIFVOSVggZXhwZXJpZW5jZSwgYm90aCBhcyBzeXN0ZW0gYWRtaW5pc3RyYXRvcnMgYW5kIGFzCnByb2dyYW1tZXJzLCBhbmQgYWxzbyBleHRlbnNpdmUgZXhwZXJpZW5jZSBpbiBtYWludGFpbmluZyB0aGUgR05VCnByb2dyYW1zOyBpbiBhZG1pbmlzdHJhdGlvbiBhcyB3ZWxsIGFzIGZpbmRpbmcgYW5kIGZpeGluZyBidWdzLgoKU2VydmljZXMgb2ZmZXJlZDoKCi0gSW5zdGFsbGF0aW9uIGFuZCBjdXN0b21pemluZyBHTlUgYW5kIG90aGVyIGZyZWUgc29mdHdhcmUuICBXZSB3aWxsCiAgbWFrZSBmcmVlIHNvZnR3YXJlIGFzIGVhc3kgdG8gaW5zdGFsbCBhbmQgdXNlIGFzIHNocmluayB3cmFwcGVkCiAgcHJvZ3JhbXMuCi0gU2VydmljZSBhbmQgc3VwcG9ydCBzdWJzY3JpcHRpb25zLgotIFdhcnJhbnR5IHByb3RlY3Rpb24uCi0gQ3VzdG9taXphdGlvbiBhbmQgcG9ydGluZy4KLSBTdWJzY3JpcHRpb25zIHRvIG5ldyB2ZXJzaW9ucyB3aGljaCB3ZSB3aWxsIHNlbmQgbW9udGhseSBvciB3aXRoCiAgYW55IG90aGVyIGludGVydmFsLgotIEZpbmRpbmcsIHJlY29tbWVuZGluZyBhbmQgaW52ZXN0aWdhdGluZyBmcmVlIHNvZnR3YXJlIGluIGFueQogIGFyZWEgb2YgdGhlIGN1c3RvbWVycyBjaG9pY2UuCi0gUmVndWxhciBjb25zdWx0aW5nLgotIFN1cHBvcnQgb24gSW50ZXJuZXQgc2VydmljZSBzb2Z0d2FyZSwgZXNwZWNpYWxseSB0aGUgZnJlZQotIFN1cHBvcnQgb24gTGludXguCi0gRnJlZXdhcmUgYmFzZWQgY291cnNlcyBpbiBVbml4IHVzYWdlLCBDLCBDKyssIG9yIGFueSBHTlUgdG9vbHMKClJhdGVzOiBGb3IgY291cnNlcywgY29udGFjdCB1cyBmb3IgYSBxdW90ZSwKRm9yIGNvbnN1bHRpbmcsICQ2MC0xMjAvaG91ciwgZGVwZW5kaW5nIG9uIGNvbnRyYWN0IGxlbmd0aC4KCkVudGVyZWQ6ICAxOTk3LTA1LTEyCh8KSm9uYXRoYW4gVGhvcm5idXJnIC8gQktJUyBDb25zdWx0aW5nCkUtbWFpbDogPGJraXNAaXNsYW5kLm5ldD4gICAgICAgKHByZWZlcnJlZCB3YXkgdG8gY29udGFjdCBtZSkKUG9zdGFsOiBCb3ggOC03LCBUaGV0aXMgSXNsYW5kICBCQyAgVjBSIDJZMCwgQ2FuYWRhClBob25lOiAgKDI1MCkgMjQ2LTM2NDAgICAgICAgICAgKHNvbWV3aGF0IHVucmVsaWFibGUpCgoqIEIuU2MgKEhvbm9ycyAxc3QgQ2xhc3MpIGluIE1hdGgrUGh5c2ljcytDUywgTS5TYyBhbmQgUGguRCBpbiBBc3Ryb25vbXkKKiAyMCsgeWVhcnMgY29tcHV0aW5nIGV4cGVyaWVuY2UgdXNpbmcgYSB3aWRlIHJhbmdlIG9mIHNvZnR3YXJlIGFuZAogIGhhcmR3YXJlIGVudmlyb25tZW50cwoKKiBWZXJ5IGZsdWVudCBpbiBDICgxNSsgeWVhcnMgZXhwZXJpZW5jZSkKKiBGbHVlbnQgaW4gQysrLCBQZXJsLCBzaCwgY3NoLCBBd2ssIEZvcnRyYW4sIFBML0ksIFBhc2NhbCwgQVBMLCBMaXNwLAogICAgICAgICAgICBCYXNpYywgTWFwbGUsIFJlZHVjZSwgdmFyaW91cyBtYWNoaW5lIGxhbmd1YWdlcwoqIFZlcnkgZmx1ZW50ICgxMCsgeWVhcnMgZXhwZXJpZW5jZSkgaW4gZ2VuZXJhbCBVbml4IHRvb2xzZXQgYW5kIHByb2dyYW1taW5nCiogR29vZCBrbm93bGVkZ2UgKDQrIHllYXJzIGV4cGVyaWVuY2UpIG9mIFVuaXggc3lzdGVtIGFkbWluaXN0cmF0aW9uCiAgKFN1bk9TLCBMaW51eCwgU0dJKQoqIFN0cm9uZyBiYWNrZ3JvdW5kIChib3RoIHRoZW9yeSBhbmQgcHJhY3RpY2FsIGV4cGVyaWVuY2UpIGluIFVuaXgvbmV0d29yawogIHNlY3VyaXR5LCBjb21wdXRlciBncmFwaGljcywgWCBhbmQgTW90aWYgR1VJIHByb2dyYW1taW5nCiogR29vZCBnZW5lcmFsIGtub3dsZWRnZSBvZiBVbml4IChrZXJuZWwpIGludGVybmFscyBhbmQgZGV2aWNlIGRyaXZlcnMKKiBWZXJ5IGZsdWVudCBpbiBMYVRlWCwgVGVYLCBhbHNvIEhUTUwsIEhUVFAsIGFuZCBDR0kgcHJvZ3JhbW1pbmcKKiBNZW1iZXIgb2YgVXNlbml4IChwcm9mZXNzaW9uYWwgYW5kIHRlY2huaWNhbCBVbml4IGFzc29jaWF0aW9uKSBhbmQKICBTQUdFIChzeXN0ZW0gYWRtaW5pc3RyYXRvcidzIGd1aWxkKQoKKiBWZXJ5IHN0cm9uZyBiYWNrZ3JvdW5kIChleHRlbnNpdmUgZXhwZXJpZW5jZSkgaW4gbnVtZXJpY2FsIGFuYWx5c2lzCiogU3Ryb25nIGJhY2tncm91bmRzIGluIGhhcmR3YXJlIGFyY2hpdGVjdHVyZSwgbWljcm9wcm9ncmFtbWluZywKICBwcm9ncmFtbWluZyBsYW5ndWFnZSBpbXBsZW1lbnRhdGlvbiwgY29tcGlsZXIgdGhlb3J5LCBkYXRhIHN0cnVjdHVyZXMsCiAgT1MgZGVzaWduIGFuZCBpbnRlcm5hbHMsIG5ldHdvcmtpbmcsIHN5bWJvbGljIG1hbmlwdWxhdGlvbiwgQUkKCkknbSBhdmFpbGFibGUgZm9yIFVuaXgtYmFzZWQgY29udHJhY3QgcHJvZ3JhbW1pbmcsIHNvZnR3YXJlIGluc3RhbGxhdGlvbiwKYW5kL29yIGdlbmVyYWwgc3lzdGVtIGFkbWluaXN0cmF0aW9uLiAgTXkgcmVjZW50IHByb2plY3RzIGluY2x1ZGUgc2V2ZXJhbAoyMEstNTBLIDUwSyBsaW5lIEMvTWFwbGUvQXdrIHNjaWVudGlmaWMgYXBwbGljYXRpb25zLCBzZXZlcmFsIHNtYWxsICgxSyBsaW5lKQpQZXJsL0F3ayB0ZXh0IHByb2Nlc3NvcnMgYW5kICJzeXN0ZW0gZ2x1ZSIgQ0dJIHByb2dyYW1zLCBmaW5kaW5nIGFuZCBmaXhpbmcKYnVncyBpbiBhIChmcmVlKSA1MEsgbGluZSBncmFwaGljcyBwYWNrYWdlLCBhbmQgYSBwYXJ0aWFsbHkgY29tcGxldGVkIHByb2plY3QKdG8gcG9ydCAocmVhbGx5IHJld3JpdGUpIHRoZSBHVUkgb2YgYSA1MEsgbGluZSBDKysgTmV0c2NhcGUgcGx1Z2luIGZyb20KV2luMzIgdG8gVW5peC9YL01vdGlmLgoKVW5sZXNzIG90aGVyd2lzZSByZXF1aXJlZCBieSBhIGNsaWVudCwgYWxsIHRoZSBzb2Z0d2FyZSBJIHdyaXRlIGlzIGNvdmVyZWQKYnkgdGhlIEdOVSBQdWJsaWMgTGljZW5zZS4gIE15IGJhc2ljIHJhdGUgaXMgQ2FuJDUwL2hvdXIgZm9yIHdvcmsgSSBjYW4gZG8KcmVtb3RlbHkgb3ZlciB0aGUgSW50ZXJuZXQsIG1vcmUgZm9yIG9uLXNpdGUgd29yaywgbGVzcyBmb3Igc2VsZWN0ZWQKbm9uLXByb2ZpdCBvcmdhbml6YXRpb25zLgoKVXBkYXRlZDogIDE5OTctMDUtMTkKHwpMZW9uYXJkIEguIFRvd2VyIEpyLgk8dG93ZXJAcHJlcC5haS5taXQuZWR1PgozNiBQb3J0ZXIgU3RyZWV0ClNvbWVydmlsbGUsIE1BCTAyMTQzClVTQQorMS02MTctNjIzLTc3MzkKCldpbGwgd29yayBvbiBtb3N0IEdOVSBzb2Z0d2FyZS4KSW5zdGFsbGF0aW9uLCBoYW5kaG9sZGluZywgdHJvdWJsZSBzaG9vdGluZywgZXh0ZW5zaW9ucywgdGVhY2hpbmcuCgpSYXRlczogJCAxNTAuMDAvaG91ciArIHRyYXZlbCBleHBlbnNlcy4gIE5lZ290aWFibGUgZm9yIG5vbi1wcm9maXRzLgoKRXhwZXJpZW5jZTogSGF2ZSBoYWNrZWQgb24gb3ZlciBhIGRvemVuIGFyY2hpdGVjdHVyZXMgaW4gbWFueSBsYW5ndWFnZXMuICBIYXZlCnN5c3RlbSBtb3RoZXJlZCB0b28gbWFueSB2YXJpZXRpZXMgb2YgVW5peGVzLiAgQXNzaXN0ZWQgcm1zIHdpdGggdGhlIGZyb250IGVuZApvZiBnY2MgYW5kIGl0cyBiYWNrLWVuZCBzdXBwb3J0LiAgUmVzdW1lIGF2YWlsYWJsZSBvbiByZXF1ZXN0LgoKVXBkYXRlZDogIDE5OTctMDUtMjQKHwpub3JpcyBuZXR3b3JrIEdtYkgKTWF0dGhpYXMgVXJsaWNocwpTY2hsZWllcm1hY2hlcnN0cmFzc2UgMTIKOTA0OTEgTnVlcm5iZXJnCkdlcm1hbnkKUGhvbmU6ICs0OSA5MTEgNTk4MTgtMApGYXg6ICs0OSA5MTEgNTk4MTgtMTEKPGluZm9Abm9yaXMuZGU+Cmh0dHA6Ly9pbmZvLm5vcmlzLmRlLyAoR2VybWFuKQoKRXhwZXJ0aXNlOgogIE9TIGludGVybmFscywgZXNwLiBMaW51eCBhbmQgQlNELCBlc3AuIGRldmljZSBkcml2ZXJzCiAgTmV0d29yayBwcm90b2NvbCAvIHByb2dyYW0gZGVzaWduIGFuZCBjb2RpbmcKICBVdGlsaXRpZXMgY29kaW5nIGFuZCBtYWludGFpbmFuY2UKICBQcm9ncmFtIGRlYnVnZ2luZywgdGVzdGluZwogIFVzZXIgaW50ZXJmYWNlIGRlc2lnbiBhbmQgdGVzdGluZwogIFNldmVyYWwgcHJvZ3JhbW1pbmcgYW5kIHRvb2wgbGFuZ3VhZ2VzCgpTZXJ2aWNlczoKICBJbnN0YWxsYXRpb24sIGRlYnVnZ2luZywgZW5oYW5jZW1lbnQsIGRpc3RyaWJ1dGlvbiwKICAgIGZvciBhbGwga2luZHMgb2YgZnJlZSBzb2Z0d2FyZS4KICBTeXN0ZW0gYWRtaW5pc3RyYXRpb24gZm9yIG1vc3QgVW5peC1saWtlIHN5c3RlbXMuCiAgRW1haWwsIEZheCwgcGhvbmUsIGFuZCBpbi1wZXJzb24gY29uc3VsdGluZyAoYW5kL29yICJxdWVzdGlvbiBhbnN3ZXJpbmciKS4KICBSZW1vdGUgc3VwcG9ydCBhbmQgc3lzdGVtIG1vbml0b3JpbmcgKG92ZXIgdGhlIEludGVybmV0KSwKICBVcGRhdGUgc2VydmljZSAobmV3IHRvb2xzIHRlc3RlZCBhbmQgaW5zdGFsbGVkIGF1dG9tYWdpY2FsbHkpCiAgSW50ZXJuZXQgYWNjZXNzCgpSYXRlczoKICBETSAxMTAgKH4kNzApIHBlciBob3VyCiAgU3VwcG9ydCBjb250cmFjdHMgc3RhcnQgYXQgRE0gMTcwL21vbnRoICsgRE0gMzAvc3VwcG9ydGVkIHN5c3RlbS4KICBXaWxsaW5nIHRvIHRyYXZlbCBmb3Igc3VmZmljaWVudGx5IGxhcmdlIGpvYnMuCiAgUmF0ZXMgZG9uJ3QgaW5jbHVkZSB0YXhlcy4KClVwZGF0ZWQ6IDE5OTYtMDctMDUKHwpQYXVsIEMuQS4gdmFuIEdvb2wKICAgICAgPFAudmFuR29vbEBMUi5UVURlbGZ0Lk5MPgoKQWRkcmVzczogRmFjdWx0eSBvZiBBZXJvc3BhY2UgRW5naW5lZXJpbmcKICAgICAgICAgRGVsZnQgVW5pdmVyc2l0eSBvZiBUZWNobm9sb2d5CiAgICAgICAgIEtsdXl2ZXJ3ZWcgMSwgIDI2MjkgSFMgRGVsZnQKICAgICAgICAgVGhlIE5ldGhlcmxhbmRzCgpQaG9uZTogKzMxLTE1LTI3ODUzNzAKRmF4ICA6ICszMS0xNS0yNzg2NDgwCgpJIHdvdWxkIGxpa2UgdG8gcHJvdmlkZSB1bnBhaWQgc3VwcG9ydCBmb3IgdGhlIGZvbGxvd2luZyB0aGluZ3M6CgotIEMKLSBDKysKLSBmMmMKLSBjb21waWxhdGlvbiBhbmQgaW5zdGFsbGF0aW9uIG9mIG1vc3QgR05VIHBhY2thZ2VzCgpVcGRhdGVkOiAgMTk5Ny0wNS0xMgofCkFybmUgV2ljaG1hbm4KCkVNYWlsOiA8YXdAbWF0aC51bmktc2IuZGU+ClRlbGVwaG9uZSBvbiByZXF1ZXN0LgoKSSBzdXBwb3J0IEdOVSBzb2Z0d2FyZSBvbiB0aGUgZm9sbG93aW5nIHBsYXRmb3JtczoKCkxpbnV4ClN1bk9TIDQuWCA1LlgKSFBVWCA5LlgKb3RoZXIgcGxhdGZvcm1zIG9uIHJlcXVlc3QuCgpVc3VhbCByYXRlczogMjBETSBwZXIgaG91ci4gRnJlZSBzdXBwb3J0IGZvciBwcml2YXRlIHBlb3BsZSBhcyB0aW1lCnBlcm1pdHMuCgpVcGRhdGVkOiAxOTk3LTA1LTE2Ch8KSm9keSBXaW5zdG9uCnhwcnQgQ29tcHV0ZXIgQ29uc3VsdGluZywgSW5jLgo3MzEgVm95YWdlcgpIb3VzdG9uLCBUWCwgNzcwNTgKKDI4MSkgNDgwLVVOSVgsIDxqb2R5QHNjY3NpLmNvbT4KCldlIGhhdmUgc3VwcG9ydGVkLCBpbnN0YWxsZWQsIGFuZCB1c2VkIHRoZSBlbnRpcmUgR05VIHNvZnR3YXJlIHN1aXRlCmZvciBvdmVyIDggeWVhcnMgb24gbWFueSBkaWZmZXJlbnQgVW5peCBwbGF0Zm9ybXMuICBXZSBoYXZlIHdyaXR0ZW4KY2hhcmFjdGVyIGRldmljZSBkcml2ZXJzIGFuZCBwcm9jIGZpbGUgc3lzdGVtcyBmb3IgY3VzdG9tIGhhcmR3YXJlCnJ1bm5pbmcgb24gTGludXguICBJbiBhZGRpdGlvbiwgd2UgaGF2ZSBkZXZlbG9wZWQgYSBjdXN0b20gWDExIHNlcnZlcgphbmQgWCBpbnB1dCBleHRlbnNpb25zLiBPdXIgY29uc3VsdGluZyByYXRlIGlzICQxNTAuMDAgVVMgZG9sbGFycyBwZXIKaG91ciwgbmVnb3RpYWJsZSwgcGx1cyBhIHBlciBkaWVtIGZvciBvdXQgb2YgdG93biB3b3JrLgoKVXBkYXRlZDogIDE5OTctMDUtMTIKHwpMaWdlIFpob3UKQ29uc3VsdGFudApPcGVuIFRlY2hub2xvZ2llcyBDb3Jwb3JhdGlvbgpTdW4gTG90dXMgQmxkZy4gMm5kIEZsb29yCjItOS0xIENodW91LCBOYWthbm8ta3UsIFRva3lvIDE2NCBKYXBhbgpUZWw6ICs4MS0zLTMzNjUtMjkxMSBGYXg6ICs4MS0zLTMzNjUtMjkyMApFLW1haWw6IDx6aG91QG9wZW50ZWNoLmNvLmpwPgoKTXkgcHJvZmlsZSBpcyBsaXN0ZWQgYXQ6ICBodHRwOi8vd3d3Lm9wZW50ZWNoLmNvLmpwL356aG91LwoKSSBoYXZlIHR3byB5ZWFycyBvZiBleHBlcmllbmNlIHBvcnRpbmcgYW5kIHN1cHBvcnRpbmcgR05VIEMgQ29tcGlsZXIgYW5kCkdOVSBBc3NlbWJlciBhdCB0aGUgV2luZ251dCBwcm9qZWN0IG9mIFNSQSwgSW5jLiwgVG9reW8uCgpJIGNhbiBwcm92aWRlIGZyZWUgY29uc3VsdGF0aW9uIG9uIHRoZXNlIHByb2R1Y3RzIGlmIHRoZSBwcm9ibGVtIGlzIG5vdAp0aW1lLWNvbnN1bWluZy4KClVwZGF0ZWQ6ICAxOTk2LTEyLTA0Ch8KCkZvciBhIGN1cnJlbnQgY29weSBvZiB0aGlzIGRpcmVjdG9yeSwgb3IgdG8gaGF2ZSB5b3Vyc2VsZiBsaXN0ZWQsIGFzazoKCWdudUBwcmVwLmFpLm1pdC5lZHUKCioqIFBsZWFzZSBrZWVwIHRoZSBlbnRyaWVzIGluIHRoaXMgZmlsZSBhbHBoYWJldGljYWwgKioK