Cv0OCiN1bml0dGVzdF9pbXBvcnRfcHVibGljX3Byb3RvMy5wcm90bxIYcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0IiMKE1B1YmxpY0ltcG9ydE1lc3NhZ2USDAoBZRgBIAEoBVIBZUIdqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK7w0KBhIEIAAoAQr2DAoBDBIDIAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyKCBBdXRob3I6IGxpdWppc2lAZ29vZ2xlLmNvbSAoUGhlcmwgTGl1KQoKCAoBAhIDIgAhCggKAQgSAyQANwoJCgIIJRIDJAA3CgoKAgQAEgQmACgBCgoKAwQAARIDJggbCgsKBAQAAgASAycBDQoMCgUEAAIABRIDJwEGCgwKBQQAAgABEgMnBwgKDAoFBAACAAMSAycLDGIGcHJvdG8zCoMTChx1bml0dGVzdF9pbXBvcnRfcHJvdG8zLnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQaI3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvIh0KDUltcG9ydE1lc3NhZ2USDAoBZBgBIAEoBVIBZCpZCgpJbXBvcnRFbnVtEhsKF0lNUE9SVF9FTlVNX1VOU1BFQ0lGSUVEEAASDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAlCHaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSoARCgYSBCQANgEKnw4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3aGljaCBpcyBpbXBvcnRlZCBieSB1bml0dGVzdF9wcm90bzMucHJvdG8gdG8gdGVzdCBpbXBvcnRpbmcuCgoICgECEgMmACEKCAoBCBIDKAA3CgkKAgglEgMoADcKHwoCAwASAysANBoUIFRlc3QgcHVibGljIGltcG9ydAoKCQoCCgASAysHDQoKCgIEABIELQAvAQoKCgMEAAESAy0IFQoLCgQEAAIAEgMuAg4KDAoFBAACAAUSAy4CBwoMCgUEAAIAARIDLggJCgwKBQQAAgADEgMuDA0KCgoCBQASBDEANgEKCgoDBQABEgMxBQ8KCwoEBQACABIDMgIeCgwKBQUAAgABEgMyAhkKDAoFBQACAAISAzIcHQoLCgQFAAIBEgMzAhEKDAoFBQACAQESAzMCDAoMCgUFAAIBAhIDMw8QCgsKBAUAAgISAzQCEQoMCgUFAAICARIDNAIMCgwKBQUAAgICEgM0DxAKCwoEBQACAxIDNQIRCgwKBQUAAgMBEgM1AgwKDAoFBQACAwISAzUPEFAAYgZwcm90bzMK6bsBChV1bml0dGVzdF9wcm90bzMucHJvdG8SEnByb3RvYnVmX3VuaXR0ZXN0MxocdW5pdHRlc3RfaW1wb3J0X3Byb3RvMy5wcm90byKrFgoMVGVzdEFsbFR5cGVzEiEKDHNpbmdsZV9pbnQzMhgBIAEoBVILc2luZ2xlSW50MzISIQoMc2luZ2xlX2ludDY0GAIgASgDUgtzaW5nbGVJbnQ2NBIjCg1zaW5nbGVfdWludDMyGAMgASgNUgxzaW5nbGVVaW50MzISIwoNc2luZ2xlX3VpbnQ2NBgEIAEoBFIMc2luZ2xlVWludDY0EiMKDXNpbmdsZV9zaW50MzIYBSABKBFSDHNpbmdsZVNpbnQzMhIjCg1zaW5nbGVfc2ludDY0GAYgASgSUgxzaW5nbGVTaW50NjQSJQoOc2luZ2xlX2ZpeGVkMzIYByABKAdSDXNpbmdsZUZpeGVkMzISJQoOc2luZ2xlX2ZpeGVkNjQYCCABKAZSDXNpbmdsZUZpeGVkNjQSJwoPc2luZ2xlX3NmaXhlZDMyGAkgASgPUg5zaW5nbGVTZml4ZWQzMhInCg9zaW5nbGVfc2ZpeGVkNjQYCiABKBBSDnNpbmdsZVNmaXhlZDY0EiEKDHNpbmdsZV9mbG9hdBgLIAEoAlILc2luZ2xlRmxvYXQSIwoNc2luZ2xlX2RvdWJsZRgMIAEoAVIMc2luZ2xlRG91YmxlEh8KC3NpbmdsZV9ib29sGA0gASgIUgpzaW5nbGVCb29sEiMKDXNpbmdsZV9zdHJpbmcYDiABKAlSDHNpbmdsZVN0cmluZxIhCgxzaW5nbGVfYnl0ZXMYDyABKAxSC3NpbmdsZUJ5dGVzEmIKFXNpbmdsZV9uZXN0ZWRfbWVzc2FnZRgSIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVITc2luZ2xlTmVzdGVkTWVzc2FnZRJYChZzaW5nbGVfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUhRzaW5nbGVGb3JlaWduTWVzc2FnZRJbChVzaW5nbGVfaW1wb3J0X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZVITc2luZ2xlSW1wb3J0TWVzc2FnZRJZChJzaW5nbGVfbmVzdGVkX2VudW0YFSABKA4yKy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEHNpbmdsZU5lc3RlZEVudW0STwoTc2luZ2xlX2ZvcmVpZ25fZW51bRgWIAEoDjIfLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduRW51bVIRc2luZ2xlRm9yZWlnbkVudW0SUgoSc2luZ2xlX2ltcG9ydF9lbnVtGBcgASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW1SEHNpbmdsZUltcG9ydEVudW0Sbgocc2luZ2xlX3B1YmxpY19pbXBvcnRfbWVzc2FnZRgaIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlUhlzaW5nbGVQdWJsaWNJbXBvcnRNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEmYKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USXAoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEl8KF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSFXJlcGVhdGVkSW1wb3J0TWVzc2FnZRJdChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIScmVwZWF0ZWROZXN0ZWRFbnVtElMKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIfLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduRW51bVITcmVwZWF0ZWRGb3JlaWduRW51bRJWChRyZXBlYXRlZF9pbXBvcnRfZW51bRg1IAMoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtUhJyZXBlYXRlZEltcG9ydEVudW0ScgoecmVwZWF0ZWRfcHVibGljX2ltcG9ydF9tZXNzYWdlGDYgAygLMi0ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LlB1YmxpY0ltcG9ydE1lc3NhZ2VSG3JlcGVhdGVkUHVibGljSW1wb3J0TWVzc2FnZRIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzISYgoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzGh8KDU5lc3RlZE1lc3NhZ2USDgoCYmIYASABKAVSAmJiIlYKCk5lc3RlZEVudW0SGwoXTkVTVEVEX0VOVU1fVU5TUEVDSUZJRUQQABIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCLdAQoSTmVzdGVkVGVzdEFsbFR5cGVzEjwKBWNoaWxkGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3QzLk5lc3RlZFRlc3RBbGxUeXBlc1IFY2hpbGQSOgoHcGF5bG9hZBgCIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNSB3BheWxvYWQSTQoOcmVwZWF0ZWRfY2hpbGQYAyADKAsyJi5wcm90b2J1Zl91bml0dGVzdDMuTmVzdGVkVGVzdEFsbFR5cGVzUg1yZXBlYXRlZENoaWxkIkUKFFRlc3REZXByZWNhdGVkRmllbGRzEi0KEGRlcHJlY2F0ZWRfaW50MzIYASABKAVCAhgBUg9kZXByZWNhdGVkSW50MzIiHgoORm9yZWlnbk1lc3NhZ2USDAoBYxgBIAEoBVIBYyIwChJUZXN0UmVzZXJ2ZWRGaWVsZHNKBAgCEANKBAgPEBBKBAgJEAxSA2JhclIDYmF6ImoKEVRlc3RGb3JlaWduTmVzdGVkElUKDmZvcmVpZ25fbmVzdGVkGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUg1mb3JlaWduTmVzdGVkIjsKGFRlc3RSZWFsbHlMYXJnZVRhZ051bWJlchIMCgFhGAEgASgFUgFhEhEKAmJiGP///38gASgFUgJiYiJcChRUZXN0UmVjdXJzaXZlTWVzc2FnZRI2CgFhGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RSZWN1cnNpdmVNZXNzYWdlUgFhEgwKAWkYAiABKAVSAWkiUAoUVGVzdE11dHVhbFJlY3Vyc2lvbkESOAoCYmIYASABKAsyKC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE11dHVhbFJlY3Vyc2lvbkJSAmJiInUKFFRlc3RNdXR1YWxSZWN1cnNpb25CEjYKAWEYASABKAsyKC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE11dHVhbFJlY3Vyc2lvbkFSAWESJQoOb3B0aW9uYWxfaW50MzIYAiABKAVSDW9wdGlvbmFsSW50MzIiVAoSVGVzdEVudW1BbGxvd0FsaWFzEj4KBXZhbHVlGAEgASgOMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RFbnVtV2l0aER1cFZhbHVlUgV2YWx1ZSL7AwoXVGVzdENhbWVsQ2FzZUZpZWxkTmFtZXMSJgoOUHJpbWl0aXZlRmllbGQYASABKAVSDlByaW1pdGl2ZUZpZWxkEiAKC1N0cmluZ0ZpZWxkGAIgASgJUgtTdHJpbmdGaWVsZBI9CglFbnVtRmllbGQYAyABKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SCUVudW1GaWVsZBJGCgxNZXNzYWdlRmllbGQYBCABKAsyIi5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbk1lc3NhZ2VSDE1lc3NhZ2VGaWVsZBI2ChZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkGAcgAygFUhZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkEjAKE1JlcGVhdGVkU3RyaW5nRmllbGQYCCADKAlSE1JlcGVhdGVkU3RyaW5nRmllbGQSTQoRUmVwZWF0ZWRFbnVtRmllbGQYCSADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SEVJlcGVhdGVkRW51bUZpZWxkElYKFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAogAygLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUhRSZXBlYXRlZE1lc3NhZ2VGaWVsZCL/AQoSVGVzdEZpZWxkT3JkZXJpbmdzEhsKCW15X3N0cmluZxgLIAEoCVIIbXlTdHJpbmcSFQoGbXlfaW50GAEgASgDUgVteUludBIZCghteV9mbG9hdBhlIAEoAlIHbXlGbG9hdBJpChVzaW5nbGVfbmVzdGVkX21lc3NhZ2UYyAEgASgLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RGaWVsZE9yZGVyaW5ncy5OZXN0ZWRNZXNzYWdlUhNzaW5nbGVOZXN0ZWRNZXNzYWdlGi8KDU5lc3RlZE1lc3NhZ2USDgoCb28YAiABKANSAm9vEg4KAmJiGAEgASgFUgJiYiJYChFTcGFyc2VFbnVtTWVzc2FnZRJDCgtzcGFyc2VfZW51bRgBIAEoDjIiLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0U3BhcnNlRW51bVIKc3BhcnNlRW51bSIfCglPbmVTdHJpbmcSEgoEZGF0YRgBIAEoCVIEZGF0YSIgCgpNb3JlU3RyaW5nEhIKBGRhdGEYASADKAlSBGRhdGEiHgoIT25lQnl0ZXMSEgoEZGF0YRgBIAEoDFIEZGF0YSIfCglNb3JlQnl0ZXMSEgoEZGF0YRgBIAEoDFIEZGF0YSIiCgxJbnQzMk1lc3NhZ2USEgoEZGF0YRgBIAEoBVIEZGF0YSIjCg1VaW50MzJNZXNzYWdlEhIKBGRhdGEYASABKA1SBGRhdGEiIgoMSW50NjRNZXNzYWdlEhIKBGRhdGEYASABKANSBGRhdGEiIwoNVWludDY0TWVzc2FnZRISCgRkYXRhGAEgASgEUgRkYXRhIiEKC0Jvb2xNZXNzYWdlEhIKBGRhdGEYASABKAhSBGRhdGEikwEKCVRlc3RPbmVvZhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxJDCgtmb29fbWVzc2FnZRgDIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNIAFIKZm9vTWVzc2FnZUIFCgNmb28i7gQKD1Rlc3RQYWNrZWRUeXBlcxIlCgxwYWNrZWRfaW50MzIYWiADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYWyADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGFwgAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYXSADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhheIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGGIgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GGQgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhlIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhmIAMoCEICEAFSCnBhY2tlZEJvb2wSRAoLcGFja2VkX2VudW0YZyADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1CAhABUgpwYWNrZWRFbnVtIqgFChFUZXN0VW5wYWNrZWRUeXBlcxIpCg51bnBhY2tlZF9pbnQzMhhaIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWyADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhcIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhdIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhheIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBhfIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYYCADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGQgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZSADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGYgAygIQgIQAFIMdW5wYWNrZWRCb29sEkgKDXVucGFja2VkX2VudW0YZyADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1CAhAAUgx1bnBhY2tlZEVudW0inwIKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEikKEHJlcGVhdGVkX2ZpeGVkMzIYDCADKAdSD3JlcGVhdGVkRml4ZWQzMhIlCg5yZXBlYXRlZF9pbnQzMhgNIAMoBVINcmVwZWF0ZWRJbnQzMhIqChByZXBlYXRlZF9maXhlZDY0GP4PIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EiYKDnJlcGVhdGVkX2ludDY0GP8PIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg5yZXBlYXRlZF9mbG9hdBj+/w8gAygCUg1yZXBlYXRlZEZsb2F0EikKD3JlcGVhdGVkX3VpbnQ2NBj//w8gAygEUg5yZXBlYXRlZFVpbnQ2NCIrChtUZXN0Q29tbWVudEluamVjdGlvbk1lc3NhZ2USDAoBYRgBIAEoCVIBYSIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIhIKEEZvb0NsaWVudE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpCYXJSZXF1ZXN0Ig0KC0JhclJlc3BvbnNlIhIKEFRlc3RFbXB0eU1lc3NhZ2UiggEKDkNvbW1lbnRNZXNzYWdlEhIKBHRleHQYASABKAlSBHRleHQaNwoUTmVzdGVkQ29tbWVudE1lc3NhZ2USHwoLbmVzdGVkX3RleHQYASABKAlSCm5lc3RlZFRleHQiIwoRTmVzdGVkQ29tbWVudEVudW0SDgoKWkVST19WQUxVRRAAKlkKC0ZvcmVpZ25FbnVtEhcKE0ZPUkVJR05fVU5TUEVDSUZJRUQQABIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBip1ChRUZXN0RW51bVdpdGhEdXBWYWx1ZRIoCiRURVNUX0VOVU1fV0lUSF9EVVBfVkFMVUVfVU5TUEVDSUZJRUQQABIICgRGT08xEAESCAoEQkFSMRACEgcKA0JBWhADEggKBEZPTzIQARIICgRCQVIyEAIaAhABKp0BCg5UZXN0U3BhcnNlRW51bRIgChxURVNUX1NQQVJTRV9FTlVNX1VOU1BFQ0lGSUVEEAASDAoIU1BBUlNFX0EQexIOCghTUEFSU0VfQhCm5wMSDwoIU1BBUlNFX0MQsrGABhIVCghTUEFSU0VfRBDx//////////8BEhUKCFNQQVJTRV9FELTe/P///////wESDAoIU1BBUlNFX0cQAiodCgtDb21tZW50RW51bRIOCgpaRVJPX1ZBTFVFEAAynQEKC1Rlc3RTZXJ2aWNlEkYKA0ZvbxIeLnByb3RvYnVmX3VuaXR0ZXN0My5Gb29SZXF1ZXN0Gh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvb1Jlc3BvbnNlEkYKA0JhchIeLnByb3RvYnVmX3VuaXR0ZXN0My5CYXJSZXF1ZXN0Gh8ucHJvdG9idWZfdW5pdHRlc3QzLkJhclJlc3BvbnNlQixCDVVuaXR0ZXN0UHJvdG+qAhpHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvc0rafwoHEgUkAJkDAQr/DQoBDBIDJAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoysAEgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogQSBwcm90byBmaWxlIHdlIHdpbGwgdXNlIGZvciB1bml0IHRlc3RpbmcuCgoICgEIEgMmADcKCQoCCCUSAyYANwoICgEIEgMqAC4KYAoCCAgSAyoALhpVIE9ubHkgcHJlc2VudCBzbyB3ZSBjYW4gdGVzdCB0aGF0IHdlIGNhbiByZWFkIGl0IChhcyBhbiBleGFtcGxlCiBvZiBhIG5vbi1DIyBvcHRpb24pCgoJCgIDABIDLAAmCggKAQISAy4AGwpcCgIEABIFMgCCAQEaTyBUaGlzIHByb3RvIGluY2x1ZGVzIGV2ZXJ5IHR5cGUgb2YgZmllbGQgaW4gYm90aCBzaW5ndWxhciBhbmQgcmVwZWF0ZWQKIGZvcm1zLgoKCgoDBAABEgMyCBQKDAoEBAADABIEMwI4AwoMCgUEAAMAARIDMwoXCuMBCgYEAAMAAgASAzcEERrTASBUaGUgZmllbGQgbmFtZSAiYiIgZmFpbHMgdG8gY29tcGlsZSBpbiBwcm90bzEgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aAogYSBsb2NhbCB2YXJpYWJsZSBuYW1lZCAiYiIgaW4gb25lIG9mIHRoZSBnZW5lcmF0ZWQgbWV0aG9kcy4gIERvaC4KIFRoaXMgZmlsZSBuZWVkcyB0byBjb21waWxlIGluIHByb3RvMSB0byB0ZXN0IGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LgoKDgoHBAADAAIABRIDNwQJCg4KBwQAAwACAAESAzcKDAoO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EwoNCgUEGQICARIExgIUIwoNCgUEGQICAxIExgIpKwoNCgUEGQICCBIExgIsPAoOCgYEGQICCAISBMYCLTsKDAoEBBkCAxIExwICPQoNCgUEGQIDBBIExwICCgoNCgUEGQIDBRIExwINEwoNCgUEGQIDARIExwIUIwoNCgUEGQIDAxIExwIpKwoNCgUEGQIDCBIExwIsPAoOCgYEGQIDCAISBMcCLTsKDAoEBBkCBBIEyAICPQoNCgUEGQIEBBIEyAICCgoNCgUEGQIEBRIEyAINEwoNCgUEGQIEARIEyAIUIwoNCgUEGQIEAxIEyAIpKwoNCgUEGQIECBIEyAIsPAoOCgYEGQIECAISBMgCLTsKDAoEBBkCBRIEyQICPQoNCgUEGQIFBBIEyQICCgoNCgUEGQIFBRIEyQINEwoNCgUEGQIFARIEyQIUIwoNCgUEGQIFAxIEyQIpKwoNCgUEGQIFCBIEyQIsPAoOCgYEGQIFCAISBMkCLTsKDAoEBBkCBhIEygICPQoNCgUEGQIGBBIEygICCgoNCgUEGQIGBRIEygIMEwoNCgUEGQIGARIEygIUJAoNCgUEGQIGAxIEygIpKwoNCgUEGQIGCBIEygIsPAoOCgYEGQIGCAISBMoCLTsKDAoEBBkCBxIEywICPQoNCgUEGQIHBBIEywICCgoNCgUEGQIHBRIEywIMEwoNCgUEGQIHARIEywIUJAoNCgUEGQIHAxIEywIpKwoNCgUEGQIHCBIEywIsPAoOCgYEGQIHCAISBMsCLTsKDAoEBBkCCBIEzAICPQoNCgUEGQIIBBIEzAICCgoNCgUEGQIIBRIEzAILEwoNCgUEGQIIARIEzAIUJQoNCgUEGQIIAxIEzAIpKwoNCgUEGQIICBIEzAIsPAoOCgYEGQIICAISBMwCLTsKDAoEBBkCCRIEzQICPQoNCgUEGQIJBBIEzQICCgoNCgUEGQIJBRIEzQILEwoNCgUEGQIJARIEzQIUJQoNCgUEGQIJAxIEzQIpKwoNCgUEGQIJCBIEzQIsPAoOCgYEGQIJCAISBM0CLTsKDAoEBBkCChIEzgICPQoNCgUEGQIKBBIEzgICCgoNCgUEGQIKBRIEzgIOEwoNCgUEGQIKARIEzgIUIgoNCgUEGQIKAxIEzgIoKwoNCgUEGQIKCBIEzgIsPAoOCgYEGQIKCAISBM4C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YWdlIGNvbW1lbnQKCg0KBQQjAwABEgSGAwoeCjYKBgQjAwACABIEiAMEGxomIExlYWRpbmcgbmVzdGVkIG1lc3NhZ2UgZmllbGQgY29tbWVudAoKDwoHBCMDAAIABRIEiAMECgoPCgcEIwMAAgABEgSIAwsWCg8KBwQjAwACAAMSBIgDGRoKLQoEBCMEABIGjAMCjwMDGh0gTGVhZGluZyBuZXN0ZWQgZW51bSBjb21tZW50CgoNCgUEIwQAARIEjAMHGAokCgYEIwQAAgASBI4DBBMaFCBaZXJvIHZhbHVlIGNvbW1lbnQKCg8KBwQjBAACAAESBI4DBA4KDwoHBCMEAAIAAhIEjgMREgo/CgQEIwIAEgSSAwISGhcgTGVhZGluZyBmaWVsZCBjb21tZW50CiIYIFRyYWlsaW5nIGZpZWxkIGNvbW1lbnQKCg0KBQQjAgAFEgSSAwIICg0KBQQjAgABEgSSAwkNCg0KBQQjAgADEgSSAxARCiQKAgUDEgaWAwCZAwEaFiBMZWFkaW5nIGVudW0gY29tbWVudAoKCwoDBQMBEgSWAwUQCiIKBAUDAgASBJgDAhEaFCBaZXJvIHZhbHVlIGNvbW1lbnQKCg0KBQUDAgABEgSYAwIMCg0KBQUDAgACEgSYAw8QYgZwcm90bzMKxVgKGW1hcF91bml0dGVzdF9wcm90bzMucHJvdG8SEnByb3RvYnVmX3VuaXR0ZXN0MxoVdW5pdHRlc3RfcHJvdG8zLnByb3RvIpkWCgdUZXN0TWFwElYKD21hcF9pbnQzMl9pbnQzMhgBIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJWCg9tYXBfaW50NjRfaW50NjQYAiADKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQ2NEludDY0RW50cnlSDW1hcEludDY0SW50NjQSXAoRbWFwX3VpbnQzMl91aW50MzIYAyADKAsyMC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBVaW50MzJVaW50MzJFbnRyeVIPbWFwVWludDMyVWludDMyElwKEW1hcF91aW50NjRfdWludDY0GAQgAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJcChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ug9tYXBTaW50MzJTaW50MzISXAoRbWFwX3NpbnQ2NF9zaW50NjQYBiADKAsyMC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBTaW50NjRTaW50NjRFbnRyeVIPbWFwU2ludDY0U2ludDY0EmIKE21hcF9maXhlZDMyX2ZpeGVkMzIYByADKAsyMi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJiChNtYXBfZml4ZWQ2NF9maXhlZDY0GAggAygLMjIucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeVIRbWFwRml4ZWQ2NEZpeGVkNjQSaAoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGAkgAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5UhNtYXBTZml4ZWQzMlNmaXhlZDMyEmgKFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBgKIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJWCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkZsb2F0RW50cnlSDW1hcEludDMyRmxvYXQSWQoQbWFwX2ludDMyX2RvdWJsZRgMIAMoCzIvLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDMyRG91YmxlRW50cnlSDm1hcEludDMyRG91YmxlElAKDW1hcF9ib29sX2Jvb2wYDSADKAsyLC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJcChFtYXBfc3RyaW5nX3N0cmluZxgOIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFN0cmluZ1N0cmluZ0VudHJ5Ug9tYXBTdHJpbmdTdHJpbmcSVgoPbWFwX2ludDMyX2J5dGVzGA8gAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJCeXRlc0VudHJ5Ug1tYXBJbnQzMkJ5dGVzElMKDm1hcF9pbnQzMl9lbnVtGBAgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJFbnVtRW50cnlSDG1hcEludDMyRW51bRJyChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGBEgAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5UhZtYXBJbnQzMkZvcmVpZ25NZXNzYWdlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGkIKFE1hcFN0cmluZ1N0cmluZ0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEaQAoSTWFwSW50MzJCeXRlc0VudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgMUgV2YWx1ZToCOAEaXAoRTWFwSW50MzJFbnVtRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKA4yGy5wcm90b2J1Zl91bml0dGVzdDMuTWFwRW51bVIFdmFsdWU6AjgBGm0KG01hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI4CgV2YWx1ZRgCIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBIksKEVRlc3RNYXBTdWJtZXNzYWdlEjYKCHRlc3RfbWFwGAEgASgLMhsucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXBSB3Rlc3RNYXAi2wEKDlRlc3RNZXNzYWdlTWFwEmMKEW1hcF9pbnQzMl9tZXNzYWdlGAEgAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNZXNzYWdlTWFwLk1hcEludDMyTWVzc2FnZUVudHJ5Ug9tYXBJbnQzMk1lc3NhZ2UaZAoUTWFwSW50MzJNZXNzYWdlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSNgoFdmFsdWUYAiABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzUgV2YWx1ZToCOAEiiQIKD1Rlc3RTYW1lVHlwZU1hcBJBCgRtYXAxGAEgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RTYW1lVHlwZU1hcC5NYXAxRW50cnlSBG1hcDESQQoEbWFwMhgCIAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0U2FtZVR5cGVNYXAuTWFwMkVudHJ5UgRtYXAyGjcKCU1hcDFFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGjcKCU1hcDJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBIq0UCgxUZXN0QXJlbmFNYXASWwoPbWFwX2ludDMyX2ludDMyGAEgAygLMjMucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkludDMyRW50cnlSDW1hcEludDMySW50MzISWwoPbWFwX2ludDY0X2ludDY0GAIgAygLMjMucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQ2NEludDY0RW50cnlSDW1hcEludDY0SW50NjQSYQoRbWFwX3VpbnQzMl91aW50MzIYAyADKAsyNS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzISYQoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyNS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5Ug9tYXBVaW50NjRVaW50NjQSYQoRbWFwX3NpbnQzMl9zaW50MzIYBSADKAsyNS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ug9tYXBTaW50MzJTaW50MzISYQoRbWFwX3NpbnQ2NF9zaW50NjQYBiADKAsyNS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSZwoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeVIRbWFwRml4ZWQzMkZpeGVkMzISZwoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBgIIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeVIRbWFwRml4ZWQ2NEZpeGVkNjQSbQoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGAkgAygLMjkucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISbQoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GAogAygLMjkucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnlSE21hcFNmaXhlZDY0U2ZpeGVkNjQSWwoPbWFwX2ludDMyX2Zsb2F0GAsgAygLMjMucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkZsb2F0RW50cnlSDW1hcEludDMyRmxvYXQSXgoQbWFwX2ludDMyX2RvdWJsZRgMIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSVQoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIxLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwQm9vbEJvb2xFbnRyeVILbWFwQm9vbEJvb2wSWAoObWFwX2ludDMyX2VudW0YDiADKAsyMi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMyRW51bUVudHJ5UgxtYXBJbnQzMkVudW0SdwoZbWFwX2ludDMyX2ZvcmVpZ25fbWVzc2FnZRgPIAMoCzI8LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5UhZtYXBJbnQzMkZvcmVpZ25NZXNzYWdlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGlwKEU1hcEludDMyRW51bUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgOMhsucHJvdG9idWZfdW5pdHRlc3QzLk1hcEVudW1SBXZhbHVlOgI4ARptChtNYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSOAoFdmFsdWUYAiABKAsyIi5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbk1lc3NhZ2VSBXZhbHVlOgI4ASL4AQofTWVzc2FnZUNvbnRhaW5pbmdFbnVtQ2FsbGVkVHlwZRJRCgR0eXBlGAEgAygLMj0ucHJvdG9idWZfdW5pdHRlc3QzLk1lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGUuVHlwZUVudHJ5UgR0eXBlGmwKCVR5cGVFbnRyeRIQCgNrZXkYASABKAVSA2tleRJJCgV2YWx1ZRgCIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0My5NZXNzYWdlQ29udGFpbmluZ0VudW1DYWxsZWRUeXBlUgV2YWx1ZToCOAEiFAoEVHlwZRIMCghUWVBFX0ZPTxAAIrEBCh9NZXNzYWdlQ29udGFpbmluZ01hcENhbGxlZEVudHJ5ElQKBWVudHJ5GAEgAygLMj4ucHJvdG9idWZfdW5pdHRlc3QzLk1lc3NhZ2VDb250YWluaW5nTWFwQ2FsbGVkRW50cnkuRW50cnlFbnRyeVIFZW50cnkaOAoKRW50cnlFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBKj8KB01hcEVudW0SEAoMTUFQX0VOVU1fRk9PEAASEAoMTUFQX0VOVU1fQkFSEAESEAoMTUFQX0VOVU1fQkFaEAJCHaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSuIkCgYSBCQAcwEKmw8KAQwSAyQAEhrMAiBUaGlzIGZpbGUgaXMgbW9zdGx5IGVxdWl2YWxlbnQgdG8gbWFwX3VuaXR0ZXN0LnByb3RvLCBidXQgaW1wb3J0cwogdW5pdHRlc3RfcHJvdG8zLnByb3RvIGluc3RlYWQgb2YgdW5pdHRlc3QucHJvdG8sIHNvIHRoYXQgaXQgb25seQogdXNlcyBwcm90bzMgbWVzc2FnZXMuIFRoaXMgbWFrZXMgaXQgc3VpdGFibGUgZm9yIHRlc3RpbmcKIGltcGxlbWVudGF0aW9ucyB3aGljaCBvbmx5IHN1cHBvcnQgcHJvdG8zLgogVGhlIFRlc3RSZXF1aXJlZE1lc3NhZ2VNYXAgbWVzc2FnZSBoYXMgYmVlbiByZW1vdmVkIGFzIHRoZXJlIGFyZSBubwogcmVxdWlyZWQgZmllbGRzIGluIHByb3RvMy4KMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V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Gj4gUHJldmlvdXNseSwgbWVzc2FnZSBjYW5ub3QgY29udGFpbiBtYXAgZmllbGQgY2FsbGVkICJlbnRyeSIuCgoKCgMEBgESA3EIJwoLCgQEBgIAEgNyAh4KDAoFBAYCAAYSA3ICEwoMCgUEBgIAARIDchQZCgwKBQQGAgADEgNyHB1iBnByb3RvMwr/IgocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIpgBCgZTdHJ1Y3QSOwoGZmllbGRzGAEgAygLMiMuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdC5GaWVsZHNFbnRyeVIGZmllbGRzGlEKC0ZpZWxkc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgV2YWx1ZToCOAEisgIKBVZhbHVlEjsKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSCW51bGxWYWx1ZRIjCgxudW1iZXJfdmFsdWUYAiABKAFIAFILbnVtYmVyVmFsdWUSIwoMc3RyaW5nX3ZhbHVlGAMgASgJSABSC3N0cmluZ1ZhbHVlEh8KCmJvb2xfdmFsdWUYBCABKAhIAFIJYm9vbFZhbHVlEjwKDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAFILc3RydWN0VmFsdWUSOwoKbGlzdF92YWx1ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5MaXN0VmFsdWVIAFIJbGlzdFZhbHVlQgYKBGtpbmQiOwoJTGlzdFZhbHVlEi4KBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVIGdmFsdWVzKhsKCU51bGxWYWx1ZRIOCgpOVUxMX1ZBTFVFEABCfwoTY29tLmdvb2dsZS5wcm90b2J1ZkILU3RydWN0UHJvdG9QAVovZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vc3RydWN0cGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKmh0KBhIEHgBeAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAHwoJCgIIHxIDIwAfCggKAQgSAyQARgoJCgIICxIDJABGCggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYALAoJCgIICBIDJgAsCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCrMDCgIEABIEMgA1ARqmAyBgU3RydWN0YCByZXByZXNlbnRzIGEgc3RydWN0dXJlZCBkYXRhIHZhbHVlLCBjb25zaXN0aW5nIG9mIGZpZWxkcwogd2hpY2ggbWFwIHRvIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlcy4gSW4gc29tZSBsYW5ndWFnZXMsIGBTdHJ1Y3RgCiBtaWdodCBiZSBzdXBwb3J0ZWQgYnkgYSBuYXRpdmUgcmVwcmVzZW50YXRpb24uIEZvciBleGFtcGxlLCBpbgogc2NyaXB0aW5nIGxhbmd1YWdlcyBsaWtlIEpTIGEgc3RydWN0IGlzIHJlcHJlc2VudGVkIGFzIGFuCiBvYmplY3QuIFRoZSBkZXRhaWxzIG9mIHRoYXQgcmVwcmVzZW50YXRpb24gYXJlIGRlc2NyaWJlZCB0b2dldGhlcgogd2l0aCB0aGUgcHJvdG8gc3VwcG9ydCBmb3IgdGhlIGxhbmd1YWdlLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgU3RydWN0YCBpcyBKU09OIG9iamVjdC4KCgoKAwQAARIDMggOCjkKBAQAAgASAzQCIBosIFVub3JkZXJlZCBtYXAgb2YgZHluYW1pY2FsbHkgdHlwZWQgdmFsdWVzLgoKDAoFBAACAAYSAzQCFAoMCgUEAAIAARIDNBUbCgwKBQQAAgADEgM0Hh8KxAIKAgQBEgQ9AE0BGrcCIGBWYWx1ZWAgcmVwcmVzZW50cyBhIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlIHdoaWNoIGNhbiBiZSBlaXRoZXIKIG51bGwsIGEgbnVtYmVyLCBhIHN0cmluZywgYSBib29sZWFuLCBhIHJlY3Vyc2l2ZSBzdHJ1Y3QgdmFsdWUsIG9yIGEKIGxpc3Qgb2YgdmFsdWVzLiBBIHByb2R1Y2VyIG9mIHZhbHVlIGlzIGV4cGVjdGVkIHRvIHNldCBvbmUgb2YgdGhlc2UKIHZhcmlhbnRzLiBBYnNlbmNlIG9mIGFueSB2YXJpYW50IGluZGljYXRlcyBhbiBlcnJvci4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYFZhbHVlYCBpcyBKU09OIHZhbHVlLgoKCgoDBAEBEgM9CA0KIgoEBAEIABIEPwJMAxoUIFRoZSBraW5kIG9mIHZhbHVlLgoKDAoFBAEIAAESAz8IDAonCgQEAQIAEgNBBB0aGiBSZXByZXNlbnRzIGEgbnVsbCB2YWx1ZS4KCgwKBQQBAgAGEgNBBA0KDAoFBAECAAESA0EOGAoMCgUEAQIAAxIDQRscCikKBAQBAgESA0MEHBocIFJlcHJlc2VudHMgYSBkb3VibGUgdmFsdWUuCgoMCgUEAQIBBRIDQwQKCgwKBQQBAgEBEgNDCxcKDAoFBAECAQMSA0MaGwopCgQEAQICEgNFBBwaHCBSZXByZXNlbnRzIGEgc3RyaW5nIHZhbHVlLgoKDAoFBAECAgUSA0UECgoMCgUEAQICARIDRQsXCgwKBQQBAgIDEgNFGhsKKgoEBAECAxIDRwQYGh0gUmVwcmVzZW50cyBhIGJvb2xlYW4gdmFsdWUuCgoMCgUEAQIDBRIDRwQICgwKBQQBAgMBEgNHCRMKDAoFBAECAwMSA0cWFwotCgQEAQIEEgNJBBwaICBSZXByZXNlbnRzIGEgc3RydWN0dXJlZCB2YWx1ZS4KCgwKBQQBAgQGEgNJBAoKDAoFBAECBAESA0kLFwoMCgUEAQIEAxIDSRobCi0KBAQBAgUSA0sEHRogIFJlcHJlc2VudHMgYSByZXBlYXRlZCBgVmFsdWVgLgoKDAoFBAECBQYSA0sEDQoMCgUEAQIFARIDSw4YCgwKBQQBAgUDEgNLGxwKqQEKAgUAEgRTAFYBGpwBIGBOdWxsVmFsdWVgIGlzIGEgc2luZ2xldG9uIGVudW1lcmF0aW9uIHRvIHJlcHJlc2VudCB0aGUgbnVsbCB2YWx1ZSBmb3IgdGhlCiBgVmFsdWVgIHR5cGUgdW5pb24uCgogIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgTnVsbFZhbHVlYCBpcyBKU09OIGBudWxsYC4KCgoKAwUAARIDUwUOChoKBAUAAgASA1UCERoNIE51bGwgdmFsdWUuCgoMCgUFAAIAARIDVQIMCgwKBQUAAgACEgNVDxAKggEKAgQCEgRbAF4BGnYgYExpc3RWYWx1ZWAgaXMgYSB3cmFwcGVyIGFyb3VuZCBhIHJlcGVhdGVkIGZpZWxkIG9mIHZhbHVlcy4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYExpc3RWYWx1ZWAgaXMgSlNPTiBhcnJheS4KCgoKAwQCARIDWwgRCjoKBAQCAgASA10CHBotIFJlcGVhdGVkIGZpZWxkIG9mIGR5bmFtaWNhbGx5IHR5cGVkIHZhbHVlcy4KCgwKBQQCAgAEEgNdAgoKDAoFBAICAAYSA10LEAoMCgUEAgIAARIDXREXCgwKBQQCAgADEgNdGhtiBnByb3RvMwrkNwoVdW5pdHRlc3RfaXNzdWVzLnByb3RvEg91bml0dGVzdF9pc3N1ZXMaHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8iJwoISXNzdWUzMDcaGwoKTmVzdGVkT25jZRoNCgtOZXN0ZWRUd2ljZSLNAQoTTmVnYXRpdmVFbnVtTWVzc2FnZRIzCgV2YWx1ZRgBIAEoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1SBXZhbHVlEjkKBnZhbHVlcxgCIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhAAUgZ2YWx1ZXMSRgoNcGFja2VkX3ZhbHVlcxgDIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhABUgxwYWNrZWRWYWx1ZXMiEQoPRGVwcmVjYXRlZENoaWxkIosDChdEZXByZWNhdGVkRmllbGRzTWVzc2FnZRIqCg5QcmltaXRpdmVWYWx1ZRgBIAEoBUICGAFSDlByaW1pdGl2ZVZhbHVlEioKDlByaW1pdGl2ZUFycmF5GAIgAygFQgIYAVIOUHJpbWl0aXZlQXJyYXkSSAoMTWVzc2FnZVZhbHVlGAMgASgLMiAudW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRDaGlsZEICGAFSDE1lc3NhZ2VWYWx1ZRJICgxNZXNzYWdlQXJyYXkYBCADKAsyIC51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZENoaWxkQgIYAVIMTWVzc2FnZUFycmF5EkEKCUVudW1WYWx1ZRgFIAEoDjIfLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkRW51bUICGAFSCUVudW1WYWx1ZRJBCglFbnVtQXJyYXkYBiADKA4yHy51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZEVudW1CAhgBUglFbnVtQXJyYXkiHwoJSXRlbUZpZWxkEhIKBGl0ZW0YASABKAVSBGl0ZW0iVwoNUmVzZXJ2ZWROYW1lcxIUCgV0eXBlcxgBIAEoBVIFdHlwZXMSHgoKZGVzY3JpcHRvchgCIAEoBVIKZGVzY3JpcHRvchoQCg5Tb21lTmVzdGVkVHlwZSLfAQoVVGVzdEpzb25GaWVsZE9yZGVyaW5nEh8KC3BsYWluX2ludDMyGAQgASgFUgpwbGFpbkludDMyEh0KCW8xX3N0cmluZxgCIAEoCUgAUghvMVN0cmluZxIbCghvMV9pbnQzMhgFIAEoBUgAUgdvMUludDMyEiEKDHBsYWluX3N0cmluZxgBIAEoCVILcGxhaW5TdHJpbmcSGwoIbzJfaW50MzIYBiABKAVIAVIHbzJJbnQzMhIdCglvMl9zdHJpbmcYAyABKAlIAVIIbzJTdHJpbmdCBAoCbzFCBAoCbzIiUQoMVGVzdEpzb25OYW1lEhIKBG5hbWUYASABKAlSBG5hbWUSGQoLZGVzY3JpcHRpb24YAiABKAlSBGRlc2MSEgoEZ3VpZBgDIAEoCVIEZXhpZCKTAQoMT25lb2ZNZXJnaW5nEhQKBHRleHQYASABKAlIAFIEdGV4dBI+CgZuZXN0ZWQYAiABKAsyJC51bml0dGVzdF9pc3N1ZXMuT25lb2ZNZXJnaW5nLk5lc3RlZEgAUgZuZXN0ZWQaJAoGTmVzdGVkEgwKAXgYASABKAVSAXgSDAoBeRgCIAEoBVIBeUIHCgV2YWx1ZSKDAQoWTnVsbFZhbHVlT3V0c2lkZVN0cnVjdBIjCgxzdHJpbmdfdmFsdWUYASABKAlIAFILc3RyaW5nVmFsdWUSOwoKbnVsbF92YWx1ZRgCIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVIAFIJbnVsbFZhbHVlQgcKBXZhbHVlIlAKE051bGxWYWx1ZU5vdEluT25lb2YSOQoKbnVsbF92YWx1ZRgCIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVSCW51bGxWYWx1ZSJ9ChdNaXhlZFJlZ3VsYXJBbmRPcHRpb25hbBIjCg1yZWd1bGFyX2ZpZWxkGAEgASgJUgxyZWd1bGFyRmllbGQSKgoOb3B0aW9uYWxfZmllbGQYAiABKAlIAFINb3B0aW9uYWxGaWVsZIgBAUIRCg9fb3B0aW9uYWxfZmllbGQiQgoST25lb2ZXaXRoTm9uZUZpZWxkEg4KAXgYASABKAlIAFIBeBIUCgRub25lGAIgASgJSABSBG5vbmVCBgoEdGVzdCI7ChFPbmVvZldpdGhOb25lTmFtZRIOCgF4GAEgASgJSABSAXgSDgoBeRgCIAEoCUgAUgF5QgYKBG5vbmUqVQoMTmVnYXRpdmVFbnVtEhYKEk5FR0FUSVZFX0VOVU1fWkVSTxAAEhYKCUZpdmVCZWxvdxD7//////////8BEhUKCE1pbnVzT25lEP///////////wEqLgoORGVwcmVjYXRlZEVudW0SEwoPREVQUkVDQVRFRF9aRVJPEAASBwoDb25lEAFCHaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zSrYoCgcSBQAAqwEBCggKAQwSAwAAEgoICgEIEgMGADcKjgIKAgglEgMGADcaZSBJc3N1ZTogTm9uLSJHb29nbGUuUHJvdG9idWZmZXJzIiBuYW1lc3BhY2Ugd2lsbCBlbnN1cmUgdGhhdCBwcm90b2J1ZmZlciBsaWJyYXJ5IHR5cGVzIGFyZSBxdWFsaWZpZWQKMpsBIFRoZXNlIHByb3RvIGRlc2NyaXB0b3JzIGhhdmUgYXQgb25lIHRpbWUgYmVlbiByZXBvcnRlZCBhcyBhbiBpc3N1ZSBvciBkZWZlY3QuCiBUaGV5IGFyZSBrZXB0IGhlcmUgdG8gcmVwbGljYXRlIHRoZSBpc3N1ZSwgYW5kIGNvbnRpbnVlIHRvIHZlcmlmeSB0aGUgZml4LgoKCAoBAhIDCAAYCgkKAgMAEgMKACYKdgoCBAASBA4AEwEaaiBJc3N1ZSAzMDc6IHdoZW4gZ2VuZXJhdGluZyBkb3VibHktbmVzdGVkIHR5cGVzLCBhbnkgcmVmZXJlbmNlcwogc2hvdWxkIGJlIG9mIHRoZSBmb3JtIEEuVHlwZXMuQi5UeXBlcy5DLgoKCgoDBAABEgMOCBAKDAoEBAADABIEDwISAwoMCgUEAAMAARIDDwoUCg4KBgQAAwADABIEEAQRBQoOCgcEAAMAAwABEgMQDBcKrAQKAgUAEgQtADEBMpgBIE9sZCBpc3N1ZSAxMzogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3Byb3RvYnVmLWNzaGFycC1wb3J0L2lzc3Vlcy9kZXRhaWw/aWQ9MTMKIE5ldyBp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BAQNAgESBKkBBBEKDQoFBA0CAQUSBKkBBAoKDQoFBA0CAQESBKkBCwwKDQoFBA0CAQMSBKkBDxBiBnByb3RvMwrpigMKIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvEg9nb29nbGUucHJvdG9idWYiTQoRRmlsZURlc2NyaXB0b3JTZXQSOAoEZmlsZRgBIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5GaWxlRGVzY3JpcHRvclByb3RvUgRmaWxlIv4EChNGaWxlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHcGFja2FnZRgCIAEoCVIHcGFja2FnZRIeCgpkZXBlbmRlbmN5GAMgAygJUgpkZXBlbmRlbmN5EisKEXB1YmxpY19kZXBlbmRlbmN5GAogAygFUhBwdWJsaWNEZXBlbmRlbmN5EicKD3dlYWtfZGVwZW5kZW5jeRgLIAMoBVIOd2Vha0RlcGVuZGVuY3kSQwoMbWVzc2FnZV90eXBlGAQgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1ILbWVzc2FnZVR5cGUSQQoJZW51bV90eXBlGAUgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlEkEKB3NlcnZpY2UYBiADKAsyJy5nb29nbGUucHJvdG9idWYuU2VydmljZURlc2NyaXB0b3JQcm90b1IHc2VydmljZRJDCglleHRlbnNpb24YByADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhI2CgdvcHRpb25zGAggASgLMhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zUgdvcHRpb25zEkkKEHNvdXJjZV9jb2RlX2luZm8YCSABKAsyHy5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm9SDnNvdXJjZUNvZGVJbmZvEhYKBnN5bnRheBgMIAEoCVIGc3ludGF4EhgKB2VkaXRpb24YDSABKAlSB2VkaXRpb24iuQYKD0Rlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjsKBWZpZWxkGAIgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUgVmaWVsZBJDCglleHRlbnNpb24YBiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhJBCgtuZXN0ZWRfdHlwZRgDIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SCm5lc3RlZFR5cGUSQQoJZW51bV90eXBlGAQgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlElgKD2V4dGVuc2lvbl9yYW5nZRgFIAMoCzIvLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uRXh0ZW5zaW9uUmFuZ2VSDmV4dGVuc2lvblJhbmdlEkQKCm9uZW9mX2RlY2wYCCADKAsyJS5nb29nbGUucHJvdG9idWYuT25lb2ZEZXNjcmlwdG9yUHJvdG9SCW9uZW9mRGVjbBI5CgdvcHRpb25zGAcgASgLMh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zUgdvcHRpb25zElUKDnJlc2VydmVkX3JhbmdlGAkgAygLMi4uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYCiADKAlSDHJlc2VydmVkTmFtZRp6Cg5FeHRlbnNpb25SYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQSQAoHb3B0aW9ucxgDIAEoCzImLmdvb2dsZS5wcm90b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnNSB29wdGlvbnMaNwoNUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQifAoVRXh0ZW5zaW9uUmFuZ2VPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIiwQYKFEZpZWxkRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISQQoFbGFiZWwYBCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWxSBWxhYmVsEj4KBHR5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZVIEdHlwZRIbCgl0eXBlX25hbWUYBiABKAlSCHR5cGVOYW1lEhoKCGV4dGVuZGVlGAIgASgJUghleHRlbmRlZRIjCg1kZWZhdWx0X3ZhbHVlGAcgASgJUgxkZWZhdWx0VmFsdWUSHwoLb25lb2ZfaW5kZXgYCSABKAVSCm9uZW9mSW5kZXgSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRI3CgdvcHRpb25zGAggASgLMh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9uc1IHb3B0aW9ucxInCg9wcm90bzNfb3B0aW9uYWwYESABKAhSDnByb3RvM09wdGlvbmFsIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIpEJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIuChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgR0cnVlUg5jY0VuYWJsZUFyZW5hcxIqChFvYmpjX2NsYXNzX3ByZWZpeBgkIAEoCVIPb2JqY0NsYXNzUHJlZml4EikKEGNzaGFycF9uYW1lc3BhY2UYJSABKAlSD2NzaGFycE5hbWVzcGFjZRIhCgxzd2lmdF9wcmVmaXgYJyABKAlSC3N3aWZ0UHJlZml4EigKEHBocF9jbGFzc19wcmVmaXgYKCABKAlSDnBocENsYXNzUHJlZml4EiMKDXBocF9uYW1lc3BhY2UYKSABKAlSDHBocE5hbWVzcGFjZRI0ChZwaHBfbWV0YWRhdGFfbmFtZXNwYWNlGCwgASgJUhRwaHBNZXRhZGF0YU5hbWVzcGFjZRIhCgxydWJ5X3BhY2thZ2UYLSABKAlSC3J1YnlQYWNrYWdlElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIjoKDE9wdGltaXplTW9kZRIJCgVTUEVFRBABEg0KCUNPREVfU0laRRACEhAKDExJVEVfUlVOVElNRRADKgkI6AcQgICAgAJKBAgmECci4wIKDk1lc3NhZ2VPcHRpb25zEjwKF21lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0GAEgASgIOgVmYWxzZVIUbWVzc2FnZVNldFdpcmVGb3JtYXQSTAofbm9fc3RhbmRhcmRfZGVzY3JpcHRvcl9hY2Nlc3NvchgCIAEoCDoFZmFsc2VSHG5vU3RhbmRhcmREZXNjcmlwdG9yQWNjZXNzb3ISJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGwoJbWFwX2VudHJ5GAcgASgIUghtYXBFbnRyeRJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBBAFSgQIBRAGSgQIBhAHSgQICBAJSgQICRAKIpIECgxGaWVsZE9wdGlvbnMSQQoFY3R5cGUYASABKA4yIy5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkNUeXBlOgZTVFJJTkdSBWN0eXBlEhYKBnBhY2tlZBgCIAEoCFIGcGFja2VkEkcKBmpzdHlwZRgGIAEoDjIkLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuSlNUeXBlOglKU19OT1JNQUxSBmpzdHlwZRIZCgRsYXp5GAUgASgIOgVmYWxzZVIEbGF6eRIuCg91bnZlcmlmaWVkX2xhenkYDyABKAg6BWZhbHNlUg51bnZlcmlmaWVkTGF6eRIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIZCgR3ZWFrGAogASgIOgVmYWxzZVIEd2VhaxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiIvCgVDVHlwZRIKCgZTVFJJTkcQABIICgRDT1JEEAESEAoMU1RSSU5HX1BJRUNFEAIiNQoGSlNUeXBlEg0KCUpTX05PUk1BTBAAEg0KCUpTX1NUUklORxABEg0KCUpTX05VTUJFUhACKgkI6AcQgICAgAJKBAgEEAUicwoMT25lb2ZPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIiwAEKC0VudW1PcHRpb25zEh8KC2FsbG93X2FsaWFzGAIgASgIUgphbGxvd0FsaWFzEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgFEAYingEKEEVudW1WYWx1ZU9wdGlvbnMSJQoKZGVwcmVjYXRlZBgBIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKcAQoOU2VydmljZU9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLgAgoNTWV0aG9kT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJxChFpZGVtcG90ZW5jeV9sZXZlbBgiIAEoDjIvLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zLklkZW1wb3RlbmN5TGV2ZWw6E0lERU1QT1RFTkNZX1VOS05PV05SEGlkZW1wb3RlbmN5TGV2ZWwSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iUAoQSWRlbXBvdGVuY3lMZXZlbBIXChNJREVNUE9URU5DWV9VTktOT1dOEAASEwoPTk9fU0lERV9FRkZFQ1RTEAESDgoKSURFTVBPVEVOVBACKgkI6AcQgICAgAIimgMKE1VuaW50ZXJwcmV0ZWRPcHRpb24SQQoEbmFtZRgCIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uLk5hbWVQYXJ0UgRuYW1lEikKEGlkZW50aWZpZXJfdmFsdWUYAyABKAlSD2lkZW50aWZpZXJWYWx1ZRIsChJwb3NpdGl2ZV9pbnRfdmFsdWUYBCABKARSEHBvc2l0aXZlSW50VmFsdWUSLAoSbmVnYXRpdmVfaW50X3ZhbHVlGAUgASgDUhBuZWdhdGl2ZUludFZhbHVlEiEKDGRvdWJsZV92YWx1ZRgGIAEoAVILZG91YmxlVmFsdWUSIQoMc3RyaW5nX3ZhbHVlGAcgASgMUgtzdHJpbmdWYWx1ZRInCg9hZ2dyZWdhdGVfdmFsdWUYCCABKAlSDmFnZ3JlZ2F0ZVZhbHVlGkoKCE5hbWVQYXJ0EhsKCW5hbWVfcGFydBgBIAIoCVIIbmFtZVBhcnQSIQoMaXNfZXh0ZW5zaW9uGAIgAigIUgtpc0V4dGVuc2lvbiKnAgoOU291cmNlQ29kZUluZm8SRAoIbG9jYXRpb24YASADKAsyKC5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm8uTG9jYXRpb25SCGxvY2F0aW9uGs4BCghMb2NhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIWCgRzcGFuGAIgAygFQgIQAVIEc3BhbhIpChBsZWFkaW5nX2NvbW1lbnRzGAMgASgJUg9sZWFkaW5nQ29tbWVudHMSKwoRdHJhaWxpbmdfY29tbWVudHMYBCABKAlSEHRyYWlsaW5nQ29tbWVudHMSOgoZbGVhZGluZ19kZXRhY2hlZF9jb21tZW50cxgGIAMoCVIXbGVhZGluZ0RldGFjaGVkQ29tbWVudHMi0QEKEUdlbmVyYXRlZENvZGVJbmZvEk0KCmFubm90YXRpb24YASADKAsyLS5nb29nbGUucHJvdG9idWYuR2VuZXJhdGVkQ29kZUluZm8uQW5ub3RhdGlvblIKYW5ub3RhdGlvbhptCgpBbm5vdGF0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEh8KC3NvdXJjZV9maWxlGAIgASgJUgpzb3VyY2VGaWxlEhQKBWJlZ2luGAMgASgFUgViZWdpbhIQCgNlbmQYBCABKAVSA2VuZEJ+ChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9zSAFaLWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2Rlc2NyaXB0b3JwYvgBAaICA0dQQqoCGkdvb2dsZS5Qcm90b2J1Zi5SZWZsZWN0aW9uStjOAgoHEgUnAJoHAQqqDwoBDBIDJwASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoy2wIgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogVGhlIG1lc3NhZ2VzIGluIHRoaXMgZmlsZSBkZXNjcmliZSB0aGUgZGVmaW5pdGlvbnMgZm91bmQgaW4gLnByb3RvIGZpbGVzLgogQSB2YWxpZCAucHJvdG8gZmlsZSBjYW4gYmUgdHJhbnNsYXRlZCBkaXJlY3RseSB0byBhIEZpbGVEZXNjcmlwdG9yUHJvdG8KIHdpdGhvdXQgYW55IG90aGVyIGluZm9ybWF0aW9uIChlLmcuIHdpdGhvdXQgcmVhZGluZyBpdHMgaW1wb3J0cykuCgoICgECEgMpABgKCAoBCBIDKwBECgkKAggLEgMrAEQKCAoBCBIDLAAsCgkKAggBEgMsACwKCAoBCBIDLQAxCgkKAggIEgMtADEKCAoBCBIDLgA3CgkKAgglEgMuADcKCAoBCBIDLwAhCgkKAggkEgMvACEKCAoBCBIDMAAfCgkKAggfEgMwAB8KCAoBCBIDNAAcCn8KAggJEgM0ABwadCBk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YXRlIGFueSBBUEkuIFN5bnRoZXRpYwogb25lb2ZzIG11c3QgYmUgb3JkZXJlZCBhZnRlciBhbGwgInJlYWwiIG9uZW9mcy4KCiBGb3IgbWVzc2FnZSBmaWVsZHMsIHByb3RvM19vcHRpb25hbCBkb2Vzbid0IGNyZWF0ZSBhbnkgc2VtYW50aWMgY2hhbmdlLAogc2luY2Ugbm9uLXJlcGVhdGVkIG1lc3NhZ2UgZmllbGRzIGFsd2F5cyB0cmFjayBwcmVzZW5jZS4gSG93ZXZlciBpdCBzdGlsbAogaW5kaWNhdGVzIHRoZSBzZW1hbnRpYyBkZXRhaWwgb2Ygd2hldGhlciB0aGUgdXNlciB3cm90ZSAib3B0aW9uYWwiIG9yIG5vdC4KIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igcm91bmQtdHJpcHBpbmcgdGhlIC5wcm90byBmaWxlLiBGb3IgY29uc2lzdGVuY3kgd2UKIGdpdmUgbWVzc2FnZSBmaWVsZHMgYSBzeW50aGV0aWMgb25lb2YgYWxzbywgZXZlbiB0aG91Z2ggaXQgaXMgbm90IHJlcXVpcmVkCiB0byB0cmFjayBwcmVzZW5jZS4gVGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCBiZWNhdXNlIHRoZSBwYXJzZXIgY2FuJ3QKIHRlbGwgaWYgYSBmaWVsZCBpcyBhIG1lc3NhZ2Ugb3IgYW4gZW51bSwgc28gaXQgbXVzdCBhbHdheXMgY3JlYXRlIGEKIHN5bnRoZXRpYyBvbmVvZi4KCiBQcm90bzIgb3B0aW9uYWwgZmllbGRzIGRvIG5vdCBzZXQgdGhpcyBmbGFnLCBiZWNhdXNlIHRoZXkgYWxyZWFkeSBpbmRpY2F0ZQogb3B0aW9uYWwgd2l0aCBgTEFCRUxfT1BUSU9OQUxgLgoKDQoFBAQCCgQSBPEBAgoKDQoFBAQCCgUSBPEBCw8KDQoFBAQCCgESBPEBEB8KDQoFBAQCCgMSBPEBIiQKIgoCBAUSBvUBAPgBARoUIERlc2NyaWJlcyBhIG9uZW9mLgoKCwoDBAUBEgT1AQgcCgwKBAQFAgASBPYBAhsKDQoFBAUCAAQSBPYBAgoKDQoFBAUCAAUSBPYBCxEKDQoFBAUCAAESBPYBEhYKDQoFBAUCAAMSBPYBGRoKDAoEBAUCARIE9wECJAoNCgUEBQIBBBIE9wECCgoNCgUEBQIBBhIE9wELFwoNCgUEBQIBARIE9wEYHwoNCgUEBQIBAxIE9wEiIwonCgIEBhIG+wEAlQIBGhkgRGVzY3JpYmVzIGFuIGVudW0gdHlwZS4KCgsKAwQGARIE+wEIGwoMCgQEBgIAEgT8AQIbCg0KBQQGAgAEEgT8AQIKCg0KBQQGAgAFEgT8AQsRCg0KBQQGAgABEgT8ARIWCg0KBQQGAgADEgT8ARkaCgwKBAQGAgESBP4BAi4KDQoFBAYCAQQSBP4BAgoKDQoFBAYCAQYSBP4BCyMKDQoFBAYCAQESBP4BJCkKDQoFBAYCAQMSBP4BLC0KDAoEBAYCAhIEgAICIwoNCgUEBgICBBIEgAICCgoNCgUEBgICBhIEgAILFgoNCgUEBgICARIEgAIXHgoNCgUEBgICAxIEgAIhIgqvAgoEBAYDABIGiAICiwIDGp4CIFJhbmdlIG9mIHJlc2VydmVkIG51bWVyaWMgdmFsdWVzLiBSZXNlcnZlZCB2YWx1ZXMgbWF5IG5vdCBiZSB1c2VkIGJ5CiBlbnRyaWVzIGluIHRoZSBzYW1lIGVudW0uIFJlc2VydmVkIHJhbmdlcyBtYXkgbm90IG92ZXJsYXAuCgogTm90ZSB0aGF0IHRoaXMgaXMgZGlzdGluY3QgZnJvbSBEZXNjcmlwdG9yUHJvdG8uUmVzZXJ2ZWRSYW5nZSBpbiB0aGF0IGl0CiBpcyBpbmNsdXNpdmUgc3VjaCB0aGF0IGl0IGNhbiBhcHByb3ByaWF0ZWx5IHJlcHJlc2VudCB0aGUgZW50aXJlIGludDMyCiBkb21haW4uCgoNCgUEBgMAARIEiAIKGwocCgYEBgMAAgASBIkCBB0iDCBJbmNsdXNpdmUuCgoPCgcEBgMAAgAEEgSJAgQMCg8KBwQGAwACAAUSBIkCDRIKDwoHBAYDAAIAARIEiQITGAoPCgcEBgMAAgADEgSJAhscChwKBgQGAwACARIEigIEGyIMIEluY2x1c2l2ZS4KCg8KBwQGAwACAQQSBIoCBAwKDwoHBAYDAAIBBRIEigINEgoPCgcEBgMAAgEBEgSKAhMWCg8KBwQGAwACAQMSBIoCGRoKqgEKBAQGAgMSBJACAjAamwEgUmFuZ2Ugb2YgcmVzZXJ2ZWQgbnVtZXJpYyB2YWx1ZXMuIFJlc2VydmVkIG51bWVyaWMgdmFsdWVzIG1heSBub3QgYmUgdXNlZAogYnkgZW51bSB2YWx1ZXMgaW4gdGhlIHNhbWUgZW51bSBkZWNsYXJhdGlvbi4gUmVzZXJ2ZWQgcmFuZ2VzIG1heSBub3QKIG92ZXJsYXAuCgoNCgUEBgIDBBIEkAICCgoNCgUEBgIDBhIEkAILHAoNCgUEBgIDARIEkAIdKwoNCgUEBgIDAxIEkAIuLwpsCgQEBgIEEgSUAgIkGl4gUmVzZXJ2ZWQgZW51bSB2YWx1ZSBuYW1lcywgd2hpY2ggbWF5IG5vdCBiZSByZXVzZWQuIEEgZ2l2ZW4gbmFtZSBtYXkgb25seQogYmUgcmVzZXJ2ZWQgb25jZS4KCg0KBQQGAgQEEgSUAgIKCg0KBQQGAgQFEgSUAgsRCg0KBQQGAgQBEgSUAhIfCg0KBQQGAgQDEgSUAiIjCjEKAgQHEgaYAgCdAgEaIyBEZXNjcmliZXMgYSB2YWx1ZSB3aXRoaW4gYW4gZW51bS4KCgsKAwQHARIEmAIIIAoMCgQEBwIAEgSZAgIbCg0KBQQHAgAEEgSZAgIKCg0KBQQHAgAFEgSZAgsRCg0KBQQHAgABEgSZAhIWCg0KBQQHAgADEgSZAhkaCgwKBAQHAgESBJoCAhwKDQoFBAcCAQQSBJoCAgoKDQoFBAcCAQUSBJoCCxAKDQoFBAcCAQESBJoCERcKDQoFBAcCAQMSBJoCGhsKDAoEBAcCAhIEnAICKAoNCgUEBwICBBIEnAICCgoNCgUEBwICBhIEnAILGwoNCgUEBwICARIEnAIcIwoNCgUEBwICAxIEnAImJwokCgIECBIGoAIApQIBGhYgRGVzY3JpYmVzIGEgc2VydmljZS4KCgsKAwQIARIEoAIIHgoMCgQECAIAEgShAgIbCg0KBQQIAgAEEgShAgIKCg0KBQQIAgAFEgShAgsRCg0KBQQIAgABEgShAhIWCg0KBQQIAgADEgShAhkaCgwKBAQIAgESBKICAiwKDQoFBAgCAQQSBKICAgoKDQoFBAgCAQYSBKICCyAKDQoFBAgCAQESBKICIScKDQoFBAgCAQMSBKICKisKDAoEBAgCAhIEpAICJgoNCgUECAICBBIEpAICCgoNCgUECAICBhIEpAILGQoNCgUECAICARIEpAIaIQoNCgUECAICAxIEpAIkJQowCgIECRIGqAIAtgIBGiIgRGVzY3JpYmVzIGEgbWV0aG9kIG9mIGEgc2VydmljZS4KCgsKAwQJARIEqAIIHQoMCgQECQIAEgSpAgIbCg0KBQQJAgAEEgSpAgIKCg0KBQQJAgAFEgSpAgsRCg0KBQQJAgABEgSpAhIWCg0KBQQJAgADEgSpAhkaCpcBCgQECQIBEgStAgIhGogBIElucHV0IGFuZCBvdXRwdXQgdHlwZSBuYW1lcy4gIFRoZXNlIGFyZSByZXNvbHZlZCBpbiB0aGUgc2FtZSB3YXkgYXMKIEZpZWxkRGVzY3JpcHRvclByb3RvLnR5cGVfbmFtZSwgYnV0IG11c3QgcmVmZXIgdG8gYSBtZXNzYWdlIHR5cGUuCgoNCgUECQIBBBIErQICCgoNCgUECQIBBRIErQILEQoNCgUECQIBARIErQISHAoNCgUECQIBAxIErQIfIAoMCgQECQICEgSuAgIiCg0KBQQJAgIEEgSuAgIKCg0KBQQJAgIFEgSuAgsRCg0KBQQJAgIBEgSuAhIdCg0KBQQJAgIDEgSuAiAhCgwKBAQJAgMSBLACAiUKDQoFBAkCAwQSBLACAgoKDQoFBAkCAwYSBLACCxgKDQoFBAkCAwESBLACGSAKDQoFBAkCAwMSBLACIyQKRQoEBAkCBBIEswICNxo3IElkZW50aWZpZXMgaWYgY2xpZW50IHN0cmVhbXMgbXVsdGlwbGUgY2xpZW50IG1lc3NhZ2VzCgoNCgUECQIEBBIEswICCgoNCgUECQIEBRIEswILDwoNCgUECQIEARIEswIQIAoNCgUECQIEAxIEswIjJAoNCgUECQIECBIEswIlNgoNCgUECQIEBxIEswIwNQpFCgQECQIFEgS1AgI3GjcgSWRlbnRpZmllcyBpZiBzZXJ2ZXIgc3RyZWFtcyBtdWx0aXBsZSBzZXJ2ZXIgbWVzc2FnZXMKCg0KBQQJAgUEEgS1AgIKCg0KBQQJAgUFEgS1AgsPCg0KBQQJAgUBEgS1AhAgCg0KBQQJAgUDEgS1AiMkCg0KBQQJAgUIEgS1AiU2Cg0KBQQJAgUHEgS1AjA1Cq8OCgIEChIG2QIA1AMBMk4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogT3B0aW9ucwoy0A0gRWFjaCBvZiB0aGUgZGVmaW5pdGlvbnMgYWJvdmUgbWF5IGhhdmUgIm9wdGlvbnMiIGF0dGFjaGVkLiAgVGhlc2UgYXJlCiBqdXN0IGFubm90YXRpb25zIHdoaWNoIG1heSBjYXVzZSBjb2RlIHRvIGJlIGdlbmVyYXRlZCBzbGlnaHRseSBkaWZmZXJlbnRseQogb3IgbWF5IGNvbnRhaW4gaGludHMgZm9yIGNvZGUgdGhhdCBtYW5pcHVsYXRlcyBwcm90b2NvbCBtZXNzYWdlcy4KCiBDbGllbnRzIG1heSBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgYXMgZXh0ZW5zaW9ucyBvZiB0aGUgKk9wdGlvbnMgbWVzc2FnZXMuCiBUaGVzZSBleHRlbnNpb25zIG1heSBub3QgeWV0IGJlIGtub3duIGF0IHBhcnNpbmcgdGltZSwgc28gdGhlIHBhcnNlciBjYW5ub3QKIHN0b3JlIHRoZSB2YWx1ZXMgaW4gdGhlbS4gIEluc3RlYWQgaXQgc3RvcmVzIHRoZW0gaW4gYSBmaWVsZCBpbiB0aGUgKk9wdGlvbnMKIG1lc3NhZ2UgY2FsbGVkIHVuaW50ZXJwcmV0ZWRfb3B0aW9uLiBUaGlzIGZpZWxkIG11c3QgaGF2ZSB0aGUgc2FtZSBuYW1lCiBhY3Jvc3MgYWxsICpPcHRpb25zIG1lc3NhZ2VzLiBXZSB0aGVuIHVzZSB0aGlzIGZpZWxkIHRvIHBvcHVsYXRlIHRoZQogZXh0ZW5zaW9ucyB3aGVuIHdlIGJ1aWxkIGEgZGVzY3JpcHRvciwgYXQgd2hpY2ggcG9pbnQgYWxsIHByb3RvcyBoYXZlIGJlZW4KIHBhcnNlZCBhbmQgc28gYWxsIGV4dGVuc2lvbnMgYXJlIGtub3duLgoKIEV4dGVuc2lvbiBudW1iZXJzIGZvciBjdXN0b20gb3B0aW9ucyBtYXkgYmUgY2hvc2VuIGFzIGZvbGxvd3M6CiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgb25seSBiZSB1c2VkIHdpdGhpbiBhIHNpbmdsZSBhcHBsaWNhdGlvbiBvcgogICBvcmdhbml6YXRpb24sIG9yIGZvciBleHBlcmltZW50YWwgb3B0aW9ucywgdXNlIGZpZWxkIG51bWJlcnMgNTAwMDAKICAgdGhyb3VnaCA5OTk5OS4gIEl0IGlzIHVwIHRvIHlvdSB0byBlbnN1cmUgdGhhdCB5b3UgZG8gbm90IHVzZSB0aGUKICAgc2FtZSBudW1iZXIgZm9yIG11bHRpcGxlIG9wdGlvbnMuCiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgYmUgcHVibGlzaGVkIGFuZCB1c2VkIHB1YmxpY2x5IGJ5IG11bHRpcGxlCiAgIGluZGVwZW5kZW50IGVudGl0aWVzLCBlLW1haWwgcHJvdG9idWYtZ2xvYmFsLWV4dGVuc2lvbi1yZWdpc3RyeUBnb29nbGUuY29tCiAgIHRvIHJlc2VydmUgZXh0ZW5zaW9uIG51bWJlcnMuIFNpbXBseSBwcm92aWRlIHlvdXIgcHJvamVjdCBuYW1lIChlLmcuCiAgIE9iamVjdGl2ZS1DIHBsdWdpbikgYW5kIHlvdXIgcHJvamVjdCB3ZWJzaXRlIChpZiBhdmFpbGFibGUpIC0tIHRoZXJlJ3Mgbm8KICAgbmVlZCB0byBleHBsYWluIGhvdyB5b3UgaW50ZW5kIHRvIHVzZSB0aGVtLiBVc3VhbGx5IHlvdSBvbmx5IG5lZWQgb25lCiAgIGV4dGVuc2lvbiBudW1iZXIuIFlvdSBjYW4gZGVjbGFyZSBtdWx0aXBsZSBvcHRpb25zIHdpdGggb25seSBvbmUgZXh0ZW5zaW9uCiAgIG51bWJlciBieSBwdXR0aW5nIHRoZW0gaW4gYSBzdWItbWVzc2FnZS4gU2VlIHRoZSBDdXN0b20gT3B0aW9ucyBzZWN0aW9uIG9mCiAgIHRoZSBkb2NzIGZvciBleGFtcGxlczoKICAgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvI29wdGlvbnMKICAgSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgcG9wdWxhciwgYSB3ZWIgc2VydmljZSB3aWxsIGJlIHNldCB1cAogICB0byBhdXRvbWF0aWNhbGx5IGFzc2lnbiBvcHRpb24gbnVtYmVycy4KCgsKAwQKARIE2QIIEwr0AQoEBAoCABIE3wICIxrlASBTZXRzIHRoZSBKYXZhIHBhY2thZ2Ugd2hlcmUgY2xhc3NlcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIC5wcm90byB3aWxsIGJlCiBwbGFjZWQuICBCeSBkZWZhdWx0LCB0aGUgcHJvdG8gcGFja2FnZSBpcyB1c2VkLCBidXQgdGhpcyBpcyBvZnRlbgogaW5hcHByb3ByaWF0ZSBiZWNhdXNlIHByb3RvIHBhY2thZ2VzIGRvIG5vdCBub3JtYWxseSBzdGFydCB3aXRoIGJhY2t3YXJkcwogZG9tYWluIG5hbWVzLgoKDQoFBAoCAAQSBN8CAgoKDQoFBAoCAAUSBN8CCxEKDQoFBAoCAAESBN8CEh4KDQoFBAoCAAMSBN8CISIK8QIKBAQKAgESBOcCAisa4gIgQ29udHJvbHMgdGhlIG5hbWUgb2YgdGhlIHdyYXBwZXIgSmF2YSBjbGFzcyBnZW5lcmF0ZWQgZm9yIHRoZSAucHJvdG8gZmlsZS4KIFRoYXQgY2xhc3Mgd2lsbCBhbHdheXMgY29udGFpbiB0aGUgLnByb3RvIGZpbGUncyBnZXREZXNjcmlwdG9yKCkgbWV0aG9kIGFzCiB3ZWxsIGFzIGFueSB0b3AtbGV2ZWwgZXh0ZW5zaW9ucyBkZWZpbmVkIGluIHRoZSAucHJvdG8gZmlsZS4KIElmIGphdmFfbXVsdGlwbGVfZmlsZXMgaXMgZGlzYWJsZWQsIHRoZW4gYWxsIHRoZSBvdGhlciBjbGFzc2VzIGZyb20gdGhlCiAucHJvdG8gZmlsZSB3aWxsIGJlIG5lc3RlZCBpbnNpZGUgdGhlIHNpbmdsZSB3cmFwcGVyIG91dGVyIGNsYXNzLgoKDQoFBAoCAQQSBOcCAgoKDQoFBAoCAQUSBOcCCxEKDQoFBAoCAQESBOcCEiYKDQoFBAoCAQMSBOcCKSoKpgMKBAQKAgISBO8CAjsalwMgSWYgZW5hYmxlZCwgdGhlbiB0aGUgSmF2YSBjb2RlIGdlbmVyYXRvciB3aWxsIGdlbmVyYXRlIGEgc2VwYXJhdGUgLmphdmEKIGZpbGUgZm9yIGVhY2ggdG9wLWxldmVsIG1lc3NhZ2UsIGVudW0sIGFuZCBzZXJ2aWNlIGRlZmluZWQgaW4g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aXRob3V0IGV4dGVuc2lvbi4KCg0KBQQKAgYEEgSLAwIKCg0KBQQKAgYFEgSLAwsRCg0KBQQKAgYBEgSLAxIcCg0KBQQKAgYDEgSLAx8hCtQECgQECgIHEgSaAwI7GsUEIFNob3VsZCBnZW5lcmljIHNlcnZpY2VzIGJlIGdlbmVyYXRlZCBpbiBlYWNoIGxhbmd1YWdlPyAgIkdlbmVyaWMiIHNlcnZpY2VzCiBhcmUgbm90IHNwZWNpZmljIHRvIGFueSBwYXJ0aWN1bGFyIFJQQyBzeXN0ZW0uICBUaGV5IGFyZSBnZW5lcmF0ZWQgYnkgdGhlCiBtYWluIGNvZGUgZ2VuZXJhdG9ycyBpbiBlYWNoIGxhbmd1YWdlICh3aXRob3V0IGFkZGl0aW9uYWwgcGx1Z2lucykuCiBHZW5lcmljIHNlcnZpY2VzIHdlcmUgdGhlIG9ubHkga2luZCBvZiBzZXJ2aWNlIGdlbmVyYXRpb24gc3VwcG9ydGVkIGJ5CiBlYXJseSB2ZXJzaW9ucyBvZiBnb29nbGUucHJvdG9idWYuCgogR2VuZXJpYyBzZXJ2aWNlcyBhcmUgbm93IGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB1c2luZyBwbHVnaW5zCiB0aGF0IGdlbmVyYXRlIGNvZGUgc3BlY2lmaWMgdG8geW91ciBwYXJ0aWN1bGFyIFJQQyBzeXN0ZW0uICBUaGVyZWZvcmUsCiB0aGVzZSBkZWZhdWx0IHRvIGZhbHNlLiAgT2xkIGNvZGUgd2hpY2ggZGVwZW5kcyBvbiBnZW5lcmljIHNlcnZpY2VzIHNob3VsZAogZXhwbGljaXRseSBzZXQgdGhlbSB0byB0cnVlLgoKDQoFBAoCBwQSBJoDAgoKDQoFBAoCBwUSBJoDCw8KDQoFBAoCBwESBJoDECMKDQoFBAoCBwMSBJoDJigKDQoFBAoCBwgSBJoDKToKDQoFBAoCBwcSBJoDNDkKDAoEBAoCCBIEmwMCPQoNCgUECgIIBBIEmwMCCgoNCgUECgIIBRIEmwMLDwoNCgUECgIIARIEmwMQJQoNCgUECgIIAxIEmwMoKgoNCgUECgIICBIEmwMrPAoNCgUECgIIBxIEmwM2OwoMCgQECgIJEgScAwI7Cg0KBQQKAgkEEgScAwIKCg0KBQQKAgkFEgScAwsPCg0KBQQKAgkBEgScAxAjCg0KBQQKAgkDEgScAyYoCg0KBQQKAgkIEgScAyk6Cg0KBQQKAgkHEgScAzQ5CgwKBAQKAgoSBJ0DAjwKDQoFBAoCCgQSBJ0DAgoKDQoFBAoCCgUSBJ0DCw8KDQoFBAoCCgESBJ0DECQKDQoFBAoCCgMSBJ0DJykKDQoFBAoCCggSBJ0DKjsKDQoFBAoCCgcSBJ0DNToK8wEKBAQKAgsSBKMDAjIa5AEgSXMgdGhpcyBmaWxlIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgZXZlcnl0aGluZyBpbiB0aGUgZmlsZSwgb3IgaXQgd2lsbCBiZSBjb21wbGV0ZWx5IGlnbm9yZWQ7IGluIHRoZSB2ZXJ5CiBsZWFzdCwgdGhpcyBpcyBhIGZvcm1hbGl6YXRpb24gZm9yIGRlcHJlY2F0aW5nIGZpbGVzLgoKDQoFBAoCCwQSBKMDAgoKDQoFBAoCCwUSBKMDCw8KDQoFBAoCCwESBKMDEBoKDQoFBAoCCwMSBKMDHR8KDQoFBAoCCwgSBKMDIDEKDQoFBAoCCwcSBKMDKzAKfwoEBAoCDBIEpwMCNxpxIEVuYWJsZXMgdGhlIHVzZSBvZiBhcmVuYXMgZm9yIHRoZSBwcm90byBtZXNzYWdlcyBpbiB0aGlzIGZpbGUuIFRoaXMgYXBwbGllcwogb25seSB0byBnZW5lcmF0ZWQgY2xhc3NlcyBmb3IgQysrLgoKDQoFBAoCDAQSBKcDAgoKDQoFBAoCDAUSBKcDCw8KDQoFBAoCDAESBKcDECAKDQoFBAoCDAMSBKcDIyUKDQoFBAoCDAgSBKcDJjYKDQoFBAoCDAcSBKcDMTUKkgEKBAQKAg0SBKwDAikagwEgU2V0cyB0aGUgb2JqZWN0aXZlIGMgY2xhc3MgcHJlZml4IHdoaWNoIGlzIHByZXBlbmRlZCB0byBhbGwgb2JqZWN0aXZlIGMKIGdlbmVyYXRlZCBjbGFzc2VzIGZyb20gdGhpcyAucHJvdG8uIFRoZXJlIGlzIG5vIGRlZmF1bHQuCgoNCgUECgINBBIErAMCCgoNCgUECgINBRIErAMLEQoNCgUECgINARIErAMSIwoNCgUECgINAxIErAMmKApJCgQECgIOEgSvAwIoGjsgTmFtZXNwYWNlIGZvciBnZW5lcmF0ZWQgY2xhc3NlczsgZGVmYXVsdHMgdG8gdGhlIHBhY2thZ2UuCgoNCgUECgIOBBIErwMCCgoNCgUECgIOBRIErwMLEQoNCgUECgIOARIErwMSIgoNCgUECgIOAxIErwMlJwqRAgoEBAoCDxIEtQMCJBqCAiBCeSBkZWZhdWx0IFN3aWZ0IGdlbmVyYXRvcnMgd2lsbCB0YWtlIHRoZSBwcm90byBwYWNrYWdlIGFuZCBDYW1lbENhc2UgaXQKIHJlcGxhY2luZyAnLicgd2l0aCB1bmRlcnNjb3JlIGFuZCB1c2UgdGhhdCB0byBwcmVmaXggdGhlIHR5cGVzL3N5bWJvbHMKIGRlZmluZWQuIFdoZW4gdGhpcyBvcHRpb25zIGlzIHByb3ZpZGVkLCB0aGV5IHdpbGwgdXNlIHRoaXMgdmFsdWUgaW5zdGVhZAogdG8gcHJlZml4IHRoZSB0eXBlcy9zeW1ib2xzIGRlZmluZWQuCgoNCgUECgIPBBIEtQMCCgoNCgUECgIPBRIEtQMLEQoNCgUECgIPARIEtQMSHgoNCgUECgIPAxIEtQMhIwp+CgQECgIQEgS5AwIoGnAgU2V0cyB0aGUgcGhwIGNsYXNzIHByZWZpeCB3aGljaCBpcyBwcmVwZW5kZWQgdG8gYWxsIHBocCBnZW5lcmF0ZWQgY2xhc3NlcwogZnJvbSB0aGlzIC5wcm90by4gRGVmYXVsdCBpcyBlbXB0eS4KCg0KBQQKAhAEEgS5AwIKCg0KBQQKAhAFEgS5AwsRCg0KBQQKAhABEgS5AxIiCg0KBQQKAhADEgS5AyUnCr4BCgQECgIREgS+AwIlGq8BIFVzZSB0aGlzIG9wdGlvbiB0byBjaGFuZ2UgdGhlIG5hbWVzcGFjZSBvZiBwaHAgZ2VuZXJhdGVkIGNsYXNzZXMuIERlZmF1bHQKIGlzIGVtcHR5LiBXaGVuIHRoaXMgb3B0aW9uIGlzIGVtcHR5LCB0aGUgcGFja2FnZSBuYW1lIHdpbGwgYmUgdXNlZCBmb3IKIGRldGVybWluaW5nIHRoZSBuYW1lc3BhY2UuCgoNCgUECgIRBBIEvgMCCgoNCgUECgIRBRIEvgMLEQoNCgUECgIRARIEvgMSHwoNCgUECgIRAxIEvgMiJArKAQoEBAoCEhIEwwMCLhq7ASBVc2UgdGhpcyBvcHRpb24gdG8gY2hhbmdlIHRoZSBuYW1lc3BhY2Ugb2YgcGhwIGdlbmVyYXRlZCBtZXRhZGF0YSBjbGFzc2VzLgogRGVmYXVsdCBpcyBlbXB0eS4gV2hlbiB0aGlzIG9wdGlvbiBpcyBlbXB0eSwgdGhlIHByb3RvIGZpbGUgbmFtZSB3aWxsIGJlCiB1c2VkIGZvciBkZXRlcm1pbmluZyB0aGUgbmFtZXNwYWNlLgoKDQoFBAoCEgQSBMMDAgoKDQoFBAoCEgUSBMMDCxEKDQoFBAoCEgESBMMDEigKDQoFBAoCEgMSBMMDKy0KwgEKBAQKAhMSBMgDAiQaswEgVXNlIHRoaXMgb3B0aW9uIHRvIGNoYW5nZSB0aGUgcGFja2FnZSBvZiBydWJ5IGdlbmVyYXRlZCBjbGFzc2VzLiBEZWZhdWx0CiBpcyBlbXB0eS4gV2hlbiB0aGlzIG9wdGlvbiBpcyBub3Qgc2V0LCB0aGUgcGFja2FnZSBuYW1lIHdpbGwgYmUgdXNlZCBmb3IKIGRldGVybWluaW5nIHRoZSBydWJ5IHBhY2thZ2UuCgoNCgUECgITBBIEyAMCCgoNCgUECgITBRIEyAMLEQoNCgUECgITARIEyAMSHgoNCgUECgITAxIEyAMhIwp8CgQECgIUEgTNAwI6Gm4gVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLgogU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgIk9wdGlvbnMiIHNlY3Rpb24gYWJvdmUuCgoNCgUECgIUBBIEzQMCCgoNCgUECgIUBhIEzQMLHgoNCgUECgIUARIEzQMfMwoNCgUECgIUAxIEzQM2OQqHAQoDBAoFEgTRAwIZGnogQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLgogU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgIk9wdGlvbnMiIHNlY3Rpb24gYWJvdmUuCgoMCgQECgUAEgTRAw0YCg0KBQQKBQABEgTRAw0RCg0KBQQKBQACEgTRAxUYCgsKAwQKCRIE0wMCDgoMCgQECgkAEgTTAwsNCg0KBQQKCQABEgTTAwsNCg0KBQQKCQACEgTTAwsNCgwKAgQLEgbWAwCYBAEKCwoDBAsBEgTWAwgWCtgFCgQECwIAEgTpAwI+GskFIFNldCB0cnVlIHRvIHVzZSB0aGUgb2xkIHByb3RvMSBNZXNzYWdlU2V0IHdpcmUgZm9ybWF0IGZvciBleHRlbnNpb25zLgogVGhpcyBpcyBwcm92aWRlZCBmb3IgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgd2l0aCB0aGUgTWVzc2FnZVNldCB3aXJlCiBmb3JtYXQuICBZb3Ugc2hvdWxkIG5vdCB1c2UgdGhpcyBmb3IgYW55IG90aGVyIHJlYXNvbjogIEl0J3MgbGVzcwogZWZmaWNpZW50LCBoYXMgZmV3ZXIgZmVhdHVyZXMsIGFuZCBpcyBtb3JlIGNvbXBsaWNhdGVkLgoKIFRoZSBtZXNzYWdlIG11c3QgYmUgZGVmaW5lZCBleGFjdGx5IGFzIGZvbGxvd3M6CiAgIG1lc3NhZ2UgRm9vIHsKICAgICBvcHRpb24gbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQgPSB0cnVlOwogICAgIGV4dGVuc2lvbnMgNCB0byBtYXg7CiAgIH0KIE5vdGUgdGhhdCB0aGUgbWVzc2FnZSBjYW5ub3QgaGF2ZSBhbnkgZGVmaW5lZCBmaWVsZHM7IE1lc3NhZ2VTZXRzIG9ubHkKIGhhdmUgZXh0ZW5zaW9ucy4KCiBBbGwgZXh0ZW5zaW9ucyBvZiB5b3VyIHR5cGUgbXVzdCBiZSBzaW5ndWxhciBtZXNzYWdlczsgZS5nLiB0aGV5IGNhbm5vdAogYmUgaW50MzJzLCBlbnVtcywgb3IgcmVwZWF0ZWQgbWVzc2FnZXMuCgogQmVjYXVzZSB0aGlzIGlzIGFuIG9wdGlvbiwgdGhlIGFib3ZlIHR3byByZXN0cmljdGlvbnMgYXJlIG5vdCBlbmZvcmNlZCBieQogdGhlIHByb3RvY29sIGNvbXBpbGVyLgoKDQoFBAsCAAQSBOkDAgoKDQoFBAsCAAUSBOkDCw8KDQoFBAsCAAESBOkDECcKDQoFBAsCAAMSBOkDKisKDQoFBAsCAAgSBOkDLD0KDQoFBAsCAAcSBOkDNzwK6wEKBAQLAgESBO4DAkYa3AEgRGlzYWJsZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHN0YW5kYXJkICJkZXNjcmlwdG9yKCkiIGFjY2Vzc29yLCB3aGljaCBjYW4KIGNvbmZsaWN0IHdpdGggYSBmaWVsZCBvZiB0aGUgc2FtZSBuYW1lLiAgVGhpcyBpcyBtZWFudCB0byBtYWtlIG1pZ3JhdGlvbgogZnJvbSBwcm90bzEgZWFzaWVyOyBuZXcgY29kZSBzaG91bGQgYXZvaWQgZmllbGRzIG5hbWVkICJkZXNjcmlwdG9yIi4KCg0KBQQLAgEEEgTuAwIKCg0KBQQLAgEFEgTuAwsPCg0KBQQLAgEBEgTuAxAvCg0KBQQLAgEDEgTuAzIzCg0KBQQLAgEIEgTuAzRFCg0KBQQLAgEHEgTuAz9ECu4BCgQECwICEgT0AwIxGt8BIElzIHRoaXMgbWVzc2FnZSBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIHRoZSBtZXNzYWdlLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsCiB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgbWVzc2FnZXMuCgoNCgUECwICBBIE9AMCCgoNCgUECwICBRIE9AMLDwoNCgUECwICARIE9AMQGgoNCgUECwICAxIE9AMdHgoNCgUECwICCBIE9AMfMAoNCgUECwICBxIE9AMqLwoLCgMECwkSBPYDAhMKDAoEBAsJABIE9gMLDAoNCgUECwkAARIE9gMLDAoNCgUECwkAAhIE9gMLDAoMCgQECwkBEgT2Aw4PCg0KBQQLCQEBEgT2Aw4PCg0KBQQLCQECEgT2Aw4PCgwKBAQLCQISBPYDERIKDQoFBAsJAgESBPYDERIKDQoFBAsJAgISBPYDERIKoAYKBAQLAgMSBI0EAh4akQYgV2hldGhlciB0aGUgbWVzc2FnZSBpcyBhbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYXAgZW50cnkgdHlwZSBmb3IgdGhlCiBtYXBzIGZpZWxkLgoKIEZvciBtYXBzIGZpZWxkczoKICAgICBtYXA8S2V5VHlwZSwgVmFsdWVUeXBlPiBtYXBfZmllbGQgPSAxOwogVGhlIHBhcnNlZCBkZXNjcmlwdG9yIGxvb2tzIGxpa2U6CiAgICAgbWVzc2FnZSBNYXBGaWVsZEVudHJ5IHsKICAgICAgICAgb3B0aW9uIG1hcF9lbnRyeSA9IHRydWU7CiAgICAgICAgIG9wdGlvbmFsIEtleVR5cGUga2V5ID0gMTsKICAgICAgICAgb3B0aW9uYWwgVmFsdWVUeXBlIHZhbHVlID0gMjsKICAgICB9CiAgICAgcmVwZWF0ZWQgTWFwRmllbGRFbnRyeSBtYXBfZmllbGQgPSAxOwoKIEltcGxlbWVudGF0aW9ucyBtYXkgY2hvb3NlIG5vdCB0byBnZW5lcmF0ZSB0aGUgbWFwX2VudHJ5PXRydWUgbWVzc2FnZSwgYnV0CiB1c2UgYSBuYXRpdmUgbWFwIGluIHRoZSB0YXJnZXQgbGFuZ3VhZ2UgdG8gaG9sZCB0aGUga2V5cyBhbmQgdmFsdWVzLgogVGhlIHJlZmxlY3Rpb24gQVBJcyBpbiBzdWNoIGltcGxlbWVudGF0aW9ucyBzdGlsbCBuZWVkIHRvIHdvcmsgYXMKIGlmIHRoZSBmaWVsZCBpcyBhIHJlcGVhdGVkIG1lc3NhZ2UgZmllbGQuCgogTk9URTogRG8gbm90IHNldCB0aGUgb3B0aW9uIGluIC5wcm90byBmaWxlcy4gQWx3YXlzIHVzZSB0aGUgbWFwcyBzeW50YXgKIGluc3RlYWQuIFRoZSBvcHRpb24gc2hvdWxkIG9ubHkgYmUgaW1wbGljaXRseSBzZXQgYnkgdGhlIHByb3RvIGNvbXBpbGVyCiBwYXJzZXIuCgoNCgUECwIDBBIEjQQCCgoNCgUECwIDBRIEjQQLDwoNCgUECwIDARIEjQQQGQoNCgUECwIDAxIEjQQcHQokCgMECwkSBI8EAg0iFyBqYXZhbGl0ZV9zZXJpYWxpemFibGUKCgwKBAQLCQMSBI8ECwwKDQoFBAsJAwESBI8ECwwKDQoFBAsJAwISBI8ECwwKHwoDBAsJEgSQBAINIhIgamF2YW5hbm9fYXNfbGl0ZQoKDAoEBAsJBBIEkAQLDAoNCgUECwkEARIEkAQLDAoNCgUECwkEAhIEkAQLDApPCgQECwIEEgSUBAI6GkEgVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUECwIEBBIElAQCCgoNCgUECwIEBhIElAQLHgoNCgUECwIEARIElAQfMwoNCgUECwIEAxIElAQ2OQpaCgMECwUSBJcEAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQLBQASBJcEDRgKDQoFBAsFAAESBJcEDREKDQoFBAsFAAISBJcEFRgKDAoCBAwSBpoEAP0EAQoLCgMEDAESBJoECBQKowIKBAQMAgASBJ8EAi4alAIgVGhlIGN0eXBlIG9wdGlvbiBpbnN0cnVjdHMgdGhlIEMrKyBjb2RlIGdlbmVyYXRvciB0byB1c2UgYSBkaWZmZXJlbnQKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBmaWVsZCB0aGFuIGl0IG5vcm1hbGx5IHdvdWxkLiAgU2VlIHRoZSBzcGVjaWZpYwogb3B0aW9ucyBiZWxvdy4gIFRoaXMgb3B0aW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4gdGhlIG9wZW4gc291cmNlCiByZWxlYXNlIC0tIHNvcnJ5LCB3ZSdsbCB0cnkgdG8gaW5jbHVkZSBpdCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIQoKDQoFBAwCAAQSBJ8EAgoKDQoFBAwCAAYSBJ8ECxAKDQoFBAwCAAESBJ8EERYKDQoFBAwCAAMSBJ8EGRoKDQoFBAwCAAgSBJ8EGy0KDQoFBAwCAAcSBJ8EJiwKDgoEBAwEABIGoAQCpwQDCg0KBQQMBAABEgSgBAcMCh8KBgQMBAACABIEogQEDxoPIERlZmF1bHQgbW9kZS4KCg8KBwQMBAACAAESBKIEBAoKDwoHBAwEAAIAAhIEogQNDgoOCgYEDAQAAgESBKQEBA0KDwoHBAwEAAIBARIEpAQECAoPCgcEDAQAAgECEgSkBAsMCg4KBgQMBAACAhIEpgQEFQoPCgcEDAQAAgIBEgSmBAQQCg8KBwQMBAACAgISBKYEExQK2gIKBAQMAgESBK0EAhsaywIgVGhlIHBhY2tlZCBvcHRpb24gY2FuIGJlIGVuYWJsZWQgZm9yIHJlcGVhdGVkIHByaW1pdGl2ZSBmaWVsZHMgdG8gZW5hYmxlCiBhIG1vcmUgZWZmaWNpZW50IHJlcHJlc2VudGF0aW9uIG9uIHRoZSB3aXJlLiBSYXRoZXIgdGhhbiByZXBlYXRlZGx5CiB3cml0aW5nIHRoZSB0YWcgYW5kIHR5cGUgZm9yIGVhY2ggZWxlbWVudCwgdGhlIGVudGlyZSBhcnJheSBpcyBlbmNvZGVkIGFzCiBhIHNpbmdsZSBsZW5ndGgtZGVsaW1pdGVkIGJsb2IuIEluIHByb3RvMywgb25seSBleHBsaWNpdCBzZXR0aW5nIGl0IHRvCiBmYWxzZSB3aWxsIGF2b2lkIHVzaW5nIHBhY2tlZCBlbmNvZGluZy4KCg0KBQQMAgEEEgStBAIKCg0KBQQMAgEFEgStBAsPCg0KBQQMAgEBEgStBBAWCg0KBQQMAgEDEgStBBkaCpoFCgQEDAICEgS6BAIzGosFIFRoZSBqc3R5cGUgb3B0aW9uIGRldGVybWluZXMgdGhlIEphdmFTY3JpcHQgdHlwZSB1c2VkIGZvciB2YWx1ZXMgb2YgdGhlCiBmaWVsZC4gIFRoZSBvcHRpb24gaXMgcGVybWl0dGVkIG9ubHkgZm9yIDY0IGJpdCBpbnRlZ3JhbCBhbmQgZml4ZWQgdHlwZXMKIChpbnQ2NCwgdWludDY0LCBzaW50NjQsIGZpeGVkNjQsIHNmaXhlZDY0KS4gIEEgZmllbGQgd2l0aCBqc3R5cGUgSlNfU1RSSU5HCiBpcyByZXByZXNlbnRlZCBhcyBKYXZhU2NyaXB0IHN0cmluZywgd2hpY2ggYXZvaWRzIGxvc3Mgb2YgcHJlY2lzaW9uIHRoYXQKIGNhbiBoYXBwZW4gd2hlbiBhIGxhcmdlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBhIGZsb2F0aW5nIHBvaW50IEphdmFTY3JpcHQuCiBTcGVjaWZ5aW5nIEpTX05VTUJFUiBmb3IgdGhlIGpzdHlwZSBjYXVzZXMgdGhlIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGNvZGUgdG8KIHVzZSB0aGUgSmF2YVNjcmlwdCAibnVtYmVyIiB0eXBlLiAgVGhlIGJlaGF2aW9yIG9mIHRoZSBkZWZhdWx0IG9wdGlvbgogSlNfTk9STUFMIGlzIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudC4KCiBUaGlzIG9wdGlvbiBpcyBhbiBlbnVtIHRvIHBlcm1pdCBhZGRpdGlvbmFsIHR5cGVzIHRvIGJlIGFkZGVkLCBlLmcuCiBnb29nLm1hdGguSW50ZWdlci4KCg0KBQQMAgIEEgS6BAIKCg0KBQQMAgIGEgS6BAsRCg0KBQQMAgIBEgS6BBIYCg0KBQQMAgIDEgS6BBscCg0KBQQMAgIIEgS6BB0yCg0KBQQMAgIHEgS6BCgxCg4KBAQMBAESBrsEAsQEAwoNCgUEDAQBARIEuwQHDQonCgYEDAQBAgASBL0EBBIaFyBVc2UgdGhlIGRlZmF1bHQgdHlwZS4KCg8KBwQMBAECAAESBL0EBA0KDwoHBAwEAQIAAhIEvQQQEQopCgYEDAQBAgESBMAEBBIaGSBVc2UgSmF2YVNjcmlwdCBzdHJpbmdzLgoKDwoHBAwEAQIBARIEwAQEDQoPCgcEDAQBAgECEgTABBARCikKBgQMBAECAhIEwwQEEhoZIFVzZSBKYXZhU2NyaXB0IG51bWJlcnMuCgoPCgcEDAQBAgIBEgTDBAQNCg8KBwQMBAECAgISBMMEEBEKgA4KBAQMAgMSBOUEAisa8Q0gU2hvdWxkIHRoaXMgZmllbGQgYmUgcGFyc2VkIGxhemlseT8gIExhenkgYXBwbGllcyBvbmx5IHRvIG1lc3NhZ2UtdHlwZQogZmllbGRzLiAgSXQgbWVhbnMgdGhhdCB3aGVuIHRoZSBvdXRlciBtZXNzYWdlIGlzIGluaXRpYWxseSBwYXJzZWQsIHRoZQogaW5uZXIgbWVzc2FnZSdzIGNvbnRlbnRzIHdpbGwgbm90IGJlIHBhcnNlZCBidXQgaW5zdGVhZCBzdG9yZWQgaW4gZW5jb2RlZAogZm9ybS4gIFRoZSBpbm5lciBtZXNzYWdlIHdpbGwgYWN0dWFsbHkgYmUgcGFyc2VkIHdoZW4gaXQgaXMgZmlyc3QgYWNjZXNzZWQuCgogVGhpcyBpcyBvbmx5IGEgaGludC4gIEltcGxlbWVudGF0aW9ucyBhcmUgZnJlZSB0byBjaG9vc2Ugd2hldGhlciB0byB1c2UKIGVhZ2VyIG9yIGxhenkgcGFyc2luZyByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbi4gIEhvd2V2ZXIsCiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRydWUgc3VnZ2VzdHMgdGhhdCB0aGUgcHJvdG9jb2wgYXV0aG9yIGJlbGlldmVzIHRoYXQKIHVzaW5nIGxhenkgcGFyc2luZyBvbiB0aGlzIGZpZWxkIGlzIHdvcnRoIHRoZSBhZGRpdGlvbmFsIGJvb2trZWVwaW5nCiBvdmVyaGVhZCB0eXBpY2FsbHkgbmVlZGVkIHRvIGltcGxlbWVudCBpdC4KCiBUaGlzIG9wdGlvbiBkb2VzIG5vdCBhZmZlY3QgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgYW55IGdlbmVyYXRlZCBjb2RlOwogYWxsIG1ldGhvZCBzaWduYXR1cmVzIHJlbWFpbiB0aGUgc2FtZS4gIEZ1cnRoZXJtb3JlLCB0aHJlYWQtc2FmZXR5IG9mIHRoZQogaW50ZXJmYWNlIGlzIG5vdCBhZmZlY3RlZCBieSB0aGlzIG9wdGlvbjsgY29uc3QgbWV0aG9kcyByZW1haW4gc2FmZSB0bwogY2FsbCBmcm9tIG11bHRpcGxlIHRocmVhZHMgY29uY3VycmVudGx5LCB3aGlsZSBub24tY29uc3QgbWV0aG9kcyBjb250aW51ZQogdG8gcmVxdWlyZSBleGNsdXNpdmUgYWNjZXNzLgoKCiBOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcyB3aXRoaW4KIGEgbGF6eSBzdWItbWVzc2FnZS4gIFRoYXQgaXMsIGNhbGxpbmcgSXNJbml0aWFsaXplZCgpIG9uIHRoZSBvdXRlciBtZXNzYWdlCiBtYXkgcmV0dXJuIHRydWUgZXZlbiBpZiB0aGUgaW5uZXIgbWVzc2FnZSBoYXMgbWlzc2luZyByZXF1aXJlZCBmaWVsZHMuCiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgaW5uZXIgbWVzc2FnZSB3b3VsZCBoYXZlIHRvIGJlCiBwYXJzZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgY2hlY2ssIGRlZmVhdGluZyB0aGUgcHVycG9zZSBvZiBsYXp5CiBwYXJzaW5nLiAgQW4gaW1wbGVtZW50YXRpb24gd2hpY2ggY2hvb3NlcyBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzCiBtdXN0IGJlIGNvbnNpc3RlbnQgYWJvdXQgaXQuICBUaGF0IGlzLCBmb3IgYW55IHBhcnRpY3VsYXIgc3ViLW1lc3NhZ2UsIHRoZQogaW1wbGVtZW50YXRpb24gbXVzdCBlaXRoZXIgKmFsd2F5cyogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgb3IgKm5ldmVyKgogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgbWVzc2FnZSBoYXMKIGJlZW4gcGFyc2VkLgoKIEFzIG9mIE1heSAyMDIyLCBsYXp5IHZlcmlmaWVzIHRoZSBjb250ZW50cyBvZiB0aGUgYnl0ZSBzdHJlYW0gZHVyaW5nCiBwYXJzaW5nLiAgQW4gaW52YWxpZCBieXRlIHN0cmVhbSB3aWxsIGNhdXNlIHRoZSBvdmVyYWxsIHBhcnNpbmcgdG8gZmFpbC4KCg0KBQQMAgMEEgTlBAIKCg0KBQQMAgMFEgTlBAsPCg0KBQQMAgMBEgTlBBAUCg0KBQQMAgMDEgTlBBcYCg0KBQQMAgMIEgTlBBkqCg0KBQQMAgMHEgTlBCQpCq8BCgQEDAIEEgTqBAI3GqABIHVudmVyaWZpZWRfbGF6eSBkb2VzIG5vIGNvcnJlY3RuZXNzIGNoZWNrcyBvbiB0aGUgYnl0ZSBzdHJlYW0uIFRoaXMgc2hvdWxkCiBvbmx5IGJlIHVzZWQgd2hlcmUgbGF6eSB3aXRoIHZlcmlmaWNhdGlvbiBpcyBwcm9oaWJpdGl2ZSBmb3IgcGVyZm9ybWFuY2UKIHJlYXNvbnMuCgoNCgUEDAIEBBIE6gQCCgoNCgUEDAIEBRIE6gQLDwoNCgUEDAIEARIE6gQQHwoN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cyB0aGlzIG1ldGhvZCBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIHRoZSBtZXRob2QsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwKIHRoaXMgaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBtZXRob2RzLgoy6AEgTm90ZTogIEZpZWxkIG51bWJlcnMgMSB0aHJvdWdoIDMyIGFyZSByZXNlcnZlZCBmb3IgR29vZ2xlJ3MgaW50ZXJuYWwgUlBDCiAgIGZyYW1ld29yay4gIFdlIGFwb2xvZ2l6ZSBmb3IgaG9hcmRpbmcgdGhlc2UgbnVtYmVycyB0byBvdXJzZWx2ZXMsIGJ1dAogICB3ZSB3ZXJlIGFscmVhZHkgdXNpbmcgdGhlbSBsb25nIGJlZm9yZSB3ZSBkZWNpZGVkIHRvIHJlbGVhc2UgUHJvdG9jb2wKICAgQnVmZmVycy4KCg0KBQQRAgAEEgTJBQIKCg0KBQQRAgAFEgTJBQsPCg0KBQQRAgABEgTJBRAaCg0KBQQRAgADEgTJBR0fCg0KBQQRAgAIEgTJBSAxCg0KBQQRAgAHEgTJBSswCvABCgQEEQQAEgbOBQLSBQMa3wEgSXMgdGhpcyBtZXRob2Qgc2lkZS1lZmZlY3QtZnJlZSAob3Igc2FmZSBpbiBIVFRQIHBhcmxhbmNlKSwgb3IgaWRlbXBvdGVudCwKIG9yIG5laXRoZXI/IEhUVFAgYmFzZWQgUlBDIGltcGxlbWVudGF0aW9uIG1heSBjaG9vc2UgR0VUIHZlcmIgZm9yIHNhZmUKIG1ldGhvZHMsIGFuZCBQVVQgdmVyYiBmb3IgaWRlbXBvdGVudCBtZXRob2RzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgUE9TVC4KCg0KBQQRBAABEgTOBQcXCg4KBgQRBAACABIEzwUEHAoPCgcEEQQAAgABEgTPBQQXCg8KBwQRBAACAAISBM8FGhsKJAoGBBEEAAIBEgTQBQQYIhQgaW1wbGllcyBpZGVtcG90ZW50CgoPCgcEEQQAAgEB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IG9wdGlvbmFsIHN0cmluZyBmb28gPSAxOwogICBeICAgICAgIF5eICAgICBeXiAgXiAgXl5eCiAgIGEgICAgICAgYmMgICAgIGRlICBmICBnaGkKIFdlIGhhdmUgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CiAgIHNwYW4gICBwYXRoICAgICAgICAgICAgICAgcmVwcmVzZW50cwogICBbYSxpKSAgWyA0LCAwLCAyLCAwIF0gICAgIFRoZSB3aG9sZSBmaWVsZCBkZWZpbml0aW9uLgogICBbYSxiKSAgWyA0LCAwLCAyLCAwLCA0IF0gIFRoZSBsYWJlbCAob3B0aW9uYWwpLgogICBbYyxkKSAgWyA0LCAwLCAyLCAwLCA1IF0gIFRoZSB0eXBlIChzdHJpbmcpLgogICBbZSxmKSAgWyA0LCAwLCAyLCAwLCAxIF0gIFRoZSBuYW1lIChmb28pLgogICBbZyxoKSAgWyA0LCAwLCAyLCAwLCAzIF0gIFRoZSBudW1iZXIgKDEpLgoKIE5vdGVzOgogLSBBIGxvY2F0aW9uIG1heSByZWZlciB0byBhIHJlcGVhdGVkIGZpZWxkIGl0c2VsZiAoaS5lLiBub3QgdG8gYW55CiAgIHBhcnRpY3VsYXIgaW5kZXggd2l0aGluIGl0KS4gIFRoaXMgaXMgdXNlZCB3aGVuZXZlciBhIHNldCBvZiBlbGVtZW50cyBhcmUKICAgbG9naWNhbGx5IGVuY2xvc2VkIGluIGEgc2luZ2xlIGNvZGUgc2VnbWVudC4gIEZvciBleGFtcGxlLCBhbiBlbnRpcmUKICAgZXh0ZW5kIGJsb2NrIChwb3NzaWJseSBjb250YWluaW5nIG11bHRpcGxlIGV4dGVuc2lvbiBkZWZpbml0aW9ucykgd2lsbAogICBoYXZlIGFuIG91dGVyIGxvY2F0aW9uIHdob3NlIHBhdGggcmVmZXJzIHRvIHRoZSAiZXh0ZW5zaW9ucyIgcmVwZWF0ZWQKICAgZmllbGQgd2l0aG91dCBhbiBpbmRleC4KIC0gTXVsdGlwbGUgbG9jYXRpb25zIG1heSBoYXZlIHRoZSBzYW1lIHBhdGguICBUaGlzIGhhcHBlbnMgd2hlbiBhIHNpbmdsZQogICBsb2dpY2FsIGRlY2xhcmF0aW9uIGlzIHNwcmVhZCBvdXQgYWNyb3NzIG11bHRpcGxlIHBsYWNlcy4gIFRoZSBtb3N0CiAgIG9idmlvdXMgZXhhbXBsZSBpcyB0aGUgImV4dGVuZCIgYmxvY2sgYWdhaW4gLS0gdGhlcmUgbWF5IGJlIG11bHRpcGxlCiAgIGV4dGVuZCBibG9ja3MgaW4gdGhlIHNhbWUgc2NvcGUsIGVhY2ggb2Ygd2hpY2ggd2lsbCBoYXZlIHRoZSBzYW1lIHBhdGguCiAtIEEgbG9jYXRpb24ncyBzcGFuIGlzIG5vdCBhbHdheXMgYSBzdWJzZXQgb2YgaXRzIHBhcmVudCdzIHNwYW4uICBGb3IKICAgZXhhbXBsZSwgdGhlICJleHRlbmRlZSIgb2YgYW4gZXh0ZW5zaW9uIGRlY2xhcmF0aW9uIGFwcGVhcnMgYXQgdGhlCiAgIGJlZ2lubmluZyBvZiB0aGUgImV4dGVuZCIgYmxvY2sgYW5kIGlzIHNoYXJlZCBieSBhbGwgZXh0ZW5zaW9ucyB3aXRoaW4KICAgdGhlIGJsb2NrLgogLSBKdXN0IGJlY2F1c2UgYSBsb2NhdGlvbidzIHNwYW4gaXMgYSBzdWJzZXQgb2Ygc29tZSBvdGhlciBsb2NhdGlvbidzIHNwYW4KICAgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGEgZGVzY2VuZGFudC4gIEZvciBleGFtcGxlLCBhICJncm91cCIgZGVmaW5lcwogICBib3RoIGEgdHlwZSBhbmQgYSBmaWVsZCBpbiBhIHNpbmdsZSBkZWNsYXJhdGlvbi4gIFRodXMsIHRoZSBsb2NhdGlvbnMKICAgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZSBhbmQgZmllbGQgYW5kIHRoZWlyIGNvbXBvbmVudHMgd2lsbCBvdmVybGFwLgogLSBDb2RlIHdoaWNoIHRyaWVzIHRvIGludGVycHJldCBsb2NhdGlvbnMgc2hvdWxkIHByb2JhYmx5IGJlIGRlc2lnbmVkIHRvCiAgIGlnbm9yZSB0aG9zZSB0aGF0IGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCwgYXMgbW9yZSB0eXBlcyBvZiBsb2NhdGlvbnMgY291bGQKICAgYmUgcmVjb3JkZWQgaW4gdGhlIGZ1dHVyZS4KCg0KBQQTAgAEEgSrBgIKCg0KBQQTAgAGEgSrBgsTCg0KBQQTAgABEgSrBhQcCg0KBQQTAgADEgSrBh8gCg4KBAQTAwASBqwGAv8GAwoNCgUEEwMAARIErAYKEgqJBwoGBBMDAAIAEgTEBgQsGvgGIElkZW50aWZpZXMgd2hpY2ggcGFydCBvZiB0aGUgRmlsZURlc2NyaXB0b3JQcm90byB3YXMgZGVmaW5lZCBhdCB0aGlzCiBsb2NhdGlvbi4KCiBFYWNoIGVsZW1lbnQgaXMgYSBmaWVsZCBudW1iZXIgb3IgYW4gaW5kZXguICBUaGV5IGZvcm0gYSBwYXRoIGZyb20KIHRoZSByb290IEZpbGVEZXNjcmlwdG9yUHJvdG8gdG8gdGhlIHBsYWNlIHdoZXJlIHRoZSBkZWZpbml0aW9uIG9jY3Vycy4KIEZvciBleGFtcGxlLCB0aGlzIHBhdGg6CiAgIFsgNCwgMywgMiwgNywgMSBdCiByZWZlcnMgdG86CiAgIGZpbGUubWVzc2FnZV90eXBlKDMpICAvLyA0LCAzCiAgICAgICAuZmllbGQoNykgICAgICAgICAvLyAyLCA3CiAgICAgICAubmFtZSgpICAgICAgICAgICAvLyAxCiBUaGlzIGlzIGJlY2F1c2UgRmlsZURlc2NyaXB0b3JQcm90by5tZXNzYWdlX3R5cGUgaGFzIGZpZWxkIG51bWJlciA0OgogICByZXBlYXRlZCBEZXNjcmlwdG9yUHJvdG8gbWVzc2FnZV90eXBlID0gNDsKIGFuZCBEZXNjcmlwdG9yUHJvdG8uZmllbGQgaGFzIGZpZWxkIG51bWJlciAyOgogICByZXBlYXRlZCBGaWVsZERlc2NyaXB0b3JQcm90byBmaWVsZCA9IDI7CiBhbmQgRmllbGREZXNjcmlwdG9yUHJvdG8ubmFtZSBoYXMgZmllbGQgbnVtYmVyIDE6CiAgIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMTsKCiBUaHVzLCB0aGUgYWJvdmUgcGF0aCBnaXZlcyB0aGUgbG9jYXRpb24gb2YgYSBmaWVsZCBuYW1lLiAgSWYgd2UgcmVtb3ZlZAogdGhlIGxhc3QgZWxlbWVudDoKICAgWyA0LCAzLCAyLCA3IF0KIHRoaXMgcGF0aCByZWZlcnMgdG8gdGhlIHdob2xlIGZpZWxkIGRlY2xhcmF0aW9uIChmcm9tIHRoZSBiZWdpbm5pbmcKIG9mIHRoZSBsYWJlbCB0byB0aGUgdGVybWluYXRpbmcgc2VtaWNvbG9uKS4KCg8KBwQTAwACAAQSBMQGBAwKDwoHBBMDAAIABRIExAYNEgoPCgcEEwMAAgABEgTEBhMXCg8KBwQTAwACAAMSBMQGGhsKDwoHBBMDAAIACBIExAYcKwoQCggEEwMAAgAIAhIExAYdKgrSAgoGBBMDAAIBEgTLBgQsGsECIEFsd2F5cyBoYXMgZXhhY3RseSB0aHJlZSBvciBmb3VyIGVsZW1lbnRzOiBzdGFydCBsaW5lLCBzdGFydCBjb2x1bW4sCiBlbmQgbGluZSAob3B0aW9uYWwsIG90aGVyd2lzZSBhc3N1bWVkIHNhbWUgYXMgc3RhcnQgbGluZSksIGVuZCBjb2x1bW4uCiBUaGVzZSBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgZmllbGQgZm9yIGVmZmljaWVuY3kuICBOb3RlIHRoYXQgbGluZQogYW5kIGNvbHVtbiBudW1iZXJzIGFyZSB6ZXJvLWJhc2VkIC0tIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50IHRvIGFkZAogMSB0byBlYWNoIGJlZm9yZSBkaXNwbGF5aW5nIHRvIGEgdXNlci4KCg8KBwQTAwACAQQSBMsGBAwKDwoHBBMDAAIBBRIEywYNEgoPCgcEEwMAAgEBEgTLBhMXCg8KBwQTAwACAQMSBMsGGhsKDwoHBBMDAAIBCBIEywYcKwoQCggEEwMAAgEIAhIEywYdKgqlDAoGBBMDAAICEgT8BgQpGpQMIElmIHRoaXMgU291cmNlQ29kZUluZm8gcmVwcmVzZW50cyBhIGNvbXBsZXRlIGRlY2xhcmF0aW9uLCB0aGVzZSBhcmUgYW55CiBjb21tZW50cyBhcHBlYXJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVjbGFyYXRpb24gd2hpY2ggYXBwZWFyIHRvIGJlCiBhdHRhY2hlZCB0byB0aGUgZGVjbGFyYXRpb24uCgogQSBzZXJpZXMgb2YgbGluZSBjb21tZW50cyBhcHBlYXJpbmcgb24gY29uc2VjdXRpdmUgbGluZXMsIHdpdGggbm8gb3RoZXIKIHRva2VucyBhcHBlYXJpbmcgb24gdGhvc2UgbGluZXMsIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBjb21tZW50LgoKIGxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMgd2lsbCBrZWVwIHBhcmFncmFwaHMgb2YgY29tbWVudHMgdGhhdCBhcHBlYXIKIGJlZm9yZSAoYnV0IG5vdCBjb25uZWN0ZWQgdG8pIHRoZSBjdXJyZW50IGVsZW1lbnQuIEVhY2ggcGFyYWdyYXBoLAogc2VwYXJhdGVkIGJ5IGVtcHR5IGxpbmVzLCB3aWxsIGJlIG9uZSBjb21tZW50IGVsZW1lbnQgaW4gdGhlIHJlcGVhdGVkCiBmaWVsZC4KCiBPbmx5IHRoZSBjb21tZW50IGNvbnRlbnQgaXMgcHJvdmlkZWQ7IGNvbW1lbnQgbWFya2VycyAoZS5nLiAvLykgYXJlCiBzdHJpcHBlZCBvdXQuICBGb3IgYmxvY2sgY29tbWVudHMsIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgYW4gYXN0ZXJpc2sKIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggbGluZSBvdGhlciB0aGFuIHRoZSBmaXJzdC4KIE5ld2xpbmVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LgoKIEV4YW1wbGVzOgoKICAgb3B0aW9uYWwgaW50MzIgZm9vID0gMTsgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gZm9vLgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhci4KICAgb3B0aW9uYWwgaW50MzIgYmFyID0gMjsKCiAgIG9wdGlvbmFsIHN0cmluZyBiYXogPSAzOwogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhei4KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIGJhei4KCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gbW9vLgogICAvLwogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gbW9vLgogICBvcHRpb25hbCBkb3VibGUgbW9vID0gNDsKCiAgIC8vIERldGFjaGVk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CiByZWxhdGVzIHRvIHRoZSBpZGVudGlmaWVkIG9mZnNldC4gVGhlIGVuZCBvZmZzZXQgc2hvdWxkIGJlIG9uZSBwYXN0CiB0aGUgbGFzdCByZWxldmFudCBieXRlIChzbyB0aGUgbGVuZ3RoIG9mIHRoZSB0ZXh0ID0gZW5kIC0gYmVnaW4pLgoKDwoHBBQDAAIDBBIEmAcEDAoPCgcEFAMAAgMFEgSYBw0SCg8KBwQUAwACAwESBJgHExYKDwoHBBQDAAIDAxIEmAcZGgrifAokdW5pdHRlc3RfY3VzdG9tX29wdGlvbnNfcHJvdG8zLnByb3RvEhFwcm90b2J1Zl91bml0dGVzdBogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8i6wEKHFRlc3RNZXNzYWdlV2l0aEN1c3RvbU9wdGlvbnMSJgoGZmllbGQxGAEgASgJQg4IAcHgwx0t4XUKAgAAAFIGZmllbGQxEiEKC29uZW9mX2ZpZWxkGAIgASgFSABSCm9uZW9mRmllbGQiUwoGQW5FbnVtEhYKEkFORU5VTV9VTlNQRUNJRklFRBAAEg8KC0FORU5VTV9WQUwxEAESFgoLQU5FTlVNX1ZBTDIQAhoFsIb6BXsaCMX2yR3r/P//OhAIAODpwh3I//////////8BQhkKB0FuT25lb2YSDviswx2d//////////8BIhgKFkN1c3RvbU9wdGlvbkZvb1JlcXVlc3QiGQoXQ3VzdG9tT3B0aW9uRm9vUmVzcG9uc2UiHgocQ3VzdG9tT3B0aW9uRm9vQ2xpZW50TWVzc2FnZSIeChxDdXN0b21PcHRpb25Gb29TZXJ2ZXJNZXNzYWdlIo8BChpEdW1teU1lc3NhZ2VDb250YWluaW5nRW51bSJxCgxUZXN0RW51bVR5cGUSIAocVEVTVF9PUFRJT05fRU5VTV9VTlNQRUNJRklFRBAAEhoKFlRFU1RfT1BUSU9OX0VOVU1fVFlQRTEQFhIjChZURVNUX09QVElPTl9FTlVNX1RZUEUyEOn//////////wEiIQofRHVtbXlNZXNzYWdlSW52YWxpZEFzT3B0aW9uVHlwZSKKAQocQ3VzdG9tT3B0aW9uTWluSW50ZWdlclZhbHVlczpq0N6yHQDoxrIdgICAgPj/////AbC8sh2AgICAgICAgIABgJOyHQD49bAdAIDEsB3/////D/iXsB3///////////8BnfWvHQAAAACR7q8dAAAAAAAAAACtja8dAAAAgJnWqB0AAAAAAAAAgCKRAQocQ3VzdG9tT3B0aW9uTWF4SW50ZWdlclZhbHVlczpx0N6yHQHoxrId/////wewvLId//////////9/gJOyHf////8P+PWwHf///////////wGAxLAd/v///w/4l7Ad/v//////////AZ31rx3/////ke6vHf//////////rY2vHf///3+Z1qgd/////////38ibgoXQ3VzdG9tT3B0aW9uT3RoZXJWYWx1ZXM6U+jGsh2c//////////8B9d+jHeeHRUHp3KId+1mMQsrA8z+q3KIdDkhlbGxvLCAiV29ybGQistmiHQtIZWxsbwBXb3JsZIjZoh3p//////////8BIjQKHFNldHRpbmdSZWFsc0Zyb21Qb3NpdGl2ZUludHM6FPXfox0AAEBB6dyiHQAAAAAAQGNAIjQKHFNldHRpbmdSZWFsc0Zyb21OZWdhdGl2ZUludHM6FPXfox0AAEDB6dyiHQAAAAAAQGPAImIKEkNvbXBsZXhPcHRpb25UeXBlMRIQCgNmb28YASABKAVSA2ZvbxISCgRmb28yGAIgASgFUgRmb28yEhIKBGZvbzMYAyABKAVSBGZvbzMSEgoEZm9vNBgEIAMoBVIEZm9vNCKtAwoSQ29tcGxleE9wdGlvblR5cGUyEjcKA2JhchgBIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMVIDYmFyEhAKA2JhehgCIAEoBVIDYmF6EkwKBGZyZWQYAyABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIuQ29tcGxleE9wdGlvblR5cGU0UgRmcmVkElAKBmJhcm5leRgEIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0aW9uVHlwZTRSBmJhcm5leRqrAQoSQ29tcGxleE9wdGlvblR5cGU0EhQKBXdhbGRvGAEgASgFUgV3YWxkbzJ/Cgxjb21wbGV4X29wdDQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYivXRAyABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIuQ29tcGxleE9wdGlvblR5cGU0Ugtjb21wbGV4T3B0NCImChJDb21wbGV4T3B0aW9uVHlwZTMSEAoDcXV4GAEgASgFUgNxdXgibAoVVmFyaW91c0NvbXBsZXhPcHRpb25zOlOi4pUdAggqouKVHQIgY6LilR0CIFiq/ZAdAxDbB6r9kB0FCgMI5wXSqI8dAwizD6r9kB0FGgMIwQKq/ZAdBCICCGWq/ZAdBSIDCNQB+t6QHQIICSJXCglBZ2dyZWdhdGUSDAoBaRgBIAEoBVIBaRIMCgFzGAIgASgJUgFzEi4KA3N1YhgDIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIDc3ViImQKEEFnZ3JlZ2F0ZU1lc3NhZ2USNAoJZmllbGRuYW1lGAEgASgFQhbyoYc7ERIPRmllbGRBbm5vdGF0aW9uUglmaWVsZG5hbWU6GsLRhjsVCGUSEU1lc3NhZ2VBbm5vdGF0aW9uIqQBChBOZXN0ZWRPcHRpb25UeXBlGkgKDU5lc3RlZE1lc3NhZ2USLwoMbmVzdGVkX2ZpZWxkGAEgASgFQgzB4MMd6gMAAAAAAABSC25lc3RlZEZpZWxkOgbg6cId6QciRgoKTmVzdGVkRW51bRIPCgtVTlNQRUNJRklFRBAAEh0KEU5FU1RFRF9FTlVNX1ZBTFVFEAEaBrCG+gXsBxoIxfbJHesDAAAqUgoKTWV0aG9kT3B0MRIaChZNRVRIT0RPUFQxX1VOU1BFQ0lGSUVEEAASEwoPTUVUSE9ET1BUMV9WQUwxEAESEwoPTUVUSE9ET1BUMV9WQUwyEAIqXgoNQWdncmVnYXRlRW51bRIPCgtVTlNQRUNJRklFRBAAEiUKBVZBTFVFEAEaGsr8iTsVEhNFbnVtVmFsdWVBbm5vdGF0aW9uGhWSlYg7EBIORW51bUFubm90YXRpb24yjgEKHFRlc3RTZXJ2aWNlV2l0aEN1c3RvbU9wdGlvbnMSYwoDRm9vEikucHJvdG9idWZfdW5pdHRlc3QuQ3VzdG9tT3B0aW9uRm9vUmVxdWVzdBoqLnByb3RvYnVmX3VuaXR0ZXN0LkN1c3RvbU9wdGlvbkZvb1Jlc3BvbnNlIgXg+oweAhoJkLKLHtPbgMtJMpkBChBBZ2dyZWdhdGVTZXJ2aWNlEmsKBk1ldGhvZBIjLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZU1lc3NhZ2UaIy5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVNZXNzYWdlIhfKyJY7EhIQTWV0aG9kQW5ub3RhdGlvbhoYyvuOOxMSEVNlcnZpY2VBbm5vdGF0aW9uOjwKCWZpbGVfb3B0MRIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucxiOndgDIAEoBFIIZmlsZU9wdDE6RQoMbWVzc2FnZV9vcHQxEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJyt2AMgASgFUgttZXNzYWdlT3B0MTo/CgpmaWVsZF9vcHQxEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxiIvNgDIAEoBlIJZmllbGRPcHQxOj8KCm9uZW9mX29wdDESHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zGM+12AMgASgFUglvbmVvZk9wdDE6PAoJZW51bV9vcHQxEhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zGOie2QMgASgPUghlbnVtT3B0MTpLCg9lbnVtX3ZhbHVlX29wdDESIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9ucxjmoF8gASgFUg1lbnVtVmFsdWVPcHQxOkUKDHNlcnZpY2Vfb3B0MRIfLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlT3B0aW9ucxiituEDIAEoElILc2VydmljZU9wdDE6YQoLbWV0aG9kX29wdDESHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxisz+EDIAEoDjIdLnByb3RvYnVmX3VuaXR0ZXN0Lk1ldGhvZE9wdDFSCm1ldGhvZE9wdDE6PQoIYm9vbF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY6qvWAyABKAhSB2Jvb2xPcHQ6PwoJaW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGO2o1gMgASgFUghpbnQzMk9wdDo/CglpbnQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYxqfWAyABKANSCGludDY0T3B0OkEKCnVpbnQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYsKLWAyABKA1SCXVpbnQzMk9wdDpBCgp1aW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGN+O1gMgASgEUgl1aW50NjRPcHQ6QQoKc2ludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjAiNYDIAEoEVIJc2ludDMyT3B0OkEKCnNpbnQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY/4LWAyABKBJSCXNpbnQ2NE9wdDpDCgtmaXhlZDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjT/tUDIAEoB1IKZml4ZWQzMk9wdDpDCgtmaXhlZDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxji/dUDIAEoBlIKZml4ZWQ2NE9wdDpFCgxzZml4ZWQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY1fHVAyABKA9SC3NmaXhlZDMyT3B0OkUKDHNmaXhlZDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjjitUDIAEoEFILc2ZpeGVkNjRPcHQ6PwoJZmxvYXRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGP671AMgASgCUghmbG9hdE9wdDpBCgpkb3VibGVfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGM2r1AMgASgBUglkb3VibGVPcHQ6QQoKc3RyaW5nX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjFq9QDIAEoCVIJc3RyaW5nT3B0Oj8KCWJ5dGVzX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiWq9QDIAEoDFIIYnl0ZXNPcHQ6eQoIZW51bV9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYkavUAyABKA4yOi5wcm90b2J1Zl91bml0dGVzdC5EdW1teU1lc3NhZ2VDb250YWluaW5nRW51bS5UZXN0RW51bVR5cGVSB2VudW1PcHQ6gAEKEG1lc3NhZ2VfdHlwZV9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYr/LTAyABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5EdW1teU1lc3NhZ2VJbnZhbGlkQXNPcHRpb25UeXBlUg5tZXNzYWdlVHlwZU9wdDpsCgxjb21wbGV4X29wdDESHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYpNzSAyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTFSC2NvbXBsZXhPcHQxOmwKDGNvbXBsZXhfb3B0MhIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjVj9IDIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMlILY29tcGxleE9wdDI6bAoMY29tcGxleF9vcHQzEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGO+L0gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUzUgtjb21wbGV4T3B0MzpXCgdmaWxlb3B0EhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zGM/dsAcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgdmaWxlb3B0OlgKBm1zZ29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiY6rAHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIGbXNnb3B0OloKCGZpZWxkb3B0Eh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxie9LAHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIIZmllbGRvcHQ6VwoHZW51bW9wdBIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9ucxjSgrEHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIHZW51bW9wdDpiCgplbnVtdmFsb3B0EiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMYyZ+xByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSCmVudW12YWxvcHQ6YAoKc2VydmljZW9wdBIfLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlT3B0aW9ucxi577EHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIKc2VydmljZW9wdDpdCgltZXRob2RvcHQSHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiJ6bIHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIJbWV0aG9kb3B0QlWqAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc/DowR3qrcDlJPrshTsqCGQSDkZpbGVBbm5vdGF0aW9uGhYSFE5lc3RlZEZpbGVBbm5vdGF0aW9uSqFRCgcSBSwAzwIBCvYQCgEMEgMsABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLTASBBdXRob3I6IGJlbmp5QGdvb2dsZS5jb20gKEJlbmp5IFdlaW5iZXJnZXIpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3RvIGZpbGUgdXNlZCB0byB0ZXN0IHRoZSAiY3VzdG9tIG9wdGlvbnMiIGZlYXR1cmUgb2YgZ29vZ2xlLnByb3RvYnVmLgoy0QIgVGhpcyBmaWxlIGlzIGJhc2VkIG9uIHVuaXR0ZXN0X2N1c3RvbV9vcHRpb25zLnByb3RvIGluCiBzcmMvZ29vZ2xlL3Byb3RvYnVmLCBidXQgaXMgbW9kaWZpZWQgZm9yIHByb3RvMy4gSXQgY291bGQKIHBvdGVudGlhbGx5IGJlIG1vdmVkIGludG8gc3JjL2dvb2dsZS9wcm90b2J1ZiwgYnV0IGN1cnJlbnRseSBDIwogaXMgdGhlIG9ubHkgbGFuZ3VhZ2UgdGhhdCByZWFsbHkgbmVlZHMgaXQsIGFzIHdlIGRvbid0IHN1cHBvcnQKIHByb3RvMiBzeW50YXguIEl0J3MgY3V0IGRvd24gc2lnbmlmaWNhbnRseSBhcyBwcm90bzMgb25seSBzdXBwb3J0cwogZXh0ZW5zaW9ucyBmb3Igb3B0aW9ucy4KCggKAQgSAy8AIAo1CgUIjp3YAxIDLwAgGicgQSBjdXN0b20gZmlsZSBvcHRpb24gKGRlZmluZWQgYmVsb3cpLgoKCQoCAwASAzEAKgqgAQoBAhIDNQAaGpUBIFdlIGRvbid0IHB1dCB0aGlzIGluIGEgcGFja2FnZSB3aXRoaW4gcHJvdG8yIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUKIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgZGVwZW5kIG9uIGJlaW5nIGluIHRoZSBwcm90bzIgbmFtZXNwYWNlLgoKCAoBCBIDNgA3CgkKAgglEgM2ADcKPgoBBxIEOgA8ATIzIFNvbWUgc2ltcGxlIHRlc3QgY3VzdG9tIG9wdGlvbnMgb2YgdmFyaW91cyB0eXBlcy4KCgkKAgcAEgM7Ah0KCgoDBwACEgM6ByIKCgoDBwAFEgM7AggKCgoDBwABEgM7CRIKCgoDBwADEgM7FRwKCQoBBxIEPgBAAQoJCgIHARIDPwIfCgoKAwcBAhIDPgclCgoKAwcBBRIDPwIHCgoKAwcBARIDPwgUCgoKAwcBAxIDPxceCgkKAQcSBEIARAEKCQoCBwISA0MCHwoKCgMHAgISA0IHIwoKCgMHAgUSA0MCCQoKCgMHAgESA0MKFAoKCgMHAgMSA0MXHgoJCgEHEgRGAEgBCgkKAgcDEgNHAh0KCgoDBwMCEgNGByMKCgoDBwMFEgNHAgcKCgoDBwMBEgNHCBIKCgoDBwMDEgNHFRwKCQoBBxIESgBMAQoJCgIHBBIDSwIfCgoKAwcEAhIDSgciCgoKAwcEBRIDSwIKCgoKAwcEARIDSwsUCgoKAwcEAxIDSxceCgkKAQcSBE4AUAEKCQoCBwUSA08CIgoKCgMHBQISA04HJwoKCgMHBQUSA08CBwoKCgMHBQESA08IFwoKCgMHBQMSA08aIQoJCgEHEgRSAFQBCgkKAgcGEgNTAiAKCgoDBwYCEgNSByUKCgoDBwYFEgNTAggKCgoDBwYBEgNTCRUKCgoDBwYDEgNTGB8KCgoCBQASBFYAWgEKCgoDBQABEgNWBQ8KCwoEBQACABIDVwIdCgwKBQUAAgABEgNXAhgKDAoFBQACAAISA1cbHAoLCgQFAAIBEgNYAhYKDAoFBQACAQESA1gCEQoMCgUFAAIBAhIDWBQVCgsKBAUAAgISA1kCFgoMCgUFAAICARIDWQIRCgwKBQUAAgICEgNZFBUKCQoBBxIEXABeAQoJCgIHBxIDXQIjCgoKAwcHAhIDXAckCgoKAwcHBhIDXQIMCgoKAwcHARIDXQ0YCgoKAwcHAxIDXRsiCpABCgIEABIEYgB1ARqDASBBIHRlc3QgbWVzc2FnZSB3aXRoIGN1c3RvbSBvcHRpb25zIGF0IGFsbCBwb3NzaWJsZSBsb2NhdGlvbnMgKGFuZCBhbHNvIHNvbWUKIHJlZ3VsYXIgb3B0aW9ucywgdG8gbWFrZSBzdXJlIHRoZXkgaW50ZXJhY3QgbmljZWx5KS4KCgoKAwQAARIDYggkCgoKAwQABxIDYwIpCgsKBAQABwESA2MCKQoKCgMEAAcSA2UCHgoOCgcEAAecrdgDEgNlAh4KDAoEBAACABIEZwJoNwoMCgUEAAIABRIDZwIICgwKBQQAAgABEgNnCQ8KDAoFBAACAAMSA2cSEwoNCgUEAAIACBIEZxRoNgoNCgYEAAIACAESA2cVHwoQCgkEAAIACIi82AMSA2geNQoMCgQEAAgAEgRqAm0DCgwKBQQACAABEgNqCA8KDAoFBAAIAAISA2sEHgoQCgkEAAgAAs+12AMSA2sEHgoLCgQEAAIBEgNsBBoKDAoFBAACAQUSA2wECQoMCgUEAAIBARIDbAoVCgwKBQQAAgEDEgNsGBkKDAoEBAAEABIEbwJ0AwoMCgUEAAQAARIDbwcNCgwKBQQABAADEgNwBB4KEAoJBAAEAAPontkDEgNwBB4KDQoGBAAEAAIAEgNxBBsKDgoHBAAEAAIAARIDcQQWCg4KBwQABAACAAISA3EZGgoNCgYEAAQAAgESA3IEFAoOCgcEAAQAAgEBEgNyBA8KDgoHBAAEAAIBAhIDchITCg0KBgQABAACAhIDcwQuCg4KBwQABAACAgESA3MEDwoOCgcEAAQAAgICEgNzEhMKDgoHBAAEAAICAxIDcxQtChEKCgQABAACAgPmoF8SA3MVLAqUAQoCBAESBHoAewEahwEgQSB0ZXN0IFJQQyBzZXJ2aWNlIHdpdGggY3VzdG9tIG9wdGlvbnMgYXQgYWxsIHBvc3NpYmxlIGxvY2F0aW9ucyAoYW5kIGFsc28KIHNvbWUgcmVndWxhciBvcHRpb25zLCB0byBtYWtlIHN1cmUgdGhleSBpbnRlcmFjdCBuaWNlbHkpLgoKCgoDBAEBEgN6CB4KCgoCBAISBH0AfgEKCgoDBAIBEgN9CB8KDAoCBAMSBoABAIEBAQoLCgMEAwESBIABCCQKDAoCBAQSBoMBAIQBAQoLCgMEBAESBIMBCCQKDAoCBgASBoYBAIwBAQoLCgMGAAESBIYBCCQKCwoDBgADEgSHAQImCg8KBwYAA6K24QMSBIcBAiYKDgoEBgACABIGiQECiwEDCg0KBQYAAgABEgSJAQYJCg0KBQYAAgACEgSJAQogCg0KBQYAAgADEgSJAStCCg0KBQYAAgAEEgSKAQQrChEKCQYAAgAErM/hAxIEigEEKwpbCgIEBRIGkgEAmAEBMk0gT3B0aW9ucyBvZiBldmVyeSBwb3NzaWJsZSBmaWVsZCB0eXBlLCBzbyB3ZSBjYW4gdGVzdCB0aGVtIGFsbCBleGhhdXN0aXZlbHkuCgoLCgMEBQESBJIBCCIKDgoEBAUEABIGkwEClwEDCg0KBQQFBAABEgSTAQcTCg4KBgQFBAACABIElAEEJQoPCgcEBQQAAgABEgSUAQQgCg8KBwQFBAACAAISBJQBIyQKDgoGBAUEAAIBEgSVAQQgCg8KBwQFBAACAQESBJUBBBoKDwoHBAUEAAIBAhIElQEdHwoOCgYEBQQAAgISBJYBBCEKDwoHBAUEAAICARIElgEEGgoPCgcEBQQAAgICEgSWAR0gCgwKAgQGEgaaAQCbAQEKCwoDBAYBEgSaAQgnCgsKAQcSBp0BAK8BAQoKCgIHCBIEngEKJgoLCgMHCAISBJ0BByUKCwoDBwgFEgSeAQoOCgsKAwcIARIEngETGwoLCgMHCAMSBJ4BHiUKCgoCBwkSBJ8BCSYKCwoDBwkCEgSdAQclCgsKAwcJBRIEnwEJDgoLCgMHCQESBJ8BEhsKCwoDBwkDEgSfAR4lCgoKAgcKEgSgAQkmCgsKAwcKAhIEnQEHJQoLCgMHCgUSBKABCQ4KCwoDBwoBEgSgARIbCgsKAwcKAxIEoAEeJQoKCgIHCxIEoQEIJgoLCgMHCwISBJ0BByUKCwoDBwsFEgShAQgOCgsKAwcLARIEoQERGwoLCgMHCwMSBKEBHiUKCgoCBwwSBKIBCCYKCwoDBwwCEgSdAQclCgsKAwcMBRIEogEIDgoLCgMHDAESBKIBERsKCwoDBwwDEgSiAR4lCgoKAgcNEgSjAQgmCgsKAwcNAhIEnQEHJQoLCgMHDQUSBKMBCA4KCwoDBw0BEgSjAREbCgsKAwcNAxIEowEeJQoKCgIHDhIEpAEIJgoLCgMHDgISBJ0BByUKCwoDBw4FEgSkAQgOCgsKAwcOARIEpAERGwoLCgMHDgMSBKQBHiUKCgoCBw8SBKUBByYKCwoDBw8CEgSdAQclCgsKAwcPBRIEpQEHDgoLCgMHDwESBKUBEBsKCwoDBw8DEgSlAR4lCgoKAgcQEgSmAQcmCgsKAwcQAhIEnQEHJQoLCgMHEAUSBKYBBw4KCwoDBxABEgSmARAbCgsKAwcQAxIEpgEeJQoKCgIHERIEpwEGJgoLCgMHEQISBJ0BByUKCwoDBxEFEgSnAQYOCgsKAwcRARIEpwEPGwoLCgMHEQMSBKcBHiUKCgoCBxISBKgBBiYKCwoDBxICEgSdAQclCgsKAwcSBRIEqAEGDgoLCgMHEgESBKgBDxsKCwoDBxIDEgSoAR4lCgoKAgcTEgSpAQkmCgsKAwcTAhIEnQEHJQoLCgMHEwUSBKkBCQ4KCwoDBxMBEgSpARIbCgsKAwcTAxIEqQEeJQoKCgIHFBIEqgEIJgoLCgMHFAISBJ0BByUKCwoDBxQFEgSqAQgOCgsKAwcUARIEqgERGwoLCgMHFAMSBKoBHiUKCgoCBxUSBKsBCCYKCwoDBxUCEgSdAQclCgsKAwcVBRIEqwEIDgoLCgMHFQESBKsBERsKCwoDBxUDEgSrAR4lCgoKAgcWEgSsAQkmCgsKAwcWAhIEnQEHJQoLCgMHFgUSBKwBCQ4KCwoDBxYBEgSsARIbCgsKAwcWAxIErAEeJQoKCgIHFxIErQECPQoLCgMHFwISBJ0BByUKCwoDBxcGEgStAQIpCgsKAwcXARIErQEqMgoLCgMHFwMSBK0BNTwKCgoCBxgSBK4BAj0KCwoDBxgCEgSdAQclCgsKAwcYBhIErgECIQoLCgMHGAESBK4BIjIKCwoDBxgDEgSuATU8CgwKAgQHEgaxAQC9AQEKCwoDBAcBEgSxAQgkCgsKAwQHBxIEsgECIAoPCgcEBwfqq9YDEgSyAQIgCgsKAwQHBxIEswECJgoPCgcEBwftqNYDEgSzAQImCgsKAwQHBxIEtAECLgoPCgcEBwfGp9YDEgS0AQIuCgsKAwQHBxIEtQECHAoPCgcEBwewotYDEgS1AQIcCgsKAwQHBxIEtgECHAoPCgcEBwffjtYDEgS2AQIcCgsKAwQHBxIEtwECJgoPCgcEBwfAiNYDEgS3AQImCgsKAwQHBxIEuAECLgoPCgcEBwf/gtYDEgS4AQIuCgsKAwQHBxIEuQECHAoPCgcEBwfT/tUDEgS5AQIcCgsKAwQHBxIEugECHAoPCgcEBwfi/dUDEgS6AQIcCgsKAwQHBxIEuwECJgoPCgcEBwfV8dUDEgS7AQImCgsKAwQHBxIEvAECLgoPCgcEBwfjitUDEgS8AQIuCgwKAgQIEga/AQDLAQEKCwoDBAgBEgS/AQgkCgsKAwQIBxIEwAECHwoPCgcECAfqq9YDEgTAAQIfCgsKAwQIBxIEwQECJQoPCgcECAftqNYDEgTBAQIlCgsKAwQIBxIEwgECLQoPCgcECAfGp9YDEgTCAQItCgsKAwQIBxIEwwECJQoPCgcECAewotYDEgTDAQIlCgsKAwQIBxIExAECLQoPCgcECAffjtYDEgTEAQItCgsKAwQIBxIExQECJQoPCgcECAfAiNYDEgTFAQIlCgsKAwQIBxIExgECLQoPCgcECAf/gtYDEgTGAQItCgsKAwQIBxIExwECJQoPCgcECAfT/tUDEgTHAQIlCgsKAwQIBxIEyAECLQoPCgcECAfi/dUDEgTIAQItCgsKAwQIBxIEyQECJQoPCgcECAfV8dUDEgTJAQIlCgsKAwQIBxIEygECLQoPCgcECAfjitUDEgTKAQItCgwKAgQJEgbNAQDUAQEKCwoDBAkBEgTNAQgfCgsKAwQJBxIEzgECHQoqCgcECQftqNYDEgTOAQIdIhkgVG8gdGVzdCBzaWduLWV4dGVuc2lvbi4KCgsKAwQJBxIEzwECIwoPCgcECQf+u9QDEgTPAQIjCgsKAwQJBxIE0AECLQoPCgcECQfNq9QDEgTQAQItCgsKAwQJBxIE0QECKwoPCgcECQfFq9QDEgTRAQIrCgsKAwQJBxIE0gECJwoPCgcECQeWq9QDEgTSAQInCgsKAwQJBxIE0wECLwoPCgcECQeRq9QDEgTTAQIvCgwKAgQKEgbWAQDZAQEKCwoDBAoBEgTWAQgkCgsKAwQKBxIE1wECGwoPCgcECgf+u9QDEgTXAQIbCgsKAwQKBxIE2AECHAoPCgcECgfNq9QDEgTYAQIcCgwKAgQLEgbbAQDeAQEKCwoDBAsBEgTbAQgkCgsKAwQLBxIE3AECHAoPCgcECwf+u9QDEgTcAQIcCgsKAwQLBxIE3QECHgoPCgcECwfNq9QDEgTdAQIeCmQKAgQMEgbjAQDoAQEyViBPcHRpb25zIG9mIGNvbXBsZXggbWVzc2FnZSB0eXBlcywgdGhlbXNlbHZlcyBjb21iaW5lZCBhbmQgZXh0ZW5kZWQgaW4KIHZhcmlvdXMgd2F5cy4KCgsKAwQMARIE4wEIGgoMCgQEDAIAEgTkAQIQCg0KBQQMAgAFEgTkAQIHCg0KBQQMAgABEgTkAQgLCg0KBQQMAgADEgTkAQ4PCgwKBAQMAgESBOUBAhEKDQoFBAwCAQUSBOUBAgcKDQoFBAwCAQESBOUBCAwKDQoFBAwCAQMSBOUBDxAKDAoEBAwCAhIE5gECEQoNCgUEDAICBRIE5gECBwoNCgUEDAICARIE5gEIDAoNCgUEDAICAxIE5gEPEAoMCgQEDAIDEgTnAQIaCg0KBQQMAgMEEgTnAQIKCg0KBQQMAgMFEgTnAQsQCg0KBQQMAgMBEgTnAREVCg0KBQQMAgMDEgTnARgZCgwKAgQNEgbqAQD4AQEKCwoDBA0BEgTqAQgaCgwKBAQNAgASBOsBAh0KDQoFBA0CAAYSBOsBAhQKDQoFBA0CAAESBOsBFRgKDQoFBA0CAAMSBOsBGxwKDAoEBA0CARIE7AECEAoNCgUEDQIBBRIE7AECBwoNCgUEDQIBARIE7AEICwoNCgUEDQIBAxIE7AEODwoOCgQEDQMAEgbuAQL0AQMKDQoFBA0DAAESBO4BChwKDgoGBA0DAAIAEgTvAQQUCg8KBwQNAwACAAUSBO8BBAkKDwoHBA0DAAIAARIE7wEKDwoPCgcEDQMAAgADEgTvARITCg8KBQQNAwAGEgbxAQTzAQUKDgoGBA0DAAYAEgTyAQYwCg8KBwQNAwAGAAISBPEBCykKDwoHBA0DAAYABhIE8gEGGAoPCgcEDQMABgABEgTyARklCg8KBwQNAwAGAAMSBPIBKC8KDAoEBA0CAhIE9gECHgoNCgUEDQICBhIE9gECFAoNCgUEDQICARIE9gEVGQoNCgUEDQICAxIE9gEcHQoMCgQEDQIDEgT3AQIpCg0KBQQNAgMEEgT3AQIKCg0KBQQNAgMGEgT3AQsdCg0KBQQNAgMBEgT3AR4kCg0KBQQNAgMDEgT3AScoCgwKAgQOEgb6AQD8AQEKCwoDBA4BEgT6AQgaCgwKBAQOAgASBPsBAhAKDQoFBA4CAAUSBPsBAgcKDQoFBA4CAAESBPsBCAsKDQoFBA4CAAMSBPsBDg8KCwoBBxIG/gEAggIBCgoKAgcZEgT/AQI+CgsKAwcZAhIE/gEHJQoLCgMHGQYSBP8BAiYKCwoDBxkBEgT/ASczCgsKAwcZAxIE/wE2PQoKCgIHGhIEgAICLAoLCgMHGgISBP4BByUKCwoDBxoGEgSAAgIUCgsKAwcaARIEgAIVIQoLCgMHGgMSBIACJCsKCgoCBxsSBIECAiwKCwoDBxsCEgT+AQclCgsKAwcbBhIEgQICFAoLCgMHGwESBIECFSEKCwoDBxsDEgSBAiQrClUKAgQPEgaFAgCQAgEaRyBOb3RlIHRoYXQgd2UgdHJ5IHZhcmlvdXMgZGlmZmVyZW50IHdheXMgb2YgbmFtaW5nIHRoZSBzYW1lIGV4dGVuc2lvbi4KCgsKAwQPARIEhQIIHQoLCgMEDwcSBIYCAjQKEAoIBA8HpNzSAwESBIYCAjQKCwoDBA8HEgSHAgI0ChEKCQQPB6Tc0gMEABIEhwICNAoLCgMEDwcSBIgCAjQKEQoJBA8HpNzSAwQBEgSIAgI0CgsKAwQPBxIEiQICIgoQCggEDwfVj9IDAhIEiQICIgoLCgMEDwcSBIoCAiYKEQoJBA8H1Y/SAwEBEgSKAgImCgsKAwQPBxIEiwICSwoQCggEDweK9dEDARIEiwICSwoLCgMEDwcSBIwCAikKEQoJBA8H1Y/SAwMBEgSMAgIpCgsKAwQPBxIEjQICMAoRCgkEDwfVj9IDBAASBI0CAjAKCwoDBA8HEgSOAgIwChEKCQQPB9WP0gMEARIEjgICMAoLCgMEDwcSBI8CAjIKEAoIBA8H74vSAwESBI8CAjIKzgEKAgQQEgaXAgCdAgEaNSBBIGhlbHBlciB0eXBlIHVzZWQgdG8gdGVzdCBhZ2dyZWdhdGUgb3B0aW9uIHBhcnNpbmcKMogBIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogRGVmaW5pdGlvbnMgZm9yIHRlc3RpbmcgYWdncmVnYXRlIG9wdGlvbiBwYXJzaW5nLgogU2VlIGRlc2NyaXB0b3JfdW5pdHRlc3QuY2MuCgoLCgMEEAESBJcCCBEKDAoEBBACABIEmAICDgoNCgUEEAIABRIEmAICBwoNCgUEEAIAARIEmAIICQoNCgUEEAIAAxIEmAIMDQoMCgQEEAIBEgSZAgIPCg0KBQQQAgEFEgSZAgIICg0KBQQQAgEBEgSZAgkKCg0KBQQQAgEDEgSZAg0OCh8KBAQQAgISBJwCAhQaESBBIG5lc3RlZCBvYmplY3QKCg0KBQQQAgIGEgScAgILCg0KBQQQAgIBEgScAgwPCg0KBQQQAgIDEgScAhITCmYKAQcSBKECAEwaWyBBbGxvdyBBZ2dyZWdhdGUgdG8gYmUgdXNlZCBhcyBhbiBvcHRpb24gYXQgYWxsIHBvc3NpYmxlIGxvY2F0aW9ucwogaW4gdGhlIC5wcm90byBncmFtbWFyLgoKCgoCBxwSBKECKkoKCwoDBxwCEgShAgciCgsKAwccBhIEoQIqMwoLCgMHHAESBKECNDsKCwoDBxwDEgShAkFJCgkKAQcSBKICAEwKCgoCBx0SBKICKkoKCwoDBx0CEgSiAgclCgsKAwcdBhIEogIqMwoLCgMHHQESBKICNDoKCwoDBx0DEgSiAkFJCgkKAQcSBKMCAEwKCgoCBx4SBKMCKkoKCwoDBx4CEgSjAgcjCgsKAwceBhIEowIqMwoLCgMHHgESBKMCNDwKCwoDBx4DEgSjAkFJCgkKAQcSBKQCAEwKCgoCBx8SBKQCKkoKCwoDBx8CEgSkAgciCgsKAwcfBhIEpAIqMwoLCgMHHwESBKQCNDsKCwoDBx8DEgSkAkFJCgkKAQcSBKUCAEwKCgoCByASBKUCKkoKCwoDByACEgSlAgcnCgsKAwcgBhIEpQIqMwoLCgMHIAESBKUCND4KCwoDByADEgSlAkFJCgkKAQcSBKYCAEwKCgoCByESBKYCKkoKCwoDByECEgSmAgclCgsKAwchBhIEpgIqMwoLCgMHIQESBKYCND4KCwoDByEDEgSmAkFJCgkKAQcSBKcCAEwKCgoCByISBKcCKkoKCwoDByICEgSnAgckCgsKAwciBhIEpwIqMwoLCgMHIgESBKcCND0KCwoDByIDEgSnAkFJCgsKAQgSBqoCALACAgpVCgUIz92wBxIGqgIAsAICGkQgVHJ5IHVzaW5nIEFnZ3JlZ2F0ZU9wdGlvbiBhdCBkaWZmZXJlbnQgcG9pbnRzIGluIHRoZSBwcm90byBncmFtbWFyCgoMCgIEERIGsgIAtQIBCgsKAwQRARIEsgIIGAoLCgMEEQcSBLMCAjQKDwoHBBEHmOqwBxIEswICNAoMCgQEEQIAEgS0AgI9Cg0KBQQRAgAFEgS0AgIHCg0KBQQRAgABEgS0AggRCg0KBQQRAgADEgS0AhQVCg0KBQQRAgAIEgS0AhY8ChEKCQQRAgAInvSwBxIEtAIXOwoMCgIGARIGtwIAvAIBCgsKAwYBARIEtwIIGAoLCgMGAQMSBLgCAjIKDwoHBgEDue+xBxIEuAICMgoOCgQGAQIAEga5AgK7AgMKDQoFBgECAAESBLkCBgwKDQoFBgECAAISBLkCDh4KDQoFBgECAAMSBLkCKTkKDQoFBgECAAQSBLoCBDIKEQoJBgECAASJ6bIHEgS6AgQyCgwKAgUBEga+AgDCAgEKCwoDBQEBEgS+AgUSCgsKAwUBAxIEvwICLAoPCgcFAQPSgrEHEgS/AgIsCgwKBAUBAgASBMACAhIKDQoFBQECAAESBMACAg0KDQoFBQECAAISBMACEBEKDAoEBQECARIEwQICOQoNCgUFAQIBARIEwQICBwoNCgUFAQIBAhIEwQIKCwoNCgUFAQIBAxIEwQIMOAoRCgkFAQIBA8mfsQcSBMECDTcKNAoCBBISBsUCAM8CARomIFRlc3QgY3VzdG9tIG9wdGlvbnMgZm9yIG5lc3RlZCB0eXBlLgoKCwoDBBIBEgTFAggYCg4KBAQSAwASBsYCAskCAwoNCgUEEgMAARIExgIKFwoNCgUEEgMABxIExwIEIQoRCgkEEgMAB5yt2AMSBMcCBCEKDgoGBBIDAAIAEgTIAgQxCg8KBwQSAwACAAUSBMgCBAkKDwoHBBIDAAIAARIEyAIKFgoPCgcEEgMAAgADEgTIAhkaCg8KBwQSAwACAAgSBMgCGzAKEwoLBBIDAAIACIi82AMSBMgCHC8KDgoEBBIEABIGygICzgIDCg0KBQQSBAABEgTKAgcRCg4KBgQSBAACABIEywIEFAoPCgcEEgQAAgABEgTLAgQPCg8KBwQSBAACAAISBMsCEhMKDQoFBBIEAAMSBMwCBB4KEQoJBBIEAAPontkDEgTMAgQeCg4KBgQSBAACARIEzQIENQoPCgcEEgQAAgEBEgTNAgQVCg8KBwQSBAACAQISBM0CGBkKDwoHBBIEAAIBAxIEzQIaNAoSCgoEEgQAAgED5qBfEgTNAhszYgZwcm90bzMKig8KHHVuaXR0ZXN0X2ltcG9ydF9wdWJsaWMucHJvdG8SH3Byb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIiIwoTUHVibGljSW1wb3J0TWVzc2FnZRIMCgFlGAEgASgFUgFlQiSqAiFHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvcy5Qcm90bzJK/Q0KBhIEIAAoAQr2DAoBDBIDIAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyKCBBdXRob3I6IGxpdWppc2lAZ29vZ2xlLmNvbSAoUGhlcmwgTGl1KQoKCAoBAhIDIgAoCggKAQgSAyQAPgoJCgIIJRIDJAA+CgoKAgQAEgQmACgBCgoKAwQAARIDJggbCgsKBAQAAgASAycCFwoMCgUEAAIABBIDJwIKCgwKBQQAAgAFEgMnCxAKDAoFBAACAAESAycREgoMCgUEAAIAAxIDJxUWCt0WChV1bml0dGVzdF9pbXBvcnQucHJvdG8SH3Byb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIaHHVuaXR0ZXN0X2ltcG9ydF9wdWJsaWMucHJvdG8iHQoNSW1wb3J0TWVzc2FnZRIMCgFkGAEgASgFUgFkKjwKCkltcG9ydEVudW0SDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAkqMQoQSW1wb3J0RW51bUZvck1hcBILCgdVTktOT1dOEAASBwoDRk9PEAESBwoDQkFSEAJCKUgB+AEBqgIhR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3MuUHJvdG8ySscUCgYSBCQARAEKmA4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB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bERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJaCg1vcHRpb25hbGdyb3VwGBAgASgKMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEmwKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USYgoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhZvcHRpb25hbEZvcmVpZ25NZXNzYWdlEmYKF29wdGlvbmFsX2ltcG9ydF9tZXNzYWdlGBQgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUhVvcHRpb25hbEltcG9ydE1lc3NhZ2USYwoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEm9wdGlvbmFsTmVzdGVkRW51bRJZChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SE29wdGlvbmFsRm9yZWlnbkVudW0SXQoUb3B0aW9uYWxfaW1wb3J0X2VudW0YFyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SEm9wdGlvbmFsSW1wb3J0RW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSeQoeb3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNzYWdlGBogASgLMjQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5QdWJsaWNJbXBvcnRNZXNzYWdlUhtvcHRpb25hbFB1YmxpY0ltcG9ydE1lc3NhZ2USbAoVb3B0aW9uYWxfbGF6eV9tZXNzYWdlGBsgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVITb3B0aW9uYWxMYXp5TWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJaCg1yZXBlYXRlZGdyb3VwGC4gAygKMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5SZXBlYXRlZEdyb3VwUg1yZXBlYXRlZGdyb3VwEmwKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USYgoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEmYKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUhVyZXBlYXRlZEltcG9ydE1lc3NhZ2USYwoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJZChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SE3JlcGVhdGVkRm9yZWlnbkVudW0SXQoUcmVwZWF0ZWRfaW1wb3J0X2VudW0YNSADKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SEnJlcGVhdGVkSW1wb3J0RW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSbAoVcmVwZWF0ZWRfbGF6eV9tZXNzYWdlGDkgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVITcmVwZWF0ZWRMYXp5TWVzc2FnZRInCg1kZWZhdWx0X2ludDMyGD0gASgFOgI0MVIMZGVmYXVsdEludDMyEicKDWRlZmF1bHRfaW50NjQYPiABKAM6AjQyUgxkZWZhdWx0SW50NjQSKQoOZGVmYXVsdF91aW50MzIYPyABKA06AjQzUg1kZWZhdWx0VWludDMyEikKDmRlZmF1bHRfdWludDY0GEAgASgEOgI0NFINZGVmYXVsdFVpbnQ2NBIqCg5kZWZhdWx0X3NpbnQzMhhBIAEoEToDLTQ1Ug1kZWZhdWx0U2ludDMyEikKDmRlZmF1bHRfc2ludDY0GEIgASgSOgI0NlINZGVmYXVsdFNpbnQ2NBIrCg9kZWZhdWx0X2ZpeGVkMzIYQyABKAc6AjQ3Ug5kZWZhdWx0Rml4ZWQzMhIrCg9kZWZhdWx0X2ZpeGVkNjQYRCABKAY6AjQ4Ug5kZWZhdWx0Rml4ZWQ2NBItChBkZWZhdWx0X3NmaXhlZDMyGEUgASgPOgI0OVIPZGVmYXVsdFNmaXhlZDMyEi4KEGRlZmF1bHRfc2ZpeGVkNjQYRiABKBA6Ay01MFIPZGVmYXVsdFNmaXhlZDY0EikKDWRlZmF1bHRfZmxvYXQYRyABKAI6BDUxLjVSDGRlZmF1bHRGbG9hdBIsCg5kZWZhdWx0X2RvdWJsZRhIIAEoAToFNTIwMDBSDWRlZmF1bHREb3VibGUSJwoMZGVmYXVsdF9ib29sGEkgASgIOgR0cnVlUgtkZWZhdWx0Qm9vbBIsCg5kZWZhdWx0X3N0cmluZxhKIAEoCToFaGVsbG9SDWRlZmF1bHRTdHJpbmcSKgoNZGVmYXVsdF9ieXRlcxhLIAEoDDoFd29ybGRSDGRlZmF1bHRCeXRlcxJmChNkZWZhdWx0X25lc3RlZF9lbnVtGFEgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtOgNCQVJSEWRlZmF1bHROZXN0ZWRFbnVtEmQKFGRlZmF1bHRfZm9yZWlnbl9lbnVtGFIgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUlISZGVmYXVsdEZvcmVpZ25FbnVtEmcKE2RlZmF1bHRfaW1wb3J0X2VudW0YUyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW06CklNUE9SVF9CQVJSEWRlZmF1bHRJbXBvcnRFbnVtEjkKFGRlZmF1bHRfc3RyaW5nX3BpZWNlGFQgASgJOgNhYmNCAggCUhJkZWZhdWx0U3RyaW5nUGllY2USKgoMZGVmYXVsdF9jb3JkGFUgASgJOgMxMjNCAggBUgtkZWZhdWx0Q29yZBIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzISaAoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzGh8KDU5lc3RlZE1lc3NhZ2USDgoCYmIYASABKAVSAmJiGh0KDU9wdGlvbmFsR3JvdXASDAoBYRgRIAEoBVIBYRodCg1SZXBlYXRlZEdyb3VwEgwKAWEYLyABKAVSAWEiOQoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCLvAQoSTmVzdGVkVGVzdEFsbFR5cGVzEkIKBWNoaWxkGAEgASgLMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLk5lc3RlZFRlc3RBbGxUeXBlc1IFY2hpbGQSQAoHcGF5bG9hZBgCIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSB3BheWxvYWQSUwoOcmVwZWF0ZWRfY2hpbGQYAyADKAsyLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuTmVzdGVkVGVzdEFsbFR5cGVzUg1yZXBlYXRlZENoaWxkIpYBChRUZXN0RGVwcmVjYXRlZEZpZWxkcxItChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYAVIPZGVwcmVjYXRlZEludDMyEj8KGWRlcHJlY2F0ZWRfaW50MzJfaW5fb25lb2YYAiABKAVCAhgBSABSFmRlcHJlY2F0ZWRJbnQzMkluT25lb2ZCDgoMb25lb2ZfZmllbGRzIhsKFVRlc3REZXByZWNhdGVkTWVzc2FnZToCGAEiLAoORm9yZWlnbk1lc3NhZ2USDAoBYxgBIAEoBVIBYxIMCgFkGAIgASgFUgFkIjAKElRlc3RSZXNlcnZlZEZpZWxkc0oECAIQA0oECA8QEEoECAkQDFIDYmFyUgNiYXoiHQoRVGVzdEFsbEV4dGVuc2lvbnMqCAgBEICAgIACIicKF09wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uEgwKAWEYESABKAVSAWEiJwoXUmVwZWF0ZWRHcm91cF9leHRlbnNpb24SDAoBYRgvIAEoBVIBYSLeAQoJVGVzdEdyb3VwElcKDW9wdGlvbmFsZ3JvdXAYECABKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEdyb3VwLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXASWQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtGh0KDU9wdGlvbmFsR3JvdXASDAoBYRgRIAEoBVIBYSIeChJUZXN0R3JvdXBFeHRlbnNpb24qCAgBEICAgIACIrgEChNUZXN0TmVzdGVkRXh0ZW5zaW9uGicKF09wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uEgwKAWEYESABKAVSAWEyRgoEdGVzdBIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxjqByABKAk6BHRlc3RSBHRlc3QyZAoXbmVzdGVkX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6wcgASgJUhVuZXN0ZWRTdHJpbmdFeHRlbnNpb24yrAEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RHcm91cEV4dGVuc2lvbhgQIAEoCjJFLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TmVzdGVkRXh0ZW5zaW9uLk9wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uUhZvcHRpb25hbGdyb3VwRXh0ZW5zaW9uMpoBCh9vcHRpb25hbF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RHcm91cEV4dGVuc2lvbhgWIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIcb3B0aW9uYWxGb3JlaWduRW51bUV4dGVuc2lvbiKQCAoMVGVzdFJlcXVpcmVkEgwKAWEYASACKAVSAWESFgoGZHVtbXkyGAIgASgFUgZkdW1teTISDAoBYhgDIAIoBVIBYhIWCgZkdW1teTQYBCABKAVSBmR1bW15NBIWCgZkdW1teTUYBSABKAVSBmR1bW15NRIWCgZkdW1teTYYBiABKAVSBmR1bW15NhIWCgZkdW1teTcYByABKAVSBmR1bW15NxIWCgZkdW1teTgYCCABKAVSBmR1bW15OBIWCgZkdW1teTkYCSABKAVSBmR1bW15ORIYCgdkdW1teTEwGAogASgFUgdkdW1teTEwEhgKB2R1bW15MTEYCyABKAVSB2R1bW15MTESGAoHZHVtbXkxMhgMIAEoBVIHZHVtbXkxMhIYCgdkdW1teTEzGA0gASgFUgdkdW1teTEzEhgKB2R1bW15MTQYDiABKAVSB2R1bW15MTQSGAoHZHVtbXkxNRgPIAEoBVIHZHVtbXkxNRIYCgdkdW1teTE2GBAgASgFUgdkdW1teTE2EhgKB2R1bW15MTcYESABKAVSB2R1bW15MTcSGAoHZHVtbXkxOBgSIAEoBVIHZHVtbXkxOBIYCgdkdW1teTE5GBMgASgFUgdkdW1teTE5EhgKB2R1bW15MjAYFCABKAVSB2R1bW15MjASGAoHZHVtbXkyMRgVIAEoBVIHZHVtbXkyMRIYCgdkdW1teTIyGBYgASgFUgdkdW1teTIyEhgKB2R1bW15MjMYFyABKAVSB2R1bW15MjMSGAoHZHVtbXkyNBgYIAEoBVIHZHVtbXkyNBIYCgdkdW1teTI1GBkgASgFUgdkdW1teTI1EhgKB2R1bW15MjYYGiABKAVSB2R1bW15MjYSGAoHZHVtbXkyNxgbIAEoBVIHZHVtbXkyNxIYCgdkdW1teTI4GBwgASgFUgdkdW1teTI4EhgKB2R1bW15MjkYHSABKAVSB2R1bW15MjkSGAoHZHVtbXkzMBgeIAEoBVIHZHVtbXkzMBIYCgdkdW1teTMxGB8gASgFUgdkdW1teTMxEhgKB2R1bW15MzIYICABKAVSB2R1bW15MzISDAoBYxghIAIoBVIBYzJsCgZzaW5nbGUSKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6AcgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIGc2luZ2xlMmoKBW11bHRpEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOkHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSBW11bHRpItEBChNUZXN0UmVxdWlyZWRGb3JlaWduElEKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9vcHRpb25hbE1lc3NhZ2USUQoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD3JlcGVhdGVkTWVzc2FnZRIUCgVkdW1teRgDIAEoBVIFZHVtbXkijgIKE1Rlc3RSZXF1aXJlZE1lc3NhZ2USUQoQb3B0aW9uYWxfbWVzc2FnZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD29wdGlvbmFsTWVzc2FnZRJRChByZXBlYXRlZF9tZXNzYWdlGAIgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPcmVwZWF0ZWRNZXNzYWdlElEKEHJlcXVpcmVkX21lc3NhZ2UYAyACKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9yZXF1aXJlZE1lc3NhZ2UicAoRVGVzdEZvcmVpZ25OZXN0ZWQSWwoOZm9yZWlnbl9uZXN0ZWQYASABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSDWZvcmVpZ25OZXN0ZWQiEgoQVGVzdEVtcHR5TWVzc2FnZSIqCh5UZXN0RW1wdHlNZXNzYWdlV2l0aEV4dGVuc2lvbnMqCAgBEICAgIACIjcKG1Rlc3RNdWx0aXBsZUV4dGVuc2lvblJhbmdlcyoECCoQKyoGCK8gEJQhKgoIgIAEEICAgIACIjsKGFRlc3RSZWFsbHlMYXJnZVRhZ051bWJlchIMCgFhGAEgASgFUgFhEhEKAmJiGP///38gASgFUgJiYiJiChRUZXN0UmVjdXJzaXZlTWVzc2FnZRI8CgFhGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZWN1cnNpdmVNZXNzYWdlUgFhEgwKAWkYAiABKAVSAWkirwMKFFRlc3RNdXR1YWxSZWN1cnNpb25BEj4KAmJiGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25CUgJiYhJTCghzdWJncm91cBgCIAEoCjI3LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQS5TdWJHcm91cFIIc3ViZ3JvdXAaSgoKU3ViTWVzc2FnZRI8CgFiGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25CUgFiGrUBCghTdWJHcm91cBJaCgtzdWJfbWVzc2FnZRgDIAEoCzI5LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQS5TdWJNZXNzYWdlUgpzdWJNZXNzYWdlEk0KD25vdF9pbl90aGlzX3NjYxgEIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSDG5vdEluVGhpc1NjYyJ7ChRUZXN0TXV0dWFsUmVjdXJzaW9uQhI8CgFhGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25BUgFhEiUKDm9wdGlvbmFsX2ludDMyGAIgASgFUg1vcHRpb25hbEludDMyIvIBChFUZXN0SXNJbml0aWFsaXplZBJXCgtzdWJfbWVzc2FnZRgBIAEoCzI2LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SXNJbml0aWFsaXplZC5TdWJNZXNzYWdlUgpzdWJNZXNzYWdlGoMBCgpTdWJNZXNzYWdlElsKCHN1Ymdyb3VwGAEgASgKMj8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RJc0luaXRpYWxpemVkLlN1Yk1lc3NhZ2UuU3ViR3JvdXBSCHN1Ymdyb3VwGhgKCFN1Ykdyb3VwEgwKAWkYAiACKAVSAWki1AEKElRlc3REdXBGaWVsZE51bWJlchIMCgFhGAEgASgFUgFhEkIKA2ZvbxgCIAEoCjIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHVwRmllbGROdW1iZXIuRm9vUgNmb28SQgoDYmFyGAMgASgKMjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REdXBGaWVsZE51bWJlci5CYXJSA2JhchoTCgNGb28SDAoBYRgBIAEoBVIBYRoTCgNCYXISDAoBYRgBIAEoBVIBYSJfChBUZXN0RWFnZXJNZXNzYWdlEksKC3N1Yl9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0ICKABSCnN1Yk1lc3NhZ2UiXgoPVGVzdExhenlNZXNzYWdlEksKC3N1Yl9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0ICKAFSCnN1Yk1lc3NhZ2Ui5gIKGFRlc3ROZXN0ZWRNZXNzYWdlSGFzQml0cxJ4ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgBIAEoCzJALnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TmVzdGVkTWVzc2FnZUhhc0JpdHMuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlGs8BCg1OZXN0ZWRNZXNzYWdlEkAKHG5lc3RlZG1lc3NhZ2VfcmVwZWF0ZWRfaW50MzIYASADKAVSGm5lc3RlZG1lc3NhZ2VSZXBlYXRlZEludDMyEnwKJW5lc3RlZG1lc3NhZ2VfcmVwZWF0ZWRfZm9yZWlnbm1lc3NhZ2UYAiADKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSI25lc3RlZG1lc3NhZ2VSZXBlYXRlZEZvcmVpZ25tZXNzYWdlItcFChdUZXN0Q2FtZWxDYXNlRmllbGROYW1lcxImCg5QcmltaXRpdmVGaWVsZBgBIAEoBVIOUHJpbWl0aXZlRmllbGQSIAoLU3RyaW5nRmllbGQYAiABKAlSC1N0cmluZ0ZpZWxkEkMKCUVudW1GaWVsZBgDIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIJRW51bUZpZWxkEkwKDE1lc3NhZ2VGaWVsZBgEIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIMTWVzc2FnZUZpZWxkEi4KEFN0cmluZ1BpZWNlRmllbGQYBSABKAlCAggCUhBTdHJpbmdQaWVjZUZpZWxkEiAKCUNvcmRGaWVsZBgGIAEoCUICCAFSCUNvcmRGaWVsZBI2ChZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkGAcgAygFUhZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkEjAKE1JlcGVhdGVkU3RyaW5nRmllbGQYCCADKAlSE1JlcGVhdGVkU3RyaW5nRmllbGQSUwoRUmVwZWF0ZWRFbnVtRmllbGQYCSADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SEVJlcGVhdGVkRW51bUZpZWxkElwKFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAogAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhRSZXBlYXRlZE1lc3NhZ2VGaWVsZBI+ChhSZXBlYXRlZFN0cmluZ1BpZWNlRmllbGQYCyADKAlCAggCUhhSZXBlYXRlZFN0cmluZ1BpZWNlRmllbGQSMAoRUmVwZWF0ZWRDb3JkRmllbGQYDCADKAlCAggBUhFSZXBlYXRlZENvcmRGaWVsZCKVAgoSVGVzdEZpZWxkT3JkZXJpbmdzEhsKCW15X3N0cmluZxgLIAEoCVIIbXlTdHJpbmcSFQoGbXlfaW50GAEgASgDUgVteUludBIZCghteV9mbG9hdBhlIAEoAlIHbXlGbG9hdBJzChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRjIASABKAsyOi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRovCg1OZXN0ZWRNZXNzYWdlEg4KAm9vGAIgASgDUgJvbxIOCgJiYhgBIAEoBVICYmIqBAgCEAsqBAgMEGUiyAEKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MxEhsKCW15X3N0cmluZxgBIAEoCVIIbXlTdHJpbmcyjwEKE3Rlc3RfZXh0X29yZGVyaW5nczESLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGA0gASgLMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MxUhF0ZXN0RXh0T3JkZXJpbmdzMSKrAwoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczISGwoJbXlfc3RyaW5nGAEgASgJUghteVN0cmluZxrgAQoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczMSGwoJbXlfc3RyaW5nGAEgASgJUghteVN0cmluZzKnAQoTdGVzdF9leHRfb3JkZXJpbmdzMxIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYDiABKAsySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczNSEXRlc3RFeHRPcmRlcmluZ3MzMo8BChN0ZXN0X2V4dF9vcmRlcmluZ3MyEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgMIAEoCzIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMlIRdGVzdEV4dE9yZGVyaW5nczIirwoKGFRlc3RFeHRyZW1lRGVmYXVsdFZhbHVlcxJNCg1lc2NhcGVkX2J5dGVzGAEgASgMOihcMDAwXDAwMVwwMDdcMDEwXDAxNFxuXHJcdFwwMTNcXFwnXCJcMzc2Ugxlc2NhcGVkQnl0ZXMSLQoMbGFyZ2VfdWludDMyGAIgASgNOgo0Mjk0OTY3Mjk1UgtsYXJnZVVpbnQzMhI3CgxsYXJnZV91aW50NjQYAyABKAQ6FDE4NDQ2NzQ0MDczNzA5NTUxNjE1UgtsYXJnZVVpbnQ2NBIsCgtzbWFsbF9pbnQzMhgEIAEoBToLLTIxNDc0ODM2NDdSCnNtYWxsSW50MzISNQoLc21hbGxfaW50NjQYBSABKAM6FC05MjIzMzcyMDM2ODU0Nzc1ODA3UgpzbWFsbEludDY0EjkKEnJlYWxseV9zbWFsbF9pbnQzMhgVIAEoBToLLTIxNDc0ODM2NDhSEHJlYWxseVNtYWxsSW50MzISQgoScmVhbGx5X3NtYWxsX2ludDY0GBYgASgDOhQtOTIyMzM3MjAzNjg1NDc3NTgwOFIQcmVhbGx5U21hbGxJbnQ2NBIkCgt1dGY4X3N0cmluZxgGIAEoCToD4Yi0Ugp1dGY4U3RyaW5nEiAKCnplcm9fZmxvYXQYByABKAI6ATBSCXplcm9GbG9hdBIeCglvbmVfZmxvYXQYCCABKAI6ATFSCG9uZUZsb2F0EiQKC3NtYWxsX2Zsb2F0GAkgASgCOgMxLjVSCnNtYWxsRmxvYXQSMAoSbmVnYXRpdmVfb25lX2Zsb2F0GAogASgCOgItMVIQbmVnYXRpdmVPbmVGbG9hdBIrCg5uZWdhdGl2ZV9mbG9hdBgLIAEoAjoELTEuNVINbmVnYXRpdmVGbG9hdBImCgtsYXJnZV9mbG9hdBgMIAEoAjoFMmUrMDhSCmxhcmdlRmxvYXQSOAoUc21hbGxfbmVnYXRpdmVfZmxvYXQYDSABKAI6Bi04ZS0yOFISc21hbGxOZWdhdGl2ZUZsb2F0EiIKCmluZl9kb3VibGUYDiABKAE6A2luZlIJaW5mRG91YmxlEioKDm5lZ19pbmZfZG91YmxlGA8gASgBOgQtaW5mUgxuZWdJbmZEb3VibGUSIgoKbmFuX2RvdWJsZRgQIAEoAToDbmFuUgluYW5Eb3VibGUSIAoJaW5mX2Zsb2F0GBEgASgCOgNpbmZSCGluZkZsb2F0EigKDW5lZ19pbmZfZmxvYXQYEiABKAI6BC1pbmZSC25lZ0luZkZsb2F0EiAKCW5hbl9mbG9hdBgTIAEoAjoDbmFuUghuYW5GbG9hdBI4CgxjcHBfdHJpZ3JhcGgYFCABKAk6FT8gPyA/PyA/PyA/Pz8gPz8vID8/LVILY3BwVHJpZ3JhcGgSMAoQc3RyaW5nX3dpdGhfemVybxgXIAEoCToGaGVsAGxvUg5zdHJpbmdXaXRoWmVybxIxCg9ieXRlc193aXRoX3plcm8YGCABKAw6CXdvclwwMDBsZFINYnl0ZXNXaXRoWmVybxI9ChZzdHJpbmdfcGllY2Vfd2l0aF96ZXJvGBkgASgJOgRhYgBjQgIIAlITc3RyaW5nUGllY2VXaXRoWmVybxIuCg5jb3JkX3dpdGhfemVybxgaIAEoCToEMTIAM0ICCAFSDGNvcmRXaXRoWmVybxI5ChJyZXBsYWNlbWVudF9zdHJpbmcYGyABKAk6CiR7dW5rbm93bn1SEXJlcGxhY2VtZW50U3RyaW5nIl4KEVNwYXJzZUVudW1NZXNzYWdlEkkKC3NwYXJzZV9lbnVtGAEgASgOMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RTcGFyc2VFbnVtUgpzcGFyc2VFbnVtIh8KCU9uZVN0cmluZxISCgRkYXRhGAEgASgJUgRkYXRhIiAKCk1vcmVTdHJpbmcSEgoEZGF0YRgBIAMoCVIEZGF0YSIeCghPbmVCeXRlcxISCgRkYXRhGAEgASgMUgRkYXRhIh8KCU1vcmVCeXRlcxISCgRkYXRhGAEgAygMUgRkYXRhIiIKDEludDMyTWVzc2FnZRISCgRkYXRhGAEgASgFUgRkYXRhIiMKDVVpbnQzMk1lc3NhZ2USEgoEZGF0YRgBIAEoDVIEZGF0YSIiCgxJbnQ2NE1lc3NhZ2USEgoEZGF0YRgBIAEoA1IEZGF0YSIjCg1VaW50NjRNZXNzYWdlEhIKBGRhdGEYASABKARSBGRhdGEiIQoLQm9vbE1lc3NhZ2USEgoEZGF0YRgBIAEoCFIEZGF0YSKNAgoJVGVzdE9uZW9mEhkKB2Zvb19pbnQYASABKAVIAFIGZm9vSW50Eh8KCmZvb19zdHJpbmcYAiABKAlIAFIJZm9vU3RyaW5nEkkKC2Zvb19tZXNzYWdlGAMgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0gAUgpmb29NZXNzYWdlEkoKCGZvb2dyb3VwGAQgASgKMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZi5Gb29Hcm91cEgAUghmb29ncm91cBomCghGb29Hcm91cBIMCgFhGAUgASgFUgFhEgwKAWIYBiABKAlSAWJCBQoDZm9vIqQCChxUZXN0T25lb2ZCYWNrd2FyZHNDb21wYXRpYmxlEhcKB2Zvb19pbnQYASABKAVSBmZvb0ludBIdCgpmb29fc3RyaW5nGAIgASgJUglmb29TdHJpbmcSRwoLZm9vX21lc3NhZ2UYAyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgpmb29NZXNzYWdlElsKCGZvb2dyb3VwGAQgASgKMj8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZkJhY2t3YXJkc0NvbXBhdGlibGUuRm9vR3JvdXBSCGZvb2dyb3VwGiYKCEZvb0dyb3VwEgwKAWEYBSABKAVSAWESDAoBYhgGIAEoCVIBYiKQCAoKVGVzdE9uZW9mMhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxIfCghmb29fY29yZBgDIAEoCUICCAFIAFIHZm9vQ29yZBIuChBmb29fc3RyaW5nX3BpZWNlGAQgASgJQgIIAkgAUg5mb29TdHJpbmdQaWVjZRIdCglmb29fYnl0ZXMYBSABKAxIAFIIZm9vQnl0ZXMSTAoIZm9vX2VudW0YBiABKA4yLy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtSABSB2Zvb0VudW0SVQoLZm9vX21lc3NhZ2UYByABKAsyMi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRNZXNzYWdlSABSCmZvb01lc3NhZ2USSwoIZm9vZ3JvdXAYCCABKAoyLS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5Gb29Hcm91cEgAUghmb29ncm91cBJiChBmb29fbGF6eV9tZXNzYWdlGAsgASgLMjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkTWVzc2FnZUICKAFIAFIOZm9vTGF6eU1lc3NhZ2USHAoHYmFyX2ludBgMIAEoBToBNUgBUgZiYXJJbnQSJwoKYmFyX3N0cmluZxgNIAEoCToGU1RSSU5HSAFSCWJhclN0cmluZxIlCghiYXJfY29yZBgOIAEoCToEQ09SREICCAFIAVIHYmFyQ29yZBI2ChBiYXJfc3RyaW5nX3BpZWNlGA8gASgJOgZTUElFQ0VCAggCSAFSDmJhclN0cmluZ1BpZWNlEiQKCWJhcl9ieXRlcxgQIAEoDDoFQllURVNIAVIIYmFyQnl0ZXMSUQoIYmFyX2VudW0YESABKA4yLy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtOgNCQVJIAVIHYmFyRW51bRIXCgdiYXpfaW50GBIgASgFUgZiYXpJbnQSIgoKYmF6X3N0cmluZxgTIAEoCToDQkFaUgliYXpTdHJpbmcaJgoIRm9vR3JvdXASDAoBYRgJIAEoBVIBYRIMCgFiGAogASgJUgFiGkUKDU5lc3RlZE1lc3NhZ2USFwoHcXV4X2ludBgBIAEoA1IGcXV4SW50EhsKCWNvcmdlX2ludBgCIAMoBVIIY29yZ2VJbnQiJwoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQA0IFCgNmb29CBQoDYmFyIu4BChFUZXN0UmVxdWlyZWRPbmVvZhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxJcCgtmb29fbWVzc2FnZRgDIAEoCzI5LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRPbmVvZi5OZXN0ZWRNZXNzYWdlSABSCmZvb01lc3NhZ2UaOAoNTmVzdGVkTWVzc2FnZRInCg9yZXF1aXJlZF9kb3VibGUYASACKAFSDnJlcXVpcmVkRG91YmxlQgUKA2ZvbyKAAgoPVGVzdFJlcXVpcmVkTWFwEkQKA2ZvbxgBIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRNYXAuRm9vRW50cnlSA2ZvbxpvCghGb29FbnRyeRIQCgNrZXkYASABKAVSA2tleRJNCgV2YWx1ZRgCIAEoCzI3LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRNYXAuTmVzdGVkTWVzc2FnZVIFdmFsdWU6AjgBGjYKDU5lc3RlZE1lc3NhZ2USJQoOcmVxdWlyZWRfaW50MzIYASACKAVSDXJlcXVpcmVkSW50MzIi9AQKD1Rlc3RQYWNrZWRUeXBlcxIlCgxwYWNrZWRfaW50MzIYWiADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYWyADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGFwgAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYXSADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhheIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGGIgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GGQgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhlIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhmIAMoCEICEAFSCnBhY2tlZEJvb2wSSgoLcGFja2VkX2VudW0YZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhABUgpwYWNrZWRFbnVtIq4FChFUZXN0VW5wYWNrZWRUeXBlcxIpCg51bnBhY2tlZF9pbnQzMhhaIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWyADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhcIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhdIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhheIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBhfIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYYCADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGQgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZSADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGYgAygIQgIQAFIMdW5wYWNrZWRCb29sEk4KDXVucGFja2VkX2VudW0YZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhAAUgx1bnBhY2tlZEVudW0iIAoUVGVzdFBhY2tlZEV4dGVuc2lvbnMqCAgBEICAgIACIiIKFlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMqCAgBEICAgIACIsgFChVUZXN0RHluYW1pY0V4dGVuc2lvbnMSKgoQc2NhbGFyX2V4dGVuc2lvbhjQDyABKAdSD3NjYWxhckV4dGVuc2lvbhJNCg5lbnVtX2V4dGVuc2lvbhjRDyABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SDWVudW1FeHRlbnNpb24SdgoWZHluYW1pY19lbnVtX2V4dGVuc2lvbhjSDyABKA4yPy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdER5bmFtaWNFeHRlbnNpb25zLkR5bmFtaWNFbnVtVHlwZVIUZHluYW1pY0VudW1FeHRlbnNpb24SVgoRbWVzc2FnZV9leHRlbnNpb24Y0w8gASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhBtZXNzYWdlRXh0ZW5zaW9uEn8KGWR5bmFtaWNfbWVzc2FnZV9leHRlbnNpb24Y1A8gASgLMkIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljTWVzc2FnZVR5cGVSF2R5bmFtaWNNZXNzYWdlRXh0ZW5zaW9uEi4KEnJlcGVhdGVkX2V4dGVuc2lvbhjVDyADKAlSEXJlcGVhdGVkRXh0ZW5zaW9uEi4KEHBhY2tlZF9leHRlbnNpb24Y1g8gAygRQgIQAVIPcGFja2VkRXh0ZW5zaW9uGjoKEkR5bmFtaWNNZXNzYWdlVHlwZRIkCg1keW5hbWljX2ZpZWxkGLQQIAEoBVIMZHluYW1pY0ZpZWxkIkcKD0R5bmFtaWNFbnVtVHlwZRIQCgtEWU5BTUlDX0ZPTxCYERIQCgtEWU5BTUlDX0JBUhCZERIQCgtEWU5BTUlDX0JBWhCaESKfAgojVGVzdFJlcGVhdGVkU2NhbGFyRGlmZmVyZW50VGFnU2l6ZXMSKQoQcmVwZWF0ZWRfZml4ZWQzMhgMIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEiUKDnJlcGVhdGVkX2ludDMyGA0gAygFUg1yZXBlYXRlZEludDMyEioKEHJlcGVhdGVkX2ZpeGVkNjQY/g8gAygGUg9yZXBlYXRlZEZpeGVkNjQSJgoOcmVwZWF0ZWRfaW50NjQY/w8gAygDUg1yZXBlYXRlZEludDY0EicKDnJlcGVhdGVkX2Zsb2F0GP7/DyADKAJSDXJlcGVhdGVkRmxvYXQSKQoPcmVwZWF0ZWRfdWludDY0GP//DyADKARSDnJlcGVhdGVkVWludDY0IuMMChBUZXN0UGFyc2luZ01lcmdlElQKEnJlcXVpcmVkX2FsbF90eXBlcxgBIAIoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSEHJlcXVpcmVkQWxsVHlwZXMSVAoSb3B0aW9uYWxfYWxsX3R5cGVzGAIgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IQb3B0aW9uYWxBbGxUeXBlcxJUChJyZXBlYXRlZF9hbGxfdHlwZXMYAyADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhByZXBlYXRlZEFsbFR5cGVzEl4KDW9wdGlvbmFsZ3JvdXAYCiABKAoyOC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEl4KDXJlcGVhdGVkZ3JvdXAYFCADKAoyOC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEdyb3VwUg1yZXBlYXRlZGdyb3VwGq0FChdSZXBlYXRlZEZpZWxkc0dlbmVyYXRvchI+CgZmaWVsZDEYASADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDESPgoGZmllbGQyGAIgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQyEj4KBmZpZWxkMxgDIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMxJhCgZncm91cDEYCiADKAoySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEZpZWxkc0dlbmVyYXRvci5Hcm91cDFSBmdyb3VwMRJhCgZncm91cDIYFCADKAoySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEZpZWxkc0dlbmVyYXRvci5Hcm91cDJSBmdyb3VwMhI7CgRleHQxGOgHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBGV4dDESOwoEZXh0MhjpByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgRleHQyGkgKBkdyb3VwMRI+CgZmaWVsZDEYCyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDEaSAoGR3JvdXAyEj4KBmZpZWxkMRgVIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMRpwCg1PcHRpb25hbEdyb3VwEl8KGG9wdGlvbmFsX2dyb3VwX2FsbF90eXBlcxgLIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSFW9wdGlvbmFsR3JvdXBBbGxUeXBlcxpwCg1SZXBlYXRlZEdyb3VwEl8KGHJlcGVhdGVkX2dyb3VwX2FsbF90eXBlcxgVIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSFXJlcGVhdGVkR3JvdXBBbGxUeXBlcyoJCOgHEICAgIACMnYKDG9wdGlvbmFsX2V4dBIqLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlGOgHIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSC29wdGlvbmFsRXh0MnYKDHJlcGVhdGVkX2V4dBIqLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlGOkHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSC3JlcGVhdGVkRXh0IkcKG1Rlc3RDb21tZW50SW5qZWN0aW9uTWVzc2FnZRIoCgFhGAEgASgJOhoqLyA8LSBOZWl0aGVyIHNob3VsZCB0aGlzLlIBYSIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIhIKEEZvb0NsaWVudE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpCYXJSZXF1ZXN0Ig0KC0JhclJlc3BvbnNlIs4BCgxUZXN0SnNvbk5hbWUSHwoLZmllbGRfbmFtZTEYASABKAVSCmZpZWxkTmFtZTESHgoKZmllbGROYW1lMhgCIAEoBVIKZmllbGROYW1lMhIeCgpGaWVsZE5hbWUzGAMgASgFUgpGaWVsZE5hbWUzEiAKDF9maWVsZF9uYW1lNBgEIAEoBVIKRmllbGROYW1lNBIfCgtGSUVMRF9OQU1FNRgFIAEoBVIKRklFTEROQU1FNRIaCgtmaWVsZF9uYW1lNhgGIAEoBVIFQHR5cGUi/wcKFFRlc3RIdWdlRmllbGROdW1iZXJzEikKDm9wdGlvbmFsX2ludDMyGPD4//8BIAEoBVINb3B0aW9uYWxJbnQzMhIdCghmaXhlZF8zMhjx+P//ASABKAVSB2ZpeGVkMzISLQoOcmVwZWF0ZWRfaW50MzIY8vj//wEgAygFQgIQAFINcmVwZWF0ZWRJbnQzMhIpCgxwYWNrZWRfaW50MzIY8/j//wEgAygFQgIQAVILcGFja2VkSW50MzISTgoNb3B0aW9uYWxfZW51bRj0+P//ASABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SDG9wdGlvbmFsRW51bRIrCg9vcHRpb25hbF9zdHJpbmcY9fj//wEgASgJUg5vcHRpb25hbFN0cmluZxIpCg5vcHRpb25hbF9ieXRlcxj2+P//ASABKAxSDW9wdGlvbmFsQnl0ZXMSVwoQb3B0aW9uYWxfbWVzc2FnZRj3+P//ASABKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSD29wdGlvbmFsTWVzc2FnZRJmCg1vcHRpb25hbGdyb3VwGPj4//8BIAEoCjI8LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SHVnZUZpZWxkTnVtYmVycy5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEnMKEXN0cmluZ19zdHJpbmdfbWFwGPr4//8BIAMoCzJDLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SHVnZUZpZWxkTnVtYmVycy5TdHJpbmdTdHJpbmdNYXBFbnRyeVIPc3RyaW5nU3RyaW5nTWFwEicKDG9uZW9mX3VpbnQzMhj7+P//ASABKA1IAFILb25lb2ZVaW50MzISXQoUb25lb2ZfdGVzdF9hbGxfdHlwZXMY/Pj//wEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0gAUhFvbmVvZlRlc3RBbGxUeXBlcxInCgxvbmVvZl9zdHJpbmcY/fj//wEgASgJSABSC29uZW9mU3RyaW5nEiUKC29uZW9mX2J5dGVzGP74//8BIAEoDEgAUgpvbmVvZkJ5dGVzGiwKDU9wdGlvbmFsR3JvdXASGwoHZ3JvdXBfYRj5+P//ASABKAVSBmdyb3VwQRpCChRTdHJpbmdTdHJpbmdNYXBFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBKgwI4Kr//wEQ8Pj//wFCDQoLb25lb2ZfZmllbGQi+gEKGFRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZRIWCgZmaWVsZDEYASABKAVSBmZpZWxkMRIWCgZmaWVsZDIYAiABKAVSBmZpZWxkMhIWCgZmaWVsZDMYAyABKAVSBmZpZWxkMxIWCgZmaWVsZDQYBCABKAVSBmZpZWxkNBIWCgZmaWVsZDYYBiABKAVSBmZpZWxkNhIWCgZmaWVsZDcYByABKAVSBmZpZWxkNxIWCgZmaWVsZDgYCCABKAVSBmZpZWxkOBIWCgZmaWVsZDkYCSABKAVSBmZpZWxkORIYCgdmaWVsZDEwGAogASgFUgdmaWVsZDEwKgQIBRAGKkAKC0ZvcmVpZ25FbnVtEg8KC0ZPUkVJR05fRk9PEAQSDwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JFSUdOX0JBWhAGKksKFFRlc3RFbnVtV2l0aER1cFZhbHVlEggKBEZPTzEQARIICgRCQVIxEAISBwoDQkFaEAMSCAoERk9PMhABEggKBEJBUjIQAhoCEAEqiQEKDlRlc3RTcGFyc2VFbnVtEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9GEAASDAoIU1BBUlNFX0cQAiqLDwoNVmVyeUxhcmdlRW51bRIWChJFTlVNX0xBQkVMX0RFRkFVTFQQABIQCgxFTlVNX0xBQkVMXzEQARIQCgxFTlVNX0xBQkVMXzIQAhIQCgxFTlVNX0xBQkVMXzMQAxIQCgxFTlVNX0xBQkVMXzQQBBIQCgxFTlVNX0xBQkVMXzUQBRIQCgxFTlVNX0xBQkVMXzYQBhIQCgxFTlVNX0xBQkVMXzcQBxIQCgxFTlVNX0xBQkVMXzgQCBIQCgxFTlVNX0xBQkVMXzkQCRIRCg1FTlVNX0xBQkVMXzEwEAoSEQoNRU5VTV9MQUJFTF8xMRALEhEKDUVOVU1fTEFCRUxfMTIQDBIRCg1FTlVNX0xBQkVMXzEzEA0SEQoNRU5VTV9MQUJFTF8xNBAOEhEKDUVOVU1fTEFCRUxfMTUQDxIRCg1FTlVNX0xBQkVMXzE2EBASEQoNRU5VTV9MQUJFTF8xNxAREhEKDUVOVU1fTEFCRUxfMTgQEhIRCg1FTlVNX0xBQkVMXzE5EBMSEQoNRU5VTV9MQUJFTF8yMBAUEhEKDUVOVU1fTEFCRUxfMjEQFRIRCg1FTlVNX0xBQkVMXzIyEBYSEQoNRU5VTV9MQUJFTF8yMxAXEhEKDUVOVU1fTEFCRUxfMjQQGBIRCg1FTlVNX0xBQkVMXzI1EBkSEQoNRU5VTV9MQUJFTF8yNhAaEhEKDUVOVU1fTEFCRUxfMjcQGxIRCg1FTlVNX0xBQkVMXzI4EBwSEQoNRU5VTV9MQUJFTF8yORAdEhEKDUVOVU1fTEFCRUxfMzAQHhIRCg1FTlVNX0xBQkVMXzMxEB8SEQoNRU5VTV9MQUJFTF8zMhAgEhEKDUVOVU1fTEFCRUxfMzMQIRIRCg1FTlVNX0xBQkVMXzM0ECISEQoNRU5VTV9MQUJFTF8zNRAjEhEKDUVOVU1fTEFCRUxfMzYQJBIRCg1FTlVNX0xBQkVMXzM3ECUSEQoNRU5VTV9MQUJFTF8zOBAmEhEKDUVOVU1fTEFCRUxfMzkQJxIRCg1FTlVNX0xBQkVMXzQwECgSEQoNRU5VTV9MQUJFTF80MRApEhEKDUVOVU1fTEFCRUxfNDIQKhIRCg1FTlVNX0xBQkVMXzQzECsSEQoNRU5VTV9MQUJFTF80NBAsEhEKDUVOVU1fTEFCRUxfNDUQLRIRCg1FTlVNX0xBQkVMXzQ2EC4SEQoNRU5VTV9MQUJFTF80NxAvEhEKDUVOVU1fTEFCRUxfNDgQMBIRCg1FTlVNX0xBQkVMXzQ5EDESEQoNRU5VTV9MQUJFTF81MBAyEhEKDUVOVU1fTEFCRUxfNTEQMxIRCg1FTlVNX0xBQkVMXzUyEDQSEQoNRU5VTV9MQUJFTF81MxA1EhEKDUVOVU1fTEFCRUxfNTQQNhIRCg1FTlVNX0xBQkVMXzU1EDcSEQoNRU5VTV9MQUJFTF81NhA4EhEKDUVOVU1fTEFCRUxfNTcQORIRCg1FTlVNX0xBQkVMXzU4EDoSEQoNRU5VTV9MQUJFTF81ORA7EhEKDUVOVU1fTEFCRUxfNjAQPBIRCg1FTlVNX0xBQkVMXzYxED0SEQoNRU5VTV9MQUJFTF82MhA+EhEKDUVOVU1fTEFCRUxfNjMQPxIRCg1FTlVNX0xBQkVMXzY0EEASEQoNRU5VTV9MQUJFTF82NRBBEhEKDUVOVU1fTEFCRUxfNjYQQhIRCg1FTlVNX0xBQkVMXzY3EEMSEQoNRU5VTV9MQUJFTF82OBBEEhEKDUVOVU1fTEFCRUxfNjkQRRIRCg1FTlVNX0xBQkVMXzcwEEYSEQoNRU5VTV9MQUJFTF83MRBHEhEKDUVOVU1fTEFCRUxfNzIQSBIRCg1FTlVNX0xBQkVMXzczEEkSEQoNRU5VTV9MQUJFTF83NBBKEhEKDUVOVU1fTEFCRUxfNzUQSxIRCg1FTlVNX0xBQkVMXzc2EEwSEQoNRU5VTV9MQUJFTF83NxBNEhEKDUVOVU1fTEFCRUxfNzgQThIRCg1FTlVNX0xBQkVMXzc5EE8SEQoNRU5VTV9MQUJFTF84MBBQEhEKDUVOVU1fTEFCRUxfODEQURIRCg1FTlVNX0xBQkVMXzgyEFISEQoNRU5VTV9MQUJFTF84MxBTEhEKDUVOVU1fTEFCRUxfODQQVBIRCg1FTlVNX0xBQkVMXzg1EFUSEQoNRU5VTV9MQUJFTF84NhBWEhEKDUVOVU1fTEFCRUxfODcQVxIRCg1FTlVNX0xBQkVMXzg4EFgSEQoNRU5VTV9MQUJFTF84ORBZEhEKDUVOVU1fTEFCRUxfOTAQWhIRCg1FTlVNX0xBQkVMXzkxEFsSEQoNRU5VTV9MQUJFTF85MhBcEhEKDUVOVU1fTEFCRUxfOTMQXRIRCg1FTlVNX0xBQkVMXzk0EF4SEQoNRU5VTV9MQUJFTF85NRBfEhEKDUVOVU1fTEFCRUxfOTYQYBIRCg1FTlVNX0xBQkVMXzk3EGESEQoNRU5VTV9MQUJFTF85OBBiEhEKDUVOVU1fTEFCRUxfOTkQYxISCg5FTlVNX0xBQkVMXzEwMBBkMrUBCgtUZXN0U2VydmljZRJSCgNGb28SJC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9vUmVxdWVzdBolLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb29SZXNwb25zZRJSCgNCYXISJC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuQmFyUmVxdWVzdBolLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5CYXJSZXNwb25zZTplChhvcHRpb25hbF9pbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYASABKAVSFm9wdGlvbmFsSW50MzJFeHRlbnNpb246ZQoYb3B0aW9uYWxfaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAIgASgDUhZvcHRpb25hbEludDY0RXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYAyABKA1SF29wdGlvbmFsVWludDMyRXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3VpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYBCABKARSF29wdGlvbmFsVWludDY0RXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3NpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYBSABKBFSF29wdGlvbmFsU2ludDMyRXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3NpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYBiABKBJSF29wdGlvbmFsU2ludDY0RXh0ZW5zaW9uOmkKGm9wdGlvbmFsX2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAcgASgHUhhvcHRpb25hbEZpeGVkMzJFeHRlbnNpb246aQoab3B0aW9uYWxfZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCCABKAZSGG9wdGlvbmFsRml4ZWQ2NEV4dGVuc2lvbjprChtvcHRpb25hbF9zZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCSABKA9SGW9wdGlvbmFsU2ZpeGVkMzJFeHRlbnNpb246awobb3B0aW9uYWxfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAogASgQUhlvcHRpb25hbFNmaXhlZDY0RXh0ZW5zaW9uOmUKGG9wdGlvbmFsX2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgLIAEoAlIWb3B0aW9uYWxGbG9hdEV4dGVuc2lvbjpnChlvcHRpb25hbF9kb3VibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAwgASgBUhdvcHRpb25hbERvdWJsZUV4dGVuc2lvbjpjChdvcHRpb25hbF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgNIAEoCFIVb3B0aW9uYWxCb29sRXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDiABKAlSF29wdGlvbmFsU3RyaW5nRXh0ZW5zaW9uOmUKGG9wdGlvbmFsX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgPIAEoDFIWb3B0aW9uYWxCeXRlc0V4dGVuc2lvbjqXAQoXb3B0aW9uYWxncm91cF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYECABKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuT3B0aW9uYWxHcm91cF9leHRlbnNpb25SFm9wdGlvbmFsZ3JvdXBFeHRlbnNpb246rAEKIW9wdGlvbmFsX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgSIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIeb3B0aW9uYWxOZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOqIBCiJvcHRpb25hbF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBMgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUh9vcHRpb25hbEZvcmVpZ25NZXNzYWdlRXh0ZW5zaW9uOqYBCiFvcHRpb25hbF9pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFCABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydE1lc3NhZ2VSHm9wdGlvbmFsSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqjAQoeb3B0aW9uYWxfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBUgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhtvcHRpb25hbE5lc3RlZEVudW1FeHRlbnNpb246mQEKH29wdGlvbmFsX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SHG9wdGlvbmFsRm9yZWlnbkVudW1FeHRlbnNpb246nQEKHm9wdGlvbmFsX2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgXIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bVIbb3B0aW9uYWxJbXBvcnRFbnVtRXh0ZW5zaW9uOnYKH29wdGlvbmFsX3N0cmluZ19waWVjZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYGCABKAlCAggCUhxvcHRpb25hbFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmcKF29wdGlvbmFsX2NvcmRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBkgASgJQgIIAVIVb3B0aW9uYWxDb3JkRXh0ZW5zaW9uOrkBCihvcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBogASgLMjQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5QdWJsaWNJbXBvcnRNZXNzYWdlUiRvcHRpb25hbFB1YmxpY0ltcG9ydE1lc3NhZ2VFeHRlbnNpb246rAEKH29wdGlvbmFsX2xhenlfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYGyABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBUhxvcHRpb25hbExhenlNZXNzYWdlRXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgfIAMoBVIWcmVwZWF0ZWRJbnQzMkV4dGVuc2lvbjplChhyZXBlYXRlZF9pbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYICADKANSFnJlcGVhdGVkSW50NjRFeHRlbnNpb246ZwoZcmVwZWF0ZWRfdWludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxghIAMoDVIXcmVwZWF0ZWRVaW50MzJFeHRlbnNpb246ZwoZcmVwZWF0ZWRfdWludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgiIAMoBFIXcmVwZWF0ZWRVaW50NjRFeHRlbnNpb246ZwoZcmVwZWF0ZWRfc2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgjIAMoEVIXcmVwZWF0ZWRTaW50MzJFeHRlbnNpb246ZwoZcmVwZWF0ZWRfc2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgkIAMoElIXcmVwZWF0ZWRTaW50NjRFeHRlbnNpb246aQoacmVwZWF0ZWRfZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJSADKAdSGHJlcGVhdGVkRml4ZWQzMkV4dGVuc2lvbjppChpyZXBlYXRlZF9maXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgmIAMoBlIYcmVwZWF0ZWRGaXhlZDY0RXh0ZW5zaW9uOmsKG3JlcGVhdGVkX3NmaXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgnIAMoD1IZcmVwZWF0ZWRTZml4ZWQzMkV4dGVuc2lvbjprChtyZXBlYXRlZF9zZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYKCADKBBSGXJlcGVhdGVkU2ZpeGVkNjRFeHRlbnNpb246ZQoYcmVwZWF0ZWRfZmxvYXRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCkgAygCUhZyZXBlYXRlZEZsb2F0RXh0ZW5zaW9uOmcKGXJlcGVhdGVkX2RvdWJsZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYKiADKAFSF3JlcGVhdGVkRG91YmxlRXh0ZW5zaW9uOmMKF3JlcGVhdGVkX2Jvb2xfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCsgAygIUhVyZXBlYXRlZEJvb2xFeHRlbnNpb246ZwoZcmVwZWF0ZWRfc3RyaW5nX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgsIAMoCVIXcmVwZWF0ZWRTdHJpbmdFeHRlbnNpb246ZQoYcmVwZWF0ZWRfYnl0ZXNfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGC0gAygMUhZyZXBlYXRlZEJ5dGVzRXh0ZW5zaW9uOpcBChdyZXBlYXRlZGdyb3VwX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxguIAMoCjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5SZXBlYXRlZEdyb3VwX2V4dGVuc2lvblIWcmVwZWF0ZWRncm91cEV4dGVuc2lvbjqsAQohcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDAgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUh5yZXBlYXRlZE5lc3RlZE1lc3NhZ2VFeHRlbnNpb246ogEKInJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYMSADKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSH3JlcGVhdGVkRm9yZWlnbk1lc3NhZ2VFeHRlbnNpb246pgEKIXJlcGVhdGVkX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgyIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0TWVzc2FnZVIecmVwZWF0ZWRJbXBvcnRNZXNzYWdlRXh0ZW5zaW9uOqMBCh5yZXBlYXRlZF9uZXN0ZWRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYMyADKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SG3JlcGVhdGVkTmVzdGVkRW51bUV4dGVuc2lvbjqZAQofcmVwZWF0ZWRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg0IAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIccmVwZWF0ZWRGb3JlaWduRW51bUV4dGVuc2lvbjqdAQoecmVwZWF0ZWRfaW1wb3J0X2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDUgAygOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtUhtyZXBlYXRlZEltcG9ydEVudW1FeHRlbnNpb246dgofcmVwZWF0ZWRfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg2IAMoCUICCAJSHHJlcGVhdGVkU3RyaW5nUGllY2VFeHRlbnNpb246ZwoXcmVwZWF0ZWRfY29yZF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNyADKAlCAggBUhVyZXBlYXRlZENvcmRFeHRlbnNpb246rAEKH3JlcGVhdGVkX2xhenlfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYOSADKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBUhxyZXBlYXRlZExhenlNZXNzYWdlRXh0ZW5zaW9uOmcKF2RlZmF1bHRfaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGD0gASgFOgI0MVIVZGVmYXVsdEludDMyRXh0ZW5zaW9uOmcKF2RlZmF1bHRfaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGD4gASgDOgI0MlIVZGVmYXVsdEludDY0RXh0ZW5zaW9uOmkKGGRlZmF1bHRfdWludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg/IAEoDToCNDNSFmRlZmF1bHRVaW50MzJFeHRlbnNpb246aQoYZGVmYXVsdF91aW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEAgASgEOgI0NFIWZGVmYXVsdFVpbnQ2NEV4dGVuc2lvbjpqChhkZWZhdWx0X3NpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYQSABKBE6Ay00NVIWZGVmYXVsdFNpbnQzMkV4dGVuc2lvbjppChhkZWZhdWx0X3NpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYQiABKBI6AjQ2UhZkZWZhdWx0U2ludDY0RXh0ZW5zaW9uOmsKGWRlZmF1bHRfZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYQyABKAc6AjQ3UhdkZWZhdWx0Rml4ZWQzMkV4dGVuc2lvbjprChlkZWZhdWx0X2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEQgASgGOgI0OFIXZGVmYXVsdEZpeGVkNjRFeHRlbnNpb246bQoaZGVmYXVsdF9zZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYRSABKA86AjQ5UhhkZWZhdWx0U2ZpeGVkMzJFeHRlbnNpb246bgoaZGVmYXVsdF9zZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYRiABKBA6Ay01MFIYZGVmYXVsdFNmaXhlZDY0RXh0ZW5zaW9uOmkKF2RlZmF1bHRfZmxvYXRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEcgASgCOgQ1MS41UhVkZWZhdWx0RmxvYXRFeHRlbnNpb246bAoYZGVmYXVsdF9kb3VibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEggASgBOgU1MjAwMFIWZGVmYXVsdERvdWJsZUV4dGVuc2lvbjpnChZkZWZhdWx0X2Jvb2xfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEkgASgIOgR0cnVlUhRkZWZhdWx0Qm9vbEV4dGVuc2lvbjpsChhkZWZhdWx0X3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYSiABKAk6BWhlbGxvUhZkZWZhdWx0U3RyaW5nRXh0ZW5zaW9uOmoKF2RlZmF1bHRfYnl0ZXNfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEsgASgMOgV3b3JsZFIVZGVmYXVsdEJ5dGVzRXh0ZW5zaW9uOqYBCh1kZWZhdWx0X25lc3RlZF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhRIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bToDQkFSUhpkZWZhdWx0TmVzdGVkRW51bUV4dGVuc2lvbjqkAQoeZGVmYXVsdF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGFIgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUlIbZGVmYXVsdEZvcmVpZ25FbnVtRXh0ZW5zaW9uOqcBCh1kZWZhdWx0X2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhTIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bToKSU1QT1JUX0JBUlIaZGVmYXVsdEltcG9ydEVudW1FeHRlbnNpb246eQoeZGVmYXVsdF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGFQgASgJOgNhYmNCAggCUhtkZWZhdWx0U3RyaW5nUGllY2VFeHRlbnNpb246agoWZGVmYXVsdF9jb3JkX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhVIAEoCToDMTIzQgIIAVIUZGVmYXVsdENvcmRFeHRlbnNpb246YQoWb25lb2ZfdWludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhvIAEoDVIUb25lb2ZVaW50MzJFeHRlbnNpb246pgEKHm9uZW9mX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhwIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIbb25lb2ZOZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOmEKFm9uZW9mX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYcSABKAlSFG9uZW9mU3RyaW5nRXh0ZW5zaW9uOl8KFW9uZW9mX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhyIAEoDFITb25lb2ZCeXRlc0V4dGVuc2lvbjpcChNteV9leHRlbnNpb25fc3RyaW5nEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgyIAEoCVIRbXlFeHRlbnNpb25TdHJpbmc6VgoQbXlfZXh0ZW5zaW9uX2ludBIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYBSABKAVSDm15RXh0ZW5zaW9uSW50OmgKFnBhY2tlZF9pbnQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhABUhRwYWNrZWRJbnQzMkV4dGVuc2lvbjpoChZwYWNrZWRfaW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFsgAygDQgIQAVIUcGFja2VkSW50NjRFeHRlbnNpb246agoXcGFja2VkX3VpbnQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXCADKA1CAhABUhVwYWNrZWRVaW50MzJFeHRlbnNpb246agoXcGFja2VkX3VpbnQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhABUhVwYWNrZWRVaW50NjRFeHRlbnNpb246agoXcGFja2VkX3NpbnQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhABUhVwYWNrZWRTaW50MzJFeHRlbnNpb246agoXcGFja2VkX3NpbnQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXyADKBJCAhABUhVwYWNrZWRTaW50NjRFeHRlbnNpb246bAoYcGFja2VkX2ZpeGVkMzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQAVIWcGFja2VkRml4ZWQzMkV4dGVuc2lvbjpsChhwYWNrZWRfZml4ZWQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYSADKAZCAhABUhZwYWNrZWRGaXhlZDY0RXh0ZW5zaW9uOm4KGXBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYiADKA9CAhABUhdwYWNrZWRTZml4ZWQzMkV4dGVuc2lvbjpuChlwYWNrZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQAVIXcGFja2VkU2ZpeGVkNjRFeHRlbnNpb246aAoWcGFja2VkX2Zsb2F0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEAFSFHBhY2tlZEZsb2F0RXh0ZW5zaW9uOmoKF3BhY2tlZF9kb3VibGVfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGUgAygBQgIQAVIVcGFja2VkRG91YmxlRXh0ZW5zaW9uOmYKFXBhY2tlZF9ib29sX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEAFSE3BhY2tlZEJvb2xFeHRlbnNpb246jQEKFXBhY2tlZF9lbnVtX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEAFSE3BhY2tlZEVudW1FeHRlbnNpb246bgoYdW5wYWNrZWRfaW50MzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhAAUhZ1bnBhY2tlZEludDMyRXh0ZW5zaW9uOm4KGHVucGFja2VkX2ludDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFsgAygDQgIQAFIWdW5wYWNrZWRJbnQ2NEV4dGVuc2lvbjpwChl1bnBhY2tlZF91aW50MzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXCADKA1CAhAAUhd1bnBhY2tlZFVpbnQzMkV4dGVuc2lvbjpwChl1bnBhY2tlZF91aW50NjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhAAUhd1bnBhY2tlZFVpbnQ2NEV4dGVuc2lvbjpwChl1bnBhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhAAUhd1bnBhY2tlZFNpbnQzMkV4dGVuc2lvbjpwChl1bnBhY2tlZF9zaW50NjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXyADKBJCAhAAUhd1bnBhY2tlZFNpbnQ2NEV4dGVuc2lvbjpyChp1bnBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQAFIYdW5wYWNrZWRGaXhlZDMyRXh0ZW5zaW9uOnIKGnVucGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYSADKAZCAhAAUhh1bnBhY2tlZEZpeGVkNjRFeHRlbnNpb246dAobdW5wYWNrZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYiADKA9CAhAAUhl1bnBhY2tlZFNmaXhlZDMyRXh0ZW5zaW9uOnQKG3VucGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQAFIZdW5wYWNrZWRTZml4ZWQ2NEV4dGVuc2lvbjpuChh1bnBhY2tlZF9mbG9hdF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEABSFnVucGFja2VkRmxvYXRFeHRlbnNpb246cAoZdW5wYWNrZWRfZG91YmxlX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGUgAygBQgIQAFIXdW5wYWNrZWREb3VibGVFeHRlbnNpb246bAoXdW5wYWNrZWRfYm9vbF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEABSFXVucGFja2VkQm9vbEV4dGVuc2lvbjqTAQoXdW5wYWNrZWRfZW51bV9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEABSFXVucGFja2VkRW51bUV4dGVuc2lvbjqAAQoOdGVzdF9hbGxfdHlwZXMSLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEh1Z2VGaWVsZE51bWJlcnMY4Kr//wEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IMdGVzdEFsbFR5cGVzOoQBCiV0ZXN0X2V4dGVuc2lvbl9pbnNpZGVfdGFibGVfZXh0ZW5zaW9uEjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZRgFIAEoBVIhdGVzdEV4dGVuc2lvbkluc2lkZVRhYmxlRXh0ZW5zaW9uQjJIAYABAYgBAZABAfgBAaoCIUdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zLlByb3RvMkq0uAMKBxIFJgDYCAIKog4KAQwSAyYAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtMBIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3ZSB3aWxsIHVzZSBmb3IgdW5pdCB0ZXN0aW5nLgoKIExJTlQ6IEFMTE9XX0dST1VQUywgTEVHQUNZX05BTUVTCgoICgEIEgMqACIKgAEKAggQEgMqACIaZyBTb21lIGdlbmVyaWNfc2VydmljZXMgb3B0aW9uKHMpIGFkZGVkIGF1dG9tYXRpY2FsbHkuCiBTZWU6ICBodHRwOi8vZ28vcHJvdG8yLWdlbmVyaWMtc2VydmljZXMtZGVmYXVsdAoiDCBhdXRvLWFkZGVkCgoICgEIEgMrACQKFwoCCBESAysAJCIMIGF1dG8tYWRkZWQKCggKAQgSAywAIgoXCgIIEhIDLAAiIgwgYXV0by1hZGRlZAoKCAoBCBIDLQAfCgkKAggfEgMtAB8KCQoCAwASAy8AHwrmAQoBAhIDNAAhGtsBIFdlIGRvbid0IHB1dCB0aGlzIGluIGEgcGFja2FnZSB3aXRoaW4gcHJvdG8yIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUKIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNu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AxwdCgwKBAQMAgcSBIMDAh4KDQoFBAwCBwQSBIMDAgoKDQoFBAwCBwUSBIMDCxAKDQoFBAwCBwESBIMDERcKDQoFBAwCBwMSBIMDHB0KDAoEBAwCCBIEhAMCHgoNCgUEDAIIBBIEhAMCCgoNCgUEDAIIBRIEhAMLEAoNCgUEDAIIARIEhAMRFwoNCgUEDAIIAxIEhAMcHQoMCgQEDAIJEgSFAwIeCg0KBQQMAgkEEgSFAwIKCg0KBQQMAgkFEgSFAwsQCg0KBQQMAgkBEgSFAxEYCg0KBQQMAgkDEgSFAxsdCgwKBAQMAgoSBIYDAh4KDQoFBAwCCgQSBIYDAgoKDQoFBAwCCgUSBIYDCxAKDQoFBAwCCgESBIYDERgKDQoFBAwCCgMSBIYDGx0KDAoEBAwCCxIEhwMCHgoNCgUEDAILBBIEhwMCCgoNCgUEDAILBRIEhwMLEAoNCgUEDAILARIEhwMRGAoNCgUEDAILAxIEhwMbHQoMCgQEDAIMEgSIAwIeCg0KBQQMAgwEEgSIAwIKCg0KBQQMAgwFEgSIAwsQCg0KBQQMAgwBEgSIAxEYCg0KBQQMAgwDEgSIAxsdCgwKBAQMAg0SBIkDAh4KDQoFBAwCDQQSBIkDAgoKDQoFBAwCDQUSBIkDCxAKDQoFBAwCDQESBIkDERgKDQoFBAwCDQMSBIkDGx0KDAoEBAwCDhIEigMCHgoNCgUEDAIOBBIEigMCCgoNCgUEDAIOBRIEigMLEAoNCgUEDAIOARIEigMRGAoNCgUEDAIOAxIEigMbHQoMCgQEDAIPEgSLAwIeCg0KBQQMAg8EEgSLAwIKCg0KBQQMAg8FEgSLAwsQCg0KBQQMAg8BEgSLAxEYCg0KBQQMAg8DEgSLAxsdCgwKBAQMAhASBIwDAh4KDQoFBAwCEAQSBIwDAgoKDQoFBAwCEAUSBIwDCxAKDQoFBAwCEAESBIwDERgKDQoFBAwCEAMSBIwDGx0KDAoEBAwCERIEjQMCHgoNCgUEDAIRBBIEjQMCCgoNCgUEDAIRBRIEjQMLEAoNCgUEDAIRARIEjQMRGAoNCgUEDAIRAxIEjQMbHQoMCgQEDAISEgSOAwIeCg0KBQQMAhIEEgSOAwIKCg0KBQQMAhIFEgSOAwsQCg0KBQQMAhIBEgSOAxEYCg0KBQQMAhIDEgSOAxsdCgwKBAQMAhMSBI8DAh4KDQoFBAwCEwQSBI8DAgoKDQoFBAwCEwUSBI8DCxAKDQoFBAwCEwESBI8DERgKDQoFBAwCEwMSBI8DGx0KDAoEBAwCFBIEkAMCHgoNCgUEDAIUBBIEkAMCCgoNCgUEDAIUBRIEkAMLEAoNCgUEDAIUARIEkAMRGAoNCgUEDAIUAxIEkAMbHQoMCgQEDAIVEgSRAwIeCg0KBQQMAhUEEgSRAwIKCg0KBQQMAhUFEgSRAwsQCg0KBQQMAhUBEgSRAxEYCg0KBQQMAhUDEgSRAxsdCgwKBAQMAhYSBJIDAh4KDQoFBAwCFgQSBJIDAgoKDQoFBAwCFgUSBJIDCxAKDQoFBAwCFgESBJIDERgKDQoFBAwCFgMSBJIDGx0KDAoEBAwCFxIEkwMCHgoNCgUEDAIXBBIEkwMCCgoNCgUEDAIXBRIEkwMLEAoNCgUEDAIXARIEkwMRGAoNCgUEDAIXAxIEkwMbHQoMCgQEDAIYEgSUAwIeCg0KBQQMAhgEEgSUAwIKCg0KBQQMAhgFEgSUAwsQCg0KBQQMAhgBEgSUAxEYCg0KBQQMAhgDEgSUAxsdCgwKBAQMAhkSBJUDAh4KDQoFBAwCGQQSBJUDAgoKDQoFBAwCGQUSBJUDCxAKDQoFBAwCGQESBJUDERgKDQoFBAwCGQMSBJUDGx0KDAoEBAwCGhIElgMCHgoNCgUEDAIaBBIElgMCCgoNCgUEDAIaBRIElgMLEAoNCgUEDAIaARIElgMRGAoNCgUEDAIaAxIElgMbHQoMCgQEDAIbEgSXAwIeCg0KBQQMAhsEEgSXAwIKCg0KBQQMAhsFEgSXAwsQCg0KBQQMAhsBEgSXAxEYCg0KBQQMAhsDEgSXAxsdCgwKBAQMAhwSBJgDAh4KDQoFBAwCHAQSBJgDAgoKDQoFBAwCHAUSBJgDCxAKDQoFBAwCHAESBJgDERgKDQoFBAwCHAMSBJgDGx0KDAoEBAwCHRIEmQMCHgoNCgUEDAIdBBIEmQMCCgoNCgUEDAIdBRIEmQMLEAoNCgUEDAIdARIEmQMRGAoNCgUEDAIdAxIEmQMbHQoMCgQEDAIeEgSaAwIeCg0KBQQMAh4EEgSaAwIKCg0KBQQMAh4FEgSaAwsQCg0KBQQMAh4BEgSaAxEYCg0KBQQMAh4DEgSaAxsdCgwKBAQMAh8SBJsDAh4KDQoFBAwC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AAUSBJsGDhMKDQoFBDECAAESBJsGFCIKDQoFBDECAAMSBJsGKSsKDQoFBDECAAgSBJsGLDwKDgoGBDECAAgCEgSbBi07CgwKBAQxAgESBJwGAj0KDQoFBDECAQQSBJwGAgoKDQoFBDECAQUSBJwGDhMKDQoFBDECAQESBJwGFCIKDQoFBDECAQMSBJwGKSsKDQoFBDECAQgSBJwGLDwKDgoGBDECAQgCEgScBi07CgwKBAQxAgISBJ0GAj0KDQoFBDECAgQSBJ0GAgoKDQoFBDECAgUSBJ0GDRMKDQoFBDECAgESBJ0GFCMKDQoFBDECAgMSBJ0GKSsKDQoFBDECAggSBJ0GLDwKDgoGBDECAggCEgSdBi07CgwKBAQxAgMSBJ4GAj0KDQoFBDECAwQSBJ4GAgoKDQoFBDECAwUSBJ4GDRMKDQoFBDECAwESBJ4GFCMKDQoFBDECAwMSBJ4GKSsKDQoFBDECAwgSBJ4GLDwKDgoGBDECAwgCEgSeBi07CgwKBAQxAgQSBJ8GAj0KDQoFBDECBAQSBJ8GAgoKDQoFBDECBAUSBJ8GDRMKDQoFBDECBAESBJ8GFCMKDQoFBDECBAMSBJ8GKSsKDQoFBDECBAgSBJ8GLDwKDgoGBDECBAgCEgSfBi07CgwKBAQxAgUSBKAGAj0KDQoFBDECBQQSBKAGAgoKDQoFBDECBQUSBKAGDRMKDQoFBDECBQESBKAGFCMKDQoFBDECBQMSBKAGKSsKDQoFBDECBQgSBKAGLDwKDgoGBDECBQgCEgSgBi07CgwKBAQxAgYSBKEGAj0KDQoFBDECBgQSBKEGAgoKDQoFBDECBgUSBKEGDBMKDQoFBDECBgESBKEGFCQKDQoFBDECBgMSBKEGKSsKDQoFBDECBggSBKEGLDwKDgoGBDECBggCEgShBi07CgwKBAQxAgcSBKIGAj0KDQoFBDECBwQSBKIGAgoKDQoFBDECBwUSBKIGDBMKDQoFBDECBwESBKIGFCQKDQoFBDECBwMSBKIGKSsKDQoFBDECBwgSBKIGLDwKDgoGBDECBwgCEgSiBi07CgwKBAQxAggSBKMGAj0KDQoFBDECCAQSBKMGAgoKDQoFBDECCAUSBKMGCxMKDQoFBDECCAESBKMGFCUKDQoFBDECCAMSBKMGKSsKDQoFBDECCAgSBKMGLDwKDgoGBDEC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dWYuRmllbGRPcHRpb25zGOgHIAEoBUIEwD7SCVIKYmFyT3B0aW9uczp2Cgtmb29fb3B0aW9ucxIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY6QcgASgLMjUucHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMuRm9vT3B0aW9uc1IKZm9vT3B0aW9uczpWCgtmb29faW50X29wdBI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnMY6AcgASgFUglmb29JbnRPcHQ6jQEKC2Zvb19mb29fb3B0EjUucHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMuRm9vT3B0aW9ucxjpByABKAsyNS5wcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucy5Gb29PcHRpb25zUglmb29Gb29PcHRCNKoCMVVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zLlNlbGZyZWZlcmVudGlhbE9wdGlvbnNKtRMKBhIEHgA/AQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAyCggKAQgSAyEATgoJCgIIJRIDIQBOCgkKAgMAEgMjACoKCgoCBAASBCUAMwEKCgoDBAABEgMlCBIKUAoEBAACABIEJwItBRpCIEN1c3RvbSBmaWVsZCBvcHRpb24gdXNlZCBpbiBkZWZpbml0aW9uIG9mIHRoZSBleHRlbnNpb24gbWVzc2FnZS4KCgwKBQQAAgAEEgMnAgoKDAoFBAACAAUSAycLEAoMCgUEAAIAARIDJxEYCgwKBQQAAgADEgMnGxwKDQoFBAACAAgSBCcdLQQKDwoHBAACAAjpBxIEJx4tAwpVCgQEAAIBEgMwAjcaSCBDdXN0b20gZmllbGQgb3B0aW9uIHVzZWQgaW4gZGVmaW5pdGlvbiBvZiB0aGUgY3VzdG9tIG9wdGlvbidzIG1lc3NhZ2UuCgoMCgUEAAIBBBIDMAIKCgwKBQQAAgEFEgMwCxAKDAoFBAACAQESAzARFAoMCgUEAAIBAxIDMBcYCgwKBQQAAgEIEgMwGTYKDgoHBAACAQjpBxIDMBo1CgoKAwQABRIDMgIZCgsKBAQABQASAzINGAoMCgUEAAUAARIDMg0RCgwKBQQABQACEgMyFRgKCQoBBxIENQA6AQpNCgIHABIDNwI7GkIgQ3VzdG9tIGZpZWxkIG9wdGlvbiB1c2VkIG9uIHRoZSBkZWZpbml0aW9uIG9mIHRoYXQgZmllbGQgb3B0aW9uLgoKCgoDBwACEgM1ByMKCgoDBwAEEgM3AgoKCgoDBwAFEgM3CxAKCgoDBwABEgM3ERwKCgoDBwADEgM3HyMKCgoDBwAIEgM3JDoKDAoFBwAI6AcSAzclOQoJCgIHARIDOQIpCgoKAwcBAhIDNQcjCgoKAwcBBBIDOQIKCgoKAwcBBhIDOQsVCgoKAwcBARIDORYhCgoKAwcBAxIDOSQoCgkKAQcSBDwAPwEKCQoCBwISAz0DJQoKCgMHAgISAzwHEQoKCgMHAgQSAz0DCwoKCgMHAgUSAz0MEQoKCgMHAgESAz0SHQoKCgMHAgMSAz0gJAoJCgIHAxIDPgMqCgoKAwcDAhIDPAcRCgoKAwcDBBIDPgMLCgoKAwcDBhIDPgwWCgoKAwcDARIDPhciCgoKAwcDAxIDPiUpCtksChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJ2ChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWixnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9hbnlwYqICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0ryKgoHEgUeAJ0BAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAQwoJCgIICxIDIwBDCggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUAKQoJCgIICBIDJQApCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCvYQCgIEABIFfACdAQEa6BAgYEFueWAgY29udGFpbnMgYW4gYXJiaXRyYXJ5IHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UgYWxvbmcgd2l0aCBhCiBVUkwgdGhhdCBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQgbWVzc2FnZS4KCiBQcm90b2J1ZiBsaWJyYXJ5IHByb3ZpZGVzIHN1cHBvcnQgdG8gcGFjay91bnBhY2sgQW55IHZhbHVlcyBpbiB0aGUgZm9ybQogb2YgdXRpbGl0eSBmdW5jdGlvbnMgb3IgYWRkaXRpb25hbCBnZW5lcmF0ZWQgbWV0aG9kcyBvZiB0aGUgQW55IHR5cGUuCgogRXhhbXBsZSAxOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEMrKy4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55OwogICAgIGFueS5QYWNrRnJvbShmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuVW5wYWNrVG8oJmZvbykpIHsKICAgICAgIC4uLgogICAgIH0KCiBFeGFtcGxlIDI6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gSmF2YS4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55ID0gQW55LnBhY2soZm9vKTsKICAgICAuLi4KICAgICBpZiAoYW55LmlzKEZvby5jbGFzcykpIHsKICAgICAgIGZvbyA9IGFueS51bnBhY2soRm9vLmNsYXNzKTsKICAgICB9CgogRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiBFeGFtcGxlIDQ6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gR28KCiAgICAgIGZvbyA6PSAmcGIuRm9vey4uLn0KICAgICAgYW55LCBlcnIgOj0gYW55cGIuTmV3KGZvbykKICAgICAgaWYgZXJyICE9IG5pbCB7CiAgICAgICAgLi4uCiAgICAgIH0KICAgICAgLi4uCiAgICAgIGZvbyA6PSAmcGIuRm9ve30KICAgICAgaWYgZXJyIDo9IGFueS5Vbm1hcnNoYWxUbyhmb28pOyBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQoKIFRoZSBwYWNrIG1ldGhvZHMgcHJvdmlkZWQgYnkgcHJvdG9idWYgbGlicmFyeSB3aWxsIGJ5IGRlZmF1bHQgdXNlCiAndHlwZS5nb29nbGVhcGlzLmNvbS9mdWxsLnR5cGUubmFtZScgYXMgdGhlIHR5cGUgVVJMIGFuZCB0aGUgdW5wYWNrCiBtZXRob2RzIG9ubHkgdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lIGFmdGVyIHRoZSBsYXN0ICcvJwogaW4gdGhlIHR5cGUgVVJMLCBmb3IgZXhhbXBsZSAiZm9vLmJhci5jb20veC95LnoiIHdpbGwgeWllbGQgdHlwZQogbmFtZSAieS56Ii4KCgogSlNPTgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGFuIGBBbnlgIHZhbHVlIHVzZXMgdGhlIHJlZ3VsYXIKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXNlcmlhbGl6ZWQsIGVtYmVkZGVkIG1lc3NhZ2UsIHdpdGggYW4KIGFkZGl0aW9uYWwgZmllbGQgYEB0eXBlYCB3aGljaCBjb250YWlucyB0aGUgdHlwZSBVUkwuIEV4YW1wbGU6CgogICAgIHBhY2thZ2UgZ29vZ2xlLnByb2ZpbGU7CiAgICAgbWVzc2FnZSBQZXJzb24gewogICAgICAgc3RyaW5nIGZpcnN0X25hbWUgPSAxOwogICAgICAgc3RyaW5nIGxhc3RfbmFtZSA9IDI7CiAgICAgfQoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvZmlsZS5QZXJzb24iLAogICAgICAgImZpcnN0TmFtZSI6IDxzdHJpbmc+LAogICAgICAgImxhc3ROYW1lIjogPHN0cmluZz4KICAgICB9CgogSWYgdGhlIGVtYmVkZGVkIG1lc3NhZ2UgdHlwZSBpcyB3ZWxsLWtub3duIGFuZCBoYXMgYSBjdXN0b20gSlNPTgogcmVwcmVzZW50YXRpb24sIHRoYXQgcmVwcmVzZW50YXRpb24gd2lsbCBiZSBlbWJlZGRlZCBhZGRpbmcgYSBmaWVsZAogYHZhbHVlYCB3aGljaCBob2xkcyB0aGUgY3VzdG9tIEpTT04gaW4gYWRkaXRpb24gdG8gdGhlIGBAdHlwZWAKIGZpZWxkLiBFeGFtcGxlIChmb3IgbWVzc2FnZSBbZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uXVtdKToKCiAgICAgewogICAgICAgIkB0eXBlIjogInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIiwKICAgICAgICJ2YWx1ZSI6ICIxLjIxMnMiCiAgICAgfQoKCgoKAwQAARIDfAgLCtcKCgQEAAIAEgSZAQIWGsgKIEEgVVJML3Jlc291cmNlIG5hbWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkCiBwcm90b2NvbCBidWZmZXIgbWVzc2FnZS4gVGhpcyBzdHJpbmcgbXVzdCBjb250YWluIGF0IGxlYXN0CiBvbmUgIi8iIGNoYXJhY3Rlci4gVGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgVVJMJ3MgcGF0aCBtdXN0IHJlcHJlc2VudAogdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSB0eXBlIChhcyBpbgogYHBhdGgvZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uYCkuIFRoZSBuYW1lIHNob3VsZCBiZSBpbiBhIGNhbm9uaWNhbCBmb3JtCiAoZS5nLiwgbGVhZGluZyAiLiIgaXMgbm90IGFjY2VwdGVkKS4KCiBJbiBwcmFjdGljZSwgdGVhbXMgdXN1YWxseSBwcmVjb21waWxlIGludG8gdGhlIGJpbmFyeSBhbGwgdHlwZXMgdGhhdCB0aGV5CiBleHBlY3QgaXQgdG8gdXNlIGluIHRoZSBjb250ZXh0IG9mIEFueS4gSG93ZXZlciwgZm9yIFVSTHMgd2hpY2ggdXNlIHRoZQogc2NoZW1lIGBodHRwYCwgYGh0dHBzYCwgb3Igbm8gc2NoZW1lLCBvbmUgY2FuIG9wdGlvbmFsbHkgc2V0IHVwIGEgdHlwZQogc2VydmVyIHRoYXQgbWFwcyB0eXBlIFVSTHMgdG8gbWVzc2FnZSBkZWZpbml0aW9ucyBhcyBmb2xsb3dzOgoKICogSWYgbm8gc2NoZW1lIGlzIHByb3ZpZGVkLCBgaHR0cHNgIGlzIGFzc3VtZWQuCiAqIEFuIEhUVFAgR0VUIG9uIHRoZSBVUkwgbXVzdCB5aWVsZCBhIFtnb29nbGUucHJvdG9idWYuVHlwZV1bXQogICB2YWx1ZSBpbiBiaW5hcnkgZm9ybWF0LCBvciBwcm9kdWNlIGFuIGVycm9yLgogKiBBcHBsaWNhdGlvbnMgYXJlIGFsbG93ZWQgdG8gY2FjaGUgbG9va3VwIHJlc3VsdHMgYmFzZWQgb24gdGhlCiAgIFVSTCwgb3IgaGF2ZSB0aGVtIHByZWNvbXBpbGVkIGludG8gYSBiaW5hcnkgdG8gYXZvaWQgYW55CiAgIGxvb2t1cC4gVGhlcmVmb3JlLCBiaW5hcnkgY29tcGF0aWJpbGl0eSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQKICAgb24gY2hhbmdlcyB0byB0eXBlcy4gKFVzZSB2ZXJzaW9uZWQgdHlwZSBuYW1lcyB0byBtYW5hZ2UKICAgYnJlYWtpbmcgY2hhbmdlcy4pCgogTm90ZTogdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG5vdCBjdXJyZW50bHkgYXZhaWxhYmxlIGluIHRoZSBvZmZpY2lhbAogcHJvdG9idWYgcmVsZWFzZSwgYW5kIGl0IGlzIG5vdCB1c2VkIGZvciB0eXBlIFVSTHMgYmVnaW5uaW5nIHdpdGgKIHR5cGUuZ29vZ2xlYXBpcy5jb20uCgogU2NoZW1lcyBvdGhlciB0aGFuIGBodHRwYCwgYGh0dHBzYCAob3IgdGhlIGVtcHR5IHNjaGVtZSkgbWlnaHQgYmUKIHVzZWQgd2l0aCBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBzZW1hbnRpY3MuCgoKDQoFBAACAAUSBJkBAggKDQoFBAACAAESBJkBCREKDQoFBAACAAMSBJkBFBUKVwoEBAACARIEnAECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoNCgUEAAIBBRIEnAECBwoNCgUEAAIBARIEnAEIDQoNCgUEAAIBAxIEnAEQEWIGcHJvdG8zCr4SCiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIsCg1Tb3VyY2VDb250ZXh0EhsKCWZpbGVfbmFtZRgBIAEoCVIIZmlsZU5hbWVCigEKE2NvbS5nb29nbGUucHJvdG9idWZCElNvdXJjZUNvbnRleHRQcm90b1ABWjZnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9zb3VyY2Vjb250ZXh0cGKiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKwRAKBhIEHgAvAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMALAoJCgIIARIDIwAsCggKAQgSAyQAMwoJCgIICBIDJAAzCggKAQgSAyUAIgoJCgIIChIDJQAiCggKAQgSAyYAIQoJCgIIJBIDJgAhCggKAQgSAycATQoJCgIICxIDJwBNCoMBCgIEABIEKwAvARp3IGBTb3VyY2VDb250ZXh0YCByZXByZXNlbnRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzb3VyY2Ugb2YgYQogcHJvdG9idWYgZWxlbWVudCwgbGlrZSB0aGUgZmlsZSBpbiB3aGljaCBpdCBpcyBkZWZpbmVkLgoKCgoDBAABEgMrCBUKowEKBAQAAgASAy4CFxqVASBUaGUgcGF0aC1xdWFsaWZpZWQgbmFtZSBvZiB0aGUgLnByb3RvIGZpbGUgdGhhdCBjb250YWluZWQgdGhlIGFzc29jaWF0ZWQKIHByb3RvYnVmIGVsZW1lbnQuICBGb3IgZXhhbXBsZTogYCJnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8iYC4KCgwKBQQAAgAFEgMuAggKDAoFBAACAAESAy4JEgoMCgUEAAIAAxIDLhUWYgZwcm90bzMK6EYKGmdvb2dsZS9wcm90b2J1Zi90eXBlLnByb3RvEg9nb29nbGUucHJvdG9idWYaGWdvb2dsZS9wcm90b2J1Zi9hbnkucHJvdG8aJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90byKNAgoEVHlwZRISCgRuYW1lGAEgASgJUgRuYW1lEi4KBmZpZWxkcxgCIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5GaWVsZFIGZmllbGRzEhYKBm9uZW9mcxgDIAMoCVIGb25lb2ZzEjEKB29wdGlvbnMYBCADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEkUKDnNvdXJjZV9jb250ZXh0GAUgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSDXNvdXJjZUNvbnRleHQSLwoGc3ludGF4GAYgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheFIGc3ludGF4IrQGCgVGaWVsZBIvCgRraW5kGAEgASgOMhsuZ29vZ2xlLnByb3RvYnVmLkZpZWxkLktpbmRSBGtpbmQSRAoLY2FyZGluYWxpdHkYAiABKA4yIi5nb29nbGUucHJvdG9idWYuRmllbGQuQ2FyZGluYWxpdHlSC2NhcmRpbmFsaXR5EhYKBm51bWJlchgDIAEoBVIGbnVtYmVyEhIKBG5hbWUYBCABKAlSBG5hbWUSGQoIdHlwZV91cmwYBiABKAlSB3R5cGVVcmwSHwoLb25lb2ZfaW5kZXgYByABKAVSCm9uZW9mSW5kZXgSFgoGcGFja2VkGAggASgIUgZwYWNrZWQSMQoHb3B0aW9ucxgJIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRIjCg1kZWZhdWx0X3ZhbHVlGAsgASgJUgxkZWZhdWx0VmFsdWUiyAIKBEtpbmQSEAoMVFlQRV9VTktOT1dOEAASDwoLVFlQRV9ET1VCTEUQARIOCgpUWVBFX0ZMT0FUEAISDgoKVFlQRV9JTlQ2NBADEg8KC1RZUEVfVUlOVDY0EAQSDgoKVFlQRV9JTlQzMhAFEhAKDFRZUEVfRklYRUQ2NBAGEhAKDFRZUEVfRklYRUQzMhAHEg0KCVRZUEVfQk9PTBAIEg8KC1RZUEVfU1RSSU5HEAkSDgoKVFlQRV9HUk9VUBAKEhAKDFRZUEVfTUVTU0FHRRALEg4KClRZUEVfQllURVMQDBIPCgtUWVBFX1VJTlQzMhANEg0KCVRZUEVfRU5VTRAOEhEKDVRZUEVfU0ZJWEVEMzIQDxIRCg1UWVBFX1NGSVhFRDY0EBASDwoLVFlQRV9TSU5UMzIQERIPCgtUWVBFX1NJTlQ2NBASInQKC0NhcmRpbmFsaXR5EhcKE0NBUkRJTkFMSVRZX1VOS05PV04QABIYChRDQVJESU5BTElUWV9PUFRJT05BTBABEhgKFENBUkRJTkFMSVRZX1JFUVVJUkVEEAISGAoUQ0FSRElOQUxJVFlfUkVQRUFURUQQAyL/AQoERW51bRISCgRuYW1lGAEgASgJUgRuYW1lEjgKCWVudW12YWx1ZRgCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVSCWVudW12YWx1ZRIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxJFCg5zb3VyY2VfY29udGV4dBgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0Ug1zb3VyY2VDb250ZXh0Ei8KBnN5bnRheBgFIAEoDjIXLmdvb2dsZS5wcm90b2J1Zi5TeW50YXhSBnN5bnRheCJqCglFbnVtVmFsdWUSEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAiABKAVSBm51bWJlchIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucyJICgZPcHRpb24SEgoEbmFtZRgBIAEoCVIEbmFtZRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBXZhbHVlKi4KBlN5bnRheBIRCg1TWU5UQVhfUFJPVE8yEAASEQoNU1lOVEFYX1BST1RPMxABQnsKE2NvbS5nb29nbGUucHJvdG9idWZCCVR5cGVQcm90b1ABWi1nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90eXBlcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKwzgKBxIFHgC6AQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF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cm90b2J1Zi5JbnQzMlZhbHVlIHR5cGUuCgoNCgUEBAIBBhIEsQECBQoNCgUEBAIBARIEsQEGCwoNCgUEBAIBAxIEsQEODwpJCgIFABIGtQEAugEBGjsgVGhlIHN5bnRheCBpbiB3aGljaCBhIHByb3RvY29sIGJ1ZmZlciBlbGVtZW50IGlzIGRlZmluZWQuCgoLCgMFAAESBLUBBQsKIAoEBQACABIEtwECFBoSIFN5bnRheCBgcHJvdG8yYC4KCg0KBQUAAgABEgS3AQIPCg0KBQUAAgACEgS3ARITCiAKBAUAAgESBLkBAhQaEiBTeW50YXggYHByb3RvM2AuCgoNCgUFAAIBARIEuQECDwoNCgUFAAIBAhIEuQESE2IGcHJvdG8zCpxDChlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvEg9nb29nbGUucHJvdG9idWYaJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8iwQIKA0FwaRISCgRuYW1lGAEgASgJUgRuYW1lEjEKB21ldGhvZHMYAiADKAsyFy5nb29nbGUucHJvdG9idWYuTWV0aG9kUgdtZXRob2RzEjEKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEhgKB3ZlcnNpb24YBCABKAlSB3ZlcnNpb24SRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIuCgZtaXhpbnMYBiADKAsyFi5nb29nbGUucHJvdG9idWYuTWl4aW5SBm1peGlucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgisgIKBk1ldGhvZBISCgRuYW1lGAEgASgJUgRuYW1lEigKEHJlcXVlc3RfdHlwZV91cmwYAiABKAlSDnJlcXVlc3RUeXBlVXJsEisKEXJlcXVlc3Rfc3RyZWFtaW5nGAMgASgIUhByZXF1ZXN0U3RyZWFtaW5nEioKEXJlc3BvbnNlX3R5cGVfdXJsGAQgASgJUg9yZXNwb25zZVR5cGVVcmwSLQoScmVzcG9uc2Vfc3RyZWFtaW5nGAUgASgIUhFyZXNwb25zZVN0cmVhbWluZxIxCgdvcHRpb25zGAYgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgiLwoFTWl4aW4SEgoEbmFtZRgBIAEoCVIEbmFtZRISCgRyb290GAIgASgJUgRyb290QnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFwaVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FwaXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoE8CgcSBR4AzwEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIALgoJCgIDARIDIwAkCggKAQgSAyUAOwoJCgIIJRIDJQA7CggKAQgSAyYALAoJCgIIARIDJgAsCggKAQgSAycAKQoJCgIICBIDJwApCggKAQgSAygAIgoJCgIIChIDKAAiCggKAQgSAykAIQoJCgIIJBIDKQAhCggKAQgSAyoAQwoJCgIICxIDKgBDCqsECgIEABIENQBgARqeBCBBcGkgaXMgYSBsaWdodC13ZWlnaHQgZGVzY3JpcHRvciBmb3IgYW4gQVBJIEludGVyZmFjZS4KCiBJbnRlcmZhY2VzIGFyZSBhbHNvIGRlc2NyaWJlZCBhcyAicHJvdG9jb2wgYnVmZmVyIHNlcnZpY2VzIiBpbiBzb21lIGNvbnRleHRzLAogc3VjaCBhcyBieSB0aGUgInNlcnZpY2UiIGtleXdvcmQgaW4gYSAucHJvdG8gZmlsZSwgYnV0IHRoZXkgYXJlIGRpZmZlcmVudAogZnJvbSBBUEkgU2VydmljZXMsIHdoaWNoIHJlcHJlc2VudCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIGFuIGludGVyZmFjZQogYXMgb3Bwb3NlZCB0byBzaW1wbHkgYSBkZXNjcmlwdGlvbiBvZiBtZXRob2RzIGFuZCBiaW5kaW5ncy4gVGhleSBhcmUgYWxzbwogc29tZXRpbWVzIHNpbXBseSByZWZlcnJlZCB0byBhcyAiQVBJcyIgaW4gb3RoZXIgY29udGV4dHMsIHN1Y2ggYXMgdGhlIG5hbWUgb2YKIHRoaXMgbWVzc2FnZSBpdHNlbGYuIFNlZSBodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vYXBpcy9kZXNpZ24vZ2xvc3NhcnkgZm9yCiBkZXRhaWxlZCB0ZXJtaW5vbG9neS4KCgoKAwQAARIDNQgLCnsKBAQAAgASAzgCEhpuIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGlzIGludGVyZmFjZSwgaW5jbHVkaW5nIHBhY2thZ2UgbmFtZQogZm9sbG93ZWQgYnkgdGhlIGludGVyZmFjZSdzIHNpbXBsZSBuYW1lLgoKDAoFBAACAAUSAzgCCAoMCgUEAAIAARIDOAkNCgwKBQQAAgADEgM4EBEKQwoEBAACARIDOwIeGjYgVGhlIG1ldGhvZHMgb2YgdGhpcyBpbnRlcmZhY2UsIGluIHVuc3BlY2lmaWVkIG9yZGVyLgoKDAoFBAACAQQSAzsCCgoMCgUEAAIBBhIDOwsRCgwKBQQAAgEBEgM7EhkKDAoFBAACAQMSAzscHQo2CgQEAAICEgM+Ah4aKSBBbnkgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIGludGVyZmFjZS4KCgwKBQQAAgIEEgM+AgoKDAoFBAACAgYSAz4LEQoMCgUEAAICARIDPhIZCgwKBQQAAgIDEgM+HB0KgggKBAQAAgMSA1UCFRr0ByBBIHZlcnNpb24gc3RyaW5nIGZvciB0aGlzIGludGVyZmFjZS4gSWYgc3BlY2lmaWVkLCBtdXN0IGhhdmUgdGhlIGZvcm0KIGBtYWpvci12ZXJzaW9uLm1pbm9yLXZlcnNpb25gLCBhcyBpbiBgMS4xMGAuIElmIHRoZSBtaW5vciB2ZXJzaW9uIGlzCiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB6ZXJvLiBJZiB0aGUgZW50aXJlIHZlcnNpb24gZmllbGQgaXMgZW1wdHksIHRoZQogbWFqb3IgdmVyc2lvbiBpcyBkZXJpdmVkIGZyb20gdGhlIHBhY2thZ2UgbmFtZSwgYXMgb3V0bGluZWQgYmVsb3cuIElmIHRoZQogZmllbGQgaXMgbm90IGVtcHR5LCB0aGUgdmVyc2lvbiBpbiB0aGUgcGFja2FnZSBuYW1lIHdpbGwgYmUgdmVyaWZpZWQgdG8gYmUKIGNvbnNpc3RlbnQgd2l0aCB3aGF0IGlzIHByb3ZpZGVkIGhlcmUuCgogVGhlIHZlcnNpb25pbmcgc2NoZW1hIHVzZXMgW3NlbWFudGljCiB2ZXJzaW9uaW5nXShodHRwOi8vc2VtdmVyLm9yZykgd2hlcmUgdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyCiBpbmRpY2F0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aW9ucyBhcmUgaW5oZXJpdGVkIGFzIGZvbGxvd3M6CgogLSBJZiBhZnRlciBjb21tZW50IGFuZCB3aGl0ZXNwYWNlIHN0cmlwcGluZywgdGhlIGRvY3VtZW50YXRpb24KICAgc3RyaW5nIG9mIHRoZSByZWRlY2xhcmVkIG1ldGhvZCBpcyBlbXB0eSwgaXQgd2lsbCBiZSBpbmhlcml0ZWQKICAgZnJvbSB0aGUgb3JpZ2luYWwgbWV0aG9kLgoKIC0gRWFjaCBhbm5vdGF0aW9uIGJlbG9uZ2luZyB0byB0aGUgc2VydmljZSBjb25maWcgKGh0dHAsCiAgIHZpc2liaWxpdHkpIHdoaWNoIGlzIG5vdCBzZXQgaW4gdGhlIHJlZGVjbGFyZWQgbWV0aG9kIHdpbGwgYmUKICAgaW5oZXJpdGVkLgoKIC0gSWYgYW4gaHR0cCBhbm5vdGF0aW9uIGlzIGluaGVyaXRlZCwgdGhlIHBhdGggcGF0dGVybiB3aWxsIGJlCiAgIG1vZGlmaWVkIGFzIGZvbGxvd3MuIEFueSB2ZXJzaW9uIHByZWZpeCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZQogICB2ZXJzaW9uIG9mIHRoZSBpbmNsdWRpbmcgaW50ZXJmYWNlIHBsdXMgdGhlIFtyb290XVtdIHBhdGggaWYKICAgc3BlY2lmaWVkLgoKIEV4YW1wbGUgb2YgYSBzaW1wbGUgbWl4aW46CgogICAgIHBhY2thZ2UgZ29vZ2xlLmFjbC52MTsKICAgICBzZXJ2aWNlIEFjY2Vzc0NvbnRyb2wgewogICAgICAgLy8gR2V0IHRoZSB1bmRlcmx5aW5nIEFDTCBvYmplY3QuCiAgICAgICBycGMgR2V0QWNsKEdldEFjbFJlcXVlc3QpIHJldHVybnMgKEFjbCkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkuZ2V0ID0gIi92MS97cmVzb3VyY2U9Kip9OmdldEFjbCI7CiAgICAgICB9CiAgICAgfQoKICAgICBwYWNrYWdlIGdvb2dsZS5zdG9yYWdlLnYyOwogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICBycGMgR2V0QWNsKEdldEFjbFJlcXVlc3QpIHJldHVybnMgKEFjbCk7CgogICAgICAgLy8gR2V0IGEgZGF0YSByZWNvcmQuCiAgICAgICBycGMgR2V0RGF0YShHZXREYXRhUmVxdWVzdCkgcmV0dXJucyAoRGF0YSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkuZ2V0ID0gIi92Mi97cmVzb3VyY2U9Kip9IjsKICAgICAgIH0KICAgICB9CgogRXhhbXBsZSBvZiBhIG1peGluIGNvbmZpZ3VyYXRpb246CgogICAgIGFwaXM6CiAgICAgLSBuYW1lOiBnb29nbGUuc3RvcmFnZS52Mi5TdG9yYWdlCiAgICAgICBtaXhpbnM6CiAgICAgICAtIG5hbWU6IGdvb2dsZS5hY2wudjEuQWNjZXNzQ29udHJvbAoKIFRoZSBtaXhpbiBjb25zdHJ1Y3QgaW1wbGllcyB0aGF0IGFsbCBtZXRob2RzIGluIGBBY2Nlc3NDb250cm9sYCBhcmUKIGFsc28gZGVjbGFyZWQgd2l0aCBzYW1lIG5hbWUgYW5kIHJlcXVlc3QvcmVzcG9uc2UgdHlwZXMgaW4KIGBTdG9yYWdlYC4gQSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvciBvciBhbm5vdGF0aW9uIHByb2Nlc3NvciB3aWxsCiBzZWUgdGhlIGVmZmVjdGl2ZSBgU3RvcmFnZS5HZXRBY2xgIG1ldGhvZCBhZnRlciBpbmhlcml0aW5nCiBkb2N1bWVudGF0aW9uIGFuZCBhbm5vdGF0aW9ucyBhcyBmb2xsb3dzOgoKICAgICBzZXJ2aWNlIFN0b3JhZ2UgewogICAgICAgLy8gR2V0IHRoZSB1bmRlcmx5aW5nIEFDTCBvYmplY3QuCiAgICAgICBycGMgR2V0QWNsKEdldEFjbFJlcXVlc3QpIHJldHVybnMgKEFjbCkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkuZ2V0ID0gIi92Mi97cmVzb3VyY2U9Kip9OmdldEFjbCI7CiAgICAgICB9CiAgICAgICAuLi4KICAgICB9CgogTm90ZSBob3cgdGhlIHZlcnNpb24gaW4gdGhlIHBhdGggcGF0dGVybiBjaGFuZ2VkIGZyb20gYHYxYCB0byBgdjJgLgoKIElmIHRoZSBgcm9vdGAgZmllbGQgaW4gdGhlIG1peGluIGlzIHNwZWNpZmllZCwgaXQgc2hvdWxkIGJlIGEKIHJlbGF0aXZlIHBhdGggdW5kZXIgd2hpY2ggaW5oZXJpdGVkIEhUVFAgcGF0aHMgYXJlIHBsYWNlZC4gRXhhbXBsZToKCiAgICAgYXBpczoKICAgICAtIG5hbWU6IGdvb2dsZS5zdG9yYWdlLnYyLlN0b3JhZ2UKICAgICAgIG1peGluczoKICAgICAgIC0gbmFtZTogZ29vZ2xlLmFjbC52MS5BY2Nlc3NDb250cm9sCiAgICAgICAgIHJvb3Q6IGFjbHMKCiBUaGlzIGltcGxpZXMgdGhlIGZvbGxvd2luZyBpbmhlcml0ZWQgSFRUUCBhbm5vdGF0aW9uOgoKICAgICBzZXJ2aWNlIFN0b3JhZ2UgewogICAgICAgLy8gR2V0IHRoZSB1bmRlcmx5aW5nIEFDTCBvYmplY3QuCiAgICAgICBycGMgR2V0QWNsKEdldEFjbFJlcXVlc3QpIHJldHVybnMgKEFjbCkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkuZ2V0ID0gIi92Mi9hY2xzL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICAgIC4uLgogICAgIH0KCgsKAwQCARIEyAEIDQpMCgQEAgIAEgTKAQISGj4gVGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSBpbnRlcmZhY2Ugd2hpY2ggaXMgaW5jbHVkZWQuCgoNCgUEAgIABRIEygECCAoNCgUEAgIAARIEygEJDQoNCgUEAgIAAxIEygEQEQpbCgQEAgIBEgTOAQISGk0gSWYgbm9uLWVtcHR5IHNwZWNpZmllcyBhIHBhdGggdW5kZXIgd2hpY2ggaW5oZXJpdGVkIEhUVFAgcGF0aHMKIGFyZSByb290ZWQuCgoNCgUEAgIBBRIEzgECCAoNCgUEAgIBARIEzgEJDQoNCgUEAgIBAxIEzgEQEWIGcHJvdG8zCtglCh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiI6CghEdXJhdGlvbhIYCgdzZWNvbmRzGAEgASgDUgdzZWNvbmRzEhQKBW5hbm9zGAIgASgFUgVuYW5vc0KDAQoTY29tLmdvb2dsZS5wcm90b2J1ZkINRHVyYXRpb25Qcm90b1ABWjFnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9kdXJhdGlvbnBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzStojCgYSBB4AcwEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAB8KCQoCCB8SAyMAHwoICgEIEgMkAEgKCQoCCAsSAyQASAoICgEIEgMlACwKCQoCCAESAyUALAoICgEIEgMmAC4KCQoCCAgSAyYALgoICgEIEgMnACIKCQoCCAoSAycAIgoICgEIEgMoACEKCQoCCCQSAygAIQqeEAoCBAASBGYAcwEakRAgQSBEdXJhdGlvbiByZXByZXNlbnRzIGEgc2lnbmVkLCBmaXhlZC1sZW5ndGggc3BhbiBvZiB0aW1lIHJlcHJlc2VudGVkCiBhcyBhIGNvdW50IG9mIHNlY29uZHMgYW5kIGZyYWN0aW9ucyBvZiBzZWNvbmRzIGF0IG5hbm9zZWNvbmQKIHJlc29sdXRpb24uIEl0IGlzIGluZGVwZW5kZW50IG9mIGFueSBjYWxlbmRhciBhbmQgY29uY2VwdHMgbGlrZSAiZGF5Igogb3IgIm1vbnRoIi4gSXQgaXMgcmVsYXRlZCB0byBUaW1lc3RhbXAgaW4gdGhhdCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCiB0d28gVGltZXN0YW1wIHZhbHVlcyBpcyBhIER1cmF0aW9uIGFuZCBpdCBjYW4gYmUgYWRkZWQgb3Igc3VidHJhY3RlZAogZnJvbSBhIFRpbWVzdGFtcC4gUmFuZ2UgaXMgYXBwcm94aW1hdGVseSArLTEwLDAwMCB5ZWFycy4KCiAjIEV4YW1wbGVzCgogRXhhbXBsZSAxOiBDb21wdXRlIER1cmF0aW9uIGZyb20gdHdvIFRpbWVzdGFtcHMgaW4gcHNldWRvIGNvZGUuCgogICAgIFRpbWVzdGFtcCBzdGFydCA9IC4uLjsKICAgICBUaW1lc3RhbXAgZW5kID0gLi4uOwogICAgIER1cmF0aW9uIGR1cmF0aW9uID0gLi4uOwoKICAgICBkdXJhdGlvbi5zZWNvbmRzID0gZW5kLnNlY29uZHMgLSBzdGFydC5zZWNvbmRzOwogICAgIGR1cmF0aW9uLm5hbm9zID0gZW5kLm5hbm9zIC0gc3RhcnQubmFub3M7CgogICAgIGlmIChkdXJhdGlvbi5zZWNvbmRzIDwgMCAmJiBkdXJhdGlvbi5uYW5vcyA+IDApIHsKICAgICAgIGR1cmF0aW9uLnNlY29uZHMgKz0gMTsKICAgICAgIGR1cmF0aW9uLm5hbm9zIC09IDEwMDAwMDAwMDA7CiAgICAgfSBlbHNlIGlmIChkdXJhdGlvbi5zZWNvbmRzID4gMCAmJiBkdXJhdGlvbi5uYW5vcyA8IDApIHsKICAgICAgIGR1cmF0aW9uLnNlY29uZHMgLT0gMTsKICAgICAgIGR1cmF0aW9uLm5hbm9zICs9IDEwMDAwMDAwMDA7CiAgICAgfQoKIEV4YW1wbGUgMjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBUaW1lc3RhbXAgKyBEdXJhdGlvbiBpbiBwc2V1ZG8gY29kZS4KCiAgICAgVGltZXN0YW1wIHN0YXJ0ID0gLi4uOwogICAgIER1cmF0aW9uIGR1cmF0aW9uID0gLi4uOwogICAgIFRpbWVzdGFtcCBlbmQgPSAuLi47CgogICAgIGVuZC5zZWNvbmRzID0gc3RhcnQuc2Vjb25kcyArIGR1cmF0aW9uLnNlY29uZHM7CiAgICAgZW5kLm5hbm9zID0gc3RhcnQubmFub3MgKyBkdXJhdGlvbi5uYW5vczsKCiAgICAgaWYgKGVuZC5uYW5vcyA8IDApIHsKICAgICAgIGVuZC5zZWNvbmRzIC09IDE7CiAgICAgICBlbmQubmFub3MgKz0gMTAwMDAwMDAwMDsKICAgICB9IGVsc2UgaWYgKGVuZC5uYW5vcyA+PSAxMDAwMDAwMDAwKSB7CiAgICAgICBlbmQuc2Vjb25kcyArPSAxOwogICAgICAgZW5kLm5hbm9zIC09IDEwMDAwMDAwMDA7CiAgICAgfQoKIEV4YW1wbGUgMzogQ29tcHV0ZSBEdXJhdGlvbiBmcm9tIGRhdGV0aW1lLnRpbWVkZWx0YSBpbiBQeXRob24uCgogICAgIHRkID0gZGF0ZXRpbWUudGltZWRlbHRhKGRheXM9MywgbWludXRlcz0xMCkKICAgICBkdXJhdGlvbiA9IER1cmF0aW9uKCkKICAgICBkdXJhdGlvbi5Gcm9tVGltZWRlbHRhKHRkKQoKICMgSlNPTiBNYXBwaW5nCgogSW4gSlNPTiBmb3JtYXQsIHRoZSBEdXJhdGlvbiB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgcmF0aGVyIHRoYW4gYW4KIG9iamVjdCwgd2hlcmUgdGhlIHN0cmluZyBlbmRzIGluIHRoZSBzdWZmaXggInMiIChpbmRpY2F0aW5nIHNlY29uZHMpIGFuZAogaXMgcHJlY2VkZWQgYnkgdGhlIG51bWJlciBvZiBzZWNvbmRzLCB3aXRoIG5hbm9zZWNvbmRzIGV4cHJlc3NlZCBhcwogZnJhY3Rpb25hbCBzZWNvbmRzLiBGb3IgZXhhbXBsZSwgMyBzZWNvbmRzIHdpdGggMCBuYW5vc2Vjb25kcyBzaG91bGQgYmUKIGVuY29kZWQgaW4gSlNPTiBmb3JtYXQgYXMgIjNzIiwgd2hpbGUgMyBzZWNvbmRzIGFuZCAxIG5hbm9zZWNvbmQgc2hvdWxkCiBiZSBleHByZXNzZWQgaW4gSlNPTiBmb3JtYXQgYXMgIjMuMDAwMDAwMDAxcyIsIGFuZCAzIHNlY29uZHMgYW5kIDEKIG1pY3Jvc2Vjb25kIHNob3VsZCBiZSBleHByZXNzZWQgaW4gSlNPTiBmb3JtYXQgYXMgIjMuMDAwMDAxcyIuCgoKCgoKAwQAARIDZggQCtwBCgQEAAIAEgNqAhQazgEgU2lnbmVkIHNlY29uZHMgb2YgdGhlIHNwYW4gb2YgdGltZS4gTXVzdCBiZSBmcm9tIC0zMTUsNTc2LDAwMCwwMDAKIHRvICszMTUsNTc2LDAwMCwwMDAgaW5jbHVzaXZlLiBOb3RlOiB0aGVzZSBib3VuZHMgYXJlIGNvbXB1dGVkIGZyb206CiA2MCBzZWMvbWluICogNjAgbWluL2hyICogMjQgaHIvZGF5ICogMzY1LjI1IGRheXMveWVhciAqIDEwMDAwIHllYXJzCgoMCgUEAAIABRIDagIHCgwKBQQAAgABEgNqCA8KDAoFBAACAAMSA2oSEwqDAwoEBAACARIDcgISGvUCIFNpZ25lZCBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uIG9mIHRoZSBzcGFuCiBvZiB0aW1lLiBEdXJhdGlvbnMgbGVzcyB0aGFuIG9uZSBzZWNvbmQgYXJlIHJlcHJlc2VudGVkIHdpdGggYSAwCiBgc2Vjb25kc2AgZmllbGQgYW5kIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgYG5hbm9zYCBmaWVsZC4gRm9yIGR1cmF0aW9ucwogb2Ygb25lIHNlY29uZCBvciBtb3JlLCBhIG5vbi16ZXJvIHZhbHVlIGZvciB0aGUgYG5hbm9zYCBmaWVsZCBtdXN0IGJlCiBvZiB0aGUgc2FtZSBzaWduIGFzIHRoZSBgc2Vjb25kc2AgZmllbGQuIE11c3QgYmUgZnJvbSAtOTk5LDk5OSw5OTkKIHRvICs5OTksOTk5LDk5OSBpbmNsdXNpdmUuCgoMCgUEAAIBBRIDcgIHCgwKBQQAAgEBEgNyCA0KDAoFBAACAQMSA3IQEWIGcHJvdG8zCv8RChtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIHCgVFbXB0eUJ9ChNjb20uZ29vZ2xlLnByb3RvYnVmQgpFbXB0eVByb3RvUAFaLmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2VtcHR5cGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKvhAKBhIEHgAyEArMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMARQoJCgIICxIDIwBFCggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUAKwoJCgIICBIDJQArCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCggKAQgSAygAHwoJCgIIHxIDKAAfCrsCCgIEABIDMgAQGq8CIEEgZ2VuZXJpYyBlbXB0eSBtZXNzYWdlIHRoYXQgeW91IGNhbiByZS11c2UgdG8gYXZvaWQgZGVmaW5pbmcgZHVwbGljYXRlZAogZW1wdHkgbWVzc2FnZXMgaW4geW91ciBBUElzLiBBIHR5cGljYWwgZXhhbXBsZSBpcyB0byB1c2UgaXQgYXMgdGhlIHJlcXVlc3QKIG9yIHRoZSByZXNwb25zZSB0eXBlIG9mIGFuIEFQSSBtZXRob2QuIEZvciBpbnN0YW5jZToKCiAgICAgc2VydmljZSBGb28gewogICAgICAgcnBjIEJhcihnb29nbGUucHJvdG9idWYuRW1wdHkpIHJldHVybnMgKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSk7CiAgICAgfQoKCgoKAwQAARIDMggNYgZwcm90bzMKij0KIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvEg9nb29nbGUucHJvdG9idWYiIQoJRmllbGRNYXNrEhQKBXBhdGhzGAEgAygJUgVwYXRoc0KFAQoTY29tLmdvb2dsZS5wcm90b2J1ZkIORmllbGRNYXNrUHJvdG9QAVoyZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vZmllbGRtYXNrcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKoTsKBxIFHgD0AQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjACwKCQoCCAESAyMALAoICgEIEgMkAC8KCQoCCAgSAyQALwoICgEIEgMlACIKCQoCCAoSAyUAIgoICgEIEgMmACEKCQoCCCQSAyYAIQoICgEIEgMnAEkKCQoCCAsSAycASQoICgEIEgMoAB8KCQoCCB8SAygAHwqyLAoCBAASBvEBAPQBARqjLCBgRmllbGRNYXNrYCByZXByZXNlbnRzIGEgc2V0IG9mIHN5bWJvbGljIGZpZWxkIHBhdGhzLCBmb3IgZXhhbXBsZToKCiAgICAgcGF0aHM6ICJmLmEiCiAgICAgcGF0aHM6ICJmLmIuZCIKCiBIZXJlIGBmYCByZXByZXNlbnRzIGEgZmllbGQgaW4gc29tZSByb290IG1lc3NhZ2UsIGBhYCBhbmQgYGJgCiBmaWVsZHMgaW4gdGhlIG1lc3NhZ2UgZm91bmQgaW4gYGZgLCBhbmQgYGRgIGEgZmllbGQgZm91bmQgaW4gdGhlCiBtZXNzYWdlIGluIGBmLmJgLgoKIEZpZWxkIG1hc2tzIGFyZSB1c2VkIHRvIHNwZWNpZnkgYSBzdWJzZXQgb2YgZmllbGRzIHRoYXQgc2hvdWxkIGJlCiByZXR1cm5lZCBieSBhIGdldCBvcGVyYXRpb24gb3IgbW9kaWZpZWQgYnkgYW4gdXBkYXRlIG9wZXJhdGlvbi4KIEZpZWxkIG1hc2tzIGFsc28gaGF2ZSBhIGN1c3RvbSBKU09OIGVuY29kaW5nIChzZWUgYmVsb3cpLgoKICMgRmllbGQgTWFza3MgaW4gUHJvamVjdGlvbnMKCiBXaGVuIHVzZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBwcm9qZWN0aW9uLCBhIHJlc3BvbnNlIG1lc3NhZ2Ugb3IKIHN1Yi1tZXNzYWdlIGlzIGZpbHRlcmVkIGJ5IHRoZSBBUEkgdG8gb25seSBjb250YWluIHRob3NlIGZpZWxkcyBhcwogc3BlY2lmaWVkIGluIHRoZSBtYXNrLiBGb3IgZXhhbXBsZSwgaWYgdGhlIG1hc2sgaW4gdGhlIHByZXZpb3VzCiBleGFtcGxlIGlzIGFwcGxpZWQgdG8gYSByZXNwb25zZSBtZXNzYWdlIGFzIGZvbGxvd3M6CgogICAgIGYgewogICAgICAgYSA6IDIyCiAgICAgICBiIHsKICAgICAgICAgZCA6IDEKICAgICAgICAgeCA6IDIKICAgICAgIH0KICAgICAgIHkgOiAxMwogICAgIH0KICAgICB6OiA4CgogVGhlIHJlc3VsdCB3aWxsIG5vdCBjb250YWluIHNwZWNpZmljIHZhbHVlcyBmb3IgZmllbGRzIHgseSBhbmQgegogKHRoZWlyIHZhbHVlIHdpbGwgYmUgc2V0IHRvIHRoZSBkZWZhdWx0LCBhbmQgb21pdHRlZCBpbiBwcm90byB0ZXh0CiBvdXRwdXQpOgoKCiAgICAgZiB7CiAgICAgICBhIDogMjIKICAgICAgIGIgewogICAgICAgICBkIDogMQogICAgICAgfQogICAgIH0KCiBBIHJlcGVhdGVkIGZpZWxkIGlzIG5vdCBhbGxvd2VkIGV4Y2VwdCBhdCB0aGUgbGFzdCBwb3NpdGlvbiBvZiBhCiBwYXRocyBzdHJpbmcuCgogSWYgYSBGaWVsZE1hc2sgb2JqZWN0IGlzIG5vdCBwcmVzZW50IGluIGEgZ2V0IG9wZXJhdGlvbiwgdGhlCiBvcGVyYXRpb24gYXBwbGllcyB0byBhbGwgZmllbGRzIChhcyBpZiBhIEZpZWxkTWFzayBvZiBhbGwgZmllbGRzCiBoYWQgYmVlbiBzcGVjaWZpZWQpLgoKIE5vdGUgdGhhdCBhIGZpZWxkIG1hc2sgZG9lcyBub3QgbmVjZXNzYXJpbHkgYXBwbHkgdG8gdGhlCiB0b3AtbGV2ZWwgcmVzcG9uc2UgbWVzc2FnZS4gSW4gY2FzZSBvZiBhIFJFU1QgZ2V0IG9wZXJhdGlvbiwgdGhlCiBmaWVsZCBtYXNrIGFwcGxpZXMgZGlyZWN0bHkgdG8gdGhlIHJlc3BvbnNlLCBidXQgaW4gY2FzZSBvZiBhIFJFU1QKIGxpc3Qgb3BlcmF0aW9uLCB0aGUgbWFzayBpbnN0ZWFkIGFwcGxpZXMgdG8gZWFjaCBpbmRpdmlkdWFsIG1lc3NhZ2UKIGluIHRoZSByZXR1cm5lZCByZXNvdXJjZSBsaXN0LiBJbiBjYXNlIG9mIGEgUkVTVCBjdXN0b20gbWV0aG9kLAogb3RoZXIgZGVmaW5pdGlvbnMgbWF5IGJlIHVzZWQuIFdoZXJlIHRoZSBtYXNrIGFwcGxpZXMgd2lsbCBiZQogY2xlYXJseSBkb2N1bWVudGVkIHRvZ2V0aGVyIHdpdGggaXRzIGRlY2xhcmF0aW9uIGluIHRoZSBBUEkuICBJbgogYW55IGNhc2UsIHRoZSBlZmZlY3Qgb24gdGhlIHJldHVybmVkIHJlc291cmNlL3Jlc291cmNlcyBpcyByZXF1aXJlZAogYmVoYXZpb3IgZm9yIEFQSXMuCgogIyBGaWVsZCBNYXNrcyBpbiBVcGRhdGUgT3BlcmF0aW9ucwoKIEEgZmllbGQgbWFzayBpbiB1cGRhdGUgb3BlcmF0aW9ucyBzcGVjaWZpZXMgd2hpY2ggZmllbGRzIG9mIHRoZQogdGFyZ2V0ZWQgcmVzb3VyY2UgYXJlIGdvaW5nIHRvIGJlIHVwZGF0ZWQuIFRoZSBBUEkgaXMgcmVxdWlyZWQKIHRvIG9ubHkgY2hhbmdlIHRoZSB2YWx1ZXMgb2YgdGhlIGZpZWxkcyBhcyBzcGVjaWZpZWQgaW4gdGhlIG1hc2sKIGFuZCBsZWF2ZSB0aGUgb3RoZXJzIHVudG91Y2hlZC4gSWYgYSByZXNvdXJjZSBpcyBwYXNzZWQgaW4gdG8KIGRlc2NyaWJlIHRoZSB1cGRhdGVkIHZhbHVlcywgdGhlIEFQSSBpZ25vcmVzIHRoZSB2YWx1ZXMgb2YgYWxsCiBmaWVsZHMgbm90IGNvdmVyZWQgYnkgdGhlIG1hc2suCgogSWYgYSByZXBlYXRlZCBmaWVsZCBpcyBzcGVjaWZpZWQgZm9yIGFuIHVwZGF0ZSBvcGVyYXRpb24sIG5ldyB2YWx1ZXMgd2lsbAogYmUgYXBwZW5kZWQgdG8gdGhlIGV4aXN0aW5nIHJlcGVhdGVkIGZpZWxkIGluIHRoZSB0YXJnZXQgcmVzb3VyY2UuIE5vdGUgdGhhdAogYSByZXBlYXRlZCBmaWVsZCBpcyBvbmx5IGFsbG93ZWQgaW4gdGhlIGxhc3QgcG9zaXRpb24gb2YgYSBgcGF0aHNgIHN0cmluZy4KCiBJZiBhIHN1Yi1tZXNzYWdlIGlzIHNwZWNpZmllZCBpbiB0aGUgbGFzdCBwb3NpdGlvbiBvZiB0aGUgZmllbGQgbWFzayBmb3IgYW4KIHVwZGF0ZSBvcGVyYXRpb24sIHRoZW4gbmV3IHZhbHVlIHdpbGwgYmUgbWVyZ2VkIGludG8gdGhlIGV4aXN0aW5nIHN1Yi1tZXNzYWdlCiBpbiB0aGUgdGFyZ2V0IHJlc291cmNlLgoKIEZvciBleGFtcGxlLCBnaXZlbiB0aGUgdGFyZ2V0IG1lc3NhZ2U6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEKICAgICAgICAgeDogMgogICAgICAgfQogICAgICAgYzogWzFdCiAgICAgfQoKIEFuZCBhbiB1cGRhdGUgbWVzc2FnZToKCiAgICAgZiB7CiAgICAgICBiIHsKICAgICAgICAgZDogMTAKICAgICAgIH0KICAgICAgIGM6IFsyXQogICAgIH0KCiB0aGVuIGlmIHRoZSBmaWVsZCBtYXNrIGlzOgoKICBwYXRoczogWyJmLmIiLCAiZi5jIl0KCiB0aGVuIHRoZSByZXN1bHQgd2lsbCBiZToKCiAgICAgZiB7CiAgICAgICBiIHsKICAgICAgICAgZDogMTAKICAgICAgICAgeDogMgogICAgICAgfQogICAgICAgYzogWzEsIDJdCiAgICAgfQoKIEFuIGltcGxlbWVudGF0aW9uIG1heSBwcm92aWRlIG9wdGlvbnMgdG8gb3ZlcnJpZGUgdGhpcyBkZWZhdWx0IGJlaGF2aW9yIGZvcgogcmVwZWF0ZWQgYW5kIG1lc3NhZ2UgZmllbGRzLgoKIEluIG9yZGVyIHRvIHJlc2V0IGEgZmllbGQncyB2YWx1ZSB0byB0aGUgZGVmYXVsdCwgdGhlIGZpZWxkIG11c3QKIGJlIGluIHRoZSBtYXNrIGFuZCBzZXQgdG8gdGhlIGRlZmF1bHQgdmFsdWUgaW4gdGhlIHByb3ZpZGVkIHJlc291cmNlLgogSGVuY2UsIGluIG9yZGVyIHRvIHJlc2V0IGFsbCBmaWVsZHMgb2YgYSByZXNvdXJjZSwgcHJvdmlkZSBhIGRlZmF1bHQKIGluc3RhbmNlIG9mIHRoZSByZXNvdXJjZSBhbmQgc2V0IGFsbCBmaWVsZHMgaW4gdGhlIG1hc2ssIG9yIGRvCiBub3QgcHJvdmlkZSBhIG1hc2sgYXMgZGVzY3JpYmVkIGJlbG93LgoKIElmIGEgZmllbGQgbWFzayBpcyBub3QgcHJlc2VudCBvbiB1cGRhdGUsIHRoZSBvcGVyYXRpb24gYXBwbGllcyB0bwogYWxsIGZpZWxkcyAoYXMgaWYgYSBmaWVsZCBtYXNrIG9mIGFsbCBmaWVsZHMgaGFzIGJlZW4gc3BlY2lmaWVkKS4KIE5vdGUgdGhhdCBpbiB0aGUgcHJlc2VuY2Ugb2Ygc2NoZW1hIGV2b2x1dGlvbiwgdGhpcyBtYXkgbWVhbiB0aGF0CiBmaWVsZHMgdGhlIGNsaWVudCBkb2VzIG5vdCBrbm93IGFuZCBoYXMgdGhlcmVmb3JlIG5vdCBmaWxsZWQgaW50bwogdGhlIHJlcXVlc3Qgd2lsbCBiZSByZXNldCB0byB0aGVpciBkZWZhdWx0LiBJZiB0aGlzIGlzIHVud2FudGVkCiBiZWhhdmlvciwgYSBzcGVjaWZpYyBzZXJ2aWNlIG1heSByZXF1aXJlIGEgY2xpZW50IHRvIGFsd2F5cyBzcGVjaWZ5CiBhIGZpZWxkIG1hc2ssIHByb2R1Y2luZyBhbiBlcnJvciBpZiBub3QuCgogQXMgd2l0aCBnZXQgb3BlcmF0aW9ucywgdGhlIGxvY2F0aW9uIG9mIHRoZSByZXNvdXJjZSB3aGljaAogZGVzY3JpYmVzIHRoZSB1cGRhdGVkIHZhbHVlcyBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlIGRlcGVuZHMgb24gdGhlCiBvcGVyYXRpb24ga2luZC4gSW4gYW55IGNhc2UsIHRoZSBlZmZlY3Qgb2YgdGhlIGZpZWxkIG1hc2sgaXMKIHJlcXVpcmVkIHRvIGJlIGhvbm9yZWQgYnkgdGhlIEFQSS4KCiAjIyBDb25zaWRlcmF0aW9ucyBmb3IgSFRUUCBSRVNUCgogVGhlIEhUVFAga2luZCBvZiBhbiB1cGRhdGUgb3BlcmF0aW9uIHdoaWNoIHVzZXMgYSBmaWVsZCBtYXNrIG11c3QKIGJlIHNldCB0byBQQVRDSCBpbnN0ZWFkIG9mIFBVVCBpbiBvcmRlciB0byBzYXRpc2Z5IEhUVFAgc2VtYW50aWNzCiAoUFVUIG11c3Qgb25seSBiZSB1c2VkIGZvciBmdWxsIHVwZGF0ZXMpLgoKICMgSlNPTiBFbmNvZGluZyBvZiBGaWVsZCBNYXNrcwoKIEluIEpTT04sIGEgZmllbGQgbWFzayBpcyBlbmNvZGVkIGFzIGEgc2luZ2xlIHN0cmluZyB3aGVyZSBwYXRocyBhcmUKIHNlcGFyYXRlZCBieSBhIGNvbW1hLiBGaWVsZHMgbmFtZSBpbiBlYWNoIHBhdGggYXJlIGNvbnZlcnRlZAogdG8vZnJvbSBsb3dlci1jYW1lbCBuYW1pbmcgY29udmVudGlvbnMuCgogQXMgYW4gZXhhbXBsZSwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBtZXNzYWdlIGRlY2xhcmF0aW9uczoKCiAgICAgbWVzc2FnZSBQcm9maWxlIHsKICAgICAgIFVzZXIgdXNlciA9IDE7CiAgICAgICBQaG90byBwaG90byA9IDI7CiAgICAgfQogICAgIG1lc3NhZ2UgVXNlciB7CiAgICAgICBzdHJpbmcgZGlzcGxheV9uYW1lID0gMTsKICAgICAgIHN0cmluZyBhZGRyZXNzID0gMjsKICAgICB9CgogSW4gcHJvdG8gYSBmaWVsZCBtYXNrIGZvciBgUHJvZmlsZWAgbWF5IGxvb2sgYXMgc3VjaDoKCiAgICAgbWFzayB7CiAgICAgICBwYXRoczogInVzZXIuZGlzcGxheV9uYW1lIgogICAgICAgcGF0aHM6ICJwaG90byIKICAgICB9CgogSW4gSlNPTiwgdGhlIHNhbWUgbWFzayBpcyByZXByZXNlbnRlZCBhcyBiZWxvdzoKCiAgICAgewogICAgICAgbWFzazogInVzZXIuZGlzcGxheU5hbWUscGhvdG8iCiAgICAgfQoKICMgRmllbGQgTWFza3MgYW5kIE9uZW9mIEZpZWxkcwoKIEZpZWxkIG1hc2tzIHRyZWF0IGZpZWxkcyBpbiBvbmVvZnMganVzdCBhcyByZWd1bGFyIGZpZWxkcy4gQ29uc2lkZXIgdGhlCiBmb2xsb3dpbmcgbWVzc2FnZToKCiAgICAgbWVzc2FnZSBTYW1wbGVNZXNzYWdlIHsKICAgICAgIG9uZW9mIHRlc3Rfb25lb2YgewogICAgICAgICBzdHJpbmcgbmFtZSA9IDQ7CiAgICAgICAgIFN1Yk1lc3NhZ2Ugc3ViX21lc3NhZ2UgPSA5OwogICAgICAgfQogICAgIH0KCiBUaGUgZmllbGQgbWFzayBjYW4gYmU6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJuYW1lIgogICAgIH0KCiBPcjoKCiAgICAgbWFzayB7CiAgICAgICBwYXRoczogInN1Yl9tZXNzYWdlIgogICAgIH0KCiBOb3RlIHRoYXQgb25lb2YgdHlwZSBuYW1lcyAoInRlc3Rfb25lb2YiIGluIHRoaXMgY2FzZSkgY2Fubm90IGJlIHVzZWQgaW4KIHBhdGhzLgoKICMjIEZpZWxkIE1hc2sgVmVyaWZpY2F0aW9uCgogVGhlIGltcGxlbWVudGF0aW9uIG9mIGFueSBBUEkgbWV0aG9kIHdoaWNoIGhhcyBhIEZpZWxkTWFzayB0eXBlIGZpZWxkIGluIHRoZQogcmVxdWVzdCBzaG91bGQgdmVyaWZ5IHRoZSBpbmNsdWRlZCBmaWVsZCBwYXRocywgYW5kIHJldHVybiBhbgogYElOVkFMSURfQVJHVU1FTlRgIGVycm9yIGlmIGFueSBwYXRoIGlzIHVubWFwcGFibGUuCgoLCgMEAAESBPEBCBEKLAoEBAACABIE8wECHBoeIFRoZSBzZXQgb2YgZmllbGQgbWFzayBwYXRocy4KCg0KBQQAAgAEEgTzAQIKCg0KBQQAAgAFEgTzAQsRCg0KBQQAAgABEgTzARIXCg0KBQQAAgADEgTzARobYgZwcm90bzMKxzEKH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiI7CglUaW1lc3RhbXASGAoHc2Vjb25kcxgBIAEoA1IHc2Vjb25kcxIUCgVuYW5vcxgCIAEoBVIFbmFub3NChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSsUvCgcSBR4AkgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAfCgkKAggfEgMjAB8KCAoBCBIDJABJCgkKAggLEgMkAEkKCAoBCBIDJQAsCgkKAggBEgMlACwKCAoBCBIDJgAvCgkKAggIEgMmAC8KCAoBCBIDJwAiCgkKAggKEgMnACIKCAoBCBIDKAAhCgkKAggkEgMoACEK3h0KAgQAEgaHAQCSAQEazx0gQSBUaW1lc3RhbXAgcmVwcmVzZW50cyBhIHBvaW50IGluIHRpbWUgaW5kZXBlbmRlbnQgb2YgYW55IHRpbWUgem9uZSBvciBsb2NhbAogY2FsZW5kYXIsIGVuY29kZWQgYXMgYSBjb3VudCBvZiBzZWNvbmRzIGFuZCBmcmFjdGlvbnMgb2Ygc2Vjb25kcyBhdAogbmFub3NlY29uZCByZXNvbHV0aW9uLiBUaGUgY291bnQgaXMgcmVsYXRpdmUgdG8gYW4gZXBvY2ggYXQgVVRDIG1pZG5pZ2h0IG9uCiBKYW51YXJ5IDEsIDE5NzAsIGluIHRoZSBwcm9sZXB0aWMgR3JlZ29yaWFuIGNhbGVuZGFyIHdoaWNoIGV4dGVuZHMgdGhlCiBHcmVnb3JpYW4gY2FsZW5kYXIgYmFja3dhcmRzIHRvIHllYXIgb25lLgoKIEFsbCBtaW51dGVzIGFyZSA2MCBzZWNvbmRzIGxvbmcuIExlYXAgc2Vjb25kcyBhcmUgInNtZWFyZWQiIHNvIHRoYXQgbm8gbGVhcAogc2Vjb25kIHRhYmxlIGlzIG5lZWRlZCBmb3IgaW50ZXJwcmV0YXRpb24sIHVzaW5nIGEgWzI0LWhvdXIgbGluZWFyCiBzbWVhcl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vdGltZS9zbWVhcikuCgogVGhlIHJhbmdlIGlzIGZyb20gMDAwMS0wMS0wMVQwMDowMDowMFogdG8gOTk5OS0xMi0zMVQyMzo1OTo1OS45OTk5OTk5OTlaLiBCeQogcmVzdHJpY3RpbmcgdG8gdGhhdCByYW5nZSwgd2UgZW5zdXJlIHRoYXQgd2UgY2FuIGNvbnZlcnQgdG8gYW5kIGZyb20gW1JGQwogMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBkYXRlIHN0cmluZ3MuCgogIyBFeGFtcGxlcwoKIEV4YW1wbGUgMTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgdGltZSgpYC4KCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModGltZShOVUxMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygwKTsKCiBFeGFtcGxlIDI6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYGdldHRpbWVvZmRheSgpYC4KCiAgICAgc3RydWN0IHRpbWV2YWwgdHY7CiAgICAgZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHR2LnR2X3NlYyk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcyh0di50dl91c2VjICogMTAwMCk7CgogRXhhbXBsZSAzOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFdpbjMyIGBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgpYC4KCiAgICAgRklMRVRJTUUgZnQ7CiAgICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoJmZ0KTsKICAgICBVSU5UNjQgdGlja3MgPSAoKChVSU5UNjQpZnQuZHdIaWdoRGF0ZVRpbWUpIDw8IDMyKSB8IGZ0LmR3TG93RGF0ZVRpbWU7CgogICAgIC8vIEEgV2luZG93cyB0aWNrIGlzIDEwMCBuYW5vc2Vjb25kcy4gV2luZG93cyBlcG9jaCAxNjAxLTAxLTAxVDAwOjAwOjAwWgogICAgIC8vIGlzIDExNjQ0NDczNjAwIHNlY29uZHMgYmVmb3JlIFVuaXggZXBvY2ggMTk3MC0wMS0wMVQwMDowMDowMFouCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHMoKElOVDY0KSAoKHRpY2tzIC8gMTAwMDAwMDApIC0gMTE2NDQ0NzM2MDBMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoKElOVDMyKSAoKHRpY2tzICUgMTAwMDAwMDApICogMTAwKSk7CgogRXhhbXBsZSA0OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIEphdmEgYFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpYC4KCiAgICAgbG9uZyBtaWxsaXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcCA9IFRpbWVzdGFtcC5uZXdCdWlsZGVyKCkuc2V0U2Vjb25kcyhtaWxsaXMgLyAxMDAwKQogICAgICAgICAuc2V0TmFub3MoKGludCkgKChtaWxsaXMgJSAxMDAwKSAqIDEwMDAwMDApKS5idWlsZCgpOwoKCiBFeGFtcGxlIDU6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gSmF2YSBgSW5zdGFudC5ub3coKWAuCgogICAgIEluc3RhbnQgbm93ID0gSW5zdGFudC5ub3coKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcCA9CiAgICAgICAgIFRpbWVzdGFtcC5uZXdCdWlsZGVyKCkuc2V0U2Vjb25kcyhub3cuZ2V0RXBvY2hTZWNvbmQoKSkKICAgICAgICAgICAgIC5zZXROYW5vcyhub3cuZ2V0TmFubygpKS5idWlsZCgpOwoKCiBFeGFtcGxlIDY6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gY3VycmVudCB0aW1lIGluIFB5dGhvbi4KCiAgICAgdGltZXN0YW1wID0gVGltZXN0YW1wKCkKICAgICB0aW1lc3RhbXAuR2V0Q3VycmVudFRpbWUoKQoKICMgSlNPTiBNYXBwaW5nCgogSW4gSlNPTiBmb3JtYXQsIHRoZSBUaW1lc3RhbXAgdHlwZSBpcyBlbmNvZGVkIGFzIGEgc3RyaW5nIGluIHRoZQogW1JGQyAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGZvcm1hdC4gVGhhdCBpcywgdGhlCiBmb3JtYXQgaXMgInt5ZWFyfS17bW9udGh9LXtkYXl9VHtob3VyfTp7bWlufTp7c2VjfVsue2ZyYWNfc2VjfV1aIgogd2hlcmUge3llYXJ9IGlzIGFsd2F5cyBleHByZXNzZWQgdXNpbmcgZm91ciBkaWdpdHMgd2hpbGUge21vbnRofSwge2RheX0sCiB7aG91cn0sIHttaW59LCBhbmQge3NlY30gYXJlIHplcm8tcGFkZGVkIHRvIHR3byBkaWdpdHMgZWFjaC4gVGhlIGZyYWN0aW9uYWwKIHNlY29uZHMsIHdoaWNoIGNhbiBnbyB1cCB0byA5IGRpZ2l0cyAoaS5lLiB1cCB0byAxIG5hbm9zZWNvbmQgcmVzb2x1dGlvbiksCiBhcmUgb3B0aW9uYWwuIFRoZSAiWiIgc3VmZml4IGluZGljYXRlcyB0aGUgdGltZXpvbmUgKCJVVEMiKTsgdGhlIHRpbWV6b25lCiBpcyByZXF1aXJlZC4gQSBwcm90bzMgSlNPTiBzZXJpYWxpemVyIHNob3VsZCBhbHdheXMgdXNlIFVUQyAoYXMgaW5kaWNhdGVkIGJ5CiAiWiIpIHdoZW4gcHJpbnRpbmcgdGhlIFRpbWVzdGFtcCB0eXBlIGFuZCBhIHByb3RvMyBKU09OIHBhcnNlciBzaG91bGQgYmUKIGFibGUgdG8gYWNjZXB0IGJvdGggVVRDIGFuZCBvdGhlciB0aW1lem9uZXMgKGFzIGluZGljYXRlZCBieSBhbiBvZmZzZXQpLgoKIEZvciBleGFtcGxlLCAiMjAxNy0wMS0xNVQwMTozMDoxNS4wMVoiIGVuY29kZXMgMTUuMDEgc2Vjb25kcyBwYXN0CiAwMTozMCBVVEMgb24gSmFudWFyeSAxNSwgMjAxNy4KCiBJbiBKYXZhU2NyaXB0LCBvbmUgY2FuIGNvbnZlcnQgYSBEYXRlIG9iamVjdCB0byB0aGlzIGZvcm1hdCB1c2luZyB0aGUKIHN0YW5kYXJkCiBbdG9JU09TdHJpbmcoKV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS90b0lTT1N0cmluZykKIG1ldGhvZC4gSW4gUHl0aG9uLCBhIHN0YW5kYXJkIGBkYXRldGltZS5kYXRldGltZWAgb2JqZWN0IGNhbiBiZSBjb252ZXJ0ZWQKIHRvIHRoaXMgZm9ybWF0IHVzaW5nCiBbYHN0cmZ0aW1lYF0oaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L3RpbWUuaHRtbCN0aW1lLnN0cmZ0aW1lKSB3aXRoCiB0aGUgdGltZSBmb3JtYXQgc3BlYyAnJVktJW0tJWRUJUg6JU06JVMuJWZaJy4gTGlrZXdpc2UsIGluIEphdmEsIG9uZSBjYW4gdXNlCiB0aGUgSm9kYSBUaW1lJ3MgW2BJU09EYXRlVGltZUZvcm1hdC5kYXRlVGltZSgpYF0oCiBodHRwOi8vd3d3LmpvZGEub3JnL2pvZGEtdGltZS9hcGlkb2NzL29yZy9qb2RhL3RpbWUvZm9ybWF0L0lTT0RhdGVUaW1lRm9ybWF0Lmh0bWwjZGF0ZVRpbWUlMkQlMkQKICkgdG8gb2J0YWluIGEgZm9ybWF0dGVyIGNhcGFibGUgb2YgZ2VuZXJhdGluZyB0aW1lc3RhbXBzIGluIHRoaXMgZm9ybWF0LgoKCgoLCgMEAAESBIcBCBEKnQEKBAQAAgASBIsBAhQajgEgUmVwcmVzZW50cyBzZWNvbmRzIG9mIFVUQyB0aW1lIHNpbmNlIFVuaXggZXBvY2gKIDE5NzAtMDEtMDFUMDA6MDA6MDBaLiBNdXN0IGJlIGZyb20gMDAwMS0wMS0wMVQwMDowMDowMFogdG8KIDk5OTktMTItMzFUMjM6NTk6NTlaIGluY2x1c2l2ZS4KCg0KBQQAAgAFEgSLAQIHCg0KBQQAAgABEgSLAQgPCg0KBQQAAgADEgSLARITCuUBCgQEAAIBEgSRAQISGtYBIE5vbi1uZWdhdGl2ZSBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uLiBOZWdhdGl2ZQogc2Vjb25kIHZhbHVlcyB3aXRoIGZyYWN0aW9ucyBtdXN0IHN0aWxsIGhhdmUgbm9uLW5lZ2F0aXZlIG5hbm9zIHZhbHVlcwogdGhhdCBjb3VudCBmb3J3YXJkIGluIHRpbWUuIE11c3QgYmUgZnJvbSAwIHRvIDk5OSw5OTksOTk5CiBpbmNsdXNpdmUuCgoNCgUEAAIBBRIEkQECBwoNCgUEAAIBARIEkQEIDQoNCgUEAAIBAxIEkQEQEWIGcHJvdG8zCs8jCh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIjCgtEb3VibGVWYWx1ZRIUCgV2YWx1ZRgBIAEoAVIFdmFsdWUiIgoKRmxvYXRWYWx1ZRIUCgV2YWx1ZRgBIAEoAlIFdmFsdWUiIgoKSW50NjRWYWx1ZRIUCgV2YWx1ZRgBIAEoA1IFdmFsdWUiIwoLVUludDY0VmFsdWUSFAoFdmFsdWUYASABKARSBXZhbHVlIiIKCkludDMyVmFsdWUSFAoFdmFsdWUYASABKAVSBXZhbHVlIiMKC1VJbnQzMlZhbHVlEhQKBXZhbHVlGAEgASgNUgV2YWx1ZSIhCglCb29sVmFsdWUSFAoFdmFsdWUYASABKAhSBXZhbHVlIiMKC1N0cmluZ1ZhbHVlEhQKBXZhbHVlGAEgASgJUgV2YWx1ZSIiCgpCeXRlc1ZhbHVlEhQKBXZhbHVlGAEgASgMUgV2YWx1ZUKDAQoTY29tLmdvb2dsZS5wcm90b2J1ZkINV3JhcHBlcnNQcm90b1ABWjFnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi93cmFwcGVyc3Bi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSsYfCgYSBCgAegEK2xAKAQwSAygAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMowEIFdyYXBwZXJzIGZvciBwcmltaXRpdmUgKG5vbi1tZXNzYWdlKSB0eXBlcy4gVGhlc2UgdHlwZXMg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YWdlIGZvciBgYm9vbGAuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBCb29sVmFsdWVgIGlzIEpTT04gYHRydWVgIGFuZCBgZmFsc2VgLgoKCgoDBAYBEgNnCBEKHgoEBAYCABIDaQIRGhEgVGhlIGJvb2wgdmFsdWUuCgoMCgUEBgIABRIDaQIGCgwKBQQGAgABEgNpBwwKDAoFBAYCAAMSA2kPEApnCgIEBxIEbwByARpbIFdyYXBwZXIgbWVzc2FnZSBmb3IgYHN0cmluZ2AuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBTdHJpbmdWYWx1ZWAgaXMgSlNPTiBzdHJpbmcuCgoKCgMEBwESA28IEwogCgQEBwIAEgNxAhMaEyBUaGUgc3RyaW5nIHZhbHVlLgoKDAoFBAcCAAUSA3ECCAoMCgUEBwIAARIDcQkOCgwKBQQHAgADEgNxERIKZQoCBAgSBHcAegEaWSBXcmFwcGVyIG1lc3NhZ2UgZm9yIGBieXRlc2AuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBCeXRlc1ZhbHVlYCBpcyBKU09OIHN0cmluZy4KCgoKAwQIARIDdwgSCh8KBAQIAgASA3kCEhoSIFRoZSBieXRlcyB2YWx1ZS4KCgwKBQQIAgAFEgN5AgcKDAoFBAgCAAESA3kIDQoMCgUECAIAAxIDeRARYgZwcm90bzMK52AKL2dvb2dsZS9wcm90b2J1Zi91bml0dGVzdF93ZWxsX2tub3duX3R5cGVzLnByb3RvEhFwcm90b2J1Zl91bml0dGVzdBoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxoZZ29vZ2xlL3Byb3RvYnVmL2FwaS5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvGiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8aHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8aH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8aGmdvb2dsZS9wcm90b2J1Zi90eXBlLnByb3RvGh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8itAkKElRlc3RXZWxsS25vd25UeXBlcxIxCglhbnlfZmllbGQYASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UghhbnlGaWVsZBIxCglhcGlfZmllbGQYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpUghhcGlGaWVsZBJACg5kdXJhdGlvbl9maWVsZBgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblINZHVyYXRpb25GaWVsZBI3CgtlbXB0eV9maWVsZBgEIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIKZW1wdHlGaWVsZBJEChBmaWVsZF9tYXNrX2ZpZWxkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IOZmllbGRNYXNrRmllbGQSUAoUc291cmNlX2NvbnRleHRfZmllbGQYBiABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFISc291cmNlQ29udGV4dEZpZWxkEjoKDHN0cnVjdF9maWVsZBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSC3N0cnVjdEZpZWxkEkMKD3RpbWVzdGFtcF9maWVsZBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSDnRpbWVzdGFtcEZpZWxkEjQKCnR5cGVfZmllbGQYCSABKAsyFS5nb29nbGUucHJvdG9idWYuVHlwZVIJdHlwZUZpZWxkEj8KDGRvdWJsZV9maWVsZBgKIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVILZG91YmxlRmllbGQSPAoLZmxvYXRfZmllbGQYCyABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIKZmxvYXRGaWVsZBI8CgtpbnQ2NF9maWVsZBgMIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUgppbnQ2NEZpZWxkEj8KDHVpbnQ2NF9maWVsZBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVILdWludDY0RmllbGQSPAoLaW50MzJfZmllbGQYDiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIKaW50MzJGaWVsZBI/Cgx1aW50MzJfZmllbGQYDyABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSC3VpbnQzMkZpZWxkEjkKCmJvb2xfZmllbGQYECABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUglib29sRmllbGQSPwoMc3RyaW5nX2ZpZWxkGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUgtzdHJpbmdGaWVsZBI8CgtieXRlc19maWVsZBgSIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlUgpieXRlc0ZpZWxkEjcKC3ZhbHVlX2ZpZWxkGBMgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgp2YWx1ZUZpZWxkIv8IChZSZXBlYXRlZFdlbGxLbm93blR5cGVzEjEKCWFueV9maWVsZBgBIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSCGFueUZpZWxkEjEKCWFwaV9maWVsZBgCIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSCGFwaUZpZWxkEkAKDmR1cmF0aW9uX2ZpZWxkGAMgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUg1kdXJhdGlvbkZpZWxkEjcKC2VtcHR5X2ZpZWxkGAQgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgplbXB0eUZpZWxkEkQKEGZpZWxkX21hc2tfZmllbGQYBSADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUg5maWVsZE1hc2tGaWVsZBJQChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAMoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UhJzb3VyY2VDb250ZXh0RmllbGQSOgoMc3RydWN0X2ZpZWxkGAcgAygLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFILc3RydWN0RmllbGQSQwoPdGltZXN0YW1wX2ZpZWxkGAggAygLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIOdGltZXN0YW1wRmllbGQSNAoKdHlwZV9maWVsZBgJIAMoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlUgl0eXBlRmllbGQSPwoMZG91YmxlX2ZpZWxkGAogAygLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgtkb3VibGVGaWVsZBI8CgtmbG9hdF9maWVsZBgLIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUgpmbG9hdEZpZWxkEjwKC2ludDY0X2ZpZWxkGAwgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSCmludDY0RmllbGQSPwoMdWludDY0X2ZpZWxkGA0gAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUgt1aW50NjRGaWVsZBI8CgtpbnQzMl9maWVsZBgOIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUgppbnQzMkZpZWxkEj8KDHVpbnQzMl9maWVsZBgPIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVILdWludDMyRmllbGQSOQoKYm9vbF9maWVsZBgQIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSCWJvb2xGaWVsZBI/CgxzdHJpbmdfZmllbGQYESADKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSC3N0cmluZ0ZpZWxkEjwKC2J5dGVzX2ZpZWxkGBIgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSCmJ5dGVzRmllbGQirwkKE09uZW9mV2VsbEtub3duVHlwZXMSMwoJYW55X2ZpZWxkGAEgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUgAUghhbnlGaWVsZBIzCglhcGlfZmllbGQYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpSABSCGFwaUZpZWxkEkIKDmR1cmF0aW9uX2ZpZWxkGAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uSABSDWR1cmF0aW9uRmllbGQSOQoLZW1wdHlfZmllbGQYBCABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlIAFIKZW1wdHlGaWVsZBJGChBmaWVsZF9tYXNrX2ZpZWxkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0gAUg5maWVsZE1hc2tGaWVsZBJSChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0SABSEnNvdXJjZUNvbnRleHRGaWVsZBI8CgxzdHJ1Y3RfZmllbGQYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SABSC3N0cnVjdEZpZWxkEkUKD3RpbWVzdGFtcF9maWVsZBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAFIOdGltZXN0YW1wRmllbGQSNgoKdHlwZV9maWVsZBgJIAEoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlSABSCXR5cGVGaWVsZBJBCgxkb3VibGVfZmllbGQYCiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVIAFILZG91YmxlRmllbGQSPgoLZmxvYXRfZmllbGQYCyABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZUgAUgpmbG9hdEZpZWxkEj4KC2ludDY0X2ZpZWxkGAwgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVIAFIKaW50NjRGaWVsZBJBCgx1aW50NjRfZmllbGQYDSABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVIAFILdWludDY0RmllbGQSPgoLaW50MzJfZmllbGQYDiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZUgAUgppbnQzMkZpZWxkEkEKDHVpbnQzMl9maWVsZBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZUgAUgt1aW50MzJGaWVsZBI7Cgpib29sX2ZpZWxkGBAgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZUgAUglib29sRmllbGQSQQoMc3RyaW5nX2ZpZWxkGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlSABSC3N0cmluZ0ZpZWxkEj4KC2J5dGVzX2ZpZWxkGBIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVIAFIKYnl0ZXNGaWVsZEINCgtvbmVvZl9maWVsZCLYGQoRTWFwV2VsbEtub3duVHlwZXMSTwoJYW55X2ZpZWxkGAEgAygLMjIucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQW55RmllbGRFbnRyeVIIYW55RmllbGQSTwoJYXBpX2ZpZWxkGAIgAygLMjIucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQXBpRmllbGRFbnRyeVIIYXBpRmllbGQSXgoOZHVyYXRpb25fZmllbGQYAyADKAsyNy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5EdXJhdGlvbkZpZWxkRW50cnlSDWR1cmF0aW9uRmllbGQSVQoLZW1wdHlfZmllbGQYBCADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5FbXB0eUZpZWxkRW50cnlSCmVtcHR5RmllbGQSYgoQZmllbGRfbWFza19maWVsZBgFIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkZpZWxkTWFza0ZpZWxkRW50cnlSDmZpZWxkTWFza0ZpZWxkEm4KFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgAygLMjwucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuU291cmNlQ29udGV4dEZpZWxkRW50cnlSEnNvdXJjZUNvbnRleHRGaWVsZBJYCgxzdHJ1Y3RfZmllbGQYByADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5TdHJ1Y3RGaWVsZEVudHJ5UgtzdHJ1Y3RGaWVsZBJhCg90aW1lc3RhbXBfZmllbGQYCCADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5UaW1lc3RhbXBGaWVsZEVudHJ5Ug50aW1lc3RhbXBGaWVsZBJSCgp0eXBlX2ZpZWxkGAkgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuVHlwZUZpZWxkRW50cnlSCXR5cGVGaWVsZBJYCgxkb3VibGVfZmllbGQYCiADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Eb3VibGVGaWVsZEVudHJ5Ugtkb3VibGVGaWVsZBJVCgtmbG9hdF9maWVsZBgLIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkZsb2F0RmllbGRFbnRyeVIKZmxvYXRGaWVsZBJVCgtpbnQ2NF9maWVsZBgMIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkludDY0RmllbGRFbnRyeVIKaW50NjRGaWVsZBJYCgx1aW50NjRfZmllbGQYDSADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5VaW50NjRGaWVsZEVudHJ5Ugt1aW50NjRGaWVsZBJVCgtpbnQzMl9maWVsZBgOIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkludDMyRmllbGRFbnRyeVIKaW50MzJGaWVsZBJYCgx1aW50MzJfZmllbGQYDyADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5VaW50MzJGaWVsZEVudHJ5Ugt1aW50MzJGaWVsZBJSCgpib29sX2ZpZWxkGBAgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQm9vbEZpZWxkRW50cnlSCWJvb2xGaWVsZBJYCgxzdHJpbmdfZmllbGQYESADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5TdHJpbmdGaWVsZEVudHJ5UgtzdHJpbmdGaWVsZBJVCgtieXRlc19maWVsZBgSIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkJ5dGVzRmllbGRFbnRyeVIKYnl0ZXNGaWVsZBpRCg1BbnlGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EioKBXZhbHVlGAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIFdmFsdWU6AjgBGlEKDUFwaUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpUgV2YWx1ZToCOAEaWwoSRHVyYXRpb25GaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5Ei8KBXZhbHVlGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUgV2YWx1ZToCOAEaVQoPRW1wdHlGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgV2YWx1ZToCOAEaXQoTRmllbGRNYXNrRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIwCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSBXZhbHVlOgI4ARplChdTb3VyY2VDb250ZXh0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRI0CgV2YWx1ZRgCIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UgV2YWx1ZToCOAEaVwoQU3RydWN0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRItCgV2YWx1ZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSBXZhbHVlOgI4ARpdChNUaW1lc3RhbXBGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjAKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIFdmFsdWU6AjgBGlMKDlR5cGVGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EisKBXZhbHVlGAIgASgLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVSBXZhbHVlOgI4ARpcChBEb3VibGVGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjIKBXZhbHVlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgV2YWx1ZToCOAEaWgoPRmxvYXRGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSBXZhbHVlOgI4ARpaCg9JbnQ2NEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiAB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EgNqKDMKDAoFBAMCCwMSA2o2OAoLCgQEAwIMEgNrAjsKDAoFBAMCDAYSA2sCKAoMCgUEAwIMARIDayk1CgwKBQQDAgwDEgNrODoKCwoEBAMCDRIDbAI5CgwKBQQDAg0GEgNsAicKDAoFBAMCDQESA2woMwoMCgUEAwINAxIDbDY4CgsKBAQDAg4SA20COwoMCgUEAwIOBhIDbQIoCgwKBQQDAg4BEgNtKTUKDAoFBAMCDgMSA204OgoLCgQEAwIPEgNuAjcKDAoFBAMCDwYSA24CJgoMCgUEAwIPARIDbicxCgwKBQQDAg8DEgNuNDYKCwoEBAMCEBIDbwI7CgwKBQQDAhAGEgNvAigKDAoFBAMCEAESA28pNQoMCgUEAwIQAxIDbzg6CgsKBAQDAhESA3ACOQoMCgUEAwIRBhIDcAInCgwKBQQDAhEBEgNwKDMKDAoFBAMCEQMSA3A2OGIGcHJvdG8zCqTRAQoqZ29vZ2xlL3Byb3RvYnVmL3Rlc3RfbWVzc2FnZXNfcHJvdG8zLnByb3RvEh1wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMxoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvGiBnb29nbGUvcHJvdG9idWYvZmllbGRfbWFzay5wcm90bxocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnByb3RvIplbChJUZXN0QWxsVHlwZXNQcm90bzMSJQoOb3B0aW9uYWxfaW50MzIYASABKAVSDW9wdGlvbmFsSW50MzISJQoOb3B0aW9uYWxfaW50NjQYAiABKANSDW9wdGlvbmFsSW50NjQSJwoPb3B0aW9uYWxfdWludDMyGAMgASgNUg5vcHRpb25hbFVpbnQzMhInCg9vcHRpb25hbF91aW50NjQYBCABKARSDm9wdGlvbmFsVWludDY0EicKD29wdGlvbmFsX3NpbnQzMhgFIAEoEVIOb3B0aW9uYWxTaW50MzISJwoPb3B0aW9uYWxfc2ludDY0GAYgASgSUg5vcHRpb25hbFNpbnQ2NBIpChBvcHRpb25hbF9maXhlZDMyGAcgASgHUg9vcHRpb25hbEZpeGVkMzISKQoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBlIPb3B0aW9uYWxGaXhlZDY0EisKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPUhBvcHRpb25hbFNmaXhlZDMyEisKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQUhBvcHRpb25hbFNmaXhlZDY0EiUKDm9wdGlvbmFsX2Zsb2F0GAsgASgCUg1vcHRpb25hbEZsb2F0EicKD29wdGlvbmFsX2RvdWJsZRgMIAEoAVIOb3B0aW9uYWxEb3VibGUSIwoNb3B0aW9uYWxfYm9vbBgNIAEoCFIMb3B0aW9uYWxCb29sEicKD29wdGlvbmFsX3N0cmluZxgOIAEoCVIOb3B0aW9uYWxTdHJpbmcSJQoOb3B0aW9uYWxfYnl0ZXMYDyABKAxSDW9wdGlvbmFsQnl0ZXMSdwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlEmcKGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlUhZvcHRpb25hbEZvcmVpZ25NZXNzYWdlEm4KFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1SEm9wdGlvbmFsTmVzdGVkRW51bRJeChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yKi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduRW51bVITb3B0aW9uYWxGb3JlaWduRW51bRJxChVvcHRpb25hbF9hbGlhc2VkX2VudW0YFyABKA4yPS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuQWxpYXNlZEVudW1SE29wdGlvbmFsQWxpYXNlZEVudW0SNgoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAlITb3B0aW9uYWxTdHJpbmdQaWVjZRInCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIAVIMb3B0aW9uYWxDb3JkEl4KEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zUhByZWN1cnNpdmVNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEncKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VSFXJlcGVhdGVkTmVzdGVkTWVzc2FnZRJnChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyLS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduTWVzc2FnZVIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJuChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtUhJyZXBlYXRlZE5lc3RlZEVudW0SXgoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMioucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbkVudW1SE3JlcGVhdGVkRm9yZWlnbkVudW0SNgoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAlITcmVwZWF0ZWRTdHJpbmdQaWVjZRInCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIAVIMcmVwZWF0ZWRDb3JkEiUKDHBhY2tlZF9pbnQzMhhLIAMoBUICEAFSC3BhY2tlZEludDMyEiUKDHBhY2tlZF9pbnQ2NBhMIAMoA0ICEAFSC3BhY2tlZEludDY0EicKDXBhY2tlZF91aW50MzIYTSADKA1CAhABUgxwYWNrZWRVaW50MzISJwoNcGFja2VkX3VpbnQ2NBhOIAMoBEICEAFSDHBhY2tlZFVpbnQ2NBInCg1wYWNrZWRfc2ludDMyGE8gAygRQgIQAVIMcGFja2VkU2ludDMyEicKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABUgxwYWNrZWRTaW50NjQSKQoOcGFja2VkX2ZpeGVkMzIYUSADKAdCAhABUg1wYWNrZWRGaXhlZDMyEikKDnBhY2tlZF9maXhlZDY0GFIgAygGQgIQAVINcGFja2VkRml4ZWQ2NBIrCg9wYWNrZWRfc2ZpeGVkMzIYUyADKA9CAhABUg5wYWNrZWRTZml4ZWQzMhIrCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABUg5wYWNrZWRTZml4ZWQ2NBIlCgxwYWNrZWRfZmxvYXQYVSADKAJCAhABUgtwYWNrZWRGbG9hdBInCg1wYWNrZWRfZG91YmxlGFYgAygBQgIQAVIMcGFja2VkRG91YmxlEiMKC3BhY2tlZF9ib29sGFcgAygIQgIQAVIKcGFja2VkQm9vbBJuChJwYWNrZWRfbmVzdGVkX2VudW0YWCADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bUICEAFSEHBhY2tlZE5lc3RlZEVudW0SKQoOdW5wYWNrZWRfaW50MzIYWSADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFogAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYWyADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXCADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXiADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGF8gAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYCADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhlIAMoCEICEABSDHVucGFja2VkQm9vbBJyChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtQgIQAFISdW5wYWNrZWROZXN0ZWRFbnVtEmwKD21hcF9pbnQzMl9pbnQzMhg4IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQzMkludDMyRW50cnlSDW1hcEludDMySW50MzISbAoPbWFwX2ludDY0X2ludDY0GDkgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJyChFtYXBfdWludDMyX3VpbnQzMhg6IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBVaW50MzJVaW50MzJFbnRyeVIPbWFwVWludDMyVWludDMyEnIKEW1hcF91aW50NjRfdWludDY0GDsgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5Ug9tYXBVaW50NjRVaW50NjQScgoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJyChFtYXBfc2ludDY0X3NpbnQ2NBg9IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTaW50NjRTaW50NjRFbnRyeVIPbWFwU2ludDY0U2ludDY0EngKE21hcF9maXhlZDMyX2ZpeGVkMzIYPiADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeVIRbWFwRml4ZWQzMkZpeGVkMzISeAoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBg/IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJ+ChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5UhNtYXBTZml4ZWQzMlNmaXhlZDMyEn4KFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnlSE21hcFNmaXhlZDY0U2ZpeGVkNjQSbAoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJvChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDMyRG91YmxlRW50cnlSDm1hcEludDMyRG91YmxlEmYKDW1hcF9ib29sX2Jvb2wYRCADKAsyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwQm9vbEJvb2xFbnRyeVILbWFwQm9vbEJvb2wScgoRbWFwX3N0cmluZ19zdHJpbmcYRSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJvChBtYXBfc3RyaW5nX2J5dGVzGEYgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ0J5dGVzRW50cnlSDm1hcFN0cmluZ0J5dGVzEogBChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeVIWbWFwU3RyaW5nTmVzdGVkTWVzc2FnZRKLAQoabWFwX3N0cmluZ19mb3JlaWduX21lc3NhZ2UYSCADKAsyTi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeVIXbWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2USfwoWbWFwX3N0cmluZ19uZXN0ZWRfZW51bRhJIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnlSE21hcFN0cmluZ05lc3RlZEVudW0SggEKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnlSFG1hcFN0cmluZ0ZvcmVpZ25FbnVtEiMKDG9uZW9mX3VpbnQzMhhvIAEoDUgAUgtvbmVvZlVpbnQzMhJzChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxIfCgpvbmVvZl9ib29sGHMgASgISABSCW9uZW9mQm9vbBIjCgxvbmVvZl91aW50NjQYdCABKARIAFILb25lb2ZVaW50NjQSIQoLb25lb2ZfZmxvYXQYdSABKAJIAFIKb25lb2ZGbG9hdBIjCgxvbmVvZl9kb3VibGUYdiABKAFIAFILb25lb2ZEb3VibGUSXQoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtSABSCW9uZW9mRW51bRJGChBvbmVvZl9udWxsX3ZhbHVlGHggASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZUgAUg5vbmVvZk51bGxWYWx1ZRJPChVvcHRpb25hbF9ib29sX3dyYXBwZXIYyQEgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZVITb3B0aW9uYWxCb29sV3JhcHBlchJSChZvcHRpb25hbF9pbnQzMl93cmFwcGVyGMoBIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUhRvcHRpb25hbEludDMyV3JhcHBlchJSChZvcHRpb25hbF9pbnQ2NF93cmFwcGVyGMsBIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUhRvcHRpb25hbEludDY0V3JhcHBlchJVChdvcHRpb25hbF91aW50MzJfd3JhcHBlchjMASABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSFW9wdGlvbmFsVWludDMyV3JhcHBlchJVChdvcHRpb25hbF91aW50NjRfd3JhcHBlchjNASABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSFW9wdGlvbmFsVWludDY0V3JhcHBlchJSChZvcHRpb25hbF9mbG9hdF93cmFwcGVyGM4BIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUhRvcHRpb25hbEZsb2F0V3JhcHBlchJVChdvcHRpb25hbF9kb3VibGVfd3JhcHBlchjPASABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSFW9wdGlvbmFsRG91YmxlV3JhcHBlchJVChdvcHRpb25hbF9zdHJpbmdfd3JhcHBlchjQASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSFW9wdGlvbmFsU3RyaW5nV3JhcHBlchJSChZvcHRpb25hbF9ieXRlc193cmFwcGVyGNEBIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlUhRvcHRpb25hbEJ5dGVzV3JhcHBlchJPChVyZXBlYXRlZF9ib29sX3dyYXBwZXIY0wEgAygLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZVITcmVwZWF0ZWRCb29sV3JhcHBlchJSChZyZXBlYXRlZF9pbnQzMl93cmFwcGVyGNQBIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUhRyZXBlYXRlZEludDMyV3JhcHBlchJSChZyZXBlYXRlZF9pbnQ2NF93cmFwcGVyGNUBIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUhRyZXBlYXRlZEludDY0V3JhcHBlchJVChdyZXBlYXRlZF91aW50MzJfd3JhcHBlchjWASADKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSFXJlcGVhdGVkVWludDMyV3JhcHBlchJVChdyZXBlYXRlZF91aW50NjRfd3JhcHBlchjXASADKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSFXJlcGVhdGVkVWludDY0V3JhcHBlchJSChZyZXBlYXRlZF9mbG9hdF93cmFwcGVyGNgBIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUhRyZXBlYXRlZEZsb2F0V3JhcHBlchJVChdyZXBlYXRlZF9kb3VibGVfd3JhcHBlchjZASADKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSFXJlcGVhdGVkRG91YmxlV3JhcHBlchJVChdyZXBlYXRlZF9zdHJpbmdfd3JhcHBlchjaASADKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSFXJlcGVhdGVkU3RyaW5nV3JhcHBlchJSChZyZXBlYXRlZF9ieXRlc193cmFwcGVyGNsBIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlUhRyZXBlYXRlZEJ5dGVzV3JhcHBlchJHChFvcHRpb25hbF9kdXJhdGlvbhitAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SEG9wdGlvbmFsRHVyYXRpb24SSgoSb3B0aW9uYWxfdGltZXN0YW1wGK4CIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSEW9wdGlvbmFsVGltZXN0YW1wEksKE29wdGlvbmFsX2ZpZWxkX21hc2sYrwIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IRb3B0aW9uYWxGaWVsZE1hc2sSQQoPb3B0aW9uYWxfc3RydWN0GLACIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSDm9wdGlvbmFsU3RydWN0EjgKDG9wdGlvbmFsX2FueRixAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgtvcHRpb25hbEFueRI+Cg5vcHRpb25hbF92YWx1ZRiyAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSDW9wdGlvbmFsVmFsdWUSSwoTb3B0aW9uYWxfbnVsbF92YWx1ZRizAiABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlUhFvcHRpb25hbE51bGxWYWx1ZRJHChFyZXBlYXRlZF9kdXJhdGlvbhi3AiADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SEHJlcGVhdGVkRHVyYXRpb24SSgoScmVwZWF0ZWRfdGltZXN0YW1wGLgCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSEXJlcGVhdGVkVGltZXN0YW1wEkoKEnJlcGVhdGVkX2ZpZWxkbWFzaxi5AiADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUhFyZXBlYXRlZEZpZWxkbWFzaxJBCg9yZXBlYXRlZF9zdHJ1Y3QYxAIgAygLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIOcmVwZWF0ZWRTdHJ1Y3QSOAoMcmVwZWF0ZWRfYW55GLsCIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSC3JlcGVhdGVkQW55Ej4KDnJlcGVhdGVkX3ZhbHVlGLwCIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVINcmVwZWF0ZWRWYWx1ZRJLChNyZXBlYXRlZF9saXN0X3ZhbHVlGL0CIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5MaXN0VmFsdWVSEXJlcGVhdGVkTGlzdFZhbHVlEh8KCmZpZWxkbmFtZTEYkQMgASgFUgpmaWVsZG5hbWUxEiAKC2ZpZWxkX25hbWUyGJIDIAEoBVIKZmllbGROYW1lMhIhCgxfZmllbGRfbmFtZTMYkwMgASgFUgpGaWVsZE5hbWUzEiIKDWZpZWxkX19uYW1lNF8YlAMgASgFUgpmaWVsZE5hbWU0EiEKC2ZpZWxkMG5hbWU1GJUDIAEoBVILZmllbGQwbmFtZTUSIwoNZmllbGRfMF9uYW1lNhiWAyABKAVSC2ZpZWxkME5hbWU2Eh8KCmZpZWxkTmFtZTcYlwMgASgFUgpmaWVsZE5hbWU3Eh8KCkZpZWxkTmFtZTgYmAMgASgFUgpGaWVsZE5hbWU4EiAKC2ZpZWxkX05hbWU5GJkDIAEoBVIKZmllbGROYW1lORIiCgxGaWVsZF9OYW1lMTAYmgMgASgFUgtGaWVsZE5hbWUxMBIiCgxGSUVMRF9OQU1FMTEYmwMgASgFUgtGSUVMRE5BTUUxMRIiCgxGSUVMRF9uYW1lMTIYnAMgASgFUgtGSUVMRE5hbWUxMhIkCg5fX2ZpZWxkX25hbWUxMxidAyABKAVSC0ZpZWxkTmFtZTEzEiQKDl9fRmllbGRfbmFtZTE0GJ4DIAEoBVILRmllbGROYW1lMTQSIwoNZmllbGRfX25hbWUxNRifAyABKAVSC2ZpZWxkTmFtZTE1EiMKDWZpZWxkX19OYW1lMTYYoAMgASgFUgtmaWVsZE5hbWUxNhIkCg5maWVsZF9uYW1lMTdfXxihAyABKAVSC2ZpZWxkTmFtZTE3EiQKDkZpZWxkX25hbWUxOF9fGKIDIAEoBVILRmllbGROYW1lMTgacgoNTmVzdGVkTWVzc2FnZRIMCgFhGAEgASgFUgFhElMKC2NvcmVjdXJzaXZlGAIgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zUgtjb3JlY3Vyc2l2ZRpAChJNYXBJbnQzMkludDMyRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAVSBXZhbHVlOgI4ARpAChJNYXBJbnQ2NEludDY0RW50cnkSEAoDa2V5GAEgASgDUgNrZXkSFAoFdmFsdWUYAiABKANSBXZhbHVlOgI4ARpCChRNYXBVaW50MzJVaW50MzJFbnRyeRIQCgNrZXkYASABKA1SA2tleRIUCgV2YWx1ZRgCIAEoDVIFdmFsdWU6AjgBGkIKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EhAKA2tleRgBIAEoBFIDa2V5EhQKBXZhbHVlGAIgASgEUgV2YWx1ZToCOAEaQgoUTWFwU2ludDMyU2ludDMyRW50cnkSEAoDa2V5GAEgASgRUgNrZXkSFAoFdmFsdWUYAiABKBFSBXZhbHVlOgI4ARpCChRNYXBTaW50NjRTaW50NjRFbnRyeRIQCgNrZXkYASABKBJSA2tleRIUCgV2YWx1ZRgCIAEoElIFdmFsdWU6AjgBGkQKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAdSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoBlIDa2V5EhQKBXZhbHVlGAIgASgGUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoD1IDa2V5EhQKBXZhbHVlGAIgASgPUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoEFIDa2V5EhQKBXZhbHVlGAIgASgQUgV2YWx1ZToCOAEaQAoSTWFwSW50MzJGbG9hdEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEaQQoTTWFwSW50MzJEb3VibGVFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAVIFdmFsdWU6AjgBGj4KEE1hcEJvb2xCb29sRW50cnkSEAoDa2V5GAEgASgIUgNrZXkSFAoFdmFsdWUYAiABKAhSBXZhbHVlOgI4ARpCChRNYXBTdHJpbmdTdHJpbmdFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBGkEKE01hcFN0cmluZ0J5dGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARqKAQobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElUKBXZhbHVlGAIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VSBXZhbHVlOgI4ARp5ChxNYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkMKBXZhbHVlGAIgASgLMi0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbk1lc3NhZ2VSBXZhbHVlOgI4ARqEAQoYTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElIKBXZhbHVlGAIgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1SBXZhbHVlOgI4ARpzChlNYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkAKBXZhbHVlGAIgASgOMioucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbkVudW1SBXZhbHVlOgI4ASI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BIlkKC0FsaWFzZWRFbnVtEg0KCUFMSUFTX0ZPTxAAEg0KCUFMSUFTX0JBUhABEg0KCUFMSUFTX0JBWhACEgcKA01PTxACEgcKA21vbxACEgcKA2JBehACGgIQAUINCgtvbmVvZl9maWVsZEoGCPUDEP8DIh4KDkZvcmVpZ25NZXNzYWdlEgwKAWMYASABKAVSAWMiFgoUTnVsbEh5cG90aGVzaXNQcm90bzMiLwoORW51bU9ubHlQcm90bzMiHQoEQm9vbBIKCgZrRmFsc2UQABIJCgVrVHJ1ZRABKkAKC0ZvcmVpZ25FbnVtEg8KC0ZPUkVJR05fRk9PEAASDwoLRk9SRUlHTl9CQVIQARIPCgtGT1JFSUdOX0JBWhACQjgKKGNvbS5nb29nbGUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzNIAfgBAaICBlByb3RvM0qRcgoHEgUlAJ8CAQrADQoBDBIDJQASMrUNIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKIFRlc3Qgc2NoZW1hIGZvciBwcm90bzMgbWVzc2FnZXMuICBUaGlzIHRlc3Qgc2NoZW1hIGlzIHVzZWQgYnk6CgogLSBiZW5jaG1hcmtzCiAtIGZ1enogdGVzdHMKIC0gY29uZm9ybWFuY2UgdGVzdHMKCgoICgECEgMnACYKCAoBCBIDKQBBCgkKAggBEgMpAEEKCAoBCBIDKgAkCgkKAggkEgMqACQKCAoBCBIDLQAcCkQKAggJEgMtABwaOSBUaGlzIGlzIHRoZSBkZWZhdWx0LCBidXQgd2Ugc3BlY2lmeSBpdCBoZXJlIGV4cGxpY2l0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AwQDARIEmgIIFgoOCgQEAwQAEgabAgKeAgMKDQoFBAMEAAESBJsCBwsKDgoGBAMEAAIAEgScAgQPCg8KBwQDBAACAAESBJwCBAoKDwoHBAMEAAIAAhIEnAINDgoOCgYEAwQAAgESBJ0CBA4KDwoHBAMEAAIBARIEnQIECQoPCgcEAwQAAgECEgSdAgwNYgZwcm90bzMK79UBCipnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzIucHJvdG8SHXByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yIrlRChJUZXN0QWxsVHlwZXNQcm90bzISJQoOb3B0aW9uYWxfaW50MzIYASABKAVSDW9wdGlvbmFsSW50MzISJQoOb3B0aW9uYWxfaW50NjQYAiABKANSDW9wdGlvbmFsSW50NjQSJwoPb3B0aW9uYWxfdWludDMyGAMgASgNUg5vcHRpb25hbFVpbnQzMhInCg9vcHRpb25hbF91aW50NjQYBCABKARSDm9wdGlvbmFsVWludDY0EicKD29wdGlvbmFsX3NpbnQzMhgFIAEoEVIOb3B0aW9uYWxTaW50MzISJwoPb3B0aW9uYWxfc2ludDY0GAYgASgSUg5vcHRpb25hbFNpbnQ2NBIpChBvcHRpb25hbF9maXhlZDMyGAcgASgHUg9vcHRpb25hbEZpeGVkMzISKQoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBlIPb3B0aW9uYWxGaXhlZDY0EisKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPUhBvcHRpb25hbFNmaXhlZDMyEisKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQUhBvcHRpb25hbFNmaXhlZDY0EiUKDm9wdGlvbmFsX2Zsb2F0GAsgASgCUg1vcHRpb25hbEZsb2F0EicKD29wdGlvbmFsX2RvdWJsZRgMIAEoAVIOb3B0aW9uYWxEb3VibGUSIwoNb3B0aW9uYWxfYm9vbBgNIAEoCFIMb3B0aW9uYWxCb29sEicKD29wdGlvbmFsX3N0cmluZxgOIAEoCVIOb3B0aW9uYWxTdHJpbmcSJQoOb3B0aW9uYWxfYnl0ZXMYDyABKAxSDW9wdGlvbmFsQnl0ZXMSdwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlEm0KGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUhZvcHRpb25hbEZvcmVpZ25NZXNzYWdlEm4KFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1SEm9wdGlvbmFsTmVzdGVkRW51bRJkChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMlITb3B0aW9uYWxGb3JlaWduRW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSXgoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzJSEHJlY3Vyc2l2ZU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSdwoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEm0KGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEm4KFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJkChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMlITcmVwZWF0ZWRGb3JlaWduRW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSJQoMcGFja2VkX2ludDMyGEsgAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GEwgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhNIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GE4gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhQIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhRIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYUiADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhTIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhUIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYViADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYVyADKAhCAhABUgpwYWNrZWRCb29sEm4KEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQAVIQcGFja2VkTmVzdGVkRW51bRIpCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhcIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhhdIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYXyADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhhIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYiADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGMgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZCADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGUgAygIQgIQAFIMdW5wYWNrZWRCb29sEnIKFHVucGFja2VkX25lc3RlZF9lbnVtGGYgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1CAhAAUhJ1bnBhY2tlZE5lc3RlZEVudW0SbAoPbWFwX2ludDMyX2ludDMyGDggAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJsCg9tYXBfaW50NjRfaW50NjQYOSADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50NjRJbnQ2NEVudHJ5Ug1tYXBJbnQ2NEludDY0EnIKEW1hcF91aW50MzJfdWludDMyGDogAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzIScgoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJyChFtYXBfc2ludDMyX3NpbnQzMhg8IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTaW50MzJTaW50MzJFbnRyeVIPbWFwU2ludDMyU2ludDMyEnIKEW1hcF9zaW50NjRfc2ludDY0GD0gAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSeAoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJ4ChNtYXBfZml4ZWQ2NF9maXhlZDY0GD8gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEZpeGVkNjRGaXhlZDY0RW50cnlSEW1hcEZpeGVkNjRGaXhlZDY0En4KFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhhAIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISfgoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GEEgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJsCg9tYXBfaW50MzJfZmxvYXQYQiADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJGbG9hdEVudHJ5Ug1tYXBJbnQzMkZsb2F0Em8KEG1hcF9pbnQzMl9kb3VibGUYQyADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSZgoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJyChFtYXBfc3RyaW5nX3N0cmluZxhFIAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdTdHJpbmdFbnRyeVIPbWFwU3RyaW5nU3RyaW5nEm8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nQnl0ZXNFbnRyeVIObWFwU3RyaW5nQnl0ZXMSiAEKGW1hcF9zdHJpbmdfbmVzdGVkX21lc3NhZ2UYRyADKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5UhZtYXBTdHJpbmdOZXN0ZWRNZXNzYWdlEosBChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5UhdtYXBTdHJpbmdGb3JlaWduTWVzc2FnZRJ/ChZtYXBfc3RyaW5nX25lc3RlZF9lbnVtGEkgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZEVudW1FbnRyeVITbWFwU3RyaW5nTmVzdGVkRW51bRKCAQoXbWFwX3N0cmluZ19mb3JlaWduX2VudW0YSiADKAsySy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeVIUbWFwU3RyaW5nRm9yZWlnbkVudW0SIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEnMKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzEh8KCm9uZW9mX2Jvb2wYcyABKAhIAFIJb25lb2ZCb29sEiMKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAUgtvbmVvZlVpbnQ2NBIhCgtvbmVvZl9mbG9hdBh1IAEoAkgAUgpvbmVvZkZsb2F0EiMKDG9uZW9mX2RvdWJsZRh2IAEoAUgAUgtvbmVvZkRvdWJsZRJdCgpvbmVvZl9lbnVtGHcgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1IAFIJb25lb2ZFbnVtEksKBGRhdGEYyQEgASgKMjYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLkRhdGFSBGRhdGESMAoNZGVmYXVsdF9pbnQzMhjxASABKAU6Ci0xMjM0NTY3ODlSDGRlZmF1bHRJbnQzMhI6Cg1kZWZhdWx0X2ludDY0GPIBIAEoAzoULTkxMjM0NTY3ODkxMjM0NTY3ODlSDGRlZmF1bHRJbnQ2NBIyCg5kZWZhdWx0X3VpbnQzMhjzASABKA06CjIxMjM0NTY3ODlSDWRlZmF1bHRVaW50MzISPAoOZGVmYXVsdF91aW50NjQY9AEgASgEOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4OVINZGVmYXVsdFVpbnQ2NBIyCg5kZWZhdWx0X3NpbnQzMhj1ASABKBE6Ci0xMjM0NTY3ODlSDWRlZmF1bHRTaW50MzISPAoOZGVmYXVsdF9zaW50NjQY9gEgASgSOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OVINZGVmYXVsdFNpbnQ2NBI0Cg9kZWZhdWx0X2ZpeGVkMzIY9wEgASgHOgoyMTIzNDU2Nzg5Ug5kZWZhdWx0Rml4ZWQzMhI+Cg9kZWZhdWx0X2ZpeGVkNjQY+AEgASgGOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4OVIOZGVmYXVsdEZpeGVkNjQSNgoQZGVmYXVsdF9zZml4ZWQzMhj5ASABKA86Ci0xMjM0NTY3ODlSD2RlZmF1bHRTZml4ZWQzMhJAChBkZWZhdWx0X3NmaXhlZDY0GPoBIAEoEDoULTkxMjM0NTY3ODkxMjM0NTY3ODlSD2RlZmF1bHRTZml4ZWQ2NBIrCg1kZWZhdWx0X2Zsb2F0GPsBIAEoAjoFOWUrMDlSDGRlZmF1bHRGbG9hdBItCg5kZWZhdWx0X2RvdWJsZRj8ASABKAE6BTdlKzIyUg1kZWZhdWx0RG91YmxlEigKDGRlZmF1bHRfYm9vbBj9ASABKAg6BHRydWVSC2RlZmF1bHRCb29sEi8KDmRlZmF1bHRfc3RyaW5nGP4BIAEoCToHUm9zZWJ1ZFINZGVmYXVsdFN0cmluZxIsCg1kZWZhdWx0X2J5dGVzGP8BIAEoDDoGam9zaHVhUgxkZWZhdWx0Qnl0ZXMSHwoKZmllbGRuYW1lMRiRAyABKAVSCmZpZWxkbmFtZTESIAoLZmllbGRfbmFtZTIYkgMgASgFUgpmaWVsZE5hbWUyEiEKDF9maWVsZF9uYW1lMxiTAyABKAVSCkZpZWxkTmFtZTMSIgoNZmllbGRfX25hbWU0XxiUAyABKAVSCmZpZWxkTmFtZTQSIQoLZmllbGQwbmFtZTUYlQMgASgFUgtmaWVsZDBuYW1lNRIjCg1maWVsZF8wX25hbWU2GJYDIAEoBVILZmllbGQwTmFtZTYSHwoKZmllbGROYW1lNxiXAyABKAVSCmZpZWxkTmFtZTcSHwoKRmllbGROYW1lOBiYAyABKAVSCkZpZWxkTmFtZTgSIAoLZmllbGRfTmFtZTkYmQMgASgFUgpmaWVsZE5hbWU5EiIKDEZpZWxkX05hbWUxMBiaAyABKAVSC0ZpZWxkTmFtZTEwEiIKDEZJRUxEX05BTUUxMRibAyABKAVSC0ZJRUxETkFNRTExEiIKDEZJRUxEX25hbWUxMhicAyABKAVSC0ZJRUxETmFtZTEyEiQKDl9fZmllbGRfbmFtZTEzGJ0DIAEoBVILRmllbGROYW1lMTMSJAoOX19GaWVsZF9uYW1lMTQYngMgASgFUgtGaWVsZE5hbWUxNBIjCg1maWVsZF9fbmFtZTE1GJ8DIAEoBVILZmllbGROYW1lMTUSIwoNZmllbGRfX05hbWUxNhigAyABKAVSC2ZpZWxkTmFtZTE2EiQKDmZpZWxkX25hbWUxN19fGKEDIAEoBVILZmllbGROYW1lMTcSJAoORmllbGRfbmFtZTE4X18YogMgASgFUgtGaWVsZE5hbWUxOBpyCg1OZXN0ZWRNZXNzYWdlEgwKAWEYASABKAVSAWESUwoLY29yZWN1cnNpdmUYAiABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzJSC2NvcmVjdXJzaXZlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGkIKFE1hcFN0cmluZ1N0cmluZ0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEaQQoTTWFwU3RyaW5nQnl0ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoDFIFdmFsdWU6AjgBGooBChtNYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSVQoFdmFsdWUYAiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIFdmFsdWU6AjgBGn8KHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSSQoFdmFsdWUYAiABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIFdmFsdWU6AjgBGoQBChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSUgoFdmFsdWUYAiABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bVIFdmFsdWU6AjgBGnkKGU1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSRgoFdmFsdWUYAiABKA4yMC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduRW51bVByb3RvMlIFdmFsdWU6AjgBGkwKBERhdGESIAoLZ3JvdXBfaW50MzIYygEgASgFUgpncm91cEludDMyEiIKDGdyb3VwX3VpbnQzMhjLASABKA1SC2dyb3VwVWludDMyGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEa+gEKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRIQCgNzdHIYGSABKAlSA3N0cjLIAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GPm7XiABKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xUhNtZXNzYWdlU2V0RXh0ZW5zaW9uGvcBChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjISDAoBaRgJIAEoBVIBaTLJAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEkMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GJCz/AEgASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMlITbWVzc2FnZVNldEV4dGVuc2lvbiI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcKA0JBWhACEhAKA05FRxD///////////8BKgUIeBDJAUINCgtvbmVvZl9maWVsZEoGCOgHEJBOIiQKFEZvcmVpZ25NZXNzYWdlUHJvdG8yEgwKAWMYASABKAVSAWMingMKFVVua25vd25Ub1Rlc3RBbGxUeXBlcxImCg5vcHRpb25hbF9pbnQzMhjpByABKAVSDW9wdGlvbmFsSW50MzISKAoPb3B0aW9uYWxfc3RyaW5nGOoHIAEoCVIOb3B0aW9uYWxTdHJpbmcSWwoObmVzdGVkX21lc3NhZ2UY6wcgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSDW5lc3RlZE1lc3NhZ2USaQoNb3B0aW9uYWxncm91cBjsByABKAoyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Vbmtub3duVG9UZXN0QWxsVHlwZXMuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBIkCg1vcHRpb25hbF9ib29sGO4HIAEoCFIMb3B0aW9uYWxCb29sEiYKDnJlcGVhdGVkX2ludDMyGPMHIAMoBVINcmVwZWF0ZWRJbnQzMhodCg1PcHRpb25hbEdyb3VwEgwKAWEYASABKAVSAWEiFgoUTnVsbEh5cG90aGVzaXNQcm90bzIiLwoORW51bU9ubHlQcm90bzIiHQoEQm9vbBIKCgZrRmFsc2UQABIJCgVrVHJ1ZRABIiUKD09uZVN0cmluZ1Byb3RvMhISCgRkYXRhGAEgASgJUgRkYXRhImEKEVByb3RvV2l0aEtleXdvcmRzEhYKBmlubGluZRgBIAEoBVIGaW5saW5lEhgKB2NvbmNlcHQYAiABKAlSB2NvbmNlcHQSGgoIcmVxdWlyZXMYAyADKAlSCHJlcXVpcmVzKkYKEUZvcmVpZ25FbnVtUHJvdG8yEg8KC0ZPUkVJR05fRk9PEAASDwoLRk9SRUlHTl9CQVIQARIPCgtGT1JFSUdOX0JBWhACOloKD2V4dGVuc2lvbl9pbnQzMhIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMhh4IAEoBVIOZXh0ZW5zaW9uSW50MzJCLwooY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMkgB+AEBSvZ8CgcSBSUArgIBCroNCgEMEgMlABIymQ0gUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogVGVzdCBzY2hlbWEgZm9yIHByb3RvMiBtZXNzYWdlcy4gIFRoaXMgdGVzdCBzY2hlbWEgaXMgdXNlZCBieToKCiAtIGNvbmZvcm1hbmNlIHRlc3RzCgoyFCBMSU5UOiBBTExPV19HUk9VUFMKCggKAQISAycAJgoICgEIEgMpAEEKCQoCCAESAykAQQoICgEIEgMsABwKRAoCCAkSAywAHBo5IFRoaXMgaXMgdGhlIGRlZmF1bHQsIGJ1dCB3ZSBzcGVjaWZ5IGl0IGhlcmUgZXhwbGljaXRseS4KCggKAQgSAy4AHwoJCgIIHxIDLgAfCtsCCgIEABIFNwCBAgEazQIgVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4K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OgUSBIwBCxAKDQoFBAACOgESBIwBER8KDQoFBAACOgMSBIwBIiQKDQoFBAACOggSBIwBJTUKDgoGBAACOggCEgSMASY0CgwKBAQAAjsSBI0BAjgKDQoFBAACOwQSBI0BAgoKDQoFBAACOwUSBI0BCxEKDQoFBAACOwESBI0BEiEKDQoFBAACOwMSBI0BJCYKDQoFBAACOwgSBI0BJzcKDgoGBAACOwgCEgSNASg2CgwKBAQAAjwSBI4BAjgKDQoFBAACPAQSBI4BAgoKDQoFBAACPAUSBI4BCxEKDQoFBAACPAESBI4BEiEKDQoFBAACPAMSBI4BJCYKDQoFBAACPAgSBI4BJzcKDgoGBAACPAgCEgSOASg2CgwKBAQAAj0SBI8BAjgKDQoFBAACPQQSBI8BAgoKDQoFBAACPQUSBI8BCxEKDQoFBAACPQESBI8BEiEKDQoFBAACPQMSBI8BJCYKDQoFBAACPQgSBI8BJzcKDgoGBAACPQgCEgSPASg2CgwKBAQAAj4SBJABAjgKDQoFBAACPgQSBJABAgoKDQoFBAACPgUSBJABCxEKDQoFBAACPgESBJABEiEKDQoFBAACPgMSBJABJCYKDQoFBAACPggSBJABJzcKDgoGBAACPggCEgSQASg2CgwKBAQAAj8SBJEBAjoKDQoFBAACPwQSBJEBAgoKDQoFBAACPwUSBJEBCxIKDQoFBAACPwESBJEBEyMKDQoFBAACPwMSBJEBJigKDQoFBAACPwgSBJEBKTkKDgoGBAACPwgCEgSRASo4CgwKBAQAAkASBJIBAjoKDQoFBAACQAQSBJIBAgoKDQoFBAACQAUSBJIBCxIKDQoFBAACQAESBJIBEyMKDQoFBAACQAMSBJIBJigKDQoFBAACQAgSBJIBKTkKDgoGBAACQAgCEgSSASo4CgwKBAQAAkESBJMBAjwKDQoFBAACQQQSBJMBAgoKDQoFBAACQQUSBJMBCxMKDQoFBAACQQESBJMBFCUKDQoFBAACQQMSBJMBKCoKDQoFBAACQQgSBJMBKzsKDgoGBAACQQgCEgSTASw6CgwKBAQAAkISBJQBAjwKDQoFBAACQgQSBJQBAgoKDQoFBAACQgUSBJQBCxMKDQoFBAACQgESBJQBFCUKDQoFBAACQgMSBJQBKCoKDQoFBAACQggSBJQBKzsKDgoGBAAC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GAYgASgSSAVSDm9wdGlvbmFsU2ludDY0iAEBEi4KEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdIBlIPb3B0aW9uYWxGaXhlZDMyiAEBEi4KEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZIB1IPb3B0aW9uYWxGaXhlZDY0iAEBEjAKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPSAhSEG9wdGlvbmFsU2ZpeGVkMzKIAQESMAoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBICVIQb3B0aW9uYWxTZml4ZWQ2NIgBARIqCg5vcHRpb25hbF9mbG9hdBgLIAEoAkgKUg1vcHRpb25hbEZsb2F0iAEBEiwKD29wdGlvbmFsX2RvdWJsZRgMIAEoAUgLUg5vcHRpb25hbERvdWJsZYgBARIoCg1vcHRpb25hbF9ib29sGA0gASgISAxSDG9wdGlvbmFsQm9vbIgBARIsCg9vcHRpb25hbF9zdHJpbmcYDiABKAlIDVIOb3B0aW9uYWxTdHJpbmeIAQESKgoOb3B0aW9uYWxfYnl0ZXMYDyABKAxIDlINb3B0aW9uYWxCeXRlc4gBARIsCg1vcHRpb25hbF9jb3JkGBAgASgJQgIIAUgPUgxvcHRpb25hbENvcmSIAQEScAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWwuTmVzdGVkTWVzc2FnZUgQUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2WIAQESbAoTbGF6eV9uZXN0ZWRfbWVzc2FnZRgTIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRNZXNzYWdlQgIoAUgRUhFsYXp5TmVzdGVkTWVzc2FnZYgBARJnChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIwLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRFbnVtSBJSEm9wdGlvbmFsTmVzdGVkRW51bYgBARIlCg5zaW5ndWxhcl9pbnQzMhgWIAEoBVINc2luZ3VsYXJJbnQzMhIlCg5zaW5ndWxhcl9pbnQ2NBgXIAEoA1INc2luZ3VsYXJJbnQ2NBorCg1OZXN0ZWRNZXNzYWdlEhMKAmJiGAEgASgFSABSAmJiiAEBQgUKA19iYiJKCgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCEQoPX29wdGlvbmFsX2ludDMyQhEKD19vcHRpb25hbF9pbnQ2NEISChBfb3B0aW9uYWxfdWludDMyQhIKEF9vcHRpb25hbF91aW50NjRCEgoQX29wdGlvbmFsX3NpbnQzMkISChBfb3B0aW9uYWxfc2ludDY0QhMKEV9vcHRpb25hbF9maXhlZDMyQhMKEV9vcHRpb25hbF9maXhlZDY0QhQKEl9vcHRpb25hbF9zZml4ZWQzMkIUChJfb3B0aW9uYWxfc2ZpeGVkNjRCEQoPX29wdGlvbmFsX2Zsb2F0QhIKEF9vcHRpb25hbF9kb3VibGVCEAoOX29wdGlvbmFsX2Jvb2xCEgoQX29wdGlvbmFsX3N0cmluZ0IRCg9fb3B0aW9uYWxfYnl0ZXNCEAoOX29wdGlvbmFsX2NvcmRCGgoYX29wdGlvbmFsX25lc3RlZF9tZXNzYWdlQhYKFF9sYXp5X25lc3RlZF9tZXNzYWdlQhcKFV9vcHRpb25hbF9uZXN0ZWRfZW51bSKyAgoZVGVzdFByb3RvM09wdGlvbmFsTWVzc2FnZRJhCg5uZXN0ZWRfbWVzc2FnZRgBIAEoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2UuTmVzdGVkTWVzc2FnZVINbmVzdGVkTWVzc2FnZRJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgCIAEoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2UuTmVzdGVkTWVzc2FnZUgAUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2WIAQEaHQoNTmVzdGVkTWVzc2FnZRIMCgFzGAEgASgJUgFzQhoKGF9vcHRpb25hbF9uZXN0ZWRfbWVzc2FnZSLJAQoYUHJvdG8zT3B0aW9uYWxFeHRlbnNpb25zMksKD2V4dF9ub19vcHRpb25hbBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiIzdmpASABKAVSDWV4dE5vT3B0aW9uYWwyUgoRZXh0X3dpdGhfb3B0aW9uYWwSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYic3ZqQEgASgFUg9leHRXaXRoT3B0aW9uYWyIAQE6DMDozM0KCMjozM0KEEIlCiFjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RpbmcucHJvdG9QAUqGIgoGEgQeAGMBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMg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