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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Gj4gUHJldmlvdXNseSwgbWVzc2FnZSBjYW5ub3QgY29udGFpbiBtYXAgZmllbGQgY2FsbGVkICJlbnRyeSIuCgoKCgMEBgESA3EIJwoLCgQEBgIAEgNyAh4KDAoFBAYCAAYSA3ICEwoMCgUEBgIAARIDchQZCgwKBQQGAgADEgNyHB1iBnByb3RvMwr/IgocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIpgBCgZTdHJ1Y3QSOwoGZmllbGRzGAEgAygLMiMuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdC5GaWVsZHNFbnRyeVIGZmllbGRzGlEKC0ZpZWxkc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgV2YWx1ZToCOAEisgIKBVZhbHVlEjsKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSCW51bGxWYWx1ZRIjCgxudW1iZXJfdmFsdWUYAiABKAFIAFILbnVtYmVyVmFsdWUSIwoMc3RyaW5nX3ZhbHVlGAMgASgJSABSC3N0cmluZ1ZhbHVlEh8KCmJvb2xfdmFsdWUYBCABKAhIAFIJYm9vbFZhbHVlEjwKDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAFILc3RydWN0VmFsdWUSOwoKbGlzdF92YWx1ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5MaXN0VmFsdWVIAFIJbGlzdFZhbHVlQgYKBGtpbmQiOwoJTGlzdFZhbHVlEi4KBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVIGdmFsdWVzKhsKCU51bGxWYWx1ZRIOCgpOVUxMX1ZBTFVFEABCfwoTY29tLmdvb2dsZS5wcm90b2J1ZkILU3RydWN0UHJvdG9QAVovZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vc3RydWN0cGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKmh0KBhIEHgBeAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAHwoJCgIIHxIDIwAfCggKAQgSAyQARgoJCgIICxIDJABGCggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYALAoJCgIICBIDJgAsCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCrMDCgIEABIEMgA1ARqmAyBgU3RydWN0YCByZXByZXNlbnRzIGEgc3RydWN0dXJlZCBkYXRhIHZhbHVlLCBjb25zaXN0aW5nIG9mIGZpZWxkcwogd2hpY2ggbWFwIHRvIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlcy4gSW4gc29tZSBsYW5ndWFnZXMsIGBTdHJ1Y3RgCiBtaWdodCBiZSBzdXBwb3J0ZWQgYnkgYSBuYXRpdmUgcmVwcmVzZW50YXRpb24uIEZvciBleGFtcGxlLCBpbgogc2NyaXB0aW5nIGxhbmd1YWdlcyBsaWtlIEpTIGEgc3RydWN0IGlzIHJlcHJlc2VudGVkIGFzIGFuCiBvYmplY3QuIFRoZSBkZXRhaWxzIG9mIHRoYXQgcmVwcmVzZW50YXRpb24gYXJlIGRlc2NyaWJlZCB0b2dldGhlcgogd2l0aCB0aGUgcHJvdG8gc3VwcG9ydCBmb3IgdGhlIGxhbmd1YWdlLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgU3RydWN0YCBpcyBKU09OIG9iamVjdC4KCgoKAwQAARIDMggOCjkKBAQAAgASAzQCIBosIFVub3JkZXJlZCBtYXAgb2YgZHluYW1pY2FsbHkgdHlwZWQgdmFsdWVzLgoKDAoFBAACAAYSAzQCFAoMCgUEAAIAARIDNBUbCgwKBQQAAgADEgM0Hh8KxAIKAgQBEgQ9AE0BGrcCIGBWYWx1ZWAgcmVwcmVzZW50cyBhIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlIHdoaWNoIGNhbiBiZSBlaXRoZXIKIG51bGwsIGEgbnVtYmVyLCBhIHN0cmluZywgYSBib29sZWFuLCBhIHJlY3Vyc2l2ZSBzdHJ1Y3QgdmFsdWUsIG9yIGEKIGxpc3Qgb2YgdmFsdWVzLiBBIHByb2R1Y2VyIG9mIHZhbHVlIGlzIGV4cGVjdGVkIHRvIHNldCBvbmUgb2YgdGhlc2UKIHZhcmlhbnRzLiBBYnNlbmNlIG9mIGFueSB2YXJpYW50IGluZGljYXRlcyBhbiBlcnJvci4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYFZhbHVlYCBpcyBKU09OIHZhbHVlLgoKCgoDBAEBEgM9CA0KIgoEBAEIABIEPwJMAxoUIFRoZSBraW5kIG9mIHZhbHVlLgoKDAoFBAEIAAESAz8IDAonCgQEAQIAEgNBBB0aGiBSZXByZXNlbnRzIGEgbnVsbCB2YWx1ZS4KCgwKBQQBAgAGEgNBBA0KDAoFBAECAAESA0EOGAoMCgUEAQIAAxIDQRscCikKBAQBAgESA0MEHBocIFJlcHJlc2VudHMgYSBkb3VibGUgdmFsdWUuCgoMCgUEAQIBBRIDQwQKCgwKBQQBAgEBEgNDCxcKDAoFBAECAQMSA0MaGwopCgQEAQICEgNFBBwaHCBSZXByZXNlbnRzIGEgc3RyaW5nIHZhbHVlLgoKDAoFBAECAgUSA0UECgoMCgUEAQICARIDRQsXCgwKBQQBAgIDEgNFGhsKKgoEBAECAxIDRwQYGh0gUmVwcmVzZW50cyBhIGJvb2xlYW4gdmFsdWUuCgoMCgUEAQIDBRIDRwQICgwKBQQBAgMBEgNHCRMKDAoFBAECAwMSA0cWFwotCgQEAQIEEgNJBBwaICBSZXByZXNlbnRzIGEgc3RydWN0dXJlZCB2YWx1ZS4KCgwKBQQBAgQGEgNJBAoKDAoFBAECBAESA0kLFwoMCgUEAQIEAxIDSRobCi0KBAQBAgUSA0sEHRogIFJlcHJlc2VudHMgYSByZXBlYXRlZCBgVmFsdWVgLgoKDAoFBAECBQYSA0sEDQoMCgUEAQIFARIDSw4YCgwKBQQBAgUDEgNLGxwKqQEKAgUAEgRTAFYBGpwBIGBOdWxsVmFsdWVgIGlzIGEgc2luZ2xldG9uIGVudW1lcmF0aW9uIHRvIHJlcHJlc2VudCB0aGUgbnVsbCB2YWx1ZSBmb3IgdGhlCiBgVmFsdWVgIHR5cGUgdW5pb24uCgogIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgTnVsbFZhbHVlYCBpcyBKU09OIGBudWxsYC4KCgoKAwUAARIDUwUOChoKBAUAAgASA1UCERoNIE51bGwgdmFsdWUuCgoMCgUFAAIAARIDVQIMCgwKBQUAAgACEgNVDxAKggEKAgQCEgRbAF4BGnYgYExpc3RWYWx1ZWAgaXMgYSB3cmFwcGVyIGFyb3VuZCBhIHJlcGVhdGVkIGZpZWxkIG9mIHZhbHVlcy4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYExpc3RWYWx1ZWAgaXMgSlNPTiBhcnJheS4KCgoKAwQCARIDWwgRCjoKBAQCAgASA10CHBotIFJlcGVhdGVkIGZpZWxkIG9mIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlcy4KCgwKBQQCAgAEEgNdAgoKDAoFBAICAAYSA10LEAoMCgUEAgIAARIDXREXCgwKBQQCAgADEgNdGhtiBnByb3RvMwqDNAoVdW5pdHRlc3RfaXNzdWVzLnByb3RvEg91bml0dGVzdF9pc3N1ZXMaHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8iJwoISXNzdWUzMDcaGwoKTmVzdGVkT25jZRoNCgtOZXN0ZWRUd2ljZSLNAQoTTmVnYXRpdmVFbnVtTWVzc2FnZRIzCgV2YWx1ZRgBIAEoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1SBXZhbHVlEjkKBnZhbHVlcxgCIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhAAUgZ2YWx1ZXMSRgoNcGFja2VkX3ZhbHVlcxgDIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhABUgxwYWNrZWRWYWx1ZXMiEQoPRGVwcmVjYXRlZENoaWxkIosDChdEZXByZWNhdGVkRmllbGRzTWVzc2FnZRIqCg5QcmltaXRpdmVWYWx1ZRgBIAEoBUICGAFSDlByaW1pdGl2ZVZhbHVlEioKDlByaW1pdGl2ZUFycmF5GAIgAygFQgIYAVIOUHJpbWl0aXZlQXJyYXkSSAoMTWVzc2FnZVZhbHVlGAMgASgLMiAudW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRDaGlsZEICGAFSDE1lc3NhZ2VWYWx1ZRJICgxNZXNzYWdlQXJyYXkYBCADKAsyIC51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZENoaWxkQgIYAVIMTWVzc2FnZUFycmF5EkEKCUVudW1WYWx1ZRgFIAEoDjIfLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkRW51bUICGAFSCUVudW1WYWx1ZRJBCglFbnVtQXJyYXkYBiADKA4yHy51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZEVudW1CAhgBUglFbnVtQXJyYXkiHwoJSXRlbUZpZWxkEhIKBGl0ZW0YASABKAVSBGl0ZW0iVwoNUmVzZXJ2ZWROYW1lcxIUCgV0eXBlcxgBIAEoBVIFdHlwZXMSHgoKZGVzY3JpcHRvchgCIAEoBVIKZGVzY3JpcHRvchoQCg5Tb21lTmVzdGVkVHlwZSLfAQoVVGVzdEpzb25GaWVsZE9yZGVyaW5nEh8KC3BsYWluX2ludDMyGAQgASgFUgpwbGFpbkludDMyEh0KCW8xX3N0cmluZxgCIAEoCUgAUghvMVN0cmluZxIbCghvMV9pbnQzMhgFIAEoBUgAUgdvMUludDMyEiEKDHBsYWluX3N0cmluZxgBIAEoCVILcGxhaW5TdHJpbmcSGwoIbzJfaW50MzIYBiABKAVIAVIHbzJJbnQzMhIdCglvMl9zdHJpbmcYAyABKAlIAVIIbzJTdHJpbmdCBAoCbzFCBAoCbzIiUQoMVGVzdEpzb25OYW1lEhIKBG5hbWUYASABKAlSBG5hbWUSGQoLZGVzY3JpcHRpb24YAiABKAlSBGRlc2MSEgoEZ3VpZBgDIAEoCVIEZXhpZCKTAQoMT25lb2ZNZXJnaW5nEhQKBHRleHQYASABKAlIAFIEdGV4dBI+CgZuZXN0ZWQYAiABKAsyJC51bml0dGVzdF9pc3N1ZXMuT25lb2ZNZXJnaW5nLk5lc3RlZEgAUgZuZXN0ZWQaJAoGTmVzdGVkEgwKAXgYASABKAVSAXgSDAoBeRgCIAEoBVIBeUIHCgV2YWx1ZSKDAQoWTnVsbFZhbHVlT3V0c2lkZVN0cnVjdBIjCgxzdHJpbmdfdmFsdWUYASABKAlIAFILc3RyaW5nVmFsdWUSOwoKbnVsbF92YWx1ZRgCIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVIAFIJbnVsbFZhbHVlQgcKBXZhbHVlIlAKE051bGxWYWx1ZU5vdEluT25lb2YSOQoKbnVsbF92YWx1ZRgCIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVSCW51bGxWYWx1ZSJ9ChdNaXhlZFJlZ3VsYXJBbmRPcHRpb25hbBIjCg1yZWd1bGFyX2ZpZWxkGAEgASgJUgxyZWd1bGFyRmllbGQSKgoOb3B0aW9uYWxfZmllbGQYAiABKAlIAFINb3B0aW9uYWxGaWVsZIgBAUIRCg9fb3B0aW9uYWxfZmllbGQqVQoMTmVnYXRpdmVFbnVtEhYKEk5FR0FUSVZFX0VOVU1fWkVSTxAAEhYKCUZpdmVCZWxvdxD7//////////8BEhUKCE1pbnVzT25lEP///////////wEqLgoORGVwcmVjYXRlZEVudW0SEwoPREVQUkVDQVRFRF9aRVJPEAASBwoDb25lEAFCHaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zStYlCgcSBQAAnQEBCggKAQwSAwAAEgoICgEIEgMGADcKjgIKAgglEgMGADcaZSBJc3N1ZTogTm9uLSJHb29nbGUuUHJvdG9idWZmZXJzIiBuYW1lc3BhY2Ugd2lsbCBlbnN1cmUgdGhhdCBwcm90b2J1ZmZlciBsaWJyYXJ5IHR5cGVzIGFyZSBxdWFsaWZpZWQKMpsBIFRoZXNlIHByb3RvIGRlc2NyaXB0b3JzIGhhdmUgYXQgb25lIHRpbWUgYmVlbiByZXBvcnRlZCBhcyBhbiBpc3N1ZSBvciBkZWZlY3QuCiBUaGV5IGFyZSBrZXB0IGhlcmUgdG8gcmVwbGljYXRlIHRoZSBpc3N1ZSwgYW5kIGNvbnRpbnVlIHRvIHZlcmlmeSB0aGUgZml4LgoKCAoBAhIDCAAYCgkKAgMAEgMKACYKdgoCBAASBA4AEwEaaiBJc3N1ZSAzMDc6IHdoZW4gZ2VuZXJhdGluZyBkb3VibHktbmVzdGVkIHR5cGVzLCBhbnkgcmVmZXJlbmNlcwogc2hvdWxkIGJlIG9mIHRoZSBmb3JtIEEuVHlwZXMuQi5UeXBlcy5DLgoKCgoDBAABEgMOCBAKDAoEBAADABIEDwISAwoMCgUEAAMAARIDDwoUCg4KBgQAAwADABIEEAQRBQoOCgcEAAMAAwABEgMQDBcKrAQKAgUAEgQtADEBMpgBIE9sZCBpc3N1ZSAxMzogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3Byb3RvYnVmLWNzaGFycC1wb3J0L2lzc3Vlcy9kZXRhaWw/aWQ9MTMKIE5ldyBpc3N1ZSAzMDk6IGh0dHBzOi8vZ2l0aHViLmNvbS9wcm90b2NvbGJ1ZmZlcnMvcHJvdG9idWYvaXNzdWVzLzMwOQoyKyBtZXNzYWdlIEEgewogICAgb3B0aW9uYWwgaW50MzIgX0EgPSAxOwogfQoyKyBtZXNzYWdlIEIgewogICAg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bGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSQQoHc2VydmljZRgGIAMoCzInLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlRGVzY3JpcHRvclByb3RvUgdzZXJ2aWNlEkMKCWV4dGVuc2lvbhgHIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEjYKB29wdGlvbnMYCCABKAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnNSB29wdGlvbnMSSQoQc291cmNlX2NvZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mb1IOc291cmNlQ29kZUluZm8SFgoGc3ludGF4GAwgASgJUgZzeW50YXgiuQYKD0Rlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjsKBWZpZWxkGAIgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUgVmaWVsZBJDCglleHRlbnNpb24YBiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhJBCgtuZXN0ZWRfdHlwZRgDIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SCm5lc3RlZFR5cGUSQQoJZW51bV90eXBlGAQgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlElgKD2V4dGVuc2lvbl9yYW5nZRgFIAMoCzIvLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uRXh0ZW5zaW9uUmFuZ2VSDmV4dGVuc2lvblJhbmdlEkQKCm9uZW9mX2RlY2wYCCADKAsyJS5nb29nbGUucHJvdG9idWYuT25lb2ZEZXNjcmlwdG9yUHJvdG9SCW9uZW9mRGVjbBI5CgdvcHRpb25zGAcgASgLMh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zUgdvcHRpb25zElUKDnJlc2VydmVkX3JhbmdlGAkgAygLMi4uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYCiADKAlSDHJlc2VydmVkTmFtZRp6Cg5FeHRlbnNpb25SYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQSQAoHb3B0aW9ucxgDIAEoCzImLmdvb2dsZS5wcm90b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnNSB29wdGlvbnMaNwoNUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQifAoVRXh0ZW5zaW9uUmFuZ2VPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIiwQYKFEZpZWxkRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISQQoFbGFiZWwYBCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWxSBWxhYmVsEj4KBHR5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZVIEdHlwZRIbCgl0eXBlX25hbWUYBiABKAlSCHR5cGVOYW1lEhoKCGV4dGVuZGVlGAIgASgJUghleHRlbmRlZRIjCg1kZWZhdWx0X3ZhbHVlGAcgASgJUgxkZWZhdWx0VmFsdWUSHwoLb25lb2ZfaW5kZXgYCSABKAVSCm9uZW9mSW5kZXgSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRI3CgdvcHRpb25zGAggASgLMh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9uc1IHb3B0aW9ucxInCg9wcm90bzNfb3B0aW9uYWwYESABKAhSDnByb3RvM09wdGlvbmFsIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIpEJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIuChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgR0cnVlUg5jY0VuYWJsZUFyZW5hcxIqChFvYmpjX2NsYXNzX3ByZWZpeBgkIAEoCVIPb2JqY0NsYXNzUHJlZml4EikKEGNzaGFycF9uYW1lc3BhY2UYJSABKAlSD2NzaGFycE5hbWVzcGFjZRIhCgxzd2lmdF9wcmVmaXgYJyABKAlSC3N3aWZ0UHJlZml4EigKEHBocF9jbGFzc19wcmVmaXgYKCABKAlSDnBocENsYXNzUHJlZml4EiMKDXBocF9uYW1lc3BhY2UYKSABKAlSDHBocE5hbWVzcGFjZRI0ChZwaHBfbWV0YWRhdGFfbmFtZXNwYWNlGCwgASgJUhRwaHBNZXRhZGF0YU5hbWVzcGFjZRIhCgxydWJ5X3BhY2thZ2UYLSABKAlSC3J1YnlQYWNrYWdlElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIjoKDE9wdGltaXplTW9kZRIJCgVTUEVFRBABEg0KCUNPREVfU0laRRACEhAKDExJVEVfUlVOVElNRRADKgkI6AcQgICAgAJKBAgmECci4wIKDk1lc3NhZ2VPcHRpb25zEjwKF21lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0GAEgASgIOgVmYWxzZVIUbWVzc2FnZVNldFdpcmVGb3JtYXQSTAofbm9fc3RhbmRhcmRfZGVzY3JpcHRvcl9hY2Nlc3NvchgCIAEoCDoFZmFsc2VSHG5vU3RhbmRhcmREZXNjcmlwdG9yQWNjZXNzb3ISJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGwoJbWFwX2VudHJ5GAcgASgIUghtYXBFbnRyeRJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBBAFSgQIBRAGSgQIBhAHSgQICBAJSgQICRAKIuIDCgxGaWVsZE9wdGlvbnMSQQoFY3R5cGUYASABKA4yIy5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkNUeXBlOgZTVFJJTkdSBWN0eXBlEhYKBnBhY2tlZBgCIAEoCFIGcGFja2VkEkcKBmpzdHlwZRgGIAEoDjIkLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuSlNUeXBlOglKU19OT1JNQUxSBmpzdHlwZRIZCgRsYXp5GAUgASgIOgVmYWxzZVIEbGF6eRIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIZCgR3ZWFrGAogASgIOgVmYWxzZVIEd2VhaxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiIvCgVDVHlwZRIKCgZTVFJJTkcQABIICgRDT1JEEAESEAoMU1RSSU5HX1BJRUNFEAIiNQoGSlNUeXBlEg0KCUpTX05PUk1BTBAAEg0KCUpTX1NUUklORxABEg0KCUpTX05VTUJFUhACKgkI6AcQgICAgAJKBAgEEAUicwoMT25lb2ZPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIiwAEKC0VudW1PcHRpb25zEh8KC2FsbG93X2FsaWFzGAIgASgIUgphbGxvd0FsaWFzEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgFEAYingEKEEVudW1WYWx1ZU9wdGlvbnMSJQoKZGVwcmVjYXRlZBgBIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKcAQoOU2VydmljZU9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLgAgoNTWV0aG9kT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJxChFpZGVtcG90ZW5jeV9sZXZlbBgiIAEoDjIvLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zLklkZW1wb3RlbmN5TGV2ZWw6E0lERU1QT1RFTkNZX1VOS05PV05SEGlkZW1wb3RlbmN5TGV2ZWwSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iUAoQSWRlbXBvdGVuY3lMZXZlbBIXChNJREVNUE9URU5DWV9VTktOT1dOEAASEwoPTk9fU0lERV9FRkZFQ1RTEAESDgoKSURFTVBPVEVOVBACKgkI6AcQgICAgAIimgMKE1VuaW50ZXJwcmV0ZWRPcHRpb24SQQoEbmFtZRgCIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uLk5hbWVQYXJ0UgRuYW1lEikKEGlkZW50aWZpZXJfdmFsdWUYAyABKAlSD2lkZW50aWZpZXJWYWx1ZRIsChJwb3NpdGl2ZV9pbnRfdmFsdWUYBCABKARSEHBvc2l0aXZlSW50VmFsdWUSLAoSbmVnYXRpdmVfaW50X3ZhbHVlGAUgASgDUhBuZWdhdGl2ZUludFZhbHVlEiEKDGRvdWJsZV92YWx1ZRgGIAEoAVILZG91YmxlVmFsdWUSIQoMc3RyaW5nX3ZhbHVlGAcgASgMUgtzdHJpbmdWYWx1ZRInCg9hZ2dyZWdhdGVfdmFsdWUYCCABKAlSDmFnZ3JlZ2F0ZVZhbHVlGkoKCE5hbWVQYXJ0EhsKCW5hbWVfcGFydBgBIAIoCVIIbmFtZVBhcnQSIQoMaXNfZXh0ZW5zaW9uGAIgAigIUgtpc0V4dGVuc2lvbiKnAgoOU291cmNlQ29kZUluZm8SRAoIbG9jYXRpb24YASADKAsyKC5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm8uTG9jYXRpb25SCGxvY2F0aW9uGs4BCghMb2NhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIWCgRzcGFuGAIgAygFQgIQAVIEc3BhbhIpChBsZWFkaW5nX2NvbW1lbnRzGAMgASgJUg9sZWFkaW5nQ29tbWVudHMSKwoRdHJhaWxpbmdfY29tbWVudHMYBCABKAlSEHRyYWlsaW5nQ29tbWVudHMSOgoZbGVhZGluZ19kZXRhY2hlZF9jb21tZW50cxgGIAMoCVIXbGVhZGluZ0RldGFjaGVkQ29tbWVudHMi0QEKEUdlbmVyYXRlZENvZGVJbmZvEk0KCmFubm90YXRpb24YASADKAsyLS5nb29nbGUucHJvdG9idWYuR2VuZXJhdGVkQ29kZUluZm8uQW5ub3RhdGlvblIKYW5ub3RhdGlvbhptCgpBbm5vdGF0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEh8KC3NvdXJjZV9maWxlGAIgASgJUgpzb3VyY2VGaWxlEhQKBWJlZ2luGAMgASgFUgViZWdpbhIQCgNlbmQYBCABKAVSA2VuZEJ+ChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9zSAFaLWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2Rlc2NyaXB0b3JwYvgBAaICA0dQQqoCGkdvb2dsZS5Qcm90b2J1Zi5SZWZsZWN0aW9uSonKAgoHEgUnAI4HAQqqDwoBDBIDJwASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoy2wIgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogVGhlIG1lc3NhZ2VzIGluIHRoaXMgZmlsZSBkZXNjcmliZSB0aGUgZGVmaW5pdGlvbnMgZm91bmQgaW4gLnByb3RvIGZpbGVzLgogQSB2YWxpZCAucHJvdG8gZmlsZSBjYW4gYmUgdHJhbnNsYXRlZCBkaXJlY3RseSB0byBhIEZpbGVEZXNjcmlwdG9yUHJvdG8KIHdpdGhvdXQgYW55IG90aGVyIGluZm9ybWF0aW9uIChlLmcuIHdpdGhvdXQgcmVhZGluZyBpdHMgaW1wb3J0cykuCgoICgECEgMpABgKCAoBCBIDKwBECgkKAggLEgMrAEQKCAoBCBIDLAAsCgkKAggBEgMsACwKCAoBCBIDLQAxCgkKAggIEgMtADEKCAoBCBIDLgA3CgkKAgglEgMuADcKCAoBCBIDLwAhCgkKAggkEgMvACEKCAoBCBIDMAAfCgkKAggfEgMwAB8KCAoBCBIDNAAcCn8KAggJEgM0ABwadCBkZXNjcmlwdG9yLnByb3RvIG11c3QgYmUgb3B0aW1pemVkIGZvciBzcGVlZCBiZWNhdXNlIHJlZmxlY3Rpb24tYmFzZWQKIGFsZ29yaXRobXMgZG9uJ3Qgd29yayBkdXJpbmcgYm9vdHN0cmFwcGluZy4KCmoKAgQAEgQ4ADoBGl4gVGhlIHByb3RvY29sIGNvbXBpbGVyIGNhbiBvdXRwdXQgYSBGaWxlRGVzY3JpcHRvclNldCBjb250YWluaW5nIHRoZSAucHJvdG8KIGZpbGVzIGl0IHBhcnNlcy4KCgoKAwQAARIDOAgZCgsKBAQAAgASAzkCKAoMCgUEAAIABBIDOQIKCgwKBQQAAgAGEgM5Cx4KDAoFBAACAAESAzkfIwoMCgUEAAIAAxIDOSYnCi8KAgQBEgQ9AFoBGiMgRGVzY3JpYmVzIGEgY29tcGxldGUgLnByb3RvIGZpbGUuCgoKCgMEAQESAz0IGwo5CgQEAQIAEgM+AhsiLCBmaWxlIG5hbWUsIHJlbGF0aXZlIHRvIHJvb3Qgb2Ygc291cmNlIHRyZWUKCgwKBQQBAgAEEgM+AgoKDAoFBAECAAUSAz4LEQoMCgUEAQIAARIDPhIWCgwKBQQBAgADEgM+GRoKKgoEBAECARIDPwIeIh0gZS5nLiAiZm9vIiwgImZvby5iYXIiLCBldGMuCgoMCgUEAQIBBBIDPwIKCgwKBQQBAgEFEgM/CxEKDAoFBAECAQESAz8SGQoMCgUEAQIBAxIDPxwdCjQKBAQBAgISA0ICIRonIE5hbWVzIG9mIGZpbGVzIGltcG9ydGVkIGJ5IHRoaXMgZmlsZS4KCgwKBQQBAgIEEgNCAgoKDAoFBAECAgUSA0ILEQoMCgUEAQICARIDQhIcCgwKBQQBAgIDEgNCHyAKUQoEBAECAxIDRAIoGkQgSW5kZXhlcyBvZiB0aGUgcHVibGljIGltcG9ydGVkIGZpbGVzIGluIHRoZSBkZXBlbmRlbmN5IGxpc3QgYWJvdmUuCgoMCgUEAQIDBBIDRAIKCgwKBQQBAgMFEgNECxAKDAoFBAECAwESA0QRIgoMCgUEAQIDAxIDRCUnCnoKBAQBAgQSA0cCJhptIEluZGV4ZXMgb2YgdGhlIHdlYWsgaW1wb3J0ZWQgZmlsZXMgaW4gdGhlIGRlcGVuZGVuY3kgbGlzdC4KIEZvciBHb29nbGUtaW50ZXJuYWwgbWlncmF0aW9uIG9ubHkuIERvIG5vdCB1c2UuCgoMCgUEAQIEBBIDRwIKCgwKBQQBAgQFEgNHCxAKDAoFBAECBAESA0cRIAoMCgUEAQIEAxIDRyMlCjYKBAQBAgUSA0oCLBopIEFsbCB0b3AtbGV2ZWwgZGVmaW5pdGlvbnMgaW4gdGhpcyBmaWxlLgoKDAoFBAECBQQSA0oCCgoMCgUEAQIFBhIDSgsaCgwKBQQBAgUBEgNKGycKDAoFBAECBQMSA0oqKwoLCgQEAQIGEgNLAi0KDAoFBAECBgQSA0sCCgoMCgUEAQIGBhIDSwseCgwKBQQBAgYBEgNLHygKDAoFBAECBgMSA0srLAoLCgQEAQIHEgNMAi4KDAoFBAECBwQSA0wCCgoMCgUEAQIHBhIDTAshCgwKBQQBAgcBEgNMIikKDAoFBAECBwMSA0wsLQoLCgQEAQIIEgNNAi4KDAoFBAECCAQSA00CCgoMCgUEAQIIBhIDTQsfCgwKBQQBAggBEgNNICkKDAoFBAECCAMSA00sLQoLCgQEAQIJEgNPAiMKDAoFBAECCQQSA08CCgoMCgUEAQIJBhIDTwsWCgwKBQQBAgkBEgNPFx4KDAoFBAECCQMSA08hIgr0AQoEBAECChIDVQIvGuYBIFRoaXMgZmllbGQgY29udGFpbnMgb3B0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlLgogWW91IG1heSBzYWZlbHkgcmVtb3ZlIHRoaXMgZW50aXJlIGZpZWxkIHdpdGhvdXQgaGFybWluZyBydW50aW1lCiBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkZXNjcmlwdG9ycyAtLSB0aGUgaW5mb3JtYXRpb24gaXMgbmVlZGVkIG9ubHkgYnkKIGRldmVsb3BtZW50IHRvb2xzLgoKDAoFBAECCgQSA1UCCgoMCgUEAQIKBhIDVQsZCgwKBQQBAgoBEgNVGioKDAoFBAECCgMSA1UtLgpdCgQEAQILEgNZAh4aUCBUaGUgc3ludGF4IG9mIHRoZSBwcm90byBmaWxlLgogVGhlIHN1cHBvcnRlZCB2YWx1ZXMgYXJlICJwcm90bzIiIGFuZCAicHJvdG8zIi4KCgwKBQQBAgsEEgNZAgoKDAoFBAECCwUSA1kLEQoMCgUEAQILARIDWRIYCgwKBQQBAgsDEgNZGx0KJwoCBAISBF0AfQEaGyBEZXNjcmliZXMgYSBtZXNzYWdlIHR5cGUuCgoKCgMEAgESA10IFwoLCgQEAgIAEgNeAhsKDAoFBAICAAQSA14CCgoMCgUEAgIABRIDXgsRCgwKBQQCAgABEgNeEhYKDAoFBAICAAMSA14ZGgoLCgQEAgIBEgNgAioKDAoFBAICAQQSA2ACCgoMCgUEAgIBBhIDYAsfCgwKBQQCAgEBEgNgICUKDAoFBAICAQMSA2AoKQoLCgQEAgICEgNhAi4KDAoFBAICAgQSA2ECCgoMCgUEAgICBhIDYQsfCgwKBQQCAgIBEgNhICkKDAoFBAICAgMSA2EsLQoLCgQEAgIDEgNjAisKDAoFBAICAwQSA2MCCgoMCgUEAgIDBhIDYwsaCgwKBQQCAgMBEgNjGyYKDAoFBAICAwMSA2MpKgoLCgQEAgIEEgNkAi0KDAoFBAICBAQSA2QCCgoMCgUEAgIEBhIDZAseCgwKBQQCAgQBEgNkHygKDAoFBAICBAMSA2QrLAoMCgQEAgMAEgRmAmsDCgwKBQQCAwABEgNmChgKGwoGBAIDAAIAEgNnBB0iDCBJbmNsdXNpdmUuCgoOCgcEAgMAAgAEEgNnBAwKDgoHBAIDAAIABRIDZw0SCg4KBwQCAwACAAESA2cTGAoOCgcEAgMAAgADEgNnGxwKGwoGBAIDAAIBEgNoBBsiDCBFeGNsdXNpdmUuCgoOCgcEAgMAAgEEEgNoBAwKDgoHBAIDAAIBBRIDaA0SCg4KBwQCAwACAQESA2gTFgoOCgcEAgMAAgEDEgNoGRoKDQoGBAIDAAICEgNqBC8KDgoHBAIDAAICBBIDagQMCg4KBwQCAwACAgYSA2oNIgoOCgcEAgMAAgIBEgNqIyoKDgoHBAIDAAICAxIDai0uCgsKBAQCAgUSA2wCLgoMCgUEAgIFBBIDbAIKCgwKBQQCAgUGEgNsCxkKDAoFBAICBQESA2waKQoMCgUEAgIFAxIDbCwtCgsKBAQCAgYSA24CLwoMCgUEAgIGBBIDbgIKCgwKBQQCAgYGEgNuCx8KDAoFBAICBgESA24gKgoMCgUEAgIGAxIDbi0uCgsKBAQCAgcSA3ACJgoMCgUEAgIHBBIDcAIKCgwKBQQCAgcGEgNwCxkKDAoFBAICBwESA3AaIQoMCgUEAgIHAxIDcCQlCqoBCgQEAgMBEgR1AngDGpsBIFJhbmdlIG9mIHJlc2VydmVkIHRhZyBudW1iZXJzLiBSZXNlcnZlZCB0YWcgbnVtYmVycyBtYXkgbm90IGJlIHVzZWQgYnkKIGZpZWxkcyBvciBleHRlbnNpb24gcmFuZ2VzIGluIHRoZSBzYW1lIG1lc3NhZ2UuIFJlc2VydmVkIHJhbmdlcyBtYXkKIG5vdCBvdmVybGFwLgoKDAoFBAIDAQESA3UKFwobCgYEAgMBAgASA3YEHSIMIEluY2x1c2l2ZS4KCg4KBwQCAwECAAQSA3YEDAoOCgcEAgMBAgAFEgN2DRIKDgoHBAIDAQIAARIDdhMYCg4KBwQCAwECAAMSA3YbHAobCgYEAgMBAgESA3cEGyIMIEV4Y2x1c2l2ZS4KCg4KBwQCAwECAQQSA3cEDAoOCgcEAgMBAgEFEgN3DRIKDgoHBAIDAQIBARIDdxMWCg4KBwQCAwECAQMSA3cZGgoLCgQEAgIIEgN5AiwKDAoFBAICCAQSA3kCCgoMCgUEAgIIBhIDeQsYCgwKBQQCAggBEgN5GScKDAoFBAICCAMSA3kqKwqCAQoEBAICCRIDfAIlGnUgUmVzZXJ2ZWQgZmllbGQgbmFtZXMsIHdoaWNoIG1heSBub3QgYmUgdXNlZCBieSBmaWVsZHMgaW4gdGhlIHNhbWUgbWVzc2FnZS4KIEEgZ2l2ZW4gbmFtZSBtYXkgb25seSBiZSByZXNlcnZlZCBvbmNlLgoKDAoFBAICCQQSA3wCCgoMCgUEAgIJBRIDfAsRCgwKBQQCAgkBEgN8Eh8KDAoFBAICCQMSA3wiJAoLCgIEAxIFfwCGAQEKCgoDBAMBEgN/CB0KTwoEBAMCABIEgQECOhpBIFRoZSBwYXJzZXIgc3RvcmVzIG9wdGlvbnMgaXQgZG9lc24ndCByZWNvZ25pemUgaGVyZS4gU2VlIGFib3ZlLgoKDQoFBAMCAAQSBIEBAgoKDQoFBAMCAAYSBIEBCx4KDQoFBAMCAAESBIEBHzMKDQoFBAMCAAMSBIEBNjkKWgoDBAMFEgSFAQIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEAwUAEgSFAQ0YCg0KBQQDBQABEgSFAQ0RCg0KBQQDBQACEgSFARUYCjMKAgQEEgaJAQDuAQEaJSBEZXNjcmliZXMgYSBmaWVsZCB3aXRoaW4gYSBtZXNzYWdlLgoKCwoDBAQBEgSJAQgcCg4KBAQEBAASBooBAqkBAwoNCgUEBAQAARIEigEHCwpTCgYEBAQAAgASBI0BBBQaQyAwIGlzIHJlc2VydmVkIGZvciBlcnJvcnMuCiBPcmRlciBpcyB3ZWlyZCBmb3IgaGlzdG9yaWNhbCByZWFzb25zLgoKDwoHBAQEAAIAARIEjQEEDwoPCgcEBAQAAgACEgSNARITCg4KBgQEBAACARIEjgEEEwoPCgcEBAQAAgEBEgSOAQQOCg8KBwQEBAACAQISBI4BERIKdwoGBAQEAAICEgSRAQQTGmcgTm90IFppZ1phZyBlbmNvZGVkLiAgTmVnYXRpdmUgbnVtYmVycyB0YWtlIDEwIGJ5dGVzLiAgVXNlIFRZUEVfU0lOVDY0IGlmCiBuZWdhdGl2ZSB2YWx1ZXMgYXJlIGxpa2VseS4KCg8KBwQEBAACAgESBJEBBA4KDwoHBAQEAAICAhIEkQEREgoOCgYEBAQAAgMSBJIBBBQKDwoHBAQEAAIDARIEkgEEDwoPCgcEBAQAAgMCEgSSARITCncKBgQEBAACBBIElQEEExpnIE5vdCBaaWdaYWcgZW5jb2RlZC4gIE5lZ2F0aXZlIG51bWJlcnMgdGFrZSAxMCBieXRlcy4gIFVzZSBUWVBFX1NJTlQzMiBpZgogbmVnYXRpdmUgdmFsdWVzIGFyZSBsaWtlbHkuCgoPCgcEBAQAAgQBEgSVAQQOCg8KBwQEBAACBAISBJUBERIKDgoGBAQEAAIFEgSWAQQVCg8KBwQEBAACBQESBJYBBBAKDwoHBAQEAAIFAhIElgETFAoOCgYEBAQAAgYSBJcBBBUKDwoHBAQEAAIGARIElwEEEAoPCgcEBAQAAgYCEgSXARMUCg4KBgQEBAACBxIEmAEEEgoPCgcEBAQAAgcBEgSYAQQNCg8KBwQEBAACBwISBJgBEBEKDgoGBAQEAAIIEgSZAQQUCg8KBwQEBAACCAESBJkBBA8KDwoHBAQEAAIIAhIEmQESEwriAQoGBAQEAAIJEgSeAQQUGtEBIFRhZy1kZWxpbWl0ZWQgYWdncmVnYXRlLgogR3JvdXAgdHlwZSBpcyBkZXByZWNhdGVkIGFuZCBub3Qgc3VwcG9ydGVkIGluIHByb3RvMy4gSG93ZXZlciwgUHJvdG8zCiBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIHN0aWxsIGJlIGFibGUgdG8gcGFyc2UgdGhlIGdyb3VwIHdpcmUgZm9ybWF0IGFuZAogdHJlYXQgZ3JvdXAgZmllbGRzIGFzIHVua25vd24gZmllbGRzLgoKDwoHBAQEAAIJARIEngEEDgoPCgcEBAQAAgkCEgSeARETCi0KBgQEBAACChIEnwEEFiIdIExlbmd0aC1kZWxpbWl0ZWQgYWdncmVnYXRlLgoKDwoHBAQEAAIKARIEnwEEEAoPCgcEBAQAAgoCEgSfARMVCiMKBgQEBAACCxIEogEEFBoTIE5ldyBpbiB2ZXJzaW9uIDIuCgoPCgcEBAQAAgsBEgSiAQQOCg8KBwQEBAACCwISBKIBERMKDgoGBAQEAAIMEgSjAQQVCg8KBwQEBAACDAESBKMBBA8KDwoHBAQEAAIMAhIEowESFAoOCgYEBAQAAg0SBKQBBBMKDwoHBAQEAAINARIEpAEEDQoPCgcEBAQAAg0CEgSkARASCg4KBgQEBAACDhIEpQEEFwoPCgcEBAQAAg4BEgSlAQQRCg8KBwQEBAACDgISBKUBFBYKDgoGBAQEAAIPEgSmAQQXCg8KBwQEBAACDwESBKYBBBEKDwoHBAQEAAIPAhIEpgEUFgonCgYEBAQAAhASBKcBBBUiFyBVc2VzIFppZ1phZyBlbmNvZGluZy4KCg8KBwQEBAACEAESBKcBBA8KDwoHBAQEAAIQAhIEpwESFAonCgYEBAQAAhESBKgBBBUiFyBVc2VzIFppZ1phZyBlbmNvZGluZy4KCg8KBwQEBAACEQESBKgBBA8KDwoHBAQEAAIRAhIEqAESFAoOCgQEBAQBEgarAQKwAQMKDQoFBAQEAQESBKsBBwwKKgoGBAQEAQIAEgStAQQXGhogMCBpcyByZXNlcnZlZCBmb3IgZXJyb3JzCgoPCgcEBAQBAgABEgStAQQSCg8KBwQEBAECAAISBK0BFRYKDgoGBAQEAQIBEgSuAQQXCg8KBwQEBAECAQESBK4BBBIKDwoHBAQEAQIBAhIErgEVFgoOCgYEBAQBAgISBK8BBBcKDwoHBAQEAQICARIErwEEEgoPCgcEBAQBAgICEgSvARUWCgwKBAQEAgASBLIBAhsKDQoFBAQCAAQSBLIBAgoKDQoFBAQCAAUSBLIBCxEKDQoFBAQCAAESBLIBEhYKDQoFBAQCAAMSBLIBGRoKDAoEBAQCARIEswECHAoNCgUEBAIBBBIEswECCgoNCgUEBAIBBRIEswELEAoNCgUEBAIBARIEswERFwoNCgUEBAIBAxIEswEaGwoMCgQEBAICEgS0AQIbCg0KBQQEAgIEEgS0AQIKCg0KBQQEAgIGEgS0AQsQCg0KBQQEAgIBEgS0AREWCg0KBQQEAgIDEgS0ARkaCpwBCgQEBAIDEgS4AQIZGo0BIElmIHR5cGVfbmFtZSBpcyBzZXQsIHRoaXMgbmVlZCBub3QgYmUgc2V0LiAgSWYgYm90aCB0aGlzIGFuZCB0eXBlX25hbWUKIGFyZSBzZXQsIHRoaXMgbXVzdCBiZSBvbmUgb2YgVFlQRV9FTlVNLCBUWVBFX01FU1NBR0Ugb3IgVFlQRV9HUk9VUC4KCg0KBQQEAgMEEgS4AQIKCg0KBQQEAgMGEgS4AQsPCg0KBQQEAgMBEgS4ARAUCg0KBQQEAgMDEgS4ARcYCrcCCgQEBAIEEgS/AQIgGqgCIEZvciBtZXNzYWdlIGFuZCBlbnVtIHR5cGVzLCB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSB0eXBlLiAgSWYgdGhlIG5hbWUKIHN0YXJ0cyB3aXRoIGEgJy4nLCBpdCBpcyBmdWxseS1xdWFsaWZpZWQuICBPdGhlcndpc2UsIEMrKy1saWtlIHNjb3BpbmcKIHJ1bGVzIGFyZSB1c2VkIHRvIGZpbmQgdGhlIHR5cGUgKGkuZS4gZmlyc3QgdGhlIG5lc3RlZCB0eXBlcyB3aXRoaW4gdGhpcwogbWVzc2FnZSBhcmUgc2VhcmNoZWQsIHRoZW4gd2l0aGluIHRoZSBwYXJlbnQsIG9uIHVwIHRvIHRoZSByb290CiBuYW1lc3BhY2UpLgoKDQoFBAQCBAQSBL8BAgoKDQoFBAQCBAUSBL8BCxEKDQoFBAQCBAESBL8BEhsKDQoFBAQCBAMSBL8BHh8KfgoEBAQCBRIEwwECHxpwIEZvciBleHRlbnNpb25zLCB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSB0eXBlIGJlaW5nIGV4dGVuZGVkLiAgSXQgaXMKIHJlc29sdmVkIGluIHRoZSBzYW1lIG1hbm5lciBhcyB0eXBlX25hbWUuCgoNCgUEBAIFBBIEwwECCgoNCgUEBAIFBRIEwwELEQoNCgUEBAIFARIEwwESGgoNCgUEBAIFAxIEwwEdHgqxAgoEBAQCBhIEygECJBqiAiBGb3IgbnVtZXJpYyB0eXBlcywgY29udGFpbnMgdGhlIG9yaWdpbmFsIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlLgogRm9yIGJvb2xlYW5zLCAidHJ1ZSIgb3IgImZhbHNlIi4KIEZvciBzdHJpbmdzLCBjb250YWlucyB0aGUgZGVmYXVsdCB0ZXh0IGNvbnRlbnRzIChub3QgZXNjYXBlZCBpbiBhbnkgd2F5KS4KIEZvciBieXRlcywgY29udGFpbnMgdGhlIEMgZXNjYXBlZCB2YWx1ZS4gIEFsbCBieXRlcyA+PSAxMjggYXJlIGVzY2FwZWQuCiBUT0RPKGtlbnRvbik6ICBCYXNlLTY0IGVuY29kZT8KCg0KBQQEAgYEEgTKAQIKCg0KBQQEAgYFEgTKAQsRCg0KBQQEAgYBEgTKARIfCg0KBQQEAgYDEgTKASIjCoQBCgQEBAIHEgTOAQIhGnYgSWYgc2V0LCBnaXZlcyB0aGUgaW5kZXggb2YgYSBvbmVvZiBpbiB0aGUgY29udGFpbmluZyB0eXBlJ3Mgb25lb2ZfZGVjbAogbGlzdC4gIFRoaXMgZmllbGQgaXMgYSBtZW1iZXIgb2YgdGhhdCBvbmVvZi4KCg0KBQQEAgcEEgTOAQIKCg0KBQQEAgcFEgTOAQsQCg0KBQQEAgcBEgTOAREcCg0KBQQEAgcDEgTOAR8gCvoBCgQEBAIIEgTUAQIhGusBIEpTT04gbmFtZSBvZiB0aGlzIGZpZWxkLiBUaGUgdmFsdWUgaXMgc2V0IGJ5IHByb3RvY29sIGNvbXBpbGVyLiBJZiB0aGUKIHVzZXIgaGFzIHNldCBhICJqc29uX25hbWUiIG9wdGlvbiBvbiB0aGlzIGZpZWxkLCB0aGF0IG9wdGlvbidzIHZhbHVlCiB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgaXQncyBkZWR1Y2VkIGZyb20gdGhlIGZpZWxkJ3MgbmFtZSBieSBjb252ZXJ0aW5nCiBpdCB0byBjYW1lbENhc2UuCgoNCgUEBAIIBBIE1AECCgoNCgUEBAIIBRIE1AELEQoNCgUEBAIIARIE1AESGwoNCgUEBAIIAxIE1AEeIAoMCgQEBAIJEgTWAQIkCg0KBQQEAgkEEgTWAQIKCg0KBQQEAgkGEgTWAQsXCg0KBQQEAgkBEgTWARgfCg0KBQQEAgkDEgTWASIjCrMJCgQEBAIKEgTtAQIlGqQJIElmIHRydWUsIHRoaXMgaXMgYSBwcm90bzMgIm9wdGlvbmFsIi4gV2hlbiBhIHByb3RvMyBmaWVsZCBpcyBvcHRpb25hbCwgaXQKIHRyYWNrcyBwcmVzZW5jZSByZWdhcmRsZXNzIG9mIGZpZWxkIHR5cGUuCgogV2hlbiBwcm90bzNfb3B0aW9uYWwgaXMgdHJ1ZSwgdGhpcyBmaWVsZCBtdXN0IGJlIGJlbG9uZyB0byBhIG9uZW9mIHRvCiBzaWduYWwgdG8gb2xkIHByb3RvMyBjbGllbnRzIHRoYXQgcHJlc2VuY2UgaXMgdHJhY2tlZCBmb3IgdGhpcyBmaWVsZC4gVGhpcwogb25lb2YgaXMga25vd24gYXMgYSAic3ludGhldGljIiBvbmVvZiwgYW5kIHRoaXMgZmllbGQgbXVzdCBiZSBpdHMgc29sZQogbWVtYmVyIChlYWNoIHByb3RvMyBvcHRpb25hbCBmaWVsZCBnZXRzIGl0cyBvd24gc3ludGhldGljIG9uZW9mKS4gU3ludGhldGljCiBvbmVvZnMgZXhpc3QgaW4gdGhlIGRlc2NyaXB0b3Igb25seSwgYW5kIGRvIG5vdCBnZW5lcmF0ZSBhbnkgQVBJLiBTeW50aGV0aWMKIG9uZW9mcyBtdXN0IGJlIG9yZGVyZWQgYWZ0ZXIgYWxsICJyZWFsIiBvbmVvZnMuCgogRm9yIG1lc3NhZ2UgZmllbGRzLCBwcm90bzNfb3B0aW9uYWwgZG9lc24ndCBjcmVhdGUgYW55IHNlbWFudGljIGNoYW5nZSwKIHNpbmNlIG5vbi1yZXBlYXRlZCBtZXNzYWdlIGZpZWxkcyBhbHdheXMgdHJhY2sgcHJlc2VuY2UuIEhvd2V2ZXIgaXQgc3RpbGwKIGluZGljYXRlcyB0aGUgc2VtYW50aWMgZGV0YWlsIG9mIHdoZXRoZXIgdGhlIHVzZXIgd3JvdGUgIm9wdGlvbmFsIiBvciBub3QuCiBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHJvdW5kLXRyaXBwaW5nIHRoZSAucHJvdG8gZmlsZS4gRm9yIGNvbnNpc3RlbmN5IHdlCiBnaXZlIG1lc3NhZ2UgZmllbGRzIGEgc3ludGhldGljIG9uZW9mIGFsc28sIGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCByZXF1aXJlZAogdG8gdHJhY2sgcHJlc2VuY2UuIFRoaXMgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYmVjYXVzZSB0aGUgcGFyc2VyIGNhbid0CiB0ZWxsIGlmIGEgZmllbGQgaXMgYSBtZXNzYWdlIG9yIGFuIGVudW0sIHNvIGl0IG11c3QgYWx3YXlzIGNyZWF0ZSBhCiBzeW50aGV0aWMgb25lb2YuCgogUHJvdG8yIG9wdGlvbmFsIGZpZWxkcyBkbyBub3Qgc2V0IHRoaXMgZmxhZywgYmVjYXVzZSB0aGV5IGFscmVhZHkgaW5kaWNhdGUKIG9wdGlvbmFsIHdpdGggYExBQkVMX09QVElPTkFMYC4KCg0KBQQEAgoEEgTtAQIK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bXMgbXVsdGlwbGUgc2VydmVyIG1lc3NhZ2VzCgoNCgUECQIFBBIEsQICCgoNCgUECQIFBRIEsQILDwoNCgUECQIFARIEsQIQIAoNCgUECQIFAxIEsQIjJAoNCgUECQIFCBIEsQIlNgoNCgUECQIFBxIEsQIwNQqvDgoCBAoSBtUCANADATJOID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIE9wdGlvbnMKMtANIEVhY2ggb2YgdGhlIGRlZmluaXRpb25zIGFib3ZlIG1heSBoYXZlICJvcHRpb25zIiBhdHRhY2hlZC4gIFRoZXNlIGFyZQoganVzdCBhbm5vdGF0aW9ucyB3aGljaCBtYXkgY2F1c2UgY29kZSB0byBiZSBnZW5lcmF0ZWQgc2xpZ2h0bHkgZGlmZmVyZW50bHkKIG9yIG1heSBjb250YWluIGhpbnRzIGZvciBjb2RlIHRoYXQgbWFuaXB1bGF0ZXMgcHJvdG9jb2wgbWVzc2FnZXMuCgogQ2xpZW50cyBtYXkgZGVmaW5lIGN1c3RvbSBvcHRpb25zIGFzIGV4dGVuc2lvbnMgb2YgdGhlICpPcHRpb25zIG1lc3NhZ2VzLgogVGhlc2UgZXh0ZW5zaW9ucyBtYXkgbm90IHlldCBiZSBrbm93biBhdCBwYXJzaW5nIHRpbWUsIHNvIHRoZSBwYXJzZXIgY2Fubm90CiBzdG9yZSB0aGUgdmFsdWVzIGluIHRoZW0uICBJbnN0ZWFkIGl0IHN0b3JlcyB0aGVtIGluIGEgZmllbGQgaW4gdGhlICpPcHRpb25zCiBtZXNzYWdlIGNhbGxlZCB1bmludGVycHJldGVkX29wdGlvbi4gVGhpcyBmaWVsZCBtdXN0IGhhdmUgdGhlIHNhbWUgbmFtZQogYWNyb3NzIGFsbCAqT3B0aW9ucyBtZXNzYWdlcy4gV2UgdGhlbiB1c2UgdGhpcyBmaWVsZCB0byBwb3B1bGF0ZSB0aGUKIGV4dGVuc2lvbnMgd2hlbiB3ZSBidWlsZCBhIGRlc2NyaXB0b3IsIGF0IHdoaWNoIHBvaW50IGFsbCBwcm90b3MgaGF2ZSBiZWVuCiBwYXJzZWQgYW5kIHNvIGFsbCBleHRlbnNpb25zIGFyZSBrbm93bi4KCiBFeHRlbnNpb24gbnVtYmVycyBmb3IgY3VzdG9tIG9wdGlvbnMgbWF5IGJlIGNob3NlbiBhcyBmb2xsb3dzOgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIG9ubHkgYmUgdXNlZCB3aXRoaW4gYSBzaW5nbGUgYXBwbGljYXRpb24gb3IKICAgb3JnYW5pemF0aW9uLCBvciBmb3IgZXhwZXJpbWVudGFsIG9wdGlvbnMsIHVzZSBmaWVsZCBudW1iZXJzIDUwMDAwCiAgIHRocm91Z2ggOTk5OTkuICBJdCBpcyB1cCB0byB5b3UgdG8gZW5zdXJlIHRoYXQgeW91IGRvIG5vdCB1c2UgdGhlCiAgIHNhbWUgbnVtYmVyIGZvciBtdWx0aXBsZSBvcHRpb25zLgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIGJlIHB1Ymxpc2hlZCBhbmQgdXNlZCBwdWJsaWNseSBieSBtdWx0aXBsZQogICBpbmRlcGVuZGVudCBlbnRpdGllcywgZS1tYWlsIHByb3RvYnVmLWdsb2JhbC1leHRlbnNpb24tcmVnaXN0cnlAZ29vZ2xlLmNvbQogICB0byByZXNlcnZlIGV4dGVuc2lvbiBudW1iZXJzLiBTaW1wbHkgcHJvdmlkZSB5b3VyIHByb2plY3QgbmFtZSAoZS5nLgogICBPYmplY3RpdmUtQyBwbHVnaW4pIGFuZCB5b3VyIHByb2plY3Qgd2Vic2l0ZSAoaWYgYXZhaWxhYmxlKSAtLSB0aGVyZSdzIG5vCiAgIG5lZWQgdG8gZXhwbGFpbiBob3cgeW91IGludGVuZCB0byB1c2UgdGhlbS4gVXN1YWxseSB5b3Ugb25seSBuZWVkIG9uZQogICBleHRlbnNpb24gbnVtYmVyLiBZb3UgY2FuIGRlY2xhcmUgbXVsdGlwbGUgb3B0aW9ucyB3aXRoIG9ubHkgb25lIGV4dGVuc2lvbgogICBudW1iZXIgYnkgcHV0dGluZyB0aGVtIGluIGEgc3ViLW1lc3NhZ2UuIFNlZSB0aGUgQ3VzdG9tIE9wdGlvbnMgc2VjdGlvbiBvZgogICB0aGUgZG9jcyBmb3IgZXhhbXBsZXM6CiAgIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90byNvcHRpb25zCiAgIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIHBvcHVsYXIsIGEgd2ViIHNlcnZpY2Ugd2lsbCBiZSBzZXQgdXAKICAgdG8gYXV0b21hdGljYWxseSBhc3NpZ24gb3B0aW9uIG51bWJlcnMuCgoLCgMECgESBNUCCBMK9AEKBAQKAgASBNsCAiMa5QEgU2V0cyB0aGUgSmF2YSBwYWNrYWdlIHdoZXJlIGNsYXNzZXMgZ2VuZXJhdGVkIGZyb20gdGhpcyAucHJvdG8gd2lsbCBiZQogcGxhY2VkLiAgQnkgZGVmYXVsdCwgdGhlIHByb3RvIHBhY2thZ2UgaXMgdXNlZCwgYnV0IHRoaXMgaXMgb2Z0ZW4KIGluYXBwcm9wcmlhdGUgYmVjYXVzZSBwcm90byBwYWNrYWdlcyBkbyBub3Qgbm9ybWFsbHkgc3RhcnQgd2l0aCBiYWNrd2FyZHMKIGRvbWFpbiBuYW1lcy4KCg0KBQQKAgAEEgTbAgIKCg0KBQQKAgAFEgTbAgsRCg0KBQQKAgABEgTbAhIeCg0KBQQKAgADEgTbAiEiCvECCgQECgIBEgTjAgIrGuICIENvbnRyb2xzIHRoZSBuYW1lIG9mIHRoZSB3cmFwcGVyIEphdmEgY2xhc3MgZ2VuZXJhdGVkIGZvciB0aGUgLnByb3RvIGZpbGUuCiBUaGF0IGNsYXNzIHdpbGwgYWx3YXlzIGNvbnRhaW4gdGhlIC5wcm90byBmaWxlJ3MgZ2V0RGVzY3JpcHRvcigpIG1ldGhvZCBhcwogd2VsbCBhcyBhbnkgdG9wLWxldmVsIGV4dGVuc2lvbnMgZGVmaW5lZCBpbiB0aGUgLnByb3RvIGZpbGUuCiBJZiBqYXZhX211bHRpcGxlX2ZpbGVzIGlzIGRpc2FibGVkLCB0aGVuIGFsbCB0aGUgb3RoZXIgY2xhc3NlcyBmcm9tIHRoZQogLnByb3RvIGZpbGUgd2lsbCBiZSBuZXN0ZWQgaW5zaWRlIHRoZSBzaW5nbGUgd3JhcHBlciBvdXRlciBjbGFzcy4KCg0KBQQKAgEEEgTjAgIKCg0KBQQKAgEFEgTjAgsRCg0KBQQKAgEBEgTjAhImCg0K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bmFtZSBvZiB0aGUgcGFja2FnZSBpbXBvcnQgcGF0aCwgaWYgcHJvdmlkZWQuCiAgIC0gT3RoZXJ3aXNlLCB0aGUgcGFja2FnZSBzdGF0ZW1lbnQgaW4gdGhlIC5wcm90byBmaWxlLCBpZiBwcmVzZW50LgogICAtIE90aGVyd2lzZSwgdGhlIGJhc2VuYW1lIG9mIHRoZSAucHJvdG8gZmlsZSwgd2l0aG91dCBleHRlbnNpb24uCgoNCgUECgIGBBIEhwMCCgoNCgUECgIGBRIEhwMLEQoNCgUECgIGARIEhwMSHAoNCgUECgIGAxIEhwMfIQrUBAoEBAoCBxIElgMCOxrFBCBTaG91bGQgZ2VuZXJpYyBzZXJ2aWNlcyBiZSBnZW5lcmF0ZWQgaW4gZWFjaCBsYW5ndWFnZT8gICJHZW5lcmljIiBzZXJ2aWNlcwogYXJlIG5vdCBzcGVjaWZpYyB0byBhbnkgcGFydGljdWxhciBSUEMgc3lzdGVtLiAgVGhleSBhcmUgZ2VuZXJhdGVkIGJ5IHRoZQogbWFpbiBjb2RlIGdlbmVyYXRvcnMgaW4gZWFjaCBsYW5ndWFnZSAod2l0aG91dCBhZGRpdGlvbmFsIHBsdWdpbnMpLgogR2VuZXJpYyBzZXJ2aWNlcyB3ZXJlIHRoZSBvbmx5IGtpbmQgb2Ygc2VydmljZSBnZW5lcmF0aW9uIHN1cHBvcnRlZCBieQogZWFybHkgdmVyc2lvbnMgb2YgZ29vZ2xlLnByb3RvYnVmLgoKIEdlbmVyaWMgc2VydmljZXMgYXJlIG5vdyBjb25zaWRlcmVkIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgdXNpbmcgcGx1Z2lucwogdGhhdCBnZW5lcmF0ZSBjb2RlIHNwZWNpZmljIHRvIHlvdXIgcGFydGljdWxhciBSUEMgc3lzdGVtLiAgVGhlcmVmb3JlLAogdGhlc2UgZGVmYXVsdCB0byBmYWxzZS4gIE9sZCBjb2RlIHdoaWNoIGRlcGVuZHMgb24gZ2VuZXJpYyBzZXJ2aWNlcyBzaG91bGQKIGV4cGxpY2l0bHkgc2V0IHRoZW0gdG8gdHJ1ZS4KCg0KBQQKAgcEEgSWAwIKCg0KBQQKAgcFEgSWAwsPCg0KBQQKAgcBEgSWAxAjCg0KBQQKAgcDEgSW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DQoFBAoCFAESBMkDHzMKDQoFBAoCFAMSBMkDNjkKhwEKAwQKBRIEzQMCGRp6IENsaWVudHMgY2FuIGRlZmluZSBjdXN0b20gb3B0aW9ucyBpbiBleHRlbnNpb25zIG9mIHRoaXMgbWVzc2FnZS4KIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlICJPcHRpb25zIiBzZWN0aW9uIGFib3ZlLgoKDAoEBAoFABIEzQMNGAoNCgUECgUAARIEzQMNEQoNCgUECgUAAhIEzQMVGAoLCgMECgkSBM8DAg4KDAoEBAoJABIEzwMLDQoNCgUECgkAARIEzwMLDQoNCgUECgkAAhIEzwMLDQoMCgIECxIG0gMAlAQBCgsKAwQLARIE0gMIFgrYBQoEBAsCABIE5QMCPhrJBSBTZXQgdHJ1ZSB0byB1c2UgdGhlIG9sZCBwcm90bzEgTWVzc2FnZVNldCB3aXJlIGZvcm1hdCBmb3IgZXh0ZW5zaW9ucy4KIFRoaXMgaXMgcHJvdmlkZWQgZm9yIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IHdpdGggdGhlIE1lc3NhZ2VTZXQgd2lyZQogZm9ybWF0LiAgWW91IHNob3VsZCBub3QgdXNlIHRoaXMgZm9yIGFueSBvdGhlciByZWFzb246ICBJdCdzIGxlc3MKIGVmZmljaWVudCwgaGFzIGZld2VyIGZlYXR1cmVzLCBhbmQgaXMgbW9yZSBjb21wbGljYXRlZC4KCiBUaGUgbWVzc2FnZSBtdXN0IGJlIGRlZmluZWQgZXhhY3RseSBhcyBmb2xsb3dzOgogICBtZXNzYWdlIEZvbyB7CiAgICAgb3B0aW9uIG1lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0ID0gdHJ1ZTsKICAgICBleHRlbnNpb25zIDQgdG8gbWF4OwogICB9CiBOb3RlIHRoYXQgdGhlIG1lc3NhZ2UgY2Fubm90IGhhdmUgYW55IGRlZmluZWQgZmllbGRzOyBNZXNzYWdlU2V0cyBvbmx5CiBoYXZlIGV4dGVuc2lvbnMuCgogQWxsIGV4dGVuc2lvbnMgb2YgeW91ciB0eXBlIG11c3QgYmUgc2luZ3VsYXIgbWVzc2FnZXM7IGUuZy4gdGhleSBjYW5ub3QKIGJlIGludDMycywgZW51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aWFsbHkgcGFyc2VkLCB0aGUKIGlubmVyIG1lc3NhZ2UncyBjb250ZW50cyB3aWxsIG5vdCBiZSBwYXJzZWQgYnV0IGluc3RlYWQgc3RvcmVkIGluIGVuY29kZWQKIGZvcm0uICBUaGUgaW5uZXIgbWVzc2FnZSB3aWxsIGFjdHVhbGx5IGJlIHBhcnNlZCB3aGVuIGl0IGlzIGZpcnN0IGFjY2Vzc2VkLgoKIFRoaXMgaXMgb25seSBhIGhpbnQuICBJbXBsZW1lbnRhdGlvbnMgYXJlIGZyZWUgdG8gY2hvb3NlIHdoZXRoZXIgdG8gdXNlCiBlYWdlciBvciBsYXp5IHBhcnNpbmcgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgdGhpcyBvcHRpb24uICBIb3dldmVyLAogc2V0dGluZyB0aGlzIG9wdGlvbiB0cnVlIHN1Z2dlc3RzIHRoYXQgdGhlIHByb3RvY29sIGF1dGhvciBiZWxpZXZlcyB0aGF0CiB1c2luZyBsYXp5IHBhcnNpbmcgb24gdGhpcyBmaWVsZCBpcyB3b3J0aCB0aGUgYWRkaXRpb25hbCBib29ra2VlcGluZwogb3ZlcmhlYWQgdHlwaWNhbGx5IG5lZWRlZCB0byBpbXBsZW1lbnQgaXQuCgogVGhpcyBvcHRpb24gZG9lcyBub3QgYWZmZWN0IHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIGFueSBnZW5lcmF0ZWQgY29kZTsKIGFsbCBtZXRob2Qgc2lnbmF0dXJlcyByZW1haW4gdGhlIHNhbWUuICBGdXJ0aGVybW9yZSwgdGhyZWFkLXNhZmV0eSBvZiB0aGUKIGludGVyZmFjZSBpcyBub3QgYWZmZWN0ZWQgYnkgdGhpcyBvcHRpb247IGNvbnN0IG1ldGhvZHMgcmVtYWluIHNhZmUgdG8KIGNhbGwgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIGNvbmN1cnJlbnRseSwgd2hpbGUgbm9uLWNvbnN0IG1ldGhvZHMgY29udGludWUKIHRvIHJlcXVpcmUgZXhjbHVzaXZlIGFjY2Vzcy4KCgogTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBtYXkgY2hvb3NlIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMgd2l0aGluCiBhIGxhenkgc3ViLW1lc3NhZ2UuICBUaGF0IGlzLCBjYWxsaW5nIElzSW5pdGlhbGl6ZWQoKSBvbiB0aGUgb3V0ZXIgbWVzc2FnZQogbWF5IHJldHVybiB0cnVlIGV2ZW4gaWYgdGhlIGlubmVyIG1lc3NhZ2UgaGFzIG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzLgogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBvdGhlcndpc2UgdGhlIGlubmVyIG1lc3NhZ2Ugd291bGQgaGF2ZSB0byBiZQogcGFyc2VkIGluIG9yZGVyIHRvIHBlcmZvcm0gdGhlIGNoZWNrLCBkZWZlYXRpbmcgdGhlIHB1cnBvc2Ugb2YgbGF6eQogcGFyc2luZy4gIEFuIGltcGxlbWVudGF0aW9uIHdoaWNoIGNob29zZXMgbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcwogbXVzdCBiZSBjb25zaXN0ZW50IGFib3V0IGl0LiAgVGhhdCBpcywgZm9yIGFueSBwYXJ0aWN1bGFyIHN1Yi1tZXNzYWdlLCB0aGUKIGltcGxlbWVudGF0aW9uIG11c3QgZWl0aGVyICphbHdheXMqIGNoZWNrIGl0cyByZXF1aXJlZCBmaWVsZHMsIG9yICpuZXZlcioKIGNoZWNrIGl0cyByZXF1aXJlZCBmaWVsZHMsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgdGhlIG1lc3NhZ2UgaGFzCiBiZWVuIHBhcnNlZC4KCg0KBQQMAgMEEgTeBAIKCg0KBQQMAgMFEgTeBAsPCg0KBQQMAgMBEgTeBBAUCg0KBQQMAgMDEgTeBBcYCg0KBQQMAgMIEgTeBBkqCg0KBQQMAgMHEgTeBCQpCugBCgQEDAIEEgTkBAIxGtkBIElzIHRoaXMgZmllbGQgZGVwcmVjYXRlZD8KIERlcGVuZGluZyBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLCB0aGlzIGNhbiBlbWl0IERlcHJlY2F0ZWQgYW5ub3RhdGlvbnMKIGZvciBhY2Nlc3NvcnMsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwgdGhpcwogaXMgYSBmb3JtYWxp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IHN0b3JlcyBvcHRpb25zIGl0IGRvZXNuJ3QgcmVjb2duaXplIGhlcmUuIFNlZSBhYm92ZS4KCg0KBQQRAgIEEgTLBQIKCg0KBQQRAgIGEgTLBQseCg0KBQQRAgIBEgTLBR8zCg0KBQQRAgIDEgTLBTY5CloKAwQRBRIEzgUCGRpNIENsaWVudHMgY2FuIGRlZmluZSBjdXN0b20gb3B0aW9ucyBpbiBleHRlbnNpb25zIG9mIHRoaXMgbWVzc2FnZS4gU2VlIGFib3ZlLgoKDAoEBBEFABIEzgUNGAoNCgUEEQUAARIEzgUNEQoNCgUEEQUAAhIEzgUVGAqLAwoCBBISBtgFAOwFARr8AiBBIG1lc3NhZ2UgcmVwcmVzZW50aW5nIGEgb3B0aW9uIHRoZSBwYXJzZXIgZG9lcyBub3QgcmVjb2duaXplLiBUaGlzIG9ubHkKIGFwcGVhcnMgaW4gb3B0aW9ucyBwcm90b3MgY3JlYXRlZCBieSB0aGUgY29tcGlsZXI6OlBhcnNlciBjbGFzcy4KIERlc2NyaXB0b3JQb29sIHJlc29sdmVzIHRoZXNlIHdoZW4gYnVpbGRpbmcgRGVzY3JpcHRvciBvYmplY3RzLiBUaGVyZWZvcmUsCiBvcHRpb25zIHByb3RvcyBpbiBkZXNjcmlwdG9yIG9iamVjdHMgKGUuZy4gcmV0dXJuZWQgYnkgRGVzY3JpcHRvcjo6b3B0aW9ucygpLAogb3IgcHJvZHVjZWQgYnkgRGVzY3JpcHRvcjo6Q29weVRvKCkpIHdpbGwgbmV2ZXIgaGF2ZSBVbmludGVycHJldGVkT3B0aW9ucwogaW4gdGhlbS4KCgsKAwQSARIE2AUIGwrLAgoEBBIDABIG3gUC4QUDGroCIFRoZSBuYW1lIG9mIHRoZSB1bmludGVycHJldGVkIG9wdGlvbi4gIEVhY2ggc3RyaW5nIHJlcHJlc2VudHMgYSBzZWdtZW50IGluCiBhIGRvdC1zZXBhcmF0ZWQgbmFtZS4gIGlzX2V4dGVuc2lvbiBpcyB0cnVlIGlmZiBhIHNlZ21lbnQgcmVwcmVzZW50cyBhbgogZXh0ZW5zaW9uIChkZW5vdGVkIHdpdGggcGFyZW50aGVzZXMgaW4gb3B0aW9ucyBzcGVjcyBpbiAucHJvdG8gZmlsZXMp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IGxhYmVsIChvcHRpb25hbCkuCiAgIFtjLGQpICBbIDQsIDAsIDIsIDAsIDUgXSAgVGhlIHR5cGUgKHN0cmluZykuCiAgIFtlLGYpICBbIDQsIDAsIDIsIDAsIDEgXSAgVGhlIG5hbWUgKGZvbykuCiAgIFtnLGgpICBbIDQsIDAsIDIsIDAsIDMgXSAgVGhlIG51bWJlciAoMSkuCgogTm90ZXM6CiAtIEEgbG9jYXRpb24gbWF5IHJlZmVyIHRvIGEgcmVwZWF0ZWQgZmllbGQgaXRzZWxmIChpLmUuIG5vdCB0byBhbnkKICAgcGFydGljdWxhciBpbmRleCB3aXRoaW4gaXQpLiAgVGhpcyBpcyB1c2VkIHdoZW5ldmVyIGEgc2V0IG9mIGVsZW1lbnRzIGFyZQogICBsb2dpY2FsbHkgZW5jbG9zZWQgaW4gYSBzaW5nbGUgY29kZSBzZWdtZW50LiAgRm9yIGV4YW1wbGUsIGFuIGVudGlyZQogICBleHRlbmQgYmxvY2sgKHBvc3NpYmx5IGNvbnRhaW5pbmcgbXVsdGlwbGUgZXh0ZW5zaW9uIGRlZmluaXRpb25zKSB3aWxsCiAgIGhhdmUgYW4gb3V0ZXIgbG9jYXRpb24gd2hvc2UgcGF0aCByZWZlcnMgdG8gdGhlICJleHRlbnNpb25zIiByZXBlYXRlZAogICBmaWVsZCB3aXRob3V0IGFuIGluZGV4LgogLSBNdWx0aXBsZSBsb2NhdGlvbnMgbWF5IGhhdmUgdGhlIHNhbWUgcGF0aC4gIFRoaXMgaGFwcGVucyB3aGVuIGEgc2luZ2xlCiAgIGxvZ2ljYWwgZGVjbGFyYXRpb24gaXMgc3ByZWFkIG91dCBhY3Jvc3MgbXVsdGlwbGUgcGxhY2VzLiAgVGhlIG1vc3QKICAgb2J2aW91cyBleGFtcGxlIGlzIHRoZSAiZXh0ZW5kIiBibG9jayBhZ2FpbiAtLSB0aGVyZSBtYXkgYmUgbXVsdGlwbGUKICAgZXh0ZW5kIGJsb2NrcyBpbiB0aGUgc2FtZSBzY29wZSwgZWFjaCBvZiB3aGljaCB3aWxsIGhhdmUgdGhlIHNhbWUgcGF0aC4KIC0gQSBsb2NhdGlvbidzIHNwYW4gaXMgbm90IGFsd2F5cyBhIHN1YnNldCBvZiBpdHMgcGFyZW50J3Mgc3Bhbi4gIEZvcgogICBleGFtcGxlLCB0aGUgImV4dGVuZGVlIiBvZiBhbiBleHRlbnNpb24gZGVjbGFyYXRpb24gYXBwZWFycyBhdCB0aGUKICAgYmVnaW5uaW5nIG9mIHRoZSAiZXh0ZW5kIiBibG9jayBhbmQgaXMgc2hhcmVkIGJ5IGFsbCBleHRlbnNpb25zIHdpdGhpbgogICB0aGUgYmxvY2suCiAtIEp1c3QgYmVjYXVzZSBhIGxvY2F0aW9uJ3Mgc3BhbiBpcyBhIHN1YnNldCBvZiBzb21lIG90aGVyIGxvY2F0aW9uJ3Mgc3BhbgogICBkb2VzIG5vdCBtZWFuIHRoYXQgaXQgaXMgYSBkZXNjZW5kYW50LiAgRm9yIGV4YW1wbGUsIGEgImdyb3VwIiBkZWZpbmVzCiAgIGJvdGggYSB0eXBlIGFuZCBhIGZpZWxkIGluIGEgc2luZ2xlIGRlY2xhcmF0aW9uLiAgVGh1cywgdGhlIGxvY2F0aW9ucwogICBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlIGFuZCBmaWVsZCBhbmQgdGhlaXIgY29tcG9uZW50cyB3aWxsIG92ZXJsYXAuCiAtIENvZGUgd2hpY2ggdHJpZXMgdG8gaW50ZXJwcmV0IGxvY2F0aW9ucyBzaG91bGQgcHJvYmFibHkgYmUgZGVzaWduZWQgdG8KICAgaWdub3JlIHRob3NlIHRoYXQgaXQgZG9lc24ndCB1bmRlcnN0YW5kLCBhcyBtb3JlIHR5cGVzIG9mIGxvY2F0aW9ucyBjb3VsZAogICBiZSByZWNvcmRlZCBpbiB0aGUgZnV0dXJlLgoKDQoFBBMCAAQSBJ8GAgoKDQoFBBMCAAYSBJ8GCxMKDQoFBBMCAAESBJ8GFBwKDQoFBBMCAAMSBJ8GHyAKDgoEBBMDABIGoAYC8wYDCg0KBQQTAwABEgSgBgoSCooHCgYEEwMAAgASBLgGBCwa+QYgSWRlbnRpZmllcyB3aGljaCBwYXJ0IG9mIHRoZSBGaWxlRGVzY3JpcHRvclByb3RvIHdhcyBkZWZpbmVkIGF0IHRoaXMKIGxvY2F0aW9uLgoKIEVhY2ggZWxlbWVudCBpcyBhIGZpZWxkIG51bWJlciBvciBhbiBpbmRleC4gIFRoZXkgZm9ybSBhIHBhdGggZnJvbQogdGhlIHJvb3QgRmlsZURlc2NyaXB0b3JQcm90byB0byB0aGUgcGxhY2Ugd2hlcmUgdGhlIGRlZmluaXRpb24gb2NjdXJzLiAgRm9yCiBleGFtcGxlLCB0aGlzIHBhdGg6CiAgIFsgNCwgMywgMiwgNywgMSBdCiByZWZlcnMgdG86CiAgIGZpbGUubWVzc2FnZV90eXBlKDMpICAvLyA0LCAzCiAgICAgICAuZmllbGQoNykgICAgICAgICAvLyAyLCA3CiAgICAgICAubmFtZSgpICAgICAgICAgICAvLyAxCiBUaGlzIGlzIGJlY2F1c2UgRmlsZURlc2NyaXB0b3JQcm90by5tZXNzYWdlX3R5cGUgaGFzIGZpZWxkIG51bWJlciA0OgogICByZXBlYXRlZCBEZXNjcmlwdG9yUHJvdG8gbWVzc2FnZV90eXBlID0gNDsKIGFuZCBEZXNjcmlwdG9yUHJvdG8uZmllbGQgaGFzIGZpZWxkIG51bWJlciAyOgogICByZXBlYXRlZCBGaWVsZERlc2NyaXB0b3JQcm90byBmaWVsZCA9IDI7CiBhbmQgRmllbGREZXNjcmlwdG9yUHJvdG8ubmFtZSBoYXMgZmllbGQgbnVtYmVyIDE6CiAgIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMTsKCiBUaHVzLCB0aGUgYWJvdmUgcGF0aCBnaXZlcyB0aGUgbG9jYXRpb24gb2YgYSBmaWVsZCBuYW1lLiAgSWYgd2UgcmVtb3ZlZAogdGhlIGxhc3QgZWxlbWVudDoKICAgWyA0LCAzLCAyLCA3IF0KIHRoaXMgcGF0aCByZWZlcnMgdG8gdGhlIHdob2xlIGZpZWxkIGRlY2xhcmF0aW9uIChmcm9tIHRoZSBiZWdpbm5pbmcKIG9mIHRoZSBsYWJlbCB0byB0aGUgdGVybWluYXRpbmcgc2VtaWNvbG9uKS4KCg8KBwQTAwACAAQSBLgGBAwKDwoHBBMDAAIABRIEuAYNEgoPCgcEEwMAAgABEgS4BhMXCg8KBwQTAwACAAMSBLgGGhsKDwoHBBMDAAIACBIEuAYcKwoQCggEEwMAAgAIAhIEuAYdKgrSAgoGBBMDAAIBEgS/BgQsGsECIEFsd2F5cyBoYXMgZXhhY3RseSB0aHJlZSBvciBmb3VyIGVsZW1lbnRzOiBzdGFydCBsaW5lLCBzdGFydCBjb2x1bW4sCiBlbmQgbGluZSAob3B0aW9uYWwsIG90aGVyd2lzZSBhc3N1bWVkIHNhbWUgYXMgc3RhcnQgbGluZSksIGVuZCBjb2x1bW4uCiBUaGVzZSBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgZmllbGQgZm9yIGVmZmljaWVuY3kuICBOb3RlIHRoYXQgbGluZQogYW5kIGNvbHVtbiBudW1iZXJzIGFyZSB6ZXJvLWJhc2VkIC0tIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50IHRvIGFkZAogMSB0byBlYWNoIGJlZm9yZSBkaXNwbGF5aW5nIHRvIGEgdXNlci4KCg8KBwQTAwACAQQSBL8GBAwKDwoHBBMDAAIBBRIEvwYNEgoPCgcEEwMAAgEBEgS/BhMXCg8KBwQTAwACAQMSBL8GGhsKDwoHBBMDAAIBCBIEvwYcKwoQCggEEwMAAgEIAhIEvwYdKgqlDAoGBBMDAAICEgTwBgQpGpQMIElmIHRoaXMgU291cmNlQ29kZUluZm8gcmVwcmVzZW50cyBhIGNvbXBsZXRlIGRlY2xhcmF0aW9uLCB0aGVzZSBhcmUgYW55CiBjb21tZW50cyBhcHBlYXJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVjbGFyYXRpb24gd2hpY2ggYXBwZWFyIHRvIGJlCiBhdHRhY2hlZCB0byB0aGUgZGVjbGFyYXRpb24uCgogQSBzZXJpZXMgb2YgbGluZSBjb21tZW50cyBhcHBlYXJpbmcgb24gY29uc2VjdXRpdmUgbGluZXMsIHdpdGggbm8gb3RoZXIKIHRva2VucyBhcHBlYXJpbmcgb24gdGhvc2UgbGluZXMsIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBjb21tZW50LgoKIGxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMgd2lsbCBrZWVwIHBhcmFncmFwaHMgb2YgY29tbWVudHMgdGhhdCBhcHBlYXIKIGJlZm9yZSAoYnV0IG5vdCBjb25uZWN0ZWQgdG8pIHRoZSBjdXJyZW50IGVsZW1lbnQuIEVhY2ggcGFyYWdyYXBoLAogc2VwYXJhdGVkIGJ5IGVtcHR5IGxpbmVzLCB3aWxsIGJlIG9uZSBjb21tZW50IGVsZW1lbnQgaW4gdGhlIHJlcGVhdGVkCiBmaWVsZC4KCiBPbmx5IHRoZSBjb21tZW50IGNvbnRlbnQgaXMgcHJvdmlkZWQ7IGNvbW1lbnQgbWFya2VycyAoZS5nLiAvLykgYXJlCiBzdHJpcHBlZCBvdXQuICBGb3IgYmxvY2sgY29tbWVudHMsIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgYW4gYXN0ZXJpc2sKIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggbGluZSBvdGhlciB0aGFuIHRoZSBmaXJzdC4KIE5ld2xpbmVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LgoKIEV4YW1wbGVzOgoKICAgb3B0aW9uYWwgaW50MzIgZm9vID0gMTsgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gZm9vLgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhci4KICAgb3B0aW9uYWwgaW50MzIgYmFyID0gMjsKCiAgIG9wdGlvbmFsIHN0cmluZyBiYXogPSAzOwogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhei4KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIGJhei4KCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gcXV4LgogICAvLwogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gcXV4LgogICBvcHRpb25hbCBkb3VibGUgcXV4ID0gNDsKCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlLiBUaGlzIGlzIG5vdCBsZWFkaW5nIG9yIHRyYWlsaW5nIGNvbW1lbnRzCiAgIC8vIHRvIHF1eCBvciBjb3JnZSBiZWNhdXNlIHRoZXJlIGFyZSBibGFuayBsaW5lcyBzZXBhcmF0aW5nIGl0IGZyb20KICAgLy8gYm90aC4KCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlIHBhcmFncmFwaCAyLgoKICAgb3B0aW9uYWwgc3RyaW5nIGNvcmdlID0gNTsKICAgLyogQmxvY2sgY29tbWVudCBhdHRh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EhFwcm90b2J1Zl91bml0dGVzdBogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8i6wEKHFRlc3RNZXNzYWdlV2l0aEN1c3RvbU9wdGlvbnMSJgoGZmllbGQxGAEgASgJQg4IAcHgwx0t4XUKAgAAAFIGZmllbGQxEiEKC29uZW9mX2ZpZWxkGAIgASgFSABSCm9uZW9mRmllbGQiUwoGQW5FbnVtEhYKEkFORU5VTV9VTlNQRUNJRklFRBAAEg8KC0FORU5VTV9WQUwxEAESFgoLQU5FTlVNX1ZBTDIQAhoFsIb6BXsaCMX2yR3r/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/DowR3qrcDlJPrshTsqCGQSDkZpbGVBbm5vdGF0aW9uGhYSFE5lc3RlZEZpbGVBbm5vdGF0aW9uSqFRCgcSBSwAzwIBCvYQCgEMEgMsABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLTASBBdXRob3I6IGJlbmp5QGdvb2dsZS5jb20gKEJlbmp5IFdlaW5iZXJnZXIpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3RvIGZpbGUgdXNlZCB0byB0ZXN0IHRoZSAiY3VzdG9tIG9wdGlvbnMiIGZlYXR1cmUgb2YgZ29vZ2xlLnByb3RvYnVmLgoy0QIgVGhpcyBmaWxlIGlzIGJhc2VkIG9uIHVuaXR0ZXN0X2N1c3RvbV9vcHRpb25zLnByb3RvIGluCiBzcmMvZ29vZ2xlL3Byb3RvYnVmLCBidXQgaXMgbW9kaWZpZWQgZm9yIHByb3RvMy4gSXQgY291bGQKIHBvdGVudGlhbGx5IGJlIG1vdmVkIGludG8gc3JjL2dvb2dsZS9wcm90b2J1ZiwgYnV0IGN1cnJlbnRseSBDIwogaXMgdGhlIG9ubHkgbGFuZ3VhZ2UgdGhhdCByZWFsbHkgbmVlZHMgaXQsIGFzIHdlIGRvbid0IHN1cHBvcnQKIHByb3RvMiBzeW50YXguIEl0J3MgY3V0IGRvd24gc2lnbmlmaWNhbnRseSBhcyBwcm90bzMgb25seSBzdXBwb3J0cwogZXh0ZW5zaW9ucyBmb3Igb3B0aW9ucy4KCggKAQgSAy8AIAo1CgUIjp3YAxIDLwAgGicgQSBjdXN0b20gZmlsZSBvcHRpb24gKGRlZmluZWQgYmVsb3cpLgoKCQoCAwASAzEAKgqgAQoBAhIDNQAaGpUBIFdlIGRvbid0IHB1dCB0aGlzIGluIGEgcGFja2FnZSB3aXRoaW4gcHJvdG8yIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUKIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgZGVwZW5kIG9uIGJlaW5nIGluIHRoZSBwcm90bzIgbmFtZXNwYWNlLgoKCAoBCBIDNgA3CgkKAgglEgM2ADcKPgoBBxIEOgA8ATIzIFNvbWUgc2ltcGxlIHRlc3QgY3VzdG9tIG9wdGlvbnMgb2YgdmFyaW91cyB0eXBlcy4KCgkKAgcAEgM7Ah0KCgoDBwACEgM6ByIKCgoDBwAFEgM7AggKCgoDBwABEgM7CRIKCgoDBwADEgM7FRwKCQoBBxIEPgBAAQoJCgIH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CiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyKCBBdXRob3I6IGxpdWppc2lAZ29vZ2xlLmNvbSAoUGhlcmwgTGl1KQoKCAoBAhIDIgAoCggKAQgSAyQAPgoJCgIIJRIDJAA+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//wEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IMdGVzdEFsbFR5cGVzOoQBCiV0ZXN0X2V4dGVuc2lvbl9pbnNpZGVfdGFibGVfZXh0ZW5zaW9uEjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZRgFIAEoBVIhdGVzdEV4dGVuc2lvbkluc2lkZVRhYmxlRXh0ZW5zaW9uQjJIAYABAYgBAZABAfgBAaoCIUdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zLlByb3RvMkq0uAMKBxIFJgDYCAIKog4KAQwSAyYAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtMBIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3ZSB3aWxsIHVzZSBmb3IgdW5pdCB0ZXN0aW5nLgoKIExJTlQ6IEFMTE9XX0dST1VQUywgTEVHQUNZX05BTUVTCgoICgEIEgMqACIKgAEKAggQEgMqACIaZyBTb21lIGdlbmVyaWNfc2VydmljZXMgb3B0aW9uKHMpIGFkZGVkIGF1dG9tYXRpY2FsbHkuCiBTZWU6ICBodHRwOi8vZ28vcHJvdG8yLWdlbmVyaWMtc2VydmljZXMtZGVmYXVsdAoiDCBhdXRvLWFkZGVkCgoICgEIEgMrACQKFwoCCBESAysAJCIMIGF1dG8tYWRkZWQKCggKAQgSAywAIgoXCgIIEhIDLAAiIgwgYXV0by1hZGRlZAoKCAoBCBIDLQAfCgkKAggfEgMtAB8KCQoCAwASAy8AHwrmAQoBAhIDNAAhGtsBIFdlIGRvbid0IHB1dCB0aGlzIGluIGEgcGFja2FnZSB3aXRoaW4gcHJvdG8yIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUKIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgZGVwZW5kIG9uIGJlaW5nIGluIHRoZSBwcm90bzIgbmFtZXNwYWNlLgogSW4gdGVzdF91dGlsLmggd2UgZG8gInVzaW5nIG5hbWVzcGFjZSB1bml0dGVzdCA9IHByb3RvYnVmX3VuaXR0ZXN0Ii4KCggKAQgSAzkAHAriAQoCCAkSAzkAHBrWASBQcm90b3Mgb3B0aW1pemVkIGZvciBTUEVFRCB1c2UgYSBzdHJpY3Qgc3VwZXJzZXQgb2YgdGhlIGdlbmVyYXRlZCBjb2RlCiBvZiBlcXVpdmFsZW50IG9uZXMgb3B0aW1pemVkIGZvciBD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CgQSBIYDAgoKDQoFBAwCCgUSBIYDCxAKDQoFBAwCCgESBIYDERgKDQoFBAwCCgMSBIYDGx0KDAoEBAwCCxIEhwMCHgoNCgUEDAILBBIEhwMCCgoNCgUEDAILBRIEhwMLEAoNCgUEDAILARIEhwMRGAoNCgUEDAILAxIEhwMbHQoMCgQEDAIMEgSIAwIeCg0KBQQMAgwEEgSIAwIKCg0KBQQMAgwFEgSIAwsQCg0KBQQMAgwBEgSIAxEYCg0KBQQMAgwDEgSIAxsdCgwKBAQMAg0SBIkDAh4KDQoFBAwCDQQSBIkDAgoKDQoFBAwCDQUSBIkDCxAKDQoFBAwCDQESBIkDERgKDQoFBAwCDQMSBIkDGx0KDAoEBAwCDhIEigMCHgoNCgUEDAIOBBIEigMCCgoNCgUEDAIOBRIEigMLEAoNCgUEDAIOARIEigMRGAoNCgUEDAIOAxIEigMbHQoMCgQEDAIPEgSLAwIeCg0KBQQMAg8EEgSLAwIKCg0KBQQMAg8FEgSLAwsQCg0KBQQMAg8BEgSLAxEYCg0KBQQMAg8DEgSLAxsdCgwKBAQMAhASBIwDAh4KDQoFBAwCEAQSBIwDAgoKDQoFBAwCEAUSBIwDCxAKDQoFBAwCEAESBIwDERgKDQoFBAwCEAMSBIwDGx0KDAoEBAwCERIEjQMCHgoNCgUEDAIRBBIEjQMCCgoNCgUEDAIRBRIEjQMLEAoNCgUEDAIRARIEjQMRGAoNCgUEDAIRAxIEjQMbHQoMCgQEDAISEgSOAwIeCg0KBQQMAhIEEgSOAwIKCg0KBQQMAhIFEgSOAwsQCg0KBQQMAhIBEgSOAxEYCg0KBQQMAhIDEgSOAxsdCgwKBAQMAhMSBI8DAh4KDQoFBAwCEwQSBI8DAgoKDQoFBAwCEwUSBI8DCxAKDQoFBAwCEwESBI8DERgKDQoFBAwCEwMSBI8DGx0KDAoEBAwCFBIEkAMCHgoNCgUEDAIUBBIEkAMCCgoNCgUEDAIUBRIEkAMLEAoNCgUEDAIUARIEkAMRGAoNCgUEDAIUAxIEkAMbHQoMCgQEDAIVEgSRAwIeCg0KBQQMAhUEEgSRAwIKCg0KBQQMAhUFEgSRAwsQCg0KBQQMAhUBEgSRAxEYCg0KBQQMAhUDEgSRAxsdCgwKBAQMAhYSBJIDAh4KDQoFBAwCFgQSBJIDAgoKDQoF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BDACARIEiQYCOgoNCgUEMAIBBBIEiQYCCgoNCgUEMAIBBRIEiQYOEwoNCgUEMAIBARIEiQYUIAoNCgUEMAIBAxIEiQYnKQoNCgUEMAIBCBIEiQYqOQoOCgYEMAIBCAISBIkGKzgKDAoEBDACAhIEigYCOgoNCgUEMAICBBIEigYCCgoNCgUEMAICBRIEigYNEwoNCgUEMAICARIEigYUIQoNCgUEMAICAxIEigYnKQoNCgUEMAICCBIEigYqOQoOCgYEMAICCAISBIoGKzgKDAoEBDACAxIEiwYCOgoNCgUEMAIDBBIEiwYCCgoNCgUEMAIDBRIEiwYNEwoNCgUEMAIDARIEiwYUIQoNCgUEMAIDAxIEiwYnKQoNCgUEMAIDCBIEiwYqOQoOCgYEMAIDCAISBIsGKzgKDAoEBDACBBIEjAYCOgoNCgUEMAIEBBIEjAYCCgoNCgUEMAIEBRIEjAYNEwoNCgUEMAIEARIEjAYUIQoNCgUEMAIEAxIEjAYnKQoNCgUEMAIECBIEjAYqOQoOCgYEMAIECAISBIwGKzgKDAoEBDACBRIEjQYCOgoNCgUEMAIFBBIEjQYCCgoNCgUEMAIFBRIEjQYNEwoNCgUEMAIFARIEjQYUIQoNCgUEMAIFAxIEjQYnKQoNCgUEMAIFCBIEjQYqOQoOCgYEMAIFCAISBI0GKzgKDAoEBDACBhIEjgYCOgoNCgUEMAIGBBIEjgYCCgoNCgUEMAIGBRIEjgYMEwoNCgUEMAIGARIEjgYUIgoNCgUEMAIGAxIEjgYnKQoNCgUEMAIGCBIEjgYqOQoOCgYEMAIGCAISBI4GKzgKDAoEBDACBxIEjwYCOgoNCgUEMAIHBBIEjwYCCgoNCgUEMAIHBRIEjwYMEwoNCgUEMAIHARIEjwYUIgoNCgUEMAIHAxIEjwYnKQoNCgUEMAIHCBIEjwYqOQoOCgYEMAIHCAISBI8GKzgKDAoEBDACCBIEkAYCOgoNCgUEMAIIBBIEkAYCCgoNCgUEMAIIBRIEkAYLEwoNCgUEMAIIARIEkAYUIwoNCgUEMAIIAxIEkAYnKQoNCgUEMAIICBIEkAYqOQoOCgYEMAIICAISBJAGKzgKDAoEBDACCRIEkQYCOgoNCgUEMAIJBBIEkQYCCgoNCgUEMAIJBRIEkQYLEwoNCgUEMAIJARIEkQYUIwoNCgUEMAIJAxIEkQYnKQoNCgUEMAIJCBIEkQYqOQoOCgYEMAIJCAISBJEGKzgKDAoEBDACChIEkgYCOgoNCgUEMAIKBBIEkgYCCgoNCgUEMAIKBRIEkgYOEwoNCgUEMAIKARIEkgYUIAoNCgUEMAIKAxIEkgYmKQoNCgUEMAIKCBIEkgYqOQoOCgYEMAIKCAISBJIGKzgKDAoEBDACCxIEkwYCOgoNCgUEMAILBBIEkwYCCgoNCgUEMAILBRIEkwYNEwoNCgUEMAILARIEkwYUIQoNCgUEMAILAxIEkwYmKQoNCgUEMAILCBIEkwYqOQoOCgYEMAILCAISBJMGKzgKDAoEBDACDBIElAYCOgoNCgUEMAIMBBIElAYCCgoNCgUEMAIMBRIElAYPEwoNCgUEMAIMARIElAYUHwoNCgUEMAIMAxIElAYmKQoNCgUEMAIMCBIElAYqOQoOCgYEMAIMCAISBJQGKzgKDAoEBDACDRIElQYCOgoNCgUEMAINBBIElQYCCgoNCgUEMAINBhIElQYLFgoNCgUEMAINARIElQYXIgoNCgUEMAINAxIElQYmKQoNCgUEMAINCBIElQYqOQoOCgYEMAINCAISBJUGKzgKjQEKAgQxEgaaBgCpBgEafyBBIG1lc3NhZ2Ugd2l0aCB0aGUgc2FtZSBmaWVsZHMgYXMgVGVzdFBhY2tlZFR5cGVzLCBidXQgd2l0aG91dCBwYWNraW5nLiBVc2VkCiB0byB0ZXN0IHBhY2tlZCA8LT4gdW5wYWNrZWQgd2lyZSBjb21wYXRpYmlsaXR5LgoKCwoDBDEBEgSaBggZCgwKBAQxAgASBJsGAj0KDQoFBDECAAQSBJsGAgoKDQoFBDECAAUSBJsGDhMKDQoFBDECAAESBJsGFCIKDQoFBDECAAMSBJsGKSsKDQoFBDECAAgSBJsGLDwKDgoGBDECAAgCEgSbBi07CgwKBAQxAgESBJwGAj0KDQoFBDECAQQSBJwGAgoKDQoFBDECAQUSBJwGDhMKDQoFBDECAQESBJwGFCIKDQoFBDECAQMSBJwGKSsKDQoFBDECAQgSBJwGLDwKDgoGBDECAQgCEgScBi07CgwKBAQxAgISBJ0GAj0KDQoFBDECAgQSBJ0GAgoKDQoFBDECAgUSBJ0GDRMKDQoFBDECAgESBJ0GFCMKDQoFBDECAgMSBJ0GKSsKDQoFBDECAggSBJ0GLDwKDgoGBDECAggCEgSdBi07CgwKBAQxAgMSBJ4GAj0KDQoFBDECAwQSBJ4GAgoKDQoFBDECAwUSBJ4GDRMKDQoFBDECAwESBJ4GFCMKDQoFBDECAwMSBJ4GKSsKDQoFBDECAwgSBJ4GLDwKDgoGBDECAwgCEgSeBi07CgwKBAQxAgQSBJ8GAj0KDQoFBDECBAQSBJ8GAgoKDQoFBDECBAUSBJ8GDRMKDQoFBDECBAESBJ8GFCMKDQoFBDECBAMSBJ8GKSsKDQoFBDECBAgSBJ8GLDwKDgoGBDECBAgCEgSfBi07CgwKBAQxAgUSBKAGAj0KDQoFBDECBQQSBKAGAgoKDQoFBDECBQUSBKAGDRMKDQoFBDECBQESBKAGFCMKDQoFBDECBQMSBKAGKSsKDQoFBDECBQgSBKAGLDwKDgoGBDECBQgCEgSgBi07CgwKBAQxAgYSBKEGAj0KDQoFBDECBgQSBKEGAgoKDQoFBDECBgUSBKEGDBMKDQoFBDECBgESBKEGFCQKDQoFBDECBgMSBKEGKSsKDQoFBDECBggSBKEGLDwKDgoGBDECBggCEgShBi07CgwKBAQxAgcSBKIGAj0KDQoFBDECBwQSBKIGAgoKDQoFBDECBwUSBKIGDBMKDQoFBDECBwESBKIGFCQKDQoFBDECBwMSBKIGKSsKDQoFBDECBwgSBKIGLDwKDgoGBDECBwgCEgSiBi07CgwKBAQxAggSBKMGAj0KDQoFBDECCAQSBKMGAgoKDQoFBDECCAUSBKMGCxMKDQoFBDECCAESBKMGFCUKDQoFBDECCAMSBKMGKSsKDQoFBDECCAgSBKMGLDwKDgoGBDECCAgCEgSjBi07CgwKBAQxAgkSBKQGAj0KDQoFBDECCQQSBKQGAgoKDQoFBDECCQUSBKQGCxMKDQoFBDECCQESBKQGFCUKDQoFBDECCQMSBKQGKSsKDQoFBDECCQgSBKQGLDwKDgoGBDECCQgCEgSkBi07CgwKBAQxAgoSBKUGAj0KDQoFBDECCgQSBKUGAgoKDQoFBDECCgUSBKUGDhMKDQoFBDECCgESBKUGFCIKDQoFBDECCgMSBKUGKCsKDQoFBDECCggSBKUGLDwKDgoGBDECCggCEgSlBi07CgwKBAQxAgsSBKYGAj0KDQoFBDECCwQSBKYG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BQMCAAESBPMHAhQKDQoFBQMCAAISBPMHFxgKDAoEBQMCARIE9AcCEwoNCgUFAwIBARIE9AcCDgoNCgUFAwIBAhIE9AcREgoMCgQFAwICEgT1BwITCg0KBQUDAgIBEgT1BwIOCg0KBQUDAgICEgT1BxESCgwKBAUDAgMSBPYHAhMKDQoFBQMCAwESBPYHAg4KDQoFBQMCAwISBPYHERIKDAoEBQMCBBIE9wcCEwoNCgUFAwIEARIE9wcCDgoNCgUFAwIEAhIE9wcREgoMCgQFAwIFEgT4BwITCg0KBQUDAgUBEgT4BwIOCg0KBQUDAgUCEgT4BxESCgwKBAUDAgYSBPkHAhMKDQoFBQMCBgESBPkHAg4KDQoFBQMCBgISBPkHERIKDAoEBQMCBxIE+gcCEwoNCgUFAwIHARIE+gcCDgoNCgUFAwIHAhIE+gcREgoMCgQFAwIIEgT7BwITCg0KBQUDAggBEgT7BwIOCg0KBQUDAggCEgT7BxESCgwKBAUDAgkSBPwHAhMKDQoFBQMCCQESBPwHAg4KDQoFBQMCCQISBPwHERIKDAoEBQMCChIE/QcCFQoNCgUFAwIKARIE/QcCDwoNCgUFAwIKAhIE/QcSFAoMCgQFAwILEgT+BwIVCg0KBQUDAgsBEgT+BwIPCg0KBQUDAgsCEgT+BxIUCgwKBAUDAgwSBP8HAhUKDQoFBQMCDAESBP8HAg8KDQoFBQMCDAISBP8HEhQKDAoEBQMCDRIEgAgCFQoNCgUFAwINARIEgAgCDwoNCgUFAwINAhIEgAgSFAoMCgQFAwIOEgSBCAIVCg0KBQUDAg4BEgSBCAIPCg0KBQUDAg4CEgSBCBIUCgwKBAUDAg8SBIIIAhUKDQoFBQMCDwESBIIIAg8KDQoFBQMCDwISBIIIEhQKDAoEBQMCEBIEgwgCFQoNCgUFAwIQARIEgwgCDwoNCgUFAwIQAhIEgwgSFAoMCgQFAwIREgSECAIVCg0KBQUDAhEBEgSECAIPCg0KBQUDAhECEgSECBIUCgwKBAUDAhISBIUIAhUKDQoFBQMCEgESBIUIAg8KDQoFBQMCEgISBIUIEhQKDAoEBQMCExIEhggCFQoNCgUFAwITARIEhggCDwoNCgUFAwITAhIEhggSFAoMCgQFAwIUEgSHCAIVCg0KBQUDAhQBEgSHCAIPCg0KBQUDAhQC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c3N1ZTY5MzZfYi5wcm90byI2CgNCYXISJgoDZm9vGAEgASgLMhQudW5pdHRlc3RfaXNzdWVzLkZvb1IDZm9vOgeCtRgDYmFyQh2qAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc0qqAgoGEgQAAA8BCggKAQwSAwAAEgoJCgIDABIDAgAkCgkKAgMBEgMDACQKCAoBAhIDBQAYCggKAQgSAwcANwoJCgIIJRIDBwA3CoIBCgIEABIEDAAPATJ2IFRoaXMgZmlsZSBpcyB1c2VkIGFzIHBhcnQgb2YgYSB1bml0IHRlc3QgZm9yIGlzc3VlIDY5MzYKIFdlIGRvbid0IG5lZWQgdG8gdXNlIGl0LCB3ZSBqdXN0IGhhdmUgdG8gbG9hZCBpdCBhdCBydW50aW1lCgoKCgMEAAESAwwICwoKCgMEAAcSAw0EGQoNCgYEAAfQhgMSAw0EGQoLCgQEAAIAEgMOBBAKDAoFBAACAAYSAw4EBwoMCgUEAAIAARIDDggLCgwKBQQAAgADEgMODg9iBnByb3RvMwrlGAomdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMucHJvdG8SKXByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zGiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90byJZCgpGb29PcHRpb25zEiYKB2ludF9vcHQYASABKAVCDco+CggBwD4Cyj4CCANSBmludE9wdBIYCgNmb28YAiABKAVCBso+AxDSCVIDZm9vKgkI6AcQgICAgAI6RQoLYmFyX29wdGlvbnMSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGOgHIAEoBUIEwD7SCVIKYmFyT3B0aW9uczp2Cgtmb29fb3B0aW9ucxIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY6QcgASgLMjUucHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMuRm9vT3B0aW9uc1IKZm9vT3B0aW9uczpWCgtmb29faW50X29wdBI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnMY6AcgASgFUglmb29JbnRPcHQ6jQEKC2Zvb19mb29fb3B0EjUucHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMuRm9vT3B0aW9ucxjpByABKAsyNS5wcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucy5Gb29PcHRpb25zUglmb29Gb29PcHRCNKoCMVVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zLlNlbGZyZWZlcmVudGlhbE9wdGlvbnNKtRMKBhIEHgA/AQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAyCggKAQgSAyEATgoJCgIIJRIDIQBOCgkKAgMAEgMjACoKCgoCBAASBCUAMwEKCgoDBAABEgMlCBIKUAoEBAACABIEJwItBRpCIEN1c3RvbSBmaWVsZCBvcHRpb24gdXNlZCBpbiBkZWZpbml0aW9uIG9mIHRoZSBleHRlbnNpb24gbWVzc2FnZS4KCgwKBQQAAgAEEgMnAgoKDAoFBAACAAUSAycLEAoMCgUEAAIAARIDJxEYCgwKBQQAAgADEgMnGxwKDQoFBAACAAgSBCcdLQQKDwoHBAACAAjpBxIEJx4tAwpVCgQEAAIBEgMwAjcaSCBDdXN0b20gZmllbGQgb3B0aW9uIHVzZWQgaW4gZGVmaW5pdGlvbiBvZiB0aGUgY3VzdG9tIG9wdGlvbidzIG1lc3NhZ2UuCgoMCgUEAAIBBBIDMAIKCgwKBQQAAgEFEgMwCxAKDAoFBAACAQESAzARFAoMCgUEAAIBAxIDMBcYCgwKBQQAAgEIEgMwGTYKDgoHBAACAQjpBxIDMBo1CgoKAwQABRIDMgIZCgsKBAQABQASAzINGAoMCgUEAAUAARIDMg0RCgwKBQQABQACEgMyFRgKCQoBBxIENQA6AQpNCgIHABIDNwI7GkIgQ3VzdG9tIGZpZWxkIG9wdGlvbiB1c2VkIG9uIHRoZSBkZWZpbml0aW9uIG9mIHRoYXQgZmllbGQgb3B0aW9uLgoKCgoDBwACEgM1ByMKCgoDBwAEEgM3AgoKCgoDBwAFEgM3CxAKCgoDBwABEgM3ERwKCgoDBwADEgM3HyMKCgoDBwAIEgM3JDoKDAoFBwAI6AcSAzclOQoJCgIHARIDOQIpCgoKAwcBAhIDNQcjCgoKAwcBBBIDOQIKCgoKAwcBBhIDOQsVCgoKAwcBARIDORYhCgoKAwcBAxIDOSQoCgkKAQcSBDwAPwEKCQoCBwISAz0DJQoKCgMHAgISAzwHEQoKCgMHAgQSAz0DCwoKCgMHAgUSAz0MEQoKCgMHAgESAz0SHQoKCgMHAgMSAz0gJAoJCgIHAxIDPgMqCgoKAwcDAhIDPAcRCgoKAwcDBBIDPgMLCgoKAwcDBhIDPgwWCgoKAwcDARIDPhciCgoKAwcDAxIDPiUpCuAsChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJ2ChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWixnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9hbnlwYqICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0r5KgoHEgUeAJ0BAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAQwoJCgIICxIDIwBDCggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUAKQoJCgIICBIDJQApCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCv0QCgIEABIFfACdAQEa7xAgYEFueWAgY29udGFpbnMgYW4gYXJiaXRyYXJ5IHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UgYWxvbmcgd2l0aCBhCiBVUkwgdGhhdCBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQgbWVzc2FnZS4KCiBQcm90b2J1ZiBsaWJyYXJ5IHByb3ZpZGVzIHN1cHBvcnQgdG8gcGFjay91bnBhY2sgQW55IHZhbHVlcyBpbiB0aGUgZm9ybQogb2YgdXRpbGl0eSBmdW5jdGlvbnMgb3IgYWRkaXRpb25hbCBnZW5lcmF0ZWQgbWV0aG9kcyBvZiB0aGUgQW55IHR5cGUuCgogRXhhbXBsZSAxOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEMrKy4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55OwogICAgIGFueS5QYWNrRnJvbShmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuVW5wYWNrVG8oJmZvbykpIHsKICAgICAgIC4uLgogICAgIH0KCiBFeGFtcGxlIDI6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gSmF2YS4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55ID0gQW55LnBhY2soZm9vKTsKICAgICAuLi4KICAgICBpZiAoYW55LmlzKEZvby5jbGFzcykpIHsKICAgICAgIGZvbyA9IGFueS51bnBhY2soRm9vLmNsYXNzKTsKICAgICB9CgogIEV4YW1wbGUgMzogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBQeXRob24uCgogICAgIGZvbyA9IEZvbyguLi4pCiAgICAgYW55ID0gQW55KCkKICAgICBhbnkuUGFjayhmb28pCiAgICAgLi4uCiAgICAgaWYgYW55LklzKEZvby5ERVNDUklQVE9SKToKICAgICAgIGFueS5VbnBhY2soZm9vKQogICAgICAgLi4uCgogIEV4YW1wbGUgNDogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBHbwoKICAgICAgZm9vIDo9ICZwYi5Gb297Li4ufQogICAgICBhbnksIGVyciA6PSBhbnlwYi5OZXcoZm9vKQogICAgICBpZiBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQogICAgICAuLi4KICAgICAgZm9vIDo9ICZwYi5Gb297fQogICAgICBpZiBlcnIgOj0gYW55LlVubWFyc2hhbFRvKGZvbyk7IGVyciAhPSBuaWwgewogICAgICAgIC4uLgogICAgICB9CgogVGhlIHBhY2sgbWV0aG9kcyBwcm92aWRlZCBieSBwcm90b2J1ZiBsaWJyYXJ5IHdpbGwgYnkgZGVmYXVsdCB1c2UKICd0eXBlLmdvb2dsZWFwaXMuY29tL2Z1bGwudHlwZS5uYW1lJyBhcyB0aGUgdHlwZSBVUkwgYW5kIHRoZSB1bnBhY2sKIG1ldGhvZHMgb25seSB1c2UgdGhlIGZ1bGx5IHF1YWxpZmllZCB0eXBlIG5hbWUgYWZ0ZXIgdGhlIGxhc3QgJy8nCiBpbiB0aGUgdHlwZSBVUkwsIGZvciBleGFtcGxlICJmb28uYmFyLmNvbS94L3kueiIgd2lsbCB5aWVsZCB0eXBlCiBuYW1lICJ5LnoiLgoKCiBKU09OCiA9PT09CiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiBhbiBgQW55YCB2YWx1ZSB1c2VzIHRoZSByZWd1bGFyCiByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGVzZXJpYWxpemVkLCBlbWJlZGRlZCBtZXNzYWdlLCB3aXRoIGFuCiBhZGRpdGlvbmFsIGZpZWxkIGBAdHlwZWAgd2hpY2ggY29udGFpbnMgdGhlIHR5cGUgVVJMLiBFeGFtcGxlOgoKICAgICBwYWNrYWdlIGdvb2dsZS5wcm9maWxlOwogICAgIG1lc3NhZ2UgUGVyc29uIHsKICAgICAgIHN0cmluZyBmaXJzdF9uYW1lID0gMTsKICAgICAgIHN0cmluZyBsYXN0X25hbWUgPSAyOwogICAgIH0KCiAgICAgewogICAgICAgIkB0eXBlIjogInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb2ZpbGUuUGVyc29uIiwKICAgICAgICJmaXJzdE5hbWUiOiA8c3RyaW5nPiwKICAgICAgICJsYXN0TmFtZSI6IDxzdHJpbmc+CiAgICAgfQoKIElmIHRoZSBlbWJlZGRlZCBtZXNzYWdlIHR5cGUgaXMgd2VsbC1rbm93biBhbmQgaGFzIGEgY3VzdG9tIEpTT04KIHJlcHJlc2VudGF0aW9uLCB0aGF0IHJlcHJlc2VudGF0aW9uIHdpbGwgYmUgZW1iZWRkZWQgYWRkaW5nIGEgZmllbGQKIGB2YWx1ZWAgd2hpY2ggaG9sZHMgdGhlIGN1c3RvbSBKU09OIGluIGFkZGl0aW9uIHRvIHRoZSBgQHR5cGVgCiBmaWVsZC4gRXhhbXBsZSAoZm9yIG1lc3NhZ2UgW2dvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbl1bXSk6CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbiIsCiAgICAgICAidmFsdWUiOiAiMS4yMTJzIgogICAgIH0KCgoKCgMEAAESA3wICwrXCgoEBAACABIEmQECFhrICiBBIFVSTC9yZXNvdXJjZSBuYW1lIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZAogcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UuIFRoaXMgc3RyaW5nIG11c3QgY29udGFpbiBhdCBsZWFzdAogb25lICIvIiBjaGFyYWN0ZXIuIFRoZSBsYXN0IHNlZ21lbnQgb2YgdGhlIFVSTCdzIHBhdGggbXVzdCByZXByZXNlbnQKIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgdHlwZSAoYXMgaW4KIGBwYXRoL2dvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbmApLiBUaGUgbmFtZSBzaG91bGQgYmUgaW4gYSBjYW5vbmljYWwgZm9ybQogKGUuZy4sIGxlYWRpbmcgIi4iIGlzIG5vdCBhY2NlcHRlZCkuCgogSW4gcHJhY3RpY2UsIHRlYW1zIHVzdWFsbHkgcHJlY29tcGlsZSBpbnRvIHRoZSBiaW5hcnkgYWxsIHR5cGVzIHRoYXQgdGhleQogZXhwZWN0IGl0IHRvIHVzZSBpbiB0aGUgY29udGV4dCBvZiBBbnkuIEhvd2V2ZXIsIGZvciBVUkxzIHdoaWNoIHVzZSB0aGUKIHNjaGVtZSBgaHR0cGAsIGBodHRwc2AsIG9yIG5vIHNjaGVtZSwgb25lIGNhbiBvcHRpb25hbGx5IHNldCB1cCBhIHR5cGUKIHNlcnZlciB0aGF0IG1hcHMgdHlwZSBVUkxzIHRvIG1lc3NhZ2UgZGVmaW5pdGlvbnMgYXMgZm9sbG93czoKCiAqIElmIG5vIHNjaGVtZSBpcyBwcm92aWRlZCwgYGh0dHBzYCBpcyBhc3N1bWVkLgogKiBBbiBIVFRQIEdFVCBvbiB0aGUgVVJMIG11c3QgeWllbGQgYSBbZ29vZ2xlLnByb3RvYnVmLlR5cGVdW10KICAgdmFsdWUgaW4gYmluYXJ5IGZvcm1hdCwgb3IgcHJvZHVjZSBhbiBlcnJvci4KICogQXBwbGljYXRpb25zIGFyZSBhbGxvd2VkIHRvIGNhY2hlIGxvb2t1cCByZXN1bHRzIGJhc2VkIG9uIHRoZQogICBVUkwsIG9yIGhhdmUgdGhlbSBwcmVjb21waWxlZCBpbnRvIGEgYmluYXJ5IHRvIGF2b2lkIGFueQogICBsb29rdXAuIFRoZXJlZm9yZSwgYmluYXJ5IGNvbXBhdGliaWxpdHkgbmVlZHMgdG8gYmUgcHJlc2VydmVkCiAgIG9uIGNoYW5nZXMgdG8gdHlwZXMuIChVc2UgdmVyc2lvbmVkIHR5cGUgbmFtZXMgdG8gbWFuYWdlCiAgIGJyZWFraW5nIGNoYW5nZXMuKQoKIE5vdGU6IHRoaXMgZnVuY3Rpb25hbGl0eSBpcyBub3QgY3VycmVudGx5IGF2YWlsYWJsZSBpbiB0aGUgb2ZmaWNpYWwKIHByb3RvYnVmIHJlbGVhc2UsIGFuZCBpdCBpcyBub3QgdXNlZCBmb3IgdHlwZSBVUkxzIGJlZ2lubmluZyB3aXRoCiB0eXBlLmdvb2dsZWFwaXMuY29tLgoKIFNjaGVtZXMgb3RoZXIgdGhhbiBgaHR0cGAsIGBodHRwc2AgKG9yIHRoZSBlbXB0eSBzY2hlbWUpIG1pZ2h0IGJlCiB1c2VkIHdpdGggaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgc2VtYW50aWNzLgoKCg0KBQQAAgAFEgSZAQIICg0KBQQAAgABEgSZAQkRCg0KBQQAAgADEgSZARQVClcKBAQAAgESBJwBAhIaSSBNdXN0IGJlIGEgdmFsaWQgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgb2YgdGhlIGFib3ZlIHNwZWNpZmllZCB0eXBlLgoKDQoFBAACAQUSBJwBAgcKDQoFBAACAQESBJwBCA0KDQoFBAACAQMSBJwBEBFiBnByb3RvMwq+EgokZ29vZ2xlL3Byb3RvYnVmL3NvdXJjZV9jb250ZXh0LnByb3RvEg9nb29nbGUucHJvdG9idWYiLAoNU291cmNlQ29udGV4dBIbCglmaWxlX25hbWUYASABKAlSCGZpbGVOYW1lQooBChNjb20uZ29vZ2xlLnByb3RvYnVmQhJTb3VyY2VDb250ZXh0UHJvdG9QAVo2Z29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vc291cmNlY29udGV4dHBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSsEQCgYSBB4ALwEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjACwKCQoCCAESAyMALAoICgEIEgMkADMKCQoCCAgSAyQAMwoICgEIEgMlACIKCQoCCAoSAyUAIgoICgEIEgMmACEKCQoCCCQSAyYAIQoICgEIEgMnAE0KCQoCCAsSAycATQqDAQoCBAASBCsALwEadyBgU291cmNlQ29udGV4dGAgcmVwcmVzZW50cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc291cmNlIG9mIGEKIHByb3RvYnVmIGVsZW1lbnQsIGxpa2UgdGhlIGZpbGUgaW4gd2hpY2ggaXQgaXMgZGVmaW5lZC4KCgoKAwQAARIDKwgVCqMBCgQEAAIAEgMuAhcalQEgVGhlIHBhdGgtcXVhbGlmaWVkIG5hbWUgb2YgdGhlIC5wcm90byBmaWxlIHRoYXQgY29udGFpbmVkIHRoZSBhc3NvY2lhdGVkCiBwcm90b2J1ZiBlbGVtZW50LiAgRm9yIGV4YW1wbGU6IGAiZ29vZ2xlL3Byb3RvYnVmL3NvdXJjZV9jb250ZXh0LnByb3RvImAuCgoMCgUEAAIABRIDLgIICgwKBQQAAgABEgMuCRIKDAoFBAACAAMSAy4VFmIGcHJvdG8zCuhGChpnb29nbGUvcHJvdG9idWYvdHlwZS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8ijQIKBFR5cGUSEgoEbmFtZRgBIAEoCVIEbmFtZRIuCgZmaWVsZHMYAiADKAsyFi5nb29nbGUucHJvdG9idWYuRmllbGRSBmZpZWxkcxIWCgZvbmVvZnMYAyADKAlSBm9uZW9mcxIxCgdvcHRpb25zGAQgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxJFCg5zb3VyY2VfY29udGV4dBgFIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0Ug1zb3VyY2VDb250ZXh0Ei8KBnN5bnRheBgGIAEoDjIXLmdvb2dsZS5wcm90b2J1Zi5TeW50YXhSBnN5bnRheCK0BgoFRmllbGQSLwoEa2luZBgBIAEoDjIbLmdvb2dsZS5wcm90b2J1Zi5GaWVsZC5LaW5kUgRraW5kEkQKC2NhcmRpbmFsaXR5GAIgASgOMiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkLkNhcmRpbmFsaXR5UgtjYXJkaW5hbGl0eRIWCgZudW1iZXIYAyABKAVSBm51bWJlchISCgRuYW1lGAQgASgJUgRuYW1lEhkKCHR5cGVfdXJsGAYgASgJUgd0eXBlVXJsEh8KC29uZW9mX2luZGV4GAcgASgFUgpvbmVvZkluZGV4EhYKBnBhY2tlZBgIIAEoCFIGcGFja2VkEjEKB29wdGlvbnMYCSADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEhsKCWpzb25fbmFtZRgKIAEoCVIIanNvbk5hbWUSIwoNZGVmYXVsdF92YWx1ZRgLIAEoCVIMZGVmYXVsdFZhbHVlIsgCCgRLaW5kEhAKDFRZUEVfVU5LTk9XThAAEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJ0CgtDYXJkaW5hbGl0eRIXChNDQVJESU5BTElUWV9VTktOT1dOEAASGAoUQ0FSRElOQUxJVFlfT1BUSU9OQUwQARIYChRDQVJESU5BTElUWV9SRVFVSVJFRBACEhgKFENBUkRJTkFMSVRZX1JFUEVBVEVEEAMi/wEKBEVudW0SEgoEbmFtZRgBIAEoCVIEbmFtZRI4CgllbnVtdmFsdWUYAiADKAsyGi5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlUgllbnVtdmFsdWUSMQoHb3B0aW9ucxgDIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSRQoOc291cmNlX2NvbnRleHQYBCABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIvCgZzeW50YXgYBSABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgiagoJRW51bVZhbHVlEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISMQoHb3B0aW9ucxgDIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMiSAoGT3B0aW9uEhIKBG5hbWUYASABKAlSBG5hbWUSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgV2YWx1ZSouCgZTeW50YXgSEQoNU1lOVEFYX1BST1RPMhAAEhEKDVNZTlRBWF9QUk9UTzMQAUJ7ChNjb20uZ29vZ2xlLnByb3RvYnVmQglUeXBlUHJvdG9QAVotZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vdHlwZXBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSsM4CgcSBR4AugEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIAIwoJCgIDARIDIwAuCggKAQgSAyUAOwoJCgIIJRIDJQA7CggKAQgSAyYAHwoJCgIIHxIDJgAfCggKAQgSAycALAoJCgIIARIDJwAsCggKAQgSAygAKgoJCgIICBIDKAAqCggKAQgSAykAIgoJCgIIChIDKQAiCggKAQgSAyoAIQoJCgIIJBIDKgAhCggKAQgS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U3ludGF4IGBwcm90bzNgLgoKDQoFBQACAQESBLkBAg8KDQoFBQACAQISBLkBEhNiBnByb3RvMwqcQwoZZ29vZ2xlL3Byb3RvYnVmL2FwaS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmGiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8aGmdvb2dsZS9wcm90b2J1Zi90eXBlLnByb3RvIsECCgNBcGkSEgoEbmFtZRgBIAEoCVIEbmFtZRIxCgdtZXRob2RzGAIgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZFIHbWV0aG9kcxIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxIYCgd2ZXJzaW9uGAQgASgJUgd2ZXJzaW9uEkUKDnNvdXJjZV9jb250ZXh0GAUgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSDXNvdXJjZUNvbnRleHQSLgoGbWl4aW5zGAYgAygLMhYuZ29vZ2xlLnByb3RvYnVmLk1peGluUgZtaXhpbnMSLwoGc3ludGF4GAcgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheFIGc3ludGF4IrICCgZNZXRob2QSEgoEbmFtZRgBIAEoCVIEbmFtZRIoChByZXF1ZXN0X3R5cGVfdXJsGAIgASgJUg5yZXF1ZXN0VHlwZVVybBIrChFyZXF1ZXN0X3N0cmVhbWluZxgDIAEoCFIQcmVxdWVzdFN0cmVhbWluZxIqChFyZXNwb25zZV90eXBlX3VybBgEIAEoCVIPcmVzcG9uc2VUeXBlVXJsEi0KEnJlc3BvbnNlX3N0cmVhbWluZxgFIAEoCFIRcmVzcG9uc2VTdHJlYW1pbmcSMQoHb3B0aW9ucxgGIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSLwoGc3ludGF4GAcgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheFIGc3ludGF4Ii8KBU1peGluEhIKBG5hbWUYASABKAlSBG5hbWUSEgoEcm9vdBgCIAEoCVIEcm9vdEJ2ChNjb20uZ29vZ2xlLnByb3RvYnVmQghBcGlQcm90b1ABWixnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9hcGlwYqICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0qBPAoHEgUeAM8BAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCgkKAgMAEgMiAC4KCQoCAwESAyMAJAoICgEIEgMlADsKCQoCCCUSAyUAOwoICgEIEgMmACwKCQoCCAESAyYALAoICgEIEgMnACkKCQoCCAgSAycAKQoICgEIEgMoACIKCQoCCAoSAygAIgoICgEIEgMpACEKCQoCCCQSAykAIQoICgEIEgMqAEMKCQoCCAsSAyoAQwqrBAoCBAASBDUAYAEangQgQXBpIGlzIGEgbGlnaHQtd2VpZ2h0IGRlc2NyaXB0b3IgZm9yIGFuIEFQSSBJbnRlcmZhY2UuCgogSW50ZXJmYWNlcyBhcmUgYWxzbyBkZXNjcmliZWQgYXMgInByb3RvY29sIGJ1ZmZlciBzZXJ2aWNlcyIgaW4gc29tZSBjb250ZXh0cywKIHN1Y2ggYXMgYnkgdGhlICJzZXJ2aWNlIiBrZXl3b3JkIGluIGEgLnByb3RvIGZpbGUsIGJ1dCB0aGV5IGFyZSBkaWZmZXJlbnQKIGZyb20gQVBJIFNlcnZpY2VzLCB3aGljaCByZXByZXNlbnQgYSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBhbiBpbnRlcmZhY2UKIGFzIG9wcG9zZWQgdG8gc2ltcGx5IGEgZGVzY3JpcHRpb24gb2YgbWV0aG9kcyBhbmQgYmluZGluZ3MuIFRoZXkgYXJlIGFsc28KIHNvbWV0aW1lcyBzaW1wbHkgcmVmZXJyZWQgdG8gYXMgIkFQSXMiIGluIG90aGVyIGNvbnRleHRzLCBzdWNoIGFzIHRoZSBuYW1lIG9mCiB0aGlzIG1lc3NhZ2UgaXRzZWxmLiBTZWUgaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2FwaXMvZGVzaWduL2dsb3NzYXJ5IGZvcgogZGV0YWlsZWQgdGVybWlub2xvZ3kuCgoKCgMEAAESAzUICwp7CgQEAAIAEgM4AhIabiBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhpcyBpbnRlcmZhY2UsIGluY2x1ZGluZyBwYWNrYWdlIG5hbWUKIGZvbGxvd2VkIGJ5IHRoZSBpbnRlcmZhY2UncyBzaW1wbGUgbmFtZS4KCgwKBQQAAgAFEgM4AggKDAoFBAACAAESAzgJDQoMCgUEAAIAAxIDOBARCkMKBAQAAgESAzsCHho2IFRoZSBtZXRob2RzIG9mIHRoaXMgaW50ZXJmYWNlLCBpbiB1bnNwZWNpZmllZCBvcmRlci4KCgwKBQQAAgEEEgM7AgoKDAoFBAACAQYSAzsLEQoMCgUEAAIBARIDOxIZCgwKBQQAAgEDEgM7HB0KNgoEBAACAhIDPgIeGikgQW55IG1ldGFkYXRhIGF0dGFjaGVkIHRvIHRoZSBpbnRlcmZhY2UuCgoMCgUEAAICBBIDPgIKCgwKBQQAAgIGEgM+CxEKDAoFBAACAgESAz4SGQoMCgUEAAICAxIDPhwdCoIICgQEAAIDEgNVAhUa9AcgQSB2ZXJzaW9uIHN0cmluZyBmb3IgdGhpcyBpbnRlcmZhY2UuIElmIHNwZWNpZmllZCwgbXVzdCBoYXZlIHRoZSBmb3JtCiBgbWFqb3ItdmVyc2lvbi5taW5vci12ZXJzaW9uYCwgYXMgaW4gYDEuMTBgLiBJZiB0aGUgbWlub3IgdmVyc2lvbiBpcwogb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gemVyby4gSWYgdGhlIGVudGlyZSB2ZXJzaW9uIGZpZWxkIGlzIGVtcHR5LCB0aGUKIG1ham9yIHZlcnNpb24gaXMgZGVyaXZlZCBmcm9tIHRoZSBwYWNrYWdlIG5hbWUsIGFzIG91dGxpbmVkIGJlbG93LiBJZiB0aGUKIGZpZWxkIGlzIG5vdCBlbXB0eSwgdGhlIHZlcnNpb24gaW4gdGhlIHBhY2thZ2UgbmFtZSB3aWxsIGJlIHZlcmlmaWVkIHRvIGJlCiBjb25zaXN0ZW50IHdpdGggd2hhdCBpcyBwcm92aWRlZCBoZXJlLgoKIFRoZSB2ZXJzaW9uaW5nIHNjaGVtYSB1c2VzIFtzZW1hbnRpYwogdmVyc2lvbmluZ10oaHR0cDovL3NlbXZlci5vcmcpIHdoZXJlIHRoZSBtYWpvciB2ZXJzaW9uIG51bWJlcgogaW5kaWNhdGVzIGEgYnJlYWtpbmcgY2hhbmdlIGFuZCB0aGUgbWlub3IgdmVyc2lvbiBhbiBhZGRpdGl2ZSwKIG5vbi1icmVha2luZyBjaGFuZ2UuIEJvdGggdmVyc2lvbiBudW1iZXJzIGFyZSBzaWduYWxzIHRvIHVzZXJzCiB3aGF0IHRvIGV4cGVjdCBmcm9tIGRpZmZlcmVudCB2ZXJzaW9ucywgYW5kIHNob3VsZCBiZSBjYXJlZnVsbHkKIGNob3NlbiBiYXNlZCBvbiB0aGUgcHJvZHVjdCBwbGFuLgoKIFRoZSBtYWpvciB2ZXJzaW9uIGlzIGFsc28gcmVmbGVjdGVkIGluIHRoZSBwYWNrYWdlIG5hbWUgb2YgdGhlCiBpbnRlcmZhY2UsIHdoaWNoIG11c3QgZW5kIGluIGB2PG1ham9yLXZlcnNpb24+YCwgYXMgaW4KIGBnb29nbGUuZmVhdHVyZS52MWAuIEZvciBtYWpvciB2ZXJzaW9ucyAwIGFuZCAxLCB0aGUgc3VmZml4IGNhbgogYmUgb21pdHRlZC4gWmVybyBtYWpvciB2ZXJzaW9ucyBtdXN0IG9ubHkgYmUgdXNlZCBmb3IKIGV4cGVyaW1lbnRhbCwgbm9uLUdBIGludGVyZmFjZXMuCgoKCgwKBQQAAgMFEgNVAggKDAoFBAACAwESA1UJEAoMCgUEAAIDAxIDVRMUClsKBAQAAgQSA1kCIxpOIFNvdXJjZSBjb250ZXh0IGZvciB0aGUgcHJvdG9jb2wgYnVmZmVyIHNlcnZpY2UgcmVwcmVzZW50ZWQgYnkgdGhpcwogbWVzc2FnZS4KCgwKBQQAAgQGEgNZAg8KDAoFBAACBAESA1kQHgoMCgUEAAIEAxIDWSEiCjIKBAQAAgUSA1wCHBolIEluY2x1ZGVkIGludGVyZmFjZXMuIFNlZSBbTWl4aW5dW10uCgoMCgUEAAIFBBIDXAIKCgwKBQQAAgUGEgNcCxAKDAoFBAACBQESA1wRFwoMCgUEAAIFAxIDXBobCjAKBAQAAgYSA18CFBojIFRoZSBzb3VyY2Ugc3ludGF4IG9mIHRoZSBzZXJ2aWNlLgoKDAoFBAACBgYSA18CCAoMCgUEAAIGARIDXwkPCgwKBQQAAgYDEgNfEhMKPQoCBAESBGMAeAEaMSBNZXRob2QgcmVwcmVzZW50cyBhIG1ldGhvZCBvZiBhbiBBUEkgaW50ZXJmYWNlLgoKCgoDBAEBEgNjCA4KLgoEBAECABIDZQISGiEgVGhlIHNpbXBsZSBuYW1lIG9mIHRoaXMgbWV0aG9kLgoKDAoFBAECAAUSA2UCCAoMCgUEAQIAARIDZQkNCgwKBQQBAgADEgNlEBEKLwoEBAECARIDaAIeGiIgQSBVUkwgb2YgdGhlIGlucHV0IG1lc3NhZ2UgdHlwZS4KCgwKBQQBAgEFEgNoAggKDAoFBAECAQESA2gJGQoMCgUEAQIBAxIDaBwdCjAKBAQBAgISA2sCHRojIElmIHRydWUsIHRoZSByZXF1ZXN0IGlzIHN0cmVhbWVkLgoKDAoFBAECAgUSA2sCBgoMCgUEAQICARIDawcYCgwKBQQBAgIDEgNrGxwKMgoEBAECAxIDbgIfGiUgVGhlIFVSTCBvZiB0aGUgb3V0cHV0IG1lc3NhZ2UgdHlwZS4KCgwKBQQBAgMFEgNuAggKDAoFBAECAwESA24JGgoMCgUEAQIDAxIDbh0eCjEKBAQBAgQSA3ECHhokIElmIHRydWUsIHRoZSByZXNwb25zZSBpcyBzdHJlYW1lZC4KCgwKBQQBAgQFEgNxAgYKDAoFBAECBAESA3EHGQoMCgUEAQIEAxIDcRwdCjMKBAQBAgUSA3QCHhomIEFueSBtZXRhZGF0YSBhdHRhY2hlZCB0byB0aGUgbWV0aG9kLgoKDAoFBAECBQQSA3QCCgoMCgUEAQIFBhIDdAsRCgwKBQQBAgUBEgN0EhkKDAoFBAECBQMSA3QcHQowCgQEAQIGEgN3AhQaIyBUaGUgc291cmNlIHN5bnRheCBvZiB0aGlzIG1ldGhvZC4KCgwKBQQBAgYGEgN3AggKDAoFBAECBgESA3cJDwoMCgUEAQIGAxIDdxITCsoTCgIEAhIGyAEAzwEBGrsTIERlY2xhcmVzIGFuIEFQSSBJbnRlcmZhY2UgdG8gYmUgaW5jbHVkZWQgaW4gdGhpcyBpbnRlcmZhY2UuIFRoZSBpbmNsdWRpbmcKIGludGVyZmFjZSBtdXN0IHJlZGVjbGFyZSBhbGwgdGhlIG1ldGhvZHMgZnJvbSB0aGUgaW5jbHVkZWQgaW50ZXJmYWNlLCBidXQKIGRvY3VtZW50YXRpb24gYW5kIG9wdGlvbnMgYXJlIGluaGVyaXRlZCBhcyBmb2xsb3dzOgoKIC0gSWYgYWZ0ZXIgY29tbWVudCBhbmQgd2hpdGVzcGFjZSBzdHJpcHBpbmcsIHRoZSBkb2N1bWVudGF0aW9uCiAgIHN0cmluZyBvZiB0aGUgcmVkZWNsYXJlZCBtZXRob2QgaXMgZW1wdHksIGl0IHdpbGwgYmUgaW5oZXJpdGVkCiAgIGZyb20gdGhlIG9yaWdpbmFsIG1ldGhvZC4KCiAtIEVhY2ggYW5ub3RhdGlvbiBiZWxvbmdpbmcgdG8gdGhlIHNlcnZpY2UgY29uZmlnIChodHRwLAogICB2aXNpYmlsaXR5KSB3aGljaCBpcyBub3Qgc2V0IGluIHRoZSByZWRlY2xhcmVkIG1ldGhvZCB3aWxsIGJlCiAgIGluaGVyaXRlZC4KCiAtIElmIGFuIGh0dHAgYW5ub3RhdGlvbiBpcyBpbmhlcml0ZWQsIHRoZSBwYXRoIHBhdHRlcm4gd2lsbCBiZQogICBtb2RpZmllZCBhcyBmb2xsb3dzLiBBbnkgdmVyc2lvbiBwcmVmaXggd2lsbCBiZSByZXBsYWNlZCBieSB0aGUKICAgdmVyc2lvbiBvZiB0aGUgaW5jbHVkaW5nIGludGVyZmFjZSBwbHVzIHRoZSBbcm9vdF1bXSBwYXRoIGlmCiAgIHNwZWNpZmllZC4KCiBFeGFtcGxlIG9mIGEgc2ltcGxlIG1peGluOgoKICAgICBwYWNrYWdlIGdvb2dsZS5hY2wudjE7CiAgICAgc2VydmljZSBBY2Nlc3NDb250cm9sIHsKICAgICAgIC8vIEdldCB0aGUgdW5kZXJseWluZyBBQ0wgb2JqZWN0LgogICAgICAgcnBjIEdldEFjbChHZXRBY2xSZXF1ZXN0KSByZXR1cm5zIChBY2wpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApLmdldCA9ICIvdjEve3Jlc291cmNlPSoqfTpnZXRBY2wiOwogICAgICAgfQogICAgIH0KCiAgICAgcGFja2FnZSBnb29nbGUuc3RvcmFnZS52MjsKICAgICBzZXJ2aWNlIFN0b3JhZ2UgewogICAgICAgcnBjIEdldEFjbChHZXRBY2xSZXF1ZXN0KSByZXR1cm5zIChBY2wpOwoKICAgICAgIC8vIEdldCBhIGRhdGEgcmVjb3JkLgogICAgICAgcnBjIEdldERhdGEoR2V0RGF0YVJlcXVlc3QpIHJldHVybnMgKERhdGEpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApLmdldCA9ICIvdjIve3Jlc291cmNlPSoqfSI7CiAgICAgICB9CiAgICAgfQoKIEV4YW1wbGUgb2YgYSBtaXhpbiBjb25maWd1cmF0aW9uOgoKICAgICBhcGlzOgogICAgIC0gbmFtZTogZ29vZ2xlLnN0b3JhZ2UudjIuU3RvcmFnZQogICAgICAgbWl4aW5zOgogICAgICAgLSBuYW1lOiBnb29nbGUuYWNsLnYxLkFjY2Vzc0NvbnRyb2wKCiBUaGUgbWl4aW4gY29uc3RydWN0IGltcGxpZXMgdGhhdCBhbGwgbWV0aG9kcyBpbiBgQWNjZXNzQ29udHJvbGAgYXJlCiBhbHNvIGRlY2xhcmVkIHdpdGggc2FtZSBuYW1lIGFuZCByZXF1ZXN0L3Jlc3BvbnNlIHR5cGVzIGluCiBgU3RvcmFnZWAuIEEgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3Igb3IgYW5ub3RhdGlvbiBwcm9jZXNzb3Igd2lsbAogc2VlIHRoZSBlZmZlY3RpdmUgYFN0b3JhZ2UuR2V0QWNsYCBtZXRob2QgYWZ0ZXIgaW5oZXJpdGluZwogZG9jdW1lbnRhdGlvbiBhbmQgYW5ub3RhdGlvbnMgYXMgZm9sbG93czoKCiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIC8vIEdldCB0aGUgdW5kZXJseWluZyBBQ0wgb2JqZWN0LgogICAgICAgcnBjIEdldEFjbChHZXRBY2xSZXF1ZXN0KSByZXR1cm5zIChBY2wpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApLmdldCA9ICIvdjIve3Jlc291cmNlPSoqfTpnZXRBY2wiOwogICAgICAgfQogICAgICAgLi4uCiAgICAgfQoKIE5vdGUgaG93IHRoZSB2ZXJzaW9uIGluIHRoZSBwYXRoIHBhdHRlcm4gY2hhbmdlZCBmcm9tIGB2MWAgdG8gYHYyYC4KCiBJZiB0aGUgYHJvb3RgIGZpZWxkIGluIHRoZSBtaXhpbiBpcyBzcGVjaWZpZWQsIGl0IHNob3VsZCBiZSBhCiByZWxhdGl2ZSBwYXRoIHVuZGVyIHdoaWNoIGluaGVyaXRlZCBIVFRQIHBhdGhzIGFyZSBwbGFjZWQuIEV4YW1wbGU6CgogICAgIGFwaXM6CiAgICAgLSBuYW1lOiBnb29nbGUuc3RvcmFnZS52Mi5TdG9yYWdlCiAgICAgICBtaXhpbnM6CiAgICAgICAtIG5hbWU6IGdvb2dsZS5hY2wudjEuQWNjZXNzQ29udHJvbAogICAgICAgICByb290OiBhY2xzCgogVGhpcyBpbXBsaWVzIHRoZSBmb2xsb3dpbmcgaW5oZXJpdGVkIEhUVFAgYW5ub3RhdGlvbjoKCiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIC8vIEdldCB0aGUgdW5kZXJseWluZyBBQ0wgb2JqZWN0LgogICAgICAgcnBjIEdldEFjbChHZXRBY2xSZXF1ZXN0KSByZXR1cm5zIChBY2wpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApLmdldCA9ICIvdjIvYWNscy97cmVzb3VyY2U9Kip9OmdldEFjbCI7CiAgICAgICB9CiAgICAgICAuLi4KICAgICB9CgoLCgMEAgESBMgBCA0KTAoEBAICABIEygECEho+IFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgaW50ZXJmYWNlIHdoaWNoIGlzIGluY2x1ZGVkLgoKDQoFBAICAAUSBMoBAggKDQoFBAICAAESBMoBCQ0KDQoFBAICAAMSBMoBEBEKWwoEBAICARIEzgECEhpNIElmIG5vbi1lbXB0eSBzcGVjaWZpZXMgYSBwYXRoIHVuZGVyIHdoaWNoIGluaGVyaXRlZCBIVFRQIHBhdGhzCiBhcmUgcm9vdGVkLgoKDQoFBAICAQUSBM4BAggKDQoFBAICAQESBM4BCQ0KDQoFBAICAQMSBM4BEBFiBnByb3RvMwrYJQoeZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvEg9nb29nbGUucHJvdG9idWYiOgoIRHVyYXRpb24SGAoHc2Vjb25kcxgBIAEoA1IHc2Vjb25kcxIUCgVuYW5vcxgCIAEoBVIFbmFub3NCgwEKE2NvbS5nb29nbGUucHJvdG9idWZCDUR1cmF0aW9uUHJvdG9QAVoxZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vZHVyYXRpb25wYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0raIwoGEgQeAHMBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAfCgkKAggfEgMjAB8KCAoBCBIDJABICgkKAggLEgMkAEgKCAoBCBIDJQAsCgkKAggBEgMlACwKCAoBCBIDJgAuCgkKAggIEgMmAC4KCAoBCBIDJwAiCgkKAggKEgMnACIKCAoBCBIDKAAhCgkKAggkEgMoACEKnhAKAgQAEgRmAHMBGpEQIEEgRHVyYXRpb24gcmVwcmVzZW50cyBhIHNpZ25lZCwgZml4ZWQtbGVuZ3RoIHNwYW4gb2YgdGltZSByZXByZXNlbnRlZAogYXMgYSBjb3VudCBvZiBzZWNvbmRzIGFuZCBmcmFjdGlvbnMgb2Ygc2Vjb25kcyBhdCBuYW5vc2Vjb25kCiByZXNvbHV0aW9uLiBJdCBpcyBpbmRlcGVuZGVudCBvZiBhbnkgY2FsZW5kYXIgYW5kIGNvbmNlcHRzIGxpa2UgImRheSIKIG9yICJtb250aCIuIEl0IGlzIHJlbGF0ZWQgdG8gVGltZXN0YW1wIGluIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgogdHdvIFRpbWVzdGFtcCB2YWx1ZXMgaXMgYSBEdXJhdGlvbiBhbmQgaXQgY2FuIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQKIGZyb20gYSBUaW1lc3RhbXAuIFJhbmdlIGlzIGFwcHJveGltYXRlbHkgKy0xMCwwMDAgeWVhcnMuCgogIyBFeGFtcGxlcwoKIEV4YW1wbGUgMTogQ29tcHV0ZSBEdXJhdGlvbiBmcm9tIHR3byBUaW1lc3RhbXBzIGluIHBzZXVkbyBjb2RlLgoKICAgICBUaW1lc3RhbXAgc3RhcnQgPSAuLi47CiAgICAgVGltZXN0YW1wIGVuZCA9IC4uLjsKICAgICBEdXJhdGlvbiBkdXJhdGlvbiA9IC4uLjsKCiAgICAgZHVyYXRpb24uc2Vjb25kcyA9IGVuZC5zZWNvbmRzIC0gc3RhcnQuc2Vjb25kczsKICAgICBkdXJhdGlvbi5uYW5vcyA9IGVuZC5uYW5vcyAtIHN0YXJ0Lm5hbm9zOwoKICAgICBpZiAoZHVyYXRpb24uc2Vjb25kcyA8IDAgJiYgZHVyYXRpb24ubmFub3MgPiAwKSB7CiAgICAgICBkdXJhdGlvbi5zZWNvbmRzICs9IDE7CiAgICAgICBkdXJhdGlvbi5uYW5vcyAtPSAxMDAwMDAwMDAwOwogICAgIH0gZWxzZSBpZiAoZHVyYXRpb24uc2Vjb25kcyA+IDAgJiYgZHVyYXRpb24ubmFub3MgPCAwKSB7CiAgICAgICBkdXJhdGlvbi5zZWNvbmRzIC09IDE7CiAgICAgICBkdXJhdGlvbi5uYW5vcyArPSAxMDAwMDAwMDAwOwogICAgIH0KCiBFeGFtcGxlIDI6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gVGltZXN0YW1wICsgRHVyYXRpb24gaW4gcHNldWRvIGNvZGUuCgogICAgIFRpbWVzdGFtcCBzdGFydCA9IC4uLjsKICAgICBEdXJhdGlvbiBkdXJhdGlvbiA9IC4uLjsKICAgICBUaW1lc3RhbXAgZW5kID0gLi4uOwoKICAgICBlbmQuc2Vjb25kcyA9IHN0YXJ0LnNlY29uZHMgKyBkdXJhdGlvbi5zZWNvbmRzOwogICAgIGVuZC5uYW5vcyA9IHN0YXJ0Lm5hbm9zICsgZHVyYXRpb24ubmFub3M7CgogICAgIGlmIChlbmQubmFub3MgPCAwKSB7CiAgICAgICBlbmQuc2Vjb25kcyAtPSAxOwogICAgICAgZW5kLm5hbm9zICs9IDEwMDAwMDAwMDA7CiAgICAgfSBlbHNlIGlmIChlbmQubmFub3MgPj0gMTAwMDAwMDAwMCkgewogICAgICAgZW5kLnNlY29uZHMgKz0gMTsKICAgICAgIGVuZC5uYW5vcyAtPSAxMDAwMDAwMDAwOwogICAgIH0KCiBFeGFtcGxlIDM6IENvbXB1dGUgRHVyYXRpb24gZnJvbSBkYXRldGltZS50aW1lZGVsdGEgaW4gUHl0aG9uLgoKICAgICB0ZCA9IGRhdGV0aW1lLnRpbWVkZWx0YShkYXlzPTMsIG1pbnV0ZXM9MTApCiAgICAgZHVyYXRpb24gPSBEdXJhdGlvbigpCiAgICAgZHVyYXRpb24uRnJvbVRpbWVkZWx0YSh0ZCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgRHVyYXRpb24gdHlwZSBpcyBlbmNvZGVkIGFzIGEgc3RyaW5nIHJhdGhlciB0aGFuIGFuCiBvYmplY3QsIHdoZXJlIHRoZSBzdHJpbmcgZW5kcyBpbiB0aGUgc3VmZml4ICJzIiAoaW5kaWNhdGluZyBzZWNvbmRzKSBhbmQKIGlzIHByZWNlZGVkIGJ5IHRoZSBudW1iZXIgb2Ygc2Vjb25kcywgd2l0aCBuYW5vc2Vjb25kcyBleHByZXNzZWQgYXMKIGZyYWN0aW9uYWwgc2Vjb25kcy4gRm9yIGV4YW1wbGUsIDMgc2Vjb25kcyB3aXRoIDAgbmFub3NlY29uZHMgc2hvdWxkIGJlCiBlbmNvZGVkIGluIEpTT04gZm9ybWF0IGFzICIzcyIsIHdoaWxlIDMgc2Vjb25kcyBhbmQgMSBuYW5vc2Vjb25kIHNob3VsZAogYmUgZXhwcmVzc2VkIGluIEpTT04gZm9ybWF0IGFzICIzLjAwMDAwMDAwMXMiLCBhbmQgMyBzZWNvbmRzIGFuZCAxCiBtaWNyb3NlY29uZCBzaG91bGQgYmUgZXhwcmVzc2VkIGluIEpTT04gZm9ybWF0IGFzICIzLjAwMDAwMXMiLgoKCgoKCgMEAAESA2YIEArcAQoEBAACABIDagIUGs4BIFNpZ25lZCBzZWNvbmRzIG9mIHRoZSBzcGFuIG9mIHRpbWUuIE11c3QgYmUgZnJvbSAtMzE1LDU3NiwwMDAsMDAwCiB0byArMzE1LDU3NiwwMDAsMDAwIGluY2x1c2l2ZS4gTm90ZTogdGhlc2UgYm91bmRzIGFyZSBjb21wdXRlZCBmcm9tOgogNjAgc2VjL21pbiAqIDYwIG1pbi9ociAqIDI0IGhyL2RheSAqIDM2NS4yNSBkYXlzL3llYXIgKiAxMDAwMCB5ZWFycwoKDAoFBAACAAUSA2oCBwoMCgUEAAIAARIDaggPCgwKBQQAAgADEgNqEhMKgwMKBAQAAgESA3ICEhr1AiBTaWduZWQgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbiBvZiB0aGUgc3Bhbgogb2YgdGltZS4gRHVyYXRpb25zIGxlc3MgdGhhbiBvbmUgc2Vjb25kIGFyZSByZXByZXNlbnRlZCB3aXRoIGEgMAogYHNlY29uZHNgIGZpZWxkIGFuZCBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGBuYW5vc2AgZmllbGQuIEZvciBkdXJhdGlvbnMKIG9mIG9uZSBzZWNvbmQgb3IgbW9yZSwgYSBub24temVybyB2YWx1ZSBmb3IgdGhlIGBuYW5vc2AgZmllbGQgbXVzdCBiZQogb2YgdGhlIHNhbWUgc2lnbiBhcyB0aGUgYHNlY29uZHNgIGZpZWxkLiBNdXN0IGJlIGZyb20gLTk5OSw5OTksOTk5CiB0byArOTk5LDk5OSw5OTkgaW5jbHVzaXZlLgoKDAoFBAACAQUSA3ICBwoMCgUEAAIBARIDcggNCgwKBQQAAgEDEgNyEBFiBnByb3RvMwq/EgobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvEg9nb29nbGUucHJvdG9idWYiBwoFRW1wdHlCfQoTY29tLmdvb2dsZS5wcm90b2J1ZkIKRW1wdHlQcm90b1ABWi5nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9lbXB0eXBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSv4QCgYSBB4AMxAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAEUKCQoCCAsSAyMARQoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlACsKCQoCCAgSAyUAKwoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQoICgEIEgMoAB8KCQoCCB8SAygAHwr7AgoCBAASAzMAEBrvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEVtcHR5YCBpcyBlbXB0eSBKU09OIG9iamVjdCBge31gLgoKCgoDBAABEgMzCA1iBnByb3RvMwqKPQogZ29vZ2xlL3Byb3RvYnVmL2ZpZWxkX21hc2sucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIhCglGaWVsZE1hc2sSFAoFcGF0aHMYASADKAlSBXBhdGhzQoUBChNjb20uZ29vZ2xlLnByb3RvYnVmQg5GaWVsZE1hc2tQcm90b1ABWjJnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9maWVsZG1hc2twYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0qhOwoHEgUeAPQBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMALAoJCgIIARIDIwAsCggKAQgSAyQALwoJCgIICBIDJAAvCggKAQgSAyUAIgoJCgIIChIDJQAiCggKAQgSAyYAIQoJCgIIJBIDJgAhCggKAQgSAycASQoJCgIICxIDJwBJCggKAQgSAygAHwoJCgIIHxIDKAAfCrIsCgIEABIG8QEA9AEBGqMsIGBGaWVsZE1hc2tgIHJlcHJlc2VudHMgYSBzZXQgb2Ygc3ltYm9saWMgZmllbGQgcGF0aHMsIGZvciBleGFtcGxlOgoKICAgICBwYXRoczogImYuYSIKICAgICBwYXRoczogImYuYi5kIgoKIEhlcmUgYGZgIHJlcHJlc2VudHMgYSBmaWVsZCBpbiBzb21lIHJvb3QgbWVzc2FnZSwgYGFgIGFuZCBgYmAKIGZpZWxkcyBpbiB0aGUgbWVzc2FnZSBmb3VuZCBpbiBgZmAsIGFuZCBgZGAgYSBmaWVsZCBmb3VuZCBpbiB0aGUKIG1lc3NhZ2UgaW4gYGYuYmAuCgogRmllbGQgbWFza3MgYXJlIHVzZWQgdG8gc3BlY2lmeSBhIHN1YnNldCBvZiBmaWVsZHMgdGhhdCBzaG91bGQgYmUKIHJldHVybmVkIGJ5IGEgZ2V0IG9wZXJhdGlvbiBvciBtb2RpZmllZCBieSBhbiB1cGRhdGUgb3BlcmF0aW9uLgogRmllbGQgbWFza3MgYWxzbyBoYXZlIGEgY3VzdG9tIEpTT04gZW5jb2RpbmcgKHNlZSBiZWxvdykuCgogIyBGaWVsZCBNYXNrcyBpbiBQcm9qZWN0aW9ucwoKIFdoZW4gdXNlZCBpbiB0aGUgY29udGV4dCBvZiBhIHByb2plY3Rpb24sIGEgcmVzcG9uc2UgbWVzc2FnZSBvcgogc3ViLW1lc3NhZ2UgaXMgZmlsdGVyZWQgYnkgdGhlIEFQSSB0byBvbmx5IGNvbnRhaW4gdGhvc2UgZmllbGRzIGFzCiBzcGVjaWZpZWQgaW4gdGhlIG1hc2suIEZvciBleGFtcGxlLCBpZiB0aGUgbWFzayBpbiB0aGUgcHJldmlvdXMKIGV4YW1wbGUgaXMgYXBwbGllZCB0byBhIHJlc3BvbnNlIG1lc3NhZ2UgYXMgZm9sbG93czoKCiAgICAgZiB7CiAgICAgICBhIDogMjIKICAgICAgIGIgewogICAgICAgICBkIDogMQogICAgICAgICB4IDogMgogICAgICAgfQogICAgICAgeSA6IDEzCiAgICAgfQogICAgIHo6IDgKCiBUaGUgcmVzdWx0IHdpbGwgbm90IGNvbnRhaW4gc3BlY2lmaWMgdmFsdWVzIGZvciBmaWVsZHMgeCx5IGFuZCB6CiAodGhlaXIgdmFsdWUgd2lsbCBiZSBzZXQgdG8gdGhlIGRlZmF1bHQsIGFuZCBvbWl0dGVkIGluIHByb3RvIHRleHQKIG91dHB1dCk6CgoKICAgICBmIHsKICAgICAgIGEgOiAyMgogICAgICAgYiB7CiAgICAgICAgIGQgOiAxCiAgICAgICB9CiAgICAgfQoKIEEgcmVwZWF0ZWQgZmllbGQgaXMgbm90IGFsbG93ZWQgZXhjZXB0IGF0IHRoZSBsYXN0IHBvc2l0aW9uIG9mIGEKIHBhdGhzIHN0cmluZy4KCiBJZiBhIEZpZWxkTWFzayBvYmplY3QgaXMgbm90IHByZXNlbnQgaW4gYSBnZXQgb3BlcmF0aW9uLCB0aGUKIG9wZXJhdGlvbiBhcHBsaWVzIHRvIGFsbCBmaWVsZHMgKGFzIGlmIGEgRmllbGRNYXNrIG9mIGFsbCBmaWVsZHMKIGhhZCBiZWVuIHNwZWNpZmllZCkuCgogTm90ZSB0aGF0IGEgZmllbGQgbWFzayBkb2VzIG5vdCBuZWNlc3NhcmlseSBhcHBseSB0byB0aGUKIHRvcC1sZXZlbCByZXNwb25zZSBtZXNzYWdlLiBJbiBjYXNlIG9mIGEgUkVTVCBnZXQgb3BlcmF0aW9uLCB0aGUKIGZpZWxkIG1hc2sgYXBwbGllcyBkaXJlY3RseSB0byB0aGUgcmVzcG9uc2UsIGJ1dCBpbiBjYXNlIG9mIGEgUkVTVAogbGlzdCBvcGVyYXRpb24sIHRoZSBtYXNrIGluc3RlYWQgYXBwbGllcyB0byBlYWNoIGluZGl2aWR1YWwgbWVzc2FnZQogaW4gdGhlIHJldHVybmVkIHJlc291cmNlIGxpc3QuIEluIGNhc2Ugb2YgYSBSRVNUIGN1c3RvbSBtZXRob2QsCiBvdGhlciBkZWZpbml0aW9ucyBtYXkgYmUgdXNlZC4gV2hlcmUgdGhlIG1hc2sgYXBwbGllcyB3aWxsIGJlCiBjbGVhcmx5IGRvY3VtZW50ZWQgdG9nZXRoZXIgd2l0aCBpdHMgZGVjbGFyYXRpb24gaW4gdGhlIEFQSS4gIEluCiBhbnkgY2FzZSwgdGhlIGVmZmVjdCBvbiB0aGUgcmV0dXJuZWQgcmVzb3VyY2UvcmVzb3VyY2VzIGlzIHJlcXVpcmVkCiBiZWhhdmlvciBmb3IgQVBJcy4KCiAjIEZpZWxkIE1hc2tzIGluIFVwZGF0ZSBPcGVyYXRpb25zCgogQSBmaWVsZCBtYXNrIGluIHVwZGF0ZSBvcGVyYXRpb25zIHNwZWNpZmllcyB3aGljaCBmaWVsZHMgb2YgdGhlCiB0YXJnZXRlZCByZXNvdXJjZSBhcmUgZ29pbmcgdG8gYmUgdXBkYXRlZC4gVGhlIEFQSSBpcyByZXF1aXJlZAogdG8gb25seSBjaGFuZ2UgdGhlIHZhbHVlcyBvZiB0aGUgZmllbGRzIGFzIHNwZWNpZmllZCBpbiB0aGUgbWFzawogYW5kIGxlYXZlIHRoZSBvdGhlcnMgdW50b3VjaGVkLiBJZiBhIHJlc291cmNlIGlzIHBhc3NlZCBpbiB0bwogZGVzY3JpYmUgdGhlIHVwZGF0ZWQgdmFsdWVzLCB0aGUgQVBJIGlnbm9yZXMgdGhlIHZhbHVlcyBvZiBhbGwKIGZpZWxkcyBub3QgY292ZXJlZCBieSB0aGUgbWFzay4KCiBJZiBhIHJlcGVhdGVkIGZpZWxkIGlzIHNwZWNpZmllZCBmb3IgYW4gdXBkYXRlIG9wZXJhdGlvbiwgbmV3IHZhbHVlcyB3aWxsCiBiZSBhcHBlbmRlZCB0byB0aGUgZXhpc3RpbmcgcmVwZWF0ZWQgZmllbGQgaW4gdGhlIHRhcmdldCByZXNvdXJjZS4gTm90ZSB0aGF0CiBhIHJlcGVhdGVkIGZpZWxkIGlzIG9ubHkgYWxsb3dlZCBpbiB0aGUgbGFzdCBwb3NpdGlvbiBvZiBhIGBwYXRoc2Agc3RyaW5nLgoKIElmIGEgc3ViLW1lc3NhZ2UgaXMgc3BlY2lmaWVkIGluIHRoZSBsYXN0IHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBtYXNrIGZvciBhbgogdXBkYXRlIG9wZXJhdGlvbiwgdGhlbiBuZXcgdmFsdWUgd2lsbCBiZSBtZXJnZWQgaW50byB0aGUgZXhpc3Rpbmcgc3ViLW1lc3NhZ2UKIGluIHRoZSB0YXJnZXQgcmVzb3VyY2UuCgogRm9yIGV4YW1wbGUsIGdpdmVuIHRoZSB0YXJnZXQgbWVzc2FnZToKCiAgICAgZiB7CiAgICAgICBiIHsKICAgICAgICAgZDogMQogICAgICAgICB4OiAyCiAgICAgICB9CiAgICAgICBjOiBbMV0KICAgICB9CgogQW5kIGFuIHVwZGF0ZSBtZXNzYWdlOgoKICAgICBmIHsKICAgICAgIGIgewogICAgICAgICBkOiAxMAogICAgICAgfQogICAgICAgYzogWzJdCiAgICAgfQoKIHRoZW4gaWYgdGhlIGZpZWxkIG1hc2sgaXM6CgogIHBhdGhzOiBbImYuYiIsICJmLmMiXQoKIHRoZW4gdGhlIHJlc3VsdCB3aWxsIGJlOgoKICAgICBmIHsKICAgICAgIGIgewogICAgICAgICBkOiAxMAogICAgICAgICB4OiAyCiAgICAgICB9CiAgICAgICBjOiBbMSwgMl0KICAgICB9CgogQW4gaW1wbGVtZW50YXRpb24gbWF5IHByb3ZpZGUgb3B0aW9ucyB0byBvdmVycmlkZSB0aGlzIGRlZmF1bHQgYmVoYXZpb3IgZm9yCiByZXBlYXRlZCBhbmQgbWVzc2FnZSBmaWVsZHMuCgogSW4gb3JkZXIgdG8gcmVzZXQgYSBmaWVsZCdzIHZhbHVlIHRvIHRoZSBkZWZhdWx0LCB0aGUgZmllbGQgbXVzdAogYmUgaW4gdGhlIG1hc2sgYW5kIHNldCB0byB0aGUgZGVmYXVsdCB2YWx1ZSBpbiB0aGUgcHJvdmlkZWQgcmVzb3VyY2UuCiBIZW5jZSwgaW4gb3JkZXIgdG8gcmVzZXQgYWxsIGZpZWxkcyBvZiBhIHJlc291cmNlLCBwcm92aWRlIGEgZGVmYXVsdAogaW5zdGFuY2Ugb2YgdGhlIHJlc291cmNlIGFuZCBzZXQgYWxsIGZpZWxkcyBpbiB0aGUgbWFzaywgb3IgZG8KIG5vdCBwcm92aWRlIGEgbWFzayBhcyBkZXNjcmliZWQgYmVsb3cuCgogSWYgYSBmaWVsZCBtYXNrIGlzIG5vdCBwcmVzZW50IG9uIHVwZGF0ZSwgdGhlIG9wZXJhdGlvbiBhcHBsaWVzIHRvCiBhbGwgZmllbGRzIChhcyBpZiBhIGZpZWxkIG1hc2sgb2YgYWxsIGZpZWxkcyBoYXMgYmVlbiBzcGVjaWZpZWQpLgogTm90ZSB0aGF0IGluIHRoZSBwcmVzZW5jZSBvZiBzY2hlbWEgZXZvbHV0aW9uLCB0aGlzIG1heSBtZWFuIHRoYXQKIGZpZWxkcyB0aGUgY2xpZW50IGRvZXMgbm90IGtub3cgYW5kIGhhcyB0aGVyZWZvcmUgbm90IGZpbGxlZCBpbnRvCiB0aGUgcmVxdWVzdCB3aWxsIGJlIHJlc2V0IHRvIHRoZWlyIGRlZmF1bHQuIElmIHRoaXMgaXMgdW53YW50ZWQKIGJlaGF2aW9yLCBhIHNwZWNpZmljIHNlcnZpY2UgbWF5IHJlcXVpcmUgYSBjbGllbnQgdG8gYWx3YXlzIHNwZWNpZnkKIGEgZmllbGQgbWFzaywgcHJvZHVjaW5nIGFuIGVycm9yIGlmIG5vdC4KCiBBcyB3aXRoIGdldCBvcGVyYXRpb25zLCB0aGUgbG9jYXRpb24gb2YgdGhlIHJlc291cmNlIHdoaWNoCiBkZXNjcmliZXMgdGhlIHVwZGF0ZWQgdmFsdWVzIGluIHRoZSByZXF1ZXN0IG1lc3NhZ2UgZGVwZW5kcyBvbiB0aGUKIG9wZXJhdGlvbiBraW5kLiBJbiBhbnkgY2FzZSwgdGhlIGVmZmVjdCBvZiB0aGUgZmllbGQgbWFzayBpcwogcmVxdWlyZWQgdG8gYmUgaG9ub3JlZCBieSB0aGUgQVBJLgoKICMjIENvbnNpZGVyYXRpb25zIGZvciBIVFRQIFJFU1QKCiBUaGUgSFRUUCBraW5kIG9mIGFuIHVwZGF0ZSBvcGVyYXRpb24gd2hpY2ggdXNlcyBhIGZpZWxkIG1hc2sgbXVzdAogYmUgc2V0IHRvIFBBVENIIGluc3RlYWQgb2YgUFVUIGluIG9yZGVyIHRvIHNhdGlzZnkgSFRUUCBzZW1hbnRpY3MKIChQVVQgbXVzdCBvbmx5IGJlIHVzZWQgZm9yIGZ1bGwgdXBkYXRlcykuCgogIyBKU09OIEVuY29kaW5nIG9mIEZpZWxkIE1hc2tzCgogSW4gSlNPTiwgYSBmaWVsZCBtYXNrIGlzIGVuY29kZWQgYXMgYSBzaW5nbGUgc3RyaW5nIHdoZXJlIHBhdGhzIGFyZQogc2VwYXJhdGVkIGJ5IGEgY29tbWEuIEZpZWxkcyBuYW1lIGluIGVhY2ggcGF0aCBhcmUgY29udmVydGVkCiB0by9mcm9tIGxvd2VyLWNhbWVsIG5hbWluZyBjb252ZW50aW9ucy4KCiBBcyBhbiBleGFtcGxlLCBjb25zaWRlciB0aGUgZm9sbG93aW5nIG1lc3NhZ2UgZGVjbGFyYXRpb25zOgoKICAgICBtZXNzYWdlIFByb2ZpbGUgewogICAgICAgVXNlciB1c2VyID0gMTsKICAgICAgIFBob3RvIHBob3RvID0gMjsKICAgICB9CiAgICAgbWVzc2FnZSBVc2VyIHsKICAgICAgIHN0cmluZyBkaXNwbGF5X25hbWUgPSAxOwogICAgICAgc3RyaW5nIGFkZHJlc3MgPSAyOwogICAgIH0KCiBJbiBwcm90byBhIGZpZWxkIG1hc2sgZm9yIGBQcm9maWxlYCBtYXkgbG9vayBhcyBzdWNoOgoKICAgICBtYXNrIHsKICAgICAgIHBhdGhzOiAidXNlci5kaXNwbGF5X25hbWUiCiAgICAgICBwYXRoczogInBob3RvIgogICAgIH0KCiBJbiBKU09OLCB0aGUgc2FtZSBtYXNrIGlzIHJlcHJlc2VudGVkIGFzIGJlbG93OgoKICAgICB7CiAgICAgICBtYXNrOiAidXNlci5kaXNwbGF5TmFtZSxwaG90byIKICAgICB9CgogIyBGaWVsZCBNYXNrcyBhbmQgT25lb2YgRmllbGRzCgogRmllbGQgbWFza3MgdHJlYXQgZmllbGRzIGluIG9uZW9mcyBqdXN0IGFzIHJlZ3VsYXIgZmllbGRzLiBDb25zaWRlciB0aGUKIGZvbGxvd2luZyBtZXNzYWdlOgoKICAgICBtZXNzYWdlIFNhbXBsZU1lc3NhZ2UgewogICAgICAgb25lb2YgdGVzdF9vbmVvZiB7CiAgICAgICAgIHN0cmluZyBuYW1lID0gNDsKICAgICAgICAgU3ViTWVzc2FnZSBzdWJfbWVzc2FnZSA9IDk7CiAgICAgICB9CiAgICAgfQoKIFRoZSBmaWVsZCBtYXNrIGNhbiBiZToKCiAgICAgbWFzayB7CiAgICAgICBwYXRoczogIm5hbWUiCiAgICAgfQoKIE9yOgoKICAgICBtYXNrIHsKICAgICAgIHBhdGhzOiAic3ViX21lc3NhZ2UiCiAgICAgfQoKIE5vdGUgdGhhdCBvbmVvZiB0eXBlIG5hbWVzICgidGVzdF9vbmVvZiIgaW4gdGhpcyBjYXNlKSBjYW5ub3QgYmUgdXNlZCBpbgogcGF0aHMuCgogIyMgRmllbGQgTWFzayBWZXJpZmljYXRpb24KCiBUaGUgaW1wbGVtZW50YXRpb24gb2YgYW55IEFQSSBtZXRob2Qgd2hpY2ggaGFzIGEgRmllbGRNYXNrIHR5cGUgZmllbGQgaW4gdGhlCiByZXF1ZXN0IHNob3VsZCB2ZXJpZnkgdGhlIGluY2x1ZGVkIGZpZWxkIHBhdGhzLCBhbmQgcmV0dXJuIGFuCiBgSU5WQUxJRF9BUkdVTUVOVGAgZXJyb3IgaWYgYW55IHBhdGggaXMgdW5tYXBwYWJsZS4KCgsKAwQAARIE8QEIEQosCgQEAAIAEgTzAQIcGh4gVGhlIHNldCBvZiBmaWVsZCBtYXNrIHBhdGhzLgoKDQoFBAACAAQSBPMBAgoKDQoFBAACAAUSBPMBCxEKDQoFBAACAAESBPMBEhcKDQoFBAACAAMSBPMBGhtiBnByb3RvMwrHMQofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjsKCVRpbWVzdGFtcBIYCgdzZWNvbmRzGAEgASgDUgdzZWNvbmRzEhQKBW5hbm9zGAIgASgFUgVuYW5vc0KFAQoTY29tLmdvb2dsZS5wcm90b2J1ZkIOVGltZXN0YW1wUHJvdG9QAVoyZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vdGltZXN0YW1wcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKxS8KBxIFHgCSAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAB8KCQoCCB8SAyMAHwoICgEIEgMkAEkKCQoCCAsSAyQASQoICgEIEgMlACwKCQoCCAESAyUALAoICgEIEgMmAC8KCQoCCAgSAyYALwoICgEIEgMnACIKCQoCCAoSAycAIgoICgEIEgMoACEKCQoCCCQSAygAIQreHQoCBAASBocBAJIBARrPHSBBIFRpbWVzdGFtcCByZXByZXNlbnRzIGEgcG9pbnQgaW4gdGltZSBpbmRlcGVuZGVudCBvZiBhbnkgdGltZSB6b25lIG9yIGxvY2FsCiBjYWxlbmRhciwgZW5jb2RlZCBhcyBhIGNvdW50IG9mIHNlY29uZHMgYW5kIGZyYWN0aW9ucyBvZiBzZWNvbmRzIGF0CiBuYW5vc2Vjb25kIHJlc29sdXRpb24uIFRoZSBjb3VudCBpcyByZWxhdGl2ZSB0byBhbiBlcG9jaCBhdCBVVEMgbWlkbmlnaHQgb24KIEphbnVhcnkgMSwgMTk3MCwgaW4gdGhlIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIgd2hpY2ggZXh0ZW5kcyB0aGUKIEdyZWdvcmlhbiBjYWxlbmRhciBiYWNrd2FyZHMgdG8geWVhciBvbmUuCgogQWxsIG1pbnV0ZXMgYXJlIDYwIHNlY29uZHMgbG9uZy4gTGVhcCBzZWNvbmRzIGFyZSAic21lYXJlZCIgc28gdGhhdCBubyBsZWFwCiBzZWNvbmQgdGFibGUgaXMgbmVlZGVkIGZvciBpbnRlcnByZXRhdGlvbiwgdXNpbmcgYSBbMjQtaG91ciBsaW5lYXIKIHNtZWFyXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS90aW1lL3NtZWFyKS4KCiBUaGUgcmFuZ2UgaXMgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0byA5OTk5LTEyLTMxVDIzOjU5OjU5Ljk5OTk5OTk5OVouIEJ5CiByZXN0cmljdGluZyB0byB0aGF0IHJhbmdlLCB3ZSBlbnN1cmUgdGhhdCB3ZSBjYW4gY29udmVydCB0byBhbmQgZnJvbSBbUkZDCiAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGRhdGUgc3RyaW5ncy4KCiAjIEV4YW1wbGVzCgogRXhhbXBsZSAxOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGB0aW1lKClgLgoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0aW1lKE5VTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKDApOwoKIEV4YW1wbGUgMjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgZ2V0dGltZW9mZGF5KClgLgoKICAgICBzdHJ1Y3QgdGltZXZhbCB0djsKICAgICBnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModHYudHZfc2VjKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKHR2LnR2X3VzZWMgKiAxMDAwKTsKCiBFeGFtcGxlIDM6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gV2luMzIgYEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKClgLgoKICAgICBGSUxFVElNRSBmdDsKICAgICBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgmZnQpOwogICAgIFVJTlQ2NCB0aWNrcyA9ICgoKFVJTlQ2NClmdC5kd0hpZ2hEYXRlVGltZSkgPDwgMzIpIHwgZnQuZHdMb3dEYXRlVGltZTsKCiAgICAgLy8gQSBXaW5kb3dzIHRpY2sgaXMgMTAwIG5hbm9zZWNvbmRzLiBXaW5kb3dzIGVwb2NoIDE2MDEtMDEtMDFUMDA6MDA6MDBaCiAgICAgLy8gaXMgMTE2NDQ0NzM2MDAgc2Vjb25kcyBiZWZvcmUgVW5peCBlcG9jaCAxOTcwLTAxLTAxVDAwOjAwOjAwWi4KICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcygoSU5UNjQpICgodGlja3MgLyAxMDAwMDAwMCkgLSAxMTY0NDQ3MzYwMExMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygoSU5UMzIpICgodGlja3MgJSAxMDAwMDAwMCkgKiAxMDApKTsKCiBFeGFtcGxlIDQ6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gSmF2YSBgU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKClgLgoKICAgICBsb25nIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wID0gVGltZXN0YW1wLm5ld0J1aWxkZXIoKS5zZXRTZWNvbmRzKG1pbGxpcyAvIDEwMDApCiAgICAgICAgIC5zZXROYW5vcygoaW50KSAoKG1pbGxpcyAlIDEwMDApICogMTAwMDAwMCkpLmJ1aWxkKCk7CgoKIEV4YW1wbGUgNTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBKYXZhIGBJbnN0YW50Lm5vdygpYC4KCiAgICAgSW5zdGFudCBub3cgPSBJbnN0YW50Lm5vdygpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wID0KICAgICAgICAgVGltZXN0YW1wLm5ld0J1aWxkZXIoKS5zZXRTZWNvbmRzKG5vdy5nZXRFcG9jaFNlY29uZCgpKQogICAgICAgICAgICAgLnNldE5hbm9zKG5vdy5nZXROYW5vKCkpLmJ1aWxkKCk7CgoKIEV4YW1wbGUgNjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBjdXJyZW50IHRpbWUgaW4gUHl0aG9uLgoKICAgICB0aW1lc3RhbXAgPSBUaW1lc3RhbXAoKQogICAgIHRpbWVzdGFtcC5HZXRDdXJyZW50VGltZSgpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIFRpbWVzdGFtcCB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgaW4gdGhlCiBbUkZDIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZm9ybWF0LiBUaGF0IGlzLCB0aGUKIGZvcm1hdCBpcyAie3llYXJ9LXttb250aH0te2RheX1Ue2hvdXJ9OnttaW59OntzZWN9Wy57ZnJhY19zZWN9XVoiCiB3aGVyZSB7eWVhcn0gaXMgYWx3YXlzIGV4cHJlc3NlZCB1c2luZyBmb3VyIGRpZ2l0cyB3aGlsZSB7bW9udGh9LCB7ZGF5fSwKIHtob3VyfSwge21pbn0sIGFuZCB7c2VjfSBhcmUgemVyby1wYWRkZWQgdG8gdHdvIGRpZ2l0cyBlYWNoLiBUaGUgZnJhY3Rpb25hbAogc2Vjb25kcywgd2hpY2ggY2FuIGdvIHVwIHRvIDkgZGlnaXRzIChpLmUuIHVwIHRvIDEgbmFub3NlY29uZCByZXNvbHV0aW9uKSwKIGFyZSBvcHRpb25hbC4gVGhlICJaIiBzdWZmaXggaW5kaWNhdGVzIHRoZSB0aW1lem9uZSAoIlVUQyIpOyB0aGUgdGltZXpvbmUKIGlzIHJlcXVpcmVkLiBBIHByb3RvMyBKU09OIHNlcmlhbGl6ZXIgc2hvdWxkIGFsd2F5cyB1c2UgVVRDIChhcyBpbmRpY2F0ZWQgYnkKICJaIikgd2hlbiBwcmludGluZyB0aGUgVGltZXN0YW1wIHR5cGUgYW5kIGEgcHJvdG8zIEpTT04gcGFyc2VyIHNob3VsZCBiZQogYWJsZSB0byBhY2NlcHQgYm90aCBVVEMgYW5kIG90aGVyIHRpbWV6b25lcyAoYXMgaW5kaWNhdGVkIGJ5IGFuIG9mZnNldCkuCgogRm9yIGV4YW1wbGUsICIyMDE3LTAxLTE1VDAxOjMwOjE1LjAxWiIgZW5jb2RlcyAxNS4wMSBzZWNvbmRzIHBhc3QKIDAxOjMwIFVUQyBvbiBKYW51YXJ5IDE1LCAyMDE3LgoKIEluIEphdmFTY3JpcHQsIG9uZSBjYW4gY29udmVydCBhIERhdGUgb2JqZWN0IHRvIHRoaXMgZm9ybWF0IHVzaW5nIHRoZQogc3RhbmRhcmQKIFt0b0lTT1N0cmluZygpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlL3RvSVNPU3RyaW5nKQogbWV0aG9kLiBJbiBQeXRob24sIGEgc3RhbmRhcmQgYGRhdGV0aW1lLmRhdGV0aW1lYCBvYmplY3QgY2FuIGJlIGNvbnZlcnRlZAogdG8gdGhpcyBmb3JtYXQgdXNpbmcKIFtgc3RyZnRpbWVgXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvdGltZS5odG1sI3RpbWUuc3RyZnRpbWUpIHdpdGgKIHRoZSB0aW1lIGZvcm1hdCBzcGVjICclWS0lbS0lZFQlSDolTTolUy4lZlonLiBMaWtld2lzZSwgaW4gSmF2YSwgb25lIGNhbiB1c2UKIHRoZSBKb2RhIFRpbWUncyBbYElTT0RhdGVUaW1lRm9ybWF0LmRhdGVUaW1lKClgXSgKIGh0dHA6Ly93d3cuam9kYS5vcmcvam9kYS10aW1lL2FwaWRvY3Mvb3JnL2pvZGEvdGltZS9mb3JtYXQvSVNPRGF0ZVRpbWVGb3JtYXQuaHRtbCNkYXRlVGltZSUyRCUyRAogKSB0byBvYnRhaW4gYSBmb3JtYXR0ZXIgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgaW4gdGhpcyBmb3JtYXQuCgoKCgsKAwQAARIEhwEIEQqdAQoEBAACABIEiwECFBqOASBSZXByZXNlbnRzIHNlY29uZHMgb2YgVVRDIHRpbWUgc2luY2UgVW5peCBlcG9jaAogMTk3MC0wMS0wMVQwMDowMDowMFouIE11c3QgYmUgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0bwogOTk5OS0xMi0zMVQyMzo1OTo1OVogaW5jbHVzaXZlLgoKDQoFBAACAAUSBIsBAgcKDQoFBAACAAESBIsBCA8KDQoFBAACAAMSBIsBEhMK5QEKBAQAAgESBJEBAhIa1gEgTm9uLW5lZ2F0aXZlIGZyYWN0aW9ucyBvZiBhIHNlY29uZCBhdCBuYW5vc2Vjb25kIHJlc29sdXRpb24uIE5lZ2F0aXZlCiBzZWNvbmQgdmFsdWVzIHdpdGggZnJhY3Rpb25zIG11c3Qgc3RpbGwgaGF2ZSBub24tbmVnYXRpdmUgbmFub3MgdmFsdWVzCiB0aGF0IGNvdW50IGZvcndhcmQgaW4gdGltZS4gTXVzdCBiZSBmcm9tIDAgdG8gOTk5LDk5OSw5OTkKIGluY2x1c2l2ZS4KCg0KBQQAAgEFEgSRAQIHCg0KBQQAAgEBEgSRAQgNCg0KBQQAAgEDEgSRARARYgZwcm90bzMKzyMKHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiMKC0RvdWJsZVZhbHVlEhQKBXZhbHVlGAEgASgBUgV2YWx1ZSIiCgpGbG9hdFZhbHVlEhQKBXZhbHVlGAEgASgCUgV2YWx1ZSIiCgpJbnQ2NFZhbHVlEhQKBXZhbHVlGAEgASgDUgV2YWx1ZSIjCgtVSW50NjRWYWx1ZRIUCgV2YWx1ZRgBIAEoBFIFdmFsdWUiIgoKSW50MzJWYWx1ZRIUCgV2YWx1ZRgBIAEoBVIFdmFsdWUiIwoLVUludDMyVmFsdWUSFAoFdmFsdWUYASABKA1SBXZhbHVlIiEKCUJvb2xWYWx1ZRIUCgV2YWx1ZRgBIAEoCFIFdmFsdWUiIwoLU3RyaW5nVmFsdWUSFAoFdmFsdWUYASABKAlSBXZhbHVlIiIKCkJ5dGVzVmFsdWUSFAoFdmFsdWUYASABKAxSBXZhbHVlQoMBChNjb20uZ29vZ2xlLnByb3RvYnVmQg1XcmFwcGVyc1Byb3RvUAFaMWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3dyYXBwZXJzcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKxh8KBhIEKAB6AQrbEAoBDBIDKAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyjAQgV3JhcHBlcnMgZm9yIHByaW1pdGl2ZSAobm9uLW1lc3NhZ2UpIHR5cGVzLiBUaGVzZSB0eXBlcyBhcmUgdXNlZnVsCiBmb3IgZW1iZWRkaW5nIHByaW1pdGl2ZXMgaW4gdGhlIGBnb29nbGUucHJvdG9idWYuQW55YCB0eXBlIGFuZCBmb3IgcGxhY2VzCiB3aGVyZSB3ZSBuZWVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIGFic2VuY2Ugb2YgYSBwcmltaXRpdmUKIHR5cGVkIGZpZWxkIGFuZCBpdHMgZGVm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AgQHEgRvAHIBGlsgV3JhcHBlciBtZXNzYWdlIGZvciBgc3RyaW5nYC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYFN0cmluZ1ZhbHVlYCBpcyBKU09OIHN0cmluZy4KCgoKAwQHARIDbwgTCiAKBAQHAgASA3ECExoTIFRoZSBzdHJpbmcgdmFsdWUuCgoMCgUEBwIABRIDcQIICgwKBQQHAgABEgNxCQ4KDAoFBAcCAAMSA3EREgplCgIECBIEdwB6ARpZIFdyYXBwZXIgbWVzc2FnZSBmb3IgYGJ5dGVzYC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEJ5dGVzVmFsdWVgIGlzIEpTT04gc3RyaW5nLgoKCgoDBAgBEgN3CBIKHwoEBAgCABIDeQISGhIgVGhlIGJ5dGVzIHZhbHVlLgoKDAoFBAgCAAUSA3kCBwoMCgUECAIAARIDeQgNCgwKBQQIAgADEgN5EBFiBnByb3RvMwrnYAovZ29vZ2xlL3Byb3RvYnVmL3VuaXR0ZXN0X3dlbGxfa25vd25fdHlwZXMucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0Ghlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGhlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvGh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxogZ29vZ2xlL3Byb3RvYnVmL2ZpZWxkX21hc2sucHJvdG8aJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90byK0CQoSVGVzdFdlbGxLbm93blR5cGVzEjEKCWFueV9maWVsZBgBIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSCGFueUZpZWxkEjEKCWFwaV9maWVsZBgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSCGFwaUZpZWxkEkAKDmR1cmF0aW9uX2ZpZWxkGAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUg1kdXJhdGlvbkZpZWxkEjcKC2VtcHR5X2ZpZWxkGAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgplbXB0eUZpZWxkEkQKEGZpZWxkX21hc2tfZmllbGQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUg5maWVsZE1hc2tGaWVsZBJQChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UhJzb3VyY2VDb250ZXh0RmllbGQSOgoMc3RydWN0X2ZpZWxkGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFILc3RydWN0RmllbGQSQwoPdGltZXN0YW1wX2ZpZWxkGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIOdGltZXN0YW1wRmllbGQSNAoKdHlwZV9maWVsZBgJIAEoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlUgl0eXBlRmllbGQSPwoMZG91YmxlX2ZpZWxkGAogASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgtkb3VibGVGaWVsZBI8CgtmbG9hdF9maWVsZBgLIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUgpmbG9hdEZpZWxkEjwKC2ludDY0X2ZpZWxkGAwgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSCmludDY0RmllbGQSPwoMdWludDY0X2ZpZWxkGA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUgt1aW50NjRGaWVsZBI8CgtpbnQzMl9maWVsZBgOIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUgppbnQzMkZpZWxkEj8KDHVpbnQzMl9maWVsZBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVILdWludDMyRmllbGQSOQoKYm9vbF9maWVsZBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSCWJvb2xGaWVsZBI/CgxzdHJpbmdfZmllbGQYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSC3N0cmluZ0ZpZWxkEjwKC2J5dGVzX2ZpZWxkGBIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSCmJ5dGVzRmllbGQSNwoLdmFsdWVfZmllbGQYEyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSCnZhbHVlRmllbGQi/wgKFlJlcGVhdGVkV2VsbEtub3duVHlwZXMSMQoJYW55X2ZpZWxkGAEgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIIYW55RmllbGQSMQoJYXBpX2ZpZWxkGAIgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFwaVIIYXBpRmllbGQSQAoOZHVyYXRpb25fZmllbGQYAyADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SDWR1cmF0aW9uRmllbGQSNwoLZW1wdHlfZmllbGQYBCADKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSCmVtcHR5RmllbGQSRAoQZmllbGRfbWFza19maWVsZBgFIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSDmZpZWxkTWFza0ZpZWxkElAKFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgAygLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSEnNvdXJjZUNvbnRleHRGaWVsZBI6CgxzdHJ1Y3RfZmllbGQYByADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0UgtzdHJ1Y3RGaWVsZBJDCg90aW1lc3RhbXBfZmllbGQYCCADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUg50aW1lc3RhbXBGaWVsZBI0Cgp0eXBlX2ZpZWxkGAkgAygLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVSCXR5cGVGaWVsZBI/Cgxkb3VibGVfZmllbGQYCiADKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSC2RvdWJsZUZpZWxkEjwKC2Zsb2F0X2ZpZWxkGAsgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSCmZsb2F0RmllbGQSPAoLaW50NjRfZmllbGQYDCADKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIKaW50NjRGaWVsZBI/Cgx1aW50NjRfZmllbGQYDSADKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSC3VpbnQ2NEZpZWxkEjwKC2ludDMyX2ZpZWxkGA4gAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSCmludDMyRmllbGQSPwoMdWludDMyX2ZpZWxkGA8gAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUgt1aW50MzJGaWVsZBI5Cgpib29sX2ZpZWxkGBAgAygLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZVIJYm9vbEZpZWxkEj8KDHN0cmluZ19maWVsZBgRIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVILc3RyaW5nRmllbGQSPAoLYnl0ZXNfZmllbGQYEiADKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIKYnl0ZXNGaWVsZCKvCQoTT25lb2ZXZWxsS25vd25UeXBlcxIzCglhbnlfZmllbGQYASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55SABSCGFueUZpZWxkEjMKCWFwaV9maWVsZBgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlIAFIIYXBpRmllbGQSQgoOZHVyYXRpb25fZmllbGQYAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25IAFINZHVyYXRpb25GaWVsZBI5CgtlbXB0eV9maWVsZBgEIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eUgAUgplbXB0eUZpZWxkEkYKEGZpZWxkX21hc2tfZmllbGQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrSABSDmZpZWxkTWFza0ZpZWxkElIKFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRIAFISc291cmNlQ29udGV4dEZpZWxkEjwKDHN0cnVjdF9maWVsZBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAFILc3RydWN0RmllbGQSRQoPdGltZXN0YW1wX2ZpZWxkGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAUg50aW1lc3RhbXBGaWVsZBI2Cgp0eXBlX2ZpZWxkGAkgASgLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVIAFIJdHlwZUZpZWxkEkEKDGRvdWJsZV9maWVsZBgKIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZUgAUgtkb3VibGVGaWVsZBI+CgtmbG9hdF9maWVsZBgLIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlSABSCmZsb2F0RmllbGQSPgoLaW50NjRfZmllbGQYDCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZUgAUgppbnQ2NEZpZWxkEkEKDHVpbnQ2NF9maWVsZBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZUgAUgt1aW50NjRGaWVsZBI+CgtpbnQzMl9maWVsZBgOIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlSABSCmludDMyRmllbGQSQQoMdWludDMyX2ZpZWxkGA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlSABSC3VpbnQzMkZpZWxkEjsKCmJvb2xfZmllbGQYECABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlSABSCWJvb2xGaWVsZBJBCgxzdHJpbmdfZmllbGQYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVIAFILc3RyaW5nRmllbGQSPgoLYnl0ZXNfZmllbGQYEiABKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZUgAUgpieXRlc0ZpZWxkQg0KC29uZW9mX2ZpZWxkItgZChFNYXBXZWxsS25vd25UeXBlcxJPCglhbnlfZmllbGQYASADKAsyMi5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5BbnlGaWVsZEVudHJ5UghhbnlGaWVsZBJPCglhcGlfZmllbGQYAiADKAsyMi5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5BcGlGaWVsZEVudHJ5UghhcGlGaWVsZBJeCg5kdXJhdGlvbl9maWVsZBgDIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkR1cmF0aW9uRmllbGRFbnRyeVINZHVyYXRpb25GaWVsZBJVCgtlbXB0eV9maWVsZBgEIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkVtcHR5RmllbGRFbnRyeVIKZW1wdHlGaWVsZBJiChBmaWVsZF9tYXNrX2ZpZWxkGAUgAygLMjgucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRmllbGRNYXNrRmllbGRFbnRyeVIOZmllbGRNYXNrRmllbGQSbgoUc291cmNlX2NvbnRleHRfZmllbGQYBiADKAsyPC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Tb3VyY2VDb250ZXh0RmllbGRFbnRyeVISc291cmNlQ29udGV4dEZpZWxkElgKDHN0cnVjdF9maWVsZBgHIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlN0cnVjdEZpZWxkRW50cnlSC3N0cnVjdEZpZWxkEmEKD3RpbWVzdGFtcF9maWVsZBgIIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlRpbWVzdGFtcEZpZWxkRW50cnlSDnRpbWVzdGFtcEZpZWxkElIKCnR5cGVfZmllbGQYCSADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5UeXBlRmllbGRFbnRyeVIJdHlwZUZpZWxkElgKDGRvdWJsZV9maWVsZBgKIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkRvdWJsZUZpZWxkRW50cnlSC2RvdWJsZUZpZWxkElUKC2Zsb2F0X2ZpZWxkGAsgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRmxvYXRGaWVsZEVudHJ5UgpmbG9hdEZpZWxkElUKC2ludDY0X2ZpZWxkGAwgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuSW50NjRGaWVsZEVudHJ5UgppbnQ2NEZpZWxkElgKDHVpbnQ2NF9maWVsZBgNIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlVpbnQ2NEZpZWxkRW50cnlSC3VpbnQ2NEZpZWxkElUKC2ludDMyX2ZpZWxkGA4gAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuSW50MzJGaWVsZEVudHJ5UgppbnQzMkZpZWxkElgKDHVpbnQzMl9maWVsZBgPIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlVpbnQzMkZpZWxkRW50cnlSC3VpbnQzMkZpZWxkElIKCmJvb2xfZmllbGQYECADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Cb29sRmllbGRFbnRyeVIJYm9vbEZpZWxkElgKDHN0cmluZ19maWVsZBgRIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlN0cmluZ0ZpZWxkRW50cnlSC3N0cmluZ0ZpZWxkElUKC2J5dGVzX2ZpZWxkGBIgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQnl0ZXNGaWVsZEVudHJ5UgpieXRlc0ZpZWxkGlEKDUFueUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgV2YWx1ZToCOAEaUQoNQXBpRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSBXZhbHVlOgI4ARpbChJEdXJhdGlvbkZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSLwoFdmFsdWUYAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SBXZhbHVlOgI4ARpVCg9FbXB0eUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBXZhbHVlOgI4ARpdChNGaWVsZE1hc2tGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjAKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IFdmFsdWU6AjgBGmUKF1NvdXJjZUNvbnRleHRGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjQKBXZhbHVlGAIgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSBXZhbHVlOgI4ARpXChBTdHJ1Y3RGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5Ei0KBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIFdmFsdWU6AjgBGl0KE1RpbWVzdGFtcEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMAoFdmFsdWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgV2YWx1ZToCOAEaUwoOVHlwZUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKwoFdmFsdWUYAiABKAsyFS5nb29nbGUucHJvdG9idWYuVHlwZVIFdmFsdWU6AjgBGlwKEERvdWJsZUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSBXZhbHVlOgI4ARpaCg9GbG9hdEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIFdmFsdWU6AjgBGloKD0ludDY0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUgV2YWx1ZToCOAEaXAoQVWludDY0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIyCgV2YWx1ZRgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIFdmFsdWU6AjgBGloKD0ludDMyRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIx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AwIOAxIDbTg6CgsKBAQDAg8SA24CNwoMCgUEAwIPBhIDbgImCgwKBQQDAg8BEgNuJzEKDAoFBAMCDwMSA240NgoLCgQEAwIQEgNvAjsKDAoFBAMCEAYSA28CKAoMCgUEAwIQARIDbyk1CgwKBQQDAhADEgNvODoKCwoEBAMCERIDcAI5CgwKBQQDAhEGEgNwAicKDAoFBAMCEQESA3AoMwoMCgUEAwIRAxIDcDY4YgZwcm90bzMKptEBCipnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzMucHJvdG8SHXByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvGhxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvGh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8imVsKElRlc3RBbGxUeXBlc1Byb3RvMxIlCg5vcHRpb25hbF9pbnQzMhgBIAEoBVINb3B0aW9uYWxJbnQzMhIlCg5vcHRpb25hbF9pbnQ2NBgCIAEoA1INb3B0aW9uYWxJbnQ2NBInCg9vcHRpb25hbF91aW50MzIYAyABKA1SDm9wdGlvbmFsVWludDMyEicKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBFIOb3B0aW9uYWxVaW50NjQSJwoPb3B0aW9uYWxfc2ludDMyGAUgASgRUg5vcHRpb25hbFNpbnQzMhInCg9vcHRpb25hbF9zaW50NjQYBiABKBJSDm9wdGlvbmFsU2ludDY0EikKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdSD29wdGlvbmFsRml4ZWQzMhIpChBvcHRpb25hbF9maXhlZDY0GAggASgGUg9vcHRpb25hbEZpeGVkNjQSKwoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA9SEG9wdGlvbmFsU2ZpeGVkMzISKwoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBSEG9wdGlvbmFsU2ZpeGVkNjQSJQoOb3B0aW9uYWxfZmxvYXQYCyABKAJSDW9wdGlvbmFsRmxvYXQSJwoPb3B0aW9uYWxfZG91YmxlGAwgASgBUg5vcHRpb25hbERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USZwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMi0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbk1lc3NhZ2VSFm9wdGlvbmFsRm9yZWlnbk1lc3NhZ2USbgoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVISb3B0aW9uYWxOZXN0ZWRFbnVtEl4KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtEnEKFW9wdGlvbmFsX2FsaWFzZWRfZW51bRgXIAEoDjI9LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5BbGlhc2VkRW51bVITb3B0aW9uYWxBbGlhc2VkRW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSXgoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzNSEHJlY3Vyc2l2ZU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSdwoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEmcKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEm4KFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJeChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yKi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduRW51bVITcmVwZWF0ZWRGb3JlaWduRW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSJQoMcGFja2VkX2ludDMyGEsgAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GEwgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhNIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GE4gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhQIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhRIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYUiADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhTIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhUIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYViADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYVyADKAhCAhABUgpwYWNrZWRCb29sEm4KEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtQgIQAVIQcGFja2VkTmVzdGVkRW51bRIpCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhcIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhhdIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYXyADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhhIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYiADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGMgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZCADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGUgAygIQgIQAFIMdW5wYWNrZWRCb29sEnIKFHVucGFja2VkX25lc3RlZF9lbnVtGGYgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1CAhAAUhJ1bnBhY2tlZE5lc3RlZEVudW0SbAoPbWFwX2ludDMyX2ludDMyGDggAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJsCg9tYXBfaW50NjRfaW50NjQYOSADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50NjRJbnQ2NEVudHJ5Ug1tYXBJbnQ2NEludDY0EnIKEW1hcF91aW50MzJfdWludDMyGDogAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzIScgoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJyChFtYXBfc2ludDMyX3NpbnQzMhg8IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTaW50MzJTaW50MzJFbnRyeVIPbWFwU2ludDMyU2ludDMyEnIKEW1hcF9zaW50NjRfc2ludDY0GD0gAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSeAoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJ4ChNtYXBfZml4ZWQ2NF9maXhlZDY0GD8gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEZpeGVkNjRGaXhlZDY0RW50cnlSEW1hcEZpeGVkNjRGaXhlZDY0En4KFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhhAIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISfgoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GEEgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJsCg9tYXBfaW50MzJfZmxvYXQYQiADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJGbG9hdEVudHJ5Ug1tYXBJbnQzMkZsb2F0Em8KEG1hcF9pbnQzMl9kb3VibGUYQyADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSZgoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJyChFtYXBfc3RyaW5nX3N0cmluZxhFIAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdTdHJpbmdFbnRyeVIPbWFwU3RyaW5nU3RyaW5nEm8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nQnl0ZXNFbnRyeVIObWFwU3RyaW5nQnl0ZXMSiAEKGW1hcF9zdHJpbmdfbmVzdGVkX21lc3NhZ2UYRyADKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5UhZtYXBTdHJpbmdOZXN0ZWRNZXNzYWdlEosBChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5UhdtYXBTdHJpbmdGb3JlaWduTWVzc2FnZRJ/ChZtYXBfc3RyaW5nX25lc3RlZF9lbnVtGEkgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ05lc3RlZEVudW1FbnRyeVITbWFwU3RyaW5nTmVzdGVkRW51bRKCAQoXbWFwX3N0cmluZ19mb3JlaWduX2VudW0YSiADKAsySy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeVIUbWFwU3RyaW5nRm9yZWlnbkVudW0SIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEnMKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzEh8KCm9uZW9mX2Jvb2wYcyABKAhIAFIJb25lb2ZCb29sEiMKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAUgtvbmVvZlVpbnQ2NBIhCgtvbmVvZl9mbG9hdBh1IAEoAkgAUgpvbmVvZkZsb2F0EiMKDG9uZW9mX2RvdWJsZRh2IAEoAUgAUgtvbmVvZkRvdWJsZRJdCgpvbmVvZl9lbnVtGHcgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1IAFIJb25lb2ZFbnVtEkYKEG9uZW9mX251bGxfdmFsdWUYeCABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSDm9uZW9mTnVsbFZhbHVlEk8KFW9wdGlvbmFsX2Jvb2xfd3JhcHBlchjJASABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUhNvcHRpb25hbEJvb2xXcmFwcGVyElIKFm9wdGlvbmFsX2ludDMyX3dyYXBwZXIYygEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSFG9wdGlvbmFsSW50MzJXcmFwcGVyElIKFm9wdGlvbmFsX2ludDY0X3dyYXBwZXIYywEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSFG9wdGlvbmFsSW50NjRXcmFwcGVyElUKF29wdGlvbmFsX3VpbnQzMl93cmFwcGVyGMwBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIVb3B0aW9uYWxVaW50MzJXcmFwcGVyElUKF29wdGlvbmFsX3VpbnQ2NF93cmFwcGVyGM0BIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIVb3B0aW9uYWxVaW50NjRXcmFwcGVyElIKFm9wdGlvbmFsX2Zsb2F0X3dyYXBwZXIYzgEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSFG9wdGlvbmFsRmxvYXRXcmFwcGVyElUKF29wdGlvbmFsX2RvdWJsZV93cmFwcGVyGM8BIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIVb3B0aW9uYWxEb3VibGVXcmFwcGVyElUKF29wdGlvbmFsX3N0cmluZ193cmFwcGVyGNABIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIVb3B0aW9uYWxTdHJpbmdXcmFwcGVyElIKFm9wdGlvbmFsX2J5dGVzX3dyYXBwZXIY0QEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSFG9wdGlvbmFsQnl0ZXNXcmFwcGVyEk8KFXJlcGVhdGVkX2Jvb2xfd3JhcHBlchjTASADKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUhNyZXBlYXRlZEJvb2xXcmFwcGVyElIKFnJlcGVhdGVkX2ludDMyX3dyYXBwZXIY1AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSFHJlcGVhdGVkSW50MzJXcmFwcGVyElIKFnJlcGVhdGVkX2ludDY0X3dyYXBwZXIY1QEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSFHJlcGVhdGVkSW50NjRXcmFwcGVyElUKF3JlcGVhdGVkX3VpbnQzMl93cmFwcGVyGNYBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIVcmVwZWF0ZWRVaW50MzJXcmFwcGVyElUKF3JlcGVhdGVkX3VpbnQ2NF93cmFwcGVyGNcBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIVcmVwZWF0ZWRVaW50NjRXcmFwcGVyElIKFnJlcGVhdGVkX2Zsb2F0X3dyYXBwZXIY2AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSFHJlcGVhdGVkRmxvYXRXcmFwcGVyElUKF3JlcGVhdGVkX2RvdWJsZV93cmFwcGVyGNkBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIVcmVwZWF0ZWREb3VibGVXcmFwcGVyElUKF3JlcGVhdGVkX3N0cmluZ193cmFwcGVyGNoBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIVcmVwZWF0ZWRTdHJpbmdXcmFwcGVyElIKFnJlcGVhdGVkX2J5dGVzX3dyYXBwZXIY2wEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSFHJlcGVhdGVkQnl0ZXNXcmFwcGVyEkcKEW9wdGlvbmFsX2R1cmF0aW9uGK0CIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIQb3B0aW9uYWxEdXJhdGlvbhJKChJvcHRpb25hbF90aW1lc3RhbXAYrgIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRb3B0aW9uYWxUaW1lc3RhbXASSwoTb3B0aW9uYWxfZmllbGRfbWFzaxivAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUhFvcHRpb25hbEZpZWxkTWFzaxJBCg9vcHRpb25hbF9zdHJ1Y3QYsAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIOb3B0aW9uYWxTdHJ1Y3QSOAoMb3B0aW9uYWxfYW55GLECIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSC29wdGlvbmFsQW55Ej4KDm9wdGlvbmFsX3ZhbHVlGLICIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVINb3B0aW9uYWxWYWx1ZRJLChNvcHRpb25hbF9udWxsX3ZhbHVlGLMCIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVSEW9wdGlvbmFsTnVsbFZhbHVlEkcKEXJlcGVhdGVkX2R1cmF0aW9uGLcCIAMoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIQcmVwZWF0ZWREdXJhdGlvbhJKChJyZXBlYXRlZF90aW1lc3RhbXAYuAIgAygLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRcmVwZWF0ZWRUaW1lc3RhbXASSgoScmVwZWF0ZWRfZmllbGRtYXNrGLkCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSEXJlcGVhdGVkRmllbGRtYXNrEkEKD3JlcGVhdGVkX3N0cnVjdBjEAiADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ug5yZXBlYXRlZFN0cnVjdBI4CgxyZXBlYXRlZF9hbnkYuwIgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVILcmVwZWF0ZWRBbnkSPgoOcmVwZWF0ZWRfdmFsdWUYvAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUg1yZXBlYXRlZFZhbHVlEksKE3JlcGVhdGVkX2xpc3RfdmFsdWUYvQIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZVIRcmVwZWF0ZWRMaXN0VmFsdWUSHwoKZmllbGRuYW1lMRiRAyABKAVSCmZpZWxkbmFtZTESIAoLZmllbGRfbmFtZTIYkgMgASgFUgpmaWVsZE5hbWUyEiEKDF9maWVsZF9uYW1lMxiTAyABKAVSCkZpZWxkTmFtZTMSIgoNZmllbGRfX25hbWU0XxiUAyABKAVSCmZpZWxkTmFtZTQSIQoLZmllbGQwbmFtZTUYlQMgASgFUgtmaWVsZDBuYW1lNRIjCg1maWVsZF8wX25hbWU2GJYDIAEoBVILZmllbGQwTmFtZTYSHwoKZmllbGROYW1lNxiXAyABKAVSCmZpZWxkTmFtZTcSHwoKRmllbGROYW1lOBiYAyABKAVSCkZpZWxkTmFtZTgSIAoLZmllbGRfTmFtZTkYmQMgASgFUgpmaWVsZE5hbWU5EiIKDEZpZWxkX05hbWUxMBiaAyABKAVSC0ZpZWxkTmFtZTEwEiIKDEZJRUxEX05BTUUxMRibAyABKAVSC0ZJRUxETkFNRTExEiIKDEZJRUxEX25hbWUxMhicAyABKAVSC0ZJRUxETmFtZTEyEiQKDl9fZmllbGRfbmFtZTEzGJ0DIAEoBVILRmllbGROYW1lMTMSJAoOX19GaWVsZF9uYW1lMTQYngMgASgFUgtGaWVsZE5hbWUxNBIjCg1maWVsZF9fbmFtZTE1GJ8DIAEoBVILZmllbGROYW1lMTUSIwoNZmllbGRfX05hbWUxNhigAyABKAVSC2ZpZWxkTmFtZTE2EiQKDmZpZWxkX25hbWUxN19fGKEDIAEoBVILZmllbGROYW1lMTcSJAoORmllbGRfbmFtZTE4X18YogMgASgFUgtGaWVsZE5hbWUxOBpyCg1OZXN0ZWRNZXNzYWdlEgwKAWEYASABKAVSAWESUwoLY29yZWN1cnNpdmUYAiABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzNSC2NvcmVjdXJzaXZlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGkIKFE1hcFN0cmluZ1N0cmluZ0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEaQQoTTWFwU3RyaW5nQnl0ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoDFIFdmFsdWU6AjgBGooBChtNYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSVQoFdmFsdWUYAiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZVIFdmFsdWU6AjgBGnkKHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSQwoFdmFsdWUYAiABKAsyLS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBGoQBChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSUgoFdmFsdWUYAiABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVIFdmFsdWU6AjgBGnMKGU1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSQAoFdmFsdWUYAiABKA4yKi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduRW51bVIFdmFsdWU6AjgBIjkKCk5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAISEAoDTkVHEP///////////wEiWQoLQWxpYXNlZEVudW0SDQoJQUxJQVNfRk9PEAASDQoJQUxJQVNfQkFSEAESDQoJQUxJQVNfQkFaEAISBwoDUVVYEAISBwoDcXV4EAISBwoDYkF6EAIaAhABQg0KC29uZW9mX2ZpZWxkSgYI9QMQ/wMiHgoORm9yZWlnbk1lc3NhZ2USDAoBYxgBIAEoBVIBYyIWChROdWxsSHlwb3RoZXNpc1Byb3RvMyIvCg5FbnVtT25seVByb3RvMyIdCgRCb29sEgoKBmtGYWxzZRAAEgkKBWtUcnVlEAEqQAoLRm9yZWlnbkVudW0SDwoLRk9SRUlHTl9GT08QABIPCgtGT1JFSUdOX0JBUhABEg8KC0ZPUkVJR05fQkFaEAJCOAooY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvM0gB+AEBogIGUHJvdG8zSpNyCgcSBSUAoAIBCsANCgEMEgMlABIytQ0gUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogVGVzdCBzY2hlbWEgZm9yIHByb3RvMyBtZXNzYWdlcy4gIFRoaXMgdGVzdCBzY2hlbWEgaXMgdXNlZCBieToKCiAtIGJlbmNobWFya3MKIC0gZnV6eiB0ZXN0cwogLSBjb25mb3JtYW5jZSB0ZXN0cwoKCggKAQISAycAJgoICgEIEgMpAEEKCQoCCAESAykAQQoICgEIEgMqACQKCQoCCCQSAyoAJAoICgEIEgMtABwKRAoCCAkSAy0AHBo5IFRoaXMgaXMgdGhlIGRlZmF1bHQsIGJ1dCB3ZSBzcGVjaWZ5IGl0IGhlcmUgZXhwbGljaXRseS4KCgkKAgMAEgMvACMKCQoCAwESAzAAKAoJCgIDAhIDMQAqCgkKAgMDEgMyACYKCQoCAwQSAzMAKQoJCgIDBRIDNAAoCggKAQgSAzYAHwoJCgIIHxIDNgAfCtsCCgIEABIFPwCMAgEazQIgVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCiBBbHNvLCBjcnVjaWFsbHksIGFsbCBtZXNzYWdlcyBhbmQgZW51bXMgaW4gdGhpcyBmaWxlIGFyZSBldmVudHVhbGx5CiBzdWJtZXNzYWdlcyBvZiB0aGlzIG1lc3NhZ2UuICBTbyBmb3IgZXhhbXBsZSwgYSBmdXp6IHRlc3Qgb2YgVGVzdEFsbFR5cGVzCiBjb3VsZCB0cmlnZ2VyIGJ1Z3MgdGhhdCBvY2N1ciBpbiBhbnkgbWVzc2FnZSB0eXBlIGluIHRoaXMgZmlsZS4gIFdlIHZlcmlmeQogdGhpcyBzdGF5cyB0cnVlIGluIGEgdW5pdCB0ZXN0LgoKCgoDBAABEgM/CBoKDAoEBAADABIEQAJDAwoMCgUEAAMAARIDQAoXCg0KBgQAAwACABIDQQQQCg4KBwQAAwACAAUSA0EECQoOCgcEAAMAAgABEgNBCgsKDgoHBAADAAIAAxIDQQ4PCg0KBgQAAwACARIDQgQnCg4KBwQAAwACAQYSA0IEFgoOCgcEAAMAAgEBEgNCFyIKDgoHBAADAAIBAxIDQiUmCgwKBAQABAASBEUCSgMKDAoFBAAEAAESA0UHEQoNCgYEAAQAAgASA0YEDAoOCgcEAAQAAgABEgNGBAcKDgoHBAAEAAIAAhIDRgoLCg0KBgQABAACARIDRwQMCg4KBwQABAACAQESA0cEBwoOCgcEAAQAAgECEgNHCgsKDQoGBAAEAAICEgNIBAwKDgoHBAAEAAICARIDSAQHCg4KBwQABAACAgISA0gKCwooCgYEAAQAAgMSA0kEDSIZIEludGVudGlvbmFsbHkgbmVnYXRpdmUuCgoOCgcEAAQAAgMBEgNJBAcKDgoHBAAEAAIDAhIDSQoMCgwKBAQABAESBEwCVQMKDAoFBAAEAQESA0wHEgoMCgUEAAQBAxIDTQQeCg0KBgQABAEDAhIDTQQeCg0KBgQABAECABIDTwQSCg4KBwQABAECAAESA08EDQoOCgcEAAQBAgACEgNPEBEKDQoGBAAEAQIBEgNQBBIKDgoHBAAEAQIBARIDUAQNCg4KBwQABAECAQISA1AQEQoNCgYEAAQBAgISA1EEEgoOCgcEAAQBAgIBEgNRBA0KDgoHBAAEAQICAhIDURARCg0KBgQABAECAxIDUgQMCg4KBwQABAECAwESA1IEBwoOCgcEAAQBAgMCEgNSCgsKDQoGBAAEAQIEEgNTBAwKDgoHBAAEAQIEARIDUwQHCg4KBwQABAECBAISA1MKCwoNCgYEAAQBAgUSA1QEDAoOCgcEAAQBAgUBEgNUBAcKDgoHBAAEAQIFAhIDVAoLChcKBAQAAgASA1gCGxoKIFNpbmd1bGFyCgoMCgUEAAIABRIDWAIHCgwKBQQAAgABEgNYCBYKDAoFBAACAAMSA1gZGgoLCgQEAAIBEgNZAhsKDAoFBAACAQUSA1kCBwoMCgUEAAIBARIDWQgWCgwKBQQAAgEDEgNZGRoKCwoEBAACAhIDWgIdCgwKBQQAAgIFEgNaAggKDAoFBAACAgESA1oJGAoMCgUEAAICAxIDWhscCgsKBAQAAgMSA1sCHQoMCgUEAAIDBRIDWwIICgwKBQQAAgMBEgNbCRgKDAoFBAACAwMSA1sbHAoLCgQEAAIEEgNcAh0KDAoFBAACBAUSA1wCCAoMCgUEAAIEARIDXAkYCgwKBQQAAgQDEgNcGxwKCwoEBAACBRIDXQIdCgwKBQQAAgUFEgNdAggKDAoFBAACBQESA10JGAoMCgUEAAIFAxIDXRscCgsKBAQAAgYSA14CHwoMCgUEAAIGBRIDXgIJCgwKBQQAAgYBEgNeChoKDAoFBAACBgMSA14dHgoLCgQEAAIHEgNfAh8KDAoFBAACBwUSA18CCQoMCgUEAAIHARIDXwoaCgwKBQQAAgcDEgNfHR4KCwoEBAACCBIDYAIhCgwKBQQAAggFEgNgAgoKDAoFBAACCAESA2ALHAoMCgUEAAIIAxIDYB8gCgsKBAQAAgkSA2ECIgoMCgUEAAIJBRIDYQIKCgwKBQQAAgkBEgNhCxwKDAoFBAACCQMSA2EfIQoLCgQEAAIKEgNiAhwKDAoFBAACCgUSA2ICBwoMCgUEAAIKARIDYggWCgwKBQQAAgoDEgNiGRsKCwoEBAACCxIDYwIeCgwKBQQAAgsFEgNjAggKDAoFBAACCwESA2MJGAoMCgUEAAILAxIDYxsdCgsKBAQAAgwSA2QCGgoMCgUEAAIMBRIDZAIGCgwKBQQAAgwBEgNkBxQKDAoFBAACDAMSA2QXGQoLCgQEAAINEgNlAh4KDAoFBAACDQUSA2UCCAoMCgUEAAINARIDZQkYCgwKBQQAAg0DEgNlGx0KCwoEBAACDhIDZgIcCgwKBQQAAg4FEgNmAgcKDAoFBAACDgESA2YIFgoMCgUEAAIOAxIDZhkbCgsKBAQAAg8SA2gCLQoMCgUEAAIPBhIDaAIPCgwKBQQAAg8BEgNoECcKDAoFBAACDwMSA2gqLAoLCgQEAAIQEgNpAi8KDAoFBAACEAYSA2kCEAoMCgUEAAIQARIDaREpCgwKBQQAAhADEgNpLC4KCwoEBAACERIDawInCgwKBQQAAhEGEgNrAgwKDAoFBAACEQESA2sNIQoMCgUEAAIRAxIDayQmCgsKBAQAAhISA2wCKQoMCgUEAAISBhIDbAINCgwKBQQAAhIBEgNsDiMKDAoFBAACEgMSA2wmKAoLCgQEAAITEgNtAikKDAoFBAACEwYSA20CDQoMCgUEAAITARIDbQ4jCgwKBQQAAhMDEgNtJigKCwoEBAACFBIDbwI7CgwKBQQAAhQFEgNvAggKDAoFBAACFAESA28JHgoMCgUEAAIUAxIDbyEjCgwKBQQAAhQIEgNvJDoKDQoGBAACFAgBEgNvJTkKCwoEBAACFRIDcAIrCgwKBQQAAhUFEgNwAggKDAoFBAACFQESA3AJFgoMCgUEAAIVAxIDcBkbCgwKBQQAAhUIEgNwHCoKDQoGBAACFQgBEgNwHSkKCwoEBAACFhIDcgIsCgwKBQQAAhYGEgNyAhQKDAoFBAACFgESA3IVJgoMCgUEAAIWAxIDcikrChcKBAQAAhcSA3UCJRoKIFJlcGVhdGVkCgoMCgUEAAIXBBIDdQIKCgwKBQQAAhcFEgN1CxAKDAoFBAACFwESA3URHwoMCgUEAAIXAxIDdSIkCgsKBAQAAhgSA3YCJQoMCgUEAAIYBBIDdgIKCgwKBQQAAhgFEgN2CxAKDAoFBAACGAESA3YRHwoMCgUEAAIYAxIDdiIkCgsKBAQAAhkSA3cCJwoMCgUEAAIZBBIDdwIKCgwKBQQAAhkFEgN3CxEKDAoFBAACGQESA3cSIQoMCgUEAAIZAxIDdyQmCgsKBAQAAhoSA3gCJwoMCgUEAAIaBBIDeAIKCgwKBQQAAhoFEgN4CxEKDAoFBAACGgESA3gSIQoMCgUEAAIaAxIDeCQmCgsKBAQAAhsSA3kCJwoMCgUEAAIbBBIDeQIKCgwKBQQAAhsFEgN5CxEKDAoFBAACGwESA3kSIQoMCgUEAAIbAxIDeSQmCgsKBAQAAhwSA3oCJwoMCgUEAAIcBBIDegIKCgwKBQQAAhwFEgN6CxEKDAoFBAACHAESA3oSIQoMCgUEAAIcAxIDeiQmCgsKBAQAAh0SA3sCKQoMCgUEAAIdBBIDewIKCgwKBQQAAh0FEgN7CxIKDAoFBAACHQESA3sTIwoMCgUEAAIdAxIDeyYoCgsKBAQAAh4SA3wCKQoMCgUEAAIeBBIDfAIKCgwKBQQAAh4FEgN8CxIKDAoFBAACHgESA3wTIwoMCgUEAAIeAxIDfCYoCgsKBAQAAh8SA30CKwoMCgUEAAIfBBIDfQIKCgwKBQQAAh8FEgN9CxMKDAoFBAACHwESA30UJQoMCgUEAAIfAxIDfSgqCgsKBAQAAiASA34CKwoMCgUEAAIgBBIDfgIKCgwKBQQAAiAFEgN+CxMKDAoFBAACIAESA34UJQoMCgUEAAIgAxIDfigqCgsKBAQAAiESA38CJQoMCgUEAAIhBBIDfwIKCgwKBQQAAiEFEgN/CxAKDAoFBAACIQESA38RHwoMCgUEAAIhAxIDfyIkCgwKBAQAAiISBIABAicKDQoFBAACIgQSBIABAgoKDQoFBAACIgUSBIABCxEKDQoFBAACIgESBIABEiEKDQoFBAACIgMSBIABJCYKDAoEBAACIxIEgQECIwoNCgUEAAIjBBIEgQECCgoNCgUEAAIjBRIEgQELDwoNCgUEAAIjARIEgQEQHQoNCgUEAAIjAxIEgQEgIgoMCgQEAAIkEgSCAQInCg0KBQQAAiQEEgSCAQIKCg0KBQQAAiQFEgSCAQsRCg0KBQQAAiQBEgSCARIhCg0KBQQAAiQDEgSCASQmCgwKBAQAAiUSBIMBAiUKDQoFBAACJQQSBIMBAgoKDQoFBAACJQUSBIMBCxAKDQoFBAACJQESBIMBER8KDQoFBAACJQMSBIMBIiQKDAoEBAACJhIEhQECNgoNCgUEAAImBBIEhQECCgoNCgUEAAImBhIEhQELGAoNCgUEAAImARIEhQEZMAoNCgUEAAImAxIEhQEzNQoMCgQEAAInEgSGAQI4Cg0KBQQAAicEEgSGAQIKCg0KBQQAAicGEgSGAQsZCg0KBQQAAicBEgSGARoyCg0KBQQAAicDEgSGATU3CgwKBAQAAigSBIgBAjAKDQoFBAACKAQSBIgBAgoKDQoFBAACKAYSBIgBCxUKDQoFBAACKAESBIgBFioKDQoFBAACKAMSBIgBLS8KDAoEBAACKRIEiQECMgoNCgUEAAIpBBIEiQECCgoNCgUEAAIpBhIEiQELFgoNCgUEAAIpARIEiQEXLAoNCgUEAAIpAxIEiQEvMQoMCgQEAAIqEgSLAQJECg0KBQQAAioEEgSLAQIKCg0KBQQAAioFEgSLAQsRCg0KBQQAAioBEgSLARInCg0KBQQAAioDEgSLASosCg0KBQQAAioIEgSLAS1DCg4KBgQAAioIARIEiwEuQgoMCgQEAAIrEgSMAQI0Cg0KBQQAAisEEgSMAQIKCg0KBQQAAisFEgSMAQsRCg0KBQQAAisBEgSMARIfCg0KBQQAAisDEgSMASIkCg0KBQQAAisIEgSMASUzCg4KBgQAAisIARIEjAEmMgoWCgQEAAIsEgSPAQIzGgggUGFja2VkCgoNCgUEAAIsBBIEjwECCgoNCgUEAAIsBRIEjwELEAoNCgUEAAIsARIEjwERHQoNCgUEAAIsAxIEjwEgIgoNCgUEAAIsCBIEjwEjMgoOCgYEAAIsCAISBI8BJDEKDAoEBAACLRIEkAECMwoNCgUEAAItBBIEkAECCgoNCgUEAAItBRIEkAELEAoNCgUEAAItARIEkAERHQoNCgUEAAItAxIEkAEgIgoNCgUEAAItCBIEkAEjMgoOCgYEAAItCAISBJABJDEKDAoEBAACLhIEkQECNQoNCgUEAAIuBBIEkQECCgoNCgUEAAIuBRIEkQELEQoNCgUEAAIuARIEkQESHwoNCgUEAAIuAxIEkQEiJAoNCgUEAAIuCBIEkQElNAoOCgYEAAIuCAISBJEBJjMKDAoEBAACLxIEkgECNQoNCgUEAAIvBBIEkgECCgoNCgUEAAIvBRIEkgELEQoNCgUEAAIvARIEkgESHwoNCgUEAAIvAxIEkgEiJAoNCgUEAAIvCBIEkgElNAoOCgYEAAIvCAISBJIBJjMKDAoEBAACMBIEkwECNQoNCgUEAAIwBBIEkwECCgoNCgUEAAIwBRIEkwELEQoNCgUEAAIwARIEkwESHwoNCgUEAAIwAxIEkwEiJAoNCgUEAAIwCBIEkwElNAoOCgYEAAIwCAISBJMBJjMKDAoEBAACMRIElAECNQoNCgUEAAIxBBIElAECCgoNCgUEAAIxBRIElAELEQoNCgUEAAIxARIElAESHwoNCgUEAAIxAxIElAEiJAoNCgUEAAIxCBIElAElNAoOCgYEAAIxCAISBJQBJjMKDAoEBAACMhIElQECNwoNCgUEAAIyBBIElQECCgoNCgUEAAIyBRIElQELEgoNCgUEAAIyARIElQETIQoNCgUEAAIyAxIElQEkJgoNCgUEAAIyCBIElQEnNgoOCgYEAAIyCAISBJUBKDUKDAoEBAACMxIElgECNwoNCgUEAAIzBBIElgECCgoNCgUEAAIzBRIElgELEgoNCgUEAAIzARIElgETIQoNCgUEAAIzAxIElgEkJgoNCgUEAAIzCBIElgEnNgoOCgYEAAIzCAISBJYBKDUKDAoEBAACNBIElwECOQoNCgUEAAI0BBIElwECCgoNCgUEAAI0BRIElwELEwoNCgUEAAI0ARIElwEUIwoNCgUEAAI0AxIElwEmKAoNCgUEAAI0CBIElwEpOAoOCgYEAAI0CAISBJcBKjcKDAoEBAACNRIEmAECOQoNCgUEAAI1BBIEmAECCgoNCgUEAAI1BRIEmAELEwoNCgUEAAI1ARIEmAEUIwoNCgUEAAI1AxIEmAEmKAoNCgUEAAI1CBIEmAEpOAoOCgYEAAI1CAISBJgBKjcKDAoEBAACNhIEmQECMwoNCgUEAAI2BBIEmQECCgoNCgUEAAI2BRIEmQELEAoNCgUEAAI2ARIEmQERHQoNCgUEAAI2AxIEmQEgIgoNCgUEAAI2CBIEmQEjMgoOCgYEAAI2CAISBJkBJDEKDAoEBAACNxIEmgECNQoNCgUEAAI3BBIEmgECCgoNCgUEAAI3BRIEmgELEQoNCgUEAAI3ARIEmgESHwoNCgUEAAI3AxIEmgEiJAoNCgUEAAI3CBIEmgElNAoOCgYEAAI3CAISBJoBJjMKDAoEBAACOBIEmwECMQoNCgUEAAI4BBIEmwECCgoNCgUEAAI4BRIEmwELDwoNCgUEAAI4ARIEmwEQGwoNCgUEAAI4AxIEmwEeIAoNCgUEAAI4CBIEmwEhMAoOCgYEAAI4CAISBJsBIi8KDAoEBAACORIEnAECPgoNCgUEAAI5BBIEnAECCgoNCgUEAAI5BhIEnAELFQoNCgUEAAI5ARIEnAEWKAoNCgUEAAI5AxIEnAErLQoNCgUEAAI5CBIEnAEuPQoOCgYEAAI5CAISBJwBLzwKGAoEBAACOhIEnwECNhoKIFVucGFja2VkCgoNCgUEAAI6BBIEnwECCgoNCgUEAAI6BRIEnwELEAoNCgUEAAI6ARIEnwERHwoNCgUEAAI6AxIEnwEiJAoNCgUEAAI6CBIEnwElNQoOCgYEAAI6CAISBJ8BJjQKDAoEBAACOxIEoAECNgoNCgUEAAI7BBIEoAECCgoNCgUEAAI7BRIEoAELEAoNCgUEAAI7ARIEoAERHwoNCgUEAAI7AxIEoAEiJAoNCgUEAAI7CBIEoAElNQoOCgYEAAI7CAISBKABJjQKDAoEBAACPBIEoQECOAoNCgUEAAI8BBIEoQECCgoNCgUEAAI8BRIEoQELEQoNCgUEAAI8ARIEoQESIQoNCgUEAAI8AxIEoQEkJgoNCgUEAAI8CBIEoQEnNwoOCgYEAAI8CAISBKEBKDYKDAoEBAACPRIEogECOAoNCgUEAAI9BBIEogECCgoNCgUEAAI9BRIEogELEQoNCgUEAAI9ARIEogESIQoNCgUEAAI9AxIEogEkJgoNCgUEAAI9CBIEogEnNwoOCgYEAAI9CAISBKIBKDYKDAoEBAACPhIEowECOAoNCgUEAAI+BBIEowECCgoNCgUEAAI+BRIEowELEQoNCgUEAAI+ARIEowESIQoNCgUEAAI+AxIEowEkJgoNCgUEAAI+CBIEowEnNwoOCgYEAAI+CAISBKMBKDYKDAoEBAACPxIEpAECOAoNCgUEAAI/BBIEpAECCgoNCgUEAAI/BRIEpAELEQoNCgUEAAI/ARIEpAESIQoNCgUEAAI/AxIEpAEkJgoNCgUEAAI/CBIEpAEnNwoOCgYEAAI/CAISBKQBKDYKDAoEBAACQBIEpQECOgoNCgUEAAJABBIEpQECCgoNCgUEAAJABRIEpQELEgoNCgUEAAJAARIEpQETIwoNCgUEAAJAAxIEpQEmKAoNCgUEAAJACBIEpQEpOQoOCgYEAAJACAISBKUBKjgKDAoEBAACQRIEpgECOgoNCgUEAAJBBBIEpgECCgoNCgUEAAJBBRIEpgELEgoNCgUEAAJBARIEpgETIwoNCgUEAAJBAxIEpgEmKAoNCgUEAAJBCBIEpgEpOQoOCgYEAAJBCAISBKYBKjgKDAoEBAACQhIEpwECPAoNCgUEAAJCBBIEpwECCgoNCgUEAAJCBRIEpwELEwoNCgUEAAJCARIEpwEUJQoNCgUEAAJCAxIEpwEoKgoNCgUEAAJCCBIEpwErOwoOCgYEAAJCCAISBKcBLDoKDAoEBAACQxIEqAECPAoNCgUEAAJDBBIEqAECCgoNCgUEAAJDBRIEqAELEwoNCgUEAAJDARIEqAEUJQoNCgUEAAJDAxIEqAEoKgoNCgUEAAJDCBIEqAErOwoOCgYEAAJDCAISBKgBLDoKDAoEBAACRBIEqQECNgoNCgUEAAJEBBIEqQECCgoNCgUEAAJEBRIEqQELEAoNCgUEAAJEARIEqQERHwoNCgUEAAJEAxIEqQEiJAoNCgUEAAJECBIEqQElNQoOCgYEAAJECAISBKkBJjQKDAoEBAACRRIEqgECOQoNCgUEAAJFBBIEqgECCgoNCgUEAAJFBRIEqgELEQoNCgUEAAJFARIEqgESIQoNCgUEAAJFAxIEqgEkJwoNCgUEAAJFCBIEqgEoOAoOCgYEAAJFCAISBKoBKTcKDAoEBAACRhIEqwECNQoNCgUEAAJGBBIEqwECCgoNCgUEAAJGBRIEqwELDwoNCgUEAAJGARIEqwEQHQoNCgUEAAJGAxIEqwEgIwoNCgUEAAJGCBIEqwEkNAoOCgYEAAJGCAISBKsBJTMKDAoEBAACRxIErAECQgoNCgUEAAJHBBIErAECCgoNCgUEAAJHBhIErAELFQoNCgUEAAJHARIErAEWKgoNCgUEAAJHAxIErAEtMAoNCgUEAAJHCBIErAExQQoOCgYEAAJHCAISBKwBMkAKEwoEBAACSBIErwECKRoFIE1hcAoKDQoFBAACSAYSBK8BAhMKDQoFBAACSAESBK8BFCMKDQoFBAACSAMSBK8BJigKDAoEBAACSRIEsAECKQoNCgUEAAJJBhIEsAECEwoNCgUEAAJJARIEsAEUIwoNCgUEAAJJAxIEsAEmKAoMCgQEAAJKEgSxAQItCg0KBQQAAkoGEgSxAQIVCg0KBQQAAkoBEgSxARYnCg0KBQQAAkoDEgSxASosCgwKBAQAAksSBLIBAi0KDQoFBAACSwYSBLIBAhUKDQoFBAACSwESBLIBFicKDQoFBAACSwMSBLIBKiwKDAoEBAACTBIEswECLQoNCgUEAAJMBhIEswECFQoNCgUEAAJMARIEswEWJwoNCgUEAAJMAxIEswEqLAoMCgQEAAJNEgS0AQItCg0KBQQAAk0GEgS0AQIVCg0KBQQAAk0BEgS0ARYnCg0KBQQAAk0DEgS0ASosCgwKBAQAAk4SBLUBAjEKDQoFBAACTgYSBLUBAhcKDQoFBAACTgESBLUBGCsKDQoFBAACTgMSBLUBLjAKDAoEBAACTxIEtgECMQoNCgUEAAJPBhIEtgECFwoNCgUEAAJPARIEtgEYKwoNCgUEAAJPAxIEtgEuMAoMCgQEAAJQEgS3AQI1Cg0KBQQAAlAGEgS3AQIZCg0KBQQAAlABEgS3ARovCg0KBQQAAlADEgS3ATI0CgwKBAQAAlESBLgBAjUKDQoFBAACUQYSBLgBAhkKDQoFBAACUQESBLgBGi8KDQoFBAACUQMSBLgBMjQKDAoEBAACUhIEuQECKQoNCgUEAAJSBhIEuQECEwoNCgUEAAJSARIEuQEUIwoNCgUEAAJSAxIEuQEmKAoMCgQEAAJTEgS6AQIrCg0KBQQAAlMGEgS6AQIUCg0KBQQAAlMBEgS6ARUlCg0KBQQAAlMDEgS6ASgqCgwKBAQAAlQSBLsBAiUKDQoFBAACVAYSBLsBAhEKDQoFBAACVAESBLsBEh8KDQoFBAACVAMSBLsBIiQKDAoEBAACVRIEvAECLQoNCgUEAAJVBhIEvAECFQoNCgUEAAJVARIEvAEWJwoNCgUEAAJVAxIEvAEqLAoMCgQEAAJWEgS9AQIrCg0KBQQAAlYGEgS9AQIUCg0KBQQAAlYBEgS9ARUlCg0KBQQAAlYDEgS9ASgqCgwKBAQAAlcSBL4BAjwKDQoFBAACVwYSBL4BAhwKDQoFBAACVwESBL4BHTYKDQoFBAACVwMSBL4BOTsKDAoEBAACWBIEvwECPgoNCgUEAAJYBhIEvwECHQoNCgUEAAJYARIEvwEeOAoNCgUEAAJYAxIEvwE7PQoMCgQEAAJZEgTAAQI2Cg0KBQQAAlkGEgTAAQIZCg0KBQQAAlkBEgTAARowCg0KBQQAAlkDEgTAATM1CgwKBAQAAloSBMEBAjgKDQoFBAACWgYSBMEBAhoKDQoFBAACWgESBMEBGzIKDQoFBAACWgMSBMEBNTcKDgoEBAAIABIGwwECzgEDCg0KBQQACAABEgTDAQgTCgwKBAQAAlsSBMQBBB4KDQoFBAACWwUSBMQBBAoKDQoFBAACWwESBMQBCxcKDQoFBAACWwMSBMQBGh0KDAoEBAACXBIExQEELQoNCgUEAAJcBhIExQEEEQoNCgUEAAJcARIExQESJgoNCgUEAAJcAxIExQEpLAoMCgQEAAJdEgTGAQQeCg0KBQQAAl0FEgTGAQQKCg0KBQQAAl0BEgTGAQsXCg0KBQQAAl0DEgTGARodCgwKBAQAAl4SBMcBBBwKDQoFBAACXgUSBMcBBAkKDQoFBAACXgESBMcBChUKDQoFBAACXgMSBMcBGBsKDAoEBAACXxIEyAEEGgoNCgUEAAJfBRIEyAEECAoNCgUEAAJfARIEyAEJEwoNCgUEAAJfAxIEyAEWGQoMCgQEAAJgEgTJAQQeCg0KBQQAAmAFEgTJAQQKCg0KBQQAAmABEgTJAQsXCg0KBQQAAmADEgTJARodCgwKBAQAAmESBMoBBBwKDQoFBAACYQUSBMoBBAkKDQoFBAACYQESBMoBChUKDQoFBAACYQMSBMoBGBsKDAoEBAACYhIEywEEHgoNCgUEAAJiBRIEywEECgoNCgUEAAJiARIEywELFwoNCgUEAAJiAxIEywEaHQoMCgQEAAJjEgTMAQQgCg0KBQQAAmMGEgTMAQQOCg0KBQQAAmMBEgTMAQ8ZCg0KBQQAAmMDEgTMARwfCgwKBAQAAmQSBM0BBDUKDQoFBAACZAYSBM0BBB0KDQoFBAACZAESBM0BHi4KDQoFBAACZAMSBM0BMTQKIAoEBAACZRIE0QECOBoSIFdlbGwta25vd24gdHlwZXMKCg0KBQQAAmUGEgTRAQIbCg0KBQQAAmUBEgTRARwxCg0KBQQAAmUDEgTRATQ3CgwKBAQAAmYSBNIBAjoKDQoFBAACZgYSBNIBAhwKDQoFBAACZgESBNIBHTMKDQoFBAACZgMSBNIBNjkKDAoEBAACZxIE0wECOgoNCgUEAAJnBhIE0wECHAoNCgUEAAJnARIE0wEdMwoNCgUEAAJnAxIE0wE2OQoMCgQEAAJoEgTUAQI8Cg0KBQQAAmgGEgTUAQIdCg0KBQQAAmgBEgTUAR41Cg0KBQQAAmgDEgTUATg7CgwKBAQAAmkSBNUBAjwKDQoFBAACaQYSBNUBAh0KDQoFBAACaQESBNUBHjUKDQoFBAACaQMSBNUBODsKDAoEBAACahIE1gECOgoNCgUEAAJqBhIE1gECHAoNCgUEAAJqARIE1gEdMwoNCgUEAAJqAxIE1gE2OQoMCgQEAAJrEgTXAQI8Cg0KBQQAAmsGEgTXAQIdCg0KBQQAAmsBEgTXAR41Cg0KBQQAAmsDEgTXATg7CgwKBAQAAmwSBNgBAjwKDQoFBAACbAYSBNgBAh0KDQoFBAACbAESBNgBHjUKDQoFBAACbAMSBNgBODsKDAoEBAACbRIE2QECOgoNCgUEAAJtBhIE2QECHAoNCgUEAAJtARIE2QEdMwoNCgUEAAJtAxIE2QE2OQoMCgQEAAJuEgTbAQJBCg0KBQQAAm4EEgTbAQIKCg0KBQQAAm4GEgTbAQskCg0KBQQAAm4BEgTbASU6Cg0KBQQAAm4DEgTbAT1ACgwKBAQAAm8SBNwBAkMKDQoFBAACbwQSBNwBAgoKDQoFBAACbwYSBNwBCyUKDQoFBAACbwESBNwBJjwKDQoFBAACbwMSBNwBP0IKDAoEBAACcBIE3QECQwoNCgUEAAJwBBIE3QECCgoNCgUEAAJwBhIE3QELJQoNCgUEAAJwARIE3QEmPAoNCgUEAAJwAxIE3QE/QgoMCgQEAAJxEgTeAQJFCg0KBQQAAnEEEgTeAQIKCg0KBQQAAnEGEgTeAQsmCg0KBQQAAnEBEgTeASc+Cg0KBQQAAnEDEgTeAUFECgwKBAQAAnISBN8BAkUKDQoFBAACcgQSBN8BAgoKDQoFBAACcgYSBN8BCyYKDQoFBAACcgESBN8BJz4KDQoFBAACcgMSBN8BQUQKDAoEBAACcxIE4AECQwoNCgUEAAJzBBIE4AECCgoNCgUEAAJzBhIE4AELJQoNCgUEAAJzARIE4AEmPAoNCgUEAAJzAxIE4AE/QgoMCgQEAAJ0EgThAQJFCg0KBQQAAnQEEgThAQIKCg0KBQQAAnQGEgThAQsmCg0KBQQAAnQBEgThASc+Cg0KBQQAAnQDEgThAUFECgwKBAQAAnUSBOIBAkUKDQoFBAACdQQSBOIBAgoKDQoFBAACdQYSBOIBCyYKDQoFBAACdQESBOIBJz4KDQoFBAACdQMSBOIBQUQKDAoEBAACdhIE4wECQwoNCgUEAAJ2BBIE4wECCgoNCgUEAAJ2BhIE4wELJQoNCgUEAAJ2ARIE4wEmPAoNCgUEAAJ2AxIE4wE/QgoMCgQEAAJ3EgTlAQIzCg0KBQQAAncGEgTlAQIaCg0KBQQAAncBEgTlARssCg0KBQQAAncDEgTlAS8yCgwKBAQAAngSBOYBAjUKDQoFBAACeAYSBOYBAhsKDQoFBAACeAESBOYBHC4KDQoFBAACeAMSBOYBMTQKDAoEBAACeRIE5wECNgoNCgUEAAJ5BhIE5wECGwoNCgUEAAJ5ARIE5wEcLwoNCgUEAAJ5AxIE5wEyNQoMCgQEAAJ6EgToAQIvCg0KBQQAAnoGEgToAQIYCg0KBQQAAnoBEgToARkoCg0KBQQAAnoDEgToASsuCgwKBAQAAnsSBOkBAikKDQoFBAACewYSBOkBAhUKDQoFBAACewESBOkBFiIKDQoFBAACewMSBOkBJSgKDAoEBAACfBIE6gECLQoNCgUEAAJ8BhIE6gECFwoNCgUEAAJ8ARIE6gEYJgoNCgUEAAJ8AxIE6gEpLAoMCgQEAAJ9EgTrAQI2Cg0KBQQAAn0GEgTrAQIbCg0KBQQAAn0BEgTrARwvCg0KBQQAAn0DEgTrATI1CgwKBAQAAn4SBO0BAjwKDQoFBAACfgQSBO0BAgoKDQoFBAACfgYSBO0BCyMKDQoFBAACfgESBO0BJDUKDQoFBAACfgMSBO0BODsKDAoEBAACfxIE7gECPgoNCgUEAAJ/BBIE7gECCgoNCgUEAAJ/BhIE7gELJAoNCgUEAAJ/ARIE7gElNwoNCgUEAAJ/AxIE7gE6PQoNCgUEAAKAARIE7wECPgoOCgYEAAKAAQQSBO8BAgoKDgoGBAACgAEGEgTvAQskCg4KBgQAAoABARIE7wElNwoOCgYEAAKAAQMSBO8BOj0KDQoFBAACgQESBPABAjgKDgoGBAACgQEEEgTwAQIKCg4KBgQAAoEBBhIE8AELIQoOCgYEAAKBAQESBPABIjEKDgoGBAACgQEDEgTwATQ3Cg0KBQQAAoIBEgTxAQIyCg4KBgQAAoIBBBIE8QECCgoOCgYEAAKCAQYSBPEBCx4KDgoGBAACggEBEgTxAR8rCg4KBgQAAoIBAxIE8QEuMQoNCgUEAAKDARIE8gECNgoOCgYEAAKDAQQSBPIBAgoKDgoGBAACgwEGEgTyAQsgCg4KBgQAAoMBARIE8gEhLwoOCgYEAAKDAQMSBPIBMjUKDQoFBAAChAESBPMBAj8KDgoGBAAChAEEEgTzAQIKCg4KBgQAAoQBBhIE8wELJAoOCgYEAAKEAQESBPMBJTgKDgoGBAAChAEDEgTzATs+CnMKBQQAAoUBEgT3AQIZGmQgVGVzdCBmaWVsZC1uYW1lLXRvLUpTT04tbmFtZSBjb252ZW50aW9uLgogKHByb3RvYnVmIHNheXMgbmFtZXMgY2FuIGJlIGFueSB2YWxpZCBDL0MrKyBpZGVudGlmaWVyLikKCg4KBgQAAoUBBRIE9wECBwoOCgYEAAKFAQESBPcBCBIKDgoGBAAChQEDEgT3ARUYCg0KBQQAAoYBEgT4AQIaCg4KBgQAAoYBBRIE+AECBwoOCgYEAAKGAQESBPgBCBMKDgoGBAAChgEDEgT4ARYZCg0KBQQAAocBEgT5AQIbCg4KBgQAAocBBRIE+QECBwoOCgYEAAKHAQESBPkBCBQKDgoGBAAChwEDEgT5ARcaCg0KBQQAAogBEgT6AQIcCg4KBgQAAogBBRIE+gECBwoOCgYEAAKIAQESBPoBCBUKDgoGBAACiAEDEgT6ARgbCg0KBQQAAokBEgT7AQIaCg4KBgQAAokBBRIE+wECBwoOCgYEAAKJAQESBPsBCBMKDgoGBAACiQEDEgT7ARYZCg0KBQQAAooBEgT8AQIcCg4KBgQAAooBBRIE/AECBwoOCgYEAAKKAQESBPwBCBUKDgoGBAACigEDEgT8ARgbCg0KBQQAAosBEgT9AQIZCg4KBgQAAosBBRIE/QECBwoOCgYEAAKLAQESBP0BCBIKDgoGBAACiwEDEgT9ARUYCg0KBQQAAowBEgT+AQIZCg4KBgQAAowBBRIE/gECBwoOCgYEAAKMAQESBP4BCBIKDgoGBAACjAEDEgT+ARUYCg0KBQQAAo0BEgT/AQIaCg4KBgQAAo0BBRIE/wECBwoOCgYEAAKNAQESBP8BCBMKDgoGBAACjQEDEgT/ARYZCg0KBQQAAo4BEgSAAgIbCg4KBgQAAo4BBRIEgAICBwoOCgYEAAKOAQESBIACCBQKDgoGBAACjgEDEgSAAhcaCg0KBQQAAo8BEgSBAgIbCg4KBgQAAo8BBRIEgQICBwoOCgYEAAKPAQESBIECCBQKDgoGBAACjwEDEgSBAhcaCg0KBQQAApABEgSCAgIbCg4KBgQAApABBRIEggICBwoOCgYEAAKQAQESBIICCBQKDgoGBAACkAEDEgSCAhcaCg0KBQQAApEBEgSDAgIdCg4KBgQAApEBBRIEgwICBwoOCgYEAAKRAQESBIMCCBYKDgoGBAACkQEDEgSDAhkcCg0KBQQAApIBEgSEAgIdCg4KBgQAApIBBRIEhAICBwoOCgYEAAKSAQESBIQCCBYKDgoGBAACkgEDEgSEAhkcCg0KBQQAApMBEgSFAgIcCg4KBgQAApMBBRIEhQICBwoOCgYEAAKTAQESBIUCCBUKDgoGBAACkwEDEgSFAhgbCg0KBQQAApQBEgSGAgIcCg4KBgQAApQBBRIEhgICBwoOCgYEAAKUAQESBIYCCBUKDgoGBAAClAEDEgSGAhgbCg0KBQQAApUBEgSHAgIdCg4KBgQAApUBBRIEhwICBwoOCgYEAAKVAQESBIcCCBYKDgoGBAAClQEDEgSHAhkcCg0KBQQAApYBEgSIAgIdCg4KBgQAApYBBRIEiAICBwoOCgYEAAKWAQESBIgCCBYKDgoGBAAClgEDEgSIAhkcCjIKAwQACRIEiwICFholIFJlc2VydmVkIGZvciB0ZXN0aW5nIHVua25vd24gZmllbGRzCgoMCgQEAAkAEgSLAgsVCg0KBQQACQABEgSLAgsOCg0KBQQACQACEgSLAhIVCgwKAgQBEgaOAgCQAgEKCwoDBAEBEgSOAggWCgwKBAQBAgASBI8CAg4KDQoFBAECAAUSBI8CAgcKDQoFBAECAAESBI8CCAkKDQoFBAECAAMSBI8CDA0KDAoCBQASBpICAJYCAQoLCgMFAAESBJICBRAKDAoEBQACABIEkwICEgoNCgUFAAIAARIEkwICDQoNCgUFAAIAAhIEkwIQEQoMCgQFAAIBEgSUAgISCg0KBQUAAgEBEgSUAgINCg0KBQUAAgECEgSUAhARCgwKBAUAAgISBJUCAhIKDQoFBQACAgESBJUCAg0KDQoFBQACAgISBJUCEBEKDAoCBAISBpgCAJkCAQoLCgMEAgESBJgCCBwKDAoCBAMSBpsCAKACAQoLCgMEAwESBJsCCBYKDgoEBAMEABIGnAICnwIDCg0KBQQDBAABEgScAgcLCg4KBgQDBAACABIEnQIEDwoPCgcEAwQAAgABEgSdAgQKCg8KBwQDBAACAAISBJ0CDQ4KDgoGBAMEAAIBEgSeAgQOCg8KBwQDBAACAQESBJ4CBAkKDwoHBAMEAAIBAhIEngIMDWIGcHJvdG8zCuzQAQoqZ29vZ2xlL3Byb3RvYnVmL3Rlc3RfbWVzc2FnZXNfcHJvdG8yLnByb3RvEh1wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMiKLUQoSVGVzdEFsbFR5cGVzUHJvdG8yEiUKDm9wdGlvbmFsX2ludDMyGAEgASgFUg1vcHRpb25hbEludDMyEiUKDm9wdGlvbmFsX2ludDY0GAIgASgDUg1vcHRpb25hbEludDY0EicKD29wdGlvbmFsX3VpbnQzMhgDIAEoDVIOb3B0aW9uYWxVaW50MzISJwoPb3B0aW9uYWxfdWludDY0GAQgASgEUg5vcHRpb25hbFVpbnQ2NBInCg9vcHRpb25hbF9zaW50MzIYBSABKBFSDm9wdGlvbmFsU2ludDMyEicKD29wdGlvbmFsX3NpbnQ2NBgGIAEoElIOb3B0aW9uYWxTaW50NjQSKQoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoB1IPb3B0aW9uYWxGaXhlZDMyEikKEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZSD29wdGlvbmFsRml4ZWQ2NBIrChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoD1IQb3B0aW9uYWxTZml4ZWQzMhIrChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEFIQb3B0aW9uYWxTZml4ZWQ2NBIlCg5vcHRpb25hbF9mbG9hdBgLIAEoAlINb3B0aW9uYWxGbG9hdBInCg9vcHRpb25hbF9kb3VibGUYDCABKAFSDm9wdGlvbmFsRG91YmxlEiMKDW9wdGlvbmFsX2Jvb2wYDSABKAhSDG9wdGlvbmFsQm9vbBInCg9vcHRpb25hbF9zdHJpbmcYDiABKAlSDm9wdGlvbmFsU3RyaW5nEiUKDm9wdGlvbmFsX2J5dGVzGA8gASgMUg1vcHRpb25hbEJ5dGVzEncKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRJtChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIWb3B0aW9uYWxGb3JlaWduTWVzc2FnZRJuChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUhJvcHRpb25hbE5lc3RlZEVudW0SZAoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSE29wdGlvbmFsRm9yZWlnbkVudW0SNgoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAlITb3B0aW9uYWxTdHJpbmdQaWVjZRInCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIAVIMb3B0aW9uYWxDb3JkEl4KEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yUhByZWN1cnNpdmVNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEncKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSFXJlcGVhdGVkTmVzdGVkTWVzc2FnZRJtChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJuChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUhJyZXBlYXRlZE5lc3RlZEVudW0SZAoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSE3JlcGVhdGVkRm9yZWlnbkVudW0SNgoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAlITcmVwZWF0ZWRTdHJpbmdQaWVjZRInCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIAVIMcmVwZWF0ZWRDb3JkEiUKDHBhY2tlZF9pbnQzMhhLIAMoBUICEAFSC3BhY2tlZEludDMyEiUKDHBhY2tlZF9pbnQ2NBhMIAMoA0ICEAFSC3BhY2tlZEludDY0EicKDXBhY2tlZF91aW50MzIYTSADKA1CAhABUgxwYWNrZWRVaW50MzISJwoNcGFja2VkX3VpbnQ2NBhOIAMoBEICEAFSDHBhY2tlZFVpbnQ2NBInCg1wYWNrZWRfc2ludDMyGE8gAygRQgIQAVIMcGFja2VkU2ludDMyEicKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABUgxwYWNrZWRTaW50NjQSKQoOcGFja2VkX2ZpeGVkMzIYUSADKAdCAhABUg1wYWNrZWRGaXhlZDMyEikKDnBhY2tlZF9maXhlZDY0GFIgAygGQgIQAVINcGFja2VkRml4ZWQ2NBIrCg9wYWNrZWRfc2ZpeGVkMzIYUyADKA9CAhABUg5wYWNrZWRTZml4ZWQzMhIrCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABUg5wYWNrZWRTZml4ZWQ2NBIlCgxwYWNrZWRfZmxvYXQYVSADKAJCAhABUgtwYWNrZWRGbG9hdBInCg1wYWNrZWRfZG91YmxlGFYgAygBQgIQAVIMcGFja2VkRG91YmxlEiMKC3BhY2tlZF9ib29sGFcgAygIQgIQAVIKcGFja2VkQm9vbBJuChJwYWNrZWRfbmVzdGVkX2VudW0YWCADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bUICEAFSEHBhY2tlZE5lc3RlZEVudW0SKQoOdW5wYWNrZWRfaW50MzIYWSADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFogAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYWyADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXCADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXiADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGF8gAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYCADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhlIAMoCEICEABSDHVucGFja2VkQm9vbBJyChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQAFISdW5wYWNrZWROZXN0ZWRFbnVtEmwKD21hcF9pbnQzMl9pbnQzMhg4IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkludDMyRW50cnlSDW1hcEludDMySW50MzISbAoPbWFwX2ludDY0X2ludDY0GDkgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJyChFtYXBfdWludDMyX3VpbnQzMhg6IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBVaW50MzJVaW50MzJFbnRyeVIPbWFwVWludDMyVWludDMyEnIKEW1hcF91aW50NjRfdWludDY0GDsgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5Ug9tYXBVaW50NjRVaW50NjQScgoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJyChFtYXBfc2ludDY0X3NpbnQ2NBg9IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTaW50NjRTaW50NjRFbnRyeVIPbWFwU2ludDY0U2ludDY0EngKE21hcF9maXhlZDMyX2ZpeGVkMzIYPiADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeVIRbWFwRml4ZWQzMkZpeGVkMzISeAoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBg/IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJ+ChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5UhNtYXBTZml4ZWQzMlNmaXhlZDMyEn4KFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnlSE21hcFNmaXhlZDY0U2ZpeGVkNjQSbAoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJvChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRG91YmxlRW50cnlSDm1hcEludDMyRG91YmxlEmYKDW1hcF9ib29sX2Jvb2wYRCADKAsyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwQm9vbEJvb2xFbnRyeVILbWFwQm9vbEJvb2wScgoRbWFwX3N0cmluZ19zdHJpbmcYRSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJvChBtYXBfc3RyaW5nX2J5dGVzGEYgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0J5dGVzRW50cnlSDm1hcFN0cmluZ0J5dGVzEogBChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeVIWbWFwU3RyaW5nTmVzdGVkTWVzc2FnZRKLAQoabWFwX3N0cmluZ19mb3JlaWduX21lc3NhZ2UYSCADKAsyTi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeVIXbWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2USfwoWbWFwX3N0cmluZ19uZXN0ZWRfZW51bRhJIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnlSE21hcFN0cmluZ05lc3RlZEVudW0SggEKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnlSFG1hcFN0cmluZ0ZvcmVpZ25FbnVtEiMKDG9uZW9mX3VpbnQzMhhvIAEoDUgAUgtvbmVvZlVpbnQzMhJzChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxIfCgpvbmVvZl9ib29sGHMgASgISABSCW9uZW9mQm9vbBIjCgxvbmVvZl91aW50NjQYdCABKARIAFILb25lb2ZVaW50NjQSIQoLb25lb2ZfZmxvYXQYdSABKAJIAFIKb25lb2ZGbG9hdBIjCgxvbmVvZl9kb3VibGUYdiABKAFIAFILb25lb2ZEb3VibGUSXQoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtSABSCW9uZW9mRW51bRJLCgRkYXRhGMkBIAEoCjI2LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5EYXRhUgRkYXRhEjAKDWRlZmF1bHRfaW50MzIY8QEgASgFOgotMTIzNDU2Nzg5UgxkZWZhdWx0SW50MzISOgoNZGVmYXVsdF9pbnQ2NBjyASABKAM6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5UgxkZWZhdWx0SW50NjQSMgoOZGVmYXVsdF91aW50MzIY8wEgASgNOgoyMTIzNDU2Nzg5Ug1kZWZhdWx0VWludDMyEjwKDmRlZmF1bHRfdWludDY0GPQBIAEoBDoUMTAxMjM0NTY3ODkxMjM0NTY3ODlSDWRlZmF1bHRVaW50NjQSMgoOZGVmYXVsdF9zaW50MzIY9QEgASgROgotMTIzNDU2Nzg5Ug1kZWZhdWx0U2ludDMyEjwKDmRlZmF1bHRfc2ludDY0GPYBIAEoEjoULTkxMjM0NTY3ODkxMjM0NTY3ODlSDWRlZmF1bHRTaW50NjQSNAoPZGVmYXVsdF9maXhlZDMyGPcBIAEoBzoKMjEyMzQ1Njc4OVIOZGVmYXVsdEZpeGVkMzISPgoPZGVmYXVsdF9maXhlZDY0GPgBIAEoBjoUMTAxMjM0NTY3ODkxMjM0NTY3ODlSDmRlZmF1bHRGaXhlZDY0EjYKEGRlZmF1bHRfc2ZpeGVkMzIY+QEgASgPOgotMTIzNDU2Nzg5Ug9kZWZhdWx0U2ZpeGVkMzISQAoQZGVmYXVsdF9zZml4ZWQ2NBj6ASABKBA6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5Ug9kZWZhdWx0U2ZpeGVkNjQSKwoNZGVmYXVsdF9mbG9hdBj7ASABKAI6BTllKzA5UgxkZWZhdWx0RmxvYXQSLQoOZGVmYXVsdF9kb3VibGUY/AEgASgBOgU3ZSsyMlINZGVmYXVsdERvdWJsZRIoCgxkZWZhdWx0X2Jvb2wY/QEgASgIOgR0cnVlUgtkZWZhdWx0Qm9vbBIvCg5kZWZhdWx0X3N0cmluZxj+ASABKAk6B1Jvc2VidWRSDWRlZmF1bHRTdHJpbmcSHwoKZmllbGRuYW1lMRiRAyABKAVSCmZpZWxkbmFtZTESIAoLZmllbGRfbmFtZTIYkgMgASgFUgpmaWVsZE5hbWUyEiEKDF9maWVsZF9uYW1lMxiTAyABKAVSCkZpZWxkTmFtZTMSIgoNZmllbGRfX25hbWU0XxiUAyABKAVSCmZpZWxkTmFtZTQSIQoLZmllbGQwbmFtZTUYlQMgASgFUgtmaWVsZDBuYW1lNRIjCg1maWVsZF8wX25hbWU2GJYDIAEoBVILZmllbGQwTmFtZTYSHwoKZmllbGROYW1lNxiXAyABKAVSCmZpZWxkTmFtZTcSHwoKRmllbGROYW1lOBiYAyABKAVSCkZpZWxkTmFtZTgSIAoLZmllbGRfTmFtZTkYmQMgASgFUgpmaWVsZE5hbWU5EiIKDEZpZWxkX05hbWUxMBiaAyABKAVSC0ZpZWxkTmFtZTEwEiIKDEZJRUxEX05BTUUxMRibAyABKAVSC0ZJRUxETkFNRTExEiIKDEZJRUxEX25hbWUxMhicAyABKAVSC0ZJRUxETmFtZTEyEiQKDl9fZmllbGRfbmFtZTEzGJ0DIAEoBVILRmllbGROYW1lMTMSJAoOX19GaWVsZF9uYW1lMTQYngMgASgFUgtGaWVsZE5hbWUxNBIjCg1maWVsZF9fbmFtZTE1GJ8DIAEoBVILZmllbGROYW1lMTUSIwoNZmllbGRfX05hbWUxNhigAyABKAVSC2ZpZWxkTmFtZTE2EiQKDmZpZWxkX25hbWUxN19fGKEDIAEoBVILZmllbGROYW1lMTcSJAoORmllbGRfbmFtZTE4X18YogMgASgFUgtGaWVsZE5hbWUxOBpyCg1OZXN0ZWRNZXNzYWdlEgwKAWEYASABKAVSAWESUwoLY29yZWN1cnNpdmUYAiABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzJSC2NvcmVjdXJzaXZlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGkIKFE1hcFN0cmluZ1N0cmluZ0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEaQQoTTWFwU3RyaW5nQnl0ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoDFIFdmFsdWU6AjgBGooBChtNYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSVQoFdmFsdWUYAiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIFdmFsdWU6AjgBGn8KHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSSQoFdmFsdWUYAiABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIFdmFsdWU6AjgBGoQBChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSUgoFdmFsdWUYAiABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bVIFdmFsdWU6AjgBGnkKGU1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSRgoFdmFsdWUYAiABKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMlIFdmFsdWU6AjgBGkwKBERhdGESIAoLZ3JvdXBfaW50MzIYygEgASgFUgpncm91cEludDMyEiIKDGdyb3VwX3VpbnQzMhjLASABKA1SC2dyb3VwVWludDMyGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEa+gEKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRIQCgNzdHIYGSABKAlSA3N0cjLIAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GPm7XiABKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xUhNtZXNzYWdlU2V0RXh0ZW5zaW9uGvcBChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjISDAoBaRgJIAEoBVIBaTLJAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GJCz/AEgASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMlITbWVzc2FnZVNldEV4dGVuc2lvbiI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BKgUIeBDJAUINCgtvbmVvZl9maWVsZEoGCOgHEJBOIiQKFEZvcmVpZ25NZXNzYWdlUHJvdG8yEgwKAWMYASABKAVSAWMingMKFVVua25vd25Ub1Rlc3RBbGxUeXBlcxImCg5vcHRpb25hbF9pbnQzMhjpByABKAVSDW9wdGlvbmFsSW50MzISKAoPb3B0aW9uYWxfc3RyaW5nGOoHIAEoCVIOb3B0aW9uYWxTdHJpbmcSWwoObmVzdGVkX21lc3NhZ2UY6wcgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSDW5lc3RlZE1lc3NhZ2USaQoNb3B0aW9uYWxncm91cBjsByABKAoyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Vbmtub3duVG9UZXN0QWxsVHlwZXMuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBIkCg1vcHRpb25hbF9ib29sGO4HIAEoCFIMb3B0aW9uYWxCb29sEiYKDnJlcGVhdGVkX2ludDMyGPMHIAMoBVINcmVwZWF0ZWRJbnQzMhodCg1PcHRpb25hbEdyb3VwEgwKAWEYASABKAVSAWEiFgoUTnVsbEh5cG90aGVzaXNQcm90bzIiLwoORW51bU9ubHlQcm90bzIiHQoEQm9vbBIKCgZrRmFsc2UQABIJCgVrVHJ1ZRABKkYKEUZvcmVpZ25FbnVtUHJvdG8yEg8KC0ZPUkVJR05fRk9PEAASDwoLRk9SRUlHTl9CQVIQARIPCgtGT1JFSUdOX0JBWhACOloKD2V4dGVuc2lvbl9pbnQzMhIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMhh4IAEoBVIOZXh0ZW5zaW9uSW50MzJCLwooY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMkgB+AEBSqt5CgcSBSUAowIBCroNCgEMEgMlABIymQ0gUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogVGVzdCBzY2hlbWEgZm9yIHByb3RvMiBtZXNzYWdlcy4gIFRoaXMgdGVzdCBzY2hlbWEgaXMgdXNlZCBieToKCiAtIGNvbmZvcm1hbmNlIHRlc3RzCgoyFCBMSU5UOiBBTExPV19HUk9VUFMKCggKAQISAycAJgoICgEIEgMpAEEKCQoCCAESAykAQQoICgEIEgMsABwKRAoCCAkSAywAHBo5IFRoaXMgaXMgdGhlIGRlZmF1bHQsIGJ1dCB3ZSBzcGVjaWZ5IGl0IGhlcmUgZXhwbGljaXRseS4KCggKAQgSAy4AHwoJCgIIHxIDLgAfCtsCCgIEABIFNwCAAgEazQIgVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCiBBbHNvLCBjcnVjaWFsbHksIGFsbCBtZXNzYWdlcyBhbmQgZW51bXMgaW4gdGhpcyBmaWxlIGFyZSBldmVudHVhbGx5CiBzdWJtZXNzYWdlcyBvZiB0aGlzIG1lc3NhZ2UuICBTbyBmb3IgZXhhbXBsZSwgYSBmdXp6IHRlc3Qgb2YgVGVzdEFsbFR5cGVzCiBjb3VsZCB0cmlnZ2VyIGJ1Z3MgdGhhdCBvY2N1ciBpbiBhbnkgbWVzc2FnZSB0eXBlIGluIHRoaXMgZmlsZS4gIFdlIHZlcmlmeQogdGhpcyBzdGF5cyB0cnVlIGluIGEgdW5pdCB0ZXN0LgoKCgoDBAABEgM3CBoKDAoEBAADABIEOAI7AwoMCgUEAAMAARIDOAoXCg0KBgQAAwACABIDOQQZCg4KBwQAAwACAAQSAzkEDAoOCgcEAAMAAgAFEgM5DRIKDgoHBAADAAIAARIDORMU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BAACPQgSBI8BJzcKDgoGBAACPQgCEgSPASg2CgwKBAQAAj4SBJABAjgKDQoFBAACPgQSBJABAgoKDQoFBAACPgUSBJABCxEKDQoFBAACPgESBJABEiEKDQoFBAACPgMSBJABJCYKDQoFBAACPggSBJABJzcKDgoGBAACPggCEgSQASg2CgwKBAQAAj8SBJEBAjoKDQoFBAACPwQSBJEBAgoKDQoFBAACPwUSBJEBCxIKDQoFBAACPwESBJEBEyMKDQoFBAACPwMSBJEBJigKDQoFBAACPwgSBJEBKTkKDgoGBAACPwgCEgSRASo4CgwKBAQAAkASBJIBAjoKDQoFBAACQAQSBJIBAgoKDQoFBAACQAUSBJIBCxIKDQoFBAACQAESBJIBEyMKDQoFBAACQAMSBJIBJigKDQoFBAACQAgSBJIBKTkKDgoGBAACQAgCEgSSASo4CgwKBAQAAkESBJMBAjwKDQoFBAACQQQSBJMBAgoKDQoFBAACQQUSBJMBCxMKDQoFBAACQQESBJMBFCUKDQoFBAACQQMSBJMBKCoKDQoFBAACQQgSBJMBKzsKDgoGBAACQQgCEgSTASw6CgwKBAQAAkISBJQBAjwKDQoFBAACQgQSBJQBAgoKDQoFBAACQgUSBJQBCxMKDQoFBAACQgESBJQBFCUKDQoFBAACQgMSBJQBKCoKDQoFBAACQggSBJQBKzsKDgoGBAACQggCEgSUASw6CgwKBAQAAkMSBJUBAjYKDQoFBAACQwQSBJUBAgoKDQoFBAACQwUSBJUBCxAKDQoFBAACQwESBJUBER8KDQoFBAACQwMSBJUBIiQKDQoFBAACQwgSBJUBJTUKDgoGBAACQwgCEgSVASY0CgwKBAQAAkQSBJYBAjkKDQoFBAACRAQSBJYBAgoKDQoFBAACRAUSBJYBCxEKDQoFBAACRAESBJYBEiEKDQoFBAACRAMSBJYBJCcKDQoFBAACRAgSBJYBKDgKDgoGBAACRAgCEgSWASk3CgwKBAQAAkUSBJcBAjUKDQoFBAACRQQSBJcBAgoKDQoFBAACRQUSBJcBCw8KDQoFBAACRQESBJcBEB0KDQoFBAACRQMSBJcBICMKDQoFBAACRQgSBJcBJDQKDgoGBAACRQgCEgSXASUzCgwKBAQAAkYSBJgBAkIKDQoFBAACRgQSBJgBAgoKDQoF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Ug5vcHRpb25hbFVpbnQ2NIgBARIsCg9vcHRpb25hbF9zaW50MzIYBSABKBFIBFIOb3B0aW9uYWxTaW50MzKIAQESLAoPb3B0aW9uYWxfc2ludDY0GAYgASgSSAVSDm9wdGlvbmFsU2ludDY0iAEBEi4KEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdIBlIPb3B0aW9uYWxGaXhlZDMyiAEBEi4KEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZIB1IPb3B0aW9uYWxGaXhlZDY0iAEBEjAKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPSAhSEG9wdGlvbmFsU2ZpeGVkMzKIAQESMAoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBICVIQb3B0aW9uYWxTZml4ZWQ2NIgBARIqCg5vcHRpb25hbF9mbG9hdBgLIAEoAkgKUg1vcHRpb25hbEZsb2F0iAEBEiwKD29wdGlvbmFsX2RvdWJsZRgMIAEoAUgLUg5vcHRpb25hbERvdWJsZYgBARIoCg1vcHRpb25hbF9ib29sGA0gASgISAxSDG9wdGlvbmFsQm9vbIgBARIsCg9vcHRpb25hbF9zdHJpbmcYDiABKAlIDVIOb3B0aW9uYWxTdHJpbmeIAQESKgoOb3B0aW9uYWxfYnl0ZXMYDyABKAxIDlINb3B0aW9uYWxCeXRlc4gBARIsCg1vcHRpb25hbF9jb3JkGBAgASgJQgIIAUgPUgxvcHRpb25hbENvcmSIAQEScAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWwuTmVzdGVkTWVzc2FnZUgQUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2WIAQESbAoTbGF6eV9uZXN0ZWRfbWVzc2FnZRgTIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRNZXNzYWdlQgIoAUgRUhFsYXp5TmVzdGVkTWVzc2FnZYgBARJnChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIwLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRFbnVtSBJSEm9wdGlvbmFsTmVzdGVkRW51bYgBARIlCg5zaW5ndWxhcl9pbnQzMhgWIAEoBVINc2luZ3VsYXJJbnQzMhIlCg5zaW5ndWxhcl9pbnQ2NBgXIAEoA1INc2luZ3VsYXJJbnQ2NBorCg1OZXN0ZWRNZXNzYWdlEhMKAmJiGAEgASgFSABSAmJiiAEBQgUKA19iYiJKCgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCEQoPX29wdGlvbmFsX2ludDMyQhEKD19vcHRpb25hbF9pbnQ2NEISChBfb3B0aW9uYWxfdWludDMyQhIKEF9vcHRpb25hbF91aW50NjRCEgoQX29wdGlvbmFsX3NpbnQzMkISChBfb3B0aW9uYWxfc2ludDY0QhMKEV9vcHRpb25hbF9maXhlZDMyQhMKEV9vcHRpb25hbF9maXhlZDY0QhQKEl9vcHRpb25hbF9zZml4ZWQzMkIUChJfb3B0aW9uYWxfc2ZpeGVkNjRCEQoPX29wdGlvbmFsX2Zsb2F0QhIKEF9vcHRpb25hbF9kb3VibGVCEAoOX29wdGlvbmFsX2Jvb2xCEgoQX29wdGlvbmFsX3N0cmluZ0IRCg9fb3B0aW9uYWxfYnl0ZXNCEAoOX29wdGlvbmFsX2NvcmRCGgoYX29wdGlvbmFsX25lc3RlZF9tZXNzYWdlQhYKFF9sYXp5X25lc3RlZF9tZXNzYWdlQhcKFV9vcHRpb25hbF9uZXN0ZWRfZW51bSKyAgoZVGVzdFByb3RvM09wdGlvbmFsTWVzc2FnZRJhCg5uZXN0ZWRfbWVzc2FnZRgBIAEoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2UuTmVzdGVkTWVzc2FnZVINbmVzdGVkTWVzc2FnZRJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgCIAEoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2UuTmVzdGVkTWVzc2FnZUgAUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2WIAQEaHQoNTmVzdGVkTWVzc2FnZRIMCgFzGAEgASgJUgFzQhoKGF9vcHRpb25hbF9uZXN0ZWRfbWVzc2FnZSLJAQoYUHJvdG8zT3B0aW9uYWxFeHRlbnNpb25zMksKD2V4dF9ub19vcHRpb25hbBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiIzdmpASABKAVSDWV4dE5vT3B0aW9uYWwyUgoRZXh0X3dpdGhfb3B0aW9uYWwSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYic3ZqQEgASgFUg9leHRXaXRoT3B0aW9uYWyIAQE6DMDozM0KCMjozM0KEEIlCiFjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RpbmcucHJvdG9QAUqGIgoGEgQeAGMBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI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