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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Gj4gUHJldmlvdXNseSwgbWVzc2FnZSBjYW5ub3QgY29udGFpbiBtYXAgZmllbGQgY2FsbGVkICJlbnRyeSIuCgoKCgMEBgESA3EIJwoLCgQEBgIAEgNyAh4KDAoFBAYCAAYSA3ICEwoMCgUEBgIAARIDchQZCgwKBQQGAgADEgNyHB1iBnByb3RvMwrdLQoVdW5pdHRlc3RfaXNzdWVzLnByb3RvEg91bml0dGVzdF9pc3N1ZXMiJwoISXNzdWUzMDcaGwoKTmVzdGVkT25jZRoNCgtOZXN0ZWRUd2ljZSLNAQoTTmVnYXRpdmVFbnVtTWVzc2FnZRIzCgV2YWx1ZRgBIAEoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1SBXZhbHVlEjkKBnZhbHVlcxgCIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhAAUgZ2YWx1ZXMSRgoNcGFja2VkX3ZhbHVlcxgDIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhABUgxwYWNrZWRWYWx1ZXMiEQoPRGVwcmVjYXRlZENoaWxkIosDChdEZXByZWNhdGVkRmllbGRzTWVzc2FnZRIqCg5QcmltaXRpdmVWYWx1ZRgBIAEoBUICGAFSDlByaW1pdGl2ZVZhbHVlEioKDlByaW1pdGl2ZUFycmF5GAIgAygFQgIYAVIOUHJpbWl0aXZlQXJyYXkSSAoMTWVzc2FnZVZhbHVlGAMgASgLMiAudW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRDaGlsZEICGAFSDE1lc3NhZ2VWYWx1ZRJICgxNZXNzYWdlQXJyYXkYBCADKAsyIC51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZENoaWxkQgIYAVIMTWVzc2FnZUFycmF5EkEKCUVudW1WYWx1ZRgFIAEoDjIfLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkRW51bUICGAFSCUVudW1WYWx1ZRJBCglFbnVtQXJyYXkYBiADKA4yHy51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZEVudW1CAhgBUglFbnVtQXJyYXkiHwoJSXRlbUZpZWxkEhIKBGl0ZW0YASABKAVSBGl0ZW0iVwoNUmVzZXJ2ZWROYW1lcxIUCgV0eXBlcxgBIAEoBVIFdHlwZXMSHgoKZGVzY3JpcHRvchgCIAEoBVIKZGVzY3JpcHRvchoQCg5Tb21lTmVzdGVkVHlwZSLfAQoVVGVzdEpzb25GaWVsZE9yZGVyaW5nEh8KC3BsYWluX2ludDMyGAQgASgFUgpwbGFpbkludDMyEh0KCW8xX3N0cmluZxgCIAEoCUgAUghvMVN0cmluZxIbCghvMV9pbnQzMhgFIAEoBUgAUgdvMUludDMyEiEKDHBsYWluX3N0cmluZxgBIAEoCVILcGxhaW5TdHJpbmcSGwoIbzJfaW50MzIYBiABKAVIAVIHbzJJbnQzMhIdCglvMl9zdHJpbmcYAyABKAlIAVIIbzJTdHJpbmdCBAoCbzFCBAoCbzIiUQoMVGVzdEpzb25OYW1lEhIKBG5hbWUYASABKAlSBG5hbWUSGQoLZGVzY3JpcHRpb24YAiABKAlSBGRlc2MSEgoEZ3VpZBgDIAEoCVIEZXhpZCKTAQoMT25lb2ZNZXJnaW5nEhQKBHRleHQYASABKAlIAFIEdGV4dBI+CgZuZXN0ZWQYAiABKAsyJC51bml0dGVzdF9pc3N1ZXMuT25lb2ZNZXJnaW5nLk5lc3RlZEgAUgZuZXN0ZWQaJAoGTmVzdGVkEgwKAXgYASABKAVSAXgSDAoBeRgCIAEoBVIBeUIHCgV2YWx1ZSpVCgxOZWdhdGl2ZUVudW0SFgoSTkVHQVRJVkVfRU5VTV9aRVJPEAASFgoJRml2ZUJlbG93EPv//////////wESFQoITWludXNPbmUQ////////////ASouCg5EZXByZWNhdGVkRW51bRITCg9ERVBSRUNBVEVEX1pFUk8QABIHCgNvbmUQAUIdqgIaVW5pdFRlc3QuSXNzdWVzLlRlc3RQcm90b3NKpSIKBxIFAACLAQEKCAoBDBIDAAASCggKAQgSAwYANwqOAgoCCCUSAwYANxplIElzc3VlOiBOb24tIkdvb2dsZS5Qcm90b2J1ZmZlcnMiIG5hbWVzcGFjZSB3aWxsIGVuc3VyZSB0aGF0IHByb3RvYnVmZmVyIGxpYnJhcnkgdHlwZXMgYXJlIHF1YWxpZmllZAoymwEgVGhlc2UgcHJvdG8gZGVzY3JpcHRvcnMgaGF2ZSBhdCBvbmUgdGltZSBiZWVuIHJlcG9ydGVkIGFzIGFuIGlzc3VlIG9yIGRlZmVjdC4KIFRoZXkgYXJlIGtlcHQgaGVyZSB0byByZXBsaWNhdGUgdGhlIGlzc3VlLCBhbmQgY29udGludWUgdG8gdmVyaWZ5IHRoZSBmaXguCgoICgECEgMIABgKdgoCBAASBAwAEQEaaiBJc3N1ZSAzMDc6IHdoZW4gZ2VuZXJhdGluZyBkb3VibHktbmVzdGVkIHR5cGVzLCBhbnkgcmVmZXJlbmNlcwogc2hvdWxkIGJlIG9mIHRoZSBmb3JtIEEuVHlwZXMuQi5UeXBlcy5DLgoKCgoDBAABEgMMCBAKDAoEBAADABIEDQIQAwoMCgUEAAMAARIDDQoUCg4KBgQAAwADABIEDgQPBQoOCgcEAAMAAwABEgMODBcKrAQKAgUAEgQrAC8BMpgBIE9sZCBpc3N1ZSAxMzogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3Byb3RvYnVmLWNzaGFycC1wb3J0L2lzc3Vlcy9kZXRhaWw/aWQ9MTMKIE5ldyBpc3N1ZSAzMDk6IGh0dHBzOi8vZ2l0aHViLmNvbS9wcm90b2NvbGJ1ZmZlcnMvcHJvdG9idWYvaXNzdWVzLzMwOQoyKyBtZXNzYWdlIEEgewogICAgb3B0aW9uYWwgaW50MzIgX0EgPSAxOwogfQoyKyBtZXNzYWdlIEIgewogICAgb3B0aW9uYWwgaW50MzIgQl8gPSAxOwogfQoyK21lc3NhZ2UgQUIgewogICAgb3B0aW9uYWwgaW50MzIgYV9iID0gMTsKfQoy2gEgU2ltaWxhciBpc3N1ZSB3aXRoIG51bWVyaWMgbmFtZXMKIEphdmEgY29kZSBmYWlsZWQgdG9vLCBzbyBwcm9iYWJseSBiZXN0IGZvciB0aGlzIHRvIGJlIGEgcmVzdHJpY3Rpb24uCiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3Byb3RvY29sYnVmZmVycy9wcm90b2J1Zi9pc3N1ZXMvMzA4CiBtZXNzYWdlIE51bWJlckZpZWxkIHsKICAgIG9wdGlvbmFsIGludDMyIF8wMSA9IDE7CiB9CjIhIGlzc3VlIDE5IC0gbmVnYXRpdmUgZW51bSB2YWx1ZXMKCgoKAwUAARIDKwURCgsKBAUAAgASAywEGwoMCgUFAAIAARIDLAQW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BVIOd2Vha0RlcGVuZGVuY3kSQwoMbWVzc2FnZV90eXBlGAQgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1ILbWVzc2FnZVR5cGUSQQoJZW51bV90eXBlGAUgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlEkEKB3NlcnZpY2UYBiADKAsyJy5nb29nbGUucHJvdG9idWYuU2VydmljZURlc2NyaXB0b3JQcm90b1IHc2VydmljZRJDCglleHRlbnNpb24YByADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhI2CgdvcHRpb25zGAggASgLMhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zUgdvcHRpb25zEkkKEHNvdXJjZV9jb2RlX2luZm8YCSABKAsyHy5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm9SDnNvdXJjZUNvZGVJbmZvEhYKBnN5bnRheBgMIAEoCVIGc3ludGF4IrkGCg9EZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI7CgVmaWVsZBgCIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IFZmllbGQSQwoJZXh0ZW5zaW9uGAYgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUglleHRlbnNpb24SQQoLbmVzdGVkX3R5cGUYAyADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvUgpuZXN0ZWRUeXBlEkEKCWVudW1fdHlwZRgEIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvUghlbnVtVHlwZRJYCg9leHRlbnNpb25fcmFuZ2UYBSADKAsyLy5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLkV4dGVuc2lvblJhbmdlUg5leHRlbnNpb25SYW5nZRJECgpvbmVvZl9kZWNsGAggAygLMiUuZ29vZ2xlLnByb3RvYnVmLk9uZW9mRGVzY3JpcHRvclByb3RvUglvbmVvZkRlY2wSOQoHb3B0aW9ucxgHIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9uc1IHb3B0aW9ucxJVCg5yZXNlcnZlZF9yYW5nZRgJIAMoCzIuLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uUmVzZXJ2ZWRSYW5nZVINcmVzZXJ2ZWRSYW5nZRIjCg1yZXNlcnZlZF9uYW1lGAogAygJUgxyZXNlcnZlZE5hbWUaegoORXh0ZW5zaW9uUmFuZ2USFAoFc3RhcnQYASABKAVSBXN0YXJ0EhAKA2VuZBgCIAEoBVIDZW5kEkAKB29wdGlvbnMYAyABKAsyJi5nb29nbGUucHJvdG9idWYuRXh0ZW5zaW9uUmFuZ2VPcHRpb25zUgdvcHRpb25zGjcKDVJlc2VydmVkUmFuZ2USFAoFc3RhcnQYASABKAVSBXN0YXJ0EhAKA2VuZBgCIAEoBVIDZW5kInwKFUV4dGVuc2lvblJhbmdlT3B0aW9ucxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIsEGChRGaWVsZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgDIAEoBVIGbnVtYmVyEkEKBWxhYmVsGAQgASgOMisuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLkxhYmVsUgVsYWJlbBI+CgR0eXBlGAUgASgOMiouZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGVSBHR5cGUSGwoJdHlwZV9uYW1lGAYgASgJUgh0eXBlTmFtZRIaCghleHRlbmRlZRgCIAEoCVIIZXh0ZW5kZWUSIwoNZGVmYXVsdF92YWx1ZRgHIAEoCVIMZGVmYXVsdFZhbHVlEh8KC29uZW9mX2luZGV4GAkgASgFUgpvbmVvZkluZGV4EhsKCWpzb25fbmFtZRgKIAEoCVIIanNvbk5hbWUSNwoHb3B0aW9ucxgIIAEoCzIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnNSB29wdGlvbnMSJwoPcHJvdG8zX29wdGlvbmFsGBEgASgIUg5wcm90bzNPcHRpb25hbCK2AgoEVHlwZRIPCgtUWVBFX0RPVUJMRRABEg4KClRZUEVfRkxPQVQQAhIOCgpUWVBFX0lOVDY0EAMSDwoLVFlQRV9VSU5UNjQQBBIOCgpUWVBFX0lOVDMyEAUSEAoMVFlQRV9GSVhFRDY0EAYSEAoMVFlQRV9GSVhFRDMyEAcSDQoJVFlQRV9CT09MEAgSDwoLVFlQRV9TVFJJTkcQCRIOCgpUWVBFX0dST1VQEAoSEAoMVFlQRV9NRVNTQUdFEAsSDgoKVFlQRV9CWVRFUxAMEg8KC1RZUEVfVUlOVDMyEA0SDQoJVFlQRV9FTlVNEA4SEQoNVFlQRV9TRklYRUQzMhAPEhEKDVRZUEVfU0ZJWEVENjQQEBIPCgtUWVBFX1NJTlQzMhAREg8KC1RZUEVfU0lOVDY0EBIiQwoFTGFiZWwSEgoOTEFCRUxfT1BUSU9OQUwQARISCg5MQUJFTF9SRVFVSVJFRBACEhIKDkxBQkVMX1JFUEVBVEVEEAMiYwoUT25lb2ZEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI3CgdvcHRpb25zGAIgASgLMh0uZ29vZ2xlLnByb3RvYnVmLk9uZW9mT3B0aW9uc1IHb3B0aW9ucyLjAgoTRW51bURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj8KBXZhbHVlGAIgAygLMikuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZURlc2NyaXB0b3JQcm90b1IFdmFsdWUSNgoHb3B0aW9ucxgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9uc1IHb3B0aW9ucxJdCg5yZXNlcnZlZF9yYW5nZRgEIAMoCzI2Lmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvLkVudW1SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYBSADKAlSDHJlc2VydmVkTmFtZRo7ChFFbnVtUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQigwEKGEVudW1WYWx1ZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgCIAEoBVIGbnVtYmVyEjsKB29wdGlvbnMYAyABKAsyIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9uc1IHb3B0aW9ucyKnAQoWU2VydmljZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj4KBm1ldGhvZBgCIAMoCzImLmdvb2dsZS5wcm90b2J1Zi5NZXRob2REZXNjcmlwdG9yUHJvdG9SBm1ldGhvZBI5CgdvcHRpb25zGAMgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zUgdvcHRpb25zIokCChVNZXRob2REZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIdCgppbnB1dF90eXBlGAIgASgJUglpbnB1dFR5cGUSHwoLb3V0cHV0X3R5cGUYAyABKAlSCm91dHB1dFR5cGUSOAoHb3B0aW9ucxgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zUgdvcHRpb25zEjAKEGNsaWVudF9zdHJlYW1pbmcYBSABKAg6BWZhbHNlUg9jbGllbnRTdHJlYW1pbmcSMAoQc2VydmVyX3N0cmVhbWluZxgGIAEoCDoFZmFsc2VSD3NlcnZlclN0cmVhbWluZyKRCQoLRmlsZU9wdGlvbnMSIQoMamF2YV9wYWNrYWdlGAEgASgJUgtqYXZhUGFja2FnZRIwChRqYXZhX291dGVyX2NsYXNzbmFtZRgIIAEoCVISamF2YU91dGVyQ2xhc3NuYW1lEjUKE2phdmFfbXVsdGlwbGVfZmlsZXMYCiABKAg6BWZhbHNlUhFqYXZhTXVsdGlwbGVGaWxlcxJECh1qYXZhX2dlbmVyYXRlX2VxdWFsc19hbmRfaGFzaBgUIAEoCEICGAFSGWphdmFHZW5lcmF0ZUVxdWFsc0FuZEhhc2gSOgoWamF2YV9zdHJpbmdfY2hlY2tfdXRmOBgbIAEoCDoFZmFsc2VSE2phdmFTdHJpbmdDaGVja1V0ZjgSUwoMb3B0aW1pemVfZm9yGAkgASgOMikuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zLk9wdGltaXplTW9kZToFU1BFRURSC29wdGltaXplRm9yEh0KCmdvX3BhY2thZ2UYCyABKAlSCWdvUGFja2FnZRI1ChNjY19nZW5lcmljX3NlcnZpY2VzGBAgASgIOgVmYWxzZVIRY2NHZW5lcmljU2VydmljZXMSOQoVamF2YV9nZW5lcmljX3NlcnZpY2VzGBEgASgIOgVmYWxzZVITamF2YUdlbmVyaWNTZXJ2aWNlcxI1ChNweV9nZW5lcmljX3NlcnZpY2VzGBIgASgIOgVmYWxzZVIRcHlHZW5lcmljU2VydmljZXMSNwoUcGhwX2dlbmVyaWNfc2VydmljZXMYKiABKAg6BWZhbHNlUhJwaHBHZW5lcmljU2VydmljZXMSJQoKZGVwcmVjYXRlZBgXIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSLgoQY2NfZW5hYmxlX2FyZW5hcxgfIAEoCDoEdHJ1ZVIOY2NFbmFibGVBcmVuYXMSKgoRb2JqY19jbGFzc19wcmVmaXgYJCABKAlSD29iamNDbGFzc1ByZWZpeBIpChBjc2hhcnBfbmFtZXNwYWNlGCUgASgJUg9jc2hhcnBOYW1lc3BhY2USIQoMc3dpZnRfcHJlZml4GCcgASgJUgtzd2lmdFByZWZpeBIoChBwaHBfY2xhc3NfcHJlZml4GCggASgJUg5waHBDbGFzc1ByZWZpeBIjCg1waHBfbmFtZXNwYWNlGCkgASgJUgxwaHBOYW1lc3BhY2USNAoWcGhwX21ldGFkYXRhX25hbWVzcGFjZRgsIAEoCVIUcGhwTWV0YWRhdGFOYW1lc3BhY2USIQoMcnVieV9wYWNrYWdlGC0gASgJUgtydWJ5UGFja2FnZRJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiI6CgxPcHRpbWl6ZU1vZGUSCQoFU1BFRUQQARINCglDT0RFX1NJWkUQAhIQCgxMSVRFX1JVTlRJTUUQAyoJCOgHEICAgIACSgQIJhAnItECCg5NZXNzYWdlT3B0aW9ucxI8ChdtZXNzYWdlX3NldF93aXJlX2Zvcm1hdBgBIAEoCDoFZmFsc2VSFG1lc3NhZ2VTZXRXaXJlRm9ybWF0EkwKH25vX3N0YW5kYXJkX2Rlc2NyaXB0b3JfYWNjZXNzb3IYAiABKAg6BWZhbHNlUhxub1N0YW5kYXJkRGVzY3JpcHRvckFjY2Vzc29yEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhsKCW1hcF9lbnRyeRgHIAEoCFIIbWFwRW50cnkSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAgQCUoECAkQCiLiAwoMRmllbGRPcHRpb25zEkEKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HUgVjdHlwZRIWCgZwYWNrZWQYAiABKAhSBnBhY2tlZBJHCgZqc3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFMUgZqc3R5cGUSGQoEbGF6eRgFIAEoCDoFZmFsc2VSBGxhenkSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGQoEd2VhaxgKIAEoCDoFZmFsc2VSBHdlYWsSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iLwoFQ1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVDRRACIjUKBkpTVHlwZRINCglKU19OT1JNQUwQABINCglKU19TVFJJTkcQARINCglKU19OVU1CRVIQAioJCOgHEICAgIACSgQIBBAFInMKDE9uZW9mT3B0aW9ucxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIsABCgtFbnVtT3B0aW9ucxIfCgthbGxvd19hbGlhcxgCIAEoCFIKYWxsb3dBbGlhcxIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBRAGIp4BChBFbnVtVmFsdWVPcHRpb25zEiUKCmRlcHJlY2F0ZWQYASABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIinAEKDlNlcnZpY2VPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi4AIKDU1ldGhvZE9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQScQoRaWRlbXBvdGVuY3lfbGV2ZWwYIiABKA4yLy5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucy5JZGVtcG90ZW5jeUxldmVsOhNJREVNUE9URU5DWV9VTktOT1dOUhBpZGVtcG90ZW5jeUxldmVsElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIlAKEElkZW1wb3RlbmN5TGV2ZWwSFwoTSURFTVBPVEVOQ1lfVU5LTk9XThAAEhMKD05PX1NJREVfRUZGRUNUUxABEg4KCklERU1QT1RFTlQQAioJCOgHEICAgIACIpoDChNVbmludGVycHJldGVkT3B0aW9uEkEKBG5hbWUYAiADKAsyLS5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbi5OYW1lUGFydFIEbmFtZRIpChBpZGVudGlmaWVyX3ZhbHVlGAMgASgJUg9pZGVudGlmaWVyVmFsdWUSLAoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEUhBwb3NpdGl2ZUludFZhbHVlEiwKEm5lZ2F0aXZlX2ludF92YWx1ZRgFIAEoA1IQbmVnYXRpdmVJbnRWYWx1ZRIhCgxkb3VibGVfdmFsdWUYBiABKAFSC2RvdWJsZVZhbHVlEiEKDHN0cmluZ192YWx1ZRgHIAEoDFILc3RyaW5nVmFsdWUSJwoPYWdncmVnYXRlX3ZhbHVlGAggASgJUg5hZ2dyZWdhdGVWYWx1ZRpKCghOYW1lUGFydBIbCgluYW1lX3BhcnQYASACKAlSCG5hbWVQYXJ0EiEKDGlzX2V4dGVuc2lvbhgCIAIoCFILaXNFeHRlbnNpb24ipwIKDlNvdXJjZUNvZGVJbmZvEkQKCGxvY2F0aW9uGAEgAygLMiguZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvLkxvY2F0aW9uUghsb2NhdGlvbhrOAQoITG9jYXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSFgoEc3BhbhgCIAMoBUICEAFSBHNwYW4SKQoQbGVhZGluZ19jb21tZW50cxgDIAEoCVIPbGVhZGluZ0NvbW1lbnRzEisKEXRyYWlsaW5nX2NvbW1lbnRzGAQgASgJUhB0cmFpbGluZ0NvbW1lbnRzEjoKGWxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMYBiADKAlSF2xlYWRpbmdEZXRhY2hlZENvbW1lbnRzItEBChFHZW5lcmF0ZWRDb2RlSW5mbxJNCgphbm5vdGF0aW9uGAEgAygLMi0uZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb25SCmFubm90YXRpb24abQoKQW5ub3RhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIfCgtzb3VyY2VfZmlsZRgCIAEoCVIKc291cmNlRmlsZRIUCgViZWdpbhgDIAEoBVIFYmVnaW4SEAoDZW5kGAQgASgFUgNlbmRCjwEKE2NvbS5nb29nbGUucHJvdG9idWZCEERlc2NyaXB0b3JQcm90b3NIAVo+Z2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHJvdG9jLWdlbi1nby9kZXNjcmlwdG9yO2Rlc2NyaXB0b3L4AQGiAgNHUEKqAhpHb29nbGUuUHJvdG9idWYuUmVmbGVjdGlvbkq8yAIKBxIFJwCMBwEKqg8KAQwSAycAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtsCIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIFRoZSBtZXNzYWdlcyBpbiB0aGlzIGZpbGUgZGVzY3JpYmUgdGhlIGRlZmluaXRpb25zIGZvdW5kIGluIC5wcm90byBmaWxlcy4KIEEgdmFsaWQgLnByb3RvIGZpbGUgY2FuIGJlIHRyYW5zbGF0ZWQgZGlyZWN0bHkgdG8gYSBGaWxlRGVzY3JpcHRvclByb3RvCiB3aXRob3V0IGFueSBvdGhlciBpbmZvcm1hdGlvbiAoZS5nLiB3aXRob3V0IHJlYWRpbmcgaXRzIGltcG9ydHMpLgoKCAoBAhIDKQAYCggKAQgSAysAVQoJCgIICxIDKwBVCggKAQgSAywALAoJCgIIARIDLAAsCggKAQgSAy0AMQoJCgIICBIDLQAxCggKAQgSAy4ANwoJCgIIJRIDLgA3CggKAQgSAy8AIQoJCgIIJBIDLwAhCggKAQgSAzAAHwoJCgIIHxIDMAAfCggKAQgSAzQAHAp/CgIICRIDNAAcGnQgZGVzY3JpcHRvci5wcm90byBtdXN0IGJlIG9wdGltaXplZCBmb3Igc3BlZWQgYmVjYXVzZSByZWZsZWN0aW9uLWJhc2VkCiBhbGdvcml0aG1zIGRvbid0IHdvcmsgZHVyaW5nIGJvb3RzdHJhcHBpbmcuCgpqCgIEABIEOAA6ARpeIFRoZSBwcm90b2NvbCBjb21waWxlciBjYW4gb3V0cHV0IGEgRmlsZURlc2NyaXB0b3JTZXQgY29udGFpbmluZyB0aGUgLnByb3RvCiBmaWxlcyBpdCBwYXJzZXMuCgoKCgMEAAESAzgIGQoLCgQEAAIAEgM5AigKDAoFBAACAAQSAzkCCgoMCgUEAAIABhIDOQseCgwKBQQAAgABEgM5HyMKDAoFBAACAAMSAzkmJwovCgIEARIEPQBaARojIERlc2NyaWJlcyBhIGNvbXBsZXRlIC5wcm90byBmaWxlLgoKCgoDBAEBEgM9CBsKOQoEBAECABIDPgIbIiwgZmlsZSBuYW1lLCByZWxhdGl2ZSB0byByb290IG9mIHNvdXJjZSB0cmVlCgoMCgUEAQIABBIDPgIKCgwKBQQBAgAFEgM+CxEKDAoFBAECAAESAz4SFgoMCgUEAQIAAxIDPhkaCioKBAQBAgESAz8CHiIdIGUuZy4gImZvbyIsICJmb28uYmFyIiwgZXRjLgoKDAoFBAECAQQSAz8CCgoMCgUEAQIBBRIDPwsRCgwKBQQBAgEBEgM/EhkKDAoFBAECAQMSAz8cHQo0CgQEAQICEgNCAiEaJyBOYW1lcyBvZiBmaWxlcyBpbXBvcnRlZCBieSB0aGlzIGZpbGUuCgoMCgUEAQICBBIDQgIKCgwKBQQBAgIFEgNCCxEKDAoFBAECAgESA0ISHAoMCgUEAQICAxIDQh8gClEKBAQBAgMSA0QCKBpEIEluZGV4ZXMgb2YgdGhlIHB1YmxpYyBpbXBvcnRlZCBmaWxlcyBpbiB0aGUgZGVwZW5kZW5jeSBsaXN0IGFib3ZlLgoKDAoFBAECAwQSA0QCCgoMCgUEAQIDBRIDRAsQCgwKBQQBAgMBEgNEESIKDAoFBAECAwMSA0QlJwp6CgQEAQIEEgNHAiYabSBJbmRleGVzIG9mIHRoZSB3ZWFrIGltcG9ydGVkIGZpbGVzIGluIHRoZSBkZXBlbmRlbmN5IGxpc3QuCiBGb3IgR29vZ2xlLWludGVybmFsIG1pZ3JhdGlvbiBvbmx5LiBEbyBub3QgdXNlLgoKDAoFBAECBAQSA0cCCgoMCgUEAQIEBRIDRwsQCgwKBQQBAgQBEgNHESAKDAoFBAECBAMSA0cjJQo2CgQEAQIFEgNKAiwaKSBBbGwgdG9wLWxldmVsIGRlZmluaXRpb25zIGluIHRoaXMgZmlsZS4KCgwKBQQBAgUEEgNKAgoKDAoFBAECBQYSA0oLGgoMCgUEAQIFARIDShsnCgwKBQQBAgUDEgNKKisKCwoEBAECBhIDSwItCgwKBQQBAgYEEgNLAgoKDAoFBAECBgYSA0sLHgoMCgUEAQIGARIDSx8oCgwKBQQBAgYDEgNLKywKCwoEBAECBxIDTAIuCgwKBQQBAgcEEgNMAgoKDAoFBAECBwYSA0wLIQoMCgUEAQIHARIDTCIpCgwKBQQBAgcDEgNMLC0KCwoEBAECCBIDTQIuCgwKBQQBAggEEgNNAgoKDAoFBAECCAYSA00LHwoMCgUEAQIIARIDTSApCgwKBQQBAggDEgNNLC0KCwoEBAECCRIDTwIjCgwKBQQBAgkEEgNPAgoKDAoFBAECCQYSA08LFgoMCgUEAQIJARIDTxceCgwKBQQBAgkDEgNPISIK9AEKBAQBAgoSA1UCLxrmASBUaGlzIGZpZWxkIGNvbnRhaW5zIG9wdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcmlnaW5hbCBzb3VyY2UgY29kZS4KIFlvdSBtYXkgc2FmZWx5IHJlbW92ZSB0aGlzIGVudGlyZSBmaWVsZCB3aXRob3V0IGhhcm1pbmcgcnVudGltZQogZnVuY3Rpb25hbGl0eSBvZiB0aGUgZGVzY3JpcHRvcnMgLS0gdGhlIGluZm9ybWF0aW9uIGlzIG5lZWRlZCBvbmx5IGJ5CiBkZXZlbG9wbWVudCB0b29scy4KCgwKBQQBAgoEEgNVAgoKDAoFBAECCgYSA1ULGQoMCgUEAQIKARIDVRoqCgwKBQQBAgoDEgNVLS4KXQoEBAECCxIDWQIeGlAgVGhlIHN5bnRheCBvZiB0aGUgcHJvdG8gZmlsZS4KIFRoZSBzdXBwb3J0ZWQgdmFsdWVzIGFyZSAicHJvdG8yIiBhbmQgInByb3RvMyIuCgoMCgUEAQILBBIDWQIKCgwKBQQBAgsFEgNZCxEKDAoFBAECCwESA1kSGAoMCgUEAQILAxIDWRsdCicKAgQCEgRdAH0BGhsgRGVzY3JpYmVzIGEgbWVzc2FnZSB0eXBlLgoKCgoDBAIBEgNdCBcKCwoEBAICABIDXgIbCgwKBQQCAgAEEgNeAgoKDAoFBAICAAUSA14LEQoMCgUEAgIAARIDXhIWCgwKBQQCAgADEgNeGRoKCwoEBAICARIDYAIqCgwKBQQCAgEEEgNgAgoKDAoFBAICAQYSA2ALHwoMCgUEAgIBARIDYCAlCgwKBQQCAgEDEgNgKCkKCwoEBAICAhIDYQIuCgwKBQQCAgIEEgNhAgoKDAoFBAICAgYSA2ELHwoMCgUEAgICARIDYSApCgwKBQQCAgIDEgNhLC0KCwoEBAICAxIDYwIrCgwKBQQCAgMEEgNjAgoKDAoFBAICAwYSA2MLGgoMCgUEAgIDARIDYxsmCgwKBQQCAgMDEgNjKSoKCwoEBAICBBIDZAItCgwKBQQCAgQEEgNkAgoKDAoFBAICBAYSA2QLHgoMCgUEAgIEARIDZB8oCgwKBQQCAgQDEgNkKywKDAoEBAIDABIEZgJrAwoMCgUEAgMAARIDZgoYChsKBgQCAwACABIDZwQdIgwgSW5jbHVzaXZlLgoKDgoHBAIDAAIABBIDZwQMCg4KBwQCAwACAAUSA2cNEgoOCgcEAgMAAgABEgNnExgKDgoHBAIDAAIAAxIDZxscChsKBgQCAwACARIDaAQbIgwgRXhjbHVzaXZlLgoKDgoHBAIDAAIBBBIDaAQMCg4KBwQCAwACAQUSA2gNEgoOCgcEAgMAAgEBEgNoExYKDgoHBAIDAAIBAxIDaBkaCg0KBgQCAwACAhIDagQvCg4KBwQCAwACAgQSA2oEDAoOCgcEAgMAAgIGEgNqDSIKDgoHBAIDAAICARIDaiMqCg4KBwQCAwACAgMSA2otLgoLCgQEAgIFEgNsAi4KDAoFBAICBQQSA2wCCgoMCgUEAgIFBhIDbAsZCgwKBQQCAgUBEgNsGikKDAoFBAICBQMSA2wsLQoLCgQEAgIGEgNuAi8KDAoFBAICBgQSA24CCgoMCgUEAgIGBhIDbgsfCgwKBQQCAgYBEgNuICoKDAoFBAICBgMSA24tLgoLCgQEAgIHEgNwAiYKDAoFBAICBwQSA3ACCgoMCgUEAgIHBhIDcAsZCgwKBQQCAgcBEgNwGiEKDAoFBAICBwMSA3AkJQqqAQoEBAIDARIEdQJ4AxqbASBSYW5nZSBvZiByZXNlcnZlZCB0YWcgbnVtYmVycy4gUmVzZXJ2ZWQgdGFnIG51bWJlcnMgbWF5IG5vdCBiZSB1c2VkIGJ5CiBmaWVsZHMgb3IgZXh0ZW5zaW9uIHJhbmdlcyBpbiB0aGUgc2FtZSBtZXNzYWdlLiBSZXNlcnZlZCByYW5nZXMgbWF5CiBub3Qgb3ZlcmxhcC4KCgwKBQQCAwEBEgN1ChcKGwoGBAIDAQIAEgN2BB0iDCBJbmNsdXNpdmUuCgoOCgcEAgMBAgAEEgN2BAwKDgoHBAIDAQIABRIDdg0SCg4KBwQCAwECAAESA3YTGAoOCgcEAgMBAgADEgN2GxwKGwoGBAIDAQIBEgN3BBsiDCBFeGNsdXNpdmUuCgoOCgcEAgMBAgEEEgN3BAwKDgoHBAIDAQIBBRIDdw0SCg4KBwQCAwECAQESA3cTFgoOCgcEAgMBAgEDEgN3GRoKCwoEBAICCBIDeQIsCgwKBQQCAggEEgN5AgoKDAoFBAICCAYSA3kLGAoMCgUEAgIIARIDeRknCgwKBQQCAggDEgN5KisKggEKBAQCAgkSA3wCJRp1IFJlc2VydmVkIGZpZWxkIG5hbWVzLCB3aGljaCBtYXkgbm90IGJlIHVzZWQgYnkgZmllbGRzIGluIHRoZSBzYW1lIG1lc3NhZ2UuCiBBIGdpdmVuIG5hbWUgbWF5IG9ubHkgYmUgcmVzZXJ2ZWQgb25jZS4KCgwKBQQCAgkEEgN8AgoKDAoFBAICCQUSA3wLEQoMCgUEAgIJARIDfBIfCgwKBQQCAgkDEgN8IiQKCwoCBAMSBX8AhgEBCgoKAwQDARIDfwgdCk8KBAQDAgASBIEBAjoaQSBUaGUgcGFyc2VyIHN0b3JlcyBvcHRpb25zIGl0IGRvZXNuJ3QgcmVjb2duaXplIGhlcmUuIFNlZSBhYm92ZS4KCg0KBQQDAgAEEgSBAQIKCg0KBQQDAgAGEgSBAQseCg0KBQQDAgABEgSBAR8zCg0KBQQDAgADEgSBATY5CloKAwQDBRIEhQECGRpNIENsaWVudHMgY2FuIGRlZmluZSBjdXN0b20gb3B0aW9ucyBpbiBleHRlbnNpb25zIG9mIHRoaXMgbWVzc2FnZS4gU2VlIGFib3ZlLgoKDAoEBAMFABIEhQENGAoNCgUEAwUAARIEhQENEQoNCgUEAwUAAhIEhQEVGAozCgIEBBIGiQEA7gEBGiUgRGVzY3JpYmVzIGEgZmllbGQgd2l0aGluIGEgbWVzc2FnZS4KCgsKAwQEARIEiQEIHAoOCgQEBAQAEgaKAQKpAQMKDQoFBAQEAAESBIoBBwsKUwoGBAQEAAIAEgSNAQQUGkMgMCBpcyByZXNlcnZlZCBmb3IgZXJyb3JzLgogT3JkZXIgaXMgd2VpcmQgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4KCg8KBwQEBAACAAESBI0BBA8KDwoHBAQEAAIAAhIEjQESEwoOCgYEBAQAAgESBI4BBBMKDwoHBAQEAAIBARIEjgEEDgoPCgcEBAQAAgECEgSOARESCncKBgQEBAACAhIEkQEEExpnIE5vdCBaaWdaYWcgZW5jb2RlZC4gIE5lZ2F0aXZlIG51bWJlcnMgdGFrZSAxMCBieXRlcy4gIFVzZSBUWVBFX1NJTlQ2NCBpZgogbmVnYXRpdmUgdmFsdWVzIGFyZSBsaWtlbHkuCgoPCgcEBAQAAgIBEgSRAQQOCg8KBwQEBAACAgISBJEBERIKDgoGBAQEAAIDEgSSAQQUCg8KBwQEBAACAwESBJIBBA8KDwoHBAQEAAIDAhIEkgESEwp3CgYEBAQAAgQSBJUBBBMaZyBOb3QgWmlnWmFnIGVuY29kZWQuICBOZWdhdGl2ZSBudW1iZXJzIHRha2UgMTAgYnl0ZXMuICBVc2UgVFlQRV9TSU5UMzIgaWYKIG5lZ2F0aXZlIHZhbHVlcyBhcmUgbGlrZWx5LgoKDwoHBAQEAAIEARIElQEEDgoPCgcEBAQAAgQCEgSVARESCg4KBgQEBAACBRIElgEEFQoPCgcEBAQAAgUBEgSWAQQQCg8KBwQEBAACBQISBJYBExQKDgoGBAQEAAIGEgSXAQQVCg8KBwQEBAACBgESBJcBBBAKDwoHBAQEAAIGAhIElwETFAoOCgYEBAQAAgcSBJgBBBIKDwoHBAQEAAIHARIEmAEEDQoPCgcEBAQAAgcCEgSYARARCg4KBgQEBAACCBIEmQEEFAoPCgcEBAQAAggBEgSZAQQPCg8KBwQEBAACCAISBJkBEhMK4gEKBgQEBAACCRIEngEEFBrRASBUYWctZGVsaW1pdGVkIGFnZ3JlZ2F0ZS4KIEdyb3VwIHR5cGUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHN1cHBvcnRlZCBpbiBwcm90bzMuIEhvd2V2ZXIsIFByb3RvMwogaW1wbGVtZW50YXRpb25zIHNob3VsZCBzdGlsbCBiZSBhYmxlIHRvIHBhcnNlIHRoZSBncm91cCB3aXJlIGZvcm1hdCBhbmQKIHRyZWF0IGdyb3VwIGZpZWxkcyBhcyB1bmtub3duIGZpZWxkcy4KCg8KBwQEBAACCQESBJ4BBA4KDwoHBAQEAAIJAhIEngEREwotCgYEBAQAAgoSBJ8BBBYiHSBMZW5ndGgtZGVsaW1pdGVkIGFnZ3JlZ2F0ZS4KCg8KBwQEBAACCgESBJ8BBBAKDwoHBAQEAAIKAhIEnwETFQojCgYEBAQAAgsSBKIBBBQaEyBOZXcgaW4gdmVyc2lvbiAyLgoKDwoHBAQEAAILARIEogEEDgoPCgcEBAQAAgsCEgSiARETCg4KBgQEBAACDBIEowEEFQoPCgcEBAQAAgwBEgSjAQQPCg8KBwQEBAACDAISBKMBEhQKDgoGBAQEAAINEgSkAQQTCg8KBwQEBAACDQESBKQBBA0KDwoHBAQEAAINAhIEpAEQEgoOCgYEBAQAAg4SBKUBBBcKDwoHBAQEAAIOARIEpQEEEQoPCgcEBAQAAg4CEgSlARQWCg4KBgQEBAACDxIEpgEEFwoPCgcEBAQAAg8BEgSmAQQRCg8KBwQEBAACDwISBKYBFBYKJwoGBAQEAAIQEgSnAQQVIhcgVXNlcyBaaWdaYWcgZW5jb2RpbmcuCgoPCgcEBAQAAhABEgSnAQQPCg8KBwQEBAACEAISBKcBEhQKJwoGBAQEAAIREgSoAQQVIhcgVXNlcyBaaWdaYWcgZW5jb2RpbmcuCgoPCgcEBAQAAhEBEgSoAQQPCg8KBwQEBAACEQISBKgBEhQKDgoEBAQEARIGqwECsAEDCg0KBQQEBAEBEgSrAQcMCioKBgQEBAECABIErQEEFxoaIDAgaXMgcmVzZXJ2ZWQgZm9yIGVycm9ycwoKDwoHBAQEAQIAARIErQEEEgoPCgcEBAQBAgACEgStARUWCg4KBgQEBAECARIErgEEFwoPCgcEBAQBAgEBEgSuAQQSCg8KBwQEBAECAQISBK4BFRYKDgoGBAQEAQICEgSvAQQXCg8KBwQEBAECAgESBK8BBBIKDwoHBAQEAQICAhIErwEVFgoMCgQEBAIAEgSyAQIbCg0KBQQEAgAEEgSyAQIKCg0KBQQEAgAFEgSyAQsRCg0KBQQEAgABEgSyARIWCg0KBQQEAgADEgSyARkaCgwKBAQEAgESBLMBAhwKDQoFBAQCAQQSBLMBAgoKDQoFBAQCAQUSBLMBCxAKDQoFBAQCAQESBLMBERcKDQoFBAQCAQMSBLMBGhsKDAoEBAQCAhIEtAECGwoNCgUEBAICBBIEtAECCgoNCgUEBAICBhIEtAELEAoNCgUEBAICARIEtAERFgoNCgUEBAICAxIEtAEZGgqcAQoEBAQCAxIEuAECGRqNASBJZiB0eXBlX25hbWUgaXMgc2V0LCB0aGlzIG5lZWQgbm90IGJlIHNldC4gIElmIGJvdGggdGhpcyBhbmQgdHlwZV9uYW1lCiBhcmUgc2V0LCB0aGlzIG11c3QgYmUgb25lIG9mIFRZUEVfRU5VTSwgVFlQRV9NRVNTQUdFIG9yIFRZUEVfR1JPVVAuCgoNCgUEBAIDBBIEuAECCgoNCgUEBAIDBhIEuAELDwoNCgUEBAIDARIEuAEQFAoNCgUEBAIDAxIEuAEXGAq3AgoEBAQCBBIEvwECIBqoAiBGb3IgbWVzc2FnZSBhbmQgZW51bSB0eXBlcywgdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgdHlwZS4gIElmIHRoZSBuYW1lCiBzdGFydHMgd2l0aCBhICcuJywgaXQgaXMgZnVsbHktcXVhbGlmaWVkLiAgT3RoZXJ3aXNlLCBDKystbGlrZSBzY29waW5nCiBydWxlcyBhcmUgdXNlZCB0byBmaW5kIHRoZSB0eXBlIChpLmUuIGZpcnN0IHRoZSBuZXN0ZWQgdHlwZXMgd2l0aGluIHRoaXMKIG1lc3NhZ2UgYXJlIHNlYXJjaGVkLCB0aGVuIHdpdGhpbiB0aGUgcGFyZW50LCBvbiB1cCB0byB0aGUgcm9vdAogbmFtZXNwYWNlKS4KCg0KBQQEAgQEEgS/AQIKCg0KBQQEAgQFEgS/AQsRCg0KBQQEAgQBEgS/ARIbCg0KBQQEAgQDEgS/AR4fCn4KBAQEAgUSBMMBAh8acCBGb3IgZXh0ZW5zaW9ucywgdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgdHlwZSBiZWluZyBleHRlbmRlZC4gIEl0IGlzCiByZXNvbHZlZCBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgdHlwZV9uYW1lLgoKDQoFBAQCBQQSBMMBAgoKDQoFBAQCBQUSBMMBCxEKDQoFBAQCBQESBMMBEhoKDQoFBAQCBQMSBMMBHR4KsQIKBAQEAgYSBMoBAiQaogIgRm9yIG51bWVyaWMgdHlwZXMsIGNvbnRhaW5zIHRoZSBvcmlnaW5hbCB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZS4KIEZvciBib29sZWFucywgInRydWUiIG9yICJmYWxzZSIuCiBGb3Igc3RyaW5ncywgY29udGFpbnMgdGhlIGRlZmF1bHQgdGV4dCBjb250ZW50cyAobm90IGVzY2FwZWQgaW4gYW55IHdheSkuCiBGb3IgYnl0ZXMsIGNvbnRhaW5zIHRoZSBDIGVzY2FwZWQgdmFsdWUuICBBbGwgYnl0ZXMgPj0gMTI4IGFyZSBlc2NhcGVkLgogVE9ETyhrZW50b24pOiAgQmFzZS02NCBlbmNvZGU/CgoNCgUEBAIGBBIEygECCgoNCgUEBAIGBRIEygELEQoNCgUEBAIGARIEygESHwoNCgUEBAIGAxIEygEiIwqEAQoEBAQCBxIEzgECIRp2IElmIHNldCwgZ2l2ZXMgdGhlIGluZGV4IG9mIGEgb25lb2YgaW4gdGhlIGNvbnRhaW5pbmcgdHlwZSdzIG9uZW9mX2RlY2wKIGxpc3QuICBUaGlzIGZpZWxkIGlzIGEgbWVtYmVyIG9mIHRoYXQgb25lb2YuCgoNCgUEBAIHBBIEzgECCgoNCgUEBAIHBRIEzgELEAoNCgUEBAIHARIEzgERHAoNCgUEBAIHAxIEzgEfIAr6AQoEBAQCCBIE1AECIRrrASBKU09OIG5hbWUgb2YgdGhpcyBmaWVsZC4gVGhlIHZhbHVlIGlzIHNldCBieSBwcm90b2NvbCBjb21waWxlci4gSWYgdGhlCiB1c2VyIGhhcyBzZXQgYSAianNvbl9uYW1lIiBvcHRpb24gb24gdGhpcyBmaWVsZCwgdGhhdCBvcHRpb24ncyB2YWx1ZQogd2lsbCBiZSB1c2VkLiBPdGhlcndpc2UsIGl0J3MgZGVkdWNlZCBmcm9tIHRoZSBmaWVsZCdzIG5hbWUgYnkgY29udmVydGluZwogaXQgdG8gY2FtZWxDYXNlLgoKDQoFBAQCCAQSBNQBAgoKDQoFBAQCCAUSBNQBCxEKDQoFBAQCCAESBNQBEhsKDQoFBAQCCAMSBNQBHiAKDAoEBAQCCRIE1gECJAoNCgUEBAIJBBIE1gECCgoNCgUEBAIJBhIE1gELFwoNCgUEBAIJARIE1gEYHwoNCgUEBAIJAxIE1gEiIwqzCQoEBAQCChIE7QECJRqkCSBJZiB0cnVlLCB0aGlzIGlzIGEgcHJvdG8zICJvcHRpb25hbCIuIFdoZW4gYSBwcm90bzMgZmllbGQgaXMgb3B0aW9uYWwsIGl0CiB0cmFja3MgcHJlc2VuY2UgcmVnYXJkbGVzcyBvZiBmaWVsZCB0eXBlLgoKIFdoZW4gcHJvdG8zX29wdGlvbmFsIGlzIHRydWUsIHRoaXMgZmllbGQgbXVzdCBiZSBiZWxvbmcgdG8gYSBvbmVvZiB0bwogc2lnbmFsIHRvIG9sZCBwcm90bzMgY2xpZW50cyB0aGF0IHByZXNlbmNlIGlzIHRyYWNrZWQgZm9yIHRoaXMgZmllbGQuIFRoaXMKIG9uZW9mIGlzIGtub3duIGFzIGEgInN5bnRoZXRpYyIgb25lb2YsIGFuZCB0aGlzIGZpZWxkIG11c3QgYmUgaXRzIHNvbGUKIG1lbWJlciAoZWFjaCBwcm90bzMgb3B0aW9uYWwgZmllbGQgZ2V0cyBpdHMgb3duIHN5bnRoZXRpYyBvbmVvZikuIFN5bnRoZXRpYwogb25lb2ZzIGV4aXN0IGluIHRoZSBkZXNjcmlwdG9yIG9ubHksIGFuZCBkbyBub3QgZ2VuZXJhdGUgYW55IEFQSS4gU3ludGhldGljCiBvbmVvZnMgbXVzdCBiZSBvcmRlcmVkIGFmdGVyIGFsbCAicmVhbCIgb25lb2ZzLgoKIEZvciBtZXNzYWdlIGZpZWxkcywgcHJvdG8zX29wdGlvbmFsIGRvZXNuJ3QgY3JlYXRlIGFueSBzZW1hbnRpYyBjaGFuZ2UsCiBzaW5jZSBub24tcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZHMgYWx3YXlzIHRyYWNrIHByZXNlbmNlLiBIb3dldmVyIGl0IHN0aWxsCiBpbmRpY2F0ZXMgdGhlIHNlbWFudGljIGRldGFpbCBvZiB3aGV0aGVyIHRoZSB1c2VyIHdyb3RlICJvcHRpb25hbCIgb3Igbm90LgogVGhpcyBjYW4gYmUgdXNlZnVsIGZvciByb3VuZC10cmlwcGluZyB0aGUgLnByb3RvIGZpbGUuIEZvciBjb25zaXN0ZW5jeSB3ZQogZ2l2ZSBtZXNzYWdlIGZpZWxkcyBhIHN5bnRoZXRpYyBvbmVvZiBhbHNvLCBldmVuIHRob3VnaCBpdCBpcyBub3QgcmVxdWlyZWQKIHRvIHRyYWNrIHByZXNlbmNlLiBUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IGJlY2F1c2UgdGhlIHBhcnNlciBjYW4ndAogdGVsbCBpZiBhIGZpZWxkIGlzIGEgbWVzc2FnZSBvciBhbiBlbnVtLCBzbyBpdCBtdXN0IGFsd2F5cyBjcmVhdGUgYQogc3ludGhldGljIG9uZW9mLgoKIFByb3RvMiBvcHRpb25hbCBmaWVsZHMgZG8gbm90IHNldCB0aGlzIGZsYWcsIGJlY2F1c2UgdGhleSBhbHJlYWR5IGluZGljYXRlCiBvcHRpb25hbCB3aXRoIGBMQUJFTF9PUFRJT05BTGAuCgoNCgUEBAIKBBIE7QECCgoNCgUEBAIKBRIE7QELDwoNCgUEBAIKARIE7QEQHwoNCgUEBAIKAxIE7QEiJAoiCgIEBRIG8QEA9AEBGhQgRGVzY3JpYmVzIGEgb25lb2YuCgoLCgMEBQESBPEBCBwKDAoEBAUCABIE8gECGwoNCgUEBQIABBIE8gECCgoNCgUEBQIABRIE8gELEQoNCgUEBQIAARIE8gESFgoNCgUEBQIAAxIE8gEZGgoMCgQEBQIBEgTzAQIkCg0KBQQFAgEEEgTzAQIKCg0KBQQFAgEGEgTzAQsXCg0KBQQFAgEBEgTzARgfCg0KBQQFAgEDEgTzASIjCicKAgQGEgb3AQCRAgEaGSBEZXNjcmliZXMgYW4gZW51bSB0eXBlLgoKCwoDBAYBEgT3AQgbCgwKBAQGAgASBPgBAhsKDQoFBAYCAAQSBPgBAgoKDQoFBAYCAAUSBPgBCxEKDQoFBAYCAAESBPgBEhYKDQoFBAYCAAMSBPgBGRoKDAoEBAYCARIE+gECLgoNCgUEBgIBBBIE+gECCgoNCgUEBgIBBhIE+gELIwoNCgUEBgIBARIE+gEkKQoNCgUEBgIBAxIE+gEsLQoMCgQEBgICEgT8AQIjCg0KBQQGAgIEEgT8AQIKCg0KBQQGAgIGEgT8AQsWCg0KBQQGAgIBEgT8ARceCg0KBQQGAgIDEgT8ASEiCq8CCgQEBgMAEgaEAgKHAgMangIgUmFuZ2Ugb2YgcmVzZXJ2ZWQgbnVtZXJpYyB2YWx1ZXMuIFJlc2VydmVkIHZhbHVlcyBtYXkgbm90IGJlIHVzZWQgYnkKIGVudHJpZXMgaW4gdGhlIHNhbWUgZW51bS4gUmVzZXJ2ZWQgcmFuZ2VzIG1heSBub3Qgb3ZlcmxhcC4KCiBOb3RlIHRoYXQgdGhpcyBpcyBkaXN0aW5jdCBmcm9tIERlc2NyaXB0b3JQcm90by5SZXNlcnZlZFJhbmdlIGluIHRoYXQgaXQKIGlzIGluY2x1c2l2ZSBzdWNoIHRoYXQgaXQgY2FuIGFwcHJvcHJpYXRlbHkgcmVwcmVzZW50IHRoZSBlbnRpcmUgaW50MzIKIGRvbWFpbi4KCg0KBQQGAwABEgSEAgobChwKBgQGAwACABIEhQIEHSIMIEluY2x1c2l2ZS4KCg8KBwQGAwACAAQSBIUCBAwKDwoHBAYDAAIABRIEhQINEgoPCgcEBgMAAgABEgSFAhMYCg8KBwQGAwACAAMSBIUCGxwKHAoGBAYDAAIBEgSGAgQbIgwgSW5jbHVzaXZlLgoKDwoHBAYDAAIBBBIEhgIEDAoPCgcEBgMAAgEFEgSGAg0SCg8KBwQGAwACAQESBIYCExYKDwoHBAYDAAIBAxIEhgIZGgqqAQoEBAYCAxIEjAICMBqbASBSYW5nZSBvZiByZXNlcnZlZCBudW1lcmljIHZhbHVlcy4gUmVzZXJ2ZWQgbnVtZXJpYyB2YWx1ZXMgbWF5IG5vdCBiZSB1c2VkCiBieSBlbnVtIHZhbHVlcyBpbiB0aGUgc2FtZSBlbnVtIGRlY2xhcmF0aW9uLiBSZXNlcnZlZCByYW5nZXMgbWF5IG5vdAogb3ZlcmxhcC4KCg0KBQQGAgMEEgSMAgIKCg0KBQQGAgMGEgSMAgscCg0KBQQGAgMBEgSMAh0rCg0KBQQGAgMDEgSMAi4vCmwKBAQGAgQSBJACAiQaXiBSZXNlcnZlZCBlbnVtIHZhbHVlIG5hbWVzLCB3aGljaCBtYXkgbm90IGJlIHJldXNlZC4gQSBnaXZlbiBuYW1lIG1heSBvbmx5CiBiZSByZXNlcnZlZCBvbmNlLgoKDQoFBAYCBAQSBJACAgoKDQoFBAYCBAUSBJACCxEKDQoFBAYCBAESBJACEh8KDQoFBAYCBAMSBJACIiMKMQoCBAcSBpQCAJkCARojIERlc2NyaWJlcyBhIHZhbHVlIHdpdGhpbiBhbiBlbnVtLgoKCwoDBAcBEgSUAgggCgwKBAQHAgASBJUCAhsKDQoFBAcCAAQSBJUCAgoKDQoFBAcCAAUSBJUCCxEKDQoFBAcCAAESBJUCEhYKDQoFBAcCAAMSBJUCGRoKDAoEBAcCARIElgICHAoNCgUEBwIBBBIElgICCgoNCgUEBwIBBRIElgILEAoNCgUEBwIBARIElgIRFwoNCgUEBwIBAxIElgIaGwoMCgQEBwICEgSYAgIoCg0KBQQHAgIEEgSYAgIKCg0KBQQHAgIGEgSYAgsbCg0KBQQHAgIBEgSYAhwjCg0KBQQHAgIDEgSYAiYnCiQKAgQIEgacAgChAgEaFiBEZXNjcmliZXMgYSBzZXJ2aWNlLgoKCwoDBAgBEgScAggeCgwKBAQIAgASBJ0CAhsKDQoFBAgCAAQSBJ0CAgoKDQoFBAgCAAUSBJ0CCxEKDQoFBAgCAAESBJ0CEhYKDQoFBAgCAAMSBJ0CGRoKDAoEBAgCARIEngICLAoNCgUECAIBBBIEngICCgoNCgUECAIBBhIEngILIAoNCgUECAIBARIEngIhJwoNCgUECAIBAxIEngIqKwoMCgQECAICEgSgAgImCg0KBQQIAgIEEgSgAgIKCg0KBQQIAgIGEgSgAgsZCg0KBQQIAgIBEgSgAhohCg0KBQQIAgIDEgSgAiQlCjAKAgQJEgakAgCyAgEaIiBEZXNjcmliZXMgYSBtZXRob2Qgb2YgYSBzZXJ2aWNlLgoKCwoDBAkBEgSkAggdCgwKBAQJAgASBKUCAhsKDQoFBAkCAAQSBKUCAgoKDQoFBAkCAAUSBKUCCxEKDQoFBAkCAAESBKUCEhYKDQoFBAkCAAMSBKUCGRoKlwEKBAQJAgESBKkCAiEaiAEgSW5wdXQgYW5kIG91dHB1dCB0eXBlIG5hbWVzLiAgVGhlc2UgYXJlIHJlc29sdmVkIGluIHRoZSBzYW1lIHdheSBhcwogRmllbGREZXNjcmlwdG9yUHJvdG8udHlwZV9uYW1lLCBidXQgbXVzdCByZWZlciB0byBhIG1lc3NhZ2UgdHlwZS4KCg0KBQQJAgEEEgSpAgIKCg0KBQQJAgEFEgSpAgsRCg0KBQQJAgEBEgSpAhIcCg0KBQQJAgEDEgSpAh8gCgwKBAQJAgISBKoCAiIKDQoFBAkCAgQSBKoCAgoKDQoFBAkCAgUSBKoCCxEKDQoFBAkCAgESBKoCEh0KDQoFBAkCAgMSBKoCICEKDAoEBAkCAxIErAICJQoNCgUECQIDBBIErAICCgoNCgUECQIDBhIErAILGAoNCgUECQIDARIErAIZIAoNCgUECQIDAxIErAIjJApFCgQECQIEEgSvAgI3GjcgSWRlbnRpZmllcyBpZiBjbGllbnQgc3RyZWFtcyBtdWx0aXBsZSBjbGllbnQgbWVzc2FnZXMKCg0KBQQJAgQEEgSvAgIKCg0KBQQJAgQFEgSvAgsPCg0KBQQJAgQBEgSvAhAgCg0KBQQJAgQDEgSvAiMkCg0KBQQJAgQIEgSvAiU2Cg0KBQQJAgQHEgSvAjA1CkUKBAQJAgUSBLECAjcaNyBJZGVudGlmaWVzIGlmIHNlcnZlciBzdHJlYW1zIG11bHRpcGxlIHNlcnZlciBtZXNzYWdlcwoKDQoFBAkCBQQSBLECAgoKDQoFBAkCBQUSBLECCw8KDQoFBAkCBQESBLECECAKDQoFBAkCBQMSBLECIyQKDQoFBAkCBQgSBLECJTYKDQoFBAkCBQcSBLECMDUKrw4KAgQKEgbVAgDQAwEyTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBPcHRpb25zCjLQDSBFYWNoIG9mIHRoZSBkZWZpbml0aW9ucyBhYm92ZSBtYXkgaGF2ZSAib3B0aW9ucyIgYXR0YWNoZWQuICBUaGVzZSBhcmUKIGp1c3QgYW5ub3RhdGlvbnMgd2hpY2ggbWF5IGNhdXNlIGNvZGUgdG8gYmUgZ2VuZXJhdGVkIHNsaWdodGx5IGRpZmZlcmVudGx5CiBvciBtYXkgY29udGFpbiBoaW50cyBmb3IgY29kZSB0aGF0IG1hbmlwdWxhdGVzIHByb3RvY29sIG1lc3NhZ2VzLgoKIENsaWVudHMgbWF5IGRlZmluZSBjdXN0b20gb3B0aW9ucyBhcyBleHRlbnNpb25zIG9mIHRoZSAqT3B0aW9ucyBtZXNzYWdlcy4KIFRoZXNlIGV4dGVuc2lvbnMgbWF5IG5vdCB5ZXQgYmUga25vd24gYXQgcGFyc2luZyB0aW1lLCBzbyB0aGUgcGFyc2VyIGNhbm5vdAogc3RvcmUgdGhlIHZhbHVlcyBpbiB0aGVtLiAgSW5zdGVhZCBpdCBzdG9yZXMgdGhlbSBpbiBhIGZpZWxkIGluIHRoZSAqT3B0aW9ucwogbWVzc2FnZSBjYWxsZWQgdW5pbnRlcnByZXRlZF9vcHRpb24uIFRoaXMgZmllbGQgbXVzdCBoYXZlIHRoZSBzYW1lIG5hbWUKIGFjcm9zcyBhbGwgKk9wdGlvbnMgbWVzc2FnZXMuIFdlIHRoZW4gdXNlIHRoaXMgZmllbGQgdG8gcG9wdWxhdGUgdGhlCiBleHRlbnNpb25zIHdoZW4gd2UgYnVpbGQgYSBkZXNjcmlwdG9yLCBhdCB3aGljaCBwb2ludCBhbGwgcHJvdG9zIGhhdmUgYmVlbgogcGFyc2VkIGFuZCBzbyBhbGwgZXh0ZW5zaW9ucyBhcmUga25vd24uCgogRXh0ZW5zaW9uIG51bWJlcnMgZm9yIGN1c3RvbSBvcHRpb25zIG1heSBiZSBjaG9zZW4gYXMgZm9sbG93czoKICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBvbmx5IGJlIHVzZWQgd2l0aGluIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yCiAgIG9yZ2FuaXphdGlvbiwgb3IgZm9yIGV4cGVyaW1lbnRhbCBvcHRpb25zLCB1c2UgZmllbGQgbnVtYmVycyA1MDAwMAogICB0aHJvdWdoIDk5OTk5LiAgSXQgaXMgdXAgdG8geW91IHRvIGVuc3VyZSB0aGF0IHlvdSBkbyBub3QgdXNlIHRoZQogICBzYW1lIG51bWJlciBmb3IgbXVsdGlwbGUgb3B0aW9ucy4KICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBiZSBwdWJsaXNoZWQgYW5kIHVzZWQgcHVibGljbHkgYnkgbXVsdGlwbGUKICAgaW5kZXBlbmRlbnQgZW50aXRpZXMsIGUtbWFpbCBwcm90b2J1Zi1nbG9iYWwtZXh0ZW5zaW9uLXJlZ2lzdHJ5QGdvb2dsZS5jb20KICAgdG8gcmVzZXJ2ZSBleHRlbnNpb24gbnVtYmVycy4gU2ltcGx5IHByb3ZpZGUgeW91ciBwcm9qZWN0IG5hbWUgKGUuZy4KICAgT2JqZWN0aXZlLUMgcGx1Z2luKSBhbmQgeW91ciBwcm9qZWN0IHdlYnNpdGUgKGlmIGF2YWlsYWJsZSkgLS0gdGhlcmUncyBubwogICBuZWVkIHRvIGV4cGxhaW4gaG93IHlvdSBpbnRlbmQgdG8gdXNlIHRoZW0uIFVzdWFsbHkgeW91IG9ubHkgbmVlZCBvbmUKICAgZXh0ZW5zaW9uIG51bWJlci4gWW91IGNhbiBkZWNsYXJlIG11bHRpcGxlIG9wdGlvbnMgd2l0aCBvbmx5IG9uZSBleHRlbnNpb24KICAgbnVtYmVyIGJ5IHB1dHRpbmcgdGhlbSBpbiBhIHN1Yi1tZXNzYWdlLiBTZWUgdGhlIEN1c3RvbSBPcHRpb25zIHNlY3Rpb24gb2YKICAgdGhlIGRvY3MgZm9yIGV4YW1wbGVzOgogICBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8jb3B0aW9ucwogICBJZiB0aGlzIHR1cm5zIG91dCB0byBiZSBwb3B1bGFyLCBhIHdlYiBzZXJ2aWNlIHdpbGwgYmUgc2V0IHVwCiAgIHRvIGF1dG9tYXRpY2FsbHkgYXNzaWduIG9wdGlvbiBudW1iZXJzLgoKCwoDBAoBEgTVAggTCvQBCgQECgIAEgTbAgIjGuUBIFNldHMgdGhlIEphdmEgcGFja2FnZSB3aGVyZSBjbGFzc2VzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gIEJ5IGRlZmF1bHQsIHRoZSBwcm90byBwYWNrYWdlIGlzIHVzZWQsIGJ1dCB0aGlzIGlzIG9mdGVuCiBpbmFwcHJvcHJpYXRlIGJlY2F1c2UgcHJvdG8gcGFja2FnZXMgZG8gbm90IG5vcm1hbGx5IHN0YXJ0IHdpdGggYmFja3dhcmRzCiBkb21haW4gbmFtZXMuCgoNCgUECgIABBIE2wICCgoNCgUECgIABRIE2wILEQoNCgUECgIAARIE2wISHgoNCgUECgIAAxIE2wIhIgq/AgoEBAoCARIE4wICKxqwAiBJZiBzZXQsIGFsbCB0aGUgY2xhc3NlcyBmcm9tIHRoZSAucHJvdG8gZmlsZSBhcmUgd3JhcHBlZCBpbiBhIHNpbmdsZQogb3V0ZXIgY2xhc3Mgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4gIFRoaXMgYXBwbGllcyB0byBib3RoIFByb3RvMQogKGVxdWl2YWxlbnQgdG8gdGhlIG9sZCAiLS1vbmVfamF2YV9maWxlIiBvcHRpb24pIGFuZCBQcm90bzIgKHdoZXJlCiBhIC5wcm90byBhbHdheXMgdHJhbnNsYXRlcyB0byBhIHNpbmdsZSBjbGFzcywgYnV0IHlvdSBtYXkgd2FudCB0bwogZXhwbGljaXRseSBjaG9vc2UgdGhl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byBwYWNrYWdlIHdpbGwgYmUgZGVyaXZlZCBmcm9tIHRoZSBmb2xsb3dpbmc6CiAgIC0gVGhlIGJhc2VuYW1lIG9mIHRoZSBwYWNrYWdlIGltcG9ydCBwYXRoLCBpZiBwcm92aWRlZC4KICAgLSBPdGhlcndpc2UsIHRoZSBwYWNrYWdlIHN0YXRlbWVudCBpbiB0aGUgLnByb3RvIGZpbGUsIGlmIHByZXNlbnQuCiAgIC0gT3RoZXJ3aXNlLCB0aGUgYmFzZW5hbWUgb2YgdGhlIC5wcm90byBmaWxlLCB3aXRob3V0IGV4dGVuc2lvbi4KCg0KBQQKAgYEEgSHAwIKCg0KBQQKAgYFEgSHAwsRCg0KBQQKAgYBEgSHAxIcCg0KBQQKAgYDEgSHAx8hCtQECgQECgIHEgSWAwI7GsUEIFNob3VsZCBnZW5lcmljIHNlcnZpY2VzIGJlIGdlbmVyYXRlZCBpbiBlYWNoIGxhbmd1YWdlPyAgIkdlbmVyaWMiIHNlcnZpY2VzCiBhcmUgbm90IHNwZWNpZmljIHRvIGFueSBwYXJ0aWN1bGFyIFJQQyBzeXN0ZW0uICBUaGV5IGFyZSBnZW5lcmF0ZWQgYnkgdGhlCiBtYWluIGNvZGUgZ2VuZXJhdG9ycyBpbiBlYWNoIGxhbmd1YWdlICh3aXRob3V0IGFkZGl0aW9uYWwgcGx1Z2lucykuCiBHZW5lcmljIHNlcnZpY2VzIHdlcmUgdGhlIG9ubHkga2luZCBvZiBzZXJ2aWNlIGdlbmVyYXRpb24gc3VwcG9ydGVkIGJ5CiBlYXJseSB2ZXJzaW9ucyBvZiBnb29nbGUucHJvdG9idWYuCgogR2VuZXJpYyBzZXJ2aWNlcyBhcmUgbm93IGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB1c2luZyBwbHVnaW5zCiB0aGF0IGdlbmVyYXRlIGNvZGUgc3BlY2lmaWMgdG8geW91ciBwYXJ0aWN1bGFyIFJQQyBzeXN0ZW0uICBUaGVyZWZvcmUsCiB0aGVzZSBkZWZhdWx0IHRvIGZhbHNlLiAgT2xkIGNvZGUgd2hpY2ggZGVwZW5kcyBvbiBnZW5lcmljIHNlcnZpY2VzIHNob3VsZAogZXhwbGljaXRseSBzZXQgdGhlbSB0byB0cnVl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8AMdHgoNCgUECwICCBIE8AMfMAoNCgUECwICBxIE8AMqLwqgBgoEBAsCAxIEhwQCHhqRBiBXaGV0aGVyIHRoZSBtZXNzYWdlIGlzIGFuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1hcCBlbnRyeSB0eXBlIGZvciB0aGUKIG1hcHMgZmllbGQuCgogRm9yIG1hcHMgZmllbGRzOgogICAgIG1hcDxLZXlUeXBlLCBWYWx1ZVR5cGU+IG1hcF9maWVsZCA9IDE7CiBUaGUgcGFyc2VkIGRlc2NyaXB0b3IgbG9va3MgbGlrZToKICAgICBtZXNzYWdlIE1hcEZpZWxkRW50cnkgewogICAgICAgICBvcHRpb24gbWFwX2VudHJ5ID0gdHJ1ZTsKICAgICAgICAgb3B0aW9uYWwgS2V5VHlwZSBrZXkgPSAxOwogICAgICAgICBvcHRpb25hbCBWYWx1ZVR5cGUgdmFsdWUgPSAyOwogICAgIH0KICAgICByZXBlYXRlZCBNYXBGaWVsZEVudHJ5IG1hcF9maWVsZCA9IDE7CgogSW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGdlbmVyYXRlIHRoZSBtYXBfZW50cnk9dHJ1ZSBtZXNzYWdlLCBidXQKIHVzZSBhIG5hdGl2ZSBtYXAgaW4gdGhlIHRhcmdldCBsYW5ndWFnZSB0byBob2xkIHRoZSBrZXlzIGFuZCB2YWx1ZXMuCiBUaGUgcmVmbGVjdGlvbiBBUElzIGluIHN1Y2ggaW1wbGVtZW50YXRpb25zIHN0aWxsIG5lZWQgdG8gd29yayBhcwogaWYgdGhlIGZpZWxkIGlzIGEgcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZC4KCiBOT1RFOiBEbyBub3Qgc2V0IHRoZSBvcHRpb24gaW4gLnByb3RvIGZpbGVzLiBBbHdheXMgdXNlIHRoZSBtYXBzIHN5bnRheAogaW5zdGVhZC4gVGhlIG9wdGlvbiBzaG91bGQgb25seSBiZSBpbXBsaWNpdGx5IHNldCBieSB0aGUgcHJvdG8gY29tcGlsZXIKIHBhcnNlci4KCg0KBQQLAgMEEgSHBAIKCg0KBQQLAgMFEgSHBAsPCg0KBQQLAgMBEgSHBBAZCg0KBQQLAgMDEgSHBBwdCiQKAwQLCRIEiQQCDSIXIGphdmFsaXRlX3NlcmlhbGl6YWJsZQoKDAoEBAsJABIEiQQLDAoNCgUECwkAARIEiQQLDAoNCgUECwkAAhIEiQQLDAofCgMECwkSBIoEAg0iEiBqYXZhbmFub19hc19saXRlCgoMCgQECwkBEgSKBAsMCg0KBQQLCQEBEgSKBAsMCg0KBQQLCQECEgSKBAsMCk8KBAQLAgQSBI4EAjoaQSBUaGUgcGFyc2VyIHN0b3JlcyBvcHRpb25zIGl0IGRvZXNuJ3QgcmVjb2duaXplIGhlcmUuIFNlZSBhYm92ZS4KCg0KBQQLAgQEEgSOBAIKCg0KBQQLAgQGEgSOBAseCg0KBQQLAgQBEgSOBB8zCg0KBQQLAgQDEgSOBDY5CloKAwQLBRIEkQQCGRpNIENsaWVudHMgY2FuIGRlZmluZSBjdXN0b20gb3B0aW9ucyBpbiBleHRlbnNpb25zIG9mIHRoaXMgbWVzc2FnZS4gU2VlIGFib3ZlLgoKDAoEBAsFABIEkQQNGAoNCgUECwUAARIEkQQNEQoNCgUECwUAAhIEkQQVGAoMCgIEDBIGlAQA7wQBCgsKAwQMARIElAQIFAqjAgoEBAwCABIEmQQCLhqUAiBUaGUgY3R5cGUgb3B0aW9uIGluc3RydWN0cyB0aGUgQysrIGNvZGUgZ2VuZXJhdG9yIHRvIHVzZSBhIGRpZmZlcmVudAogcmVwcmVzZW50YXRpb24gb2YgdGhlIGZpZWxkIHRoYW4gaXQgbm9ybWFsbHkgd291bGQuICBTZWUgdGhlIHNwZWNpZmljCiBvcHRpb25zIGJlbG93LiAgVGhpcyBvcHRpb24gaXMgbm90IHlldCBpbXBsZW1lbnRlZCBpbiB0aGUgb3BlbiBzb3VyY2UKIHJlbGVhc2UgLS0gc29ycnksIHdlJ2xsIHRyeSB0byBpbmNsdWRlIGl0IGluIGEgZnV0dXJlIHZlcnNpb24hCgoNCgUEDAIABBIEmQQCCgoNCgUEDAIABhIEmQQLEAoNCgUEDAIAARIEmQQRFgoNCgUEDAIAAxIEmQQZGgoNCgUEDAIACBIEmQQbLQoNCgUEDAIABxIEmQQmLAoOCgQEDAQAEgaaBAKhBAMKDQoFBAwEAAESBJoEBwwKHwoGBAwEAAIAEgScBAQPGg8gRGVmYXVsdCBtb2RlLgoKDwoHBAwEAAIAARIEnAQECgoPCgcEDAQAAgACEgScBA0OCg4KBgQMBAACARIEngQEDQoPCgcEDAQAAgEBEgSeBAQICg8KBwQMBAACAQISBJ4ECwwKDgoGBAwEAAICEgSgBAQVCg8KBwQMBAACAgESBKAEBBAKDwoHBAwEAAICAhIEoAQTFAraAgoEBAwCARIEpwQCGxrLAiBUaGUgcGFja2VkIG9wdGlvbiBjYW4gYmUgZW5hYmxlZCBmb3IgcmVwZWF0ZWQgcHJpbWl0aXZlIGZpZWxkcyB0byBlbmFibGUKIGEgbW9yZSBlZmZpY2llbnQgcmVwcmVzZW50YXRpb24gb24gdGhlIHdpcmUuIFJhdGhlciB0aGFuIHJlcGVhdGVkbHkKIHdyaXRpbmcgdGhlIHRhZyBhbmQgdHlwZSBmb3IgZWFjaCBlbGVtZW50LCB0aGUgZW50aXJlIGFycmF5IGlzIGVuY29kZWQgYXMKIGEgc2luZ2xlIGxlbmd0aC1kZWxpbWl0ZWQgYmxvYi4gSW4gcHJvdG8zLCBvbmx5IGV4cGxpY2l0IHNldHRpbmcgaXQgdG8KIGZhbHNlIHdpbGwgYXZvaWQgdXNpbmcgcGFja2VkIGVuY29kaW5nLgoKDQoFBAwCAQQSBKcEAgoKDQoFBAwCAQUSBKcECw8KDQoFBAwCAQESBKcEEBYKDQoFBAwCAQMSBKcEGRoKmgUKBAQMAgISBLQEAjMaiwUgVGhlIGpzdHlwZSBvcHRpb24gZGV0ZXJtaW5lcyB0aGUgSmF2YVNjcmlwdCB0eXBlIHVzZWQgZm9yIHZhbHVlcyBvZiB0aGUKIGZpZWxkLiAgVGhlIG9wdGlvbiBpcyBwZXJtaXR0ZWQgb25seSBmb3IgNjQgYml0IGludGVncmFsIGFuZCBmaXhlZCB0eXBlcwogKGludDY0LCB1aW50NjQsIHNpbnQ2NCwgZml4ZWQ2NCwgc2ZpeGVkNjQpLiAgQSBmaWVsZCB3aXRoIGpzdHlwZSBKU19TVFJJTkcKIGlzIHJlcHJlc2VudGVkIGFzIEphdmFTY3JpcHQgc3RyaW5nLCB3aGljaCBhdm9pZHMgbG9zcyBvZiBwcmVjaXNpb24gdGhhdAogY2FuIGhhcHBlbiB3aGVuIGEgbGFyZ2UgdmFsdWUgaXMgY29udmVydGVkIHRvIGEgZmxvYXRpbmcgcG9pbnQgSmF2YVNjcmlwdC4KIFNwZWNpZnlpbmcgSlNfTlVNQkVSIGZvciB0aGUganN0eXBlIGNhdXNlcyB0aGUgZ2VuZXJhdGVkIEphdmFTY3JpcHQgY29kZSB0bwogdXNlIHRoZSBKYXZhU2NyaXB0ICJudW1iZXIiIHR5cGUuICBUaGUgYmVoYXZpb3Igb2YgdGhlIGRlZmF1bHQgb3B0aW9uCiBKU19OT1JNQUwgaXMgaW1wbGVtZW50YXRpb24gZGVwZW5kZW50LgoKIFRoaXMgb3B0aW9uIGlzIGFuIGVudW0gdG8gcGVybWl0IGFkZGl0aW9uYWwgdHlwZXMgdG8gYmUgYWRkZWQsIGUuZy4KIGdvb2cubWF0aC5JbnRlZ2VyLgoKDQoFBAwCAgQSBLQEAgoKDQoFBAwCAgYSBLQECxEKDQoFBAwCAgESBLQEEhgKDQoFBAwCAgMSBLQEGxwKDQoFBAwCAggSBLQEHTIKDQoFBAwCAgcSBLQEKDEKDgoEBAwEARIGtQQCvgQDCg0KBQQMBAEBEgS1BAcNCicKBgQMBAECABIEtwQEEhoXIFVzZSB0aGUgZGVmYXVsdCB0eXBlLgoKDwoHBAwEAQIAARIEtwQEDQoPCgcEDAQBAgACEgS3BBARCikKBgQMBAECARIEugQEEhoZIFVzZSBKYXZhU2NyaXB0IHN0cmluZ3MuCgoPCgcEDAQBAgEBEgS6BAQNCg8KBwQMBAECAQISBLoEEBEKKQoGBAwEAQICEgS9BAQSGhkgVXNlIEphdmFTY3JpcHQgbnVtYmVycy4KCg8KBwQMBAECAgESBL0EBA0KDwoHBAwEAQICAhIEvQQQEQrvDAoEBAwCAxIE3AQCKxrgDCBTaG91bGQgdGhpcyBmaWVsZCBiZSBwYXJzZWQgbGF6aWx5PyAgTGF6eSBhcHBsaWVzIG9ubHkgdG8gbWVzc2FnZS10eXBlCiBmaWVsZHMuICBJdCBtZWFucyB0aGF0IHdoZW4gdGhlIG91dGVyIG1lc3NhZ2UgaXMgaW5pdGlhbGx5IHBhcnNlZCwgdGhlCiBpbm5lciBtZXNzYWdlJ3MgY29udGVudHMgd2lsbCBub3QgYmUgcGFyc2VkIGJ1dCBpbnN0ZWFkIHN0b3JlZCBpbiBlbmNvZGVkCiBmb3JtLiAgVGhlIGlubmVyIG1lc3NhZ2Ugd2lsbCBhY3R1YWxseSBiZSBwYXJzZWQgd2hlbiBpdCBpcyBmaXJzdCBhY2Nlc3NlZC4KCiBUaGlzIGlzIG9ubHkgYSBoaW50LiAgSW1wbGVtZW50YXRpb25zIGFyZSBmcmVlIHRvIGNob29zZSB3aGV0aGVyIHRvIHVzZQogZWFnZXIgb3IgbGF6eSBwYXJzaW5nIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uLiAgSG93ZXZlciwKIHNldHRpbmcgdGhpcyBvcHRpb24gdHJ1ZSBzdWdnZXN0cyB0aGF0IHRoZSBwcm90b2NvbCBhdXRob3IgYmVsaWV2ZXMgdGhhdAogdXNpbmcgbGF6eSBwYXJzaW5nIG9uIHRoaXMgZmllbGQgaXMgd29ydGggdGhlIGFkZGl0aW9uYWwgYm9va2tlZXBpbmcKIG92ZXJoZWFkIHR5cGljYWxseSBuZWVkZWQgdG8gaW1wbGVtZW50IGl0LgoKIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCB0aGUgcHVibGljIGludGVyZmFjZSBvZiBhbnkgZ2VuZXJhdGVkIGNvZGU7CiBhbGwgbWV0aG9kIHNpZ25hdHVyZXMgcmVtYWluIHRoZSBzYW1lLiAgRnVydGhlcm1vcmUsIHRocmVhZC1zYWZldHkgb2YgdGhlCiBpbnRlcmZhY2UgaXMgbm90IGFmZmVjdGVkIGJ5IHRoaXMgb3B0aW9uOyBjb25zdCBtZXRob2RzIHJlbWFpbiBzYWZlIHRvCiBjYWxsIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBjb25jdXJyZW50bHksIHdoaWxlIG5vbi1jb25zdCBtZXRob2RzIGNvbnRpbnVlCiB0byByZXF1aXJlIGV4Y2x1c2l2ZSBhY2Nlc3MuCgoKIE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzIHdpdGhpbgogYSBsYXp5IHN1Yi1tZXNzYWdlLiAgVGhhdCBpcywgY2FsbGluZyBJc0luaXRpYWxpemVkKCkgb24gdGhlIG91dGVyIG1lc3NhZ2UKIG1heSByZXR1cm4gdHJ1ZSBldmVuIGlmIHRoZSBpbm5lciBtZXNzYWdlIGhhcyBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkcy4KIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBpbm5lciBtZXNzYWdlIHdvdWxkIGhhdmUgdG8gYmUKIHBhcnNlZCBpbiBvcmRlciB0byBwZXJmb3JtIHRoZSBjaGVjaywgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIGxhenkKIHBhcnNpbmcuICBBbiBpbXBsZW1lbnRhdGlvbiB3aGljaCBjaG9vc2VzIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMKIG11c3QgYmUgY29uc2lzdGVudCBhYm91dCBpdC4gIFRoYXQgaXMsIGZvciBhbnkgcGFydGljdWxhciBzdWItbWVzc2FnZSwgdGhlCiBpbXBsZW1lbnRhdGlvbiBtdXN0IGVpdGhlciAqYWx3YXlzKiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCBvciAqbmV2ZXIqCiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBtZXNzYWdlIGhhcwogYmVlbiBwYXJzZWQuCgoNCgUEDAIDBBIE3AQCCgoNCgUEDAIDBRIE3AQLDwoNCgUEDAIDARIE3AQQFAoNCgUEDAIDAxIE3AQXGAoNCgUEDAIDCBIE3AQZKgoNCgUEDAIDBxIE3AQkKQroAQoEBAwCBBIE4gQCMRrZASBJcyB0aGlzIGZpZWxkIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgYWNjZXNzb3JzLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsIHRoaXMKIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgZmllbGRzLgoKDQoFBAwCBAQSBOIEAgoKDQoFBAwCBAUSBOIECw8KDQoFBAwCBAESBOIEEBoKDQoFBAwCBAMS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CgUEEQICARIEyQUfMwoNCgUEEQICAxIEyQU2OQpaCgMEEQUSBMwFAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQRBQASBMwFDRgKDQoFBBEFAAESBMwFDREKDQoFBBEFAAISBMwFFRgKiwMKAgQSEgbWBQDqBQEa/AIgQSBtZXNzYWdlIHJlcHJlc2VudGluZyBhIG9wdGlvbiB0aGUgcGFyc2VyIGRvZXMgbm90IHJlY29nbml6ZS4gVGhpcyBvbmx5CiBhcHBlYXJzIGluIG9wdGlvbnMgcHJvdG9zIGNyZWF0ZWQgYnkgdGhlIGNvbXBpbGVyOjpQYXJzZXIgY2xhc3MuCiBEZXNjcmlwdG9yUG9vbCByZXNvbHZlcyB0aGVzZSB3aGVuIGJ1aWxkaW5nIERlc2NyaXB0b3Igb2JqZWN0cy4gVGhlcmVmb3JlLAogb3B0aW9ucyBwcm90b3MgaW4gZGVzY3JpcHRvciBvYmplY3RzIChlLmcuIHJldHVybmVkIGJ5IERlc2NyaXB0b3I6Om9wdGlvbnMoKSwKIG9yIHByb2R1Y2VkIGJ5IERlc2NyaXB0b3I6OkNvcHlUbygpKSB3aWxsIG5ldmVyIGhhdmUgVW5pbnRlcnByZXRlZE9wdGlvbnMKIGluIHRoZW0uCgoLCgMEEgESBNYFCBsKywIKBAQSAwASBtwFAt8FAxq6AiBUaGUgbmFtZSBvZiB0aGUgdW5pbnRlcnByZXRlZCBvcHRpb24uICBFYWNoIHN0cmluZyByZXByZXNlbnRzIGEgc2VnbWVudCBpbgogYSBkb3Qtc2VwYXJhdGVkIG5hbWUuICBpc19leHRlbnNpb24gaXMgdHJ1ZSBpZmYgYSBzZWdtZW50IHJlcHJlc2VudHMgYW4KIGV4dGVuc2lvbiAoZGVub3RlZCB3aXRoIHBhcmVudGhlc2VzIGluIG9wdGlvbnMgc3BlY3MgaW4gLnByb3RvIGZpbGVzKS4KIEUuZy4seyBbImZvbyIsIGZhbHNlXSwgWyJiYXIuYmF6IiwgdHJ1ZV0sIFsicXV4IiwgZmFsc2VdIH0gcmVwcmVzZW50cwogImZvby4oYmFyLmJh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LCAwLCAxIF0gIFRoZSBuYW1lIChmb28pLgogICBbZyxoKSAgWyA0LCAwLCAyLCAwLCAzIF0gIFRoZSBudW1iZXIgKDEpLgoKIE5vdGVzOgogLSBBIGxvY2F0aW9uIG1heSByZWZlciB0byBhIHJlcGVhdGVkIGZpZWxkIGl0c2VsZiAoaS5lLiBub3QgdG8gYW55CiAgIHBhcnRpY3VsYXIgaW5kZXggd2l0aGluIGl0KS4gIFRoaXMgaXMgdXNlZCB3aGVuZXZlciBhIHNldCBvZiBlbGVtZW50cyBhcmUKICAgbG9naWNhbGx5IGVuY2xvc2VkIGluIGEgc2luZ2xlIGNvZGUgc2VnbWVudC4gIEZvciBleGFtcGxlLCBhbiBlbnRpcmUKICAgZXh0ZW5kIGJsb2NrIChwb3NzaWJseSBjb250YWluaW5nIG11bHRpcGxlIGV4dGVuc2lvbiBkZWZpbml0aW9ucykgd2lsbAogICBoYXZlIGFuIG91dGVyIGxvY2F0aW9uIHdob3NlIHBhdGggcmVmZXJzIHRvIHRoZSAiZXh0ZW5zaW9ucyIgcmVwZWF0ZWQKICAgZmllbGQgd2l0aG91dCBhbiBpbmRleC4KIC0gTXVsdGlwbGUgbG9jYXRpb25zIG1heSBoYXZlIHRoZSBzYW1lIHBhdGguICBUaGlzIGhhcHBlbnMgd2hlbiBhIHNpbmdsZQogICBsb2dpY2FsIGRlY2xhcmF0aW9uIGlzIHNwcmVhZCBvdXQgYWNyb3NzIG11bHRpcGxlIHBsYWNlcy4gIFRoZSBtb3N0CiAgIG9idmlvdXMgZXhhbXBsZSBpcyB0aGUgImV4dGVuZCIgYmxvY2sgYWdhaW4gLS0gdGhlcmUgbWF5IGJlIG11bHRpcGxlCiAgIGV4dGVuZCBibG9ja3MgaW4gdGhlIHNhbWUgc2NvcGUsIGVhY2ggb2Ygd2hpY2ggd2lsbCBoYXZlIHRoZSBzYW1lIHBhdGguCiAtIEEgbG9jYXRpb24ncyBzcGFuIGlzIG5vdCBhbHdheXMgYSBzdWJzZXQgb2YgaXRzIHBhcmVudCdzIHNwYW4uICBGb3IKICAgZXhhbXBsZSwgdGhlICJleHRlbmRlZSIgb2YgYW4gZXh0ZW5zaW9uIGRlY2xhcmF0aW9uIGFwcGVhcnMgYXQgdGhlCiAgIGJlZ2lubmluZyBvZiB0aGUgImV4dGVuZCIgYmxvY2sgYW5kIGlzIHNoYXJlZCBieSBhbGwgZXh0ZW5zaW9ucyB3aXRoaW4KICAgdGhlIGJsb2NrLgogLSBKdXN0IGJlY2F1c2UgYSBsb2NhdGlvbidzIHNwYW4gaXMgYSBzdWJzZXQgb2Ygc29tZSBvdGhlciBsb2NhdGlvbidzIHNwYW4KICAgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGEgZGVzY2VuZGFudC4gIEZvciBleGFtcGxlLCBhICJncm91cCIgZGVmaW5lcwogICBib3RoIGEgdHlwZSBhbmQgYSBmaWVsZCBpbiBhIHNpbmdsZSBkZWNsYXJhdGlvbi4gIFRodXMsIHRoZSBsb2NhdGlvbnMKICAgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZSBhbmQgZmllbGQgYW5kIHRoZWlyIGNvbXBvbmVudHMgd2lsbCBvdmVybGFwLgogLSBDb2RlIHdoaWNoIHRyaWVzIHRvIGludGVycHJldCBsb2NhdGlvbnMgc2hvdWxkIHByb2JhYmx5IGJlIGRlc2lnbmVkIHRvCiAgIGlnbm9yZSB0aG9zZSB0aGF0IGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCwgYXMgbW9yZSB0eXBlcyBvZiBsb2NhdGlvbnMgY291bGQKICAgYmUgcmVjb3JkZWQgaW4gdGhlIGZ1dHVyZS4KCg0KBQQTAgAEEgSdBgIKCg0KBQQTAgAGEgSdBgsTCg0KBQQTAgABEgSdBhQcCg0KBQQTAgADEgSdBh8gCg4KBAQTAwASBp4GAvEGAwoNCgUEEwMAARIEngYKEgqDBwoGBBMDAAIAEgS2BgQsGvIGIElkZW50aWZpZXMgd2hpY2ggcGFydCBvZiB0aGUgRmlsZURlc2NyaXB0b3JQcm90byB3YXMgZGVmaW5lZCBhdCB0aGlzCiBsb2NhdGlvbi4KCiBFYWNoIGVsZW1lbnQgaXMgYSBmaWVsZCBudW1iZXIgb3IgYW4gaW5kZXguICBUaGV5IGZvcm0gYSBwYXRoIGZyb20KIHRoZSByb290IEZpbGVEZXNjcmlwdG9yUHJvdG8gdG8gdGhlIHBsYWNlIHdoZXJlIHRoZSBkZWZpbml0aW9uLiAgRm9yCiBleGFtcGxlLCB0aGlzIHBhdGg6CiAgIFsgNCwgMywgMiwgNywgMSBdCiByZWZlcnMgdG86CiAgIGZpbGUubWVzc2FnZV90eXBlKDMpICAvLyA0LCAzCiAgICAgICAuZmllbGQoNykgICAgICAgICAvLyAyLCA3CiAgICAgICAubmFtZSgpICAgICAgICAgICAvLyAxCiBUaGlzIGlzIGJlY2F1c2UgRmlsZURlc2NyaXB0b3JQcm90by5tZXNzYWdlX3R5cGUgaGFzIGZpZWxkIG51bWJlciA0OgogICByZXBlYXRlZCBEZXNjcmlwdG9yUHJvdG8gbWVzc2FnZV90eXBlID0gNDsKIGFuZCBEZXNjcmlwdG9yUHJvdG8uZmllbGQgaGFzIGZpZWxkIG51bWJlciAyOgogICByZXBlYXRlZCBGaWVsZERlc2NyaXB0b3JQcm90byBmaWVsZCA9IDI7CiBhbmQgRmllbGREZXNjcmlwdG9yUHJvdG8ubmFtZSBoYXMgZmllbGQgbnVtYmVyIDE6CiAgIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMTsKCiBUaHVzLCB0aGUgYWJvdmUgcGF0aCBnaXZlcyB0aGUgbG9jYXRpb24gb2YgYSBmaWVsZCBuYW1lLiAgSWYgd2UgcmVtb3ZlZAogdGhlIGxhc3QgZWxlbWVudDoKICAgWyA0LCAzLCAyLCA3IF0KIHRoaXMgcGF0aCByZWZlcnMgdG8gdGhlIHdob2xlIGZpZWxkIGRlY2xhcmF0aW9uIChmcm9tIHRoZSBiZWdpbm5pbmcKIG9mIHRoZSBsYWJlbCB0byB0aGUgdGVybWluYXRpbmcgc2VtaWNvbG9uKS4KCg8KBwQTAwACAAQSBLYGBAwKDwoHBBMDAAIABRIEtgYNEgoPCgcEEwMAAgABEgS2BhMXCg8KBwQTAwACAAMSBLYGGhsKDwoHBBMDAAIACBIEtgYcKwoQCggEEwMAAgAIAhIEtgYdKgrSAgoGBBMDAAIBEgS9BgQsGsECIEFsd2F5cyBoYXMgZXhhY3RseSB0aHJlZSBvciBmb3VyIGVsZW1lbnRzOiBzdGFydCBsaW5lLCBzdGFydCBjb2x1bW4sCiBlbmQgbGluZSAob3B0aW9uYWwsIG90aGVyd2lzZSBhc3N1bWVkIHNhbWUgYXMgc3RhcnQgbGluZSksIGVuZCBjb2x1bW4uCiBUaGVzZSBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgZmllbGQgZm9yIGVmZmljaWVuY3kuICBOb3RlIHRoYXQgbGluZQogYW5kIGNvbHVtbiBudW1iZXJzIGFyZSB6ZXJvLWJhc2VkIC0tIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50IHRvIGFkZAogMSB0byBlYWNoIGJlZm9yZSBkaXNwbGF5aW5nIHRvIGEgdXNlci4KCg8KBwQTAwACAQQSBL0GBAwKDwoHBBMDAAIBBRIEvQYNEgoPCgcEEwMAAgEBEgS9BhMXCg8KBwQTAwACAQMSBL0GGhsKDwoHBBMDAAIBCBIEvQYcKwoQCggEEwMAAgEIAhIEvQYdKgqlDAoGBBMDAAICEgTuBgQpGpQMIElmIHRoaXMgU291cmNlQ29kZUluZm8gcmVwcmVzZW50cyBhIGNvbXBsZXRlIGRlY2xhcmF0aW9uLCB0aGVzZSBhcmUgYW55CiBjb21tZW50cyBhcHBlYXJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVjbGFyYXRpb24gd2hpY2ggYXBwZWFyIHRvIGJlCiBhdHRhY2hlZCB0byB0aGUgZGVjbGFyYXRpb24uCgogQSBzZXJpZXMgb2YgbGluZSBjb21tZW50cyBhcHBlYXJpbmcgb24gY29uc2VjdXRpdmUgbGluZXMsIHdpdGggbm8gb3RoZXIKIHRva2VucyBhcHBlYXJpbmcgb24gdGhvc2UgbGluZXMsIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBjb21tZW50LgoKIGxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMgd2lsbCBrZWVwIHBhcmFncmFwaHMgb2YgY29tbWVudHMgdGhhdCBhcHBlYXIKIGJlZm9yZSAoYnV0IG5vdCBjb25uZWN0ZWQgdG8pIHRoZSBjdXJyZW50IGVsZW1lbnQuIEVhY2ggcGFyYWdyYXBoLAogc2VwYXJhdGVkIGJ5IGVtcHR5IGxpbmVzLCB3aWxsIGJlIG9uZSBjb21tZW50IGVsZW1lbnQgaW4gdGhlIHJlcGVhdGVkCiBmaWVsZC4KCiBPbmx5IHRoZSBjb21tZW50IGNvbnRlbnQgaXMgcHJvdmlkZWQ7IGNvbW1lbnQgbWFya2VycyAoZS5nLiAvLykgYXJlCiBzdHJpcHBlZCBvdXQuICBGb3IgYmxvY2sgY29tbWVudHMsIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgYW4gYXN0ZXJpc2sKIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggbGluZSBvdGhlciB0aGFuIHRoZSBmaXJzdC4KIE5ld2xpbmVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LgoKIEV4YW1wbGVzOgoKICAgb3B0aW9uYWwgaW50MzIgZm9vID0gMTsgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gZm9vLgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhci4KICAgb3B0aW9uYWwgaW50MzIgYmFyID0gMjsKCiAgIG9wdGlvbmFsIHN0cmluZyBiYXogPSAzOwogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhei4KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIGJhei4KCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gcXV4LgogICAvLwogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gcXV4LgogICBvcHRpb25hbCBkb3VibGUgcXV4ID0gNDsKCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlLiBUaGlzIGlzIG5vdCBsZWFkaW5nIG9yIHRyYWlsaW5nIGNvbW1lbnRzCiAgIC8vIHRvIHF1eCBvciBjb3JnZSBiZWNhdXNlIHRoZXJlIGFyZSBibGFuayBsaW5lcyBzZXBhcmF0aW5nIGl0IGZyb20KICAgLy8gYm90aC4KCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlIHBhcmFncmFwaCAyLgoKICAgb3B0aW9uYWwgc3RyaW5nIGNvcmdlID0gNTsKICAgLyogQmxvY2sgY29tbWVudCBhdHRhY2hlZAogICAgKiB0byBjb3JnZS4gIExlYWRpbmcgYXN0ZXJpc2tzCiAgICAqIHdpbGwgYmUgcmVtb3ZlZC4gKi8KICAgLyogQmxvY2sgY29tbWVudCBhdHRhY2hl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bGQxGAEgASgJQg4IAcHgwx0t4XUKAgAAAFIGZmllbGQxEiEKC29uZW9mX2ZpZWxkGAIgASgFSABSCm9uZW9mRmllbGQiUwoGQW5FbnVtEhYKEkFORU5VTV9VTlNQRUNJRklFRBAAEg8KC0FORU5VTV9WQUwxEAESFgoLQU5FTlVNX1ZBTDIQAhoFsIb6BXsaCMX2yR3r/P//OhAIAODpwh3I//////////8BQhkKB0FuT25lb2YSDviswx2d//////////8BIhgKFkN1c3RvbU9wdGlvbkZvb1JlcXVlc3QiGQoXQ3VzdG9tT3B0aW9uRm9vUmVzcG9uc2UiHgocQ3VzdG9tT3B0aW9uRm9vQ2xpZW50TWVzc2FnZSIeChxDdXN0b21PcHRpb25Gb29TZXJ2ZXJNZXNzYWdlIo8BChpEdW1teU1lc3NhZ2VDb250YWluaW5nRW51bSJxCgxUZXN0RW51bVR5cGUSIAocVEVTVF9PUFRJT05fRU5VTV9VTlNQRUNJRklFRBAAEhoKFlRFU1RfT1BUSU9OX0VOVU1fVFlQRTEQFhIjChZURVNUX09QVElPTl9FTlVNX1RZUEUyEOn//////////wEiIQofRHVtbXlNZXNzYWdlSW52YWxpZEFzT3B0aW9uVHlwZSKKAQocQ3VzdG9tT3B0aW9uTWluSW50ZWdlclZhbHVlczpq0N6yHQDoxrIdgICAgPj/////AbC8sh2AgICAgICAgIABgJOyHQD49bAdAIDEsB3/////D/iXsB3///////////8BnfWvHQAAAACR7q8dAAAAAAAAAACtja8dAAAAgJnWqB0AAAAAAAAAgCKRAQocQ3VzdG9tT3B0aW9uTWF4SW50ZWdlclZhbHVlczpx0N6yHQHoxrId/////wewvLId//////////9/gJOyHf////8P+PWwHf///////////wGAxLAd/v///w/4l7Ad/v//////////AZ31rx3/////ke6vHf//////////rY2vHf///3+Z1qgd/////////38ibgoXQ3VzdG9tT3B0aW9uT3RoZXJWYWx1ZXM6U+jGsh2c//////////8B9d+jHeeHRUHp3KId+1mMQsrA8z+q3KIdDkhlbGxvLCAiV29ybGQistmiHQtIZWxsbwBXb3JsZIjZoh3p//////////8BIjQKHFNldHRpbmdSZWFsc0Zyb21Qb3NpdGl2ZUludHM6FPXfox0AAEBB6dyiHQAAAAAAQGNAIjQKHFNldHRpbmdSZWFsc0Zyb21OZWdhdGl2ZUludHM6FPXfox0AAEDB6dyiHQAAAAAAQGPAImIKEkNvbXBsZXhPcHRpb25UeXBlMRIQCgNmb28YASABKAVSA2ZvbxISCgRmb28yGAIgASgFUgRmb28yEhIKBGZvbzMYAyABKAVSBGZvbzMSEgoEZm9vNBgEIAMoBVIEZm9vNCKtAwoSQ29tcGxleE9wdGlvblR5cGUyEjcKA2JhchgBIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMVIDYmFyEhAKA2JhehgCIAEoBVIDYmF6EkwKBGZyZWQYAyABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIuQ29tcGxleE9wdGlvblR5cGU0UgRmcmVkElAKBmJhcm5leRgEIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0aW9uVHlwZTRSBmJhcm5leRqrAQoSQ29tcGxleE9wdGlvblR5cGU0EhQKBXdhbGRvGAEgASgFUgV3YWxkbzJ/Cgxjb21wbGV4X29wdDQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYivXRAyABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIuQ29tcGxleE9wdGlvblR5cGU0Ugtjb21wbGV4T3B0NCImChJDb21wbGV4T3B0aW9uVHlwZTMSEAoDcXV4GAEgASgFUgNxdXgibAoVVmFyaW91c0NvbXBsZXhPcHRpb25zOlOi4pUdAggqouKVHQIgY6LilR0CIFiq/ZAdAxDbB6r9kB0FCgMI5wXSqI8dAwizD6r9kB0FGgMIwQKq/ZAdBCICCGWq/ZAdBSIDCNQB+t6QHQIICSJXCglBZ2dyZWdhdGUSDAoBaRgBIAEoBVIBaRIMCgFzGAIgASgJUgFzEi4KA3N1YhgDIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIDc3ViImQKEEFnZ3JlZ2F0ZU1lc3NhZ2USNAoJZmllbGRuYW1lGAEgASgFQhbyoYc7ERIPRmllbGRBbm5vdGF0aW9uUglmaWVsZG5hbWU6GsLRhjsVCGUSEU1lc3NhZ2VBbm5vdGF0aW9uIqQBChBOZXN0ZWRPcHRpb25UeXBlGkgKDU5lc3RlZE1lc3NhZ2USLwoMbmVzdGVkX2ZpZWxkGAEgASgFQgzB4MMd6gMAAAAAAABSC25lc3RlZEZpZWxkOgbg6cId6QciRgoKTmVzdGVkRW51bRIPCgtVTlNQRUNJRklFRBAAEh0KEU5FU1RFRF9FTlVNX1ZBTFVFEAEaBrCG+gXsBxoIxfbJHesDAAAqUgoKTWV0aG9kT3B0MRIaChZNRVRIT0RPUFQxX1VOU1BFQ0lGSUVEEAASEwoPTUVUSE9ET1BUMV9WQUwxEAESEwoPTUVUSE9ET1BUMV9WQUwyEAIqXgoNQWdncmVnYXRlRW51bRIPCgtVTlNQRUNJRklFRBAAEiUKBVZBTFVFEAEaGsr8iTsVEhNFbnVtVmFsdWVBbm5vdGF0aW9uGhWSlYg7EBIORW51bUFubm90YXRpb24yjgEKHFRlc3RTZXJ2aWNlV2l0aEN1c3RvbU9wdGlvbnMSYwoDRm9vEikucHJvdG9idWZfdW5pdHRlc3QuQ3VzdG9tT3B0aW9uRm9vUmVxdWVzdBoqLnByb3RvYnVmX3VuaXR0ZXN0LkN1c3RvbU9wdGlvbkZvb1Jlc3BvbnNlIgXg+oweAhoJkLKLHtPbgMtJMpkBChBBZ2dyZWdhdGVTZXJ2aWNlEmsKBk1ldGhvZBIjLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZU1lc3NhZ2UaIy5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVNZXNzYWdlIhfKyJY7EhIQTWV0aG9kQW5ub3RhdGlvbhoYyvuOOxMSEVNlcnZpY2VBbm5vdGF0aW9uOjwKCWZpbGVfb3B0MRIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucxiOndgDIAEoBFIIZmlsZU9wdDE6RQoMbWVzc2FnZV9vcHQxEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJyt2AMgASgFUgttZXNzYWdlT3B0MTo/CgpmaWVsZF9vcHQxEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxiIvNgDIAEoBlIJZmllbGRPcHQxOj8KCm9uZW9mX29wdDESHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zGM+12AMgASgFUglvbmVvZk9wdDE6PAoJZW51bV9vcHQxEhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zGOie2QMgASgPUghlbnVtT3B0MTpLCg9lbnVtX3ZhbHVlX29wdDESIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9ucxjmoF8gASgFUg1lbnVtVmFsdWVPcHQxOkUKDHNlcnZpY2Vfb3B0MRIfLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlT3B0aW9ucxiituEDIAEoElILc2VydmljZU9wdDE6YQoLbWV0aG9kX29wdDESHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxisz+EDIAEoDjIdLnByb3RvYnVmX3VuaXR0ZXN0Lk1ldGhvZE9wdDFSCm1ldGhvZE9wdDE6PQoIYm9vbF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY6qvWAyABKAhSB2Jvb2xPcHQ6PwoJaW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGO2o1gMgASgFUghpbnQzMk9wdDo/CglpbnQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYxqfWAyABKANSCGludDY0T3B0OkEKCnVpbnQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYsKLWAyABKA1SCXVpbnQzMk9wdDpBCgp1aW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGN+O1gMgASgEUgl1aW50NjRPcHQ6QQoKc2ludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjAiNYDIAEoEVIJc2ludDMyT3B0OkEKCnNpbnQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY/4LWAyABKBJSCXNpbnQ2NE9wdDpDCgtmaXhlZDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjT/tUDIAEoB1IKZml4ZWQzMk9wdDpDCgtmaXhlZDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxji/dUDIAEoBlIKZml4ZWQ2NE9wdDpFCgxzZml4ZWQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY1fHVAyABKA9SC3NmaXhlZDMyT3B0OkUKDHNmaXhlZDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjjitUDIAEoEFILc2ZpeGVkNjRPcHQ6PwoJZmxvYXRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGP671AMgASgCUghmbG9hdE9wdDpBCgpkb3VibGVfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGM2r1AMgASgBUglkb3VibGVPcHQ6QQoKc3RyaW5nX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjFq9QDIAEoCVIJc3RyaW5nT3B0Oj8KCWJ5dGVzX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiWq9QDIAEoDFIIYnl0ZXNPcHQ6eQoIZW51bV9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYkavUAyABKA4yOi5wcm90b2J1Zl91bml0dGVzdC5EdW1teU1lc3NhZ2VDb250YWluaW5nRW51bS5UZXN0RW51bVR5cGVSB2VudW1PcHQ6gAEKEG1lc3NhZ2VfdHlwZV9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYr/LTAyABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5EdW1teU1lc3NhZ2VJbnZhbGlkQXNPcHRpb25UeXBlUg5tZXNzYWdlVHlwZU9wdDpsCgxjb21wbGV4X29wdDESHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYpNzSAyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTFSC2NvbXBsZXhPcHQxOmwKDGNvbXBsZXhfb3B0MhIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjVj9IDIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMlILY29tcGxleE9wdDI6bAoMY29tcGxleF9vcHQzEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGO+L0gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUzUgtjb21wbGV4T3B0MzpXCgdmaWxlb3B0EhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zGM/dsAcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgdmaWxlb3B0OlgKBm1zZ29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiY6rAHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIGbXNnb3B0OloKCGZpZWxkb3B0Eh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxie9LAHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIIZmllbGRvcHQ6VwoHZW51bW9wdBIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9ucxjSgrEHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIHZW51bW9wdDpiCgplbnVtdmFsb3B0EiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMYyZ+xByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSCmVudW12YWxvcHQ6YAoKc2VydmljZW9wdBIfLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlT3B0aW9ucxi577EHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIKc2VydmljZW9wdDpdCgltZXRob2RvcHQSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiJ6bIHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIJbWV0aG9kb3B0QlWqAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc/DowR3qrcDlJPrshTsqCGQSDkZpbGVBbm5vdGF0aW9uGhYSFE5lc3RlZEZpbGVBbm5vdGF0aW9uSqFRCgcSBSwAzwIBCvYQCgEMEgMsABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLTASBBdXRob3I6IGJlbmp5QGdvb2dsZS5jb20gKEJlbmp5IFdlaW5iZXJnZXIpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3Rv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cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyKCBBdXRob3I6IGxpdWppc2lAZ29vZ2xlLmNvbSAoUGhlcmwgTGl1KQoKCAoBAhIDIgAoCggKAQgSAyQAPgoJCgIIJRIDJAA+CgoKAgQAEgQmACgBCgoKAwQAARIDJggbCgsKBAQAAgASAycCFwoMCgUEAAIABBIDJwIKCgwKBQQAAgAFEgMnCxAKDAoFBAACAAESAycREgoMCgUEAAIAAxIDJxUWCt0WChV1bml0dGVzdF9pbXBvcnQucHJvdG8SH3Byb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIaHHVuaXR0ZXN0X2ltcG9ydF9wdWJsaWMucHJvdG8iHQoNSW1wb3J0TWVzc2FnZRIMCgFkGAEgASgFUgFkKjwKCkltcG9ydEVudW0SDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAkqMQoQSW1wb3J0RW51bUZvck1hcBILCgdVTktOT1dOEAASBwoDRk9PEAESBwoDQkFSEAJCKUgB+AEBqgIhR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3MuUHJvdG8ySscUCgYSBCQARAEKmA4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMskBIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3aGljaCBpcyBpbXBvcnRlZCBieSB1bml0dGVzdC5wcm90byB0byB0ZXN0IGltcG9ydGluZy4KCvUBCgECEgMqACga6gEgV2UgZG9uJ3QgcHV0IHRoaXMgaW4gYSBwYWNrYWdlIHdpdGhpbiBwcm90bzIgYmVjYXVzZSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZQogdGhhdCB0aGUgZ2VuZXJhdGVkIGNvZGUgZG9lc24ndCBkZXBlbmQgb24gYmVpbmcgaW4gdGhlIHByb3RvMiBuYW1lc3BhY2UuCiBJbiB0ZXN0X3V0aWwuaCB3ZSBkbwogInVzaW5nIG5hbWVzcGFjZSB1bml0dGVzdF9pbXBvcnQgPSBwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQiLgoKCAoBCBIDLAAcCgkKAggJEgMsABwKCAoBCBIDLQAfCgkKAggfEgMtAB8KCAoBCBIDLwA+CgkKAgglEgMvAD4KHwoCAwASAzIALRoUIFRlc3QgcHVibGljIGltcG9ydAoKCQoCCgASAzIHDQoKCgIEABIENAA2AQoKCgMEAAESAzQIFQoLCgQEAAIAEgM1AhcKDAoFBAACAAQSAzUCCgoMCgUEAAIABRIDNQsQCgwKBQQAAgABEgM1ERIKDAoFBAACAAMSAzUVFgoKCgIFABIEOAA8AQoKCgMFAAESAzgFDwoLCgQFAAIAEgM5AhEKDAoFBQACAAESAzkCDAoMCgUFAAIAAhIDOQ8QCgsKBAUAAgESAzoCEQoMCgUFAAIBARIDOgIMCgwKBQUAAgECEgM6DxAKCwoEBQACAhIDOwIRCgwKBQUAAgIBEgM7AgwKDAoFBQACAgISAzsPEApICgIFARIEQABEARo8IFRvIHVzZSBhbiBlbnVtIGluIGEgbWFwLCBpdCBtdXN0IGhhcyB0aGUgZmlyc3QgdmFsdWUgYXMgMC4KCgoKAwUBARIDQAUVCgsKBAUBAgASA0ECDgoMCgUFAQIAARIDQQIJCgwKBQUBAgACEgNBDA0KCwoEBQECARIDQgIKCgwKBQUBAgEBEgNCAgUKDAoFBQECAQISA0IICQoLCgQFAQICEgNDAgoKDAoFBQECAgESA0MCBQoMCgUFAQICAhIDQwgJUAAKgdMFCg51bml0dGVzdC5wcm90bxIYcHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yGhV1bml0dGVzdF9pbXBvcnQucHJvdG8ikSQKDFRlc3RBbGxUeXBlcxIlCg5vcHRpb25hbF9pbnQzMhgBIAEoBVINb3B0aW9uYWxJbnQzMhIlCg5vcHRpb25hbF9pbnQ2NBgCIAEoA1INb3B0aW9uYWxJbnQ2NBInCg9vcHRpb25hbF91aW50MzIYAyABKA1SDm9wdGlvbmFsVWludDMyEicKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBFIOb3B0aW9uYWxVaW50NjQSJwoPb3B0aW9uYWxfc2ludDMyGAUgASgRUg5vcHRpb25hbFNpbnQzMhInCg9vcHRpb25hbF9zaW50NjQYBiABKBJSDm9wdGlvbmFsU2ludDY0EikKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdSD29wdGlvbmFsRml4ZWQzMhIpChBvcHRpb25hbF9maXhlZDY0GAggASgGUg9vcHRpb25hbEZpeGVkNjQSKwoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA9SEG9wdGlvbmFsU2ZpeGVkMzISKwoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBSEG9wdGlvbmFsU2ZpeGVkNjQSJQoOb3B0aW9uYWxfZmxvYXQYCyABKAJSDW9wdGlvbmFsRmxvYXQSJwoPb3B0aW9uYWxfZG91YmxlGAwgASgBUg5vcHRpb25hbERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJaCg1vcHRpb25hbGdyb3VwGBAgASgKMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEmwKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USYgoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhZvcHRpb25hbEZvcmVpZ25NZXNzYWdlEmYKF29wdGlvbmFsX2ltcG9ydF9tZXNzYWdlGBQgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUhVvcHRpb25hbEltcG9ydE1lc3NhZ2USYwoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEm9wdGlvbmFsTmVzdGVkRW51bRJZChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SE29wdGlvbmFsRm9yZWlnbkVudW0SXQoUb3B0aW9uYWxfaW1wb3J0X2VudW0YFyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SEm9wdGlvbmFsSW1wb3J0RW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSeQoeb3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNzYWdlGBogASgLMjQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5QdWJsaWNJbXBvcnRNZXNzYWdlUhtvcHRpb25hbFB1YmxpY0ltcG9ydE1lc3NhZ2USbAoVb3B0aW9uYWxfbGF6eV9tZXNzYWdlGBsgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVITb3B0aW9uYWxMYXp5TWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJaCg1yZXBlYXRlZGdyb3VwGC4gAygKMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5SZXBlYXRlZEdyb3VwUg1yZXBlYXRlZGdyb3VwEmwKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USYgoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEmYKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUhVyZXBlYXRlZEltcG9ydE1lc3NhZ2USYwoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJZChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SE3JlcGVhdGVkRm9yZWlnbkVudW0SXQoUcmVwZWF0ZWRfaW1wb3J0X2VudW0YNSADKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SEnJlcGVhdGVkSW1wb3J0RW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSbAoVcmVwZWF0ZWRfbGF6eV9tZXNzYWdlGDkgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVITcmVwZWF0ZWRMYXp5TWVzc2FnZRInCg1kZWZhdWx0X2ludDMyGD0gASgFOgI0MVIMZGVmYXVsdEludDMyEicKDWRlZmF1bHRfaW50NjQYPiABKAM6AjQyUgxkZWZhdWx0SW50NjQSKQoOZGVmYXVsdF91aW50MzIYPyABKA06AjQzUg1kZWZhdWx0VWludDMyEikKDmRlZmF1bHRfdWludDY0GEAgASgEOgI0NFINZGVmYXVsdFVpbnQ2NBIqCg5kZWZhdWx0X3NpbnQzMhhBIAEoEToDLTQ1Ug1kZWZhdWx0U2ludDMyEikKDmRlZmF1bHRfc2ludDY0GEIgASgSOgI0NlINZGVmYXVsdFNpbnQ2NBIrCg9kZWZhdWx0X2ZpeGVkMzIYQyABKAc6AjQ3Ug5kZWZhdWx0Rml4ZWQzMhIrCg9kZWZhdWx0X2ZpeGVkNjQYRCABKAY6AjQ4Ug5kZWZhdWx0Rml4ZWQ2NBItChBkZWZhdWx0X3NmaXhlZDMyGEUgASgPOgI0OVIPZGVmYXVsdFNmaXhlZDMyEi4KEGRlZmF1bHRfc2ZpeGVkNjQYRiABKBA6Ay01MFIPZGVmYXVsdFNmaXhlZDY0EikKDWRlZmF1bHRfZmxvYXQYRyABKAI6BDUxLjVSDGRlZmF1bHRGbG9hdBIsCg5kZWZhdWx0X2RvdWJsZRhIIAEoAToFNTIwMDBSDWRlZmF1bHREb3VibGUSJwoMZGVmYXVsdF9ib29sGEkgASgIOgR0cnVlUgtkZWZhdWx0Qm9vbBIsCg5kZWZhdWx0X3N0cmluZxhKIAEoCToFaGVsbG9SDWRlZmF1bHRTdHJpbmcSKgoNZGVmYXVsdF9ieXRlcxhLIAEoDDoFd29ybGRSDGRlZmF1bHRCeXRlcxJmChNkZWZhdWx0X25lc3RlZF9lbnVtGFEgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtOgNCQVJSEWRlZmF1bHROZXN0ZWRFbnVtEmQKFGRlZmF1bHRfZm9yZWlnbl9lbnVtGFIgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUlISZGVmYXVsdEZvcmVpZ25FbnVtEmcKE2RlZmF1bHRfaW1wb3J0X2VudW0YUyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW06CklNUE9SVF9CQVJSEWRlZmF1bHRJbXBvcnRFbnVtEjkKFGRlZmF1bHRfc3RyaW5nX3BpZWNlGFQgASgJOgNhYmNCAggCUhJkZWZhdWx0U3RyaW5nUGllY2USKgoMZGVmYXVsdF9jb3JkGFUgASgJOgMxMjNCAggBUgtkZWZhdWx0Q29yZBIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzISaAoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzGh8KDU5lc3RlZE1lc3NhZ2USDgoCYmIYASABKAVSAmJiGh0KDU9wdGlvbmFsR3JvdXASDAoBYRgRIAEoBVIBYRodCg1SZXBlYXRlZEdyb3VwEgwKAWEYLyABKAVSAWEiOQoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCLvAQoSTmVzdGVkVGVzdEFsbFR5cGVzEkIKBWNoaWxkGAEgASgLMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLk5lc3RlZFRlc3RBbGxUeXBlc1IFY2hpbGQSQAoHcGF5bG9hZBgCIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSB3BheWxvYWQSUwoOcmVwZWF0ZWRfY2hpbGQYAyADKAsyLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuTmVzdGVkVGVzdEFsbFR5cGVzUg1yZXBlYXRlZENoaWxkIpYBChRUZXN0RGVwcmVjYXRlZEZpZWxkcxItChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYAVIPZGVwcmVjYXRlZEludDMyEj8KGWRlcHJlY2F0ZWRfaW50MzJfaW5fb25lb2YYAiABKAVCAhgBSABSFmRlcHJlY2F0ZWRJbnQzMkluT25lb2ZCDgoMb25lb2ZfZmllbGRzIhsKFVRlc3REZXByZWNhdGVkTWVzc2FnZToCGAEiLAoORm9yZWlnbk1lc3NhZ2USDAoBYxgBIAEoBVIBYxIMCgFkGAIgASgFUgFkIjAKElRlc3RSZXNlcnZlZEZpZWxkc0oECAIQA0oECA8QEEoECAkQDFIDYmFyUgNiYXoiHQoRVGVzdEFsbEV4dGVuc2lvbnMqCAgBEICAgIACIicKF09wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uEgwKAWEYESABKAVSAWEiJwoXUmVwZWF0ZWRHcm91cF9leHRlbnNpb24SDAoBYRgvIAEoBVIBYSLeAQoJVGVzdEdyb3VwElcKDW9wdGlvbmFsZ3JvdXAYECABKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEdyb3VwLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXASWQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtGh0KDU9wdGlvbmFsR3JvdXASDAoBYRgRIAEoBVIBYSIeChJUZXN0R3JvdXBFeHRlbnNpb24qCAgBEICAgIACIrgEChNUZXN0TmVzdGVkRXh0ZW5zaW9uGicKF09wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uEgwKAWEYESABKAVSAWEyRgoEdGVzdBIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxjqByABKAk6BHRlc3RSBHRlc3QyZAoXbmVzdGVkX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6wcgASgJUhVuZXN0ZWRTdHJpbmdFeHRlbnNpb24yrAEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RHcm91cEV4dGVuc2lvbhgQIAEoCjJFLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TmVzdGVkRXh0ZW5zaW9uLk9wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uUhZvcHRpb25hbGdyb3VwRXh0ZW5zaW9uMpoBCh9vcHRpb25hbF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RHcm91cEV4dGVuc2lvbhgWIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIcb3B0aW9uYWxGb3JlaWduRW51bUV4dGVuc2lvbiKQCAoMVGVzdFJlcXVpcmVkEgwKAWEYASACKAVSAWESFgoGZHVtbXkyGAIgASgFUgZkdW1teTISDAoBYhgDIAIoBVIBYhIWCgZkdW1teTQYBCABKAVSBmR1bW15NBIWCgZkdW1teTUYBSABKAVSBmR1bW15NRIWCgZkdW1teTYYBiABKAVSBmR1bW15NhIWCgZkdW1teTcYByABKAVSBmR1bW15NxIWCgZkdW1teTgYCCABKAVSBmR1bW15OBIWCgZkdW1teTkYCSABKAVSBmR1bW15ORIYCgdkdW1teTEwGAogASgFUgdkdW1teTEwEhgKB2R1bW15MTEYCyABKAVSB2R1bW15MTESGAoHZHVtbXkxMhgMIAEoBVIHZHVtbXkxMhIYCgdkdW1teTEzGA0gASgFUgdkdW1teTEzEhgKB2R1bW15MTQYDiABKAVSB2R1bW15MTQSGAoHZHVtbXkxNRgPIAEoBVIHZHVtbXkxNRIYCgdkdW1teTE2GBAgASgFUgdkdW1teTE2EhgKB2R1bW15MTcYESABKAVSB2R1bW15MTcSGAoHZHVtbXkxOBgSIAEoBVIHZHVtbXkxOBIYCgdkdW1teTE5GBMgASgFUgdkdW1teTE5EhgKB2R1bW15MjAYFCABKAVSB2R1bW15MjASGAoHZHVtbXkyMRgVIAEoBVIHZHVtbXkyMRIYCgdkdW1teTIyGBYgASgFUgdkdW1teTIyEhgKB2R1bW15MjMYFyABKAVSB2R1bW15MjMSGAoHZHVtbXkyNBgYIAEoBVIHZHVtbXkyNBIYCgdkdW1teTI1GBkgASgFUgdkdW1teTI1EhgKB2R1bW15MjYYGiABKAVSB2R1bW15MjYSGAoHZHVtbXkyNxgbIAEoBVIHZHVtbXkyNxIYCgdkdW1teTI4GBwgASgFUgdkdW1teTI4EhgKB2R1bW15MjkYHSABKAVSB2R1bW15MjkSGAoHZHVtbXkzMBgeIAEoBVIHZHVtbXkzMBIYCgdkdW1teTMxGB8gASgFUgdkdW1teTMxEhgKB2R1bW15MzIYICABKAVSB2R1bW15MzISDAoBYxghIAIoBVIBYzJsCgZzaW5nbGUSKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6AcgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIGc2luZ2xlMmoKBW11bHRpEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOkHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSBW11bHRpItEBChNUZXN0UmVxdWlyZWRGb3JlaWduElEKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9vcHRpb25hbE1lc3NhZ2USUQoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD3JlcGVhdGVkTWVzc2FnZRIUCgVkdW1teRgDIAEoBVIFZHVtbXkijgIKE1Rlc3RSZXF1aXJlZE1lc3NhZ2USUQoQb3B0aW9uYWxfbWVzc2FnZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD29wdGlvbmFsTWVzc2FnZRJRChByZXBlYXRlZF9tZXNzYWdlGAIgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPcmVwZWF0ZWRNZXNzYWdlElEKEHJlcXVpcmVkX21lc3NhZ2UYAyACKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9yZXF1aXJlZE1lc3NhZ2UicAoRVGVzdEZvcmVpZ25OZXN0ZWQSWwoOZm9yZWlnbl9uZXN0ZWQYASABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSDWZvcmVpZ25OZXN0ZWQiEgoQVGVzdEVtcHR5TWVzc2FnZSIqCh5UZXN0RW1wdHlNZXNzYWdlV2l0aEV4dGVuc2lvbnMqCAgBEICAgIACIjcKG1Rlc3RNdWx0aXBsZUV4dGVuc2lvblJhbmdlcyoECCoQKyoGCK8gEJQhKgoIgIAEEICAgIACIjsKGFRlc3RSZWFsbHlMYXJnZVRhZ051bWJlchIMCgFhGAEgASgFUgFhEhEKAmJiGP///38gASgFUgJiYiJiChRUZXN0UmVjdXJzaXZlTWVzc2FnZRI8CgFhGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZWN1cnNpdmVNZXNzYWdlUgFhEgwKAWkYAiABKAVSAWkirwMKFFRlc3RNdXR1YWxSZWN1cnNpb25BEj4KAmJiGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25CUgJiYhJTCghzdWJncm91cBgCIAEoCjI3LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQS5TdWJHcm91cFIIc3ViZ3JvdXAaSgoKU3ViTWVzc2FnZRI8CgFiGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25CUgFiGrUBCghTdWJHcm91cBJaCgtzdWJfbWVzc2FnZRgDIAEoCzI5LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQS5TdWJNZXNzYWdlUgpzdWJNZXNzYWdlEk0KD25vdF9pbl90aGlzX3NjYxgEIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSDG5vdEluVGhpc1NjYyJ7ChRUZXN0TXV0dWFsUmVjdXJzaW9uQhI8CgFhGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25BUgFhEiUKDm9wdGlvbmFsX2ludDMyGAIgASgFUg1vcHRpb25hbEludDMyIvIBChFUZXN0SXNJbml0aWFsaXplZBJXCgtzdWJfbWVzc2FnZRgBIAEoCzI2LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SXNJbml0aWFsaXplZC5TdWJNZXNzYWdlUgpzdWJNZXNzYWdlGoMBCgpTdWJNZXNzYWdlElsKCHN1Ymdyb3VwGAEgASgKMj8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RJc0luaXRpYWxpemVkLlN1Yk1lc3NhZ2UuU3ViR3JvdXBSCHN1Ymdyb3VwGhgKCFN1Ykdyb3VwEgwKAWkYAiACKAVSAWki1AEKElRlc3REdXBGaWVsZE51bWJlchIMCgFhGAEgASgFUgFhEkIKA2ZvbxgCIAEoCjIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHVwRmllbGROdW1iZXIuRm9vUgNmb28SQgoDYmFyGAMgASgKMjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REdXBGaWVsZE51bWJlci5CYXJSA2JhchoTCgNGb28SDAoBYRgBIAEoBVIBYRoTCgNCYXISDAoBYRgBIAEoBVIBYSJfChBUZXN0RWFnZXJNZXNzYWdlEksKC3N1Yl9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0ICKABSCnN1Yk1lc3NhZ2UiXgoPVGVzdExhenlNZXNzYWdlEksKC3N1Yl9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0ICKAFSCnN1Yk1lc3NhZ2Ui5gIKGFRlc3ROZXN0ZWRNZXNzYWdlSGFzQml0cxJ4ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgBIAEoCzJALnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TmVzdGVkTWVzc2FnZUhhc0JpdHMuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlGs8BCg1OZXN0ZWRNZXNzYWdlEkAKHG5lc3RlZG1lc3NhZ2VfcmVwZWF0ZWRfaW50MzIYASADKAVSGm5lc3RlZG1lc3NhZ2VSZXBlYXRlZEludDMyEnwKJW5lc3RlZG1lc3NhZ2VfcmVwZWF0ZWRfZm9yZWlnbm1lc3NhZ2UYAiADKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSI25lc3RlZG1lc3NhZ2VSZXBlYXRlZEZvcmVpZ25tZXNzYWdlItcFChdUZXN0Q2FtZWxDYXNlRmllbGROYW1lcxImCg5QcmltaXRpdmVGaWVsZBgBIAEoBVIOUHJpbWl0aXZlRmllbGQSIAoLU3RyaW5nRmllbGQYAiABKAlSC1N0cmluZ0ZpZWxkEkMKCUVudW1GaWVsZBgDIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIJRW51bUZpZWxkEkwKDE1lc3NhZ2VGaWVsZBgEIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIMTWVzc2FnZUZpZWxkEi4KEFN0cmluZ1BpZWNlRmllbGQYBSABKAlCAggCUhBTdHJpbmdQaWVjZUZpZWxkEiAKCUNvcmRGaWVsZBgGIAEoCUICCAFSCUNvcmRGaWVsZBI2ChZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkGAcgAygFUhZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkEjAKE1JlcGVhdGVkU3RyaW5nRmllbGQYCCADKAlSE1JlcGVhdGVkU3RyaW5nRmllbGQSUwoRUmVwZWF0ZWRFbnVtRmllbGQYCSADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SEVJlcGVhdGVkRW51bUZpZWxkElwKFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAogAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhRSZXBlYXRlZE1lc3NhZ2VGaWVsZBI+ChhSZXBlYXRlZFN0cmluZ1BpZWNlRmllbGQYCyADKAlCAggCUhhSZXBlYXRlZFN0cmluZ1BpZWNlRmllbGQSMAoRUmVwZWF0ZWRDb3JkRmllbGQYDCADKAlCAggBUhFSZXBlYXRlZENvcmRGaWVsZCKVAgoSVGVzdEZpZWxkT3JkZXJpbmdzEhsKCW15X3N0cmluZxgLIAEoCVIIbXlTdHJpbmcSFQoGbXlfaW50GAEgASgDUgVteUludBIZCghteV9mbG9hdBhlIAEoAlIHbXlGbG9hdBJzChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRjIASABKAsyOi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRovCg1OZXN0ZWRNZXNzYWdlEg4KAm9vGAIgASgDUgJvbxIOCgJiYhgBIAEoBVICYmIqBAgCEAsqBAgMEGUiyAEKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MxEhsKCW15X3N0cmluZxgBIAEoCVIIbXlTdHJpbmcyjwEKE3Rlc3RfZXh0X29yZGVyaW5nczESLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGA0gASgLMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MxUhF0ZXN0RXh0T3JkZXJpbmdzMSKrAwoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczISGwoJbXlfc3RyaW5nGAEgASgJUghteVN0cmluZxrgAQoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczMSGwoJbXlfc3RyaW5nGAEgASgJUghteVN0cmluZzKnAQoTdGVzdF9leHRfb3JkZXJpbmdzMxIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYDiABKAsySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczNSEXRlc3RFeHRPcmRlcmluZ3MzMo8BChN0ZXN0X2V4dF9vcmRlcmluZ3MyEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgMIAEoCzIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMlIRdGVzdEV4dE9yZGVyaW5nczIirwoKGFRlc3RFeHRyZW1lRGVmYXVsdFZhbHVlcxJNCg1lc2NhcGVkX2J5dGVzGAEgASgMOihcMDAwXDAwMVwwMDdcMDEwXDAxNFxuXHJcdFwwMTNcXFwnXCJcMzc2Ugxlc2NhcGVkQnl0ZXMSLQoMbGFyZ2VfdWludDMyGAIgASgNOgo0Mjk0OTY3Mjk1UgtsYXJnZVVpbnQzMhI3CgxsYXJnZV91aW50NjQYAyABKAQ6FDE4NDQ2NzQ0MDczNzA5NTUxNjE1UgtsYXJnZVVpbnQ2NBIsCgtzbWFsbF9pbnQzMhgEIAEoBToLLTIxNDc0ODM2NDdSCnNtYWxsSW50MzISNQoLc21hbGxfaW50NjQYBSABKAM6FC05MjIzMzcyMDM2ODU0Nzc1ODA3UgpzbWFsbEludDY0EjkKEnJlYWxseV9zbWFsbF9pbnQzMhgVIAEoBToLLTIxNDc0ODM2NDhSEHJlYWxseVNtYWxsSW50MzISQgoScmVhbGx5X3NtYWxsX2ludDY0GBYgASgDOhQtOTIyMzM3MjAzNjg1NDc3NTgwOFIQcmVhbGx5U21hbGxJbnQ2NBIkCgt1dGY4X3N0cmluZxgGIAEoCToD4Yi0Ugp1dGY4U3RyaW5nEiAKCnplcm9fZmxvYXQYByABKAI6ATBSCXplcm9GbG9hdBIeCglvbmVfZmxvYXQYCCABKAI6ATFSCG9uZUZsb2F0EiQKC3NtYWxsX2Zsb2F0GAkgASgCOgMxLjVSCnNtYWxsRmxvYXQSMAoSbmVnYXRpdmVfb25lX2Zsb2F0GAogASgCOgItMVIQbmVnYXRpdmVPbmVGbG9hdBIrCg5uZWdhdGl2ZV9mbG9hdBgLIAEoAjoELTEuNVINbmVnYXRpdmVGbG9hdBImCgtsYXJnZV9mbG9hdBgMIAEoAjoFMmUrMDhSCmxhcmdlRmxvYXQSOAoUc21hbGxfbmVnYXRpdmVfZmxvYXQYDSABKAI6Bi04ZS0yOFISc21hbGxOZWdhdGl2ZUZsb2F0EiIKCmluZl9kb3VibGUYDiABKAE6A2luZlIJaW5mRG91YmxlEioKDm5lZ19pbmZfZG91YmxlGA8gASgBOgQtaW5mUgxuZWdJbmZEb3VibGUSIgoKbmFuX2RvdWJsZRgQIAEoAToDbmFuUgluYW5Eb3VibGUSIAoJaW5mX2Zsb2F0GBEgASgCOgNpbmZSCGluZkZsb2F0EigKDW5lZ19pbmZfZmxvYXQYEiABKAI6BC1pbmZSC25lZ0luZkZsb2F0EiAKCW5hbl9mbG9hdBgTIAEoAjoDbmFuUghuYW5GbG9hdBI4CgxjcHBfdHJpZ3JhcGgYFCABKAk6FT8gPyA/PyA/PyA/Pz8gPz8vID8/LVILY3BwVHJpZ3JhcGgSMAoQc3RyaW5nX3dpdGhfemVybxgXIAEoCToGaGVsAGxvUg5zdHJpbmdXaXRoWmVybxIxCg9ieXRlc193aXRoX3plcm8YGCABKAw6CXdvclwwMDBsZFINYnl0ZXNXaXRoWmVybxI9ChZzdHJpbmdfcGllY2Vfd2l0aF96ZXJvGBkgASgJOgRhYgBjQgIIAlITc3RyaW5nUGllY2VXaXRoWmVybxIuCg5jb3JkX3dpdGhfemVybxgaIAEoCToEMTIAM0ICCAFSDGNvcmRXaXRoWmVybxI5ChJyZXBsYWNlbWVudF9zdHJpbmcYGyABKAk6CiR7dW5rbm93bn1SEXJlcGxhY2VtZW50U3RyaW5nIl4KEVNwYXJzZUVudW1NZXNzYWdlEkkKC3NwYXJzZV9lbnVtGAEgASgOMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RTcGFyc2VFbnVtUgpzcGFyc2VFbnVtIh8KCU9uZVN0cmluZxISCgRkYXRhGAEgASgJUgRkYXRhIiAKCk1vcmVTdHJpbmcSEgoEZGF0YRgBIAMoCVIEZGF0YSIeCghPbmVCeXRlcxISCgRkYXRhGAEgASgMUgRkYXRhIh8KCU1vcmVCeXRlcxISCgRkYXRhGAEgAygMUgRkYXRhIiIKDEludDMyTWVzc2FnZRISCgRkYXRhGAEgASgFUgRkYXRhIiMKDVVpbnQzMk1lc3NhZ2USEgoEZGF0YRgBIAEoDVIEZGF0YSIiCgxJbnQ2NE1lc3NhZ2USEgoEZGF0YRgBIAEoA1IEZGF0YSIjCg1VaW50NjRNZXNzYWdlEhIKBGRhdGEYASABKARSBGRhdGEiIQoLQm9vbE1lc3NhZ2USEgoEZGF0YRgBIAEoCFIEZGF0YSKNAgoJVGVzdE9uZW9mEhkKB2Zvb19pbnQYASABKAVIAFIGZm9vSW50Eh8KCmZvb19zdHJpbmcYAiABKAlIAFIJZm9vU3RyaW5nEkkKC2Zvb19tZXNzYWdlGAMgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0gAUgpmb29NZXNzYWdlEkoKCGZvb2dyb3VwGAQgASgKMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZi5Gb29Hcm91cEgAUghmb29ncm91cBomCghGb29Hcm91cBIMCgFhGAUgASgFUgFhEgwKAWIYBiABKAlSAWJCBQoDZm9vIqQCChxUZXN0T25lb2ZCYWNrd2FyZHNDb21wYXRpYmxlEhcKB2Zvb19pbnQYASABKAVSBmZvb0ludBIdCgpmb29fc3RyaW5nGAIgASgJUglmb29TdHJpbmcSRwoLZm9vX21lc3NhZ2UYAyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgpmb29NZXNzYWdlElsKCGZvb2dyb3VwGAQgASgKMj8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZkJhY2t3YXJkc0NvbXBhdGlibGUuRm9vR3JvdXBSCGZvb2dyb3VwGiYKCEZvb0dyb3VwEgwKAWEYBSABKAVSAWESDAoBYhgGIAEoCVIBYiKQCAoKVGVzdE9uZW9mMhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxIfCghmb29fY29yZBgDIAEoCUICCAFIAFIHZm9vQ29yZBIuChBmb29fc3RyaW5nX3BpZWNlGAQgASgJQgIIAkgAUg5mb29TdHJpbmdQaWVjZRIdCglmb29fYnl0ZXMYBSABKAxIAFIIZm9vQnl0ZXMSTAoIZm9vX2VudW0YBiABKA4yLy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtSABSB2Zvb0VudW0SVQoLZm9vX21lc3NhZ2UYByABKAsyMi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRNZXNzYWdlSABSCmZvb01lc3NhZ2USSwoIZm9vZ3JvdXAYCCABKAoyLS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5Gb29Hcm91cEgAUghmb29ncm91cBJiChBmb29fbGF6eV9tZXNzYWdlGAsgASgLMjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkTWVzc2FnZUICKAFIAFIOZm9vTGF6eU1lc3NhZ2USHAoHYmFyX2ludBgMIAEoBToBNUgBUgZiYXJJbnQSJwoKYmFyX3N0cmluZxgNIAEoCToGU1RSSU5HSAFSCWJhclN0cmluZxIlCghiYXJfY29yZBgOIAEoCToEQ09SREICCAFIAVIHYmFyQ29yZBI2ChBiYXJfc3RyaW5nX3BpZWNlGA8gASgJOgZTUElFQ0VCAggCSAFSDmJhclN0cmluZ1BpZWNlEiQKCWJhcl9ieXRlcxgQIAEoDDoFQllURVNIAVIIYmFyQnl0ZXMSUQoIYmFyX2VudW0YESABKA4yLy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtOgNCQVJIAVIHYmFyRW51bRIXCgdiYXpfaW50GBIgASgFUgZiYXpJbnQSIgoKYmF6X3N0cmluZxgTIAEoCToDQkFaUgliYXpTdHJpbmcaJgoIRm9vR3JvdXASDAoBYRgJIAEoBVIBYRIMCgFiGAogASgJUgFiGkUKDU5lc3RlZE1lc3NhZ2USFwoHcXV4X2ludBgBIAEoA1IGcXV4SW50EhsKCWNvcmdlX2ludBgCIAMoBVIIY29yZ2VJbnQiJwoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQA0IFCgNmb29CBQoDYmFyIu4BChFUZXN0UmVxdWlyZWRPbmVvZhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxJcCgtmb29fbWVzc2FnZRgDIAEoCzI5LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRPbmVvZi5OZXN0ZWRNZXNzYWdlSABSCmZvb01lc3NhZ2UaOAoNTmVzdGVkTWVzc2FnZRInCg9yZXF1aXJlZF9kb3VibGUYASACKAFSDnJlcXVpcmVkRG91YmxlQgUKA2ZvbyKAAgoPVGVzdFJlcXVpcmVkTWFwEkQKA2ZvbxgBIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRNYXAuRm9vRW50cnlSA2ZvbxpvCghGb29FbnRyeRIQCgNrZXkYASABKAVSA2tleRJNCgV2YWx1ZRgCIAEoCzI3LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRNYXAuTmVzdGVkTWVzc2FnZVIFdmFsdWU6AjgBGjYKDU5lc3RlZE1lc3NhZ2USJQoOcmVxdWlyZWRfaW50MzIYASACKAVSDXJlcXVpcmVkSW50MzIi9AQKD1Rlc3RQYWNrZWRUeXBlcxIlCgxwYWNrZWRfaW50MzIYWiADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYWyADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGFwgAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYXSADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhheIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGGIgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GGQgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhlIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhmIAMoCEICEAFSCnBhY2tlZEJvb2wSSgoLcGFja2VkX2VudW0YZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhABUgpwYWNrZWRFbnVtIq4FChFUZXN0VW5wYWNrZWRUeXBlcxIpCg51bnBhY2tlZF9pbnQzMhhaIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWyADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhcIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhdIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhheIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBhfIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYYCADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGQgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZSADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGYgAygIQgIQAFIMdW5wYWNrZWRCb29sEk4KDXVucGFja2VkX2VudW0YZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhAAUgx1bnBhY2tlZEVudW0iIAoUVGVzdFBhY2tlZEV4dGVuc2lvbnMqCAgBEICAgIACIiIKFlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMqCAgBEICAgIACIsgFChVUZXN0RHluYW1pY0V4dGVuc2lvbnMSKgoQc2NhbGFyX2V4dGVuc2lvbhjQDyABKAdSD3NjYWxhckV4dGVuc2lvbhJNCg5lbnVtX2V4dGVuc2lvbhjRDyABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SDWVudW1FeHRlbnNpb24SdgoWZHluYW1pY19lbnVtX2V4dGVuc2lvbhjSDyABKA4yPy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdER5bmFtaWNFeHRlbnNpb25zLkR5bmFtaWNFbnVtVHlwZVIUZHluYW1pY0VudW1FeHRlbnNpb24SVgoRbWVzc2FnZV9leHRlbnNpb24Y0w8gASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhBtZXNzYWdlRXh0ZW5zaW9uEn8KGWR5bmFtaWNfbWVzc2FnZV9leHRlbnNpb24Y1A8gASgLMkIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljTWVzc2FnZVR5cGVSF2R5bmFtaWNNZXNzYWdlRXh0ZW5zaW9uEi4KEnJlcGVhdGVkX2V4dGVuc2lvbhjVDyADKAlSEXJlcGVhdGVkRXh0ZW5zaW9uEi4KEHBhY2tlZF9leHRlbnNpb24Y1g8gAygRQgIQAVIPcGFja2VkRXh0ZW5zaW9uGjoKEkR5bmFtaWNNZXNzYWdlVHlwZRIkCg1keW5hbWljX2ZpZWxkGLQQIAEoBVIMZHluYW1pY0ZpZWxkIkcKD0R5bmFtaWNFbnVtVHlwZRIQCgtEWU5BTUlDX0ZPTxCYERIQCgtEWU5BTUlDX0JBUhCZERIQCgtEWU5BTUlDX0JBWhCaESKfAgojVGVzdFJlcGVhdGVkU2NhbGFyRGlmZmVyZW50VGFnU2l6ZXMSKQoQcmVwZWF0ZWRfZml4ZWQzMhgMIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEiUKDnJlcGVhdGVkX2ludDMyGA0gAygFUg1yZXBlYXRlZEludDMyEioKEHJlcGVhdGVkX2ZpeGVkNjQY/g8gAygGUg9yZXBlYXRlZEZpeGVkNjQSJgoOcmVwZWF0ZWRfaW50NjQY/w8gAygDUg1yZXBlYXRlZEludDY0EicKDnJlcGVhdGVkX2Zsb2F0GP7/DyADKAJSDXJlcGVhdGVkRmxvYXQSKQoPcmVwZWF0ZWRfdWludDY0GP//DyADKARSDnJlcGVhdGVkVWludDY0IuMMChBUZXN0UGFyc2luZ01lcmdlElQKEnJlcXVpcmVkX2FsbF90eXBlcxgBIAIoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSEHJlcXVpcmVkQWxsVHlwZXMSVAoSb3B0aW9uYWxfYWxsX3R5cGVzGAIgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IQb3B0aW9uYWxBbGxUeXBlcxJUChJyZXBlYXRlZF9hbGxfdHlwZXMYAyADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhByZXBlYXRlZEFsbFR5cGVzEl4KDW9wdGlvbmFsZ3JvdXAYCiABKAoyOC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEl4KDXJlcGVhdGVkZ3JvdXAYFCADKAoyOC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEdyb3VwUg1yZXBlYXRlZGdyb3VwGq0FChdSZXBlYXRlZEZpZWxkc0dlbmVyYXRvchI+CgZmaWVsZDEYASADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDESPgoGZmllbGQyGAIgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQyEj4KBmZpZWxkMxgDIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMxJhCgZncm91cDEYCiADKAoySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEZpZWxkc0dlbmVyYXRvci5Hcm91cDFSBmdyb3VwMRJhCgZncm91cDIYFCADKAoySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEZpZWxkc0dlbmVyYXRvci5Hcm91cDJSBmdyb3VwMhI7CgRleHQxGOgHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBGV4dDESOwoEZXh0MhjpByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgRleHQyGkgKBkdyb3VwMRI+CgZmaWVsZDEYCyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDEaSAoGR3JvdXAyEj4KBmZpZWxkMRgVIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMRpwCg1PcHRpb25hbEdyb3VwEl8KGG9wdGlvbmFsX2dyb3VwX2FsbF90eXBlcxgLIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSFW9wdGlvbmFsR3JvdXBBbGxUeXBlcxpwCg1SZXBlYXRlZEdyb3VwEl8KGHJlcGVhdGVkX2dyb3VwX2FsbF90eXBlcxgVIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSFXJlcGVhdGVkR3JvdXBBbGxUeXBlcyoJCOgHEICAgIACMnYKDG9wdGlvbmFsX2V4dBIqLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlGOgHIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSC29wdGlvbmFsRXh0MnYKDHJlcGVhdGVkX2V4dBIqLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlGOkHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSC3JlcGVhdGVkRXh0IkcKG1Rlc3RDb21tZW50SW5qZWN0aW9uTWVzc2FnZRIoCgFhGAEgASgJOhoqLyA8LSBOZWl0aGVyIHNob3VsZCB0aGlzLlIBYSIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIhIKEEZvb0NsaWVudE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpCYXJSZXF1ZXN0Ig0KC0JhclJlc3BvbnNlIs4BCgxUZXN0SnNvbk5hbWUSHwoLZmllbGRfbmFtZTEYASABKAVSCmZpZWxkTmFtZTESHgoKZmllbGROYW1lMhgCIAEoBVIKZmllbGROYW1lMhIeCgpGaWVsZE5hbWUzGAMgASgFUgpGaWVsZE5hbWUzEiAKDF9maWVsZF9uYW1lNBgEIAEoBVIKRmllbGROYW1lNBIfCgtGSUVMRF9OQU1FNRgFIAEoBVIKRklFTEROQU1FNRIaCgtmaWVsZF9uYW1lNhgGIAEoBVIFQHR5cGUi/wcKFFRlc3RIdWdlRmllbGROdW1iZXJzEikKDm9wdGlvbmFsX2ludDMyGPD4//8BIAEoBVINb3B0aW9uYWxJbnQzMhIdCghmaXhlZF8zMhjx+P//ASABKAVSB2ZpeGVkMzISLQoOcmVwZWF0ZWRfaW50MzIY8vj//wEgAygFQgIQAFINcmVwZWF0ZWRJbnQzMhIpCgxwYWNrZWRfaW50MzIY8/j//wEgAygFQgIQAVILcGFja2VkSW50MzISTgoNb3B0aW9uYWxfZW51bRj0+P//ASABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SDG9wdGlvbmFsRW51bRIrCg9vcHRpb25hbF9zdHJpbmcY9fj//wEgASgJUg5vcHRpb25hbFN0cmluZxIpCg5vcHRpb25hbF9ieXRlcxj2+P//ASABKAxSDW9wdGlvbmFsQnl0ZXMSVwoQb3B0aW9uYWxfbWVzc2FnZRj3+P//ASABKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSD29wdGlvbmFsTWVzc2FnZRJmCg1vcHRpb25hbGdyb3VwGPj4//8BIAEoCjI8LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SHVnZUZpZWxkTnVtYmVycy5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEnMKEXN0cmluZ19zdHJpbmdfbWFwGPr4//8BIAMoCzJDLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SHVnZUZpZWxkTnVtYmVycy5TdHJpbmdTdHJpbmdNYXBFbnRyeVIPc3RyaW5nU3RyaW5nTWFwEicKDG9uZW9mX3VpbnQzMhj7+P//ASABKA1IAFILb25lb2ZVaW50MzISXQoUb25lb2ZfdGVzdF9hbGxfdHlwZXMY/Pj//wEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0gAUhFvbmVvZlRlc3RBbGxUeXBlcxInCgxvbmVvZl9zdHJpbmcY/fj//wEgASgJSABSC29uZW9mU3RyaW5nEiUKC29uZW9mX2J5dGVzGP74//8BIAEoDEgAUgpvbmVvZkJ5dGVzGiwKDU9wdGlvbmFsR3JvdXASGwoHZ3JvdXBfYRj5+P//ASABKAVSBmdyb3VwQRpCChRTdHJpbmdTdHJpbmdNYXBFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBKgwI4Kr//wEQ8Pj//wFCDQoLb25lb2ZfZmllbGQi+gEKGFRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZRIWCgZmaWVsZDEYASABKAVSBmZpZWxkMRIWCgZmaWVsZDIYAiABKAVSBmZpZWxkMhIWCgZmaWVsZDMYAyABKAVSBmZpZWxkMxIWCgZmaWVsZDQYBCABKAVSBmZpZWxkNBIWCgZmaWVsZDYYBiABKAVSBmZpZWxkNhIWCgZmaWVsZDcYByABKAVSBmZpZWxkNxIWCgZmaWVsZDgYCCABKAVSBmZpZWxkOBIWCgZmaWVsZDkYCSABKAVSBmZpZWxkORIYCgdmaWVsZDEwGAogASgFUgdmaWVsZDEwKgQIBRAGKkAKC0ZvcmVpZ25FbnVtEg8KC0ZPUkVJR05fRk9PEAQSDwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JFSUdOX0JBWhAGKksKFFRlc3RFbnVtV2l0aER1cFZhbHVlEggKBEZPTzEQARIICgRCQVIxEAISBwoDQkFaEAMSCAoERk9PMhABEggKBEJBUjIQAhoCEAEqiQEKDlRlc3RTcGFyc2VFbnVtEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9GEAASDAoIU1BBUlNFX0cQAiqLDwoNVmVyeUxhcmdlRW51bRIWChJFTlVNX0xBQkVMX0RFRkFVTFQQABIQCgxFTlVNX0xBQkVMXzEQARIQCgxFTlVNX0xBQkVMXzIQAhIQCgxFTlVNX0xBQkVMXzMQAxIQCgxFTlVNX0xBQkVMXzQQBBIQCgxFTlVNX0xBQkVMXzUQBRIQCgxFTlVNX0xBQkVMXzYQBhIQCgxFTlVNX0xBQkVMXzcQBxIQCgxFTlVNX0xBQkVMXzgQCBIQCgxFTlVNX0xBQkVMXzkQCRIRCg1FTlVNX0xBQkVMXzEwEAoSEQoNRU5VTV9MQUJFTF8xMRALEhEKDUVOVU1fTEFCRUxfMTIQDBIRCg1FTlVNX0xBQkVMXzEzEA0SEQoNRU5VTV9MQUJFTF8xNBAOEhEKDUVOVU1fTEFCRUxfMTUQDxIRCg1FTlVNX0xBQkVMXzE2EBASEQoNRU5VTV9MQUJFTF8xNxAREhEKDUVOVU1fTEFCRUxfMTgQEhIRCg1FTlVNX0xBQkVMXzE5EBMSEQoNRU5VTV9MQUJFTF8yMBAUEhEKDUVOVU1fTEFCRUxfMjEQFRIRCg1FTlVNX0xBQkVMXzIyEBYSEQoNRU5VTV9MQUJFTF8yMxAXEhEKDUVOVU1fTEFCRUxfMjQQGBIRCg1FTlVNX0xBQkVMXzI1EBkSEQoNRU5VTV9MQUJFTF8yNhAaEhEKDUVOVU1fTEFCRUxfMjcQGxIRCg1FTlVNX0xBQkVMXzI4EBwSEQoNRU5VTV9MQUJFTF8yORAdEhEKDUVOVU1fTEFCRUxfMzAQHhIRCg1FTlVNX0xBQkVMXzMxEB8SEQoNRU5VTV9MQUJFTF8zMhAgEhEKDUVOVU1fTEFCRUxfMzMQIRIRCg1FTlVNX0xBQkVMXzM0ECISEQoNRU5VTV9MQUJFTF8zNRAjEhEKDUVOVU1fTEFCRUxfMzYQJBIRCg1FTlVNX0xBQkVMXzM3ECUSEQoNRU5VTV9MQUJFTF8zOBAmEhEKDUVOVU1fTEFCRUxfMzkQJxIRCg1FTlVNX0xBQkVMXzQwECgSEQoNRU5VTV9MQUJFTF80MRApEhEKDUVOVU1fTEFCRUxfNDIQKhIRCg1FTlVNX0xBQkVMXzQzECsSEQoNRU5VTV9MQUJFTF80NBAsEhEKDUVOVU1fTEFCRUxfNDUQLRIRCg1FTlVNX0xBQkVMXzQ2EC4SEQoNRU5VTV9MQUJFTF80NxAvEhEKDUVOVU1fTEFCRUxfNDgQMBIRCg1FTlVNX0xBQkVMXzQ5EDESEQoNRU5VTV9MQUJFTF81MBAyEhEKDUVOVU1fTEFCRUxfNTEQMxIRCg1FTlVNX0xBQkVMXzUyEDQSEQoNRU5VTV9MQUJFTF81MxA1EhEKDUVOVU1fTEFCRUxfNTQQNhIRCg1FTlVNX0xBQkVMXzU1EDcSEQoNRU5VTV9MQUJFTF81NhA4EhEKDUVOVU1fTEFCRUxfNTcQORIRCg1FTlVNX0xBQkVMXzU4EDoSEQoNRU5VTV9MQUJFTF81ORA7EhEKDUVOVU1fTEFCRUxfNjAQPBIRCg1FTlVNX0xBQkVMXzYxED0SEQoNRU5VTV9MQUJFTF82MhA+EhEKDUVOVU1fTEFCRUxfNjMQPxIRCg1FTlVNX0xBQkVMXzY0EEASEQoNRU5VTV9MQUJFTF82NRBBEhEKDUVOVU1fTEFCRUxfNjYQQhIRCg1FTlVNX0xBQkVMXzY3EEMSEQoNRU5VTV9MQUJFTF82OBBEEhEKDUVOVU1fTEFCRUxfNjkQRRIRCg1FTlVNX0xBQkVMXzcwEEYSEQoNRU5VTV9MQUJFTF83MRBHEhEKDUVOVU1fTEFCRUxfNzIQSBIRCg1FTlVNX0xBQkVMXzczEEkSEQoNRU5VTV9MQUJFTF83NBBKEhEKDUVOVU1fTEFCRUxfNzUQSxIRCg1FTlVNX0xBQkVMXzc2EEwSEQoNRU5VTV9MQUJFTF83NxBNEhEKDUVOVU1fTEFCRUxfNzgQThIRCg1FTlVNX0xBQkVMXzc5EE8SEQoNRU5VTV9MQUJFTF84MBBQEhEKDUVOVU1fTEFCRUxfODEQURIRCg1FTlVNX0xBQkVMXzgyEFISEQoNRU5VTV9MQUJFTF84MxBTEhEKDUVOVU1fTEFCRUxfODQQVBIRCg1FTlVNX0xBQkVMXzg1EFUSEQoNRU5VTV9MQUJFTF84NhBWEhEKDUVOVU1fTEFCRUxfODcQVxIRCg1FTlVNX0xBQkVMXzg4EFgSEQoNRU5VTV9MQUJFTF84ORBZEhEKDUVOVU1fTEFCRUxfOTAQWhIRCg1FTlVNX0xBQkVMXzkxEFsSEQoNRU5VTV9MQUJFTF85MhBcEhEKDUVOVU1fTEFCRUxfOTMQXRIRCg1FTlVNX0xBQkVMXzk0EF4SEQoNRU5VTV9MQUJFTF85NRBfEhEKDUVOVU1fTEFCRUxfOTYQYBIRCg1FTlVNX0xBQkVMXzk3EGESEQoNRU5VTV9MQUJFTF85OBBiEhEKDUVOVU1fTEFCRUxfOTkQYxISCg5FTlVNX0xBQkVMXzEwMBBkMrUBCgtUZXN0U2VydmljZRJSCgNGb28SJC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9vUmVxdWVzdBolLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb29SZXNwb25zZRJSCgNCYXISJC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuQmFyUmVxdWVzdBolLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5CYXJSZXNwb25zZTplChhvcHRpb25hbF9pbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYASABKAVSFm9wdGlvbmFsSW50MzJFeHRlbnNpb246ZQoYb3B0aW9uYWxfaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAIgASgDUhZvcHRpb25hbEludDY0RXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYAyABKA1SF29wdGlvbmFsVWludDMyRXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3VpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYBCABKARSF29wdGlvbmFsVWludDY0RXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3NpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYBSABKBFSF29wdGlvbmFsU2ludDMyRXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3NpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYBiABKBJSF29wdGlvbmFsU2ludDY0RXh0ZW5zaW9uOmkKGm9wdGlvbmFsX2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAcgASgHUhhvcHRpb25hbEZpeGVkMzJFeHRlbnNpb246aQoab3B0aW9uYWxfZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCCABKAZSGG9wdGlvbmFsRml4ZWQ2NEV4dGVuc2lvbjprChtvcHRpb25hbF9zZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCSABKA9SGW9wdGlvbmFsU2ZpeGVkMzJFeHRlbnNpb246awobb3B0aW9uYWxfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAogASgQUhlvcHRpb25hbFNmaXhlZDY0RXh0ZW5zaW9uOmUKGG9wdGlvbmFsX2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgLIAEoAlIWb3B0aW9uYWxGbG9hdEV4dGVuc2lvbjpnChlvcHRpb25hbF9kb3VibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAwgASgBUhdvcHRpb25hbERvdWJsZUV4dGVuc2lvbjpjChdvcHRpb25hbF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgNIAEoCFIVb3B0aW9uYWxCb29sRXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDiABKAlSF29wdGlvbmFsU3RyaW5nRXh0ZW5zaW9uOmUKGG9wdGlvbmFsX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgPIAEoDFIWb3B0aW9uYWxCeXRlc0V4dGVuc2lvbjqXAQoXb3B0aW9uYWxncm91cF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYECABKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuT3B0aW9uYWxHcm91cF9leHRlbnNpb25SFm9wdGlvbmFsZ3JvdXBFeHRlbnNpb246rAEKIW9wdGlvbmFsX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgSIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIeb3B0aW9uYWxOZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOqIBCiJvcHRpb25hbF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBMgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUh9vcHRpb25hbEZvcmVpZ25NZXNzYWdlRXh0ZW5zaW9uOqYBCiFvcHRpb25hbF9pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFCABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydE1lc3NhZ2VSHm9wdGlvbmFsSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqjAQoeb3B0aW9uYWxfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBUgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhtvcHRpb25hbE5lc3RlZEVudW1FeHRlbnNpb246mQEKH29wdGlvbmFsX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SHG9wdGlvbmFsRm9yZWlnbkVudW1FeHRlbnNpb246nQEKHm9wdGlvbmFsX2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgXIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bVIbb3B0aW9uYWxJbXBvcnRFbnVtRXh0ZW5zaW9uOnYKH29wdGlvbmFsX3N0cmluZ19waWVjZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYGCABKAlCAggCUhxvcHRpb25hbFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmcKF29wdGlvbmFsX2NvcmRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBkgASgJQgIIAVIVb3B0aW9uYWxDb3JkRXh0ZW5zaW9uOrkBCihvcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBogASgLMjQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5QdWJsaWNJbXBvcnRNZXNzYWdlUiRvcHRpb25hbFB1YmxpY0ltcG9ydE1lc3NhZ2VFeHRlbnNpb246rAEKH29wdGlvbmFsX2xhenlfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYGyABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBUhxvcHRpb25hbExhenlNZXNzYWdlRXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgfIAMoBVIWcmVwZWF0ZWRJbnQzMkV4dGVuc2lvbjplChhyZXBlYXRlZF9pbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYICADKANSFnJlcGVhdGVkSW50NjRFeHRlbnNpb246ZwoZcmVwZWF0ZWRfdWludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxghIAMoDVIXcmVwZWF0ZWRVaW50MzJFeHRlbnNpb246ZwoZcmVwZWF0ZWRfdWludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgiIAMoBFIXcmVwZWF0ZWRVaW50NjRFeHRlbnNpb246ZwoZcmVwZWF0ZWRfc2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgjIAMoEVIXcmVwZWF0ZWRTaW50MzJFeHRlbnNpb246ZwoZcmVwZWF0ZWRfc2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgkIAMoElIXcmVwZWF0ZWRTaW50NjRFeHRlbnNpb246aQoacmVwZWF0ZWRfZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJSADKAdSGHJlcGVhdGVkRml4ZWQzMkV4dGVuc2lvbjppChpyZXBlYXRlZF9maXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgmIAMoBlIYcmVwZWF0ZWRGaXhlZDY0RXh0ZW5zaW9uOmsKG3JlcGVhdGVkX3NmaXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgnIAMoD1IZcmVwZWF0ZWRTZml4ZWQzMkV4dGVuc2lvbjprChtyZXBlYXRlZF9zZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYKCADKBBSGXJlcGVhdGVkU2ZpeGVkNjRFeHRlbnNpb246ZQoYcmVwZWF0ZWRfZmxvYXRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCkgAygCUhZyZXBlYXRlZEZsb2F0RXh0ZW5zaW9uOmcKGXJlcGVhdGVkX2RvdWJsZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYKiADKAFSF3JlcGVhdGVkRG91YmxlRXh0ZW5zaW9uOmMKF3JlcGVhdGVkX2Jvb2xfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCsgAygIUhVyZXBlYXRlZEJvb2xFeHRlbnNpb246ZwoZcmVwZWF0ZWRfc3RyaW5nX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgsIAMoCVIXcmVwZWF0ZWRTdHJpbmdFeHRlbnNpb246ZQoYcmVwZWF0ZWRfYnl0ZXNfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGC0gAygMUhZyZXBlYXRlZEJ5dGVzRXh0ZW5zaW9uOpcBChdyZXBlYXRlZGdyb3VwX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxguIAMoCjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5SZXBlYXRlZEdyb3VwX2V4dGVuc2lvblIWcmVwZWF0ZWRncm91cEV4dGVuc2lvbjqsAQohcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDAgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUh5yZXBlYXRlZE5lc3RlZE1lc3NhZ2VFeHRlbnNpb246ogEKInJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYMSADKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSH3JlcGVhdGVkRm9yZWlnbk1lc3NhZ2VFeHRlbnNpb246pgEKIXJlcGVhdGVkX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgyIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0TWVzc2FnZVIecmVwZWF0ZWRJbXBvcnRNZXNzYWdlRXh0ZW5zaW9uOqMBCh5yZXBlYXRlZF9uZXN0ZWRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYMyADKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SG3JlcGVhdGVkTmVzdGVkRW51bUV4dGVuc2lvbjqZAQofcmVwZWF0ZWRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg0IAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIccmVwZWF0ZWRGb3JlaWduRW51bUV4dGVuc2lvbjqdAQoecmVwZWF0ZWRfaW1wb3J0X2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDUgAygOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtUhtyZXBlYXRlZEltcG9ydEVudW1FeHRlbnNpb246dgofcmVwZWF0ZWRfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg2IAMoCUICCAJSHHJlcGVhdGVkU3RyaW5nUGllY2VFeHRlbnNpb246ZwoXcmVwZWF0ZWRfY29yZF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNyADKAlCAggBUhVyZXBlYXRlZENvcmRFeHRlbnNpb246rAEKH3JlcGVhdGVkX2xhenlfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYOSADKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBUhxyZXBlYXRlZExhenlNZXNzYWdlRXh0ZW5zaW9uOmcKF2RlZmF1bHRfaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGD0gASgFOgI0MVIVZGVmYXVsdEludDMyRXh0ZW5zaW9uOmcKF2RlZmF1bHRfaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGD4gASgDOgI0MlIVZGVmYXVsdEludDY0RXh0ZW5zaW9uOmkKGGRlZmF1bHRfdWludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg/IAEoDToCNDNSFmRlZmF1bHRVaW50MzJFeHRlbnNpb246aQoYZGVmYXVsdF91aW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEAgASgEOgI0NFIWZGVmYXVsdFVpbnQ2NEV4dGVuc2lvbjpqChhkZWZhdWx0X3NpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYQSABKBE6Ay00NVIWZGVmYXVsdFNpbnQzMkV4dGVuc2lvbjppChhkZWZhdWx0X3NpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYQiABKBI6AjQ2UhZkZWZhdWx0U2ludDY0RXh0ZW5zaW9uOmsKGWRlZmF1bHRfZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYQyABKAc6AjQ3UhdkZWZhdWx0Rml4ZWQzMkV4dGVuc2lvbjprChlkZWZhdWx0X2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEQgASgGOgI0OFIXZGVmYXVsdEZpeGVkNjRFeHRlbnNpb246bQoaZGVmYXVsdF9zZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYRSABKA86AjQ5UhhkZWZhdWx0U2ZpeGVkMzJFeHRlbnNpb246bgoaZGVmYXVsdF9zZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYRiABKBA6Ay01MFIYZGVmYXVsdFNmaXhlZDY0RXh0ZW5zaW9uOmkKF2RlZmF1bHRfZmxvYXRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEcgASgCOgQ1MS41UhVkZWZhdWx0RmxvYXRFeHRlbnNpb246bAoYZGVmYXVsdF9kb3VibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEggASgBOgU1MjAwMFIWZGVmYXVsdERvdWJsZUV4dGVuc2lvbjpnChZkZWZhdWx0X2Jvb2xfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEkgASgIOgR0cnVlUhRkZWZhdWx0Qm9vbEV4dGVuc2lvbjpsChhkZWZhdWx0X3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYSiABKAk6BWhlbGxvUhZkZWZhdWx0U3RyaW5nRXh0ZW5zaW9uOmoKF2RlZmF1bHRfYnl0ZXNfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEsgASgMOgV3b3JsZFIVZGVmYXVsdEJ5dGVzRXh0ZW5zaW9uOqYBCh1kZWZhdWx0X25lc3RlZF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhRIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bToDQkFSUhpkZWZhdWx0TmVzdGVkRW51bUV4dGVuc2lvbjqkAQoeZGVmYXVsdF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGFIgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUlIbZGVmYXVsdEZvcmVpZ25FbnVtRXh0ZW5zaW9uOqcBCh1kZWZhdWx0X2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhTIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bToKSU1QT1JUX0JBUlIaZGVmYXVsdEltcG9ydEVudW1FeHRlbnNpb246eQoeZGVmYXVsdF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGFQgASgJOgNhYmNCAggCUhtkZWZhdWx0U3RyaW5nUGllY2VFeHRlbnNpb246agoWZGVmYXVsdF9jb3JkX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhVIAEoCToDMTIzQgIIAVIUZGVmYXVsdENvcmRFeHRlbnNpb246YQoWb25lb2ZfdWludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhvIAEoDVIUb25lb2ZVaW50MzJFeHRlbnNpb246pgEKHm9uZW9mX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhwIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIbb25lb2ZOZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOmEKFm9uZW9mX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYcSABKAlSFG9uZW9mU3RyaW5nRXh0ZW5zaW9uOl8KFW9uZW9mX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhyIAEoDFITb25lb2ZCeXRlc0V4dGVuc2lvbjpcChNteV9leHRlbnNpb25fc3RyaW5nEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgyIAEoCVIRbXlFeHRlbnNpb25TdHJpbmc6VgoQbXlfZXh0ZW5zaW9uX2ludBIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYBSABKAVSDm15RXh0ZW5zaW9uSW50OmgKFnBhY2tlZF9pbnQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhABUhRwYWNrZWRJbnQzMkV4dGVuc2lvbjpoChZwYWNrZWRfaW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFsgAygDQgIQAVIUcGFja2VkSW50NjRFeHRlbnNpb246agoXcGFja2VkX3VpbnQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXCADKA1CAhABUhVwYWNrZWRVaW50MzJFeHRlbnNpb246agoXcGFja2VkX3VpbnQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhABUhVwYWNrZWRVaW50NjRFeHRlbnNpb246agoXcGFja2VkX3NpbnQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhABUhVwYWNrZWRTaW50MzJFeHRlbnNpb246agoXcGFja2VkX3NpbnQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXyADKBJCAhABUhVwYWNrZWRTaW50NjRFeHRlbnNpb246bAoYcGFja2VkX2ZpeGVkMzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQAVIWcGFja2VkRml4ZWQzMkV4dGVuc2lvbjpsChhwYWNrZWRfZml4ZWQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYSADKAZCAhABUhZwYWNrZWRGaXhlZDY0RXh0ZW5zaW9uOm4KGXBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYiADKA9CAhABUhdwYWNrZWRTZml4ZWQzMkV4dGVuc2lvbjpuChlwYWNrZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQAVIXcGFja2VkU2ZpeGVkNjRFeHRlbnNpb246aAoWcGFja2VkX2Zsb2F0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEAFSFHBhY2tlZEZsb2F0RXh0ZW5zaW9uOmoKF3BhY2tlZF9kb3VibGVfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGUgAygBQgIQAVIVcGFja2VkRG91YmxlRXh0ZW5zaW9uOmYKFXBhY2tlZF9ib29sX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEAFSE3BhY2tlZEJvb2xFeHRlbnNpb246jQEKFXBhY2tlZF9lbnVtX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEAFSE3BhY2tlZEVudW1FeHRlbnNpb246bgoYdW5wYWNrZWRfaW50MzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhAAUhZ1bnBhY2tlZEludDMyRXh0ZW5zaW9uOm4KGHVucGFja2VkX2ludDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFsgAygDQgIQAFIWdW5wYWNrZWRJbnQ2NEV4dGVuc2lvbjpwChl1bnBhY2tlZF91aW50MzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXCADKA1CAhAAUhd1bnBhY2tlZFVpbnQzMkV4dGVuc2lvbjpwChl1bnBhY2tlZF91aW50NjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhAAUhd1bnBhY2tlZFVpbnQ2NEV4dGVuc2lvbjpwChl1bnBhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhAAUhd1bnBhY2tlZFNpbnQzMkV4dGVuc2lvbjpwChl1bnBhY2tlZF9zaW50NjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXyADKBJCAhAAUhd1bnBhY2tlZFNpbnQ2NEV4dGVuc2lvbjpyChp1bnBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQAFIYdW5wYWNrZWRGaXhlZDMyRXh0ZW5zaW9uOnIKGnVucGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYSADKAZCAhAAUhh1bnBhY2tlZEZpeGVkNjRFeHRlbnNpb246dAobdW5wYWNrZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYiADKA9CAhAAUhl1bnBhY2tlZFNmaXhlZDMyRXh0ZW5zaW9uOnQKG3VucGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQAFIZdW5wYWNrZWRTZml4ZWQ2NEV4dGVuc2lvbjpuChh1bnBhY2tlZF9mbG9hdF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEABSFnVucGFja2VkRmxvYXRFeHRlbnNpb246cAoZdW5wYWNrZWRfZG91YmxlX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGUgAygBQgIQAFIXdW5wYWNrZWREb3VibGVFeHRlbnNpb246bAoXdW5wYWNrZWRfYm9vbF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEABSFXVucGFja2VkQm9vbEV4dGVuc2lvbjqTAQoXdW5wYWNrZWRfZW51bV9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEABSFXVucGFja2VkRW51bUV4dGVuc2lvbjqAAQoOdGVzdF9hbGxfdHlwZXMSLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEh1Z2VGaWVsZE51bWJlcnMY4Kr//wEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IMdGVzdEFsbFR5cGVzOoQBCiV0ZXN0X2V4dGVuc2lvbl9pbnNpZGVfdGFibGVfZXh0ZW5zaW9uEjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZRgFIAEoBVIhdGVzdEV4dGVuc2lvbkluc2lkZVRhYmxlRXh0ZW5zaW9uQjJIAYABAYgBAZABAfgBAaoCIUdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zLlByb3RvMkq0uAMKBxIFJgDYCAIKog4KAQwSAyYAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtMBIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3ZSB3aWxsIHVzZSBmb3IgdW5pdCB0ZXN0aW5nLgoKIExJTlQ6IEFMTE9XX0dST1VQUywgTEVHQUNZX05BTUVTCgoICgEIEgMqACIKgAEKAggQEgMqACIaZyBTb21lIGdlbmVyaWNfc2VydmljZXMgb3B0aW9uKHMpIGFkZGVkIGF1dG9tYXRpY2FsbHkuCiBTZWU6ICBodHRwOi8vZ28vcHJvdG8yLWdlbmVyaWMtc2VydmljZXMtZGVmYXVsdAoiDCBhdXRvLWFkZGVkCgoICgEIEgMrACQKFwoCCBESAysAJCIMIGF1dG8tYWRkZWQKCggKAQgSAywAIgoXCgIIEhIDLAAiIgwgYXV0by1hZGRlZAoKCAoBCBIDLQAfCgkKAggfEgMtAB8KCQoCAwASAy8AHwrmAQoBAhIDNAAhGtsBIFdlIGRvbid0IHB1dCB0aGlzIGluIGEgcGFja2FnZSB3aXRoaW4gcHJvdG8yIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUKIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgZGVwZW5kIG9uIGJlaW5nIGluIHRoZSBwcm90bzIgbmFtZXNwYWNlLgogSW4gdGVzdF91dGlsLmggd2UgZG8gInVzaW5nIG5hbWVzcGFjZSB1bml0dGVzdCA9IHByb3RvYnVmX3VuaXR0ZXN0Ii4KCggKAQgSAzkAHAriAQoCCAkSAzkAHBrWASBQcm90b3Mgb3B0aW1pemVkIGZvciBTUEVFRCB1c2UgYSBzdHJpY3Qgc3VwZXJzZXQgb2YgdGhlIGdlbmVyYXRlZCBjb2RlCiBvZiBlcXVpdmFsZW50IG9uZXMgb3B0aW1pemVkIGZvciBDT0RFX1NJWkUsIHNvIHdlIHNob3VsZCBvcHRpbWl6ZSBhbGwgb3VyCiB0ZXN0cyBmb3Igc3BlZWQgdW5sZXNzIGV4cGxpY2l0bHkgdGVzdGluZyBjb2RlIHNpemUg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hwMLEAoNCgUEDAILARIEhwMRGAoNCgUEDAILAxIEhwMbHQoMCgQEDAIMEgSIAwIeCg0KBQQMAgwEEgSIAwIKCg0KBQQMAgwFEgSIAwsQCg0KBQQMAgwBEgSIAxEYCg0KBQQMAgwDEgSIAxsdCgwKBAQMAg0SBIkDAh4KDQoFBAwCDQQSBIkDAgoKDQoFBAwCDQUSBIkDCxAKDQoFBAwCDQESBIkDERgKDQoFBAwCDQMSBIkDGx0KDAoEBAwCDhIEigMCHgoNCgUEDAIOBBIEigMCCgoNCgUEDAIOBRIEigMLEAoNCgUEDAIOARIEigMRGAoNCgUEDAIOAxIEigMbHQoMCgQEDAIPEgSLAwIeCg0KBQQMAg8EEgSLAwIKCg0KBQQMAg8FEgSLAwsQCg0KBQQMAg8BEgSLAxEYCg0KBQQMAg8DEgSLAxsdCgwKBAQMAhASBIwDAh4KDQoFBAwCEAQSBIwDAgoKDQoFBAwCEAUSBIwDCxAKDQoFBAwCEAESBIwDERgKDQoFBAwCEAMSBIwDGx0KDAoEBAwCERIEjQMCHgoNCgUEDAIRBBIEjQMCCgoNCgUEDAIRBRIEjQMLEAoNCgUEDAIRARIEjQMRGAoNCgUEDAIRAxIEjQMbHQoMCgQEDAISEgSOAwIeCg0KBQQMAhIEEgSOAwIKCg0KBQQMAhIFEgSOAwsQCg0KBQQMAhIBEgSOAxEYCg0KBQQMAhIDEgSOAxsdCgwKBAQMAhMSBI8DAh4KDQoFBAwCEwQSBI8DAgoKDQoFBAwCEwUSBI8DCxAKDQoFBAwCEwESBI8DERgKDQoFBAwCEwMSBI8DGx0KDAoEBAwCFBIEkAMCHgoNCgUEDAIUBBIEkAMCCgoNCgUEDAIUBRIEkAMLEAoNCgUEDAIUARIEkAMRGAoNCgUEDAIUAxIEkAMbHQoMCgQEDAIVEgSRAwIeCg0KBQQMAhUEEgSRAwIKCg0KBQQMAhUFEgSRAwsQCg0KBQQMAhUBEgSRAxEYCg0KBQQMAhUDEgSRAxsdCgwKBAQMAhYSBJIDAh4KDQoFBAwCFgQSBJIDAgoKDQoFBAwCFgUSBJIDCxAKDQoFBAwCFgESBJIDERgKDQoFBAwCFgMSBJIDGx0KDAoEBAwCFxIEkwMCHgoNCgUEDAIXBBIEkwMCCgoNCgUEDAIXBRIEkwMLEAoNCgUEDAIX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CAISBIkGKzgKDAoEBDACAhIEigYCOgoNCgUEMAICBBIEigYCCgoNCgUEMAICBRIEigYNEwoNCgUEMAICARIEigYUIQoNCgUEMAICAxIEigYnKQoNCgUEMAICCBIEigYqOQoOCgYEMAICCAISBIoGKzgKDAoEBDACAxIEiwYCOgoNCgUEMAIDBBIEiwYCCgoNCgUEMAIDBRIEiwYNEwoNCgUEMAIDARIEiwYUIQoNCgUEMAIDAxIEiwYnKQoNCgUEMAIDCBIEiwYqOQoOCgYEMAIDCAISBIsGKzgKDAoEBDACBBIEjAYCOgoNCgUEMAIEBBIEjAYCCgoNCgUEMAIEBRIEjAYNEwoNCgUEMAIEARIEjAYUIQoNCgUEMAIEAxIEjAYnKQoNCgUEMAIECBIEjAYqOQoOCgYEMAIECAISBIwGKzgKDAoEBDACBRIEjQYCOgoNCgUEMAIFBBIEjQYCCgoNCgUEMAIFBRIEjQYNEwoNCgUEMAIFARIEjQYUIQoNCgUEMAIFAxIEjQYnKQoNCgUEMAIFCBIEjQYqOQoOCgYEMAIFCAISBI0GKzgKDAoEBDACBhIEjgYCOgoNCgUEMAIGBBIEjgYCCgoNCgUEMAIGBRIEjgYMEwoNCgUEMAIGARIEjgYUIgoNCgUEMAIGAxIEjgYnKQoNCgUEMAIGCBIEjgYqOQoOCgYEMAIGCAISBI4GKzgKDAoEBDACBxIEjwYCOgoNCgUEMAIHBBIEjwYCCgoNCgUEMAIHBRIEjwYMEwoNCgUEMAIHARIEjwYUIgoNCgUEMAIHAxIEjwYnKQoNCgUEMAIHCBIEjwYqOQoOCgYEMAIHCAISBI8GKzgKDAoEBDACCBIEkAYCOgoNCgUEMAIIBBIEkAYCCgoNCgUEMAIIBRIEkAYLEwoNCgUEMAIIARIEkAYUIwoNCgUEMAIIAxIEkAYnKQoNCgUEMAIICBIEkAYqOQoOCgYEMAIICAISBJAGKzgKDAoEBDACCRIEkQYCOgoNCgUEMAIJBBIEkQYCCgoNCgUEMAIJBRIEkQYLEwoNCgUEMAIJARIEkQYUIwoNCgUEMAIJAxIEkQYnKQoNCgUEMAIJCBIEkQYqOQoOCgYEMAIJCAISBJEGKzgKDAoEBDACChIEkgYCOgoNCgUEMAIKBBIEkgYCCgoNCgUEMAIKBRIEkgYOEwoNCgUEMAIKARIEkgYUIAoNCgUEMAIKAxIEkgYmKQoNCgUEMAIKCBIEkgYqOQoOCgYEMAIKCAISBJIGKzgKDAoEBDACCxIEkwYCOgoNCgUEMAILBBIEkwYCCgoNCgUEMAILBRIEkwYNEwoNCgUEMAILARIEkwYUIQoNCgUEMAILAxIEkwYmKQoNCgUEMAILCBIEkwYqOQoOCgYEMAILCAISBJMGKzgKDAoEBDACDBIElAYCOgoNCgUEMAIMBBIElAYCCgoNCgUEMAIMBRIElAYPEwoNCgUEMAIMARIElAYUHwoNCgUEMAIMAxIElAYmKQoNCgUEMAIMCBIElAYqOQoOCgYEMAIMCAISBJQGKzgKDAoEBDACDRIElQYCOgoNCgUEMAINBBIElQYCCgoNCgUEMAINBhIElQYLFgoNCgUEMAINARIElQYXIgoNCgUEMAINAxIElQYmKQoNCgUEMAINCBIElQYqOQoOCgYEMAINCAISBJUGKzgKjQEKAgQxEgaaBgCpBgEafyBBIG1lc3NhZ2Ugd2l0aCB0aGUgc2FtZSBmaWVsZHMgYXMgVGVzdFBhY2tlZFR5cGVzLCBidXQgd2l0aG91dCBwYWNraW5nLiBVc2VkCiB0byB0ZXN0IHBhY2tlZCA8LT4gdW5wYWNrZWQgd2lyZSBjb21wYXRpYmlsaXR5LgoKCwoDBDEBEgSaBggZCgwKBAQxAgASBJsGAj0KDQoFBDECAAQSBJsGAgoKDQoFBDECAAUSBJsGDhMKDQoFBDECAAESBJsGFCIKDQoFBDECAAMSBJsGKSsKDQoFBDECAAgSBJsGLDwKDgoGBDECAAgCEgSbBi07CgwKBAQxAgESBJwGAj0KDQoFBDECAQQSBJwGAgoKDQoFBDECAQUSBJwGDhMKDQoFBDECAQESBJwGFCIKDQoFBDECAQMSBJwGKSsKDQoFBDECAQgSBJwGLDwKDgoGBDECAQgCEgScBi07CgwKBAQxAgISBJ0GAj0KDQoFBDECAgQSBJ0GAgoKDQoFBDECAgUSBJ0GDRMKDQoFBDECAgESBJ0GFCMKDQoFBDECAgMSBJ0GKSsKDQoFBDECAggSBJ0GLDwKDgoGBDECAggCEgSdBi07CgwKBAQxAgMSBJ4GAj0KDQoFBDECAwQSBJ4GAgoKDQoFBDECAwUSBJ4GDRMKDQoFBDECAwESBJ4GFCMKDQoFBDECAwMSBJ4GKSsKDQoFBDECAwgSBJ4GLDwKDgoGBDECAwgCEgSeBi07CgwKBAQxAgQSBJ8GAj0KDQoFBDECBAQSBJ8GAgoKDQoFBDECBAUSBJ8GDRMKDQoFBDECBAESBJ8GFCMKDQoFBDECBAMSBJ8GKSsKDQoFBDECBAgSBJ8GLDwKDgoGBDECBAgCEgSfBi07CgwKBAQxAgUSBKAGAj0KDQoFBDECBQQSBKAGAgoKDQoFBDECBQUSBKAGDRMKDQoFBDECBQESBKAGFCMKDQoFBDECBQMSBKAGKSsKDQoFBDECBQgSBKAGLDwKDgoGBDECBQgCEgSgBi07CgwKBAQxAgYSBKEGAj0KDQoFBDECBgQSBKEGAgoKDQoFBDECBgUSBKEGDBMKDQoFBDECBgESBKEGFCQKDQoFBDECBgMSBKEGKSsKDQoFBDECBggSBKEGLDwKDgoGBDECBggCEgShBi07CgwKBAQxAgcSBKIGAj0KDQoFBDECBwQSBKIGAgoKDQoFBDECBwUSBKIGDBMKDQoFBDECBwESBKIGFCQKDQoFBDECBwMSBKIGKSsKDQoFBDECBwgSBKIGLDwKDgoGBDECBwgCEgSiBi07CgwKBAQxAggSBKMGAj0KDQoFBDECCAQSBKMGAgoKDQoFBDECCAUSBKMGCxMKDQoFBDECCAESBKMGFCUKDQoFBDECCAMSBKMGKSsKDQoFBDECCAgSBKMGLDwKDgoGBDECCAgCEgSjBi07CgwKBAQxAgkSBKQGAj0KDQoFBDECCQQSBKQGAgoKDQoFBDECCQUSBKQGCxMKDQoFBDECCQESBKQGFCUKDQoFBDECCQMSBKQGKSsKDQoFBDECCQgSBKQGLDwKDgoGBDECCQgCEgSkBi07CgwKBAQxAgoSBKUGAj0KDQoFBDECCgQSBKUGAgoKDQoFBDECCgUSBKUGDhMKDQoFBDECCgESBKUGFCIKDQoFBDECCgMSBKUGKCsKDQoFBDECCggSBKUGLDwKDgoGBDECCggCEgSlBi07CgwKBAQxAgsSBKYGAj0KDQoFBDECCwQSBKYGAgoKDQoFBDECCwUSBKYGDRMKDQoFBDECCwESBKYGFCMKDQoFBDECCwMSBKYGKCsKDQoFBDECCwgSBKYGLDwKDgoGBDECCwgCEgSmBi07CgwKBAQxAgwSBKcGAj0K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EgT1BwIOCg0KBQUDAgICEgT1BxESCgwKBAUDAgMSBPYHAhMKDQoFBQMCAwESBPYHAg4KDQoFBQMCAwISBPYHERIKDAoEBQMCBBIE9wcCEwoNCgUFAwIEARIE9wcCDgoNCgUFAwIEAhIE9wcREgoMCgQFAwIFEgT4BwITCg0KBQUDAgUBEgT4BwIOCg0KBQUDAgUCEgT4BxESCgwKBAUDAgYSBPkHAhMKDQoFBQMCBgESBPkHAg4KDQoFBQMCBgISBPkHERIKDAoEBQMCBxIE+gcCEwoNCgUFAwIHARIE+gcCDgoNCgUFAwIHAhIE+gcREgoMCgQFAwIIEgT7BwITCg0KBQUDAggBEgT7BwIOCg0KBQUDAggCEgT7BxESCgwKBAUDAgkSBPwHAhMKDQoFBQMCCQESBPwHAg4KDQoFBQMCCQISBPwHERIKDAoEBQMCChIE/QcCFQoNCgUFAwIKARIE/QcCDwoNCgUFAwIKAhIE/QcSFAoMCgQFAwILEgT+BwIVCg0KBQUDAgsBEgT+BwIPCg0KBQUDAgsCEgT+BxIUCgwKBAUDAgwSBP8HAhUKDQoFBQMCDAESBP8HAg8KDQoFBQMCDAISBP8HEhQKDAoEBQMCDRIEgAgCFQoNCgUFAwINARIEgAgCDwoNCgUFAwINAhIEgAgSFAoMCgQFAwIOEgSBCAIVCg0KBQUDAg4BEgSBCAIPCg0KBQUDAg4CEgSBCBIUCgwKBAUDAg8SBIIIAhUKDQoFBQMCDwESBIIIAg8KDQoFBQMCDwISBIIIEhQKDAoEBQMCEBIEgwgCFQoNCgUFAwIQARIEgwgCDwoNCgUFAwIQAhIEgwgSFAoMCgQFAwIREgSECAIVCg0KBQUDAhEBEgSECAIPCg0KBQUDAhECEgSECBIUCgwKBAUDAhISBIUIAhUKDQoFBQMCEgESBIUIAg8KDQoFBQMCEgISBIUIEhQKDAoEBQMCExIEhggCFQoNCgUFAwITARIEhggCDwoNCgUFAwITAhIEhggSFAoMCgQFAwIUEgSHCAIVCg0KBQUDAhQBEgSHCAIPCg0KBQUDAhQCEgSHCBIUCgwKBAUDAhUSBIgIAhUKDQoFBQMCFQESBIgIAg8KDQoFBQMCFQISBIgIEhQKDAoEBQMCFhIEiQgCFQoNCgUFAwIWARIEiQgCDwoNCgUFAwIWAhIEiQgS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BLIIEhQKDAoEBQMCQBIEswgCFQoNCgUFAwJAARIEswgCDwoNCgUFAwJAAhIEswgSFAoMCgQFAwJBEgS0CAIVCg0KBQUDAkEBEgS0CAIPCg0KBQUDAkECEgS0CBIUCgwKBAUDAkISBLUIAhUKDQoFBQMCQgESBLUIAg8KDQoFBQMCQgISBLUIEhQKDAoEBQMCQxIEtggCFQoNCgUFAwJDARIEtggCDwoNCgUFAwJDAhIEtggSFAoMCgQFAwJEEgS3CAIVCg0KBQUDAkQBEgS3CAIPCg0KBQUDAkQCEgS3CBIUCgwKBAUDAkUSBLgIAhUKDQoFBQMCRQESBLgIAg8KDQoFBQMCRQISBLgIEhQKDAoEBQMCRhIEuQgCFQoNCgUFAwJGARIEuQgCDwoNCgUFAwJGAhIEuQgSFAoMCgQFAwJHEgS6CAIVCg0KBQUDAkcBEgS6CAIPCg0KBQUDAkcCEgS6CBIUCgwKBAUDAkgSBLsIAhUKDQoFBQMCSAESBLsIAg8KDQoFBQMCSAISBLsIEhQKDAoEBQMCSRIEvAgCFQoNCgUFAwJJARIEvAgCDwoNCgUFAwJJAhIEvAgSFAoMCgQFAwJKEgS9CAIVCg0KBQUDAkoBEgS9CAIPCg0KBQUDAkoCEgS9CBIUCgwKBAUDAksSBL4IAhUKDQoFBQMCSwESBL4IAg8KDQoFBQMCSwISBL4IEhQKDAoEBQMCTBIEvwgCFQoNCgUFAwJMARIEvwgCDwoNCgUFAwJMAhIEvwgSFAoMCgQFAwJNEgTACAIVCg0KBQUDAk0BEgTACAIPCg0KBQUDAk0CEgTACBIUCgwKBAUDAk4SBMEIAhUKDQoFBQMCTgESBMEIAg8KDQoFBQMCTgISBMEIEhQKDAoEBQMCTxIEwggCFQoNCgUFAwJPARIEwggCDwoNCgUFAwJPAhIEwggSFAoMCgQFAwJQEgTDCAIVCg0KBQUDAlABEgTDCAIPCg0KBQUDAlACEgTDCBIUCgwKBAUDAlESBMQIAhUKDQoFBQMCUQESBMQIAg8KDQoFBQMCUQISBMQIEhQKDAoEBQMCUhIExQgCFQoNCgUFAwJSARIExQgCDwoNCgUFAwJSAhIExQgSFAoMCgQFAwJTEgTGCAIVCg0KBQUDAlMBEgTGCAIPCg0KBQUDAlMCEgTGCBIUCgwKBAUDAlQSBMcIAhUK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VGVzdFByb3Rvc0qqAgoGEgQAAA8BCggKAQwSAwAAEgoJCgIDABIDAgAkCgkKAgMBEgMDACQKCAoBAhIDBQAYCggKAQgSAwcANwoJCgIIJRIDBwA3CoIBCgIEABIEDAAPATJ2IFRoaXMgZmlsZSBpcyB1c2VkIGFzIHBhcnQgb2YgYSB1bml0IHRlc3QgZm9yIGlzc3VlIDY5MzYKIFdlIGRvbid0IG5lZWQgdG8gdXNlIGl0LCB3ZSBqdXN0IGhhdmUgdG8gbG9hZCBpdCBhdCBydW50aW1lCgoKCgMEAAESAwwICwoKCgMEAAcSAw0EGQoNCgYEAAfQhgMSAw0EGQoLCgQEAAIAEgMOBBAKDAoFBAACAAYSAw4EBwoMCgUEAAIAARIDDggLCgwKBQQAAgADEgMODg9iBnByb3RvMwrALAoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjYKA0FueRIZCgh0eXBlX3VybBgBIAEoCVIHdHlwZVVybBIUCgV2YWx1ZRgCIAEoDFIFdmFsdWVCbwoTY29tLmdvb2dsZS5wcm90b2J1ZkIIQW55UHJvdG9QAVolZ2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHR5cGVzL2FueaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rgKgoHEgUeAJoBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAPAoJCgIICxIDIwA8CggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUAKQoJCgIICBIDJQApCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCuQQCgIEABIFeQCaAQEa1hAgYEFueWAgY29udGFpbnMgYW4gYXJiaXRyYXJ5IHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UgYWxvbmcgd2l0aCBhCiBVUkwgdGhhdCBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQgbWVzc2FnZS4KCiBQcm90b2J1ZiBsaWJyYXJ5IHByb3ZpZGVzIHN1cHBvcnQgdG8gcGFjay91bnBhY2sgQW55IHZhbHVlcyBpbiB0aGUgZm9ybQogb2YgdXRpbGl0eSBmdW5jdGlvbnMgb3IgYWRkaXRpb25hbCBnZW5lcmF0ZWQgbWV0aG9kcyBvZiB0aGUgQW55IHR5cGUuCgogRXhhbXBsZSAxOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEMrKy4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55OwogICAgIGFueS5QYWNrRnJvbShmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuVW5wYWNrVG8oJmZvbykpIHsKICAgICAgIC4uLgogICAgIH0KCiBFeGFtcGxlIDI6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gSmF2YS4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55ID0gQW55LnBhY2soZm9vKTsKICAgICAuLi4KICAgICBpZiAoYW55LmlzKEZvby5jbGFzcykpIHsKICAgICAgIGZvbyA9IGFueS51bnBhY2soRm9vLmNsYXNzKTsKICAgICB9CgogIEV4YW1wbGUgMzogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBQeXRob24uCgogICAgIGZvbyA9IEZvbyguLi4pCiAgICAgYW55ID0gQW55KCkKICAgICBhbnkuUGFjayhmb28pCiAgICAgLi4uCiAgICAgaWYgYW55LklzKEZvby5ERVNDUklQVE9SKToKICAgICAgIGFueS5VbnBhY2soZm9vKQogICAgICAgLi4uCgogIEV4YW1wbGUgNDogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBHbwoKICAgICAgZm9vIDo9ICZwYi5Gb297Li4ufQogICAgICBhbnksIGVyciA6PSBwdHlwZXMuTWFyc2hhbEFueShmb28pCiAgICAgIC4uLgogICAgICBmb28gOj0gJnBiLkZvb3t9CiAgICAgIGlmIGVyciA6PSBwdHlwZXMuVW5tYXJzaGFsQW55KGFueSwgZm9vKTsgZXJyICE9IG5pbCB7CiAgICAgICAgLi4uCiAgICAgIH0KCiBUaGUgcGFjayBtZXRob2RzIHByb3ZpZGVkIGJ5IHByb3RvYnVmIGxpYnJhcnkgd2lsbCBieSBkZWZhdWx0IHVzZQogJ3R5cGUuZ29vZ2xlYXBpcy5jb20vZnVsbC50eXBlLm5hbWUnIGFzIHRoZSB0eXBlIFVSTCBhbmQgdGhlIHVucGFjawogbWV0aG9kcyBvbmx5IHVzZSB0aGUgZnVsbHkgcXVhbGlmaWVkIHR5cGUgbmFtZSBhZnRlciB0aGUgbGFzdCAnLycKIGluIHRoZSB0eXBlIFVSTCwgZm9yIGV4YW1wbGUgImZvby5iYXIuY29tL3gveS56IiB3aWxsIHlpZWxkIHR5cGUKIG5hbWUgInkueiIuCgoKIEpTT04KID09PT0KIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGFuIGBBbnlgIHZhbHVlIHVzZXMgdGhlIHJlZ3VsYXIKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXNlcmlhbGl6ZWQsIGVtYmVkZGVkIG1lc3NhZ2UsIHdpdGggYW4KIGFkZGl0aW9uYWwgZmllbGQgYEB0eXBlYCB3aGljaCBjb250YWlucyB0aGUgdHlwZSBVUkwuIEV4YW1wbGU6CgogICAgIHBhY2thZ2UgZ29vZ2xlLnByb2ZpbGU7CiAgICAgbWVzc2FnZSBQZXJzb24gewogICAgICAgc3RyaW5nIGZpcnN0X25hbWUgPSAxOwogICAgICAgc3RyaW5nIGxhc3RfbmFtZSA9IDI7CiAgICAgfQoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvZmlsZS5QZXJzb24iLAogICAgICAgImZpcnN0TmFtZSI6IDxzdHJpbmc+LAogICAgICAgImxhc3ROYW1lIjogPHN0cmluZz4KICAgICB9CgogSWYgdGhlIGVtYmVkZGVkIG1lc3NhZ2UgdHlwZSBpcyB3ZWxsLWtub3duIGFuZCBoYXMgYSBjdXN0b20gSlNPTgogcmVwcmVzZW50YXRpb24sIHRoYXQgcmVwcmVzZW50YXRpb24gd2lsbCBiZSBlbWJlZGRlZCBhZGRpbmcgYSBmaWVsZAogYHZhbHVlYCB3aGljaCBob2xkcyB0aGUgY3VzdG9tIEpTT04gaW4gYWRkaXRpb24gdG8gdGhlIGBAdHlwZWAKIGZpZWxkLiBFeGFtcGxlIChmb3IgbWVzc2FnZSBbZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uXVtdKToKCiAgICAgewogICAgICAgIkB0eXBlIjogInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIiwKICAgICAgICJ2YWx1ZSI6ICIxLjIxMnMiCiAgICAgfQoKCgoKAwQAARIDeQgLCtcKCgQEAAIAEgSWAQIWGsgKIEEgVVJML3Jlc291cmNlIG5hbWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkCiBwcm90b2NvbCBidWZmZXIgbWVzc2FnZS4gVGhpcyBzdHJpbmcgbXVzdCBjb250YWluIGF0IGxlYXN0CiBvbmUgIi8iIGNoYXJhY3Rlci4gVGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgVVJMJ3MgcGF0aCBtdXN0IHJlcHJlc2VudAogdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSB0eXBlIChhcyBpbgogYHBhdGgvZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uYCkuIFRoZSBuYW1lIHNob3VsZCBiZSBpbiBhIGNhbm9uaWNhbCBmb3JtCiAoZS5nLiwgbGVhZGluZyAiLiIgaXMgbm90IGFjY2VwdGVkKS4KCiBJbiBwcmFjdGljZSwgdGVhbXMgdXN1YWxseSBwcmVjb21waWxlIGludG8gdGhlIGJpbmFyeSBhbGwgdHlwZXMgdGhhdCB0aGV5CiBleHBlY3QgaXQgdG8gdXNlIGluIHRoZSBjb250ZXh0IG9mIEFueS4gSG93ZXZlciwgZm9yIFVSTHMgd2hpY2ggdXNlIHRoZQogc2NoZW1lIGBodHRwYCwgYGh0dHBzYCwgb3Igbm8gc2NoZW1lLCBvbmUgY2FuIG9wdGlvbmFsbHkgc2V0IHVwIGEgdHlwZQogc2VydmVyIHRoYXQgbWFwcyB0eXBlIFVSTHMgdG8gbWVzc2FnZSBkZWZpbml0aW9ucyBhcyBmb2xsb3dzOgoKICogSWYgbm8gc2NoZW1lIGlzIHByb3ZpZGVkLCBgaHR0cHNgIGlzIGFzc3VtZWQuCiAqIEFuIEhUVFAgR0VUIG9uIHRoZSBVUkwgbXVzdCB5aWVsZCBhIFtnb29nbGUucHJvdG9idWYuVHlwZV1bXQogICB2YWx1ZSBpbiBiaW5hcnkgZm9ybWF0LCBvciBwcm9kdWNlIGFuIGVycm9yLgogKiBBcHBsaWNhdGlvbnMgYXJlIGFsbG93ZWQgdG8gY2FjaGUgbG9va3VwIHJlc3VsdHMgYmFzZWQgb24gdGhlCiAgIFVSTCwgb3IgaGF2ZSB0aGVtIHByZWNvbXBpbGVkIGludG8gYSBiaW5hcnkgdG8gYXZvaWQgYW55CiAgIGxvb2t1cC4gVGhlcmVmb3JlLCBiaW5hcnkgY29tcGF0aWJpbGl0eSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQKICAgb24gY2hhbmdlcyB0byB0eXBlcy4gKFVzZSB2ZXJzaW9uZWQgdHlwZSBuYW1lcyB0byBtYW5hZ2UKICAgYnJlYWtpbmcgY2hhbmdlcy4pCgogTm90ZTogdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG5vdCBjdXJyZW50bHkgYXZhaWxhYmxlIGluIHRoZSBvZmZpY2lhbAogcHJvdG9idWYgcmVsZWFzZSwgYW5kIGl0IGlzIG5vdCB1c2VkIGZvciB0eXBlIFVSTHMgYmVnaW5uaW5nIHdpdGgKIHR5cGUuZ29vZ2xlYXBpcy5jb20uCgogU2NoZW1lcyBvdGhlciB0aGFuIGBodHRwYCwgYGh0dHBzYCAob3IgdGhlIGVtcHR5IHNjaGVtZSkgbWlnaHQgYmUKIHVzZWQgd2l0aCBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBzZW1hbnRpY3MuCgoKDQoFBAACAAUSBJYBAggKDQoFBAACAAESBJYBCREKDQoFBAACAAMSBJYBFBUKVwoEBAACARIEmQECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoNCgUEAAIBBRIEmQECBwoNCgUEAAIBARIEmQEIDQoNCgUEAAIBAxIEmQEQEWIGcHJvdG8zCskSCiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIsCg1Tb3VyY2VDb250ZXh0EhsKCWZpbGVfbmFtZRgBIAEoCVIIZmlsZU5hbWVClQEKE2NvbS5nb29nbGUucHJvdG9idWZCElNvdXJjZUNvbnRleHRQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9wcm90b2J1Zi9zb3VyY2VfY29udGV4dDtzb3VyY2VfY29udGV4dKICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rBEAoGEgQeAC8BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAsCgkKAggBEgMjACwKCAoBCBIDJAAzCgkKAggIEgMkADMKCAoBCBIDJQAiCgkKAggKEgMlACIKCAoBCBIDJgAhCgkKAggkEgMmACEKCAoBCBIDJwBYCgkKAggLEgMnAFgKgwEKAgQAEgQrAC8BGncgYFNvdXJjZUNvbnRleHRgIHJlcHJlc2VudHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNvdXJjZSBvZiBhCiBwcm90b2J1ZiBlbGVtZW50LCBsaWtlIHRoZSBmaWxlIGluIHdoaWNoIGl0IGlzIGRlZmluZWQuCgoKCgMEAAESAysIFQqjAQoEBAACABIDLgIXGpUBIFRoZSBwYXRoLXF1YWxpZmllZCBuYW1lIG9mIHRoZSAucHJvdG8gZmlsZSB0aGF0IGNvbnRhaW5lZCB0aGUgYXNzb2NpYXRlZAogcHJvdG9idWYgZWxlbWVudC4gIEZvciBleGFtcGxlOiBgImdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90byJgLgoKDAoFBAACAAUSAy4CCAoMCgUEAAIAARIDLgkSCgwKBQQAAgADEgMuFRZiBnByb3RvMwrqRgoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8SD2dvb2dsZS5wcm90b2J1ZhoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxokZ29vZ2xlL3Byb3RvYnVmL3NvdXJjZV9jb250ZXh0LnByb3RvIo0CCgRUeXBlEhIKBG5hbWUYASABKAlSBG5hbWUSLgoGZmllbGRzGAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkZpZWxkUgZmaWVsZHMSFgoGb25lb2ZzGAMgAygJUgZvbmVvZnMSMQoHb3B0aW9ucxgEIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIvCgZzeW50YXgYBiABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgitAYKBUZpZWxkEi8KBGtpbmQYASABKA4yGy5nb29nbGUucHJvdG9idWYuRmllbGQuS2luZFIEa2luZBJECgtjYXJkaW5hbGl0eRgCIAEoDjIiLmdvb2dsZS5wcm90b2J1Zi5GaWVsZC5DYXJkaW5hbGl0eVILY2FyZGluYWxpdHkSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISEgoEbmFtZRgEIAEoCVIEbmFtZRIZCgh0eXBlX3VybBgGIAEoCVIHdHlwZVVybBIfCgtvbmVvZl9pbmRleBgHIAEoBVIKb25lb2ZJbmRleBIWCgZwYWNrZWQYCCABKAhSBnBhY2tlZBIxCgdvcHRpb25zGAkgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxIbCglqc29uX25hbWUYCiABKAlSCGpzb25OYW1lEiMKDWRlZmF1bHRfdmFsdWUYCyABKAlSDGRlZmF1bHRWYWx1ZSLIAgoES2luZBIQCgxUWVBFX1VOS05PV04QABIPCgtUWVBFX0RPVUJMRRABEg4KClRZUEVfRkxPQVQQAhIOCgpUWVBFX0lOVDY0EAMSDwoLVFlQRV9VSU5UNjQQBBIOCgpUWVBFX0lOVDMyEAUSEAoMVFlQRV9GSVhFRDY0EAYSEAoMVFlQRV9GSVhFRDMyEAcSDQoJVFlQRV9CT09MEAgSDwoLVFlQRV9TVFJJTkcQCRIOCgpUWVBFX0dST1VQEAoSEAoMVFlQRV9NRVNTQUdFEAsSDgoKVFlQRV9CWVRFUxAMEg8KC1RZUEVfVUlOVDMyEA0SDQoJVFlQRV9FTlVNEA4SEQoNVFlQRV9TRklYRUQzMhAPEhEKDVRZUEVfU0ZJWEVENjQQEBIPCgtUWVBFX1NJTlQzMhAREg8KC1RZUEVfU0lOVDY0EBIidAoLQ2FyZGluYWxpdHkSFwoTQ0FSRElOQUxJVFlfVU5LTk9XThAAEhgKFENBUkRJTkFMSVRZX09QVElPTkFMEAESGAoUQ0FSRElOQUxJVFlfUkVRVUlSRUQQAhIYChRDQVJESU5BTElUWV9SRVBFQVRFRBADIv8BCgRFbnVtEhIKBG5hbWUYASABKAlSBG5hbWUSOAoJZW51bXZhbHVlGAIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZVIJZW51bXZhbHVlEjEKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEkUKDnNvdXJjZV9jb250ZXh0GAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSDXNvdXJjZUNvbnRleHQSLwoGc3ludGF4GAUgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheFIGc3ludGF4ImoKCUVudW1WYWx1ZRISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgCIAEoBVIGbnVtYmVyEjEKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zIkgKBk9wdGlvbhISCgRuYW1lGAEgASgJUgRuYW1lEioKBXZhbHVlGAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIFdmFsdWUqLgoGU3ludGF4EhEKDVNZTlRBWF9QUk9UTzIQABIRCg1TWU5UQVhfUFJPVE8zEAFCfQoTY29tLmdvb2dsZS5wcm90b2J1ZkIJVHlwZVByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL3Byb3RvYnVmL3B0eXBlO3B0eXBl+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSsM4CgcSBR4AugEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP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bHVlIGlzIGFuIGVudW0sIGl0IHNob3VsZCBiZSBzdG9yZWQgYXMgYW4gaW50MzIKIHZhbHVlIHVzaW5nIHRoZSBnb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZSB0eXBlLgoKDQoFBAQCAQYSBLEBAgUKDQoFBAQCAQESBLEBBgsKDQoFBAQCAQMSBLEBDg8KSQoCBQASBrUBALoBARo7IFRoZSBzeW50YXggaW4gd2hpY2ggYSBwcm90b2NvbCBidWZmZXIgZWxlbWVudCBpcyBkZWZpbmVkLgoKCwoDBQABEgS1AQULCiAKBAUAAgASBLcBAhQaEiBTeW50YXggYHByb3RvMmAuCgoNCgUFAAIAARIEtwECDwoNCgUFAAIAAhIEtwESEwogCgQFAAIBEgS5AQIUGhIgU3ludGF4IGBwcm90bzNgLgoKDQoFBQACAQESBLkBAg8KDQoFBQACAQISBLkBEhNiBnByb3RvMwqaQwoZZ29vZ2xlL3Byb3RvYnVmL2FwaS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmGiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8aGmdvb2dsZS9wcm90b2J1Zi90eXBlLnByb3RvIsECCgNBcGkSEgoEbmFtZRgBIAEoCVIEbmFtZRIxCgdtZXRob2RzGAIgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZFIHbWV0aG9kcxIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxIYCgd2ZXJzaW9uGAQgASgJUgd2ZXJzaW9uEkUKDnNvdXJjZV9jb250ZXh0GAUgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSDXNvdXJjZUNvbnRleHQSLgoGbWl4aW5zGAYgAygLMhYuZ29vZ2xlLnByb3RvYnVmLk1peGluUgZtaXhpbnMSLwoGc3ludGF4GAcgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheFIGc3ludGF4IrICCgZNZXRob2QSEgoEbmFtZRgBIAEoCVIEbmFtZRIoChByZXF1ZXN0X3R5cGVfdXJsGAIgASgJUg5yZXF1ZXN0VHlwZVVybBIrChFyZXF1ZXN0X3N0cmVhbWluZxgDIAEoCFIQcmVxdWVzdFN0cmVhbWluZxIqChFyZXNwb25zZV90eXBlX3VybBgEIAEoCVIPcmVzcG9uc2VUeXBlVXJsEi0KEnJlc3BvbnNlX3N0cmVhbWluZxgFIAEoCFIRcmVzcG9uc2VTdHJlYW1pbmcSMQoHb3B0aW9ucxgGIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSLwoGc3ludGF4GAcgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheFIGc3ludGF4Ii8KBU1peGluEhIKBG5hbWUYASABKAlSBG5hbWUSEgoEcm9vdBgCIAEoCVIEcm9vdEJ1ChNjb20uZ29vZ2xlLnByb3RvYnVmQghBcGlQcm90b1ABWitnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9wcm90b2J1Zi9hcGk7YXBpogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoA8CgcSBR4A0QEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIALgoJCgIDARIDIwAkCggKAQgSAyUAOwoJCgIIJRIDJQA7CggKAQgSAyYALAoJCgIIARIDJgAsCggKAQgSAycAKQoJCgIICBIDJwApCggKAQgSAygAIgoJCgIIChIDKAAiCggKAQgSAykAIQoJCgIIJBIDKQAhCggKAQgSAyoAQgoJCgIICxIDKgBCCqsECgIEABIENQBhARqeBCBBcGkgaXMgYSBsaWdodC13ZWlnaHQgZGVzY3JpcHRvciBmb3IgYW4gQVBJIEludGVyZmFjZS4KCiBJbnRlcmZhY2VzIGFyZSBhbHNvIGRlc2NyaWJlZCBhcyAicHJvdG9jb2wgYnVmZmVyIHNlcnZpY2VzIiBpbiBzb21lIGNvbnRleHRzLAogc3VjaCBhcyBieSB0aGUgInNlcnZpY2UiIGtleXdvcmQgaW4gYSAucHJvdG8gZmlsZSwgYnV0IHRoZXkgYXJlIGRpZmZlcmVudAogZnJvbSBBUEkgU2VydmljZXMsIHdoaWNoIHJlcHJlc2VudCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIGFuIGludGVyZmFjZQogYXMgb3Bwb3NlZCB0byBzaW1wbHkgYSBkZXNjcmlwdGlvbiBvZiBtZXRob2RzIGFuZCBiaW5kaW5ncy4gVGhleSBhcmUgYWxzbwogc29tZXRpbWVzIHNpbXBseSByZWZlcnJlZCB0byBhcyAiQVBJcyIgaW4gb3RoZXIgY29udGV4dHMsIHN1Y2ggYXMgdGhlIG5hbWUgb2YKIHRoaXMgbWVzc2FnZSBpdHNlbGYuIFNlZSBodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vYXBpcy9kZXNpZ24vZ2xvc3NhcnkgZm9yCiBkZXRhaWxlZCB0ZXJtaW5vbG9neS4KCgoKAwQAARIDNQgLCnsKBAQAAgASAzkCEhpuIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGlzIGludGVyZmFjZSwgaW5jbHVkaW5nIHBhY2thZ2UgbmFtZQogZm9sbG93ZWQgYnkgdGhlIGludGVyZmFjZSdzIHNpbXBsZSBuYW1lLgoKDAoFBAACAAUSAzkCCAoMCgUEAAIAARIDOQkNCgwKBQQAAgADEgM5EBEKQwoEBAACARIDPAIeGjYgVGhlIG1ldGhvZHMgb2YgdGhpcyBpbnRlcmZhY2UsIGluIHVuc3BlY2lmaWVkIG9yZGVyLgoKDAoFBAACAQQSAzwCCgoMCgUEAAIBBhIDPAsRCgwKBQQAAgEBEgM8EhkKDAoFBAACAQMSAzwcHQo2CgQEAAICEgM/Ah4aKSBBbnkgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIGludGVyZmFjZS4KCgwKBQQAAgIEEgM/AgoKDAoFBAACAgYSAz8LEQoMCgUEAAICARIDPxIZCgwKBQQAAgIDEgM/HB0KgggKBAQAAgMSA1YCFRr0ByBBIHZlcnNpb24gc3RyaW5nIGZvciB0aGlzIGludGVyZmFjZS4gSWYgc3BlY2lmaWVkLCBtdXN0IGhhdmUgdGhlIGZvcm0KIGBtYWpvci12ZXJzaW9uLm1pbm9yLXZlcnNpb25gLCBhcyBpbiBgMS4xMGAuIElmIHRoZSBtaW5vciB2ZXJzaW9uIGlzCiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB6ZXJvLiBJZiB0aGUgZW50aXJlIHZlcnNpb24gZmllbGQgaXMgZW1wdHksIHRoZQogbWFqb3IgdmVyc2lvbiBpcyBkZXJpdmVkIGZyb20gdGhlIHBhY2thZ2UgbmFtZSwgYXMgb3V0bGluZWQgYmVsb3cuIElmIHRoZQogZmllbGQgaXMgbm90IGVtcHR5LCB0aGUgdmVyc2lvbiBpbiB0aGUgcGFja2FnZSBuYW1lIHdpbGwgYmUgdmVyaWZpZWQgdG8gYmUKIGNvbnNpc3RlbnQgd2l0aCB3aGF0IGlzIHByb3ZpZGVkIGhlcmUuCgogVGhlIHZlcnNpb25pbmcgc2NoZW1hIHVzZXMgW3NlbWFudGljCiB2ZXJzaW9uaW5nXShodHRwOi8vc2VtdmVyLm9yZykgd2hlcmUgdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyCiBpbmRpY2F0ZXMgYSBicmVha2luZyBjaGFuZ2UgYW5kIHRoZSBtaW5vciB2ZXJzaW9uIGFuIGFkZGl0aXZlLAogbm9uLWJyZWFraW5nIGNoYW5nZS4gQm90aCB2ZXJzaW9uIG51bWJlcnMgYXJlIHNpZ25hbHMgdG8gdXNlcnMKIHdoYXQgdG8gZXhwZWN0IGZyb20gZGlmZmVyZW50IHZlcnNpb25zLCBhbmQgc2hvdWxkIGJlIGNhcmVmdWxseQogY2hvc2VuIGJhc2VkIG9uIHRoZSBwcm9kdWN0IHBsYW4uCgogVGhlIG1ham9yIHZlcnNpb24gaXMgYWxzbyByZWZsZWN0ZWQgaW4gdGhlIHBhY2thZ2UgbmFtZSBvZiB0aGUKIGludGVyZmFjZSwgd2hpY2ggbXVzdCBlbmQgaW4gYHY8bWFqb3ItdmVyc2lvbj5gLCBhcyBpbgogYGdvb2dsZS5mZWF0dXJlLnYxYC4gRm9yIG1ham9yIHZlcnNpb25zIDAgYW5kIDEsIHRoZSBzdWZmaXggY2FuCiBiZSBvbWl0dGVkLiBaZXJvIG1ham9yIHZlcnNpb25zIG11c3Qgb25seSBiZSB1c2VkIGZvcgogZXhwZXJpbWVudGFsLCBub24tR0EgaW50ZXJmYWNlcy4KCgoKDAoFBAACAwUSA1YCCAoMCgUEAAIDARIDVgkQCgwKBQQAAgMDEgNWExQKWwoEBAACBBIDWgIjGk4gU291cmNlIGNvbnRleHQgZm9yIHRoZSBwcm90b2NvbCBidWZmZXIgc2VydmljZSByZXByZXNlbnRlZCBieSB0aGlzCiBtZXNzYWdlLgoKDAoFBAACBAYSA1oCDwoMCgUEAAIEARIDWhAeCgwKBQQAAgQDEgNaISIKMgoEBAACBRIDXQIcGiUgSW5jbHVkZWQgaW50ZXJmYWNlcy4gU2VlIFtNaXhpbl1bXS4KCgwKBQQAAgUEEgNdAgoKDAoFBAACBQYSA10LEAoMCgUEAAIFARIDXREXCgwKBQQAAgUDEgNdGhsKMAoEBAACBhIDYAIUGiMgVGhlIHNvdXJjZSBzeW50YXggb2YgdGhlIHNlcnZpY2UuCgoMCgUEAAIGBhIDYAIICgwKBQQAAgYBEgNgCQ8KDAoFBAACBgMSA2ASEwo9CgIEARIEZAB6ARoxIE1ldGhvZCByZXByZXNlbnRzIGEgbWV0aG9kIG9mIGFuIEFQSSBpbnRlcmZhY2UuCgoKCgMEAQESA2QIDgouCgQEAQIAEgNnAhIaISBUaGUgc2ltcGxlIG5hbWUgb2YgdGhpcyBtZXRob2QuCgoMCgUEAQIABRIDZwIICgwKBQQBAgABEgNnCQ0KDAoFBAECAAMSA2cQEQovCgQEAQIBEgNqAh4aIiBBIFVSTCBvZiB0aGUgaW5wdXQgbWVzc2FnZSB0eXBlLgoKDAoFBAECAQUSA2oCCAoMCgUEAQIBARIDagkZCgwKBQQBAgEDEgNqHB0KMAoEBAECAhIDbQIdGiMgSWYgdHJ1ZSwgdGhlIHJlcXVlc3QgaXMgc3RyZWFtZWQuCgoMCgUEAQICBRIDbQIGCgwKBQQBAgIBEgNtBxgKDAoFBAECAgMSA20bHAoyCgQEAQIDEgNwAh8aJSBUaGUgVVJMIG9mIHRoZSBvdXRwdXQgbWVzc2FnZSB0eXBlLgoKDAoFBAECAwUSA3ACCAoMCgUEAQIDARIDcAkaCgwKBQQBAgMDEgNwHR4KMQoEBAECBBIDcwIeGiQgSWYgdHJ1ZSwgdGhlIHJlc3BvbnNlIGlzIHN0cmVhbWVkLgoKDAoFBAECBAUSA3MCBgoMCgUEAQIEARIDcwcZCgwKBQQBAgQDEgNzHB0KMwoEBAECBRIDdgIeGiYgQW55IG1ldGFkYXRhIGF0dGFjaGVkIHRvIHRoZSBtZXRob2QuCgoMCgUEAQIFBBIDdgIKCgwKBQQBAgUGEgN2CxEKDAoFBAECBQESA3YSGQoMCgUEAQIFAxIDdhwdCjAKBAQBAgYSA3kCFBojIFRoZSBzb3VyY2Ugc3ludGF4IG9mIHRoaXMgbWV0aG9kLgoKDAoFBAECBgYSA3kCCAoMCgUEAQIGARIDeQkPCgwKBQQBAgYDEgN5EhMKyRMKAgQCEgbKAQDRAQEauhMgRGVjbGFyZXMgYW4gQVBJIEludGVyZmFjZSB0byBiZSBpbmNsdWRlZCBpbiB0aGlzIGludGVyZmFjZS4gVGhlIGluY2x1ZGluZwogaW50ZXJmYWNlIG11c3QgcmVkZWNsYXJlIGFsbCB0aGUgbWV0aG9kcyBmcm9tIHRoZSBpbmNsdWRlZCBpbnRlcmZhY2UsIGJ1dAogZG9jdW1lbnRhdGlvbiBhbmQgb3B0aW9ucyBhcmUgaW5oZXJpdGVkIGFzIGZvbGxvd3M6CgogLSBJZiBhZnRlciBjb21tZW50IGFuZCB3aGl0ZXNwYWNlIHN0cmlwcGluZywgdGhlIGRvY3VtZW50YXRpb24KICAgc3RyaW5nIG9mIHRoZSByZWRlY2xhcmVkIG1ldGhvZCBpcyBlbXB0eSwgaXQgd2lsbCBiZSBpbmhlcml0ZWQKICAgZnJvbSB0aGUgb3JpZ2luYWwgbWV0aG9kLgoKIC0gRWFjaCBhbm5vdGF0aW9uIGJlbG9uZ2luZyB0byB0aGUgc2VydmljZSBjb25maWcgKGh0dHAsCiAgIHZpc2liaWxpdHkpIHdoaWNoIGlzIG5vdCBzZXQgaW4gdGhlIHJlZGVjbGFyZWQgbWV0aG9kIHdpbGwgYmUKICAgaW5oZXJpdGVkLgoKIC0gSWYgYW4gaHR0cCBhbm5vdGF0aW9uIGlzIGluaGVyaXRlZCwgdGhlIHBhdGggcGF0dGVybiB3aWxsIGJlCiAgIG1vZGlmaWVkIGFzIGZvbGxvd3MuIEFueSB2ZXJzaW9uIHByZWZpeCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZQogICB2ZXJzaW9uIG9mIHRoZSBpbmNsdWRpbmcgaW50ZXJmYWNlIHBsdXMgdGhlIFtyb290XVtdIHBhdGggaWYKICAgc3BlY2lmaWVkLgoKIEV4YW1wbGUgb2YgYSBzaW1wbGUgbWl4aW46CgogICAgIHBhY2thZ2UgZ29vZ2xlLmFjbC52MTsKICAgICBzZXJ2aWNlIEFjY2Vzc0NvbnRyb2wgewogICAgICAgLy8gR2V0IHRoZSB1bmRlcmx5aW5nIEFDTCBvYmplY3QuCiAgICAgICBycGMgR2V0QWNsKEdldEFjbFJlcXVlc3QpIHJldHVybnMgKEFjbCkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkuZ2V0ID0gIi92MS97cmVzb3VyY2U9Kip9OmdldEFjbCI7CiAgICAgICB9CiAgICAgfQoKICAgICBwYWNrYWdlIGdvb2dsZS5zdG9yYWdlLnYyOwogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICBycGMgR2V0QWNsKEdldEFjbFJlcXVlc3QpIHJldHVybnMgKEFjbCk7CgogICAgICAgLy8gR2V0IGEgZGF0YSByZWNvcmQuCiAgICAgICBycGMgR2V0RGF0YShHZXREYXRhUmVxdWVzdCkgcmV0dXJucyAoRGF0YSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkuZ2V0ID0gIi92Mi97cmVzb3VyY2U9Kip9IjsKICAgICAgIH0KICAgICB9CgogRXhhbXBsZSBvZiBhIG1peGluIGNvbmZpZ3VyYXRpb246CgogICAgIGFwaXM6CiAgICAgLSBuYW1lOiBnb29nbGUuc3RvcmFnZS52Mi5TdG9yYWdlCiAgICAgICBtaXhpbnM6CiAgICAgICAtIG5hbWU6IGdvb2dsZS5hY2wudjEuQWNjZXNzQ29udHJvbAoKIFRoZSBtaXhpbiBjb25zdHJ1Y3QgaW1wbGllcyB0aGF0IGFsbCBtZXRob2RzIGluIGBBY2Nlc3NDb250cm9sYCBhcmUKIGFsc28gZGVjbGFyZWQgd2l0aCBzYW1lIG5hbWUgYW5kIHJlcXVlc3QvcmVzcG9uc2UgdHlwZXMgaW4KIGBTdG9yYWdlYC4gQSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvciBvciBhbm5vdGF0aW9uIHByb2Nlc3NvciB3aWxsCiBzZWUgdGhlIGVmZmVjdGl2ZSBgU3RvcmFnZS5HZXRBY2xgIG1ldGhvZCBhZnRlciBpbmhlcnRpbmcKIGRvY3VtZW50YXRpb24gYW5kIGFubm90YXRpb25zIGFzIGZvbGxvd3M6CgogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICAgIC4uLgogICAgIH0KCiBOb3RlIGhvdyB0aGUgdmVyc2lvbiBpbiB0aGUgcGF0aCBwYXR0ZXJuIGNoYW5nZWQgZnJvbSBgdjFgIHRvIGB2MmAuCgogSWYgdGhlIGByb290YCBmaWVsZCBpbiB0aGUgbWl4aW4gaXMgc3BlY2lmaWVkLCBpdCBzaG91bGQgYmUgYQogcmVsYXRpdmUgcGF0aCB1bmRlciB3aGljaCBpbmhlcml0ZWQgSFRUUCBwYXRocyBhcmUgcGxhY2VkLiBFeGFtcGxlOgoKICAgICBhcGlzOgogICAgIC0gbmFtZTogZ29vZ2xlLnN0b3JhZ2UudjIuU3RvcmFnZQogICAgICAgbWl4aW5zOgogICAgICAgLSBuYW1lOiBnb29nbGUuYWNsLnYxLkFjY2Vzc0NvbnRyb2wKICAgICAgICAgcm9vdDogYWNscwoKIFRoaXMgaW1wbGllcyB0aGUgZm9sbG93aW5nIGluaGVyaXRlZCBIVFRQIGFubm90YXRpb246CgogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL2FjbHMve3Jlc291cmNlPSoqfTpnZXRBY2wiOwogICAgICAgfQogICAgICAgLi4uCiAgICAgfQoKCwoDBAIBEgTKAQgNCkwKBAQCAgASBMwBAhIaPiBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGludGVyZmFjZSB3aGljaCBpcyBpbmNsdWRlZC4KCg0KBQQCAgAFEgTMAQIICg0KBQQCAgABEgTMAQkNCg0KBQQCAgADEgTMARARClsKBAQCAgESBNABAhIaTSBJZiBub24tZW1wdHkgc3BlY2lmaWVzIGEgcGF0aCB1bmRlciB3aGljaCBpbmhlcml0ZWQgSFRUUCBwYXRocwogYXJlIHJvb3RlZC4KCg0KBQQCAgEFEgTQAQIICg0KBQQCAgEBEgTQAQkNCg0KBQQCAgEDEgTQARARYgZwcm90bzMK0CUKHmdvb2dsZS9wcm90b2J1Zi9kdXJhdGlvbi5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjoKCER1cmF0aW9uEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQnwKE2NvbS5nb29nbGUucHJvdG9idWZCDUR1cmF0aW9uUHJvdG9QAVoqZ2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHR5cGVzL2R1cmF0aW9u+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzStojCgYSBB4AcwEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAB8KCQoCCB8SAyMAHwoICgEIEgMkAEEKCQoCCAsSAyQAQQoICgEIEgMlACwKCQoCCAESAyUALAoICgEIEgMmAC4KCQoCCAgSAyYALgoICgEIEgMnACIKCQoCCAoSAycAIgoICgEIEgMoACEKCQoCCCQSAygAIQqeEAoCBAASBGYAcwEakRAgQSBEdXJhdGlvbiByZXByZXNlbnRzIGEgc2lnbmVkLCBmaXhlZC1sZW5ndGggc3BhbiBvZiB0aW1lIHJlcHJlc2VudGVkCiBhcyBhIGNvdW50IG9mIHNlY29uZHMgYW5kIGZyYWN0aW9ucyBvZiBzZWNvbmRzIGF0IG5hbm9zZWNvbmQKIHJlc29sdXRpb24uIEl0IGlzIGluZGVwZW5kZW50IG9mIGFueSBjYWxlbmRhciBhbmQgY29uY2VwdHMgbGlrZSAiZGF5Igogb3IgIm1vbnRoIi4gSXQgaXMgcmVsYXRlZCB0byBUaW1lc3RhbXAgaW4gdGhhdCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCiB0d28gVGltZXN0YW1wIHZhbHVlcyBpcyBhIER1cmF0aW9uIGFuZCBpdCBjYW4gYmUgYWRkZWQgb3Igc3VidHJhY3RlZAogZnJvbSBhIFRpbWVzdGFtcC4gUmFuZ2UgaXMgYXBwcm94aW1hdGVseSArLTEwLDAwMCB5ZWFycy4KCiAjIEV4YW1wbGVzCgogRXhhbXBsZSAxOiBDb21wdXRlIER1cmF0aW9uIGZyb20gdHdvIFRpbWVzdGFtcHMgaW4gcHNldWRvIGNvZGUuCgogICAgIFRpbWVzdGFtcCBzdGFydCA9IC4uLjsKICAgICBUaW1lc3RhbXAgZW5kID0gLi4uOwogICAgIER1cmF0aW9uIGR1cmF0aW9uID0gLi4uOwoKICAgICBkdXJhdGlvbi5zZWNvbmRzID0gZW5kLnNlY29uZHMgLSBzdGFydC5zZWNvbmRzOwogICAgIGR1cmF0aW9uLm5hbm9zID0gZW5kLm5hbm9zIC0gc3RhcnQubmFub3M7CgogICAgIGlmIChkdXJhdGlvbi5zZWNvbmRzIDwgMCAmJiBkdXJhdGlvbi5uYW5vcyA+IDApIHsKICAgICAgIGR1cmF0aW9uLnNlY29uZHMgKz0gMTsKICAgICAgIGR1cmF0aW9uLm5hbm9zIC09IDEwMDAwMDAwMDA7CiAgICAgfSBlbHNlIGlmIChkdXJhdGlvbi5zZWNvbmRzID4gMCAmJiBkdXJhdGlvbi5uYW5vcyA8IDApIHsKICAgICAgIGR1cmF0aW9uLnNlY29uZHMgLT0gMTsKICAgICAgIGR1cmF0aW9uLm5hbm9zICs9IDEwMDAwMDAwMDA7CiAgICAgfQoKIEV4YW1wbGUgMjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBUaW1lc3RhbXAgKyBEdXJhdGlvbiBpbiBwc2V1ZG8gY29kZS4KCiAgICAgVGltZXN0YW1wIHN0YXJ0ID0gLi4uOwogICAgIER1cmF0aW9uIGR1cmF0aW9uID0gLi4uOwogICAgIFRpbWVzdGFtcCBlbmQgPSAuLi47CgogICAgIGVuZC5zZWNvbmRzID0gc3RhcnQuc2Vjb25kcyArIGR1cmF0aW9uLnNlY29uZHM7CiAgICAgZW5kLm5hbm9zID0gc3RhcnQubmFub3MgKyBkdXJhdGlvbi5uYW5vczsKCiAgICAgaWYgKGVuZC5uYW5vcyA8IDApIHsKICAgICAgIGVuZC5zZWNvbmRzIC09IDE7CiAgICAgICBlbmQubmFub3MgKz0gMTAwMDAwMDAwMDsKICAgICB9IGVsc2UgaWYgKGVuZC5uYW5vcyA+PSAxMDAwMDAwMDAwKSB7CiAgICAgICBlbmQuc2Vjb25kcyArPSAxOwogICAgICAgZW5kLm5hbm9zIC09IDEwMDAwMDAwMDA7CiAgICAgfQoKIEV4YW1wbGUgMzogQ29tcHV0ZSBEdXJhdGlvbiBmcm9tIGRhdGV0aW1lLnRpbWVkZWx0YSBpbiBQeXRob24uCgogICAgIHRkID0gZGF0ZXRpbWUudGltZWRlbHRhKGRheXM9MywgbWludXRlcz0xMCkKICAgICBkdXJhdGlvbiA9IER1cmF0aW9uKCkKICAgICBkdXJhdGlvbi5Gcm9tVGltZWRlbHRhKHRkKQoKICMgSlNPTiBNYXBwaW5nCgogSW4gSlNPTiBmb3JtYXQsIHRoZSBEdXJhdGlvbiB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgcmF0aGVyIHRoYW4gYW4KIG9iamVjdCwgd2hlcmUgdGhlIHN0cmluZyBlbmRzIGluIHRoZSBzdWZmaXggInMiIChpbmRpY2F0aW5nIHNlY29uZHMpIGFuZAogaXMgcHJlY2VkZWQgYnkgdGhlIG51bWJlciBvZiBzZWNvbmRzLCB3aXRoIG5hbm9zZWNvbmRzIGV4cHJlc3NlZCBhcwogZnJhY3Rpb25hbCBzZWNvbmRzLiBGb3IgZXhhbXBsZSwgMyBzZWNvbmRzIHdpdGggMCBuYW5vc2Vjb25kcyBzaG91bGQgYmUKIGVuY29kZWQgaW4gSlNPTiBmb3JtYXQgYXMgIjNzIiwgd2hpbGUgMyBzZWNvbmRzIGFuZCAxIG5hbm9zZWNvbmQgc2hvdWxkCiBiZSBleHByZXNzZWQgaW4gSlNPTiBmb3JtYXQgYXMgIjMuMDAwMDAwMDAxcyIsIGFuZCAzIHNlY29uZHMgYW5kIDEKIG1pY3Jvc2Vjb25kIHNob3VsZCBiZSBleHByZXNzZWQgaW4gSlNPTiBmb3JtYXQgYXMgIjMuMDAwMDAxcyIuCgoKCgoKAwQAARIDZggQCtwBCgQEAAIAEgNqAhQazgEgU2lnbmVkIHNlY29uZHMgb2YgdGhlIHNwYW4gb2YgdGltZS4gTXVzdCBiZSBmcm9tIC0zMTUsNTc2LDAwMCwwMDAKIHRvICszMTUsNTc2LDAwMCwwMDAgaW5jbHVzaXZlLiBOb3RlOiB0aGVzZSBib3VuZHMgYXJlIGNvbXB1dGVkIGZyb206CiA2MCBzZWMvbWluICogNjAgbWluL2hyICogMjQgaHIvZGF5ICogMzY1LjI1IGRheXMveWVhciAqIDEwMDAwIHllYXJzCgoMCgUEAAIABRIDagIHCgwKBQQAAgABEgNqCA8KDAoFBAACAAMSA2oSEwqDAwoEBAACARIDcgISGvUCIFNpZ25lZCBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uIG9mIHRoZSBzcGFuCiBvZiB0aW1lLiBEdXJhdGlvbnMgbGVzcyB0aGFuIG9uZSBzZWNvbmQgYXJlIHJlcHJlc2VudGVkIHdpdGggYSAwCiBgc2Vjb25kc2AgZmllbGQgYW5kIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgYG5hbm9zYCBmaWVsZC4gRm9yIGR1cmF0aW9ucwogb2Ygb25lIHNlY29uZCBvciBtb3JlLCBhIG5vbi16ZXJvIHZhbHVlIGZvciB0aGUgYG5hbm9zYCBmaWVsZCBtdXN0IGJlCiBvZiB0aGUgc2FtZSBzaWduIGFzIHRoZSBgc2Vjb25kc2AgZmllbGQuIE11c3QgYmUgZnJvbSAtOTk5LDk5OSw5OTkKIHRvICs5OTksOTk5LDk5OSBpbmNsdXNpdmUuCgoMCgUEAAIBBRIDcgIHCgwKBQQAAgEBEgNyCA0KDAoFBAACAQMSA3IQEWIGcHJvdG8zCrgSChtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIHCgVFbXB0eUJ2ChNjb20uZ29vZ2xlLnByb3RvYnVmQgpFbXB0eVByb3RvUAFaJ2dpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3B0eXBlcy9lbXB0efgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0r+EAoGEgQeADMQCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwA+CgkKAggLEgMjAD4KCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQArCgkKAggIEgMlACsKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAAfCgkKAggfEgMoAB8K+wIKAgQAEgMzABAa7wIgQSBnZW5lcmljIGVtcHR5IG1lc3NhZ2UgdGhhdCB5b3UgY2FuIHJlLXVzZSB0byBhdm9pZCBkZWZpbmluZyBkdXBsaWNhdGVkCiBlbXB0eSBtZXNzYWdlcyBpbiB5b3VyIEFQSXMuIEEgdHlwaWNhbCBleGFtcGxlIGlzIHRvIHVzZSBpdCBhcyB0aGUgcmVxdWVzdAogb3IgdGhlIHJlc3BvbnNlIHR5cGUgb2YgYW4gQVBJIG1ldGhvZC4gRm9yIGluc3RhbmNlOgoKICAgICBzZXJ2aWNlIEZvbyB7CiAgICAgICBycGMgQmFyKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSkgcmV0dXJucyAoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KTsKICAgICB9CgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBFbXB0eWAgaXMgZW1wdHkgSlNPTiBvYmplY3QgYHt9YC4KCgoKAwQAARIDMwgNYgZwcm90bzMKkT0KIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvEg9nb29nbGUucHJvdG9idWYiIQoJRmllbGRNYXNrEhQKBXBhdGhzGAEgAygJUgVwYXRoc0KMAQoTY29tLmdvb2dsZS5wcm90b2J1ZkIORmllbGRNYXNrUHJvdG9QAVo5Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vcHJvdG9idWYvZmllbGRfbWFzaztmaWVsZF9tYXNr+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSqE7CgcSBR4A9AEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAsCgkKAggBEgMjACwKCAoBCBIDJAAvCgkKAggIEgMkAC8KCAoBCBIDJQAiCgkKAggKEgMlACIKCAoBCBIDJgAhCgkKAggkEgMmACEKCAoBCBIDJwBQCgkKAggLEgMnAFAKCAoBCBIDKAAfCgkKAggfEgMoAB8KsiwKAgQAEgbxAQD0AQEaoywgYEZpZWxkTWFza2AgcmVwcmVzZW50cyBhIHNldCBvZiBzeW1ib2xpYyBmaWVsZCBwYXRocywgZm9yIGV4YW1wbGU6CgogICAgIHBhdGhzOiAiZi5hIgogICAgIHBhdGhzOiAiZi5iLmQiCgogSGVyZSBgZmAgcmVwcmVzZW50cyBhIGZpZWxkIGluIHNvbWUgcm9vdCBtZXNzYWdlLCBgYWAgYW5kIGBiYAogZmllbGRzIGluIHRoZSBtZXNzYWdlIGZvdW5kIGluIGBmYCwgYW5kIGBkYCBhIGZpZWxkIGZvdW5kIGluIHRoZQogbWVzc2FnZSBpbiBgZi5iYC4KCiBGaWVsZCBtYXNrcyBhcmUgdXNlZCB0byBzcGVjaWZ5IGEgc3Vic2V0IG9mIGZpZWxkcyB0aGF0IHNob3VsZCBiZQogcmV0dXJuZWQgYnkgYSBnZXQgb3BlcmF0aW9uIG9yIG1vZGlmaWVkIGJ5IGFuIHVwZGF0ZSBvcGVyYXRpb24uCiBGaWVsZCBtYXNrcyBhbHNvIGhhdmUgYSBjdXN0b20gSlNPTiBlbmNvZGluZyAoc2VlIGJlbG93KS4KCiAjIEZpZWxkIE1hc2tzIGluIFByb2plY3Rpb25zCgogV2hlbiB1c2VkIGluIHRoZSBjb250ZXh0IG9mIGEgcHJvamVjdGlvbiwgYSByZXNwb25zZSBtZXNzYWdlIG9yCiBzdWItbWVzc2FnZSBpcyBmaWx0ZXJlZCBieSB0aGUgQVBJIHRvIG9ubHkgY29udGFpbiB0aG9zZSBmaWVsZHMgYXMKIHNwZWNpZmllZCBpbiB0aGUgbWFzay4gRm9yIGV4YW1wbGUsIGlmIHRoZSBtYXNrIGluIHRoZSBwcmV2aW91cwogZXhhbXBsZSBpcyBhcHBsaWVkIHRvIGEgcmVzcG9uc2UgbWVzc2FnZSBhcyBmb2xsb3dzOgoKICAgICBmIHsKICAgICAgIGEgOiAyMgogICAgICAgYiB7CiAgICAgICAgIGQgOiAxCiAgICAgICAgIHggOiAyCiAgICAgICB9CiAgICAgICB5IDogMTMKICAgICB9CiAgICAgejogOAoKIFRoZSByZXN1bHQgd2lsbCBub3QgY29udGFpbiBzcGVjaWZpYyB2YWx1ZXMgZm9yIGZpZWxkcyB4LHkgYW5kIHoKICh0aGVpciB2YWx1ZSB3aWxsIGJlIHNldCB0byB0aGUgZGVmYXVsdCwgYW5kIG9taXR0ZWQgaW4gcHJvdG8gdGV4dAogb3V0cHV0KToKCgogICAgIGYgewogICAgICAgYSA6IDIyCiAgICAgICBiIHsKICAgICAgICAgZCA6IDEKICAgICAgIH0KICAgICB9CgogQSByZXBlYXRlZCBmaWVsZCBpcyBub3QgYWxsb3dlZCBleGNlcHQgYXQgdGhlIGxhc3QgcG9zaXRpb24gb2YgYQogcGF0aHMgc3RyaW5nLgoKIElmIGEgRmllbGRNYXNrIG9iamVjdCBpcyBub3QgcHJlc2VudCBpbiBhIGdldCBvcGVyYXRpb24sIHRoZQogb3BlcmF0aW9uIGFwcGxpZXMgdG8gYWxsIGZpZWxkcyAoYXMgaWYgYSBGaWVsZE1hc2sgb2YgYWxsIGZpZWxkcwogaGFkIGJlZW4gc3BlY2lmaWVkKS4KCiBOb3RlIHRoYXQgYSBmaWVsZCBtYXNrIGRvZXMgbm90IG5lY2Vzc2FyaWx5IGFwcGx5IHRvIHRoZQogdG9wLWxldmVsIHJlc3BvbnNlIG1lc3NhZ2UuIEluIGNhc2Ugb2YgYSBSRVNUIGdldCBvcGVyYXRpb24sIHRoZQogZmllbGQgbWFzayBhcHBsaWVzIGRpcmVjdGx5IHRvIHRoZSByZXNwb25zZSwgYnV0IGluIGNhc2Ugb2YgYSBSRVNUCiBsaXN0IG9wZXJhdGlvbiwgdGhlIG1hc2sgaW5zdGVhZCBhcHBsaWVzIHRvIGVhY2ggaW5kaXZpZHVhbCBtZXNzYWdlCiBpbiB0aGUgcmV0dXJuZWQgcmVzb3VyY2UgbGlzdC4gSW4gY2FzZSBvZiBhIFJFU1QgY3VzdG9tIG1ldGhvZCwKIG90aGVyIGRlZmluaXRpb25zIG1heSBiZSB1c2VkLiBXaGVyZSB0aGUgbWFzayBhcHBsaWVzIHdpbGwgYmUKIGNsZWFybHkgZG9jdW1lbnRlZCB0b2dldGhlciB3aXRoIGl0cyBkZWNsYXJhdGlvbiBpbiB0aGUgQVBJLiAgSW4KIGFueSBjYXNlLCB0aGUgZWZmZWN0IG9uIHRoZSByZXR1cm5lZCByZXNvdXJjZS9yZXNvdXJjZXMgaXMgcmVxdWlyZWQKIGJlaGF2aW9yIGZvciBBUElzLgoKICMgRmllbGQgTWFza3MgaW4gVXBkYXRlIE9wZXJhdGlvbnMKCiBBIGZpZWxkIG1hc2sgaW4gdXBkYXRlIG9wZXJhdGlvbnMgc3BlY2lmaWVzIHdoaWNoIGZpZWxkcyBvZiB0aGUKIHRhcmdldGVkIHJlc291cmNlIGFyZSBnb2luZyB0byBiZSB1cGRhdGVkLiBUaGUgQVBJIGlzIHJlcXVpcmVkCiB0byBvbmx5IGNoYW5nZSB0aGUgdmFsdWVzIG9mIHRoZSBmaWVsZHMgYXMgc3BlY2lmaWVkIGluIHRoZSBtYXNrCiBhbmQgbGVhdmUgdGhlIG90aGVycyB1bnRvdWNoZWQuIElmIGEgcmVzb3VyY2UgaXMgcGFzc2VkIGluIHRvCiBkZXNjcmliZSB0aGUgdXBkYXRlZCB2YWx1ZXMsIHRoZSBBUEkgaWdub3JlcyB0aGUgdmFsdWVzIG9mIGFsbAogZmllbGRzIG5vdCBjb3ZlcmVkIGJ5IHRoZSBtYXNrLgoKIElmIGEgcmVwZWF0ZWQgZmllbGQgaXMgc3BlY2lmaWVkIGZvciBhbiB1cGRhdGUgb3BlcmF0aW9uLCBuZXcgdmFsdWVzIHdpbGwKIGJlIGFwcGVuZGVkIHRvIHRoZSBleGlzdGluZyByZXBlYXRlZCBmaWVsZCBpbiB0aGUgdGFyZ2V0IHJlc291cmNlLiBOb3RlIHRoYXQKIGEgcmVwZWF0ZWQgZmllbGQgaXMgb25seSBhbGxvd2VkIGluIHRoZSBsYXN0IHBvc2l0aW9uIG9mIGEgYHBhdGhzYCBzdHJpbmcuCgogSWYgYSBzdWItbWVzc2FnZSBpcyBzcGVjaWZpZWQgaW4gdGhlIGxhc3QgcG9zaXRpb24gb2YgdGhlIGZpZWxkIG1hc2sgZm9yIGFuCiB1cGRhdGUgb3BlcmF0aW9uLCB0aGVuIG5ldyB2YWx1ZSB3aWxsIGJlIG1lcmdlZCBpbnRvIHRoZSBleGlzdGluZyBzdWItbWVzc2FnZQogaW4gdGhlIHRhcmdldCByZXNvdXJjZS4KCiBGb3IgZXhhbXBsZSwgZ2l2ZW4gdGhlIHRhcmdldCBtZXNzYWdlOgoKICAgICBmIHsKICAgICAgIGIgewogICAgICAgICBkOiAxCiAgICAgICAgIHg6IDIKICAgICAgIH0KICAgICAgIGM6IFsxXQogICAgIH0KCiBBbmQgYW4gdXBkYXRlIG1lc3NhZ2U6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEwCiAgICAgICB9CiAgICAgICBjOiBbMl0KICAgICB9CgogdGhlbiBpZiB0aGUgZmllbGQgbWFzayBpczoKCiAgcGF0aHM6IFsiZi5iIiwgImYuYyJdCgogdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmU6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEwCiAgICAgICAgIHg6IDIKICAgICAgIH0KICAgICAgIGM6IFsxLCAyXQogICAgIH0KCiBBbiBpbXBsZW1lbnRhdGlvbiBtYXkgcHJvdmlkZSBvcHRpb25zIHRvIG92ZXJyaWRlIHRoaXMgZGVmYXVsdCBiZWhhdmlvciBmb3IKIHJlcGVhdGVkIGFuZCBtZXNzYWdlIGZpZWxkcy4KCiBJbiBvcmRlciB0byByZXNldCBhIGZpZWxkJ3MgdmFsdWUgdG8gdGhlIGRlZmF1bHQsIHRoZSBmaWVsZCBtdXN0CiBiZSBpbiB0aGUgbWFzayBhbmQgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlIGluIHRoZSBwcm92aWRlZCByZXNvdXJjZS4KIEhlbmNlLCBpbiBvcmRlciB0byByZXNldCBhbGwgZmllbGRzIG9mIGEgcmVzb3VyY2UsIHByb3ZpZGUgYSBkZWZhdWx0CiBpbnN0YW5jZSBvZiB0aGUgcmVzb3VyY2UgYW5kIHNldCBhbGwgZmllbGRzIGluIHRoZSBtYXNrLCBvciBkbwogbm90IHByb3ZpZGUgYSBtYXNrIGFzIGRlc2NyaWJlZCBiZWxvdy4KCiBJZiBhIGZpZWxkIG1hc2sgaXMgbm90IHByZXNlbnQgb24gdXBkYXRlLCB0aGUgb3BlcmF0aW9uIGFwcGxpZXMgdG8KIGFsbCBmaWVsZHMgKGFzIGlmIGEgZmllbGQgbWFzayBvZiBhbGwgZmllbGRzIGhhcyBiZWVuIHNwZWNpZmllZCkuCiBOb3RlIHRoYXQgaW4gdGhlIHByZXNlbmNlIG9mIHNjaGVtYSBldm9sdXRpb24sIHRoaXMgbWF5IG1lYW4gdGhhdAogZmllbGRzIHRoZSBjbGllbnQgZG9lcyBub3Qga25vdyBhbmQgaGFzIHRoZXJlZm9yZSBub3QgZmlsbGVkIGludG8KIHRoZSByZXF1ZXN0IHdpbGwgYmUgcmVzZXQgdG8gdGhlaXIgZGVmYXVsdC4gSWYgdGhpcyBpcyB1bndhbnRlZAogYmVoYXZpb3IsIGEgc3BlY2lmaWMgc2VydmljZSBtYXkgcmVxdWlyZSBhIGNsaWVudCB0byBhbHdheXMgc3BlY2lmeQogYSBmaWVsZCBtYXNrLCBwcm9kdWNpbmcgYW4gZXJyb3IgaWYgbm90LgoKIEFzIHdpdGggZ2V0IG9wZXJhdGlvbnMsIHRoZSBsb2NhdGlvbiBvZiB0aGUgcmVzb3VyY2Ugd2hpY2gKIGRlc2NyaWJlcyB0aGUgdXBkYXRlZCB2YWx1ZXMgaW4gdGhlIHJlcXVlc3QgbWVzc2FnZSBkZXBlbmRzIG9uIHRoZQogb3BlcmF0aW9uIGtpbmQuIEluIGFueSBjYXNlLCB0aGUgZWZmZWN0IG9mIHRoZSBmaWVsZCBtYXNrIGlzCiByZXF1aXJlZCB0byBiZSBob25vcmVkIGJ5IHRoZSBBUEkuCgogIyMgQ29uc2lkZXJhdGlvbnMgZm9yIEhUVFAgUkVTVAoKIFRoZSBIVFRQIGtpbmQgb2YgYW4gdXBkYXRlIG9wZXJhdGlvbiB3aGljaCB1c2VzIGEgZmllbGQgbWFzayBtdXN0CiBiZSBzZXQgdG8gUEFUQ0ggaW5zdGVhZCBvZiBQVVQgaW4gb3JkZXIgdG8gc2F0aXNmeSBIVFRQIHNlbWFudGljcwogKFBVVCBtdXN0IG9ubHkgYmUgdXNlZCBmb3IgZnVsbCB1cGRhdGVzKS4KCiAjIEpTT04gRW5jb2Rpbmcgb2YgRmllbGQgTWFza3MKCiBJbiBKU09OLCBhIGZpZWxkIG1hc2sgaXMgZW5jb2RlZCBhcyBhIHNpbmdsZSBzdHJpbmcgd2hlcmUgcGF0aHMgYXJlCiBzZXBhcmF0ZWQgYnkgYSBjb21tYS4gRmllbGRzIG5hbWUgaW4gZWFjaCBwYXRoIGFyZSBjb252ZXJ0ZWQKIHRvL2Zyb20gbG93ZXItY2FtZWwgbmFtaW5nIGNvbnZlbnRpb25zLgoKIEFzIGFuIGV4YW1wbGUsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgbWVzc2FnZSBkZWNsYXJhdGlvbnM6CgogICAgIG1lc3NhZ2UgUHJvZmlsZSB7CiAgICAgICBVc2VyIHVzZXIgPSAxOwogICAgICAgUGhvdG8gcGhvdG8gPSAyOwogICAgIH0KICAgICBtZXNzYWdlIFVzZXIgewogICAgICAgc3RyaW5nIGRpc3BsYXlfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgYWRkcmVzcyA9IDI7CiAgICAgfQoKIEluIHByb3RvIGEgZmllbGQgbWFzayBmb3IgYFByb2ZpbGVgIG1heSBsb29rIGFzIHN1Y2g6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJ1c2VyLmRpc3BsYXlfbmFtZSIKICAgICAgIHBhdGhzOiAicGhvdG8iCiAgICAgfQoKIEluIEpTT04sIHRoZSBzYW1lIG1hc2sgaXMgcmVwcmVzZW50ZWQgYXMgYmVsb3c6CgogICAgIHsKICAgICAgIG1hc2s6ICJ1c2VyLmRpc3BsYXlOYW1lLHBob3RvIgogICAgIH0KCiAjIEZpZWxkIE1hc2tzIGFuZCBPbmVvZiBGaWVsZHMKCiBGaWVsZCBtYXNrcyB0cmVhdCBmaWVsZHMgaW4gb25lb2ZzIGp1c3QgYXMgcmVndWxhciBmaWVsZHMuIENvbnNpZGVyIHRoZQogZm9sbG93aW5nIG1lc3NhZ2U6CgogICAgIG1lc3NhZ2UgU2FtcGxlTWVzc2FnZSB7CiAgICAgICBvbmVvZiB0ZXN0X29uZW9mIHsKICAgICAgICAgc3RyaW5nIG5hbWUgPSA0OwogICAgICAgICBTdWJNZXNzYWdlIHN1Yl9tZXNzYWdlID0gOTsKICAgICAgIH0KICAgICB9CgogVGhlIGZpZWxkIG1hc2sgY2FuIGJlOgoKICAgICBtYXNrIHsKICAgICAgIHBhdGhzOiAibmFtZSIKICAgICB9CgogT3I6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJzdWJfbWVzc2FnZSIKICAgICB9CgogTm90ZSB0aGF0IG9uZW9mIHR5cGUgbmFtZXMgKCJ0ZXN0X29uZW9mIiBpbiB0aGlzIGNhc2UpIGNhbm5vdCBiZSB1c2VkIGluCiBwYXRocy4KCiAjIyBGaWVsZCBNYXNrIFZlcmlmaWNhdGlvbgoKIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBhbnkgQVBJIG1ldGhvZCB3aGljaCBoYXMgYSBGaWVsZE1hc2sgdHlwZSBmaWVsZCBpbiB0aGUKIHJlcXVlc3Qgc2hvdWxkIHZlcmlmeSB0aGUgaW5jbHVkZWQgZmllbGQgcGF0aHMsIGFuZCByZXR1cm4gYW4KIGBJTlZBTElEX0FSR1VNRU5UYCBlcnJvciBpZiBhbnkgcGF0aCBpcyB1bm1hcHBhYmxlLgoKCwoDBAABEgTxAQgRCiwKBAQAAgASBPMBAhwaHiBUaGUgc2V0IG9mIGZpZWxkIG1hc2sgcGF0aHMuCgoNCgUEAAIABBIE8wECCgoNCgUEAAIABRIE8wELEQoNCgUEAAIAARIE8wESFwoNCgUEAAIAAxIE8wEaG2IGcHJvdG8zCoEjChxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYimAEKBlN0cnVjdBI7CgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5UgZmaWVsZHMaUQoLRmllbGRzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSBXZhbHVlOgI4ASKyAgoFVmFsdWUSOwoKbnVsbF92YWx1ZRgBIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVIAFIJbnVsbFZhbHVlEiMKDG51bWJlcl92YWx1ZRgCIAEoAUgAUgtudW1iZXJWYWx1ZRIjCgxzdHJpbmdfdmFsdWUYAyABKAlIAFILc3RyaW5nVmFsdWUSHwoKYm9vbF92YWx1ZRgEIAEoCEgAUglib29sVmFsdWUSPAoMc3RydWN0X3ZhbHVlGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAUgtzdHJ1Y3RWYWx1ZRI7CgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAUglsaXN0VmFsdWVCBgoEa2luZCI7CglMaXN0VmFsdWUSLgoGdmFsdWVzGAEgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgZ2YWx1ZXMqGwoJTnVsbFZhbHVlEg4KCk5VTExfVkFMVUUQAEKBAQoTY29tLmdvb2dsZS5wcm90b2J1ZkILU3RydWN0UHJvdG9QAVoxZ2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHR5cGVzL3N0cnVjdDtzdHJ1Y3RwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0qZHQoGEgQeAF4BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAfCgkKAggfEgMjAB8KCAoBCBIDJABICgkKAggLEgMkAEgKCAoBCBIDJQAsCgkKAggBEgMlACwKCAoBCBIDJgAsCgkKAggIEgMmACwKCAoBCBIDJwAiCgkKAggKEgMnACIKCAoBCBIDKAAhCgkKAggkEgMoACEKswMKAgQAEgQyADUBGqYDIGBTdHJ1Y3RgIHJlcHJlc2VudHMgYSBzdHJ1Y3R1cmVkIGRhdGEgdmFsdWUsIGNvbnNpc3Rpbmcgb2YgZmllbGRzCiB3aGljaCBtYXAgdG8gZHluYW1pY2FsbHkgdHlwZWQgdmFsdWVzLiBJbiBzb21lIGxhbmd1YWdlcywgYFN0cnVjdGAKIG1pZ2h0IGJlIHN1cHBvcnRlZCBieSBhIG5hdGl2ZSByZXByZXNlbnRhdGlvbi4gRm9yIGV4YW1wbGUsIGluCiBzY3JpcHRpbmcgbGFuZ3VhZ2VzIGxpa2UgSlMgYSBzdHJ1Y3QgaXMgcmVwcmVzZW50ZWQgYXMgYW4KIG9iamVjdC4gVGhlIGRldGFpbHMgb2YgdGhhdCByZXByZXNlbnRhdGlvbiBhcmUgZGVzY3JpYmVkIHRvZ2V0aGVyCiB3aXRoIHRoZSBwcm90byBzdXBwb3J0IGZvciB0aGUgbGFuZ3VhZ2UuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBTdHJ1Y3RgIGlzIEpTT04gb2JqZWN0LgoKCgoDBAABEgMyCA4KOQoEBAACABIDNAIgGiwgVW5vcmRlcmVkIG1hcCBvZiBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZXMuCgoMCgUEAAIABhIDNAIUCgwKBQQAAgABEgM0FRsKDAoFBAACAAMSAzQeHwrDAgoCBAESBD0ATQEatgIgYFZhbHVlYCByZXByZXNlbnRzIGEgZHluYW1pY2FsbHkgdHlwZWQgdmFsdWUgd2hpY2ggY2FuIGJlIGVpdGhlcgogbnVsbCwgYSBudW1iZXIsIGEgc3RyaW5nLCBhIGJvb2xlYW4sIGEgcmVjdXJzaXZlIHN0cnVjdCB2YWx1ZSwgb3IgYQogbGlzdCBvZiB2YWx1ZXMuIEEgcHJvZHVjZXIgb2YgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gc2V0IG9uZSBvZiB0aGF0CiB2YXJpYW50cywgYWJzZW5jZSBvZiBhbnkgdmFyaWFudCBpbmRpY2F0ZXMgYW4gZXJyb3IuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBWYWx1ZWAgaXMgSlNPTiB2YWx1ZS4KCgoKAwQBARIDPQgNCiIKBAQBCAASBD8CTAMaFCBUaGUga2luZCBvZiB2YWx1ZS4KCgwKBQQBCAABEgM/CAwKJwoEBAECABIDQQQdGhogUmVwcmVzZW50cyBhIG51bGwgdmFsdWUuCgoMCgUEAQIABhIDQQQNCgwKBQQBAgABEgNBDhgKDAoFBAECAAMSA0EbHAopCgQEAQIBEgNDBBwaHCBSZXByZXNlbnRzIGEgZG91YmxlIHZhbHVlLgoKDAoFBAECAQUSA0MECgoMCgUEAQIBARIDQwsXCgwKBQQBAgEDEgNDGhsKKQoEBAECAhIDRQQcGhwgUmVwcmVzZW50cyBhIHN0cmluZyB2YWx1ZS4KCgwKBQQBAgIFEgNFBAoKDAoFBAECAgESA0ULFwoMCgUEAQICAxIDRRobCioKBAQBAgMSA0cEGBodIFJlcHJlc2VudHMgYSBib29sZWFuIHZhbHVlLgoKDAoFBAECAwUSA0cECAoMCgUEAQIDARIDRwkTCgwKBQQBAgMDEgNHFhcKLQoEBAECBBIDSQQcGiAgUmVwcmVzZW50cyBhIHN0cnVjdHVyZWQgdmFsdWUuCgoMCgUEAQIEBhIDSQQKCgwKBQQBAgQBEgNJCxcKDAoFBAECBAMSA0kaGwotCgQEAQIFEgNLBB0aICBSZXByZXNlbnRzIGEgcmVwZWF0ZWQgYFZhbHVlYC4KCgwKBQQBAgUGEgNLBA0KDAoFBAECBQESA0sOGAoMCgUEAQIFAxIDSxscCqkBCgIFABIEUwBWARqcASBgTnVsbFZhbHVlYCBpcyBhIHNpbmdsZXRvbiBlbnVtZXJhdGlvbiB0byByZXByZXNlbnQgdGhlIG51bGwgdmFsdWUgZm9yIHRoZQogYFZhbHVlYCB0eXBlIHVuaW9uLgoKICBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYE51bGxWYWx1ZWAgaXMgSlNPTiBgbnVsbGAuCgoKCgMFAAESA1MFDgoaCgQFAAIAEgNVAhEaDSBOdWxsIHZhbHVlLgoKDAoFBQACAAESA1UCDAoMCgUFAAIAAhIDVQ8QCoIBCgIEAhIEWwBeARp2IGBMaXN0VmFsdWVgIGlzIGEgd3JhcHBlciBhcm91bmQgYSByZXBlYXRlZCBmaWVsZCBvZiB2YWx1ZXMuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBMaXN0VmFsdWVgIGlzIEpTT04gYXJyYXkuCgoKCgMEAgESA1sIEQo6CgQEAgIAEgNdAhwaLSBSZXBlYXRlZCBmaWVsZCBvZiBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZXMuCgoMCgUEAgIABBIDXQIKCgwKBQQCAgAGEgNdCxAKDAoFBAICAAESA10RFwoMCgUEAgIAAxIDXRobYgZwcm90bzMK0y8KH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiI7CglUaW1lc3RhbXASGAoHc2Vjb25kcxgBIAEoA1IHc2Vjb25kcxIUCgVuYW5vcxgCIAEoBVIFbmFub3NCfgoTY29tLmdvb2dsZS5wcm90b2J1ZkIOVGltZXN0YW1wUHJvdG9QAVorZ2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHR5cGVzL3RpbWVzdGFtcPgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rZLQoHEgUeAIkBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAHwoJCgIIHxIDIwAfCggKAQgSAyQAQgoJCgIICxIDJABCCggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYALwoJCgIICBIDJgAvCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCvMbCgIEABIFfgCJAQEa5RsgQSBUaW1lc3RhbXAgcmVwcmVzZW50cyBhIHBvaW50IGluIHRpbWUgaW5kZXBlbmRlbnQgb2YgYW55IHRpbWUgem9uZSBvciBsb2NhbAogY2FsZW5kYXIsIGVuY29kZWQgYXMgYSBjb3VudCBvZiBzZWNvbmRzIGFuZCBmcmFjdGlvbnMgb2Ygc2Vjb25kcyBhdAogbmFub3NlY29uZCByZXNvbHV0aW9uLiBUaGUgY291bnQgaXMgcmVsYXRpdmUgdG8gYW4gZXBvY2ggYXQgVVRDIG1pZG5pZ2h0IG9uCiBKYW51YXJ5IDEsIDE5NzAsIGluIHRoZSBwcm9sZXB0aWMgR3JlZ29yaWFuIGNhbGVuZGFyIHdoaWNoIGV4dGVuZHMgdGhlCiBHcmVnb3JpYW4gY2FsZW5kYXIgYmFja3dhcmRzIHRvIHllYXIgb25lLgoKIEFsbCBtaW51dGVzIGFyZSA2MCBzZWNvbmRzIGxvbmcuIExlYXAgc2Vjb25kcyBhcmUgInNtZWFyZWQiIHNvIHRoYXQgbm8gbGVhcAogc2Vjb25kIHRhYmxlIGlzIG5lZWRlZCBmb3IgaW50ZXJwcmV0YXRpb24sIHVzaW5nIGEgWzI0LWhvdXIgbGluZWFyCiBzbWVhcl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vdGltZS9zbWVhcikuCgogVGhlIHJhbmdlIGlzIGZyb20gMDAwMS0wMS0wMVQwMDowMDowMFogdG8gOTk5OS0xMi0zMVQyMzo1OTo1OS45OTk5OTk5OTlaLiBCeQogcmVzdHJpY3RpbmcgdG8gdGhhdCByYW5nZSwgd2UgZW5zdXJlIHRoYXQgd2UgY2FuIGNvbnZlcnQgdG8gYW5kIGZyb20gW1JGQwogMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBkYXRlIHN0cmluZ3MuCgogIyBFeGFtcGxlcwoKIEV4YW1wbGUgMTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgdGltZSgpYC4KCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModGltZShOVUxMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygwKTsKCiBFeGFtcGxlIDI6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYGdldHRpbWVvZmRheSgpYC4KCiAgICAgc3RydWN0IHRpbWV2YWwgdHY7CiAgICAgZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHR2LnR2X3NlYyk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcyh0di50dl91c2VjICogMTAwMCk7CgogRXhhbXBsZSAzOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFdpbjMyIGBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgpYC4KCiAgICAgRklMRVRJTUUgZnQ7CiAgICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoJmZ0KTsKICAgICBVSU5UNjQgdGlja3MgPSAoKChVSU5UNjQpZnQuZHdIaWdoRGF0ZVRpbWUpIDw8IDMyKSB8IGZ0LmR3TG93RGF0ZVRpbWU7CgogICAgIC8vIEEgV2luZG93cyB0aWNrIGlzIDEwMCBuYW5vc2Vjb25kcy4gV2luZG93cyBlcG9jaCAxNjAxLTAxLTAxVDAwOjAwOjAwWgogICAgIC8vIGlzIDExNjQ0NDczNjAwIHNlY29uZHMgYmVmb3JlIFVuaXggZXBvY2ggMTk3MC0wMS0wMVQwMDowMDowMFouCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHMoKElOVDY0KSAoKHRpY2tzIC8gMTAwMDAwMDApIC0gMTE2NDQ0NzM2MDBMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoKElOVDMyKSAoKHRpY2tzICUgMTAwMDAwMDApICogMTAwKSk7CgogRXhhbXBsZSA0OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIEphdmEgYFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpYC4KCiAgICAgbG9uZyBtaWxsaXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcCA9IFRpbWVzdGFtcC5uZXdCdWlsZGVyKCkuc2V0U2Vjb25kcyhtaWxsaXMgLyAxMDAwKQogICAgICAgICAuc2V0TmFub3MoKGludCkgKChtaWxsaXMgJSAxMDAwKSAqIDEwMDAwMDApKS5idWlsZCgpOwoKCiBFeGFtcGxlIDU6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gY3VycmVudCB0aW1lIGluIFB5dGhvbi4KCiAgICAgdGltZXN0YW1wID0gVGltZXN0YW1wKCkKICAgICB0aW1lc3RhbXAuR2V0Q3VycmVudFRpbWUoKQoKICMgSlNPTiBNYXBwaW5nCgogSW4gSlNPTiBmb3JtYXQsIHRoZSBUaW1lc3RhbXAgdHlwZSBpcyBlbmNvZGVkIGFzIGEgc3RyaW5nIGluIHRoZQogW1JGQyAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGZvcm1hdC4gVGhhdCBpcywgdGhlCiBmb3JtYXQgaXMgInt5ZWFyfS17bW9udGh9LXtkYXl9VHtob3VyfTp7bWlufTp7c2VjfVsue2ZyYWNfc2VjfV1aIgogd2hlcmUge3llYXJ9IGlzIGFsd2F5cyBleHByZXNzZWQgdXNpbmcgZm91ciBkaWdpdHMgd2hpbGUge21vbnRofSwge2RheX0sCiB7aG91cn0sIHttaW59LCBhbmQge3NlY30gYXJlIHplcm8tcGFkZGVkIHRvIHR3byBkaWdpdHMgZWFjaC4gVGhlIGZyYWN0aW9uYWwKIHNlY29uZHMsIHdoaWNoIGNhbiBnbyB1cCB0byA5IGRpZ2l0cyAoaS5lLiB1cCB0byAxIG5hbm9zZWNvbmQgcmVzb2x1dGlvbiksCiBhcmUgb3B0aW9uYWwuIFRoZSAiWiIgc3VmZml4IGluZGljYXRlcyB0aGUgdGltZXpvbmUgKCJVVEMiKTsgdGhlIHRpbWV6b25lCiBpcyByZXF1aXJlZC4gQSBwcm90bzMgSlNPTiBzZXJpYWxpemVyIHNob3VsZCBhbHdheXMgdXNlIFVUQyAoYXMgaW5kaWNhdGVkIGJ5CiAiWiIpIHdoZW4gcHJpbnRpbmcgdGhlIFRpbWVzdGFtcCB0eXBlIGFuZCBhIHByb3RvMyBKU09OIHBhcnNlciBzaG91bGQgYmUKIGFibGUgdG8gYWNjZXB0IGJvdGggVVRDIGFuZCBvdGhlciB0aW1lem9uZXMgKGFzIGluZGljYXRlZCBieSBhbiBvZmZzZXQpLgoKIEZvciBleGFtcGxlLCAiMjAxNy0wMS0xNVQwMTozMDoxNS4wMVoiIGVuY29kZXMgMTUuMDEgc2Vjb25kcyBwYXN0CiAwMTozMCBVVEMgb24gSmFudWFyeSAxNSwgMjAxNy4KCiBJbiBKYXZhU2NyaXB0LCBvbmUgY2FuIGNvbnZlcnQgYSBEYXRlIG9iamVjdCB0byB0aGlzIGZvcm1hdCB1c2luZyB0aGUKIHN0YW5kYXJkCiBbdG9JU09TdHJpbmcoKV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS90b0lTT1N0cmluZykKIG1ldGhvZC4gSW4gUHl0aG9uLCBhIHN0YW5kYXJkIGBkYXRldGltZS5kYXRldGltZWAgb2JqZWN0IGNhbiBiZSBjb252ZXJ0ZWQKIHRvIHRoaXMgZm9ybWF0IHVzaW5nCiBbYHN0cmZ0aW1lYF0oaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L3RpbWUuaHRtbCN0aW1lLnN0cmZ0aW1lKSB3aXRoCiB0aGUgdGltZSBmb3JtYXQgc3BlYyAnJVktJW0tJWRUJUg6JU06JVMuJWZaJy4gTGlrZXdpc2UsIGluIEphdmEsIG9uZSBjYW4gdXNlCiB0aGUgSm9kYSBUaW1lJ3MgW2BJU09EYXRlVGltZUZvcm1hdC5kYXRlVGltZSgpYF0oCiBodHRwOi8vd3d3LmpvZGEub3JnL2pvZGEtdGltZS9hcGlkb2NzL29yZy9qb2RhL3RpbWUvZm9ybWF0L0lTT0RhdGVUaW1lRm9ybWF0Lmh0bWwjZGF0ZVRpbWUlMkQlMkQKICkgdG8gb2J0YWluIGEgZm9ybWF0dGVyIGNhcGFibGUgb2YgZ2VuZXJhdGluZyB0aW1lc3RhbXBzIGluIHRoaXMgZm9ybWF0LgoKCgoKCgMEAAESA34IEQqdAQoEBAACABIEggECFBqOASBSZXByZXNlbnRzIHNlY29uZHMgb2YgVVRDIHRpbWUgc2luY2UgVW5peCBlcG9jaAogMTk3MC0wMS0wMVQwMDowMDowMFouIE11c3QgYmUgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0bwogOTk5OS0xMi0zMVQyMzo1OTo1OVogaW5jbHVzaXZlLgoKDQoFBAACAAUSBIIBAgcKDQoFBAACAAESBIIBCA8KDQoFBAACAAMSBIIBEhMK5QEKBAQAAgESBIgBAhIa1gEgTm9uLW5lZ2F0aXZlIGZyYWN0aW9ucyBvZiBhIHNlY29uZCBhdCBuYW5vc2Vjb25kIHJlc29sdXRpb24uIE5lZ2F0aXZlCiBzZWNvbmQgdmFsdWVzIHdpdGggZnJhY3Rpb25zIG11c3Qgc3RpbGwgaGF2ZSBub24tbmVnYXRpdmUgbmFub3MgdmFsdWVzCiB0aGF0IGNvdW50IGZvcndhcmQgaW4gdGltZS4gTXVzdCBiZSBmcm9tIDAgdG8gOTk5LDk5OSw5OTkKIGluY2x1c2l2ZS4KCg0KBQQAAgEFEgSIAQIHCg0KBQQAAgEBEgSIAQgNCg0KBQQAAgEDEgSIARARYgZwcm90bzMKxyMKHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiMKC0RvdWJsZVZhbHVlEhQKBXZhbHVlGAEgASgBUgV2YWx1ZSIiCgpGbG9hdFZhbHVlEhQKBXZhbHVlGAEgASgCUgV2YWx1ZSIiCgpJbnQ2NFZhbHVlEhQKBXZhbHVlGAEgASgDUgV2YWx1ZSIjCgtVSW50NjRWYWx1ZRIUCgV2YWx1ZRgBIAEoBFIFdmFsdWUiIgoKSW50MzJWYWx1ZRIUCgV2YWx1ZRgBIAEoBVIFdmFsdWUiIwoLVUludDMyVmFsdWUSFAoFdmFsdWUYASABKA1SBXZhbHVlIiEKCUJvb2xWYWx1ZRIUCgV2YWx1ZRgBIAEoCFIFdmFsdWUiIwoLU3RyaW5nVmFsdWUSFAoFdmFsdWUYASABKAlSBXZhbHVlIiIKCkJ5dGVzVmFsdWUSFAoFdmFsdWUYASABKAxSBXZhbHVlQnwKE2NvbS5nb29nbGUucHJvdG9idWZCDVdyYXBwZXJzUHJvdG9QAVoqZ2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHR5cGVzL3dyYXBwZXJz+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSsYfCgYSBCgAegEK2xAKAQwSAygAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMowEIFdyYXBwZXJzIGZvciBwcmltaXRpdmUgKG5vbi1tZXNzYWdlKSB0eXBlcy4gVGhlc2UgdHlwZXMgYXJlIHVzZWZ1bAogZm9yIGVtYmVkZGluZyBwcmltaXRpdmVzIGluIHRoZSBgZ29vZ2xlLnByb3RvYnVmLkFueWAgdHlwZSBhbmQgZm9yIHBsYWNlcwogd2hlcmUgd2UgbmVlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBhYnNlbmNlIG9mIGEg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aQIGCgwKBQQGAgABEgNpBwwKDAoFBAYCAAMSA2kPEApnCgIEBxIEbwByARpbIFdyYXBwZXIgbWVzc2FnZSBmb3IgYHN0cmluZ2AuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBTdHJpbmdWYWx1ZWAgaXMgSlNPTiBzdHJpbmcuCgoKCgMEBwESA28IEwogCgQEBwIAEgNxAhMaEyBUaGUgc3RyaW5nIHZhbHVlLgoKDAoFBAcCAAUSA3ECCAoMCgUEBwIAARIDcQkOCgwKBQQHAgADEgNxERIKZQoCBAgSBHcAegEaWSBXcmFwcGVyIG1lc3NhZ2UgZm9yIGBieXRlc2AuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBCeXRlc1ZhbHVlYCBpcyBKU09OIHN0cmluZy4KCgoKAwQIARIDdwgSCh8KBAQIAgASA3kCEhoSIFRoZSBieXRlcyB2YWx1ZS4KCgwKBQQIAgAFEgN5AgcKDAoFBAgCAAESA3kIDQoMCgUECAIAAxIDeRARYgZwcm90bzMK52AKL2dvb2dsZS9wcm90b2J1Zi91bml0dGVzdF93ZWxsX2tub3duX3R5cGVzLnByb3RvEhFwcm90b2J1Zl91bml0dGVzdBoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxoZZ29vZ2xlL3Byb3RvYnVmL2FwaS5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvGiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8aHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8aH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8aGmdvb2dsZS9wcm90b2J1Zi90eXBlLnByb3RvGh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8itAkKElRlc3RXZWxsS25vd25UeXBlcxIxCglhbnlfZmllbGQYASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UghhbnlGaWVsZBIxCglhcGlfZmllbGQYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpUghhcGlGaWVsZBJACg5kdXJhdGlvbl9maWVsZBgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblINZHVyYXRpb25GaWVsZBI3CgtlbXB0eV9maWVsZBgEIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIKZW1wdHlGaWVsZBJEChBmaWVsZF9tYXNrX2ZpZWxkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IOZmllbGRNYXNrRmllbGQSUAoUc291cmNlX2NvbnRleHRfZmllbGQYBiABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFISc291cmNlQ29udGV4dEZpZWxkEjoKDHN0cnVjdF9maWVsZBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSC3N0cnVjdEZpZWxkEkMKD3RpbWVzdGFtcF9maWVsZBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSDnRpbWVzdGFtcEZpZWxkEjQKCnR5cGVfZmllbGQYCSABKAsyFS5nb29nbGUucHJvdG9idWYuVHlwZVIJdHlwZUZpZWxkEj8KDGRvdWJsZV9maWVsZBgKIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVILZG91YmxlRmllbGQSPAoLZmxvYXRfZmllbGQYCyABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIKZmxvYXRGaWVsZBI8CgtpbnQ2NF9maWVsZBgMIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUgppbnQ2NEZpZWxkEj8KDHVpbnQ2NF9maWVsZBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVILdWludDY0RmllbGQSPAoLaW50MzJfZmllbGQYDiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIKaW50MzJGaWVsZBI/Cgx1aW50MzJfZmllbGQYDyABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSC3VpbnQzMkZpZWxkEjkKCmJvb2xfZmllbGQYECABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUglib29sRmllbGQSPwoMc3RyaW5nX2ZpZWxkGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUgtzdHJpbmdGaWVsZBI8CgtieXRlc19maWVsZBgSIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlUgpieXRlc0ZpZWxkEjcKC3ZhbHVlX2ZpZWxkGBMgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgp2YWx1ZUZpZWxkIv8IChZSZXBlYXRlZFdlbGxLbm93blR5cGVzEjEKCWFueV9maWVsZBgBIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSCGFueUZpZWxkEjEKCWFwaV9maWVsZBgCIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSCGFwaUZpZWxkEkAKDmR1cmF0aW9uX2ZpZWxkGAMgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUg1kdXJhdGlvbkZpZWxkEjcKC2VtcHR5X2ZpZWxkGAQgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgplbXB0eUZpZWxkEkQKEGZpZWxkX21hc2tfZmllbGQYBSADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUg5maWVsZE1hc2tGaWVsZBJQChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAMoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UhJzb3VyY2VDb250ZXh0RmllbGQSOgoMc3RydWN0X2ZpZWxkGAcgAygLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFILc3RydWN0RmllbGQSQwoPdGltZXN0YW1wX2ZpZWxkGAggAygLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIOdGltZXN0YW1wRmllbGQSNAoKdHlwZV9maWVsZBgJIAMoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlUgl0eXBlRmllbGQSPwoMZG91YmxlX2ZpZWxkGAogAygLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgtkb3VibGVGaWVsZBI8CgtmbG9hdF9maWVsZBgLIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUgpmbG9hdEZpZWxkEjwKC2ludDY0X2ZpZWxkGAwgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSCmludDY0RmllbGQSPwoMdWludDY0X2ZpZWxkGA0gAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUgt1aW50NjRGaWVsZBI8CgtpbnQzMl9maWVsZBgOIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUgppbnQzMkZpZWxkEj8KDHVpbnQzMl9maWVsZBgPIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVILdWludDMyRmllbGQSOQoKYm9vbF9maWVsZBgQIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSCWJvb2xGaWVsZBI/CgxzdHJpbmdfZmllbGQYESADKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSC3N0cmluZ0ZpZWxkEjwKC2J5dGVzX2ZpZWxkGBIgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSCmJ5dGVzRmllbGQirwkKE09uZW9mV2VsbEtub3duVHlwZXMSMwoJYW55X2ZpZWxkGAEgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUgAUghhbnlGaWVsZBIzCglhcGlfZmllbGQYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpSABSCGFwaUZpZWxkEkIKDmR1cmF0aW9uX2ZpZWxkGAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uSABSDWR1cmF0aW9uRmllbGQSOQoLZW1wdHlfZmllbGQYBCABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlIAFIKZW1wdHlGaWVsZBJGChBmaWVsZF9tYXNrX2ZpZWxkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0gAUg5maWVsZE1hc2tGaWVsZBJSChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0SABSEnNvdXJjZUNvbnRleHRGaWVsZBI8CgxzdHJ1Y3RfZmllbGQYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SABSC3N0cnVjdEZpZWxkEkUKD3RpbWVzdGFtcF9maWVsZBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAFIOdGltZXN0YW1wRmllbGQSNgoKdHlwZV9maWVsZBgJIAEoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlSABSCXR5cGVGaWVsZBJBCgxkb3VibGVfZmllbGQYCiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVIAFILZG91YmxlRmllbGQSPgoLZmxvYXRfZmllbGQYCyABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZUgAUgpmbG9hdEZpZWxkEj4KC2ludDY0X2ZpZWxkGAwgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVIAFIKaW50NjRGaWVsZBJBCgx1aW50NjRfZmllbGQYDSABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVIAFILdWludDY0RmllbGQSPgoLaW50MzJfZmllbGQYDiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZUgAUgppbnQzMkZpZWxkEkEKDHVpbnQzMl9maWVsZBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZUgAUgt1aW50MzJGaWVsZBI7Cgpib29sX2ZpZWxkGBAgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZUgAUglib29sRmllbGQSQQoMc3RyaW5nX2ZpZWxkGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlSABSC3N0cmluZ0ZpZWxkEj4KC2J5dGVzX2ZpZWxkGBIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVIAFIKYnl0ZXNGaWVsZEINCgtvbmVvZl9maWVsZCLYGQoRTWFwV2VsbEtub3duVHlwZXMSTwoJYW55X2ZpZWxkGAEgAygLMjIucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQW55RmllbGRFbnRyeVIIYW55RmllbGQSTwoJYXBpX2ZpZWxkGAIgAygLMjIucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQXBpRmllbGRFbnRyeVIIYXBpRmllbGQSXgoOZHVyYXRpb25fZmllbGQYAyADKAsyNy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5EdXJhdGlvbkZpZWxkRW50cnlSDWR1cmF0aW9uRmllbGQSVQoLZW1wdHlfZmllbGQYBCADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5FbXB0eUZpZWxkRW50cnlSCmVtcHR5RmllbGQSYgoQZmllbGRfbWFza19maWVsZBgFIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkZpZWxkTWFza0ZpZWxkRW50cnlSDmZpZWxkTWFza0ZpZWxkEm4KFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgAygLMjwucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuU291cmNlQ29udGV4dEZpZWxkRW50cnlSEnNvdXJjZUNvbnRleHRGaWVsZBJYCgxzdHJ1Y3RfZmllbGQYByADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5TdHJ1Y3RGaWVsZEVudHJ5UgtzdHJ1Y3RGaWVsZBJhCg90aW1lc3RhbXBfZmllbGQYCCADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5UaW1lc3RhbXBGaWVsZEVudHJ5Ug50aW1lc3RhbXBGaWVsZBJSCgp0eXBlX2ZpZWxkGAkgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuVHlwZUZpZWxkRW50cnlSCXR5cGVGaWVsZBJYCgxkb3VibGVfZmllbGQYCiADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Eb3VibGVGaWVsZEVudHJ5Ugtkb3VibGVGaWVsZBJVCgtmbG9hdF9maWVsZBgLIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkZsb2F0RmllbGRFbnRyeVIKZmxvYXRGaWVsZBJVCgtpbnQ2NF9maWVsZBgMIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkludDY0RmllbGRFbnRyeVIKaW50NjRGaWVsZBJYCgx1aW50NjRfZmllbGQYDSADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5VaW50NjRGaWVsZEVudHJ5Ugt1aW50NjRGaWVsZBJVCgtpbnQzMl9maWVsZBgOIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkludDMyRmllbGRFbnRyeVIKaW50MzJGaWVsZBJYCgx1aW50MzJfZmllbGQYDyADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5VaW50MzJGaWVsZEVudHJ5Ugt1aW50MzJGaWVsZBJSCgpib29sX2ZpZWxkGBAgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQm9vbEZpZWxkRW50cnlSCWJvb2xGaWVsZBJYCgxzdHJpbmdfZmllbGQYESADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5TdHJpbmdGaWVsZEVudHJ5UgtzdHJpbmdGaWVsZBJVCgtieXRlc19maWVsZBgSIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkJ5dGVzRmllbGRFbnRyeVIKYnl0ZXNGaWVsZBpRCg1BbnlGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EioKBXZhbHVlGAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIFdmFsdWU6AjgBGlEKDUFwaUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpUgV2YWx1ZToCOAEaWwoSRHVyYXRpb25GaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5Ei8KBXZhbHVlGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUgV2YWx1ZToCOAEaVQoPRW1wdHlGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgV2YWx1ZToCOAEaXQoTRmllbGRNYXNrRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIwCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSBXZhbHVlOgI4ARplChdTb3VyY2VDb250ZXh0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRI0CgV2YWx1ZRgCIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UgV2YWx1ZToCOAEaVwoQU3RydWN0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRItCgV2YWx1ZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSBXZhbHVlOgI4ARpdChNUaW1lc3RhbXBGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjAKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIFdmFsdWU6AjgBGlMKDlR5cGVGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EisKBXZhbHVlGAIgASgLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVSBXZhbHVlOgI4ARpcChBEb3VibGVGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjIKBXZhbHVlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgV2YWx1ZToCOAEaWgoPRmxvYXRGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSBXZhbHVlOgI4ARpaCg9JbnQ2NEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIFdmFsdWU6AjgBGlwKEFVpbnQ2NEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSBXZhbHVlOgI4ARpaCg9J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OwoMCgUEAwIOBhIDbQIoCgwKBQQDAg4BEgNtKTUKDAoFBAMCDgMSA204OgoLCgQEAwIPEgNuAjcKDAoFBAMCDwYSA24CJgoMCgUEAwIPARIDbicxCgwKBQQDAg8DEgNuNDYKCwoEBAMCEBIDbwI7CgwKBQQDAhAGEgNvAigKDAoFBAMCEAESA28pNQoMCgUEAwIQAxIDbzg6CgsKBAQDAhESA3ACOQoMCgUEAwIRBhIDcAInCgwKBQQDAhEBEgNwKDMKDAoFBAMCEQMSA3A2OGIGcHJvdG8zCo/NAQoqZ29vZ2xlL3Byb3RvYnVmL3Rlc3RfbWVzc2FnZXNfcHJvdG8zLnByb3RvEh1wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMxoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvGiBnb29nbGUvcHJvdG9idWYvZmllbGRfbWFzay5wcm90bxocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnByb3RvIoRaChJUZXN0QWxsVHlwZXNQcm90bzMSJQoOb3B0aW9uYWxfaW50MzIYASABKAVSDW9wdGlvbmFsSW50MzISJQoOb3B0aW9uYWxfaW50NjQYAiABKANSDW9wdGlvbmFsSW50NjQSJwoPb3B0aW9uYWxfdWludDMyGAMgASgNUg5vcHRpb25hbFVpbnQzMhInCg9vcHRpb25hbF91aW50NjQYBCABKARSDm9wdGlvbmFsVWludDY0EicKD29wdGlvbmFsX3NpbnQzMhgFIAEoEVIOb3B0aW9uYWxTaW50MzISJwoPb3B0aW9uYWxfc2ludDY0GAYgASgSUg5vcHRpb25hbFNpbnQ2NBIpChBvcHRpb25hbF9maXhlZDMyGAcgASgHUg9vcHRpb25hbEZpeGVkMzISKQoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBlIPb3B0aW9uYWxGaXhlZDY0EisKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPUhBvcHRpb25hbFNmaXhlZDMyEisKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQUhBvcHRpb25hbFNmaXhlZDY0EiUKDm9wdGlvbmFsX2Zsb2F0GAsgASgCUg1vcHRpb25hbEZsb2F0EicKD29wdGlvbmFsX2RvdWJsZRgMIAEoAVIOb3B0aW9uYWxEb3VibGUSIwoNb3B0aW9uYWxfYm9vbBgNIAEoCFIMb3B0aW9uYWxCb29sEicKD29wdGlvbmFsX3N0cmluZxgOIAEoCVIOb3B0aW9uYWxTdHJpbmcSJQoOb3B0aW9uYWxfYnl0ZXMYDyABKAxSDW9wdGlvbmFsQnl0ZXMSdwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlEmcKGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlUhZvcHRpb25hbEZvcmVpZ25NZXNzYWdlEm4KFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1SEm9wdGlvbmFsTmVzdGVkRW51bRJeChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yKi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduRW51bVITb3B0aW9uYWxGb3JlaWduRW51bRJxChVvcHRpb25hbF9hbGlhc2VkX2VudW0YFyABKA4yPS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuQWxpYXNlZEVudW1SE29wdGlvbmFsQWxpYXNlZEVudW0SNgoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAlITb3B0aW9uYWxTdHJpbmdQaWVjZRInCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIAVIMb3B0aW9uYWxDb3JkEl4KEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zUhByZWN1cnNpdmVNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEncKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VSFXJlcGVhdGVkTmVzdGVkTWVzc2FnZRJnChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyLS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduTWVzc2FnZVIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJuChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtUhJyZXBlYXRlZE5lc3RlZEVudW0SXgoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMioucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbkVudW1SE3JlcGVhdGVkRm9yZWlnbkVudW0SNgoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAlITcmVwZWF0ZWRTdHJpbmdQaWVjZRInCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIAVIMcmVwZWF0ZWRDb3JkEiUKDHBhY2tlZF9pbnQzMhhLIAMoBUICEAFSC3BhY2tlZEludDMyEiUKDHBhY2tlZF9pbnQ2NBhMIAMoA0ICEAFSC3BhY2tlZEludDY0EicKDXBhY2tlZF91aW50MzIYTSADKA1CAhABUgxwYWNrZWRVaW50MzISJwoNcGFja2VkX3VpbnQ2NBhOIAMoBEICEAFSDHBhY2tlZFVpbnQ2NBInCg1wYWNrZWRfc2ludDMyGE8gAygRQgIQAVIMcGFja2VkU2ludDMyEicKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABUgxwYWNrZWRTaW50NjQSKQoOcGFja2VkX2ZpeGVkMzIYUSADKAdCAhABUg1wYWNrZWRGaXhlZDMyEikKDnBhY2tlZF9maXhlZDY0GFIgAygGQgIQAVINcGFja2VkRml4ZWQ2NBIrCg9wYWNrZWRfc2ZpeGVkMzIYUyADKA9CAhABUg5wYWNrZWRTZml4ZWQzMhIrCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABUg5wYWNrZWRTZml4ZWQ2NBIlCgxwYWNrZWRfZmxvYXQYVSADKAJCAhABUgtwYWNrZWRGbG9hdBInCg1wYWNrZWRfZG91YmxlGFYgAygBQgIQAVIMcGFja2VkRG91YmxlEiMKC3BhY2tlZF9ib29sGFcgAygIQgIQAVIKcGFja2VkQm9vbBJuChJwYWNrZWRfbmVzdGVkX2VudW0YWCADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bUICEAFSEHBhY2tlZE5lc3RlZEVudW0SKQoOdW5wYWNrZWRfaW50MzIYWSADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFogAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYWyADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXCADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXiADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGF8gAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYCADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhlIAMoCEICEABSDHVucGFja2VkQm9vbBJyChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtQgIQAFISdW5wYWNrZWROZXN0ZWRFbnVtEmwKD21hcF9pbnQzMl9pbnQzMhg4IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQzMkludDMyRW50cnlSDW1hcEludDMySW50MzISbAoPbWFwX2ludDY0X2ludDY0GDkgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJyChFtYXBfdWludDMyX3VpbnQzMhg6IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBVaW50MzJVaW50MzJFbnRyeVIPbWFwVWludDMyVWludDMyEnIKEW1hcF91aW50NjRfdWludDY0GDsgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5Ug9tYXBVaW50NjRVaW50NjQScgoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJyChFtYXBfc2ludDY0X3NpbnQ2NBg9IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTaW50NjRTaW50NjRFbnRyeVIPbWFwU2ludDY0U2ludDY0EngKE21hcF9maXhlZDMyX2ZpeGVkMzIYPiADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeVIRbWFwRml4ZWQzMkZpeGVkMzISeAoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBg/IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJ+ChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5UhNtYXBTZml4ZWQzMlNmaXhlZDMyEn4KFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnlSE21hcFNmaXhlZDY0U2ZpeGVkNjQSbAoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJvChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDMyRG91YmxlRW50cnlSDm1hcEludDMyRG91YmxlEmYKDW1hcF9ib29sX2Jvb2wYRCADKAsyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwQm9vbEJvb2xFbnRyeVILbWFwQm9vbEJvb2wScgoRbWFwX3N0cmluZ19zdHJpbmcYRSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJvChBtYXBfc3RyaW5nX2J5dGVzGEYgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ0J5dGVzRW50cnlSDm1hcFN0cmluZ0J5dGVzEogBChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeVIWbWFwU3RyaW5nTmVzdGVkTWVzc2FnZRKLAQoabWFwX3N0cmluZ19mb3JlaWduX21lc3NhZ2UYSCADKAsyTi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeVIXbWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2USfwoWbWFwX3N0cmluZ19uZXN0ZWRfZW51bRhJIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnlSE21hcFN0cmluZ05lc3RlZEVudW0SggEKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnlSFG1hcFN0cmluZ0ZvcmVpZ25FbnVtEiMKDG9uZW9mX3VpbnQzMhhvIAEoDUgAUgtvbmVvZlVpbnQzMhJzChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxIfCgpvbmVvZl9ib29sGHMgASgISABSCW9uZW9mQm9vbBIjCgxvbmVvZl91aW50NjQYdCABKARIAFILb25lb2ZVaW50NjQSIQoLb25lb2ZfZmxvYXQYdSABKAJIAFIKb25lb2ZGbG9hdBIjCgxvbmVvZl9kb3VibGUYdiABKAFIAFILb25lb2ZEb3VibGUSXQoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtSABSCW9uZW9mRW51bRJPChVvcHRpb25hbF9ib29sX3dyYXBwZXIYyQEgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZVITb3B0aW9uYWxCb29sV3JhcHBlchJSChZvcHRpb25hbF9pbnQzMl93cmFwcGVyGMoBIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUhRvcHRpb25hbEludDMyV3JhcHBlchJSChZvcHRpb25hbF9pbnQ2NF93cmFwcGVyGMsBIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUhRvcHRpb25hbEludDY0V3JhcHBlchJVChdvcHRpb25hbF91aW50MzJfd3JhcHBlchjMASABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSFW9wdGlvbmFsVWludDMyV3JhcHBlchJVChdvcHRpb25hbF91aW50NjRfd3JhcHBlchjNASABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSFW9wdGlvbmFsVWludDY0V3JhcHBlchJSChZvcHRpb25hbF9mbG9hdF93cmFwcGVyGM4BIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUhRvcHRpb25hbEZsb2F0V3JhcHBlchJVChdvcHRpb25hbF9kb3VibGVfd3JhcHBlchjPASABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSFW9wdGlvbmFsRG91YmxlV3JhcHBlchJVChdvcHRpb25hbF9zdHJpbmdfd3JhcHBlchjQASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSFW9wdGlvbmFsU3RyaW5nV3JhcHBlchJSChZvcHRpb25hbF9ieXRlc193cmFwcGVyGNEBIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlUhRvcHRpb25hbEJ5dGVzV3JhcHBlchJPChVyZXBlYXRlZF9ib29sX3dyYXBwZXIY0wEgAygLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZVITcmVwZWF0ZWRCb29sV3JhcHBlchJSChZyZXBlYXRlZF9pbnQzMl93cmFwcGVyGNQBIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUhRyZXBlYXRlZEludDMyV3JhcHBlchJSChZyZXBlYXRlZF9pbnQ2NF93cmFwcGVyGNUBIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUhRyZXBlYXRlZEludDY0V3JhcHBlchJVChdyZXBlYXRlZF91aW50MzJfd3JhcHBlchjWASADKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSFXJlcGVhdGVkVWludDMyV3JhcHBlchJVChdyZXBlYXRlZF91aW50NjRfd3JhcHBlchjXASADKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSFXJlcGVhdGVkVWludDY0V3JhcHBlchJSChZyZXBlYXRlZF9mbG9hdF93cmFwcGVyGNgBIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUhRyZXBlYXRlZEZsb2F0V3JhcHBlchJVChdyZXBlYXRlZF9kb3VibGVfd3JhcHBlchjZASADKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSFXJlcGVhdGVkRG91YmxlV3JhcHBlchJVChdyZXBlYXRlZF9zdHJpbmdfd3JhcHBlchjaASADKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSFXJlcGVhdGVkU3RyaW5nV3JhcHBlchJSChZyZXBlYXRlZF9ieXRlc193cmFwcGVyGNsBIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlUhRyZXBlYXRlZEJ5dGVzV3JhcHBlchJHChFvcHRpb25hbF9kdXJhdGlvbhitAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SEG9wdGlvbmFsRHVyYXRpb24SSgoSb3B0aW9uYWxfdGltZXN0YW1wGK4CIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSEW9wdGlvbmFsVGltZXN0YW1wEksKE29wdGlvbmFsX2ZpZWxkX21hc2sYrwIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IRb3B0aW9uYWxGaWVsZE1hc2sSQQoPb3B0aW9uYWxfc3RydWN0GLACIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSDm9wdGlvbmFsU3RydWN0EjgKDG9wdGlvbmFsX2FueRixAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgtvcHRpb25hbEFueRI+Cg5vcHRpb25hbF92YWx1ZRiyAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSDW9wdGlvbmFsVmFsdWUSRwoRcmVwZWF0ZWRfZHVyYXRpb24YtwIgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUhByZXBlYXRlZER1cmF0aW9uEkoKEnJlcGVhdGVkX3RpbWVzdGFtcBi4AiADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUhFyZXBlYXRlZFRpbWVzdGFtcBJKChJyZXBlYXRlZF9maWVsZG1hc2sYuQIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IRcmVwZWF0ZWRGaWVsZG1hc2sSQQoPcmVwZWF0ZWRfc3RydWN0GMQCIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSDnJlcGVhdGVkU3RydWN0EjgKDHJlcGVhdGVkX2FueRi7AiADKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgtyZXBlYXRlZEFueRI+Cg5yZXBlYXRlZF92YWx1ZRi8AiADKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSDXJlcGVhdGVkVmFsdWUSSwoTcmVwZWF0ZWRfbGlzdF92YWx1ZRi9AiADKAsyGi5nb29nbGUucHJvdG9idWYuTGlzdFZhbHVlUhFyZXBlYXRlZExpc3RWYWx1ZRIfCgpmaWVsZG5hbWUxGJEDIAEoBVIKZmllbGRuYW1lMRIgCgtmaWVsZF9uYW1lMhiSAyABKAVSCmZpZWxkTmFtZTISIQoMX2ZpZWxkX25hbWUzGJMDIAEoBVIKRmllbGROYW1lMxIiCg1maWVsZF9fbmFtZTRfGJQDIAEoBVIKZmllbGROYW1lNBIhCgtmaWVsZDBuYW1lNRiVAyABKAVSC2ZpZWxkMG5hbWU1EiMKDWZpZWxkXzBfbmFtZTYYlgMgASgFUgtmaWVsZDBOYW1lNhIfCgpmaWVsZE5hbWU3GJcDIAEoBVIKZmllbGROYW1lNxIfCgpGaWVsZE5hbWU4GJgDIAEoBVIKRmllbGROYW1lOBIgCgtmaWVsZF9OYW1lORiZAyABKAVSCmZpZWxkTmFtZTkSIgoMRmllbGRfTmFtZTEwGJoDIAEoBVILRmllbGROYW1lMTASIgoMRklFTERfTkFNRTExGJsDIAEoBVILRklFTEROQU1FMTESIgoMRklFTERfbmFtZTEyGJwDIAEoBVILRklFTEROYW1lMTISJAoOX19maWVsZF9uYW1lMTMYnQMgASgFUgtGaWVsZE5hbWUxMxIkCg5fX0ZpZWxkX25hbWUxNBieAyABKAVSC0ZpZWxkTmFtZTE0EiMKDWZpZWxkX19uYW1lMTUYnwMgASgFUgtmaWVsZE5hbWUxNRIjCg1maWVsZF9fTmFtZTE2GKADIAEoBVILZmllbGROYW1lMTYSJAoOZmllbGRfbmFtZTE3X18YoQMgASgFUgtmaWVsZE5hbWUxNxIkCg5GaWVsZF9uYW1lMThfXxiiAyABKAVSC0ZpZWxkTmFtZTE4GnIKDU5lc3RlZE1lc3NhZ2USDAoBYRgBIAEoBVIBYRJTCgtjb3JlY3Vyc2l2ZRgCIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvM1ILY29yZWN1cnNpdmUaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpBChNNYXBTdHJpbmdCeXRlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgMUgV2YWx1ZToCOAEaigEKG01hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJVCgV2YWx1ZRgCIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUgV2YWx1ZToCOAEaeQocTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJDCgV2YWx1ZRgCIAEoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlUgV2YWx1ZToCOAEahAEKGE1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJSCgV2YWx1ZRgCIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtUgV2YWx1ZToCOAEacwoZTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJACgV2YWx1ZRgCIAEoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUgV2YWx1ZToCOAEiOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASJZCgtBbGlhc2VkRW51bRINCglBTElBU19GT08QABINCglBTElBU19CQVIQARINCglBTElBU19CQVoQAhIHCgNRVVgQAhIHCgNxdXgQAhIHCgNiQXoQAhoCEAFCDQoLb25lb2ZfZmllbGRKBgj1AxD/AyIeCg5Gb3JlaWduTWVzc2FnZRIMCgFjGAEgASgFUgFjKkAKC0ZvcmVpZ25FbnVtEg8KC0ZPUkVJR05fRk9PEAASDwoLRk9SRUlHTl9CQVIQARIPCgtGT1JFSUdOX0JBWhACQjgKKGNvbS5nb29nbGUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzNIAfgBAaICBlByb3RvM0rabwoHEgUlAJQCAQrADQoBDBIDJQASMrUNIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKIFRlc3Qgc2NoZW1hIGZvciBwcm90bzMgbWVzc2FnZXMuICBUaGlzIHRlc3Qgc2NoZW1hIGlzIHVzZWQgYnk6CgogLSBiZW5jaG1hcmtzCiAtIGZ1enogdGVzdHMKIC0gY29uZm9ybWFuY2UgdGVzdHMKCgoICgECEgMnACYKCAoBCBIDKQBBCgkKAggBEgMpAEEKCAoBCBIDKgAkCgkKAggkEgMqACQKCAoBCBIDLQAcCkQKAggJEgMtABwaOSBUaGlzIGlzIHRoZSBkZWZhdWx0LCBidXQgd2Ugc3BlY2lmeSBpdCBoZXJlIGV4cGxpY2l0bHkuCgoJCgIDABIDLwAjCgkKAgMBEgMwACgKCQoCAwISAzEAKgoJCgIDAxIDMgAmCgkKAgMEEgMzACkKCQoCAwUSAzQAKAoICgEIEgM2AB8KCQoCCB8SAzYAHwrbAgoCBAASBT8AigIBGs0CIFRoaXMgcHJvdG8gaW5jbHVkZXMgZXZlcnkgdHlwZSBvZiBmaWVsZCBpbiBib3RoIHNpbmd1bGFyIGFuZCByZXBlYXRlZAogZm9ybXMuCgogQWxzbywgY3J1Y2lhbGx5LCBhbGwgbWVzc2FnZXMgYW5kIGVudW1zIGluIHRoaXMgZmlsZSBhcmUgZXZlbnR1YWxseQogc3VibWVzc2FnZXMgb2YgdGhpcyBtZXNzYWdlLiAgU28gZm9yIGV4YW1wbGUsIGEgZnV6eiB0ZXN0IG9mIFRlc3RBbGxUeXBlcwogY291bGQgdHJpZ2dlciBidWdzIHRoYXQgb2NjdXIg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BKABIiQKDQoFBAACOwgSBKABJTUKDgoGBAACOwgCEgSgASY0CgwKBAQAAjwSBKEBAjgKDQoFBAACPAQSBKEBAgoKDQoFBAACPAUSBKEBCxEKDQoFBAACPAESBKEBEiEKDQoFBAACPAMSBKEBJCYKDQoFBAACPAgSBKEBJzcKDgoGBAACPAgCEgShASg2CgwKBAQAAj0SBKIBAjgKDQoFBAACPQQSBKIBAgoKDQoFBAACPQUSBKIBCxEKDQoFBAACPQESBKIBEiEKDQoFBAACPQMSBKIBJCYKDQoFBAACPQgSBKIBJzcKDgoGBAACPQgCEgSiASg2CgwKBAQAAj4SBKMBAjgKDQoFBAACPgQSBKMBAgoKDQoFBAACPgUSBKMBCxEKDQoFBAACPgESBKMBEiEKDQoFBAACPgMSBKMBJCYKDQoFBAACPggSBKMBJzcKDgoGBAACPggCEgSjASg2CgwKBAQAAj8SBKQBAjgKDQoFBAACPwQSBKQBAgoKDQoFBAACPwUSBKQBCxEKDQoFBAACPwESBKQBEiEKDQoFBAACPwMSBKQBJCYKDQoFBAACPwgSBKQBJzcKDgoGBAACPwgCEgSkASg2CgwKBAQAAkASBKUBAjoKDQoFBAACQAQSBKUBAgoKDQoFBAACQAUSBKUBCxIKDQoFBAACQAESBKUBEyMKDQoFBAACQAMSBKUBJigKDQoFBAACQAgSBKUBKTkKDgoGBAACQAgCEgSlASo4CgwKBAQAAkESBKYBAjoKDQoFBAACQQQSBKYBAgoKDQoFBAACQQUSBKYBCxIKDQoFBAACQQESBKYBEyMKDQoFBAACQQMSBKYBJigKDQoFBAACQQgSBKYBKTkKDgoGBAACQQgCEgSmASo4CgwKBAQAAkISBKcBAjwKDQoFBAACQgQSBKcBAgoKDQoFBAACQgUSBKcBCxMKDQoFBAACQgESBKcBFCUKDQoFBAACQgMSBKcBKCoKDQoFBAACQggSBKcBKzsKDgoGBAACQggCEgSnASw6CgwKBAQAAkMSBKgBAjwKDQoFBAACQwQSBKgBAgoKDQoFBAACQwUSBKgBCxMKDQoFBAACQwESBKgBFCUKDQoFBAACQwMSBKgBKCoKDQoFBAACQwgSBKgBKzsKDgoGBAACQwgCEgSoASw6CgwKBAQAAkQSBKkBAjYKDQoFBAACRAQS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cHRpb25hbF9mbG9hdBgLIAEoAlINb3B0aW9uYWxGbG9hdBInCg9vcHRpb25hbF9kb3VibGUYDCABKAFSDm9wdGlvbmFsRG91YmxlEiMKDW9wdGlvbmFsX2Jvb2wYDSABKAhSDG9wdGlvbmFsQm9vbBInCg9vcHRpb25hbF9zdHJpbmcYDiABKAlSDm9wdGlvbmFsU3RyaW5nEiUKDm9wdGlvbmFsX2J5dGVzGA8gASgMUg1vcHRpb25hbEJ5dGVzEncKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRJtChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIWb3B0aW9uYWxGb3JlaWduTWVzc2FnZRJuChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUhJvcHRpb25hbE5lc3RlZEVudW0SZAoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSE29wdGlvbmFsRm9yZWlnbkVudW0SNgoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAlITb3B0aW9uYWxTdHJpbmdQaWVjZRInCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIAVIMb3B0aW9uYWxDb3JkEl4KEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yUhByZWN1cnNpdmVNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEncKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSFXJlcGVhdGVkTmVzdGVkTWVzc2FnZRJtChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJuChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUhJyZXBlYXRlZE5lc3RlZEVudW0SZAoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSE3JlcGVhdGVkRm9yZWlnbkVudW0SNgoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAlITcmVwZWF0ZWRTdHJpbmdQaWVjZRInCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIAVIMcmVwZWF0ZWRDb3JkEiUKDHBhY2tlZF9pbnQzMhhLIAMoBUICEAFSC3BhY2tlZEludDMyEiUKDHBhY2tlZF9pbnQ2NBhMIAMoA0ICEAFSC3BhY2tlZEludDY0EicKDXBhY2tlZF91aW50MzIYTSADKA1CAhABUgxwYWNrZWRVaW50MzISJwoNcGFja2VkX3VpbnQ2NBhOIAMoBEICEAFSDHBhY2tlZFVpbnQ2NBInCg1wYWNrZWRfc2ludDMyGE8gAygRQgIQAVIMcGFja2VkU2ludDMyEicKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABUgxwYWNrZWRTaW50NjQSKQoOcGFja2VkX2ZpeGVkMzIYUSADKAdCAhABUg1wYWNrZWRGaXhlZDMyEikKDnBhY2tlZF9maXhlZDY0GFIgAygGQgIQAVINcGFja2VkRml4ZWQ2NBIrCg9wYWNrZWRfc2ZpeGVkMzIYUyADKA9CAhABUg5wYWNrZWRTZml4ZWQzMhIrCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABUg5wYWNrZWRTZml4ZWQ2NBIlCgxwYWNrZWRfZmxvYXQYVSADKAJCAhABUgtwYWNrZWRGbG9hdBInCg1wYWNrZWRfZG91YmxlGFYgAygBQgIQAVIMcGFja2VkRG91YmxlEiMKC3BhY2tlZF9ib29sGFcgAygIQgIQAVIKcGFja2VkQm9vbBJuChJwYWNrZWRfbmVzdGVkX2VudW0YWCADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bUICEAFSEHBhY2tlZE5lc3RlZEVudW0SKQoOdW5wYWNrZWRfaW50MzIYWSADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFogAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYWyADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXCADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXiADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGF8gAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYCADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhlIAMoCEICEABSDHVucGFja2VkQm9vbBJyChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQAFISdW5wYWNrZWROZXN0ZWRFbnVtEmwKD21hcF9pbnQzMl9pbnQzMhg4IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkludDMyRW50cnlSDW1hcEludDMySW50MzISbAoPbWFwX2ludDY0X2ludDY0GDkgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJyChFtYXBfdWludDMyX3VpbnQzMhg6IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBVaW50MzJVaW50MzJFbnRyeVIPbWFwVWludDMyVWludDMyEnIKEW1hcF91aW50NjRfdWludDY0GDsgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5Ug9tYXBVaW50NjRVaW50NjQScgoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJyChFtYXBfc2ludDY0X3NpbnQ2NBg9IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTaW50NjRTaW50NjRFbnRyeVIPbWFwU2ludDY0U2ludDY0EngKE21hcF9maXhlZDMyX2ZpeGVkMzIYPiADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeVIRbWFwRml4ZWQzMkZpeGVkMzISeAoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBg/IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJ+ChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5UhNtYXBTZml4ZWQzMlNmaXhlZDMyEn4KFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnlSE21hcFNmaXhlZDY0U2ZpeGVkNjQSbAoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJvChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRG91YmxlRW50cnlSDm1hcEludDMyRG91YmxlEmYKDW1hcF9ib29sX2Jvb2wYRCADKAsyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwQm9vbEJvb2xFbnRyeVILbWFwQm9vbEJvb2wScgoRbWFwX3N0cmluZ19zdHJpbmcYRSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJvChBtYXBfc3RyaW5nX2J5dGVzGEYgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0J5dGVzRW50cnlSDm1hcFN0cmluZ0J5dGVzEogBChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeVIWbWFwU3RyaW5nTmVzdGVkTWVzc2FnZRKLAQoabWFwX3N0cmluZ19mb3JlaWduX21lc3NhZ2UYSCADKAsyTi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeVIXbWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2USfwoWbWFwX3N0cmluZ19uZXN0ZWRfZW51bRhJIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnlSE21hcFN0cmluZ05lc3RlZEVudW0SggEKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnlSFG1hcFN0cmluZ0ZvcmVpZ25FbnVtEiMKDG9uZW9mX3VpbnQzMhhvIAEoDUgAUgtvbmVvZlVpbnQzMhJzChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxIfCgpvbmVvZl9ib29sGHMgASgISABSCW9uZW9mQm9vbBIjCgxvbmVvZl91aW50NjQYdCABKARIAFILb25lb2ZVaW50NjQSIQoLb25lb2ZfZmxvYXQYdSABKAJIAFIKb25lb2ZGbG9hdBIjCgxvbmVvZl9kb3VibGUYdiABKAFIAFILb25lb2ZEb3VibGUSXQoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtSABSCW9uZW9mRW51bRJLCgRkYXRhGMkBIAEoCjI2LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5EYXRhUgRkYXRhEh8KCmZpZWxkbmFtZTEYkQMgASgFUgpmaWVsZG5hbWUxEiAKC2ZpZWxkX25hbWUyGJIDIAEoBVIKZmllbGROYW1lMhIhCgxfZmllbGRfbmFtZTMYkwMgASgFUgpGaWVsZE5hbWUzEiIKDWZpZWxkX19uYW1lNF8YlAMgASgFUgpmaWVsZE5hbWU0EiEKC2ZpZWxkMG5hbWU1GJUDIAEoBVILZmllbGQwbmFtZTUSIwoNZmllbGRfMF9uYW1lNhiWAyABKAVSC2ZpZWxkME5hbWU2Eh8KCmZpZWxkTmFtZTcYlwMgASgFUgpmaWVsZE5hbWU3Eh8KCkZpZWxkTmFtZTgYmAMgASgFUgpGaWVsZE5hbWU4EiAKC2ZpZWxkX05hbWU5GJkDIAEoBVIKZmllbGROYW1lORIiCgxGaWVsZF9OYW1lMTAYmgMgASgFUgtGaWVsZE5hbWUxMBIiCgxGSUVMRF9OQU1FMTEYmwMgASgFUgtGSUVMRE5BTUUxMRIiCgxGSUVMRF9uYW1lMTIYnAMgASgFUgtGSUVMRE5hbWUxMhIkCg5fX2ZpZWxkX25hbWUxMxidAyABKAVSC0ZpZWxkTmFtZTEzEiQKDl9fRmllbGRfbmFtZTE0GJ4DIAEoBVILRmllbGROYW1lMTQSIwoNZmllbGRfX25hbWUxNRifAyABKAVSC2ZpZWxkTmFtZTE1EiMKDWZpZWxkX19OYW1lMTYYoAMgASgFUgtmaWVsZE5hbWUxNhIkCg5maWVsZF9uYW1lMTdfXxihAyABKAVSC2ZpZWxkTmFtZTE3EiQKDkZpZWxkX25hbWUxOF9fGKIDIAEoBVILRmllbGROYW1lMTgacgoNTmVzdGVkTWVzc2FnZRIMCgFhGAEgASgFUgFhElMKC2NvcmVjdXJzaXZlGAIgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yUgtjb3JlY3Vyc2l2ZRpAChJNYXBJbnQzMkludDMyRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAVSBXZhbHVlOgI4ARpAChJNYXBJbnQ2NEludDY0RW50cnkSEAoDa2V5GAEgASgDUgNrZXkSFAoFdmFsdWUYAiABKANSBXZhbHVlOgI4ARpCChRNYXBVaW50MzJVaW50MzJFbnRyeRIQCgNrZXkYASABKA1SA2tleRIUCgV2YWx1ZRgCIAEoDVIFdmFsdWU6AjgBGkIKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EhAKA2tleRgBIAEoBFIDa2V5EhQKBXZhbHVlGAIgASgEUgV2YWx1ZToCOAEaQgoUTWFwU2ludDMyU2ludDMyRW50cnkSEAoDa2V5GAEgASgRUgNrZXkSFAoFdmFsdWUYAiABKBFSBXZhbHVlOgI4ARpCChRNYXBTaW50NjRTaW50NjRFbnRyeRIQCgNrZXkYASABKBJSA2tleRIUCgV2YWx1ZRgCIAEoElIFdmFsdWU6AjgBGkQKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAdSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoBlIDa2V5EhQKBXZhbHVlGAIgASgGUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoD1IDa2V5EhQKBXZhbHVlGAIgASgPUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoEFIDa2V5EhQKBXZhbHVlGAIgASgQUgV2YWx1ZToCOAEaQAoSTWFwSW50MzJGbG9hdEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEaQQoTTWFwSW50MzJEb3VibGVFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAVIFdmFsdWU6AjgBGj4KEE1hcEJvb2xCb29sRW50cnkSEAoDa2V5GAEgASgIUgNrZXkSFAoFdmFsdWUYAiABKAhSBXZhbHVlOgI4ARpCChRNYXBTdHJpbmdTdHJpbmdFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBGkEKE01hcFN0cmluZ0J5dGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARqKAQobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElUKBXZhbHVlGAIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSBXZhbHVlOgI4ARp/ChxNYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkkKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSBXZhbHVlOgI4ARqEAQoYTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElIKBXZhbHVlGAIgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1SBXZhbHVlOgI4ARp5ChlNYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkYKBXZhbHVlGAIgASgOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSBXZhbHVlOgI4ARpMCgREYXRhEiAKC2dyb3VwX2ludDMyGMoBIAEoBVIKZ3JvdXBJbnQzMhIiCgxncm91cF91aW50MzIYywEgASgNUgtncm91cFVpbnQzMhohChFNZXNzYWdlU2V0Q29ycmVjdCoICAQQ/////wc6AggBGvoBChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjESEAoDc3RyGBkgASgJUgNzdHIyyAEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBj5u14gASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMVITbWVzc2FnZVNldEV4dGVuc2lvbhr3AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yEgwKAWkYCSABKAVSAWkyyQEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBiQs/wBIAEoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjJSE21lc3NhZ2VTZXRFeHRlbnNpb24iOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASoFCHgQyQFCDQoLb25lb2ZfZmllbGRKBgjoBxCQTiIkChRGb3JlaWduTWVzc2FnZVByb3RvMhIMCgFjGAEgASgFUgFjIp4DChVVbmtub3duVG9UZXN0QWxsVHlwZXMSJgoOb3B0aW9uYWxfaW50MzIY6QcgASgFUg1vcHRpb25hbEludDMyEigKD29wdGlvbmFsX3N0cmluZxjqByABKAlSDm9wdGlvbmFsU3RyaW5nElsKDm5lc3RlZF9tZXNzYWdlGOsHIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUg1uZXN0ZWRNZXNzYWdlEmkKDW9wdGlvbmFsZ3JvdXAY7AcgASgKMkIucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVW5rbm93blRvVGVzdEFsbFR5cGVzLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXASJAoNb3B0aW9uYWxfYm9vbBjuByABKAhSDG9wdGlvbmFsQm9vbBImCg5yZXBlYXRlZF9pbnQzMhjzByADKAVSDXJlcGVhdGVkSW50MzIaHQoNT3B0aW9uYWxHcm91cBIMCgFhGAEgASgFUgFhKkYKEUZvcmVpZ25FbnVtUHJvdG8yEg8KC0ZPUkVJR05fRk9PEAASDwoLRk9SRUlHTl9CQVIQARIPCgtGT1JFSUdOX0JBWhACOloKD2V4dGVuc2lvbl9pbnQzMhIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMhh4IAEoBVIOZXh0ZW5zaW9uSW50MzJCLwooY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMkgB+AEBSpxsCgcSBSUAiQIBCroNCgEMEgMlABIymQ0gUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogVGVzdCBzY2hlbWEgZm9yIHByb3RvMiBtZXNzYWdlcy4gIFRoaXMgdGVzdCBzY2hlbWEgaXMgdXNlZCBieToKCiAtIGNvbmZvcm1hbmNlIHRlc3RzCgoyFCBMSU5UOiBBTExPV19HUk9VUFMKCggKAQISAycAJgoICgEIEgMpAEEKCQoCCAESAykAQQoICgEIEgMsABwKRAoCCAkSAywAHBo5IFRoaXMgaXMgdGhlIGRlZmF1bHQsIGJ1dCB3ZSBzcGVjaWZ5IGl0IGhlcmUgZXhwbGljaXRseS4KCggKAQgSAy4A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BAACOQUSBIsBCxAKDQoFBAACOQESBIsBER8KDQoFBAACOQMSBIsBIiQKDQoFBAACOQgSBIsBJTUKDgoGBAACOQgCEgSLASY0CgwKBAQAAjoSBIwBAjYKDQoFBAACOgQSBIwBAgoKDQoFBAACOgUSBIwBCxAKDQoFBAACOgESBIwBER8KDQoFBAACOgMSBIwBIiQKDQoFBAACOggSBIwBJTUKDgoGBAACOggCEgSMASY0CgwKBAQAAjsSBI0BAjgKDQoFBAACOwQSBI0BAgoKDQoFBAACOwUSBI0BCxEKDQoFBAACOwESBI0BEiEKDQoFBAACOwMSBI0BJCYKDQoFBAACOwgSBI0BJzcKDgoGBAACOwgCEgSNASg2CgwKBAQAAjwSBI4BAjgKDQoFBAACPAQSBI4BAgoKDQoFBAACPAUSBI4BCxEKDQoFBAACPAESBI4BEiEKDQoFBAACPAMSBI4BJCYKDQoFBAACPAgSBI4BJzcKDgoGBAACPAgCEgSOASg2CgwKBAQAAj0SBI8BAjgKDQoFBAACPQQSBI8BAgoKDQoFBAACPQUSBI8BCxEKDQoFBAACPQESBI8BEiEKDQoFBAACPQMSBI8BJCYKDQoFBAACPQgSBI8BJzcKDgoGBAACPQgCEgSPASg2CgwKBAQAAj4SBJABAjgKDQoFBAACPgQSBJABAgoKDQoFBAACPgUSBJABCxEKDQoFBAACPgESBJABEiEKDQoFBAACPgMSBJABJCYKDQoFBAACPggSBJABJzcKDgoGBAACPggCEgSQASg2CgwKBAQAAj8SBJEBAjoKDQoFBAACPwQSBJEBAgoKDQoFBAACPwUSBJEBCxIKDQoFBAACPwESBJEBEyMKDQoFBAACPwMSBJEBJigKDQoFBAACPwgSBJEBKTkKDgoGBAACPwgCEgSRASo4CgwKBAQAAkASBJIBAjoKDQoFBAACQAQSBJIBAgoKDQoFBAACQAUSBJIBCxIKDQoFBAACQAESBJIBEyMKDQoFBAACQAMSBJIBJigKDQoFBAACQAgSBJIBKTkKDgoGBAACQAgCEgSSASo4CgwKBAQAAkESBJMBAjwKDQoFBAACQQQSBJMBAgoKDQoFBAACQQUSBJMBCxMKDQoFBAACQQESBJMBFCUKDQoFBAACQQMSBJMBKCoKDQoFBAACQQgSBJMBKzsKDgoGBAACQQgCEgSTASw6CgwKBAQAAkISBJQBAjwKDQoFBAACQgQSBJQBAgoKDQoFBAACQgUSBJQBCxMKDQoFBAACQgESBJQBFCUKDQoFBAACQgMSBJQBKCoKDQoFBAACQggSBJQBKzsKDgoGBAACQggCEgSUASw6CgwKBAQAAkMSBJUBAjYKDQoFBAACQwQSBJUBAgoKDQoFBAACQwUSBJUBCxAKDQoFBAACQwESBJUBER8KDQoFBAACQwMSBJUBIiQKDQoFBAACQwgSBJUBJTUKDgoGBAACQwgCEgSVASY0CgwKBAQAAkQSBJYBAjkKDQoFBAACRAQSBJYBAgoKDQoFBAACRAUSBJYBCxEKDQoFBAACRAESBJYBEiEKDQoFBAACRAMSBJYBJCcKDQoFBAACRAgSBJYBKDgKDgoGBAACRAgCEgSWASk3CgwKBAQAAkUSBJcBAjUKDQoFBAACRQQSBJcBAgoKDQoFBAACRQUSBJcBCw8KDQoFBAACRQESBJcBEB0KDQoFBAACRQMSBJcBICMKDQoFBAACRQgSBJcBJDQKDgoGBAACRQgCEgSXASUzCgwKBAQAAkYSBJgBAkIKDQoFBAACRgQSBJgBAgoKDQoFBAACRgYSBJgBCxUKDQoFBAACRgESBJgBFioKDQoFBAACRgMSBJgBLTAKDQoFBAACRggSBJgBMUEKDgoGBAACRggCEgSYATJAChMKBAQAAkcSBJsBAikaBSBNYXAKCg0KBQQAAkcGEgSbAQITCg0KBQQAAkcBEgSbARQjCg0KBQQAAkcDEgSbASYoCgwKBAQAAkgSBJwBAikKDQoFBAACSAYSBJwBAhMKDQoFBAACSAESBJwBFCMKDQoFBAACSAMSBJwBJigKDAoEBAACSRIEnQECLQoNCgUEAAJJBhIEnQECFQoNCgUEAAJJARIEnQEWJwoNCgUEAAJJAxIEnQEqLAoMCgQEAAJKEgSeAQItCg0KBQQAAkoGEgSeAQIVCg0KBQQAAkoBEgSeARYnCg0KBQQAAkoDEgSeASosCgwKBAQAAksSBJ8BAi0KDQoFBAACSwYSBJ8BAhUKDQoFBAACSwESBJ8BFicKDQoFBAACSwMSBJ8BKiwKDAoEBAACTBIEoAECLQoNCgUEAAJMBhIEoAECFQoNCgUEAAJMARIEoAEWJwoNCgUEAAJMAxIEoAEqLAoMCgQEAAJNEgShAQIxCg0KBQQAAk0GEgShAQIXCg0KBQQAAk0BEgShARgrCg0KBQQAAk0DEgShAS4wCgwKBAQAAk4SBKIBAjEKDQoFBAACTgYSBKIBAhcKDQoFBAACTgESBKIBGCsKDQoFBAACTgMSBKIBLjAKDAoEBAACTxIEowECNQoNCgUEAAJPBhIEowECGQoNCgUEAAJPARIEowEaLwoNCgUEAAJPAxIEowEyNAoMCgQEAAJQEgSkAQI1Cg0KBQQAAlAGEgSkAQIZCg0KBQQAAlABEgSkARovCg0KBQQAAlADEgSkATI0CgwKBAQAAlESBKUBAikKDQoFBAACUQYSBKUBAhMKDQoFBAACUQESBKUBFCMKDQoFBAACUQMSBKUBJigKDAoEBAACUhIEpgECKwoNCgUEAAJSBhIEpgECFAoNCgUEAAJSARIEpgEVJQoNCgUEAAJSAxIEpgEoKgoMCgQEAAJTEgSnAQIlCg0KBQQAAlMGEgSnAQIRCg0KBQQAAlMBEgSnARIfCg0KBQQAAlMDEgSnASIkCgwKBAQAAlQSBKgBAi0KDQoFBAACVAYSBKgBAhUKDQoFBAACVAESBKgBFicKDQoFBAACVAMSBKgBKiwKDAoEBAACVRIEqQECKwoNCgUEAAJVBhIEqQECFAoNCgUEAAJVARIEqQEVJQoNCgUEAAJVAxIEqQEoKgoMCgQEAAJWEgSqAQI8Cg0KBQQAAlYGEgSqAQIcCg0KBQQAAlYBEgSqAR02Cg0KBQQAAlYDEgSqATk7CgwKBAQAAlcSBKsBAkQKDQoFBAACVwYSBKsBAiMKDQoFBAACVwESBKsBJD4KDQoFBAACVwMSBKsBQUMKDAoEBAACWBIErAECNgoNCgUEAAJYBhIErAECGQoNCgUEAAJYARIErAEaMAoNCgUEAAJYAxIErAEzNQoMCgQEAAJZEgStAQI+Cg0KBQQAAlkGEgStAQIgCg0KBQQAAlkBEgStASE4Cg0KBQQAAlkDEgStATs9Cg4KBAQACAASBq8BArkBAwoNCgUEAAgAARIErwEIEwoMCgQEAAJaEgSwAQQeCg0KBQQAAloFEgSwAQQKCg0KBQQAAloBEgSwAQsXCg0KBQQAAloDEgSwARodCgwKBAQAAlsSBLEBBC0KDQoFBAACWwYSBLEBBBEKDQoFBAACWwESBLEBEiYKDQoFBAACWwMSBLEBKSwKDAoEBAACXBIEsgEEHgoNCgUEAAJcBRIEsgEECgoNCgUEAAJcARIEsgELFwoNCgUEAAJcAxIEsgEaHQoMCgQEAAJdEgSzAQQcCg0KBQQAAl0FEgSzAQQJCg0KBQQAAl0BEgSzAQoVCg0KBQQAAl0DEgSzARgbCgwKBAQAAl4SBLQBBBoKDQoFBAACXgUSBLQBBAgKDQoFBAACXgESBLQBCRMKDQoFBAACXgMSBLQBFhkKDAoEBAACXxIEtQEEHgoNCgUEAAJfBRIEtQEECgoNCgUEAAJfARIEtQELFwoNCgUEAAJfAxIEtQEaHQoMCgQEAAJgEgS2AQQcCg0KBQQAAmAFEgS2AQQJCg0KBQQAAmABEgS2AQoVCg0KBQQAAmADEgS2ARgbCgwKBAQAAmESBLcBBB4KDQoFBAACYQUSBLcBBAoKDQoFBAACYQESBLcBCxcKDQoFBAACYQMSBLcBGh0KDAoEBAACYhIEuAEEIAoNCgUEAAJiBhIEuAEEDgoNCgUEAAJiARIEuAEPGQoNCgUEAAJiAxIEuAEcHwoZCgMEAAUSBLwBAhgaDCBleHRlbnNpb25zCgoMCgQEAAUAEgS8AQ0XCg0KBQQABQABEgS8AQ0QCg0KBQQABQACEgS8ARQXCg4KBAQAAmMSBr8BAsIBAwoNCgUEAAJjBBIEvwECCgoNCgUEAAJjBRIEvwELEAoNCgUEAAJjARIEvwERFQoNCgUEAAJjAxIEvwEYGwoYCgQEAAMUEga/AQLCAQMaCCBncm91cHMKCg0KBQQAAxQBEgS/AREVCg0KBQQAAmMGEgS/AREVCg4KBgQAAxQCABIEwAEEJQoPCgcEAAMUAgAEEgTAAQQMCg8KBwQAAxQCAAUSBMABDRIKDwoHBAADFAIAARIEwAETHgoPCgcEAAMUAgADEgTAASEkCg4KBgQAAxQCARIEwQEEJwoPCgcEAAMUAgEEEgTBAQQMCg8KBwQAAxQCAQUSBMEBDRMKDwoHBAADFAIBARIEwQEUIAoPCgcEAAMUAgEDEgTBASMmCnIKBAQAAmQSBMYBAiIaZCBUZXN0IGZpZWxkLW5hbWUtdG8tSlNPTi1uYW1lIGNvbnZlbnRpb24uCiAocHJvdG9idWYgc2F5cyBuYW1lcyBjYW4gYmUgYW55IHZhbGlkIEMvQysrIGlkZW50aWZpZXIuKQoKDQoFBAACZAQSBMYBAgoKDQoFBAACZAUSBMYBCxAKDQoFBAACZAESBMYBERsKDQoFBAACZAMSBMYBHiEKDAoEBAACZRIExwECIwoNCgUEAAJlBBIExwECCgoNCgUEAAJlBRIExwELEAoNCgUEAAJlARIExwERHAoNCgUEAAJlAxIExwEfIgoMCgQEAAJmEgTIAQIkCg0KBQQAAmYEEgTIAQIKCg0KBQQAAmYFEgTIAQsQCg0KBQQAAmYBEgTIAREdCg0KBQQAAmYDEgTIASAjCgwKBAQAAmcSBMkBAiUKDQoFBAACZwQSBMkBAgoKDQoFBAACZwUSBMkBCxAKDQoFBAACZwESBMkBER4KDQoFBAACZwMSBMkBISQKDAoEBAACaBIEygECIwoNCgUEAAJoBBIEygECCgoNCgUEAAJoBRIEygELEAoNCgUEAAJoARIEygERHAoNCgUEAAJoAxIEygEfIgoMCgQEAAJpEgTLAQIlCg0KBQQAAmkEEgTLAQIKCg0KBQQAAmkFEgTLAQsQCg0KBQQAAmkBEgTLAREeCg0KBQQAAmkDEgTLASEkCgwKBAQAAmoSBMwBAiIKDQoFBAACagQSBMwBAgoKDQoFBAACagUSBMwBCxAKDQoFBAACagESBMwBERsKDQoFBAACagMSBMwBHiEKDAoEBAACaxIEzQECIgoNCgUEAAJrBBIEzQECCgoNCgUEAAJrBRIEzQELEAoNCgUEAAJrARIEzQERGwoNCgUEAAJrAxIEzQEeIQoMCgQEAAJsEgTOAQIjCg0KBQQAAmwEEgTOAQIKCg0KBQQAAmwFEgTOAQsQCg0KBQQAAmwBEgTOAREcCg0KBQQAAmwDEgTOAR8iCgwKBAQAAm0SBM8BAiQKDQoFBAACbQQSBM8BAgoKDQoFBAACbQUSBM8BCxAKDQoFBAACbQESBM8BER0KDQoFBAACbQMSBM8BICMKDAoEBAACbhIE0AECJAoNCgUEAAJuBBIE0AECCgoNCgUEAAJuBRIE0AELEAoNCgUEAAJuARIE0AERHQoNCgUEAAJuAxIE0AEgIwoMCgQEAAJvEgTRAQIkCg0KBQQAAm8EEgTRAQIKCg0KBQQAAm8FEgTRAQsQCg0KBQQAAm8BEgTRAREdCg0KBQQAAm8DEgTRASAjCgwKBAQAAnASBNIBAiYKDQoFBAACcAQSBNIBAgoKDQoFBAACcAUSBNIBCxAKDQoFBAACcAESBNIBER8KDQoFBAACcAMSBNIBIiUKDAoEBAACcRIE0wECJgoNCgUEAAJxBBIE0wECCgoNCgUEAAJxBRIE0wELEAoNCgUEAAJxARIE0wERHwoNCgUEAAJxAxIE0wEiJQoMCgQEAAJyEgTUAQIlCg0KBQQAAnIEEgTUAQIKCg0KBQQAAnIFEgTUAQsQCg0KBQQAAnIBEgTUAREeCg0KBQQAAnIDEgTUASEkCgwKBAQAAnMSBNUBAiUKDQoFBAACcwQSBNUBAgoKDQoFBAACcwUSBNUBCxAKDQoFBAACcwESBNUBER4KDQoFBAACcwMSBNUBISQKDAoEBAACdBIE1gECJgoNCgUEAAJ0BBIE1gECCgoNCgUEAAJ0BRIE1gELEAoNCgUEAAJ0ARIE1gERHwoNCgUEAAJ0AxIE1gEiJQoMCgQEAAJ1EgTXAQImCg0KBQQAAnUEEgTXAQIKCg0KBQQAAnUFEgTXAQsQCg0KBQQAAnUBEgTXAREfCg0KBQQAAnUDEgTXASIlCjAKAwQACRIE2gECGBojIFJlc2VydmVkIGZvciB1bmtub3duIGZpZWxkcyB0ZXN0LgoKDAoEBAAJABIE2gELFwoNCgUEAAkAARIE2gELDwoNCgUEAAkAAhIE2gETFwooCgQEAAMVEgbdAQLhAQMaGCBtZXNzYWdlX3NldCB0ZXN0IGNhc2UuCgoNCgUEAAMVARIE3QEKGwoNCgUEAAMVBxIE3gEEKgoOCgYEAAMVBwESBN4BBCoKDQoFBAADFQUSBOABBBgKDgoGBAADFQUAEgTgAQ8XCg8KBwQAAxUFAAESBOABDxAKDwoHBAADFQUAAhIE4AEUFwoOCgQEAAMWEgbjAQLoAQMKDQoFBAADFgESBOMBCiUKDwoFBAADFgYSBuQBBOYBBQoOCgYEAAMWBgASBOUBBksKDwoHBAADFgYAAhIE5AELHAoPCgcEAAMWBgAEEgTlAQYOCg8KBwQAAxYGAAYSBOUBDyoKDwoHBAADFgYAARIE5QErQAoPCgcEAAMWBgADEgTlAUNKCg4KBgQAAxYCABIE5wEEHQoPCgcEAAMWAgAEEgTnAQQMCg8KBwQAAxYCAAUSBOcBDRMKDwoHBAADFgIAARIE5wEUFwoPCgcEAAMWAgADEgTnARocCg4KBAQAAxcSBuoBAu8BAwoNCgUEAAMXARIE6gEKJQoPCgUEAAMXBhIG6wEE7QEFCg4KBgQAAxcGABIE7AEGSwoPCgcEAAMXBgACEgTrAQscCg8KBwQAAxcGAAQSBOwBBg4KDwoHBAADFwYABhIE7AEPKgoPCgcEAAMXBgABEgTsAStACg8KBwQAAxcGAAMSBOwBQ0oKDgoGBAADFwIAEgTuAQQZCg8KBwQAAxcCAAQSBO4BBAwKDwoHBAADFwIABRIE7gENEgoPCgcEAAMXAgABEgTuARMUCg8KBwQAAxcCAAMSBO4BFxgKDAoCBAESBvIBAPQBAQoLCgMEAQESBPIBCBwKDAoEBAECABIE8wECFwoNCgUEAQIABBIE8wECCgoNCgUEAQIABRIE8wELEAoNCgUEAQIAARIE8wEREgoNCgUEAQIAAxIE8wEVFgoMCgIFABIG9gEA+gEBCgsKAwUAARIE9gEFFgoMCgQFAAIAEgT3AQISCg0KBQUAAgABEgT3AQINCg0KBQUAAgACEgT3ARARCgwKBAUAAgESBPgBAhIKDQoFBQACAQESBPgBAg0KDQoFBQACAQISBPgBEBEKDAoEBQACAhIE+QECEgoNCgUFAAICARIE+QECDQoNCgUFAAICAhIE+QEQEQoLCgEHEgb8AQD+AQEKCgoCBwASBP0BAicKCwoDBwACEgT8AQcZCgsKAwcABBIE/QECCgoLCgMHAAUSBP0BCxAKCwoDBwABEgT9AREgCgsKAwcAAxIE/QEjJgoMCgIEAhIGgAIAiQIBCgsKAwQCARIEgAIIHQoMCgQEAgIAEgSBAgInCg0KBQQCAgAEEgSBAgIKCg0KBQQCAgAFEgSBAgsQCg0KBQQCAgABEgSBAhEfCg0KBQQCAgADEgSBAiImCgwKBAQCAgESBIICAikKDQoFBAICAQQSBIICAgoKDQoFBAICAQUSBIICCxEKDQoFBAICAQESBIICEiEKDQoFBAICAQMSBIICJCgKDAoEBAICAhIEgwICNgoNCgUEAgICBBIEgwICCgoNCgUEAgICBhIEgwILHwoNCgUEAgICARIEgwIgLgoNCgUEAgICAxIEgwIxNQoOCgQEAgIDEgaEAgKGAgMKDQoFBAICAwQSBIQCAgoKDQoFBAICAwUSBIQCCxAKDQoFBAICAwESBIQCER4KDQoFBAICAwMSBIQCISUKDgoEBAIDABIGhAIChgIDCg0KBQQCAwABEgSEAhEeCg0KBQQCAgMGEgSEAhEeCg4KBgQCAwACABIEhQIEGQoPCgcEAgMAAgAEEgSFAgQMCg8KBwQCAwACAAUSBIUCDRIKDwoHBAIDAAIAARIEhQITFAoPCgcEAgMAAgADEgSFAhcYCgwKBAQCAgQSBIcCAiUKDQoFBAICBAQSBIcCAgoKDQoFBAICBAUSBIcCCw8KDQoFBAICBAESBIcCEB0KDQoFBAICBAMSBIcCICQKDAoEBAICBRIEiAICJwoNCgUEAgIFBBIEiAICCgoNCgUEAgIFBRIEiAILEAoNCgUEAgIFARIEiAIRHwoNCgUEAgIFAxIEiAIiJgqlKgouZ29vZ2xlL3Byb3RvYnVmL3VuaXR0ZXN0X3Byb3RvM19vcHRpb25hbC5wcm90bxIRcHJvdG9idWZfdW5pdHRlc3QiwQwKElRlc3RQcm90bzNPcHRpb25hbBIqCg5vcHRpb25hbF9pbnQzMhgBIAEoBUgAUg1vcHRpb25hbEludDMyiAEBEioKDm9wdGlvbmFsX2ludDY0GAIgASgDSAFSDW9wdGlvbmFsSW50NjSIAQESLAoPb3B0aW9uYWxfdWludDMyGAMgASgNSAJSDm9wdGlvbmFsVWludDMyiAEBEiwKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBEgDUg5vcHRpb25hbFVpbnQ2NIgBARIsCg9vcHRpb25hbF9zaW50MzIYBSABKBFIBFIOb3B0aW9uYWxTaW50MzKIAQESLAoPb3B0aW9uYWxfc2ludDY0GAYgASgSSAVSDm9wdGlvbmFsU2ludDY0iAEBEi4KEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdIBlIPb3B0aW9uYWxGaXhlZDMyiAEBEi4KEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZIB1IPb3B0aW9uYWxGaXhlZDY0iAEBEjAKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPSAhSEG9wdGlvbmFsU2ZpeGVkMzKIAQESMAoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBICVIQb3B0aW9uYWxTZml4ZWQ2NIgBARIqCg5vcHRpb25hbF9mbG9hdBgLIAEoAkgKUg1vcHRpb25hbEZsb2F0iAEBEiwKD29wdGlvbmFsX2RvdWJsZRgMIAEoAUgLUg5vcHRpb25hbERvdWJsZYgBARIoCg1vcHRpb25hbF9ib29sGA0gASgISAxSDG9wdGlvbmFsQm9vbIgBARIsCg9vcHRpb25hbF9zdHJpbmcYDiABKAlIDVIOb3B0aW9uYWxTdHJpbmeIAQESKgoOb3B0aW9uYWxfYnl0ZXMYDyABKAxIDlINb3B0aW9uYWxCeXRlc4gBARIsCg1vcHRpb25hbF9jb3JkGBAgASgJQgIIAUgPUgxvcHRpb25hbENvcmSIAQEScAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWwuTmVzdGVkTWVzc2FnZUgQUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2WIAQESbAoTbGF6eV9uZXN0ZWRfbWVzc2FnZRgTIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRNZXNzYWdlQgIoAUgRUhFsYXp5TmVzdGVkTWVzc2FnZYgBARJnChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIwLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRFbnVtSBJSEm9wdGlvbmFsTmVzdGVkRW51bYgBARorCg1OZXN0ZWRNZXNzYWdlEhMKAmJiGAEgASgFSABSAmJiiAEBQgUKA19iYiJKCgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCEQoPX29wdGlvbmFsX2ludDMyQhEKD19vcHRpb25hbF9pbnQ2NEISChBfb3B0aW9uYWxfdWludDMyQhIKEF9vcHRpb25hbF91aW50NjRCEgoQX29wdGlvbmFsX3NpbnQzMkISChBfb3B0aW9uYWxfc2ludDY0QhMKEV9vcHRpb25hbF9maXhlZDMyQhMKEV9vcHRpb25hbF9maXhlZDY0QhQKEl9vcHRpb25hbF9zZml4ZWQzMkIUChJfb3B0aW9uYWxfc2ZpeGVkNjRCEQoPX29wdGlvbmFsX2Zsb2F0QhIKEF9vcHRpb25hbF9kb3VibGVCEAoOX29wdGlvbmFsX2Jvb2xCEgoQX29wdGlvbmFsX3N0cmluZ0IRCg9fb3B0aW9uYWxfYnl0ZXNCEAoOX29wdGlvbmFsX2NvcmRCGgoYX29wdGlvbmFsX25lc3RlZF9tZXNzYWdlQhYKFF9sYXp5X25lc3RlZF9tZXNzYWdlQhcKFV9vcHRpb25hbF9uZXN0ZWRfZW51bUIlCiFjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RpbmcucHJvdG9QAUrsHAoGEgQeAEoBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF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