Cv0OCiN1bml0dGVzdF9pbXBvcnRfcHVibGljX3Byb3RvMy5wcm90bxIYcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0IiMKE1B1YmxpY0ltcG9ydE1lc3NhZ2USDAoBZRgBIAEoBVIBZUIdqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK7w0KBhIEIAAoAQr2DAoBDBIDIAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyKCBBdXRob3I6IGxpdWppc2lAZ29vZ2xlLmNvbSAoUGhlcmwgTGl1KQoKCAoBAhIDIgAhCggKAQgSAyQANwoJCgIIJRIDJAA3CgoKAgQAEgQmACgBCgoKAwQAARIDJggbCgsKBAQAAgASAycBDQoMCgUEAAIABRIDJwEGCgwKBQQAAgABEgMnBwgKDAoFBAACAAMSAycLDGIGcHJvdG8zCoMTChx1bml0dGVzdF9pbXBvcnRfcHJvdG8zLnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQaI3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvIh0KDUltcG9ydE1lc3NhZ2USDAoBZBgBIAEoBVIBZCpZCgpJbXBvcnRFbnVtEhsKF0lNUE9SVF9FTlVNX1VOU1BFQ0lGSUVEEAASDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAlCHaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSoARCgYSBCQANgEKnw4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3aGljaCBpcyBpbXBvcnRlZCBieSB1bml0dGVzdF9wcm90bzMucHJvdG8gdG8gdGVzdCBpbXBvcnRpbmcuCgoICgECEgMmACEKCAoBCBIDKAA3CgkKAgglEgMoADcKHwoCAwASAysANBoUIFRlc3QgcHVibGljIGltcG9ydAoKCQoCCgASAysHDQoKCgIEABIELQAvAQoKCgMEAAESAy0IFQoLCgQEAAIAEgMuAg4KDAoFBAACAAUSAy4CBwoMCgUEAAIAARIDLggJCgwKBQQAAgADEgMuDA0KCgoCBQASBDEANgEKCgoDBQABEgMxBQ8KCwoEBQACABIDMgIeCgwKBQUAAgABEgMyAhkKDAoFBQACAAISAzIcHQoLCgQFAAIBEgMzAhEKDAoFBQACAQESAzMCDAoMCgUFAAIBAhIDMw8QCgsKBAUAAgISAzQCEQoMCgUFAAICARIDNAIMCgwKBQUAAgICEgM0DxAKCwoEBQACAxIDNQIRCgwKBQUAAgMBEgM1AgwKDAoFBQACAwISAzUPEFAAYgZwcm90bzMK6bsBChV1bml0dGVzdF9wcm90bzMucHJvdG8SEnByb3RvYnVmX3VuaXR0ZXN0MxocdW5pdHRlc3RfaW1wb3J0X3Byb3RvMy5wcm90byKrFgoMVGVzdEFsbFR5cGVzEiEKDHNpbmdsZV9pbnQzMhgBIAEoBVILc2luZ2xlSW50MzISIQoMc2luZ2xlX2ludDY0GAIgASgDUgtzaW5nbGVJbnQ2NBIjCg1zaW5nbGVfdWludDMyGAMgASgNUgxzaW5nbGVVaW50MzISIwoNc2luZ2xlX3VpbnQ2NBgEIAEoBFIMc2luZ2xlVWludDY0EiMKDXNpbmdsZV9zaW50MzIYBSABKBFSDHNpbmdsZVNpbnQzMhIjCg1zaW5nbGVfc2ludDY0GAYgASgSUgxzaW5nbGVTaW50NjQSJQoOc2luZ2xlX2ZpeGVkMzIYByABKAdSDXNpbmdsZUZpeGVkMzISJQoOc2luZ2xlX2ZpeGVkNjQYCCABKAZSDXNpbmdsZUZpeGVkNjQSJwoPc2luZ2xlX3NmaXhlZDMyGAkgASgPUg5zaW5nbGVTZml4ZWQzMhInCg9zaW5nbGVfc2ZpeGVkNjQYCiABKBBSDnNpbmdsZVNmaXhlZDY0EiEKDHNpbmdsZV9mbG9hdBgLIAEoAlILc2luZ2xlRmxvYXQSIwoNc2luZ2xlX2RvdWJsZRgMIAEoAVIMc2luZ2xlRG91YmxlEh8KC3NpbmdsZV9ib29sGA0gASgIUgpzaW5nbGVCb29sEiMKDXNpbmdsZV9zdHJpbmcYDiABKAlSDHNpbmdsZVN0cmluZxIhCgxzaW5nbGVfYnl0ZXMYDyABKAxSC3NpbmdsZUJ5dGVzEmIKFXNpbmdsZV9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVITc2luZ2xlTmVzdGVkTWVzc2FnZRJYChZzaW5nbGVfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUhRzaW5nbGVGb3JlaWduTWVzc2FnZRJbChVzaW5nbGVfaW1wb3J0X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZVITc2luZ2xlSW1wb3J0TWVzc2FnZRJZChJzaW5nbGVfbmVzdGVkX2VudW0YFSABKA4yKy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEHNpbmdsZU5lc3RlZEVudW0STwoTc2luZ2xlX2ZvcmVpZ25fZW51bRgWIAEoDjIfLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduRW51bVIRc2luZ2xlRm9yZWlnbkVudW0SUgoSc2luZ2xlX2ltcG9ydF9lbnVtGBcgASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW1SEHNpbmdsZUltcG9ydEVudW0Sbgocc2luZ2xlX3B1YmxpY19pbXBvcnRfbWVzc2FnZRgaIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlUhlzaW5nbGVQdWJsaWNJbXBvcnRNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEmYKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USXAoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEl8KF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSFXJlcGVhdGVkSW1wb3J0TWVzc2FnZRJdChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIScmVwZWF0ZWROZXN0ZWRFbnVtElMKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIfLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduRW51bVITcmVwZWF0ZWRGb3JlaWduRW51bRJWChRyZXBlYXRlZF9pbXBvcnRfZW51bRg1IAMoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtUhJyZXBlYXRlZEltcG9ydEVudW0ScgoecmVwZWF0ZWRfcHVibGljX2ltcG9ydF9tZXNzYWdlGDYgAygLMi0ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LlB1YmxpY0ltcG9ydE1lc3NhZ2VSG3JlcGVhdGVkUHVibGljSW1wb3J0TWVzc2FnZRIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzISYgoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzGh8KDU5lc3RlZE1lc3NhZ2USDgoCYmIYASABKAVSAmJiIlYKCk5lc3RlZEVudW0SGwoXTkVTVEVEX0VOVU1fVU5TUEVDSUZJRUQQABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCLdAQoSTmVzdGVkVGVzdEFsbFR5cGVzEjwKBWNoaWxkGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3QzLk5lc3RlZFRlc3RBbGxUeXBlc1IFY2hpbGQSOgoHcGF5bG9hZBgCIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNSB3BheWxvYWQSTQoOcmVwZWF0ZWRfY2hpbGQYAyADKAsyJi5wcm90b2J1Zl91bml0dGVzdDMuTmVzdGVkVGVzdEFsbFR5cGVzUg1yZXBlYXRlZENoaWxkIkUKFFRlc3REZXByZWNhdGVkRmllbGRzEi0KEGRlcHJlY2F0ZWRfaW50MzIYASABKAVCAhgBUg9kZXByZWNhdGVkSW50MzIiHgoORm9yZWlnbk1lc3NhZ2USDAoBYxgBIAEoBVIBYyIwChJUZXN0UmVzZXJ2ZWRGaWVsZHNKBAgCEANKBAgPEBBKBAgJEAxSA2JhclIDYmF6ImoKEVRlc3RGb3JlaWduTmVzdGVkElUKDmZvcmVpZ25fbmVzdGVkGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUg1mb3JlaWduTmVzdGVkIjsKGFRlc3RSZWFsbHlMYXJnZVRhZ051bWJlchIMCgFhGAEgASgFUgFhEhEKAmJiGP///38gASgFUgJiYiJcChRUZXN0UmVjdXJzaXZlTWVzc2FnZRI2CgFhGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RSZWN1cnNpdmVNZXNzYWdlUgFhEgwKAWkYAiABKAVSAWkiUAoUVGVzdE11dHVhbFJlY3Vyc2lvbkESOAoCYmIYASABKAsyKC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE11dHVhbFJlY3Vyc2lvbkJSAmJiInUKFFRlc3RNdXR1YWxSZWN1cnNpb25CEjYKAWEYASABKAsyKC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE11dHVhbFJlY3Vyc2lvbkFSAWESJQoOb3B0aW9uYWxfaW50MzIYAiABKAVSDW9wdGlvbmFsSW50MzIiVAoSVGVzdEVudW1BbGxvd0FsaWFzEj4KBXZhbHVlGAEgASgOMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RFbnVtV2l0aER1cFZhbHVlUgV2YWx1ZSL7AwoXVGVzdENhbWVsQ2FzZUZpZWxkTmFtZXMSJgoOUHJpbWl0aXZlRmllbGQYASABKAVSDlByaW1pdGl2ZUZpZWxkEiAKC1N0cmluZ0ZpZWxkGAIgASgJUgtTdHJpbmdGaWVsZBI9CglFbnVtRmllbGQYAyABKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SCUVudW1GaWVsZBJGCgxNZXNzYWdlRmllbGQYBCABKAsyIi5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbk1lc3NhZ2VSDE1lc3NhZ2VGaWVsZBI2ChZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkGAcgAygFUhZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkEjAKE1JlcGVhdGVkU3RyaW5nRmllbGQYCCADKAlSE1JlcGVhdGVkU3RyaW5nRmllbGQSTQoRUmVwZWF0ZWRFbnVtRmllbGQYCSADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SEVJlcGVhdGVkRW51bUZpZWxkElYKFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAogAygLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUhRSZXBlYXRlZE1lc3NhZ2VGaWVsZCL/AQoSVGVzdEZpZWxkT3JkZXJpbmdzEhsKCW15X3N0cmluZxgLIAEoCVIIbXlTdHJpbmcSFQoGbXlfaW50GAEgASgDUgVteUludBIZCghteV9mbG9hdBhlIAEoAlIHbXlGbG9hdBJpChVzaW5nbGVfbmVzdGVkX21lc3NhZ2UYyAEgASgLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RGaWVsZE9yZGVyaW5ncy5OZXN0ZWRNZXNzYWdlUhNzaW5nbGVOZXN0ZWRNZXNzYWdlGi8KDU5lc3RlZE1lc3NhZ2USDgoCb28YAiABKANSAm9vEg4KAmJiGAEgASgFUgJiYiJYChFTcGFyc2VFbnVtTWVzc2FnZRJDCgtzcGFyc2VfZW51bRgBIAEoDjIiLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0U3BhcnNlRW51bVIKc3BhcnNlRW51bSIfCglPbmVTdHJpbmcSEgoEZGF0YRgBIAEoCVIEZGF0YSIgCgpNb3JlU3RyaW5nEhIKBGRhdGEYASADKAlSBGRhdGEiHgoIT25lQnl0ZXMSEgoEZGF0YRgBIAEoDFIEZGF0YSIfCglNb3JlQnl0ZXMSEgoEZGF0YRgBIAEoDFIEZGF0YSIiCgxJbnQzMk1lc3NhZ2USEgoEZGF0YRgBIAEoBVIEZGF0YSIjCg1VaW50MzJNZXNzYWdlEhIKBGRhdGEYASABKA1SBGRhdGEiIgoMSW50NjRNZXNzYWdlEhIKBGRhdGEYASABKANSBGRhdGEiIwoNVWludDY0TWVzc2FnZRISCgRkYXRhGAEgASgEUgRkYXRhIiEKC0Jvb2xNZXNzYWdlEhIKBGRhdGEYASABKAhSBGRhdGEikwEKCVRlc3RPbmVvZhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxJDCgtmb29fbWVzc2FnZRgDIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNIAFIKZm9vTWVzc2FnZUIFCgNmb28i7gQKD1Rlc3RQYWNrZWRUeXBlcxIlCgxwYWNrZWRfaW50MzIYWiADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYWyADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGFwgAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYXSADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhheIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGGIgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GGQgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhlIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhmIAMoCEICEAFSCnBhY2tlZEJvb2wSRAoLcGFja2VkX2VudW0YZyADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1CAhABUgpwYWNrZWRFbnVtIqgFChFUZXN0VW5wYWNrZWRUeXBlcxIpCg51bnBhY2tlZF9pbnQzMhhaIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWyADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhcIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhdIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhheIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBhfIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYYCADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGQgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZSADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGYgAygIQgIQAFIMdW5wYWNrZWRCb29sEkgKDXVucGFja2VkX2VudW0YZyADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1CAhAAUgx1bnBhY2tlZEVudW0inwIKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEikKEHJlcGVhdGVkX2ZpeGVkMzIYDCADKAdSD3JlcGVhdGVkRml4ZWQzMhIlCg5yZXBlYXRlZF9pbnQzMhgNIAMoBVINcmVwZWF0ZWRJbnQzMhIqChByZXBlYXRlZF9maXhlZDY0GP4PIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EiYKDnJlcGVhdGVkX2ludDY0GP8PIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg5yZXBlYXRlZF9mbG9hdBj+/w8gAygCUg1yZXBlYXRlZEZsb2F0EikKD3JlcGVhdGVkX3VpbnQ2NBj//w8gAygEUg5yZXBlYXRlZFVpbnQ2NCIrChtUZXN0Q29tbWVudEluamVjdGlvbk1lc3NhZ2USDAoBYRgBIAEoCVIBYSIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIhIKEEZvb0NsaWVudE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpCYXJSZXF1ZXN0Ig0KC0JhclJlc3BvbnNlIhIKEFRlc3RFbXB0eU1lc3NhZ2UiggEKDkNvbW1lbnRNZXNzYWdlEhIKBHRleHQYASABKAlSBHRleHQaNwoUTmVzdGVkQ29tbWVudE1lc3NhZ2USHwoLbmVzdGVkX3RleHQYASABKAlSCm5lc3RlZFRleHQiIwoRTmVzdGVkQ29tbWVudEVudW0SDgoKWkVST19WQUxVRRAAKlkKC0ZvcmVpZ25FbnVtEhcKE0ZPUkVJR05fVU5TUEVDSUZJRUQQABIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBip1ChRUZXN0RW51bVdpdGhEdXBWYWx1ZRIoCiRURVNUX0VOVU1fV0lUSF9EVVBfVkFMVUVfVU5TUEVDSUZJRUQQABIICgRGT08xEAESCAoEQkFSMRACEgcKA0JBWhADEggKBEZPTzIQARIICgRCQVIyEAIaAhABKp0BCg5UZXN0U3BhcnNlRW51bRIgChxURVNUX1NQQVJTRV9FTlVNX1VOU1BFQ0lGSUVEEAASDAoIU1BBUlNFX0EQexIOCghTUEFSU0VfQhCm5wMSDwoIU1BBUlNFX0MQsrGABhIVCghTUEFSU0VfRBDx//////////8BEhUKCFNQQVJTRV9FELTe/P///////wESDAoIU1BBUlNFX0cQAiodCgtDb21tZW50RW51bRIOCgpaRVJPX1ZBTFVFEAAynQEKC1Rlc3RTZXJ2aWNlEkYKA0ZvbxIeLnByb3RvYnVmX3VuaXR0ZXN0My5Gb29SZXF1ZXN0Gh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvb1Jlc3BvbnNlEkYKA0JhchIeLnByb3RvYnVmX3VuaXR0ZXN0My5CYXJSZXF1ZXN0Gh8ucHJvdG9idWZfdW5pdHRlc3QzLkJhclJlc3BvbnNlQixCDVVuaXR0ZXN0UHJvdG+qAhpHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvc0rafwoHEgUkAJkDAQr/DQoBDBIDJAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoysAEgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogQSBwcm90byBmaWxlIHdlIHdpbGwgdXNlIGZvciB1bml0IHRlc3RpbmcuCgoICgEIEgMmADcKCQoCCCUSAyYANwoICgEIEgMqAC4KYAoCCAgSAyoALhpVIE9ubHkgcHJlc2VudCBzbyB3ZSBjYW4gdGVzdCB0aGF0IHdlIGNhbiByZWFkIGl0IChhcyBhbiBleGFtcGxlCiBvZiBhIG5vbi1DIyBvcHRpb24pCgoJCgIDABIDLAAmCggKAQISAy4AGwpcCgIEABIFMgCCAQEaTyBUaGlzIHByb3RvIGluY2x1ZGVzIGV2ZXJ5IHR5cGUgb2YgZmllbGQgaW4gYm90aCBzaW5ndWxhciBhbmQgcmVwZWF0ZWQKIGZvcm1zLgoKCgoDBAABEgMyCBQKDAoEBAADABIEMwI4AwoMCgUEAAMAARIDMwoXCuMBCgYEAAMAAgASAzcEERrTASBUaGUgZmllbGQgbmFtZSAiYiIgZmFpbHMgdG8gY29tcGlsZSBpbiBwcm90bzEgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aAogYSBsb2NhbCB2YXJpYWJsZSBuYW1lZCAiYiIgaW4gb25lIG9mIHRoZSBnZW5lcmF0ZWQgbWV0aG9kcy4gIERvaC4KIFRoaXMgZmlsZSBuZWVkcyB0byBjb21waWxlIGluIHByb3RvMSB0byB0ZXN0IGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LgoKDgoHBAADAAIABRIDNwQJCg4KBwQAAwACAAESAzcKDAoO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EwoNCgUEGQICARIExgIUIwoNCgUEGQICAxIExgIpKwoNCgUEGQICCBIExgIsPAoOCgYEGQICCAISBMYCLTsKDAoEBBkCAxIExwICPQoNCgUEGQIDBBIExwICCgoNCgUEGQIDBRIExwINEwoNCgUEGQIDARIExwIUIwoNCgUEGQIDAxIExwIpKwoNCgUEGQIDCBIExwIsPAoOCgYEGQIDCAISBMcCLTsKDAoEBBkCBBIEyAICPQoNCgUEGQIEBBIEyAICCgoNCgUEGQIEBRIEyAINEwoNCgUEGQIEARIEyAIUIwoNCgUEGQIEAxIEyAIpKwoNCgUEGQIECBIEyAIsPAoOCgYEGQIECAISBMgCLTsKDAoEBBkCBRIEyQICPQoNCgUEGQIFBBIEyQICCgoNCgUEGQIFBRIEyQINEwoNCgUEGQIFARIEyQIUIwoNCgUEGQIFAxIEyQIpKwoNCgUEGQIFCBIEyQIsPAoOCgYEGQIFCAISBMkCLTsKDAoEBBkCBhIEygICPQoNCgUEGQIGBBIEygICCgoNCgUEGQIGBRIEygIMEwoNCgUEGQIGARIEygIUJAoNCgUEGQIGAxIEygIpKwoNCgUEGQIGCBIEygIsPAoOCgYEGQIGCAISBMoCLTsKDAoEBBkCBxIEywICPQoNCgUEGQIHBBIEywICCgoNCgUEGQIHBRIEywIMEwoNCgUEGQIHARIEywIUJAoNCgUEGQIHAxIEywIpKwoNCgUEGQIHCBIEywIsPAoOCgYEGQIHCAISBMsCLTsKDAoEBBkCCBIEzAICPQoNCgUEGQIIBBIEzAICCgoNCgUEGQIIBRIEzAILEwoNCgUEGQIIARIEzAIUJQoNCgUEGQIIAxIEzAIpKwoNCgUEGQIICBIEzAIsPAoOCgYEGQIICAISBMwCLTsKDAoEBBkCCRIEzQICPQoNCgUEGQIJBBIEzQICCgoNCgUEGQIJBRIEzQILEwoNCgUEGQIJARIEzQIUJQoNCgUEGQIJAxIEzQIpKwoNCgUEGQIJCBIEzQIsPAoOCgYEGQIJCAISBM0CLTsKDAoEBBkCChIEzgICPQoNCgUEGQIKBBIEzgICCgoNCgUEGQIKBRIEzgIOEwoNCgUEGQIKARIEzgIUIgoNCgUEGQIKAxIEzgIoKwoNCgUEGQIKCBIEzgIsPAoOCgYEGQIKCAISBM4C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YWdlIGNvbW1lbnQKCg0KBQQjAwABEgSGAwoeCjYKBgQjAwACABIEiAMEGxomIExlYWRpbmcgbmVzdGVkIG1lc3NhZ2UgZmllbGQgY29tbWVudAoKDwoHBCMDAAIABRIEiAMECgoPCgcEIwMAAgABEgSIAwsWCg8KBwQjAwACAAMSBIgDGRoKLQoEBCMEABIGjAMCjwMDGh0gTGVhZGluZyBuZXN0ZWQgZW51bSBjb21tZW50CgoNCgUEIwQAARIEjAMHGAokCgYEIwQAAgASBI4DBBMaFCBaZXJvIHZhbHVlIGNvbW1lbnQKCg8KBwQjBAACAAESBI4DBA4KDwoHBCMEAAIAAhIEjgMREgo/CgQEIwIAEgSSAwISGhcgTGVhZGluZyBmaWVsZCBjb21tZW50CiIYIFRyYWlsaW5nIGZpZWxkIGNvbW1lbnQKCg0KBQQjAgAFEgSSAwIICg0KBQQjAgABEgSSAwkNCg0KBQQjAgADEgSSAxARCiQKAgUDEgaWAwCZAwEaFiBMZWFkaW5nIGVudW0gY29tbWVudAoKCwoDBQMBEgSWAwUQCiIKBAUDAgASBJgDAhEaFCBaZXJvIHZhbHVlIGNvbW1lbnQKCg0KBQUDAgABEgSYAwIMCg0KBQUDAgACEgSYAw8QYgZwcm90bzMKxVgKGW1hcF91bml0dGVzdF9wcm90bzMucHJvdG8SEnByb3RvYnVmX3VuaXR0ZXN0MxoVdW5pdHRlc3RfcHJvdG8zLnByb3RvIpkWCgdUZXN0TWFwElYKD21hcF9pbnQzMl9pbnQzMhgBIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJWCg9tYXBfaW50NjRfaW50NjQYAiADKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQ2NEludDY0RW50cnlSDW1hcEludDY0SW50NjQSXAoRbWFwX3VpbnQzMl91aW50MzIYAyADKAsyMC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBVaW50MzJVaW50MzJFbnRyeVIPbWFwVWludDMyVWludDMyElwKEW1hcF91aW50NjRfdWludDY0GAQgAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJcChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ug9tYXBTaW50MzJTaW50MzISXAoRbWFwX3NpbnQ2NF9zaW50NjQYBiADKAsyMC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBTaW50NjRTaW50NjRFbnRyeVIPbWFwU2ludDY0U2ludDY0EmIKE21hcF9maXhlZDMyX2ZpeGVkMzIYByADKAsyMi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJiChNtYXBfZml4ZWQ2NF9maXhlZDY0GAggAygLMjIucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeVIRbWFwRml4ZWQ2NEZpeGVkNjQSaAoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGAkgAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5UhNtYXBTZml4ZWQzMlNmaXhlZDMyEmgKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBgKIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJWCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkZsb2F0RW50cnlSDW1hcEludDMyRmxvYXQSWQoQbWFwX2ludDMyX2RvdWJsZRgMIAMoCzIvLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDMyRG91YmxlRW50cnlSDm1hcEludDMyRG91YmxlElAKDW1hcF9ib29sX2Jvb2wYDSADKAsyLC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJcChFtYXBfc3RyaW5nX3N0cmluZxgOIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFN0cmluZ1N0cmluZ0VudHJ5Ug9tYXBTdHJpbmdTdHJpbmcSVgoPbWFwX2ludDMyX2J5dGVzGA8gAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJCeXRlc0VudHJ5Ug1tYXBJbnQzMkJ5dGVzElMKDm1hcF9pbnQzMl9lbnVtGBAgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJFbnVtRW50cnlSDG1hcEludDMyRW51bRJyChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGBEgAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5UhZtYXBJbnQzMkZvcmVpZ25NZXNzYWdlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGkIKFE1hcFN0cmluZ1N0cmluZ0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEaQAoSTWFwSW50MzJCeXRlc0VudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgMUgV2YWx1ZToCOAEaXAoRTWFwSW50MzJFbnVtRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKA4yGy5wcm90b2J1Zl91bml0dGVzdDMuTWFwRW51bVIFdmFsdWU6AjgBGm0KG01hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI4CgV2YWx1ZRgCIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBIksKEVRlc3RNYXBTdWJtZXNzYWdlEjYKCHRlc3RfbWFwGAEgASgLMhsucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXBSB3Rlc3RNYXAi2wEKDlRlc3RNZXNzYWdlTWFwEmMKEW1hcF9pbnQzMl9tZXNzYWdlGAEgAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNZXNzYWdlTWFwLk1hcEludDMyTWVzc2FnZUVudHJ5Ug9tYXBJbnQzMk1lc3NhZ2UaZAoUTWFwSW50MzJNZXNzYWdlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSNgoFdmFsdWUYAiABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzUgV2YWx1ZToCOAEiiQIKD1Rlc3RTYW1lVHlwZU1hcBJBCgRtYXAxGAEgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RTYW1lVHlwZU1hcC5NYXAxRW50cnlSBG1hcDESQQoEbWFwMhgCIAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0U2FtZVR5cGVNYXAuTWFwMkVudHJ5UgRtYXAyGjcKCU1hcDFFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGjcKCU1hcDJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBIq0UCgxUZXN0QXJlbmFNYXASWwoPbWFwX2ludDMyX2ludDMyGAEgAygLMjMucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkludDMyRW50cnlSDW1hcEludDMySW50MzISWwoPbWFwX2ludDY0X2ludDY0GAIgAygLMjMucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQ2NEludDY0RW50cnlSDW1hcEludDY0SW50NjQSYQoRbWFwX3VpbnQzMl91aW50MzIYAyADKAsyNS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzISYQoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyNS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5Ug9tYXBVaW50NjRVaW50NjQSYQoRbWFwX3NpbnQzMl9zaW50MzIYBSADKAsyNS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ug9tYXBTaW50MzJTaW50MzISYQoRbWFwX3NpbnQ2NF9zaW50NjQYBiADKAsyNS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSZwoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeVIRbWFwRml4ZWQzMkZpeGVkMzISZwoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBgIIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeVIRbWFwRml4ZWQ2NEZpeGVkNjQSbQoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGAkgAygLMjkucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISbQoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GAogAygLMjkucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnlSE21hcFNmaXhlZDY0U2ZpeGVkNjQSWwoPbWFwX2ludDMyX2Zsb2F0GAsgAygLMjMucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkZsb2F0RW50cnlSDW1hcEludDMyRmxvYXQSXgoQbWFwX2ludDMyX2RvdWJsZRgMIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSVQoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIxLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwQm9vbEJvb2xFbnRyeVILbWFwQm9vbEJvb2wSWAoObWFwX2ludDMyX2VudW0YDiADKAsyMi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMyRW51bUVudHJ5UgxtYXBJbnQzMkVudW0SdwoZbWFwX2ludDMyX2ZvcmVpZ25fbWVzc2FnZRgPIAMoCzI8LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5UhZtYXBJbnQzMkZvcmVpZ25NZXNzYWdlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGlwKEU1hcEludDMyRW51bUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgOMhsucHJvdG9idWZfdW5pdHRlc3QzLk1hcEVudW1SBXZhbHVlOgI4ARptChtNYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSOAoFdmFsdWUYAiABKAsyIi5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbk1lc3NhZ2VSBXZhbHVlOgI4ASL4AQofTWVzc2FnZUNvbnRhaW5pbmdFbnVtQ2FsbGVkVHlwZRJRCgR0eXBlGAEgAygLMj0ucHJvdG9idWZfdW5pdHRlc3QzLk1lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGUuVHlwZUVudHJ5UgR0eXBlGmwKCVR5cGVFbnRyeRIQCgNrZXkYASABKAVSA2tleRJJCgV2YWx1ZRgCIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0My5NZXNzYWdlQ29udGFpbmluZ0VudW1DYWxsZWRUeXBlUgV2YWx1ZToCOAEiFAoEVHlwZRIMCghUWVBFX0ZPTxAAIrEBCh9NZXNzYWdlQ29udGFpbmluZ01hcENhbGxlZEVudHJ5ElQKBWVudHJ5GAEgAygLMj4ucHJvdG9idWZfdW5pdHRlc3QzLk1lc3NhZ2VDb250YWluaW5nTWFwQ2FsbGVkRW50cnkuRW50cnlFbnRyeVIFZW50cnkaOAoKRW50cnlFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBKj8KB01hcEVudW0SEAoMTUFQX0VOVU1fRk9PEAASEAoMTUFQX0VOVU1fQkFSEAESEAoMTUFQX0VOVU1fQkFaEAJCHaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSuIkCgYSBCQAcwEKmw8KAQwSAyQAEhrMAiBUaGlzIGZpbGUgaXMgbW9zdGx5IGVxdWl2YWxlbnQgdG8gbWFwX3VuaXR0ZXN0LnByb3RvLCBidXQgaW1wb3J0cwogdW5pdHRlc3RfcHJvdG8zLnByb3RvIGluc3RlYWQgb2YgdW5pdHRlc3QucHJvdG8sIHNvIHRoYXQgaXQgb25seQogdXNlcyBwcm90bzMgbWVzc2FnZXMuIFRoaXMgbWFrZXMgaXQgc3VpdGFibGUgZm9yIHRlc3RpbmcKIGltcGxlbWVudGF0aW9ucyB3aGljaCBvbmx5IHN1cHBvcnQgcHJvdG8zLgogVGhlIFRlc3RSZXF1aXJlZE1lc3NhZ2VNYXAgbWVzc2FnZSBoYXMgYmVlbiByZW1vdmVkIGFzIHRoZXJlIGFyZSBubwogcmVxdWlyZWQgZmllbGRzIGluIHByb3RvMy4KMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V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Gj4gUHJldmlvdXNseSwgbWVzc2FnZSBjYW5ub3QgY29udGFpbiBtYXAgZmllbGQgY2FsbGVkICJlbnRyeSIuCgoKCgMEBgESA3EIJwoLCgQEBgIAEgNyAh4KDAoFBAYCAAYSA3ICEwoMCgUEBgIAARIDchQZCgwKBQQGAgADEgNyHB1iBnByb3RvMwqBIwocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIpgBCgZTdHJ1Y3QSOwoGZmllbGRzGAEgAygLMiMuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdC5GaWVsZHNFbnRyeVIGZmllbGRzGlEKC0ZpZWxkc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgV2YWx1ZToCOAEisgIKBVZhbHVlEjsKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSCW51bGxWYWx1ZRIjCgxudW1iZXJfdmFsdWUYAiABKAFIAFILbnVtYmVyVmFsdWUSIwoMc3RyaW5nX3ZhbHVlGAMgASgJSABSC3N0cmluZ1ZhbHVlEh8KCmJvb2xfdmFsdWUYBCABKAhIAFIJYm9vbFZhbHVlEjwKDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAFILc3RydWN0VmFsdWUSOwoKbGlzdF92YWx1ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5MaXN0VmFsdWVIAFIJbGlzdFZhbHVlQgYKBGtpbmQiOwoJTGlzdFZhbHVlEi4KBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVIGdmFsdWVzKhsKCU51bGxWYWx1ZRIOCgpOVUxMX1ZBTFVFEABCgQEKE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaMWdpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3B0eXBlcy9zdHJ1Y3Q7c3RydWN0cGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKmR0KBhIEHgBeAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAHwoJCgIIHxIDIwAfCggKAQgSAyQASAoJCgIICxIDJABICggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYALAoJCgIICBIDJgAsCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCrMDCgIEABIEMgA1ARqmAyBgU3RydWN0YCByZXByZXNlbnRzIGEgc3RydWN0dXJlZCBkYXRhIHZhbHVlLCBjb25zaXN0aW5nIG9mIGZpZWxkcwogd2hpY2ggbWFwIHRvIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlcy4gSW4gc29tZSBsYW5ndWFnZXMsIGBTdHJ1Y3RgCiBtaWdodCBiZSBzdXBwb3J0ZWQgYnkgYSBuYXRpdmUgcmVwcmVzZW50YXRpb24uIEZvciBleGFtcGxlLCBpbgogc2NyaXB0aW5nIGxhbmd1YWdlcyBsaWtlIEpTIGEgc3RydWN0IGlzIHJlcHJlc2VudGVkIGFzIGFuCiBvYmplY3QuIFRoZSBkZXRhaWxzIG9mIHRoYXQgcmVwcmVzZW50YXRpb24gYXJlIGRlc2NyaWJlZCB0b2dldGhlcgogd2l0aCB0aGUgcHJvdG8gc3VwcG9ydCBmb3IgdGhlIGxhbmd1YWdlLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgU3RydWN0YCBpcyBKU09OIG9iamVjdC4KCgoKAwQAARIDMggOCjkKBAQAAgASAzQCIBosIFVub3JkZXJlZCBtYXAgb2YgZHluYW1pY2FsbHkgdHlwZWQgdmFsdWVzLgoKDAoFBAACAAYSAzQCFAoMCgUEAAIAARIDNBUbCgwKBQQAAgADEgM0Hh8KwwIKAgQBEgQ9AE0BGrYCIGBWYWx1ZWAgcmVwcmVzZW50cyBhIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlIHdoaWNoIGNhbiBiZSBlaXRoZXIKIG51bGwsIGEgbnVtYmVyLCBhIHN0cmluZywgYSBib29sZWFuLCBhIHJlY3Vyc2l2ZSBzdHJ1Y3QgdmFsdWUsIG9yIGEKIGxpc3Qgb2YgdmFsdWVzLiBBIHByb2R1Y2VyIG9mIHZhbHVlIGlzIGV4cGVjdGVkIHRvIHNldCBvbmUgb2YgdGhhdAogdmFyaWFudHMsIGFic2VuY2Ugb2YgYW55IHZhcmlhbnQgaW5kaWNhdGVzIGFuIGVycm9yLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgVmFsdWVgIGlzIEpTT04gdmFsdWUuCgoKCgMEAQESAz0IDQoiCgQEAQgAEgQ/AkwDGhQgVGhlIGtpbmQgb2YgdmFsdWUuCgoMCgUEAQgAARIDPwgMCicKBAQBAgASA0EEHRoaIFJlcHJlc2VudHMgYSBudWxsIHZhbHVlLgoKDAoFBAECAAYSA0EEDQoMCgUEAQIAARIDQQ4YCgwKBQQBAgADEgNBGxwKKQoEBAECARIDQwQcGhwgUmVwcmVzZW50cyBhIGRvdWJsZSB2YWx1ZS4KCgwKBQQBAgEFEgNDBAoKDAoFBAECAQESA0MLFwoMCgUEAQIBAxIDQxobCikKBAQBAgISA0UEHBocIFJlcHJlc2VudHMgYSBzdHJpbmcgdmFsdWUuCgoMCgUEAQICBRIDRQQKCgwKBQQBAgIBEgNFCxcKDAoFBAECAgMSA0UaGwoqCgQEAQIDEgNHBBgaHSBSZXByZXNlbnRzIGEgYm9vbGVhbiB2YWx1ZS4KCgwKBQQBAgMFEgNHBAgKDAoFBAECAwESA0cJEwoMCgUEAQIDAxIDRxYXCi0KBAQBAgQSA0kEHBogIFJlcHJlc2VudHMgYSBzdHJ1Y3R1cmVkIHZhbHVlLgoKDAoFBAECBAYSA0kECgoMCgUEAQIEARIDSQsXCgwKBQQBAgQDEgNJGhsKLQoEBAECBRIDSwQdGiAgUmVwcmVzZW50cyBhIHJlcGVhdGVkIGBWYWx1ZWAuCgoMCgUEAQIFBhIDSwQNCgwKBQQBAgUBEgNLDhgKDAoFBAECBQMSA0sbHAqpAQoCBQASBFMAVgEanAEgYE51bGxWYWx1ZWAgaXMgYSBzaW5nbGV0b24gZW51bWVyYXRpb24gdG8gcmVwcmVzZW50IHRoZSBudWxsIHZhbHVlIGZvciB0aGUKIGBWYWx1ZWAgdHlwZSB1bmlvbi4KCiAgVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBOdWxsVmFsdWVgIGlzIEpTT04gYG51bGxgLgoKCgoDBQABEgNTBQ4KGgoEBQACABIDVQIRGg0gTnVsbCB2YWx1ZS4KCgwKBQUAAgABEgNVAgwKDAoFBQACAAISA1UPEAqCAQoCBAISBFsAXgEadiBgTGlzdFZhbHVlYCBpcyBhIHdyYXBwZXIgYXJvdW5kIGEgcmVwZWF0ZWQgZmllbGQgb2YgdmFsdWVzLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgTGlzdFZhbHVlYCBpcyBKU09OIGFycmF5LgoKCgoDBAIBEgNbCBEKOgoEBAICABIDXQIcGi0gUmVwZWF0ZWQgZmllbGQgb2YgZHluYW1pY2FsbHkgdHlwZWQgdmFsdWVzLgoKDAoFBAICAAQSA10CCgoMCgUEAgIABhIDXQsQCgwKBQQCAgABEgNdERcKDAoFBAICAAMSA10aG2IGcHJvdG8zCuQxChV1bml0dGVzdF9pc3N1ZXMucHJvdG8SD3VuaXR0ZXN0X2lzc3VlcxocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90byInCghJc3N1ZTMwNxobCgpOZXN0ZWRPbmNlGg0KC05lc3RlZFR3aWNlIs0BChNOZWdhdGl2ZUVudW1NZXNzYWdlEjMKBXZhbHVlGAEgASgOMh0udW5pdHRlc3RfaXNzdWVzLk5lZ2F0aXZlRW51bVIFdmFsdWUSOQoGdmFsdWVzGAIgAygOMh0udW5pdHRlc3RfaXNzdWVzLk5lZ2F0aXZlRW51bUICEABSBnZhbHVlcxJGCg1wYWNrZWRfdmFsdWVzGAMgAygOMh0udW5pdHRlc3RfaXNzdWVzLk5lZ2F0aXZlRW51bUICEAFSDHBhY2tlZFZhbHVlcyIRCg9EZXByZWNhdGVkQ2hpbGQiiwMKF0RlcHJlY2F0ZWRGaWVsZHNNZXNzYWdlEioKDlByaW1pdGl2ZVZhbHVlGAEgASgFQgIYAVIOUHJpbWl0aXZlVmFsdWUSKgoOUHJpbWl0aXZlQXJyYXkYAiADKAVCAhgBUg5QcmltaXRpdmVBcnJheRJICgxNZXNzYWdlVmFsdWUYAyABKAsyIC51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZENoaWxkQgIYAVIMTWVzc2FnZVZhbHVlEkgKDE1lc3NhZ2VBcnJheRgEIAMoCzIgLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkQ2hpbGRCAhgBUgxNZXNzYWdlQXJyYXkSQQoJRW51bVZhbHVlGAUgASgOMh8udW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRFbnVtQgIYAVIJRW51bVZhbHVlEkEKCUVudW1BcnJheRgGIAMoDjIfLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkRW51bUICGAFSCUVudW1BcnJheSIfCglJdGVtRmllbGQSEgoEaXRlbRgBIAEoBVIEaXRlbSJXCg1SZXNlcnZlZE5hbWVzEhQKBXR5cGVzGAEgASgFUgV0eXBlcxIeCgpkZXNjcmlwdG9yGAIgASgFUgpkZXNjcmlwdG9yGhAKDlNvbWVOZXN0ZWRUeXBlIt8BChVUZXN0SnNvbkZpZWxkT3JkZXJpbmcSHwoLcGxhaW5faW50MzIYBCABKAVSCnBsYWluSW50MzISHQoJbzFfc3RyaW5nGAIgASgJSABSCG8xU3RyaW5nEhsKCG8xX2ludDMyGAUgASgFSABSB28xSW50MzISIQoMcGxhaW5fc3RyaW5nGAEgASgJUgtwbGFpblN0cmluZxIbCghvMl9pbnQzMhgGIAEoBUgBUgdvMkludDMyEh0KCW8yX3N0cmluZxgDIAEoCUgBUghvMlN0cmluZ0IECgJvMUIECgJvMiJRCgxUZXN0SnNvbk5hbWUSEgoEbmFtZRgBIAEoCVIEbmFtZRIZCgtkZXNjcmlwdGlvbhgCIAEoCVIEZGVzYxISCgRndWlkGAMgASgJUgRleGlkIpMBCgxPbmVvZk1lcmdpbmcSFAoEdGV4dBgBIAEoCUgAUgR0ZXh0Ej4KBm5lc3RlZBgCIAEoCzIkLnVuaXR0ZXN0X2lzc3Vlcy5PbmVvZk1lcmdpbmcuTmVzdGVkSABSBm5lc3RlZBokCgZOZXN0ZWQSDAoBeBgBIAEoBVIBeBIMCgF5GAIgASgFUgF5QgcKBXZhbHVlIoMBChZOdWxsVmFsdWVPdXRzaWRlU3RydWN0EiMKDHN0cmluZ192YWx1ZRgBIAEoCUgAUgtzdHJpbmdWYWx1ZRI7CgpudWxsX3ZhbHVlGAIgASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZUgAUgludWxsVmFsdWVCBwoFdmFsdWUiUAoTTnVsbFZhbHVlTm90SW5PbmVvZhI5CgpudWxsX3ZhbHVlGAIgASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZVIJbnVsbFZhbHVlKlUKDE5lZ2F0aXZlRW51bRIWChJORUdBVElWRV9FTlVNX1pFUk8QABIWCglGaXZlQmVsb3cQ+///////////ARIVCghNaW51c09uZRD///////////8BKi4KDkRlcHJlY2F0ZWRFbnVtEhMKD0RFUFJFQ0FURURfWkVSTxAAEgcKA29uZRABQh2qAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc0q2JAoHEgUAAJgBAQoICgEMEgMAABIKCAoBCBIDBgA3Co4CCgIIJRIDBgA3GmUgSXNzdWU6IE5vbi0iR29vZ2xlLlByb3RvYnVmZmVycyIgbmFtZXNwYWNlIHdpbGwgZW5zdXJlIHRoYXQgcHJvdG9idWZmZXIgbGlicmFyeSB0eXBlcyBhcmUgcXVhbGlmaWVkCjKbASBUaGVzZSBwcm90byBkZXNjcmlwdG9ycyBoYXZlIGF0IG9uZSB0aW1lIGJlZW4gcmVwb3J0ZWQgYXMgYW4gaXNzdWUgb3IgZGVmZWN0LgogVGhleSBhcmUga2VwdCBoZXJlIHRvIHJlcGxpY2F0ZSB0aGUgaXNzdWUsIGFuZCBjb250aW51ZSB0byB2ZXJpZnkgdGhlIGZpeC4KCggKAQISAwgAGAoJCgIDABIDCgAmCnYKAgQAEgQOABMBGmogSXNzdWUgMzA3OiB3aGVuIGdlbmVyYXRpbmcgZG91Ymx5LW5lc3RlZCB0eXBlcywgYW55IHJlZmVyZW5jZXMKIHNob3VsZCBiZSBvZiB0aGUgZm9ybSBBLlR5cGVzLkIuVHlwZXMuQy4KCgoKAwQAARIDDggQCgwKBAQAAwASBA8CEgMKDAoFBAADAAESAw8KFAoOCgYEAAMAAwASBBAEEQUKDgoHBAADAAMAARIDEAwXCqwECgIFABIELQAxATKYASBPbGQgaXNzdWUgMTM6IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9wcm90b2J1Zi1jc2hhcnAtcG9ydC9pc3N1ZXMvZGV0YWlsP2lkPTEzCiBOZXcgaXNzdWUgMzA5OiBodHRwczovL2dpdGh1Yi5jb20vcHJvdG9jb2xidWZmZXJzL3Byb3RvYnVmL2lzc3Vlcy8zMDkKMisgbWVzc2FnZSBBIHsKICAgIG9wdGlvbmFsIGludDMyIF9BID0gMTsKIH0KMisgbWVzc2FnZSBCIHsKICAgIG9wdGlvbmFsIGludDMyIEJfID0gMTsKIH0KMittZXNzYWdlIEFCIHsKICAgIG9wdGlvbmFsIGludDMyIGFfYiA9IDE7Cn0KMtoBIFNpbWlsYXIgaXNzdWUgd2l0aCBudW1lcmljIG5hbWVzCiBKYXZhIGNvZGUgZmFpbGVk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Cg0KBQQJAgAFEgSRAQQKCg0KBQQJAgABEgSRAQsXCg0KBQQJAgADEgSRARobCgwKBAQJAgESBJIBBC0KDQoFBAkCAQYSBJIBBB0KDQoFBAkCAQESBJIBHigKDQoFBAkCAQMSBJIBKywKDAoCBAoSBpYBAJgBAQoLCgMECgESBJYBCBsKDAoEBAoCABIElwECKwoNCgUECgIABhIElwECGwoNCgUECgIAARIElwEcJgoNCgUECgIAAxIElwEpKmIGcHJvdG8zCoOEAwogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiJNChFGaWxlRGVzY3JpcHRvclNldBI4CgRmaWxlGAEgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkZpbGVEZXNjcmlwdG9yUHJvdG9SBGZpbGUi5AQKE0ZpbGVEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgdwYWNrYWdlGAIgASgJUgdwYWNrYWdlEh4KCmRlcGVuZGVuY3kYAyADKAlSCmRlcGVuZGVuY3kSKwoRcHVibGljX2RlcGVuZGVuY3kYCiADKAVSEHB1YmxpY0RlcGVuZGVuY3kSJwoPd2Vha19kZXBlbmRlbmN5GAsgAygFUg53ZWFrRGVwZW5kZW5jeRJDCgxtZXNzYWdlX3R5cGUYBCADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvUgttZXNzYWdlVHlwZRJBCgllbnVtX3R5cGUYBSADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSQQoHc2VydmljZRgGIAMoCzInLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlRGVzY3JpcHRvclByb3RvUgdzZXJ2aWNlEkMKCWV4dGVuc2lvbhgHIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEjYKB29wdGlvbnMYCCABKAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnNSB29wdGlvbnMSSQoQc291cmNlX2NvZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mb1IOc291cmNlQ29kZUluZm8SFgoGc3ludGF4GAwgASgJUgZzeW50YXgiuQYKD0Rlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjsKBWZpZWxkGAIgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUgVmaWVsZBJDCglleHRlbnNpb24YBiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhJBCgtuZXN0ZWRfdHlwZRgDIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SCm5lc3RlZFR5cGUSQQoJZW51bV90eXBlGAQgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlElgKD2V4dGVuc2lvbl9yYW5nZRgFIAMoCzIvLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uRXh0ZW5zaW9uUmFuZ2VSDmV4dGVuc2lvblJhbmdlEkQKCm9uZW9mX2RlY2wYCCADKAsyJS5nb29nbGUucHJvdG9idWYuT25lb2ZEZXNjcmlwdG9yUHJvdG9SCW9uZW9mRGVjbBI5CgdvcHRpb25zGAcgASgLMh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zUgdvcHRpb25zElUKDnJlc2VydmVkX3JhbmdlGAkgAygLMi4uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYCiADKAlSDHJlc2VydmVkTmFtZRp6Cg5FeHRlbnNpb25SYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQSQAoHb3B0aW9ucxgDIAEoCzImLmdvb2dsZS5wcm90b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnNSB29wdGlvbnMaNwoNUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQifAoVRXh0ZW5zaW9uUmFuZ2VPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIiwQYKFEZpZWxkRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISQQoFbGFiZWwYBCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWxSBWxhYmVsEj4KBHR5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZVIEdHlwZRIbCgl0eXBlX25hbWUYBiABKAlSCHR5cGVOYW1lEhoKCGV4dGVuZGVlGAIgASgJUghleHRlbmRlZRIjCg1kZWZhdWx0X3ZhbHVlGAcgASgJUgxkZWZhdWx0VmFsdWUSHwoLb25lb2ZfaW5kZXgYCSABKAVSCm9uZW9mSW5kZXgSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRI3CgdvcHRpb25zGAggASgLMh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9uc1IHb3B0aW9ucxInCg9wcm90bzNfb3B0aW9uYWwYESABKAhSDnByb3RvM09wdGlvbmFsIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIpEJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIuChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgR0cnVlUg5jY0VuYWJsZUFyZW5hcxIqChFvYmpjX2NsYXNzX3ByZWZpeBgkIAEoCVIPb2JqY0NsYXNzUHJlZml4EikKEGNzaGFycF9uYW1lc3BhY2UYJSABKAlSD2NzaGFycE5hbWVzcGFjZRIhCgxzd2lmdF9wcmVmaXgYJyABKAlSC3N3aWZ0UHJlZml4EigKEHBocF9jbGFzc19wcmVmaXgYKCABKAlSDnBocENsYXNzUHJlZml4EiMKDXBocF9uYW1lc3BhY2UYKSABKAlSDHBocE5hbWVzcGFjZRI0ChZwaHBfbWV0YWRhdGFfbmFtZXNwYWNlGCwgASgJUhRwaHBNZXRhZGF0YU5hbWVzcGFjZRIhCgxydWJ5X3BhY2thZ2UYLSABKAlSC3J1YnlQYWNrYWdlElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIjoKDE9wdGltaXplTW9kZRIJCgVTUEVFRBABEg0KCUNPREVfU0laRRACEhAKDExJVEVfUlVOVElNRRADKgkI6AcQgICAgAJKBAgmECci0QIKDk1lc3NhZ2VPcHRpb25zEjwKF21lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0GAEgASgIOgVmYWxzZVIUbWVzc2FnZVNldFdpcmVGb3JtYXQSTAofbm9fc3RhbmRhcmRfZGVzY3JpcHRvcl9hY2Nlc3NvchgCIAEoCDoFZmFsc2VSHG5vU3RhbmRhcmREZXNjcmlwdG9yQWNjZXNzb3ISJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGwoJbWFwX2VudHJ5GAcgASgIUghtYXBFbnRyeRJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQICBAJSgQICRAKIuIDCgxGaWVsZE9wdGlvbnMSQQoFY3R5cGUYASABKA4yIy5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkNUeXBlOgZTVFJJTkdSBWN0eXBlEhYKBnBhY2tlZBgCIAEoCFIGcGFja2VkEkcKBmpzdHlwZRgGIAEoDjIkLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuSlNUeXBlOglKU19OT1JNQUxSBmpzdHlwZRIZCgRsYXp5GAUgASgIOgVmYWxzZVIEbGF6eRIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIZCgR3ZWFrGAogASgIOgVmYWxzZVIEd2VhaxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiIvCgVDVHlwZRIKCgZTVFJJTkcQABIICgRDT1JEEAESEAoMU1RSSU5HX1BJRUNFEAIiNQoGSlNUeXBlEg0KCUpTX05PUk1BTBAAEg0KCUpTX1NUUklORxABEg0KCUpTX05VTUJFUhACKgkI6AcQgICAgAJKBAgEEAUicwoMT25lb2ZPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIiwAEKC0VudW1PcHRpb25zEh8KC2FsbG93X2FsaWFzGAIgASgIUgphbGxvd0FsaWFzEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgFEAYingEKEEVudW1WYWx1ZU9wdGlvbnMSJQoKZGVwcmVjYXRlZBgBIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKcAQoOU2VydmljZU9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLgAgoNTWV0aG9kT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJxChFpZGVtcG90ZW5jeV9sZXZlbBgiIAEoDjIvLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zLklkZW1wb3RlbmN5TGV2ZWw6E0lERU1QT1RFTkNZX1VOS05PV05SEGlkZW1wb3RlbmN5TGV2ZWwSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iUAoQSWRlbXBvdGVuY3lMZXZlbBIXChNJREVNUE9URU5DWV9VTktOT1dOEAASEwoPTk9fU0lERV9FRkZFQ1RTEAESDgoKSURFTVBPVEVOVBACKgkI6AcQgICAgAIimgMKE1VuaW50ZXJwcmV0ZWRPcHRpb24SQQoEbmFtZRgCIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uLk5hbWVQYXJ0UgRuYW1lEikKEGlkZW50aWZpZXJfdmFsdWUYAyABKAlSD2lkZW50aWZpZXJWYWx1ZRIsChJwb3NpdGl2ZV9pbnRfdmFsdWUYBCABKARSEHBvc2l0aXZlSW50VmFsdWUSLAoSbmVnYXRpdmVfaW50X3ZhbHVlGAUgASgDUhBuZWdhdGl2ZUludFZhbHVlEiEKDGRvdWJsZV92YWx1ZRgGIAEoAVILZG91YmxlVmFsdWUSIQoMc3RyaW5nX3ZhbHVlGAcgASgMUgtzdHJpbmdWYWx1ZRInCg9hZ2dyZWdhdGVfdmFsdWUYCCABKAlSDmFnZ3JlZ2F0ZVZhbHVlGkoKCE5hbWVQYXJ0EhsKCW5hbWVfcGFydBgBIAIoCVIIbmFtZVBhcnQSIQoMaXNfZXh0ZW5zaW9uGAIgAigIUgtpc0V4dGVuc2lvbiKnAgoOU291cmNlQ29kZUluZm8SRAoIbG9jYXRpb24YASADKAsyKC5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm8uTG9jYXRpb25SCGxvY2F0aW9uGs4BCghMb2NhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIWCgRzcGFuGAIgAygFQgIQAVIEc3BhbhIpChBsZWFkaW5nX2NvbW1lbnRzGAMgASgJUg9sZWFkaW5nQ29tbWVudHMSKwoRdHJhaWxpbmdfY29tbWVudHMYBCABKAlSEHRyYWlsaW5nQ29tbWVudHMSOgoZbGVhZGluZ19kZXRhY2hlZF9jb21tZW50cxgGIAMoCVIXbGVhZGluZ0RldGFjaGVkQ29tbWVudHMi0QEKEUdlbmVyYXRlZENvZGVJbmZvEk0KCmFubm90YXRpb24YASADKAsyLS5nb29nbGUucHJvdG9idWYuR2VuZXJhdGVkQ29kZUluZm8uQW5ub3RhdGlvblIKYW5ub3RhdGlvbhptCgpBbm5vdGF0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEh8KC3NvdXJjZV9maWxlGAIgASgJUgpzb3VyY2VGaWxlEhQKBWJlZ2luGAMgASgFUgViZWdpbhIQCgNlbmQYBCABKAVSA2VuZEKPAQoTY29tLmdvb2dsZS5wcm90b2J1ZkIQRGVzY3JpcHRvclByb3Rvc0gBWj5naXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wcm90b2MtZ2VuLWdvL2Rlc2NyaXB0b3I7ZGVzY3JpcHRvcvgBAaICA0dQQqoCGkdvb2dsZS5Qcm90b2J1Zi5SZWZsZWN0aW9uSrzIAgoHEgUnAIwHAQqqDwoBDBIDJwASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoy2wIgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogVGhlIG1lc3NhZ2VzIGluIHRoaXMgZmlsZSBkZXNjcmliZSB0aGUgZGVmaW5pdGlvbnMgZm91bmQgaW4gLnByb3RvIGZpbGVzLgogQSB2YWxpZCAucHJvdG8gZmlsZSBjYW4gYmUgdHJhbnNsYXRlZCBkaXJlY3RseSB0byBhIEZpbGVEZXNjcmlwdG9yUHJvdG8KIHdpdGhvdXQgYW55IG90aGVyIGluZm9ybWF0aW9uIChlLmcuIHdpdGhvdXQgcmVhZGluZyBpdHMgaW1wb3J0cykuCgoICgECEgMpABgKCAoBCBIDKwBVCgkKAggLEgMrAFUKCAoBCBIDLAAsCgkKAggBEgMsACwKCAoBCBIDLQAxCgkKAggIEgMtADEKCAoBCBIDLgA3CgkKAgglEgMuADcKCAoBCBID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ZXIgaGFzIHNldCBhICJqc29uX25hbWUiIG9wdGlvbiBvbiB0aGlzIGZpZWxkLCB0aGF0IG9wdGlvbidzIHZhbHVlCiB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgaXQncyBkZWR1Y2VkIGZyb20gdGhlIGZpZWxkJ3MgbmFtZSBieSBjb252ZXJ0aW5nCiBpdCB0byBjYW1lbENhc2UuCgoNCgUEBAIIBBIE1AECCgoNCgUEBAIIBRIE1AELEQoNCgUEBAIIARIE1AESGwoNCgUEBAIIAxIE1AEeIAoMCgQEBAIJEgTWAQIkCg0KBQQEAgkEEgTWAQIKCg0KBQQEAgkGEgTWAQsXCg0KBQQEAgkBEgTWARgfCg0KBQQEAgkDEgTWASIjCrMJCgQEBAIKEgTtAQIlGqQJIElmIHRydWUsIHRoaXMgaXMgYSBwcm90bzMgIm9wdGlvbmFsIi4gV2hlbiBhIHByb3RvMyBmaWVsZCBpcyBvcHRpb25hbCwgaXQKIHRyYWNrcyBwcmVzZW5jZSByZWdhcmRsZXNzIG9mIGZpZWxkIHR5cGUuCgogV2hlbiBwcm90bzNfb3B0aW9uYWwgaXMgdHJ1ZSwgdGhpcyBmaWVsZCBtdXN0IGJlIGJlbG9uZyB0byBhIG9uZW9mIHRvCiBzaWduYWwgdG8gb2xkIHByb3RvMyBjbGllbnRzIHRoYXQgcHJlc2VuY2UgaXMgdHJhY2tlZCBmb3IgdGhpcyBmaWVsZC4gVGhpcwogb25lb2YgaXMga25vd24gYXMgYSAic3ludGhldGljIiBvbmVvZiwgYW5kIHRoaXMgZmllbGQgbXVzdCBiZSBpdHMgc29sZQogbWVtYmVyIChlYWNoIHByb3RvMyBvcHRpb25hbCBmaWVsZCBnZXRzIGl0cyBvd24gc3ludGhldGljIG9uZW9mKS4gU3ludGhldGljCiBvbmVvZnMgZXhpc3QgaW4gdGhlIGRlc2NyaXB0b3Igb25seSwgYW5kIGRvIG5vdCBnZW5lcmF0ZSBhbnkgQVBJLiBTeW50aGV0aWMKIG9uZW9mcyBtdXN0IGJlIG9yZGVyZWQgYWZ0ZXIgYWxsICJyZWFsIiBvbmVvZnMuCgogRm9yIG1lc3NhZ2UgZmllbGRzLCBwcm90bzNfb3B0aW9uYWwgZG9lc24ndCBj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ZQoganVzdCBhbm5vdGF0aW9ucyB3aGljaCBtYXkgY2F1c2UgY29kZSB0byBiZSBnZW5lcmF0ZWQgc2xpZ2h0bHkgZGlmZmVyZW50bHkKIG9yIG1heSBjb250YWluIGhpbnRzIGZvciBjb2RlIHRoYXQgbWFuaXB1bGF0ZXMgcHJvdG9jb2wgbWVzc2FnZXMuCgogQ2xpZW50cyBtYXkgZGVmaW5lIGN1c3RvbSBvcHRpb25zIGFzIGV4dGVuc2lvbnMgb2YgdGhlICpPcHRpb25zIG1lc3NhZ2VzLgogVGhlc2UgZXh0ZW5zaW9ucyBtYXkgbm90IHlldCBiZSBrbm93biBhdCBwYXJzaW5nIHRpbWUsIHNvIHRoZSBwYXJzZXIgY2Fubm90CiBzdG9yZSB0aGUgdmFsdWVzIGluIHRoZW0uICBJbnN0ZWFkIGl0IHN0b3JlcyB0aGVtIGluIGEgZmllbGQgaW4gdGhlICpPcHRpb25zCiBtZXNzYWdlIGNhbGxlZCB1bmludGVycHJldGVkX29wdGlvbi4gVGhpcyBmaWVsZCBtdXN0IGhhdmUgdGhlIHNhbWUgbmFtZQogYWNyb3NzIGFsbCAqT3B0aW9ucyBtZXNzYWdlcy4gV2UgdGhlbiB1c2UgdGhpcyBmaWVsZCB0byBwb3B1bGF0ZSB0aGUKIGV4dGVuc2lvbnMgd2hlbiB3ZSBidWlsZCBhIGRlc2NyaXB0b3IsIGF0IHdoaWNoIHBvaW50IGFsbCBwcm90b3MgaGF2ZSBiZWVuCiBwYXJzZWQgYW5kIHNvIGFsbCBleHRlbnNpb25zIGFyZSBrbm93bi4KCiBFeHRlbnNpb24gbnVtYmVycyBmb3IgY3VzdG9tIG9wdGlvbnMgbWF5IGJlIGNob3NlbiBhcyBmb2xsb3dzOgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIG9ubHkgYmUgdXNlZCB3aXRoaW4gYSBzaW5nbGUgYXBwbGljYXRpb24gb3IKICAgb3JnYW5pemF0aW9uLCBvciBmb3IgZXhwZXJpbWVudGFsIG9wdGlvbnMsIHVzZSBmaWVsZCBudW1iZXJzIDUwMDAwCiAgIHRocm91Z2ggOTk5OTkuICBJdCBpcyB1cCB0byB5b3UgdG8gZW5zdXJlIHRoYXQgeW91IGRvIG5vdCB1c2UgdGhlCiAgIHNhbWUgbnVtYmVyIGZvciBtdWx0aXBsZSBvcHRpb25zLgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIGJlIHB1Ymxpc2hlZCBhbmQgdXNlZCBwdWJsaWNseSBieSBtdWx0aXBsZQogICBpbmRlcGVuZGVudCBlbnRpdGllcywgZS1tYWlsIHByb3RvYnVmLWdsb2JhbC1leHRlbnNpb24tcmVnaXN0cnlAZ29vZ2xlLmNvbQogICB0byByZXNlcnZlIGV4dGVuc2lvbiBudW1iZXJzLiBTaW1wbHkgcHJvdmlkZSB5b3VyIHByb2plY3QgbmFtZSAoZS5nLgogICBPYmplY3RpdmUtQyBwbHVnaW4pIGFuZCB5b3VyIHByb2plY3Qgd2Vic2l0ZSAoaWYgYXZhaWxhYmxlKSAtLSB0aGVyZSdzIG5vCiAgIG5lZWQgdG8gZXhwbGFpbiBob3cgeW91IGludGVuZCB0byB1c2UgdGhlbS4gVXN1YWxseSB5b3Ugb25seSBuZWVkIG9uZQogICBleHRlbnNpb24gbnVtYmVyLiBZb3UgY2FuIGRlY2xhcmUgbXVsdGlwbGUgb3B0aW9ucyB3aXRoIG9ubHkgb25lIGV4dGVuc2lvbgogICBudW1iZXIgYnkgcHV0dGluZyB0aGVtIGluIGEgc3ViLW1lc3NhZ2UuIFNlZSB0aGUgQ3VzdG9tIE9wdGlvbnMgc2VjdGlvbiBvZgogICB0aGUgZG9jcyBmb3IgZXhhbXBsZXM6CiAgIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90byNvcHRpb25zCiAgIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIHBvcHVsYXIsIGEgd2ViIHNlcnZpY2Ugd2lsbCBiZSBzZXQgdXAKICAgdG8gYXV0b21hdGljYWxseSBhc3NpZ24gb3B0aW9uIG51bWJlcnMuCgoLCgMECgESBNUCCBMK9AEKBAQKAgASBNsCAiMa5QEgU2V0cyB0aGUgSmF2YSBwYWNrYWdlIHdoZXJlIGNsYXNzZXMgZ2VuZXJhdGVkIGZyb20gdGhpcyAucHJvdG8gd2lsbCBiZQogcGxhY2VkLiAgQnkgZGVmYXVsdCwgdGhlIHByb3RvIHBhY2thZ2UgaXMgdXNlZCwgYnV0IHRoaXMgaXMgb2Z0ZW4KIGluYXBwcm9wcmlhdGUgYmVjYXVzZSBwcm90byBwYWNrYWdlcyBkbyBub3Qgbm9ybWFsbHkgc3RhcnQgd2l0aCBiYWNrd2FyZHMKIGRvbWFpbiBuYW1lcy4KCg0KBQQKAgAEEgTbAgIKCg0KBQQKAgAFEgTbAgsRCg0KBQQKAgABEgTbAhIeCg0KBQQKAgADEgTbAiEiCr8CCgQECgIBEgTjAgIrGrACIElmIHNldCwgYWxsIHRoZSBjbGFzc2VzIGZyb20gdGhlIC5wcm90byBmaWxlIGFyZSB3cmFwcGVkIGluIGEgc2luZ2xlCiBvdXRlciBjbGFzcyB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgVGhpcyBhcHBsaWVzIHRvIGJvdGggUHJvdG8xCiAoZXF1aXZhbGVudCB0byB0aGUgb2xkICItLW9uZV9qYXZhX2ZpbGUiIG9wdGlvbikgYW5kIFByb3RvMiAod2hlcmUKIGEgLnByb3RvIGFsd2F5cyB0cmFuc2xhdGVzIHRvIGEgc2luZ2xlIGNsYXNzLCBidXQgeW91IG1heSB3YW50IHRvCiBleHBsaWNpdGx5IGNob29zZSB0aGUgY2xhc3MgbmFtZSkuCgoNCgUECgIBBBIE4wICCgoNCgUECgIBBRIE4wILEQoNCgUECgIBARIE4wISJgoNCgUECgIBAxIE4wIpKgqjAwoEBAoCAhIE6wICOxqUAyBJZiBzZXQgdHJ1ZSwgdGhlbiB0aGUgSmF2YSBjb2RlIGdlbmVyYXRvciB3aWxsIGdlbmVyYXRlIGEgc2VwYXJhdGUgLmphdmEKIGZpbGUgZm9yIGVhY2ggdG9wLWxldmVsIG1lc3NhZ2UsIGVudW0sIGFuZCBzZXJ2aWNlIGRlZmluZWQgaW4gdGhlIC5wcm90bwogZmlsZS4gIFRodXMsIHRoZXNlIHR5cGVzIHdpbGwgKm5vdCogYmUgbmVzdGVkIGluc2lkZSB0aGUgb3V0ZXIgY2xhc3MKIG5hbWVkIGJ5IGphdmFfb3V0ZXJfY2xhc3NuYW1lLiAgSG93ZXZlciwgdGhlIG91dGVyIGNsYXNzIHdpbGwgc3RpbGwgYmUKIGdlbmVyYXRlZCB0byBj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cHJvdG8xIE1lc3NhZ2VTZXQgd2lyZSBmb3JtYXQgZm9yIGV4dGVuc2lvbnMuCiBUaGlzIGlzIHByb3ZpZGVkIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBNZXNzYWdlU2V0IHdpcmUKIGZvcm1hdC4gIFlvdSBzaG91bGQgbm90IHVzZSB0aGlzIGZvciBhbnkgb3RoZXIgcmVhc29uOiAgSXQncyBsZXNzCiBlZmZpY2llbnQsIGhhcyBmZXdlciBmZWF0dXJlcywgYW5kIGlzIG1vcmUgY29tcGxpY2F0ZWQuCgogVGhlIG1lc3NhZ2UgbXVzdCBiZSBkZWZpbmVkIGV4YWN0bHkgYXMgZm9sbG93czoKICAgbWVzc2FnZSBGb28gewogICAgIG9wdGlvbiBtZXNzYWdlX3NldF93aXJlX2Zvcm1hdCA9IHRydWU7CiAgICAgZXh0ZW5zaW9ucyA0IHRvIG1heDsKICAgfQogTm90ZSB0aGF0IHRoZSBtZXNzYWdlIGNhbm5vdCBoYXZlIGFueSBkZWZpbmVkIGZpZWxkczsgTWVzc2FnZVNldHMgb25seQogaGF2ZSBleHRlbnNpb25zLgoKIEFsbCBleHRlbnNpb25zIG9mIHlvdXIgdHlwZSBtdXN0IGJlIHNpbmd1bGFyIG1lc3NhZ2VzOyBlLmcuIHRoZXkgY2Fubm90CiBiZSBpbnQzMnMsIGVudW1zLCBvciByZXBlYXRlZCBtZXNzYWdlcy4KCiBCZWNhdXNlIHRoaXMgaXMgYW4gb3B0aW9uLCB0aGUgYWJvdmUgdHdvIHJlc3RyaWN0aW9ucyBhcmUgbm90IGVuZm9yY2VkIGJ5CiB0aGUgcHJvdG9jb2wgY29tcGlsZXIuCgoNCgUECwIABBIE5QMCCgoNCgUECwIABRIE5QMLDwoNCgUECwIAARIE5QMQJwoNCgUECwIAAxIE5QMqKwoNCgUECwIACBIE5QMsPQoNCgUECwIABxIE5QM3PArrAQoEBAsCARIE6gMCRhrcASBEaXNhYmxlcyB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgc3RhbmRhcmQgImRlc2NyaXB0b3IoKSIgYWNjZXNzb3IsIHdoaWNoIGNhbgogY29uZmxpY3Qgd2l0aCBhIGZpZWxkIG9mIHRo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bGltaXRlZCBibG9iLiBJbiBwcm90bzMsIG9ubHkgZXhwbGljaXQgc2V0dGluZyBpdCB0bwogZmFsc2Ugd2lsbCBhdm9pZCB1c2luZyBwYWNrZWQgZW5jb2RpbmcuCgoNCgUEDAIBBBIEpwQCCgoNCgUEDAIBBRIEpwQLDwoNCgUEDAIBARIEpwQQFgoNCgUEDAIBAxIEpwQZGgqaBQoEBAwCAhIEtAQCMxqLBSBUaGUganN0eXBlIG9wdGlvbiBkZXRlcm1pbmVzIHRoZSBKYXZhU2NyaXB0IHR5cGUgdXNlZCBmb3IgdmFsdWVzIG9mIHRoZQogZmllbGQuICBUaGUgb3B0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGZvciA2NCBiaXQgaW50ZWdyYWwgYW5kIGZpeGVkIHR5cGVzCiAoaW50NjQsIHVpbnQ2NCwgc2ludDY0LCBmaXhlZDY0LCBzZml4ZWQ2NCkuICBBIGZpZWxkIHdpdGgganN0eXBlIEpTX1NUUklORwogaXMgcmVwcmVzZW50ZWQgYXMgSmF2YVNjcmlwdCBzdHJpbmcsIHdoaWNoIGF2b2lkcyBsb3NzIG9mIHByZWNpc2lvbiB0aGF0CiBjYW4gaGFwcGVuIHdoZW4gYSBsYXJnZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gYSBmbG9hdGluZyBwb2ludCBKYXZhU2NyaXB0LgogU3BlY2lmeWluZyBKU19OVU1CRVIgZm9yIHRoZSBqc3R5cGUgY2F1c2VzIHRoZSBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBjb2RlIHRvCiB1c2UgdGhlIEphdmFTY3JpcHQgIm51bWJlciIgdHlwZS4gIFRoZSBiZWhhdmlvciBvZiB0aGUgZGVmYXVsdCBvcHRpb24KIEpTX05PUk1BTCBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuCgogVGhpcyBvcHRpb24gaXMgYW4gZW51bSB0byBwZXJtaXQgYWRkaXRpb25hbCB0eXBlcyB0byBiZSBhZGRlZCwgZS5nLgogZ29vZy5tYXRoLkludGVnZXIuCgoNCgUEDAICBBIEtAQCCgoNCgUEDAICBhIEtAQLEQoNCgUEDAICARIEtAQSGAoNCgUEDAICAxIEtAQbHAoNCgUEDAICCBIEtAQdMgoNCgUEDAICBxIEtAQoMQoOCgQEDAQBEga1BAK+BAMKDQoFBAwEAQESBLUEBw0KJwoGBAwEAQIAEgS3BAQSGhcgVXNlIHRoZSBkZWZhdWx0IHR5cGUuCgoPCgcEDAQBAgABEgS3BAQNCg8KBwQMBAECAAISBLcEEBEKKQoGBAwEAQIBEgS6BAQSGhkgVXNlIEphdmFTY3JpcHQgc3RyaW5ncy4KCg8KBwQMBAECAQESBLoEBA0KDwoHBAwEAQIBAhIEugQQEQopCgYEDAQBAgISBL0EBBIaGSBVc2UgSmF2YVNjcmlwdCBudW1iZXJzLgoKDwoHBAwEAQICARIEvQQEDQoPCgcEDAQBAgICEgS9BBARCu8MCgQEDAIDEgTcBAIrGuAMIFNob3VsZCB0aGlzIGZpZWxkIGJlIHBhcnNlZCBsYXppbHk/ICBMYXp5IGFwcGxpZXMgb25seSB0byBtZXNzYWdlLXR5cGUKIGZpZWxkcy4gIEl0IG1lYW5zIHRoYXQgd2hlbiB0aGUgb3V0ZXIgbWVzc2FnZSBpcyBpbml0aWFsbHkgcGFyc2VkLCB0aGUKIGlubmVyIG1lc3NhZ2UncyBjb250ZW50cyB3aWxsIG5vdCBiZSBwYXJzZWQgYnV0IGluc3RlYWQgc3RvcmVkIGluIGVuY29kZWQKIGZvcm0uICBUaGUgaW5uZXIgbWVzc2FnZSB3aWxsIGFjdHVhbGx5IGJlIHBhcnNlZCB3aGVuIGl0IGlzIGZpcnN0IGFjY2Vzc2VkLgoKIFRoaXMgaXMgb25seSBhIGhpbnQuICBJbXBsZW1lbnRhdGlvbnMgYXJlIGZyZWUgdG8gY2hvb3NlIHdoZXRoZXIgdG8gdXNlCiBlYWdlciBvciBsYXp5IHBhcnNpbmcgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgdGhpcyBvcHRpb24uICBIb3dldmVyLAogc2V0dGluZyB0aGlzIG9wdGlvbiB0cnVlIHN1Z2dlc3RzIHRoYXQgdGhlIHByb3RvY29sIGF1dGhvciBiZWxpZXZlcyB0aGF0CiB1c2luZyBsYXp5IHBhcnNpbmcgb24gdGhpcyBmaWVsZCBpcyB3b3J0aCB0aGUgYWRkaXRpb25hbCBib29ra2VlcGluZwogb3ZlcmhlYWQgdHlwaWNhbGx5IG5lZWRlZCB0byBpbXBsZW1lbnQgaXQuCgogVGhpcyBvcHRpb24gZG9lcyBub3QgYWZmZWN0IHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIGFueSBnZW5lcmF0ZWQgY29kZTsKIGFsbCBtZXRob2Qgc2lnbmF0dXJlcyByZW1haW4gdGhlIHNhbWUuICBGdXJ0aGVybW9yZSwgdGhyZWFkLXNhZmV0eSBvZiB0aGUKIGludGVyZmFjZSBpcyBub3QgYWZmZWN0ZWQgYnkgdGhpcyBvcHRpb247IGNvbnN0IG1ldGhvZHMgcmVtYWluIHNhZmUgdG8KIGNhbGwgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIGNvbmN1cnJlbnRseSwgd2hpbGUgbm9uLWNvbnN0IG1ldGhvZHMgY29udGludWUKIHRvIHJlcXVpcmUgZXhjbHVzaXZlIGFjY2Vzcy4KCgogTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBtYXkgY2hvb3NlIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMgd2l0aGluCiBhIGxhenkgc3ViLW1lc3NhZ2UuICBUaGF0IGlzLCBjYWxsaW5nIElzSW5pdGlhbGl6ZWQoKSBvbiB0aGUgb3V0ZXIgbWVzc2FnZQogbWF5IHJldHVybiB0cnVlIGV2ZW4gaWYgdGhlIGlubmVyIG1lc3NhZ2UgaGFzIG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzLgogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBvdGhlcndpc2UgdGhlIGlubmVyIG1lc3NhZ2Ugd291bGQgaGF2ZSB0byBiZQogcGFyc2VkIGluIG9yZGVyIHRvIHBlcmZvcm0gdGhlIGNoZWNrLCBkZWZlYXRpbmcgdGhlIHB1cnBvc2Ugb2YgbGF6eQogcGFyc2luZy4gIEFuIGltcGxlbWVudGF0aW9uIHdoaWNoIGNob29zZXMgbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcwogbXVzdCBiZSBjb25zaXN0ZW50IGFib3V0IGl0LiAgVGhhdCBpcywgZm9yIGFueSBwYXJ0aWN1bGFyIHN1Yi1tZXNzYWdlLCB0aGUKIGltcGxlbWVudGF0aW9uIG11c3QgZWl0aGVyICphbHdheXMqIGNo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Gk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEEAUAEgStBQ0YCg0KBQQQBQABEgStBQ0RCg0KBQQQBQACEgStBRUYCgwKAgQREgawBQDNBQEKCwoDBBEBEgSwBQgVCtYDCgQEEQIAEgS7BQIyGtwBIElzIHRoaXMgbWV0aG9kIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIG1ldGhvZCwgb3IgaXQgd2lsbCBiZSBjb21wbGV0ZWx5IGlnbm9yZWQ7IGluIHRoZSB2ZXJ5IGxlYXN0LAogdGhpcyBpcyBhIGZvcm1hbGl6YXRpb24gZm9yIGRlcHJlY2F0aW5nIG1ldGhvZHMuCjLoASBOb3RlOiAgRmllbGQgbnVtYmVycyAxIHRocm91Z2ggMzIgYXJlIHJlc2VydmVkIGZvciBHb29nbGUncyBpbnRlcm5hbCBSUEMKICAgZnJhbWV3b3JrLiAgV2UgYXBvbG9naXplIGZvciBob2FyZGluZyB0aGVzZSBudW1iZXJzIHRvIG91cnNlbHZlcywgYnV0CiAgIHdlIHdlcmUgYWxyZWFkeSB1c2luZyB0aGVtIGxvbmcgYmVmb3JlIHdlIGRlY2lkZWQgdG8gcmVsZWFzZSBQcm90b2NvbAogICBCdWZmZXJzLgoKDQoFBBECAAQSBLsFAgoKDQoFBBECAAUSBLsFCw8KDQoFBBECAAESBLsFEBoKDQoFBBECAAMSBLsFHR8KDQoFBBECAAgSBLsFIDEKDQoFBBECAAcSBLsFKzAK8AEKBAQRBAASBsAFAsQFAxrfASBJcyB0aGlzIG1ldGhvZCBzaWRlLWVmZmVjdC1mcmVlIChvciBzYWZlIGluIEhUVFAgcGFybGFuY2UpLCBvciBpZGVtcG90ZW50LAogb3IgbmVpdGhlcj8gSFRUUCBiYXNlZCBSUEMgaW1wbGVtZW50YXRpb24gbWF5IGNob29zZSBHRVQgdmVyYiBmb3Igc2FmZQogbWV0aG9kcywgYW5kIFBVVCB2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biBnZW5lcmF0b3JzLCBhbmQgc2ltaWxhcgogdG9vbHMuCgogRm9yIGV4YW1wbGUsIHNheSB3ZSBoYXZlIGEgZmlsZSBsaWtlOgogICBtZXNzYWdlIEZvbyB7CiAgICAgb3B0aW9uYWwgc3RyaW5nIGZvbyA9IDE7CiAgIH0KIExldCdzIGxvb2sgYXQganVzdCB0aGUgZmllbGQgZGVmaW5pdGlvbjoKICAgb3B0aW9uYWwgc3RyaW5nIGZvbyA9IDE7CiAgIF4gICAgICAgXl4gICAgIF5eICBeICBeXl4KICAgYSAgICAgICBiYyAgICAgZGUgIGYgIGdoaQogV2UgaGF2ZSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKICAgc3BhbiAgIHBhdGggICAgICAgICAgICAgICByZXByZXNlbnRzCiAgIFthLGkpICBbIDQsIDAsIDIsIDAgXSAgICAgVGhlIHdob2xlIGZpZWxkIGRlZmluaXRpb24uCiAgIFthLGIpICBbIDQsIDAsIDIsIDAsIDQgXSAgVGhlIGxhYmVsIChvcHRpb25hbCkuCiAgIFtjLGQpICBbIDQsIDAsIDIsIDAsIDUgXSAgVGhlIHR5cGUgKHN0cmluZykuCiAgIFtlLGYpICBbIDQsIDAsIDIsIDAsIDEgXSAgVGhlIG5hbWUgKGZvbykuCiAgIFtnLGgpICBbIDQsIDAsIDIsIDAsIDMgXSAgVGhlIG51bWJlciAoMSkuCgogTm90ZXM6CiAtIEEgbG9jYXRpb24gbWF5IHJlZmVyIHRvIGEgcmVwZWF0ZWQgZmllbGQgaXRzZWxmIChpLmUuIG5vdCB0byBhbnkKICAgcGFydGljdWxhciBpbmRleCB3aXRoaW4gaXQpLiAgVGhpcyBpcyB1c2VkIHdoZW5ldmVyIGEgc2V0IG9mIGVsZW1lbnRzIGFyZQogICBsb2dpY2FsbHkgZW5jbG9zZWQgaW4gYSBzaW5nbGUgY29kZSBzZWdtZW50LiAgRm9yIGV4YW1wbGUsIGFuIGVudGlyZQogICBleHRlbmQgYmxvY2sgKHBvc3NpYmx5IGNvbnRhaW5pbmcgbXVsdGlwbGUgZXh0ZW5zaW9uIGRlZmluaXRpb25zKSB3aWxsCiAgIGhhdmUgYW4gb3V0ZXIgbG9jYXRpb24gd2hvc2UgcGF0aCByZWZlcnMgdG8gdGhlICJleHRlbnNpb25zIiByZXBlYXRlZAogICBmaWVsZCB3aXRob3V0IGFuIGluZGV4LgogLSBNdWx0aXBsZSBsb2NhdGlvbnMgbWF5IGhhdmUgdGhlIHNhbWUgcGF0aC4gIFRoaXMgaGFwcGVucyB3aGVuIGEgc2luZ2xlCiAgIGxvZ2ljYWwgZGVjbGFyYXRpb24gaXMgc3ByZWFkIG91dCBhY3Jvc3MgbXVsdGlwbGUgcGxhY2VzLiAgVGhlIG1vc3QKICAgb2J2aW91cyBleGFtcGxlIGlzIHRoZSAiZXh0ZW5kIiBibG9jayBhZ2FpbiAtLSB0aGVyZSBtYXkgYmUgbXVsdGlwbGUKICAgZXh0ZW5kIGJsb2NrcyBpbiB0aGUgc2FtZSBzY29wZSwgZWFjaCBvZiB3aGljaCB3aWxsIGhhdmUgdGhlIHNhbWUgcGF0aC4KIC0gQSBsb2NhdGlvbidzIHNwYW4gaXMgbm90IGFsd2F5cyBhIHN1YnNldCBvZiBpdHMgcGFyZW50J3Mgc3Bhbi4gIEZvcgogICBleGFtcGxlLCB0aGUgImV4dGVuZGVlIiBvZiBhbiBleHRlbnNpb24gZGVjbGFyYXRpb24gYXBwZWFycyBhdCB0aGUKICAgYmVnaW5uaW5nIG9mIHRoZSAiZXh0ZW5kIiBibG9jayBhbmQgaXMgc2hhcmVkIGJ5IGFsbCBleHRlbnNpb25zIHdpdGhpbgogICB0aGUgYmxvY2suCiAtIEp1c3QgYmVjYXVzZSBhIGxvY2F0aW9uJ3Mgc3BhbiBpcyBhIHN1YnNldCBvZiBzb21lIG90aGVyIGxvY2F0aW9uJ3Mgc3BhbgogICBkb2VzIG5vdCBtZWFuIHRoYXQgaXQgaXMgYSBkZXNjZW5kYW50LiAgRm9yIGV4YW1wbGUsIGEgImdyb3VwIiBkZWZpbmVzCiAgIGJvdGggYSB0eXBlIGFuZCBhIGZpZWxkIGluIGEgc2luZ2xlIGRlY2xhcmF0aW9uLiAgVGh1cywgdGhlIGxvY2F0aW9ucwogICBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlIGFuZCBmaWVsZCBhbmQgdGhlaXIgY29tcG9uZW50cyB3aWxsIG92ZXJsYXAuCiAtIENvZGUgd2hpY2ggdHJpZXMgdG8gaW50ZXJwcmV0IGxvY2F0aW9ucyBzaG91bGQgcHJvYmFibHkgYmUgZGVzaWduZWQgdG8KICAgaWdub3JlIHRob3NlIHRoYXQgaXQgZG9lc24ndCB1bmRlcnN0YW5kLCBhcyBtb3JlIHR5cGVzIG9mIGxvY2F0aW9ucyBjb3VsZAogICBiZSByZWNvcmRlZCBpbiB0aGUgZnV0dXJlLgoKDQoFBBMCAAQSBJ0GAgoKDQoFBBMCAAYSBJ0GCxMKDQoFBBMCAAESBJ0GFBwKDQoFBBMCAAMSBJ0GHyAKDgoEBBMDABIGngYC8QYDCg0KBQQTAwABEgSeBgoSCoMHCgYEEwMAAgASBLYGBCwa8gYgSWRlbnRpZmllcyB3aGljaCBwYXJ0IG9mIHRoZSBGaWxlRGVzY3JpcHRvclByb3RvIHdhcyBkZWZpbmVkIGF0IHRoaXMKIGxvY2F0aW9uLgoKIEVhY2ggZWxlbWVudCBpcyBhIGZpZWxkIG51bWJlciBvciBhbiBpbmRleC4gIFRoZXkgZm9ybSBhIHBhdGggZnJvbQogdGhlIHJvb3QgRmlsZURlc2NyaXB0b3JQcm90byB0byB0aGUgcGxhY2Ugd2hlcmUgdGhlIGRlZmluaXRpb24uICBGb3IKIGV4YW1wbGUsIHRoaXMgcGF0aDoKICAgWyA0LCAzLCAyLCA3LCAxIF0KIHJlZmVycyB0bzoKICAgZmlsZS5tZXNzYWdlX3R5cGUoMykgIC8vIDQsIDMKICAgICAgIC5maWVsZCg3KSAgICAgICAgIC8vIDIsIDcKICAgICAgIC5uYW1lKCkgICAgICAgICAgIC8vIDEKIFRoaXMgaXMgYmVjYXVzZSBGaWxlRGVzY3JpcHRvclByb3RvLm1lc3NhZ2VfdHlwZSBoYXMgZmllbGQgbnVtYmVyIDQ6CiAgIHJlcGVhdGVkIERlc2NyaXB0b3JQcm90byBtZXNzYWdlX3R5cGUgPSA0OwogYW5kIERlc2NyaXB0b3JQcm90by5maWVsZCBoYXMgZmllbGQgbnVtYmVyIDI6CiAgIHJlcGVhdGVkIEZpZWxkRGVzY3JpcHRvclByb3RvIGZpZWxkID0gMjsKIGFuZCBGaWVsZERlc2NyaXB0b3JQcm90by5uYW1lIGhhcyBmaWVsZCBudW1iZXIgMToKICAgb3B0aW9uYWwgc3RyaW5nIG5hbWUgPSAxOwoKIFRodXMsIHRoZSBhYm92ZSBwYXRoIGdpdmVzIHRoZSBsb2NhdGlvbiBvZiBhIGZpZWxkIG5hbWUuICBJZiB3ZSByZW1vdmVkCiB0aGUgbGFzdCBlbGVtZW50OgogICBbIDQsIDMsIDIsIDcgXQogdGhpcyBwYXRoIHJlZmVycyB0byB0aGUgd2hvbGUgZmllbGQgZGVjbGFyYXRpb24gKGZyb20gdGhlIGJlZ2lubmluZwogb2YgdGhlIGxhYmVsIHRvIHRoZSB0ZXJtaW5hdGluZyBzZW1pY29sb24pLgoKDwoHBBMDAAIABBIEtgYEDAoPCgcEEwMAAgAFEgS2Bg0SCg8KBwQTAwACAAESBLYGExcKDwoHBBMDAAIAAxIEtgYaGwoPCgcEEwMAAgAIEgS2BhwrChAKCAQTAwACAAgCEgS2Bh0qCtICCgYEEwMAAgESBL0GBCwawQIgQWx3YXlzIGhhcyBleGFjdGx5IHRocmVlIG9yIGZvdXIgZWxlbWVudHM6IHN0YXJ0IGxpbmUsIHN0YXJ0IGNvbHVtbiwKIGVuZCBsaW5lIChvcHRpb25hbCwgb3RoZXJ3aXNlIGFzc3VtZWQgc2FtZSBhcyBzdGFydCBsaW5lKSwgZW5kIGNvbHVtbi4KIFRoZXNlIGFyZSBwYWNrZWQgaW50byBhIHNpbmdsZSBmaWVsZCBmb3IgZWZmaWNpZW5jeS4gIE5vdGUgdGhhdCBsaW5lCiBhbmQgY29sdW1uIG51bWJlcnMgYXJlIHplcm8tYmFzZWQgLS0gdHlwaWNhbGx5IHlvdSB3aWxsIHdhbnQgdG8gYWRkCiAxIHRvIGVhY2ggYmVmb3JlIGRpc3BsYXlpbmcgdG8gYSB1c2VyLgoKDwoHBBMDAAIBBBIEvQYEDAoPCgcEEwMAAgEFEgS9Bg0SCg8KBwQTAwACAQESBL0GExcKDwoHBBMDAAIBAxIEvQYaGwoPCgcEEwMAAgEIEgS9BhwrChAKCAQTAwACAQgCEgS9Bh0qCqUMCgYEEwMAAgISBO4GBCkalAwgSWYgdGhpcyBTb3VyY2VDb2RlSW5mbyByZXByZXNlbnRzIGEgY29tcGxldGUgZGVjbGFyYXRpb24sIHRoZXNlIGFyZSBhbnkKIGNvbW1lbnRzIGFwcGVhcmluZyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiB3aGljaCBhcHBlYXIgdG8gYmUKIGF0dGFjaGVkIHRvIHRoZSBkZWNsYXJhdGlvbi4KCiBBIHNlcmllcyBvZiBsaW5lIGNvbW1lbnRzIGFwcGVhcmluZyBvbiBjb25zZWN1dGl2ZSBsaW5lcywgd2l0aCBubyBvdGhlcgogdG9rZW5zIGFwcGVhcmluZyBvbiB0aG9zZSBsaW5lcywgd2lsbCBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlIGNvbW1lbnQuCgogbGVhZGluZ19kZXRhY2hlZF9jb21tZW50cyB3aWxsIGtlZXAgcGFyYWdyYXBocyBvZiBjb21tZW50cyB0aGF0IGFwcGVhcgogYmVmb3JlIChidXQgbm90IGNvbm5lY3RlZCB0bykgdGhlIGN1cnJlbnQgZWxlbWVudC4gRWFjaCBwYXJhZ3JhcGgsCiBzZXBhcmF0ZWQgYnkgZW1wdHkgbGluZXMsIHdpbGwgYmUgb25lIGNvbW1lbnQgZWxlbWVudCBpbiB0aGUgcmVwZWF0ZWQKIGZpZWxkLgoKIE9ubHkgdGhlIGNvbW1lbnQgY29udGVudCBpcyBwcm92aWRlZDsgY29tbWVudCBtYXJrZXJzIChlLmcuIC8vKSBhcmUKIHN0cmlwcGVkIG91dC4gIEZvciBibG9jayBjb21tZW50cywgbGVhZGluZyB3aGl0ZXNwYWNlIGFuZCBhbiBhc3Rlcmlzawogd2lsbCBiZSBzdHJpcHBlZCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBsaW5lIG90aGVyIHRoYW4gdGhlIGZpcnN0LgogTmV3bGluZXMgYXJlIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuCgogRXhhbXBsZXM6CgogICBvcHRpb25hbCBpbnQzMiBmb28gPSAxOyAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBmb28uCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gYmFyLgogICBvcHRpb25hbCBpbnQzMiBiYXIgPSAyOwoKICAgb3B0aW9uYWwgc3RyaW5nIGJheiA9IDM7CiAgIC8vIENvbW1lbnQgYXR0YWNo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ZWQgb2JqZWN0LgoKDwoHBBQDAAICBBIEhQcEDAoPCgcEFAMAAgIFEgSFBw0SCg8KBwQUAwACAgESBIUHExgKDwoHBBQDAAICAxIEhQcbHArbAQoGBBQDAAIDEgSKBwQbGsoBIElkZW50aWZpZXMgdGhlIGVuZGluZyBvZmZzZXQgaW4gYnl0ZXMgaW4gdGhlIGdlbmVyYXRlZCBjb2RlIHRoYXQKIHJlbGF0ZXMgdG8gdGhlIGlkZW50aWZpZWQgb2Zmc2V0LiBUaGUgZW5kIG9mZnNldCBzaG91bGQgYmUgb25lIHBhc3QKIHRoZSBsYXN0IHJlbGV2YW50IGJ5dGUgKHNvIHRoZSBsZW5ndGggb2YgdGhlIHRleHQgPSBlbmQgLSBiZWdpbikuCgoPCgcEFAMAAgMEEgSKBwQMCg8KBwQUAwACAwUSBIoHDRIKDwoHBBQDAAIDARIEigcTFgoPCgcEFAMAAgMDEgSKBxkaCuJ8CiR1bml0dGVzdF9jdXN0b21fb3B0aW9uc19wcm90bzMucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0GiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90byLrAQocVGVzdE1lc3NhZ2VXaXRoQ3VzdG9tT3B0aW9ucxImCgZmaWVsZDEYASABKAlCDggBweDDHS3hdQoCAAAAUgZmaWVsZDESIQoLb25lb2ZfZmllbGQYAiABKAVIAFIKb25lb2ZGaWVsZCJTCgZBbkVudW0SFgoSQU5FTlVNX1VOU1BFQ0lGSUVEEAASDwoLQU5FTlVNX1ZBTDEQARIWCgtBTkVOVU1fVkFMMhACGgWwhvoFexoIxfbJHev8//86EAgA4OnCHcj//////////wFCGQoHQW5PbmVvZhIO+KzDHZ3//////////wEiGAoWQ3VzdG9tT3B0aW9uRm9vUmVxdWVzdCIZChdDdXN0b21PcHRpb25Gb29SZXNwb25zZSIeChxDdXN0b21PcHRpb25Gb29DbGllbnRNZXNzYWdlIh4KHEN1c3RvbU9wdGlvbkZvb1NlcnZlck1lc3NhZ2UijwEKGkR1bW15TWVzc2FnZUNvbnRhaW5pbmdFbnVtInEKDFRlc3RFbnVtVHlwZRIgChxURVNUX09QVElPTl9FTlVNX1VOU1BFQ0lGSUVEEAASGgoWVEVTVF9PUFRJT05fRU5VTV9UWVBFMRAWEiMKFlRFU1RfT1BUSU9OX0VOVU1fVFlQRTIQ6f//////////ASIhCh9EdW1teU1lc3NhZ2VJbnZhbGlkQXNPcHRpb25UeXBlIooBChxDdXN0b21PcHRpb25NaW5JbnRlZ2VyVmFsdWVzOmrQ3rIdAOjGsh2AgICA+P////8BsLyyHYCAgICAgICAgAGAk7IdAPj1sB0AgMSwHf////8P+JewHf///////////wGd9a8dAAAAAJHurx0AAAAAAAAAAK2Nrx0AAACAmdaoHQAAAAAAAACAIpEBChxDdXN0b21PcHRpb25NYXhJbnRlZ2VyVmFsdWVzOnHQ3rIdAejGsh3/////B7C8sh3//////////3+Ak7Id/////w/49bAd////////////AYDEsB3+////D/iXsB3+//////////8BnfWvHf////+R7q8d//////////+tja8d////f5nWqB3/////////fyJuChdDdXN0b21PcHRpb25PdGhlclZhbHVlczpT6MayHZz//////////wH136Md54dFQencoh37WYxCysDzP6rcoh0OSGVsbG8sICJXb3JsZCKy2aIdC0hlbGxvAFdvcmxkiNmiHen//////////wEiNAocU2V0dGluZ1JlYWxzRnJvbVBvc2l0aXZlSW50czoU9d+jHQAAQEHp3KIdAAAAAABAY0AiNAocU2V0dGluZ1JlYWxzRnJvbU5lZ2F0aXZlSW50czoU9d+jHQAAQMHp3KIdAAAAAABAY8AiYgoSQ29tcGxleE9wdGlvblR5cGUxEhAKA2ZvbxgBIAEoBVIDZm9vEhIKBGZvbzIYAiABKAVSBGZvbzISEgoEZm9vMxgDIAEoBVIEZm9vMxISCgRmb280GAQgAygFUgRmb280Iq0DChJDb21wbGV4T3B0aW9uVHlwZTISNwoDYmFyGAEgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUxUgNiYXISEAoDYmF6GAIgASgFUgNiYXoSTAoEZnJlZBgDIAEoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0aW9uVHlwZTRSBGZyZWQSUAoGYmFybmV5GAQgAygLMjgucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyLkNvbXBsZXhPcHRpb25UeXBlNFIGYmFybmV5GqsBChJDb21wbGV4T3B0aW9uVHlwZTQSFAoFd2FsZG8YASABKAVSBXdhbGRvMn8KDGNvbXBsZXhfb3B0NBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiK9dEDIAEoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0aW9uVHlwZTRSC2NvbXBsZXhPcHQ0IiYKEkNvbXBsZXhPcHRpb25UeXBlMxIQCgNxdXgYASABKAVSA3F1eCJsChVWYXJpb3VzQ29tcGxleE9wdGlvbnM6U6LilR0CCCqi4pUdAiBjouKVHQIgWKr9kB0DENsHqv2QHQUKAwjnBdKojx0DCLMPqv2QHQUaAwjBAqr9kB0EIgIIZar9kB0FIgMI1AH63pAdAggJIlcKCUFnZ3JlZ2F0ZRIMCgFpGAEgASgFUgFpEgwKAXMYAiABKAlSAXMSLgoDc3ViGAMgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgNzdWIiZAoQQWdncmVnYXRlTWVzc2FnZRI0CglmaWVsZG5hbWUYASABKAVCFvKhhzsREg9GaWVsZEFubm90YXRpb25SCWZpZWxkbmFtZToawtGGOxUIZRIRTWVzc2FnZUFubm90YXRpb24ipAEKEE5lc3RlZE9wdGlvblR5cGUaSAoNTmVzdGVkTWVzc2FnZRIvCgxuZXN0ZWRfZmllbGQYASABKAVCDMHgwx3qAwAAAAAAAFILbmVzdGVkRmllbGQ6BuDpwh3pByJGCgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASHQoRTkVTVEVEX0VOVU1fVkFMVUUQARoGsIb6BewHGgjF9skd6wMAACpSCgpNZXRob2RPcHQxEhoKFk1FVEhPRE9QVDFfVU5TUEVDSUZJRUQQABITCg9NRVRIT0RPUFQxX1ZBTDEQARITCg9NRVRIT0RPUFQxX1ZBTDIQAipeCg1BZ2dyZWdhdGVFbnVtEg8KC1VOU1BFQ0lGSUVEEAASJQoFVkFMVUUQARoayvyJOxUSE0VudW1WYWx1ZUFubm90YXRpb24aFZKViDsQEg5FbnVtQW5ub3RhdGlvbjKOAQocVGVzdFNlcnZpY2VXaXRoQ3VzdG9tT3B0aW9ucxJjCgNGb28SKS5wcm90b2J1Zl91bml0dGVzdC5DdXN0b21PcHRpb25Gb29SZXF1ZXN0GioucHJvdG9idWZfdW5pdHRlc3QuQ3VzdG9tT3B0aW9uRm9vUmVzcG9uc2UiBeD6jB4CGgmQsose09uAy0kymQEKEEFnZ3JlZ2F0ZVNlcnZpY2USawoGTWV0aG9kEiMucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlTWVzc2FnZRojLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZU1lc3NhZ2UiF8rIljsSEhBNZXRob2RBbm5vdGF0aW9uGhjK+447ExIRU2VydmljZUFubm90YXRpb246PAoJZmlsZV9vcHQxEhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zGI6d2AMgASgEUghmaWxlT3B0MTpFCgxtZXNzYWdlX29wdDESHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYnK3YAyABKAVSC21lc3NhZ2VPcHQxOj8KCmZpZWxkX29wdDESHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGIi82AMgASgGUglmaWVsZE9wdDE6PwoKb25lb2Zfb3B0MRIdLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnMYz7XYAyABKAVSCW9uZW9mT3B0MTo8CgllbnVtX29wdDESHC5nb29nbGUucHJvdG9idWYuRW51bU9wdGlvbnMY6J7ZAyABKA9SCGVudW1PcHQxOksKD2VudW1fdmFsdWVfb3B0MRIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zGOagXyABKAVSDWVudW1WYWx1ZU9wdDE6RQoMc2VydmljZV9vcHQxEh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGKK24QMgASgSUgtzZXJ2aWNlT3B0MTphCgttZXRob2Rfb3B0MRIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGKzP4QMgASgOMh0ucHJvdG9idWZfdW5pdHRlc3QuTWV0aG9kT3B0MVIKbWV0aG9kT3B0MTo9Cghib29sX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjqq9YDIAEoCFIHYm9vbE9wdDo/CglpbnQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY7ajWAyABKAVSCGludDMyT3B0Oj8KCWludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjGp9YDIAEoA1IIaW50NjRPcHQ6QQoKdWludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiwotYDIAEoDVIJdWludDMyT3B0OkEKCnVpbnQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY347WAyABKARSCXVpbnQ2NE9wdDpBCgpzaW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGMCI1gMgASgRUglzaW50MzJPcHQ6QQoKc2ludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxj/gtYDIAEoElIJc2ludDY0T3B0OkMKC2ZpeGVkMzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNP+1QMgASgHUgpmaXhlZDMyT3B0OkMKC2ZpeGVkNjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOL91QMgASgGUgpmaXhlZDY0T3B0OkUKDHNmaXhlZDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjV8dUDIAEoD1ILc2ZpeGVkMzJPcHQ6RQoMc2ZpeGVkNjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOOK1QMgASgQUgtzZml4ZWQ2NE9wdDo/CglmbG9hdF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY/rvUAyABKAJSCGZsb2F0T3B0OkEKCmRvdWJsZV9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYzavUAyABKAFSCWRvdWJsZU9wdDpBCgpzdHJpbmdfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGMWr1AMgASgJUglzdHJpbmdPcHQ6PwoJYnl0ZXNfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJar1AMgASgMUghieXRlc09wdDp5CghlbnVtX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiRq9QDIAEoDjI6LnByb3RvYnVmX3VuaXR0ZXN0LkR1bW15TWVzc2FnZUNvbnRhaW5pbmdFbnVtLlRlc3RFbnVtVHlwZVIHZW51bU9wdDqAAQoQbWVzc2FnZV90eXBlX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiv8tMDIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LkR1bW15TWVzc2FnZUludmFsaWRBc09wdGlvblR5cGVSDm1lc3NhZ2VUeXBlT3B0OmwKDGNvbXBsZXhfb3B0MRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxik3NIDIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMVILY29tcGxleE9wdDE6bAoMY29tcGxleF9vcHQyEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNWP0gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyUgtjb21wbGV4T3B0MjpsCgxjb21wbGV4X29wdDMSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY74vSAyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTNSC2NvbXBsZXhPcHQzOlcKB2ZpbGVvcHQSHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMYz92wByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSB2ZpbGVvcHQ6WAoGbXNnb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJjqsAcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgZtc2dvcHQ6WgoIZmllbGRvcHQSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGJ70sAcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUghmaWVsZG9wdDpXCgdlbnVtb3B0EhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zGNKCsQcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgdlbnVtb3B0OmIKCmVudW12YWxvcHQSIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9ucxjJn7EHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIKZW51bXZhbG9wdDpgCgpzZXJ2aWNlb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGLnvsQcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgpzZXJ2aWNlb3B0Ol0KCW1ldGhvZG9wdBIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGInpsgcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgltZXRob2RvcHRCVaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9z8OjBHeqtwOUk+uyFOyoIZBIORmlsZUFubm90YXRpb24aFhIUTmVzdGVkRmlsZUFubm90YXRpb25KoVEKBxIFLADPAgEK9hAKAQwSAywAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtMBIEF1dGhvcjogYmVuanlAZ29vZ2xlLmNvbSAoQmVuankgV2VpbmJlcmdlcikKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB1c2VkIHRvIHRlc3QgdGhlICJjdXN0b20gb3B0aW9ucyIgZmVhdHVyZSBvZiBnb29nbGUucHJvdG9idWYuCjLRAiBUaGlzIGZpbGUgaXMgYmFzZWQgb24gdW5pdHRlc3RfY3VzdG9tX29wdGlvbnMucHJvdG8gaW4KIHNyYy9nb29nbGUvcHJvdG9idWYsIGJ1dCBpcyBtb2RpZmllZCBmb3IgcHJvdG8zLiBJdCBjb3VsZAogcG90ZW50aWFsbHkgYmUgbW92ZWQgaW50byBzcmMvZ29vZ2xlL3Byb3RvYnVmLCBidXQgY3VycmVudGx5IEMjCiBpcyB0aGUgb25seSBsYW5ndWFnZSB0aGF0IHJlYWxseSBuZWVkcyBpdCwgYXMgd2UgZG9uJ3Qgc3VwcG9ydAogcHJvdG8yIHN5bnRheC4gSXQncyBjdXQgZG93biBzaWduaWZpY2FudGx5IGFzIHByb3RvMyBvbmx5IHN1cHBvcnRzCiBleHRlbnNpb25zIGZv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BBIEAAIAAhIEywISEwoNCgUEEgQAAxIEzAIEHgoRCgkEEgQAA+ie2QMSBMwCBB4KDgoGBBIEAAIBEgTNAgQ1Cg8KBwQSBAACAQESBM0CBBUKDwoHBBIEAAIBAhIEzQIYGQoPCgcEEgQAAgEDEgTNAho0ChIKCgQSBAACAQPmoF8SBM0CGzNiBnByb3RvMwqKDwocdW5pdHRlc3RfaW1wb3J0X3B1YmxpYy5wcm90bxIfcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMiIjChNQdWJsaWNJbXBvcnRNZXNzYWdlEgwKAWUYASABKAVSAWVCJKoCIUdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zLlByb3RvMkr9DQoGEgQgACgBCvYMCgEMEgMgABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjIoIEF1dGhvcjogbGl1amlzaUBnb29nbGUuY29tIChQaGVybCBMaXUpCgoICgECEgMiACgKCAoBCBIDJAA+CgkKAgglEgMkAD4KCgoCBAASBCYAKAEKCgoDBAABEgMmCBsKCwoEBAACABIDJwIXCgwKBQQAAgAEEgMnAgoKDAoFBAACAAUSAycLEAoMCgUEAAIAARIDJxESCgwKBQQAAgADEgMnFRYK3RYKFXVuaXR0ZXN0X2ltcG9ydC5wcm90bxIfcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMhocdW5pdHRlc3RfaW1wb3J0X3B1YmxpYy5wcm90byIdCg1JbXBvcnRNZXNzYWdlEgwKAWQYASABKAVSAWQqPAoKSW1wb3J0RW51bRIOCgpJTVBPUlRfRk9PEAcSDgoKSU1QT1JUX0JBUhAIEg4KCklNUE9SVF9CQVoQCSoxChBJbXBvcnRFbnVtRm9yTWFwEgsKB1VOS05PV04QABIHCgNGT08QARIHCgNCQVIQAkIpSAH4AQGqAiFHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvcy5Qcm90bzJKxxQKBhIEJABEAQqYDgoBDBIDJAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyyQEgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogQSBwcm90byBmaWxlIHdoaWNoIGlzIGltcG9ydGVkIGJ5IHVuaXR0ZXN0LnByb3RvIHRvIHRlc3QgaW1wb3J0aW5nLgoK9QEKAQISAyoAKBrqASBXZSBkb24ndCBwdXQgdGhpcyBpbiBhIHBhY2thZ2Ugd2l0aGluIHByb3RvMiBiZWNhdXNlIHdlIG5lZWQgdG8gbWFrZSBzdXJlCiB0aGF0IHRoZSBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0IGRlcGVuZCBvbiBiZWluZyBpbiB0aGUgcHJvdG8yIG5hbWVzcGFjZS4KIEluIHRlc3RfdXRpbC5oIHdlIGRvCiAidXNpbmcgbmFtZXNwYWNlIHVuaXR0ZXN0X2ltcG9ydCA9IHByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydCIuCgoICgEIEgMsABwKCQoCCAkSAywAHAoICgEIEgMtAB8KCQoCCB8SAy0AHwoICgEIEgMvAD4KCQoCCCUSAy8APgofCgIDABIDMgAtGhQgVGVzdCBwdWJsaWMgaW1wb3J0CgoJCgIKABIDMgcNCgoKAgQAEgQ0ADYBCgoKAwQAARIDNAgVCgsKBAQAAgASAzUCFwoMCgUEAAIABBIDNQIKCgwKBQQAAgAFEgM1CxAKDAoFBAACAAESAzUREgoMCgUEAAIAAxIDNRUWCgoKAgUAEgQ4ADwBCgoKAwUAARIDOAUPCgsKBAUAAgASAzkCEQoMCgUFAAIAARIDOQIMCgwKBQUAAgACEgM5DxAKCwoEBQACARIDOgIRCgwKBQUAAgEBEgM6AgwKDAoFBQACAQISAzoPEAoLCgQFAAICEgM7AhEKDAoFBQACAgESAzsCDAoMCgUFAAICAhIDOw8QCkgKAgUBEgRAAEQBGjwgVG8gdXNlIGFuIGVudW0gaW4gYSBtYXAsIGl0IG11c3QgaGFzIHRoZSBmaXJzdCB2YWx1ZSBhcyAwLgoKCgoDBQEBEgNABRUKCwoEBQECABIDQQIOCgwKBQUBAgABEgNBAgkKDAoFBQECAAISA0EMDQoLCgQFAQIBEgNCAgoKDAoFBQECAQESA0ICBQoMCgUFAQIBAhIDQggJCgsKBAUBAgISA0MCCgoMCgUFAQICARIDQwIFCgwKBQUBAgICEgNDCAlQAAqB0wUKDnVuaXR0ZXN0LnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9wcm90bzIaFXVuaXR0ZXN0X2ltcG9ydC5wcm90byKRJAoMVGVzdEFsbFR5cGVzEiUKDm9wdGlvbmFsX2ludDMyGAEgASgFUg1vcHRpb25hbEludDMyEiUKDm9wdGlvbmFsX2ludDY0GAIgASgDUg1vcHRpb25hbEludDY0EicKD29wdGlvbmFsX3VpbnQzMhgDIAEoDVIOb3B0aW9uYWxVaW50MzISJwoPb3B0aW9uYWxfdWludDY0GAQgASgEUg5vcHRpb25hbFVpbnQ2NBInCg9vcHRpb25hbF9zaW50MzIYBSABKBFSDm9wdGlvbmFsU2ludDMyEicKD29wdGlvbmFsX3NpbnQ2NBgGIAEoElIOb3B0aW9uYWxTaW50NjQSKQoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoB1IPb3B0aW9uYWxGaXhlZDMyEikKEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZSD29wdGlvbmFsRml4ZWQ2NBIrChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoD1IQb3B0aW9uYWxTZml4ZWQzMhIrChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEFIQb3B0aW9uYWxTZml4ZWQ2NBIlCg5vcHRpb25hbF9mbG9hdBgLIAEoAlINb3B0aW9uYWxGbG9hdBInCg9vcHRpb25hbF9kb3VibGUYDCABKAFSDm9wdGlvbmFsRG91YmxlEiMKDW9wdGlvbmFsX2Jvb2wYDSABKAhSDG9wdGlvbmFsQm9vbBInCg9vcHRpb25hbF9zdHJpbmcYDiABKAlSDm9wdGlvbmFsU3RyaW5nEiUKDm9wdGlvbmFsX2J5dGVzGA8gASgMUg1vcHRpb25hbEJ5dGVzEloKDW9wdGlvbmFsZ3JvdXAYECABKAoyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXASbAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRJiChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSFm9wdGlvbmFsRm9yZWlnbk1lc3NhZ2USZgoXb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2UYFCABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydE1lc3NhZ2VSFW9wdGlvbmFsSW1wb3J0TWVzc2FnZRJjChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVISb3B0aW9uYWxOZXN0ZWRFbnVtElkKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVITb3B0aW9uYWxGb3JlaWduRW51bRJdChRvcHRpb25hbF9pbXBvcnRfZW51bRgXIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bVISb3B0aW9uYWxJbXBvcnRFbnVtEjYKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAJSE29wdGlvbmFsU3RyaW5nUGllY2USJwoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAFSDG9wdGlvbmFsQ29yZBJ5Ch5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLlB1YmxpY0ltcG9ydE1lc3NhZ2VSG29wdGlvbmFsUHVibGljSW1wb3J0TWVzc2FnZRJsChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBUhNvcHRpb25hbExhenlNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEloKDXJlcGVhdGVkZ3JvdXAYLiADKAoyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLlJlcGVhdGVkR3JvdXBSDXJlcGVhdGVkZ3JvdXASbAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSFXJlcGVhdGVkTmVzdGVkTWVzc2FnZRJiChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSFnJlcGVhdGVkRm9yZWlnbk1lc3NhZ2USZgoXcmVwZWF0ZWRfaW1wb3J0X21lc3NhZ2UYMiADKAsyLi5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydE1lc3NhZ2VSFXJlcGVhdGVkSW1wb3J0TWVzc2FnZRJjChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIScmVwZWF0ZWROZXN0ZWRFbnVtElkKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVITcmVwZWF0ZWRGb3JlaWduRW51bRJdChRyZXBlYXRlZF9pbXBvcnRfZW51bRg1IAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bVIScmVwZWF0ZWRJbXBvcnRFbnVtEjYKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAJSE3JlcGVhdGVkU3RyaW5nUGllY2USJwoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAFSDHJlcGVhdGVkQ29yZBJsChVyZXBlYXRlZF9sYXp5X21lc3NhZ2UYOSADKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBUhNyZXBlYXRlZExhenlNZXNzYWdlEicKDWRlZmF1bHRfaW50MzIYPSABKAU6AjQxUgxkZWZhdWx0SW50MzISJwoNZGVmYXVsdF9pbnQ2NBg+IAEoAzoCNDJSDGRlZmF1bHRJbnQ2NBIpCg5kZWZhdWx0X3VpbnQzMhg/IAEoDToCNDNSDWRlZmF1bHRVaW50MzISKQoOZGVmYXVsdF91aW50NjQYQCABKAQ6AjQ0Ug1kZWZhdWx0VWludDY0EioKDmRlZmF1bHRfc2ludDMyGEEgASgROgMtNDVSDWRlZmF1bHRTaW50MzISKQoOZGVmYXVsdF9zaW50NjQYQiABKBI6AjQ2Ug1kZWZhdWx0U2ludDY0EisKD2RlZmF1bHRfZml4ZWQzMhhDIAEoBzoCNDdSDmRlZmF1bHRGaXhlZDMyEisKD2RlZmF1bHRfZml4ZWQ2NBhEIAEoBjoCNDhSDmRlZmF1bHRGaXhlZDY0Ei0KEGRlZmF1bHRfc2ZpeGVkMzIYRSABKA86AjQ5Ug9kZWZhdWx0U2ZpeGVkMzISLgoQZGVmYXVsdF9zZml4ZWQ2NBhGIAEoEDoDLTUwUg9kZWZhdWx0U2ZpeGVkNjQSKQoNZGVmYXVsdF9mbG9hdBhHIAEoAjoENTEuNVIMZGVmYXVsdEZsb2F0EiwKDmRlZmF1bHRfZG91YmxlGEggASgBOgU1MjAwMFINZGVmYXVsdERvdWJsZRInCgxkZWZhdWx0X2Jvb2wYSSABKAg6BHRydWVSC2RlZmF1bHRCb29sEiwKDmRlZmF1bHRfc3RyaW5nGEogASgJOgVoZWxsb1INZGVmYXVsdFN0cmluZxIqCg1kZWZhdWx0X2J5dGVzGEsgASgMOgV3b3JsZFIMZGVmYXVsdEJ5dGVzEmYKE2RlZmF1bHRfbmVzdGVkX2VudW0YUSABKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUlIRZGVmYXVsdE5lc3RlZEVudW0SZAoUZGVmYXVsdF9mb3JlaWduX2VudW0YUiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW06C0ZPUkVJR05fQkFSUhJkZWZhdWx0Rm9yZWlnbkVudW0SZwoTZGVmYXVsdF9pbXBvcnRfZW51bRhTIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bToKSU1QT1JUX0JBUlIRZGVmYXVsdEltcG9ydEVudW0SOQoUZGVmYXVsdF9zdHJpbmdfcGllY2UYVCABKAk6A2FiY0ICCAJSEmRlZmF1bHRTdHJpbmdQaWVjZRIqCgxkZWZhdWx0X2NvcmQYVSABKAk6AzEyM0ICCAFSC2RlZmF1bHRDb3JkEiMKDG9uZW9mX3VpbnQzMhhvIAEoDUgAUgtvbmVvZlVpbnQzMhJoChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUgAUhJvbmVvZk5lc3RlZE1lc3NhZ2USIwoMb25lb2Zfc3RyaW5nGHEgASgJSABSC29uZW9mU3RyaW5nEiEKC29uZW9mX2J5dGVzGHIgASgMSABSCm9uZW9mQnl0ZXMaHwoNTmVzdGVkTWVzc2FnZRIOCgJiYhgBIAEoBVICYmIaHQoNT3B0aW9uYWxHcm91cBIMCgFhGBEgASgFUgFhGh0KDVJlcGVhdGVkR3JvdXASDAoBYRgvIAEoBVIBYSI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADEhAKA05FRxD///////////8BQg0KC29uZW9mX2ZpZWxkIu8BChJOZXN0ZWRUZXN0QWxsVHlwZXMSQgoFY2hpbGQYASABKAsyLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuTmVzdGVkVGVzdEFsbFR5cGVzUgVjaGlsZBJACgdwYXlsb2FkGAIgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IHcGF5bG9hZBJTCg5yZXBlYXRlZF9jaGlsZBgDIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5OZXN0ZWRUZXN0QWxsVHlwZXNSDXJlcGVhdGVkQ2hpbGQilgEKFFRlc3REZXByZWNhdGVkRmllbGRzEi0KEGRlcHJlY2F0ZWRfaW50MzIYASABKAVCAhgBUg9kZXByZWNhdGVkSW50MzISPwoZZGVwcmVjYXRlZF9pbnQzMl9pbl9vbmVvZhgCIAEoBUICGAFIAFIWZGVwcmVjYXRlZEludDMySW5PbmVvZkIOCgxvbmVvZl9maWVsZHMiGwoVVGVzdERlcHJlY2F0ZWRNZXNzYWdlOgIYASIsCg5Gb3JlaWduTWVzc2FnZRIMCgFjGAEgASgFUgFjEgwKAWQYAiABKAVSAWQiMAoSVGVzdFJlc2VydmVkRmllbGRzSgQIAhADSgQIDxAQSgQICRAMUgNiYXJSA2JheiIdChFUZXN0QWxsRXh0ZW5zaW9ucyoICAEQgICAgAIiJwoXT3B0aW9uYWxHcm91cF9leHRlbnNpb24SDAoBYRgRIAEoBVIBYSInChdSZXBlYXRlZEdyb3VwX2V4dGVuc2lvbhIMCgFhGC8gASgFUgFhIt4BCglUZXN0R3JvdXASVwoNb3B0aW9uYWxncm91cBgQIAEoCjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0R3JvdXAuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBJZChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SE29wdGlvbmFsRm9yZWlnbkVudW0aHQoNT3B0aW9uYWxHcm91cBIMCgFhGBEgASgFUgFhIh4KElRlc3RHcm91cEV4dGVuc2lvbioICAEQgICAgAIiuAQKE1Rlc3ROZXN0ZWRFeHRlbnNpb24aJwoXT3B0aW9uYWxHcm91cF9leHRlbnNpb24SDAoBYRgRIAEoBVIBYTJGCgR0ZXN0EisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOoHIAEoCToEdGVzdFIEdGVzdDJkChduZXN0ZWRfc3RyaW5nX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxjrByABKAlSFW5lc3RlZFN0cmluZ0V4dGVuc2lvbjKsAQoXb3B0aW9uYWxncm91cF9leHRlbnNpb24SLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEdyb3VwRXh0ZW5zaW9uGBAgASgKMkUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3ROZXN0ZWRFeHRlbnNpb24uT3B0aW9uYWxHcm91cF9leHRlbnNpb25SFm9wdGlvbmFsZ3JvdXBFeHRlbnNpb24ymgEKH29wdGlvbmFsX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEdyb3VwRXh0ZW5zaW9uGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhxvcHRpb25hbEZvcmVpZ25FbnVtRXh0ZW5zaW9uIpAICgxUZXN0UmVxdWlyZWQSDAoBYRgBIAIoBVIBYRIWCgZkdW1teTIYAiABKAVSBmR1bW15MhIMCgFiGAMgAigFUgFiEhYKBmR1bW15NBgEIAEoBVIGZHVtbXk0EhYKBmR1bW15NRgFIAEoBVIGZHVtbXk1EhYKBmR1bW15NhgGIAEoBVIGZHVtbXk2EhYKBmR1bW15NxgHIAEoBVIGZHVtbXk3EhYKBmR1bW15OBgIIAEoBVIGZHVtbXk4EhYKBmR1bW15ORgJIAEoBVIGZHVtbXk5EhgKB2R1bW15MTAYCiABKAVSB2R1bW15MTASGAoHZHVtbXkxMRgLIAEoBVIHZHVtbXkxMRIYCgdkdW1teTEyGAwgASgFUgdkdW1teTEyEhgKB2R1bW15MTMYDSABKAVSB2R1bW15MTMSGAoHZHVtbXkxNBgOIAEoBVIHZHVtbXkxNBIYCgdkdW1teTE1GA8gASgFUgdkdW1teTE1EhgKB2R1bW15MTYYECABKAVSB2R1bW15MTYSGAoHZHVtbXkxNxgRIAEoBVIHZHVtbXkxNxIYCgdkdW1teTE4GBIgASgFUgdkdW1teTE4EhgKB2R1bW15MTkYEyABKAVSB2R1bW15MTkSGAoHZHVtbXkyMBgUIAEoBVIHZHVtbXkyMBIYCgdkdW1teTIxGBUgASgFUgdkdW1teTIxEhgKB2R1bW15MjIYFiABKAVSB2R1bW15MjISGAoHZHVtbXkyMxgXIAEoBVIHZHVtbXkyMxIYCgdkdW1teTI0GBggASgFUgdkdW1teTI0EhgKB2R1bW15MjUYGSABKAVSB2R1bW15MjUSGAoHZHVtbXkyNhgaIAEoBVIHZHVtbXkyNhIYCgdkdW1teTI3GBsgASgFUgdkdW1teTI3EhgKB2R1bW15MjgYHCABKAVSB2R1bW15MjgSGAoHZHVtbXkyORgdIAEoBVIHZHVtbXkyORIYCgdkdW1teTMwGB4gASgFUgdkdW1teTMwEhgKB2R1bW15MzEYHyABKAVSB2R1bW15MzESGAoHZHVtbXkzMhggIAEoBVIHZHVtbXkzMhIMCgFjGCEgAigFUgFjMmwKBnNpbmdsZRIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxjoByABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUgZzaW5nbGUyagoFbXVsdGkSKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6QcgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIFbXVsdGki0QEKE1Rlc3RSZXF1aXJlZEZvcmVpZ24SUQoQb3B0aW9uYWxfbWVzc2FnZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD29wdGlvbmFsTWVzc2FnZRJRChByZXBlYXRlZF9tZXNzYWdlGAIgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPcmVwZWF0ZWRNZXNzYWdlEhQKBWR1bW15GAMgASgFUgVkdW1teSKOAgoTVGVzdFJlcXVpcmVkTWVzc2FnZRJRChBvcHRpb25hbF9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPb3B0aW9uYWxNZXNzYWdlElEKEHJlcGVhdGVkX21lc3NhZ2UYAiADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9yZXBlYXRlZE1lc3NhZ2USUQoQcmVxdWlyZWRfbWVzc2FnZRgDIAIoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD3JlcXVpcmVkTWVzc2FnZSJwChFUZXN0Rm9yZWlnbk5lc3RlZBJbCg5mb3JlaWduX25lc3RlZBgBIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVINZm9yZWlnbk5lc3RlZCISChBUZXN0RW1wdHlNZXNzYWdlIioKHlRlc3RFbXB0eU1lc3NhZ2VXaXRoRXh0ZW5zaW9ucyoICAEQgICAgAIiNwobVGVzdE11bHRpcGxlRXh0ZW5zaW9uUmFuZ2VzKgQIKhArKgYIryAQlCEqCgiAgAQQgICAgAIiOwoYVGVzdFJlYWxseUxhcmdlVGFnTnVtYmVyEgwKAWEYASABKAVSAWESEQoCYmIY////fyABKAVSAmJiImIKFFRlc3RSZWN1cnNpdmVNZXNzYWdlEjwKAWEYASABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlY3Vyc2l2ZU1lc3NhZ2VSAWESDAoBaRgCIAEoBVIBaSKvAwoUVGVzdE11dHVhbFJlY3Vyc2lvbkESPgoCYmIYASABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkJSAmJiElMKCHN1Ymdyb3VwGAIgASgKMjcucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25BLlN1Ykdyb3VwUghzdWJncm91cBpKCgpTdWJNZXNzYWdlEjwKAWIYASABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkJSAWIatQEKCFN1Ykdyb3VwEloKC3N1Yl9tZXNzYWdlGAMgASgLMjkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25BLlN1Yk1lc3NhZ2VSCnN1Yk1lc3NhZ2USTQoPbm90X2luX3RoaXNfc2NjGAQgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IMbm90SW5UaGlzU2NjInsKFFRlc3RNdXR1YWxSZWN1cnNpb25CEjwKAWEYASABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkFSAWESJQoOb3B0aW9uYWxfaW50MzIYAiABKAVSDW9wdGlvbmFsSW50MzIi8gEKEVRlc3RJc0luaXRpYWxpemVkElcKC3N1Yl9tZXNzYWdlGAEgASgLMjYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RJc0luaXRpYWxpemVkLlN1Yk1lc3NhZ2VSCnN1Yk1lc3NhZ2UagwEKClN1Yk1lc3NhZ2USWwoIc3ViZ3JvdXAYASABKAoyPy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdElzSW5pdGlhbGl6ZWQuU3ViTWVzc2FnZS5TdWJHcm91cFIIc3ViZ3JvdXAaGAoIU3ViR3JvdXASDAoBaRgCIAIoBVIBaSLUAQoSVGVzdER1cEZpZWxkTnVtYmVyEgwKAWEYASABKAVSAWESQgoDZm9vGAIgASgKMjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REdXBGaWVsZE51bWJlci5Gb29SA2ZvbxJCCgNiYXIYAyABKAoyMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdER1cEZpZWxkTnVtYmVyLkJhclIDYmFyGhMKA0ZvbxIMCgFhGAEgASgFUgFhGhMKA0JhchIMCgFhGAEgASgFUgFhIl8KEFRlc3RFYWdlck1lc3NhZ2USSwoLc3ViX21lc3NhZ2UYASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzQgIoAFIKc3ViTWVzc2FnZSJeCg9UZXN0TGF6eU1lc3NhZ2USSwoLc3ViX21lc3NhZ2UYASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzQgIoAVIKc3ViTWVzc2FnZSLmAgoYVGVzdE5lc3RlZE1lc3NhZ2VIYXNCaXRzEngKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGAEgASgLMkAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3ROZXN0ZWRNZXNzYWdlSGFzQml0cy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2UazwEKDU5lc3RlZE1lc3NhZ2USQAocbmVzdGVkbWVzc2FnZV9yZXBlYXRlZF9pbnQzMhgBIAMoBVIabmVzdGVkbWVzc2FnZVJlcGVhdGVkSW50MzISfAolbmVzdGVkbWVzc2FnZV9yZXBlYXRlZF9mb3JlaWdubWVzc2FnZRgCIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIjbmVzdGVkbWVzc2FnZVJlcGVhdGVkRm9yZWlnbm1lc3NhZ2Ui1wUKF1Rlc3RDYW1lbENhc2VGaWVsZE5hbWVzEiYKDlByaW1pdGl2ZUZpZWxkGAEgASgFUg5QcmltaXRpdmVGaWVsZBIgCgtTdHJpbmdGaWVsZBgCIAEoCVILU3RyaW5nRmllbGQSQwoJRW51bUZpZWxkGAMgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUglFbnVtRmllbGQSTAoMTWVzc2FnZUZpZWxkGAQgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUgxNZXNzYWdlRmllbGQSLgoQU3RyaW5nUGllY2VGaWVsZBgFIAEoCUICCAJSEFN0cmluZ1BpZWNlRmllbGQSIAoJQ29yZEZpZWxkGAYgASgJQgIIAVIJQ29yZEZpZWxkEjYKFlJlcGVhdGVkUHJpbWl0aXZlRmllbGQYByADKAVSFlJlcGVhdGVkUHJpbWl0aXZlRmllbGQSMAoTUmVwZWF0ZWRTdHJpbmdGaWVsZBgIIAMoCVITUmVwZWF0ZWRTdHJpbmdGaWVsZBJTChFSZXBlYXRlZEVudW1GaWVsZBgJIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIRUmVwZWF0ZWRFbnVtRmllbGQSXAoUUmVwZWF0ZWRNZXNzYWdlRmllbGQYCiADKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSFFJlcGVhdGVkTWVzc2FnZUZpZWxkEj4KGFJlcGVhdGVkU3RyaW5nUGllY2VGaWVsZBgLIAMoCUICCAJSGFJlcGVhdGVkU3RyaW5nUGllY2VGaWVsZBIwChFSZXBlYXRlZENvcmRGaWVsZBgMIAMoCUICCAFSEVJlcGVhdGVkQ29yZEZpZWxkIpUCChJUZXN0RmllbGRPcmRlcmluZ3MSGwoJbXlfc3RyaW5nGAsgASgJUghteVN0cmluZxIVCgZteV9pbnQYASABKANSBW15SW50EhkKCG15X2Zsb2F0GGUgASgCUgdteUZsb2F0EnMKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGMgBIAEoCzI6LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlGi8KDU5lc3RlZE1lc3NhZ2USDgoCb28YAiABKANSAm9vEg4KAmJiGAEgASgFUgJiYioECAIQCyoECAwQZSLIAQoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczESGwoJbXlfc3RyaW5nGAEgASgJUghteVN0cmluZzKPAQoTdGVzdF9leHRfb3JkZXJpbmdzMRIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYDSABKAsyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczFSEXRlc3RFeHRPcmRlcmluZ3MxIqsDChdUZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMhIbCglteV9zdHJpbmcYASABKAlSCG15U3RyaW5nGuABChdUZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMxIbCglteV9zdHJpbmcYASABKAlSCG15U3RyaW5nMqcBChN0ZXN0X2V4dF9vcmRlcmluZ3MzEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgOIAEoCzJJLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMi5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzM1IRdGVzdEV4dE9yZGVyaW5nczMyjwEKE3Rlc3RfZXh0X29yZGVyaW5nczISLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGAwgASgLMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MyUhF0ZXN0RXh0T3JkZXJpbmdzMiKvCgoYVGVzdEV4dHJlbWVEZWZhdWx0VmFsdWVzEk0KDWVzY2FwZWRfYnl0ZXMYASABKAw6KFwwMDBcMDAxXDAwN1wwMTBcMDE0XG5cclx0XDAxM1xcXCdcIlwzNzZSDGVzY2FwZWRCeXRlcxItCgxsYXJnZV91aW50MzIYAiABKA06CjQyOTQ5NjcyOTVSC2xhcmdlVWludDMyEjcKDGxhcmdlX3VpbnQ2NBgDIAEoBDoUMTg0NDY3NDQwNzM3MDk1NTE2MTVSC2xhcmdlVWludDY0EiwKC3NtYWxsX2ludDMyGAQgASgFOgstMjE0NzQ4MzY0N1IKc21hbGxJbnQzMhI1CgtzbWFsbF9pbnQ2NBgFIAEoAzoULTkyMjMzNzIwMzY4NTQ3NzU4MDdSCnNtYWxsSW50NjQSOQoScmVhbGx5X3NtYWxsX2ludDMyGBUgASgFOgstMjE0NzQ4MzY0OFIQcmVhbGx5U21hbGxJbnQzMhJCChJyZWFsbHlfc21hbGxfaW50NjQYFiABKAM6FC05MjIzMzcyMDM2ODU0Nzc1ODA4UhByZWFsbHlTbWFsbEludDY0EiQKC3V0Zjhfc3RyaW5nGAYgASgJOgPhiLRSCnV0ZjhTdHJpbmcSIAoKemVyb19mbG9hdBgHIAEoAjoBMFIJemVyb0Zsb2F0Eh4KCW9uZV9mbG9hdBgIIAEoAjoBMVIIb25lRmxvYXQSJAoLc21hbGxfZmxvYXQYCSABKAI6AzEuNVIKc21hbGxGbG9hdBIwChJuZWdhdGl2ZV9vbmVfZmxvYXQYCiABKAI6Ai0xUhBuZWdhdGl2ZU9uZUZsb2F0EisKDm5lZ2F0aXZlX2Zsb2F0GAsgASgCOgQtMS41Ug1uZWdhdGl2ZUZsb2F0EiYKC2xhcmdlX2Zsb2F0GAwgASgCOgUyZSswOFIKbGFyZ2VGbG9hdBI4ChRzbWFsbF9uZWdhdGl2ZV9mbG9hdBgNIAEoAjoGLThlLTI4UhJzbWFsbE5lZ2F0aXZlRmxvYXQSIgoKaW5mX2RvdWJsZRgOIAEoAToDaW5mUglpbmZEb3VibGUSKgoObmVnX2luZl9kb3VibGUYDyABKAE6BC1pbmZSDG5lZ0luZkRvdWJsZRIiCgpuYW5fZG91YmxlGBAgASgBOgNuYW5SCW5hbkRvdWJsZRIgCglpbmZfZmxvYXQYESABKAI6A2luZlIIaW5mRmxvYXQSKAoNbmVnX2luZl9mbG9hdBgSIAEoAjoELWluZlILbmVnSW5mRmxvYXQSIAoJbmFuX2Zsb2F0GBMgASgCOgNuYW5SCG5hbkZsb2F0EjgKDGNwcF90cmlncmFwaBgUIAEoCToVPyA/ID8/ID8/ID8/PyA/Py8gPz8tUgtjcHBUcmlncmFwaBIwChBzdHJpbmdfd2l0aF96ZXJvGBcgASgJOgZoZWwAbG9SDnN0cmluZ1dpdGhaZXJvEjEKD2J5dGVzX3dpdGhfemVybxgYIAEoDDoJd29yXDAwMGxkUg1ieXRlc1dpdGhaZXJvEj0KFnN0cmluZ19waWVjZV93aXRoX3plcm8YGSABKAk6BGFiAGNCAggCUhNzdHJpbmdQaWVjZVdpdGhaZXJvEi4KDmNvcmRfd2l0aF96ZXJvGBogASgJOgQxMgAzQgIIAVIMY29yZFdpdGhaZXJvEjkKEnJlcGxhY2VtZW50X3N0cmluZxgbIAEoCToKJHt1bmtub3dufVIRcmVwbGFjZW1lbnRTdHJpbmciXgoRU3BhcnNlRW51bU1lc3NhZ2USSQoLc3BhcnNlX2VudW0YASABKA4yKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFNwYXJzZUVudW1SCnNwYXJzZUVudW0iHwoJT25lU3RyaW5nEhIKBGRhdGEYASABKAlSBGRhdGEiIAoKTW9yZVN0cmluZxISCgRkYXRhGAEgAygJUgRkYXRhIh4KCE9uZUJ5dGVzEhIKBGRhdGEYASABKAxSBGRhdGEiHwoJTW9yZUJ5dGVzEhIKBGRhdGEYASADKAxSBGRhdGEiIgoMSW50MzJNZXNzYWdlEhIKBGRhdGEYASABKAVSBGRhdGEiIwoNVWludDMyTWVzc2FnZRISCgRkYXRhGAEgASgNUgRkYXRhIiIKDEludDY0TWVzc2FnZRISCgRkYXRhGAEgASgDUgRkYXRhIiMKDVVpbnQ2NE1lc3NhZ2USEgoEZGF0YRgBIAEoBFIEZGF0YSIhCgtCb29sTWVzc2FnZRISCgRkYXRhGAEgASgIUgRkYXRhIo0CCglUZXN0T25lb2YSGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSSQoLZm9vX21lc3NhZ2UYAyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzSABSCmZvb01lc3NhZ2USSgoIZm9vZ3JvdXAYBCABKAoyLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mLkZvb0dyb3VwSABSCGZvb2dyb3VwGiYKCEZvb0dyb3VwEgwKAWEYBSABKAVSAWESDAoBYhgGIAEoCVIBYkIFCgNmb28ipAIKHFRlc3RPbmVvZkJhY2t3YXJkc0NvbXBhdGlibGUSFwoHZm9vX2ludBgBIAEoBVIGZm9vSW50Eh0KCmZvb19zdHJpbmcYAiABKAlSCWZvb1N0cmluZxJHCgtmb29fbWVzc2FnZRgDIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSCmZvb01lc3NhZ2USWwoIZm9vZ3JvdXAYBCABKAoyPy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mQmFja3dhcmRzQ29tcGF0aWJsZS5Gb29Hcm91cFIIZm9vZ3JvdXAaJgoIRm9vR3JvdXASDAoBYRgFIAEoBVIBYRIMCgFiGAYgASgJUgFiIpAICgpUZXN0T25lb2YyEhkKB2Zvb19pbnQYASABKAVIAFIGZm9vSW50Eh8KCmZvb19zdHJpbmcYAiABKAlIAFIJZm9vU3RyaW5nEh8KCGZvb19jb3JkGAMgASgJQgIIAUgAUgdmb29Db3JkEi4KEGZvb19zdHJpbmdfcGllY2UYBCABKAlCAggCSABSDmZvb1N0cmluZ1BpZWNlEh0KCWZvb19ieXRlcxgFIAEoDEgAUghmb29CeXRlcxJMCghmb29fZW51bRgGIAEoDjIvLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YyLk5lc3RlZEVudW1IAFIHZm9vRW51bRJVCgtmb29fbWVzc2FnZRgHIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YyLk5lc3RlZE1lc3NhZ2VIAFIKZm9vTWVzc2FnZRJLCghmb29ncm91cBgIIAEoCjItLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YyLkZvb0dyb3VwSABSCGZvb2dyb3VwEmIKEGZvb19sYXp5X21lc3NhZ2UYCyABKAsyMi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRNZXNzYWdlQgIoAUgAUg5mb29MYXp5TWVzc2FnZRIcCgdiYXJfaW50GAwgASgFOgE1SAFSBmJhckludBInCgpiYXJfc3RyaW5nGA0gASgJOgZTVFJJTkdIAVIJYmFyU3RyaW5nEiUKCGJhcl9jb3JkGA4gASgJOgRDT1JEQgIIAUgBUgdiYXJDb3JkEjYKEGJhcl9zdHJpbmdfcGllY2UYDyABKAk6BlNQSUVDRUICCAJIAVIOYmFyU3RyaW5nUGllY2USJAoJYmFyX2J5dGVzGBAgASgMOgVCWVRFU0gBUghiYXJCeXRlcxJRCghiYXJfZW51bRgRIAEoDjIvLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YyLk5lc3RlZEVudW06A0JBUkgBUgdiYXJFbnVtEhcKB2Jhel9pbnQYEiABKAVSBmJhekludBIiCgpiYXpfc3RyaW5nGBMgASgJOgNCQVpSCWJhelN0cmluZxomCghGb29Hcm91cBIMCgFhGAkgASgFUgFhEgwKAWIYCiABKAlSAWIaRQoNTmVzdGVkTWVzc2FnZRIXCgdxdXhfaW50GAEgASgDUgZxdXhJbnQSGwoJY29yZ2VfaW50GAIgAygFUghjb3JnZUludCInCgpOZXN0ZWRFbnVtEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADQgUKA2Zvb0IFCgNiYXIi7gEKEVRlc3RSZXF1aXJlZE9uZW9mEhkKB2Zvb19pbnQYASABKAVIAFIGZm9vSW50Eh8KCmZvb19zdHJpbmcYAiABKAlIAFIJZm9vU3RyaW5nElwKC2Zvb19tZXNzYWdlGAMgASgLMjkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZE9uZW9mLk5lc3RlZE1lc3NhZ2VIAFIKZm9vTWVzc2FnZRo4Cg1OZXN0ZWRNZXNzYWdlEicKD3JlcXVpcmVkX2RvdWJsZRgBIAIoAVIOcmVxdWlyZWREb3VibGVCBQoDZm9vIoACCg9UZXN0UmVxdWlyZWRNYXASRAoDZm9vGAEgAygLMjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZE1hcC5Gb29FbnRyeVIDZm9vGm8KCEZvb0VudHJ5EhAKA2tleRgBIAEoBVIDa2V5Ek0KBXZhbHVlGAIgASgLMjcucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZE1hcC5OZXN0ZWRNZXNzYWdlUgV2YWx1ZToCOAEaNgoNTmVzdGVkTWVzc2FnZRIlCg5yZXF1aXJlZF9pbnQzMhgBIAIoBVINcmVxdWlyZWRJbnQzMiL0BAoPVGVzdFBhY2tlZFR5cGVzEiUKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAFSC3BhY2tlZEludDMyEiUKDHBhY2tlZF9pbnQ2NBhbIAMoA0ICEAFSC3BhY2tlZEludDY0EicKDXBhY2tlZF91aW50MzIYXCADKA1CAhABUgxwYWNrZWRVaW50MzISJwoNcGFja2VkX3VpbnQ2NBhdIAMoBEICEAFSDHBhY2tlZFVpbnQ2NBInCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQAVIMcGFja2VkU2ludDMyEicKDXBhY2tlZF9zaW50NjQYXyADKBJCAhABUgxwYWNrZWRTaW50NjQSKQoOcGFja2VkX2ZpeGVkMzIYYCADKAdCAhABUg1wYWNrZWRGaXhlZDMyEikKDnBhY2tlZF9maXhlZDY0GGEgAygGQgIQAVINcGFja2VkRml4ZWQ2NBIrCg9wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhABUg5wYWNrZWRTZml4ZWQzMhIrCg9wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhABUg5wYWNrZWRTZml4ZWQ2NBIlCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABUgtwYWNrZWRGbG9hdBInCg1wYWNrZWRfZG91YmxlGGUgAygBQgIQAVIMcGFja2VkRG91YmxlEiMKC3BhY2tlZF9ib29sGGYgAygIQgIQAVIKcGFja2VkQm9vbBJKCgtwYWNrZWRfZW51bRhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEAFSCnBhY2tlZEVudW0irgUKEVRlc3RVbnBhY2tlZFR5cGVzEikKDnVucGFja2VkX2ludDMyGFogAygFQgIQAFINdW5wYWNrZWRJbnQzMhIpCg51bnBhY2tlZF9pbnQ2NBhbIAMoA0ICEABSDXVucGFja2VkSW50NjQSKwoPdW5wYWNrZWRfdWludDMyGFwgAygNQgIQAFIOdW5wYWNrZWRVaW50MzISKwoPdW5wYWNrZWRfdWludDY0GF0gAygEQgIQAFIOdW5wYWNrZWRVaW50NjQSKwoPdW5wYWNrZWRfc2ludDMyGF4gAygRQgIQAFIOdW5wYWNrZWRTaW50MzISKwoPdW5wYWNrZWRfc2ludDY0GF8gAygSQgIQAFIOdW5wYWNrZWRTaW50NjQSLQoQdW5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEABSD3VucGFja2VkRml4ZWQzMhItChB1bnBhY2tlZF9maXhlZDY0GGEgAygGQgIQAFIPdW5wYWNrZWRGaXhlZDY0Ei8KEXVucGFja2VkX3NmaXhlZDMyGGIgAygPQgIQAFIQdW5wYWNrZWRTZml4ZWQzMhIvChF1bnBhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEABSEHVucGFja2VkU2ZpeGVkNjQSKQoOdW5wYWNrZWRfZmxvYXQYZCADKAJCAhAAUg11bnBhY2tlZEZsb2F0EisKD3VucGFja2VkX2RvdWJsZRhlIAMoAUICEABSDnVucGFja2VkRG91YmxlEicKDXVucGFja2VkX2Jvb2wYZiADKAhCAhAAUgx1bnBhY2tlZEJvb2wSTgoNdW5wYWNrZWRfZW51bRhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEABSDHVucGFja2VkRW51bSIgChRUZXN0UGFja2VkRXh0ZW5zaW9ucyoICAEQgICAgAIiIgoWVGVzdFVucGFja2VkRXh0ZW5zaW9ucyoICAEQgICAgAIiyAUKFVRlc3REeW5hbWljRXh0ZW5zaW9ucxIqChBzY2FsYXJfZXh0ZW5zaW9uGNAPIAEoB1IPc2NhbGFyRXh0ZW5zaW9uEk0KDmVudW1fZXh0ZW5zaW9uGNEPIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVINZW51bUV4dGVuc2lvbhJ2ChZkeW5hbWljX2VudW1fZXh0ZW5zaW9uGNIPIAEoDjI/LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHluYW1pY0V4dGVuc2lvbnMuRHluYW1pY0VudW1UeXBlUhRkeW5hbWljRW51bUV4dGVuc2lvbhJWChFtZXNzYWdlX2V4dGVuc2lvbhjTDyABKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSEG1lc3NhZ2VFeHRlbnNpb24SfwoZZHluYW1pY19tZXNzYWdlX2V4dGVuc2lvbhjUDyABKAsyQi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdER5bmFtaWNFeHRlbnNpb25zLkR5bmFtaWNNZXNzYWdlVHlwZVIXZHluYW1pY01lc3NhZ2VFeHRlbnNpb24SLgoScmVwZWF0ZWRfZXh0ZW5zaW9uGNUPIAMoCVIRcmVwZWF0ZWRFeHRlbnNpb24SLgoQcGFja2VkX2V4dGVuc2lvbhjWDyADKBFCAhABUg9wYWNrZWRFeHRlbnNpb24aOgoSRHluYW1pY01lc3NhZ2VUeXBlEiQKDWR5bmFtaWNfZmllbGQYtBAgASgFUgxkeW5hbWljRmllbGQiRwoPRHluYW1pY0VudW1UeXBlEhAKC0RZTkFNSUNfRk9PEJgREhAKC0RZTkFNSUNfQkFSEJkREhAKC0RZTkFNSUNfQkFaEJoRIp8CCiNUZXN0UmVwZWF0ZWRTY2FsYXJEaWZmZXJlbnRUYWdTaXplcxIpChByZXBlYXRlZF9maXhlZDMyGAwgAygHUg9yZXBlYXRlZEZpeGVkMzISJQoOcmVwZWF0ZWRfaW50MzIYDSADKAVSDXJlcGVhdGVkSW50MzISKgoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAZSD3JlcGVhdGVkRml4ZWQ2NBImCg5yZXBlYXRlZF9pbnQ2NBj/DyADKANSDXJlcGVhdGVkSW50NjQSJwoOcmVwZWF0ZWRfZmxvYXQY/v8PIAMoAlINcmVwZWF0ZWRGbG9hdBIpCg9yZXBlYXRlZF91aW50NjQY//8PIAMoBFIOcmVwZWF0ZWRVaW50NjQi4wwKEFRlc3RQYXJzaW5nTWVyZ2USVAoScmVxdWlyZWRfYWxsX3R5cGVzGAEgAigLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IQcmVxdWlyZWRBbGxUeXBlcxJUChJvcHRpb25hbF9hbGxfdHlwZXMYAiABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhBvcHRpb25hbEFsbFR5cGVzElQKEnJlcGVhdGVkX2FsbF90eXBlcxgDIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSEHJlcGVhdGVkQWxsVHlwZXMSXgoNb3B0aW9uYWxncm91cBgKIAEoCjI4LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXASXgoNcmVwZWF0ZWRncm91cBgUIAMoCjI4LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkR3JvdXBSDXJlcGVhdGVkZ3JvdXAarQUKF1JlcGVhdGVkRmllbGRzR2VuZXJhdG9yEj4KBmZpZWxkMRgBIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMRI+CgZmaWVsZDIYAiADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDISPgoGZmllbGQzGAMgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQzEmEKBmdyb3VwMRgKIAMoCjJJLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkRmllbGRzR2VuZXJhdG9yLkdyb3VwMVIGZ3JvdXAxEmEKBmdyb3VwMhgUIAMoCjJJLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkRmllbGRzR2VuZXJhdG9yLkdyb3VwMlIGZ3JvdXAyEjsKBGV4dDEY6AcgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IEZXh0MRI7CgRleHQyGOkHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBGV4dDIaSAoGR3JvdXAxEj4KBmZpZWxkMRgLIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMRpICgZHcm91cDISPgoGZmllbGQxGBUgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQxGnAKDU9wdGlvbmFsR3JvdXASXwoYb3B0aW9uYWxfZ3JvdXBfYWxsX3R5cGVzGAsgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IVb3B0aW9uYWxHcm91cEFsbFR5cGVzGnAKDVJlcGVhdGVkR3JvdXASXwoYcmVwZWF0ZWRfZ3JvdXBfYWxsX3R5cGVzGBUgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IVcmVwZWF0ZWRHcm91cEFsbFR5cGVzKgkI6AcQgICAgAIydgoMb3B0aW9uYWxfZXh0EioucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UY6AcgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1ILb3B0aW9uYWxFeHQydgoMcmVwZWF0ZWRfZXh0EioucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UY6QcgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1ILcmVwZWF0ZWRFeHQiRwobVGVzdENvbW1lbnRJbmplY3Rpb25NZXNzYWdlEigKAWEYASABKAk6GiovIDwtIE5laXRoZXIgc2hvdWxkIHRoaXMuUgFhIgwKCkZvb1JlcXVlc3QiDQoLRm9vUmVzcG9uc2UiEgoQRm9vQ2xpZW50TWVzc2FnZSISChBGb29TZXJ2ZXJNZXNzYWdlIgwKCkJhclJlcXVlc3QiDQoLQmFyUmVzcG9uc2UizgEKDFRlc3RKc29uTmFtZRIfCgtmaWVsZF9uYW1lMRgBIAEoBVIKZmllbGROYW1lMRIeCgpmaWVsZE5hbWUyGAIgASgFUgpmaWVsZE5hbWUyEh4KCkZpZWxkTmFtZTMYAyABKAVSCkZpZWxkTmFtZTMSIAoMX2ZpZWxkX25hbWU0GAQgASgFUgpGaWVsZE5hbWU0Eh8KC0ZJRUxEX05BTUU1GAUgASgFUgpGSUVMRE5BTUU1EhoKC2ZpZWxkX25hbWU2GAYgASgFUgVAdHlwZSL/BwoUVGVzdEh1Z2VGaWVsZE51bWJlcnMSKQoOb3B0aW9uYWxfaW50MzIY8Pj//wEgASgFUg1vcHRpb25hbEludDMyEh0KCGZpeGVkXzMyGPH4//8BIAEoBVIHZml4ZWQzMhItCg5yZXBlYXRlZF9pbnQzMhjy+P//ASADKAVCAhAAUg1yZXBlYXRlZEludDMyEikKDHBhY2tlZF9pbnQzMhjz+P//ASADKAVCAhABUgtwYWNrZWRJbnQzMhJOCg1vcHRpb25hbF9lbnVtGPT4//8BIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIMb3B0aW9uYWxFbnVtEisKD29wdGlvbmFsX3N0cmluZxj1+P//ASABKAlSDm9wdGlvbmFsU3RyaW5nEikKDm9wdGlvbmFsX2J5dGVzGPb4//8BIAEoDFINb3B0aW9uYWxCeXRlcxJXChBvcHRpb25hbF9tZXNzYWdlGPf4//8BIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIPb3B0aW9uYWxNZXNzYWdlEmYKDW9wdGlvbmFsZ3JvdXAY+Pj//wEgASgKMjwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RIdWdlRmllbGROdW1iZXJzLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXAScwoRc3RyaW5nX3N0cmluZ19tYXAY+vj//wEgAygLMkMucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RIdWdlRmllbGROdW1iZXJzLlN0cmluZ1N0cmluZ01hcEVudHJ5Ug9zdHJpbmdTdHJpbmdNYXASJwoMb25lb2ZfdWludDMyGPv4//8BIAEoDUgAUgtvbmVvZlVpbnQzMhJdChRvbmVvZl90ZXN0X2FsbF90eXBlcxj8+P//ASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzSABSEW9uZW9mVGVzdEFsbFR5cGVzEicKDG9uZW9mX3N0cmluZxj9+P//ASABKAlIAFILb25lb2ZTdHJpbmcSJQoLb25lb2ZfYnl0ZXMY/vj//wEgASgMSABSCm9uZW9mQnl0ZXMaLAoNT3B0aW9uYWxHcm91cBIbCgdncm91cF9hGPn4//8BIAEoBVIGZ3JvdXBBGkIKFFN0cmluZ1N0cmluZ01hcEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEqDAjgqv//ARDw+P//AUINCgtvbmVvZl9maWVsZCL6AQoYVGVzdEV4dGVuc2lvbkluc2lkZVRhYmxlEhYKBmZpZWxkMRgBIAEoBVIGZmllbGQxEhYKBmZpZWxkMhgCIAEoBVIGZmllbGQyEhYKBmZpZWxkMxgDIAEoBVIGZmllbGQzEhYKBmZpZWxkNBgEIAEoBVIGZmllbGQ0EhYKBmZpZWxkNhgGIAEoBVIGZmllbGQ2EhYKBmZpZWxkNxgHIAEoBVIGZmllbGQ3EhYKBmZpZWxkOBgIIAEoBVIGZmllbGQ4EhYKBmZpZWxkORgJIAEoBVIGZmllbGQ5EhgKB2ZpZWxkMTAYCiABKAVSB2ZpZWxkMTAqBAgFEAYqQAoLRm9yZWlnbkVudW0SDwoLRk9SRUlHTl9GT08QBBIPCgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAYqSwoUVGVzdEVudW1XaXRoRHVwVmFsdWUSCAoERk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08yEAESCAoEQkFSMhACGgIQASqJAQoOVGVzdFNwYXJzZUVudW0SDAoIU1BBUlNFX0EQexIOCghTUEFSU0VfQhCm5wMSDwoIU1BBUlNFX0MQsrGABhIVCghTUEFSU0VfRBDx//////////8BEhUKCFNQQVJTRV9FELTe/P///////wESDAoIU1BBUlNFX0YQABIMCghTUEFSU0VfRxACKosPCg1WZXJ5TGFyZ2VFbnVtEhYKEkVOVU1fTEFCRUxfREVGQVVMVBAAEhAKDEVOVU1fTEFCRUxfMRABEhAKDEVOVU1fTEFCRUxfMhACEhAKDEVOVU1fTEFCRUxfMxADEhAKDEVOVU1fTEFCRUxfNBAEEhAKDEVOVU1fTEFCRUxfNRAFEhAKDEVOVU1fTEFCRUxfNhAGEhAKDEVOVU1fTEFCRUxfNxAHEhAKDEVOVU1fTEFCRUxfOBAIEhAKDEVOVU1fTEFCRUxfORAJEhEKDUVOVU1fTEFCRUxfMTAQChIRCg1FTlVNX0xBQkVMXzExEAsSEQoNRU5VTV9MQUJFTF8xMhAMEhEKDUVOVU1fTEFCRUxfMTMQDRIRCg1FTlVNX0xBQkVMXzE0EA4SEQoNRU5VTV9MQUJFTF8xNRAPEhEKDUVOVU1fTEFCRUxfMTYQEBIRCg1FTlVNX0xBQkVMXzE3EBESEQoNRU5VTV9MQUJFTF8xOBASEhEKDUVOVU1fTEFCRUxfMTkQExIRCg1FTlVNX0xBQkVMXzIwEBQSEQoNRU5VTV9MQUJFTF8yMRAVEhEKDUVOVU1fTEFCRUxfMjIQFhIRCg1FTlVNX0xBQkVMXzIzEBcSEQoNRU5VTV9MQUJFTF8yNBAYEhEKDUVOVU1fTEFCRUxfMjUQGRIRCg1FTlVNX0xBQkVMXzI2EBoSEQoNRU5VTV9MQUJFTF8yNxAbEhEKDUVOVU1fTEFCRUxfMjgQHBIRCg1FTlVNX0xBQkVMXzI5EB0SEQoNRU5VTV9MQUJFTF8zMBAeEhEKDUVOVU1fTEFCRUxfMzEQHxIRCg1FTlVNX0xBQkVMXzMyECASEQoNRU5VTV9MQUJFTF8zMxAhEhEKDUVOVU1fTEFCRUxfMzQQIhIRCg1FTlVNX0xBQkVMXzM1ECMSEQoNRU5VTV9MQUJFTF8zNhAkEhEKDUVOVU1fTEFCRUxfMzcQJRIRCg1FTlVNX0xBQkVMXzM4ECYSEQoNRU5VTV9MQUJFTF8zORAnEhEKDUVOVU1fTEFCRUxfNDAQKBIRCg1FTlVNX0xBQkVMXzQxECkSEQoNRU5VTV9MQUJFTF80MhAqEhEKDUVOVU1fTEFCRUxfNDMQKxIRCg1FTlVNX0xBQkVMXzQ0ECwSEQoNRU5VTV9MQUJFTF80NRAtEhEKDUVOVU1fTEFCRUxfNDYQLhIRCg1FTlVNX0xBQkVMXzQ3EC8SEQoNRU5VTV9MQUJFTF80OBAwEhEKDUVOVU1fTEFCRUxfNDkQMRIRCg1FTlVNX0xBQkVMXzUwEDISEQoNRU5VTV9MQUJFTF81MRAzEhEKDUVOVU1fTEFCRUxfNTIQNBIRCg1FTlVNX0xBQkVMXzUzEDUSEQoNRU5VTV9MQUJFTF81NBA2EhEKDUVOVU1fTEFCRUxfNTUQNxIRCg1FTlVNX0xBQkVMXzU2EDgSEQoNRU5VTV9MQUJFTF81NxA5EhEKDUVOVU1fTEFCRUxfNTgQOhIRCg1FTlVNX0xBQkVMXzU5EDsSEQoNRU5VTV9MQUJFTF82MBA8EhEKDUVOVU1fTEFCRUxfNjEQPRIRCg1FTlVNX0xBQkVMXzYyED4SEQoNRU5VTV9MQUJFTF82MxA/EhEKDUVOVU1fTEFCRUxfNjQQQBIRCg1FTlVNX0xBQkVMXzY1EEESEQoNRU5VTV9MQUJFTF82NhBCEhEKDUVOVU1fTEFCRUxfNjcQQxIRCg1FTlVNX0xBQkVMXzY4EEQSEQoNRU5VTV9MQUJFTF82ORBFEhEKDUVOVU1fTEFCRUxfNzAQRhIRCg1FTlVNX0xBQkVMXzcxEEcSEQoNRU5VTV9MQUJFTF83MhBIEhEKDUVOVU1fTEFCRUxfNzMQSRIRCg1FTlVNX0xBQkVMXzc0EEoSEQoNRU5VTV9MQUJFTF83NRBLEhEKDUVOVU1fTEFCRUxfNzYQTBIRCg1FTlVNX0xBQkVMXzc3EE0SEQoNRU5VTV9MQUJFTF83OBBOEhEKDUVOVU1fTEFCRUxfNzkQTxIRCg1FTlVNX0xBQkVMXzgwEFASEQoNRU5VTV9MQUJFTF84MRBREhEKDUVOVU1fTEFCRUxfODIQUhIRCg1FTlVNX0xBQkVMXzgzEFMSEQoNRU5VTV9MQUJFTF84NBBUEhEKDUVOVU1fTEFCRUxfODUQVRIRCg1FTlVNX0xBQkVMXzg2EFYSEQoNRU5VTV9MQUJFTF84NxBXEhEKDUVOVU1fTEFCRUxfODgQWBIRCg1FTlVNX0xBQkVMXzg5EFkSEQoNRU5VTV9MQUJFTF85MBBaEhEKDUVOVU1fTEFCRUxfOTEQWxIRCg1FTlVNX0xBQkVMXzkyEFwSEQoNRU5VTV9MQUJFTF85MxBdEhEKDUVOVU1fTEFCRUxfOTQQXhIRCg1FTlVNX0xBQkVMXzk1EF8SEQoNRU5VTV9MQUJFTF85NhBgEhEKDUVOVU1fTEFCRUxfOTcQYRIRCg1FTlVNX0xBQkVMXzk4EGISEQoNRU5VTV9MQUJFTF85ORBjEhIKDkVOVU1fTEFCRUxfMTAwEGQytQEKC1Rlc3RTZXJ2aWNlElIKA0ZvbxIkLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb29SZXF1ZXN0GiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvb1Jlc3BvbnNlElIKA0JhchIkLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5CYXJSZXF1ZXN0GiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkJhclJlc3BvbnNlOmUKGG9wdGlvbmFsX2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgBIAEoBVIWb3B0aW9uYWxJbnQzMkV4dGVuc2lvbjplChhvcHRpb25hbF9pbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYAiABKANSFm9wdGlvbmFsSW50NjRFeHRlbnNpb246ZwoZb3B0aW9uYWxfdWludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgDIAEoDVIXb3B0aW9uYWxVaW50MzJFeHRlbnNpb246ZwoZb3B0aW9uYWxfdWludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgEIAEoBFIXb3B0aW9uYWxVaW50NjRFeHRlbnNpb246ZwoZb3B0aW9uYWxfc2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgFIAEoEVIXb3B0aW9uYWxTaW50MzJFeHRlbnNpb246ZwoZb3B0aW9uYWxfc2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgGIAEoElIXb3B0aW9uYWxTaW50NjRFeHRlbnNpb246aQoab3B0aW9uYWxfZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYByABKAdSGG9wdGlvbmFsRml4ZWQzMkV4dGVuc2lvbjppChpvcHRpb25hbF9maXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgIIAEoBlIYb3B0aW9uYWxGaXhlZDY0RXh0ZW5zaW9uOmsKG29wdGlvbmFsX3NmaXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgJIAEoD1IZb3B0aW9uYWxTZml4ZWQzMkV4dGVuc2lvbjprChtvcHRpb25hbF9zZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCiABKBBSGW9wdGlvbmFsU2ZpeGVkNjRFeHRlbnNpb246ZQoYb3B0aW9uYWxfZmxvYXRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAsgASgCUhZvcHRpb25hbEZsb2F0RXh0ZW5zaW9uOmcKGW9wdGlvbmFsX2RvdWJsZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDCABKAFSF29wdGlvbmFsRG91YmxlRXh0ZW5zaW9uOmMKF29wdGlvbmFsX2Jvb2xfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGA0gASgIUhVvcHRpb25hbEJvb2xFeHRlbnNpb246ZwoZb3B0aW9uYWxfc3RyaW5nX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgOIAEoCVIXb3B0aW9uYWxTdHJpbmdFeHRlbnNpb246ZQoYb3B0aW9uYWxfYnl0ZXNfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGA8gASgMUhZvcHRpb25hbEJ5dGVzRXh0ZW5zaW9uOpcBChdvcHRpb25hbGdyb3VwX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgQIAEoCjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5PcHRpb25hbEdyb3VwX2V4dGVuc2lvblIWb3B0aW9uYWxncm91cEV4dGVuc2lvbjqsAQohb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBIgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUh5vcHRpb25hbE5lc3RlZE1lc3NhZ2VFeHRlbnNpb246ogEKIm9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYEyABKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSH29wdGlvbmFsRm9yZWlnbk1lc3NhZ2VFeHRlbnNpb246pgEKIW9wdGlvbmFsX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgUIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0TWVzc2FnZVIeb3B0aW9uYWxJbXBvcnRNZXNzYWdlRXh0ZW5zaW9uOqMBCh5vcHRpb25hbF9uZXN0ZWRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFSABKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SG29wdGlvbmFsTmVzdGVkRW51bUV4dGVuc2lvbjqZAQofb3B0aW9uYWxfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgWIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIcb3B0aW9uYWxGb3JlaWduRW51bUV4dGVuc2lvbjqdAQoeb3B0aW9uYWxfaW1wb3J0X2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBcgASgOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtUhtvcHRpb25hbEltcG9ydEVudW1FeHRlbnNpb246dgofb3B0aW9uYWxfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgYIAEoCUICCAJSHG9wdGlvbmFsU3RyaW5nUGllY2VFeHRlbnNpb246ZwoXb3B0aW9uYWxfY29yZF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYGSABKAlCAggBUhVvcHRpb25hbENvcmRFeHRlbnNpb246uQEKKG9wdGlvbmFsX3B1YmxpY19pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYGiABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLlB1YmxpY0ltcG9ydE1lc3NhZ2VSJG9wdGlvbmFsUHVibGljSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqsAQofb3B0aW9uYWxfbGF6eV9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgbIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSHG9wdGlvbmFsTGF6eU1lc3NhZ2VFeHRlbnNpb246ZQoYcmVwZWF0ZWRfaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGB8gAygFUhZyZXBlYXRlZEludDMyRXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxggIAMoA1IWcmVwZWF0ZWRJbnQ2NEV4dGVuc2lvbjpnChlyZXBlYXRlZF91aW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCEgAygNUhdyZXBlYXRlZFVpbnQzMkV4dGVuc2lvbjpnChlyZXBlYXRlZF91aW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCIgAygEUhdyZXBlYXRlZFVpbnQ2NEV4dGVuc2lvbjpnChlyZXBlYXRlZF9zaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCMgAygRUhdyZXBlYXRlZFNpbnQzMkV4dGVuc2lvbjpnChlyZXBlYXRlZF9zaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCQgAygSUhdyZXBlYXRlZFNpbnQ2NEV4dGVuc2lvbjppChpyZXBlYXRlZF9maXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxglIAMoB1IYcmVwZWF0ZWRGaXhlZDMyRXh0ZW5zaW9uOmkKGnJlcGVhdGVkX2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCYgAygGUhhyZXBlYXRlZEZpeGVkNjRFeHRlbnNpb246awobcmVwZWF0ZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCcgAygPUhlyZXBlYXRlZFNmaXhlZDMyRXh0ZW5zaW9uOmsKG3JlcGVhdGVkX3NmaXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgoIAMoEFIZcmVwZWF0ZWRTZml4ZWQ2NEV4dGVuc2lvbjplChhyZXBlYXRlZF9mbG9hdF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYKSADKAJSFnJlcGVhdGVkRmxvYXRFeHRlbnNpb246ZwoZcmVwZWF0ZWRfZG91YmxlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgqIAMoAVIXcmVwZWF0ZWREb3VibGVFeHRlbnNpb246YwoXcmVwZWF0ZWRfYm9vbF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYKyADKAhSFXJlcGVhdGVkQm9vbEV4dGVuc2lvbjpnChlyZXBlYXRlZF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCwgAygJUhdyZXBlYXRlZFN0cmluZ0V4dGVuc2lvbjplChhyZXBlYXRlZF9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYLSADKAxSFnJlcGVhdGVkQnl0ZXNFeHRlbnNpb246lwEKF3JlcGVhdGVkZ3JvdXBfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGC4gAygKMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlJlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uUhZyZXBlYXRlZGdyb3VwRXh0ZW5zaW9uOqwBCiFyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYMCADKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSHnJlcGVhdGVkTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjqiAQoicmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgxIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIfcmVwZWF0ZWRGb3JlaWduTWVzc2FnZUV4dGVuc2lvbjqmAQohcmVwZWF0ZWRfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDIgAygLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUh5yZXBlYXRlZEltcG9ydE1lc3NhZ2VFeHRlbnNpb246owEKHnJlcGVhdGVkX25lc3RlZF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgzIAMoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIbcmVwZWF0ZWROZXN0ZWRFbnVtRXh0ZW5zaW9uOpkBCh9yZXBlYXRlZF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDQgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhxyZXBlYXRlZEZvcmVpZ25FbnVtRXh0ZW5zaW9uOp0BCh5yZXBlYXRlZF9pbXBvcnRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNSADKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SG3JlcGVhdGVkSW1wb3J0RW51bUV4dGVuc2lvbjp2Ch9yZXBlYXRlZF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDYgAygJQgIIAlIccmVwZWF0ZWRTdHJpbmdQaWVjZUV4dGVuc2lvbjpnChdyZXBlYXRlZF9jb3JkX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg3IAMoCUICCAFSFXJlcGVhdGVkQ29yZEV4dGVuc2lvbjqsAQofcmVwZWF0ZWRfbGF6eV9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg5IAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSHHJlcGVhdGVkTGF6eU1lc3NhZ2VFeHRlbnNpb246ZwoXZGVmYXVsdF9pbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYPSABKAU6AjQxUhVkZWZhdWx0SW50MzJFeHRlbnNpb246ZwoXZGVmYXVsdF9pbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYPiABKAM6AjQyUhVkZWZhdWx0SW50NjRFeHRlbnNpb246aQoYZGVmYXVsdF91aW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGD8gASgNOgI0M1IWZGVmYXVsdFVpbnQzMkV4dGVuc2lvbjppChhkZWZhdWx0X3VpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYQCABKAQ6AjQ0UhZkZWZhdWx0VWludDY0RXh0ZW5zaW9uOmoKGGRlZmF1bHRfc2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhBIAEoEToDLTQ1UhZkZWZhdWx0U2ludDMyRXh0ZW5zaW9uOmkKGGRlZmF1bHRfc2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhCIAEoEjoCNDZSFmRlZmF1bHRTaW50NjRFeHRlbnNpb246awoZZGVmYXVsdF9maXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhDIAEoBzoCNDdSF2RlZmF1bHRGaXhlZDMyRXh0ZW5zaW9uOmsKGWRlZmF1bHRfZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYRCABKAY6AjQ4UhdkZWZhdWx0Rml4ZWQ2NEV4dGVuc2lvbjptChpkZWZhdWx0X3NmaXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhFIAEoDzoCNDlSGGRlZmF1bHRTZml4ZWQzMkV4dGVuc2lvbjpuChpkZWZhdWx0X3NmaXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhGIAEoEDoDLTUwUhhkZWZhdWx0U2ZpeGVkNjRFeHRlbnNpb246aQoXZGVmYXVsdF9mbG9hdF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYRyABKAI6BDUxLjVSFWRlZmF1bHRGbG9hdEV4dGVuc2lvbjpsChhkZWZhdWx0X2RvdWJsZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYSCABKAE6BTUyMDAwUhZkZWZhdWx0RG91YmxlRXh0ZW5zaW9uOmcKFmRlZmF1bHRfYm9vbF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYSSABKAg6BHRydWVSFGRlZmF1bHRCb29sRXh0ZW5zaW9uOmwKGGRlZmF1bHRfc3RyaW5nX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhKIAEoCToFaGVsbG9SFmRlZmF1bHRTdHJpbmdFeHRlbnNpb246agoXZGVmYXVsdF9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYSyABKAw6BXdvcmxkUhVkZWZhdWx0Qnl0ZXNFeHRlbnNpb246pgEKHWRlZmF1bHRfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGFEgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtOgNCQVJSGmRlZmF1bHROZXN0ZWRFbnVtRXh0ZW5zaW9uOqQBCh5kZWZhdWx0X2ZvcmVpZ25fZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYUiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW06C0ZPUkVJR05fQkFSUhtkZWZhdWx0Rm9yZWlnbkVudW1FeHRlbnNpb246pwEKHWRlZmF1bHRfaW1wb3J0X2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGFMgASgOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtOgpJTVBPUlRfQkFSUhpkZWZhdWx0SW1wb3J0RW51bUV4dGVuc2lvbjp5Ch5kZWZhdWx0X3N0cmluZ19waWVjZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYVCABKAk6A2FiY0ICCAJSG2RlZmF1bHRTdHJpbmdQaWVjZUV4dGVuc2lvbjpqChZkZWZhdWx0X2NvcmRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGFUgASgJOgMxMjNCAggBUhRkZWZhdWx0Q29yZEV4dGVuc2lvbjphChZvbmVvZl91aW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGG8gASgNUhRvbmVvZlVpbnQzMkV4dGVuc2lvbjqmAQoeb25lb2ZfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGHAgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhtvbmVvZk5lc3RlZE1lc3NhZ2VFeHRlbnNpb246YQoWb25lb2Zfc3RyaW5nX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhxIAEoCVIUb25lb2ZTdHJpbmdFeHRlbnNpb246XwoVb25lb2ZfYnl0ZXNfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGHIgASgMUhNvbmVvZkJ5dGVzRXh0ZW5zaW9uOlwKE215X2V4dGVuc2lvbl9zdHJpbmcSLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGDIgASgJUhFteUV4dGVuc2lvblN0cmluZzpWChBteV9leHRlbnNpb25faW50EiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgFIAEoBVIObXlFeHRlbnNpb25JbnQ6aAoWcGFja2VkX2ludDMyX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhaIAMoBUICEAFSFHBhY2tlZEludDMyRXh0ZW5zaW9uOmgKFnBhY2tlZF9pbnQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWyADKANCAhABUhRwYWNrZWRJbnQ2NEV4dGVuc2lvbjpqChdwYWNrZWRfdWludDMyX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhcIAMoDUICEAFSFXBhY2tlZFVpbnQzMkV4dGVuc2lvbjpqChdwYWNrZWRfdWludDY0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhdIAMoBEICEAFSFXBhY2tlZFVpbnQ2NEV4dGVuc2lvbjpqChdwYWNrZWRfc2ludDMyX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxheIAMoEUICEAFSFXBhY2tlZFNpbnQzMkV4dGVuc2lvbjpqChdwYWNrZWRfc2ludDY0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhfIAMoEkICEAFSFXBhY2tlZFNpbnQ2NEV4dGVuc2lvbjpsChhwYWNrZWRfZml4ZWQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYCADKAdCAhABUhZwYWNrZWRGaXhlZDMyRXh0ZW5zaW9uOmwKGHBhY2tlZF9maXhlZDY0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhhIAMoBkICEAFSFnBhY2tlZEZpeGVkNjRFeHRlbnNpb246bgoZcGFja2VkX3NmaXhlZDMyX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhiIAMoD0ICEAFSF3BhY2tlZFNmaXhlZDMyRXh0ZW5zaW9uOm4KGXBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYyADKBBCAhABUhdwYWNrZWRTZml4ZWQ2NEV4dGVuc2lvbjpoChZwYWNrZWRfZmxvYXRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGQgAygCQgIQAVIUcGFja2VkRmxvYXRFeHRlbnNpb246agoXcGFja2VkX2RvdWJsZV9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZSADKAFCAhABUhVwYWNrZWREb3VibGVFeHRlbnNpb246ZgoVcGFja2VkX2Jvb2xfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGYgAygIQgIQAVITcGFja2VkQm9vbEV4dGVuc2lvbjqNAQoVcGFja2VkX2VudW1fZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGcgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtQgIQAVITcGFja2VkRW51bUV4dGVuc2lvbjpuChh1bnBhY2tlZF9pbnQzMl9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhaIAMoBUICEABSFnVucGFja2VkSW50MzJFeHRlbnNpb246bgoYdW5wYWNrZWRfaW50NjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYWyADKANCAhAAUhZ1bnBhY2tlZEludDY0RXh0ZW5zaW9uOnAKGXVucGFja2VkX3VpbnQzMl9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhcIAMoDUICEABSF3VucGFja2VkVWludDMyRXh0ZW5zaW9uOnAKGXVucGFja2VkX3VpbnQ2NF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhdIAMoBEICEABSF3VucGFja2VkVWludDY0RXh0ZW5zaW9uOnAKGXVucGFja2VkX3NpbnQzMl9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxheIAMoEUICEABSF3VucGFja2VkU2ludDMyRXh0ZW5zaW9uOnAKGXVucGFja2VkX3NpbnQ2NF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhfIAMoEkICEABSF3VucGFja2VkU2ludDY0RXh0ZW5zaW9uOnIKGnVucGFja2VkX2ZpeGVkMzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYCADKAdCAhAAUhh1bnBhY2tlZEZpeGVkMzJFeHRlbnNpb246cgoadW5wYWNrZWRfZml4ZWQ2NF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhhIAMoBkICEABSGHVucGFja2VkRml4ZWQ2NEV4dGVuc2lvbjp0Cht1bnBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhiIAMoD0ICEABSGXVucGFja2VkU2ZpeGVkMzJFeHRlbnNpb246dAobdW5wYWNrZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYyADKBBCAhAAUhl1bnBhY2tlZFNmaXhlZDY0RXh0ZW5zaW9uOm4KGHVucGFja2VkX2Zsb2F0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGQgAygCQgIQAFIWdW5wYWNrZWRGbG9hdEV4dGVuc2lvbjpwChl1bnBhY2tlZF9kb3VibGVfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZSADKAFCAhAAUhd1bnBhY2tlZERvdWJsZUV4dGVuc2lvbjpsChd1bnBhY2tlZF9ib29sX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGYgAygIQgIQAFIVdW5wYWNrZWRCb29sRXh0ZW5zaW9uOpMBChd1bnBhY2tlZF9lbnVtX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGcgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtQgIQAFIVdW5wYWNrZWRFbnVtRXh0ZW5zaW9uOoABCg50ZXN0X2FsbF90eXBlcxIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SHVnZUZpZWxkTnVtYmVycxjgqv//ASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgx0ZXN0QWxsVHlwZXM6hAEKJXRlc3RfZXh0ZW5zaW9uX2luc2lkZV90YWJsZV9leHRlbnNpb24SMi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEV4dGVuc2lvbkluc2lkZVRhYmxlGAUgASgFUiF0ZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGVFeHRlbnNpb25CMkgBgAEBiAEBkAEB+AEBqgIhR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3MuUHJvdG8ySrS4AwoHEgUmANgIAgqiDgoBDBIDJgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoy0wEgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogQSBwcm90byBmaWxlIHdlIHdpbGwgdXNlIGZvciB1bml0IHRlc3RpbmcuCgogTElOVDogQUxMT1dfR1JPVVBTLCBMRUdBQ1lfTkFNRVMKCggKAQgSAyoAIgqAAQoCCBASAyoAIhpnIFNvbWUgZ2VuZXJpY19zZXJ2aWNlcyBvcHRpb24ocykgYWRkZWQgYXV0b21hdGljYWxseS4KIFNlZTogIGh0dHA6Ly9nby9wcm90bzItZ2VuZXJpYy1zZXJ2aWNlcy1kZWZhdWx0CiIMIGF1dG8tYWRkZWQKCggKAQgSAysAJAoXCgIIERIDKwAkIgwgYXV0by1hZGRlZAoKCAoBCBIDLAAiChcKAggSEgMsACIiDCBhdXRvLWFkZGVkCgoICgEIEgMtAB8KCQoCCB8SAy0AHwoJCgIDABIDLwAfCuYBCgECEgM0ACEa2wEgV2UgZG9uJ3QgcHV0IHRoaXMgaW4gYSBwYWNrYWdlIHdpdGhpbiBwcm90bzIgYmVjYXVzZSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZQogdGhhdCB0aGUgZ2VuZXJhdGVkIGNvZGUgZG9lc24ndCBkZXBlbmQgb24gYmVpbmcgaW4gdGhlIHByb3RvMiBuYW1lc3BhY2UuCiBJbiB0ZXN0X3V0aWwuaCB3ZSBkbyAidXNpbmcgbmFtZXNwYWNlIHVuaXR0ZXN0ID0gcHJvdG9idWZfdW5pdHRlc3QiLgoKCAoBCBIDOQAcCuIBCgIICRIDOQAcGtYBIFByb3RvcyBvcHRpbWl6ZWQgZm9yIFNQRUVEIHVzZSBhIHN0cmljdCBzdXBlcnNldCBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUKIG9mIGVxdWl2YWxlbnQgb25lcyBvcHRpbWl6ZWQgZm9yIENPREVfU0laRSwgc28gd2Ugc2hvdWxkIG9wdGltaXplIGFsbCBvdXIKIHRlc3RzIGZvciBzcGVlZCB1bmxlc3MgZXhwbGljaXRseSB0ZXN0aW5nIGNvZGUgc2l6ZSBvcHRpbWl6YXRpb24uCgoICgEIEgM7AD4KCQoCCCUSAzsAPgpcCgIEABIFPwC2AQEaTyBUaGlzIHByb3RvIGluY2x1ZGVzIGV2ZXJ5IHR5cGUgb2YgZmllbGQgaW4gYm90aCBzaW5ndWxhciBhbmQgcmVwZWF0ZWQKIGZvcm1zLgoKCgoDBAABEgM/CBQKDAoEBAADABIEQAJFAwoMCgUEAAMAARIDQAoXCuMBCgYEAAMAAgASA0QEGhrTASBUaGUgZmllbGQgbmFtZSAiYiIgZmFpbHMgdG8gY29tcGlsZSBpbiBwcm90bzEgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aAogYSBsb2NhbCB2YXJpYWJsZSBuYW1lZCAiYiIgaW4gb25lIG9mIHRoZSBnZW5lcmF0ZWQgbWV0aG9kcy4gIERvaC4KIFRoaXMgZmlsZSBuZWVkcyB0byBjb21waWxlIGluIHByb3RvMSB0byB0ZXN0IGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5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gAMRFwoNCgUEDAIEAxIEgAMcHQoMCgQEDAIFEgSBAwIeCg0KBQQMAgUEEgSBAwIKCg0KBQQMAgUFEgSBAwsQCg0KBQQMAgUBEgSBAxEXCg0KBQQMAgUDEgSBAxwdCgwKBAQMAgYSBIIDAh4KDQoFBAwCBgQSBIIDAgoKDQoFBAwCBgUSBIIDCxAKDQoFBAwCBgESBIIDERcKDQoFBAwCBgMSBIIDHB0KDAoEBAwCBxIEgwMCHgoNCgUEDAIHBBIEgwMCCgoNCgUEDAIHBRIEgwMLEAoNCgUEDAIHARIEgwMRFwoNCgUEDAIHAxIEgwMcHQoMCgQEDAIIEgSEAwIeCg0KBQQMAggEEgSEAwIKCg0KBQQMAggFEgSEAwsQCg0KBQQMAggBEgSEAxEXCg0KBQQMAggDEgSEAxwdCgwKBAQMAgkSBIUDAh4KDQoFBAwCCQQSBIUDAgoKDQoFBAwCCQUSBIUDCxAKDQoFBAwCCQESBIUDERgKDQoFBAwCCQMSBIUDGx0KDAoEBAwCChIEhgMCHgoNCgUEDAIKBBIEhgMCCgoNCgUEDAIKBRIEhgMLEAoNCgUEDAIKARIEhgMRGAoNCgUEDAIKAxIEhgMbHQoMCgQEDAILEgSHAwIeCg0KBQQMAgsEEgSHAwIKCg0KBQQMAgsFEgSHAwsQCg0KBQQMAgsBEgSHAxEYCg0KBQQMAgsDEgSHAxsdCgwKBAQMAgwSBIgDAh4KDQoFBAwCDAQSBIgDAgoKDQoFBAwCDAUSBIgDCxAKDQoFBAwCDAESBIgDERgKDQoFBAwCDAMSBIgDGx0KDAoEBAwCDRIEiQMCHgoNCgUEDAINBBIEiQMCCgoNCgUEDAINBRIEiQMLEAoNCgUEDAINARIEiQMRGAoNCgUEDAINAxIEiQMbHQoMCgQEDAIOEgSKAwIeCg0KBQQMAg4EEgSKAwIKCg0KBQQMAg4FEgSKAwsQCg0KBQQMAg4BEgSKAxEYCg0KBQQMAg4DEgSKAxsdCgwKBAQMAg8SBIsDAh4KDQoFBAwCDwQSBIsDAgoKDQoFBAwCDwUSBIsDCxAKDQoFBAwCDwESBIsDERgKDQoFBAwCDwMSBIsDGx0KDAoEBAwCEBIEjAMCHgoNCgUEDAIQBBIEjAMCCgoNCgUEDAIQBRIEjAMLEAoNCgUEDAIQARIEjAMRGAoNCgUEDAIQ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BP4HAg8KDQoFBQMCCwISBP4HEhQKDAoEBQMCDBIE/wcCFQoNCgUFAwIMARIE/wcCDwoNCgUFAwIMAhIE/wcSFAoMCgQFAwINEgSACAIVCg0KBQUDAg0BEgSACAIPCg0KBQUDAg0CEgSACBIUCgwKBAUDAg4SBIEIAhUKDQoFBQMCDgESBIEIAg8KDQoFBQMCDgISBIEIEhQKDAoEBQMCDxIEgggCFQoNCgUFAwIPARIEgggCDwoNCgUFAwIPAhIEgggSFAoMCgQFAwIQEgSDCAIVCg0KBQUDAhABEgSDCAIPCg0KBQUDAhACEgSDCBIUCgwKBAUDAhESBIQIAhUKDQoFBQMCEQESBIQIAg8KDQoFBQMCEQISBIQIEhQKDAoEBQMCEhIEhQgCFQoNCgUFAwISARIEhQgCDwoNCgUFAwISAhIEhQgSFAoMCgQFAwITEgSGCAIVCg0KBQUDAhMBEgSGCAIPCg0KBQUDAhMCEgSGCBIUCgwKBAUDAhQSBIcIAhUKDQoFBQMCFAESBIcIAg8KDQoFBQMCFAISBIcIEhQKDAoEBQMCFRIEiAgCFQoNCgUFAwIVARIEiAgCDwoNCgUFAwIVAhIEiAgSFAoMCgQFAwIWEgSJCAIVCg0KBQUDAhYBEgSJCAIPCg0KBQUDAhYCEgSJCBIUCgwKBAUDAhcSBIoIAhUKDQoFBQMCFwESBIoIAg8KDQoFBQMCFwISBIoIEhQKDAoEBQMCGBIEiwgCFQoNCgUFAwIYARIEiwgCDwoNCgUFAwIYAhIEiwgSFAoMCgQFAwIZEgSMCAIVCg0KBQUDAhkBEgSMCAIPCg0KBQUDAhkCEgSMCBIUCgwKBAUDAhoSBI0IAhUKDQoFBQMCGgESBI0IAg8KDQoFBQMCGgISBI0IEhQKDAoEBQMCGxIEjggCFQoNCgUFAwIbARIEjggCDwoNCgUFAwIbAhIEjggSFAoMCgQFAwIcEgSPCAIVCg0KBQUDAhwBEgSPCAIPCg0KBQUDAhwCEgSPCBIUCgwKBAUDAh0SBJAIAhUKDQoFBQMCHQESBJAIAg8KDQoFBQMCHQISBJAIEhQKDAoEBQMCHhIEkQgCFQoNCgUFAwIeARIEkQgCDwoNCgUFAwIeAhIEkQgSFAoMCgQFAwIfEgSSCAIVCg0KBQUDAh8BEgSSCAIPCg0KBQUDAh8CEgSSCBIU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X29wdGlvbnMaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvIlkKCkZvb09wdGlvbnMSJgoHaW50X29wdBgBIAEoBUINyj4KCAHAPgLKPgIIA1IGaW50T3B0EhgKA2ZvbxgCIAEoBUIGyj4DENIJUgNmb28qCQjoBxCAgICAAjpFCgtiYXJfb3B0aW9ucxIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY6AcgASgFQgTAPtIJUgpiYXJPcHRpb25zOnYKC2Zvb19vcHRpb25zEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjpByABKAsyNS5wcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucy5Gb29PcHRpb25zUgpmb29PcHRpb25zOlYKC2Zvb19pbnRfb3B0EjUucHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMuRm9vT3B0aW9ucxjoByABKAVSCWZvb0ludE9wdDqNAQoLZm9vX2Zvb19vcHQSNS5wcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucy5Gb29PcHRpb25zGOkHIAEoCzI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnNSCWZvb0Zvb09wdEI0qgIxVW5pdFRlc3QuSXNzdWVzLlRlc3RQcm90b3MuU2VsZnJlZmVyZW50aWFsT3B0aW9uc0q1EwoGEgQeAD8BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ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aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjADwKCQoCCAsSAyMAPAoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlACkKCQoCCAgSAyUAKQoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQrkEAoCBAASBXkAmgEBGtYQIGBBbnlgIGNvbnRhaW5zIGFuIGFyYml0cmFyeSBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlIGFsb25nIHdpdGggYQogVVJMIHRoYXQgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkIG1lc3NhZ2UuCgogUHJvdG9idWYgbGlicmFyeSBwcm92aWRlcyBzdXBwb3J0IHRvIHBhY2svdW5wYWNrIEFueSB2YWx1ZXMgaW4gdGhlIGZvcm0KIG9mIHV0aWxpdHkgZnVuY3Rpb25zIG9yIGFkZGl0aW9uYWwgZ2VuZXJhdGVkIG1ldGhvZHMgb2YgdGhlIEFueSB0eXBlLgoKIEV4YW1wbGUgMTogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBDKysuCgogICAgIEZvbyBmb28gPSAuLi47CiAgICAgQW55IGFueTsKICAgICBhbnkuUGFja0Zyb20oZm9vKTsKICAgICAuLi4KICAgICBpZiAoYW55LlVucGFja1RvKCZmb28pKSB7CiAgICAgICAuLi4KICAgICB9CgogRXhhbXBsZSAyOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEphdmEuCgogICAgIEZvbyBmb28gPSAuLi47CiAgICAgQW55IGFueSA9IEFueS5wYWNrKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5pcyhGb28uY2xhc3MpKSB7CiAgICAgICBmb28gPSBhbnkudW5wYWNrKEZvby5jbGFzcyk7CiAgICAgfQoKICBFeGFtcGxlIDM6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gUHl0aG9uLgoKICAgICBmb28gPSBGb28oLi4uKQogICAgIGFueSA9IEFueSgpCiAgICAgYW55LlBhY2soZm9vKQogICAgIC4uLgogICAgIGlmIGFueS5JcyhGb28uREVTQ1JJUFRPUik6CiAgICAgICBhbnkuVW5wYWNrKGZvbykKICAgICAgIC4uLgoKICBFeGFtcGxlIDQ6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gR28KCiAgICAgIGZvbyA6PSAmcGIuRm9vey4uLn0KICAgICAgYW55LCBlcnIgOj0gcHR5cGVzLk1hcnNoYWxBbnkoZm9vKQogICAgICAuLi4KICAgICAgZm9vIDo9ICZwYi5Gb297fQogICAgICBpZiBlcnIgOj0gcHR5cGVzLlVubWFyc2hhbEFueShhbnksIGZvbyk7IGVyciAhPSBuaWwgewogICAgICAgIC4uLgogICAgICB9CgogVGhlIHBhY2sgbWV0aG9kcyBwcm92aWRlZCBieSBwcm90b2J1ZiBsaWJyYXJ5IHdpbGwgYnkgZGVmYXVsdCB1c2UKICd0eXBlLmdvb2dsZWFwaXMuY29tL2Z1bGwudHlwZS5uYW1lJyBhcyB0aGUgdHlwZSBVUkwgYW5kIHRoZSB1bnBhY2sKIG1ldGhvZHMgb25seSB1c2UgdGhlIGZ1bGx5IHF1YWxpZmllZCB0eXBlIG5hbWUgYWZ0ZXIgdGhlIGxhc3QgJy8nCiBpbiB0aGUgdHlwZSBVUkwsIGZvciBleGFtcGxlICJmb28uYmFyLmNvbS94L3kueiIgd2lsbCB5aWVsZCB0eXBlCiBuYW1lICJ5LnoiLgoKCiBKU09OCiA9PT09CiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiBhbiBgQW55YCB2YWx1ZSB1c2VzIHRoZSByZWd1bGFyCiByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGVzZXJpYWxpemVkLCBlbWJlZGRlZCBtZXNzYWdlLCB3aXRoIGFuCiBhZGRpdGlvbmFsIGZpZWxkIGBAdHlwZWAgd2hpY2ggY29udGFpbnMgdGhlIHR5cGUgVVJMLiBFeGFtcGxlOgoKICAgICBwYWNrYWdlIGdvb2dsZS5wcm9maWxlOwogICAgIG1lc3NhZ2UgUGVyc29uIHsKICAgICAgIHN0cmluZyBmaXJzdF9uYW1lID0gMTsKICAgICAgIHN0cmluZyBsYXN0X25hbWUgPSAyOwogICAgIH0KCiAgICAgewogICAgICAgIkB0eXBlIjogInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb2ZpbGUuUGVyc29uIiwKICAgICAgICJmaXJzdE5hbWUiOiA8c3RyaW5nPiwKICAgICAgICJsYXN0TmFtZSI6IDxzdHJpbmc+CiAgICAgfQoKIElmIHRoZSBlbWJlZGRlZCBtZXNzYWdlIHR5cGUgaXMgd2VsbC1rbm93biBhbmQgaGFzIGEgY3VzdG9tIEpTT04KIHJlcHJlc2VudGF0aW9uLCB0aGF0IHJlcHJlc2VudGF0aW9uIHdpbGwgYmUgZW1iZWRkZWQgYWRkaW5nIGEgZmllbGQKIGB2YWx1ZWAgd2hpY2ggaG9sZHMgdGhlIGN1c3RvbSBKU09OIGluIGFkZGl0aW9uIHRvIHRoZSBgQHR5cGVgCiBmaWVsZC4gRXhhbXBsZSAoZm9yIG1lc3NhZ2UgW2dvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbl1bXSk6CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbiIsCiAgICAgICAidmFsdWUiOiAiMS4yMTJzIgogICAgIH0KCgoKCgMEAAESA3kICwrXCgoEBAACABIElgECFhrICiBBIFVSTC9yZXNvdXJjZSBuYW1lIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZAogcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UuIFRoaXMgc3RyaW5nIG11c3QgY29udGFpbiBhdCBsZWFzdAogb25lICIvIiBjaGFyYWN0ZXIuIFRoZSBsYXN0IHNlZ21lbnQgb2YgdGhlIFVSTCdzIHBhdGggbXVzdCByZXByZXNlbnQKIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgdHlwZSAoYXMgaW4KIGBwYXRoL2dvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbmApLiBUaGUgbmFtZSBzaG91bGQgYmUgaW4gYSBjYW5vbmljYWwgZm9ybQogKGUuZy4sIGxlYWRpbmcgIi4iIGlzIG5vdCBhY2NlcHRlZCkuCgogSW4gcHJhY3RpY2UsIHRlYW1zIHVzdWFsbHkgcHJlY29tcGlsZSBpbnRvIHRoZSBiaW5hcnkgYWxsIHR5cGVzIHRoYXQgdGhleQogZXhwZWN0IGl0IHRvIHVzZSBpbiB0aGUgY29udGV4dCBvZiBBbnkuIEhvd2V2ZXIsIGZvciBVUkxzIHdoaWNoIHVzZSB0aGUKIHNjaGVtZSBgaHR0cGAsIGBodHRwc2AsIG9yIG5vIHNjaGVtZSwgb25lIGNhbiBvcHRpb25hbGx5IHNldCB1cCBhIHR5cGUKIHNlcnZlciB0aGF0IG1hcHMgdHlwZSBVUkxzIHRvIG1lc3NhZ2UgZGVmaW5pdGlvbnMgYXMgZm9sbG93czoKCiAqIElmIG5vIHNjaGVtZSBpcyBwcm92aWRlZCwgYGh0dHBzYCBpcyBhc3N1bWVkLgogKiBBbiBIVFRQIEdFVCBvbiB0aGUgVVJMIG11c3QgeWllbGQgYSBbZ29vZ2xlLnByb3RvYnVmLlR5cGVdW10KICAgdmFsdWUgaW4gYmluYXJ5IGZvcm1hdCwgb3IgcHJvZHVjZSBhbiBlcnJvci4KICogQXBwbGljYXRpb25zIGFyZSBhbGxvd2VkIHRvIGNhY2hlIGxvb2t1cCByZXN1bHRzIGJhc2VkIG9uIHRoZQogICBVUkwsIG9yIGhhdmUgdGhlbSBwcmVjb21waWxlZCBpbnRvIGEgYmluYXJ5IHRvIGF2b2lkIGFueQogICBsb29rdXAuIFRoZXJlZm9yZSwgYmluYXJ5IGNvbXBhdGliaWxpdHkgbmVlZHMgdG8gYmUgcHJlc2VydmVkCiAgIG9uIGNoYW5nZXMgdG8gdHlwZXMuIChVc2UgdmVyc2lvbmVkIHR5cGUgbmFtZXMgdG8gbWFuYWdlCiAgIGJyZWFraW5nIGNoYW5nZXMuKQoKIE5vdGU6IHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBub3QgY3VycmVudGx5IGF2YWlsYWJsZSBpbiB0aGUgb2ZmaWNpYWwKIHByb3RvYnVmIHJlbGVhc2UsIGFuZCBpdCBpcyBub3QgdXNlZCBmb3IgdHlwZSBVUkxzIGJlZ2lubmluZyB3aXRoCiB0eXBlLmdvb2dsZWFwaXMuY29tLgoKIFNjaGVtZXMgb3RoZXIgdGhhbiBgaHR0cGAsIGBodHRwc2AgKG9yIHRoZSBlbXB0eSBzY2hlbWUpIG1pZ2h0IGJlCiB1c2VkIHdpdGggaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgc2VtYW50aWNzLgoKCg0KBQQAAgAFEgSWAQIICg0KBQQAAgABEgSWAQkRCg0KBQQAAgADEgSWARQVClcKBAQAAgESBJkBAhIaSSBNdXN0IGJlIGEgdmFsaWQgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgb2YgdGhlIGFib3ZlIHNwZWNpZmllZCB0eXBlLgoKDQoFBAACAQUSBJkBAgcKDQoFBAACAQESBJkBCA0KDQoFBAACAQMSBJkBEBFiBnByb3RvMwrJEgokZ29vZ2xlL3Byb3RvYnVmL3NvdXJjZV9jb250ZXh0LnByb3RvEg9nb29nbGUucHJvdG9idWYiLAoNU291cmNlQ29udGV4dBIbCglmaWxlX25hbWUYASABKAlSCGZpbGVOYW1lQpUBChNjb20uZ29vZ2xlLnByb3RvYnVmQhJTb3VyY2VDb250ZXh0UHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vcHJvdG9idWYvc291cmNlX2NvbnRleHQ7c291cmNlX2NvbnRleHSiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKwRAKBhIEHgAvAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMALAoJCgIIARIDIwAsCggKAQgSAyQAMwoJCgIICBIDJAAzCggKAQgSAyUAIgoJCgIIChIDJQAiCggKAQgSAyYAIQoJCgIIJBIDJgAhCggKAQgSAycAWAoJCgIICxIDJwBYCoMBCgIEABIEKwAvARp3IGBTb3VyY2VDb250ZXh0YCByZXByZXNlbnRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzb3VyY2Ugb2YgYQogcHJvdG9idWYgZWxlbWVudCwgbGlrZSB0aGUgZmlsZSBpbiB3aGljaCBpdCBpcyBkZWZpbmVkLgoKCgoDBAABEgMrCBUKowEKBAQAAgASAy4CFxqVASBUaGUgcGF0aC1xdWFsaWZpZWQgbmFtZSBvZiB0aGUgLnByb3RvIGZpbGUgdGhhdCBjb250YWluZWQgdGhlIGFzc29jaWF0ZWQKIHByb3RvYnVmIGVsZW1lbnQuICBGb3IgZXhhbXBsZTogYCJnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8iYC4KCgwKBQQAAgAFEgMuAggKDAoFBAACAAESAy4JEgoMCgUEAAIAAxIDLhUWYgZwcm90bzMK6kYKGmdvb2dsZS9wcm90b2J1Zi90eXBlLnByb3RvEg9nb29nbGUucHJvdG9idWYaGWdvb2dsZS9wcm90b2J1Zi9hbnkucHJvdG8aJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90byKNAgoEVHlwZRISCgRuYW1lGAEgASgJUgRuYW1lEi4KBmZpZWxkcxgCIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5GaWVsZFIGZmllbGRzEhYKBm9uZW9mcxgDIAMoCVIGb25lb2ZzEjEKB29wdGlvbnMYBCADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEkUKDnNvdXJjZV9jb250ZXh0GAUgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSDXNvdXJjZUNvbnRleHQSLwoGc3ludGF4GAYgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheFIGc3ludGF4IrQGCgVGaWVsZBIvCgRraW5kGAEgASgOMhsuZ29vZ2xlLnByb3RvYnVmLkZpZWxkLktpbmRSBGtpbmQSRAoLY2FyZGluYWxpdHkYAiABKA4yIi5nb29nbGUucHJvdG9idWYuRmllbGQuQ2FyZGluYWxpdHlSC2NhcmRpbmFsaXR5EhYKBm51bWJlchgDIAEoBVIGbnVtYmVyEhIKBG5hbWUYBCABKAlSBG5hbWUSGQoIdHlwZV91cmwYBiABKAlSB3R5cGVVcmwSHwoLb25lb2ZfaW5kZXgYByABKAVSCm9uZW9mSW5kZXgSFgoGcGFja2VkGAggASgIUgZwYWNrZWQSMQoHb3B0aW9ucxgJIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRIjCg1kZWZhdWx0X3ZhbHVlGAsgASgJUgxkZWZhdWx0VmFsdWUiyAIKBEtpbmQSEAoMVFlQRV9VTktOT1dOEAASDwoLVFlQRV9ET1VCTEUQARIOCgpUWVBFX0ZMT0FUEAISDgoKVFlQRV9JTlQ2NBADEg8KC1RZUEVfVUlOVDY0EAQSDgoKVFlQRV9JTlQzMhAFEhAKDFRZUEVfRklYRUQ2NBAGEhAKDFRZUEVfRklYRUQzMhAHEg0KCVRZUEVfQk9PTBAIEg8KC1RZUEVfU1RSSU5HEAkSDgoKVFlQRV9HUk9VUBAKEhAKDFRZUEVfTUVTU0FHRRALEg4KClRZUEVfQllURVMQDBIPCgtUWVBFX1VJTlQzMhANEg0KCVRZUEVfRU5VTRAOEhEKDVRZUEVfU0ZJWEVEMzIQDxIRCg1UWVBFX1NGSVhFRDY0EBASDwoLVFlQRV9TSU5UMzIQERIPCgtUWVBFX1NJTlQ2NBASInQKC0NhcmRpbmFsaXR5EhcKE0NBUkRJTkFMSVRZX1VOS05PV04QABIYChRDQVJESU5BTElUWV9PUFRJT05BTBABEhgKFENBUkRJTkFMSVRZX1JFUVVJUkVEEAISGAoUQ0FSRElOQUxJVFlfUkVQRUFURUQQAyL/AQoERW51bRISCgRuYW1lGAEgASgJUgRuYW1lEjgKCWVudW12YWx1ZRgCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVSCWVudW12YWx1ZRIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxJFCg5zb3VyY2VfY29udGV4dBgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0Ug1zb3VyY2VDb250ZXh0Ei8KBnN5bnRheBgFIAEoDjIXLmdvb2dsZS5wcm90b2J1Zi5TeW50YXhSBnN5bnRheCJqCglFbnVtVmFsdWUSEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAiABKAVSBm51bWJlchIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucyJICgZPcHRpb24SEgoEbmFtZRgBIAEoCVIEbmFtZRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBXZhbHVlKi4KBlN5bnRheBIRCg1TWU5UQVhfUFJPVE8yEAASEQoNU1lOVEFYX1BST1RPMxABQn0KE2NvbS5nb29nbGUucHJvdG9idWZCCVR5cGVQcm90b1ABWi9nb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9wcm90b2J1Zi9wdHlwZTtwdHlwZfgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rDOAoHEgUeALoBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCgkKAgMAEgMiACMKCQoCAwESAyMALgoICgEIEgMlADsKCQoCCCUSAyUAOwoICgEIEgMmAB8KCQoCCB8SAyYAHwoICgEIEgMnACwKCQoCCAESAycALAoICgEIEgMoACoKCQoCCAgSAygAKgoICgEIEgMpACIKCQoCCAoSAykAIgoICgEIEgMqACEKCQoCCCQSAyoAIQoICgEIEgMrAEYKCQoCCAsSAysARgotCgIEABIELgA7ARohIEEgcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UgdHlwZS4KCgoKAwQAARIDLggMCjAKBAQAAgASAzACEhojIFRoZSBmdWxseSBxdWFsaWZpZWQgbWVzc2FnZSBuYW1lLgoKDAoFBAACAAUSAzACCAoMCgUEAAIAARIDMAkNCgwKBQQAAgADEgMwEBEKIgoEBAACARIDMgIcGhUgVGhlIGxpc3Qgb2YgZmllbGRzLgoKDAoFBAACAQQSAzICCgoMCgUEAAIBBhIDMgsQCgwKBQQAAgEBEgMyERcKDAoFBAACAQMSAzIaGwpPCgQEAAICEgM0Ah0aQiBUaGUgbGlzdCBvZiB0eXBlcyBhcHBlYXJpbmcgaW4gYG9uZW9mYCBkZWZpbml0aW9ucyBpbiB0aGlzIHR5cGUuCgoMCgUEAAICBBIDNAIKCgwKBQQAAgIFEgM0CxEKDAoFBAACAgESAzQSGAoMCgUEAAICAxIDNBscCisKBAQAAgMSAzYCHhoeIFRoZSBwcm90b2NvbCBidWZmZXIgb3B0aW9ucy4KCgwKBQQAAgMEEgM2AgoKDAoFBAACAwYSAzYLEQoMCgUEAAIDARIDNhIZCgwKBQQAAgMDEgM2HB0KIgoEBAACBBIDOAIjGhUgVGhlIHNvdXJjZSBjb250ZXh0LgoKDAoFBAACBAYSAzgCDwoMCgUEAAIEARIDOBAeCgwKBQQAAgQDEgM4ISIKIQoEBAACBRIDOgIUGhQgVGhlIHNvdXJjZSBzeW50YXguCgoMCgUEAAIFBhIDOgIICgwKBQQAAgUBEgM6CQ8KDAoFBAACBQMSAzoSEwowCgIEARIFPgCLAQEaIyBBIHNpbmdsZSBmaWVsZCBvZiBhIG1lc3NhZ2UgdHlwZS4KCgoKAwQBARIDPggNCiIKBAQBBAASBEACZwMaFCBCYXNpYyBmaWVsZCB0eXBlcy4KCgwKBQQBBAABEgNABwsKJAoGBAEEAAIAEgNCBBUaFSBGaWVsZCB0eXBlIHVua25vd24uCgoOCgcEAQQAAgABEgNCBBAKDgoHBAEEAAIAAhIDQhMUCiMKBgQBBAACARIDRAQUGhQgRmllbGQgdHlwZSBkb3VibGUuCgoOCgcEAQQAAgEBEgNEBA8KDgoHBAEEAAIBAhIDRBITCiIKBgQBBAACAhIDRgQTGhMgRmllbGQgdHlwZSBmbG9hdC4KCg4KBwQBBAACAgESA0YEDgoOCgcEAQQAAgICEgNGERIKIgoGBAEEAAIDEgNIBBMaEyBGaWVsZCB0eXBlIGludDY0LgoKDgoHBAEEAAIDARIDSAQOCg4KBwQBBAACAwISA0gREgojCgYEAQQAAgQSA0oEFBoUIEZpZWxkIHR5cGUgdWludDY0LgoKDgoHBAEEAAIEARIDSgQPCg4KBwQBBAACBAISA0oSEwoiCgYEAQQAAgUSA0wEExoTIEZpZWxkIHR5cGUgaW50MzIuCgoOCgcEAQQAAgUBEgNMBA4KDgoHBAEEAAIFAhIDTBESCiQKBgQBBAACBhIDTgQVGhUgRmllbGQgdHlwZSBmaXhlZDY0LgoKDgoHBAEEAAIGARIDTgQQCg4KBwQBBAACBgISA04TFAokCgYEAQQAAgcSA1AEFRoVIEZpZWxkIHR5cGUgZml4ZWQzMi4KCg4KBwQBBAACBwESA1AEEAoOCgcEAQQAAgcCEgNQExQKIQoGBAEEAAIIEgNSBBIaEiBGaWVsZCB0eXBlIGJvb2wuCgoOCgcEAQQAAggBEgNSBA0KDgoHBAEEAAIIAhIDUhARCiMKBgQBBAACCRIDVAQUGhQgRmllbGQgdHlwZSBzdHJpbmcuCgoOCgcEAQQAAgkBEgNUBA8KDgoHBAEEAAIJAhIDVBITCkYKBgQBBAACChIDVgQUGjcgRmllbGQgdHlwZSBncm91cC4gUHJvdG8yIHN5bnRheCBvbmx5LCBhbmQgZGVwcmVjYXRlZC4KCg4KBwQBBAACCgESA1YEDgoOCgcEAQQAAgoCEgNWERMKJAoGBAEEAAILEgNYBBYaFSBGaWVsZCB0eXBlIG1lc3NhZ2UuCgoOCgcEAQQAAgsBEgNYBBAKDgoHBAEEAAILAhIDWBMVCiIKBgQBBAACDBIDWgQUGhMgRmllbGQgdHlwZSBieXRlcy4KCg4KBwQBBAACDAESA1oEDgoOCgcEAQQAAgwCEgNaERMKIwoGBAEEAAINEgNcBBUaFCBGaWVsZCB0eXBlIHVpbnQzMi4KCg4KBwQBBAACDQESA1wEDwoOCgcEAQQAAg0CEgNcEhQKIQoGBAEEAAIOEgNeBBMaEiBGaWVsZCB0eXBlIGVudW0uCgoOCgcEAQQAAg4BEgNeBA0KDgoHBAEEAAIOAhIDXhASCiUKBgQBBAACDxIDYAQXGhYgRmllbGQgdHlwZSBzZml4ZWQzMi4KCg4KBwQBBAACDwESA2AEEQoOCgcEAQQAAg8CEgNgFBYKJQoGBAEEAAIQEgNiBBcaFiBGaWVsZCB0eXBlIHNmaXhlZDY0LgoKDgoHBAEEAAIQARIDYgQRCg4KBwQBBAACEAISA2IUFgojCgYEAQQAAhESA2QEFRoUIEZpZWxkIHR5cGUgc2ludDMyLgoKDgoHBAEEAAIRARIDZAQPCg4KBwQBBAACEQISA2QSFAojCgYEAQQAAhISA2YEFRoUIEZpZWxkIHR5cGUgc2ludDY0LgoKDgoHBAEEAAISARIDZgQPCg4KBwQBBAACEgISA2YSFApDCgQEAQQBEgRqAnMDGjUgV2hldGhlciBhIGZpZWxkIGlzIG9wdGlvbmFsLCByZXF1aXJlZCwgb3IgcmVwZWF0ZWQuCgoMCgUEAQQBARIDagcSCjUKBgQBBAECABIDbAQcGiYgRm9yIGZpZWxkcyB3aXRoIHVua25vd24gY2FyZGluYWxpdHkuCgoOCgcEAQQBAgABEgNsBBcKDgoHBAEEAQIAAhIDbBobCiUKBgQBBAECARIDbgQdGhYgRm9yIG9wdGlvbmFsIGZpZWxkcy4KCg4KBwQBBAECAQESA24EGAoOCgcEAQQBAgECEgNuGxwKOQoGBAEEAQICEgNwBB0aKiBGb3IgcmVxdWlyZWQgZmllbGRzLiBQcm90bzIgc3ludGF4IG9ubHkuCgoOCgcEAQQBAgIBEgNwBBgKDgoHBAEEAQICAhIDcBscCiUKBgQBBAECAxIDcgQdGhYgRm9yIHJlcGVhdGVkIGZpZWxkcy4KCg4KBwQBBAECAwESA3IEGAoOCgcEAQQBAgMCEgNyGxwKHgoEBAECABIDdgIQGhEgVGhlIGZpZWxkIHR5cGUuCgoMCgUEAQIABhIDdgIGCgwKBQQBAgABEgN2BwsKDAoFBAECAAMSA3YODwolCgQEAQIBEgN4Ah4aGCBUaGUgZmllbGQgY2FyZGluYWxpdHkuCgoMCgUEAQIBBhIDeAINCgwKBQQBAgEBEgN4DhkKDAoFBAECAQMSA3gcHQogCgQEAQICEgN6AhMaEyBUaGUgZmllbGQgbnVtYmVyLgoKDAoFBAECAgUSA3oCBwoMCgUEAQICARIDeggOCgwKBQQBAgIDEgN6ERIKHgoEBAECAxIDfAISGhEgVGhlIGZpZWxkIG5hbWUuCgoMCgUEAQIDBRIDfAIICgwKBQQBAgMBEgN8CQ0KDAoFBAECAwMSA3wQEQqWAQoEBAECBBIDfwIWGogBIFRoZSBmaWVsZCB0eXBlIFVSTCwgd2l0aG91dCB0aGUgc2NoZW1lLCBmb3IgbWVzc2FnZSBvciBlbnVtZXJhdGlvbgogdHlwZXMuIEV4YW1wbGU6IGAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuVGltZXN0YW1wImAuCgoMCgUEAQIEBRIDfwIICgwKBQQBAgQBEgN/CREKDAoFBAECBAMSA38UFQqlAQoEBAECBRIEggECGBqWASBUaGUgaW5kZXggb2YgdGhlIGZpZWxkIHR5cGUgaW4gYFR5cGUub25lb2ZzYCwgZm9yIG1lc3NhZ2Ugb3IgZW51bWVyYXRpb24KIHR5cGVzLiBUaGUgZmlyc3QgdHlwZSBoYXMgaW5kZXggMTsgemVybyBtZWFucyB0aGUgdHlwZSBpcyBub3QgaW4gdGhlIGxpc3QuCgoNCgUEAQIFBRIEggECBwoNCgUEAQIFARIEggEIEwoNCgUEAQIFAxIEggEWFwpGCgQEAQIGEgSEAQISGjggV2hldGhlciB0byB1c2UgYWx0ZXJuYXRpdmUgcGFja2VkIHdpcmUgcmVwcmVzZW50YXRpb24uCgoNCgUEAQIGBRIEhAECBgoNCgUEAQIGARIEhAEHDQoNCgUEAQIGAxIEhAEQEQosCgQEAQIHEgSGAQIeGh4gVGhlIHByb3RvY29sIGJ1ZmZlciBvcHRpb25zLgoKDQoFBAECBwQSBIYBAgoKDQoFBAECBwYSBIYBCxEKDQoFBAECBwESBIYBEhkKDQoFBAECBwMSBIYBHB0KJAoEBAECCBIEiAECGBoWIFRoZSBmaWVsZCBKU09OIG5hbWUuCgoNCgUEAQIIBRIEiAECCAoNCgUEAQIIARIEiAEJEgoNCgUEAQIIAxIEiAEVFwpYCgQEAQIJEgSKAQIcGkogVGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGlzIGZpZWxkLiBQcm90bzIgc3ludGF4IG9ubHkuCgoNCgUEAQIJBRIEigECCAoNCgUEAQIJARIEigEJFgoNCgUEAQIJAxIEigEZGwolCgIEAhIGjgEAmQEBGhcgRW51bSB0eXBlIGRlZmluaXRpb24uCgoLCgMEAgESBI4BCAwKHwoEBAICABIEkAECEhoRIEVudW0gdHlwZSBuYW1lLgoKDQoFBAICAAUSBJABAggKDQoFBAICAAESBJABCQ0KDQoFBAICAAMSBJABEBEKJwoEBAICARIEkgECIxoZIEVudW0gdmFsdWUgZGVmaW5pdGlvbnMuCgoNCgUEAgIBBBIEkgECCgoNCgUEAgIBBhIEkgELFAoNCgUEAgIBARIEkgEVHgoNCgUEAgIBAxIEkgEhIgooCgQEAgICEgSUAQIeGhogUHJvdG9jb2wgYnVmZmVyIG9wdGlvbnMuCgoNCgUEAgICBBIElAECCgoNCgUEAgICBhIElAELEQoNCgUEAgICARIElAESGQoNCgUEAgICAxIElAEcHQojCgQEAgIDEgSWAQIjGhUgVGhlIHNvdXJjZSBjb250ZXh0LgoKDQoFBAICAwYSBJYBAg8KDQoFBAICAwESBJYBEB4KDQoFBAICAwMSBJYBISIKIgoEBAICBBIEmAECFBoUIFRoZSBzb3VyY2Ugc3ludGF4LgoKDQoFBAICBAYSBJgBAggKDQoFBAICBAESBJgBCQ8KDQoFBAICBAMSBJgBEhMKJgoCBAMSBpwBAKMBARoYIEVudW0gdmFsdWUgZGVmaW5pdGlvbi4KCgsKAwQDARIEnAEIEQogCgQEAwIAEgSeAQISGhIgRW51bSB2YWx1ZSBuYW1lLgoKDQoFBAMCAAUSBJ4BAggKDQoFBAMCAAESBJ4BCQ0KDQoFBAMCAAMSBJ4BEBEKIgoEBAMCARIEoAECExoUIEVudW0gdmFsdWUgbnVtYmVyLgoKDQoFBAMCAQUSBKABAgcKDQoFBAMCAQESBKABCA4KDQoFBAMCAQMSBKABERIKKAoEBAMCAhIEogECHhoaIFByb3RvY29sIGJ1ZmZlciBvcHRpb25zLgoKDQoFBAMCAgQSBKIBAgoKDQoFBAMCAgYSBKIBCxEKDQoFBAMCAgESBKIBEhkKDQoFBAMCAgMSBKIBHB0KZwoCBAQSBqcBALIBARpZIEEgcHJvdG9jb2wgYnVmZmVyIG9wdGlvbiwgd2hpY2ggY2FuIGJlIGF0dGFjaGVkIHRvIGEgbWVzc2FnZSwgZmllbGQsCiBlbnVtZXJhdGlvbiwgZXRjLgoKCwoDBAQBEgSnAQgOCvwBCgQEBAIAEgSsAQISGu0BIFRoZSBvcHRpb24ncyBuYW1lLiBGb3IgcHJvdG9idWYgYnVpbHQtaW4gb3B0aW9ucyAob3B0aW9ucyBkZWZpbmVkIGluCiBkZXNjcmlwdG9yLnByb3RvKSwgdGhpcyBpcyB0aGUgc2hvcnQgbmFtZS4gRm9yIGV4YW1wbGUsIGAibWFwX2VudHJ5ImAuCiBGb3IgY3VzdG9tIG9wdGlvbnMsIGl0IHNob3VsZCBiZSB0aGUgZnVsbHktcXVhbGlmaWVkIG5hbWUuIEZvciBleGFtcGxlLAogYCJnb29nbGUuYXBpLmh0dHAiYC4KCg0KBQQEAgAFEgSsAQIICg0KBQQEAgABEgSsAQkNCg0KBQQEAgADEgSsARARCqACCgQEBAIBEgSxAQIQGpECIFRoZSBvcHRpb24ncyB2YWx1ZSBwYWNrZWQgaW4gYW4gQW55IG1lc3NhZ2UuIElmIHRoZSB2YWx1ZSBpcyBhIHByaW1pdGl2ZSwKIHRoZSBjb3JyZXNwb25kaW5nIHdyYXBwZXIgdHlwZSBkZWZpbmVkIGluIGdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90bwogc2hvdWxkIGJlIHVzZWQuIElmIHRoZSB2YWx1ZSBpcyBhbiBlbnVtLCBpdCBzaG91bGQgYmUgc3RvcmVkIGFzIGFuIGludDMyCiB2YWx1ZSB1c2luZyB0aGUgZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWUgdHlwZS4KCg0KBQQEAgEGEgSxAQIFCg0KBQQEAgEBEgSxAQYLCg0KBQQEAgEDEgSxAQ4PCkkKAgUAEga1AQC6AQEaOyBUaGUgc3ludGF4IGluIHdoaWNoIGEgcHJvdG9jb2wgYnVmZmVyIGVsZW1lbnQgaXMgZGVmaW5lZC4KCgsKAwUAARIEtQEFCwogCgQFAAIAEgS3AQIUGhIgU3ludGF4IGBwcm90bzJgLgoKDQoFBQACAAESBLcBAg8KDQoFBQACAAISBLcBEhMKIAoEBQACARIEuQECFBoSIFN5bnRheCBgcHJvdG8zYC4KCg0KBQUAAgEBEgS5AQIPCg0KBQUAAgECEgS5ARITYgZwcm90bzMKmkMKGWdvb2dsZS9wcm90b2J1Zi9hcGkucHJvdG8SD2dvb2dsZS5wcm90b2J1ZhokZ29vZ2xlL3Byb3RvYnVmL3NvdXJjZV9jb250ZXh0LnByb3RvGhpnb29nbGUvcHJvdG9idWYvdHlwZS5wcm90byLBAgoDQXBpEhIKBG5hbWUYASABKAlSBG5hbWUSMQoHbWV0aG9kcxgCIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RSB21ldGhvZHMSMQoHb3B0aW9ucxgDIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSGAoHdmVyc2lvbhgEIAEoCVIHdmVyc2lvbhJFCg5zb3VyY2VfY29udGV4dBgFIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0Ug1zb3VyY2VDb250ZXh0Ei4KBm1peGlucxgGIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5NaXhpblIGbWl4aW5zEi8KBnN5bnRheBgHIAEoDjIXLmdvb2dsZS5wcm90b2J1Zi5TeW50YXhSBnN5bnRheCKyAgoGTWV0aG9kEhIKBG5hbWUYASABKAlSBG5hbWUSKAoQcmVxdWVzdF90eXBlX3VybBgCIAEoCVIOcmVxdWVzdFR5cGVVcmwSKwoRcmVxdWVzdF9zdHJlYW1pbmcYAyABKAhSEHJlcXVlc3RTdHJlYW1pbmcSKgoRcmVzcG9uc2VfdHlwZV91cmwYBCABKAlSD3Jlc3BvbnNlVHlwZVVybBItChJyZXNwb25zZV9zdHJlYW1pbmcYBSABKAhSEXJlc3BvbnNlU3RyZWFtaW5nEjEKB29wdGlvbnMYBiADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEi8KBnN5bnRheBgHIAEoDjIXLmdvb2dsZS5wcm90b2J1Zi5TeW50YXhSBnN5bnRheCIvCgVNaXhpbhISCgRuYW1lGAEgASgJUgRuYW1lEhIKBHJvb3QYAiABKAlSBHJvb3RCdQoTY29tLmdvb2dsZS5wcm90b2J1ZkIIQXBpUHJvdG9QAVorZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vcHJvdG9idWYvYXBpO2FwaaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0qAPAoHEgUeANEBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCgkKAgMAEgMiAC4KCQoCAwESAyMAJAoICgEIEgMlADsKCQoCCCUSAyUAOwoICgEIEgMmACwKCQoCCAESAyYALAoICgEIEgMnACkKCQoCCAgSAycAKQoICgEIEgMoACIKCQoCCAoSAygAIgoICgEIEgMpACEKCQoCCCQSAykAIQoICgEIEgMqAEIKCQoCCAsSAyoAQgqrBAoCBAASBDUAYQEangQgQXBpIGlzIGEgbGlnaHQtd2VpZ2h0IGRlc2NyaXB0b3IgZm9yIGFuIEFQSSBJbnRlcmZhY2UuCgogSW50ZXJmYWNlcyBhcmUgYWxzbyBkZXNjcmliZWQgYXMgInByb3RvY29sIGJ1ZmZlciBzZXJ2aWNlcyIgaW4gc29tZSBjb250ZXh0cywKIHN1Y2ggYXMgYnkgdGhlICJzZXJ2aWNlIiBrZXl3b3JkIGluIGEgLnByb3RvIGZpbGUsIGJ1dCB0aGV5IGFyZSBkaWZmZXJlbnQKIGZyb20gQVBJIFNlcnZpY2VzLCB3aGljaCByZXByZXNlbnQgYSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBhbiBpbnRlcmZhY2UKIGFzIG9wcG9zZWQgdG8gc2ltcGx5IGEgZGVzY3JpcHRpb24gb2YgbWV0aG9kcyBhbmQgYmluZGluZ3MuIFRoZXkgYXJlIGFsc28KIHNvbWV0aW1lcyBzaW1wbHkgcmVmZXJyZWQgdG8gYXMgIkFQSXMiIGluIG90aGVyIGNvbnRleHRzLCBzdWNoIGFzIHRoZSBuYW1lIG9mCiB0aGlzIG1lc3NhZ2UgaXRzZWxmLiBTZWUgaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2FwaXMvZGVzaWduL2dsb3NzYXJ5IGZvcgogZGV0YWlsZWQgdGVybWlub2xvZ3kuCgoKCgMEAAESAzUICwp7CgQEAAIAEgM5AhIabiBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhpcyBpbnRlcmZhY2UsIGluY2x1ZGluZyBwYWNrYWdlIG5hbWUKIGZvbGxvd2VkIGJ5IHRoZSBpbnRlcmZhY2UncyBzaW1wbGUgbmFtZS4KCgwKBQQAAgAFEgM5AggKDAoFBAACAAESAzkJDQoMCgUEAAIAAxIDORARCkMKBAQAAgESAzwCHho2IFRoZSBtZXRob2RzIG9mIHRoaXMgaW50ZXJmYWNlLCBpbiB1bnNwZWNpZmllZCBvcmRlci4KCgwKBQQAAgEEEgM8AgoKDAoFBAACAQYSAzwLEQoMCgUEAAIBARIDPBIZCgwKBQQAAgEDEgM8HB0KNgoEBAACAhIDPwIeGikgQW55IG1ldGFkYXRhIGF0dGFjaGVkIHRvIHRoZSBpbnRlcmZhY2UuCgoMCgUEAAICBBIDPwIKCgwKBQQAAgIGEgM/CxEKDAoFBAACAgESAz8SGQoMCgUEAAICAxIDPxwdCoIICgQEAAIDEgNWAhUa9AcgQSB2ZXJzaW9uIHN0cmluZyBmb3IgdGhpcyBpbnRlcmZhY2UuIElmIHNwZWNpZmllZCwgbXVzdCBoYXZlIHRoZSBmb3JtCiBgbWFqb3ItdmVyc2lvbi5taW5vci12ZXJzaW9uYCwgYXMgaW4gYDEuMTBgLiBJZiB0aGUgbWlub3IgdmVyc2lvbiBpcwogb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gemVyby4gSWYgdGhlIGVudGlyZSB2ZXJzaW9uIGZpZWxkIGlzIGVtcHR5LCB0aGUKIG1ham9yIHZlcnNpb24gaXMgZGVyaXZlZCBmcm9tIHRoZSBwYWNrYWdlIG5hbWUsIGFzIG91dGxpbmVkIGJlbG93LiBJZiB0aGUKIGZpZWxkIGlzIG5vdCBlbXB0eSwgdGhlIHZlcnNpb24gaW4gdGhlIHBhY2thZ2UgbmFtZSB3aWxsIGJlIHZlcmlmaWVkIHRvIGJlCiBjb25zaXN0ZW50IHdpdGggd2hhdCBpcyBwcm92aWRlZCBoZXJlLgoKIFRoZSB2ZXJzaW9uaW5nIHNjaGVtYSB1c2VzIFtzZW1hbnRpYwogdmVyc2lvbmluZ10oaHR0cDovL3NlbXZlci5vcmcpIHdoZXJlIHRoZSBtYWpvciB2ZXJzaW9uIG51bWJlcgogaW5kaWNhdGVzIGEgYnJlYWtpbmcgY2hhbmdlIGFuZCB0aGUgbWlub3IgdmVyc2lvbiBhbiBhZGRpdGl2ZSwKIG5vbi1icmVha2luZyBjaGFuZ2UuIEJvdGggdmVyc2lvbiBudW1iZXJzIGFyZSBzaWduYWxzIHRvIHVzZXJzCiB3aGF0IHRvIGV4cGVjdCBmcm9tIGRpZmZlcmVudCB2ZXJzaW9ucywgYW5kIHNob3VsZCBiZSBjYXJlZnVsbHkKIGNob3NlbiBiYXNlZCBvbiB0aGUgcHJvZHVjdCBwbGFuLgoKIFRoZSBtYWpvciB2ZXJzaW9uIGlzIGFsc28gcmVmbGVjdGVkIGluIHRoZSBwYWNrYWdlIG5hbWUgb2YgdGhlCiBpbnRlcmZhY2UsIHdoaWNoIG11c3QgZW5kIGluIGB2PG1ham9yLXZlcnNpb24+YCwgYXMgaW4KIGBnb29nbGUuZmVhdHVyZS52MWAuIEZvciBtYWpvciB2ZXJzaW9ucyAwIGFuZCAxLCB0aGUgc3VmZml4IGNhbgogYmUgb21pdHRlZC4gWmVybyBtYWpvciB2ZXJzaW9ucyBtdXN0IG9ubHkgYmUgdXNlZCBmb3IKIGV4cGVyaW1lbnRhbCwgbm9uLUdBIGludGVyZmFjZXMuCgoKCgwKBQQAAgMFEgNWAggKDAoFBAACAwESA1YJEAoMCgUEAAIDAxIDVhMUClsKBAQAAgQSA1oCIxpOIFNvdXJjZSBjb250ZXh0IGZvciB0aGUgcHJvdG9jb2wgYnVmZmVyIHNlcnZpY2UgcmVwcmVzZW50ZWQgYnkgdGhpcwogbWVzc2FnZS4KCgwKBQQAAgQGEgNaAg8KDAoFBAACBAESA1oQHgoMCgUEAAIEAxIDWiEiCjIKBAQAAgUSA10CHBolIEluY2x1ZGVkIGludGVyZmFjZXMuIFNlZSBbTWl4aW5dW10uCgoMCgUEAAIFBBIDXQIKCgwKBQQAAgUGEgNdCxAKDAoFBAACBQESA10RFwoMCgUEAAIFAxIDXRobCjAKBAQAAgYSA2ACFBojIFRoZSBzb3VyY2Ugc3ludGF4IG9mIHRoZSBzZXJ2aWNlLgoKDAoFBAACBgYSA2ACCAoMCgUEAAIGARIDYAkPCgwKBQQAAgYDEgNgEhMKPQoCBAESBGQAegEaMSBNZXRob2QgcmVwcmVzZW50cyBhIG1ldGhvZCBvZiBhbiBBUEkgaW50ZXJmYWNlLgoKCgoDBAEBEgNkCA4KLgoEBAECABIDZwISGiEgVGhlIHNpbXBsZSBuYW1lIG9mIHRoaXMgbWV0aG9kLgoKDAoFBAECAAUSA2cCCAoMCgUEAQIAARIDZwkNCgwKBQQBAgADEgNnEBEKLwoEBAECARIDagIeGiIgQSBVUkwgb2YgdGhlIGlucHV0IG1lc3NhZ2UgdHlwZS4KCgwKBQQBAgEFEgNqAggKDAoFBAECAQESA2oJGQoMCgUEAQIBAxIDahwdCjAKBAQBAgISA20CHRojIElmIHRydWUsIHRoZSByZXF1ZXN0IGlzIHN0cmVhbWVkLgoKDAoFBAECAgUSA20CBgoMCgUEAQICARIDbQcYCgwKBQQBAgIDEgNtGxwKMgoEBAECAxIDcAIfGiUgVGhlIFVSTCBvZiB0aGUgb3V0cHV0IG1lc3NhZ2UgdHlwZS4KCgwKBQQBAgMFEgNwAggKDAoFBAECAwESA3AJGgoMCgUEAQIDAxIDcB0eCjEKBAQBAgQSA3MCHhokIElmIHRydWUsIHRoZSByZXNwb25zZSBpcyBzdHJlYW1lZC4KCgwKBQQBAgQFEgNzAgYKDAoFBAECBAESA3MHGQoMCgUEAQIEAxIDcxwdCjMKBAQBAgUSA3YCHhomIEFueSBtZXRhZGF0YSBhdHRhY2hlZCB0byB0aGUgbWV0aG9kLgoKDAoFBAECBQQSA3YCCgoMCgUEAQIFBhIDdgsRCgwKBQQBAgUBEgN2EhkKDAoFBAECBQMSA3YcHQowCgQEAQIGEgN5AhQaIyBUaGUgc291cmNlIHN5bnRheCBvZiB0aGlzIG1ldGhvZC4KCgwKBQQBAgYGEgN5AggKDAoFBAECBgESA3kJDwoMCgUEAQIGAxIDeRITCskTCgIEAhIGygEA0QEBGroTIERlY2xhcmVzIGFuIEFQSSBJbnRlcmZhY2UgdG8gYmUgaW5jbHVkZWQgaW4gdGhpcyBpbnRlcmZhY2UuIFRoZSBpbmNsdWRpbmcKIGludGVyZmFjZSBtdXN0IHJlZGVjbGFyZSBhbGwgdGhlIG1ldGhvZHMgZnJvbSB0aGUgaW5jbHVkZWQgaW50ZXJmYWNlLCBidXQKIGRvY3VtZW50YXRpb24gYW5kIG9wdGlvbnMgYXJlIGluaGVyaXRlZCBhcyBmb2xsb3dzOgoKIC0gSWYgYWZ0ZXIgY29tbWVudCBhbmQgd2hpdGVzcGFjZSBzdHJpcHBpbmcsIHRoZSBkb2N1bWVudGF0aW9uCiAgIHN0cmluZyBvZiB0aGUgcmVkZWNsYXJlZCBtZXRob2QgaXMgZW1wdHksIGl0IHdpbGwgYmUgaW5oZXJpdGVkCiAgIGZyb20gdGhlIG9yaWdpbmFsIG1ldGhvZC4KCiAtIEVhY2ggYW5ub3RhdGlvbiBiZWxvbmdpbmcgdG8gdGhlIHNlcnZpY2UgY29uZmlnIChodHRwLAogICB2aXNpYmlsaXR5KSB3aGljaCBpcyBub3Qgc2V0IGluIHRoZSByZWRlY2xhcmVkIG1ldGhvZCB3aWxsIGJlCiAgIGluaGVyaXRlZC4KCiAtIElmIGFuIGh0dHAgYW5ub3RhdGlvbiBpcyBpbmhlcml0ZWQsIHRoZSBwYXRoIHBhdHRlcm4gd2lsbCBiZQogICBtb2RpZmllZCBhcyBmb2xsb3dzLiBBbnkgdmVyc2lvbiBwcmVmaXggd2lsbCBiZSByZXBsYWNlZCBieSB0aGUKICAgdmVyc2lvbiBvZiB0aGUgaW5jbHVkaW5nIGludGVyZmFjZSBwbHVzIHRoZSBbcm9vdF1bXSBwYXRoIGlmCiAgIHNwZWNpZmllZC4KCiBFeGFtcGxlIG9mIGEgc2ltcGxlIG1peGluOgoKICAgICBwYWNrYWdlIGdvb2dsZS5hY2wudjE7CiAgICAgc2VydmljZSBBY2Nlc3NDb250cm9sIHsKICAgICAgIC8vIEdldCB0aGUgdW5kZXJseWluZyBBQ0wgb2JqZWN0LgogICAgICAgcnBjIEdldEFjbChHZXRBY2xSZXF1ZXN0KSByZXR1cm5zIChBY2wpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApLmdldCA9ICIvdjEve3Jlc291cmNlPSoqfTpnZXRBY2wiOwogICAgICAgfQogICAgIH0KCiAgICAgcGFja2FnZSBnb29nbGUuc3RvcmFnZS52MjsKICAgICBzZXJ2aWNlIFN0b3JhZ2UgewogICAgICAgcnBjIEdldEFjbChHZXRBY2xSZXF1ZXN0KSByZXR1cm5zIChBY2wpOwoKICAgICAgIC8vIEdldCBhIGRhdGEgcmVjb3JkLgogICAgICAgcnBjIEdldERhdGEoR2V0RGF0YVJlcXVlc3QpIHJldHVybnMgKERhdGEpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApLmdldCA9ICIvdjIve3Jlc291cmNlPSoqfSI7CiAgICAgICB9CiAgICAgfQoKIEV4YW1wbGUgb2YgYSBtaXhpbiBjb25maWd1cmF0aW9uOgoKICAgICBhcGlzOgogICAgIC0gbmFtZTogZ29vZ2xlLnN0b3JhZ2UudjIuU3RvcmFnZQogICAgICAgbWl4aW5zOgogICAgICAgLSBuYW1lOiBnb29nbGUuYWNsLnYxLkFjY2Vzc0NvbnRyb2wKCiBUaGUgbWl4aW4gY29uc3RydWN0IGltcGxpZXMgdGhhdCBhbGwgbWV0aG9kcyBpbiBgQWNjZXNzQ29udHJvbGAgYXJlCiBhbHNvIGRlY2xhcmVkIHdpdGggc2FtZSBuYW1lIGFuZCByZXF1ZXN0L3Jlc3BvbnNlIHR5cGVzIGluCiBgU3RvcmFnZWAuIEEgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3Igb3IgYW5ub3RhdGlvbiBwcm9jZXNzb3Igd2lsbAogc2VlIHRoZSBlZmZlY3RpdmUgYFN0b3JhZ2UuR2V0QWNsYCBtZXRob2QgYWZ0ZXIgaW5oZXJ0aW5nCiBkb2N1bWVudGF0aW9uIGFuZCBhbm5vdGF0aW9ucyBhcyBmb2xsb3dzOgoKICAgICBzZXJ2aWNlIFN0b3JhZ2UgewogICAgICAgLy8gR2V0IHRoZSB1bmRlcmx5aW5nIEFDTCBvYmplY3QuCiAgICAgICBycGMgR2V0QWNsKEdldEFjbFJlcXVlc3QpIHJldHVybnMgKEFjbCkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkuZ2V0ID0gIi92Mi97cmVzb3VyY2U9Kip9OmdldEFjbCI7CiAgICAgICB9CiAgICAgICAuLi4KICAgICB9CgogTm90ZSBob3cgdGhlIHZlcnNpb24gaW4gdGhlIHBhdGggcGF0dGVybiBjaGFuZ2VkIGZyb20gYHYxYCB0byBgdjJgLgoKIElmIHRoZSBgcm9vdGAgZmllbGQgaW4gdGhlIG1peGluIGlzIHNwZWNpZmllZCwgaXQgc2hvdWxkIGJlIGEKIHJlbGF0aXZlIHBhdGggdW5kZXIgd2hpY2ggaW5oZXJpdGVkIEhUVFAgcGF0aHMgYXJlIHBsYWNlZC4gRXhhbXBsZToKCiAgICAgYXBpczoKICAgICAtIG5hbWU6IGdvb2dsZS5zdG9yYWdlLnYyLlN0b3JhZ2UKICAgICAgIG1peGluczoKICAgICAgIC0gbmFtZTogZ29vZ2xlLmFjbC52MS5BY2Nlc3NDb250cm9sCiAgICAgICAgIHJvb3Q6IGFjbHMKCiBUaGlzIGltcGxpZXMgdGhlIGZvbGxvd2luZyBpbmhlcml0ZWQgSFRUUCBhbm5vdGF0aW9uOgoKICAgICBzZXJ2aWNlIFN0b3JhZ2UgewogICAgICAgLy8gR2V0IHRoZSB1bmRlcmx5aW5nIEFDTCBvYmplY3QuCiAgICAgICBycGMgR2V0QWNsKEdldEFjbFJlcXVlc3QpIHJldHVybnMgKEFjbCkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkuZ2V0ID0gIi92Mi9hY2xzL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICAgIC4uLgogICAgIH0KCgsKAwQCARIEygEIDQpMCgQEAgIAEgTMAQISGj4gVGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSBpbnRlcmZhY2Ugd2hpY2ggaXMgaW5jbHVkZWQuCgoNCgUEAgIABRIEzAECCAoNCgUEAgIAARIEzAEJDQoNCgUEAgIAAxIEzAEQEQpbCgQEAgIBEgTQAQISGk0gSWYgbm9uLWVtcHR5IHNwZWNpZmllcyBhIHBhdGggdW5kZXIgd2hpY2ggaW5oZXJpdGVkIEhUVFAgcGF0aHMKIGFyZSByb290ZWQuCgoNCgUEAgIBBRIE0AECCAoNCgUEAgIBARIE0AEJDQoNCgUEAgIBAxIE0AEQEWIGcHJvdG8zCtAlCh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiI6CghEdXJhdGlvbhIYCgdzZWNvbmRzGAEgASgDUgdzZWNvbmRzEhQKBW5hbm9zGAIgASgFUgVuYW5vc0J8ChNjb20uZ29vZ2xlLnByb3RvYnVmQg1EdXJhdGlvblByb3RvUAFaKmdpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3B0eXBlcy9kdXJhdGlvbvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0raIwoGEgQeAHMBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAfCgkKAggfEgMjAB8KCAoBCBIDJABBCgkKAggLEgMkAEEKCAoBCBIDJQAsCgkKAggBEgMlACwKCAoBCBIDJgAuCgkKAggIEgMmAC4KCAoBCBIDJwAiCgkKAggKEgMnACIKCAoBCBIDKAAhCgkKAggkEgMoACEKnhAKAgQAEgRmAHMBGpEQIEEgRHVyYXRpb24gcmVwcmVzZW50cyBhIHNpZ25lZCwgZml4ZWQtbGVuZ3RoIHNwYW4gb2YgdGltZSByZXByZXNlbnRlZAogYXMgYSBjb3VudCBvZiBzZWNvbmRzIGFuZCBmcmFjdGlvbnMgb2Ygc2Vjb25kcyBhdCBuYW5vc2Vjb25kCiByZXNvbHV0aW9uLiBJdCBpcyBpbmRlcGVuZGVudCBvZiBhbnkgY2FsZW5kYXIgYW5kIGNvbmNlcHRzIGxpa2UgImRheSIKIG9yICJtb250aCIuIEl0IGlzIHJlbGF0ZWQgdG8gVGltZXN0YW1wIGluIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgogdHdvIFRpbWVzdGFtcCB2YWx1ZXMgaXMgYSBEdXJhdGlvbiBhbmQgaXQgY2FuIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQKIGZyb20gYSBUaW1lc3RhbXAuIFJhbmdlIGlzIGFwcHJveGltYXRlbHkgKy0xMCwwMDAgeWVhcnMuCgogIyBFeGFtcGxlcwoKIEV4YW1wbGUgMTogQ29tcHV0ZSBEdXJhdGlvbiBmcm9tIHR3byBUaW1lc3RhbXBzIGluIHBzZXVkbyBjb2RlLgoKICAgICBUaW1lc3RhbXAgc3RhcnQgPSAuLi47CiAgICAgVGltZXN0YW1wIGVuZCA9IC4uLjsKICAgICBEdXJhdGlvbiBkdXJhdGlvbiA9IC4uLjsKCiAgICAgZHVyYXRpb24uc2Vjb25kcyA9IGVuZC5zZWNvbmRzIC0gc3RhcnQuc2Vjb25kczsKICAgICBkdXJhdGlvbi5uYW5vcyA9IGVuZC5uYW5vcyAtIHN0YXJ0Lm5hbm9zOwoKICAgICBpZiAoZHVyYXRpb24uc2Vjb25kcyA8IDAgJiYgZHVyYXRpb24ubmFub3MgPiAwKSB7CiAgICAgICBkdXJhdGlvbi5zZWNvbmRzICs9IDE7CiAgICAgICBkdXJhdGlvbi5uYW5vcyAtPSAxMDAwMDAwMDAwOwogICAgIH0gZWxzZSBpZiAoZHVyYXRpb24uc2Vjb25kcyA+IDAgJiYgZHVyYXRpb24ubmFub3MgPCAwKSB7CiAgICAgICBkdXJhdGlvbi5zZWNvbmRzIC09IDE7CiAgICAgICBkdXJhdGlvbi5uYW5vcyArPSAxMDAwMDAwMDAwOwogICAgIH0KCiBFeGFtcGxlIDI6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gVGltZXN0YW1wICsgRHVyYXRpb24gaW4gcHNldWRvIGNvZGUuCgogICAgIFRpbWVzdGFtcCBzdGFydCA9IC4uLjsKICAgICBEdXJhdGlvbiBkdXJhdGlvbiA9IC4uLjsKICAgICBUaW1lc3RhbXAgZW5kID0gLi4uOwoKICAgICBlbmQuc2Vjb25kcyA9IHN0YXJ0LnNlY29uZHMgKyBkdXJhdGlvbi5zZWNvbmRzOwogICAgIGVuZC5uYW5vcyA9IHN0YXJ0Lm5hbm9zICsgZHVyYXRpb24ubmFub3M7CgogICAgIGlmIChlbmQubmFub3MgPCAwKSB7CiAgICAgICBlbmQuc2Vjb25kcyAtPSAxOwogICAgICAgZW5kLm5hbm9zICs9IDEwMDAwMDAwMDA7CiAgICAgfSBlbHNlIGlmIChlbmQubmFub3MgPj0gMTAwMDAwMDAwMCkgewogICAgICAgZW5kLnNlY29uZHMgKz0gMTsKICAgICAgIGVuZC5uYW5vcyAtPSAxMDAwMDAwMDAwOwogICAgIH0KCiBFeGFtcGxlIDM6IENvbXB1dGUgRHVyYXRpb24gZnJvbSBkYXRldGltZS50aW1lZGVsdGEgaW4gUHl0aG9uLgoKICAgICB0ZCA9IGRhdGV0aW1lLnRpbWVkZWx0YShkYXlzPTMsIG1pbnV0ZXM9MTApCiAgICAgZHVyYXRpb24gPSBEdXJhdGlvbigpCiAgICAgZHVyYXRpb24uRnJvbVRpbWVkZWx0YSh0ZCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgRHVyYXRpb24gdHlwZSBpcyBlbmNvZGVkIGFzIGEgc3RyaW5nIHJhdGhlciB0aGFuIGFuCiBvYmplY3QsIHdoZXJlIHRoZSBzdHJpbmcgZW5kcyBpbiB0aGUgc3VmZml4ICJzIiAoaW5kaWNhdGluZyBzZWNvbmRzKSBhbmQKIGlzIHByZWNlZGVkIGJ5IHRoZSBudW1iZXIgb2Ygc2Vjb25kcywgd2l0aCBuYW5vc2Vjb25kcyBleHByZXNzZWQgYXMKIGZyYWN0aW9uYWwgc2Vjb25kcy4gRm9yIGV4YW1wbGUsIDMgc2Vjb25kcyB3aXRoIDAgbmFub3NlY29uZHMgc2hvdWxkIGJlCiBlbmNvZGVkIGluIEpTT04gZm9ybWF0IGFzICIzcyIsIHdoaWxlIDMgc2Vjb25kcyBhbmQgMSBuYW5vc2Vjb25kIHNob3VsZAogYmUgZXhwcmVzc2VkIGluIEpTT04gZm9ybWF0IGFzICIzLjAwMDAwMDAwMXMiLCBhbmQgMyBzZWNvbmRzIGFuZCAxCiBtaWNyb3NlY29uZCBzaG91bGQgYmUgZXhwcmVzc2VkIGluIEpTT04gZm9ybWF0IGFzICIzLjAwMDAwMXMiLgoKCgoKCgMEAAESA2YIEArcAQoEBAACABIDagIUGs4BIFNpZ25lZCBzZWNvbmRzIG9mIHRoZSBzcGFuIG9mIHRpbWUuIE11c3QgYmUgZnJvbSAtMzE1LDU3NiwwMDAsMDAwCiB0byArMzE1LDU3NiwwMDAsMDAwIGluY2x1c2l2ZS4gTm90ZTogdGhlc2UgYm91bmRzIGFyZSBjb21wdXRlZCBmcm9tOgogNjAgc2VjL21pbiAqIDYwIG1pbi9ociAqIDI0IGhyL2RheSAqIDM2NS4yNSBkYXlzL3llYXIgKiAxMDAwMCB5ZWFycwoKDAoFBAACAAUSA2oCBwoMCgUEAAIAARIDaggPCgwKBQQAAgADEgNqEhMKgwMKBAQAAgESA3ICEhr1AiBTaWduZWQgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbiBvZiB0aGUgc3Bhbgogb2YgdGltZS4gRHVyYXRpb25zIGxlc3MgdGhhbiBvbmUgc2Vjb25kIGFyZSByZXByZXNlbnRlZCB3aXRoIGEgMAogYHNlY29uZHNgIGZpZWxkIGFuZCBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGBuYW5vc2AgZmllbGQuIEZvciBkdXJhdGlvbnMKIG9mIG9uZSBzZWNvbmQgb3IgbW9yZSwgYSBub24temVybyB2YWx1ZSBmb3IgdGhlIGBuYW5vc2AgZmllbGQgbXVzdCBiZQogb2YgdGhlIHNhbWUgc2lnbiBhcyB0aGUgYHNlY29uZHNgIGZpZWxkLiBNdXN0IGJlIGZyb20gLTk5OSw5OTksOTk5CiB0byArOTk5LDk5OSw5OTkgaW5jbHVzaXZlLgoKDAoFBAACAQUSA3ICBwoMCgUEAAIBARIDcggNCgwKBQQAAgEDEgNyEBFiBnByb3RvMwq4EgobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvEg9nb29nbGUucHJvdG9idWYiBwoFRW1wdHlCdgoTY29tLmdvb2dsZS5wcm90b2J1ZkIKRW1wdHlQcm90b1ABWidnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvZW1wdHn4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK/hAKBhIEHgAzEArMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAPgoJCgIICxIDIwA+CggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUAKwoJCgIICBIDJQArCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCggKAQgSAygAHwoJCgIIHxIDKAAfCvsCCgIEABIDMwAQGu8CIEEgZ2VuZXJpYyBlbXB0eSBtZXNzYWdlIHRoYXQgeW91IGNhbiByZS11c2UgdG8gYXZvaWQgZGVmaW5pbmcgZHVwbGljYXRlZAogZW1wdHkgbWVzc2FnZXMgaW4geW91ciBBUElzLiBBIHR5cGljYWwgZXhhbXBsZSBpcyB0byB1c2UgaXQgYXMgdGhlIHJlcXVlc3QKIG9yIHRoZSByZXNwb25zZSB0eXBlIG9mIGFuIEFQSSBtZXRob2QuIEZvciBpbnN0YW5jZToKCiAgICAgc2VydmljZSBGb28gewogICAgICAgcnBjIEJhcihnb29nbGUucHJvdG9idWYuRW1wdHkpIHJldHVybnMgKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSk7CiAgICAgfQoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgRW1wdHlgIGlzIGVtcHR5IEpTT04gb2JqZWN0IGB7fWAuCgoKCgMEAAESAzMIDWIGcHJvdG8zCpE9CiBnb29nbGUvcHJvdG9idWYvZmllbGRfbWFzay5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiEKCUZpZWxkTWFzaxIUCgVwYXRocxgBIAMoCVIFcGF0aHNCjAEKE2NvbS5nb29nbGUucHJvdG9idWZCDkZpZWxkTWFza1Byb3RvUAFaOWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL3Byb3RvYnVmL2ZpZWxkX21hc2s7ZmllbGRfbWFza/gBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0qhOwoHEgUeAPQBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMALAoJCgIIARIDIwAsCggKAQgSAyQALwoJCgIICBIDJAAvCggKAQgSAyUAIgoJCgIIChIDJQAiCggKAQgSAyYAIQoJCgIIJBIDJgAhCggKAQgSAycAUAoJCgIICxIDJwBQCggKAQgSAygAHwoJCgIIHxIDKAAfCrIsCgIEABIG8QEA9AEBGqMsIGBGaWVsZE1hc2tgIHJlcHJlc2VudHMgYSBzZXQgb2Ygc3ltYm9saWMgZmllbGQgcGF0aHMsIGZvciBleGFtcGxlOgoKICAgICBwYXRoczogImYuYSIKICAgICBwYXRoczogImYuYi5kIgoKIEhlcmUgYGZgIHJlcHJlc2VudHMgYSBmaWVsZCBpbiBzb21lIHJvb3QgbWVzc2FnZSwgYGFgIGFuZCBgYmAKIGZpZWxkcyBpbiB0aGUgbWVzc2FnZSBmb3VuZCBpbiBgZmAsIGFuZCBgZGAgYSBmaWVsZCBmb3VuZCBpbiB0aGUKIG1lc3NhZ2UgaW4gYGYuYmAuCgogRmllbGQgbWFza3MgYXJlIHVzZWQgdG8gc3BlY2lmeSBhIHN1YnNldCBvZiBmaWVsZHMgdGhhdCBzaG91bGQgYmUKIHJldHVybmVkIGJ5IGEgZ2V0IG9wZXJhdGlvbiBvciBtb2RpZmllZCBieSBhbiB1cGRhdGUgb3BlcmF0aW9uLgogRmllbGQgbWFza3MgYWxzbyBoYXZlIGEgY3VzdG9tIEpTT04gZW5jb2RpbmcgKHNlZSBiZWxvdykuCgogIyBGaWVsZCBNYXNrcyBpbiBQcm9qZWN0aW9ucwoKIFdoZW4gdXNlZCBpbiB0aGUgY29udGV4dCBvZiBhIHByb2plY3Rpb24sIGEgcmVzcG9uc2UgbWVzc2FnZSBvcgogc3ViLW1lc3NhZ2UgaXMgZmlsdGVyZWQgYnkgdGhlIEFQSSB0byBvbmx5IGNvbnRhaW4gdGhvc2UgZmllbGRzIGFzCiBzcGVjaWZpZWQgaW4gdGhlIG1hc2suIEZvciBleGFtcGxlLCBpZiB0aGUgbWFzayBpbiB0aGUgcHJldmlvdXMKIGV4YW1wbGUgaXMgYXBwbGllZCB0byBhIHJlc3BvbnNlIG1lc3NhZ2UgYXMgZm9sbG93czoKCiAgICAgZiB7CiAgICAgICBhIDogMjIKICAgICAgIGIgewogICAgICAgICBkIDogMQogICAgICAgICB4IDogMgogICAgICAgfQogICAgICAgeSA6IDEzCiAgICAgfQogICAgIHo6IDgKCiBUaGUgcmVzdWx0IHdpbGwgbm90IGNvbnRhaW4gc3BlY2lmaWMgdmFsdWVzIGZvciBmaWVsZHMgeCx5IGFuZCB6CiAodGhlaXIgdmFsdWUgd2lsbCBiZSBzZXQgdG8gdGhlIGRlZmF1bHQsIGFuZCBvbWl0dGVkIGluIHByb3RvIHRleHQKIG91dHB1dCk6CgoKICAgICBmIHsKICAgICAgIGEgOiAyMgogICAgICAgYiB7CiAgICAgICAgIGQgOiAxCiAgICAgICB9CiAgICAgfQoKIEEgcmVwZWF0ZWQgZmllbGQgaXMgbm90IGFsbG93ZWQgZXhjZXB0IGF0IHRoZSBsYXN0IHBvc2l0aW9uIG9mIGEKIHBhdGhzIHN0cmluZy4KCiBJZiBhIEZpZWxkTWFzayBvYmplY3QgaXMgbm90IHByZXNlbnQgaW4gYSBnZXQgb3BlcmF0aW9uLCB0aGUKIG9wZXJhdGlvbiBhcHBsaWVzIHRvIGFsbCBmaWVsZHMgKGFzIGlmIGEgRmllbGRNYXNrIG9mIGFsbCBmaWVsZHMKIGhhZCBiZWVuIHNwZWNpZmllZCkuCgogTm90ZSB0aGF0IGEgZmllbGQgbWFzayBkb2VzIG5vdCBuZWNlc3NhcmlseSBhcHBseSB0byB0aGUKIHRvcC1sZXZlbCByZXNwb25zZSBtZXNzYWdlLiBJbiBjYXNlIG9mIGEgUkVTVCBnZXQgb3BlcmF0aW9uLCB0aGUKIGZpZWxkIG1hc2sgYXBwbGllcyBkaXJlY3RseSB0byB0aGUgcmVzcG9uc2UsIGJ1dCBpbiBjYXNlIG9mIGEgUkVTVAogbGlzdCBvcGVyYXRpb24sIHRoZSBtYXNrIGluc3RlYWQgYXBwbGllcyB0byBlYWNoIGluZGl2aWR1YWwgbWVzc2FnZQogaW4gdGhlIHJldHVybmVkIHJlc291cmNlIGxpc3QuIEluIGNhc2Ugb2YgYSBSRVNUIGN1c3RvbSBtZXRob2QsCiBvdGhlciBkZWZpbml0aW9ucyBtYXkgYmUgdXNlZC4gV2hlcmUgdGhlIG1hc2sgYXBwbGllcyB3aWxsIGJlCiBjbGVhcmx5IGRvY3VtZW50ZWQgdG9nZXRoZXIgd2l0aCBpdHMgZGVjbGFyYXRpb24gaW4gdGhlIEFQSS4gIEluCiBhbnkgY2FzZSwgdGhlIGVmZmVjdCBvbiB0aGUgcmV0dXJuZWQgcmVzb3VyY2UvcmVzb3VyY2VzIGlzIHJlcXVpcmVkCiBiZWhhdmlvciBmb3IgQVBJcy4KCiAjIEZpZWxkIE1hc2tzIGluIFVwZGF0ZSBPcGVyYXRpb25zCgogQSBmaWVsZCBtYXNrIGluIHVwZGF0ZSBvcGVyYXRpb25zIHNwZWNpZmllcyB3aGljaCBmaWVsZHMgb2YgdGhlCiB0YXJnZXRlZCByZXNvdXJjZSBhcmUgZ29pbmcgdG8gYmUgdXBkYXRlZC4gVGhlIEFQSSBpcyByZXF1aXJlZAogdG8gb25seSBjaGFuZ2UgdGhlIHZhbHVlcyBvZiB0aGUgZmllbGRzIGFzIHNwZWNpZmllZCBpbiB0aGUgbWFzawogYW5kIGxlYXZlIHRoZSBvdGhlcnMgdW50b3VjaGVkLiBJZiBhIHJlc291cmNlIGlzIHBhc3NlZCBpbiB0bwogZGVzY3JpYmUgdGhlIHVwZGF0ZWQgdmFsdWVzLCB0aGUgQVBJIGlnbm9yZXMgdGhlIHZhbHVlcyBvZiBhbGwKIGZpZWxkcyBub3QgY292ZXJlZCBieSB0aGUgbWFzay4KCiBJZiBhIHJlcGVhdGVkIGZpZWxkIGlzIHNwZWNpZmllZCBmb3IgYW4gdXBkYXRlIG9wZXJhdGlvbiwgbmV3IHZhbHVlcyB3aWxsCiBiZSBhcHBlbmRlZCB0byB0aGUgZXhpc3RpbmcgcmVwZWF0ZWQgZmllbGQgaW4gdGhlIHRhcmdldCByZXNvdXJjZS4gTm90ZSB0aGF0CiBhIHJlcGVhdGVkIGZpZWxkIGlzIG9ubHkgYWxsb3dlZCBpbiB0aGUgbGFzdCBwb3NpdGlvbiBvZiBhIGBwYXRoc2Agc3RyaW5nLgoKIElmIGEgc3ViLW1lc3NhZ2UgaXMgc3BlY2lmaWVkIGluIHRoZSBsYXN0IHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBtYXNrIGZvciBhbgogdXBkYXRlIG9wZXJhdGlvbiwgdGhlbiBuZXcgdmFsdWUgd2lsbCBiZSBtZXJnZWQgaW50byB0aGUgZXhpc3Rpbmcgc3ViLW1lc3NhZ2UKIGluIHRoZSB0YXJnZXQgcmVzb3VyY2UuCgogRm9yIGV4YW1wbGUsIGdpdmVuIHRoZSB0YXJnZXQgbWVzc2FnZToKCiAgICAgZiB7CiAgICAgICBiIHsKICAgICAgICAgZDogMQogICAgICAgICB4OiAyCiAgICAgICB9CiAgICAgICBjOiBbMV0KICAgICB9CgogQW5kIGFuIHVwZGF0ZSBtZXNzYWdlOgoKICAgICBmIHsKICAgICAgIGIgewogICAgICAgICBkOiAxMAogICAgICAgfQogICAgICAgYzogWzJdCiAgICAgfQoKIHRoZW4gaWYgdGhlIGZpZWxkIG1hc2sgaXM6CgogIHBhdGhzOiBbImYuYiIsICJmLmMiXQoKIHRoZW4gdGhlIHJlc3VsdCB3aWxsIGJlOgoKICAgICBmIHsKICAgICAgIGIgewogICAgICAgICBkOiAxMAogICAgICAgICB4OiAyCiAgICAgICB9CiAgICAgICBjOiBbMSwgMl0KICAgICB9CgogQW4gaW1wbGVtZW50YXRpb24gbWF5IHByb3ZpZGUgb3B0aW9ucyB0byBvdmVycmlkZSB0aGlzIGRlZmF1bHQgYmVoYXZpb3IgZm9yCiByZXBlYXRlZCBhbmQgbWVzc2FnZSBmaWVsZHMuCgogSW4gb3JkZXIgdG8gcmVzZXQgYSBmaWVsZCdzIHZhbHVlIHRvIHRoZSBkZWZhdWx0LCB0aGUgZmllbGQgbXVzdAogYmUgaW4gdGhlIG1hc2sgYW5kIHNldCB0byB0aGUgZGVmYXVsdCB2YWx1ZSBpbiB0aGUgcHJvdmlkZWQgcmVzb3VyY2UuCiBIZW5jZSwgaW4gb3JkZXIgdG8gcmVzZXQgYWxsIGZpZWxkcyBvZiBhIHJlc291cmNlLCBwcm92aWRlIGEgZGVmYXVsdAogaW5zdGFuY2Ugb2YgdGhlIHJlc291cmNlIGFuZCBzZXQgYWxsIGZpZWxkcyBpbiB0aGUgbWFzaywgb3IgZG8KIG5vdCBwcm92aWRlIGEgbWFzayBhcyBkZXNjcmliZWQgYmVsb3cuCgogSWYgYSBmaWVsZCBtYXNrIGlzIG5vdCBwcmVzZW50IG9uIHVwZGF0ZSwgdGhlIG9wZXJhdGlvbiBhcHBsaWVzIHRvCiBhbGwgZmllbGRzIChhcyBpZiBhIGZpZWxkIG1hc2sgb2YgYWxsIGZpZWxkcyBoYXMgYmVlbiBzcGVjaWZpZWQpLgogTm90ZSB0aGF0IGluIHRoZSBwcmVzZW5jZSBvZiBzY2hlbWEgZXZvbHV0aW9uLCB0aGlzIG1heSBtZWFuIHRoYXQKIGZpZWxkcyB0aGUgY2xpZW50IGRvZXMgbm90IGtub3cgYW5kIGhhcyB0aGVyZWZvcmUgbm90IGZpbGxlZCBpbnRvCiB0aGUgcmVxdWVzdCB3aWxsIGJlIHJlc2V0IHRvIHRoZWlyIGRlZmF1bHQuIElmIHRoaXMgaXMgdW53YW50ZWQKIGJlaGF2aW9yLCBhIHNwZWNpZmljIHNlcnZpY2UgbWF5IHJlcXVpcmUgYSBjbGllbnQgdG8gYWx3YXlzIHNwZWNpZnkKIGEgZmllbGQgbWFzaywgcHJvZHVjaW5nIGFuIGVycm9yIGlmIG5vdC4KCiBBcyB3aXRoIGdldCBvcGVyYXRpb25zLCB0aGUgbG9jYXRpb24gb2YgdGhlIHJlc291cmNlIHdoaWNoCiBkZXNjcmliZXMgdGhlIHVwZGF0ZWQgdmFsdWVzIGluIHRoZSByZXF1ZXN0IG1lc3NhZ2UgZGVwZW5kcyBvbiB0aGUKIG9wZXJhdGlvbiBraW5kLiBJbiBhbnkgY2FzZSwgdGhlIGVmZmVjdCBvZiB0aGUgZmllbGQgbWFzayBpcwogcmVxdWlyZWQgdG8gYmUgaG9ub3JlZCBieSB0aGUgQVBJLgoKICMjIENvbnNpZGVyYXRpb25zIGZvciBIVFRQIFJFU1QKCiBUaGUgSFRUUCBraW5kIG9mIGFuIHVwZGF0ZSBvcGVyYXRpb24gd2hpY2ggdXNlcyBhIGZpZWxkIG1hc2sgbXVzdAogYmUgc2V0IHRvIFBBVENIIGluc3RlYWQgb2YgUFVUIGluIG9yZGVyIHRvIHNhdGlzZnkgSFRUUCBzZW1hbnRpY3MKIChQVVQgbXVzdCBvbmx5IGJlIHVzZWQgZm9yIGZ1bGwgdXBkYXRlcykuCgogIyBKU09OIEVuY29kaW5nIG9mIEZpZWxkIE1hc2tzCgogSW4gSlNPTiwgYSBmaWVsZCBtYXNrIGlzIGVuY29kZWQgYXMgYSBzaW5nbGUgc3RyaW5nIHdoZXJlIHBhdGhzIGFyZQogc2VwYXJhdGVkIGJ5IGEgY29tbWEuIEZpZWxkcyBuYW1lIGluIGVhY2ggcGF0aCBhcmUgY29udmVydGVkCiB0by9mcm9tIGxvd2VyLWNhbWVsIG5hbWluZyBjb252ZW50aW9ucy4KCiBBcyBhbiBleGFtcGxlLCBjb25zaWRlciB0aGUgZm9sbG93aW5nIG1lc3NhZ2UgZGVjbGFyYXRpb25zOgoKICAgICBtZXNzYWdlIFByb2ZpbGUgewogICAgICAgVXNlciB1c2VyID0gMTsKICAgICAgIFBob3RvIHBob3RvID0gMjsKICAgICB9CiAgICAgbWVzc2FnZSBVc2VyIHsKICAgICAgIHN0cmluZyBkaXNwbGF5X25hbWUgPSAxOwogICAgICAgc3RyaW5nIGFkZHJlc3MgPSAyOwogICAgIH0KCiBJbiBwcm90byBhIGZpZWxkIG1hc2sgZm9yIGBQcm9maWxlYCBtYXkgbG9vayBhcyBzdWNoOgoKICAgICBtYXNrIHsKICAgICAgIHBhdGhzOiAidXNlci5kaXNwbGF5X25hbWUiCiAgICAgICBwYXRoczogInBob3RvIgogICAgIH0KCiBJbiBKU09OLCB0aGUgc2FtZSBtYXNrIGlzIHJlcHJlc2VudGVkIGFzIGJlbG93OgoKICAgICB7CiAgICAgICBtYXNrOiAidXNlci5kaXNwbGF5TmFtZSxwaG90byIKICAgICB9CgogIyBGaWVsZCBNYXNrcyBhbmQgT25lb2YgRmllbGRzCgogRmllbGQgbWFza3MgdHJlYXQgZmllbGRzIGluIG9uZW9mcyBqdXN0IGFzIHJlZ3VsYXIgZmllbGRzLiBDb25zaWRlciB0aGUKIGZvbGxvd2luZyBtZXNzYWdlOgoKICAgICBtZXNzYWdlIFNhbXBsZU1lc3NhZ2UgewogICAgICAgb25lb2YgdGVzdF9vbmVvZiB7CiAgICAgICAgIHN0cmluZyBuYW1lID0gNDsKICAgICAgICAgU3ViTWVzc2FnZSBzdWJfbWVzc2FnZSA9IDk7CiAgICAgICB9CiAgICAgfQoKIFRoZSBmaWVsZCBtYXNrIGNhbiBiZToKCiAgICAgbWFzayB7CiAgICAgICBwYXRoczogIm5hbWUiCiAgICAgfQoKIE9yOgoKICAgICBtYXNrIHsKICAgICAgIHBhdGhzOiAic3ViX21lc3NhZ2UiCiAgICAgfQoKIE5vdGUgdGhhdCBvbmVvZiB0eXBlIG5hbWVzICgidGVzdF9vbmVvZiIgaW4gdGhpcyBjYXNlKSBjYW5ub3QgYmUgdXNlZCBpbgogcGF0aHMuCgogIyMgRmllbGQgTWFzayBWZXJpZmljYXRpb24KCiBUaGUgaW1wbGVtZW50YXRpb24gb2YgYW55IEFQSSBtZXRob2Qgd2hpY2ggaGFzIGEgRmllbGRNYXNrIHR5cGUgZmllbGQgaW4gdGhlCiByZXF1ZXN0IHNob3VsZCB2ZXJpZnkgdGhlIGluY2x1ZGVkIGZpZWxkIHBhdGhzLCBhbmQgcmV0dXJuIGFuCiBgSU5WQUxJRF9BUkdVTUVOVGAgZXJyb3IgaWYgYW55IHBhdGggaXMgdW5tYXBwYWJsZS4KCgsKAwQAARIE8QEIEQosCgQEAAIAEgTzAQIcGh4gVGhlIHNldCBvZiBmaWVsZCBtYXNrIHBhdGhzLgoKDQoFBAACAAQSBPMBAgoKDQoFBAACAAUSBPMBCxEKDQoFBAACAAESBPMBEhcKDQoFBAACAAMSBPMBGhtiBnByb3RvMwrTLwofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjsKCVRpbWVzdGFtcBIYCgdzZWNvbmRzGAEgASgDUgdzZWNvbmRzEhQKBW5hbm9zGAIgASgFUgVuYW5vc0J+ChNjb20uZ29vZ2xlLnByb3RvYnVmQg5UaW1lc3RhbXBQcm90b1ABWitnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvdGltZXN0YW1w+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzStktCgcSBR4AiQEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAfCgkKAggfEgMjAB8KCAoBCBIDJABCCgkKAggLEgMkAEIKCAoBCBIDJQAsCgkKAggBEgMlACwKCAoBCBIDJgAvCgkKAggIEgMmAC8KCAoBCBIDJwAiCgkKAggKEgMnACIKCAoBCBIDKAAhCgkKAggkEgMoACEK8xsKAgQAEgV+AIkBARrlGyBBIFRpbWVzdGFtcCByZXByZXNlbnRzIGEgcG9pbnQgaW4gdGltZSBpbmRlcGVuZGVudCBvZiBhbnkgdGltZSB6b25lIG9yIGxvY2FsCiBjYWxlbmRhciwgZW5jb2RlZCBhcyBhIGNvdW50IG9mIHNlY29uZHMgYW5kIGZyYWN0aW9ucyBvZiBzZWNvbmRzIGF0CiBuYW5vc2Vjb25kIHJlc29sdXRpb24uIFRoZSBjb3VudCBpcyByZWxhdGl2ZSB0byBhbiBlcG9jaCBhdCBVVEMgbWlkbmlnaHQgb24KIEphbnVhcnkgMSwgMTk3MCwgaW4gdGhlIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIgd2hpY2ggZXh0ZW5kcyB0aGUKIEdyZWdvcmlhbiBjYWxlbmRhciBiYWNrd2FyZHMgdG8geWVhciBvbmUuCgogQWxsIG1pbnV0ZXMgYXJlIDYwIHNlY29uZHMgbG9uZy4gTGVhcCBzZWNvbmRzIGFyZSAic21lYXJlZCIgc28gdGhhdCBubyBsZWFwCiBzZWNvbmQgdGFibGUgaXMgbmVlZGVkIGZvciBpbnRlcnByZXRhdGlvbiwgdXNpbmcgYSBbMjQtaG91ciBsaW5lYXIKIHNtZWFyXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS90aW1lL3NtZWFyKS4KCiBUaGUgcmFuZ2UgaXMgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0byA5OTk5LTEyLTMxVDIzOjU5OjU5Ljk5OTk5OTk5OVouIEJ5CiByZXN0cmljdGluZyB0byB0aGF0IHJhbmdlLCB3ZSBlbnN1cmUgdGhhdCB3ZSBjYW4gY29udmVydCB0byBhbmQgZnJvbSBbUkZDCiAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGRhdGUgc3RyaW5ncy4KCiAjIEV4YW1wbGVzCgogRXhhbXBsZSAxOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGB0aW1lKClgLgoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0aW1lKE5VTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKDApOwoKIEV4YW1wbGUgMjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgZ2V0dGltZW9mZGF5KClgLgoKICAgICBzdHJ1Y3QgdGltZXZhbCB0djsKICAgICBnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModHYudHZfc2VjKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKHR2LnR2X3VzZWMgKiAxMDAwKTsKCiBFeGFtcGxlIDM6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gV2luMzIgYEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKClgLgoKICAgICBGSUxFVElNRSBmdDsKICAgICBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgmZnQpOwogICAgIFVJTlQ2NCB0aWNrcyA9ICgoKFVJTlQ2NClmdC5kd0hpZ2hEYXRlVGltZSkgPDwgMzIpIHwgZnQuZHdMb3dEYXRlVGltZTsKCiAgICAgLy8gQSBXaW5kb3dzIHRpY2sgaXMgMTAwIG5hbm9zZWNvbmRzLiBXaW5kb3dzIGVwb2NoIDE2MDEtMDEtMDFUMDA6MDA6MDBaCiAgICAgLy8gaXMgMTE2NDQ0NzM2MDAgc2Vjb25kcyBiZWZvcmUgVW5peCBlcG9jaCAxOTcwLTAxLTAxVDAwOjAwOjAwWi4KICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcygoSU5UNjQpICgodGlja3MgLyAxMDAwMDAwMCkgLSAxMTY0NDQ3MzYwMExMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygoSU5UMzIpICgodGlja3MgJSAxMDAwMDAwMCkgKiAxMDApKTsKCiBFeGFtcGxlIDQ6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gSmF2YSBgU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKClgLgoKICAgICBsb25nIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wID0gVGltZXN0YW1wLm5ld0J1aWxkZXIoKS5zZXRTZWNvbmRzKG1pbGxpcyAvIDEwMDApCiAgICAgICAgIC5zZXROYW5vcygoaW50KSAoKG1pbGxpcyAlIDEwMDApICogMTAwMDAwMCkpLmJ1aWxkKCk7CgoKIEV4YW1wbGUgNTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBjdXJyZW50IHRpbWUgaW4gUHl0aG9uLgoKICAgICB0aW1lc3RhbXAgPSBUaW1lc3RhbXAoKQogICAgIHRpbWVzdGFtcC5HZXRDdXJyZW50VGltZSgpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIFRpbWVzdGFtcCB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgaW4gdGhlCiBbUkZDIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZm9ybWF0LiBUaGF0IGlzLCB0aGUKIGZvcm1hdCBpcyAie3llYXJ9LXttb250aH0te2RheX1Ue2hvdXJ9OnttaW59OntzZWN9Wy57ZnJhY19zZWN9XVoiCiB3aGVyZSB7eWVhcn0gaXMgYWx3YXlzIGV4cHJlc3NlZCB1c2luZyBmb3VyIGRpZ2l0cyB3aGlsZSB7bW9udGh9LCB7ZGF5fSwKIHtob3VyfSwge21pbn0sIGFuZCB7c2VjfSBhcmUgemVyby1wYWRkZWQgdG8gdHdvIGRpZ2l0cyBlYWNoLiBUaGUgZnJhY3Rpb25hbAogc2Vjb25kcywgd2hpY2ggY2FuIGdvIHVwIHRvIDkgZGlnaXRzIChpLmUuIHVwIHRvIDEgbmFub3NlY29uZCByZXNvbHV0aW9uKSwKIGFyZSBvcHRpb25hbC4gVGhlICJaIiBzdWZmaXggaW5kaWNhdGVzIHRoZSB0aW1lem9uZSAoIlVUQyIpOyB0aGUgdGltZXpvbmUKIGlzIHJlcXVpcmVkLiBBIHByb3RvMyBKU09OIHNlcmlhbGl6ZXIgc2hvdWxkIGFsd2F5cyB1c2UgVVRDIChhcyBpbmRpY2F0ZWQgYnkKICJaIikgd2hlbiBwcmludGluZyB0aGUgVGltZXN0YW1wIHR5cGUgYW5kIGEgcHJvdG8zIEpTT04gcGFyc2VyIHNob3VsZCBiZQogYWJsZSB0byBhY2NlcHQgYm90aCBVVEMgYW5kIG90aGVyIHRpbWV6b25lcyAoYXMgaW5kaWNhdGVkIGJ5IGFuIG9mZnNldCkuCgogRm9yIGV4YW1wbGUsICIyMDE3LTAxLTE1VDAxOjMwOjE1LjAxWiIgZW5jb2RlcyAxNS4wMSBzZWNvbmRzIHBhc3QKIDAxOjMwIFVUQyBvbiBKYW51YXJ5IDE1LCAyMDE3LgoKIEluIEphdmFTY3JpcHQsIG9uZSBjYW4gY29udmVydCBhIERhdGUgb2JqZWN0IHRvIHRoaXMgZm9ybWF0IHVzaW5nIHRoZQogc3RhbmRhcmQKIFt0b0lTT1N0cmluZygpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlL3RvSVNPU3RyaW5nKQogbWV0aG9kLiBJbiBQeXRob24sIGEgc3RhbmRhcmQgYGRhdGV0aW1lLmRhdGV0aW1lYCBvYmplY3QgY2FuIGJlIGNvbnZlcnRlZAogdG8gdGhpcyBmb3JtYXQgdXNpbmcKIFtgc3RyZnRpbWVgXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvdGltZS5odG1sI3RpbWUuc3RyZnRpbWUpIHdpdGgKIHRoZSB0aW1lIGZvcm1hdCBzcGVjICclWS0lbS0lZFQlSDolTTolUy4lZlonLiBMaWtld2lzZSwgaW4gSmF2YSwgb25lIGNhbiB1c2UKIHRoZSBKb2RhIFRpbWUncyBbYElTT0RhdGVUaW1lRm9ybWF0LmRhdGVUaW1lKClgXSgKIGh0dHA6Ly93d3cuam9kYS5vcmcvam9kYS10aW1lL2FwaWRvY3Mvb3JnL2pvZGEvdGltZS9mb3JtYXQvSVNPRGF0ZVRpbWVGb3JtYXQuaHRtbCNkYXRlVGltZSUyRCUyRAogKSB0byBvYnRhaW4gYSBmb3JtYXR0ZXIgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgaW4gdGhpcyBmb3JtYXQuCgoKCgoKAwQAARIDfggRCp0BCgQEAAIAEgSCAQIUGo4BIFJlcHJlc2VudHMgc2Vjb25kcyBvZiBVVEMgdGltZSBzaW5jZSBVbml4IGVwb2NoCiAxOTcwLTAxLTAxVDAwOjAwOjAwWi4gTXVzdCBiZSBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvCiA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmUuCgoNCgUEAAIABRIEggECBwoNCgUEAAIAARIEggEIDwoNCgUEAAIAAxIEggESEwrlAQoEBAACARIEiAECEhrWASBOb24tbmVnYXRpdmUgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gTmVnYXRpdmUKIHNlY29uZCB2YWx1ZXMgd2l0aCBmcmFjdGlvbnMgbXVzdCBzdGlsbCBoYXZlIG5vbi1uZWdhdGl2ZSBuYW5vcyB2YWx1ZXMKIHRoYXQgY291bnQgZm9yd2FyZCBpbiB0aW1lLiBNdXN0IGJlIGZyb20gMCB0byA5OTksOTk5LDk5OQogaW5jbHVzaXZlLgoKDQoFBAACAQUSBIgBAgcKDQoFBAACAQESBIgBCA0KDQoFBAACAQMSBIgBEBFiBnByb3RvMwrHIwoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnByb3RvEg9nb29nbGUucHJvdG9idWYiIwoLRG91YmxlVmFsdWUSFAoFdmFsdWUYASABKAFSBXZhbHVlIiIKCkZsb2F0VmFsdWUSFAoFdmFsdWUYASABKAJSBXZhbHVlIiIKCkludDY0VmFsdWUSFAoFdmFsdWUYASABKANSBXZhbHVlIiMKC1VJbnQ2NFZhbHVlEhQKBXZhbHVlGAEgASgEUgV2YWx1ZSIiCgpJbnQzMlZhbHVlEhQKBXZhbHVlGAEgASgFUgV2YWx1ZSIjCgtVSW50MzJWYWx1ZRIUCgV2YWx1ZRgBIAEoDVIFdmFsdWUiIQoJQm9vbFZhbHVlEhQKBXZhbHVlGAEgASgIUgV2YWx1ZSIjCgtTdHJpbmdWYWx1ZRIUCgV2YWx1ZRgBIAEoCVIFdmFsdWUiIgoKQnl0ZXNWYWx1ZRIUCgV2YWx1ZRgBIAEoDFIFdmFsdWVCfAoTY29tLmdvb2dsZS5wcm90b2J1ZkINV3JhcHBlcnNQcm90b1ABWipnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvd3JhcHBlcnP4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKxh8KBhIEKAB6AQrbEAoBDBIDKAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyjAQgV3JhcHBlcnMgZm9yIHByaW1pdGl2ZSAobm9uLW1lc3NhZ2UpIHR5cGVzLiBUaGVzZSB0eXBlcyBhcmUgdXNlZnVsCiBmb3IgZW1iZWRkaW5nIHByaW1pdGl2ZXMgaW4gdGhlIGBn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YEJvb2xWYWx1ZWAgaXMgSlNPTiBgdHJ1ZWAgYW5kIGBmYWxzZWAuCgoKCgMEBgESA2cIEQoeCgQEBgIAEgNpAhEaESBUaGUgYm9vbCB2YWx1ZS4KCgwKBQQGAgAFEgNpAgYKDAoFBAYCAAESA2kHDAoMCgUEBgIAAxIDaQ8QCmcKAgQHEgRvAHIBGlsgV3JhcHBlciBtZXNzYWdlIGZvciBgc3RyaW5nYC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYFN0cmluZ1ZhbHVlYCBpcyBKU09OIHN0cmluZy4KCgoKAwQHARIDbwgTCiAKBAQHAgASA3ECExoTIFRoZSBzdHJpbmcgdmFsdWUuCgoMCgUEBwIABRIDcQIICgwKBQQHAgABEgNxCQ4KDAoFBAcCAAMSA3EREgplCgIECBIEdwB6ARpZIFdyYXBwZXIgbWVzc2FnZSBmb3IgYGJ5dGVzYC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEJ5dGVzVmFsdWVgIGlzIEpTT04gc3RyaW5nLgoKCgoDBAgBEgN3CBIKHwoEBAgCABIDeQISGhIgVGhlIGJ5dGVzIHZhbHVlLgoKDAoFBAgCAAUSA3kCBwoMCgUECAIAARIDeQgNCgwKBQQIAgADEgN5EBFiBnByb3RvMwrnYAovZ29vZ2xlL3Byb3RvYnVmL3VuaXR0ZXN0X3dlbGxfa25vd25fdHlwZXMucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0Ghlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGhlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvGh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxogZ29vZ2xlL3Byb3RvYnVmL2ZpZWxkX21hc2sucHJvdG8aJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90byK0CQoSVGVzdFdlbGxLbm93blR5cGVzEjEKCWFueV9maWVsZBgBIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSCGFueUZpZWxkEjEKCWFwaV9maWVsZBgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSCGFwaUZpZWxkEkAKDmR1cmF0aW9uX2ZpZWxkGAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUg1kdXJhdGlvbkZpZWxkEjcKC2VtcHR5X2ZpZWxkGAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgplbXB0eUZpZWxkEkQKEGZpZWxkX21hc2tfZmllbGQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUg5maWVsZE1hc2tGaWVsZBJQChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UhJzb3VyY2VDb250ZXh0RmllbGQSOgoMc3RydWN0X2ZpZWxkGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFILc3RydWN0RmllbGQSQwoPdGltZXN0YW1wX2ZpZWxkGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIOdGltZXN0YW1wRmllbGQSNAoKdHlwZV9maWVsZBgJIAEoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlUgl0eXBlRmllbGQSPwoMZG91YmxlX2ZpZWxkGAogASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgtkb3VibGVGaWVsZBI8CgtmbG9hdF9maWVsZBgLIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUgpmbG9hdEZpZWxkEjwKC2ludDY0X2ZpZWxkGAwgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSCmludDY0RmllbGQSPwoMdWludDY0X2ZpZWxkGA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUgt1aW50NjRGaWVsZBI8CgtpbnQzMl9maWVsZBgOIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUgppbnQzMkZpZWxkEj8KDHVpbnQzMl9maWVsZBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVILdWludDMyRmllbGQSOQoKYm9vbF9maWVsZBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSCWJvb2xGaWVsZBI/CgxzdHJpbmdfZmllbGQYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSC3N0cmluZ0ZpZWxkEjwKC2J5dGVzX2ZpZWxkGBIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSCmJ5dGVzRmllbGQSNwoLdmFsdWVfZmllbGQYEyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSCnZhbHVlRmllbGQi/wgKFlJlcGVhdGVkV2VsbEtub3duVHlwZXMSMQoJYW55X2ZpZWxkGAEgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIIYW55RmllbGQSMQoJYXBpX2ZpZWxkGAIgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFwaVIIYXBpRmllbGQSQAoOZHVyYXRpb25fZmllbGQYAyADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SDWR1cmF0aW9uRmllbGQSNwoLZW1wdHlfZmllbGQYBCADKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSCmVtcHR5RmllbGQSRAoQZmllbGRfbWFza19maWVsZBgFIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSDmZpZWxkTWFza0ZpZWxkElAKFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgAygLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSEnNvdXJjZUNvbnRleHRGaWVsZBI6CgxzdHJ1Y3RfZmllbGQYByADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0UgtzdHJ1Y3RGaWVsZBJDCg90aW1lc3RhbXBfZmllbGQYCCADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUg50aW1lc3RhbXBGaWVsZBI0Cgp0eXBlX2ZpZWxkGAkgAygLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVSCXR5cGVGaWVsZBI/Cgxkb3VibGVfZmllbGQYCiADKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSC2RvdWJsZUZpZWxkEjwKC2Zsb2F0X2ZpZWxkGAsgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSCmZsb2F0RmllbGQSPAoLaW50NjRfZmllbGQYDCADKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIKaW50NjRGaWVsZBI/Cgx1aW50NjRfZmllbGQYDSADKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSC3VpbnQ2NEZpZWxkEjwKC2ludDMyX2ZpZWxkGA4gAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSCmludDMyRmllbGQSPwoMdWludDMyX2ZpZWxkGA8gAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUgt1aW50MzJGaWVsZBI5Cgpib29sX2ZpZWxkGBAgAygLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZVIJYm9vbEZpZWxkEj8KDHN0cmluZ19maWVsZBgRIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVILc3RyaW5nRmllbGQSPAoLYnl0ZXNfZmllbGQYEiADKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIKYnl0ZXNGaWVsZCKvCQoTT25lb2ZXZWxsS25vd25UeXBlcxIzCglhbnlfZmllbGQYASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55SABSCGFueUZpZWxkEjMKCWFwaV9maWVsZBgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlIAFIIYXBpRmllbGQSQgoOZHVyYXRpb25fZmllbGQYAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25IAFINZHVyYXRpb25GaWVsZBI5CgtlbXB0eV9maWVsZBgEIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eUgAUgplbXB0eUZpZWxkEkYKEGZpZWxkX21hc2tfZmllbGQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrSABSDmZpZWxkTWFza0ZpZWxkElIKFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRIAFISc291cmNlQ29udGV4dEZpZWxkEjwKDHN0cnVjdF9maWVsZBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAFILc3RydWN0RmllbGQSRQoPdGltZXN0YW1wX2ZpZWxkGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAUg50aW1lc3RhbXBGaWVsZBI2Cgp0eXBlX2ZpZWxkGAkgASgLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVIAFIJdHlwZUZpZWxkEkEKDGRvdWJsZV9maWVsZBgKIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZUgAUgtkb3VibGVGaWVsZBI+CgtmbG9hdF9maWVsZBgLIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlSABSCmZsb2F0RmllbGQSPgoLaW50NjRfZmllbGQYDCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZUgAUgppbnQ2NEZpZWxkEkEKDHVpbnQ2NF9maWVsZBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZUgAUgt1aW50NjRGaWVsZBI+CgtpbnQzMl9maWVsZBgOIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlSABSCmludDMyRmllbGQSQQoMdWludDMyX2ZpZWxkGA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlSABSC3VpbnQzMkZpZWxkEjsKCmJvb2xfZmllbGQYECABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlSABSCWJvb2xGaWVsZBJBCgxzdHJpbmdfZmllbGQYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVIAFILc3RyaW5nRmllbGQSPgoLYnl0ZXNfZmllbGQYEiABKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZUgAUgpieXRlc0ZpZWxkQg0KC29uZW9mX2ZpZWxkItgZChFNYXBXZWxsS25vd25UeXBlcxJPCglhbnlfZmllbGQYASADKAsyMi5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5BbnlGaWVsZEVudHJ5UghhbnlGaWVsZBJPCglhcGlfZmllbGQYAiADKAsyMi5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5BcGlGaWVsZEVudHJ5UghhcGlGaWVsZBJeCg5kdXJhdGlvbl9maWVsZBgDIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkR1cmF0aW9uRmllbGRFbnRyeVINZHVyYXRpb25GaWVsZBJVCgtlbXB0eV9maWVsZBgEIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkVtcHR5RmllbGRFbnRyeVIKZW1wdHlGaWVsZBJiChBmaWVsZF9tYXNrX2ZpZWxkGAUgAygLMjgucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRmllbGRNYXNrRmllbGRFbnRyeVIOZmllbGRNYXNrRmllbGQSbgoUc291cmNlX2NvbnRleHRfZmllbGQYBiADKAsyPC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Tb3VyY2VDb250ZXh0RmllbGRFbnRyeVISc291cmNlQ29udGV4dEZpZWxkElgKDHN0cnVjdF9maWVsZBgHIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlN0cnVjdEZpZWxkRW50cnlSC3N0cnVjdEZpZWxkEmEKD3RpbWVzdGFtcF9maWVsZBgIIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlRpbWVzdGFtcEZpZWxkRW50cnlSDnRpbWVzdGFtcEZpZWxkElIKCnR5cGVfZmllbGQYCSADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5UeXBlRmllbGRFbnRyeVIJdHlwZUZpZWxkElgKDGRvdWJsZV9maWVsZBgKIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkRvdWJsZUZpZWxkRW50cnlSC2RvdWJsZUZpZWxkElUKC2Zsb2F0X2ZpZWxkGAsgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRmxvYXRGaWVsZEVudHJ5UgpmbG9hdEZpZWxkElUKC2ludDY0X2ZpZWxkGAwgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuSW50NjRGaWVsZEVudHJ5UgppbnQ2NEZpZWxkElgKDHVpbnQ2NF9maWVsZBgNIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlVpbnQ2NEZpZWxkRW50cnlSC3VpbnQ2NEZpZWxkElUKC2ludDMyX2ZpZWxkGA4gAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuSW50MzJGaWVsZEVudHJ5UgppbnQzMkZpZWxkElgKDHVpbnQzMl9maWVsZBgPIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlVpbnQzMkZpZWxkRW50cnlSC3VpbnQzMkZpZWxkElIKCmJvb2xfZmllbGQYECADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Cb29sRmllbGRFbnRyeVIJYm9vbEZpZWxkElgKDHN0cmluZ19maWVsZBgRIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlN0cmluZ0ZpZWxkRW50cnlSC3N0cmluZ0ZpZWxkElUKC2J5dGVzX2ZpZWxkGBIgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQnl0ZXNGaWVsZEVudHJ5UgpieXRlc0ZpZWxkGlEKDUFueUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgV2YWx1ZToCOAEaUQoNQXBpRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSBXZhbHVlOgI4ARpbChJEdXJhdGlvbkZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSLwoFdmFsdWUYAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SBXZhbHVlOgI4ARpVCg9FbXB0eUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBXZhbHVlOgI4ARpdChNGaWVsZE1hc2tGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjAKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IFdmFsdWU6AjgBGmUKF1NvdXJjZUNvbnRleHRGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjQKBXZhbHVlGAIgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSBXZhbHVlOgI4ARpXChBTdHJ1Y3RGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5Ei0KBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIFdmFsdWU6AjgBGl0KE1RpbWVzdGFtcEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMAoFdmFsdWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgV2YWx1ZToCOAEaUwoOVHlwZUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKwoFdmFsdWUYAiABKAsyFS5nb29nbGUucHJvdG9idWYuVHlwZVIFdmFsdWU6AjgBGlwKEERvdWJsZUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSBXZhbHVlOgI4ARpaCg9GbG9hdEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIFdmFsdWU6AjgBGloKD0ludDY0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUgV2YWx1ZToCOAEaXAoQ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CgwKBQQDAgwBEgNrKTUKDAoFBAMCDAMSA2s4OgoLCgQEAwINEgNsAjkKDAoFBAMCDQYSA2wCJwoMCgUEAwINARIDbCgzCgwKBQQDAg0DEgNsNjgKCwoEBAMCDhIDbQI7CgwKBQQDAg4GEgNtAigKDAoFBAMCDgESA20pNQoMCgUEAwIOAxIDbTg6CgsKBAQDAg8SA24CNwoMCgUEAwIPBhIDbgImCgwKBQQDAg8BEgNuJzEKDAoFBAMCDwMSA240NgoLCgQEAwIQEgNvAjsKDAoFBAMCEAYSA28CKAoMCgUEAwIQARIDbyk1CgwKBQQDAhADEgNvODoKCwoEBAMCERIDcAI5CgwKBQQDAhEGEgNwAicKDAoFBAMCEQESA3AoMwoMCgUEAwIRAxIDcDY4YgZwcm90bzMKj80BCipnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzMucHJvdG8SHXByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvGhxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvGh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8ihFoKElRlc3RBbGxUeXBlc1Byb3RvMxIlCg5vcHRpb25hbF9pbnQzMhgBIAEoBVINb3B0aW9uYWxJbnQzMhIlCg5vcHRpb25hbF9pbnQ2NBgCIAEoA1INb3B0aW9uYWxJbnQ2NBInCg9vcHRpb25hbF91aW50MzIYAyABKA1SDm9wdGlvbmFsVWludDMyEicKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBFIOb3B0aW9uYWxVaW50NjQSJwoPb3B0aW9uYWxfc2ludDMyGAUgASgRUg5vcHRpb25hbFNpbnQzMhInCg9vcHRpb25hbF9zaW50NjQYBiABKBJSDm9wdGlvbmFsU2ludDY0EikKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdSD29wdGlvbmFsRml4ZWQzMhIpChBvcHRpb25hbF9maXhlZDY0GAggASgGUg9vcHRpb25hbEZpeGVkNjQSKwoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA9SEG9wdGlvbmFsU2ZpeGVkMzISKwoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBSEG9wdGlvbmFsU2ZpeGVkNjQSJQoOb3B0aW9uYWxfZmxvYXQYCyABKAJSDW9wdGlvbmFsRmxvYXQSJwoPb3B0aW9uYWxfZG91YmxlGAwgASgBUg5vcHRpb25hbERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USZwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMi0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbk1lc3NhZ2VSFm9wdGlvbmFsRm9yZWlnbk1lc3NhZ2USbgoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVISb3B0aW9uYWxOZXN0ZWRFbnVtEl4KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtEnEKFW9wdGlvbmFsX2FsaWFzZWRfZW51bRgXIAEoDjI9LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5BbGlhc2VkRW51bVITb3B0aW9uYWxBbGlhc2VkRW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSXgoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzNSEHJlY3Vyc2l2ZU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSdwoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEmcKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEm4KFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJeChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yKi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduRW51bVITcmVwZWF0ZWRGb3JlaWduRW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSJQoMcGFja2VkX2ludDMyGEsgAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GEwgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhNIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GE4gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhQIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhRIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYUiADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhTIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhUIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYViADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYVyADKAhCAhABUgpwYWNrZWRCb29sEm4KEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtQgIQAVIQcGFja2VkTmVzdGVkRW51bRIpCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhcIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhhdIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYXyADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhhIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYiADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGMgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZCADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGUgAygIQgIQAFIMdW5wYWNrZWRCb29sEnIKFHVucGFja2VkX25lc3RlZF9lbnVtGGYgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1CAhAAUhJ1bnBhY2tlZE5lc3RlZEVudW0SbAoPbWFwX2ludDMyX2ludDMyGDggAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJsCg9tYXBfaW50NjRfaW50NjQYOSADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50NjRJbnQ2NEVudHJ5Ug1tYXBJbnQ2NEludDY0EnIKEW1hcF91aW50MzJfdWludDMyGDogAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzIScgoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJyChFtYXBfc2ludDMyX3NpbnQzMhg8IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTaW50MzJTaW50MzJFbnRyeVIPbWFwU2ludDMyU2ludDMyEnIKEW1hcF9zaW50NjRfc2ludDY0GD0gAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSeAoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJ4ChNtYXBfZml4ZWQ2NF9maXhlZDY0GD8gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEZpeGVkNjRGaXhlZDY0RW50cnlSEW1hcEZpeGVkNjRGaXhlZDY0En4KFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhhAIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISfgoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GEEgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJsCg9tYXBfaW50MzJfZmxvYXQYQiADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJGbG9hdEVudHJ5Ug1tYXBJbnQzMkZsb2F0Em8KEG1hcF9pbnQzMl9kb3VibGUYQyADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSZgoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJyChFtYXBfc3RyaW5nX3N0cmluZxhFIAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdTdHJpbmdFbnRyeVIPbWFwU3RyaW5nU3RyaW5nEm8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nQnl0ZXNFbnRyeVIObWFwU3RyaW5nQnl0ZXMSiAEKGW1hcF9zdHJpbmdfbmVzdGVkX21lc3NhZ2UYRyADKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5UhZtYXBTdHJpbmdOZXN0ZWRNZXNzYWdlEosBChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5UhdtYXBTdHJpbmdGb3JlaWduTWVzc2FnZRJ/ChZtYXBfc3RyaW5nX25lc3RlZF9lbnVtGEkgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ05lc3RlZEVudW1FbnRyeVITbWFwU3RyaW5nTmVzdGVkRW51bRKCAQoXbWFwX3N0cmluZ19mb3JlaWduX2VudW0YSiADKAsySy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeVIUbWFwU3RyaW5nRm9yZWlnbkVudW0SIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEnMKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzEh8KCm9uZW9mX2Jvb2wYcyABKAhIAFIJb25lb2ZCb29sEiMKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAUgtvbmVvZlVpbnQ2NBIhCgtvbmVvZl9mbG9hdBh1IAEoAkgAUgpvbmVvZkZsb2F0EiMKDG9uZW9mX2RvdWJsZRh2IAEoAUgAUgtvbmVvZkRvdWJsZRJdCgpvbmVvZl9lbnVtGHcgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1IAFIJb25lb2ZFbnVtEk8KFW9wdGlvbmFsX2Jvb2xfd3JhcHBlchjJASABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUhNvcHRpb25hbEJvb2xXcmFwcGVyElIKFm9wdGlvbmFsX2ludDMyX3dyYXBwZXIYygEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSFG9wdGlvbmFsSW50MzJXcmFwcGVyElIKFm9wdGlvbmFsX2ludDY0X3dyYXBwZXIYywEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSFG9wdGlvbmFsSW50NjRXcmFwcGVyElUKF29wdGlvbmFsX3VpbnQzMl93cmFwcGVyGMwBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIVb3B0aW9uYWxVaW50MzJXcmFwcGVyElUKF29wdGlvbmFsX3VpbnQ2NF93cmFwcGVyGM0BIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIVb3B0aW9uYWxVaW50NjRXcmFwcGVyElIKFm9wdGlvbmFsX2Zsb2F0X3dyYXBwZXIYzgEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSFG9wdGlvbmFsRmxvYXRXcmFwcGVyElUKF29wdGlvbmFsX2RvdWJsZV93cmFwcGVyGM8BIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIVb3B0aW9uYWxEb3VibGVXcmFwcGVyElUKF29wdGlvbmFsX3N0cmluZ193cmFwcGVyGNABIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIVb3B0aW9uYWxTdHJpbmdXcmFwcGVyElIKFm9wdGlvbmFsX2J5dGVzX3dyYXBwZXIY0QEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSFG9wdGlvbmFsQnl0ZXNXcmFwcGVyEk8KFXJlcGVhdGVkX2Jvb2xfd3JhcHBlchjTASADKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUhNyZXBlYXRlZEJvb2xXcmFwcGVyElIKFnJlcGVhdGVkX2ludDMyX3dyYXBwZXIY1AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSFHJlcGVhdGVkSW50MzJXcmFwcGVyElIKFnJlcGVhdGVkX2ludDY0X3dyYXBwZXIY1QEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSFHJlcGVhdGVkSW50NjRXcmFwcGVyElUKF3JlcGVhdGVkX3VpbnQzMl93cmFwcGVyGNYBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIVcmVwZWF0ZWRVaW50MzJXcmFwcGVyElUKF3JlcGVhdGVkX3VpbnQ2NF93cmFwcGVyGNcBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIVcmVwZWF0ZWRVaW50NjRXcmFwcGVyElIKFnJlcGVhdGVkX2Zsb2F0X3dyYXBwZXIY2AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSFHJlcGVhdGVkRmxvYXRXcmFwcGVyElUKF3JlcGVhdGVkX2RvdWJsZV93cmFwcGVyGNkBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIVcmVwZWF0ZWREb3VibGVXcmFwcGVyElUKF3JlcGVhdGVkX3N0cmluZ193cmFwcGVyGNoBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIVcmVwZWF0ZWRTdHJpbmdXcmFwcGVyElIKFnJlcGVhdGVkX2J5dGVzX3dyYXBwZXIY2wEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSFHJlcGVhdGVkQnl0ZXNXcmFwcGVyEkcKEW9wdGlvbmFsX2R1cmF0aW9uGK0CIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIQb3B0aW9uYWxEdXJhdGlvbhJKChJvcHRpb25hbF90aW1lc3RhbXAYrgIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRb3B0aW9uYWxUaW1lc3RhbXASSwoTb3B0aW9uYWxfZmllbGRfbWFzaxivAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUhFvcHRpb25hbEZpZWxkTWFzaxJBCg9vcHRpb25hbF9zdHJ1Y3QYsAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIOb3B0aW9uYWxTdHJ1Y3QSOAoMb3B0aW9uYWxfYW55GLECIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSC29wdGlvbmFsQW55Ej4KDm9wdGlvbmFsX3ZhbHVlGLICIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVINb3B0aW9uYWxWYWx1ZRJHChFyZXBlYXRlZF9kdXJhdGlvbhi3AiADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SEHJlcGVhdGVkRHVyYXRpb24SSgoScmVwZWF0ZWRfdGltZXN0YW1wGLgCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSEXJlcGVhdGVkVGltZXN0YW1wEkoKEnJlcGVhdGVkX2ZpZWxkbWFzaxi5AiADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUhFyZXBlYXRlZEZpZWxkbWFzaxJBCg9yZXBlYXRlZF9zdHJ1Y3QYxAIgAygLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIOcmVwZWF0ZWRTdHJ1Y3QSOAoMcmVwZWF0ZWRfYW55GLsCIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSC3JlcGVhdGVkQW55Ej4KDnJlcGVhdGVkX3ZhbHVlGLwCIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVINcmVwZWF0ZWRWYWx1ZRJLChNyZXBlYXRlZF9saXN0X3ZhbHVlGL0CIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5MaXN0VmFsdWVSEXJlcGVhdGVkTGlzdFZhbHVlEh8KCmZpZWxkbmFtZTEYkQMgASgFUgpmaWVsZG5hbWUxEiAKC2ZpZWxkX25hbWUyGJIDIAEoBVIKZmllbGROYW1lMhIhCgxfZmllbGRfbmFtZTMYkwMgASgFUgpGaWVsZE5hbWUzEiIKDWZpZWxkX19uYW1lNF8YlAMgASgFUgpmaWVsZE5hbWU0EiEKC2ZpZWxkMG5hbWU1GJUDIAEoBVILZmllbGQwbmFtZTUSIwoNZmllbGRfMF9uYW1lNhiWAyABKAVSC2ZpZWxkME5hbWU2Eh8KCmZpZWxkTmFtZTcYlwMgASgFUgpmaWVsZE5hbWU3Eh8KCkZpZWxkTmFtZTgYmAMgASgFUgpGaWVsZE5hbWU4EiAKC2ZpZWxkX05hbWU5GJkDIAEoBVIKZmllbGROYW1lORIiCgxGaWVsZF9OYW1lMTAYmgMgASgFUgtGaWVsZE5hbWUxMBIiCgxGSUVMRF9OQU1FMTEYmwMgASgFUgtGSUVMRE5BTUUxMRIiCgxGSUVMRF9uYW1lMTIYnAMgASgFUgtGSUVMRE5hbWUxMhIkCg5fX2ZpZWxkX25hbWUxMxidAyABKAVSC0ZpZWxkTmFtZTEzEiQKDl9fRmllbGRfbmFtZTE0GJ4DIAEoBVILRmllbGROYW1lMTQSIwoNZmllbGRfX25hbWUxNRifAyABKAVSC2ZpZWxkTmFtZTE1EiMKDWZpZWxkX19OYW1lMTYYoAMgASgFUgtmaWVsZE5hbWUxNhIkCg5maWVsZF9uYW1lMTdfXxihAyABKAVSC2ZpZWxkTmFtZTE3EiQKDkZpZWxkX25hbWUxOF9fGKIDIAEoBVILRmllbGROYW1lMTgacgoNTmVzdGVkTWVzc2FnZRIMCgFhGAEgASgFUgFhElMKC2NvcmVjdXJzaXZlGAIgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zUgtjb3JlY3Vyc2l2ZRpAChJNYXBJbnQzMkludDMyRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAVSBXZhbHVlOgI4ARpAChJNYXBJbnQ2NEludDY0RW50cnkSEAoDa2V5GAEgASgDUgNrZXkSFAoFdmFsdWUYAiABKANSBXZhbHVlOgI4ARpCChRNYXBVaW50MzJVaW50MzJFbnRyeRIQCgNrZXkYASABKA1SA2tleRIUCgV2YWx1ZRgCIAEoDVIFdmFsdWU6AjgBGkIKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EhAKA2tleRgBIAEoBFIDa2V5EhQKBXZhbHVlGAIgASgEUgV2YWx1ZToCOAEaQgoUTWFwU2ludDMyU2ludDMyRW50cnkSEAoDa2V5GAEgASgRUgNrZXkSFAoFdmFsdWUYAiABKBFSBXZhbHVlOgI4ARpCChRNYXBTaW50NjRTaW50NjRFbnRyeRIQCgNrZXkYASABKBJSA2tleRIUCgV2YWx1ZRgCIAEoElIFdmFsdWU6AjgBGkQKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAdSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoBlIDa2V5EhQKBXZhbHVlGAIgASgGUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoD1IDa2V5EhQKBXZhbHVlGAIgASgPUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoEFIDa2V5EhQKBXZhbHVlGAIgASgQUgV2YWx1ZToCOAEaQAoSTWFwSW50MzJGbG9hdEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEaQQoTTWFwSW50MzJEb3VibGVFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAVIFdmFsdWU6AjgBGj4KEE1hcEJvb2xCb29sRW50cnkSEAoDa2V5GAEgASgIUgNrZXkSFAoFdmFsdWUYAiABKAhSBXZhbHVlOgI4ARpCChRNYXBTdHJpbmdTdHJpbmdFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBGkEKE01hcFN0cmluZ0J5dGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARqKAQobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElUKBXZhbHVlGAIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VSBXZhbHVlOgI4ARp5ChxNYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkMKBXZhbHVlGAIgASgLMi0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbk1lc3NhZ2VSBXZhbHVlOgI4ARqEAQoYTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElIKBXZhbHVlGAIgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1SBXZhbHVlOgI4ARpzChlNYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkAKBXZhbHVlGAIgASgOMioucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbkVudW1SBXZhbHVlOgI4ASI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BIlkKC0FsaWFzZWRFbnVtEg0KCUFMSUFTX0ZPTxAAEg0KCUFMSUFTX0JBUhABEg0KCUFMSUFTX0JBWhACEgcKA1FVWBACEgcKA3F1eBACEgcKA2JBehACGgIQAUINCgtvbmVvZl9maWVsZEoGCPUDEP8DIh4KDkZvcmVpZ25NZXNzYWdlEgwKAWMYASABKAVSAWMqQAoLRm9yZWlnbkVudW0SDwoLRk9SRUlHTl9GT08QABIPCgtGT1JFSUdOX0JBUhABEg8KC0ZPUkVJR05fQkFaEAJCOAooY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvM0gB+AEBogIGUHJvdG8zStpvCgcSBSUAlAIBCsANCgEMEgMlABIytQ0gUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogVGVzdCBzY2hlbWEgZm9yIHByb3RvMyBtZXNzYWdlcy4gIFRoaXMgdGVzdCBzY2hlbWEgaXMgdXNlZCBieToKCiAtIGJlbmNobWFya3MKIC0gZnV6eiB0ZXN0cwogLSBjb25mb3JtYW5jZSB0ZXN0cwoKCggKAQISAycAJgoICgEIEgMpAEEKCQoCCAESAykAQQoICgEIEgMqACQKCQoCCCQSAyoAJAoICgEIEgMtABwKRAoCCAkSAy0AHBo5IFRoaXMgaXMgdGhlIGRlZmF1bHQsIGJ1dCB3ZSBzcGVjaWZ5IGl0IGhlcmUgZXhwbGljaXRseS4KCgkKAgMAEgMvACMKCQoCAwESAzAAKAoJCgIDAhIDMQAqCgkKAgMDEgMyACYKCQoCAwQSAzMAKQoJCgIDBRIDNAAoCggKAQgSAzYAHwoJCgIIHxIDNgAfCtsCCgIEABIFPwCKAgEazQIgVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCiBBbHNvLCBjcnVjaWFsbHksIGFsbCBtZXNzYWdlcyBhbmQgZW51bXMgaW4gdGhpcyBmaWxlIGFyZSBldmVudHVhbGx5CiBzdWJtZXNzYWdl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EisKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPUhBvcHRpb25hbFNmaXhlZDMyEisKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQUhBvcHRpb25hbFNmaXhlZDY0EiUKDm9wdGlvbmFsX2Zsb2F0GAsgASgCUg1vcHRpb25hbEZsb2F0EicKD29wdGlvbmFsX2RvdWJsZRgMIAEoAVIOb3B0aW9uYWxEb3VibGUSIwoNb3B0aW9uYWxfYm9vbBgNIAEoCFIMb3B0aW9uYWxCb29sEicKD29wdGlvbmFsX3N0cmluZxgOIAEoCVIOb3B0aW9uYWxTdHJpbmcSJQoOb3B0aW9uYWxfYnl0ZXMYDyABKAxSDW9wdGlvbmFsQnl0ZXMSdwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlEm0KGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUhZvcHRpb25hbEZvcmVpZ25NZXNzYWdlEm4KFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1SEm9wdGlvbmFsTmVzdGVkRW51bRJkChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMlITb3B0aW9uYWxGb3JlaWduRW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSXgoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzJSEHJlY3Vyc2l2ZU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSdwoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEm0KGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEm4KFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJkChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMlITcmVwZWF0ZWRGb3JlaWduRW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSJQoMcGFja2VkX2ludDMyGEsgAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GEwgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhNIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GE4gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhQIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhRIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYUiADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhTIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhUIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYViADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYVyADKAhCAhABUgpwYWNrZWRCb29sEm4KEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQAVIQcGFja2VkTmVzdGVkRW51bRIpCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhcIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhhdIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYXyADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhhIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYiADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGMgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZCADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGUgAygIQgIQAFIMdW5wYWNrZWRCb29sEnIKFHVucGFja2VkX25lc3RlZF9lbnVtGGYgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1CAhAAUhJ1bnBhY2tlZE5lc3RlZEVudW0SbAoPbWFwX2ludDMyX2ludDMyGDggAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJsCg9tYXBfaW50NjRfaW50NjQYOSADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50NjRJbnQ2NEVudHJ5Ug1tYXBJbnQ2NEludDY0EnIKEW1hcF91aW50MzJfdWludDMyGDogAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzIScgoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJyChFtYXBfc2ludDMyX3NpbnQzMhg8IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTaW50MzJTaW50MzJFbnRyeVIPbWFwU2ludDMyU2ludDMyEnIKEW1hcF9zaW50NjRfc2ludDY0GD0gAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSeAoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJ4ChNtYXBfZml4ZWQ2NF9maXhlZDY0GD8gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEZpeGVkNjRGaXhlZDY0RW50cnlSEW1hcEZpeGVkNjRGaXhlZDY0En4KFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhhAIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISfgoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GEEgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJsCg9tYXBfaW50MzJfZmxvYXQYQiADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJGbG9hdEVudHJ5Ug1tYXBJbnQzMkZsb2F0Em8KEG1hcF9pbnQzMl9kb3VibGUYQyADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSZgoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJyChFtYXBfc3RyaW5nX3N0cmluZxhFIAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdTdHJpbmdFbnRyeVIPbWFwU3RyaW5nU3RyaW5nEm8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nQnl0ZXNFbnRyeVIObWFwU3RyaW5nQnl0ZXMSiAEKGW1hcF9zdHJpbmdfbmVzdGVkX21lc3NhZ2UYRyADKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5UhZtYXBTdHJpbmdOZXN0ZWRNZXNzYWdlEosBChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5UhdtYXBTdHJpbmdGb3JlaWduTWVzc2FnZRJ/ChZtYXBfc3RyaW5nX25lc3RlZF9lbnVtGEkgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZEVudW1FbnRyeVITbWFwU3RyaW5nTmVzdGVkRW51bRKCAQoXbWFwX3N0cmluZ19mb3JlaWduX2VudW0YSiADKAsySy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeVIUbWFwU3RyaW5nRm9yZWlnbkVudW0SIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEnMKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzEh8KCm9uZW9mX2Jvb2wYcyABKAhIAFIJb25lb2ZCb29sEiMKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAUgtvbmVvZlVpbnQ2NBIhCgtvbmVvZl9mbG9hdBh1IAEoAkgAUgpvbmVvZkZsb2F0EiMKDG9uZW9mX2RvdWJsZRh2IAEoAUgAUgtvbmVvZkRvdWJsZRJdCgpvbmVvZl9lbnVtGHcgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1IAFIJb25lb2ZFbnVtEksKBGRhdGEYyQEgASgKMjYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLkRhdGFSBGRhdGESHwoKZmllbGRuYW1lMRiRAyABKAVSCmZpZWxkbmFtZTESIAoLZmllbGRfbmFtZTIYkgMgASgFUgpmaWVsZE5hbWUyEiEKDF9maWVsZF9uYW1lMxiTAyABKAVSCkZpZWxkTmFtZTMSIgoNZmllbGRfX25hbWU0XxiUAyABKAVSCmZpZWxkTmFtZTQSIQoLZmllbGQwbmFtZTUYlQMgASgFUgtmaWVsZDBuYW1lNRIjCg1maWVsZF8wX25hbWU2GJYDIAEoBVILZmllbGQwTmFtZTYSHwoKZmllbGROYW1lNxiXAyABKAVSCmZpZWxkTmFtZTcSHwoKRmllbGROYW1lOBiYAyABKAVSCkZpZWxkTmFtZTgSIAoLZmllbGRfTmFtZTkYmQMgASgFUgpmaWVsZE5hbWU5EiIKDEZpZWxkX05hbWUxMBiaAyABKAVSC0ZpZWxkTmFtZTEwEiIKDEZJRUxEX05BTUUxMRibAyABKAVSC0ZJRUxETkFNRTExEiIKDEZJRUxEX25hbWUxMhicAyABKAVSC0ZJRUxETmFtZTEyEiQKDl9fZmllbGRfbmFtZTEzGJ0DIAEoBVILRmllbGROYW1lMTMSJAoOX19GaWVsZF9uYW1lMTQYngMgASgFUgtGaWVsZE5hbWUxNBIjCg1maWVsZF9fbmFtZTE1GJ8DIAEoBVILZmllbGROYW1lMTUSIwoNZmllbGRfX05hbWUxNhigAyABKAVSC2ZpZWxkTmFtZTE2EiQKDmZpZWxkX25hbWUxN19fGKEDIAEoBVILZmllbGROYW1lMTcSJAoORmllbGRfbmFtZTE4X18YogMgASgFUgtGaWVsZE5hbWUxOBpyCg1OZXN0ZWRNZXNzYWdlEgwKAWEYASABKAVSAWESUwoLY29yZWN1cnNpdmUYAiABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzJSC2NvcmVjdXJzaXZlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGkIKFE1hcFN0cmluZ1N0cmluZ0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEaQQoTTWFwU3RyaW5nQnl0ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoDFIFdmFsdWU6AjgBGooBChtNYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSVQoFdmFsdWUYAiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIFdmFsdWU6AjgBGn8KHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSSQoFdmFsdWUYAiABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIFdmFsdWU6AjgBGoQBChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSUgoFdmFsdWUYAiABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bVIFdmFsdWU6AjgBGnkKGU1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSRgoFdmFsdWUYAiABKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMlIFdmFsdWU6AjgBGkwKBERhdGESIAoLZ3JvdXBfaW50MzIYygEgASgFUgpncm91cEludDMyEiIKDGdyb3VwX3VpbnQzMhjLASABKA1SC2dyb3VwVWludDMyGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEa+gEKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRIQCgNzdHIYGSABKAlSA3N0cjLIAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GPm7XiABKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xUhNtZXNzYWdlU2V0RXh0ZW5zaW9uGvcBChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjISDAoBaRgJIAEoBVIBaTLJAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GJCz/AEgASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMlITbWVzc2FnZVNldEV4dGVuc2lvbiI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BKgUIeBDJAUINCgtvbmVvZl9maWVsZEoGCOgHEJBOIiQKFEZvcmVpZ25NZXNzYWdlUHJvdG8yEgwKAWMYASABKAVSAWMingMKFVVua25vd25Ub1Rlc3RBbGxUeXBlcxImCg5vcHRpb25hbF9pbnQzMhjpByABKAVSDW9wdGlvbmFsSW50MzISKAoPb3B0aW9uYWxfc3RyaW5nGOoHIAEoCVIOb3B0aW9uYWxTdHJpbmcSWwoObmVzdGVkX21lc3NhZ2UY6wcgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSDW5lc3RlZE1lc3NhZ2USaQoNb3B0aW9uYWxncm91cBjsByABKAoyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Vbmtub3duVG9UZXN0QWxsVHlwZXMuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBIkCg1vcHRpb25hbF9ib29sGO4HIAEoCFIMb3B0aW9uYWxCb29sEiYKDnJlcGVhdGVkX2ludDMyGPMHIAMoBVINcmVwZWF0ZWRJbnQzMhodCg1PcHRpb25hbEdyb3VwEgwKAWEYASABKAVSAWEqRgoRRm9yZWlnbkVudW1Qcm90bzISDwoLRk9SRUlHTl9GT08QABIPCgtGT1JFSUdOX0JBUhABEg8KC0ZPUkVJR05fQkFaEAI6WgoPZXh0ZW5zaW9uX2ludDMyEjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yGHggASgFUg5leHRlbnNpb25JbnQzMkIvCihjb20uZ29vZ2xlLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8ySAH4AQFKnGwKBxIFJQCJAgEKug0KAQwSAyUAEjKZDSBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCiBUZXN0IHNjaGVtYSBmb3IgcHJvdG8yIG1lc3NhZ2VzLiAgVGhpcyB0ZXN0IHNjaGVtYSBpcyB1c2VkIGJ5OgoKIC0gY29uZm9ybWFuY2UgdGVzdHMKCjIUIExJTlQ6IEFMTE9XX0dST1VQUwoKCAoBAhIDJwAmCggKAQgSAykAQQoJCgII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MogBARIwChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEEgJUhBvcHRpb25hbFNmaXhlZDY0iAEBEioKDm9wdGlvbmFsX2Zsb2F0GAsgASgCSApSDW9wdGlvbmFsRmxvYXSIAQESLAoPb3B0aW9uYWxfZG91YmxlGAwgASgBSAtSDm9wdGlvbmFsRG91YmxliAEBEigKDW9wdGlvbmFsX2Jvb2wYDSABKAhIDFIMb3B0aW9uYWxCb29siAEBEiwKD29wdGlvbmFsX3N0cmluZxgOIAEoCUgNUg5vcHRpb25hbFN0cmluZ4gBARIqCg5vcHRpb25hbF9ieXRlcxgPIAEoDEgOUg1vcHRpb25hbEJ5dGVziAEBEiwKDW9wdGlvbmFsX2NvcmQYECABKAlCAggBSA9SDG9wdGlvbmFsQ29yZIgBARJwChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRNZXNzYWdlSBBSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZYgBARJsChNsYXp5X25lc3RlZF9tZXNzYWdlGBMgASgLMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFByb3RvM09wdGlvbmFsLk5lc3RlZE1lc3NhZ2VCAigBSBFSEWxhenlOZXN0ZWRNZXNzYWdliAEBEmcKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMjAucHJvdG9idWZfdW5pdHRlc3QuVGVzdFByb3RvM09wdGlvbmFsLk5lc3RlZEVudW1IElISb3B0aW9uYWxOZXN0ZWRFbnVtiAEBEiUKDnNpbmd1bGFyX2ludDMyGBYgASgFUg1zaW5ndWxhckludDMyEiUKDnNpbmd1bGFyX2ludDY0GBcgASgDUg1zaW5ndWxhckludDY0GisKDU5lc3RlZE1lc3NhZ2USEwoCYmIYASABKAVIAFICYmKIAQFCBQoDX2JiIkoKCk5lc3RlZEVudW0SDwoLVU5TUEVDSUZJRUQQABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUIRCg9fb3B0aW9uYWxfaW50MzJCEQoPX29wdGlvbmFsX2ludDY0QhIKEF9vcHRpb25hbF91aW50MzJCEgoQX29wdGlvbmFsX3VpbnQ2NEISChBfb3B0aW9uYWxfc2ludDMyQhIKEF9vcHRpb25hbF9zaW50NjRCEwoRX29wdGlvbmFsX2ZpeGVkMzJCEwoRX29wdGlvbmFsX2ZpeGVkNjRCFAoSX29wdGlvbmFsX3NmaXhlZDMyQhQKEl9vcHRpb25hbF9zZml4ZWQ2NEIRCg9fb3B0aW9uYWxfZmxvYXRCEgoQX29wdGlvbmFsX2RvdWJsZUIQCg5fb3B0aW9uYWxfYm9vbEISChBfb3B0aW9uYWxfc3RyaW5nQhEKD19vcHRpb25hbF9ieXRlc0IQCg5fb3B0aW9uYWxfY29yZEIaChhfb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2VCFgoUX2xhenlfbmVzdGVkX21lc3NhZ2VCFwoVX29wdGlvbmFsX25lc3RlZF9lbnVtQiUKIWNvbS5nb29nbGUucHJvdG9idWYudGVzdGluZy5wcm90b1ABSpUeCgYSBB4ATgEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK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