Cv0OCiN1bml0dGVzdF9pbXBvcnRfcHVibGljX3Byb3RvMy5wcm90bxIYcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0IiMKE1B1YmxpY0ltcG9ydE1lc3NhZ2USDAoBZRgBIAEoBVIBZUIdqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK7w0KBhIEIAAoAQr2DAoBDBIDIAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyKCBBdXRob3I6IGxpdWppc2lAZ29vZ2xlLmNvbSAoUGhlcmwgTGl1KQoKCAoBAhIDIgAhCggKAQgSAyQANwoJCgIIJRIDJAA3CgoKAgQAEgQmACgBCgoKAwQAARIDJggbCgsKBAQAAgASAycBDQoMCgUEAAIABRIDJwEGCgwKBQQAAgABEgMnBwgKDAoFBAACAAMSAycLDGIGcHJvdG8zCoMTChx1bml0dGVzdF9pbXBvcnRfcHJvdG8zLnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQaI3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvIh0KDUltcG9ydE1lc3NhZ2USDAoBZBgBIAEoBVIBZCpZCgpJbXBvcnRFbnVtEhsKF0lNUE9SVF9FTlVNX1VOU1BFQ0lGSUVEEAASDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAlCHaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSoARCgYSBCQANgEKnw4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3aGljaCBpcyBpbXBvcnRlZCBieSB1bml0dGVzdF9wcm90bzMucHJvdG8gdG8gdGVzdCBpbXBvcnRpbmcuCgoICgECEgMmACEKCAoBCBIDKAA3CgkKAgglEgMoADcKHwoCAwASAysANBoUIFRlc3QgcHVibGljIGltcG9ydAoKCQoCCgASAysHDQoKCgIEABIELQAvAQoKCgMEAAESAy0IFQoLCgQEAAIAEgMuAg4KDAoFBAACAAUSAy4CBwoMCgUEAAIAARIDLggJCgwKBQQAAgADEgMuDA0KCgoCBQASBDEANgEKCgoDBQABEgMxBQ8KCwoEBQACABIDMgIeCgwKBQUAAgABEgMyAhkKDAoFBQACAAISAzIcHQoLCgQFAAIBEgMzAhEKDAoFBQACAQESAzMCDAoMCgUFAAIBAhIDMw8QCgsKBAUAAgISAzQCEQoMCgUFAAICARIDNAIMCgwKBQUAAgICEgM0DxAKCwoEBQACAxIDNQIRCgwKBQUAAgMBEgM1AgwKDAoFBQACAwISAzUPEFAAYgZwcm90bzMK6bsBChV1bml0dGVzdF9wcm90bzMucHJvdG8SEnByb3RvYnVmX3VuaXR0ZXN0MxocdW5pdHRlc3RfaW1wb3J0X3Byb3RvMy5wcm90byKrFgoMVGVzdEFsbFR5cGVzEiEKDHNpbmdsZV9pbnQzMhgBIAEoBVILc2luZ2xlSW50MzISIQoMc2luZ2xlX2ludDY0GAIgASgDUgtzaW5nbGVJbnQ2NBIjCg1zaW5nbGVfdWludDMyGAMgASgNUgxzaW5nbGVVaW50MzISIwoNc2luZ2xlX3VpbnQ2NBgEIAEoBFIMc2luZ2xlVWludDY0EiMKDXNpbmdsZV9zaW50MzIYBSABKBFSDHNpbmdsZVNpbnQzMhIjCg1zaW5nbGVfc2ludDY0GAYgASgSUgxzaW5nbGVTaW50NjQSJQoOc2luZ2xlX2ZpeGVkMzIYByABKAdSDXNpbmdsZUZpeGVkMzISJQoOc2luZ2xlX2ZpeGVkNjQYCCABKAZSDXNpbmdsZUZpeGVkNjQSJwoPc2luZ2xlX3NmaXhlZDMyGAkgASgPUg5zaW5nbGVTZml4ZWQzMhInCg9zaW5nbGVfc2ZpeGVkNjQYCiABKBBSDnNpbmdsZVNmaXhlZDY0EiEKDHNpbmdsZV9mbG9hdBgLIAEoAlILc2luZ2xlRmxvYXQSIwoNc2luZ2xlX2RvdWJsZRgMIAEoAVIMc2luZ2xlRG91YmxlEh8KC3NpbmdsZV9ib29sGA0gASgIUgpzaW5nbGVCb29sEiMKDXNpbmdsZV9zdHJpbmcYDiABKAlSDHNpbmdsZVN0cmluZxIhCgxzaW5nbGVfYnl0ZXMYDyABKAxSC3NpbmdsZUJ5dGVzEmIKFXNpbmdsZV9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVITc2luZ2xlTmVzdGVkTWVzc2FnZRJYChZzaW5nbGVfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUhRzaW5nbGVGb3JlaWduTWVzc2FnZRJbChVzaW5nbGVfaW1wb3J0X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZVITc2luZ2xlSW1wb3J0TWVzc2FnZRJZChJzaW5nbGVfbmVzdGVkX2VudW0YFSABKA4yKy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEHNpbmdsZU5lc3RlZEVudW0STwoTc2luZ2xlX2ZvcmVpZ25fZW51bRgWIAEoDjIfLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduRW51bVIRc2luZ2xlRm9yZWlnbkVudW0SUgoSc2luZ2xlX2ltcG9ydF9lbnVtGBcgASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW1SEHNpbmdsZUltcG9ydEVudW0Sbgocc2luZ2xlX3B1YmxpY19pbXBvcnRfbWVzc2FnZRgaIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlUhlzaW5nbGVQdWJsaWNJbXBvcnRNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEmYKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USXAoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEl8KF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSFXJlcGVhdGVkSW1wb3J0TWVzc2FnZRJdChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIScmVwZWF0ZWROZXN0ZWRFbnVtElMKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIfLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduRW51bVITcmVwZWF0ZWRGb3JlaWduRW51bRJWChRyZXBlYXRlZF9pbXBvcnRfZW51bRg1IAMoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtUhJyZXBlYXRlZEltcG9ydEVudW0ScgoecmVwZWF0ZWRfcHVibGljX2ltcG9ydF9tZXNzYWdlGDYgAygLMi0ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LlB1YmxpY0ltcG9ydE1lc3NhZ2VSG3JlcGVhdGVkUHVibGljSW1wb3J0TWVzc2FnZRIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzISYgoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzGh8KDU5lc3RlZE1lc3NhZ2USDgoCYmIYASABKAVSAmJiIlYKCk5lc3RlZEVudW0SGwoXTkVTVEVEX0VOVU1fVU5TUEVDSUZJRUQQABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCLdAQoSTmVzdGVkVGVzdEFsbFR5cGVzEjwKBWNoaWxkGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3QzLk5lc3RlZFRlc3RBbGxUeXBlc1IFY2hpbGQSOgoHcGF5bG9hZBgCIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNSB3BheWxvYWQSTQoOcmVwZWF0ZWRfY2hpbGQYAyADKAsyJi5wcm90b2J1Zl91bml0dGVzdDMuTmVzdGVkVGVzdEFsbFR5cGVzUg1yZXBlYXRlZENoaWxkIkUKFFRlc3REZXByZWNhdGVkRmllbGRzEi0KEGRlcHJlY2F0ZWRfaW50MzIYASABKAVCAhgBUg9kZXByZWNhdGVkSW50MzIiHgoORm9yZWlnbk1lc3NhZ2USDAoBYxgBIAEoBVIBYyIwChJUZXN0UmVzZXJ2ZWRGaWVsZHNKBAgCEANKBAgPEBBKBAgJEAxSA2JhclIDYmF6ImoKEVRlc3RGb3JlaWduTmVzdGVkElUKDmZvcmVpZ25fbmVzdGVkGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUg1mb3JlaWduTmVzdGVkIjsKGFRlc3RSZWFsbHlMYXJnZVRhZ051bWJlchIMCgFhGAEgASgFUgFhEhEKAmJiGP///38gASgFUgJiYiJcChRUZXN0UmVjdXJzaXZlTWVzc2FnZRI2CgFhGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RSZWN1cnNpdmVNZXNzYWdlUgFhEgwKAWkYAiABKAVSAWkiUAoUVGVzdE11dHVhbFJlY3Vyc2lvbkESOAoCYmIYASABKAsyKC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE11dHVhbFJlY3Vyc2lvbkJSAmJiInUKFFRlc3RNdXR1YWxSZWN1cnNpb25CEjYKAWEYASABKAsyKC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE11dHVhbFJlY3Vyc2lvbkFSAWESJQoOb3B0aW9uYWxfaW50MzIYAiABKAVSDW9wdGlvbmFsSW50MzIiVAoSVGVzdEVudW1BbGxvd0FsaWFzEj4KBXZhbHVlGAEgASgOMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RFbnVtV2l0aER1cFZhbHVlUgV2YWx1ZSL7AwoXVGVzdENhbWVsQ2FzZUZpZWxkTmFtZXMSJgoOUHJpbWl0aXZlRmllbGQYASABKAVSDlByaW1pdGl2ZUZpZWxkEiAKC1N0cmluZ0ZpZWxkGAIgASgJUgtTdHJpbmdGaWVsZBI9CglFbnVtRmllbGQYAyABKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SCUVudW1GaWVsZBJGCgxNZXNzYWdlRmllbGQYBCABKAsyIi5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbk1lc3NhZ2VSDE1lc3NhZ2VGaWVsZBI2ChZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkGAcgAygFUhZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkEjAKE1JlcGVhdGVkU3RyaW5nRmllbGQYCCADKAlSE1JlcGVhdGVkU3RyaW5nRmllbGQSTQoRUmVwZWF0ZWRFbnVtRmllbGQYCSADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SEVJlcGVhdGVkRW51bUZpZWxkElYKFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAogAygLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUhRSZXBlYXRlZE1lc3NhZ2VGaWVsZCL/AQoSVGVzdEZpZWxkT3JkZXJpbmdzEhsKCW15X3N0cmluZxgLIAEoCVIIbXlTdHJpbmcSFQoGbXlfaW50GAEgASgDUgVteUludBIZCghteV9mbG9hdBhlIAEoAlIHbXlGbG9hdBJpChVzaW5nbGVfbmVzdGVkX21lc3NhZ2UYyAEgASgLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RGaWVsZE9yZGVyaW5ncy5OZXN0ZWRNZXNzYWdlUhNzaW5nbGVOZXN0ZWRNZXNzYWdlGi8KDU5lc3RlZE1lc3NhZ2USDgoCb28YAiABKANSAm9vEg4KAmJiGAEgASgFUgJiYiJYChFTcGFyc2VFbnVtTWVzc2FnZRJDCgtzcGFyc2VfZW51bRgBIAEoDjIiLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0U3BhcnNlRW51bVIKc3BhcnNlRW51bSIfCglPbmVTdHJpbmcSEgoEZGF0YRgBIAEoCVIEZGF0YSIgCgpNb3JlU3RyaW5nEhIKBGRhdGEYASADKAlSBGRhdGEiHgoIT25lQnl0ZXMSEgoEZGF0YRgBIAEoDFIEZGF0YSIfCglNb3JlQnl0ZXMSEgoEZGF0YRgBIAEoDFIEZGF0YSIiCgxJbnQzMk1lc3NhZ2USEgoEZGF0YRgBIAEoBVIEZGF0YSIjCg1VaW50MzJNZXNzYWdlEhIKBGRhdGEYASABKA1SBGRhdGEiIgoMSW50NjRNZXNzYWdlEhIKBGRhdGEYASABKANSBGRhdGEiIwoNVWludDY0TWVzc2FnZRISCgRkYXRhGAEgASgEUgRkYXRhIiEKC0Jvb2xNZXNzYWdlEhIKBGRhdGEYASABKAhSBGRhdGEikwEKCVRlc3RPbmVvZhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxJDCgtmb29fbWVzc2FnZRgDIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNIAFIKZm9vTWVzc2FnZUIFCgNmb28i7gQKD1Rlc3RQYWNrZWRUeXBlcxIlCgxwYWNrZWRfaW50MzIYWiADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYWyADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGFwgAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYXSADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhheIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGGIgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GGQgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhlIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhmIAMoCEICEAFSCnBhY2tlZEJvb2wSRAoLcGFja2VkX2VudW0YZyADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1CAhABUgpwYWNrZWRFbnVtIqgFChFUZXN0VW5wYWNrZWRUeXBlcxIpCg51bnBhY2tlZF9pbnQzMhhaIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWyADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhcIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhdIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhheIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBhfIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYYCADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGQgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZSADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGYgAygIQgIQAFIMdW5wYWNrZWRCb29sEkgKDXVucGFja2VkX2VudW0YZyADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1CAhAAUgx1bnBhY2tlZEVudW0inwIKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEikKEHJlcGVhdGVkX2ZpeGVkMzIYDCADKAdSD3JlcGVhdGVkRml4ZWQzMhIlCg5yZXBlYXRlZF9pbnQzMhgNIAMoBVINcmVwZWF0ZWRJbnQzMhIqChByZXBlYXRlZF9maXhlZDY0GP4PIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EiYKDnJlcGVhdGVkX2ludDY0GP8PIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg5yZXBlYXRlZF9mbG9hdBj+/w8gAygCUg1yZXBlYXRlZEZsb2F0EikKD3JlcGVhdGVkX3VpbnQ2NBj//w8gAygEUg5yZXBlYXRlZFVpbnQ2NCIrChtUZXN0Q29tbWVudEluamVjdGlvbk1lc3NhZ2USDAoBYRgBIAEoCVIBYSIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIhIKEEZvb0NsaWVudE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpCYXJSZXF1ZXN0Ig0KC0JhclJlc3BvbnNlIhIKEFRlc3RFbXB0eU1lc3NhZ2UiggEKDkNvbW1lbnRNZXNzYWdlEhIKBHRleHQYASABKAlSBHRleHQaNwoUTmVzdGVkQ29tbWVudE1lc3NhZ2USHwoLbmVzdGVkX3RleHQYASABKAlSCm5lc3RlZFRleHQiIwoRTmVzdGVkQ29tbWVudEVudW0SDgoKWkVST19WQUxVRRAAKlkKC0ZvcmVpZ25FbnVtEhcKE0ZPUkVJR05fVU5TUEVDSUZJRUQQABIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBip1ChRUZXN0RW51bVdpdGhEdXBWYWx1ZRIoCiRURVNUX0VOVU1fV0lUSF9EVVBfVkFMVUVfVU5TUEVDSUZJRUQQABIICgRGT08xEAESCAoEQkFSMRACEgcKA0JBWhADEggKBEZPTzIQARIICgRCQVIyEAIaAhABKp0BCg5UZXN0U3BhcnNlRW51bRIgChxURVNUX1NQQVJTRV9FTlVNX1VOU1BFQ0lGSUVEEAASDAoIU1BBUlNFX0EQexIOCghTUEFSU0VfQhCm5wMSDwoIU1BBUlNFX0MQsrGABhIVCghTUEFSU0VfRBDx//////////8BEhUKCFNQQVJTRV9FELTe/P///////wESDAoIU1BBUlNFX0cQAiodCgtDb21tZW50RW51bRIOCgpaRVJPX1ZBTFVFEAAynQEKC1Rlc3RTZXJ2aWNlEkYKA0ZvbxIeLnByb3RvYnVmX3VuaXR0ZXN0My5Gb29SZXF1ZXN0Gh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvb1Jlc3BvbnNlEkYKA0JhchIeLnByb3RvYnVmX3VuaXR0ZXN0My5CYXJSZXF1ZXN0Gh8ucHJvdG9idWZfdW5pdHRlc3QzLkJhclJlc3BvbnNlQixCDVVuaXR0ZXN0UHJvdG+qAhpHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvc0rafwoHEgUkAJkDAQr/DQoBDBIDJAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoysAEgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogQSBwcm90byBmaWxlIHdlIHdpbGwgdXNlIGZvciB1bml0IHRlc3RpbmcuCgoICgEIEgMmADcKCQoCCCUSAyYANwoICgEIEgMqAC4KYAoCCAgSAyoALhpVIE9ubHkgcHJlc2VudCBzbyB3ZSBjYW4gdGVzdCB0aGF0IHdlIGNhbiByZWFkIGl0IChhcyBhbiBleGFtcGxlCiBvZiBhIG5vbi1DIyBvcHRpb24pCgoJCgIDABIDLAAmCggKAQISAy4AGwpcCgIEABIFMgCCAQEaTyBUaGlzIHByb3RvIGluY2x1ZGVzIGV2ZXJ5IHR5cGUgb2YgZmllbGQgaW4gYm90aCBzaW5ndWxhciBhbmQgcmVwZWF0ZWQKIGZvcm1zLgoKCgoDBAABEgMyCBQKDAoEBAADABIEMwI4AwoMCgUEAAMAARIDMwoXCuMBCgYEAAMAAgASAzcEERrTASBUaGUgZmllbGQgbmFtZSAiYiIgZmFpbHMgdG8gY29tcGlsZSBpbiBwcm90bzEgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aAogYSBsb2NhbCB2YXJpYWJsZSBuYW1lZCAiYiIgaW4gb25lIG9mIHRoZSBnZW5lcmF0ZWQgbWV0aG9kcy4gIERvaC4KIFRoaXMgZmlsZSBuZWVkcyB0byBjb21waWxlIGluIHByb3RvMSB0byB0ZXN0IGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LgoKDgoHBAADAAIABRIDNwQJCg4KBwQAAwACAAESAzcKDAoO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EwoNCgUEGQICARIExgIUIwoNCgUEGQICAxIExgIpKwoNCgUEGQICCBIExgIsPAoOCgYEGQICCAISBMYCLTsKDAoEBBkCAxIExwICPQoNCgUEGQIDBBIExwICCgoNCgUEGQIDBRIExwINEwoNCgUEGQIDARIExwIUIwoNCgUEGQIDAxIExwIpKwoNCgUEGQIDCBIExwIsPAoOCgYEGQIDCAISBMcCLTsKDAoEBBkCBBIEyAICPQoNCgUEGQIEBBIEyAICCgoNCgUEGQIEBRIEyAINEwoNCgUEGQIEARIEyAIUIwoNCgUEGQIEAxIEyAIpKwoNCgUEGQIECBIEyAIsPAoOCgYEGQIECAISBMgCLTsKDAoEBBkCBRIEyQICPQoNCgUEGQIFBBIEyQICCgoNCgUEGQIFBRIEyQINEwoNCgUEGQIFARIEyQIUIwoNCgUEGQIFAxIEyQIpKwoNCgUEGQIFCBIEyQIsPAoOCgYEGQIFCAISBMkCLTsKDAoEBBkCBhIEygICPQoNCgUEGQIGBBIEygICCgoNCgUEGQIGBRIEygIMEwoNCgUEGQIGARIEygIUJAoNCgUEGQIGAxIEygIpKwoNCgUEGQIGCBIEygIsPAoOCgYEGQIGCAISBMoCLTsKDAoEBBkCBxIEywICPQoNCgUEGQIHBBIEywICCgoNCgUEGQIHBRIEywIMEwoNCgUEGQIHARIEywIUJAoNCgUEGQIHAxIEywIpKwoNCgUEGQIHCBIEywIsPAoOCgYEGQIHCAISBMsCLTsKDAoEBBkCCBIEzAICPQoNCgUEGQIIBBIEzAICCgoNCgUEGQIIBRIEzAILEwoNCgUEGQIIARIEzAIUJQoNCgUEGQIIAxIEzAIpKwoNCgUEGQIICBIEzAIsPAoOCgYEGQIICAISBMwCLTsKDAoEBBkCCRIEzQICPQoNCgUEGQIJBBIEzQICCgoNCgUEGQIJBRIEzQILEwoNCgUEGQIJARIEzQIUJQoNCgUEGQIJAxIEzQIpKwoNCgUEGQIJCBIEzQIsPAoOCgYEGQIJCAISBM0CLTsKDAoEBBkCChIEzgICPQoNCgUEGQIKBBIEzgICCgoNCgUEGQIKBRIEzgIOEwoNCgUEGQIKARIEzgIUIgoNCgUEGQIKAxIEzgIoKwoNCgUEGQIKCBIEzgIsPAoOCgYEGQIKCAISBM4C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YWdlIGNvbW1lbnQKCg0KBQQjAwABEgSGAwoeCjYKBgQjAwACABIEiAMEGxomIExlYWRpbmcgbmVzdGVkIG1lc3NhZ2UgZmllbGQgY29tbWVudAoKDwoHBCMDAAIABRIEiAMECgoPCgcEIwMAAgABEgSIAwsWCg8KBwQjAwACAAMSBIgDGRoKLQoEBCMEABIGjAMCjwMDGh0gTGVhZGluZyBuZXN0ZWQgZW51bSBjb21tZW50CgoNCgUEIwQAARIEjAMHGAokCgYEIwQAAgASBI4DBBMaFCBaZXJvIHZhbHVlIGNvbW1lbnQKCg8KBwQjBAACAAESBI4DBA4KDwoHBCMEAAIAAhIEjgMREgo/CgQEIwIAEgSSAwISGhcgTGVhZGluZyBmaWVsZCBjb21tZW50CiIYIFRyYWlsaW5nIGZpZWxkIGNvbW1lbnQKCg0KBQQjAgAFEgSSAwIICg0KBQQjAgABEgSSAwkNCg0KBQQjAgADEgSSAxARCiQKAgUDEgaWAwCZAwEaFiBMZWFkaW5nIGVudW0gY29tbWVudAoKCwoDBQMBEgSWAwUQCiIKBAUDAgASBJgDAhEaFCBaZXJvIHZhbHVlIGNvbW1lbnQKCg0KBQUDAgABEgSYAwIMCg0KBQUDAgACEgSYAw8QYgZwcm90bzMKxVgKGW1hcF91bml0dGVzdF9wcm90bzMucHJvdG8SEnByb3RvYnVmX3VuaXR0ZXN0MxoVdW5pdHRlc3RfcHJvdG8zLnByb3RvIpkWCgdUZXN0TWFwElYKD21hcF9pbnQzMl9pbnQzMhgBIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJWCg9tYXBfaW50NjRfaW50NjQYAiADKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQ2NEludDY0RW50cnlSDW1hcEludDY0SW50NjQSXAoRbWFwX3VpbnQzMl91aW50MzIYAyADKAsyMC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBVaW50MzJVaW50MzJFbnRyeVIPbWFwVWludDMyVWludDMyElwKEW1hcF91aW50NjRfdWludDY0GAQgAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJcChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ug9tYXBTaW50MzJTaW50MzISXAoRbWFwX3NpbnQ2NF9zaW50NjQYBiADKAsyMC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBTaW50NjRTaW50NjRFbnRyeVIPbWFwU2ludDY0U2ludDY0EmIKE21hcF9maXhlZDMyX2ZpeGVkMzIYByADKAsyMi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJiChNtYXBfZml4ZWQ2NF9maXhlZDY0GAggAygLMjIucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeVIRbWFwRml4ZWQ2NEZpeGVkNjQSaAoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGAkgAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5UhNtYXBTZml4ZWQzMlNmaXhlZDMyEmgKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBgKIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJWCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkZsb2F0RW50cnlSDW1hcEludDMyRmxvYXQSWQoQbWFwX2ludDMyX2RvdWJsZRgMIAMoCzIvLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDMyRG91YmxlRW50cnlSDm1hcEludDMyRG91YmxlElAKDW1hcF9ib29sX2Jvb2wYDSADKAsyLC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJcChFtYXBfc3RyaW5nX3N0cmluZxgOIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFN0cmluZ1N0cmluZ0VudHJ5Ug9tYXBTdHJpbmdTdHJpbmcSVgoPbWFwX2ludDMyX2J5dGVzGA8gAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJCeXRlc0VudHJ5Ug1tYXBJbnQzMkJ5dGVzElMKDm1hcF9pbnQzMl9lbnVtGBAgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJFbnVtRW50cnlSDG1hcEludDMyRW51bRJyChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGBEgAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5UhZtYXBJbnQzMkZvcmVpZ25NZXNzYWdlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGkIKFE1hcFN0cmluZ1N0cmluZ0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEaQAoSTWFwSW50MzJCeXRlc0VudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgMUgV2YWx1ZToCOAEaXAoRTWFwSW50MzJFbnVtRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKA4yGy5wcm90b2J1Zl91bml0dGVzdDMuTWFwRW51bVIFdmFsdWU6AjgBGm0KG01hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI4CgV2YWx1ZRgCIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBIksKEVRlc3RNYXBTdWJtZXNzYWdlEjYKCHRlc3RfbWFwGAEgASgLMhsucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXBSB3Rlc3RNYXAi2wEKDlRlc3RNZXNzYWdlTWFwEmMKEW1hcF9pbnQzMl9tZXNzYWdlGAEgAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNZXNzYWdlTWFwLk1hcEludDMyTWVzc2FnZUVudHJ5Ug9tYXBJbnQzMk1lc3NhZ2UaZAoUTWFwSW50MzJNZXNzYWdlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSNgoFdmFsdWUYAiABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzUgV2YWx1ZToCOAEiiQIKD1Rlc3RTYW1lVHlwZU1hcBJBCgRtYXAxGAEgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RTYW1lVHlwZU1hcC5NYXAxRW50cnlSBG1hcDESQQoEbWFwMhgCIAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0U2FtZVR5cGVNYXAuTWFwMkVudHJ5UgRtYXAyGjcKCU1hcDFFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGjcKCU1hcDJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBIq0UCgxUZXN0QXJlbmFNYXASWwoPbWFwX2ludDMyX2ludDMyGAEgAygLMjMucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkludDMyRW50cnlSDW1hcEludDMySW50MzISWwoPbWFwX2ludDY0X2ludDY0GAIgAygLMjMucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQ2NEludDY0RW50cnlSDW1hcEludDY0SW50NjQSYQoRbWFwX3VpbnQzMl91aW50MzIYAyADKAsyNS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzISYQoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyNS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5Ug9tYXBVaW50NjRVaW50NjQSYQoRbWFwX3NpbnQzMl9zaW50MzIYBSADKAsyNS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ug9tYXBTaW50MzJTaW50MzISYQoRbWFwX3NpbnQ2NF9zaW50NjQYBiADKAsyNS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSZwoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeVIRbWFwRml4ZWQzMkZpeGVkMzISZwoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBgIIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeVIRbWFwRml4ZWQ2NEZpeGVkNjQSbQoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGAkgAygLMjkucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISbQoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GAogAygLMjkucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnlSE21hcFNmaXhlZDY0U2ZpeGVkNjQSWwoPbWFwX2ludDMyX2Zsb2F0GAsgAygLMjMucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkZsb2F0RW50cnlSDW1hcEludDMyRmxvYXQSXgoQbWFwX2ludDMyX2RvdWJsZRgMIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSVQoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIxLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwQm9vbEJvb2xFbnRyeVILbWFwQm9vbEJvb2wSWAoObWFwX2ludDMyX2VudW0YDiADKAsyMi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMyRW51bUVudHJ5UgxtYXBJbnQzMkVudW0SdwoZbWFwX2ludDMyX2ZvcmVpZ25fbWVzc2FnZRgPIAMoCzI8LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5UhZtYXBJbnQzMkZvcmVpZ25NZXNzYWdlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGlwKEU1hcEludDMyRW51bUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgOMhsucHJvdG9idWZfdW5pdHRlc3QzLk1hcEVudW1SBXZhbHVlOgI4ARptChtNYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSOAoFdmFsdWUYAiABKAsyIi5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbk1lc3NhZ2VSBXZhbHVlOgI4ASL4AQofTWVzc2FnZUNvbnRhaW5pbmdFbnVtQ2FsbGVkVHlwZRJRCgR0eXBlGAEgAygLMj0ucHJvdG9idWZfdW5pdHRlc3QzLk1lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGUuVHlwZUVudHJ5UgR0eXBlGmwKCVR5cGVFbnRyeRIQCgNrZXkYASABKAVSA2tleRJJCgV2YWx1ZRgCIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0My5NZXNzYWdlQ29udGFpbmluZ0VudW1DYWxsZWRUeXBlUgV2YWx1ZToCOAEiFAoEVHlwZRIMCghUWVBFX0ZPTxAAIrEBCh9NZXNzYWdlQ29udGFpbmluZ01hcENhbGxlZEVudHJ5ElQKBWVudHJ5GAEgAygLMj4ucHJvdG9idWZfdW5pdHRlc3QzLk1lc3NhZ2VDb250YWluaW5nTWFwQ2FsbGVkRW50cnkuRW50cnlFbnRyeVIFZW50cnkaOAoKRW50cnlFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBKj8KB01hcEVudW0SEAoMTUFQX0VOVU1fRk9PEAASEAoMTUFQX0VOVU1fQkFSEAESEAoMTUFQX0VOVU1fQkFaEAJCHaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSuIkCgYSBCQAcwEKmw8KAQwSAyQAEhrMAiBUaGlzIGZpbGUgaXMgbW9zdGx5IGVxdWl2YWxlbnQgdG8gbWFwX3VuaXR0ZXN0LnByb3RvLCBidXQgaW1wb3J0cwogdW5pdHRlc3RfcHJvdG8zLnByb3RvIGluc3RlYWQgb2YgdW5pdHRlc3QucHJvdG8sIHNvIHRoYXQgaXQgb25seQogdXNlcyBwcm90bzMgbWVzc2FnZXMuIFRoaXMgbWFrZXMgaXQgc3VpdGFibGUgZm9yIHRlc3RpbmcKIGltcGxlbWVudGF0aW9ucyB3aGljaCBvbmx5IHN1cHBvcnQgcHJvdG8zLgogVGhlIFRlc3RSZXF1aXJlZE1lc3NhZ2VNYXAgbWVzc2FnZSBoYXMgYmVlbiByZW1vdmVkIGFzIHRoZXJlIGFyZSBubwogcmVxdWlyZWQgZmllbGRzIGluIHByb3RvMy4KMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBCBIDJgA3CgkKAgglEgMmADcKCQoCAwASAygAHwoICgECEgMqABsKGQoCBAASBC0APwEaDSBUZXN0cyBtYXBzLgoKCgoDBAABEgMtCA8KCwoEBAACABIDLgI0CgwKBQQAAgAGEgMuAhkKDAoFBAACAAESAy4aKQoMCgUEAAIAAxIDLjIzCgsKBAQAAgESAy8CNAoMCgUEAAIBBhIDLwIZCgwKBQQAAgEBEgMvGikKDAoFBAACAQMSAy8yMwoLCgQEAAICEgMwAjQKDAoFBAACAgYSAzACGQoMCgUEAAICARIDMBorCgwKBQQAAgIDEgMwMjMKCwoEBAACAxIDMQI0CgwKBQQAAgMGEgMxAhkKDAoFBAACAwESAzEaKwoMCgUEAAIDAxIDMTIzCgsKBAQAAgQSAzICNAoMCgUEAAIEBhIDMgIZCgwKBQQAAgQBEgMyGisKDAoFBAACBAMSAzIyMwoLCgQEAAIFEgMzAjQKDAoFBAACBQYSAzMCGQoMCgUEAAIFARIDMxorCgwKBQQAAgUDEgMzMjMKCwoEBAACBhIDNAI0CgwKBQQAAgYGEgM0AhkKDAoFBAACBgESAzQaLQoMCgUEAAIGAxIDNDIzCgsKBAQAAgcSAzUCNAoMCgUEAAIHBhIDNQIZCgwKBQQAAgcBEgM1Gi0KDAoFBAACBwMSAzUyMwoLCgQEAAIIEgM2AjQKDAoFBAACCAYSAzYCGQoMCgUEAAIIARIDNhovCgwKBQQAAggDEgM2MjMKCwoEBAACCRIDNwI1CgwKBQQAAgkGEgM3AhkKDAoFBAACCQESAzcaLwoMCgUEAAIJAxIDNzI0CgsKBAQAAgoSAzgCNQoMCgUEAAIKBhIDOAIZCgwKBQQAAgoBEgM4GikKDAoFBAACCgMSAzgyNAoLCgQEAAILEgM5AjUKDAoFBAACCwYSAzkCGQoMCgUEAAILARIDORoqCgwKBQQAAgsDEgM5MjQKCwoEBAACDBIDOgI1CgwKBQQAAgwGEgM6AhkKDAoFBAACDAESAzoaJwoMCgUEAAIMAxIDOjI0CgsKBAQAAg0SAzsCNQoMCgUEAAINBhIDOwIZCgwKBQQAAg0BEgM7GisKDAoFBAACDQMSAzsyNAoLCgQEAAIOEgM8AjUKDAoFBAACDgYSAzwCGQoMCgUEAAIOARIDPBopCgwKBQQAAg4DEgM8MjQKCwoEBAACDxIDPQI1CgwKBQQAAg8GEgM9AhkKDAoFBAACDwESAz0aKAoMCgUEAAIPAxIDPTI0CgsKBAQAAhASAz4CPwoMCgUEAAIQBhIDPgIfCgwKBQQAAhABEgM+IDkKDAoFBAACEAMSAz48PgoKCgIEARIEQQBDAQoKCgMEAQESA0EIGQoLCgQEAQIAEgNCAhcKDAoFBAECAAYSA0ICCQoMCgUEAQIAARIDQgoSCgwKBQQBAgADEgNCFRYKCgoCBAISBEUARwEKCgoDBAIBEgNFCBYKCwoEBAICABIDRgIxCgwKBQQCAgAGEgNGAhoKDAoFBAICAAESA0YbLAoMCgUEAgIAAxIDRi8wCkMKAgQDEgRKAE0BGjcgVHdvIG1hcCBmaWVsZHMgc2hhcmUgdGhlIHNhbWUgZW50cnkgZGVmYXVsdCBpbnN0YW5jZS4KCgoKAwQDARIDSggXCgsKBAQDAgASA0sCHQoMCgUEAwIABhIDSwITCgwKBQQDAgABEgNLFBgKDAoFBAMCAAMSA0sbHAoLCgQEAwIBEgNMAh0KDAoFBAMCAQYSA0wCEwoMCgUEAwIBARIDTBQYCgwKBQQDAgEDEgNMGxwKCgoCBQASBE8AUwEKCgoDBQABEgNPBQwKCwoEBQACABIDUAITCgwKBQUAAgABEgNQAg4KDAoFBQACAAISA1AREgoLCgQFAAIBEgNRAhMKDAoFBQACAQESA1ECDgoMCgUFAAIBAhIDURESCgsKBAUAAgISA1ICEwoMCgUFAAICARIDUgIOCgwKBQUAAgICEgNSERIKCgoCBAQSBFUAZQEKCgoDBAQBEgNVCBQKCwoEBAQCABIDVgI0CgwKBQQEAgAGEgNWAhkKDAoFBAQCAAESA1YaKQoMCgUEBAIAAxIDVjIzCgsKBAQEAgESA1cCNAoMCgUEBAIBBhIDVwIZCgwKBQQEAgEBEgNXGikKDAoFBAQCAQMSA1cyMwoLCgQEBAICEgNYAjQKDAoFBAQCAgYSA1gCGQoMCgUEBAICARIDWBorCgwKBQQEAgIDEgNYMjMKCwoEBAQCAxIDWQI0CgwKBQQEAgMGEgNZAhkKDAoFBAQCAwESA1kaKwoMCgUEBAIDAxIDWTIzCgsKBAQEAgQSA1oCNAoMCgUEBAIEBhIDWgIZCgwKBQQEAgQBEgNaGisKDAoFBAQCBAMSA1oyMwoLCgQEBAIFEgNbAjQKDAoFBAQCBQYSA1sCGQoMCgUEBAIFARIDWxorCgwKBQQEAgUDEgNbMjMKCwoEBAQCBhIDXAI0CgwKBQQEAgYGEgNcAhkKDAoFBAQCBgESA1waLQoMCgUEBAIGAxIDXDIzCgsKBAQEAgcSA10CNAoMCgUEBAIHBhIDXQIZCgwKBQQEAgcBEgNdGi0KDAoFBAQCBwMSA10yMwoLCgQEBAIIEgNeAjQKDAoFBAQCCAYSA14CGQoMCgUEBAIIARIDXhovCgwKBQQEAggDEgNeMjMKCwoEBAQCCRIDXwI1CgwKBQQEAgkGEgNfAhkKDAoFBAQCCQESA18aLwoMCgUEBAIJAxIDXzI0CgsKBAQEAgoSA2ACNQoMCgUEBAIKBhIDYAIZCgwKBQQEAgoBEgNgGikKDAoFBAQCCgMSA2AyNAoLCgQEBAILEgNhAjUKDAoFBAQCCwYSA2ECGQoMCgUEBAILARIDYRoqCgwKBQQEAgsDEgNhMjQKCwoEBAQCDBIDYgI1CgwKBQQEAgwGEgNiAhkKDAoFBAQCDAESA2IaJwoMCgUEBAIMAxIDYjI0CgsKBAQEAg0SA2MCNQoMCgUEBAINBhIDYwIZCgwKBQQEAg0BEgNjGigKDAoFBAQCDQMSA2MyNAoLCgQEBAIOEgNkAj8KDAoFBAQCDgYSA2QCHwoMCgUEBAIOARIDZCA5CgwKBQQEAg4DEgNkPD4KZAoCBAUSBGkAbgEaWCBQcmV2aW91c2x5LCBtZXNzYWdlIGNvbnRhaW5pbmcgZW51bSBjYWxsZWQgVHlwZSBjYW5ub3QgYmUgdXNlZCBhcyB2YWx1ZSBvZgogbWFwIGZpZWxkLgoKCgoDBAUBEgNpCCcKDAoEBAUEABIEagJsAwoMCgUEBQQAARIDagcLCg0KBgQFBAACABIDawQRCg4KBwQFBAACAAESA2sEDAoOCgcEBQQAAgACEgNrDxAKCwoEBAUCABIDbQI3CgwKBQQFAgAGEgNtAi0KDAoFBAUCAAESA20uMgoMCgUEBQIAAxIDbTU2CkoKAgQGEgRxAHMBGj4gUHJldmlvdXNseSwgbWVzc2FnZSBjYW5ub3QgY29udGFpbiBtYXAgZmllbGQgY2FsbGVkICJlbnRyeSIuCgoKCgMEBgESA3EIJwoLCgQEBgIAEgNyAh4KDAoFBAYCAAYSA3ICEwoMCgUEBgIAARIDchQZCgwKBQQGAgADEgNyHB1iBnByb3RvMwr/IgocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIpgBCgZTdHJ1Y3QSOwoGZmllbGRzGAEgAygLMiMuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdC5GaWVsZHNFbnRyeVIGZmllbGRzGlEKC0ZpZWxkc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgV2YWx1ZToCOAEisgIKBVZhbHVlEjsKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSCW51bGxWYWx1ZRIjCgxudW1iZXJfdmFsdWUYAiABKAFIAFILbnVtYmVyVmFsdWUSIwoMc3RyaW5nX3ZhbHVlGAMgASgJSABSC3N0cmluZ1ZhbHVlEh8KCmJvb2xfdmFsdWUYBCABKAhIAFIJYm9vbFZhbHVlEjwKDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAFILc3RydWN0VmFsdWUSOwoKbGlzdF92YWx1ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5MaXN0VmFsdWVIAFIJbGlzdFZhbHVlQgYKBGtpbmQiOwoJTGlzdFZhbHVlEi4KBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVIGdmFsdWVzKhsKCU51bGxWYWx1ZRIOCgpOVUxMX1ZBTFVFEABCfwoTY29tLmdvb2dsZS5wcm90b2J1ZkILU3RydWN0UHJvdG9QAVovZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vc3RydWN0cGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKmh0KBhIEHgBeAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAHwoJCgIIHxIDIwAfCggKAQgSAyQARgoJCgIICxIDJABGCggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYALAoJCgIICBIDJgAsCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCrMDCgIEABIEMgA1ARqmAyBgU3RydWN0YCByZXByZXNlbnRzIGEgc3RydWN0dXJlZCBkYXRhIHZhbHVlLCBjb25zaXN0aW5nIG9mIGZpZWxkcwogd2hpY2ggbWFwIHRvIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlcy4gSW4gc29tZSBsYW5ndWFnZXMsIGBTdHJ1Y3RgCiBtaWdodCBiZSBzdXBwb3J0ZWQgYnkgYSBuYXRpdmUgcmVwcmVzZW50YXRpb24uIEZvciBleGFtcGxlLCBpbgogc2NyaXB0aW5nIGxhbmd1YWdlcyBsaWtlIEpTIGEgc3RydWN0IGlzIHJlcHJlc2VudGVkIGFzIGFuCiBvYmplY3QuIFRoZSBkZXRhaWxzIG9mIHRoYXQgcmVwcmVzZW50YXRpb24gYXJlIGRlc2NyaWJlZCB0b2dldGhlcgogd2l0aCB0aGUgcHJvdG8gc3VwcG9ydCBmb3IgdGhlIGxhbmd1YWdlLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgU3RydWN0YCBpcyBKU09OIG9iamVjdC4KCgoKAwQAARIDMggOCjkKBAQAAgASAzQCIBosIFVub3JkZXJlZCBtYXAgb2YgZHluYW1pY2FsbHkgdHlwZWQgdmFsdWVzLgoKDAoFBAACAAYSAzQCFAoMCgUEAAIAARIDNBUbCgwKBQQAAgADEgM0Hh8KxAIKAgQBEgQ9AE0BGrcCIGBWYWx1ZWAgcmVwcmVzZW50cyBhIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlIHdoaWNoIGNhbiBiZSBlaXRoZXIKIG51bGwsIGEgbnVtYmVyLCBhIHN0cmluZywgYSBib29sZWFuLCBhIHJlY3Vyc2l2ZSBzdHJ1Y3QgdmFsdWUsIG9yIGEKIGxpc3Qgb2YgdmFsdWVzLiBBIHByb2R1Y2VyIG9mIHZhbHVlIGlzIGV4cGVjdGVkIHRvIHNldCBvbmUgb2YgdGhlc2UKIHZhcmlhbnRzLiBBYnNlbmNlIG9mIGFueSB2YXJpYW50IGluZGljYXRlcyBhbiBlcnJvci4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYFZhbHVlYCBpcyBKU09OIHZhbHVlLgoKCgoDBAEBEgM9CA0KIgoEBAEIABIEPwJMAxoUIFRoZSBraW5kIG9mIHZhbHVlLgoKDAoFBAEIAAESAz8IDAonCgQEAQIAEgNBBB0aGiBSZXByZXNlbnRzIGEgbnVsbCB2YWx1ZS4KCgwKBQQBAgAGEgNBBA0KDAoFBAECAAESA0EOGAoMCgUEAQIAAxIDQRscCikKBAQBAgESA0MEHBocIFJlcHJlc2VudHMgYSBkb3VibGUgdmFsdWUuCgoMCgUEAQIBBRIDQwQKCgwKBQQBAgEBEgNDCxcKDAoFBAECAQMSA0MaGwopCgQEAQICEgNFBBwaHCBSZXByZXNlbnRzIGEgc3RyaW5nIHZhbHVlLgoKDAoFBAECAgUSA0UECgoMCgUEAQICARIDRQsXCgwKBQQBAgIDEgNFGhsKKgoEBAECAxIDRwQYGh0gUmVwcmVzZW50cyBhIGJvb2xlYW4gdmFsdWUuCgoMCgUEAQIDBRIDRwQICgwKBQQBAgMBEgNHCRMKDAoFBAECAwMSA0cWFwotCgQEAQIEEgNJBBwaICBSZXByZXNlbnRzIGEgc3RydWN0dXJlZCB2YWx1ZS4KCgwKBQQBAgQGEgNJBAoKDAoFBAECBAESA0kLFwoMCgUEAQIEAxIDSRobCi0KBAQBAgUSA0sEHRogIFJlcHJlc2VudHMgYSByZXBlYXRlZCBgVmFsdWVgLgoKDAoFBAECBQYSA0sEDQoMCgUEAQIFARIDSw4YCgwKBQQBAgUDEgNLGxwKqQEKAgUAEgRTAFYBGpwBIGBOdWxsVmFsdWVgIGlzIGEgc2luZ2xldG9uIGVudW1lcmF0aW9uIHRvIHJlcHJlc2VudCB0aGUgbnVsbCB2YWx1ZSBmb3IgdGhlCiBgVmFsdWVgIHR5cGUgdW5pb24uCgogIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgTnVsbFZhbHVlYCBpcyBKU09OIGBudWxsYC4KCgoKAwUAARIDUwUOChoKBAUAAgASA1UCERoNIE51bGwgdmFsdWUuCgoMCgUFAAIAARIDVQIMCgwKBQUAAgACEgNVDxAKggEKAgQCEgRbAF4BGnYgYExpc3RWYWx1ZWAgaXMgYSB3cmFwcGVyIGFyb3VuZCBhIHJlcGVhdGVkIGZpZWxkIG9mIHZhbHVlcy4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYExpc3RWYWx1ZWAgaXMgSlNPTiBhcnJheS4KCgoKAwQCARIDWwgRCjoKBAQCAgASA10CHBotIFJlcGVhdGVkIGZpZWxkIG9mIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlcy4KCgwKBQQCAgAEEgNdAgoKDAoFBAICAAYSA10LEAoMCgUEAgIAARIDXREXCgwKBQQCAgADEgNdGhtiBnByb3RvMwrSQQoVdW5pdHRlc3RfaXNzdWVzLnByb3RvEg91bml0dGVzdF9pc3N1ZXMaHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8iJwoISXNzdWUzMDcaGwoKTmVzdGVkT25jZRoNCgtOZXN0ZWRUd2ljZSLNAQoTTmVnYXRpdmVFbnVtTWVzc2FnZRIzCgV2YWx1ZRgBIAEoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1SBXZhbHVlEjkKBnZhbHVlcxgCIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhAAUgZ2YWx1ZXMSRgoNcGFja2VkX3ZhbHVlcxgDIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhABUgxwYWNrZWRWYWx1ZXMiFQoPRGVwcmVjYXRlZENoaWxkOgIYASKLAwoXRGVwcmVjYXRlZEZpZWxkc01lc3NhZ2USKgoOUHJpbWl0aXZlVmFsdWUYASABKAVCAhgBUg5QcmltaXRpdmVWYWx1ZRIqCg5QcmltaXRpdmVBcnJheRgCIAMoBUICGAFSDlByaW1pdGl2ZUFycmF5EkgKDE1lc3NhZ2VWYWx1ZRgDIAEoCzIgLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkQ2hpbGRCAhgBUgxNZXNzYWdlVmFsdWUSSAoMTWVzc2FnZUFycmF5GAQgAygLMiAudW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRDaGlsZEICGAFSDE1lc3NhZ2VBcnJheRJBCglFbnVtVmFsdWUYBSABKA4yHy51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZEVudW1CAhgBUglFbnVtVmFsdWUSQQoJRW51bUFycmF5GAYgAygOMh8udW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRFbnVtQgIYAVIJRW51bUFycmF5Ih8KCUl0ZW1GaWVsZBISCgRpdGVtGAEgASgFUgRpdGVtIlcKDVJlc2VydmVkTmFtZXMSFAoFdHlwZXMYASABKAVSBXR5cGVzEh4KCmRlc2NyaXB0b3IYAiABKAVSCmRlc2NyaXB0b3IaEAoOU29tZU5lc3RlZFR5cGUi3wEKFVRlc3RKc29uRmllbGRPcmRlcmluZxIfCgtwbGFpbl9pbnQzMhgEIAEoBVIKcGxhaW5JbnQzMhIdCglvMV9zdHJpbmcYAiABKAlIAFIIbzFTdHJpbmcSGwoIbzFfaW50MzIYBSABKAVIAFIHbzFJbnQzMhIhCgxwbGFpbl9zdHJpbmcYASABKAlSC3BsYWluU3RyaW5nEhsKCG8yX2ludDMyGAYgASgFSAFSB28ySW50MzISHQoJbzJfc3RyaW5nGAMgASgJSAFSCG8yU3RyaW5nQgQKAm8xQgQKAm8yIlEKDFRlc3RKc29uTmFtZRISCgRuYW1lGAEgASgJUgRuYW1lEhkKC2Rlc2NyaXB0aW9uGAIgASgJUgRkZXNjEhIKBGd1aWQYAyABKAlSBGV4aWQikwEKDE9uZW9mTWVyZ2luZxIUCgR0ZXh0GAEgASgJSABSBHRleHQSPgoGbmVzdGVkGAIgASgLMiQudW5pdHRlc3RfaXNzdWVzLk9uZW9mTWVyZ2luZy5OZXN0ZWRIAFIGbmVzdGVkGiQKBk5lc3RlZBIMCgF4GAEgASgFUgF4EgwKAXkYAiABKAVSAXlCBwoFdmFsdWUigwEKFk51bGxWYWx1ZU91dHNpZGVTdHJ1Y3QSIwoMc3RyaW5nX3ZhbHVlGAEgASgJSABSC3N0cmluZ1ZhbHVlEjsKCm51bGxfdmFsdWUYAiABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSCW51bGxWYWx1ZUIHCgV2YWx1ZSJQChNOdWxsVmFsdWVOb3RJbk9uZW9mEjkKCm51bGxfdmFsdWUYAiABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlUgludWxsVmFsdWUifQoXTWl4ZWRSZWd1bGFyQW5kT3B0aW9uYWwSIwoNcmVndWxhcl9maWVsZBgBIAEoCVIMcmVndWxhckZpZWxkEioKDm9wdGlvbmFsX2ZpZWxkGAIgASgJSABSDW9wdGlvbmFsRmllbGSIAQFCEQoPX29wdGlvbmFsX2ZpZWxkIkIKEk9uZW9mV2l0aE5vbmVGaWVsZBIOCgF4GAEgASgJSABSAXgSFAoEbm9uZRgCIAEoCUgAUgRub25lQgYKBHRlc3QiOwoRT25lb2ZXaXRoTm9uZU5hbWUSDgoBeBgBIAEoCUgAUgF4Eg4KAXkYAiABKAlIAFIBeUIGCgRub25lIqIDChlEaXNhbWJpZ3VhdGVDb21tb25NZW1iZXJzEj4KG2Rpc2FtYmlndWF0ZV9jb21tb25fbWVtYmVycxgBIAEoBVIZZGlzYW1iaWd1YXRlQ29tbW9uTWVtYmVycxIUCgV0eXBlcxgCIAEoBVIFdHlwZXMSHgoKZGVzY3JpcHRvchgDIAEoBVIKZGVzY3JpcHRvchIWCgZlcXVhbHMYBCABKAVSBmVxdWFscxIbCgl0b19zdHJpbmcYBSABKAVSCHRvU3RyaW5nEiIKDWdldF9oYXNoX2NvZGUYBiABKAVSC2dldEhhc2hDb2RlEhkKCHdyaXRlX3RvGAcgASgFUgd3cml0ZVRvEhQKBWNsb25lGAggASgFUgVjbG9uZRIlCg5jYWxjdWxhdGVfc2l6ZRgJIAEoBVINY2FsY3VsYXRlU2l6ZRIdCgptZXJnZV9mcm9tGAogASgFUgltZXJnZUZyb20SJwoPb25fY29uc3RydWN0aW9uGAsgASgFUg5vbkNvbnN0cnVjdGlvbhIWCgZwYXJzZXIYDCABKAVSBnBhcnNlcipVCgxOZWdhdGl2ZUVudW0SFgoSTkVHQVRJVkVfRU5VTV9aRVJPEAASFgoJRml2ZUJlbG93EPv//////////wESFQoITWludXNPbmUQ////////////ASo2Cg5EZXByZWNhdGVkRW51bRIXCg9ERVBSRUNBVEVEX1pFUk8QABoCCAESBwoDb25lEAEaAhgBQh2qAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc0rzLgoHEgUAAL0BAQoICgEMEgMAABIKCAoBCBIDBgA3Co4CCgIIJRIDBgA3GmUgSXNzdWU6IE5vbi0iR29vZ2xlLlByb3RvYnVmZmVycyIgbmFtZXNwYWNlIHdpbGwgZW5zdXJlIHRoYXQgcHJvdG9idWZmZXIgbGlicmFyeSB0eXBlcyBhcmUgcXVhbGlmaWVkCjKbASBUaGVzZSBwcm90byBkZXNjcmlwdG9ycyBoYXZlIGF0IG9uZSB0aW1lIGJlZW4gcmVwb3J0ZWQgYXMgYW4gaXNzdWUgb3IgZGVmZWN0LgogVGhleSBhcmUga2VwdCBoZXJlIHRvIHJlcGxpY2F0ZSB0aGUgaXNzdWUsIGFuZCBjb250aW51ZSB0byB2ZXJpZnkgdGhlIGZpeC4KCggKAQISAwgAGAoJCgIDABIDCgAmCnYKAgQAEgQOABMBGmogSXNzdWUgMzA3OiB3aGVuIGdlbmVyYXRpbmcgZG91Ymx5LW5lc3RlZCB0eXBlcywgYW55IHJlZmVyZW5jZXMKIHNob3VsZCBiZSBvZiB0aGUgZm9ybSBBLlR5cGVzLkIuVHlwZXMuQy4KCgoKAwQAARIDDggQCgwKBAQAAwASBA8CEgMKDAoFBAADAAESAw8KFAoOCgYEAAMAAwASBBAEEQUKDgoHBAADAAMAARIDEAwXCqwECgIFABIELQAxATKYASBPbGQgaXNzdWUgMTM6IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9wcm90b2J1Zi1jc2hhcnAtcG9ydC9pc3N1ZXMvZGV0YWlsP2lkPTEzCiBOZXcgaXNzdWUgMzA5OiBodHRwczovL2dpdGh1Yi5jb20vcHJvdG9jb2xidWZmZXJzL3Byb3RvYnVmL2lzc3Vlcy8zMDkKMisgbWVzc2FnZSBBIHsKICAgIG9wdGlvbmFsIGludDMyIF9BID0gMTsKIH0KMisgbWVzc2FnZSBCIHsKICAgIG9wdGlvbmFsIGludDMyIEJfID0gMTsKIH0KMittZXNzYWdlIEFCIHsKICAgIG9wdGlvbmFsIGludDMyIGFfYiA9IDE7Cn0KMtoBIFNpbWlsYXIgaXNzdWUgd2l0aCBudW1lcmljIG5hbWVzCiBKYXZhIGNvZGUgZmFpbGVkIHRvbywgc28gcHJvYmFibHkgYmVzdCBmb3IgdGhpcyB0byBiZSBhIHJlc3RyaWN0aW9uLgogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wcm90b2NvbGJ1ZmZlcnMvcHJvdG9idWYvaXNzdWVzLzMwOAogbWVzc2FnZSBOdW1iZXJGaWVsZCB7CiAgICBvcHRpb25hbCBpbnQzMiBfMDEgPSAxOwogfQoyISBpc3N1ZSAxOSAtIG5lZ2F0aXZlIGVudW0gdmFsdWVzCgoKCgMFAAESAy0F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CzInLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlRGVzY3JpcHRvclByb3RvUgdzZXJ2aWNlEkMKCWV4dGVuc2lvbhgHIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEjYKB29wdGlvbnMYCCABKAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnNSB29wdGlvbnMSSQoQc291cmNlX2NvZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mb1IOc291cmNlQ29kZUluZm8SFgoGc3ludGF4GAwgASgJUgZzeW50YXgSGAoHZWRpdGlvbhgNIAEoCVIHZWRpdGlvbiK5BgoPRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSOwoFZmllbGQYAiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SBWZpZWxkEkMKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEkEKC25lc3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1IKbmVzdGVkVHlwZRJBCgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSWAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZVIOZXh0ZW5zaW9uUmFuZ2USRAoKb25lb2ZfZGVjbBgIIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90b1IJb25lb2ZEZWNsEjkKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnNSB29wdGlvbnMSVQoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgKIAMoCVIMcmVzZXJ2ZWROYW1lGnoKDkV4dGVuc2lvblJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZBJACgdvcHRpb25zGAMgASgLMiYuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9uc1IHb3B0aW9ucxo3Cg1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCJ8ChVFeHRlbnNpb25SYW5nZU9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLBBgoURmllbGREZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAyABKAVSBm51bWJlchJBCgVsYWJlbBgEIAEoDjIrLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5MYWJlbFIFbGFiZWwSPgoEdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlUgR0eXBlEhsKCXR5cGVfbmFtZRgGIAEoCVIIdHlwZU5hbWUSGgoIZXh0ZW5kZWUYAiABKAlSCGV4dGVuZGVlEiMKDWRlZmF1bHRfdmFsdWUYByABKAlSDGRlZmF1bHRWYWx1ZRIfCgtvbmVvZl9pbmRleBgJIAEoBVIKb25lb2ZJbmRleBIbCglqc29uX25hbWUYCiABKAlSCGpzb25OYW1lEjcKB29wdGlvbnMYCCABKAsyHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zUgdvcHRpb25zEicKD3Byb3RvM19vcHRpb25hbBgRIAEoCFIOcHJvdG8zT3B0aW9uYWwitgIKBFR5cGUSDwoLVFlQRV9ET1VCTEUQARIOCgpUWVBFX0ZMT0FUEAISDgoKVFlQRV9JTlQ2NBADEg8KC1RZUEVfVUlOVDY0EAQSDgoKVFlQRV9JTlQzMhAFEhAKDFRZUEVfRklYRUQ2NBAGEhAKDFRZUEVfRklYRUQzMhAHEg0KCVRZUEVfQk9PTBAIEg8KC1RZUEVfU1RSSU5HEAkSDgoKVFlQRV9HUk9VUBAKEhAKDFRZUEVfTUVTU0FHRRALEg4KClRZUEVfQllURVMQDBIPCgtUWVBFX1VJTlQzMhANEg0KCVRZUEVfRU5VTRAOEhEKDVRZUEVfU0ZJWEVEMzIQDxIRCg1UWVBFX1NGSVhFRDY0EBASDwoLVFlQRV9TSU5UMzIQERIPCgtUWVBFX1NJTlQ2NBASIkMKBUxhYmVsEhIKDkxBQkVMX09QVElPTkFMEAESEgoOTEFCRUxfUkVRVUlSRUQQAhISCg5MQUJFTF9SRVBFQVRFRBADImMKFE9uZW9mRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSNwoHb3B0aW9ucxgCIAEoCzIdLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnNSB29wdGlvbnMi4wIKE0VudW1EZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI/CgV2YWx1ZRgCIAMoCzIpLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVEZXNjcmlwdG9yUHJvdG9SBXZhbHVlEjYKB29wdGlvbnMYAyABKAsyHC5nb29nbGUucHJvdG9idWYuRW51bU9wdGlvbnNSB29wdGlvbnMSXQoOcmVzZXJ2ZWRfcmFuZ2UYBCADKAsyNi5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90by5FbnVtUmVzZXJ2ZWRSYW5nZVINcmVzZXJ2ZWRSYW5nZRIjCg1yZXNlcnZlZF9uYW1lGAUgAygJUgxyZXNlcnZlZE5hbWUaOwoRRW51bVJlc2VydmVkUmFuZ2USFAoFc3RhcnQYASABKAVSBXN0YXJ0EhAKA2VuZBgCIAEoBVIDZW5kIoMBChhFbnVtVmFsdWVEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAiABKAVSBm51bWJlchI7CgdvcHRpb25zGAMgASgLMiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnNSB29wdGlvbnMipwEKFlNlcnZpY2VEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI+CgZtZXRob2QYAiADKAsyJi5nb29nbGUucHJvdG9idWYuTWV0aG9kRGVzY3JpcHRvclByb3RvUgZtZXRob2QSOQoHb3B0aW9ucxgDIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlT3B0aW9uc1IHb3B0aW9ucyKJAgoVTWV0aG9kRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSHQoKaW5wdXRfdHlwZRgCIAEoCVIJaW5wdXRUeXBlEh8KC291dHB1dF90eXBlGAMgASgJUgpvdXRwdXRUeXBlEjgKB29wdGlvbnMYBCABKAsyHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9uc1IHb3B0aW9ucxIwChBjbGllbnRfc3RyZWFtaW5nGAUgASgIOgVmYWxzZVIPY2xpZW50U3RyZWFtaW5nEjAKEHNlcnZlcl9zdHJlYW1pbmcYBiABKAg6BWZhbHNlUg9zZXJ2ZXJTdHJlYW1pbmcikQkKC0ZpbGVPcHRpb25zEiEKDGphdmFfcGFja2FnZRgBIAEoCVILamF2YVBhY2thZ2USMAoUamF2YV9vdXRlcl9jbGFzc25hbWUYCCABKAlSEmphdmFPdXRlckNsYXNzbmFtZRI1ChNqYXZhX211bHRpcGxlX2ZpbGVzGAogASgIOgVmYWxzZVIRamF2YU11bHRpcGxlRmlsZXMSRAodamF2YV9nZW5lcmF0ZV9lcXVhbHNfYW5kX2hhc2gYFCABKAhCAhgBUhlqYXZhR2VuZXJhdGVFcXVhbHNBbmRIYXNoEjoKFmphdmFfc3RyaW5nX2NoZWNrX3V0ZjgYGyABKAg6BWZhbHNlUhNqYXZhU3RyaW5nQ2hlY2tVdGY4ElMKDG9wdGltaXplX2ZvchgJIAEoDjIpLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucy5PcHRpbWl6ZU1vZGU6BVNQRUVEUgtvcHRpbWl6ZUZvchIdCgpnb19wYWNrYWdlGAsgASgJUglnb1BhY2thZ2USNQoTY2NfZ2VuZXJpY19zZXJ2aWNlcxgQIAEoCDoFZmFsc2VSEWNjR2VuZXJpY1NlcnZpY2VzEjkKFWphdmFfZ2VuZXJpY19zZXJ2aWNlcxgRIAEoCDoFZmFsc2VSE2phdmFHZW5lcmljU2VydmljZXMSNQoTcHlfZ2VuZXJpY19zZXJ2aWNlcxgSIAEoCDoFZmFsc2VSEXB5R2VuZXJpY1NlcnZpY2VzEjcKFHBocF9nZW5lcmljX3NlcnZpY2VzGCogASgIOgVmYWxzZVIScGhwR2VuZXJpY1NlcnZpY2VzEiUKCmRlcHJlY2F0ZWQYFyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEi4KEGNjX2VuYWJsZV9hcmVuYXMYHyABKAg6BHRydWVSDmNjRW5hYmxlQXJlbmFzEioKEW9iamNfY2xhc3NfcHJlZml4GCQgASgJUg9vYmpjQ2xhc3NQcmVmaXgSKQoQY3NoYXJwX25hbWVzcGFjZRglIAEoCVIPY3NoYXJwTmFtZXNwYWNlEiEKDHN3aWZ0X3ByZWZpeBgnIAEoCVILc3dpZnRQcmVmaXgSKAoQcGhwX2NsYXNzX3ByZWZpeBgoIAEoCVIOcGhwQ2xhc3NQcmVmaXgSIwoNcGhwX25hbWVzcGFjZRgpIAEoCVIMcGhwTmFtZXNwYWNlEjQKFnBocF9tZXRhZGF0YV9uYW1lc3BhY2UYLCABKAlSFHBocE1ldGFkYXRhTmFtZXNwYWNlEiEKDHJ1YnlfcGFja2FnZRgtIAEoCVILcnVieVBhY2thZ2USWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iOgoMT3B0aW1pemVNb2RlEgkKBVNQRUVEEAESDQoJQ09ERV9TSVpFEAISEAoMTElURV9SVU5USU1FEAMqCQjoBxCAgICAAkoECCYQJyLjAgoOTWVzc2FnZU9wdGlvbnMSPAoXbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQYASABKAg6BWZhbHNlUhRtZXNzYWdlU2V0V2lyZUZvcm1hdBJMCh9ub19zdGFuZGFyZF9kZXNjcmlwdG9yX2FjY2Vzc29yGAIgASgIOgVmYWxzZVIcbm9TdGFuZGFyZERlc2NyaXB0b3JBY2Nlc3NvchIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIbCgltYXBfZW50cnkYByABKAhSCG1hcEVudHJ5ElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgEEAVKBAgFEAZKBAgGEAdKBAgIEAlKBAgJEAoikgQKDEZpZWxkT3B0aW9ucxJBCgVjdHlwZRgBIAEoDjIjLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuQ1R5cGU6BlNUUklOR1IFY3R5cGUSFgoGcGFja2VkGAIgASgIUgZwYWNrZWQSRwoGanN0eXBlGAYgASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5KU1R5cGU6CUpTX05PUk1BTFIGanN0eXBlEhkKBGxhenkYBSABKAg6BWZhbHNlUgRsYXp5Ei4KD3VudmVyaWZpZWRfbGF6eRgPIAEoCDoFZmFsc2VSDnVudmVyaWZpZWRMYXp5EiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhkKBHdlYWsYCiABKAg6BWZhbHNlUgR3ZWFrElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIi8KBUNUeXBlEgoKBlNUUklORxAAEggKBENPUkQQARIQCgxTVFJJTkdfUElFQ0UQAiI1CgZKU1R5cGUSDQoJSlNfTk9STUFMEAASDQoJSlNfU1RSSU5HEAESDQoJSlNfTlVNQkVSEAIqCQjoBxCAgICAAkoECAQQBSJzCgxPbmVvZk9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLAAQoLRW51bU9wdGlvbnMSHwoLYWxsb3dfYWxpYXMYAiABKAhSCmFsbG93QWxpYXMSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAUQBiKeAQoQRW51bVZhbHVlT3B0aW9ucxIlCgpkZXByZWNhdGVkGAEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIpwBCg5TZXJ2aWNlT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIuACCg1NZXRob2RPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkEnEKEWlkZW1wb3RlbmN5X2xldmVsGCIgASgOMi8uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMuSWRlbXBvdGVuY3lMZXZlbDoTSURFTVBPVEVOQ1lfVU5LTk9XTlIQaWRlbXBvdGVuY3lMZXZlbBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiJQChBJZGVtcG90ZW5jeUxldmVsEhcKE0lERU1QT1RFTkNZX1VOS05PV04QABITCg9OT19TSURFX0VGRkVDVFMQARIOCgpJREVNUE9URU5UEAIqCQjoBxCAgICAAiKaAwoTVW5pbnRlcnByZXRlZE9wdGlvbhJBCgRuYW1lGAIgAygLMi0uZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24uTmFtZVBhcnRSBG5hbWUSKQoQaWRlbnRpZmllcl92YWx1ZRgDIAEoCVIPaWRlbnRpZmllclZhbHVlEiwKEnBvc2l0aXZlX2ludF92YWx1ZRgEIAEoBFIQcG9zaXRpdmVJbnRWYWx1ZRIsChJuZWdhdGl2ZV9pbnRfdmFsdWUYBSABKANSEG5lZ2F0aXZlSW50VmFsdWUSIQoMZG91YmxlX3ZhbHVlGAYgASgBUgtkb3VibGVWYWx1ZRIhCgxzdHJpbmdfdmFsdWUYByABKAxSC3N0cmluZ1ZhbHVlEicKD2FnZ3JlZ2F0ZV92YWx1ZRgIIAEoCVIOYWdncmVnYXRlVmFsdWUaSgoITmFtZVBhcnQSGwoJbmFtZV9wYXJ0GAEgAigJUghuYW1lUGFydBIhCgxpc19leHRlbnNpb24YAiACKAhSC2lzRXh0ZW5zaW9uIqcCCg5Tb3VyY2VDb2RlSW5mbxJECghsb2NhdGlvbhgBIAMoCzIoLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvblIIbG9jYXRpb24azgEKCExvY2F0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEhYKBHNwYW4YAiADKAVCAhABUgRzcGFuEikKEGxlYWRpbmdfY29tbWVudHMYAyABKAlSD2xlYWRpbmdDb21tZW50cxIrChF0cmFpbGluZ19jb21tZW50cxgEIAEoCVIQdHJhaWxpbmdDb21tZW50cxI6ChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJUhdsZWFkaW5nRGV0YWNoZWRDb21tZW50cyLQAgoRR2VuZXJhdGVkQ29kZUluZm8STQoKYW5ub3RhdGlvbhgBIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uUgphbm5vdGF0aW9uGusBCgpBbm5vdGF0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEh8KC3NvdXJjZV9maWxlGAIgASgJUgpzb3VyY2VGaWxlEhQKBWJlZ2luGAMgASgFUgViZWdpbhIQCgNlbmQYBCABKAVSA2VuZBJSCghzZW1hbnRpYxgFIAEoDjI2Lmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uLlNlbWFudGljUghzZW1hbnRpYyIoCghTZW1hbnRpYxIICgROT05FEAASBwoDU0VUEAESCQoFQUxJQVMQAkJ+ChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9zSAFaLWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2Rlc2NyaXB0b3JwYvgBAaICA0dQQqoCGkdvb2dsZS5Qcm90b2J1Zi5SZWZsZWN0aW9uStrSAgoHEgUmAJgHAQqqDwoBDBIDJgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoy2wIgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogVGhlIG1lc3NhZ2VzIGluIHRoaXMgZmlsZSBkZXNjcmliZSB0aGUgZGVmaW5pdGlvbnMgZm91bmQgaW4gLnByb3RvIGZpbGVzLgogQSB2YWxpZCAucHJvdG8gZmlsZSBjYW4gYmUgdHJhbnNsYXRlZCBkaXJlY3RseSB0byBhIEZpbGVEZXNjcmlwdG9yUHJvdG8KIHdpdGhvdXQgYW55IG90aGVyIGluZm9ybWF0aW9uIChlLmcuIHdpdGhvdXQgcmVhZGluZyBpdHMgaW1wb3J0cykuCgoICgECEgMoABgKCAoBCBIDKgBECgkKAggLEgMqAEQKCAoBCBIDKwAsCgkKAggBEgMrACwKCAoBCBIDLAAxCgkKAggIEgMsADEKCAoBCBIDLQA3CgkKAgglEgMtADcKCAoBCBIDLgAhCgkKAggkEgMuACEKCAoBCBIDLwAfCgkKAggfEgMvAB8KCAoBCBIDMwAcCn8KAggJEgMzABwadCBkZXNjcmlwdG9yLnByb3RvIG11c3QgYmUgb3B0aW1pemVkIGZvciBzcGVlZCBiZWNhdXNlIHJlZmxlY3Rpb24tYmFzZWQKIGFsZ29yaXRobXMgZG9uJ3Qgd29yayBkdXJpbmcgYm9vdHN0cmFwcGluZy4KCmoKAgQAEgQ3ADkBGl4gVGhlIHByb3RvY29sIGNvbXBpbGVyIGNhbiBvdXRwdXQgYSBGaWxlRGVzY3JpcHRvclNldCBjb250YWluaW5nIHRoZSAucHJvdG8KIGZpbGVzIGl0IHBhcnNlcy4KCgoKAwQAARIDNwgZCgsKBAQAAgASAzgCKAoMCgUEAAIABBIDOAIKCgwKBQQAAgAGEgM4Cx4KDAoFBAACAAESAzgfIwoMCgUEAAIAAxIDOCYnCi8KAgQBEgQ8AF4BGiMgRGVzY3JpYmVzIGEgY29tcGxldGUgLnByb3RvIGZpbGUuCgoKCgMEAQESAzwIGwo5CgQEAQIAEgM9AhsiLCBmaWxlIG5hbWUsIHJlbGF0aXZlIHRvIHJvb3Qgb2Ygc291cmNlIHRyZWUKCgwKBQQBAgAEEgM9AgoKDAoFBAECAAUSAz0LEQoMCgUEAQIAARIDPRIWCgwKBQQBAgADEgM9GRoKKgoEBAECARIDPgIeIh0gZS5nLiAiZm9vIiwgImZvby5iYXIiLCBldGMuCgoMCgUEAQIBBBIDPgIKCgwKBQQBAgEFEgM+CxEKDAoFBAECAQESAz4SGQoMCgUEAQIBAxIDPhwdCjQKBAQBAgISA0ECIRonIE5hbWVzIG9mIGZpbGVzIGltcG9ydGVkIGJ5IHRoaXMgZmlsZS4KCgwKBQQBAgIEEgNBAgoKDAoFBAECAgUSA0ELEQoMCgUEAQICARIDQRIcCgwKBQQBAgIDEgNBHyAKUQoEBAECAxIDQwIoGkQgSW5kZXhlcyBvZiB0aGUgcHVibGljIGltcG9ydGVkIGZpbGVzIGluIHRoZSBkZXBlbmRlbmN5IGxpc3QgYWJvdmUuCgoMCgUEAQIDBBIDQwIKCgwKBQQBAgMFEgNDCxAKDAoFBAECAwESA0MRIgoMCgUEAQIDAxIDQyUnCnoKBAQBAgQSA0YCJhptIEluZGV4ZXMgb2YgdGhlIHdlYWsgaW1wb3J0ZWQgZmlsZXMgaW4gdGhlIGRlcGVuZGVuY3kgbGlzdC4KIEZvciBHb29nbGUtaW50ZXJuYWwgbWlncmF0aW9uIG9ubHkuIERvIG5vdCB1c2UuCgoMCgUEAQIEBBIDRgIKCgwKBQQBAgQFEgNGCxAKDAoFBAECBAESA0YRIAoMCgUEAQIEAxIDRiMlCjYKBAQBAgUSA0kCLBopIEFsbCB0b3AtbGV2ZWwgZGVmaW5pdGlvbnMgaW4gdGhpcyBmaWxlLgoKDAoFBAECBQQSA0kCCgoMCgUEAQIFBhIDSQsaCgwKBQQBAgUBEgNJGycKDAoFBAECBQMSA0kqKwoLCgQEAQIGEgNKAi0KDAoFBAECBgQSA0oCCgoMCgUEAQIGBhIDSgseCgwKBQQBAgYBEgNKHygKDAoFBAECBgMSA0orLAoLCgQEAQIHEgNLAi4KDAoFBAECBwQSA0sCCgoMCgUEAQIHBhIDSwshCgwKBQQBAgcBEgNLIikKDAoFBAECBwMSA0ssLQoLCgQEAQIIEgNMAi4KDAoFBAECCAQSA0wCCgoMCgUEAQIIBhIDTAsfCgwKBQQBAggBEgNMICkKDAoFBAECCAMSA0wsLQoLCgQEAQIJEgNOAiMKDAoFBAECCQQSA04CCgoMCgUEAQIJBhIDTgsWCgwKBQQBAgkBEgNOFx4KDAoFBAECCQMSA04hIgr0AQoEBAECChIDVAIvGuYBIFRoaXMgZmllbGQgY29udGFpbnMgb3B0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlLgogWW91IG1heSBzYWZlbHkgcmVtb3ZlIHRoaXMgZW50aXJlIGZpZWxkIHdpdGhvdXQgaGFybWluZyBydW50aW1lCiBmdW5jdGlvbmFsaXR5IG9mIHRoZSBkZXNjcmlwdG9ycyAtLSB0aGUgaW5mb3JtYXRpb24gaXMgbmVlZGVkIG9ubHkgYnkKIGRldmVsb3BtZW50IHRvb2xzLgoKDAoFBAECCgQSA1QCCgoMCgUEAQIKBhIDVAsZCgwKBQQBAgoBEgNUGioKDAoFBAECCgMSA1QtLgqlAQoEBAECCxIDWgIeGpcBIFRoZSBzeW50YXggb2YgdGhlIHByb3RvIGZpbGUuCiBUaGUgc3VwcG9ydGVkIHZhbHVlcyBhcmUgInByb3RvMiIsICJwcm90bzMiLCBhbmQgImVkaXRpb25zIi4KCiBJZiBgZWRpdGlvbmAgaXMgcHJlc2VudCwgdGhpcyB2YWx1ZSBtdXN0IGJlICJlZGl0aW9ucyIuCgoMCgUEAQILBBIDWgIKCgwKBQQBAgsFEgNaCxEKDAoFBAECCwESA1oSGAoMCgUEAQILAxIDWhsdCkgKBAQBAgwSA10CHxo7IFRoZSBlZGl0aW9uIG9mIHRoZSBwcm90byBmaWxlLCB3aGljaCBpcyBhbiBvcGFxdWUgc3RyaW5nLgoKDAoFBAECDAQSA10CCgoMCgUEAQIMBRIDXQsRCgwKBQQBAgwBEgNdEhkKDAoFBAECDAMSA10cHgooCgIEAhIFYQCBAQEaGyBEZXNjcmliZXMgYSBtZXNzYWdlIHR5cGUuCgoKCgMEAgESA2EIFwoLCgQEAgIAEgNiAhsKDAoFBAICAAQSA2ICCgoMCgUEAgIABRIDYgsRCgwKBQQCAgABEgNiEhYKDAoFBAICAAMSA2IZGgoLCgQEAgIBEgNkAioKDAoFBAICAQQSA2QCCgoMCgUEAgIBBhIDZAsfCgwKBQQCAgEBEgNkICUKDAoFBAICAQMSA2QoKQoLCgQEAgICEgNlAi4KDAoFBAICAgQSA2UCCgoMCgUEAgICBhIDZQsfCgwKBQQCAgIBEgNlICkKDAoFBAICAgMSA2UsLQoLCgQEAgIDEgNnAisKDAoFBAICAwQSA2cCCgoMCgUEAgIDBhIDZwsaCgwKBQQCAgMBEgNnGyYKDAoFBAICAwMSA2cpKgoLCgQEAgIEEgNoAi0KDAoFBAICBAQSA2gCCgoMCgUEAgIEBhIDaAseCgwKBQQCAgQBEgNoHygKDAoFBAICBAMSA2grLAoMCgQEAgMAEgRqAm8DCgwKBQQCAwABEgNqChgKGwoGBAIDAAIAEgNrBB0iDCBJbmNsdXNpdmUuCgoOCgcEAgMAAgAEEgNrBAwKDgoHBAIDAAIABRIDaw0SCg4KBwQCAwACAAESA2sTGAoOCgcEAgMAAgADEgNrGxwKGwoGBAIDAAIBEgNsBBsiDCBFeGNsdXNpdmUuCgoOCgcEAgMAAgEEEgNsBAwKDgoHBAIDAAIBBRIDbA0SCg4KBwQCAwACAQESA2wTFgoOCgcEAgMAAgEDEgNsGRoKDQoGBAIDAAICEgNuBC8KDgoHBAIDAAICBBIDbgQMCg4KBwQCAwACAgYSA24NIgoOCgcEAgMAAgIBEgNuIyoKDgoHBAIDAAICAxIDbi0uCgsKBAQCAgUSA3ACLgoMCgUEAgIFBBIDcAIKCgwKBQQCAgUGEgNwCxkKDAoFBAICBQESA3AaKQoMCgUEAgIFAxIDcCwtCgsKBAQCAgYSA3ICLwoMCgUEAgIGBBIDcgIKCgwKBQQCAgYGEgNyCx8KDAoFBAICBgESA3IgKgoMCgUEAgIGAxIDci0uCgsKBAQCAgcSA3QCJgoMCgUEAgIHBBIDdAIKCgwKBQQCAgcGEgN0CxkKDAoFBAICBwESA3QaIQoMCgUEAgIHAxIDdCQlCqoBCgQEAgMBEgR5AnwDGpsBIFJhbmdlIG9mIHJlc2VydmVkIHRhZyBudW1iZXJzLiBSZXNlcnZlZCB0YWcgbnVtYmVycyBtYXkgbm90IGJlIHVzZWQgYnkKIGZpZWxkcyBvciBleHRlbnNpb24gcmFuZ2VzIGluIHRoZSBzYW1lIG1lc3NhZ2UuIFJlc2VydmVkIHJhbmdlcyBtYXkKIG5vdCBvdmVybGFwLgoKDAoFBAIDAQESA3kKFwobCgYEAgMBAgASA3oEHSIMIEluY2x1c2l2ZS4KCg4KBwQCAwECAAQSA3oEDAoOCgcEAgMBAgAFEgN6DRIKDgoHBAIDAQIAARIDehMYCg4KBwQCAwECAAMSA3obHAobCgYEAgMBAgESA3sEGyIMIEV4Y2x1c2l2ZS4KCg4KBwQCAwECAQQSA3sEDAoOCgcEAgMBAgEFEgN7DRIKDgoHBAIDAQIBARIDexMWCg4KBwQCAwECAQMSA3sZGgoLCgQEAgIIEgN9AiwKDAoFBAICCAQSA30CCgoMCgUEAgIIBhIDfQsYCgwKBQQCAggBEgN9GScKDAoFBAICCAMSA30qKwqDAQoEBAICCRIEgAECJRp1IFJlc2VydmVkIGZpZWxkIG5hbWVzLCB3aGljaCBtYXkgbm90IGJlIHVzZWQgYnkgZmllbGRzIGluIHRoZSBzYW1lIG1lc3NhZ2UuCiBBIGdpdmVuIG5hbWUgbWF5IG9ubHkgYmUgcmVzZXJ2ZWQgb25jZS4KCg0KBQQCAgkEEgSAAQIKCg0KBQQCAgkFEgSAAQsRCg0KBQQCAgkBEgSAARIfCg0KBQQCAgkDEgSAASIkCgwKAgQDEgaDAQCJAQEKCwoDBAMBEgSDAQgdCk8KBAQDAgASBIUBAjoaQSBUaGUgcGFyc2VyIHN0b3JlcyBvcHRpb25zIGl0IGRvZXNuJ3QgcmVjb2duaXplIGhlcmUuIFNlZSBhYm92ZS4KCg0KBQQDAgAEEgSFAQIKCg0KBQQDAgAGEgSFAQseCg0KBQQDAgABEgSFAR8zCg0KBQQDAgADEgSFATY5CloKAwQDBRIEiAECGRpNIENsaWVudHMgY2FuIGRlZmluZSBjdXN0b20gb3B0aW9ucyBpbiBleHRlbnNpb25zIG9mIHRoaXMgbWVzc2FnZS4gU2VlIGFib3ZlLgoKDAoEBAMFABIEiAENGAoNCgUEAwUAARIEiAENEQoNCgUEAwUAAhIEiAEVGAozCgIEBBIGjAEA8AEBGiUgRGVzY3JpYmVzIGEgZmllbGQgd2l0aGluIGEgbWVzc2FnZS4KCgsKAwQEARIEjAEIHAoOCgQEBAQAEgaNAQKsAQMKDQoFBAQEAAESBI0BBwsKUwoGBAQEAAIAEgSQAQQUGkMgMCBpcyByZXNlcnZlZCBmb3IgZXJyb3JzLgogT3JkZXIgaXMgd2VpcmQgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4KCg8KBwQEBAACAAESBJABBA8KDwoHBAQEAAIAAhIEkAESEwoOCgYEBAQAAgESBJEBBBMKDwoHBAQEAAIBARIEkQEEDgoPCgcEBAQAAgECEgSRARESCncKBgQEBAACAhIElAEEExpnIE5vdCBaaWdaYWcgZW5jb2RlZC4gIE5lZ2F0aXZlIG51bWJlcnMgdGFrZSAxMCBieXRlcy4gIFVzZSBUWVBFX1NJTlQ2NCBpZgogbmVnYXRpdmUgdmFsdWVzIGFyZSBsaWtlbHkuCgoPCgcEBAQAAgIBEgSUAQQOCg8KBwQEBAACAgISBJQBERIKDgoGBAQEAAIDEgSVAQQUCg8KBwQEBAACAwESBJUBBA8KDwoHBAQEAAIDAhIElQESEwp3CgYEBAQAAgQSBJgBBBMaZyBOb3QgWmlnWmFnIGVuY29kZWQuICBOZWdhdGl2ZSBudW1iZXJzIHRha2UgMTAgYnl0ZXMuICBVc2UgVFlQRV9TSU5UMzIgaWYKIG5lZ2F0aXZlIHZhbHVlcyBhcmUgbGlrZWx5LgoKDwoHBAQEAAIEARIEmAEEDgoPCgcEBAQAAgQCEgSYARESCg4KBgQEBAACBRIEmQEEFQoPCgcEBAQAAgUBEgSZAQQQCg8KBwQEBAACBQISBJkBExQKDgoGBAQEAAIGEgSaAQQVCg8KBwQEBAACBgESBJoBBBAKDwoHBAQEAAIGAhIEmgETFAoOCgYEBAQAAgcSBJsBBBIKDwoHBAQEAAIHARIEmwEEDQoPCgcEBAQAAgcCEgSbARARCg4KBgQEBAACCBIEnAEEFAoPCgcEBAQAAggBEgScAQQPCg8KBwQEBAACCAISBJwBEhMK4gEKBgQEBAACCRIEoQEEFBrRASBUYWctZGVsaW1pdGVkIGFnZ3JlZ2F0ZS4KIEdyb3VwIHR5cGUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHN1cHBvcnRlZCBpbiBwcm90bzMuIEhvd2V2ZXIsIFByb3RvMwogaW1wbGVtZW50YXRpb25zIHNob3VsZCBzdGlsbCBiZSBhYmxlIHRvIHBhcnNlIHRoZSBncm91cCB3aXJlIGZvcm1hdCBhbmQKIHRyZWF0IGdyb3VwIGZpZWxkcyBhcyB1bmtub3duIGZpZWxkcy4KCg8KBwQEBAACCQESBKEBBA4KDwoHBAQEAAIJAhIEoQEREwotCgYEBAQAAgoSBKIBBBYiHSBMZW5ndGgtZGVsaW1pdGVkIGFnZ3JlZ2F0ZS4KCg8KBwQEBAACCgESBKIBBBAKDwoHBAQEAAIKAhIEogETFQojCgYEBAQAAgsSBKUBBBQaEyBOZXcgaW4gdmVyc2lvbiAyLgoKDwoHBAQEAAILARIEpQEEDgoPCgcEBAQAAgsCEgSlARETCg4KBgQEBAACDBIEpgEEFQoPCgcEBAQAAgwBEgSmAQQPCg8KBwQEBAACDAISBKYBEhQKDgoGBAQEAAINEgSnAQQTCg8KBwQEBAACDQESBKcBBA0KDwoHBAQEAAINAhIEpwEQEgoOCgYEBAQAAg4SBKgBBBcKDwoHBAQEAAIOARIEqAEEEQoPCgcEBAQAAg4CEgSoARQWCg4KBgQEBAACDxIEqQEEFwoPCgcEBAQAAg8BEgSpAQQRCg8KBwQEBAACDwISBKkBFBYKJwoGBAQEAAIQEgSqAQQVIhcgVXNlcyBaaWdaYWcgZW5jb2RpbmcuCgoPCgcEBAQAAhABEgSqAQQPCg8KBwQEBAACEAISBKoBEhQKJwoGBAQEAAIREgSrAQQVIhcgVXNlcyBaaWdaYWcgZW5jb2RpbmcuCgoPCgcEBAQAAhEBEgSrAQQPCg8KBwQEBAACEQISBKsBEhQKDgoEBAQEARIGrgECswEDCg0KBQQEBAEBEgSuAQcMCioKBgQEBAECABIEsAEEFxoaIDAgaXMgcmVzZXJ2ZWQgZm9yIGVycm9ycwoKDwoHBAQEAQIAARIEsAEEEgoPCgcEBAQBAgACEgSwARUWCg4KBgQEBAECARIEsQEEFwoPCgcEBAQBAgEBEgSxAQQSCg8KBwQEBAECAQISBLEBFRYKDgoGBAQEAQICEgSyAQQXCg8KBwQEBAECAgESBLIBBBIKDwoHBAQEAQICAhIEsgEVFgoMCgQEBAIAEgS1AQIbCg0KBQQEAgAEEgS1AQIKCg0KBQQEAgAFEgS1AQsRCg0KBQQEAgABEgS1ARIWCg0KBQQEAgADEgS1ARkaCgwKBAQEAgESBLYBAhwKDQoFBAQCAQQSBLYBAgoKDQoFBAQCAQUSBLYBCxAKDQoFBAQCAQESBLYBERcKDQoFBAQCAQMSBLYBGhsKDAoEBAQCAhIEtwECGwoNCgUEBAICBBIEtwECCgoNCgUEBAICBhIEtwELEAoNCgUEBAICARIEtwERFgoNCgUEBAICAxIEtwEZGgqcAQoEBAQCAxIEuwECGRqNASBJZiB0eXBlX25hbWUgaXMgc2V0LCB0aGlzIG5lZWQgbm90IGJlIHNldC4gIElmIGJvdGggdGhpcyBhbmQgdHlwZV9uYW1lCiBhcmUgc2V0LCB0aGlzIG11c3QgYmUgb25lIG9mIFRZUEVfRU5VTSwgVFlQRV9NRVNTQUdFIG9yIFRZUEVfR1JPVVAuCgoNCgUEBAIDBBIEuwECCgoNCgUEBAIDBhIEuwELDwoNCgUEBAIDARIEuwEQFAoNCgUEBAIDAxIEuwEXGAq3AgoEBAQCBBIEwgECIBqoAiBGb3IgbWVzc2FnZSBhbmQgZW51bSB0eXBlcywgdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgdHlwZS4gIElmIHRoZSBuYW1lCiBzdGFydHMgd2l0aCBhICcuJywgaXQgaXMgZnVsbHktcXVhbGlmaWVkLiAgT3RoZXJ3aXNlLCBDKystbGlrZSBzY29waW5nCiBydWxlcyBhcmUgdXNlZCB0byBmaW5kIHRoZSB0eXBlIChpLmUuIGZpcnN0IHRoZSBuZXN0ZWQgdHlwZXMgd2l0aGluIHRoaXMKIG1lc3NhZ2UgYXJlIHNlYXJjaGVkLCB0aGVuIHdpdGhpbiB0aGUgcGFyZW50LCBvbiB1cCB0byB0aGUgcm9vdAogbmFtZXNwYWNlKS4KCg0KBQQEAgQEEgTCAQIKCg0KBQQEAgQFEgTCAQsRCg0KBQQEAgQBEgTCARIbCg0KBQQEAgQDEgTCAR4fCn4KBAQEAgUSBMYBAh8acCBGb3IgZXh0ZW5zaW9ucywgdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgdHlwZSBiZWluZyBleHRlbmRlZC4gIEl0IGlzCiByZXNvbHZlZCBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgdHlwZV9uYW1lLgoKDQoFBAQCBQQSBMYBAgoKDQoFBAQCBQUSBMYBCxEKDQoFBAQCBQESBMYBEhoKDQoFBAQCBQMSBMYBHR4KkQIKBAQEAgYSBMwBAiQaggIgRm9yIG51bWVyaWMgdHlwZXMsIGNvbnRhaW5zIHRoZSBvcmlnaW5hbCB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZS4KIEZvciBib29sZWFucywgInRydWUiIG9yICJmYWxzZSIuCiBGb3Igc3RyaW5ncywgY29udGFpbnMgdGhlIGRlZmF1bHQgdGV4dCBjb250ZW50cyAobm90IGVzY2FwZWQgaW4gYW55IHdheSkuCiBGb3IgYnl0ZXMsIGNvbnRhaW5zIHRoZSBDIGVzY2FwZWQgdmFsdWUuICBBbGwgYnl0ZXMgPj0gMTI4IGFyZSBlc2NhcGVkLgoKDQoFBAQCBgQSBMwBAgoKDQoFBAQCBgUSBMwBCxEKDQoFBAQCBgESBMwBEh8KDQoFBAQCBgMSBMwBIiMKhAEKBAQEAgcSBNABAiEadiBJZiBzZXQsIGdpdmVzIHRoZSBpbmRleCBvZiBhIG9uZW9mIGluIHRoZSBjb250YWluaW5nIHR5cGUncyBvbmVvZl9kZWNsCiBsaXN0LiAgVGhpcyBmaWVsZCBpcyBhIG1lbWJlciBvZiB0aGF0IG9uZW9mLgoKDQoFBAQCBwQSBNABAgoKDQoFBAQCBwUSBNABCxAKDQoFBAQCBwESBNABERwKDQoFBAQCBwMSBNABHyAK+gEKBAQEAggSBNYBAiEa6wEgSlNPTiBuYW1lIG9mIHRoaXMgZmllbGQuIFRoZSB2YWx1ZSBpcyBzZXQgYnkgcHJvdG9jb2wgY29tcGlsZXIuIElmIHRoZQogdXNlciBoYXMgc2V0IGEgImpzb25fbmFtZSIgb3B0aW9uIG9uIHRoaXMgZmllbGQsIHRoYXQgb3B0aW9uJ3MgdmFsdWUKIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlLCBpdCdzIGRlZHVjZWQgZnJvbSB0aGUgZmllbGQncyBuYW1lIGJ5IGNvbnZlcnRpbmcKIGl0IHRvIGNhbWVsQ2FzZS4KCg0KBQQEAggEEgTWAQIKCg0KBQQEAggFEgTWAQsRCg0KBQQEAggBEgTWARIbCg0KBQQEAggDEgTWAR4gCgwKBAQEAgkSBNgBAiQKDQoFBAQCCQQSBNgBAgoKDQoFBAQCCQYSBNgBCxcKDQoFBAQCCQESBNgBGB8KDQoFBAQCCQMSBNgBIiMKswkKBAQEAgoSBO8BAiUapAkgSWYgdHJ1ZSwgdGhpcyBpcyBhIHByb3RvMyAib3B0aW9uYWwiLiBXaGVuIGEgcHJvdG8zIGZpZWxkIGlzIG9wdGlvbmFsLCBpdAogdHJhY2tzIHByZXNlbmNlIHJlZ2FyZGxlc3Mgb2YgZmllbGQgdHlwZS4KCiBXaGVuIHByb3RvM19vcHRpb25hbCBpcyB0cnVlLCB0aGlzIGZpZWxkIG11c3QgYmUgYmVsb25nIHRvIGEgb25lb2YgdG8KIHNpZ25hbCB0byBvbGQgcHJvdG8zIGNsaWVudHMgdGhhdCBwcmVzZW5jZSBpcyB0cmFja2VkIGZvciB0aGlzIGZpZWxkLiBUaGlzCiBvbmVvZiBpcyBrbm93biBhcyBhICJzeW50aGV0aWMiIG9uZW9mLCBhbmQgdGhpcyBmaWVsZCBtdXN0IGJlIGl0cyBzb2xlCiBtZW1iZXIgKGVhY2ggcHJvdG8zIG9wdGlvbmFsIGZpZWxkIGdldHMgaXRzIG93biBzeW50aGV0aWMgb25lb2YpLiBTeW50aGV0aWMKIG9uZW9mcyBleGlzdCBpbiB0aGUgZGVzY3JpcHRvciBvbmx5LCBhbmQgZG8gbm90IGdlbmVyYXRlIGFueSBBUEkuIFN5bnRoZXRpYwogb25lb2ZzIG11c3QgYmUgb3JkZXJlZCBhZnRlciBhbGwgInJlYWwiIG9uZW9mcy4KCiBGb3IgbWVzc2FnZSBmaWVsZHMsIHByb3RvM19vcHRpb25hbCBkb2Vzbid0IGNyZWF0ZSBhbnkgc2VtYW50aWMgY2hhbmdlLAogc2luY2Ugbm9uLXJlcGVhdGVkIG1lc3NhZ2UgZmllbGRzIGFsd2F5cyB0cmFjayBwcmVzZW5jZS4gSG93ZXZlciBpdCBzdGlsbAogaW5kaWNhdGVzIHRoZSBzZW1hbnRpYyBkZXRhaWwgb2Ygd2hldGhlciB0aGUgdXNlciB3cm90ZSAib3B0aW9uYWwiIG9yIG5vdC4KIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igcm91bmQtdHJpcHBpbmcgdGhlIC5wcm90byBmaWxlLiBGb3IgY29uc2lzdGVuY3kgd2UKIGdpdmUgbWVzc2FnZSBmaWVsZHMgYSBzeW50aGV0aWMgb25lb2Yg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YW5ub3QKIHN0b3JlIHRoZSB2YWx1ZXMgaW4gdGhlbS4gIEluc3RlYWQgaXQgc3RvcmVzIHRoZW0gaW4gYSBmaWVsZCBpbiB0aGUgKk9wdGlvbnMKIG1lc3NhZ2UgY2FsbGVkIHVuaW50ZXJwcmV0ZWRfb3B0aW9uLiBUaGlzIGZpZWxkIG11c3QgaGF2ZSB0aGUgc2FtZSBuYW1lCiBhY3Jvc3MgYWxsICpPcHRpb25zIG1lc3NhZ2VzLiBXZSB0aGVuIHVzZSB0aGlzIGZpZWxkIHRvIHBvcHVsYXRlIHRoZQogZXh0ZW5zaW9ucyB3aGVuIHdlIGJ1aWxkIGEgZGVzY3JpcHRvciwgYXQgd2hpY2ggcG9pbnQgYWxsIHByb3RvcyBoYXZlIGJlZW4KIHBhcnNlZCBhbmQgc28gYWxsIGV4dGVuc2lvbnMgYXJlIGtub3duLgoKIEV4dGVuc2lvbiBudW1iZXJzIGZvciBjdXN0b20gb3B0aW9ucyBtYXkgYmUgY2hvc2VuIGFzIGZvbGxvd3M6CiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgb25seSBiZSB1c2VkIHdpdGhpbiBhIHNpbmdsZSBhcHBsaWNhdGlvbiBvcgogICBvcmdhbml6YXRpb24sIG9yIGZvciBleHBlcmltZW50YWwgb3B0aW9ucywgdXNlIGZpZWxkIG51bWJlcnMgNTAwMDAKICAgdGhyb3VnaCA5OTk5OS4gIEl0IGlzIHVwIHRvIHlvdSB0byBlbnN1cmUgdGhhdCB5b3UgZG8gbm90IHVzZSB0aGUKICAgc2FtZSBudW1iZXIgZm9yIG11bHRpcGxlIG9wdGlvbnMuCiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgYmUgcHVibGlzaGVkIGFuZCB1c2VkIHB1YmxpY2x5IGJ5IG11bHRpcGxlCiAgIGluZGVwZW5kZW50IGVudGl0aWVzLCBlLW1haWwgcHJvdG9idWYtZ2xvYmFsLWV4dGVuc2lvbi1yZWdpc3RyeUBnb29nbGUuY29tCiAgIHRvIHJlc2VydmUgZXh0ZW5zaW9uIG51bWJlcnMuIFNpbXBseSBwcm92aWRlIHlvdXIgcHJvamVjdCBuYW1lIChlLmcuCiAgIE9iamVjdGl2ZS1DIHBsdWdpbikgYW5kIHlvdXIgcHJvamVjdCB3ZWJzaXRlIChpZiBhdmFpbGFibGUpIC0tIHRoZXJlJ3Mgbm8KICAgbmVlZCB0byBleHBsYWluIGhvdyB5b3UgaW50ZW5kIHRvIHVzZSB0aGVtLiBVc3VhbGx5IHlvdSBvbmx5IG5lZWQgb25lCiAgIGV4dGVuc2lvbiBudW1iZXIuIFlvdSBjYW4gZGVjbGFyZSBtdWx0aXBsZSBvcHRpb25zIHdpdGggb25seSBvbmUgZXh0ZW5zaW9uCiAgIG51bWJlciBieSBwdXR0aW5nIHRoZW0gaW4gYSBzdWItbWVzc2FnZS4gU2VlIHRoZSBDdXN0b20gT3B0aW9ucyBzZWN0aW9uIG9mCiAgIHRoZSBkb2NzIGZvciBleGFtcGxlczoKICAgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvI29wdGlvbnMKICAgSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgcG9wdWxhciwgYSB3ZWIgc2VydmljZSB3aWxsIGJlIHNldCB1cAogICB0byBhdXRvbWF0aWNhbGx5IGFzc2lnbiBvcHRpb24gbnVtYmVycy4KCgsKAwQKARIE1gIIEwr0AQoEBAoCABIE3AICIxrlASBTZXRzIHRoZSBKYXZhIHBhY2thZ2Ugd2hlcmUgY2xhc3NlcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIC5wcm90byB3aWxsIGJlCiBwbGFjZWQuICBCeSBkZWZhdWx0LCB0aGUgcHJvdG8gcGFja2FnZSBpcyB1c2VkLCBidXQgdGhpcyBpcyBvZnRlbgogaW5hcHByb3ByaWF0ZSBiZWNhdXNlIHByb3RvIHBhY2thZ2VzIGRvIG5vdCBub3JtYWxseSBzdGFydCB3aXRoIGJhY2t3YXJkcwogZG9tYWluIG5hbWVzLgoKDQoFBAoCAAQSBNwCAgoKDQoFBAoCAAUSBNwCCxEKDQoFBAoCAAESBNwCEh4KDQoFBAoCAAMSBNwCISIK8QIKBAQKAgESBOMCAisa4gIgQ29udHJvbHMgdGhlIG5hbWUgb2YgdGhlIHdyYXBwZXIgSmF2YSBjbGFzcyBnZW5lcmF0ZWQgZm9yIHRoZSAucHJvdG8gZmlsZS4KIFRoYXQgY2xhc3Mgd2lsbCBhbHdheXMgY29udGFpbiB0aGUgLnByb3RvIGZpbGUncyBnZXREZXNjcmlwdG9yKCkgbWV0aG9kIGFzCiB3ZWxsIGFzIGFueSB0b3AtbGV2ZWwgZXh0ZW5zaW9ucyBkZWZpbmVkIGluIHRoZSAucHJvdG8gZmlsZS4KIElmIGphdmFfbXVsdGlwbGVfZmlsZXMgaXMgZGlzYWJsZWQsIHRoZW4gYWxsIHRoZSBvdGhlciBjbGFzc2VzIGZyb20gdGhlCiAucHJvdG8gZmlsZSB3aWxsIGJlIG5lc3RlZCBpbnNpZGUgdGhlIHNpbmdsZSB3cmFwcGVyIG91dGVyIGNsYXNzLgoKDQoFBAoCAQQSBOMCAgoKDQoFBAoCAQUSBOMCCxEKDQoFBAoCAQESBOMCEiYKDQoFBAoCAQMSBOMCKSoKpgMKBAQKAgISBOsCAjsalwMgSWYgZW5hYmxlZCwgdGhlbiB0aGUgSmF2YSBjb2RlIGdlbmVyYXRvciB3aWxsIGdlbmVyYXRlIGEgc2VwYXJhdGUgLmphdmEKIGZpbGUgZm9yIGVhY2ggdG9wLWxldmVsIG1lc3NhZ2UsIGVudW0sIGFuZCBzZXJ2aWNlIGRlZmluZWQgaW4gdGhlIC5wcm90bwogZmlsZS4gIFRodXMsIHRoZXNlIHR5cGVzIHdpbGwgKm5vdCogYmUgbmVzdGVkIGluc2lkZSB0aGUgd3JhcHBlciBjbGFzcwogbmFtZWQgYnkgamF2YV9vdXRlcl9jbGFzc25hbWUuICBIb3dldmVyLCB0aGUgd3JhcHBlciBjbGFzcyB3aWxsIHN0aWxsIGJlCiBnZW5lcmF0ZWQgdG8gY29udGFpbiB0aGUgZmlsZSdzIGdldERlc2NyaXB0b3IoKSBtZXRob2QgYXMgd2VsbCBhcyBhbnkKIHRvcC1sZXZlbCBleHRlbnNpb25zIGRlZmluZWQgaW4gdGhlIGZpbGUuCgoNCgUECgICBBIE6wICCgoNCgUECgICBRIE6wILDwoNCgUECgICARIE6wIQIwoNCgUECgICAxIE6wImKAoNCgUECgICCBIE6wIpOgoNCgUECgICBxIE6wI0OQopCgQECgIDEgTuAgJFGhsgVGhpcyBvcHRpb24gZG9lcyBub3RoaW5nLgoKDQoFBAoC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Cg0KBQQMAgEEEgSiBAIKCg0KBQQMAgEFEgSiBAsPCg0KBQQMAgEBEgSiBBAWCg0KBQQMAgEDEgSiBBkaCpoFCgQEDAICEgSvBAIzGosFIFRoZSBqc3R5cGUgb3B0aW9uIGRldGVybWluZXMgdGhlIEphdmFTY3JpcHQgdHlwZSB1c2VkIGZvciB2YWx1ZXMgb2YgdGhlCiBmaWVsZC4gIFRoZSBvcHRpb24gaXMgcGVybWl0dGVkIG9ubHkgZm9yIDY0IGJpdCBpbnRlZ3JhbCBhbmQgZml4ZWQgdHlwZXMKIChpbnQ2NCwgdWludDY0LCBzaW50NjQsIGZpeGVkNjQsIHNmaXhlZDY0KS4gIEEgZmllbGQgd2l0aCBqc3R5cGUgSlNfU1RSSU5HCiBpcyByZXByZXNlbnRlZCBhcyBKYXZhU2NyaXB0IHN0cmluZywgd2hpY2ggYXZvaWRzIGxvc3Mgb2YgcHJlY2lzaW9uIHRoYXQKIGNhbiBoYXBwZW4gd2hlbiBhIGxhcmdlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBhIGZsb2F0aW5nIHBvaW50IEphdmFTY3JpcHQuCiBTcGVjaWZ5aW5nIEpTX05VTUJFUiBmb3IgdGhlIGpzdHlwZSBjYXVzZXMgdGhlIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGNvZGUgdG8KIHVzZSB0aGUgSmF2YVNjcmlwdCAibnVtYmVyIiB0eXBlLiAgVGhlIGJlaGF2aW9yIG9mIHRoZSBkZWZhdWx0IG9wdGlvbgogSlNfTk9STUFMIGlzIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudC4KCiBUaGlzIG9wdGlvbiBpcyBhbiBlbnVtIHRvIHBlcm1pdCBhZGRpdGlvbmFsIHR5cGVzIHRvIGJlIGFkZGVkLCBlLmcuCiBnb29nLm1hdGguSW50ZWdlci4KCg0KBQQMAgIEEgSvBAIKCg0KBQQMAgIGEgSvBAsRCg0KBQQMAgIBEgSvBBIYCg0KBQQMAgIDEgSvBBscCg0KBQQMAgIIEgSvBB0yCg0KBQQMAgIHEgSvBCgxCg4KBAQMBAESBrAEArkEAwoNCgUEDAQBARIEsAQHDQonCgYEDAQBAgASBLIEBBIaFyBVc2UgdGhlIGRlZmF1bHQgdHlwZS4KCg8KBwQMBAECAAESBLIEBA0KDwoHBAwEAQIAAhIEsgQQEQopCgYEDAQBAgESBLUEBBIaGSBVc2UgSmF2YVNjcmlwdCBzdHJpbmdzLgoKDwoHBAwEAQIBARIEtQQEDQoPCgcEDAQBAgECEgS1BBARCikKBgQMBAECAhIEuAQEEhoZIFVzZSBKYXZhU2NyaXB0IG51bWJlcnMuCgoPCgcEDAQBAgIBEgS4BAQNCg8KBwQMBAECAgISBLgEEBEK/w0KBAQMAgMSBNkEAisa8A0gU2hvdWxkIHRoaXMgZmllbGQgYmUgcGFyc2VkIGxhemlseT8gIExhenkgYXBwbGllcyBvbmx5IHRvIG1lc3NhZ2UtdHlwZQogZmllbGRzLiAgSXQgbWVhbnMgdGhhdCB3aGVuIHRoZSBvdXRlciBtZXNzYWdlIGlzIGluaXRpYWxseSBwYXJzZWQsIHRoZQogaW5uZXIgbWVzc2FnZSdzIGNvbnRlbnRzIHdpbGwgbm90IGJlIHBhcnNlZCBidXQgaW5zdGVhZCBzdG9yZWQgaW4gZW5jb2RlZAogZm9ybS4gIFRoZSBpbm5lciBtZXNzYWdlIHdpbGwgYWN0dWFsbHkgYmUgcGFyc2VkIHdoZW4gaXQgaXMgZmlyc3QgYWNjZXNzZWQuCgogVGhpcyBpcyBvbmx5IGEgaGludC4gIEltcGxlbWVudGF0aW9ucyBhcmUgZnJlZSB0byBjaG9vc2Ugd2hldGhlciB0byB1c2UKIGVhZ2VyIG9yIGxhenkgcGFyc2luZyByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbi4gIEhvd2V2ZXIsCiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRydWUgc3VnZ2VzdHMgdGhhdCB0aGUgcHJvdG9jb2wgYXV0aG9yIGJlbGlldmVzIHRoYXQKIHVzaW5nIGxhenkgcGFyc2luZyBvbiB0aGlzIGZpZWxkIGlzIHdvcnRoIHRoZSBhZGRpdGlvbmFsIGJvb2trZWVwaW5nCiBvdmVyaGVhZCB0eXBpY2FsbHkgbmVlZGVkIHRvIGltcGxlbWVudCBpdC4KCiBUaGlzIG9wdGlvbiBkb2VzIG5vdCBhZmZlY3QgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgYW55IGdlbmVyYXRlZCBjb2RlOwogYWxsIG1ldGhvZCBzaWduYXR1cmVzIHJlbWFpbiB0aGUgc2FtZS4gIEZ1cnRoZXJtb3JlLCB0aHJlYWQtc2FmZXR5IG9mIHRoZQogaW50ZXJmYWNlIGlzIG5vdCBhZmZlY3RlZCBieSB0aGlzIG9wdGlvbjsgY29uc3QgbWV0aG9kcyByZW1haW4gc2FmZSB0bwogY2FsbCBmcm9tIG11bHRpcGxlIHRocmVhZHMgY29uY3VycmVudGx5LCB3aGlsZSBub24tY29uc3QgbWV0aG9kcyBjb250aW51ZQogdG8gcmVxdWlyZSBleGNsdXNpdmUgYWNjZXNzLgoKIE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzIHdpdGhpbgogYSBsYXp5IHN1Yi1tZXNzYWdlLiAgVGhhdCBpcywgY2FsbGluZyBJc0luaXRpYWxpemVkKCkgb24gdGhlIG91dGVyIG1lc3NhZ2UKIG1heSByZXR1cm4gdHJ1ZSBldmVuIGlmIHRoZSBpbm5lciBtZXNzYWdlIGhhcyBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkcy4KIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBpbm5lciBtZXNzYWdlIHdvdWxkIGhhdmUgdG8gYmUKIHBhcnNlZCBpbiBvcmRlciB0byBwZXJmb3JtIHRoZSBjaGVjaywgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIGxhenkKIHBhcnNpbmcuICBBbiBpbXBsZW1lbnRhdGlvbiB3aGljaCBjaG9vc2VzIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMKIG11c3QgYmUgY29uc2lzdGVudCBhYm91dCBpdC4gIFRoYXQgaXMsIGZvciBhbnkgcGFydGljdWxhciBzdWItbWVzc2FnZSwgdGhlCiBpbXBsZW1lbnRhdGlvbiBtdXN0IGVpdGhlciAqYWx3YXlzKiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCBvciAqbmV2ZXIqCiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRo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biBleHRlbnNpb25zIG9mIHRoaXMgbWVzc2FnZS4gU2VlIGFib3ZlLgoKDAoEBBEFABIEzQUNGAoNCgUEEQUAARIEzQUNEQoNCgUEEQUAAhIEzQUVGAqLAwoCBBISBtYFAOoFARr8AiBBIG1lc3NhZ2UgcmVwcmVzZW50aW5nIGEgb3B0aW9uIHRoZSBwYXJzZXIgZG9lcyBub3QgcmVjb2duaXplLiBUaGlzIG9ubHkKIGFwcGVhcnMgaW4gb3B0aW9ucyBwcm90b3MgY3JlYXRlZCBieSB0aGUgY29tcGlsZXI6OlBhcnNlciBjbGFzcy4KIERlc2NyaXB0b3JQb29sIHJlc29sdmVzIHRoZXNlIHdoZW4gYnVpbGRpbmcgRGVzY3JpcHRvciBvYmplY3RzLiBUaGVyZWZvcmUsCiBvcHRpb25zIHByb3RvcyBpbiBkZXNjcmlwdG9yIG9iamVjdHMgKGUuZy4gcmV0dXJuZWQgYnkgRGVzY3JpcHRvcjo6b3B0aW9ucygpLAogb3IgcHJvZHVjZWQgYnkgRGVzY3JpcHRvcjo6Q29weVRvKCkpIHdpbGwgbmV2ZXIgaGF2ZSBVbmludGVycHJldGVkT3B0aW9ucwogaW4gdGhlbS4KCgsKAwQSARIE1gUIGwrLAgoEBBIDABIG3AUC3wUDGroCIFRoZSBuYW1lIG9mIHRoZSB1bmludGVycHJldGVkIG9wdGlvbi4gIEVhY2ggc3RyaW5nIHJlcHJlc2VudHMgYSBzZWdtZW50IGluCiBhIGRvdC1zZXBhcmF0ZWQgbmFtZS4gIGlzX2V4dGVuc2lvbiBpcyB0cnVlIGlmZiBhIHNlZ21lbnQgcmVwcmVzZW50cyBhbgogZXh0ZW5zaW9uIChkZW5vdGVkIHdpdGggcGFyZW50aGVzZXMgaW4gb3B0aW9ucyBzcGVjcyBpbiAucHJvdG8gZmlsZXMpLgogRS5nLix7IFsiZm9vIiwgZmFsc2VdLCBbImJhci5iYXoiLCB0cnVlXSwgWyJtb28iLCBmYWxzZV0gfSByZXByZXNlbnRzCiAiZm9vLihiYXIuYmF6KS5tb28iLgoKDQoFBBIDAAESBNwFChIKDgoGBBIDAAIAEgTdBQQiCg8KBwQSAwACAAQSBN0FBAwKDwoHBBIDAAIABRIE3QUNEwoPCgcE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CiAtIEEgbG9jYXRpb24gbWF5IHJlZmVyIHRvIGEgcmVwZWF0ZWQgZmllbGQgaXRzZWxmIChpLmUuIG5vdCB0byBhbnkKICAgcGFydGljdWxhciBpbmRleCB3aXRoaW4gaXQpLiAgVGhpcyBpcyB1c2VkIHdoZW5ldmVyIGEgc2V0IG9mIGVsZW1lbnRzIGFyZQogICBsb2dpY2FsbHkgZW5jbG9zZWQgaW4gYSBzaW5nbGUgY29kZSBzZWdtZW50LiAgRm9yIGV4YW1wbGUsIGFuIGVudGlyZQogICBleHRlbmQgYmxvY2sgKHBvc3NpYmx5IGNvbnRhaW5pbmcgbXVsdGlwbGUgZXh0ZW5zaW9uIGRlZmluaXRpb25zKSB3aWxsCiAgIGhhdmUgYW4gb3V0ZXIgbG9jYXRpb24gd2hvc2UgcGF0aCByZWZlcnMgdG8gdGhlICJleHRlbnNpb25zIiByZXBlYXRlZAogICBmaWVsZCB3aXRob3V0IGFuIGluZGV4LgogLSBNdWx0aXBsZSBsb2NhdGlvbnMgbWF5IGhhdmUgdGhlIHNhbWUgcGF0aC4gIFRoaXMgaGFwcGVucyB3aGVuIGEgc2luZ2xlCiAgIGxvZ2ljYWwgZGVjbGFyYXRpb24gaXMgc3ByZWFkIG91dCBhY3Jvc3MgbXVsdGlwbGUgcGxhY2VzLiAgVGhlIG1vc3QKICAgb2J2aW91cyBleGFtcGxlIGlzIHRoZSAiZXh0ZW5kIiBibG9jayBhZ2FpbiAtLSB0aGVyZSBtYXkgYmUgbXVsdGlwbGUKICAgZXh0ZW5kIGJsb2NrcyBpbiB0aGUgc2FtZSBzY29wZSwgZWFjaCBvZiB3aGljaCB3aWxsIGhhdmUgdGhlIHNhbWUgcGF0aC4KIC0gQSBsb2NhdGlvbidzIHNwYW4gaXMgbm90IGFsd2F5cyBhIHN1YnNldCBvZiBpdHMgcGFyZW50J3Mgc3Bhbi4gIEZvcgogICBleGFtcGxlLCB0aGUgImV4dGVuZGVlIiBvZiBhbiBleHRlbnNpb24gZGVjbGFyYXRpb24gYXBwZWFycyBhdCB0aGUKICAgYmVnaW5uaW5nIG9mIHRoZSAiZXh0ZW5kIiBibG9jayBhbmQgaXMgc2hhcmVkIGJ5IGFsbCBleHRlbnNpb25zIHdpdGhpbgogICB0aGUgYmxvY2suCiAtIEp1c3QgYmVjYXVzZSBhIGxvY2F0aW9uJ3Mgc3BhbiBpcyBhIHN1YnNldCBvZiBzb21lIG90aGVyIGxvY2F0aW9uJ3Mgc3BhbgogICBkb2VzIG5vdCBtZWFuIHRoYXQgaXQgaXMgYSBkZXNjZW5kYW50LiAgRm9yIGV4YW1wbGUsIGEgImdyb3VwIiBkZWZpbmVzCiAgIGJvdGggYSB0eXBlIGFuZCBhIGZpZWxkIGluIGEgc2luZ2xlIGRlY2xhcmF0aW9uLiAgVGh1cywgdGhlIGxvY2F0aW9ucwogICBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlIGFuZCBmaWVsZCBhbmQgdGhlaXIgY29tcG9uZW50cyB3aWxsIG92ZXJsYXAuCiAtIENvZGUgd2hpY2ggdHJpZXMgdG8gaW50ZXJwcmV0IGxvY2F0aW9ucyBzaG91bGQgcHJvYmFibHkgYmUgZGVzaWduZWQgdG8KICAgaWdub3JlIHRob3NlIHRoYXQgaXQgZG9lc24ndCB1bmRlcnN0YW5kLCBhcyBtb3JlIHR5cGVzIG9mIGxvY2F0aW9ucyBjb3VsZAogICBiZSByZWNvcmRlZCBpbiB0aGUgZnV0dXJlLgoKDQoFBBMCAAQSBJ0GAgoKDQoFBBMCAAYSBJ0GCxMKDQoFBBMCAAESBJ0GFBwKDQoFBBMCAAMSBJ0GHyAKDgoEBBMDABIGngYC8QYDCg0KBQQTAwABEgSeBgoSCokHCgYEEwMAAgASBLYGBCwa+AYgSWRlbnRpZmllcyB3aGljaCBwYXJ0IG9mIHRoZSBGaWxlRGVzY3JpcHRvclByb3RvIHdhcyBkZWZpbmVkIGF0IHRoaXMKIGxvY2F0aW9uLgoKIEVhY2ggZWxlbWVudCBpcyBhIGZpZWxkIG51bWJlciBvciBhbiBpbmRleC4gIFRoZXkgZm9ybSBhIHBhdGggZnJvbQogdGhlIHJvb3QgRmlsZURlc2NyaXB0b3JQcm90byB0byB0aGUgcGxhY2Ugd2hlcmUgdGhlIGRlZmluaXRpb24gb2NjdXJzLgogRm9yIGV4YW1wbGUsIHRoaXMgcGF0aDoKICAgWyA0LCAzLCAyLCA3LCAxIF0KIHJlZmVycyB0bzoKICAgZmlsZS5tZXNzYWdlX3R5cGUoMykgIC8vIDQsIDMKICAgICAgIC5maWVsZCg3KSAgICAgICAgIC8vIDIsIDcKICAgICAgIC5uYW1lKCkgICAgICAgICAgIC8vIDEKIFRoaXMgaXMgYmVjYXVzZSBGaWxlRGVzY3JpcHRvclByb3RvLm1lc3NhZ2VfdHlwZSBoYXMgZmllbGQgbnVtYmVyIDQ6CiAgIHJlcGVhdGVkIERlc2NyaXB0b3JQcm90byBtZXNzYWdlX3R5cGUgPSA0OwogYW5kIERlc2NyaXB0b3JQcm90by5maWVsZCBoYXMgZmllbGQgbnVtYmVyIDI6CiAgIHJlcGVhdGVkIEZpZWxkRGVzY3JpcHRvclByb3RvIGZpZWxkID0gMjsKIGFuZCBGaWVsZERlc2NyaXB0b3JQcm90by5uYW1lIGhhcyBmaWVsZCBudW1iZXIgMToKICAgb3B0aW9uYWwgc3RyaW5nIG5hbWUgPSAxOwoKIFRodXMsIHRoZSBhYm92ZSBwYXRoIGdpdmVzIHRoZSBsb2NhdGlvbiBvZiBhIGZpZWxkIG5hbWUuICBJZiB3ZSByZW1vdmVkCiB0aGUgbGFzdCBlbGVtZW50OgogICBbIDQsIDMsIDIsIDcgXQogdGhpcyBwYXRoIHJlZmVycyB0byB0aGUgd2hvbGUgZmllbGQgZGVjbGFyYXRpb24gKGZyb20gdGhlIGJlZ2lubmluZwogb2YgdGhlIGxhYmVsIHRvIHRoZSB0ZXJtaW5hdGluZyBzZW1pY29sb24pLgoKDwoHBBMDAAIABBIEtgYEDAoPCgcEEwMAAgAFEgS2Bg0SCg8KBwQTAwACAAESBLYGExcKDwoHBBMDAAIAAxIEtgYaGwoPCgcEEwMAAgAIEgS2BhwrChAKCAQTAwACAAgCEgS2Bh0qCtICCgYEEwMAAgESBL0GBCwawQIgQWx3YXlzIGhhcyBleGFjdGx5IHRocmVlIG9yIGZvdXIgZWxlbWVudHM6IHN0YXJ0IGxpbmUsIHN0YXJ0IGNvbHVtbiwKIGVuZCBsaW5lIChvcHRpb25hbCwgb3RoZXJ3aXNlIGFzc3VtZWQgc2FtZSBhcyBzdGFydCBsaW5lKSwgZW5kIGNvbHVtbi4KIFRoZXNlIGFyZSBwYWNrZWQgaW50byBhIHNpbmdsZSBmaWVsZCBmb3IgZWZmaWNpZW5jeS4gIE5vdGUgdGhhdCBsaW5lCiBhbmQgY29sdW1uIG51bWJlcnMgYXJlIHplcm8tYmFzZWQgLS0gdHlwaWNhbGx5IHlvdSB3aWxsIHdhbnQgdG8gYWRkCiAxIHRvIGVhY2ggYmVmb3JlIGRpc3BsYXlpbmcgdG8gYSB1c2VyLgoKDwoHBBMDAAIBBBIEvQYEDAoPCgcEEwMAAgEFEgS9Bg0SCg8KBwQTAwACAQESBL0GExcKDwoHBBMDAAIBAxIEvQYaGwoPCgcEEwMAAgEIEgS9BhwrChAKCAQTAwACAQgCEgS9Bh0qCqUMCgYEEwMAAgISBO4GBCkalAwgSWYgdGhpcyBTb3VyY2VDb2RlSW5mbyByZXByZXNlbnRzIGEgY29tcGxldGUgZGVjbGFyYXRpb24sIHRoZXNlIGFyZSBhbnkKIGNvbW1lbnRzIGFwcGVhcmluZyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiB3aGljaCBhcHBlYXIgdG8gYmUKIGF0dGFjaGVkIHRvIHRoZSBkZWNsYXJhdGlvbi4KCiBBIHNlcmllcyBvZiBsaW5lIGNvbW1lbnRzIGFwcGVhcmluZyBvbiBjb25zZWN1dGl2ZSBsaW5lcywgd2l0aCBubyBvdGhlcgogdG9rZW5zIGFwcGVhcmluZyBvbiB0aG9zZSBsaW5lcywgd2lsbCBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlIGNvbW1lbnQuCgogbGVhZGluZ19kZXRhY2hlZF9jb21tZW50cyB3aWxsIGtlZXAgcGFyYWdyYXBocyBvZiBjb21tZW50cyB0aGF0IGFwcGVhcgogYmVmb3JlIChidXQgbm90IGNvbm5lY3RlZCB0bykgdGhlIGN1cnJlbnQgZWxlbWVudC4gRWFjaCBwYXJhZ3JhcGgsCiBzZXBhcmF0ZWQgYnkgZW1wdHkgbGluZXMsIHdpbGwgYmUgb25lIGNvbW1lbnQgZWxlbWVudCBpbiB0aGUgcmVwZWF0ZWQKIGZpZWxkLgoKIE9ubHkgdGhlIGNvbW1lbnQgY29udGVudCBpcyBwcm92aWRlZDsgY29tbWVudCBtYXJrZXJzIChlLmcuIC8vKSBhcmUKIHN0cmlwcGVkIG91dC4gIEZvciBibG9jayBjb21tZW50cywgbGVhZGluZyB3aGl0ZXNwYWNlIGFuZCBhbiBhc3Rlcmlzawogd2lsbCBiZSBzdHJpcHBlZCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBsaW5lIG90aGVyIHRoYW4gdGhlIGZpcnN0LgogTmV3bGluZXMgYXJlIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuCgogRXhhbXBsZXM6CgogICBvcHRpb25hbCBpbnQzMiBmb28gPSAxOyAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBmb28uCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gYmFyLgogICBvcHRpb25hbCBpbnQzMiBiYXIgPSAyOwoKICAgb3B0aW9uYWwgc3RyaW5nIGJheiA9IDM7CiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gYmF6LgogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gYmF6LgoKICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBtb28uCiAgIC8vCiAgIC8vIEFub3RoZXIgbGluZSBhdHRhY2hlZCB0byBtb28uCiAgIG9wdGlvbmFsIGRvdWJsZSBtb28gPSA0OwoKICAgLy8gRGV0YWNoZWQgY29tbWVudCBmb3IgY29yZ2UuIFRoaXMgaXMgbm90IGxlYWRpbmcgb3IgdHJhaWxpbmcgY29tbWVudHMKICAgLy8gdG8gbW9vIG9yIGNvcmdlIGJlY2F1c2UgdGhlcmUgYXJlIGJsYW5rIGxpbmVzIHNlcGFyYXRpbmcgaXQgZnJvbQogICAvLyBib3RoLgoKICAgLy8gRGV0YWNoZWQgY29tbWVudCBmb3IgY29yZ2UgcGFyYWdyYXBoIDIuCgogICBvcHRpb25hbCBzdHJpbmcgY29yZ2UgPSA1OwogICAvKiBCbG9jayBjb21tZW50IGF0dGFjaGVkCiAgICAqIHRvIGNvcmdlLiAgTGVhZGluZyBhc3Rlcmlza3MKICAgICogd2lsbCBiZSByZW1vdmVkLiAqLwogICAvKiBCbG9jayBjb21tZW50IGF0dGFjaGVkIHRvCiAgICAqIGdyYXVsdC4gKi8KICAgb3B0aW9uYWwgaW50MzIgZ3JhdWx0ID0gNjsKCiAgIC8vIGlnbm9yZWQgZGV0YWNo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AgABEgSQBwYKChEKCQQUAwAEAAIAAhIEkAcNDgo8CggEFAMABAACARIEkgcGDhoqIFRoZSBlbGVtZW50IGlzIHNldCBvciBvdGhlcndpc2UgbXV0YXRlZC4KChEKCQQUAwAEAAIBARIEkgcGCQoRCgkEFAMABAACAQISBJIHDA0KOAoIBBQDAAQAAgISBJQHBhAaJiBBbiBhbGlhcyB0byB0aGUgZWxlbWVudCBpcyByZXR1cm5lZC4KChEKCQQUAwAEAAICARIElAcGCwoRCgkEFAMABAACAgISBJQHDg8KDgoGBBQDAAIEEgSWBwQjCg8KBwQUAwACBAQSBJYHBAwKDwoHBBQDAAIEBhIElgcNFQoPCgcEFAMAAgQBEgSWBxYeCg8KBwQUAwACBAMSBJYHISIK4nwKJHVuaXR0ZXN0X2N1c3RvbV9vcHRpb25zX3Byb3RvMy5wcm90bxIRcHJvdG9idWZfdW5pdHRlc3QaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvIusBChxUZXN0TWVzc2FnZVdpdGhDdXN0b21PcHRpb25zEiYKBmZpZWxkMRgBIAEoCUIOCAHB4MMdLeF1CgIAAABSBmZpZWxkMRIhCgtvbmVvZl9maWVsZBgCIAEoBUgAUgpvbmVvZkZpZWxkIlMKBkFuRW51bRIWChJBTkVOVU1fVU5TUEVDSUZJRUQQABIPCgtBTkVOVU1fVkFMMRABEhYKC0FORU5VTV9WQUwyEAIaBbCG+gV7GgjF9skd6/z//zoQCADg6cIdyP//////////AUIZCgdBbk9uZW9mEg74rMMdnf//////////ASIYChZDdXN0b21PcHRpb25Gb29SZXF1ZXN0IhkKF0N1c3RvbU9wdGlvbkZvb1Jlc3BvbnNlIh4KHEN1c3RvbU9wdGlvbkZvb0NsaWVudE1lc3NhZ2UiHgocQ3VzdG9tT3B0aW9uRm9vU2VydmVyTWVzc2FnZSKPAQoaRHVtbXlNZXNzYWdlQ29udGFpbmluZ0VudW0icQoMVGVzdEVudW1UeXBlEiAKHFRFU1RfT1BUSU9OX0VOVU1fVU5TUEVDSUZJRUQQABIaChZURVNUX09QVElPTl9FTlVNX1RZUEUxEBYSIwoWVEVTVF9PUFRJT05fRU5VTV9UWVBFMhDp//////////8BIiEKH0R1bW15TWVzc2FnZUludmFsaWRBc09wdGlvblR5cGUiigEKHEN1c3RvbU9wdGlvbk1pbkludGVnZXJWYWx1ZXM6atDesh0A6MayHYCAgID4/////wGwvLIdgICAgICAgICAAYCTsh0A+PWwHQCAxLAd/////w/4l7Ad////////////AZ31rx0AAAAAke6vHQAAAAAAAAAArY2vHQAAAICZ1qgdAAAAAAAAAIAikQEKHEN1c3RvbU9wdGlvbk1heEludGVnZXJWYWx1ZXM6cdDesh0B6MayHf////8HsLyyHf//////////f4CTsh3/////D/j1sB3///////////8BgMSwHf7///8P+JewHf7//////////wGd9a8d/////5Hurx3//////////62Nrx3///9/mdaoHf////////9/Im4KF0N1c3RvbU9wdGlvbk90aGVyVmFsdWVzOlPoxrIdnP//////////AfXfox3nh0VB6dyiHftZjELKwPM/qtyiHQ5IZWxsbywgIldvcmxkIrLZoh0LSGVsbG8AV29ybGSI2aId6f//////////ASI0ChxTZXR0aW5nUmVhbHNGcm9tUG9zaXRpdmVJbnRzOhT136MdAABAQencoh0AAAAAAEBjQCI0ChxTZXR0aW5nUmVhbHNGcm9tTmVnYXRpdmVJbnRzOhT136MdAABAwencoh0AAAAAAEBjwCJiChJDb21wbGV4T3B0aW9uVHlwZTESEAoDZm9vGAEgASgFUgNmb28SEgoEZm9vMhgCIAEoBVIEZm9vMhISCgRmb28zGAMgASgFUgRmb28zEhIKBGZvbzQYBCADKAVSBGZvbzQirQMKEkNvbXBsZXhPcHRpb25UeXBlMhI3CgNiYXIYASABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTFSA2JhchIQCgNiYXoYAiABKAVSA2JhehJMCgRmcmVkGAMgASgLMjgucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyLkNvbXBsZXhPcHRpb25UeXBlNFIEZnJlZBJQCgZiYXJuZXkYBCADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIuQ29tcGxleE9wdGlvblR5cGU0UgZiYXJuZXkaqwEKEkNvbXBsZXhPcHRpb25UeXBlNBIUCgV3YWxkbxgBIAEoBVIFd2FsZG8yfwoMY29tcGxleF9vcHQ0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGIr10QMgASgLMjgucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyLkNvbXBsZXhPcHRpb25UeXBlNFILY29tcGxleE9wdDQiJgoSQ29tcGxleE9wdGlvblR5cGUzEhAKA3F1eBgBIAEoBVIDcXV4ImwKFVZhcmlvdXNDb21wbGV4T3B0aW9uczpTouKVHQIIKqLilR0CIGOi4pUdAiBYqv2QHQMQ2weq/ZAdBQoDCOcF0qiPHQMIsw+q/ZAdBRoDCMECqv2QHQQiAghlqv2QHQUiAwjUAfrekB0CCAkiVwoJQWdncmVnYXRlEgwKAWkYASABKAVSAWkSDAoBcxgCIAEoCVIBcxIuCgNzdWIYAyABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSA3N1YiJkChBBZ2dyZWdhdGVNZXNzYWdlEjQKCWZpZWxkbmFtZRgBIAEoBUIW8qGHOxESD0ZpZWxkQW5ub3RhdGlvblIJZmllbGRuYW1lOhrC0YY7FQhlEhFNZXNzYWdlQW5ub3RhdGlvbiKkAQoQTmVzdGVkT3B0aW9uVHlwZRpICg1OZXN0ZWRNZXNzYWdlEi8KDG5lc3RlZF9maWVsZBgBIAEoBUIMweDDHeoDAAAAAAAAUgtuZXN0ZWRGaWVsZDoG4OnCHekHIkYKCk5lc3RlZEVudW0SDwoLVU5TUEVDSUZJRUQQABIdChFORVNURURfRU5VTV9WQUxVRRABGgawhvoF7AcaCMX2yR3rAwAAKlIKCk1ldGhvZE9wdDESGgoWTUVUSE9ET1BUMV9VTlNQRUNJRklFRBAAEhMKD01FVEhPRE9QVDFfVkFMMRABEhMKD01FVEhPRE9QVDFfVkFMMhACKl4KDUFnZ3JlZ2F0ZUVudW0SDwoLVU5TUEVDSUZJRUQQABIlCgVWQUxVRRABGhrK/Ik7FRITRW51bVZhbHVlQW5ub3RhdGlvbhoVkpWIOxASDkVudW1Bbm5vdGF0aW9uMo4BChxUZXN0U2VydmljZVdpdGhDdXN0b21PcHRpb25zEmMKA0ZvbxIpLnByb3RvYnVmX3VuaXR0ZXN0LkN1c3RvbU9wdGlvbkZvb1JlcXVlc3QaKi5wcm90b2J1Zl91bml0dGVzdC5DdXN0b21PcHRpb25Gb29SZXNwb25zZSIF4PqMHgIaCZCyix7T24DLSTKZAQoQQWdncmVnYXRlU2VydmljZRJrCgZNZXRob2QSIy5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVNZXNzYWdlGiMucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlTWVzc2FnZSIXysiWOxISEE1ldGhvZEFubm90YXRpb24aGMr7jjsTEhFTZXJ2aWNlQW5ub3RhdGlvbjo8CglmaWxlX29wdDESHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMYjp3YAyABKARSCGZpbGVPcHQxOkUKDG1lc3NhZ2Vfb3B0MRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxicrdgDIAEoBVILbWVzc2FnZU9wdDE6PwoKZmllbGRfb3B0MRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYiLzYAyABKAZSCWZpZWxkT3B0MTo/CgpvbmVvZl9vcHQxEh0uZ29vZ2xlLnByb3RvYnVmLk9uZW9mT3B0aW9ucxjPtdgDIAEoBVIJb25lb2ZPcHQxOjwKCWVudW1fb3B0MRIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9ucxjontkDIAEoD1IIZW51bU9wdDE6SwoPZW51bV92YWx1ZV9vcHQxEiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMY5qBfIAEoBVINZW51bVZhbHVlT3B0MTpFCgxzZXJ2aWNlX29wdDESHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYorbhAyABKBJSC3NlcnZpY2VPcHQxOmEKC21ldGhvZF9vcHQxEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYrM/hAyABKA4yHS5wcm90b2J1Zl91bml0dGVzdC5NZXRob2RPcHQxUgptZXRob2RPcHQxOj0KCGJvb2xfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOqr1gMgASgIUgdib29sT3B0Oj8KCWludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjtqNYDIAEoBVIIaW50MzJPcHQ6PwoJaW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGMan1gMgASgDUghpbnQ2NE9wdDpBCgp1aW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGLCi1gMgASgNUgl1aW50MzJPcHQ6QQoKdWludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjfjtYDIAEoBFIJdWludDY0T3B0OkEKCnNpbnQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYwIjWAyABKBFSCXNpbnQzMk9wdDpBCgpzaW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGP+C1gMgASgSUglzaW50NjRPcHQ6QwoLZml4ZWQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY0/7VAyABKAdSCmZpeGVkMzJPcHQ6QwoLZml4ZWQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY4v3VAyABKAZSCmZpeGVkNjRPcHQ6RQoMc2ZpeGVkMzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNXx1QMgASgPUgtzZml4ZWQzMk9wdDpFCgxzZml4ZWQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY44rVAyABKBBSC3NmaXhlZDY0T3B0Oj8KCWZsb2F0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxj+u9QDIAEoAlIIZmxvYXRPcHQ6QQoKZG91YmxlX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjNq9QDIAEoAVIJZG91YmxlT3B0OkEKCnN0cmluZ19vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYxavUAyABKAlSCXN0cmluZ09wdDo/CglieXRlc19vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYlqvUAyABKAxSCGJ5dGVzT3B0OnkKCGVudW1fb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJGr1AMgASgOMjoucHJvdG9idWZfdW5pdHRlc3QuRHVtbXlNZXNzYWdlQ29udGFpbmluZ0VudW0uVGVzdEVudW1UeXBlUgdlbnVtT3B0OoABChBtZXNzYWdlX3R5cGVfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGK/y0wMgASgLMjIucHJvdG9idWZfdW5pdHRlc3QuRHVtbXlNZXNzYWdlSW52YWxpZEFzT3B0aW9uVHlwZVIObWVzc2FnZVR5cGVPcHQ6bAoMY29tcGxleF9vcHQxEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGKTc0gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUxUgtjb21wbGV4T3B0MTpsCgxjb21wbGV4X29wdDISHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY1Y/SAyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTJSC2NvbXBsZXhPcHQyOmwKDGNvbXBsZXhfb3B0MxIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjvi9IDIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlM1ILY29tcGxleE9wdDM6VwoHZmlsZW9wdBIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucxjP3bAHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIHZmlsZW9wdDpYCgZtc2dvcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYmOqwByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSBm1zZ29wdDpaCghmaWVsZG9wdBIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYnvSwByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSCGZpZWxkb3B0OlcKB2VudW1vcHQSHC5nb29nbGUucHJvdG9idWYuRW51bU9wdGlvbnMY0oKxByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSB2VudW1vcHQ6YgoKZW51bXZhbG9wdBIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zGMmfsQcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgplbnVtdmFsb3B0OmAKCnNlcnZpY2VvcHQSHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYue+xByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSCnNlcnZpY2VvcHQ6XQoJbWV0aG9kb3B0Eh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYiemyByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSCW1ldGhvZG9wdEJVqgIaVW5pdFRlc3QuSXNzdWVzLlRlc3RQcm90b3Pw6MEd6q3A5ST67IU7KghkEg5GaWxlQW5ub3RhdGlvbhoWEhROZXN0ZWRGaWxlQW5ub3RhdGlvbkqhUQoHEgUsAM8CAQr2EAoBDBIDLAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoy0wEgQXV0aG9yOiBiZW5qeUBnb29nbGUuY29tIChCZW5qeSBXZWluYmVyZ2VyKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogQSBwcm90byBmaWxlIHVzZWQgdG8gdGVzdCB0aGUgImN1c3RvbSBvcHRpb25zIiBmZWF0dXJlIG9mIGdvb2dsZS5wcm90b2J1Zi4KMtECIFRoaXMgZmlsZSBpcyBiYXNlZCBvbiB1bml0dGVzdF9jdXN0b21fb3B0aW9ucy5wcm90byBpbgogc3JjL2dvb2dsZS9wcm90b2J1ZiwgYnV0IGlzIG1vZGlmaWVkIGZvciBwcm90bzMuIEl0IGNvdWxkCiBwb3RlbnRpYWxseSBiZSBtb3ZlZCBpbnRvIHNyYy9nb29nbGUvcHJvdG9idWYsIGJ1dCBjdXJyZW50bHkgQyMKIGlzIHRoZSBvbmx5IGxhbmd1YWdlIHRoYXQgcmVhbGx5IG5lZWRzIGl0LCBhcyB3ZSBkb24ndCBzdXBwb3J0CiBwcm90bzIgc3ludGF4LiBJdCdzIGN1dCBkb3duIHNpZ25pZmljYW50bHkgYXMgcHJvdG8zIG9ubHkgc3VwcG9ydHMKIGV4dGVuc2lvbnMgZm9yIG9wdGlvbnMuCgoICgEIEgMvACAKNQoFCI6d2AMSAy8AIBonIEEgY3VzdG9tIGZpbGUgb3B0aW9uIChk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BDUKDwoHBBIEAAIBARIEzQIEFQoPCgcEEgQAAgECEgTNAhgZCg8KBwQSBAACAQMSBM0CGjQKEgoKBBIEAAIBA+agXxIEzQIbM2IGcHJvdG8zCooPChx1bml0dGVzdF9pbXBvcnRfcHVibGljLnByb3RvEh9wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yIiMKE1B1YmxpY0ltcG9ydE1lc3NhZ2USDAoBZRgBIAEoBVIBZUIkqgIhR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3MuUHJvdG8ySv0NCgYSBCAAKAEK9gwKAQwSAyAAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMiggQXV0aG9yOiBsaXVqaXNpQGdvb2dsZS5jb20gKFBoZXJsIExpdSkKCggKAQISAyIAKAoICgEIEgMkAD4KCQoCCCUSAyQAPgoKCgIEABIEJgAoAQoKCgMEAAESAyYIGwoLCgQEAAIAEgMnAhcKDAoFBAACAAQSAycCCgoMCgUEAAIABRIDJwsQCgwKBQQAAgABEgMnERIKDAoFBAACAAMSAycVFgrdFgoVdW5pdHRlc3RfaW1wb3J0LnByb3RvEh9wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yGhx1bml0dGVzdF9pbXBvcnRfcHVibGljLnByb3RvIh0KDUltcG9ydE1lc3NhZ2USDAoBZBgBIAEoBVIBZCo8CgpJbXBvcnRFbnVtEg4KCklNUE9SVF9GT08QBxIOCgpJTVBPUlRfQkFSEAgSDgoKSU1QT1JUX0JBWhAJKjEKEEltcG9ydEVudW1Gb3JNYXASCwoHVU5LTk9XThAAEgcKA0ZPTxABEgcKA0JBUhACQilIAfgBAaoCIUdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zLlByb3RvMkrHFAoGEgQkAEQBCpgOCgEMEgMkABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLJASBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3RvIGZpbGUgd2hpY2ggaXMgaW1wb3J0ZWQgYnkgdW5pdHRlc3QucHJvdG8gdG8gdGVzdCBpbXBvcnRpbmcuCgr1AQoBAhIDKgAoGuoBIFdlIGRvbid0IHB1dCB0aGlzIGluIGEgcGFja2FnZSB3aXRoaW4gcHJvdG8yIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUKIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgZGVwZW5kIG9uIGJlaW5nIGluIHRoZSBwcm90bzIgbmFtZXNwYWNlLgogSW4gdGVzdF91dGlsLmggd2UgZG8KICJ1c2luZyBuYW1lc3BhY2UgdW5pdHRlc3RfaW1wb3J0ID0gcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0Ii4KCggKAQgSAywAHAoJCgIICRIDLAAcCggKAQgSAy0AHwoJCgIIHxIDLQAfCggKAQgSAy8APgoJCgIIJRIDLwA+Ch8KAgMAEgMyAC0aFCBUZXN0IHB1YmxpYyBpbXBvcnQKCgkKAgoAEgMyBw0KCgoCBAASBDQANgEKCgoDBAABEgM0CBUKCwoEBAACABIDNQIXCgwKBQQAAgAEEgM1AgoKDAoFBAACAAUSAzULEAoMCgUEAAIAARIDNRESCgwKBQQAAgADEgM1FRYKCgoCBQASBDgAPAEKCgoDBQABEgM4BQ8KCwoEBQACABIDOQIRCgwKBQUAAgABEgM5AgwKDAoFBQACAAISAzkPEAoLCgQFAAIBEgM6AhEKDAoFBQACAQESAzoCDAoMCgUFAAIBAhIDOg8QCgsKBAUAAgISAzsCEQoMCgUFAAICARIDOwIMCgwKBQUAAgICEgM7DxAKSAoCBQESBEAARAEaPCBUbyB1c2UgYW4gZW51bSBpbiBhIG1hcCwgaXQgbXVzdCBoYXMgdGhlIGZpcnN0IHZhbHVlIGFzIDAuCgoKCgMFAQESA0AFFQoLCgQFAQIAEgNBAg4KDAoFBQECAAESA0ECCQoMCgUFAQIAAhIDQQwNCgsKBAUBAgESA0ICCgoMCgUFAQIBARIDQgIFCgwKBQUBAgECEgNCCAkKCwoEBQECAhIDQwIKCgwKBQUBAgIBEgNDAgUKDAoFBQECAgISA0MICVAACoHTBQoOdW5pdHRlc3QucHJvdG8SGHByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMhoVdW5pdHRlc3RfaW1wb3J0LnByb3RvIpEkCgxUZXN0QWxsVHlwZXMSJQoOb3B0aW9uYWxfaW50MzIYASABKAVSDW9wdGlvbmFsSW50MzISJQoOb3B0aW9uYWxfaW50NjQYAiABKANSDW9wdGlvbmFsSW50NjQSJwoPb3B0aW9uYWxfdWludDMyGAMgASgNUg5vcHRpb25hbFVpbnQzMhInCg9vcHRpb25hbF91aW50NjQYBCABKARSDm9wdGlvbmFsVWludDY0EicKD29wdGlvbmFsX3NpbnQzMhgFIAEoEVIOb3B0aW9uYWxTaW50MzISJwoPb3B0aW9uYWxfc2ludDY0GAYgASgSUg5vcHRpb25hbFNpbnQ2NBIpChBvcHRpb25hbF9maXhlZDMyGAcgASgHUg9vcHRpb25hbEZpeGVkMzISKQoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBlIPb3B0aW9uYWxGaXhlZDY0EisKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPUhBvcHRpb25hbFNmaXhlZDMyEisKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQUhBvcHRpb25hbFNmaXhlZDY0EiUKDm9wdGlvbmFsX2Zsb2F0GAsgASgCUg1vcHRpb25hbEZsb2F0EicKD29wdGlvbmFsX2RvdWJsZRgMIAEoAVIOb3B0aW9uYWxEb3VibGUSIwoNb3B0aW9uYWxfYm9vbBgNIAEoCFIMb3B0aW9uYWxCb29sEicKD29wdGlvbmFsX3N0cmluZxgOIAEoCVIOb3B0aW9uYWxTdHJpbmcSJQoOb3B0aW9uYWxfYnl0ZXMYDyABKAxSDW9wdGlvbmFsQnl0ZXMSWgoNb3B0aW9uYWxncm91cBgQIAEoCjI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBJsChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlEmIKGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIWb3B0aW9uYWxGb3JlaWduTWVzc2FnZRJmChdvcHRpb25hbF9pbXBvcnRfbWVzc2FnZRgUIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0TWVzc2FnZVIVb3B0aW9uYWxJbXBvcnRNZXNzYWdlEmMKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhJvcHRpb25hbE5lc3RlZEVudW0SWQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtEl0KFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtUhJvcHRpb25hbEltcG9ydEVudW0SNgoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAlITb3B0aW9uYWxTdHJpbmdQaWVjZRInCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIAVIMb3B0aW9uYWxDb3JkEnkKHm9wdGlvbmFsX3B1YmxpY19pbXBvcnRfbWVzc2FnZRgaIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuUHVibGljSW1wb3J0TWVzc2FnZVIbb3B0aW9uYWxQdWJsaWNJbXBvcnRNZXNzYWdlEmwKFW9wdGlvbmFsX2xhenlfbWVzc2FnZRgbIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSE29wdGlvbmFsTGF6eU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSWgoNcmVwZWF0ZWRncm91cBguIAMoCjI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuUmVwZWF0ZWRHcm91cFINcmVwZWF0ZWRncm91cBJsChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEmIKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJmChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0TWVzc2FnZVIVcmVwZWF0ZWRJbXBvcnRNZXNzYWdlEmMKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhJyZXBlYXRlZE5lc3RlZEVudW0SWQoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhNyZXBlYXRlZEZvcmVpZ25FbnVtEl0KFHJlcGVhdGVkX2ltcG9ydF9lbnVtGDUgAygOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtUhJyZXBlYXRlZEltcG9ydEVudW0SNgoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAlITcmVwZWF0ZWRTdHJpbmdQaWVjZRInCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIAVIMcmVwZWF0ZWRDb3JkEmwKFXJlcGVhdGVkX2xhenlfbWVzc2FnZRg5IAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSE3JlcGVhdGVkTGF6eU1lc3NhZ2USJwoNZGVmYXVsdF9pbnQzMhg9IAEoBToCNDFSDGRlZmF1bHRJbnQzMhInCg1kZWZhdWx0X2ludDY0GD4gASgDOgI0MlIMZGVmYXVsdEludDY0EikKDmRlZmF1bHRfdWludDMyGD8gASgNOgI0M1INZGVmYXVsdFVpbnQzMhIpCg5kZWZhdWx0X3VpbnQ2NBhAIAEoBDoCNDRSDWRlZmF1bHRVaW50NjQSKgoOZGVmYXVsdF9zaW50MzIYQSABKBE6Ay00NVINZGVmYXVsdFNpbnQzMhIpCg5kZWZhdWx0X3NpbnQ2NBhCIAEoEjoCNDZSDWRlZmF1bHRTaW50NjQSKwoPZGVmYXVsdF9maXhlZDMyGEMgASgHOgI0N1IOZGVmYXVsdEZpeGVkMzISKwoPZGVmYXVsdF9maXhlZDY0GEQgASgGOgI0OFIOZGVmYXVsdEZpeGVkNjQSLQoQZGVmYXVsdF9zZml4ZWQzMhhFIAEoDzoCNDlSD2RlZmF1bHRTZml4ZWQzMhIuChBkZWZhdWx0X3NmaXhlZDY0GEYgASgQOgMtNTBSD2RlZmF1bHRTZml4ZWQ2NBIpCg1kZWZhdWx0X2Zsb2F0GEcgASgCOgQ1MS41UgxkZWZhdWx0RmxvYXQSLAoOZGVmYXVsdF9kb3VibGUYSCABKAE6BTUyMDAwUg1kZWZhdWx0RG91YmxlEicKDGRlZmF1bHRfYm9vbBhJIAEoCDoEdHJ1ZVILZGVmYXVsdEJvb2wSLAoOZGVmYXVsdF9zdHJpbmcYSiABKAk6BWhlbGxvUg1kZWZhdWx0U3RyaW5nEioKDWRlZmF1bHRfYnl0ZXMYSyABKAw6BXdvcmxkUgxkZWZhdWx0Qnl0ZXMSZgoTZGVmYXVsdF9uZXN0ZWRfZW51bRhRIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bToDQkFSUhFkZWZhdWx0TmVzdGVkRW51bRJkChRkZWZhdWx0X2ZvcmVpZ25fZW51bRhSIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVJSEmRlZmF1bHRGb3JlaWduRW51bRJnChNkZWZhdWx0X2ltcG9ydF9lbnVtGFMgASgOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtOgpJTVBPUlRfQkFSUhFkZWZhdWx0SW1wb3J0RW51bRI5ChRkZWZhdWx0X3N0cmluZ19waWVjZRhUIAEoCToDYWJjQgIIAlISZGVmYXVsdFN0cmluZ1BpZWNlEioKDGRlZmF1bHRfY29yZBhVIAEoCToDMTIzQgIIAVILZGVmYXVsdENvcmQSIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEmgKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxofCg1OZXN0ZWRNZXNzYWdlEg4KAmJiGAEgASgFUgJiYhodCg1PcHRpb25hbEdyb3VwEgwKAWEYESABKAVSAWEaHQoNUmVwZWF0ZWRHcm91cBIMCgFhGC8gASgFUgFhIjkKCk5lc3RlZEVudW0SBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCDQoLb25lb2ZfZmllbGQi7wEKEk5lc3RlZFRlc3RBbGxUeXBlcxJCCgVjaGlsZBgBIAEoCzIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5OZXN0ZWRUZXN0QWxsVHlwZXNSBWNoaWxkEkAKB3BheWxvYWQYAiABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgdwYXlsb2FkElMKDnJlcGVhdGVkX2NoaWxkGAMgAygLMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLk5lc3RlZFRlc3RBbGxUeXBlc1INcmVwZWF0ZWRDaGlsZCKWAQoUVGVzdERlcHJlY2F0ZWRGaWVsZHMSLQoQZGVwcmVjYXRlZF9pbnQzMhgBIAEoBUICGAFSD2RlcHJlY2F0ZWRJbnQzMhI/ChlkZXByZWNhdGVkX2ludDMyX2luX29uZW9mGAIgASgFQgIYAUgAUhZkZXByZWNhdGVkSW50MzJJbk9uZW9mQg4KDG9uZW9mX2ZpZWxkcyIbChVUZXN0RGVwcmVjYXRlZE1lc3NhZ2U6AhgBIiwKDkZvcmVpZ25NZXNzYWdlEgwKAWMYASABKAVSAWMSDAoBZBgCIAEoBVIBZCIwChJUZXN0UmVzZXJ2ZWRGaWVsZHNKBAgCEANKBAgPEBBKBAgJEAxSA2JhclIDYmF6Ih0KEVRlc3RBbGxFeHRlbnNpb25zKggIARCAgICAAiInChdPcHRpb25hbEdyb3VwX2V4dGVuc2lvbhIMCgFhGBEgASgFUgFhIicKF1JlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uEgwKAWEYLyABKAVSAWEi3gEKCVRlc3RHcm91cBJXCg1vcHRpb25hbGdyb3VwGBAgASgKMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RHcm91cC5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwElkKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVITb3B0aW9uYWxGb3JlaWduRW51bRodCg1PcHRpb25hbEdyb3VwEgwKAWEYESABKAVSAWEiHgoSVGVzdEdyb3VwRXh0ZW5zaW9uKggIARCAgICAAiK4BAoTVGVzdE5lc3RlZEV4dGVuc2lvbhonChdPcHRpb25hbEdyb3VwX2V4dGVuc2lvbhIMCgFhGBEgASgFUgFhMkYKBHRlc3QSKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6gcgASgJOgR0ZXN0UgR0ZXN0MmQKF25lc3RlZF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOsHIAEoCVIVbmVzdGVkU3RyaW5nRXh0ZW5zaW9uMqwBChdvcHRpb25hbGdyb3VwX2V4dGVuc2lvbhIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0R3JvdXBFeHRlbnNpb24YECABKAoyRS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE5lc3RlZEV4dGVuc2lvbi5PcHRpb25hbEdyb3VwX2V4dGVuc2lvblIWb3B0aW9uYWxncm91cEV4dGVuc2lvbjKaAQofb3B0aW9uYWxfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0R3JvdXBFeHRlbnNpb24YFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SHG9wdGlvbmFsRm9yZWlnbkVudW1FeHRlbnNpb24ikAgKDFRlc3RSZXF1aXJlZBIMCgFhGAEgAigFUgFhEhYKBmR1bW15MhgCIAEoBVIGZHVtbXkyEgwKAWIYAyACKAVSAWISFgoGZHVtbXk0GAQgASgFUgZkdW1teTQSFgoGZHVtbXk1GAUgASgFUgZkdW1teTUSFgoGZHVtbXk2GAYgASgFUgZkdW1teTYSFgoGZHVtbXk3GAcgASgFUgZkdW1teTcSFgoGZHVtbXk4GAggASgFUgZkdW1teTgSFgoGZHVtbXk5GAkgASgFUgZkdW1teTkSGAoHZHVtbXkxMBgKIAEoBVIHZHVtbXkxMBIYCgdkdW1teTExGAsgASgFUgdkdW1teTExEhgKB2R1bW15MTIYDCABKAVSB2R1bW15MTISGAoHZHVtbXkxMxgNIAEoBVIHZHVtbXkxMxIYCgdkdW1teTE0GA4gASgFUgdkdW1teTE0EhgKB2R1bW15MTUYDyABKAVSB2R1bW15MTUSGAoHZHVtbXkxNhgQIAEoBVIHZHVtbXkxNhIYCgdkdW1teTE3GBEgASgFUgdkdW1teTE3EhgKB2R1bW15MTgYEiABKAVSB2R1bW15MTgSGAoHZHVtbXkxORgTIAEoBVIHZHVtbXkxORIYCgdkdW1teTIwGBQgASgFUgdkdW1teTIwEhgKB2R1bW15MjEYFSABKAVSB2R1bW15MjESGAoHZHVtbXkyMhgWIAEoBVIHZHVtbXkyMhIYCgdkdW1teTIzGBcgASgFUgdkdW1teTIzEhgKB2R1bW15MjQYGCABKAVSB2R1bW15MjQSGAoHZHVtbXkyNRgZIAEoBVIHZHVtbXkyNRIYCgdkdW1teTI2GBogASgFUgdkdW1teTI2EhgKB2R1bW15MjcYGyABKAVSB2R1bW15MjcSGAoHZHVtbXkyOBgcIAEoBVIHZHVtbXkyOBIYCgdkdW1teTI5GB0gASgFUgdkdW1teTI5EhgKB2R1bW15MzAYHiABKAVSB2R1bW15MzASGAoHZHVtbXkzMRgfIAEoBVIHZHVtbXkzMRIYCgdkdW1teTMyGCAgASgFUgdkdW1teTMyEgwKAWMYISACKAVSAWMybAoGc2luZ2xlEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOgHIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSBnNpbmdsZTJqCgVtdWx0aRIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxjpByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUgVtdWx0aSLRAQoTVGVzdFJlcXVpcmVkRm9yZWlnbhJRChBvcHRpb25hbF9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPb3B0aW9uYWxNZXNzYWdlElEKEHJlcGVhdGVkX21lc3NhZ2UYAiADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9yZXBlYXRlZE1lc3NhZ2USFAoFZHVtbXkYAyABKAVSBWR1bW15Io4CChNUZXN0UmVxdWlyZWRNZXNzYWdlElEKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9vcHRpb25hbE1lc3NhZ2USUQoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD3JlcGVhdGVkTWVzc2FnZRJRChByZXF1aXJlZF9tZXNzYWdlGAMgAigLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPcmVxdWlyZWRNZXNzYWdlInAKEVRlc3RGb3JlaWduTmVzdGVkElsKDmZvcmVpZ25fbmVzdGVkGAEgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUg1mb3JlaWduTmVzdGVkIhIKEFRlc3RFbXB0eU1lc3NhZ2UiKgoeVGVzdEVtcHR5TWVzc2FnZVdpdGhFeHRlbnNpb25zKggIARCAgICAAiI3ChtUZXN0TXVsdGlwbGVFeHRlbnNpb25SYW5nZXMqBAgqECsqBgivIBCUISoKCICABBCAgICAAiI7ChhUZXN0UmVhbGx5TGFyZ2VUYWdOdW1iZXISDAoBYRgBIAEoBVIBYRIRCgJiYhj///9/IAEoBVICYmIiYgoUVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USPAoBYRgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVjdXJzaXZlTWVzc2FnZVIBYRIMCgFpGAIgASgFUgFpIq8DChRUZXN0TXV0dWFsUmVjdXJzaW9uQRI+CgJiYhgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQlICYmISUwoIc3ViZ3JvdXAYAiABKAoyNy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkEuU3ViR3JvdXBSCHN1Ymdyb3VwGkoKClN1Yk1lc3NhZ2USPAoBYhgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQlIBYhq1AQoIU3ViR3JvdXASWgoLc3ViX21lc3NhZ2UYAyABKAsyOS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkEuU3ViTWVzc2FnZVIKc3ViTWVzc2FnZRJNCg9ub3RfaW5fdGhpc19zY2MYBCABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgxub3RJblRoaXNTY2MiewoUVGVzdE11dHVhbFJlY3Vyc2lvbkISPAoBYRgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQVIBYRIlCg5vcHRpb25hbF9pbnQzMhgCIAEoBVINb3B0aW9uYWxJbnQzMiLyAQoRVGVzdElzSW5pdGlhbGl6ZWQSVwoLc3ViX21lc3NhZ2UYASABKAsyNi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdElzSW5pdGlhbGl6ZWQuU3ViTWVzc2FnZVIKc3ViTWVzc2FnZRqDAQoKU3ViTWVzc2FnZRJbCghzdWJncm91cBgBIAEoCjI/LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SXNJbml0aWFsaXplZC5TdWJNZXNzYWdlLlN1Ykdyb3VwUghzdWJncm91cBoYCghTdWJHcm91cBIMCgFpGAIgAigFUgFpItQBChJUZXN0RHVwRmllbGROdW1iZXISDAoBYRgBIAEoBVIBYRJCCgNmb28YAiABKAoyMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdER1cEZpZWxkTnVtYmVyLkZvb1IDZm9vEkIKA2JhchgDIAEoCjIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHVwRmllbGROdW1iZXIuQmFyUgNiYXIaEwoDRm9vEgwKAWEYASABKAVSAWEaEwoDQmFyEgwKAWEYASABKAVSAWEiXwoQVGVzdEVhZ2VyTWVzc2FnZRJLCgtzdWJfbWVzc2FnZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNCAigAUgpzdWJNZXNzYWdlIl4KD1Rlc3RMYXp5TWVzc2FnZRJLCgtzdWJfbWVzc2FnZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNCAigBUgpzdWJNZXNzYWdlIuYCChhUZXN0TmVzdGVkTWVzc2FnZUhhc0JpdHMSeAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYASABKAsyQC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE5lc3RlZE1lc3NhZ2VIYXNCaXRzLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRrPAQoNTmVzdGVkTWVzc2FnZRJAChxuZXN0ZWRtZXNzYWdlX3JlcGVhdGVkX2ludDMyGAEgAygFUhpuZXN0ZWRtZXNzYWdlUmVwZWF0ZWRJbnQzMhJ8CiVuZXN0ZWRtZXNzYWdlX3JlcGVhdGVkX2ZvcmVpZ25tZXNzYWdlGAIgAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUiNuZXN0ZWRtZXNzYWdlUmVwZWF0ZWRGb3JlaWdubWVzc2FnZSLXBQoXVGVzdENhbWVsQ2FzZUZpZWxkTmFtZXMSJgoOUHJpbWl0aXZlRmllbGQYASABKAVSDlByaW1pdGl2ZUZpZWxkEiAKC1N0cmluZ0ZpZWxkGAIgASgJUgtTdHJpbmdGaWVsZBJDCglFbnVtRmllbGQYAyABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SCUVudW1GaWVsZBJMCgxNZXNzYWdlRmllbGQYBCABKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSDE1lc3NhZ2VGaWVsZBIuChBTdHJpbmdQaWVjZUZpZWxkGAUgASgJQgIIAlIQU3RyaW5nUGllY2VGaWVsZBIgCglDb3JkRmllbGQYBiABKAlCAggBUglDb3JkRmllbGQSNgoWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBVIWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBIwChNSZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJUhNSZXBlYXRlZFN0cmluZ0ZpZWxkElMKEVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhFSZXBlYXRlZEVudW1GaWVsZBJcChRSZXBlYXRlZE1lc3NhZ2VGaWVsZBgKIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIUUmVwZWF0ZWRNZXNzYWdlRmllbGQSPgoYUmVwZWF0ZWRTdHJpbmdQaWVjZUZpZWxkGAsgAygJQgIIAlIYUmVwZWF0ZWRTdHJpbmdQaWVjZUZpZWxkEjAKEVJlcGVhdGVkQ29yZEZpZWxkGAwgAygJQgIIAVIRUmVwZWF0ZWRDb3JkRmllbGQilQIKElRlc3RGaWVsZE9yZGVyaW5ncxIbCglteV9zdHJpbmcYCyABKAlSCG15U3RyaW5nEhUKBm15X2ludBgBIAEoA1IFbXlJbnQSGQoIbXlfZmxvYXQYZSABKAJSB215RmxvYXQScwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYyAEgASgLMjoucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2UaLwoNTmVzdGVkTWVzc2FnZRIOCgJvbxgCIAEoA1ICb28SDgoCYmIYASABKAVSAmJiKgQIAhALKgQIDBBlIsgBChdUZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMRIbCglteV9zdHJpbmcYASABKAlSCG15U3RyaW5nMo8BChN0ZXN0X2V4dF9vcmRlcmluZ3MxEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgNIAEoCzIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMVIRdGVzdEV4dE9yZGVyaW5nczEiqwMKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MyEhsKCW15X3N0cmluZxgBIAEoCVIIbXlTdHJpbmca4AEKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MzEhsKCW15X3N0cmluZxgBIAEoCVIIbXlTdHJpbmcypwEKE3Rlc3RfZXh0X29yZGVyaW5nczMSLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGA4gASgLMkkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MyLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MzUhF0ZXN0RXh0T3JkZXJpbmdzMzKPAQoTdGVzdF9leHRfb3JkZXJpbmdzMhIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYDCABKAsyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczJSEXRlc3RFeHRPcmRlcmluZ3MyIq8KChhUZXN0RXh0cmVtZURlZmF1bHRWYWx1ZXMSTQoNZXNjYXBlZF9ieXRlcxgBIAEoDDooXDAwMFwwMDFcMDA3XDAxMFwwMTRcblxyXHRcMDEzXFxcJ1wiXDM3NlIMZXNjYXBlZEJ5dGVzEi0KDGxhcmdlX3VpbnQzMhgCIAEoDToKNDI5NDk2NzI5NVILbGFyZ2VVaW50MzISNwoMbGFyZ2VfdWludDY0GAMgASgEOhQxODQ0Njc0NDA3MzcwOTU1MTYxNVILbGFyZ2VVaW50NjQSLAoLc21hbGxfaW50MzIYBCABKAU6Cy0yMTQ3NDgzNjQ3UgpzbWFsbEludDMyEjUKC3NtYWxsX2ludDY0GAUgASgDOhQtOTIyMzM3MjAzNjg1NDc3NTgwN1IKc21hbGxJbnQ2NBI5ChJyZWFsbHlfc21hbGxfaW50MzIYFSABKAU6Cy0yMTQ3NDgzNjQ4UhByZWFsbHlTbWFsbEludDMyEkIKEnJlYWxseV9zbWFsbF9pbnQ2NBgWIAEoAzoULTkyMjMzNzIwMzY4NTQ3NzU4MDhSEHJlYWxseVNtYWxsSW50NjQSJAoLdXRmOF9zdHJpbmcYBiABKAk6A+GItFIKdXRmOFN0cmluZxIgCgp6ZXJvX2Zsb2F0GAcgASgCOgEwUgl6ZXJvRmxvYXQSHgoJb25lX2Zsb2F0GAggASgCOgExUghvbmVGbG9hdBIkCgtzbWFsbF9mbG9hdBgJIAEoAjoDMS41UgpzbWFsbEZsb2F0EjAKEm5lZ2F0aXZlX29uZV9mbG9hdBgKIAEoAjoCLTFSEG5lZ2F0aXZlT25lRmxvYXQSKwoObmVnYXRpdmVfZmxvYXQYCyABKAI6BC0xLjVSDW5lZ2F0aXZlRmxvYXQSJgoLbGFyZ2VfZmxvYXQYDCABKAI6BTJlKzA4UgpsYXJnZUZsb2F0EjgKFHNtYWxsX25lZ2F0aXZlX2Zsb2F0GA0gASgCOgYtOGUtMjhSEnNtYWxsTmVnYXRpdmVGbG9hdBIiCgppbmZfZG91YmxlGA4gASgBOgNpbmZSCWluZkRvdWJsZRIqCg5uZWdfaW5mX2RvdWJsZRgPIAEoAToELWluZlIMbmVnSW5mRG91YmxlEiIKCm5hbl9kb3VibGUYECABKAE6A25hblIJbmFuRG91YmxlEiAKCWluZl9mbG9hdBgRIAEoAjoDaW5mUghpbmZGbG9hdBIoCg1uZWdfaW5mX2Zsb2F0GBIgASgCOgQtaW5mUgtuZWdJbmZGbG9hdBIgCgluYW5fZmxvYXQYEyABKAI6A25hblIIbmFuRmxvYXQSOAoMY3BwX3RyaWdyYXBoGBQgASgJOhU/ID8gPz8gPz8gPz8/ID8/LyA/Py1SC2NwcFRyaWdyYXBoEjAKEHN0cmluZ193aXRoX3plcm8YFyABKAk6BmhlbABsb1IOc3RyaW5nV2l0aFplcm8SMQoPYnl0ZXNfd2l0aF96ZXJvGBggASgMOgl3b3JcMDAwbGRSDWJ5dGVzV2l0aFplcm8SPQoWc3RyaW5nX3BpZWNlX3dpdGhfemVybxgZIAEoCToEYWIAY0ICCAJSE3N0cmluZ1BpZWNlV2l0aFplcm8SLgoOY29yZF93aXRoX3plcm8YGiABKAk6BDEyADNCAggBUgxjb3JkV2l0aFplcm8SOQoScmVwbGFjZW1lbnRfc3RyaW5nGBsgASgJOgoke3Vua25vd259UhFyZXBsYWNlbWVudFN0cmluZyJeChFTcGFyc2VFbnVtTWVzc2FnZRJJCgtzcGFyc2VfZW51bRgBIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0U3BhcnNlRW51bVIKc3BhcnNlRW51bSIfCglPbmVTdHJpbmcSEgoEZGF0YRgBIAEoCVIEZGF0YSIgCgpNb3JlU3RyaW5nEhIKBGRhdGEYASADKAlSBGRhdGEiHgoIT25lQnl0ZXMSEgoEZGF0YRgBIAEoDFIEZGF0YSIfCglNb3JlQnl0ZXMSEgoEZGF0YRgBIAMoDFIEZGF0YSIiCgxJbnQzMk1lc3NhZ2USEgoEZGF0YRgBIAEoBVIEZGF0YSIjCg1VaW50MzJNZXNzYWdlEhIKBGRhdGEYASABKA1SBGRhdGEiIgoMSW50NjRNZXNzYWdlEhIKBGRhdGEYASABKANSBGRhdGEiIwoNVWludDY0TWVzc2FnZRISCgRkYXRhGAEgASgEUgRkYXRhIiEKC0Jvb2xNZXNzYWdlEhIKBGRhdGEYASABKAhSBGRhdGEijQIKCVRlc3RPbmVvZhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxJJCgtmb29fbWVzc2FnZRgDIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNIAFIKZm9vTWVzc2FnZRJKCghmb29ncm91cBgEIAEoCjIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YuRm9vR3JvdXBIAFIIZm9vZ3JvdXAaJgoIRm9vR3JvdXASDAoBYRgFIAEoBVIBYRIMCgFiGAYgASgJUgFiQgUKA2ZvbyKkAgocVGVzdE9uZW9mQmFja3dhcmRzQ29tcGF0aWJsZRIXCgdmb29faW50GAEgASgFUgZmb29JbnQSHQoKZm9vX3N0cmluZxgCIAEoCVIJZm9vU3RyaW5nEkcKC2Zvb19tZXNzYWdlGAMgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IKZm9vTWVzc2FnZRJbCghmb29ncm91cBgEIAEoCjI/LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2ZCYWNrd2FyZHNDb21wYXRpYmxlLkZvb0dyb3VwUghmb29ncm91cBomCghGb29Hcm91cBIMCgFhGAUgASgFUgFhEgwKAWIYBiABKAlSAWIikAgKClRlc3RPbmVvZjISGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSHwoIZm9vX2NvcmQYAyABKAlCAggBSABSB2Zvb0NvcmQSLgoQZm9vX3N0cmluZ19waWVjZRgEIAEoCUICCAJIAFIOZm9vU3RyaW5nUGllY2USHQoJZm9vX2J5dGVzGAUgASgMSABSCGZvb0J5dGVzEkwKCGZvb19lbnVtGAYgASgOMi8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkRW51bUgAUgdmb29FbnVtElUKC2Zvb19tZXNzYWdlGAcgASgLMjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkTWVzc2FnZUgAUgpmb29NZXNzYWdlEksKCGZvb2dyb3VwGAggASgKMi0ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuRm9vR3JvdXBIAFIIZm9vZ3JvdXASYgoQZm9vX2xhenlfbWVzc2FnZRgLIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YyLk5lc3RlZE1lc3NhZ2VCAigBSABSDmZvb0xhenlNZXNzYWdlEhwKB2Jhcl9pbnQYDCABKAU6ATVIAVIGYmFySW50EicKCmJhcl9zdHJpbmcYDSABKAk6BlNUUklOR0gBUgliYXJTdHJpbmcSJQoIYmFyX2NvcmQYDiABKAk6BENPUkRCAggBSAFSB2JhckNvcmQSNgoQYmFyX3N0cmluZ19waWVjZRgPIAEoCToGU1BJRUNFQgIIAkgBUg5iYXJTdHJpbmdQaWVjZRIkCgliYXJfYnl0ZXMYECABKAw6BUJZVEVTSAFSCGJhckJ5dGVzElEKCGJhcl9lbnVtGBEgASgOMi8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkRW51bToDQkFSSAFSB2JhckVudW0SFwoHYmF6X2ludBgSIAEoBVIGYmF6SW50EiIKCmJhel9zdHJpbmcYEyABKAk6A0JBWlIJYmF6U3RyaW5nGiYKCEZvb0dyb3VwEgwKAWEYCSABKAVSAWESDAoBYhgKIAEoCVIBYhpFCg1OZXN0ZWRNZXNzYWdlEhcKB3F1eF9pbnQYASABKANSBnF1eEludBIbCgljb3JnZV9pbnQYAiADKAVSCGNvcmdlSW50IicKCk5lc3RlZEVudW0SBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEANCBQoDZm9vQgUKA2JhciLuAQoRVGVzdFJlcXVpcmVkT25lb2YSGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSXAoLZm9vX21lc3NhZ2UYAyABKAsyOS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkT25lb2YuTmVzdGVkTWVzc2FnZUgAUgpmb29NZXNzYWdlGjgKDU5lc3RlZE1lc3NhZ2USJwoPcmVxdWlyZWRfZG91YmxlGAEgAigBUg5yZXF1aXJlZERvdWJsZUIFCgNmb28igAIKD1Rlc3RSZXF1aXJlZE1hcBJECgNmb28YASADKAsyMi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkTWFwLkZvb0VudHJ5UgNmb28abwoIRm9vRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSTQoFdmFsdWUYAiABKAsyNy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkTWFwLk5lc3RlZE1lc3NhZ2VSBXZhbHVlOgI4ARo2Cg1OZXN0ZWRNZXNzYWdlEiUKDnJlcXVpcmVkX2ludDMyGAEgAigFUg1yZXF1aXJlZEludDMyIvQECg9UZXN0UGFja2VkVHlwZXMSJQoMcGFja2VkX2ludDMyGFogAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GFsgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GF0gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYXiADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhfIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYZiADKAhCAhABUgpwYWNrZWRCb29sEkoKC3BhY2tlZF9lbnVtGGcgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtQgIQAVIKcGFja2VkRW51bSKuBQoRVGVzdFVucGFja2VkVHlwZXMSKQoOdW5wYWNrZWRfaW50MzIYWiADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFsgAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYXCADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXSADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXiADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXyADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYSADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhkIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGUgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhmIAMoCEICEABSDHVucGFja2VkQm9vbBJOCg11bnBhY2tlZF9lbnVtGGcgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtQgIQAFIMdW5wYWNrZWRFbnVtIiAKFFRlc3RQYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiIiChZUZXN0VW5wYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiLIBQoVVGVzdER5bmFtaWNFeHRlbnNpb25zEioKEHNjYWxhcl9leHRlbnNpb24Y0A8gASgHUg9zY2FsYXJFeHRlbnNpb24STQoOZW51bV9leHRlbnNpb24Y0Q8gASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUg1lbnVtRXh0ZW5zaW9uEnYKFmR5bmFtaWNfZW51bV9leHRlbnNpb24Y0g8gASgOMj8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljRW51bVR5cGVSFGR5bmFtaWNFbnVtRXh0ZW5zaW9uElYKEW1lc3NhZ2VfZXh0ZW5zaW9uGNMPIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIQbWVzc2FnZUV4dGVuc2lvbhJ/ChlkeW5hbWljX21lc3NhZ2VfZXh0ZW5zaW9uGNQPIAEoCzJCLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHluYW1pY0V4dGVuc2lvbnMuRHluYW1pY01lc3NhZ2VUeXBlUhdkeW5hbWljTWVzc2FnZUV4dGVuc2lvbhIuChJyZXBlYXRlZF9leHRlbnNpb24Y1Q8gAygJUhFyZXBlYXRlZEV4dGVuc2lvbhIuChBwYWNrZWRfZXh0ZW5zaW9uGNYPIAMoEUICEAFSD3BhY2tlZEV4dGVuc2lvbho6ChJEeW5hbWljTWVzc2FnZVR5cGUSJAoNZHluYW1pY19maWVsZBi0ECABKAVSDGR5bmFtaWNGaWVsZCJHCg9EeW5hbWljRW51bVR5cGUSEAoLRFlOQU1JQ19GT08QmBESEAoLRFlOQU1JQ19CQVIQmRESEAoLRFlOQU1JQ19CQVoQmhEinwIKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEikKEHJlcGVhdGVkX2ZpeGVkMzIYDCADKAdSD3JlcGVhdGVkRml4ZWQzMhIlCg5yZXBlYXRlZF9pbnQzMhgNIAMoBVINcmVwZWF0ZWRJbnQzMhIqChByZXBlYXRlZF9maXhlZDY0GP4PIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EiYKDnJlcGVhdGVkX2ludDY0GP8PIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg5yZXBlYXRlZF9mbG9hdBj+/w8gAygCUg1yZXBlYXRlZEZsb2F0EikKD3JlcGVhdGVkX3VpbnQ2NBj//w8gAygEUg5yZXBlYXRlZFVpbnQ2NCLjDAoQVGVzdFBhcnNpbmdNZXJnZRJUChJyZXF1aXJlZF9hbGxfdHlwZXMYASACKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhByZXF1aXJlZEFsbFR5cGVzElQKEm9wdGlvbmFsX2FsbF90eXBlcxgCIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSEG9wdGlvbmFsQWxsVHlwZXMSVAoScmVwZWF0ZWRfYWxsX3R5cGVzGAMgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IQcmVwZWF0ZWRBbGxUeXBlcxJeCg1vcHRpb25hbGdyb3VwGAogASgKMjgucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBJeCg1yZXBlYXRlZGdyb3VwGBQgAygKMjgucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRHcm91cFINcmVwZWF0ZWRncm91cBqtBQoXUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3ISPgoGZmllbGQxGAEgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQxEj4KBmZpZWxkMhgCIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMhI+CgZmaWVsZDMYAyADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDMSYQoGZ3JvdXAxGAogAygKMkkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAxUgZncm91cDESYQoGZ3JvdXAyGBQgAygKMkkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAyUgZncm91cDISOwoEZXh0MRjoByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgRleHQxEjsKBGV4dDIY6QcgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IEZXh0MhpICgZHcm91cDESPgoGZmllbGQxGAsgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQxGkgKBkdyb3VwMhI+CgZmaWVsZDEYFSABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDEacAoNT3B0aW9uYWxHcm91cBJfChhvcHRpb25hbF9ncm91cF9hbGxfdHlwZXMYCyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhVvcHRpb25hbEdyb3VwQWxsVHlwZXMacAoNUmVwZWF0ZWRHcm91cBJfChhyZXBlYXRlZF9ncm91cF9hbGxfdHlwZXMYFSABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhVyZXBlYXRlZEdyb3VwQWxsVHlwZXMqCQjoBxCAgICAAjJ2CgxvcHRpb25hbF9leHQSKi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZRjoByABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgtvcHRpb25hbEV4dDJ2CgxyZXBlYXRlZF9leHQSKi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZRjpByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgtyZXBlYXRlZEV4dCJHChtUZXN0Q29tbWVudEluamVjdGlvbk1lc3NhZ2USKAoBYRgBIAEoCToaKi8gPC0gTmVpdGhlciBzaG91bGQgdGhpcy5SAWEiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSISChBGb29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3NhZ2UiDAoKQmFyUmVxdWVzdCINCgtCYXJSZXNwb25zZSLOAQoMVGVzdEpzb25OYW1lEh8KC2ZpZWxkX25hbWUxGAEgASgFUgpmaWVsZE5hbWUxEh4KCmZpZWxkTmFtZTIYAiABKAVSCmZpZWxkTmFtZTISHgoKRmllbGROYW1lMxgDIAEoBVIKRmllbGROYW1lMxIgCgxfZmllbGRfbmFtZTQYBCABKAVSCkZpZWxkTmFtZTQSHwoLRklFTERfTkFNRTUYBSABKAVSCkZJRUxETkFNRTUSGgoLZmllbGRfbmFtZTYYBiABKAVSBUB0eXBlIv8HChRUZXN0SHVnZUZpZWxkTnVtYmVycxIpCg5vcHRpb25hbF9pbnQzMhjw+P//ASABKAVSDW9wdGlvbmFsSW50MzISHQoIZml4ZWRfMzIY8fj//wEgASgFUgdmaXhlZDMyEi0KDnJlcGVhdGVkX2ludDMyGPL4//8BIAMoBUICEABSDXJlcGVhdGVkSW50MzISKQoMcGFja2VkX2ludDMyGPP4//8BIAMoBUICEAFSC3BhY2tlZEludDMyEk4KDW9wdGlvbmFsX2VudW0Y9Pj//wEgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUgxvcHRpb25hbEVudW0SKwoPb3B0aW9uYWxfc3RyaW5nGPX4//8BIAEoCVIOb3B0aW9uYWxTdHJpbmcSKQoOb3B0aW9uYWxfYnl0ZXMY9vj//wEgASgMUg1vcHRpb25hbEJ5dGVzElcKEG9wdGlvbmFsX21lc3NhZ2UY9/j//wEgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUg9vcHRpb25hbE1lc3NhZ2USZgoNb3B0aW9uYWxncm91cBj4+P//ASABKAoyPC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEh1Z2VGaWVsZE51bWJlcnMuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBJzChFzdHJpbmdfc3RyaW5nX21hcBj6+P//ASADKAsyQy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEh1Z2VGaWVsZE51bWJlcnMuU3RyaW5nU3RyaW5nTWFwRW50cnlSD3N0cmluZ1N0cmluZ01hcBInCgxvbmVvZl91aW50MzIY+/j//wEgASgNSABSC29uZW9mVWludDMyEl0KFG9uZW9mX3Rlc3RfYWxsX3R5cGVzGPz4//8BIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNIAFIRb25lb2ZUZXN0QWxsVHlwZXMSJwoMb25lb2Zfc3RyaW5nGP34//8BIAEoCUgAUgtvbmVvZlN0cmluZxIlCgtvbmVvZl9ieXRlcxj++P//ASABKAxIAFIKb25lb2ZCeXRlcxosCg1PcHRpb25hbEdyb3VwEhsKB2dyb3VwX2EY+fj//wEgASgFUgZncm91cEEaQgoUU3RyaW5nU3RyaW5nTWFwRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASoMCOCq//8BEPD4//8BQg0KC29uZW9mX2ZpZWxkIvoBChhUZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGUSFgoGZmllbGQxGAEgASgFUgZmaWVsZDESFgoGZmllbGQyGAIgASgFUgZmaWVsZDISFgoGZmllbGQzGAMgASgFUgZmaWVsZDMSFgoGZmllbGQ0GAQgASgFUgZmaWVsZDQSFgoGZmllbGQ2GAYgASgFUgZmaWVsZDYSFgoGZmllbGQ3GAcgASgFUgZmaWVsZDcSFgoGZmllbGQ4GAggASgFUgZmaWVsZDgSFgoGZmllbGQ5GAkgASgFUgZmaWVsZDkSGAoHZmllbGQxMBgKIAEoBVIHZmllbGQxMCoECAUQBipACgtGb3JlaWduRW51bRIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBipLChRUZXN0RW51bVdpdGhEdXBWYWx1ZRIICgRGT08xEAESCAoEQkFSMRACEgcKA0JBWhADEggKBEZPTzIQARIICgRCQVIyEAIaAhABKokBCg5UZXN0U3BhcnNlRW51bRIMCghTUEFSU0VfQRB7Eg4KCFNQQVJTRV9CEKbnAxIPCghTUEFSU0VfQxCysYAGEhUKCFNQQVJTRV9EEPH//////////wESFQoIU1BBUlNFX0UQtN78////////ARIMCghTUEFSU0VfRhAAEgwKCFNQQVJTRV9HEAIqiw8KDVZlcnlMYXJnZUVudW0SFgoSRU5VTV9MQUJFTF9ERUZBVUxUEAASEAoMRU5VTV9MQUJFTF8xEAESEAoMRU5VTV9MQUJFTF8yEAISEAoMRU5VTV9MQUJFTF8zEAMSEAoMRU5VTV9MQUJFTF80EAQSEAoMRU5VTV9MQUJFTF81EAUSEAoMRU5VTV9MQUJFTF82EAYSEAoMRU5VTV9MQUJFTF83EAcSEAoMRU5VTV9MQUJFTF84EAgSEAoMRU5VTV9MQUJFTF85EAkSEQoNRU5VTV9MQUJFTF8xMBAKEhEKDUVOVU1fTEFCRUxfMTEQCxIRCg1FTlVNX0xBQkVMXzEyEAwSEQoNRU5VTV9MQUJFTF8xMxANEhEKDUVOVU1fTEFCRUxfMTQQDhIRCg1FTlVNX0xBQkVMXzE1EA8SEQoNRU5VTV9MQUJFTF8xNhAQEhEKDUVOVU1fTEFCRUxfMTcQERIRCg1FTlVNX0xBQkVMXzE4EBISEQoNRU5VTV9MQUJFTF8xORATEhEKDUVOVU1fTEFCRUxfMjAQFBIRCg1FTlVNX0xBQkVMXzIxEBUSEQoNRU5VTV9MQUJFTF8yMhAWEhEKDUVOVU1fTEFCRUxfMjMQFxIRCg1FTlVNX0xBQkVMXzI0EBgSEQoNRU5VTV9MQUJFTF8yNRAZEhEKDUVOVU1fTEFCRUxfMjYQGhIRCg1FTlVNX0xBQkVMXzI3EBsSEQoNRU5VTV9MQUJFTF8yOBAcEhEKDUVOVU1fTEFCRUxfMjkQHRIRCg1FTlVNX0xBQkVMXzMwEB4SEQoNRU5VTV9MQUJFTF8zMRAfEhEKDUVOVU1fTEFCRUxfMzIQIBIRCg1FTlVNX0xBQkVMXzMzECESEQoNRU5VTV9MQUJFTF8zNBAiEhEKDUVOVU1fTEFCRUxfMzUQIxIRCg1FTlVNX0xBQkVMXzM2ECQSEQoNRU5VTV9MQUJFTF8zNxAlEhEKDUVOVU1fTEFCRUxfMzgQJhIRCg1FTlVNX0xBQkVMXzM5ECcSEQoNRU5VTV9MQUJFTF80MBAoEhEKDUVOVU1fTEFCRUxfNDEQKRIRCg1FTlVNX0xBQkVMXzQyECoSEQoNRU5VTV9MQUJFTF80MxArEhEKDUVOVU1fTEFCRUxfNDQQLBIRCg1FTlVNX0xBQkVMXzQ1EC0SEQoNRU5VTV9MQUJFTF80NhAuEhEKDUVOVU1fTEFCRUxfNDcQLxIRCg1FTlVNX0xBQkVMXzQ4EDASEQoNRU5VTV9MQUJFTF80ORAxEhEKDUVOVU1fTEFCRUxfNTAQMhIRCg1FTlVNX0xBQkVMXzUxEDMSEQoNRU5VTV9MQUJFTF81MhA0EhEKDUVOVU1fTEFCRUxfNTMQNRIRCg1FTlVNX0xBQkVMXzU0EDYSEQoNRU5VTV9MQUJFTF81NRA3EhEKDUVOVU1fTEFCRUxfNTYQOBIRCg1FTlVNX0xBQkVMXzU3EDkSEQoNRU5VTV9MQUJFTF81OBA6EhEKDUVOVU1fTEFCRUxfNTkQOxIRCg1FTlVNX0xBQkVMXzYwEDwSEQoNRU5VTV9MQUJFTF82MRA9EhEKDUVOVU1fTEFCRUxfNjIQPhIRCg1FTlVNX0xBQkVMXzYzED8SEQoNRU5VTV9MQUJFTF82NBBAEhEKDUVOVU1fTEFCRUxfNjUQQRIRCg1FTlVNX0xBQkVMXzY2EEISEQoNRU5VTV9MQUJFTF82NxBDEhEKDUVOVU1fTEFCRUxfNjgQRBIRCg1FTlVNX0xBQkVMXzY5EEUSEQoNRU5VTV9MQUJFTF83MBBGEhEKDUVOVU1fTEFCRUxfNzEQRxIRCg1FTlVNX0xBQkVMXzcyEEgSEQoNRU5VTV9MQUJFTF83MxBJEhEKDUVOVU1fTEFCRUxfNzQQShIRCg1FTlVNX0xBQkVMXzc1EEsSEQoNRU5VTV9MQUJFTF83NhBMEhEKDUVOVU1fTEFCRUxfNzcQTRIRCg1FTlVNX0xBQkVMXzc4EE4SEQoNRU5VTV9MQUJFTF83ORBPEhEKDUVOVU1fTEFCRUxfODAQUBIRCg1FTlVNX0xBQkVMXzgxEFESEQoNRU5VTV9MQUJFTF84MhBSEhEKDUVOVU1fTEFCRUxfODMQUxIRCg1FTlVNX0xBQkVMXzg0EFQSEQoNRU5VTV9MQUJFTF84NRBVEhEKDUVOVU1fTEFCRUxfODYQVhIRCg1FTlVNX0xBQkVMXzg3EFcSEQoNRU5VTV9MQUJFTF84OBBYEhEKDUVOVU1fTEFCRUxfODkQWRIRCg1FTlVNX0xBQkVMXzkwEFoSEQoNRU5VTV9MQUJFTF85MRBbEhEKDUVOVU1fTEFCRUxfOTIQXBIRCg1FTlVNX0xBQkVMXzkzEF0SEQoNRU5VTV9MQUJFTF85NBBeEhEKDUVOVU1fTEFCRUxfOTUQXxIRCg1FTlVNX0xBQkVMXzk2EGASEQoNRU5VTV9MQUJFTF85NxBhEhEKDUVOVU1fTEFCRUxfOTgQYhIRCg1FTlVNX0xBQkVMXzk5EGMSEgoORU5VTV9MQUJFTF8xMDAQZDK1AQoLVGVzdFNlcnZpY2USUgoDRm9vEiQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvb1JlcXVlc3QaJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9vUmVzcG9uc2USUgoDQmFyEiQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkJhclJlcXVlc3QaJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuQmFyUmVzcG9uc2U6ZQoYb3B0aW9uYWxfaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAEgASgFUhZvcHRpb25hbEludDMyRXh0ZW5zaW9uOmUKGG9wdGlvbmFsX2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgCIAEoA1IWb3B0aW9uYWxJbnQ2NEV4dGVuc2lvbjpnChlvcHRpb25hbF91aW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAMgASgNUhdvcHRpb25hbFVpbnQzMkV4dGVuc2lvbjpnChlvcHRpb25hbF91aW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAQgASgEUhdvcHRpb25hbFVpbnQ2NEV4dGVuc2lvbjpnChlvcHRpb25hbF9zaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAUgASgRUhdvcHRpb25hbFNpbnQzMkV4dGVuc2lvbjpnChlvcHRpb25hbF9zaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAYgASgSUhdvcHRpb25hbFNpbnQ2NEV4dGVuc2lvbjppChpvcHRpb25hbF9maXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgHIAEoB1IYb3B0aW9uYWxGaXhlZDMyRXh0ZW5zaW9uOmkKGm9wdGlvbmFsX2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAggASgGUhhvcHRpb25hbEZpeGVkNjRFeHRlbnNpb246awobb3B0aW9uYWxfc2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAkgASgPUhlvcHRpb25hbFNmaXhlZDMyRXh0ZW5zaW9uOmsKG29wdGlvbmFsX3NmaXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgKIAEoEFIZb3B0aW9uYWxTZml4ZWQ2NEV4dGVuc2lvbjplChhvcHRpb25hbF9mbG9hdF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCyABKAJSFm9wdGlvbmFsRmxvYXRFeHRlbnNpb246ZwoZb3B0aW9uYWxfZG91YmxlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgMIAEoAVIXb3B0aW9uYWxEb3VibGVFeHRlbnNpb246YwoXb3B0aW9uYWxfYm9vbF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDSABKAhSFW9wdGlvbmFsQm9vbEV4dGVuc2lvbjpnChlvcHRpb25hbF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGA4gASgJUhdvcHRpb25hbFN0cmluZ0V4dGVuc2lvbjplChhvcHRpb25hbF9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDyABKAxSFm9wdGlvbmFsQnl0ZXNFeHRlbnNpb246lwEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBAgASgKMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLk9wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uUhZvcHRpb25hbGdyb3VwRXh0ZW5zaW9uOqwBCiFvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYEiABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSHm9wdGlvbmFsTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjqiAQoib3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgTIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIfb3B0aW9uYWxGb3JlaWduTWVzc2FnZUV4dGVuc2lvbjqmAQohb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBQgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUh5vcHRpb25hbEltcG9ydE1lc3NhZ2VFeHRlbnNpb246owEKHm9wdGlvbmFsX25lc3RlZF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgVIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIbb3B0aW9uYWxOZXN0ZWRFbnVtRXh0ZW5zaW9uOpkBCh9vcHRpb25hbF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhxvcHRpb25hbEZvcmVpZ25FbnVtRXh0ZW5zaW9uOp0BCh5vcHRpb25hbF9pbXBvcnRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SG29wdGlvbmFsSW1wb3J0RW51bUV4dGVuc2lvbjp2Ch9vcHRpb25hbF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBggASgJQgIIAlIcb3B0aW9uYWxTdHJpbmdQaWVjZUV4dGVuc2lvbjpnChdvcHRpb25hbF9jb3JkX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgZIAEoCUICCAFSFW9wdGlvbmFsQ29yZEV4dGVuc2lvbjq5AQoob3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgaIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuUHVibGljSW1wb3J0TWVzc2FnZVIkb3B0aW9uYWxQdWJsaWNJbXBvcnRNZXNzYWdlRXh0ZW5zaW9uOqwBCh9vcHRpb25hbF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBsgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVIcb3B0aW9uYWxMYXp5TWVzc2FnZUV4dGVuc2lvbjplChhyZXBlYXRlZF9pbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYHyADKAVSFnJlcGVhdGVkSW50MzJFeHRlbnNpb246ZQoYcmVwZWF0ZWRfaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCAgAygDUhZyZXBlYXRlZEludDY0RXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYISADKA1SF3JlcGVhdGVkVWludDMyRXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3VpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYIiADKARSF3JlcGVhdGVkVWludDY0RXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3NpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYIyADKBFSF3JlcGVhdGVkU2ludDMyRXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3NpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJCADKBJSF3JlcGVhdGVkU2ludDY0RXh0ZW5zaW9uOmkKGnJlcGVhdGVkX2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCUgAygHUhhyZXBlYXRlZEZpeGVkMzJFeHRlbnNpb246aQoacmVwZWF0ZWRfZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJiADKAZSGHJlcGVhdGVkRml4ZWQ2NEV4dGVuc2lvbjprChtyZXBlYXRlZF9zZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJyADKA9SGXJlcGVhdGVkU2ZpeGVkMzJFeHRlbnNpb246awobcmVwZWF0ZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCggAygQUhlyZXBlYXRlZFNmaXhlZDY0RXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgpIAMoAlIWcmVwZWF0ZWRGbG9hdEV4dGVuc2lvbjpnChlyZXBlYXRlZF9kb3VibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCogAygBUhdyZXBlYXRlZERvdWJsZUV4dGVuc2lvbjpjChdyZXBlYXRlZF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgrIAMoCFIVcmVwZWF0ZWRCb29sRXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYLCADKAlSF3JlcGVhdGVkU3RyaW5nRXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgtIAMoDFIWcmVwZWF0ZWRCeXRlc0V4dGVuc2lvbjqXAQoXcmVwZWF0ZWRncm91cF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYLiADKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuUmVwZWF0ZWRHcm91cF9leHRlbnNpb25SFnJlcGVhdGVkZ3JvdXBFeHRlbnNpb246rAEKIXJlcGVhdGVkX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgwIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIecmVwZWF0ZWROZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOqIBCiJyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDEgAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUh9yZXBlYXRlZEZvcmVpZ25NZXNzYWdlRXh0ZW5zaW9uOqYBCiFyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYMiADKAsyLi5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydE1lc3NhZ2VSHnJlcGVhdGVkSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqjAQoecmVwZWF0ZWRfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDMgAygOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhtyZXBlYXRlZE5lc3RlZEVudW1FeHRlbnNpb246mQEKH3JlcGVhdGVkX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNCADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SHHJlcGVhdGVkRm9yZWlnbkVudW1FeHRlbnNpb246nQEKHnJlcGVhdGVkX2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg1IAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bVIbcmVwZWF0ZWRJbXBvcnRFbnVtRXh0ZW5zaW9uOnYKH3JlcGVhdGVkX3N0cmluZ19waWVjZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNiADKAlCAggCUhxyZXBlYXRlZFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmcKF3JlcGVhdGVkX2NvcmRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDcgAygJQgIIAVIVcmVwZWF0ZWRDb3JkRXh0ZW5zaW9uOqwBCh9yZXBlYXRlZF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDkgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVIccmVwZWF0ZWRMYXp5TWVzc2FnZUV4dGVuc2lvbjpnChdkZWZhdWx0X2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg9IAEoBToCNDFSFWRlZmF1bHRJbnQzMkV4dGVuc2lvbjpnChdkZWZhdWx0X2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg+IAEoAzoCNDJSFWRlZmF1bHRJbnQ2NEV4dGVuc2lvbjppChhkZWZhdWx0X3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYPyABKA06AjQzUhZkZWZhdWx0VWludDMyRXh0ZW5zaW9uOmkKGGRlZmF1bHRfdWludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhAIAEoBDoCNDRSFmRlZmF1bHRVaW50NjRFeHRlbnNpb246agoYZGVmYXVsdF9zaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEEgASgROgMtNDVSFmRlZmF1bHRTaW50MzJFeHRlbnNpb246aQoYZGVmYXVsdF9zaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEIgASgSOgI0NlIWZGVmYXVsdFNpbnQ2NEV4dGVuc2lvbjprChlkZWZhdWx0X2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEMgASgHOgI0N1IXZGVmYXVsdEZpeGVkMzJFeHRlbnNpb246awoZZGVmYXVsdF9maXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhEIAEoBjoCNDhSF2RlZmF1bHRGaXhlZDY0RXh0ZW5zaW9uOm0KGmRlZmF1bHRfc2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEUgASgPOgI0OVIYZGVmYXVsdFNmaXhlZDMyRXh0ZW5zaW9uOm4KGmRlZmF1bHRfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEYgASgQOgMtNTBSGGRlZmF1bHRTZml4ZWQ2NEV4dGVuc2lvbjppChdkZWZhdWx0X2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhHIAEoAjoENTEuNVIVZGVmYXVsdEZsb2F0RXh0ZW5zaW9uOmwKGGRlZmF1bHRfZG91YmxlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhIIAEoAToFNTIwMDBSFmRlZmF1bHREb3VibGVFeHRlbnNpb246ZwoWZGVmYXVsdF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhJIAEoCDoEdHJ1ZVIUZGVmYXVsdEJvb2xFeHRlbnNpb246bAoYZGVmYXVsdF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEogASgJOgVoZWxsb1IWZGVmYXVsdFN0cmluZ0V4dGVuc2lvbjpqChdkZWZhdWx0X2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhLIAEoDDoFd29ybGRSFWRlZmF1bHRCeXRlc0V4dGVuc2lvbjqmAQodZGVmYXVsdF9uZXN0ZWRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYUSABKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUlIaZGVmYXVsdE5lc3RlZEVudW1FeHRlbnNpb246pAEKHmRlZmF1bHRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhSIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVJSG2RlZmF1bHRGb3JlaWduRW51bUV4dGVuc2lvbjqnAQodZGVmYXVsdF9pbXBvcnRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYUyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW06CklNUE9SVF9CQVJSGmRlZmF1bHRJbXBvcnRFbnVtRXh0ZW5zaW9uOnkKHmRlZmF1bHRfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhUIAEoCToDYWJjQgIIAlIbZGVmYXVsdFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmoKFmRlZmF1bHRfY29yZF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYVSABKAk6AzEyM0ICCAFSFGRlZmF1bHRDb3JkRXh0ZW5zaW9uOmEKFm9uZW9mX3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYbyABKA1SFG9uZW9mVWludDMyRXh0ZW5zaW9uOqYBCh5vbmVvZl9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYcCABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSG29uZW9mTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjphChZvbmVvZl9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGHEgASgJUhRvbmVvZlN0cmluZ0V4dGVuc2lvbjpfChVvbmVvZl9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYciABKAxSE29uZW9mQnl0ZXNFeHRlbnNpb246XAoTbXlfZXh0ZW5zaW9uX3N0cmluZxIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYMiABKAlSEW15RXh0ZW5zaW9uU3RyaW5nOlYKEG15X2V4dGVuc2lvbl9pbnQSLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGAUgASgFUg5teUV4dGVuc2lvbkludDpoChZwYWNrZWRfaW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFogAygFQgIQAVIUcGFja2VkSW50MzJFeHRlbnNpb246aAoWcGFja2VkX2ludDY0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhbIAMoA0ICEAFSFHBhY2tlZEludDY0RXh0ZW5zaW9uOmoKF3BhY2tlZF91aW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQAVIVcGFja2VkVWludDMyRXh0ZW5zaW9uOmoKF3BhY2tlZF91aW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGF0gAygEQgIQAVIVcGFja2VkVWludDY0RXh0ZW5zaW9uOmoKF3BhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGF4gAygRQgIQAVIVcGFja2VkU2ludDMyRXh0ZW5zaW9uOmoKF3BhY2tlZF9zaW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQAVIVcGFja2VkU2ludDY0RXh0ZW5zaW9uOmwKGHBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhgIAMoB0ICEAFSFnBhY2tlZEZpeGVkMzJFeHRlbnNpb246bAoYcGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGEgAygGQgIQAVIWcGFja2VkRml4ZWQ2NEV4dGVuc2lvbjpuChlwYWNrZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQAVIXcGFja2VkU2ZpeGVkMzJFeHRlbnNpb246bgoZcGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEAFSF3BhY2tlZFNmaXhlZDY0RXh0ZW5zaW9uOmgKFnBhY2tlZF9mbG9hdF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZCADKAJCAhABUhRwYWNrZWRGbG9hdEV4dGVuc2lvbjpqChdwYWNrZWRfZG91YmxlX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEAFSFXBhY2tlZERvdWJsZUV4dGVuc2lvbjpmChVwYWNrZWRfYm9vbF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZiADKAhCAhABUhNwYWNrZWRCb29sRXh0ZW5zaW9uOo0BChVwYWNrZWRfZW51bV9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhABUhNwYWNrZWRFbnVtRXh0ZW5zaW9uOm4KGHVucGFja2VkX2ludDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFogAygFQgIQAFIWdW5wYWNrZWRJbnQzMkV4dGVuc2lvbjpuChh1bnBhY2tlZF9pbnQ2NF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhbIAMoA0ICEABSFnVucGFja2VkSW50NjRFeHRlbnNpb246cAoZdW5wYWNrZWRfdWludDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQAFIXdW5wYWNrZWRVaW50MzJFeHRlbnNpb246cAoZdW5wYWNrZWRfdWludDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF0gAygEQgIQAFIXdW5wYWNrZWRVaW50NjRFeHRlbnNpb246cAoZdW5wYWNrZWRfc2ludDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF4gAygRQgIQAFIXdW5wYWNrZWRTaW50MzJFeHRlbnNpb246cAoZdW5wYWNrZWRfc2ludDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQAFIXdW5wYWNrZWRTaW50NjRFeHRlbnNpb246cgoadW5wYWNrZWRfZml4ZWQzMl9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhgIAMoB0ICEABSGHVucGFja2VkRml4ZWQzMkV4dGVuc2lvbjpyChp1bnBhY2tlZF9maXhlZDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGEgAygGQgIQAFIYdW5wYWNrZWRGaXhlZDY0RXh0ZW5zaW9uOnQKG3VucGFja2VkX3NmaXhlZDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQAFIZdW5wYWNrZWRTZml4ZWQzMkV4dGVuc2lvbjp0Cht1bnBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEABSGXVucGFja2VkU2ZpeGVkNjRFeHRlbnNpb246bgoYdW5wYWNrZWRfZmxvYXRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZCADKAJCAhAAUhZ1bnBhY2tlZEZsb2F0RXh0ZW5zaW9uOnAKGXVucGFja2VkX2RvdWJsZV9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEABSF3VucGFja2VkRG91YmxlRXh0ZW5zaW9uOmwKF3VucGFja2VkX2Jvb2xfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZiADKAhCAhAAUhV1bnBhY2tlZEJvb2xFeHRlbnNpb246kwEKF3VucGFja2VkX2VudW1fZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhAAUhV1bnBhY2tlZEVudW1FeHRlbnNpb246gAEKDnRlc3RfYWxsX3R5cGVzEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RIdWdlRmllbGROdW1iZXJzGOCq//8BIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSDHRlc3RBbGxUeXBlczqEAQoldGVzdF9leHRlbnNpb25faW5zaWRlX3RhYmxlX2V4dGVuc2lvbhIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGUYBSABKAVSIXRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZUV4dGVuc2lvbkIySAGAAQGIAQGQAQH4AQGqAiFHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvcy5Qcm90bzJKtLgDCgcSBSYA2AgCCqIOCgEMEgMmABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLTASBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3RvIGZpbGUgd2Ugd2lsbCB1c2UgZm9yIHVuaXQgdGVzdGluZy4KCiBMSU5UOiBBTExPV19HUk9VUFMsIExFR0FDWV9OQU1FUwoKCAoBCBIDKgAiCoABCgIIEBIDKgAiGmcgU29tZSBnZW5lcmljX3NlcnZpY2VzIG9wdGlvbihzKSBhZGRlZCBhdXRvbWF0aWNhbGx5LgogU2VlOiAgaHR0cDovL2dvL3Byb3RvMi1nZW5lcmljLXNlcnZpY2VzLWRlZmF1bHQKIgwgYXV0by1hZGRlZAoKCAoBCBIDKwAkChcKAggREgMrACQiDCBhdXRvLWFkZGVkCgoICgEIEgMsACIKFwoCCBISAywAIiIMIGF1dG8tYWRkZWQKCggKAQgSAy0AHwoJCgIIHxIDLQAfCgkKAgMAEgMvAB8K5gEKAQISAzQAIRrbASBXZSBkb24ndCBwdXQgdGhpcyBpbiBhIHBhY2thZ2Ugd2l0aGluIHByb3RvMiBiZWNhdXNlIHdlIG5lZWQgdG8gbWFrZSBzdXJlCiB0aGF0IHRoZSBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0IGRlcGVuZCBvbiBiZWluZyBpbiB0aGUgcHJvdG8yIG5hbWVzcGFjZS4KIEluIHRlc3RfdXRpbC5oIHdlIGRvICJ1c2luZyBuYW1lc3BhY2UgdW5pdHRlc3QgPSBwcm90b2J1Zl91bml0dGVzdCIuCgoICgEIEgM5ABwK4gEKAggJEgM5ABwa1gEgUHJvdG9zIG9wdGltaXplZCBmb3IgU1BFRUQgdXNlIGEgc3RyaWN0IHN1cGVyc2V0IG9mIHRoZSBnZW5lcmF0ZWQgY29kZQogb2YgZXF1aXZhbGVudCBvbmVzIG9wdGltaXplZCBmb3IgQ09ERV9TSVpFLCBzbyB3ZSBzaG91bGQgb3B0aW1pemUgYWxsIG91cgogdGVzdHMgZm9yIHNwZWVkIHVubGVzcyBleHBsaWNpdGx5IHRlc3RpbmcgY29kZSBzaXplIG9wdGltaXphdGlvbi4KCggKAQgSAzsAPgoJCgIIJRIDOwA+ClwKAgQAEgU/ALYBARpPIFRoaXMgcHJvdG8gaW5jbHVkZXMgZXZlcnkgdHlwZSBvZiBmaWVsZCBpbiBib3RoIHNpbmd1bGFyIGFuZCByZXBlYXRlZAogZm9ybXMuCgoKCgMEAAESAz8IFAoMCgQEAAMAEgRAAkUDCgwKBQQAAwABEgNAChcK4wEKBgQAAwACABIDRAQaGtMBIFRoZSBmaWVsZCBuYW1lICJiIiBmYWlscyB0byBjb21waWxlIGluIHByb3RvMSBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoCiBhIGxvY2FsIHZhcmlhYmxlIG5hbWVkICJiIiBpbiBvbmUgb2YgdGhlIGdlbmVyYXRlZCBtZXRob2RzLiAgRG9oLgogVGhpcyBmaWxlIG5lZWRzIHRvIGNvbXBpbGUgaW4gcHJvdG8xIHRvIHRlc3QgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkuCgoOCgcEAAMAAgAEEgNEBAwKDgoHBAADAAIABRIDRA0SCg4KBwQAAwACAAESA0QTFQoOCgcEAAMAAgAD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CxAKDQoFBAwCBQESBIEDERcKDQoFBAwCBQMSBIEDHB0KDAoEBAwCBhIEggMCHgoNCgUEDAIGBBIEggMCCgoNCgUEDAIGBRIEggMLEAoNCgUEDAIGARIEggMRFwoNCgUEDAIGAxIEggMcHQoMCgQEDAIHEgSDAwIeCg0KBQQMAgcEEgSDAwIKCg0KBQQMAgcFEgSDAwsQCg0KBQQMAgcBEgSDAxEXCg0KBQQMAgcDEgSDAxwdCgwKBAQMAggSBIQDAh4KDQoFBAwCCAQSBIQDAgoKDQoFBAwCCAUSBIQDCxAKDQoFBAwCCAESBIQDERcKDQoFBAwCCAMSBIQDHB0KDAoEBAwCCRIEhQMCHgoNCgUEDAIJBBIEhQMCCgoNCgUEDAIJBRIEhQMLEAoNCgUEDAIJARIEhQMRGAoNCgUEDAIJAxIEhQMbHQoMCgQEDAIKEgSGAwIeCg0KBQQMAgoEEgSGAwIKCg0KBQQMAgoFEgSGAwsQCg0KBQQMAgoBEgSGAxEYCg0KBQQMAgoDEgSGAxsdCgwKBAQMAgsSBIcDAh4KDQoFBAwCCwQSBIcDAgoKDQoFBAwCCwUSBIcDCxAKDQoFBAwCCwESBIcDERgKDQoFBAwCCwMSBIcDGx0KDAoEBAwCDBIEiAMCHgoNCgUEDAIMBBIEiAMCCgoNCgUEDAIMBRIEiAMLEAoNCgUEDAIMARIEiAMRGAoNCgUEDAIMAxIEiAMbHQoMCgQEDAINEgSJAwIeCg0KBQQMAg0EEgSJAwIKCg0KBQQMAg0FEgSJAwsQCg0KBQQMAg0BEgSJAxEYCg0KBQQMAg0DEgSJAxsdCgwKBAQMAg4SBIoDAh4KDQoFBAwCDgQSBIoDAgoKDQoFBAwCDgUSBIoDCxAKDQoFBAwCDgESBIoDERgKDQoFBAwCDgMSBIoDGx0KDAoEBAwCDxIEiwMCHgoNCgUEDAIPBBIEiwMCCgoNCgUEDAIPBRIEiwMLEAoNCgUEDAIPARIEiwMRGAoNCgUEDAIPAxIEiwMbHQoMCgQEDAIQEgSMAwIeCg0KBQQMAhAEEgSMAwIKCg0KBQQMAhAFEgSMAwsQCg0KBQQMAhABEgSMAxEYCg0KBQQMAhADEgSMAxsdCgwKBAQMAhESBI0DAh4KDQoFBAwCEQQSBI0DAgoKDQoFBAwCEQUSBI0DCxAKDQoFBAwCEQESBI0DERgKDQoFBAwCEQMSBI0DGx0KDAoEBAwCEhIEjgMCHgoNCgUEDAISBBIEjgMCCgoNCgUEDAISBRIEjgMLEAoNCgUEDAISARIEjgMRGAoNCgUEDAISAxIEjgMbHQoMCgQEDAITEgSPAwIeCg0KBQQMAhMEEgSPAwIKCg0KBQQMAhMFEgSPAwsQCg0KBQQMAhMBEgSPAxEYCg0KBQQMAhMDEgSPAxsdCgwKBAQMAhQSBJADAh4KDQoFBAwCFAQSBJADAgoKDQoFBAwCFAUSBJADCxAKDQoFBAwCFAESBJADERgKDQoFBAwCFAMSBJADGx0KDAoEBAwCFRIEkQMCHgoNCgUEDAIVBBIEkQMCCgoNCgUEDAIVBRIEkQMLEAoNCgUEDAIVARIEkQMRGAoNCgUEDAIVAxIEkQMbHQoMCgQEDAIWEgSSAwIeCg0KBQQMAhYEEgSSAwIKCg0KBQQMAhYFEgSSAwsQCg0KBQQMAhYBEgSSAxEYCg0KBQQMAhYDEgSSAxsdCgwKBAQMAhcSBJMDAh4KDQoFBAwCFwQSBJMDAgoKDQoFBAwCFwUSBJMDCxAKDQoFBAwCFwESBJMDERgKDQoFBAwCFwMSBJMDGx0KDAoEBAwCGBIElAMCHgoNCgUEDAIYBBIElAMCCgoNCgUEDAIYBRIElAMLEAoNCgUEDAIYARIElAMRGAoNCgUEDAIYAxIElAMbHQoMCgQEDAIZEgSVAwIeCg0KBQQMAhkEEgSVAwIKCg0KBQQMAhkFEgSVAwsQCg0KBQQMAhkBEgSVAxEYCg0KBQQMAhkDEgSVAxsdCgwKBAQMAhoSBJYDAh4KDQoFBAwCGgQSBJYDAgoKDQoFBAwCGgUSBJYDCxAKDQoFBAwCGgESBJYDERgKDQoFBAwCGgMSBJYDGx0KDAoEBAwCGxIElwMCHgoNCgUEDAIbBBIElwMCCgoNCgUEDAIbBRIElwMLEAoNCgUEDAIbARIElwMRGAoNCgUEDAIbAxIElwMbHQoMCgQEDAIcEgSYAwIeCg0KBQQMAhwEEgSYAwIKCg0KBQQMAhwFEgSYAwsQCg0KBQQMAhwBEgSYAxEYCg0KBQQMAhwDEgSYAxsdCgwKBAQMAh0SBJkDAh4KDQoFBAwCHQQSBJkDAgoKDQoFBAwCHQUSBJkDCxAKDQoFBAwCHQESBJkDERgKDQoFBAwC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BxIUCgwKBAUDAg0SBIAIAhUKDQoFBQMCDQESBIAIAg8KDQoFBQMCDQISBIAIEhQKDAoEBQMCDhIEgQgCFQoNCgUFAwIOARIEgQgCDwoNCgUFAwIOAhIEgQgSFAoMCgQFAwIPEgSCCAIVCg0KBQUDAg8BEgSCCAIPCg0KBQUDAg8CEgSCCBIUCgwKBAUDAhASBIMIAhUKDQoFBQMCEAESBIMIAg8KDQoFBQMCEAISBIMIEhQKDAoEBQMCERIEhAgCFQoNCgUFAwIRARIEhAgCDwoNCgUFAwIRAhIEhAgSFAoMCgQFAwISEgSFCAIVCg0KBQUDAhIBEgSFCAIPCg0KBQUDAhICEgSFCBIUCgwKBAUDAhMSBIYIAhUKDQoFBQMCEwESBIYIAg8KDQoFBQMCEwISBIYIEhQKDAoEBQMCFBIEhwgCFQoNCgUFAwIUARIEhwgCDwoNCgUFAwIUAhIEhwgSFAoMCgQFAwIVEgSICAIVCg0KBQUDAhUBEgSICAIPCg0KBQUDAhUCEgSICBIUCgwKBAUDAhYSBIkIAhUKDQoFBQMCFgESBIkIAg8KDQoFBQMCFgISBIkIEhQKDAoEBQMCFxIEiggCFQoNCgUFAwIXARIEiggCDwoNCgUFAwIXAhIEiggSFAoMCgQFAwIYEgSLCAIVCg0KBQUDAhgBEgSLCAIPCg0KBQUDAhgCEgSLCBIUCgwKBAUDAhkSBIwIAhUKDQoFBQMCGQESBIwIAg8KDQoFBQMCGQISBIwIEhQKDAoEBQMCGhIEjQgCFQoNCgUFAwIaARIEjQgCDwoNCgUFAwIaAhIEjQgSFAoMCgQFAwIbEgSOCAIVCg0KBQUDAhsBEgSOCAIPCg0KBQUDAhsCEgSOCBIUCgwKBAUDAhwSBI8IAhUKDQoFBQMCHAESBI8IAg8KDQoFBQMCHAISBI8IEhQKDAoEBQMCHRIEkAgCFQoNCgUFAwIdARIEkAgCDwoNCgUFAwIdAhIEkAgSFAoMCgQFAwIeEgSRCAIVCg0KBQUDAh4BEgSRCAIPCg0KBQUDAh4CEgSRCBIUCgwKBAUDAh8SBJIIAhUKDQoFBQMCHwESBJIIAg8KDQoFBQMCHwISBJIIEhQKDAoEBQMCIBIEkwgCFQoNCgUFAwIgARIEkwgCDwoNCgUFAwIgAhIEkwgSFAoMCgQFAwIhEgSUCAIVCg0K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bnRfb3B0GAEgASgFQg3KPgoIAcA+Aso+AggDUgZpbnRPcHQSGAoDZm9vGAIgASgFQgbKPgMQ0glSA2ZvbyoJCOgHEICAgIACOkUKC2Jhcl9vcHRpb25zEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjoByABKAVCBMA+0glSCmJhck9wdGlvbnM6dgoLZm9vX29wdGlvbnMSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGOkHIAEoCzI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnNSCmZvb09wdGlvbnM6VgoLZm9vX2ludF9vcHQSNS5wcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucy5Gb29PcHRpb25zGOgHIAEoBVIJZm9vSW50T3B0Oo0BCgtmb29fZm9vX29wdBI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnMY6QcgASgLMjUucHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMuRm9vT3B0aW9uc1IJZm9vRm9vT3B0QjSqAjFVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvcy5TZWxmcmVmZXJlbnRpYWxPcHRpb25zSrUTCgYSBB4APwEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAMgoICgEIEgMhAE4KCQoCCCUSAyEATgoJCgIDABIDIwAqCgoKAgQAEgQlADMBCgoKAwQAARIDJQgSClAKBAQAAgASBCcCLQUaQiBDdXN0b20gZmllbGQgb3B0aW9uIHVzZWQgaW4gZGVmaW5pdGlvbiBvZiB0aGUgZXh0ZW5zaW9uIG1lc3NhZ2UuCgoMCgUEAAIABBIDJwIKCgwKBQQAAgAFEgMnCxAKDAoFBAACAAESAycRGAoMCgUEAAIAAxIDJxscCg0KBQQAAgAIEgQnHS0ECg8KBwQAAgAI6QcSBCceLQMKVQoEBAACARIDMAI3GkggQ3VzdG9tIGZpZWxkIG9wdGlvbiB1c2VkIGluIGRlZmluaXRpb24gb2YgdGhlIGN1c3RvbSBvcHRpb24ncyBtZXNzYWdlLgoKDAoFBAACAQQSAzACCgoMCgUEAAIBBRIDMAsQCgwKBQQAAgEBEgMwERQKDAoFBAACAQMSAzAXGAoMCgUEAAIBCBIDMBk2Cg4KBwQAAgEI6QcSAzAaNQoKCgMEAAUSAzICGQoLCgQEAAUAEgMyDRgKDAoFBAAFAAESAzINEQoMCgUEAAUAAhIDMhUYCgkKAQcSBDUAOgEKTQoCBwASAzcCOxpCIEN1c3RvbSBmaWVsZCBvcHRpb24gdXNlZCBvbiB0aGUgZGVmaW5pdGlvbiBvZiB0aGF0IGZpZWxkIG9wdGlvbi4KCgoKAwcAAhIDNQcjCgoKAwcABBIDNwIKCgoKAwcABRIDNwsQCgoKAwcAARIDNxEcCgoKAwcAAxIDNx8jCgoKAwcACBIDNyQ6CgwKBQcACOgHEgM3JTkKCQoCBwESAzkCKQoKCgMHAQISAzUHIwoKCgMHAQQSAzkCCgoKCgMHAQYSAzkLFQoKCgMHAQESAzkWIQoKCgMHAQMSAzkkKAoJCgEHEgQ8AD8BCgkKAgcCEgM9AyUKCgoDBwICEgM8BxEKCgoDBwIEEgM9AwsKCgoDBwIFEgM9DBEKCgoDBwIBEgM9Eh0KCgoDBwIDEgM9ICQKCQoCBwMSAz4DKgoKCgMHAwISAzwHEQoKCgMHAwQSAz4DCwoKCgMHAwYSAz4MFgoKCgMHAwESAz4XIgoKCgMHAwMSAz4lKQrYLAoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjYKA0FueRIZCgh0eXBlX3VybBgBIAEoCVIHdHlwZVVybBIUCgV2YWx1ZRgCIAEoDFIFdmFsdWVCdgoTY29tLmdvb2dsZS5wcm90b2J1ZkIIQW55UHJvdG9QAVosZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vYW55cGKiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK8SoKBxIFHgCcAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAEMKCQoCCAsSAyMAQwoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlACkKCQoCCAgSAyUAKQoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQr1EAoCBAASBXsAnAEBGucQIGBBbnlgIGNvbnRhaW5zIGFuIGFyYml0cmFyeSBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlIGFsb25nIHdpdGggYQogVVJMIHRoYXQgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkIG1lc3NhZ2UuCgogUHJvdG9idWYgbGlicmFyeSBwcm92aWRlcyBzdXBwb3J0IHRvIHBhY2svdW5wYWNrIEFueSB2YWx1ZXMgaW4gdGhlIGZvcm0KIG9mIHV0aWxpdHkgZnVuY3Rpb25zIG9yIGFkZGl0aW9uYWwgZ2VuZXJhdGVkIG1ldGhvZHMgb2YgdGhlIEFueSB0eXBlLgoKIEV4YW1wbGUgMTogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBDKysuCgogICAgIEZvbyBmb28gPSAuLi47CiAgICAgQW55IGFueTsKICAgICBhbnkuUGFja0Zyb20oZm9vKTsKICAgICAuLi4KICAgICBpZiAoYW55LlVucGFja1RvKCZmb28pKSB7CiAgICAgICAuLi4KICAgICB9CgogRXhhbXBsZSAyOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEphdmEuCgogICAgIEZvbyBmb28gPSAuLi47CiAgICAgQW55IGFueSA9IEFueS5wYWNrKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5pcyhGb28uY2xhc3MpKSB7CiAgICAgICBmb28gPSBhbnkudW5wYWNrKEZvby5jbGFzcyk7CiAgICAgfQoKIEV4YW1wbGUgMzogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBQeXRob24uCgogICAgIGZvbyA9IEZvbyguLi4pCiAgICAgYW55ID0gQW55KCkKICAgICBhbnkuUGFjayhmb28pCiAgICAgLi4uCiAgICAgaWYgYW55LklzKEZvby5ERVNDUklQVE9SKToKICAgICAgIGFueS5VbnBhY2soZm9vKQogICAgICAgLi4uCgogRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IGFueXBiLk5ldyhmb28pCiAgICAgIGlmIGVyciAhPSBuaWwgewogICAgICAgIC4uLgogICAgICB9CiAgICAgIC4uLgogICAgICBmb28gOj0gJnBiLkZvb3t9CiAgICAgIGlmIGVyciA6PSBhbnkuVW5tYXJzaGFsVG8oZm9vKTsgZXJyICE9IG5pbCB7CiAgICAgICAgLi4uCiAgICAgIH0KCiBUaGUgcGFjayBtZXRob2RzIHByb3ZpZGVkIGJ5IHByb3RvYnVmIGxpYnJhcnkgd2lsbCBieSBkZWZhdWx0IHVzZQogJ3R5cGUuZ29vZ2xlYXBpcy5jb20vZnVsbC50eXBlLm5hbWUnIGFzIHRoZSB0eXBlIFVSTCBhbmQgdGhlIHVucGFjawogbWV0aG9kcyBvbmx5IHVzZSB0aGUgZnVsbHkgcXVhbGlmaWVkIHR5cGUgbmFtZSBhZnRlciB0aGUgbGFzdCAnLycKIGluIHRoZSB0eXBlIFVSTCwgZm9yIGV4YW1wbGUgImZvby5iYXIuY29tL3gveS56IiB3aWxsIHlpZWxkIHR5cGUKIG5hbWUgInkueiIuCgogSlNPTgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGFuIGBBbnlgIHZhbHVlIHVzZXMgdGhlIHJlZ3VsYXIKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXNlcmlhbGl6ZWQsIGVtYmVkZGVkIG1lc3NhZ2UsIHdpdGggYW4KIGFkZGl0aW9uYWwgZmllbGQgYEB0eXBlYCB3aGljaCBjb250YWlucyB0aGUgdHlwZSBVUkwuIEV4YW1wbGU6CgogICAgIHBhY2thZ2UgZ29vZ2xlLnByb2ZpbGU7CiAgICAgbWVzc2FnZSBQZXJzb24gewogICAgICAgc3RyaW5nIGZpcnN0X25hbWUgPSAxOwogICAgICAgc3RyaW5nIGxhc3RfbmFtZSA9IDI7CiAgICAgfQoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvZmlsZS5QZXJzb24iLAogICAgICAgImZpcnN0TmFtZSI6IDxzdHJpbmc+LAogICAgICAgImxhc3ROYW1lIjogPHN0cmluZz4KICAgICB9CgogSWYgdGhlIGVtYmVkZGVkIG1lc3NhZ2UgdHlwZSBpcyB3ZWxsLWtub3duIGFuZCBoYXMgYSBjdXN0b20gSlNPTgogcmVwcmVzZW50YXRpb24sIHRoYXQgcmVwcmVzZW50YXRpb24gd2lsbCBiZSBlbWJlZGRlZCBhZGRpbmcgYSBmaWVsZAogYHZhbHVlYCB3aGljaCBob2xkcyB0aGUgY3VzdG9tIEpTT04gaW4gYWRkaXRpb24gdG8gdGhlIGBAdHlwZWAKIGZpZWxkLiBFeGFtcGxlIChmb3IgbWVzc2FnZSBbZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uXVtdKToKCiAgICAgewogICAgICAgIkB0eXBlIjogInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIiwKICAgICAgICJ2YWx1ZSI6ICIxLjIxMnMiCiAgICAgfQoKCgoKAwQAARIDewgLCtcKCgQEAAIAEgSYAQIWGsgKIEEgVVJML3Jlc291cmNlIG5hbWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkCiBwcm90b2NvbCBidWZmZXIgbWVzc2FnZS4gVGhpcyBzdHJpbmcgbXVzdCBjb250YWluIGF0IGxlYXN0CiBvbmUgIi8iIGNoYXJhY3Rlci4gVGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgVVJMJ3MgcGF0aCBtdXN0IHJlcHJlc2VudAogdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSB0eXBlIChhcyBpbgogYHBhdGgvZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uYCkuIFRoZSBuYW1lIHNob3VsZCBiZSBpbiBhIGNhbm9uaWNhbCBmb3JtCiAoZS5nLiwgbGVhZGluZyAiLiIgaXMgbm90IGFjY2VwdGVkKS4KCiBJbiBwcmFjdGljZSwgdGVhbXMgdXN1YWxseSBwcmVjb21waWxlIGludG8gdGhlIGJpbmFyeSBhbGwgdHlwZXMgdGhhdCB0aGV5CiBleHBlY3QgaXQgdG8gdXNlIGluIHRoZSBjb250ZXh0IG9mIEFueS4gSG93ZXZlciwgZm9yIFVSTHMgd2hpY2ggdXNlIHRoZQogc2NoZW1lIGBodHRwYCwgYGh0dHBzYCwgb3Igbm8gc2NoZW1lLCBvbmUgY2FuIG9wdGlvbmFsbHkgc2V0IHVwIGEgdHlwZQogc2VydmVyIHRoYXQgbWFwcyB0eXBlIFVSTHMgdG8gbWVzc2FnZSBkZWZpbml0aW9ucyBhcyBmb2xsb3dzOgoKICogSWYgbm8gc2NoZW1lIGlzIHByb3ZpZGVkLCBgaHR0cHNgIGlzIGFzc3VtZWQuCiAqIEFuIEhUVFAgR0VUIG9uIHRoZSBVUkwgbXVzdCB5aWVsZCBhIFtnb29nbGUucHJvdG9idWYuVHlwZV1bXQogICB2YWx1ZSBpbiBiaW5hcnkgZm9ybWF0LCBvciBwcm9kdWNlIGFuIGVycm9yLgogKiBBcHBsaWNhdGlvbnMgYXJlIGFsbG93ZWQgdG8gY2FjaGUgbG9va3VwIHJlc3VsdHMgYmFzZWQgb24gdGhlCiAgIFVSTCwgb3IgaGF2ZSB0aGVtIHByZWNvbXBpbGVkIGludG8gYSBiaW5hcnkgdG8gYXZvaWQgYW55CiAgIGxvb2t1cC4gVGhlcmVmb3JlLCBiaW5hcnkgY29tcGF0aWJpbGl0eSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQKICAgb24gY2hhbmdlcyB0byB0eXBlcy4gKFVzZSB2ZXJzaW9uZWQgdHlwZSBuYW1lcyB0byBtYW5hZ2UKICAgYnJlYWtpbmcgY2hhbmdlcy4pCgogTm90ZTogdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG5vdCBjdXJyZW50bHkgYXZhaWxhYmxlIGluIHRoZSBvZmZpY2lhbAogcHJvdG9idWYgcmVsZWFzZSwgYW5kIGl0IGlzIG5vdCB1c2VkIGZvciB0eXBlIFVSTHMgYmVnaW5uaW5nIHdpdGgKIHR5cGUuZ29vZ2xlYXBpcy5jb20uCgogU2NoZW1lcyBvdGhlciB0aGFuIGBodHRwYCwgYGh0dHBzYCAob3IgdGhlIGVtcHR5IHNjaGVtZSkgbWlnaHQgYmUKIHVzZWQgd2l0aCBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBzZW1hbnRpY3MuCgoKDQoFBAACAAUSBJgBAggKDQoFBAACAAESBJgBCREKDQoFBAACAAMSBJgBFBUKVwoEBAACARIEmwECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoNCgUEAAIBBRIEmwECBwoNCgUEAAIBARIEmwEIDQoNCgUEAAIBAxIEmwEQEWIGcHJvdG8zCr4SCiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIsCg1Tb3VyY2VDb250ZXh0EhsKCWZpbGVfbmFtZRgBIAEoCVIIZmlsZU5hbWVCigEKE2NvbS5nb29nbGUucHJvdG9idWZCElNvdXJjZUNvbnRleHRQcm90b1ABWjZnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9zb3VyY2Vjb250ZXh0cGKiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKwRAKBhIEHgAvAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMALAoJCgIIARIDIwAsCggKAQgSAyQAMwoJCgIICBIDJAAzCggKAQgSAyUAIgoJCgIIChIDJQAiCggKAQgSAyYAIQoJCgIIJBIDJgAhCggKAQgSAycATQoJCgIICxIDJwBNCoMBCgIEABIEKwAvARp3IGBTb3VyY2VDb250ZXh0YCByZXByZXNlbnRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzb3VyY2Ugb2YgYQogcHJvdG9idWYgZWxlbWVudCwgbGlrZSB0aGUgZmlsZSBpbiB3aGljaCBpdCBpcyBkZWZpbmVkLgoKCgoDBAABEgMrCBUKowEKBAQAAgASAy4CFxqVASBUaGUgcGF0aC1xdWFsaWZpZWQgbmFtZSBvZiB0aGUgLnByb3RvIGZpbGUgdGhhdCBjb250YWluZWQgdGhlIGFzc29jaWF0ZWQKIHByb3RvYnVmIGVsZW1lbnQuICBGb3IgZXhhbXBsZTogYCJnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8iYC4KCgwKBQQAAgAFEgMuAggKDAoFBAACAAESAy4JEgoMCgUEAAIAAxIDLhUWYgZwcm90bzMK6EYKGmdvb2dsZS9wcm90b2J1Zi90eXBlLnByb3RvEg9nb29nbGUucHJvdG9idWYaGWdvb2dsZS9wcm90b2J1Zi9hbnkucHJvdG8aJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90byKNAgoEVHlwZRISCgRuYW1lGAEgASgJUgRuYW1lEi4KBmZpZWxkcxgCIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5GaWVsZFIGZmllbGRzEhYKBm9uZW9mcxgDIAMoCVIGb25lb2ZzEjEKB29wdGlvbnMYBCADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEkUKDnNvdXJjZV9jb250ZXh0GAUgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSDXNvdXJjZUNvbnRleHQSLwoGc3ludGF4GAYgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheFIGc3ludGF4IrQGCgVGaWVsZBIvCgRraW5kGAEgASgOMhsuZ29vZ2xlLnByb3RvYnVmLkZpZWxkLktpbmRSBGtpbmQSRAoLY2FyZGluYWxpdHkYAiABKA4yIi5nb29nbGUucHJvdG9idWYuRmllbGQuQ2FyZGluYWxpdHlSC2NhcmRpbmFsaXR5EhYKBm51bWJlchgDIAEoBVIGbnVtYmVyEhIKBG5hbWUYBCABKAlSBG5hbWUSGQoIdHlwZV91cmwYBiABKAlSB3R5cGVVcmwSHwoLb25lb2ZfaW5kZXgYByABKAVSCm9uZW9mSW5kZXgSFgoGcGFja2VkGAggASgIUgZwYWNrZWQSMQoHb3B0aW9ucxgJIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRIjCg1kZWZhdWx0X3ZhbHVlGAsgASgJUgxkZWZhdWx0VmFsdWUiyAIKBEtpbmQSEAoMVFlQRV9VTktOT1dOEAASDwoLVFlQRV9ET1VCTEUQARIOCgpUWVBFX0ZMT0FUEAISDgoKVFlQRV9JTlQ2NBADEg8KC1RZUEVfVUlOVDY0EAQSDgoKVFlQRV9JTlQzMhAFEhAKDFRZUEVfRklYRUQ2NBAGEhAKDFRZUEVfRklYRUQzMhAHEg0KCVRZUEVfQk9PTBAIEg8KC1RZUEVfU1RSSU5HEAkSDgoKVFlQRV9HUk9VUBAKEhAKDFRZUEVfTUVTU0FHRRALEg4KClRZUEVfQllURVMQDBIPCgtUWVBFX1VJTlQzMhANEg0KCVRZUEVfRU5VTRAOEhEKDVRZUEVfU0ZJWEVEMzIQDxIRCg1UWVBFX1NGSVhFRDY0EBASDwoLVFlQRV9TSU5UMzIQERIPCgtUWVBFX1NJTlQ2NBASInQKC0NhcmRpbmFsaXR5EhcKE0NBUkRJTkFMSVRZX1VOS05PV04QABIYChRDQVJESU5BTElUWV9PUFRJT05BTBABEhgKFENBUkRJTkFMSVRZX1JFUVVJUkVEEAISGAoUQ0FSRElOQUxJVFlfUkVQRUFURUQQAyL/AQoERW51bRISCgRuYW1lGAEgASgJUgRuYW1lEjgKCWVudW12YWx1ZRgCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVSCWVudW12YWx1ZRIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxJFCg5zb3VyY2VfY29udGV4dBgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0Ug1zb3VyY2VDb250ZXh0Ei8KBnN5bnRheBgFIAEoDjIXLmdvb2dsZS5wcm90b2J1Zi5TeW50YXhSBnN5bnRheCJqCglFbnVtVmFsdWUSEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAiABKAVSBm51bWJlchIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucyJICgZPcHRpb24SEgoEbmFtZRgBIAEoCVIEbmFtZRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBXZhbHVlKi4KBlN5bnRheBIRCg1TWU5UQVhfUFJPVE8yEAASEQoNU1lOVEFYX1BST1RPMxABQnsKE2NvbS5nb29nbGUucHJvdG9idWZCCVR5cGVQcm90b1ABWi1nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90eXBlcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKwzgKBxIFHgC6AQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g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dG8KIHNob3VsZCBiZSB1c2VkLiBJZiB0aGUgdmFsdWUgaXMgYW4gZW51bSwgaXQgc2hvdWxkIGJlIHN0b3JlZCBhcyBhbiBpbnQzMgogdmFsdWUgdXNpbmcgdGhlIGdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlIHR5cGUuCgoNCgUEBAIBBhIEsQECBQoNCgUEBAIBARIEsQEGCwoNCgUEBAIBAxIEsQEODwpJCgIFABIGtQEAugEBGjsgVGhlIHN5bnRheCBpbiB3aGljaCBhIHByb3RvY29sIGJ1ZmZlciBlbGVtZW50IGlzIGRlZmluZWQuCgoLCgMFAAESBLUBBQsKIAoEBQACABIEtwECFBoSIFN5bnRheCBgcHJvdG8yYC4KCg0KBQUAAgABEgS3AQIPCg0KBQUAAgACEgS3ARITCiAKBAUAAgESBLkBAhQaEiBTeW50YXggYHByb3RvM2AuCgoNCgUFAAIBARIEuQECDwoNCgUFAAIBAhIEuQESE2IGcHJvdG8zCptDChlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvEg9nb29nbGUucHJvdG9idWYaJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8iwQIKA0FwaRISCgRuYW1lGAEgASgJUgRuYW1lEjEKB21ldGhvZHMYAiADKAsyFy5nb29nbGUucHJvdG9idWYuTWV0aG9kUgdtZXRob2RzEjEKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEhgKB3ZlcnNpb24YBCABKAlSB3ZlcnNpb24SRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIuCgZtaXhpbnMYBiADKAsyFi5nb29nbGUucHJvdG9idWYuTWl4aW5SBm1peGlucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgisgIKBk1ldGhvZBISCgRuYW1lGAEgASgJUgRuYW1lEigKEHJlcXVlc3RfdHlwZV91cmwYAiABKAlSDnJlcXVlc3RUeXBlVXJsEisKEXJlcXVlc3Rfc3RyZWFtaW5nGAMgASgIUhByZXF1ZXN0U3RyZWFtaW5nEioKEXJlc3BvbnNlX3R5cGVfdXJsGAQgASgJUg9yZXNwb25zZVR5cGVVcmwSLQoScmVzcG9uc2Vfc3RyZWFtaW5nGAUgASgIUhFyZXNwb25zZVN0cmVhbWluZxIxCgdvcHRpb25zGAYgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgiLwoFTWl4aW4SEgoEbmFtZRgBIAEoCVIEbmFtZRISCgRyb290GAIgASgJUgRyb290QnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFwaVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FwaXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoA8CgcSBR4AzgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIALgoJCgIDARIDIwAkCggKAQgSAyUAOwoJCgIIJRIDJQA7CggKAQgSAyYALAoJCgIIARIDJgAsCggKAQgSAycAKQoJCgIICBIDJwApCggKAQgSAygAIgoJCgIIChIDKAAiCggKAQgSAykAIQoJCgIIJBIDKQAhCggKAQgSAyoAQwoJCgIICxIDKgBDCqsECgIEABIENQBfARqeBCBBcGkgaXMgYSBsaWdodC13ZWlnaHQgZGVzY3JpcHRvciBmb3IgYW4gQVBJIEludGVyZmFjZS4KCiBJbnRlcmZhY2VzIGFyZSBhbHNvIGRlc2NyaWJlZCBhcyAicHJvdG9jb2wgYnVmZmVyIHNlcnZpY2VzIiBpbiBzb21lIGNvbnRleHRzLAogc3VjaCBhcyBieSB0aGUgInNlcnZpY2UiIGtleXdvcmQgaW4gYSAucHJvdG8gZmlsZSwgYnV0IHRoZXkgYXJlIGRpZmZlcmVudAogZnJvbSBBUEkgU2VydmljZXMsIHdoaWNoIHJlcHJlc2VudCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIGFuIGludGVyZmFjZQogYXMgb3Bwb3NlZCB0byBzaW1wbHkgYSBkZXNjcmlwdGlvbiBvZiBtZXRob2RzIGFuZCBiaW5kaW5ncy4gVGhleSBhcmUgYWxzbwogc29tZXRpbWVzIHNpbXBseSByZWZlcnJlZCB0byBhcyAiQVBJcyIgaW4gb3RoZXIgY29udGV4dHMsIHN1Y2ggYXMgdGhlIG5hbWUgb2YKIHRoaXMgbWVzc2FnZSBpdHNlbGYuIFNlZSBodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vYXBpcy9kZXNpZ24vZ2xvc3NhcnkgZm9yCiBkZXRhaWxlZCB0ZXJtaW5vbG9neS4KCgoKAwQAARIDNQgLCnsKBAQAAgASAzgCEhpuIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGlzIGludGVyZmFjZSwgaW5jbHVkaW5nIHBhY2thZ2UgbmFtZQogZm9sbG93ZWQgYnkgdGhlIGludGVyZmFjZSdzIHNpbXBsZSBuYW1lLgoKDAoFBAACAAUSAzgCCAoMCgUEAAIAARIDOAkNCgwKBQQAAgADEgM4EBEKQwoEBAACARIDOwIeGjYgVGhlIG1ldGhvZHMgb2YgdGhpcyBpbnRlcmZhY2UsIGluIHVuc3BlY2lmaWVkIG9yZGVyLgoKDAoFBAACAQQSAzsCCgoMCgUEAAIBBhIDOwsRCgwKBQQAAgEBEgM7EhkKDAoFBAACAQMSAzscHQo2CgQEAAICEgM+Ah4aKSBBbnkgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIGludGVyZmFjZS4KCgwKBQQAAgIEEgM+AgoKDAoFBAACAgYSAz4LEQoMCgUEAAICARIDPhIZCgwKBQQAAgIDEgM+HB0KgQgKBAQAAgMSA1QCFRrzByBBIHZlcnNpb24gc3RyaW5nIGZvciB0aGlzIGludGVyZmFjZS4gSWYgc3BlY2lmaWVkLCBtdXN0IGhhdmUgdGhlIGZvcm0KIGBtYWpvci12ZXJzaW9uLm1pbm9yLXZlcnNpb25gLCBhcyBpbiBgMS4xMGAuIElmIHRoZSBtaW5vciB2ZXJzaW9uIGlzCiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB6ZXJvLiBJZiB0aGUgZW50aXJlIHZlcnNpb24gZmllbGQgaXMgZW1wdHksIHRoZQogbWFqb3IgdmVyc2lvbiBpcyBkZXJpdmVkIGZyb20gdGhlIHBhY2thZ2UgbmFtZSwgYXMgb3V0bGluZWQgYmVsb3cuIElmIHRoZQogZmllbGQgaXMgbm90IGVtcHR5LCB0aGUgdmVyc2lvbiBpbiB0aGUgcGFja2FnZSBuYW1lIHdpbGwgYmUgdmVyaWZpZWQgdG8gYmUKIGNvbnNpc3RlbnQgd2l0aCB3aGF0IGlzIHByb3ZpZGVkIGhlcmUuCgogVGhlIHZlcnNpb25pbmcgc2NoZW1hIHVzZXMgW3NlbWFudGljCiB2ZXJzaW9uaW5nXShodHRwOi8vc2VtdmVyLm9yZykgd2hlcmUgdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyCiBpbmRpY2F0ZXMgYSBicmVha2luZyBjaGFuZ2UgYW5kIHRoZSBtaW5vciB2ZXJzaW9uIGFuIGFkZGl0aXZlLAogbm9uLWJyZWFraW5nIGNoYW5nZS4gQm90aCB2ZXJzaW9uIG51bWJlcnMgYXJlIHNpZ25hbHMgdG8gdXNlcnMKIHdoYXQgdG8gZXhwZWN0IGZyb20gZGlmZmVyZW50IHZlcnNpb25zLCBhbmQgc2hvdWxkIGJlIGNhcmVmdWxseQogY2hvc2VuIGJhc2VkIG9uIHRoZSBwcm9kdWN0IHBsYW4uCgogVGhlIG1ham9yIHZlcnNpb24gaXMgYWxzbyByZWZsZWN0ZWQgaW4gdGhlIHBhY2thZ2UgbmFtZSBvZiB0aGUKIGludGVyZmFjZSwgd2hpY2ggbXVzdCBlbmQgaW4gYHY8bWFqb3ItdmVyc2lvbj5gLCBhcyBpbgogYGdvb2dsZS5mZWF0dXJlLnYxYC4gRm9yIG1ham9yIHZlcnNpb25zIDAgYW5kIDEsIHRoZSBzdWZmaXggY2FuCiBiZSBvbWl0dGVkLiBaZXJvIG1ham9yIHZlcnNpb25zIG11c3Qgb25seSBiZSB1c2VkIGZvcgogZXhwZXJpbWVudGFsLCBub24tR0EgaW50ZXJmYWNlcy4KCgoMCgUEAAIDBRIDVAIICgwKBQQAAgMBEgNUCRAKDAoFBAACAwMSA1QTFApbCgQEAAIEEgNYAiMaTiBTb3VyY2UgY29udGV4dCBmb3IgdGhlIHByb3RvY29sIGJ1ZmZlciBzZXJ2aWNlIHJlcHJlc2VudGVkIGJ5IHRoaXMKIG1lc3NhZ2UuCgoMCgUEAAIEBhIDWAIPCgwKBQQAAgQBEgNYEB4KDAoFBAACBAMSA1ghIgoyCgQEAAIFEgNbAhwaJSBJbmNsdWRlZCBpbnRlcmZhY2VzLiBTZWUgW01peGluXVtdLgoKDAoFBAACBQQSA1sCCgoMCgUEAAIFBhIDWwsQCgwKBQQAAgUBEgNbERcKDAoFBAACBQMSA1saGwowCgQEAAIGEgNeAhQaIyBUaGUgc291cmNlIHN5bnRheCBvZiB0aGUgc2VydmljZS4KCgwKBQQAAgYGEgNeAggKDAoFBAACBgESA14JDwoMCgUEAAIGAxIDXhITCj0KAgQBEgRiAHcBGjEgTWV0aG9kIHJlcHJlc2VudHMgYSBtZXRob2Qgb2YgYW4gQVBJIGludGVyZmFjZS4KCgoKAwQBARIDYggOCi4KBAQBAgASA2QCEhohIFRoZSBzaW1wbGUgbmFtZSBvZiB0aGlzIG1ldGhvZC4KCgwKBQQBAgAFEgNkAggKDAoFBAECAAESA2QJDQoMCgUEAQIAAxIDZBARCi8KBAQBAgESA2cCHhoiIEEgVVJMIG9mIHRoZSBpbnB1dCBtZXNzYWdlIHR5cGUuCgoMCgUEAQIBBRIDZwIICgwKBQQBAgEBEgNnCRkKDAoFBAECAQMSA2ccHQowCgQEAQICEgNqAh0aIyBJZiB0cnVlLCB0aGUgcmVxdWVzdCBpcyBzdHJlYW1lZC4KCgwKBQQBAgIFEgNqAgYKDAoFBAECAgESA2oHGAoMCgUEAQICAxIDahscCjIKBAQBAgMSA20CHxolIFRoZSBVUkwgb2YgdGhlIG91dHB1dCBtZXNzYWdlIHR5cGUuCgoMCgUEAQIDBRIDbQIICgwKBQQBAgMBEgNtCRoKDAoFBAECAwMSA20dHgoxCgQEAQIEEgNwAh4aJCBJZiB0cnVlLCB0aGUgcmVzcG9uc2UgaXMgc3RyZWFtZWQuCgoMCgUEAQIEBRIDcAIGCgwKBQQBAgQBEgNwBxkKDAoFBAECBAMSA3AcHQozCgQEAQIFEgNzAh4aJiBBbnkgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIG1ldGhvZC4KCgwKBQQBAgUEEgNzAgoKDAoFBAECBQYSA3MLEQoMCgUEAQIFARIDcxIZCgwKBQQBAgUDEgNzHB0KMAoEBAECBhIDdgIUGiMgVGhlIHNvdXJjZSBzeW50YXggb2YgdGhpcyBtZXRob2QuCgoMCgUEAQIGBhIDdgIICgwKBQQBAgYBEgN2CQ8KDAoFBAECBgMSA3YSEwrKEwoCBAISBscBAM4BARq7EyBEZWNsYXJlcyBhbiBBUEkgSW50ZXJmYWNlIHRvIGJlIGluY2x1ZGVkIGluIHRoaXMgaW50ZXJmYWNlLiBUaGUgaW5jbHVkaW5nCiBpbnRlcmZhY2UgbXVzdCByZWRlY2xhcmUgYWxsIHRoZSBtZXRob2RzIGZyb20gdGhlIGluY2x1ZGVkIGludGVyZmFjZSwgYnV0CiBkb2N1bWVudGF0aW9uIGFuZCBvcHRpb25zIGFyZSBpbmhlcml0ZWQgYXMgZm9sbG93czoKCiAtIElmIGFmdGVyIGNvbW1lbnQgYW5kIHdoaXRlc3BhY2Ugc3RyaXBwaW5nLCB0aGUgZG9jdW1lbnRhdGlvbgogICBzdHJpbmcgb2YgdGhlIHJlZGVjbGFyZWQgbWV0aG9kIGlzIGVtcHR5LCBpdCB3aWxsIGJlIGluaGVyaXRlZAogICBmcm9tIHRoZSBvcmlnaW5hbCBtZXRob2QuCgogLSBFYWNoIGFubm90YXRpb24gYmVsb25naW5nIHRvIHRoZSBzZXJ2aWNlIGNvbmZpZyAoaHR0cCwKICAgdmlzaWJpbGl0eSkgd2hpY2ggaXMgbm90IHNldCBpbiB0aGUgcmVkZWNsYXJlZCBtZXRob2Qgd2lsbCBiZQogICBpbmhlcml0ZWQuCgogLSBJZiBhbiBodHRwIGFubm90YXRpb24gaXMgaW5oZXJpdGVkLCB0aGUgcGF0aCBwYXR0ZXJuIHdpbGwgYmUKICAgbW9kaWZpZWQgYXMgZm9sbG93cy4gQW55IHZlcnNpb24gcHJlZml4IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlCiAgIHZlcnNpb24gb2YgdGhlIGluY2x1ZGluZyBpbnRlcmZhY2UgcGx1cyB0aGUgW3Jvb3RdW10gcGF0aCBpZgogICBzcGVjaWZpZWQuCgogRXhhbXBsZSBvZiBhIHNpbXBsZSBtaXhpbjoKCiAgICAgcGFja2FnZSBnb29nbGUuYWNsLnYxOwogICAgIHNlcnZpY2UgQWNjZXNzQ29udHJvbCB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YxL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICB9CgogICAgIHBhY2thZ2UgZ29vZ2xlLnN0b3JhZ2UudjI7CiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKTsKCiAgICAgICAvLyBHZXQgYSBkYXRhIHJlY29yZC4KICAgICAgIHJwYyBHZXREYXRhKEdldERhdGFSZXF1ZXN0KSByZXR1cm5zIChEYXRhKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL3tyZXNvdXJjZT0qKn0iOwogICAgICAgfQogICAgIH0KCiBFeGFtcGxlIG9mIGEgbWl4aW4gY29uZmlndXJhdGlvbjoKCiAgICAgYXBpczoKICAgICAtIG5hbWU6IGdvb2dsZS5zdG9yYWdlLnYyLlN0b3JhZ2UKICAgICAgIG1peGluczoKICAgICAgIC0gbmFtZTogZ29vZ2xlLmFjbC52MS5BY2Nlc3NDb250cm9sCgogVGhlIG1peGluIGNvbnN0cnVjdCBpbXBsaWVzIHRoYXQgYWxsIG1ldGhvZHMgaW4gYEFjY2Vzc0NvbnRyb2xgIGFyZQogYWxzbyBkZWNsYXJlZCB3aXRoIHNhbWUgbmFtZSBhbmQgcmVxdWVzdC9yZXNwb25zZSB0eXBlcyBpbgogYFN0b3JhZ2VgLiBBIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIG9yIGFubm90YXRpb24gcHJvY2Vzc29yIHdpbGwKIHNlZSB0aGUgZWZmZWN0aXZlIGBTdG9yYWdlLkdldEFjbGAgbWV0aG9kIGFmdGVyIGluaGVyaXRpbmcKIGRvY3VtZW50YXRpb24gYW5kIGFubm90YXRpb25zIGFzIGZvbGxvd3M6CgogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICAgIC4uLgogICAgIH0KCiBOb3RlIGhvdyB0aGUgdmVyc2lvbiBpbiB0aGUgcGF0aCBwYXR0ZXJuIGNoYW5nZWQgZnJvbSBgdjFgIHRvIGB2MmAuCgogSWYgdGhlIGByb290YCBmaWVsZCBpbiB0aGUgbWl4aW4gaXMgc3BlY2lmaWVkLCBpdCBzaG91bGQgYmUgYQogcmVsYXRpdmUgcGF0aCB1bmRlciB3aGljaCBpbmhlcml0ZWQgSFRUUCBwYXRocyBhcmUgcGxhY2VkLiBFeGFtcGxlOgoKICAgICBhcGlzOgogICAgIC0gbmFtZTogZ29vZ2xlLnN0b3JhZ2UudjIuU3RvcmFnZQogICAgICAgbWl4aW5zOgogICAgICAgLSBuYW1lOiBnb29nbGUuYWNsLnYxLkFjY2Vzc0NvbnRyb2wKICAgICAgICAgcm9vdDogYWNscwoKIFRoaXMgaW1wbGllcyB0aGUgZm9sbG93aW5nIGluaGVyaXRlZCBIVFRQIGFubm90YXRpb246CgogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL2FjbHMve3Jlc291cmNlPSoqfTpnZXRBY2wiOwogICAgICAgfQogICAgICAgLi4uCiAgICAgfQoKCwoDBAIBEgTHAQgNCkwKBAQCAgASBMkBAhIaPiBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGludGVyZmFjZSB3aGljaCBpcyBpbmNsdWRlZC4KCg0KBQQCAgAFEgTJAQIICg0KBQQCAgABEgTJAQkNCg0KBQQCAgADEgTJARARClsKBAQCAgESBM0BAhIaTSBJZiBub24tZW1wdHkgc3BlY2lmaWVzIGEgcGF0aCB1bmRlciB3aGljaCBpbmhlcml0ZWQgSFRUUCBwYXRocwogYXJlIHJvb3RlZC4KCg0KBQQCAgEFEgTNAQIICg0KBQQCAgEBEgTNAQkNCg0KBQQCAgEDEgTNARARYgZwcm90bzMK1yUKHmdvb2dsZS9wcm90b2J1Zi9kdXJhdGlvbi5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjoKCER1cmF0aW9uEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQoMBChNjb20uZ29vZ2xlLnByb3RvYnVmQg1EdXJhdGlvblByb3RvUAFaMWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2R1cmF0aW9ucGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK2SMKBhIEHgByAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAHwoJCgIIHxIDIwAfCggKAQgSAyQASAoJCgIICxIDJABICggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYALgoJCgIICBIDJgAuCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCp0QCgIEABIEZQByARqQECBBIER1cmF0aW9uIHJlcHJlc2VudHMgYSBzaWduZWQsIGZpeGVkLWxlbmd0aCBzcGFuIG9mIHRpbWUgcmVwcmVzZW50ZWQKIGFzIGEgY291bnQgb2Ygc2Vjb25kcyBhbmQgZnJhY3Rpb25zIG9mIHNlY29uZHMgYXQgbmFub3NlY29uZAogcmVzb2x1dGlvbi4gSXQgaXMgaW5kZXBlbmRlbnQgb2YgYW55IGNhbGVuZGFyIGFuZCBjb25jZXB0cyBsaWtlICJkYXkiCiBvciAibW9udGgiLiBJdCBpcyByZWxhdGVkIHRvIFRpbWVzdGFtcCBpbiB0aGF0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KIHR3byBUaW1lc3RhbXAgdmFsdWVzIGlzIGEgRHVyYXRpb24gYW5kIGl0IGNhbiBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkCiBmcm9tIGEgVGltZXN0YW1wLiBSYW5nZSBpcyBhcHByb3hpbWF0ZWx5ICstMTAsMDAwIHllYXJzLgoKICMgRXhhbXBsZXMKCiBFeGFtcGxlIDE6IENvbXB1dGUgRHVyYXRpb24gZnJvbSB0d28gVGltZXN0YW1wcyBpbiBwc2V1ZG8gY29kZS4KCiAgICAgVGltZXN0YW1wIHN0YXJ0ID0gLi4uOwogICAgIFRpbWVzdGFtcCBlbmQgPSAuLi47CiAgICAgRHVyYXRpb24gZHVyYXRpb24gPSAuLi47CgogICAgIGR1cmF0aW9uLnNlY29uZHMgPSBlbmQuc2Vjb25kcyAtIHN0YXJ0LnNlY29uZHM7CiAgICAgZHVyYXRpb24ubmFub3MgPSBlbmQubmFub3MgLSBzdGFydC5uYW5vczsKCiAgICAgaWYgKGR1cmF0aW9uLnNlY29uZHMgPCAwICYmIGR1cmF0aW9uLm5hbm9zID4gMCkgewogICAgICAgZHVyYXRpb24uc2Vjb25kcyArPSAxOwogICAgICAgZHVyYXRpb24ubmFub3MgLT0gMTAwMDAwMDAwMDsKICAgICB9IGVsc2UgaWYgKGR1cmF0aW9uLnNlY29uZHMgPiAwICYmIGR1cmF0aW9uLm5hbm9zIDwgMCkgewogICAgICAgZHVyYXRpb24uc2Vjb25kcyAtPSAxOwogICAgICAgZHVyYXRpb24ubmFub3MgKz0gMTAwMDAwMDAwMDsKICAgICB9CgogRXhhbXBsZSAyOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFRpbWVzdGFtcCArIER1cmF0aW9uIGluIHBzZXVkbyBjb2RlLgoKICAgICBUaW1lc3RhbXAgc3RhcnQgPSAuLi47CiAgICAgRHVyYXRpb24gZHVyYXRpb24gPSAuLi47CiAgICAgVGltZXN0YW1wIGVuZCA9IC4uLjsKCiAgICAgZW5kLnNlY29uZHMgPSBzdGFydC5zZWNvbmRzICsgZHVyYXRpb24uc2Vjb25kczsKICAgICBlbmQubmFub3MgPSBzdGFydC5uYW5vcyArIGR1cmF0aW9uLm5hbm9zOwoKICAgICBpZiAoZW5kLm5hbm9zIDwgMCkgewogICAgICAgZW5kLnNlY29uZHMgLT0gMTsKICAgICAgIGVuZC5uYW5vcyArPSAxMDAwMDAwMDAwOwogICAgIH0gZWxzZSBpZiAoZW5kLm5hbm9zID49IDEwMDAwMDAwMDApIHsKICAgICAgIGVuZC5zZWNvbmRzICs9IDE7CiAgICAgICBlbmQubmFub3MgLT0gMTAwMDAwMDAwMDsKICAgICB9CgogRXhhbXBsZSAzOiBDb21wdXRlIER1cmF0aW9uIGZyb20gZGF0ZXRpbWUudGltZWRlbHRhIGluIFB5dGhvbi4KCiAgICAgdGQgPSBkYXRldGltZS50aW1lZGVsdGEoZGF5cz0zLCBtaW51dGVzPTEwKQogICAgIGR1cmF0aW9uID0gRHVyYXRpb24oKQogICAgIGR1cmF0aW9uLkZyb21UaW1lZGVsdGEodGQpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIER1cmF0aW9uIHR5cGUgaXMgZW5jb2RlZCBhcyBhIHN0cmluZyByYXRoZXIgdGhhbiBhbgogb2JqZWN0LCB3aGVyZSB0aGUgc3RyaW5nIGVuZHMgaW4gdGhlIHN1ZmZpeCAicyIgKGluZGljYXRpbmcgc2Vjb25kcykgYW5kCiBpcyBwcmVjZWRlZCBieSB0aGUgbnVtYmVyIG9mIHNlY29uZHMsIHdpdGggbmFub3NlY29uZHMgZXhwcmVzc2VkIGFzCiBmcmFjdGlvbmFsIHNlY29uZHMuIEZvciBleGFtcGxlLCAzIHNlY29uZHMgd2l0aCAwIG5hbm9zZWNvbmRzIHNob3VsZCBiZQogZW5jb2RlZCBpbiBKU09OIGZvcm1hdCBhcyAiM3MiLCB3aGlsZSAzIHNlY29uZHMgYW5kIDEgbmFub3NlY29uZCBzaG91bGQKIGJlIGV4cHJlc3NlZCBpbiBKU09OIGZvcm1hdCBhcyAiMy4wMDAwMDAwMDFzIiwgYW5kIDMgc2Vjb25kcyBhbmQgMQogbWljcm9zZWNvbmQgc2hvdWxkIGJlIGV4cHJlc3NlZCBpbiBKU09OIGZvcm1hdCBhcyAiMy4wMDAwMDFzIi4KCgoKCgMEAAESA2UIEArcAQoEBAACABIDaQIUGs4BIFNpZ25lZCBzZWNvbmRzIG9mIHRoZSBzcGFuIG9mIHRpbWUuIE11c3QgYmUgZnJvbSAtMzE1LDU3NiwwMDAsMDAwCiB0byArMzE1LDU3NiwwMDAsMDAwIGluY2x1c2l2ZS4gTm90ZTogdGhlc2UgYm91bmRzIGFyZSBjb21wdXRlZCBmcm9tOgogNjAgc2VjL21pbiAqIDYwIG1pbi9ociAqIDI0IGhyL2RheSAqIDM2NS4yNSBkYXlzL3llYXIgKiAxMDAwMCB5ZWFycwoKDAoFBAACAAUSA2kCBwoMCgUEAAIAARIDaQgPCgwKBQQAAgADEgNpEhMKgwMKBAQAAgESA3ECEhr1AiBTaWduZWQgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbiBvZiB0aGUgc3Bhbgogb2YgdGltZS4gRHVyYXRpb25zIGxlc3MgdGhhbiBvbmUgc2Vjb25kIGFyZSByZXByZXNlbnRlZCB3aXRoIGEgMAogYHNlY29uZHNgIGZpZWxkIGFuZCBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGBuYW5vc2AgZmllbGQuIEZvciBkdXJhdGlvbnMKIG9mIG9uZSBzZWNvbmQgb3IgbW9yZSwgYSBub24temVybyB2YWx1ZSBmb3IgdGhlIGBuYW5vc2AgZmllbGQgbXVzdCBiZQogb2YgdGhlIHNhbWUgc2lnbiBhcyB0aGUgYHNlY29uZHNgIGZpZWxkLiBNdXN0IGJlIGZyb20gLTk5OSw5OTksOTk5CiB0byArOTk5LDk5OSw5OTkgaW5jbHVzaXZlLgoKDAoFBAACAQUSA3ECBwoMCgUEAAIBARIDcQgNCgwKBQQAAgEDEgNxEBFiBnByb3RvMwr/EQobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvEg9nb29nbGUucHJvdG9idWYiBwoFRW1wdHlCfQoTY29tLmdvb2dsZS5wcm90b2J1ZkIKRW1wdHlQcm90b1ABWi5nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9lbXB0eXBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSr4QCgYSBB4AMhAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAEUKCQoCCAsSAyMARQoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlACsKCQoCCAgSAyUAKwoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQoICgEIEgMoAB8KCQoCCB8SAygAHwq7AgoCBAASAzIAEBqvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCgoKCgMEAAESAzIIDWIGcHJvdG8zCoo9CiBnb29nbGUvcHJvdG9idWYvZmllbGRfbWFzay5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiEKCUZpZWxkTWFzaxIUCgVwYXRocxgBIAMoCVIFcGF0aHNChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDkZpZWxkTWFza1Byb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2ZpZWxkbWFza3Bi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSqE7CgcSBR4A9AEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAsCgkKAggBEgMjACwKCAoBCBIDJAAvCgkKAggIEgMkAC8KCAoBCBIDJQAiCgkKAggKEgMlACIKCAoBCBIDJgAhCgkKAggkEgMmACEKCAoBCBIDJwBJCgkKAggLEgMnAEkKCAoBCBIDKAAfCgkKAggfEgMoAB8KsiwKAgQAEgbxAQD0AQEaoywgYEZpZWxkTWFza2AgcmVwcmVzZW50cyBhIHNldCBvZiBzeW1ib2xpYyBmaWVsZCBwYXRocywgZm9yIGV4YW1wbGU6CgogICAgIHBhdGhzOiAiZi5hIgogICAgIHBhdGhzOiAiZi5iLmQiCgogSGVyZSBgZmAgcmVwcmVzZW50cyBhIGZpZWxkIGluIHNvbWUgcm9vdCBtZXNzYWdlLCBgYWAgYW5kIGBiYAogZmllbGRzIGluIHRoZSBtZXNzYWdlIGZvdW5kIGluIGBmYCwgYW5kIGBkYCBhIGZpZWxkIGZvdW5kIGluIHRoZQogbWVzc2FnZSBpbiBgZi5iYC4KCiBGaWVsZCBtYXNrcyBhcmUgdXNlZCB0byBzcGVjaWZ5IGEgc3Vic2V0IG9mIGZpZWxkcyB0aGF0IHNob3VsZCBiZQogcmV0dXJuZWQgYnkgYSBnZXQgb3BlcmF0aW9uIG9yIG1vZGlmaWVkIGJ5IGFuIHVwZGF0ZSBvcGVyYXRpb24uCiBGaWVsZCBtYXNrcyBhbHNvIGhhdmUgYSBjdXN0b20gSlNPTiBlbmNvZGluZyAoc2VlIGJlbG93KS4KCiAjIEZpZWxkIE1hc2tzIGluIFByb2plY3Rpb25zCgogV2hlbiB1c2VkIGluIHRoZSBjb250ZXh0IG9mIGEgcHJvamVjdGlvbiwgYSByZXNwb25zZSBtZXNzYWdlIG9yCiBzdWItbWVzc2FnZSBpcyBmaWx0ZXJlZCBieSB0aGUgQVBJIHRvIG9ubHkgY29udGFpbiB0aG9zZSBmaWVsZHMgYXMKIHNwZWNpZmllZCBpbiB0aGUgbWFzay4gRm9yIGV4YW1wbGUsIGlmIHRoZSBtYXNrIGluIHRoZSBwcmV2aW91cwogZXhhbXBsZSBpcyBhcHBsaWVkIHRvIGEgcmVzcG9uc2UgbWVzc2FnZSBhcyBmb2xsb3dzOgoKICAgICBmIHsKICAgICAgIGEgOiAyMgogICAgICAgYiB7CiAgICAgICAgIGQgOiAxCiAgICAgICAgIHggOiAyCiAgICAgICB9CiAgICAgICB5IDogMTMKICAgICB9CiAgICAgejogOAoKIFRoZSByZXN1bHQgd2lsbCBub3QgY29udGFpbiBzcGVjaWZpYyB2YWx1ZXMgZm9yIGZpZWxkcyB4LHkgYW5kIHoKICh0aGVpciB2YWx1ZSB3aWxsIGJlIHNldCB0byB0aGUgZGVmYXVsdCwgYW5kIG9taXR0ZWQgaW4gcHJvdG8gdGV4dAogb3V0cHV0KToKCgogICAgIGYgewogICAgICAgYSA6IDIyCiAgICAgICBiIHsKICAgICAgICAgZCA6IDEKICAgICAgIH0KICAgICB9CgogQSByZXBlYXRlZCBmaWVsZCBpcyBub3QgYWxsb3dlZCBleGNlcHQgYXQgdGhlIGxhc3QgcG9zaXRpb24gb2YgYQogcGF0aHMgc3RyaW5nLgoKIElmIGEgRmllbGRNYXNrIG9iamVjdCBpcyBub3QgcHJlc2VudCBpbiBhIGdldCBvcGVyYXRpb24sIHRoZQogb3BlcmF0aW9uIGFwcGxpZXMgdG8gYWxsIGZpZWxkcyAoYXMgaWYgYSBGaWVsZE1hc2sgb2YgYWxsIGZpZWxkcwogaGFkIGJlZW4gc3BlY2lmaWVkKS4KCiBOb3RlIHRoYXQgYSBmaWVsZCBtYXNrIGRvZXMgbm90IG5lY2Vzc2FyaWx5IGFwcGx5IHRvIHRoZQogdG9wLWxldmVsIHJlc3BvbnNlIG1lc3NhZ2UuIEluIGNhc2Ugb2YgYSBSRVNUIGdldCBvcGVyYXRpb24sIHRoZQogZmllbGQgbWFzayBhcHBsaWVzIGRpcmVjdGx5IHRvIHRoZSByZXNwb25zZSwgYnV0IGluIGNhc2Ugb2YgYSBSRVNUCiBsaXN0IG9wZXJhdGlvbiwgdGhlIG1hc2sgaW5zdGVhZCBhcHBsaWVzIHRvIGVhY2ggaW5kaXZpZHVhbCBtZXNzYWdlCiBpbiB0aGUgcmV0dXJuZWQgcmVzb3VyY2UgbGlzdC4gSW4gY2FzZSBvZiBhIFJFU1QgY3VzdG9tIG1ldGhvZCwKIG90aGVyIGRlZmluaXRpb25zIG1heSBiZSB1c2VkLiBXaGVyZSB0aGUgbWFzayBhcHBsaWVzIHdpbGwgYmUKIGNsZWFybHkgZG9jdW1lbnRlZCB0b2dldGhlciB3aXRoIGl0cyBkZWNsYXJhdGlvbiBpbiB0aGUgQVBJLiAgSW4KIGFueSBjYXNlLCB0aGUgZWZmZWN0IG9uIHRoZSByZXR1cm5lZCByZXNvdXJjZS9yZXNvdXJjZXMgaXMgcmVxdWlyZWQKIGJlaGF2aW9yIGZvciBBUElzLgoKICMgRmllbGQgTWFza3MgaW4gVXBkYXRlIE9wZXJhdGlvbnMKCiBBIGZpZWxkIG1hc2sgaW4gdXBkYXRlIG9wZXJhdGlvbnMgc3BlY2lmaWVzIHdoaWNoIGZpZWxkcyBvZiB0aGUKIHRhcmdldGVkIHJlc291cmNlIGFyZSBnb2luZyB0byBiZSB1cGRhdGVkLiBUaGUgQVBJIGlzIHJlcXVpcmVkCiB0byBvbmx5IGNoYW5nZSB0aGUgdmFsdWVzIG9mIHRoZSBmaWVsZHMgYXMgc3BlY2lmaWVkIGluIHRoZSBtYXNrCiBhbmQgbGVhdmUgdGhlIG90aGVycyB1bnRvdWNoZWQuIElmIGEgcmVzb3VyY2UgaXMgcGFzc2VkIGluIHRvCiBkZXNjcmliZSB0aGUgdXBkYXRlZCB2YWx1ZXMsIHRoZSBBUEkgaWdub3JlcyB0aGUgdmFsdWVzIG9mIGFsbAogZmllbGRzIG5vdCBjb3ZlcmVkIGJ5IHRoZSBtYXNrLgoKIElmIGEgcmVwZWF0ZWQgZmllbGQgaXMgc3BlY2lmaWVkIGZvciBhbiB1cGRhdGUgb3BlcmF0aW9uLCBuZXcgdmFsdWVzIHdpbGwKIGJlIGFwcGVuZGVkIHRvIHRoZSBleGlzdGluZyByZXBlYXRlZCBmaWVsZCBpbiB0aGUgdGFyZ2V0IHJlc291cmNlLiBOb3RlIHRoYXQKIGEgcmVwZWF0ZWQgZmllbGQgaXMgb25seSBhbGxvd2VkIGluIHRoZSBsYXN0IHBvc2l0aW9uIG9mIGEgYHBhdGhzYCBzdHJpbmcuCgogSWYgYSBzdWItbWVzc2FnZSBpcyBzcGVjaWZpZWQgaW4gdGhlIGxhc3QgcG9zaXRpb24gb2YgdGhlIGZpZWxkIG1hc2sgZm9yIGFuCiB1cGRhdGUgb3BlcmF0aW9uLCB0aGVuIG5ldyB2YWx1ZSB3aWxsIGJlIG1lcmdlZCBpbnRvIHRoZSBleGlzdGluZyBzdWItbWVzc2FnZQogaW4gdGhlIHRhcmdldCByZXNvdXJjZS4KCiBGb3IgZXhhbXBsZSwgZ2l2ZW4gdGhlIHRhcmdldCBtZXNzYWdlOgoKICAgICBmIHsKICAgICAgIGIgewogICAgICAgICBkOiAxCiAgICAgICAgIHg6IDIKICAgICAgIH0KICAgICAgIGM6IFsxXQogICAgIH0KCiBBbmQgYW4gdXBkYXRlIG1lc3NhZ2U6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEwCiAgICAgICB9CiAgICAgICBjOiBbMl0KICAgICB9CgogdGhlbiBpZiB0aGUgZmllbGQgbWFzayBpczoKCiAgcGF0aHM6IFsiZi5iIiwgImYuYyJdCgogdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmU6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEwCiAgICAgICAgIHg6IDIKICAgICAgIH0KICAgICAgIGM6IFsxLCAyXQogICAgIH0KCiBBbiBpbXBsZW1lbnRhdGlvbiBtYXkgcHJvdmlkZSBvcHRpb25zIHRvIG92ZXJyaWRlIHRoaXMgZGVmYXVsdCBiZWhhdmlvciBmb3IKIHJlcGVhdGVkIGFuZCBtZXNzYWdlIGZpZWxkcy4KCiBJbiBvcmRlciB0byByZXNldCBhIGZpZWxkJ3MgdmFsdWUgdG8gdGhlIGRlZmF1bHQsIHRoZSBmaWVsZCBtdXN0CiBiZSBpbiB0aGUgbWFzayBhbmQgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlIGluIHRoZSBwcm92aWRlZCByZXNvdXJjZS4KIEhlbmNlLCBpbiBvcmRlciB0byByZXNldCBhbGwgZmllbGRzIG9mIGEgcmVzb3VyY2UsIHByb3ZpZGUgYSBkZWZhdWx0CiBpbnN0YW5jZSBvZiB0aGUgcmVzb3VyY2UgYW5kIHNldCBhbGwgZmllbGRzIGluIHRoZSBtYXNrLCBvciBkbwogbm90IHByb3ZpZGUgYSBtYXNrIGFzIGRlc2NyaWJlZCBiZWxvdy4KCiBJZiBhIGZpZWxkIG1hc2sgaXMgbm90IHByZXNlbnQgb24gdXBkYXRlLCB0aGUgb3BlcmF0aW9uIGFwcGxpZXMgdG8KIGFsbCBmaWVsZHMgKGFzIGlmIGEgZmllbGQgbWFzayBvZiBhbGwgZmllbGRzIGhhcyBiZWVuIHNwZWNpZmllZCkuCiBOb3RlIHRoYXQgaW4gdGhlIHByZXNlbmNlIG9mIHNjaGVtYSBldm9sdXRpb24sIHRoaXMgbWF5IG1lYW4gdGhhdAogZmllbGRzIHRoZSBjbGllbnQgZG9lcyBub3Qga25vdyBhbmQgaGFzIHRoZXJlZm9yZSBub3QgZmlsbGVkIGludG8KIHRoZSByZXF1ZXN0IHdpbGwgYmUgcmVzZXQgdG8gdGhlaXIgZGVmYXVsdC4gSWYgdGhpcyBpcyB1bndhbnRlZAogYmVoYXZpb3IsIGEgc3BlY2lmaWMgc2VydmljZSBtYXkgcmVxdWlyZSBhIGNsaWVudCB0byBhbHdheXMgc3BlY2lmeQogYSBmaWVsZCBtYXNrLCBwcm9kdWNpbmcgYW4gZXJyb3IgaWYgbm90LgoKIEFzIHdpdGggZ2V0IG9wZXJhdGlvbnMsIHRoZSBsb2NhdGlvbiBvZiB0aGUgcmVzb3VyY2Ugd2hpY2gKIGRlc2NyaWJlcyB0aGUgdXBkYXRlZCB2YWx1ZXMgaW4gdGhlIHJlcXVlc3QgbWVzc2FnZSBkZXBlbmRzIG9uIHRoZQogb3BlcmF0aW9uIGtpbmQuIEluIGFueSBjYXNlLCB0aGUgZWZmZWN0IG9mIHRoZSBmaWVsZCBtYXNrIGlzCiByZXF1aXJlZCB0byBiZSBob25vcmVkIGJ5IHRoZSBBUEkuCgogIyMgQ29uc2lkZXJhdGlvbnMgZm9yIEhUVFAgUkVTVAoKIFRoZSBIVFRQIGtpbmQgb2YgYW4gdXBkYXRlIG9wZXJhdGlvbiB3aGljaCB1c2VzIGEgZmllbGQgbWFzayBtdXN0CiBiZSBzZXQgdG8gUEFUQ0ggaW5zdGVhZCBvZiBQVVQgaW4gb3JkZXIgdG8gc2F0aXNmeSBIVFRQIHNlbWFudGljcwogKFBVVCBtdXN0IG9ubHkgYmUgdXNlZCBmb3IgZnVsbCB1cGRhdGVzKS4KCiAjIEpTT04gRW5jb2Rpbmcgb2YgRmllbGQgTWFza3MKCiBJbiBKU09OLCBhIGZpZWxkIG1hc2sgaXMgZW5jb2RlZCBhcyBhIHNpbmdsZSBzdHJpbmcgd2hlcmUgcGF0aHMgYXJlCiBzZXBhcmF0ZWQgYnkgYSBjb21tYS4gRmllbGRzIG5hbWUgaW4gZWFjaCBwYXRoIGFyZSBjb252ZXJ0ZWQKIHRvL2Zyb20gbG93ZXItY2FtZWwgbmFtaW5nIGNvbnZlbnRpb25zLgoKIEFzIGFuIGV4YW1wbGUsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgbWVzc2FnZSBkZWNsYXJhdGlvbnM6CgogICAgIG1lc3NhZ2UgUHJvZmlsZSB7CiAgICAgICBVc2VyIHVzZXIgPSAxOwogICAgICAgUGhvdG8gcGhvdG8gPSAyOwogICAgIH0KICAgICBtZXNzYWdlIFVzZXIgewogICAgICAgc3RyaW5nIGRpc3BsYXlfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgYWRkcmVzcyA9IDI7CiAgICAgfQoKIEluIHByb3RvIGEgZmllbGQgbWFzayBmb3IgYFByb2ZpbGVgIG1heSBsb29rIGFzIHN1Y2g6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJ1c2VyLmRpc3BsYXlfbmFtZSIKICAgICAgIHBhdGhzOiAicGhvdG8iCiAgICAgfQoKIEluIEpTT04sIHRoZSBzYW1lIG1hc2sgaXMgcmVwcmVzZW50ZWQgYXMgYmVsb3c6CgogICAgIHsKICAgICAgIG1hc2s6ICJ1c2VyLmRpc3BsYXlOYW1lLHBob3RvIgogICAgIH0KCiAjIEZpZWxkIE1hc2tzIGFuZCBPbmVvZiBGaWVsZHMKCiBGaWVsZCBtYXNrcyB0cmVhdCBmaWVsZHMgaW4gb25lb2ZzIGp1c3QgYXMgcmVndWxhciBmaWVsZHMuIENvbnNpZGVyIHRoZQogZm9sbG93aW5nIG1lc3NhZ2U6CgogICAgIG1lc3NhZ2UgU2FtcGxlTWVzc2FnZSB7CiAgICAgICBvbmVvZiB0ZXN0X29uZW9mIHsKICAgICAgICAgc3RyaW5nIG5hbWUgPSA0OwogICAgICAgICBTdWJNZXNzYWdlIHN1Yl9tZXNzYWdlID0gOTsKICAgICAgIH0KICAgICB9CgogVGhlIGZpZWxkIG1hc2sgY2FuIGJlOgoKICAgICBtYXNrIHsKICAgICAgIHBhdGhzOiAibmFtZSIKICAgICB9CgogT3I6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJzdWJfbWVzc2FnZSIKICAgICB9CgogTm90ZSB0aGF0IG9uZW9mIHR5cGUgbmFtZXMgKCJ0ZXN0X29uZW9mIiBpbiB0aGlzIGNhc2UpIGNhbm5vdCBiZSB1c2VkIGluCiBwYXRocy4KCiAjIyBGaWVsZCBNYXNrIFZlcmlmaWNhdGlvbgoKIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBhbnkgQVBJIG1ldGhvZCB3aGljaCBoYXMgYSBGaWVsZE1hc2sgdHlwZSBmaWVsZCBpbiB0aGUKIHJlcXVlc3Qgc2hvdWxkIHZlcmlmeSB0aGUgaW5jbHVkZWQgZmllbGQgcGF0aHMsIGFuZCByZXR1cm4gYW4KIGBJTlZBTElEX0FSR1VNRU5UYCBlcnJvciBpZiBhbnkgcGF0aCBpcyB1bm1hcHBhYmxlLgoKCwoDBAABEgTxAQgRCiwKBAQAAgASBPMBAhwaHiBUaGUgc2V0IG9mIGZpZWxkIG1hc2sgcGF0aHMuCgoNCgUEAAIABBIE8wECCgoNCgUEAAIABRIE8wELEQoNCgUEAAIAARIE8wESFwoNCgUEAAIAAxIE8wEaG2IGcHJvdG8zCsQxCh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiOwoJVGltZXN0YW1wEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQoUBChNjb20uZ29vZ2xlLnByb3RvYnVmQg5UaW1lc3RhbXBQcm90b1ABWjJnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90aW1lc3RhbXBwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rCLwoHEgUeAI8BAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAHwoJCgIIHxIDIwAfCggKAQgSAyQASQoJCgIICxIDJABJCggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYALwoJCgIICBIDJgAvCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCtsdCgIEABIGhAEAjwEBGswdIEEgVGltZXN0YW1wIHJlcHJlc2VudHMgYSBwb2ludCBpbiB0aW1lIGluZGVwZW5kZW50IG9mIGFueSB0aW1lIHpvbmUgb3IgbG9jYWwKIGNhbGVuZGFyLCBlbmNvZGVkIGFzIGEgY291bnQgb2Ygc2Vjb25kcyBhbmQgZnJhY3Rpb25zIG9mIHNlY29uZHMgYXQKIG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gVGhlIGNvdW50IGlzIHJlbGF0aXZlIHRvIGFuIGVwb2NoIGF0IFVUQyBtaWRuaWdodCBvbgogSmFudWFyeSAxLCAxOTcwLCBpbiB0aGUgcHJvbGVwdGljIEdyZWdvcmlhbiBjYWxlbmRhciB3aGljaCBleHRlbmRzIHRoZQogR3JlZ29yaWFuIGNhbGVuZGFyIGJhY2t3YXJkcyB0byB5ZWFyIG9uZS4KCiBBbGwgbWludXRlcyBhcmUgNjAgc2Vjb25kcyBsb25nLiBMZWFwIHNlY29uZHMgYXJlICJzbWVhcmVkIiBzbyB0aGF0IG5vIGxlYXAKIHNlY29uZCB0YWJsZSBpcyBuZWVkZWQgZm9yIGludGVycHJldGF0aW9uLCB1c2luZyBhIFsyNC1ob3VyIGxpbmVhcgogc21lYXJdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3RpbWUvc21lYXIpLgoKIFRoZSByYW5nZSBpcyBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvIDk5OTktMTItMzFUMjM6NTk6NTkuOTk5OTk5OTk5Wi4gQnkKIHJlc3RyaWN0aW5nIHRvIHRoYXQgcmFuZ2UsIHdlIGVuc3VyZSB0aGF0IHdlIGNhbiBjb252ZXJ0IHRvIGFuZCBmcm9tIFtSRkMKIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZGF0ZSBzdHJpbmdzLgoKICMgRXhhbXBsZXMKCiBFeGFtcGxlIDE6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYHRpbWUoKWAuCgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHRpbWUoTlVMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoMCk7CgogRXhhbXBsZSAyOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGBnZXR0aW1lb2ZkYXkoKWAuCgogICAgIHN0cnVjdCB0aW1ldmFsIHR2OwogICAgIGdldHRpbWVvZmRheSgmdHYsIE5VTEwpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0di50dl9zZWMpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3ModHYudHZfdXNlYyAqIDEwMDApOwoKIEV4YW1wbGUgMzogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBXaW4zMiBgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoKWAuCgogICAgIEZJTEVUSU1FIGZ0OwogICAgIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCZmdCk7CiAgICAgVUlOVDY0IHRpY2tzID0gKCgoVUlOVDY0KWZ0LmR3SGlnaERhdGVUaW1lKSA8PCAzMikgfCBmdC5kd0xvd0RhdGVUaW1lOwoKICAgICAvLyBBIFdpbmRvd3MgdGljayBpcyAxMDAgbmFub3NlY29uZHMuIFdpbmRvd3MgZXBvY2ggMTYwMS0wMS0wMVQwMDowMDowMFoKICAgICAvLyBpcyAxMTY0NDQ3MzYwMCBzZWNvbmRzIGJlZm9yZSBVbml4IGVwb2NoIDE5NzAtMDEtMDFUMDA6MDA6MDBaLgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKChJTlQ2NCkgKCh0aWNrcyAvIDEwMDAwMDAwKSAtIDExNjQ0NDczNjAwTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKChJTlQzMikgKCh0aWNrcyAlIDEwMDAwMDAwKSAqIDEwMCkpOwoKIEV4YW1wbGUgNDogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBKYXZhIGBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKWAuCgogICAgIGxvbmcgbWlsbGlzID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXAgPSBUaW1lc3RhbXAubmV3QnVpbGRlcigpLnNldFNlY29uZHMobWlsbGlzIC8gMTAwMCkKICAgICAgICAgLnNldE5hbm9zKChpbnQpICgobWlsbGlzICUgMTAwMCkgKiAxMDAwMDAwKSkuYnVpbGQoKTsKCiBFeGFtcGxlIDU6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gSmF2YSBgSW5zdGFudC5ub3coKWAuCgogICAgIEluc3RhbnQgbm93ID0gSW5zdGFudC5ub3coKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcCA9CiAgICAgICAgIFRpbWVzdGFtcC5uZXdCdWlsZGVyKCkuc2V0U2Vjb25kcyhub3cuZ2V0RXBvY2hTZWNvbmQoKSkKICAgICAgICAgICAgIC5zZXROYW5vcyhub3cuZ2V0TmFubygpKS5idWlsZCgpOwoKIEV4YW1wbGUgNjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBjdXJyZW50IHRpbWUgaW4gUHl0aG9uLgoKICAgICB0aW1lc3RhbXAgPSBUaW1lc3RhbXAoKQogICAgIHRpbWVzdGFtcC5HZXRDdXJyZW50VGltZSgpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIFRpbWVzdGFtcCB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgaW4gdGhlCiBbUkZDIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZm9ybWF0LiBUaGF0IGlzLCB0aGUKIGZvcm1hdCBpcyAie3llYXJ9LXttb250aH0te2RheX1Ue2hvdXJ9OnttaW59OntzZWN9Wy57ZnJhY19zZWN9XVoiCiB3aGVyZSB7eWVhcn0gaXMgYWx3YXlzIGV4cHJlc3NlZCB1c2luZyBmb3VyIGRpZ2l0cyB3aGlsZSB7bW9udGh9LCB7ZGF5fSwKIHtob3VyfSwge21pbn0sIGFuZCB7c2VjfSBhcmUgemVyby1wYWRkZWQgdG8gdHdvIGRpZ2l0cyBlYWNoLiBUaGUgZnJhY3Rpb25hbAogc2Vjb25kcywgd2hpY2ggY2FuIGdvIHVwIHRvIDkgZGlnaXRzIChpLmUuIHVwIHRvIDEgbmFub3NlY29uZCByZXNvbHV0aW9uKSwKIGFyZSBvcHRpb25hbC4gVGhlICJaIiBzdWZmaXggaW5kaWNhdGVzIHRoZSB0aW1lem9uZSAoIlVUQyIpOyB0aGUgdGltZXpvbmUKIGlzIHJlcXVpcmVkLiBBIHByb3RvMyBKU09OIHNlcmlhbGl6ZXIgc2hvdWxkIGFsd2F5cyB1c2UgVVRDIChhcyBpbmRpY2F0ZWQgYnkKICJaIikgd2hlbiBwcmludGluZyB0aGUgVGltZXN0YW1wIHR5cGUgYW5kIGEgcHJvdG8zIEpTT04gcGFyc2VyIHNob3VsZCBiZQogYWJsZSB0byBhY2NlcHQgYm90aCBVVEMgYW5kIG90aGVyIHRpbWV6b25lcyAoYXMgaW5kaWNhdGVkIGJ5IGFuIG9mZnNldCkuCgogRm9yIGV4YW1wbGUsICIyMDE3LTAxLTE1VDAxOjMwOjE1LjAxWiIgZW5jb2RlcyAxNS4wMSBzZWNvbmRzIHBhc3QKIDAxOjMwIFVUQyBvbiBKYW51YXJ5IDE1LCAyMDE3LgoKIEluIEphdmFTY3JpcHQsIG9uZSBjYW4gY29udmVydCBhIERhdGUgb2JqZWN0IHRvIHRoaXMgZm9ybWF0IHVzaW5nIHRoZQogc3RhbmRhcmQKIFt0b0lTT1N0cmluZygpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlL3RvSVNPU3RyaW5nKQogbWV0aG9kLiBJbiBQeXRob24sIGEgc3RhbmRhcmQgYGRhdGV0aW1lLmRhdGV0aW1lYCBvYmplY3QgY2FuIGJlIGNvbnZlcnRlZAogdG8gdGhpcyBmb3JtYXQgdXNpbmcKIFtgc3RyZnRpbWVgXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvdGltZS5odG1sI3RpbWUuc3RyZnRpbWUpIHdpdGgKIHRoZSB0aW1lIGZvcm1hdCBzcGVjICclWS0lbS0lZFQlSDolTTolUy4lZlonLiBMaWtld2lzZSwgaW4gSmF2YSwgb25lIGNhbiB1c2UKIHRoZSBKb2RhIFRpbWUncyBbYElTT0RhdGVUaW1lRm9ybWF0LmRhdGVUaW1lKClgXSgKIGh0dHA6Ly93d3cuam9kYS5vcmcvam9kYS10aW1lL2FwaWRvY3Mvb3JnL2pvZGEvdGltZS9mb3JtYXQvSVNPRGF0ZVRpbWVGb3JtYXQuaHRtbCNkYXRlVGltZSUyRCUyRAogKSB0byBvYnRhaW4gYSBmb3JtYXR0ZXIgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgaW4gdGhpcyBmb3JtYXQuCgoKCwoDBAABEgSEAQgRCp0BCgQEAAIAEgSIAQIUGo4BIFJlcHJlc2VudHMgc2Vjb25kcyBvZiBVVEMgdGltZSBzaW5jZSBVbml4IGVwb2NoCiAxOTcwLTAxLTAxVDAwOjAwOjAwWi4gTXVzdCBiZSBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvCiA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmUuCgoNCgUEAAIABRIEiAECBwoNCgUEAAIAARIEiAEIDwoNCgUEAAIAAxIEiAESEwrlAQoEBAACARIEjgECEhrWASBOb24tbmVnYXRpdmUgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gTmVnYXRpdmUKIHNlY29uZCB2YWx1ZXMgd2l0aCBmcmFjdGlvbnMgbXVzdCBzdGlsbCBoYXZlIG5vbi1uZWdhdGl2ZSBuYW5vcyB2YWx1ZXMKIHRoYXQgY291bnQgZm9yd2FyZCBpbiB0aW1lLiBNdXN0IGJlIGZyb20gMCB0byA5OTksOTk5LDk5OQogaW5jbHVzaXZlLgoKDQoFBAACAQUSBI4BAgcKDQoFBAACAQESBI4BCA0KDQoFBAACAQMSBI4BEBFiBnByb3RvMwrPIwoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnByb3RvEg9nb29nbGUucHJvdG9idWYiIwoLRG91YmxlVmFsdWUSFAoFdmFsdWUYASABKAFSBXZhbHVlIiIKCkZsb2F0VmFsdWUSFAoFdmFsdWUYASABKAJSBXZhbHVlIiIKCkludDY0VmFsdWUSFAoFdmFsdWUYASABKANSBXZhbHVlIiMKC1VJbnQ2NFZhbHVlEhQKBXZhbHVlGAEgASgEUgV2YWx1ZSIiCgpJbnQzMlZhbHVlEhQKBXZhbHVlGAEgASgFUgV2YWx1ZSIjCgtVSW50MzJWYWx1ZRIUCgV2YWx1ZRgBIAEoDVIFdmFsdWUiIQoJQm9vbFZhbHVlEhQKBXZhbHVlGAEgASgIUgV2YWx1ZSIjCgtTdHJpbmdWYWx1ZRIUCgV2YWx1ZRgBIAEoCVIFdmFsdWUiIgoKQnl0ZXNWYWx1ZRIUCgV2YWx1ZRgBIAEoDFIFdmFsdWVCgwEKE2NvbS5nb29nbGUucHJvdG9idWZCDVdyYXBwZXJzUHJvdG9QAVoxZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vd3JhcHBlcnNwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rGHwoGEgQoAHoBCtsQCgEMEgMoABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF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dXJjZV9jb250ZXh0LnByb3RvGhxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvGhpnb29nbGUvcHJvdG9idWYvdHlwZS5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnByb3RvIrQJChJUZXN0V2VsbEtub3duVHlwZXMSMQoJYW55X2ZpZWxkGAEgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIIYW55RmllbGQSMQoJYXBpX2ZpZWxkGAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFwaVIIYXBpRmllbGQSQAoOZHVyYXRpb25fZmllbGQYAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SDWR1cmF0aW9uRmllbGQSNwoLZW1wdHlfZmllbGQYBCABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSCmVtcHR5RmllbGQSRAoQZmllbGRfbWFza19maWVsZBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSDmZpZWxkTWFza0ZpZWxkElAKFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSEnNvdXJjZUNvbnRleHRGaWVsZBI6CgxzdHJ1Y3RfZmllbGQYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0UgtzdHJ1Y3RGaWVsZBJDCg90aW1lc3RhbXBfZmllbGQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUg50aW1lc3RhbXBGaWVsZBI0Cgp0eXBlX2ZpZWxkGAkgASgLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVSCXR5cGVGaWVsZBI/Cgxkb3VibGVfZmllbGQYCiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSC2RvdWJsZUZpZWxkEjwKC2Zsb2F0X2ZpZWxkGAsgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSCmZsb2F0RmllbGQSPAoLaW50NjRfZmllbGQYDCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIKaW50NjRGaWVsZBI/Cgx1aW50NjRfZmllbGQYDSABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSC3VpbnQ2NEZpZWxkEjwKC2ludDMyX2ZpZWxkGA4gASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSCmludDMyRmllbGQSPwoMdWludDMyX2ZpZWxkGA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUgt1aW50MzJGaWVsZBI5Cgpib29sX2ZpZWxkGBAgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZVIJYm9vbEZpZWxkEj8KDHN0cmluZ19maWVsZBgRIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVILc3RyaW5nRmllbGQSPAoLYnl0ZXNfZmllbGQYEiABKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIKYnl0ZXNGaWVsZBI3Cgt2YWx1ZV9maWVsZBgTIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVIKdmFsdWVGaWVsZCL/CAoWUmVwZWF0ZWRXZWxsS25vd25UeXBlcxIxCglhbnlfZmllbGQYASADKAsyFC5nb29nbGUucHJvdG9idWYuQW55UghhbnlGaWVsZBIxCglhcGlfZmllbGQYAiADKAsyFC5nb29nbGUucHJvdG9idWYuQXBpUghhcGlGaWVsZBJACg5kdXJhdGlvbl9maWVsZBgDIAMoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblINZHVyYXRpb25GaWVsZBI3CgtlbXB0eV9maWVsZBgEIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIKZW1wdHlGaWVsZBJEChBmaWVsZF9tYXNrX2ZpZWxkGAUgAygLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IOZmllbGRNYXNrRmllbGQSUAoUc291cmNlX2NvbnRleHRfZmllbGQYBiADKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFISc291cmNlQ29udGV4dEZpZWxkEjoKDHN0cnVjdF9maWVsZBgHIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSC3N0cnVjdEZpZWxkEkMKD3RpbWVzdGFtcF9maWVsZBgIIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSDnRpbWVzdGFtcEZpZWxkEjQKCnR5cGVfZmllbGQYCSADKAsyFS5nb29nbGUucHJvdG9idWYuVHlwZVIJdHlwZUZpZWxkEj8KDGRvdWJsZV9maWVsZBgKIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVILZG91YmxlRmllbGQSPAoLZmxvYXRfZmllbGQYCyADKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIKZmxvYXRGaWVsZBI8CgtpbnQ2NF9maWVsZBgMIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUgppbnQ2NEZpZWxkEj8KDHVpbnQ2NF9maWVsZBgNIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVILdWludDY0RmllbGQSPAoLaW50MzJfZmllbGQYDiADKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIKaW50MzJGaWVsZBI/Cgx1aW50MzJfZmllbGQYDyADKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSC3VpbnQzMkZpZWxkEjkKCmJvb2xfZmllbGQYECADKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUglib29sRmllbGQSPwoMc3RyaW5nX2ZpZWxkGBEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUgtzdHJpbmdGaWVsZBI8CgtieXRlc19maWVsZBgSIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlUgpieXRlc0ZpZWxkIq8JChNPbmVvZldlbGxLbm93blR5cGVzEjMKCWFueV9maWVsZBgBIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlIAFIIYW55RmllbGQSMwoJYXBpX2ZpZWxkGAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFwaUgAUghhcGlGaWVsZBJCCg5kdXJhdGlvbl9maWVsZBgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkgAUg1kdXJhdGlvbkZpZWxkEjkKC2VtcHR5X2ZpZWxkGAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5SABSCmVtcHR5RmllbGQSRgoQZmllbGRfbWFza19maWVsZBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tIAFIOZmllbGRNYXNrRmllbGQSUgoUc291cmNlX2NvbnRleHRfZmllbGQYBiABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dEgAUhJzb3VyY2VDb250ZXh0RmllbGQSPAoMc3RydWN0X2ZpZWxkGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAUgtzdHJ1Y3RGaWVsZBJFCg90aW1lc3RhbXBfZmllbGQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSABSDnRpbWVzdGFtcEZpZWxkEjYKCnR5cGVfZmllbGQYCSABKAsyFS5nb29nbGUucHJvdG9idWYuVHlwZUgAUgl0eXBlRmllbGQSQQoMZG91YmxlX2ZpZWxkGAogASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlSABSC2RvdWJsZUZpZWxkEj4KC2Zsb2F0X2ZpZWxkGAsgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVIAFIKZmxvYXRGaWVsZBI+CgtpbnQ2NF9maWVsZBgMIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlSABSCmludDY0RmllbGQSQQoMdWludDY0X2ZpZWxkGA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlSABSC3VpbnQ2NEZpZWxkEj4KC2ludDMyX2ZpZWxkGA4gASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVIAFIKaW50MzJGaWVsZBJBCgx1aW50MzJfZmllbGQYDyABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVIAFILdWludDMyRmllbGQSOwoKYm9vbF9maWVsZBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVIAFIJYm9vbEZpZWxkEkEKDHN0cmluZ19maWVsZBgRIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZUgAUgtzdHJpbmdGaWVsZBI+CgtieXRlc19maWVsZBgSIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlSABSCmJ5dGVzRmllbGRCDQoLb25lb2ZfZmllbGQi2BkKEU1hcFdlbGxLbm93blR5cGVzEk8KCWFueV9maWVsZBgBIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkFueUZpZWxkRW50cnlSCGFueUZpZWxkEk8KCWFwaV9maWVsZBgCIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkFwaUZpZWxkRW50cnlSCGFwaUZpZWxkEl4KDmR1cmF0aW9uX2ZpZWxkGAMgAygLMjcucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRHVyYXRpb25GaWVsZEVudHJ5Ug1kdXJhdGlvbkZpZWxkElUKC2VtcHR5X2ZpZWxkGAQgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRW1wdHlGaWVsZEVudHJ5UgplbXB0eUZpZWxkEmIKEGZpZWxkX21hc2tfZmllbGQYBSADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5GaWVsZE1hc2tGaWVsZEVudHJ5Ug5maWVsZE1hc2tGaWVsZBJuChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAMoCzI8LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlNvdXJjZUNvbnRleHRGaWVsZEVudHJ5UhJzb3VyY2VDb250ZXh0RmllbGQSWAoMc3RydWN0X2ZpZWxkGAcgAygLMjUucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuU3RydWN0RmllbGRFbnRyeVILc3RydWN0RmllbGQSYQoPdGltZXN0YW1wX2ZpZWxkGAggAygLMjgucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuVGltZXN0YW1wRmllbGRFbnRyeVIOdGltZXN0YW1wRmllbGQSUgoKdHlwZV9maWVsZBgJIAMoCzIzLnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlR5cGVGaWVsZEVudHJ5Ugl0eXBlRmllbGQSWAoMZG91YmxlX2ZpZWxkGAogAygLMjUucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRG91YmxlRmllbGRFbnRyeVILZG91YmxlRmllbGQSVQoLZmxvYXRfZmllbGQYCyADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5GbG9hdEZpZWxkRW50cnlSCmZsb2F0RmllbGQSVQoLaW50NjRfZmllbGQYDCADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5JbnQ2NEZpZWxkRW50cnlSCmludDY0RmllbGQSWAoMdWludDY0X2ZpZWxkGA0gAygLMjUucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuVWludDY0RmllbGRFbnRyeVILdWludDY0RmllbGQSVQoLaW50MzJfZmllbGQYDiADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5JbnQzMkZpZWxkRW50cnlSCmludDMyRmllbGQSWAoMdWludDMyX2ZpZWxkGA8gAygLMjUucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuVWludDMyRmllbGRFbnRyeVILdWludDMyRmllbGQSUgoKYm9vbF9maWVsZBgQIAMoCzIzLnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkJvb2xGaWVsZEVudHJ5Uglib29sRmllbGQSWAoMc3RyaW5nX2ZpZWxkGBEgAygLMjUucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuU3RyaW5nRmllbGRFbnRyeVILc3RyaW5nRmllbGQSVQoLYnl0ZXNfZmllbGQYEiADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5CeXRlc0ZpZWxkRW50cnlSCmJ5dGVzRmllbGQaUQoNQW55RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBXZhbHVlOgI4ARpRCg1BcGlGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EioKBXZhbHVlGAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFwaVIFdmFsdWU6AjgBGlsKEkR1cmF0aW9uRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIvCgV2YWx1ZRgCIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIFdmFsdWU6AjgBGlUKD0VtcHR5RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIsCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIFdmFsdWU6AjgBGl0KE0ZpZWxkTWFza0ZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMAoFdmFsdWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUgV2YWx1ZToCOAEaZQoXU291cmNlQ29udGV4dEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSNAoFdmFsdWUYAiABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFIFdmFsdWU6AjgBGlcKEFN0cnVjdEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSLQoFdmFsdWUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0UgV2YWx1ZToCOAEaXQoTVGltZXN0YW1wRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIwCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSBXZhbHVlOgI4ARpTCg5UeXBlRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIrCgV2YWx1ZRgCIAEoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlUgV2YWx1ZToCOAEaXAoQRG91YmxlRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIyCgV2YWx1ZRgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIFdmFsdWU6AjgBGloKD0Zsb2F0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUgV2YWx1ZToCOAEaWgoPSW50NjRGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSBXZhbHVlOgI4ARpcChBVaW50NjRGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjIKBXZhbHVlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUgV2YWx1ZToCOAEaWgoPSW50MzJGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSBXZhbHVlOgI4ARpcChBVaW50MzJGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjIKBXZhbHVlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUgV2YWx1ZToCOAEaWAoOQm9vbEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMAoFdmFsdWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUgV2YWx1ZToCOAEaXAoQU3RyaW5nRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIyCgV2YWx1ZRgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIFdmFsdWU6AjgBGloKD0J5dGVzRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlUgV2YWx1ZToCOAFCOQoYY29tLmdvb2dsZS5wcm90b2J1Zi50ZXN0UAGqAhpHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvc0rhJwoGEgQAAHEBCggKAQwSAwAAEgoICgECEgMCABoKCAoBCBIDBAA3CgkKAgglEgMEADcKCAoBCBIDBQAiCgkKAggKEgMFACIKCAoBCBIDBgAxCgkKAggBEgMGADEKCQoCAwASAwgAIwoJCgIDARIDCQAjCgkKAgMCEgMKACgKCQoCAwMSAwsAJQoJCgIDBBIDDAAqCgkKAgMFEgMNAC4KCQoCAwYSAw4AJgoJCgIDBxIDDwApCgkKAgMIEgMQACQKCQoCAwkSAxEAKAqnAQoCBAASBBYAKwEamgEgVGVzdCB0aGF0IHdlIGNhbiBpbmNsdWRlIGFsbCB3ZWxsLWtub3duIHR5cGVzLgogRWFjaCB3cmFwcGVyIHR5cGUgaXMgaW5jbHVkZWQgc2VwYXJhdGVseSwgYXMgbGFuZ3VhZ2VzCiBtYXAgaGFuZGxlIGRpZmZlcmVudCB3cmFwcGVycyBpbiBkaWZmZXJlbnQgd2F5cy4KCgoKAwQAARIDFggaCgsKBAQAAgASAxcCJAoMCgUEAAIABhIDFwIVCgwKBQQAAgABEgMXFh8KDAoFBAACAAMSAxciIwoLCgQEAAIBEgMYAiQKDAoFBAACAQYSAxgCFQoMCgUEAAIBARIDGBYfCgwKBQQAAgEDEgMYIiMKCwoEBAACAhIDGQIuCgwKBQQAAgIGEgMZAhoKDAoFBAACAgESAxkbKQoMCgUEAAICAxIDGSwtCgsKBAQAAgMSAxoCKAoMCgUEAAIDBhIDGgIXCgwKBQQAAgMBEgMaGCMKDAoFBAACAwMSAxomJwoLCgQEAAIEEgMbAjEKDAoFBAACBAYSAxsCGwoMCgUEAAIEARIDGxwsCgwKBQQAAgQDEgMbLzAKCwoEBAACBRIDHAI5CgwKBQQAAgUGEgMcAh8KDAoFBAACBQESAxwgNAoMCgUEAAIFAxIDHDc4CgsKBAQAAgYSAx0CKgoMCgUEAAIGBhIDHQIYCgwKBQQAAgYBEgMdGSUKDAoFBAACBgMSAx0oKQoLCgQEAAIHEgMeAjAKDAoFBAACBwYSAx4CGwoMCgUEAAIHARIDHhwrCgwKBQQAAgcDEgMeLi8KCwoEBAACCBIDHwImCgwKBQQAAggGEgMfAhYKDAoFBAACCAESAx8XIQoMCgUEAAIIAxIDHyQlCgsKBAQAAgkSAyACMAoMCgUEAAIJBhIDIAIdCgwKBQQAAgkBEgMgHioKDAoFBAACCQMSAyAtLwoLCgQEAAIKEgMhAi4KDAoFBAACCgYSAyECHAoMCgUEAAIKARIDIR0oCgwKBQQAAgoDEgMhKy0KCwoEBAACCxIDIgIuCgwKBQQAAgsGEgMiAhwKDAoFBAACCwESAyIdKAoMCgUEAAILAxIDIistCgsKBAQAAgwSAyMCMAoMCgUEAAIMBhIDIwIdCgwKBQQAAgwBEgMjHioKDAoFBAACDAMSAyMtLwoLCgQEAAINEgMkAi4KDAoFBAACDQYSAyQCHAoMCgUEAAINARIDJB0oCgwKBQQAAg0DEgMkKy0KCwoEBAACDhIDJQIwCgwKBQQAAg4GEgMlAh0KDAoFBAACDgESAyUeKgoMCgUEAAIOAxIDJS0vCgsKBAQAAg8SAyYCLAoMCgUEAAIPBhIDJgIbCgwKBQQAAg8BEgMmHCYKDAoFBAACDwMSAyYpKwoLCgQEAAIQEgMnAjAKDAoFBAACEAYSAycCHQoMCgUEAAIQARIDJx4qCgwKBQQAAhADEgMnLS8KCwoEBAACERIDKAIuCgwKBQQAAhEGEgMoAhwKDAoFBAACEQESAygdKAoMCgUEAAIRAxIDKCstCkcKBAQAAhISAyoCKRo6IFBhcnQgb2Ygc3RydWN0LCBidXQgdXNlZnVsIHRvIGJlIGFibGUgdG8gdGVzdCBzZXBhcmF0ZWx5CgoMCgUEAAISBhIDKgIXCgwKBQQAAhIBEgMqGCMKDAoFBAACEgMSAyomKAo4CgIEARIELgBCARosIEEgcmVwZWF0ZWQgZmllbGQgZm9yIGVhY2ggd2VsbC1rbm93biB0eXBlLgoKCgoDBAEBEgMuCB4KCwoEBAECABIDLwItCgwKBQQBAgAEEgMvAgoKDAoFBAECAAYSAy8LHgoMCgUEAQIAARIDLx8oCgwKBQQBAgADEgMvKywKCwoEBAECARIDMAItCgwKBQQBAgEEEgMwAgoKDAoFBAECAQYSAzALHgoMCgUEAQIBARIDMB8oCgwKBQQBAgEDEgMwKywKCwoEBAECAhIDMQI3CgwKBQQBAgIEEgMxAgoKDAoFBAECAgYSAzELIwoMCgUEAQICARIDMSQyCgwKBQQBAgIDEgMxNTYKCwoEBAECAxIDMgIxCgwKBQQBAgMEEgMyAgoKDAoFBAECAwYSAzILIAoMCgUEAQIDARIDMiEsCgwKBQQBAgMDEgMyLzAKCwoEBAECBBIDMwI6CgwKBQQBAgQEEgMzAgoKDAoFBAECBAYSAzMLJAoMCgUEAQIEARIDMyU1CgwKBQQBAgQDEgMzODkKCwoEBAECBRIDNAJCCgwKBQQBAgUEEgM0AgoKDAoFBAECBQYSAzQLKAoMCgUEAQIFARIDNCk9CgwKBQQBAgUDEgM0QEEKCwoEBAECBhIDNQIzCgwKBQQBAgYEEgM1AgoKDAoFBAECBgYSAzULIQoMCgUEAQIGARIDNSIuCgwKBQQBAgYDEgM1MTIKCwoEBAECBxIDNgI5CgwKBQQBAgcEEgM2AgoKDAoFBAECBwYSAzYLJAoMCgUEAQIHARIDNiU0CgwKBQQBAgcDEgM2NzgKCwoEBAECCBIDNwIvCgwKBQQBAggEEgM3AgoKDAoFBAECCAYSAzcLHwoMCgUEAQIIARIDNyAqCgwKBQQBAggDEgM3LS4KVgoEBAECCRIDOQI5GkkgVGhlc2UgZG9uJ3QgYWN0dWFsbHkgbWFrZSBhIGxvdCBvZiBzZW5zZSwgYnV0IHRoZXkncmUgbm90IHByb2hpYml0ZWQuLi4KCgwKBQQBAgkEEgM5AgoKDAoFBAECCQYSAzkLJgoMCgUEAQIJARIDOSczCgwKBQQBAgkDEgM5NjgKCwoEBAECChIDOgI3CgwKBQQBAgoEEgM6AgoKDAoFBAECCgYSAzoLJQoMCgUEAQIKARIDOiYxCgwKBQQBAgoDEgM6NDYKCwoEBAECCxIDOwI3CgwKBQQBAgsEEgM7AgoKDAoFBAECCwYSAzsLJQoMCgUEAQILARIDOyYxCgwKBQQBAgsDEgM7NDYKCwoEBAECDBIDPAI5CgwKBQQBAgwEEgM8AgoKDAoFBAECDAYSAzwLJgoMCgUEAQIMARIDPCczCgwKBQQBAgwDEgM8NjgKCwoEBAECDRIDPQI3CgwKBQQBAg0EEgM9AgoKDAoFBAECDQYSAz0LJQoMCgUEAQINARIDPSYxCgwKBQQBAg0DEgM9NDYKCwoEBAECDhIDPgI5CgwKBQQBAg4EEgM+AgoKDAoFBAECDgYSAz4LJgoMCgUEAQIOARIDPiczCgwKBQQBAg4DEgM+NjgKCwoEBAECDxIDPwI1CgwKBQQBAg8EEgM/AgoKDAoFBAECDwYSAz8LJAoMCgUEAQIPARIDPyUvCgwKBQQBAg8DEgM/MjQKCwoEBAECEBIDQAI5CgwKBQQBAhAEEgNAAgoKDAoFBAECEAYSA0ALJgoMCgUEAQIQARIDQCczCgwKBQQBAhADEgNANjgKCwoEBAECERIDQQI3CgwKBQQBAhEEEgNBAgoKDAoFBAECEQYSA0ELJQoMCgUEAQIRARIDQSYxCgwKBQQBAhEDEgNBNDYKCgoCBAISBEQAWQEKCgoDBAIBEgNECBsKDAoEBAIIABIERQJYAwoMCgUEAggAARIDRQgTCgsKBAQCAgASA0YEJgoMCgUEAgIABhIDRgQXCgwKBQQCAgABEgNGGCEKDAoFBAICAAMSA0YkJQoLCgQEAgIBEgNHBCYKDAoFBAICAQYSA0cEFwoMCgUEAgIBARIDRxghCgwKBQQCAgEDEgNHJCUKCwoEBAICAhIDSAQwCgwKBQQCAgIGEgNIBBwKDAoFBAICAgESA0gdKwoMCgUEAgICAxIDSC4vCgsKBAQCAgMSA0kEKgoMCgUEAgIDBhIDSQQZCgwKBQQCAgMBEgNJGiUKDAoFBAICAwMSA0koKQoLCgQEAgIEEgNKBDMKDAoFBAICBAYSA0oEHQoMCgUEAgIEARIDSh4uCgwKBQQCAgQDEgNKMTIKCwoEBAICBRIDSwQ7CgwKBQQCAgUGEgNLBCEKDAoFBAICBQESA0siNgoMCgUEAgIFAxIDSzk6CgsKBAQCAgYSA0wELAoMCgUEAgIGBhIDTAQaCgwKBQQCAgYBEgNMGycKDAoFBAICBgMSA0wqKwoLCgQEAgIHEgNNBDIKDAoFBAICBwYSA00EHQoMCgUEAgIHARIDTR4tCgwKBQQCAgcDEgNNMDEKCwoEBAICCBIDTgQoCgwKBQQCAggGEgNOBBgKDAoFBAICCAESA04ZIwoMCgUEAgIIAxIDTiYnCgsKBAQCAgkSA08EMgoMCgUEAgIJBhIDTwQfCgwKBQQCAgkBEgNPICwKDAoFBAICCQMSA08vMQoLCgQEAgIKEgNQBDAKDAoFBAICCgYSA1AEHgoMCgUEAgIKARIDUB8qCgwKBQQCAgoDEgNQLS8KCwoEBAICCxIDUQQwCgwKBQQCAgsGEgNRBB4KDAoFBAICCwESA1EfKgoMCgUEAgILAxIDUS0vCgsKBAQCAgwSA1IEMgoMCgUEAgIMBhIDUgQfCgwKBQQCAgwBEgNSICwKDAoFBAICDAMSA1IvMQoLCgQEAgINEgNTBDAKDAoFBAICDQYSA1MEHgoMCgUEAgINARIDUx8qCgwKBQQCAg0DEgNTLS8KCwoEBAICDhIDVAQyCgwKBQQCAg4GEgNUBB8KDAoFBAICDgESA1QgLAoMCgUEAgIOAxIDVC8xCgsKBAQCAg8SA1UELgoMCgUEAgIPBhIDVQQdCgwKBQQCAg8BEgNVHigKDAoFBAICDwMSA1UrLQoLCgQEAgIQEgNWBDIKDAoFBAICEAYSA1YEHwoMCgUEAgIQARIDViAsCgwKBQQCAhADEgNWLzEKCwoEBAICERIDVwQwCgwKBQQCAhEGEgNXBB4KDAoFBAICEQESA1cfKgoMCgUEAgIRAxIDVy0vCqcBCgIEAxIEXgBxARqaASBBIG1hcCBmaWVsZCBmb3IgZWFjaCB3ZWxsLWtub3duIHR5cGUuIFdlIG9ubHkKIG5lZWQgdG8gd29ycnkgYWJvdXQgdGhlIHZhbHVlIHBhcnQgb2YgdGhlIG1hcCBiZWluZyB0aGUKIHdlbGwta25vd24gdHlwZXMsIGFzIG1lc3NhZ2VzIGNhbid0IGJlIG1hcCBrZXlzLgoKCgoDBAMBEgNeCBkKCwoEBAMCABIDXwIvCgwKBQQDAgAGEgNfAiAKDAoFBAMCAAESA18hKgoMCgUEAwIAAxIDXy0uCgsKBAQDAgESA2ACLwoMCgUEAwIBBhIDYAIgCgwKBQQDAgEBEgNgISoKDAoFBAMCAQMSA2AtLgoLCgQEAwICEgNhAjkKDAoFBAMCAgYSA2ECJQoMCgUEAwICARIDYSY0CgwKBQQDAgIDEgNhNzgKCwoEBAMCAxIDYgIzCgwKBQQDAgMGEgNiAiIKDAoFBAMCAwESA2IjLgoMCgUEAwIDAxIDYjEyCgsKBAQDAgQSA2MCPAoMCgUEAwIEBhIDYwImCgwKBQQDAgQBEgNjJzcKDAoFBAMCBAMSA2M6OwoLCgQEAwIFEgNkAkQKDAoFBAMCBQYSA2QCKgoMCgUEAwIFARIDZCs/CgwKBQQDAgUDEgNkQkMKCwoEBAMCBhIDZQI1CgwKBQQDAgYGEgNlAiMKDAoFBAMCBgESA2UkMAoMCgUEAwIGAxIDZTM0CgsKBAQDAgcSA2YCOwoMCgUEAwIHBhIDZgImCgwKBQQDAgcBEgNmJzYKDAoFBAMCBwMSA2Y5OgoLCgQEAwIIEgNnAjEKDAoFBAMCCAYSA2cCIQoMCgUEAwIIARIDZyIsCgwKBQQDAggDEgNnLzAKCwoEBAMCCRIDaAI7CgwKBQQDAgkGEgNoAigKDAoFBAMCCQESA2gpNQoMCgUEAwIJAxIDaDg6CgsKBAQDAgoSA2kCOQoMCgUEAwIKBhIDaQInCgwKBQQDAgoBEgNpKDMKDAoFBAMCCgMSA2k2OAoLCgQEAwILEgNqAjkKDAoFBAMCCwYSA2oCJwoMCgUEAwILARIDaigzCgwKBQQDAgsDEgNqNjgKCwoEBAMCDBIDawI7CgwKBQQDAgwGEgNrAigKDAoFBAMCDAESA2spNQoMCgUEAwIMAxIDazg6CgsKBAQDAg0SA2wCOQoMCgUEAwINBhIDbAInCgwKBQQDAg0BEgNsKDMKDAoFBAMCDQMSA2w2OAoLCgQEAwIOEgNtAjsKDAoFBAMCDgYSA20CKAoMCgUEAwIOARIDbSk1CgwKBQQDAg4DEgNtODoKCwoEBAMCDxIDbgI3CgwKBQQDAg8GEgNuAiYKDAoFBAMCDwESA24nMQoMCgUEAwIPAxIDbjQ2CgsKBAQDAhASA28COwoMCgUEAwIQBhIDbwIoCgwKBQQDAhABEgNvKTUKDAoFBAMCEAMSA284OgoLCgQEAwIREgNwAjkKDAoFBAMCEQYSA3ACJwoMCgUEAwIRARIDcCgzCgwKBQQDAhEDEgNwNjhiBnByb3RvMwqk0QEKKmdvb2dsZS9wcm90b2J1Zi90ZXN0X21lc3NhZ2VzX3Byb3RvMy5wcm90bxIdcHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMaGWdvb2dsZS9wcm90b2J1Zi9hbnkucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi9kdXJhdGlvbi5wcm90bxogZ29vZ2xlL3Byb3RvYnVmL2ZpZWxkX21hc2sucHJvdG8aHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8aH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90byKZWwoSVGVzdEFsbFR5cGVzUHJvdG8zEiUKDm9wdGlvbmFsX2ludDMyGAEgASgFUg1vcHRpb25hbEludDMyEiUKDm9wdGlvbmFsX2ludDY0GAIgASgDUg1vcHRpb25hbEludDY0EicKD29wdGlvbmFsX3VpbnQzMhgDIAEoDVIOb3B0aW9uYWxVaW50MzISJwoPb3B0aW9uYWxfdWludDY0GAQgASgEUg5vcHRpb25hbFVpbnQ2NBInCg9vcHRpb25hbF9zaW50MzIYBSABKBFSDm9wdGlvbmFsU2ludDMyEicKD29wdGlvbmFsX3NpbnQ2NBgGIAEoElIOb3B0aW9uYWxTaW50NjQSKQoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoB1IPb3B0aW9uYWxGaXhlZDMyEikKEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZSD29wdGlvbmFsRml4ZWQ2NBIrChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoD1IQb3B0aW9uYWxTZml4ZWQzMhIrChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEFIQb3B0aW9uYWxTZml4ZWQ2NBIlCg5vcHRpb25hbF9mbG9hdBgLIAEoAlINb3B0aW9uYWxGbG9hdBInCg9vcHRpb25hbF9kb3VibGUYDCABKAFSDm9wdGlvbmFsRG91YmxlEiMKDW9wdGlvbmFsX2Jvb2wYDSABKAhSDG9wdGlvbmFsQm9vbBInCg9vcHRpb25hbF9zdHJpbmcYDiABKAlSDm9wdGlvbmFsU3RyaW5nEiUKDm9wdGlvbmFsX2J5dGVzGA8gASgMUg1vcHRpb25hbEJ5dGVzEncKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRJnChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyLS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduTWVzc2FnZVIWb3B0aW9uYWxGb3JlaWduTWVzc2FnZRJuChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtUhJvcHRpb25hbE5lc3RlZEVudW0SXgoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMioucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbkVudW1SE29wdGlvbmFsRm9yZWlnbkVudW0ScQoVb3B0aW9uYWxfYWxpYXNlZF9lbnVtGBcgASgOMj0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLkFsaWFzZWRFbnVtUhNvcHRpb25hbEFsaWFzZWRFbnVtEjYKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAJSE29wdGlvbmFsU3RyaW5nUGllY2USJwoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAFSDG9wdGlvbmFsQ29yZBJeChFyZWN1cnNpdmVfbWVzc2FnZRgbIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvM1IQcmVjdXJzaXZlTWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJ3ChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USZwoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMi0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbk1lc3NhZ2VSFnJlcGVhdGVkRm9yZWlnbk1lc3NhZ2USbgoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVIScmVwZWF0ZWROZXN0ZWRFbnVtEl4KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUhNyZXBlYXRlZEZvcmVpZ25FbnVtEjYKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAJSE3JlcGVhdGVkU3RyaW5nUGllY2USJwoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAFSDHJlcGVhdGVkQ29yZBIlCgxwYWNrZWRfaW50MzIYSyADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYTCADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGE0gAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYTiADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhhPIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GFAgAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGFEgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GFQgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GFUgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhWIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhXIAMoCEICEAFSCnBhY2tlZEJvb2wSbgoScGFja2VkX25lc3RlZF9lbnVtGFggAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1CAhABUhBwYWNrZWROZXN0ZWRFbnVtEikKDnVucGFja2VkX2ludDMyGFkgAygFQgIQAFINdW5wYWNrZWRJbnQzMhIpCg51bnBhY2tlZF9pbnQ2NBhaIAMoA0ICEABSDXVucGFja2VkSW50NjQSKwoPdW5wYWNrZWRfdWludDMyGFsgAygNQgIQAFIOdW5wYWNrZWRVaW50MzISKwoPdW5wYWNrZWRfdWludDY0GFwgAygEQgIQAFIOdW5wYWNrZWRVaW50NjQSKwoPdW5wYWNrZWRfc2ludDMyGF0gAygRQgIQAFIOdW5wYWNrZWRTaW50MzISKwoPdW5wYWNrZWRfc2ludDY0GF4gAygSQgIQAFIOdW5wYWNrZWRTaW50NjQSLQoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoB0ICEABSD3VucGFja2VkRml4ZWQzMhItChB1bnBhY2tlZF9maXhlZDY0GGAgAygGQgIQAFIPdW5wYWNrZWRGaXhlZDY0Ei8KEXVucGFja2VkX3NmaXhlZDMyGGEgAygPQgIQAFIQdW5wYWNrZWRTZml4ZWQzMhIvChF1bnBhY2tlZF9zZml4ZWQ2NBhiIAMoEEICEABSEHVucGFja2VkU2ZpeGVkNjQSKQoOdW5wYWNrZWRfZmxvYXQYYyADKAJCAhAAUg11bnBhY2tlZEZsb2F0EisKD3VucGFja2VkX2RvdWJsZRhkIAMoAUICEABSDnVucGFja2VkRG91YmxlEicKDXVucGFja2VkX2Jvb2wYZSADKAhCAhAAUgx1bnBhY2tlZEJvb2wScgoUdW5wYWNrZWRfbmVzdGVkX2VudW0YZiADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bUICEABSEnVucGFja2VkTmVzdGVkRW51bRJsCg9tYXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJJbnQzMkVudHJ5Ug1tYXBJbnQzMkludDMyEmwKD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQ2NEludDY0RW50cnlSDW1hcEludDY0SW50NjQScgoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwVWludDMyVWludDMyRW50cnlSD21hcFVpbnQzMlVpbnQzMhJyChFtYXBfdWludDY0X3VpbnQ2NBg7IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBVaW50NjRVaW50NjRFbnRyeVIPbWFwVWludDY0VWludDY0EnIKEW1hcF9zaW50MzJfc2ludDMyGDwgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ug9tYXBTaW50MzJTaW50MzIScgoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU2ludDY0U2ludDY0RW50cnlSD21hcFNpbnQ2NFNpbnQ2NBJ4ChNtYXBfZml4ZWQzMl9maXhlZDMyGD4gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEZpeGVkMzJGaXhlZDMyRW50cnlSEW1hcEZpeGVkMzJGaXhlZDMyEngKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeVIRbWFwRml4ZWQ2NEZpeGVkNjQSfgoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGEAgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeVITbWFwU2ZpeGVkMzJTZml4ZWQzMhJ+ChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYQSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5UhNtYXBTZml4ZWQ2NFNmaXhlZDY0EmwKD21hcF9pbnQzMl9mbG9hdBhCIAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQzMkZsb2F0RW50cnlSDW1hcEludDMyRmxvYXQSbwoQbWFwX2ludDMyX2RvdWJsZRhDIAMoCzJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQzMkRvdWJsZUVudHJ5Ug5tYXBJbnQzMkRvdWJsZRJmCg1tYXBfYm9vbF9ib29sGEQgAygLMkIucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEJvb2xCb29sRW50cnlSC21hcEJvb2xCb29sEnIKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ1N0cmluZ0VudHJ5Ug9tYXBTdHJpbmdTdHJpbmcSbwoQbWFwX3N0cmluZ19ieXRlcxhGIAMoCzJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdCeXRlc0VudHJ5Ug5tYXBTdHJpbmdCeXRlcxKIAQoZbWFwX3N0cmluZ19uZXN0ZWRfbWVzc2FnZRhHIAMoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnlSFm1hcFN0cmluZ05lc3RlZE1lc3NhZ2USiwEKGm1hcF9zdHJpbmdfZm9yZWlnbl9tZXNzYWdlGEggAygLMk4ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnlSF21hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlEn8KFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5UhNtYXBTdHJpbmdOZXN0ZWRFbnVtEoIBChdtYXBfc3RyaW5nX2ZvcmVpZ25fZW51bRhKIAMoCzJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5UhRtYXBTdHJpbmdGb3JlaWduRW51bRIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzIScwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZUgAUhJvbmVvZk5lc3RlZE1lc3NhZ2USIwoMb25lb2Zfc3RyaW5nGHEgASgJSABSC29uZW9mU3RyaW5nEiEKC29uZW9mX2J5dGVzGHIgASgMSABSCm9uZW9mQnl0ZXMSHwoKb25lb2ZfYm9vbBhzIAEoCEgAUglvbmVvZkJvb2wSIwoMb25lb2ZfdWludDY0GHQgASgESABSC29uZW9mVWludDY0EiEKC29uZW9mX2Zsb2F0GHUgASgCSABSCm9uZW9mRmxvYXQSIwoMb25lb2ZfZG91YmxlGHYgASgBSABSC29uZW9mRG91YmxlEl0KCm9uZW9mX2VudW0YdyABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bUgAUglvbmVvZkVudW0SRgoQb25lb2ZfbnVsbF92YWx1ZRh4IAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVIAFIOb25lb2ZOdWxsVmFsdWUSTwoVb3B0aW9uYWxfYm9vbF93cmFwcGVyGMkBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSE29wdGlvbmFsQm9vbFdyYXBwZXISUgoWb3B0aW9uYWxfaW50MzJfd3JhcHBlchjKASABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIUb3B0aW9uYWxJbnQzMldyYXBwZXISUgoWb3B0aW9uYWxfaW50NjRfd3JhcHBlchjLASABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIUb3B0aW9uYWxJbnQ2NFdyYXBwZXISVQoXb3B0aW9uYWxfdWludDMyX3dyYXBwZXIYzAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUhVvcHRpb25hbFVpbnQzMldyYXBwZXISVQoXb3B0aW9uYWxfdWludDY0X3dyYXBwZXIYzQEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUhVvcHRpb25hbFVpbnQ2NFdyYXBwZXISUgoWb3B0aW9uYWxfZmxvYXRfd3JhcHBlchjOASABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIUb3B0aW9uYWxGbG9hdFdyYXBwZXISVQoXb3B0aW9uYWxfZG91YmxlX3dyYXBwZXIYzwEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUhVvcHRpb25hbERvdWJsZVdyYXBwZXISVQoXb3B0aW9uYWxfc3RyaW5nX3dyYXBwZXIY0AEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUhVvcHRpb25hbFN0cmluZ1dyYXBwZXISUgoWb3B0aW9uYWxfYnl0ZXNfd3JhcHBlchjRASABKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIUb3B0aW9uYWxCeXRlc1dyYXBwZXISTwoVcmVwZWF0ZWRfYm9vbF93cmFwcGVyGNMBIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSE3JlcGVhdGVkQm9vbFdyYXBwZXISUgoWcmVwZWF0ZWRfaW50MzJfd3JhcHBlchjUASADKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIUcmVwZWF0ZWRJbnQzMldyYXBwZXISUgoWcmVwZWF0ZWRfaW50NjRfd3JhcHBlchjVASADKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIUcmVwZWF0ZWRJbnQ2NFdyYXBwZXISVQoXcmVwZWF0ZWRfdWludDMyX3dyYXBwZXIY1gEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUhVyZXBlYXRlZFVpbnQzMldyYXBwZXISVQoXcmVwZWF0ZWRfdWludDY0X3dyYXBwZXIY1wEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUhVyZXBlYXRlZFVpbnQ2NFdyYXBwZXISUgoWcmVwZWF0ZWRfZmxvYXRfd3JhcHBlchjYASADKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIUcmVwZWF0ZWRGbG9hdFdyYXBwZXISVQoXcmVwZWF0ZWRfZG91YmxlX3dyYXBwZXIY2QEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUhVyZXBlYXRlZERvdWJsZVdyYXBwZXISVQoXcmVwZWF0ZWRfc3RyaW5nX3dyYXBwZXIY2gEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUhVyZXBlYXRlZFN0cmluZ1dyYXBwZXISUgoWcmVwZWF0ZWRfYnl0ZXNfd3JhcHBlchjbASADKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIUcmVwZWF0ZWRCeXRlc1dyYXBwZXISRwoRb3B0aW9uYWxfZHVyYXRpb24YrQIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUhBvcHRpb25hbER1cmF0aW9uEkoKEm9wdGlvbmFsX3RpbWVzdGFtcBiuAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUhFvcHRpb25hbFRpbWVzdGFtcBJLChNvcHRpb25hbF9maWVsZF9tYXNrGK8CIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSEW9wdGlvbmFsRmllbGRNYXNrEkEKD29wdGlvbmFsX3N0cnVjdBiwAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ug5vcHRpb25hbFN0cnVjdBI4CgxvcHRpb25hbF9hbnkYsQIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVILb3B0aW9uYWxBbnkSPgoOb3B0aW9uYWxfdmFsdWUYsgIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUg1vcHRpb25hbFZhbHVlEksKE29wdGlvbmFsX251bGxfdmFsdWUYswIgASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZVIRb3B0aW9uYWxOdWxsVmFsdWUSRwoRcmVwZWF0ZWRfZHVyYXRpb24YtwIgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUhByZXBlYXRlZER1cmF0aW9uEkoKEnJlcGVhdGVkX3RpbWVzdGFtcBi4AiADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUhFyZXBlYXRlZFRpbWVzdGFtcBJKChJyZXBlYXRlZF9maWVsZG1hc2sYuQIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IRcmVwZWF0ZWRGaWVsZG1hc2sSQQoPcmVwZWF0ZWRfc3RydWN0GMQCIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSDnJlcGVhdGVkU3RydWN0EjgKDHJlcGVhdGVkX2FueRi7AiADKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgtyZXBlYXRlZEFueRI+Cg5yZXBlYXRlZF92YWx1ZRi8AiADKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSDXJlcGVhdGVkVmFsdWUSSwoTcmVwZWF0ZWRfbGlzdF92YWx1ZRi9AiADKAsyGi5nb29nbGUucHJvdG9idWYuTGlzdFZhbHVlUhFyZXBlYXRlZExpc3RWYWx1ZRIfCgpmaWVsZG5hbWUxGJEDIAEoBVIKZmllbGRuYW1lMRIgCgtmaWVsZF9uYW1lMhiSAyABKAVSCmZpZWxkTmFtZTISIQoMX2ZpZWxkX25hbWUzGJMDIAEoBVIKRmllbGROYW1lMxIiCg1maWVsZF9fbmFtZTRfGJQDIAEoBVIKZmllbGROYW1lNBIhCgtmaWVsZDBuYW1lNRiVAyABKAVSC2ZpZWxkMG5hbWU1EiMKDWZpZWxkXzBfbmFtZTYYlgMgASgFUgtmaWVsZDBOYW1lNhIfCgpmaWVsZE5hbWU3GJcDIAEoBVIKZmllbGROYW1lNxIfCgpGaWVsZE5hbWU4GJgDIAEoBVIKRmllbGROYW1lOBIgCgtmaWVsZF9OYW1lORiZAyABKAVSCmZpZWxkTmFtZTkSIgoMRmllbGRfTmFtZTEwGJoDIAEoBVILRmllbGROYW1lMTASIgoMRklFTERfTkFNRTExGJsDIAEoBVILRklFTEROQU1FMTESIgoMRklFTERfbmFtZTEyGJwDIAEoBVILRklFTEROYW1lMTISJAoOX19maWVsZF9uYW1lMTMYnQMgASgFUgtGaWVsZE5hbWUxMxIkCg5fX0ZpZWxkX25hbWUxNBieAyABKAVSC0ZpZWxkTmFtZTE0EiMKDWZpZWxkX19uYW1lMTUYnwMgASgFUgtmaWVsZE5hbWUxNRIjCg1maWVsZF9fTmFtZTE2GKADIAEoBVILZmllbGROYW1lMTYSJAoOZmllbGRfbmFtZTE3X18YoQMgASgFUgtmaWVsZE5hbWUxNxIkCg5GaWVsZF9uYW1lMThfXxiiAyABKAVSC0ZpZWxkTmFtZTE4GnIKDU5lc3RlZE1lc3NhZ2USDAoBYRgBIAEoBVIBYRJTCgtjb3JlY3Vyc2l2ZRgCIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvM1ILY29yZWN1cnNpdmUaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpBChNNYXBTdHJpbmdCeXRlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgMUgV2YWx1ZToCOAEaigEKG01hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJVCgV2YWx1ZRgCIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUgV2YWx1ZToCOAEaeQocTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJDCgV2YWx1ZRgCIAEoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlUgV2YWx1ZToCOAEahAEKGE1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJSCgV2YWx1ZRgCIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtUgV2YWx1ZToCOAEacwoZTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJACgV2YWx1ZRgCIAEoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUgV2YWx1ZToCOAEiOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASJZCgtBbGlhc2VkRW51bRINCglBTElBU19GT08QABINCglBTElBU19CQVIQARINCglBTElBU19CQVoQAhIHCgNNT08QAhIHCgNtb28QAhIHCgNiQXoQAhoCEAFCDQoLb25lb2ZfZmllbGRKBgj1AxD/AyIeCg5Gb3JlaWduTWVzc2FnZRIMCgFjGAEgASgFUgFjIhYKFE51bGxIeXBvdGhlc2lzUHJvdG8zIi8KDkVudW1Pbmx5UHJvdG8zIh0KBEJvb2wSCgoGa0ZhbHNlEAASCQoFa1RydWUQASpACgtGb3JlaWduRW51bRIPCgtGT1JFSUdOX0ZPTxAAEg8KC0ZPUkVJR05fQkFSEAESDwoLRk9SRUlHTl9CQVoQAkI4Cihjb20uZ29vZ2xlLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zSAH4AQGiAgZQcm90bzNKkXIKBxIFJQCfAgEKwA0KAQwSAyUAEjK1DSBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCiBUZXN0IHNjaGVtYSBmb3IgcHJvdG8zIG1lc3NhZ2VzLiAgVGhpcyB0ZXN0IHNjaGVtYSBpcyB1c2VkIGJ5OgoKIC0gYmVuY2htYXJrcwogLSBmdXp6IHRlc3RzCiAtIGNvbmZvcm1hbmNlIHRlc3RzCgoKCAoBAhIDJwAmCggKAQgSAykAQQoJCgIIARIDKQBBCggKAQgSAyoAJAoJCgIIJBIDKgAkCggKAQgSAy0AHApECgIICRIDLQAcGjkgVGhpcyBpcyB0aGUgZGVmYXVsdCwgYnV0IHdlIHNwZWNpZnkgaXQgaGVyZSBleHBsaWNpdGx5LgoKCQoCAwASAy8AIwoJCgIDARIDMAAoCgkKAgMCEgMxACoKCQoCAwMSAzIAJgoJCgIDBBIDMwApCgkKAgMFEgM0ACgKCAoBCBIDNgAfCgkKAggfEgM2AB8K2wIKAgQAEgU/AIwCARrNAiBUaGlzIHByb3RvIGluY2x1ZGVzIGV2ZXJ5IHR5cGUgb2YgZmllbGQgaW4gYm90aCBzaW5ndWxhciBhbmQgcmVwZWF0ZWQKIGZvcm1zLgoKIEFsc28sIGNydWNpYWxseSwgYWxsIG1lc3NhZ2VzIGFuZCBlbnVtcyBpbiB0aGlzIGZpbGUgYXJlIGV2ZW50dWFsbHkKIHN1Ym1lc3NhZ2VzIG9mIHRoaXMgbWVzc2FnZS4gIFNvIGZvciBleGFtcGxlLCBhIGZ1enogdGVzdCBvZiBUZXN0QWxsVHlwZXMKIGNvdWxkIHRyaWdnZXIgYnVncyB0aGF0IG9jY3VyIGluIGFueSBtZXNzYWdlIHR5cGUgaW4gdGhpcyBmaWxlLiAgV2UgdmVyaWZ5CiB0aGlzIHN0YXlzIHRydWUgaW4gYSB1bml0IHRlc3QuCgoKCgMEAAESAz8IGgoMCgQEAAMAEgRAAkMDCgwKBQQAAwABEgNAChcKDQoGBAADAAIAEgNBBBAKDgoHBAADAAIABRIDQQQJCg4KBwQAAwACAAESA0EKCwoOCgcEAAMAAgADEgNBDg8KDQoGBAADAAIBEgNCBCcKDgoHBAADAAIBBhIDQgQWCg4KBwQAAwACAQESA0IXIgoOCgcEAAMAAgEDEgNCJSYKDAoEBAAEABIERQJKAwoMCgUEAAQAARIDRQcRCg0KBgQABAACABIDRgQMCg4KBwQABAACAAESA0YEBwoOCgcEAAQAAgACEgNGCgsKDQoGBAAEAAIBEgNHBAwKDgoHBAAEAAIBARIDRwQHCg4KBwQABAACAQISA0cKCwoNCgYEAAQAAgISA0gEDAoOCgcEAAQAAgIBEgNIBAcKDgoHBAAEAAICAhIDSAoLCigKBgQABAACAxIDSQQNIhkgSW50ZW50aW9uYWxseSBuZWdhdGl2ZS4KCg4KBwQABAACAwESA0kEBwoOCgcEAAQAAgMCEgNJCgwKDAoEBAAEARIETAJVAwoMCgUEAAQBARIDTAcSCgwKBQQABAEDEgNNBB4KDQoGBAAEAQMCEgNNBB4KDQoGBAAEAQIAEgNPBBIKDgoHBAAEAQIAARIDTwQNCg4KBwQABAECAAISA08QEQoNCgYEAAQBAgESA1AEEgoOCgcEAAQBAgEBEgNQBA0KDgoHBAAEAQIBAhIDUBARCg0KBgQABAECAhIDUQQSCg4KBwQABAECAgESA1EEDQoOCgcEAAQBAgICEgNREBEKDQoGBAAEAQIDEgNSBAwKDgoHBAAEAQIDARIDUgQHCg4KBwQABAECAwISA1IKCwoNCgYEAAQBAgQSA1MEDAoOCgcEAAQBAgQBEgNTBAcKDgoHBAAEAQIEAhIDUwoLCg0KBgQABAECBRIDVAQMCg4KBwQABAECBQESA1QEBwoOCgcEAAQBAgUCEgNUCgsKFwoEBAACABIDWAIbGgogU2luZ3VsYXIKCgwKBQQAAgAFEgNYAgcKDAoFBAACAAESA1gIFgoMCgUEAAIAAxIDWBkaCgsKBAQAAgESA1kCGwoMCgUEAAIBBRIDWQIHCgwKBQQAAgEBEgNZCBYKDAoFBAACAQMSA1kZGgoLCgQEAAICEgNaAh0KDAoFBAACAgUSA1oCCAoMCgUEAAICARIDWgkYCgwKBQQAAgIDEgNaGxwKCwoEBAACAxIDWwIdCgwKBQQAAgMFEgNbAggKDAoFBAACAwESA1sJGAoMCgUEAAIDAxIDWxscCgsKBAQAAgQSA1wCHQoMCgUEAAIEBRIDXAIICgwKBQQAAgQBEgNcCRgKDAoFBAACBAMSA1wbHAoLCgQEAAIFEgNdAh0KDAoFBAACBQUSA10CCAoMCgUEAAIFARIDXQkYCgwKBQQAAgUDEgNdGxwKCwoEBAACBhIDXgIfCgwKBQQAAgYFEgNeAgkKDAoFBAACBgESA14KGgoMCgUEAAIGAxIDXh0eCgsKBAQAAgcSA18CHwoMCgUEAAIHBRIDXwIJCgwKBQQAAgcBEgNfChoKDAoFBAACBwMSA18dHgoLCgQEAAIIEgNgAiEKDAoFBAACCAUSA2ACCgoMCgUEAAIIARIDYAscCgwKBQQAAggDEgNgHyAKCwoEBAACCRIDYQIiCgwKBQQAAgkFEgNhAgoKDAoFBAACCQESA2ELHAoMCgUEAAIJAxIDYR8hCgsKBAQAAgoSA2ICHAoMCgUEAAIKBRIDYgIHCgwKBQQAAgoBEgNiCBYKDAoFBAACCgMSA2IZGwoLCgQEAAILEgNjAh4KDAoFBAACCwUSA2MCCAoMCgUEAAILARIDYwkYCgwKBQQAAgsDEgNjGx0KCwoEBAACDBIDZAIaCgwKBQQAAgwFEgNkAgYKDAoFBAACDAESA2QHFAoMCgUEAAIMAxIDZBcZCgsKBAQAAg0SA2UCHgoMCgUEAAINBRIDZQIICgwKBQQAAg0BEgNlCRgKDAoFBAACDQMSA2UbHQoLCgQEAAIOEgNmAhwKDAoFBAACDgUSA2YCBwoMCgUEAAIOARIDZggWCgwKBQQAAg4DEgNmGRsKCwoEBAACDxIDaAItCgwKBQQAAg8GEgNoAg8KDAoFBAACDwESA2gQJwoMCgUEAAIPAxIDaCosCgsKBAQAAhASA2kCLwoMCgUEAAIQBhIDaQIQCgwKBQQAAhABEgNpESkKDAoFBAACEAMSA2ksLgoLCgQEAAIREgNrAicKDAoFBAACEQYSA2sCDAoMCgUEAAIRARIDaw0hCgwKBQQAAhEDEgNrJCYKCwoEBAACEhIDbAIpCgwKBQQAAhIGEgNsAg0KDAoFBAACEgESA2wOIwoMCgUEAAISAxIDbCYoCgsKBAQAAhMSA20CKQoMCgUEAAITBhIDbQINCgwKBQQAAhMBEgNtDiMKDAoFBAACEwMSA20mKAoLCgQEAAIUEgNvAjsKDAoFBAACFAUSA28CCAoMCgUEAAIUARIDbwkeCgwKBQQAAhQDEgNvISMKDAoFBAACFAgSA28kOgoNCgYEAAIUCAESA28lOQoLCgQEAAIVEgNwAisKDAoFBAACFQUSA3ACCAoMCgUEAAIVARIDcAkWCgwKBQQAAhUDEgNwGRsKDAoFBAACFQgSA3AcKgoNCgYEAAIVCAESA3AdKQoLCgQEAAIWEgNyAiwKDAoFBAACFgYSA3ICFAoMCgUEAAIWARIDchUmCgwKBQQAAhYDEgNyKSsKFwoEBAACFxIDdQIlGgogUmVwZWF0ZWQKCgwKBQQAAhcEEgN1AgoKDAoFBAACFwUSA3ULEAoMCgUEAAIXARIDdREfCgwKBQQAAhcDEgN1IiQKCwoEBAACGBIDdgIlCgwKBQQAAhgEEgN2AgoKDAoFBAACGAUSA3YLEAoMCgUEAAIYARIDdhEfCgwKBQQAAhgDEgN2IiQKCwoEBAACGRIDdwInCgwKBQQAAhkEEgN3AgoKDAoFBAACGQUSA3cLEQoMCgUEAAIZARIDdxIhCgwKBQQAAhkDEgN3JCYKCwoEBAACGhIDeAInCgwKBQQAAhoEEgN4AgoKDAoFBAACGgUSA3gLEQoMCgUEAAIaARIDeBIhCgwKBQQAAhoDEgN4JCYKCwoEBAACGxIDeQInCgwKBQQAAhsEEgN5AgoKDAoFBAACGwUSA3kLEQoMCgUEAAIbARIDeRIhCgwKBQQAAhsDEgN5JCYKCwoEBAACHBIDegInCgwKBQQAAhwEEgN6AgoKDAoFBAACHAUSA3oLEQoMCgUEAAIcARIDehIhCgwKBQQAAhwDEgN6JCYKCwoEBAACHRIDewIpCgwKBQQAAh0EEgN7AgoKDAoFBAACHQUSA3sLEgoMCgUEAAIdARIDexMjCgwKBQQAAh0DEgN7JigKCwoEBAACHhIDfAIpCgwKBQQAAh4EEgN8AgoKDAoFBAACHgUSA3wLEgoMCgUEAAIeARIDfBMjCgwKBQQAAh4DEgN8JigKCwoEBAACHxIDfQIrCgwKBQQAAh8EEgN9AgoKDAoFBAACHwUSA30LEwoMCgUEAAIfARIDfRQlCgwKBQQAAh8DEgN9KCoKCwoEBAACIBIDfgIrCgwKBQQAAiAEEgN+AgoKDAoFBAACIAUSA34LEwoMCgUEAAIgARIDfhQlCgwKBQQAAiADEgN+KCoKCwoEBAACIRIDfwIlCgwKBQQAAiEEEgN/AgoKDAoFBAACIQUSA38LEAoMCgUEAAIhARIDfxEfCgwKBQQAAiEDEgN/IiQKDAoEBAACIhIEgAECJwoNCgUEAAIiBBIEgAECCgoNCgUEAAIiBRIEgAELEQoNCgUEAAIiARIEgAESIQoNCgUEAAIiAxIEgAEkJgoMCgQEAAIjEgSBAQIjCg0KBQQAAiMEEgSBAQIKCg0KBQQAAiMFEgSBAQsPCg0KBQQAAiMBEgSBARAdCg0KBQQAAiMDEgSBASAiCgwKBAQAAiQSBIIBAicKDQoFBAACJAQSBIIBAgoKDQoFBAACJAUSBIIBCxEKDQoFBAACJAESBIIBEiEKDQoFBAACJAMSBIIBJCYKDAoEBAACJRIEgwECJQoNCgUEAAIlBBIEgwECCgoNCgUEAAIlBRIEgwELEAoNCgUEAAIlARIEgwERHwoNCgUEAAIlAxIEgwEiJAoMCgQEAAImEgSFAQI2Cg0KBQQAAiYEEgSFAQIKCg0KBQQAAiYGEgSFAQsYCg0KBQQAAiYBEgSFARkwCg0KBQQAAiYDEgSFATM1CgwKBAQAAicSBIYBAjgKDQoFBAACJwQSBIYBAgoKDQoFBAACJwYSBIYBCxkKDQoFBAACJwESBIYBGjIKDQoFBAACJwMSBIYBNTcKDAoEBAACKBIEiAECMAoNCgUEAAIoBBIEiAECCgoNCgUEAAIoBhIEiAELFQoNCgUEAAIoARIEiAEWKgoNCgUEAAIoAxIEiAEtLwoMCgQEAAIpEgSJAQIyCg0KBQQAAikEEgSJAQIKCg0KBQQAAikGEgSJAQsWCg0KBQQAAikBEgSJARcsCg0KBQQAAikDEgSJAS8xCgwKBAQAAioSBIsBAkQKDQoFBAACKgQSBIsBAgoKDQoFBAACKgUSBIsBCxEKDQoFBAACKgESBIsBEicKDQoFBAACKgMSBIsBKiwKDQoFBAACKggSBIsBLUMKDgoGBAACKggBEgSLAS5CCgwKBAQAAisSBIwBAjQKDQoFBAACKwQSBIwBAgoKDQoFBAACKwUSBIwBCxEKDQoFBAACKwESBIwBEh8KDQoFBAACKwMSBIwBIiQKDQoFBAACKwgSBIwBJTMKDgoGBAACKwgBEgSMASYyChYKBAQAAiwSBI8BAjMaCCBQYWNrZWQKCg0KBQQAAiwEEgSPAQIKCg0KBQQAAiwFEgSPAQsQCg0KBQQAAiwBEgSPAREdCg0KBQQAAiwDEgSPASAiCg0KBQQAAiwIEgSPASMyCg4KBgQAAiwIAhIEjwEkMQoMCgQEAAItEgSQAQIzCg0KBQQAAi0EEgSQAQIKCg0KBQQAAi0FEgSQAQsQCg0KBQQAAi0BEgSQAREdCg0KBQQAAi0DEgSQASAiCg0KBQQAAi0IEgSQASMyCg4KBgQAAi0IAhIEkAEkMQoMCgQEAAIuEgSRAQI1Cg0KBQQAAi4EEgSRAQIKCg0KBQQAAi4FEgSRAQsRCg0KBQQAAi4BEgSRARIfCg0KBQQAAi4DEgSRASIkCg0KBQQAAi4IEgSRASU0Cg4KBgQAAi4IAhIEkQEmMwoMCgQEAAIvEgSSAQI1Cg0KBQQAAi8EEgSSAQIKCg0KBQQAAi8FEgSSAQsRCg0KBQQAAi8BEgSSARIfCg0KBQQAAi8DEgSSASIkCg0KBQQAAi8IEgSSASU0Cg4KBgQAAi8IAhIEkgEmMwoMCgQEAAIwEgSTAQI1Cg0KBQQAAjAEEgSTAQIKCg0KBQQAAjAFEgSTAQsRCg0KBQQAAjABEgSTARIfCg0KBQQAAjADEgSTASIkCg0KBQQAAjAIEgSTASU0Cg4KBgQAAjAIAhIEkwEmMwoMCgQEAAIxEgSUAQI1Cg0KBQQAAjEEEgSUAQIKCg0KBQQAAjEFEgSUAQsRCg0KBQQAAjEBEgSUARIfCg0KBQQAAjEDEgSUASIkCg0KBQQAAjEIEgSUASU0Cg4KBgQAAjEIAhIElAEmMwoMCgQEAAIyEgSVAQI3Cg0KBQQAAjIEEgSVAQIKCg0KBQQAAjIFEgSVAQsSCg0KBQQAAjIBEgSVARMhCg0KBQQAAjIDEgSVASQmCg0KBQQAAjIIEgSVASc2Cg4KBgQAAjIIAhIElQEoNQoMCgQEAAIzEgSWAQI3Cg0KBQQAAjMEEgSWAQIKCg0KBQQAAjMFEgSWAQsSCg0KBQQAAjMBEgSWARMhCg0KBQQAAjMDEgSWASQmCg0KBQQAAjMIEgSWASc2Cg4KBgQAAjMIAhIElgEoNQoMCgQEAAI0EgSXAQI5Cg0KBQQAAjQEEgSXAQIKCg0KBQQAAjQFEgSXAQsTCg0KBQQAAjQBEgSXARQjCg0KBQQAAjQDEgSXASYoCg0KBQQAAjQIEgSXASk4Cg4KBgQAAjQIAhIElwEqNwoMCgQEAAI1EgSYAQI5Cg0KBQQAAjUEEgSYAQIKCg0KBQQAAjUFEgSYAQsTCg0KBQQAAjUBEgSYARQjCg0KBQQAAjUDEgSYASYoCg0KBQQAAjUIEgSYASk4Cg4KBgQAAjUIAhIEmAEqNwoMCgQEAAI2EgSZAQIzCg0KBQQAAjYEEgSZAQIKCg0KBQQAAjYFEgSZAQsQCg0KBQQAAjYBEgSZAREdCg0KBQQAAjYDEgSZASAiCg0KBQQAAjYIEgSZASMyCg4KBgQAAjYIAhIEmQEkMQoMCgQEAAI3EgSaAQI1Cg0KBQQAAjcEEgSaAQIKCg0KBQQAAjcFEgSaAQsRCg0KBQQAAjcBEgSaARIfCg0KBQQAAjcDEgSaASIkCg0KBQQAAjcIEgSaASU0Cg4KBgQAAjcIAhIEmgEmMwoMCgQEAAI4EgSbAQIxCg0KBQQAAjgEEgSbAQIKCg0KBQQAAjgFEgSbAQsPCg0KBQQAAjgBEgSbARAbCg0KBQQAAjgDEgSbAR4gCg0KBQQAAjgIEgSbASEwCg4KBgQAAjgIAhIEmwEiLwoMCgQEAAI5EgScAQI+Cg0KBQQAAjkEEgScAQIKCg0KBQQAAjkGEgScAQsVCg0KBQQAAjkBEgScARYoCg0KBQQAAjkDEgScASstCg0KBQQAAjkIEgScAS49Cg4KBgQAAjkIAhIEnAEvPAoYCgQEAAI6EgSfAQI2GgogVW5wYWNrZWQKCg0KBQQAAjoEEgSfAQIKCg0KBQQAAjoFEgSfAQsQCg0KBQQAAjoBEgSfAREfCg0KBQQAAjoDEgSfASIkCg0KBQQAAjoIEgSfASU1Cg4KBgQAAjoIAhIEnwEmNAoMCgQEAAI7EgSgAQI2Cg0KBQQAAjsEEgSgAQIKCg0KBQQAAjsFEgSgAQsQCg0KBQQAAjsBEgSgAREfCg0KBQQAAjsDEgSgASIkCg0KBQQAAjsIEgSgASU1Cg4KBgQAAjsIAhIEoAEmNAoMCgQEAAI8EgShAQI4Cg0KBQQAAjwEEgShAQIKCg0KBQQAAjwFEgShAQsRCg0KBQQAAjwBEgShARIhCg0KBQQAAjwDEgShASQmCg0KBQQAAjwIEgShASc3Cg4KBgQAAjwIAhIEoQEoNgoMCgQEAAI9EgSiAQI4Cg0KBQQAAj0EEgSiAQIKCg0KBQQAAj0FEgSiAQsRCg0KBQQAAj0BEgSiARIhCg0KBQQAAj0DEgSiASQmCg0KBQQAAj0IEgSiASc3Cg4KBgQAAj0IAhIEogEoNgoMCgQEAAI+EgSjAQI4Cg0KBQQAAj4EEgSjAQIKCg0KBQQAAj4FEgSjAQsRCg0KBQQAAj4BEgSjARIhCg0KBQQAAj4DEgSjASQmCg0KBQQAAj4IEgSjASc3Cg4KBgQAAj4IAhIEowEoNgoMCgQEAAI/EgSkAQI4Cg0KBQQAAj8EEgSkAQIKCg0KBQQAAj8FEgSkAQsRCg0KBQQAAj8BEgSkARIhCg0KBQQAAj8DEgSkASQmCg0KBQQAAj8IEgSkASc3Cg4KBgQAAj8IAhIEpAEoNgoMCgQEAAJAEgSlAQI6Cg0KBQQAAkAEEgSlAQIKCg0KBQQAAkAFEgSlAQsSCg0KBQQAAkABEgSlARMjCg0KBQQAAkADEgSlASYoCg0KBQQAAkAIEgSlASk5Cg4KBgQAAkAIAhIEpQEqOAoMCgQEAAJBEgSmAQI6Cg0KBQQAAkEEEgSmAQIKCg0KBQQAAkEFEgSmAQsSCg0KBQQAAkEBEgSmARMjCg0KBQQAAkEDEgSmASYoCg0KBQQAAkEIEgSmASk5Cg4KBgQAAkEIAhIEpgEqOAoMCgQEAAJCEgSnAQI8Cg0KBQQAAkIEEgSnAQIKCg0KBQQAAkIFEgSnAQsTCg0KBQQAAkIBEgSnARQlCg0KBQQAAkIDEgSnASgqCg0KBQQAAkIIEgSnASs7Cg4KBgQAAkIIAhIEpwEsOgoMCgQEAAJDEgSoAQI8Cg0KBQQAAkMEEgSoAQIKCg0KBQQAAkMFEgSoAQsTCg0KBQQAAkMBEgSoARQlCg0KBQQAAkMDEgSoASgqCg0KBQQAAkMIEgSoASs7Cg4KBgQAAkMIAhIEqAEsOgoMCgQEAAJEEgSpAQI2Cg0KBQQAAkQEEgSpAQIKCg0KBQQAAkQFEgSpAQsQCg0KBQQAAkQBEgSpAREfCg0KBQQAAkQDEgSpASIkCg0KBQQAAkQIEgSpASU1Cg4KBgQAAkQIAhIEqQEmNAoMCgQEAAJFEgSqAQI5Cg0KBQQAAkUEEgSqAQIKCg0KBQQAAkUFEgSqAQsRCg0KBQQAAkUBEgSqARIhCg0KBQQAAkUDEgSqASQnCg0KBQQAAkUIEgSqASg4Cg4KBgQAAkUIAhIEqgEpNwoMCgQEAAJGEgSrAQI1Cg0KBQQAAkYEEgSrAQIKCg0KBQQAAkYFEgSrAQsPCg0KBQQAAkYBEgSrARAdCg0KBQQAAkYDEgSrASAjCg0KBQQAAkYIEgSrASQ0Cg4KBgQAAkYIAhIEqwElMwoMCgQEAAJHEgSsAQJCCg0KBQQAAkcEEgSsAQIKCg0KBQQAAkcGEgSsAQsVCg0KBQQAAkcBEgSsARYqCg0KBQQAAkcDEgSsAS0wCg0KBQQAAkcIEgSsATFBCg4KBgQAAkcIAhIErAEyQAoTCgQEAAJIEgSvAQIpGgUgTWFwCgoNCgUEAAJIBhIErwECEwoNCgUEAAJIARIErwEUIwoNCgUEAAJIAxIErwEmKAoMCgQEAAJJEgSwAQIpCg0KBQQAAkkGEgSwAQITCg0KBQQAAkkBEgSwARQjCg0KBQQAAkkDEgSwASYoCgwKBAQAAkoSBLEBAi0KDQoFBAACSgYSBLEBAhUKDQoFBAACSgESBLEBFicKDQoFBAACSgMSBLEBKiwKDAoEBAACSxIEsgECLQoNCgUEAAJLBhIEsgECFQoNCgUEAAJLARIEsgEWJwoNCgUEAAJLAxIEsgEqLAoMCgQEAAJMEgSzAQItCg0KBQQAAkwGEgSzAQIVCg0KBQQAAkwBEgSzARYnCg0KBQQAAkwDEgSzASosCgwKBAQAAk0SBLQBAi0KDQoFBAACTQYSBLQBAhUKDQoFBAACTQESBLQBFicKDQoFBAACTQMSBLQBKiwKDAoEBAACThIEtQECMQoNCgUEAAJOBhIEtQECFwoNCgUEAAJOARIEtQEYKwoNCgUEAAJOAxIEtQEuMAoMCgQEAAJPEgS2AQIxCg0KBQQAAk8GEgS2AQIXCg0KBQQAAk8BEgS2ARgrCg0KBQQAAk8DEgS2AS4wCgwKBAQAAlASBLcBAjUKDQoFBAACUAYSBLcBAhkKDQoFBAACUAESBLcBGi8KDQoFBAACUAMSBLcBMjQKDAoEBAACURIEuAECNQoNCgUEAAJRBhIEuAECGQoNCgUEAAJRARIEuAEaLwoNCgUEAAJRAxIEuAEyNAoMCgQEAAJSEgS5AQIpCg0KBQQAAlIGEgS5AQITCg0KBQQAAlIBEgS5ARQjCg0KBQQAAlIDEgS5ASYoCgwKBAQAAlMSBLoBAisKDQoFBAACUwYSBLoBAhQKDQoFBAACUwESBLoBFSUKDQoFBAACUwMSBLoBKCoKDAoEBAACVBIEuwECJQoNCgUEAAJUBhIEuwECEQoNCgUEAAJUARIEuwESHwoNCgUEAAJUAxIEuwEiJAoMCgQEAAJVEgS8AQItCg0KBQQAAlUGEgS8AQIVCg0KBQQAAlUBEgS8ARYnCg0KBQQAAlUDEgS8ASosCgwKBAQAAlYSBL0BAisKDQoFBAACVgYSBL0BAhQKDQoFBAACVgESBL0BFSUKDQoFBAACVgMSBL0BKCoKDAoEBAACVxIEvgECPAoNCgUEAAJXBhIEvgECHAoNCgUEAAJXARIEvgEdNgoNCgUEAAJXAxIEvgE5OwoMCgQEAAJYEgS/AQI+Cg0KBQQAAlgGEgS/AQIdCg0KBQQAAlgBEgS/AR44Cg0KBQQAAlgDEgS/ATs9CgwKBAQAAlkSBMABAjYKDQoFBAACWQYSBMABAhkKDQoFBAACWQESBMABGjAKDQoFBAACWQMSBMABMzUKDAoEBAACWhIEwQECOAoNCgUEAAJaBhIEwQECGgoNCgUEAAJaARIEwQEbMgoNCgUEAAJaAxIEwQE1NwoOCgQEAAgAEgbDAQLOAQMKDQoFBAAIAAESBMMBCBMKDAoEBAACWxIExAEEHgoNCgUEAAJbBRIExAEECgoNCgUEAAJbARIExAELFwoNCgUEAAJbAxIExAEaHQoMCgQEAAJcEgTFAQQtCg0KBQQAAlwGEgTFAQQRCg0KBQQAAlwBEgTFARImCg0KBQQAAlwDEgTFASksCgwKBAQAAl0SBMYBBB4KDQoFBAACXQUSBMYBBAoKDQoFBAACXQESBMYBCxcKDQoFBAACXQMSBMYBGh0KDAoEBAACXhIExwEEHAoNCgUEAAJeBRIExwEECQoNCgUEAAJeARIExwEKFQoNCgUEAAJeAxIExwEYGwoMCgQEAAJfEgTIAQQaCg0KBQQAAl8FEgTIAQQICg0KBQQAAl8BEgTIAQkTCg0KBQQAAl8DEgTIARYZCgwKBAQAAmASBMkBBB4KDQoFBAACYAUSBMkBBAoKDQoFBAACYAESBMkBCxcKDQoFBAACYAMSBMkBGh0KDAoEBAACYRIEygEEHAoNCgUEAAJhBRIEygEECQoNCgUEAAJhARIEygEKFQoNCgUEAAJhAxIEygEYGwoMCgQEAAJiEgTLAQQeCg0KBQQAAmIFEgTLAQQKCg0KBQQAAmIBEgTLAQsXCg0KBQQAAmIDEgTLARodCgwKBAQAAmMSBMwBBCAKDQoFBAACYwYSBMwBBA4KDQoFBAACYwESBMwBDxkKDQoFBAACYwMSBMwBHB8KDAoEBAACZBIEzQEENQoNCgUEAAJkBhIEzQEEHQoNCgUEAAJkARIEzQEeLgoNCgUEAAJkAxIEzQExNAogCgQEAAJlEgTRAQI4GhIgV2VsbC1rbm93biB0eXBlcwoKDQoFBAACZQYSBNEBAhsKDQoFBAACZQESBNEBHDEKDQoFBAACZQMSBNEBNDcKDAoEBAACZhIE0gECOgoNCgUEAAJmBhIE0gECHAoNCgUEAAJmARIE0gEdMwoNCgUEAAJmAxIE0gE2OQoMCgQEAAJnEgTTAQI6Cg0KBQQAAmcGEgTTAQIcCg0KBQQAAmcBEgTTAR0zCg0KBQQAAmcDEgTTATY5CgwKBAQAAmgSBNQBAjwKDQoFBAACaAYSBNQBAh0KDQoFBAACaAESBNQBHjUKDQoFBAACaAMSBNQBODsKDAoEBAACaRIE1QECPAoNCgUEAAJpBhIE1QECHQoNCgUEAAJpARIE1QEeNQoNCgUEAAJpAxIE1QE4OwoMCgQEAAJqEgTWAQI6Cg0KBQQAAmoGEgTWAQIcCg0KBQQAAmoBEgTWAR0zCg0KBQQAAmoDEgTWATY5CgwKBAQAAmsSBNcBAjwKDQoFBAACawYSBNcBAh0KDQoFBAACawESBNcBHjUKDQoFBAACawMSBNcBODsKDAoEBAACbBIE2AECPAoNCgUEAAJsBhIE2AECHQoNCgUEAAJsARIE2AEeNQoNCgUEAAJsAxIE2AE4OwoMCgQEAAJtEgTZAQI6Cg0KBQQAAm0GEgTZAQIcCg0KBQQAAm0BEgTZAR0zCg0KBQQAAm0DEgTZATY5CgwKBAQAAm4SBNsBAkEKDQoFBAACbgQSBNsBAgoKDQoFBAACbgYSBNsBCyQKDQoFBAACbgESBNsBJToKDQoFBAACbgMSBNsBPUAKDAoEBAACbxIE3AECQwoNCgUEAAJvBBIE3AECCgoNCgUEAAJvBhIE3AELJQoNCgUEAAJvARIE3AEmPAoNCgUEAAJvAxIE3AE/QgoMCgQEAAJwEgTdAQJDCg0KBQQAAnAEEgTdAQIKCg0KBQQAAnAGEgTdAQslCg0KBQQAAnABEgTdASY8Cg0KBQQAAnADEgTdAT9CCgwKBAQAAnESBN4BAkUKDQoFBAACcQQSBN4BAgoKDQoFBAACcQYSBN4BCyYKDQoFBAACcQESBN4BJz4KDQoFBAACcQMSBN4BQUQKDAoEBAACchIE3wECRQoNCgUEAAJyBBIE3wECCgoNCgUEAAJyBhIE3wELJgoNCgUEAAJyARIE3wEnPgoNCgUEAAJyAxIE3wFBRAoMCgQEAAJzEgTgAQJDCg0KBQQAAnMEEgTgAQIKCg0KBQQAAnMGEgTgAQslCg0KBQQAAnMBEgTgASY8Cg0KBQQAAnMDEgTgAT9CCgwKBAQAAnQSBOEBAkUKDQoFBAACdAQSBOEBAgoKDQoFBAACdAYSBOEBCyYKDQoFBAACdAESBOEBJz4KDQoFBAACdAMSBOEBQUQKDAoEBAACdRIE4gECRQoNCgUEAAJ1BBIE4gECCgoNCgUEAAJ1BhIE4gELJgoNCgUEAAJ1ARIE4gEnPgoNCgUEAAJ1AxIE4gFBRAoMCgQEAAJ2EgTjAQJDCg0KBQQAAnYEEgTjAQIKCg0KBQQAAnYGEgTjAQslCg0KBQQAAnYBEgTjASY8Cg0KBQQAAnYDEgTjAT9CCgwKBAQAAncSBOUBAjMKDQoFBAACdwYSBOUBAhoKDQoFBAACdwESBOUBGywKDQoFBAACdwMSBOUBLzIKDAoEBAACeBIE5gECNQoNCgUEAAJ4BhIE5gECGwoNCgUEAAJ4ARIE5gEcLgoNCgUEAAJ4AxIE5gExNAoMCgQEAAJ5EgTnAQI2Cg0KBQQAAnkGEgTnAQIbCg0KBQQAAnkBEgTnARwvCg0KBQQAAnkDEgTnATI1CgwKBAQAAnoSBOgBAi8KDQoFBAACegYSBOgBAhgKDQoFBAACegESBOgBGSgKDQoFBAACegMSBOgBKy4KDAoEBAACexIE6QECKQoNCgUEAAJ7BhIE6QECFQoNCgUEAAJ7ARIE6QEWIgoNCgUEAAJ7AxIE6QElKAoMCgQEAAJ8EgTqAQItCg0KBQQAAnwGEgTqAQIXCg0KBQQAAnwBEgTqARgmCg0KBQQAAnwDEgTqASksCgwKBAQAAn0SBOsBAjYKDQoFBAACfQYSBOsBAhsKDQoFBAACfQESBOsBHC8KDQoFBAACfQMSBOsBMjUKDAoEBAACfhIE7QECPAoNCgUEAAJ+BBIE7QECCgoNCgUEAAJ+BhIE7QELIwoNCgUEAAJ+ARIE7QEkNQoNCgUEAAJ+AxIE7QE4OwoMCgQEAAJ/EgTuAQI+Cg0KBQQAAn8EEgTuAQIKCg0KBQQAAn8GEgTuAQskCg0KBQQAAn8BEgTuASU3Cg0KBQQAAn8DEgTuATo9Cg0KBQQAAoABEgTvAQI+Cg4KBgQAAoABBBIE7wECCgoOCgYEAAKAAQYSBO8BCyQKDgoGBAACgAEBEgTvASU3Cg4KBgQAAoABAxIE7wE6PQoNCgUEAAKBARIE8AECOAoOCgYEAAKBAQQSBPABAgoKDgoGBAACgQEGEgTwAQshCg4KBgQAAoEBARIE8AEiMQoOCgYEAAKBAQMSBPABNDcKDQoFBAACggESBPEBAjIKDgoGBAACggEEEgTxAQIKCg4KBgQAAoIBBhIE8QELHgoOCgYEAAKCAQESBPEBHysKDgoGBAACggEDEgTxAS4xCg0KBQQAAoMBEgTyAQI2Cg4KBgQAAoMBBBIE8gECCgoOCgYEAAKDAQYSBPIBCyAKDgoGBAACgwEBEgTyASEvCg4KBgQAAoMBAxIE8gEyNQoNCgUEAAKEARIE8wECPwoOCgYEAAKEAQQSBPMBAgoKDgoGBAAChAEGEgTzAQskCg4KBgQAAoQBARIE8wElOAoOCgYEAAKEAQMSBPMBOz4KcwoFBAAChQESBPcBAhkaZCBUZXN0IGZpZWxkLW5hbWUtdG8tSlNPTi1uYW1lIGNvbnZlbnRpb24uCiAocHJvdG9idWYgc2F5cyBuYW1lcyBjYW4gYmUgYW55IHZhbGlkIEMvQysrIGlkZW50aWZpZXIuKQoKDgoGBAAChQEFEgT3AQIHCg4KBgQAAoUBARIE9wEIEgoOCgYEAAKFAQMSBPcBFRgKDQoFBAAChgESBPgBAhoKDgoGBAAChgEFEgT4AQIHCg4KBgQAAoYBARIE+AEIEwoOCgYEAAKGAQMSBPgBFhkKDQoFBAAChwESBPkBAhsKDgoGBAAChwEFEgT5AQIHCg4KBgQAAocBARIE+QEIFAoOCgYEAAKHAQMSBPkBFxoKDQoFBAACiAESBPoBAhwKDgoGBAACiAEFEgT6AQIHCg4KBgQAAogBARIE+gEIFQoOCgYEAAKIAQMSBPoBGBsKDQoFBAACiQESBPsBAhoKDgoGBAACiQEFEgT7AQIHCg4KBgQAAokBARIE+wEIEwoOCgYEAAKJAQMSBPsBFhkKDQoFBAACigESBPwBAhwKDgoGBAACigEFEgT8AQIHCg4KBgQAAooBARIE/AEIFQoOCgYEAAKKAQMSBPwBGBsKDQoFBAACiwESBP0BAhkKDgoGBAACiwEFEgT9AQIHCg4KBgQAAosBARIE/QEIEgoOCgYEAAKLAQMSBP0BFRgKDQoFBAACjAESBP4BAhkKDgoGBAACjAEFEgT+AQIHCg4KBgQAAowBARIE/gEIEgoOCgYEAAKMAQMSBP4BFRgKDQoFBAACjQESBP8BAhoKDgoGBAACjQEFEgT/AQIHCg4KBgQAAo0BARIE/wEIEwoOCgYEAAKNAQMSBP8BFhkKDQoFBAACjgESBIACAhsKDgoGBAACjgEFEgSAAgIHCg4KBgQAAo4BARIEgAIIFAoOCgYEAAKOAQMSBIACFxoKDQoFBAACjwESBIECAhsKDgoGBAACjwEFEgSBAgIHCg4KBgQAAo8BARIEgQIIFAoOCgYEAAKPAQMSBIECFxoKDQoFBAACkAESBIICAhsKDgoGBAACkAEFEgSCAgIHCg4KBgQAApABARIEggIIFAoOCgYEAAKQAQMSBIICFxoKDQoFBAACkQESBIMCAh0KDgoGBAACkQEFEgSDAgIHCg4KBgQAApEBARIEgwIIFgoOCgYEAAKRAQMSBIMCGRwKDQoFBAACkgESBIQCAh0KDgoGBAACkgEFEgSEAgIHCg4KBgQAApIBARIEhAIIFgoOCgYEAAKSAQMSBIQCGRwKDQoFBAACkwESBIUCAhwKDgoGBAACkwEFEgSFAgIHCg4KBgQAApMBARIEhQIIFQoOCgYEAAKTAQMSBIUCGBsKDQoFBAAClAESBIYCAhwKDgoGBAAClAEFEgSGAgIHCg4KBgQAApQBARIEhgIIFQoOCgYEAAKUAQMSBIYCGBsKDQoFBAAClQESBIcCAh0KDgoGBAAClQEFEgSHAgIHCg4KBgQAApUBARIEhwIIFgoOCgYEAAKVAQMSBIcCGRwKDQoFBAAClgESBIgCAh0KDgoGBAAClgEFEgSIAgIHCg4KBgQAApYBARIEiAIIFgoOCgYEAAKWAQMSBIgCGRwKMgoDBAAJEgSLAgIWGiUgUmVzZXJ2ZWQgZm9yIHRlc3RpbmcgdW5rbm93biBmaWVsZHMKCgwKBAQACQASBIsCCxUKDQoFBAAJAAESBIsCCw4KDQoFBAAJAAISBIsCEhUKDAoCBAESBo4CAJACAQoLCgMEAQESBI4CCBYKDAoEBAECABIEjwICDgoNCgUEAQIABRIEjwICBwoNCgUEAQIAARIEjwIICQoNCgUEAQIAAxIEjwIMDQoMCgIFABIGkgIAlgIBCgsKAwUAARIEkgIFEAoMCgQFAAIAEgSTAgISCg0KBQUAAgABEgSTAgINCg0KBQUAAgACEgSTAhARCgwKBAUAAgESBJQCAhIKDQoFBQACAQESBJQCAg0KDQoFBQACAQISBJQCEBEKDAoEBQACAhIElQICEgoNCgUFAAICARIElQICDQoNCgUFAAICAhIElQIQEQoKCgIEAhIEmAIAHwoLCgMEAgESBJgCCBwKDAoCBAMSBpoCAJ8CAQoLCgMEAwESBJoCCBYKDgoEBAMEABIGmwICngIDCg0KBQQDBAABEgSbAgcLCg4KBgQDBAACABIEnAIEDwoPCgcEAwQAAgABEgScAgQKCg8KBwQDBAACAAISBJwCDQ4KDgoGBAMEAAIBEgSdAgQOCg8KBwQDBAACAQESBJ0CBAkKDwoHBAMEAAIBAhIEnQIMDWIGcHJvdG8zCpLWAQoqZ29vZ2xlL3Byb3RvYnVmL3Rlc3RfbWVzc2FnZXNfcHJvdG8yLnByb3RvEh1wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMiK5UQoSVGVzdEFsbFR5cGVzUHJvdG8yEiUKDm9wdGlvbmFsX2ludDMyGAEgASgFUg1vcHRpb25hbEludDMyEiUKDm9wdGlvbmFsX2ludDY0GAIgASgDUg1vcHRpb25hbEludDY0EicKD29wdGlvbmFsX3VpbnQzMhgDIAEoDVIOb3B0aW9uYWxVaW50MzISJwoPb3B0aW9uYWxfdWludDY0GAQgASgEUg5vcHRpb25hbFVpbnQ2NBInCg9vcHRpb25hbF9zaW50MzIYBSABKBFSDm9wdGlvbmFsU2ludDMyEicKD29wdGlvbmFsX3NpbnQ2NBgGIAEoElIOb3B0aW9uYWxTaW50NjQSKQoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoB1IPb3B0aW9uYWxGaXhlZDMyEikKEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZSD29wdGlvbmFsRml4ZWQ2NBIrChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoD1IQb3B0aW9uYWxTZml4ZWQzMhIrChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEFIQb3B0aW9uYWxTZml4ZWQ2NBIlCg5vcHRpb25hbF9mbG9hdBgLIAEoAlINb3B0aW9uYWxGbG9hdBInCg9vcHRpb25hbF9kb3VibGUYDCABKAFSDm9wdGlvbmFsRG91YmxlEiMKDW9wdGlvbmFsX2Jvb2wYDSABKAhSDG9wdGlvbmFsQm9vbBInCg9vcHRpb25hbF9zdHJpbmcYDiABKAlSDm9wdGlvbmFsU3RyaW5nEiUKDm9wdGlvbmFsX2J5dGVzGA8gASgMUg1vcHRpb25hbEJ5dGVzEncKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRJtChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIWb3B0aW9uYWxGb3JlaWduTWVzc2FnZRJuChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUhJvcHRpb25hbE5lc3RlZEVudW0SZAoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSE29wdGlvbmFsRm9yZWlnbkVudW0SNgoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAlITb3B0aW9uYWxTdHJpbmdQaWVjZRInCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIAVIMb3B0aW9uYWxDb3JkEl4KEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yUhByZWN1cnNpdmVNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEncKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSFXJlcGVhdGVkTmVzdGVkTWVzc2FnZRJtChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJuChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUhJyZXBlYXRlZE5lc3RlZEVudW0SZAoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSE3JlcGVhdGVkRm9yZWlnbkVudW0SNgoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAlITcmVwZWF0ZWRTdHJpbmdQaWVjZRInCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIAVIMcmVwZWF0ZWRDb3JkEiUKDHBhY2tlZF9pbnQzMhhLIAMoBUICEAFSC3BhY2tlZEludDMyEiUKDHBhY2tlZF9pbnQ2NBhMIAMoA0ICEAFSC3BhY2tlZEludDY0EicKDXBhY2tlZF91aW50MzIYTSADKA1CAhABUgxwYWNrZWRVaW50MzISJwoNcGFja2VkX3VpbnQ2NBhOIAMoBEICEAFSDHBhY2tlZFVpbnQ2NBInCg1wYWNrZWRfc2ludDMyGE8gAygRQgIQAVIMcGFja2VkU2ludDMyEicKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABUgxwYWNrZWRTaW50NjQSKQoOcGFja2VkX2ZpeGVkMzIYUSADKAdCAhABUg1wYWNrZWRGaXhlZDMyEikKDnBhY2tlZF9maXhlZDY0GFIgAygGQgIQAVINcGFja2VkRml4ZWQ2NBIrCg9wYWNrZWRfc2ZpeGVkMzIYUyADKA9CAhABUg5wYWNrZWRTZml4ZWQzMhIrCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABUg5wYWNrZWRTZml4ZWQ2NBIlCgxwYWNrZWRfZmxvYXQYVSADKAJCAhABUgtwYWNrZWRGbG9hdBInCg1wYWNrZWRfZG91YmxlGFYgAygBQgIQAVIMcGFja2VkRG91YmxlEiMKC3BhY2tlZF9ib29sGFcgAygIQgIQAVIKcGFja2VkQm9vbBJuChJwYWNrZWRfbmVzdGVkX2VudW0YWCADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bUICEAFSEHBhY2tlZE5lc3RlZEVudW0SKQoOdW5wYWNrZWRfaW50MzIYWSADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFogAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYWyADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXCADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXiADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGF8gAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYCADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhlIAMoCEICEABSDHVucGFja2VkQm9vbBJyChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQAFISdW5wYWNrZWROZXN0ZWRFbnVtEmwKD21hcF9pbnQzMl9pbnQzMhg4IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkludDMyRW50cnlSDW1hcEludDMySW50MzISbAoPbWFwX2ludDY0X2ludDY0GDkgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJyChFtYXBfdWludDMyX3VpbnQzMhg6IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBVaW50MzJVaW50MzJFbnRyeVIPbWFwVWludDMyVWludDMyEnIKEW1hcF91aW50NjRfdWludDY0GDsgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5Ug9tYXBVaW50NjRVaW50NjQScgoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJyChFtYXBfc2ludDY0X3NpbnQ2NBg9IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTaW50NjRTaW50NjRFbnRyeVIPbWFwU2ludDY0U2ludDY0EngKE21hcF9maXhlZDMyX2ZpeGVkMzIYPiADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeVIRbWFwRml4ZWQzMkZpeGVkMzISeAoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBg/IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJ+ChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5UhNtYXBTZml4ZWQzMlNmaXhlZDMyEn4KFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnlSE21hcFNmaXhlZDY0U2ZpeGVkNjQSbAoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJvChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRG91YmxlRW50cnlSDm1hcEludDMyRG91YmxlEmYKDW1hcF9ib29sX2Jvb2wYRCADKAsyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwQm9vbEJvb2xFbnRyeVILbWFwQm9vbEJvb2wScgoRbWFwX3N0cmluZ19zdHJpbmcYRSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJvChBtYXBfc3RyaW5nX2J5dGVzGEYgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0J5dGVzRW50cnlSDm1hcFN0cmluZ0J5dGVzEogBChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeVIWbWFwU3RyaW5nTmVzdGVkTWVzc2FnZRKLAQoabWFwX3N0cmluZ19mb3JlaWduX21lc3NhZ2UYSCADKAsyTi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeVIXbWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2USfwoWbWFwX3N0cmluZ19uZXN0ZWRfZW51bRhJIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnlSE21hcFN0cmluZ05lc3RlZEVudW0SggEKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnlSFG1hcFN0cmluZ0ZvcmVpZ25FbnVtEiMKDG9uZW9mX3VpbnQzMhhvIAEoDUgAUgtvbmVvZlVpbnQzMhJzChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxIfCgpvbmVvZl9ib29sGHMgASgISABSCW9uZW9mQm9vbBIjCgxvbmVvZl91aW50NjQYdCABKARIAFILb25lb2ZVaW50NjQSIQoLb25lb2ZfZmxvYXQYdSABKAJIAFIKb25lb2ZGbG9hdBIjCgxvbmVvZl9kb3VibGUYdiABKAFIAFILb25lb2ZEb3VibGUSXQoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtSABSCW9uZW9mRW51bRJLCgRkYXRhGMkBIAEoCjI2LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5EYXRhUgRkYXRhEjAKDWRlZmF1bHRfaW50MzIY8QEgASgFOgotMTIzNDU2Nzg5UgxkZWZhdWx0SW50MzISOgoNZGVmYXVsdF9pbnQ2NBjyASABKAM6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5UgxkZWZhdWx0SW50NjQSMgoOZGVmYXVsdF91aW50MzIY8wEgASgNOgoyMTIzNDU2Nzg5Ug1kZWZhdWx0VWludDMyEjwKDmRlZmF1bHRfdWludDY0GPQBIAEoBDoUMTAxMjM0NTY3ODkxMjM0NTY3ODlSDWRlZmF1bHRVaW50NjQSMgoOZGVmYXVsdF9zaW50MzIY9QEgASgROgotMTIzNDU2Nzg5Ug1kZWZhdWx0U2ludDMyEjwKDmRlZmF1bHRfc2ludDY0GPYBIAEoEjoULTkxMjM0NTY3ODkxMjM0NTY3ODlSDWRlZmF1bHRTaW50NjQSNAoPZGVmYXVsdF9maXhlZDMyGPcBIAEoBzoKMjEyMzQ1Njc4OVIOZGVmYXVsdEZpeGVkMzISPgoPZGVmYXVsdF9maXhlZDY0GPgBIAEoBjoUMTAxMjM0NTY3ODkxMjM0NTY3ODlSDmRlZmF1bHRGaXhlZDY0EjYKEGRlZmF1bHRfc2ZpeGVkMzIY+QEgASgPOgotMTIzNDU2Nzg5Ug9kZWZhdWx0U2ZpeGVkMzISQAoQZGVmYXVsdF9zZml4ZWQ2NBj6ASABKBA6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5Ug9kZWZhdWx0U2ZpeGVkNjQSKwoNZGVmYXVsdF9mbG9hdBj7ASABKAI6BTllKzA5UgxkZWZhdWx0RmxvYXQSLQoOZGVmYXVsdF9kb3VibGUY/AEgASgBOgU3ZSsyMlINZGVmYXVsdERvdWJsZRIoCgxkZWZhdWx0X2Jvb2wY/QEgASgIOgR0cnVlUgtkZWZhdWx0Qm9vbBIvCg5kZWZhdWx0X3N0cmluZxj+ASABKAk6B1Jvc2VidWRSDWRlZmF1bHRTdHJpbmcSLAoNZGVmYXVsdF9ieXRlcxj/ASABKAw6Bmpvc2h1YVIMZGVmYXVsdEJ5dGVzEh8KCmZpZWxkbmFtZTEYkQMgASgFUgpmaWVsZG5hbWUxEiAKC2ZpZWxkX25hbWUyGJIDIAEoBVIKZmllbGROYW1lMhIhCgxfZmllbGRfbmFtZTMYkwMgASgFUgpGaWVsZE5hbWUzEiIKDWZpZWxkX19uYW1lNF8YlAMgASgFUgpmaWVsZE5hbWU0EiEKC2ZpZWxkMG5hbWU1GJUDIAEoBVILZmllbGQwbmFtZTUSIwoNZmllbGRfMF9uYW1lNhiWAyABKAVSC2ZpZWxkME5hbWU2Eh8KCmZpZWxkTmFtZTcYlwMgASgFUgpmaWVsZE5hbWU3Eh8KCkZpZWxkTmFtZTgYmAMgASgFUgpGaWVsZE5hbWU4EiAKC2ZpZWxkX05hbWU5GJkDIAEoBVIKZmllbGROYW1lORIiCgxGaWVsZF9OYW1lMTAYmgMgASgFUgtGaWVsZE5hbWUxMBIiCgxGSUVMRF9OQU1FMTEYmwMgASgFUgtGSUVMRE5BTUUxMRIiCgxGSUVMRF9uYW1lMTIYnAMgASgFUgtGSUVMRE5hbWUxMhIkCg5fX2ZpZWxkX25hbWUxMxidAyABKAVSC0ZpZWxkTmFtZTEzEiQKDl9fRmllbGRfbmFtZTE0GJ4DIAEoBVILRmllbGROYW1lMTQSIwoNZmllbGRfX25hbWUxNRifAyABKAVSC2ZpZWxkTmFtZTE1EiMKDWZpZWxkX19OYW1lMTYYoAMgASgFUgtmaWVsZE5hbWUxNhIkCg5maWVsZF9uYW1lMTdfXxihAyABKAVSC2ZpZWxkTmFtZTE3EiQKDkZpZWxkX25hbWUxOF9fGKIDIAEoBVILRmllbGROYW1lMTgacgoNTmVzdGVkTWVzc2FnZRIMCgFhGAEgASgFUgFhElMKC2NvcmVjdXJzaXZlGAIgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yUgtjb3JlY3Vyc2l2ZRpAChJNYXBJbnQzMkludDMyRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAVSBXZhbHVlOgI4ARpAChJNYXBJbnQ2NEludDY0RW50cnkSEAoDa2V5GAEgASgDUgNrZXkSFAoFdmFsdWUYAiABKANSBXZhbHVlOgI4ARpCChRNYXBVaW50MzJVaW50MzJFbnRyeRIQCgNrZXkYASABKA1SA2tleRIUCgV2YWx1ZRgCIAEoDVIFdmFsdWU6AjgBGkIKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EhAKA2tleRgBIAEoBFIDa2V5EhQKBXZhbHVlGAIgASgEUgV2YWx1ZToCOAEaQgoUTWFwU2ludDMyU2ludDMyRW50cnkSEAoDa2V5GAEgASgRUgNrZXkSFAoFdmFsdWUYAiABKBFSBXZhbHVlOgI4ARpCChRNYXBTaW50NjRTaW50NjRFbnRyeRIQCgNrZXkYASABKBJSA2tleRIUCgV2YWx1ZRgCIAEoElIFdmFsdWU6AjgBGkQKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAdSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoBlIDa2V5EhQKBXZhbHVlGAIgASgGUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoD1IDa2V5EhQKBXZhbHVlGAIgASgPUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoEFIDa2V5EhQKBXZhbHVlGAIgASgQUgV2YWx1ZToCOAEaQAoSTWFwSW50MzJGbG9hdEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEaQQoTTWFwSW50MzJEb3VibGVFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAVIFdmFsdWU6AjgBGj4KEE1hcEJvb2xCb29sRW50cnkSEAoDa2V5GAEgASgIUgNrZXkSFAoFdmFsdWUYAiABKAhSBXZhbHVlOgI4ARpCChRNYXBTdHJpbmdTdHJpbmdFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBGkEKE01hcFN0cmluZ0J5dGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARqKAQobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElUKBXZhbHVlGAIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSBXZhbHVlOgI4ARp/ChxNYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkkKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSBXZhbHVlOgI4ARqEAQoYTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElIKBXZhbHVlGAIgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1SBXZhbHVlOgI4ARp5ChlNYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkYKBXZhbHVlGAIgASgOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSBXZhbHVlOgI4ARpMCgREYXRhEiAKC2dyb3VwX2ludDMyGMoBIAEoBVIKZ3JvdXBJbnQzMhIiCgxncm91cF91aW50MzIYywEgASgNUgtncm91cFVpbnQzMhohChFNZXNzYWdlU2V0Q29ycmVjdCoICAQQ/////wc6AggBGvoBChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjESEAoDc3RyGBkgASgJUgNzdHIyyAEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBj5u14gASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMVITbWVzc2FnZVNldEV4dGVuc2lvbhr3AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yEgwKAWkYCSABKAVSAWkyyQEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBiQs/wBIAEoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjJSE21lc3NhZ2VTZXRFeHRlbnNpb24iOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASoFCHgQyQFCDQoLb25lb2ZfZmllbGRKBgjoBxCQTiIkChRGb3JlaWduTWVzc2FnZVByb3RvMhIMCgFjGAEgASgFUgFjIp4DChVVbmtub3duVG9UZXN0QWxsVHlwZXMSJgoOb3B0aW9uYWxfaW50MzIY6QcgASgFUg1vcHRpb25hbEludDMyEigKD29wdGlvbmFsX3N0cmluZxjqByABKAlSDm9wdGlvbmFsU3RyaW5nElsKDm5lc3RlZF9tZXNzYWdlGOsHIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUg1uZXN0ZWRNZXNzYWdlEmkKDW9wdGlvbmFsZ3JvdXAY7AcgASgKMkIucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVW5rbm93blRvVGVzdEFsbFR5cGVzLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXASJAoNb3B0aW9uYWxfYm9vbBjuByABKAhSDG9wdGlvbmFsQm9vbBImCg5yZXBlYXRlZF9pbnQzMhjzByADKAVSDXJlcGVhdGVkSW50MzIaHQoNT3B0aW9uYWxHcm91cBIMCgFhGAEgASgFUgFhIhYKFE51bGxIeXBvdGhlc2lzUHJvdG8yIi8KDkVudW1Pbmx5UHJvdG8yIh0KBEJvb2wSCgoGa0ZhbHNlEAASCQoFa1RydWUQASIlCg9PbmVTdHJpbmdQcm90bzISEgoEZGF0YRgBIAEoCVIEZGF0YSJhChFQcm90b1dpdGhLZXl3b3JkcxIWCgZpbmxpbmUYASABKAVSBmlubGluZRIYCgdjb25jZXB0GAIgASgJUgdjb25jZXB0EhoKCHJlcXVpcmVzGAMgAygJUghyZXF1aXJlcypGChFGb3JlaWduRW51bVByb3RvMhIPCgtGT1JFSUdOX0ZPTxAAEg8KC0ZPUkVJR05fQkFSEAESDwoLRk9SRUlHTl9CQVoQAjpaCg9leHRlbnNpb25faW50MzISMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIYeCABKAVSDmV4dGVuc2lvbkludDMyQjgKKGNvbS5nb29nbGUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzJIAfgBAaICBlByb3RvMkqQfQoHEgUlAK4CAQq6DQoBDBIDJQASMpkNIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKIFRlc3Qgc2NoZW1hIGZvciBwcm90bzIgbWVzc2FnZXMuICBUaGlzIHRlc3Qgc2NoZW1hIGlzIHVzZWQgYnk6CgogLSBjb25mb3JtYW5jZSB0ZXN0cwoKMhQgTElOVDogQUxMT1dfR1JPVVBTCgoICgECEgMnACYKCAoBCBIDKQBBCgkKAggBEgMpAEEKCAoBCBIDKgAkCgkKAggkEgMqACQKCAoBCBIDLQAcCkQKAggJEgMtABwaOSBUaGlzIGlzIHRoZSBkZWZhdWx0LCBidXQgd2Ugc3BlY2lmeSBpdCBoZXJlIGV4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SAJSDm9wdGlvbmFsVWludDMyiAEBEiwKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBEgDUg5vcHRpb25hbFVpbnQ2NIgBARIsCg9vcHRpb25hbF9zaW50MzIYBSABKBFIBFIOb3B0aW9uYWxTaW50MzKIAQESLAoPb3B0aW9uYWxfc2ludDY0GAYgASgSSAVSDm9wdGlvbmFsU2ludDY0iAEBEi4KEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdIBlIPb3B0aW9uYWxGaXhlZDMyiAEBEi4KEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZIB1IPb3B0aW9uYWxGaXhlZDY0iAEBEjAKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPSAhSEG9wdGlvbmFsU2ZpeGVkMzKIAQESMAoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBICVIQb3B0aW9uYWxTZml4ZWQ2NIgBARIqCg5vcHRpb25hbF9mbG9hdBgLIAEoAkgKUg1vcHRpb25hbEZsb2F0iAEBEiwKD29wdGlvbmFsX2RvdWJsZRgMIAEoAUgLUg5vcHRpb25hbERvdWJsZYgBARIoCg1vcHRpb25hbF9ib29sGA0gASgISAxSDG9wdGlvbmFsQm9vbIgBARIsCg9vcHRpb25hbF9zdHJpbmcYDiABKAlIDVIOb3B0aW9uYWxTdHJpbmeIAQESKgoOb3B0aW9uYWxfYnl0ZXMYDyABKAxIDlINb3B0aW9uYWxCeXRlc4gBARIsCg1vcHRpb25hbF9jb3JkGBAgASgJQgIIAUgPUgxvcHRpb25hbENvcmSIAQEScAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWwuTmVzdGVkTWVzc2FnZUgQUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2WIAQESbAoTbGF6eV9uZXN0ZWRfbWVzc2FnZRgTIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRNZXNzYWdlQgIoAUgRUhFsYXp5TmVzdGVkTWVzc2FnZYgBARJnChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIwLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRFbnVtSBJSEm9wdGlvbmFsTmVzdGVkRW51bYgBARIlCg5zaW5ndWxhcl9pbnQzMhgWIAEoBVINc2luZ3VsYXJJbnQzMhIlCg5zaW5ndWxhcl9pbnQ2NBgXIAEoA1INc2luZ3VsYXJJbnQ2NBorCg1OZXN0ZWRNZXNzYWdlEhMKAmJiGAEgASgFSABSAmJiiAEBQgUKA19iYiJKCgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCEQoPX29wdGlvbmFsX2ludDMyQhEKD19vcHRpb25hbF9pbnQ2NEISChBfb3B0aW9uYWxfdWludDMyQhIKEF9vcHRpb25hbF91aW50NjRCEgoQX29wdGlvbmFsX3NpbnQzMkISChBfb3B0aW9uYWxfc2ludDY0QhMKEV9vcHRpb25hbF9maXhlZDMyQhMKEV9vcHRpb25hbF9maXhlZDY0QhQKEl9vcHRpb25hbF9zZml4ZWQzMkIUChJfb3B0aW9uYWxfc2ZpeGVkNjRCEQoPX29wdGlvbmFsX2Zsb2F0QhIKEF9vcHRpb25hbF9kb3VibGVCEAoOX29wdGlvbmFsX2Jvb2xCEgoQX29wdGlvbmFsX3N0cmluZ0IRCg9fb3B0aW9uYWxfYnl0ZXNCEAoOX29wdGlvbmFsX2NvcmRCGgoYX29wdGlvbmFsX25lc3RlZF9tZXNzYWdlQhYKFF9sYXp5X25lc3RlZF9tZXNzYWdlQhcKFV9vcHRpb25hbF9uZXN0ZWRfZW51bSKyAgoZVGVzdFByb3RvM09wdGlvbmFsTWVzc2FnZRJhCg5uZXN0ZWRfbWVzc2FnZRgBIAEoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2UuTmVzdGVkTWVzc2FnZVINbmVzdGVkTWVzc2FnZRJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgCIAEoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2UuTmVzdGVkTWVzc2FnZUgAUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2WIAQEaHQoNTmVzdGVkTWVzc2FnZRIMCgFzGAEgASgJUgFzQhoKGF9vcHRpb25hbF9uZXN0ZWRfbWVzc2FnZSLJAQoYUHJvdG8zT3B0aW9uYWxFeHRlbnNpb25zMksKD2V4dF9ub19vcHRpb25hbBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiIzdmpASABKAVSDWV4dE5vT3B0aW9uYWwyUgoRZXh0X3dpdGhfb3B0aW9uYWwSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYic3ZqQEgASgFUg9leHRXaXRoT3B0aW9uYWyIAQE6DMDozM0KCMjozM0KEEIlCiFjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RpbmcucHJvdG9QAUqGIgoGEgQeAGMBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJ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