CosPCjFjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQiIwoTUHVibGljSW1wb3J0TWVzc2FnZRIMCgFlGAEgASgFUgFlQh2qAhpHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvc0rvDQoGEgQgACgBCvYMCgEMEgMgABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjIoIEF1dGhvcjogbGl1amlzaUBnb29nbGUuY29tIChQaGVybCBMaXUpCgoICgECEgMiACEKCAoBCBIDJAA3CgkKAgglEgMkADcKCgoCBAASBCYAKAEKCgoDBAABEgMmCBsKCwoEBAACABIDJwENCgwKBQQAAgAFEgMnAQYKDAoFBAACAAESAycHCAoMCgUEAAIAAxIDJwsMYgZwcm90bzMKnxMKKmNzaGFycC9wcm90b3MvdW5pdHRlc3RfaW1wb3J0X3Byb3RvMy5wcm90bxIYcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0GjFjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvIh0KDUltcG9ydE1lc3NhZ2USDAoBZBgBIAEoBVIBZCpZCgpJbXBvcnRFbnVtEhsKF0lNUE9SVF9FTlVNX1VOU1BFQ0lGSUVEEAASDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAlCHaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSoARCgYSBCQANgEKnw4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3aGljaCBpcyBpbXBvcnRlZCBieSB1bml0dGVzdF9wcm90bzMucHJvdG8gdG8gdGVzdCBpbXBvcnRpbmcuCgoICgECEgMmACEKCAoBCBIDKAA3CgkKAgglEgMoADcKHwoCAwASAysAQhoUIFRlc3QgcHVibGljIGltcG9ydAoKCQoCCgASAysHDQoKCgIEABIELQAvAQoKCgMEAAESAy0IFQoLCgQEAAIAEgMuAg4KDAoFBAACAAUSAy4CBwoMCgUEAAIAARIDLggJCgwKBQQAAgADEgMuDA0KCgoCBQASBDEANgEKCgoDBQABEgMxBQ8KCwoEBQACABIDMgIeCgwKBQUAAgABEgMyAhkKDAoFBQACAAISAzIcHQoLCgQFAAIBEgMzAhEKDAoFBQACAQESAzMCDAoMCgUFAAIBAhIDMw8QCgsKBAUAAgISAzQCEQoMCgUFAAICARIDNAIMCgwKBQUAAgICEgM0DxAKCwoEBQACAxIDNQIRCgwKBQUAAgMBEgM1AgwKDAoFBQACAwISAzUPEFAAYgZwcm90bzMKhbwBCiNjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X3Byb3RvMy5wcm90bxIScHJvdG9idWZfdW5pdHRlc3QzGipjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wcm90bzMucHJvdG8iqxYKDFRlc3RBbGxUeXBlcxIhCgxzaW5nbGVfaW50MzIYASABKAVSC3NpbmdsZUludDMyEiEKDHNpbmdsZV9pbnQ2NBgCIAEoA1ILc2luZ2xlSW50NjQSIwoNc2luZ2xlX3VpbnQzMhgDIAEoDVIMc2luZ2xlVWludDMyEiMKDXNpbmdsZV91aW50NjQYBCABKARSDHNpbmdsZVVpbnQ2NBIjCg1zaW5nbGVfc2ludDMyGAUgASgRUgxzaW5nbGVTaW50MzISIwoNc2luZ2xlX3NpbnQ2NBgGIAEoElIMc2luZ2xlU2ludDY0EiUKDnNpbmdsZV9maXhlZDMyGAcgASgHUg1zaW5nbGVGaXhlZDMyEiUKDnNpbmdsZV9maXhlZDY0GAggASgGUg1zaW5nbGVGaXhlZDY0EicKD3NpbmdsZV9zZml4ZWQzMhgJIAEoD1IOc2luZ2xlU2ZpeGVkMzISJwoPc2luZ2xlX3NmaXhlZDY0GAogASgQUg5zaW5nbGVTZml4ZWQ2NBIhCgxzaW5nbGVfZmxvYXQYCyABKAJSC3NpbmdsZUZsb2F0EiMKDXNpbmdsZV9kb3VibGUYDCABKAFSDHNpbmdsZURvdWJsZRIfCgtzaW5nbGVfYm9vbBgNIAEoCFIKc2luZ2xlQm9vbBIjCg1zaW5nbGVfc3RyaW5nGA4gASgJUgxzaW5nbGVTdHJpbmcSIQoMc2luZ2xlX2J5dGVzGA8gASgMUgtzaW5nbGVCeXRlcxJiChVzaW5nbGVfbmVzdGVkX21lc3NhZ2UYEiABKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSE3NpbmdsZU5lc3RlZE1lc3NhZ2USWAoWc2luZ2xlX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIUc2luZ2xlRm9yZWlnbk1lc3NhZ2USWwoVc2luZ2xlX2ltcG9ydF9tZXNzYWdlGBQgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSE3NpbmdsZUltcG9ydE1lc3NhZ2USWQoSc2luZ2xlX25lc3RlZF9lbnVtGBUgASgOMisucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhBzaW5nbGVOZXN0ZWRFbnVtEk8KE3NpbmdsZV9mb3JlaWduX2VudW0YFiABKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SEXNpbmdsZUZvcmVpZ25FbnVtElIKEnNpbmdsZV9pbXBvcnRfZW51bRgXIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtUhBzaW5nbGVJbXBvcnRFbnVtEm4KHHNpbmdsZV9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZVIZc2luZ2xlUHVibGljSW1wb3J0TWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJmChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlElwKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJfChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlUhVyZXBlYXRlZEltcG9ydE1lc3NhZ2USXQoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yKy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJTChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SE3JlcGVhdGVkRm9yZWlnbkVudW0SVgoUcmVwZWF0ZWRfaW1wb3J0X2VudW0YNSADKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bVIScmVwZWF0ZWRJbXBvcnRFbnVtEnIKHnJlcGVhdGVkX3B1YmxpY19pbXBvcnRfbWVzc2FnZRg2IAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlUhtyZXBlYXRlZFB1YmxpY0ltcG9ydE1lc3NhZ2USIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEmIKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxofCg1OZXN0ZWRNZXNzYWdlEg4KAmJiGAEgASgFUgJiYiJWCgpOZXN0ZWRFbnVtEhsKF05FU1RFRF9FTlVNX1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCDQoLb25lb2ZfZmllbGQi3QEKEk5lc3RlZFRlc3RBbGxUeXBlcxI8CgVjaGlsZBgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0My5OZXN0ZWRUZXN0QWxsVHlwZXNSBWNoaWxkEjoKB3BheWxvYWQYAiABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzUgdwYXlsb2FkEk0KDnJlcGVhdGVkX2NoaWxkGAMgAygLMiYucHJvdG9idWZfdW5pdHRlc3QzLk5lc3RlZFRlc3RBbGxUeXBlc1INcmVwZWF0ZWRDaGlsZCJFChRUZXN0RGVwcmVjYXRlZEZpZWxkcxItChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYAVIPZGVwcmVjYXRlZEludDMyIh4KDkZvcmVpZ25NZXNzYWdlEgwKAWMYASABKAVSAWMiMAoSVGVzdFJlc2VydmVkRmllbGRzSgQIAhADSgQIDxAQSgQICRAMUgNiYXJSA2JheiJqChFUZXN0Rm9yZWlnbk5lc3RlZBJVCg5mb3JlaWduX25lc3RlZBgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVINZm9yZWlnbk5lc3RlZCI7ChhUZXN0UmVhbGx5TGFyZ2VUYWdOdW1iZXISDAoBYRgBIAEoBVIBYRIRCgJiYhj///9/IAEoBVICYmIiXAoUVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USNgoBYRgBIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0UmVjdXJzaXZlTWVzc2FnZVIBYRIMCgFpGAIgASgFUgFpIlAKFFRlc3RNdXR1YWxSZWN1cnNpb25BEjgKAmJiGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNdXR1YWxSZWN1cnNpb25CUgJiYiJ1ChRUZXN0TXV0dWFsUmVjdXJzaW9uQhI2CgFhGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNdXR1YWxSZWN1cnNpb25BUgFhEiUKDm9wdGlvbmFsX2ludDMyGAIgASgFUg1vcHRpb25hbEludDMyIlQKElRlc3RFbnVtQWxsb3dBbGlhcxI+CgV2YWx1ZRgBIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0RW51bVdpdGhEdXBWYWx1ZVIFdmFsdWUi+wMKF1Rlc3RDYW1lbENhc2VGaWVsZE5hbWVzEiYKDlByaW1pdGl2ZUZpZWxkGAEgASgFUg5QcmltaXRpdmVGaWVsZBIgCgtTdHJpbmdGaWVsZBgCIAEoCVILU3RyaW5nRmllbGQSPQoJRW51bUZpZWxkGAMgASgOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtUglFbnVtRmllbGQSRgoMTWVzc2FnZUZpZWxkGAQgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUgxNZXNzYWdlRmllbGQSNgoWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBVIWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBIwChNSZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJUhNSZXBlYXRlZFN0cmluZ0ZpZWxkEk0KEVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtUhFSZXBlYXRlZEVudW1GaWVsZBJWChRSZXBlYXRlZE1lc3NhZ2VGaWVsZBgKIAMoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIUUmVwZWF0ZWRNZXNzYWdlRmllbGQi/wEKElRlc3RGaWVsZE9yZGVyaW5ncxIbCglteV9zdHJpbmcYCyABKAlSCG15U3RyaW5nEhUKBm15X2ludBgBIAEoA1IFbXlJbnQSGQoIbXlfZmxvYXQYZSABKAJSB215RmxvYXQSaQoVc2luZ2xlX25lc3RlZF9tZXNzYWdlGMgBIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0RmllbGRPcmRlcmluZ3MuTmVzdGVkTWVzc2FnZVITc2luZ2xlTmVzdGVkTWVzc2FnZRovCg1OZXN0ZWRNZXNzYWdlEg4KAm9vGAIgASgDUgJvbxIOCgJiYhgBIAEoBVICYmIiWAoRU3BhcnNlRW51bU1lc3NhZ2USQwoLc3BhcnNlX2VudW0YASABKA4yIi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdFNwYXJzZUVudW1SCnNwYXJzZUVudW0iHwoJT25lU3RyaW5nEhIKBGRhdGEYASABKAlSBGRhdGEiIAoKTW9yZVN0cmluZxISCgRkYXRhGAEgAygJUgRkYXRhIh4KCE9uZUJ5dGVzEhIKBGRhdGEYASABKAxSBGRhdGEiHwoJTW9yZUJ5dGVzEhIKBGRhdGEYASABKAxSBGRhdGEiIgoMSW50MzJNZXNzYWdlEhIKBGRhdGEYASABKAVSBGRhdGEiIwoNVWludDMyTWVzc2FnZRISCgRkYXRhGAEgASgNUgRkYXRhIiIKDEludDY0TWVzc2FnZRISCgRkYXRhGAEgASgDUgRkYXRhIiMKDVVpbnQ2NE1lc3NhZ2USEgoEZGF0YRgBIAEoBFIEZGF0YSIhCgtCb29sTWVzc2FnZRISCgRkYXRhGAEgASgIUgRkYXRhIpMBCglUZXN0T25lb2YSGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSQwoLZm9vX21lc3NhZ2UYAyABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzSABSCmZvb01lc3NhZ2VCBQoDZm9vIu4ECg9UZXN0UGFja2VkVHlwZXMSJQoMcGFja2VkX2ludDMyGFogAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GFsgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GF0gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYXiADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhfIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYZiADKAhCAhABUgpwYWNrZWRCb29sEkQKC3BhY2tlZF9lbnVtGGcgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtQgIQAVIKcGFja2VkRW51bSKoBQoRVGVzdFVucGFja2VkVHlwZXMSKQoOdW5wYWNrZWRfaW50MzIYWiADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFsgAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYXCADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXSADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXiADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXyADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYSADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhkIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGUgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhmIAMoCEICEABSDHVucGFja2VkQm9vbBJICg11bnBhY2tlZF9lbnVtGGcgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtQgIQAFIMdW5wYWNrZWRFbnVtIp8CCiNUZXN0UmVwZWF0ZWRTY2FsYXJEaWZmZXJlbnRUYWdTaXplcxIpChByZXBlYXRlZF9maXhlZDMyGAwgAygHUg9yZXBlYXRlZEZpeGVkMzISJQoOcmVwZWF0ZWRfaW50MzIYDSADKAVSDXJlcGVhdGVkSW50MzISKgoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAZSD3JlcGVhdGVkRml4ZWQ2NBImCg5yZXBlYXRlZF9pbnQ2NBj/DyADKANSDXJlcGVhdGVkSW50NjQSJwoOcmVwZWF0ZWRfZmxvYXQY/v8PIAMoAlINcmVwZWF0ZWRGbG9hdBIpCg9yZXBlYXRlZF91aW50NjQY//8PIAMoBFIOcmVwZWF0ZWRVaW50NjQiKwobVGVzdENvbW1lbnRJbmplY3Rpb25NZXNzYWdlEgwKAWEYASABKAlSAWEiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSISChBGb29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3NhZ2UiDAoKQmFyUmVxdWVzdCINCgtCYXJSZXNwb25zZSISChBUZXN0RW1wdHlNZXNzYWdlIoIBCg5Db21tZW50TWVzc2FnZRISCgR0ZXh0GAEgASgJUgR0ZXh0GjcKFE5lc3RlZENvbW1lbnRNZXNzYWdlEh8KC25lc3RlZF90ZXh0GAEgASgJUgpuZXN0ZWRUZXh0IiMKEU5lc3RlZENvbW1lbnRFbnVtEg4KClpFUk9fVkFMVUUQACpZCgtGb3JlaWduRW51bRIXChNGT1JFSUdOX1VOU1BFQ0lGSUVEEAASDwoLRk9SRUlHTl9GT08QBBIPCgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAYqdQoUVGVzdEVudW1XaXRoRHVwVmFsdWUSKAokVEVTVF9FTlVNX1dJVEhfRFVQX1ZBTFVFX1VOU1BFQ0lGSUVEEAASCAoERk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08yEAESCAoEQkFSMhACGgIQASqdAQoOVGVzdFNwYXJzZUVudW0SIAocVEVTVF9TUEFSU0VfRU5VTV9VTlNQRUNJRklFRBAAEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9HEAIqHQoLQ29tbWVudEVudW0SDgoKWkVST19WQUxVRRAAMp0BCgtUZXN0U2VydmljZRJGCgNGb28SHi5wcm90b2J1Zl91bml0dGVzdDMuRm9vUmVxdWVzdBofLnByb3RvYnVmX3VuaXR0ZXN0My5Gb29SZXNwb25zZRJGCgNCYXISHi5wcm90b2J1Zl91bml0dGVzdDMuQmFyUmVxdWVzdBofLnByb3RvYnVmX3VuaXR0ZXN0My5CYXJSZXNwb25zZUIsQg1Vbml0dGVzdFByb3RvqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK2n8KBxIFJACWAwEK/w0KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMrABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3ZSB3aWxsIHVzZSBmb3IgdW5pdCB0ZXN0aW5nLgoKCAoBCBIDJgA3CgkKAgglEgMmADcKCAoBCBIDKgAuCmAKAggIEgMqAC4aVSBPbmx5IHByZXNlbnQgc28gd2UgY2FuIHRlc3QgdGhhdCB3ZSBjYW4gcmVhZCBpdCAoYXMgYW4gZXhhbXBsZQogb2YgYSBub24tQyMgb3B0aW9uKQoKCQoCAwASAywANAoICgECEgMuABsKXAoCBAASBTIAggEBGk8gVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCgoKAwQAARIDMggUCgwKBAQAAwASBDMCOAMKDAoFBAADAAESAzMKFwrjAQoGBAADAAIAEgM3BBEa0wEgVGhlIGZpZWxkIG5hbWUgImIiIGZhaWxzIHRvIGNvbXBpbGUgaW4gcHJvdG8xIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGgKIGEgbG9jYWwgdmFyaWFibGUgbmFtZWQgImIiIGluIG9uZSBvZiB0aGUgZ2VuZXJhdGVkIG1ldGhvZHMuICBEb2guCiBUaGlzIGZpbGUgbmVlZHMgdG8gY29tcGlsZSBpbiBwcm90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sAICMwoNCgUEGAIABBIEsAICCgoNCgUEGAIABRIEsAILEAoNCgUEGAIAARIEsAIRHQoNCgUEGAIAAxIEsAIgIgoNCgUEGAIACBIEsAIjMgoOCgYEGAIACAISBLACJDEKDAoEBBgCARIEsQICMwoNCgUEGAIBBBIEsQICCgoNCgUEGAIBBRIEsQILEAoNCgUEGAIBARIEsQIRHQoNCgUEGAIBAxIEsQIgIgoNCgUEGAIBCBIEsQIjMgoOCgYEGAIBCAISBLECJDEKDAoEBBgCAhIEsgICNQoNCgUEGAICBBIEsgICCgoNCgUEGAICBRIEsgILEQoNCgUEGAICARIEsgISHwoNCgUEGAICAxIEsgIiJAoNCgUEGAICCBIEsgIlNAoOCgYEGAICCAISBLICJjMKDAoEBBgCAxIEswICNQoNCgUEGAIDBBIEswICCgoNCgUEGAIDBRIEswILEQoNCgUEGAIDARIEswISHwoNCgUEGAIDAxIEswIiJAoNCgUEGAIDCBIEswIlNAoOCgYEGAIDCAISBLMCJjMKDAoEBBgCBBIEtAICNQoNCgUEGAIEBBIEtAICCgoNCgUEGAIEBRIEtAILEQoNCgUEGAIEARIEtAISHwoNCgUEGAIEAxIEtAIiJAoNCgUEGAIECBIEtAIlNAoOCgYEGAIECAISBLQCJjMKDAoEBBgCBRIEtQICNQoNCgUEGAIFBBIEtQICCgoNCgUEGAIFBRIEtQILEQoNCgUEGAIFARIEtQISHwoNCgUEGAIFAxIEtQIiJAoNCgUEGAIFCBIEtQIlNAoOCgYEGAIFCAISBLUCJjMKDAoEBBgCBhIEtgICNwoNCgUEGAIGBBIEtgICCgoNCgUEGAIGBRIEtgILEgoNCgUEGAIGARIEtgITIQoNCgUEGAIGAxIEtgIkJgoNCgUEGAIGCBIEtgInNgoOCgYEGAIGCAISBLYCKDUKDAoEBBgCBxIEtwICNwoNCgUEGAIHBBIEtwICCgoNCgUEGAIHBRIEtwILEgoNCgUEGAIHARIEtwITIQoNCgUEGAIHAxIEtwIkJgoNCgUEGAIHCBIEtwInNgoOCgYEGAIHCAISBLcCKDUKDAoEBBgCCBIEuAICOQoNCgUEGAIIBBIEuAICCgoNCgUEGAIIBRIEuAILEwoNCgUEGAIIARIEuAIUIwoNCgUEGAIIAxIEuAImKAoNCgUEGAIICBIEuAIpOAoOCgYEGAIICAISBLgCKjcKDAoEBBgCCRIEuQICOQoNCgUEGAIJBBIEuQICCgoNCgUEGAIJBRIEuQILEwoNCgUEGAIJARIEuQIUIwoNCgUEGAIJAxIEuQImKAoNCgUEGAIJCBIEuQIpOAoOCgYEGAIJCAISBLkCKjcKDAoEBBgCChIEugICNAoNCgUEGAIKBBIEugICCgoNCgUEGAIKBRIEugILEAoNCgUEGAIKARIEugIRHQoNCgUEGAIKAxIEugIgIwoNCgUEGAIKCBIEugIkMwoOCgYEGAIKCAISBLoCJTIKDAoEBBgCCxIEuwICNgoNCgUEGAILBBIEuwICCgoNCgUEGAILBRIEuwILEQoNCgUEGAILARIEuwISHwoNCgUEGAILAxIEuwIiJQoNCgUEGAILCBIEuwImNQoOCgYEGAILCAISBLsCJzQKDAoEBBgCDBIEvAICMgoNCgUEGAIMBBIEvAICCgoNCgUEGAIMBRIEvAILDwoNCgUEGAIMARIEvAIQGwoNCgUEGAIMAxIEvAIeIQoNCgUEGAIMCBIEvAIiMQoOCgYEGAIMCAISBLwCIzAKDAoEBBgCDRIEvQICOQoNCgUEGAINBBIEvQICCgoNCgUEGAINBhIEvQILFgoNCgUEGAINARIEvQIXIgoNCgUEGAINAxIEvQIlKAoNCgUEGAINCBIEvQIpOAoOCgYEGAINCAISBL0CKjcKjQEKAgQZEgbCAgDRAgEafyBBIG1lc3NhZ2Ugd2l0aCB0aGUgc2FtZSBmaWVsZHMgYXMgVGVzdFBhY2tlZFR5cGVzLCBidXQgd2l0aG91dCBwYWNraW5nLiBVc2VkCiB0byB0ZXN0IHBhY2tlZCA8LT4gdW5wYWNrZWQgd2lyZSBjb21wYXRpYmlsaXR5LgoKCwoDBBkBEgTCAggZCgwKBAQZAgASBMMCAjYKDQoFBBkCAAQSBMMCAgoKDQoFBBkCAAUSBMMCCxAKDQoFBBkCAAESBMMCER8KDQoFBBkCAAMSBMMCIiQKDQoFBBkCAAgSBMMCJTUKDgoGBBkCAAgCEgTDAiY0CgwKBAQZAgESBMQCAjYKDQoFBBkCAQQSBMQCAgoKDQoFBBkCAQUSBMQCCxAKDQoFBBkCAQESBMQCER8KDQoFBBkCAQMSBMQCIiQKDQoFBBkCAQgSBMQCJTUKDgoGBBkCAQgCEgTEAiY0CgwKBAQZAgISBMUCAjgKDQoFBBkCAgQSBMUCAgoKDQoFBBkCAgUSBMUCCxEKDQoFBBkCAgESBMUCEiEKDQoFBBkCAgMSBMUCJCYKDQoFBBkCAggSBMUCJzcKDgoGBBkCAggCEgTFAig2CgwKBAQZAgMSBMYCAjgKDQoFBBkCAwQSBMYCAgoKDQoFBBkCAwUSBMYCCxEKDQoFBBkCAwESBMYCEiEKDQoFBBkCAwMSBMYCJCYKDQoFBBkCAwgSBMYCJzcKDgoGBBkCAwgCEgTGAig2CgwKBAQZAgQSBMcCAjgKDQoFBBkCBAQSBMcCAgoKDQoFBBkCBAUSBMcCCxEKDQoFBBkCBAESBMcCEiEKDQoFBBkCBAMSBMcCJCYKDQoFBBkCBAgSBMcCJzcKDgoGBBkCBAgCEgTHAig2CgwKBAQZAgUSBMgCAjgKDQoFBBkCBQQSBMgCAgoKDQoFBBkCBQUSBMgCCxEKDQoFBBkCBQESBMgCEiEKDQoFBBkCBQMSBMgCJCYKDQoFBBkCBQgSBMgCJzcKDgoGBBkCBQgCEgTIAig2CgwKBAQZAgYSBMkCAjoKDQoFBBkCBgQSBMkCAgoKDQoFBBkCBgUSBMkCCxIKDQoFBBkCBgESBMkCEyMKDQoFBBkCBgMSBMkCJigKDQoFBBkCBggSBMkCKTkKDgoGBBkCBggCEgTJAio4CgwKBAQZAgcSBMoCAjoKDQoFBBkCBwQSBMoCAgoKDQoFBBkCBwUSBMoCCxIKDQoFBBkCBwESBMoCEyMKDQoFBBkCBwMSBMoCJigKDQoFBBkCBwgSBMoCKTkKDgoGBBkCBwgCEgTKAio4CgwKBAQZAggSBMsCAjwKDQoFBBkCCAQSBMsCAgoKDQoFBBkCCAUSBMsCCxMKDQoFBBkCCAESBMsCFCUKDQoFBBkCCAMSBMsCKCoKDQoFBBkCCAgSBMsCKzsKDgoGBBkCCAgCEgTLAiw6CgwKBAQZAgkSBMwCAjwKDQoFBBkCCQQSBMwCAgoKDQoFBBkCCQUSBMwCCxMKDQoFBBkCCQESBMwCFCUKDQoFBBkCCQMSBMwCKCoKDQoFBBkCCQgSBMwCKzsKDgoGBBkCCQgCEgTMAiw6CgwKBAQZAgoSBM0CAjcKDQoFBBkCCgQSBM0CAgoKDQoF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ZGV0YWNoZWQgY29tbWVudCAyCgoLCgMEIwESBIEDCBYKMAoEBCMDABIGgwMChgMDGiAgTGVhZGluZyBuZXN0ZWQgbWVzc2FnZSBjb21tZW50CgoNCgUEIwMAARIEgwMKHgo2CgYEIwMAAgASBIUDBBsaJiBMZWFkaW5nIG5lc3RlZCBtZXNzYWdlIGZpZWxkIGNvbW1lbnQKCg8KBwQjAwACAAUSBIUDBAoKDwoHBCMDAAIAARIEhQMLFgoPCgcEIwMAAgADEgSFAxkaCi0KBAQjBAASBokDAowDAxodIExlYWRpbmcgbmVzdGVkIGVudW0gY29tbWVudAoKDQoFBCMEAAESBIkDBxgKJAoGBCMEAAIAEgSLAwQTGhQgWmVybyB2YWx1ZSBjb21tZW50CgoPCgcEIwQAAgABEgSLAwQOCg8KBwQjBAACAAISBIsDERIKPwoEBCMCABIEjwMCEhoXIExlYWRpbmcgZmllbGQgY29tbWVudAoiGCBUcmFpbGluZyBmaWVsZCBjb21tZW50CgoNCgUEIwIABRIEjwMCCAoNCgUEIwIAARIEjwMJDQoNCgUEIwIAAxIEjwMQEQokCgIFAxIGkwMAlgMBGhYgTGVhZGluZyBlbnVtIGNvbW1lbnQKCgsKAwUDARIEkwMFEAoiCgQFAwIAEgSVAwIRGhQgWmVybyB2YWx1ZSBjb21tZW50CgoNCgUFAwIAARIElQMCDAoNCgUFAwIAAhIElQMPEGIGcHJvdG8zCuFYCidjc2hhcnAvcHJvdG9zL21hcF91bml0dGVzdF9wcm90bzMucHJvdG8SEnByb3RvYnVmX3VuaXR0ZXN0MxojY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9wcm90bzMucHJvdG8imRYKB1Rlc3RNYXASVgoPbWFwX2ludDMyX2ludDMyGAEgAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJJbnQzMkVudHJ5Ug1tYXBJbnQzMkludDMyElYKD21hcF9pbnQ2NF9pbnQ2NBgCIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJcChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzISXAoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyMC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBVaW50NjRVaW50NjRFbnRyeVIPbWFwVWludDY0VWludDY0ElwKEW1hcF9zaW50MzJfc2ludDMyGAUgAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJcChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSYgoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEZpeGVkMzJGaXhlZDMyRW50cnlSEW1hcEZpeGVkMzJGaXhlZDMyEmIKE21hcF9maXhlZDY0X2ZpeGVkNjQYCCADKAsyMi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJoChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyNC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISaAoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GAogAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5UhNtYXBTZml4ZWQ2NFNmaXhlZDY0ElYKD21hcF9pbnQzMl9mbG9hdBgLIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJZChBtYXBfaW50MzJfZG91YmxlGAwgAygLMi8ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSUAoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEJvb2xCb29sRW50cnlSC21hcEJvb2xCb29sElwKEW1hcF9zdHJpbmdfc3RyaW5nGA4gAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJWCg9tYXBfaW50MzJfYnl0ZXMYDyADKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkJ5dGVzRW50cnlSDW1hcEludDMyQnl0ZXMSUwoObWFwX2ludDMyX2VudW0YECADKAsyLS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkVudW1FbnRyeVIMbWFwSW50MzJFbnVtEnIKGW1hcF9pbnQzMl9mb3JlaWduX21lc3NhZ2UYESADKAsyNy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnlSFm1hcEludDMyRm9yZWlnbk1lc3NhZ2UaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkJ5dGVzRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARpcChFNYXBJbnQzMkVudW1FbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoDjIbLnByb3RvYnVmX3VuaXR0ZXN0My5NYXBFbnVtUgV2YWx1ZToCOAEabQobTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjgKBXZhbHVlGAIgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUgV2YWx1ZToCOAEiSwoRVGVzdE1hcFN1Ym1lc3NhZ2USNgoIdGVzdF9tYXAYASABKAsyGy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcFIHdGVzdE1hcCLbAQoOVGVzdE1lc3NhZ2VNYXASYwoRbWFwX2ludDMyX21lc3NhZ2UYASADKAsyNy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1lc3NhZ2VNYXAuTWFwSW50MzJNZXNzYWdlRW50cnlSD21hcEludDMyTWVzc2FnZRpkChRNYXBJbnQzMk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI2CgV2YWx1ZRgCIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNSBXZhbHVlOgI4ASKJAgoPVGVzdFNhbWVUeXBlTWFwEkEKBG1hcDEYASADKAsyLS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdFNhbWVUeXBlTWFwLk1hcDFFbnRyeVIEbWFwMRJBCgRtYXAyGAIgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RTYW1lVHlwZU1hcC5NYXAyRW50cnlSBG1hcDIaNwoJTWFwMUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaNwoJTWFwMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEirRQKDFRlc3RBcmVuYU1hcBJbCg9tYXBfaW50MzJfaW50MzIYASADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJbCg9tYXBfaW50NjRfaW50NjQYAiADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJhChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwVWludDMyVWludDMyRW50cnlSD21hcFVpbnQzMlVpbnQzMhJhChFtYXBfdWludDY0X3VpbnQ2NBgEIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJhChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJhChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwU2ludDY0U2ludDY0RW50cnlSD21hcFNpbnQ2NFNpbnQ2NBJnChNtYXBfZml4ZWQzMl9maXhlZDMyGAcgAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJnChNtYXBfZml4ZWQ2NF9maXhlZDY0GAggAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJtChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyOS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeVITbWFwU2ZpeGVkMzJTZml4ZWQzMhJtChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYCiADKAsyOS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJbCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJeChBtYXBfaW50MzJfZG91YmxlGAwgAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkRvdWJsZUVudHJ5Ug5tYXBJbnQzMkRvdWJsZRJVCg1tYXBfYm9vbF9ib29sGA0gAygLMjEucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJYCg5tYXBfaW50MzJfZW51bRgOIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwSW50MzJFbnVtRW50cnlSDG1hcEludDMyRW51bRJ3ChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGA8gAygLMjwucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnlSFm1hcEludDMyRm9yZWlnbk1lc3NhZ2UaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaXAoRTWFwSW50MzJFbnVtRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKA4yGy5wcm90b2J1Zl91bml0dGVzdDMuTWFwRW51bVIFdmFsdWU6AjgBGm0KG01hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI4CgV2YWx1ZRgCIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBIvgBCh9NZXNzYWdlQ29udGFpbmluZ0VudW1DYWxsZWRUeXBlElEKBHR5cGUYASADKAsyPS5wcm90b2J1Zl91bml0dGVzdDMuTWVzc2FnZUNvbnRhaW5pbmdFbnVtQ2FsbGVkVHlwZS5UeXBlRW50cnlSBHR5cGUabAoJVHlwZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EkkKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdW5pdHRlc3QzLk1lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGVSBXZhbHVlOgI4ASIUCgRUeXBlEgwKCFRZUEVfRk9PEAAisQEKH01lc3NhZ2VDb250YWluaW5nTWFwQ2FsbGVkRW50cnkSVAoFZW50cnkYASADKAsyPi5wcm90b2J1Zl91bml0dGVzdDMuTWVzc2FnZUNvbnRhaW5pbmdNYXBDYWxsZWRFbnRyeS5FbnRyeUVudHJ5UgVlbnRyeRo4CgpFbnRyeUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEqPwoHTWFwRW51bRIQCgxNQVBfRU5VTV9GT08QABIQCgxNQVBfRU5VTV9CQVIQARIQCgxNQVBfRU5VTV9CQVoQAkIdqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK4iQKBhIEJABzAQqbDwoBDBIDJAASGswCIFRoaXMgZmlsZSBpcyBtb3N0bHkgZXF1aXZhbGVudCB0byBtYXBfdW5pdHRlc3QucHJvdG8sIGJ1dCBpbXBvcnRzCiB1bml0dGVzdF9wcm90bzMucHJvdG8gaW5zdGVhZCBvZiB1bml0dGVzdC5wcm90bywgc28gdGhhdCBpdCBvbmx5CiB1c2VzIHByb3RvMyBtZXNzYWdlcy4gVGhpcyBtYWtlcyBpdCBzdWl0YWJsZSBmb3IgdGVzdGluZwogaW1wbGVtZW50YXRpb25zIHdoaWNoIG9ubHkgc3VwcG9ydCBwcm90bzMuCiBUaGUgVGVzdFJlcXVpcmVkTWVzc2FnZU1hcCBtZXNzYWdlIGhhcyBiZWVuIHJlbW92ZWQgYXMgdGhlcmUgYXJlIG5vCiByZXF1aXJlZCBmaWVsZHMgaW4gcHJvdG8zLgoywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS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DgoHBAUEAAIAARIDawQMCg4KBwQFBAACAAISA2sPEAoLCgQEBQIAEgNtAjcKDAoFBAUCAAYSA20CLQoMCgUEBQIAARIDbS4yCgwKBQQFAgADEgNtNTYKSgoCBAYSBHEAcwEaPiBQcmV2aW91c2x5LCBtZXNzYWdlIGNhbm5vdCBjb250YWluIG1hcCBmaWVsZCBjYWxsZWQgImVudHJ5Ii4KCgoKAwQGARIDcQgnCgsKBAQGAgASA3ICHgoMCgUEBgIABhIDcgITCgwKBQQGAgABEgNyFBkKDAoFBAYCAAMSA3IcHWIGcHJvdG8zCv8iChxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYimAEKBlN0cnVjdBI7CgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5UgZmaWVsZHMaUQoLRmllbGRzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSBXZhbHVlOgI4ASKyAgoFVmFsdWUSOwoKbnVsbF92YWx1ZRgBIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVIAFIJbnVsbFZhbHVlEiMKDG51bWJlcl92YWx1ZRgCIAEoAUgAUgtudW1iZXJWYWx1ZRIjCgxzdHJpbmdfdmFsdWUYAyABKAlIAFILc3RyaW5nVmFsdWUSHwoKYm9vbF92YWx1ZRgEIAEoCEgAUglib29sVmFsdWUSPAoMc3RydWN0X3ZhbHVlGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAUgtzdHJ1Y3RWYWx1ZRI7CgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAUglsaXN0VmFsdWVCBgoEa2luZCI7CglMaXN0VmFsdWUSLgoGdmFsdWVzGAEgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgZ2YWx1ZXMqGwoJTnVsbFZhbHVlEg4KCk5VTExfVkFMVUUQAEJ/ChNjb20uZ29vZ2xlLnByb3RvYnVmQgtTdHJ1Y3RQcm90b1ABWi9nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9zdHJ1Y3RwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0qaHQoGEgQeAF4BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAfCgkKAggfEgMiAB8KCAoBCBIDIwBGCgkKAggLEgMjAEYKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQAsCgkKAggIEgMlACwKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAA7CgkKAgglEgMoADsKswMKAgQAEgQyADUBGqYDIGBTdHJ1Y3RgIHJlcHJlc2VudHMgYSBzdHJ1Y3R1cmVkIGRhdGEgdmFsdWUsIGNvbnNpc3Rpbmcgb2YgZmllbGRzCiB3aGljaCBtYXAgdG8gZHluYW1pY2FsbHkgdHlwZWQgdmFsdWVzLiBJbiBzb21lIGxhbmd1YWdlcywgYFN0cnVjdGAKIG1pZ2h0IGJlIHN1cHBvcnRlZCBieSBhIG5hdGl2ZSByZXByZXNlbnRhdGlvbi4gRm9yIGV4YW1wbGUsIGluCiBzY3JpcHRpbmcgbGFuZ3VhZ2VzIGxpa2UgSlMgYSBzdHJ1Y3QgaXMgcmVwcmVzZW50ZWQgYXMgYW4KIG9iamVjdC4gVGhlIGRldGFpbHMgb2YgdGhhdCByZXByZXNlbnRhdGlvbiBhcmUgZGVzY3JpYmVkIHRvZ2V0aGVyCiB3aXRoIHRoZSBwcm90byBzdXBwb3J0IGZvciB0aGUgbGFuZ3VhZ2UuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBTdHJ1Y3RgIGlzIEpTT04gb2JqZWN0LgoKCgoDBAABEgMyCA4KOQoEBAACABIDNAIgGiwgVW5vcmRlcmVkIG1hcCBvZiBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZXMuCgoMCgUEAAIABhIDNAIUCgwKBQQAAgABEgM0FRsKDAoFBAACAAMSAzQeHwrEAgoCBAESBD0ATQEatwIgYFZhbHVlYCByZXByZXNlbnRzIGEgZHluYW1pY2FsbHkgdHlwZWQgdmFsdWUgd2hpY2ggY2FuIGJlIGVpdGhlcgogbnVsbCwgYSBudW1iZXIsIGEgc3RyaW5nLCBhIGJvb2xlYW4sIGEgcmVjdXJzaXZlIHN0cnVjdCB2YWx1ZSwgb3IgYQogbGlzdCBvZiB2YWx1ZXMuIEEgcHJvZHVjZXIgb2YgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gc2V0IG9uZSBvZiB0aGVzZQogdmFyaWFudHMuIEFic2VuY2Ugb2YgYW55IHZhcmlhbnQgaW5kaWNhdGVzIGFuIGVycm9yLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgVmFsdWVgIGlzIEpTT04gdmFsdWUuCgoKCgMEAQESAz0IDQoiCgQEAQgAEgQ/AkwDGhQgVGhlIGtpbmQgb2YgdmFsdWUuCgoMCgUEAQgAARIDPwgMCicKBAQBAgASA0EEHRoaIFJlcHJlc2VudHMgYSBudWxsIHZhbHVlLgoKDAoFBAECAAYSA0EEDQoMCgUEAQIAARIDQQ4YCgwKBQQBAgADEgNBGxwKKQoEBAECARIDQwQcGhwgUmVwcmVzZW50cyBhIGRvdWJsZSB2YWx1ZS4KCgwKBQQBAgEFEgNDBAoKDAoFBAECAQESA0MLFwoMCgUEAQIBAxIDQxobCikKBAQBAgISA0UEHBocIFJlcHJlc2VudHMgYSBzdHJpbmcgdmFsdWUuCgoMCgUEAQICBRIDRQQKCgwKBQQBAgIBEgNFCxcKDAoFBAECAgMSA0UaGwoqCgQEAQIDEgNHBBgaHSBSZXByZXNlbnRzIGEgYm9vbGVhbiB2YWx1ZS4KCgwKBQQBAgMFEgNHBAgKDAoFBAECAwESA0cJEwoMCgUEAQIDAxIDRxYXCi0KBAQBAgQSA0kEHBogIFJlcHJlc2VudHMgYSBzdHJ1Y3R1cmVkIHZhbHVlLgoKDAoFBAECBAYSA0kECgoMCgUEAQIEARIDSQsXCgwKBQQBAgQDEgNJGhsKLQoEBAECBRIDSwQdGiAgUmVwcmVzZW50cyBhIHJlcGVhdGVkIGBWYWx1ZWAuCgoMCgUEAQIFBhIDSwQNCgwKBQQBAgUBEgNLDhgKDAoFBAECBQMSA0sbHAqpAQoCBQASBFMAVgEanAEgYE51bGxWYWx1ZWAgaXMgYSBzaW5nbGV0b24gZW51bWVyYXRpb24gdG8gcmVwcmVzZW50IHRoZSBudWxsIHZhbHVlIGZvciB0aGUKIGBWYWx1ZWAgdHlwZSB1bmlvbi4KCiAgVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBOdWxsVmFsdWVgIGlzIEpTT04gYG51bGxgLgoKCgoDBQABEgNTBQ4KGgoEBQACABIDVQIRGg0gTnVsbCB2YWx1ZS4KCgwKBQUAAgABEgNVAgwKDAoFBQACAAISA1UPEAqCAQoCBAISBFsAXgEadiBgTGlzdFZhbHVlYCBpcyBhIHdyYXBwZXIgYXJvdW5kIGEgcmVwZWF0ZWQgZmllbGQgb2YgdmFsdWVzLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgTGlzdFZhbHVlYCBpcyBKU09OIGFycmF5LgoKCgoDBAIBEgNbCBEKOgoEBAICABIDXQIcGi0gUmVwZWF0ZWQgZmllbGQgb2YgZHluYW1pY2FsbHkgdHlwZWQgdmFsdWVzLgoKDAoFBAICAAQSA10CCgoMCgUEAgIABhIDXQsQCgwKBQQCAgABEgNdERcKDAoFBAICAAMSA10aG2IGcHJvdG8zCthOCiNjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3Vlcy5wcm90bxIPdW5pdHRlc3RfaXNzdWVzGhxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvIicKCElzc3VlMzA3GhsKCk5lc3RlZE9uY2UaDQoLTmVzdGVkVHdpY2UizQEKE05lZ2F0aXZlRW51bU1lc3NhZ2USMwoFdmFsdWUYASABKA4yHS51bml0dGVzdF9pc3N1ZXMuTmVnYXRpdmVFbnVtUgV2YWx1ZRI5CgZ2YWx1ZXMYAiADKA4yHS51bml0dGVzdF9pc3N1ZXMuTmVnYXRpdmVFbnVtQgIQAFIGdmFsdWVzEkYKDXBhY2tlZF92YWx1ZXMYAyADKA4yHS51bml0dGVzdF9pc3N1ZXMuTmVnYXRpdmVFbnVtQgIQAVIMcGFja2VkVmFsdWVzIhUKD0RlcHJlY2F0ZWRDaGlsZDoCGAEiiwMKF0RlcHJlY2F0ZWRGaWVsZHNNZXNzYWdlEioKDlByaW1pdGl2ZVZhbHVlGAEgASgFQgIYAVIOUHJpbWl0aXZlVmFsdWUSKgoOUHJpbWl0aXZlQXJyYXkYAiADKAVCAhgBUg5QcmltaXRpdmVBcnJheRJICgxNZXNzYWdlVmFsdWUYAyABKAsyIC51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZENoaWxkQgIYAVIMTWVzc2FnZVZhbHVlEkgKDE1lc3NhZ2VBcnJheRgEIAMoCzIgLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkQ2hpbGRCAhgBUgxNZXNzYWdlQXJyYXkSQQoJRW51bVZhbHVlGAUgASgOMh8udW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRFbnVtQgIYAVIJRW51bVZhbHVlEkEKCUVudW1BcnJheRgGIAMoDjIfLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkRW51bUICGAFSCUVudW1BcnJheSIfCglJdGVtRmllbGQSEgoEaXRlbRgBIAEoBVIEaXRlbSJXCg1SZXNlcnZlZE5hbWVzEhQKBXR5cGVzGAEgASgFUgV0eXBlcxIeCgpkZXNjcmlwdG9yGAIgASgFUgpkZXNjcmlwdG9yGhAKDlNvbWVOZXN0ZWRUeXBlIt8BChVUZXN0SnNvbkZpZWxkT3JkZXJpbmcSHwoLcGxhaW5faW50MzIYBCABKAVSCnBsYWluSW50MzISHQoJbzFfc3RyaW5nGAIgASgJSABSCG8xU3RyaW5nEhsKCG8xX2ludDMyGAUgASgFSABSB28xSW50MzISIQoMcGxhaW5fc3RyaW5nGAEgASgJUgtwbGFpblN0cmluZxIbCghvMl9pbnQzMhgGIAEoBUgBUgdvMkludDMyEh0KCW8yX3N0cmluZxgDIAEoCUgBUghvMlN0cmluZ0IECgJvMUIECgJvMiJRCgxUZXN0SnNvbk5hbWUSEgoEbmFtZRgBIAEoCVIEbmFtZRIZCgtkZXNjcmlwdGlvbhgCIAEoCVIEZGVzYxISCgRndWlkGAMgASgJUgRleGlkIpMBCgxPbmVvZk1lcmdpbmcSFAoEdGV4dBgBIAEoCUgAUgR0ZXh0Ej4KBm5lc3RlZBgCIAEoCzIkLnVuaXR0ZXN0X2lzc3Vlcy5PbmVvZk1lcmdpbmcuTmVzdGVkSABSBm5lc3RlZBokCgZOZXN0ZWQSDAoBeBgBIAEoBVIBeBIMCgF5GAIgASgFUgF5QgcKBXZhbHVlIoMBChZOdWxsVmFsdWVPdXRzaWRlU3RydWN0EiMKDHN0cmluZ192YWx1ZRgBIAEoCUgAUgtzdHJpbmdWYWx1ZRI7CgpudWxsX3ZhbHVlGAIgASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZUgAUgludWxsVmFsdWVCBwoFdmFsdWUiUAoTTnVsbFZhbHVlTm90SW5PbmVvZhI5CgpudWxsX3ZhbHVlGAIgASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZVIJbnVsbFZhbHVlIn0KF01peGVkUmVndWxhckFuZE9wdGlvbmFsEiMKDXJlZ3VsYXJfZmllbGQYASABKAlSDHJlZ3VsYXJGaWVsZBIqCg5vcHRpb25hbF9maWVsZBgCIAEoCUgAUg1vcHRpb25hbEZpZWxkiAEBQhEKD19vcHRpb25hbF9maWVsZCJCChJPbmVvZldpdGhOb25lRmllbGQSDgoBeBgBIAEoCUgAUgF4EhQKBG5vbmUYAiABKAlIAFIEbm9uZUIGCgR0ZXN0IjsKEU9uZW9mV2l0aE5vbmVOYW1lEg4KAXgYASABKAlIAFIBeBIOCgF5GAIgASgJSABSAXlCBgoEbm9uZSKiAwoZRGlzYW1iaWd1YXRlQ29tbW9uTWVtYmVycxI+ChtkaXNhbWJpZ3VhdGVfY29tbW9uX21lbWJlcnMYASABKAVSGWRpc2FtYmlndWF0ZUNvbW1vbk1lbWJlcnMSFAoFdHlwZXMYAiABKAVSBXR5cGVzEh4KCmRlc2NyaXB0b3IYAyABKAVSCmRlc2NyaXB0b3ISFgoGZXF1YWxzGAQgASgFUgZlcXVhbHMSGwoJdG9fc3RyaW5nGAUgASgFUgh0b1N0cmluZxIiCg1nZXRfaGFzaF9jb2RlGAYgASgFUgtnZXRIYXNoQ29kZRIZCgh3cml0ZV90bxgHIAEoBVIHd3JpdGVUbxIUCgVjbG9uZRgIIAEoBVIFY2xvbmUSJQoOY2FsY3VsYXRlX3NpemUYCSABKAVSDWNhbGN1bGF0ZVNpemUSHQoKbWVyZ2VfZnJvbRgKIAEoBVIJbWVyZ2VGcm9tEicKD29uX2NvbnN0cnVjdGlvbhgLIAEoBVIOb25Db25zdHJ1Y3Rpb24SFgoGcGFyc2VyGAwgASgFUgZwYXJzZXIqVQoMTmVnYXRpdmVFbnVtEhYKEk5FR0FUSVZFX0VOVU1fWkVSTxAAEhYKCUZpdmVCZWxvdxD7//////////8BEhUKCE1pbnVzT25lEP///////////wEqNgoORGVwcmVjYXRlZEVudW0SFwoPREVQUkVDQVRFRF9aRVJPEAAaAggBEgcKA29uZRABGgIYAUIdqgIaVW5pdFRlc3QuSXNzdWVzLlRlc3RQcm90b3NK6zsKBxIFHgDbAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQgSAyQANwqOAgoCCCUSAyQANxplIElzc3VlOiBOb24tIkdvb2dsZS5Qcm90b2J1ZmZlcnMiIG5hbWVzcGFjZSB3aWxsIGVuc3VyZSB0aGF0IHByb3RvYnVmZmVyIGxpYnJhcnkgdHlwZXMgYXJlIHF1YWxpZmllZAoymwEgVGhlc2UgcHJvdG8gZGVzY3JpcHRvcnMgaGF2ZSBhdCBvbmUgdGltZSBiZWVuIHJlcG9ydGVkIGFzIGFuIGlzc3VlIG9yIGRlZmVjdC4KIFRoZXkgYXJlIGtlcHQgaGVyZSB0byByZXBsaWNhdGUgdGhlIGlzc3Vl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aXB0b3JQcm90b1IHc2VydmljZRJDCglleHRlbnNpb24YByADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhI2CgdvcHRpb25zGAggASgLMhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zUgdvcHRpb25zEkkKEHNvdXJjZV9jb2RlX2luZm8YCSABKAsyHy5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm9SDnNvdXJjZUNvZGVJbmZvEhYKBnN5bnRheBgMIAEoCVIGc3ludGF4EhgKB2VkaXRpb24YDSABKAlSB2VkaXRpb24iuQYKD0Rlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjsKBWZpZWxkGAIgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUgVmaWVsZBJDCglleHRlbnNpb24YBiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhJBCgtuZXN0ZWRfdHlwZRgDIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SCm5lc3RlZFR5cGUSQQoJZW51bV90eXBlGAQgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlElgKD2V4dGVuc2lvbl9yYW5nZRgFIAMoCzIvLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uRXh0ZW5zaW9uUmFuZ2VSDmV4dGVuc2lvblJhbmdlEkQKCm9uZW9mX2RlY2wYCCADKAsyJS5nb29nbGUucHJvdG9idWYuT25lb2ZEZXNjcmlwdG9yUHJvdG9SCW9uZW9mRGVjbBI5CgdvcHRpb25zGAcgASgLMh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zUgdvcHRpb25zElUKDnJlc2VydmVkX3JhbmdlGAkgAygLMi4uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYCiADKAlSDHJlc2VydmVkTmFtZRp6Cg5FeHRlbnNpb25SYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQSQAoHb3B0aW9ucxgDIAEoCzImLmdvb2dsZS5wcm90b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnNSB29wdGlvbnMaNwoNUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQifAoVRXh0ZW5zaW9uUmFuZ2VPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIiwQYKFEZpZWxkRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISQQoFbGFiZWwYBCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWxSBWxhYmVsEj4KBHR5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZVIEdHlwZRIbCgl0eXBlX25hbWUYBiABKAlSCHR5cGVOYW1lEhoKCGV4dGVuZGVlGAIgASgJUghleHRlbmRlZRIjCg1kZWZhdWx0X3ZhbHVlGAcgASgJUgxkZWZhdWx0VmFsdWUSHwoLb25lb2ZfaW5kZXgYCSABKAVSCm9uZW9mSW5kZXgSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRI3CgdvcHRpb25zGAggASgLMh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9uc1IHb3B0aW9ucxInCg9wcm90bzNfb3B0aW9uYWwYESABKAhSDnByb3RvM09wdGlvbmFsIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIpEJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIuChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgR0cnVlUg5jY0VuYWJsZUFyZW5hcxIqChFvYmpjX2NsYXNzX3ByZWZpeBgkIAEoCVIPb2JqY0NsYXNzUHJlZml4EikKEGNzaGFycF9uYW1lc3BhY2UYJSABKAlSD2NzaGFycE5hbWVzcGFjZRIhCgxzd2lmdF9wcmVmaXgYJyABKAlSC3N3aWZ0UHJlZml4EigKEHBocF9jbGFzc19wcmVmaXgYKCABKAlSDnBocENsYXNzUHJlZml4EiMKDXBocF9uYW1lc3BhY2UYKSABKAlSDHBocE5hbWVzcGFjZRI0ChZwaHBfbWV0YWRhdGFfbmFtZXNwYWNlGCwgASgJUhRwaHBNZXRhZGF0YU5hbWVzcGFjZRIhCgxydWJ5X3BhY2thZ2UYLSABKAlSC3J1YnlQYWNrYWdlElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIjoKDE9wdGltaXplTW9kZRIJCgVTUEVFRBABEg0KCUNPREVfU0laRRACEhAKDExJVEVfUlVOVElNRRADKgkI6AcQgICAgAJKBAgmECciuwMKDk1lc3NhZ2VPcHRpb25zEjwKF21lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0GAEgASgIOgVmYWxzZVIUbWVzc2FnZVNldFdpcmVGb3JtYXQSTAofbm9fc3RhbmRhcmRfZGVzY3JpcHRvcl9hY2Nlc3NvchgCIAEoCDoFZmFsc2VSHG5vU3RhbmRhcmREZXNjcmlwdG9yQWNjZXNzb3ISJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGwoJbWFwX2VudHJ5GAcgASgIUghtYXBFbnRyeRJWCiZkZXByZWNhdGVkX2xlZ2FjeV9qc29uX2ZpZWxkX2NvbmZsaWN0cxgLIAEoCEICGAFSImRlcHJlY2F0ZWRMZWdhY3lKc29uRmllbGRDb25mbGljdHMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAQQBUoECAUQBkoECAYQB0oECAgQCUoECAkQCiK3CAoMRmllbGRPcHRpb25zEkEKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HUgVjdHlwZRIWCgZwYWNrZWQYAiABKAhSBnBhY2tlZBJHCgZqc3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFMUgZqc3R5cGUSGQoEbGF6eRgFIAEoCDoFZmFsc2VSBGxhenkSLgoPdW52ZXJpZmllZF9sYXp5GA8gASgIOgVmYWxzZVIOdW52ZXJpZmllZExhenkSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGQoEd2VhaxgKIAEoCDoFZmFsc2VSBHdlYWsSKAoMZGVidWdfcmVkYWN0GBAgASgIOgVmYWxzZVILZGVidWdSZWRhY3QSSwoJcmV0ZW50aW9uGBEgASgOMi0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5PcHRpb25SZXRlbnRpb25SCXJldGVudGlvbhJGCgZ0YXJnZXQYEiABKA4yLi5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLk9wdGlvblRhcmdldFR5cGVSBnRhcmdldBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiIvCgVDVHlwZRIKCgZTVFJJTkcQABIICgRDT1JEEAESEAoMU1RSSU5HX1BJRUNFEAIiNQoGSlNUeXBlEg0KCUpTX05PUk1BTBAAEg0KCUpTX1NUUklORxABEg0KCUpTX05VTUJFUhACIlUKD09wdGlvblJldGVudGlvbhIVChFSRVRFTlRJT05fVU5LTk9XThAAEhUKEVJFVEVOVElPTl9SVU5USU1FEAESFAoQUkVURU5USU9OX1NPVVJDRRACIowCChBPcHRpb25UYXJnZXRUeXBlEhcKE1RBUkdFVF9UWVBFX1VOS05PV04QABIUChBUQVJHRVRfVFlQRV9GSUxFEAESHwobVEFSR0VUX1RZUEVfRVhURU5TSU9OX1JBTkdFEAISFwoTVEFSR0VUX1RZUEVfTUVTU0FHRRADEhUKEVRBUkdFVF9UWVBFX0ZJRUxEEAQSFQoRVEFSR0VUX1RZUEVfT05FT0YQBRIUChBUQVJHRVRfVFlQRV9FTlVNEAYSGgoWVEFSR0VUX1RZUEVfRU5VTV9FTlRSWRAHEhcKE1RBUkdFVF9UWVBFX1NFUlZJQ0UQCBIWChJUQVJHRVRfVFlQRV9NRVRIT0QQCSoJCOgHEICAgIACSgQIBBAFInMKDE9uZW9mT3B0aW9ucxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIpgCCgtFbnVtT3B0aW9ucxIfCgthbGxvd19hbGlhcxgCIAEoCFIKYWxsb3dBbGlhcxIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJWCiZkZXByZWNhdGVkX2xlZ2FjeV9qc29uX2ZpZWxkX2NvbmZsaWN0cxgGIAEoCEICGAFSImRlcHJlY2F0ZWRMZWdhY3lKc29uRmllbGRDb25mbGljdHMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAUQBiKeAQoQRW51bVZhbHVlT3B0aW9ucxIlCgpkZXByZWNhdGVkGAEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIpwBCg5TZXJ2aWNlT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIuACCg1NZXRob2RPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkEnEKEWlkZW1wb3RlbmN5X2xldmVsGCIgASgOMi8uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMuSWRlbXBvdGVuY3lMZXZlbDoTSURFTVBPVEVOQ1lfVU5LTk9XTlIQaWRlbXBvdGVuY3lMZXZlbBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiJQChBJZGVtcG90ZW5jeUxldmVsEhcKE0lERU1QT1RFTkNZX1VOS05PV04QABITCg9OT19TSURFX0VGRkVDVFMQARIOCgpJREVNUE9URU5UEAIqCQjoBxCAgICAAiKaAwoTVW5pbnRlcnByZXRlZE9wdGlvbhJBCgRuYW1lGAIgAygLMi0uZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24uTmFtZVBhcnRSBG5hbWUSKQoQaWRlbnRpZmllcl92YWx1ZRgDIAEoCVIPaWRlbnRpZmllclZhbHVlEiwKEnBvc2l0aXZlX2ludF92YWx1ZRgEIAEoBFIQcG9zaXRpdmVJbnRWYWx1ZRIsChJuZWdhdGl2ZV9pbnRfdmFsdWUYBSABKANSEG5lZ2F0aXZlSW50VmFsdWUSIQoMZG91YmxlX3ZhbHVlGAYgASgBUgtkb3VibGVWYWx1ZRIhCgxzdHJpbmdfdmFsdWUYByABKAxSC3N0cmluZ1ZhbHVlEicKD2FnZ3JlZ2F0ZV92YWx1ZRgIIAEoCVIOYWdncmVnYXRlVmFsdWUaSgoITmFtZVBhcnQSGwoJbmFtZV9wYXJ0GAEgAigJUghuYW1lUGFydBIhCgxpc19leHRlbnNpb24YAiACKAhSC2lzRXh0ZW5zaW9uIqcCCg5Tb3VyY2VDb2RlSW5mbxJECghsb2NhdGlvbhgBIAMoCzIoLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvblIIbG9jYXRpb24azgEKCExvY2F0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEhYKBHNwYW4YAiADKAVCAhABUgRzcGFuEikKEGxlYWRpbmdfY29tbWVudHMYAyABKAlSD2xlYWRpbmdDb21tZW50cxIrChF0cmFpbGluZ19jb21tZW50cxgEIAEoCVIQdHJhaWxpbmdDb21tZW50cxI6ChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJUhdsZWFkaW5nRGV0YWNoZWRDb21tZW50cyLQAgoRR2VuZXJhdGVkQ29kZUluZm8STQoKYW5ub3RhdGlvbhgBIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uUgphbm5vdGF0aW9uGusBCgpBbm5vdGF0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEh8KC3NvdXJjZV9maWxlGAIgASgJUgpzb3VyY2VGaWxlEhQKBWJlZ2luGAMgASgFUgViZWdpbhIQCgNlbmQYBCABKAVSA2VuZBJSCghzZW1hbnRpYxgFIAEoDjI2Lmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uLlNlbWFudGljUghzZW1hbnRpYyIoCghTZW1hbnRpYxIICgROT05FEAASBwoDU0VUEAESCQoFQUxJQVMQAkJ+ChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9zSAFaLWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2Rlc2NyaXB0b3JwYvgBAaICA0dQQqoCGkdvb2dsZS5Qcm90b2J1Zi5SZWZsZWN0aW9uSv3mAgoHEgUmAM4HAQqqDwoBDBIDJgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoy2wIgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogVGhlIG1lc3NhZ2VzIGluIHRoaXMgZmlsZSBkZXNjcmliZSB0aGUgZGVmaW5pdGlvbnMgZm91bmQgaW4gLnByb3RvIGZpbGVzLgogQSB2YWxpZCAucHJvdG8gZmls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dG8KIHNpZ25hbCB0byBvbGQgcHJvdG8zIGNsaWVudHMgdGhhdCBwcmVzZW5jZSBpcyB0cmFja2VkIGZvciB0aGlzIGZpZWxkLiBUaGlzCiBvbmVvZiBpcyBrbm93biBhcyBhICJzeW50aGV0aWMiIG9uZW9mLCBhbmQgdGhpcyBmaWVsZCBtdXN0IGJlIGl0cyBzb2xlCiBtZW1iZXIgKGVhY2ggcHJvdG8zIG9wdGlvbmFsIGZpZWxkIGdldHMgaXRzIG93biBzeW50aGV0aWMgb25lb2YpLiBTeW50aGV0aWMKIG9uZW9mcyBleGlzdCBpbiB0aGUgZGVzY3JpcHRvciBvbmx5LCBhbmQgZG8gbm90IGdlbmVyYXRlIGFueSBBUEkuIFN5bnRoZXRpYwogb25lb2ZzIG11c3QgYmUgb3JkZXJlZCBhZnRlciBhbGwgInJlYWwiIG9uZW9mcy4KCiBGb3IgbWVzc2FnZSBmaWVsZHMsIHByb3RvM19vcHRpb25hbCBkb2Vzbid0IGNyZWF0ZSBhbnkgc2VtYW50aWMgY2hhbmdlLAogc2luY2Ugbm9uLXJlcGVhdGVkIG1lc3NhZ2UgZmllbGRzIGFsd2F5cyB0cmFjayBwcmVzZW5jZS4gSG93ZXZlciBpdCBzdGlsbAogaW5kaWNhdGVzIHRoZSBzZW1hbnRpYyBkZXRhaWwgb2Ygd2hldGhlciB0aGUgdXNlciB3cm90ZSAib3B0aW9uYWwiIG9yIG5vdC4KIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3Igcm91bmQtdHJpcHBpbmcgdGhlIC5wcm90byBmaWxlLiBGb3IgY29uc2lzdGVuY3kgd2UKIGdpdmUgbWVzc2FnZSBmaWVsZHMgYSBzeW50aGV0aWMgb25lb2YgYWxzbywgZXZlbiB0aG91Z2ggaXQgaXMgbm90IHJlcXVpcmVkCiB0byB0cmFjayBwcmVzZW5jZS4gVGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCBiZWNhdXNlIHRoZSBwYXJzZXIgY2FuJ3QKIHRlbGwgaWYgYSBmaWVsZCBpcyBhIG1lc3NhZ2Ugb3IgYW4gZW51bSwgc28gaXQgbXVzdCBhbHdheXMgY3JlYXRlIGEKIHN5bnRoZXRpYyBvbmVvZi4KCiBQcm90bzIg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ZWxkIHRvIHBvcHVsYXRlIHRoZQogZXh0ZW5zaW9ucyB3aGVuIHdlIGJ1aWxkIGEgZGVzY3JpcHRvciwgYXQgd2hpY2ggcG9pbnQgYWxsIHByb3RvcyBoYXZlIGJlZW4KIHBhcnNlZCBhbmQgc28gYWxsIGV4dGVuc2lvbnMgYXJlIGtub3duLgoKIEV4dGVuc2lvbiBudW1iZXJzIGZvciBjdXN0b20gb3B0aW9ucyBtYXkgYmUgY2hvc2VuIGFzIGZvbGxvd3M6CiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgb25seSBiZSB1c2VkIHdpdGhpbiBhIHNpbmdsZSBhcHBsaWNhdGlvbiBvcgogICBvcmdhbml6YXRpb24sIG9yIGZvciBleHBlcmltZW50YWwgb3B0aW9ucywgdXNlIGZpZWxkIG51bWJlcnMgNTAwMDAKICAgdGhyb3VnaCA5OTk5OS4gIEl0IGlzIHVwIHRvIHlvdSB0byBlbnN1cmUgdGhhdCB5b3UgZG8gbm90IHVzZSB0aGUKICAgc2FtZSBudW1iZXIgZm9yIG11bHRpcGxlIG9wdGlvbnMuCiAqIEZvciBvcHRpb25zIHdoaWNoIHdpbGwgYmUgcHVibGlzaGVkIGFuZCB1c2VkIHB1YmxpY2x5IGJ5IG11bHRpcGxlCiAgIGluZGVwZW5kZW50IGVudGl0aWVzLCBlLW1haWwgcHJvdG9idWYtZ2xvYmFsLWV4dGVuc2lvbi1yZWdpc3RyeUBnb29nbGUuY29tCiAgIHRvIHJlc2VydmUgZXh0ZW5zaW9uIG51bWJlcnMuIFNpbXBseSBwcm92aWRlIHlvdXIgcHJvamVjdCBuYW1lIChlLmcuCiAgIE9iamVjdGl2ZS1DIHBsdWdpbikgYW5kIHlvdXIgcHJvamVjdCB3ZWJzaXRlIChpZiBhdmFpbGFibGUpIC0tIHRoZXJlJ3Mgbm8KICAgbmVlZCB0byBleHBsYWluIGhvdyB5b3UgaW50ZW5kIHRvIHVzZSB0aGVtLiBVc3VhbGx5IHlvdSBvbmx5IG5lZWQgb25lCiAgIGV4dGVuc2lvbiBudW1iZXIuIFlvdSBjYW4gZGVjbGFyZSBtdWx0aXBsZSBvcHRpb25zIHdpdGggb25seSBvbmUgZXh0ZW5zaW9uCiAgIG51bWJlciBieSBwdXR0aW5nIHRoZW0gaW4gYSBzdWItbWVzc2FnZS4gU2VlIHRoZSBDdXN0b20gT3B0aW9ucyBzZWN0aW9uIG9mCiAgIHRoZSBkb2NzIGZvciBleGFtcGxlczoKICAgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvI29wdGlvbnMKICAgSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgcG9wdWxhciwgYSB3ZWIgc2VydmljZSB3aWxsIGJlIHNldCB1cAogICB0byBhdXRvbWF0aWNhbGx5IGFzc2lnbiBvcHRpb24gbnVtYmVycy4KCgsKAwQKARIE1gIIEwr0AQoEBAoCABIE3AICIxrlASBTZXRzIHRoZSBKYXZhIHBhY2thZ2Ugd2hlcmUgY2xhc3NlcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIC5wcm90byB3aWxsIGJlCiBwbGFjZWQuICBCeSBkZWZhdWx0LCB0aGUgcHJvdG8gcGFja2FnZSBpcyB1c2VkLCBidXQgdGhpcyBpcyBvZnRlbgogaW5hcHByb3ByaWF0ZSBiZWNhdXNlIHByb3RvIHBhY2thZ2VzIGRvIG5vdCBub3JtYWxseSBzdGFydCB3aXRoIGJhY2t3YXJkcwogZG9tYWluIG5hbWVzLgoKDQoFBAoCAAQSBNwCAgoKDQoFBAoCAAUSBNwCCxEKDQoFBAoCAAESBNwCEh4KDQoFBAoCAAMSBNwCISIK8QIKBAQKAgESBOMCAisa4gIgQ29udHJvbHMgdGhlIG5hbWUgb2YgdGhlIHdyYXBwZXIgSmF2YSBjbGFzcyBnZW5lcmF0ZWQgZm9yIHRoZSAucHJvdG8gZmlsZS4KIFRoYXQgY2xhc3Mgd2lsbCBhbHdheXMgY29udGFpbiB0aGUgLnByb3RvIGZpbGUncyBnZXREZXNjcmlwdG9yKCkgbWV0aG9kIGFzCiB3ZWxsIGFzIGFueSB0b3AtbGV2ZWwgZXh0ZW5zaW9ucyBkZWZpbmVkIGluIHRoZSAucHJvdG8gZmlsZS4KIElmIGphdmFfbXVsdGlwbGVfZmlsZXMgaXMgZGlzYWJsZWQsIHRoZW4gYWxsIHRoZSBvdGhlciBjbGFzc2VzIGZyb20gdGhl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cmF0ZWQgZnJvbSB0aGlzIC5wcm90byB3aWxsIGJlCiBwbGFjZWQuIElmIG9taXR0ZWQsIHRoZSBHbyBwYWNrYWdlIHdpbGwgYmUgZGVyaXZlZCBmcm9tIHRoZSBmb2xsb3dpbmc6CiAgIC0gVGhlIGJhc2VuYW1lIG9mIHRoZSBwYWNrYWdlIGltcG9ydCBwYXRoLCBpZiBwcm92aWRlZC4KICAgLSBPdGhlcndpc2UsIHRoZSBwYWNrYWdlIHN0YXRlbWVudCBpbiB0aGUgLnByb3RvIGZpbGUsIGlmIHByZXNlbnQuCiAgIC0gT3RoZXJ3aXNlLCB0aGUgYmFzZW5hbWUgb2YgdGhlIC5wcm90byBmaWxlLCB3aXRob3V0IGV4dGVuc2lvbi4KCg0KBQQKAgYEEgSGAwIKCg0KBQQKAgYFEgSGAwsRCg0KBQQKAgYBEgSGAxIcCg0KBQQKAgYDEgSGAx8hCtQECgQECgIHEgSSAwI7GsUEIFNob3VsZCBnZW5lcmljIHNlcnZpY2VzIGJlIGdlbmVyYXRlZCBpbiBlYWNoIGxhbmd1YWdlPyAgIkdlbmVyaWMiIHNlcnZpY2VzCiBhcmUgbm90IHNwZWNpZmljIHRvIGFueSBwYXJ0aWN1bGFyIFJQQyBzeXN0ZW0uICBUaGV5IGFyZSBnZW5lcmF0ZWQgYnkgdGhlCiBtYWluIGNvZGUgZ2VuZXJhdG9ycyBpbiBlYWNoIGxhbmd1YWdlICh3aXRob3V0IGFkZGl0aW9uYWwgcGx1Z2lucykuCiBHZW5lcmljIHNlcnZpY2VzIHdlcmUgdGhlIG9ubHkga2luZCBvZiBzZXJ2aWNlIGdlbmVyYXRpb24gc3VwcG9ydGVkIGJ5CiBlYXJseSB2ZXJzaW9ucyBvZiBnb29nbGUucHJvdG9idWYuCgogR2VuZXJpYyBzZXJ2aWNlcyBhcmUgbm93IGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB1c2luZyBwbHVnaW5zCiB0aGF0IGdlbmVyYXRlIGNvZGUgc3BlY2lmaWMgdG8geW91ciBwYXJ0aWN1bGFyIFJQQyBzeXN0ZW0uICBUaGVyZWZvcmUsCiB0aGVzZSBkZWZhdWx0IHRvIGZhbHNlLiAgT2xkIGNvZGUgd2hpY2ggZGVwZW5k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ZXRzIG9ubHkKIGhhdmUgZXh0ZW5zaW9ucy4KCiBBbGwgZXh0ZW5zaW9ucyBvZiB5b3VyIHR5cGUgbXVzdCBiZSBzaW5ndWxhciBtZXNzYWdlczsgZS5nLiB0aGV5IGNhbm5vdAogYmUgaW50MzJzLCBlbnVtcywgb3IgcmVwZWF0ZWQgbWVzc2FnZXMuCgogQmVjYXVzZSB0aGlzIGlzIGFuIG9wdGlvbiwgdGhlIGFib3ZlIHR3byByZXN0cmljdGlvbnMgYXJlIG5vdCBlbmZvcmNlZCBieQogdGhlIHByb3RvY29sIGNvbXBpbGVyLgoKDQoFBAsCAAQSBN8DAgoKDQoFBAsCAAUSBN8DCw8KDQoFBAsCAAESBN8DECcKDQoFBAsCAAMSBN8DKisKDQoFBAsCAAgSBN8DLD0KDQoFBAsCAAcSBN8DNzwK6wEKBAQLAgESBOQDAkYa3AEgRGlzYWJsZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHN0YW5kYXJkICJkZXNjcmlwdG9yKCkiIGFjY2Vzc29yLCB3aGljaCBjYW4KIGNvbmZsaWN0IHdpdGggYSBmaWVsZCBvZiB0aGUgc2FtZSBuYW1lLiAgVGhpcyBpcyBtZWFudCB0byBtYWtlIG1pZ3JhdGlvbgogZnJvbSBwcm90bzEgZWFzaWVyOyBuZXcgY29kZSBzaG91bGQgYXZvaWQgZmllbGRzIG5hbWVkICJkZXNjcmlwdG9yIi4KCg0KBQQLAgEEEgTkAwIKCg0KBQQLAgEFEgTkAwsPCg0KBQQLAgEBEgTkAxAvCg0KBQQLAgEDEgTkAzIzCg0KBQQLAgEIEgTkAzRFCg0KBQQLAgEHEgTkAz9ECu4BCgQECwICEgTqAwIxGt8BIElzIHRoaXMgbWVzc2FnZSBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIHRoZSBtZXNzYWdlLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsCiB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgbWVzc2FnZXMuCgoNCgUECwICBBIE6gMCCgoNCgUECwICBRIE6gMLDwoNCgUECwICARIE6gMQGgoNCgUECwICAxIE6gMdHgoNCgUECwICCBIE6gMfMAoNCgUECwICBxIE6gMqLwoLCgMECwkSBOwDAhMKDAoEBAsJABIE7AMLDAoNCgUECwkAARIE7AMLDAoNCgUECwkAAhIE7AMLDAoMCgQECwkBEgTsAw4PCg0KBQQLCQEBEgTsAw4PCg0KBQQLCQECEgTsAw4PCgwKBAQLCQISBOwDERIKDQoFBAsJAgESBOwDERIKDQoFBAsJAgISBOwDERIKoAYKBAQLAgMSBIMEAh4akQYgTk9URTogRG8gbm90IHNldCB0aGUgb3B0aW9uIGluIC5wcm90byBmaWxlcy4gQWx3YXlzIHVzZSB0aGUgbWFwcyBzeW50YXgKIGluc3RlYWQuIFRoZSBvcHRpb24gc2hvdWxkIG9ubHkgYmUgaW1wbGljaXRseSBzZXQgYnkgdGhlIHByb3RvIGNvbXBpbGVyCiBwYXJzZXIuCgogV2hldGhlciB0aGUgbWVzc2FnZSBpcyBhbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYXAgZW50cnkgdHlwZSBmb3IgdGhlCiBtYXBzIGZpZWxkLgoKIEZvciBtYXBzIGZpZWxkczoKICAgICBtYXA8S2V5VHlwZSwgVmFsdWVUeXBlPiBtYXBfZmllbGQgPSAxOwogVGhlIHBhcnNlZCBkZXNjcmlwdG9yIGxvb2tzIGxpa2U6CiAgICAgbWVzc2FnZSBNYXBGaWVsZEVudHJ5IHsKICAgICAgICAgb3B0aW9uIG1hcF9lbnRyeSA9IHRydWU7CiAgICAgICAgIG9wdGlvbmFsIEtleVR5cGUga2V5ID0gMTsKICAgICAgICAgb3B0aW9uYWwgVmFsdWVUeXBlIHZhbHVlID0gMjsKICAgICB9CiAgICAgcmVwZWF0ZWQgTWFwRmllbGRFbnRyeSBtYXBfZmllbGQgPSAxOwoKIEltcGxlbWVudGF0aW9ucyBtYXkgY2hvb3NlIG5vdCB0byBnZW5lcmF0ZSB0aGUgbWFwX2VudHJ5PXRydWUgbWVzc2FnZSwgYnV0CiB1c2UgYSBuYXRpdmUgbWFwIGluIHRoZSB0YXJnZXQgbGFuZ3VhZ2UgdG8gaG9sZCB0aGUga2V5cyBhbmQgdmFsdWVzLgogVGhlIHJlZmxlY3Rpb24gQVBJcyBpbiBzdWNoIGltcGxlbWVudGF0aW9ucyBzdGlsbCBuZWVkIHRvIHdvcmsgYXMKIGlmIHRoZSBmaWVsZCBpcyBhIHJlcGVhdGVkIG1lc3NhZ2UgZmllbGQuCgoNCgUECwIDBBIEgwQCCgoNCgUECwIDBRIEgwQLDwoNCgUECwIDARIEgwQQGQoNCgUECwIDAxIEgwQcHQokCgMECwkSBIUEAg0iFyBqYXZhbGl0ZV9zZXJpYWxpemFibGUKCgwKBAQLCQMSBIUECwwKDQoFBAsJAwESBIUECwwKDQoFBAsJAwISBIUECwwKHwoDBAsJEgSGBAINIhIgamF2YW5hbm9fYXNfbGl0ZQoKDAoEBAsJBBIEhgQLDAoNCgUECwkEARIEhgQLDAoNCgUECwkEAhIEhgQLDArqAwoEBAsCBBIEkgQCUBrbAyBFbmFibGUgdGhlIGxlZ2FjeSBoYW5kbGluZyBvZiBKU09OIGZpZWxkIG5hbWUgY29uZmxpY3RzLiAgVGhpcyBsb3dlcmNhc2VzCiBhbmQgc3RyaXBzIHVuZGVyc2NvcmVkIGZyb20gdGhlIGZpZWxkcyBiZWZvcmUgY29tcGFyaXNvbiBpbiBwcm90bzMgb25seS4KIFRoZSBuZXcgYmVoYXZpb3IgdGFrZXMgYGpzb25fbmFtZWAgaW50byBhY2NvdW50IGFuZCBhcHBsaWVzIHRvIHByb3RvMiBhcwogd2VsbC4KCiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgYXMgYSB0ZW1wb3JhcnkgbWVhc3VyZSBhZ2FpbnN0IGJyb2tlbiBidWlsZHMgZHVlCiB0byB0aGUgY2hhbmdlIGluIGJlaGF2aW9yIGZvciBKU09OIGZpZWxkIG5hbWUgY29uZmxpY3RzLgoKIFRPRE8oYi8yNjE3NTAxOTApIFRoaXMgaXMgbGVnYWN5IGJlaGF2aW9yIHdlIHBsYW4gdG8gcmVtb3ZlIG9uY2UgZG93bnN0cmVhbQogdGVhbXMgaGF2ZSBoYWQgdGltZSB0byBtaWdyYXRlLgoKDQoFBAsCBAQSBJIEAgoKDQoFBAsCBAUSBJIECw8KDQoFBAsCBAESBJIEEDYKDQoFBAsCBAMSBJIEOTsKDQoFBAsCBAgSBJIEPE8KDgoGBAsCBAgDEgSSBD1OCk8KBAQLAgUSBJUEAjoaQSBUaGUgcGFyc2VyIHN0b3JlcyBvcHRpb25zIGl0IGRvZXNuJ3QgcmVjb2duaXplIGhlcmUuIFNlZSBhYm92ZS4KCg0KBQQLAgUEEgSVBAIKCg0KBQQLAgUGEgSVBAseCg0KBQQLAgUBEgSVBB8zCg0KBQQLAgUDEgSVBDY5CloKAwQLBRIEmAQCGRpNIENsaWVudHMgY2FuIGRlZmluZSBjdXN0b20gb3B0aW9ucyBpbiBleHRlbnNpb25zIG9mIHRoaXMgbWVzc2FnZS4gU2VlIGFib3ZlLgoKDAoEBAsFABIEmAQNGAoNCgUECwUAARIEmAQNEQoNCgUECwUAAhIEmAQVGAoMCgIEDBIGmwQAngUBCgsKAwQMARIEmwQIFAqjAgoEBAwCABIEoAQCLhqUAiBUaGUgY3R5cGUgb3B0aW9uIGluc3RydWN0cyB0aGUgQysrIGNvZGUgZ2VuZXJhdG9yIHRvIHVzZSBhIGRpZmZlcmVudAogcmVwcmVzZW50YXRpb24gb2YgdGhlIGZpZWxkIHRoYW4gaXQgbm9ybWFsbHkgd291bGQuICBTZWUgdGhlIHNwZWNpZmljCiBvcHRpb25zIGJlbG93LiAgVGhpcyBvcHRpb24gaXMgbm90IHlldCBpbXBsZW1lbnRlZCBpbiB0aGUgb3BlbiBzb3VyY2UKIHJlbGVhc2UgLS0gc29ycnksIHdlJ2xsIHRyeSB0byBpbmNsdWRlIGl0IGluIGEgZnV0dXJlIHZlcnNpb24hCgoNCgUEDAIABBIEoAQCCgoNCgUEDAIABhIEoAQLEAoNCgUEDAIAARIEoAQRFgoNCgUEDAIAAxIEoAQZGgoNCgUEDAIACBIEoAQbLQoNCgUEDAIABxIEoAQmLAoOCgQEDAQAEgahBAKoBAMKDQoFBAwEAAESBKEEBwwKHwoGBAwEAAIAEgSjBAQPGg8gRGVmYXVsdCBtb2RlLgoKDwoHBAwEAAIAARIEowQECgoPCgcEDAQAAgACEgSjBA0OCg4KBgQMBAACARIEpQQEDQoPCgcEDAQAAgEBEgSlBAQICg8KBwQMBAACAQISBKUECwwKDgoGBAwEAAICEgSnBAQVCg8KBwQMBAACAgESBKcEBBAKDwoHBAwEAAICAhIEpwQTFAraAgoEBAwCARIErgQCGxrLAiBUaGUgcGFja2VkIG9wdGlvbiBjYW4gYmUgZW5hYmxlZCBmb3IgcmVwZWF0ZWQgcHJpbWl0aXZlIGZpZWxkcyB0byBlbmFibGUKIGEgbW9yZSBlZmZpY2llbnQgcmVwcmVzZW50YXRpb24gb24gdGhlIHdpcmUuIFJhdGhlciB0aGFuIHJlcGVhdGVkbHkKIHdyaXRpbmcgdGhlIHRhZyBhbmQgdHlwZSBmb3IgZWFjaCBlbGVtZW50LCB0aGUgZW50aXJlIGFycmF5IGlzIGVuY29kZWQgYXMKIGEgc2luZ2xlIGxlbmd0aC1kZWxpbWl0ZWQgYmxvYi4gSW4gcHJvdG8zLCBvbmx5IGV4cGxpY2l0IHNldHRpbmcgaXQgdG8KIGZhbHNlIHdpbGwgYXZvaWQgdXNpbmcgcGFja2VkIGVuY29kaW5nLgoKDQoFBAwCAQQSBK4EAgoKDQoFBAwCAQUSBK4ECw8KDQoFBAwCAQESBK4EEBYKDQoFBAwCAQMSBK4EGRoKmgUKBAQMAgISBLsEAjMaiwUgVGhlIGpzdHlwZSBvcHRpb24gZGV0ZXJtaW5lcyB0aGUgSmF2YVNjcmlwdCB0eXBlIHVzZWQgZm9yIHZhbHVlcyBvZiB0aGUKIGZpZWxkLiAgVGhlIG9wdGlvbiBpcyBwZXJtaXR0ZWQgb25seSBmb3IgNjQgYml0IGludGVncmFsIGFuZCBmaXhlZCB0eXBlcwogKGludDY0LCB1aW50NjQsIHNpbnQ2NCwgZml4ZWQ2NCwgc2ZpeGVkNjQpLiAgQSBmaWVsZCB3aXRoIGpzdHlwZSBKU19TVFJJTkcKIGlzIHJlcHJlc2VudGVkIGFzIEphdmFTY3JpcHQgc3RyaW5nLCB3aGljaCBhdm9pZHMgbG9zcyBvZiBwcmVjaXNpb24gdGhhdAogY2FuIGhhcHBlbiB3aGVuIGEgbGFyZ2UgdmFsdWUgaXMgY29udmVydGVkIHRvIGEgZmxvYXRpbmcgcG9pbnQgSmF2YVNjcmlwdC4KIFNwZWNpZnlpbmcgSlNfTlVNQkVSIGZvciB0aGUganN0eXBlIGNhdXNlcyB0aGUgZ2VuZXJhdGVkIEphdmFTY3JpcHQgY29kZSB0bwogdXNlIHRoZSBKYXZhU2NyaXB0ICJudW1iZXIiIHR5cGUuICBUaGUgYmVoYXZpb3Igb2YgdGhlIGRlZmF1bHQgb3B0aW9uCiBKU19OT1JNQUwgaXMgaW1wbGVtZW50YXRpb24gZGVwZW5kZW50LgoKIFRoaXMgb3B0aW9uIGlzIGFuIGVudW0gdG8gcGVybWl0IGFkZGl0aW9uYWwgdHlwZXMgdG8gYmUgYWRkZWQsIGUuZy4KIGdvb2cubWF0aC5JbnRlZ2VyLgoKDQoFBAwCAgQSBLsEAgoKDQoFBAwCAgYSBLsECxEKDQoFBAwCAgESBLsEEhgKDQoFBAwCAgMSBLsEGxwKDQoFBAwCAggSBLsEHTIKDQoFBAwCAgcSBLsEKDEKDgoEBAwEARIGvAQCxQQDCg0KBQQMBAEBEgS8BAcNCicKBgQMBAECABIEvgQEEhoXIFVzZSB0aGUgZGVmYXVsdCB0eXBlLgoKDwoHBAwEAQIAARIEvgQEDQoPCgcEDAQBAgACEgS+BBARCikKBgQMBAECARIEwQQEEhoZIFVzZSBKYXZhU2NyaXB0IHN0cmluZ3MuCgoPCgcEDAQBAgEBEgTBBAQNCg8KBwQMBAECAQISBMEEEBEKKQoGBAwEAQICEgTEBAQSGhkgVXNlIEphdmFTY3JpcHQgbnVtYmVycy4KCg8KBwQMBAECAgESBMQEBA0KDwoHBAwEAQICAhIExAQQEQr/DQoEBAwCAxIE5QQCKxrwDSBTaG91bGQgdGhpcyBmaWVsZCBiZSBwYXJzZWQgbGF6aWx5PyAgTGF6eSBhcHBsaWVzIG9ubHkgdG8gbWVzc2FnZS10eXBlCiBmaWVsZHMuICBJdCBtZWFucyB0aGF0IHdoZW4gdGhlIG91dGVyIG1lc3NhZ2UgaXMgaW5pdGlhbGx5IHBhcnNlZCwgdGhlCiBpbm5lciBtZXNzYWdlJ3MgY29udGVudHMgd2lsbCBub3QgYmUgcGFyc2VkIGJ1dCBpbnN0ZWFkIHN0b3JlZCBpbiBlbmNvZGVkCiBmb3JtLiAgVGhlIGlubmVyIG1lc3NhZ2Ugd2lsbCBhY3R1YWxseSBiZSBwYXJzZWQgd2hlbiBpdCBpcyBmaXJzdCBhY2Nlc3NlZC4KCiBUaGlzIGlzIG9ubHkgYSBoaW50LiAgSW1wbGVtZW50YXRpb25zIGFyZSBmcmVlIHRvIGNob29zZSB3aGV0aGVyIHRvIHVzZQogZWFnZXIgb3IgbGF6eSBwYXJzaW5nIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uLiAgSG93ZXZlciwKIHNldHRpbmcgdGhpcyBvcHRpb24gdHJ1ZSBzdWdnZXN0cyB0aGF0IHRoZSBwcm90b2NvbCBhdXRob3IgYmVsaWV2ZXMgdGhhdAogdXNpbmcgbGF6eSBwYXJzaW5nIG9uIHRoaXMgZmllbGQgaXMgd29ydGggdGhlIGFkZGl0aW9uYWwgYm9va2tlZXBpbmcKIG92ZXJoZWFkIHR5cGljYWxseSBuZWVkZWQgdG8gaW1wbGVtZW50IGl0LgoKIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCB0aGUgcHVibGljIGludGVyZmFjZSBvZiBhbnkgZ2VuZXJhdGVkIGNvZGU7CiBhbGwgbWV0aG9kIHNpZ25hdHVyZXMgcmVtYWluIHRoZSBzYW1lLiAgRnVydGhlcm1vcmUsIHRocmVhZC1zYWZldHkgb2YgdGhlCiBpbnRlcmZhY2UgaXMgbm90IGFmZmVjdGVkIGJ5IHRoaXMgb3B0aW9uOyBjb25zdCBtZXRob2RzIHJlbWFpbiBzYWZlIHRvCiBjYWxsIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBjb25jdXJyZW50bHksIHdoaWxlIG5vbi1jb25zdCBtZXRob2RzIGNvbnRpbnVlCiB0byByZXF1aXJlIGV4Y2x1c2l2ZSBhY2Nlc3MuCgogTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBtYXkgY2hvb3NlIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMgd2l0aGluCiBhIGxhenkgc3ViLW1lc3NhZ2UuICBUaGF0IGlzLCBjYWxsaW5nIElzSW5pdGlhbGl6ZWQoKSBvbiB0aGUgb3V0ZXIgbWVzc2FnZQogbWF5IHJldHVybiB0cnVlIGV2ZW4gaWYgdGhlIGlubmVyIG1lc3NhZ2UgaGFzIG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzLgogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBvdGhlcndpc2UgdGhlIGlubmVyIG1lc3NhZ2Ugd291bGQgaGF2ZSB0byBiZQogcGFyc2VkIGluIG9yZGVyIHRvIHBlcmZvcm0gdGhlIGNoZWNrLCBkZWZlYXRpbmcgdGhlIHB1cnBvc2Ugb2YgbGF6eQogcGFyc2luZy4gIEFuIGltcGxlbWVudGF0aW9uIHdoaWNoIGNob29zZXMgbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcwogbXVzdCBiZSBjb25zaXN0ZW50IGFib3V0IGl0LiAgVGhhdCBpcywgZm9yIGFueSBwYXJ0aWN1bGFyIHN1Yi1tZXNzYWdlLCB0aGUKIGltcGxlbWVudGF0aW9uIG11c3QgZWl0aGVyICphbHdheXMqIGNoZWNrIGl0cyByZXF1aXJlZCBmaWVsZHMsIG9yICpuZXZlcioKIGNoZWNrIGl0cyByZXF1aXJlZCBmaWVsZHMsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3QgdGhlIG1lc3NhZ2UgaGFzCiBiZWVuIHBhcnNlZC4KCiBBcyBvZiBNYXkgMjAyMiwgbGF6eSB2ZXJpZmllcyB0aGUgY29udGVudHMgb2YgdGhlIGJ5dGUgc3RyZWFtIGR1cmluZwogcGFyc2luZy4gIEFuIGludmFsaWQgYnl0ZSBzdHJlYW0gd2lsbCBjYXVzZSB0aGUgb3ZlcmFsbCBwYXJzaW5nIHRvIGZhaWwuCgoNCgUEDAIDBBIE5QQCCgoNCgUEDAIDBRIE5QQLDwoNCgUEDAIDARIE5QQQFAoNCgUEDAIDAxIE5QQXGAoNCgUEDAIDCBIE5QQZKgoNCgUEDAIDBxIE5QQkKQqvAQoEBAwCBBIE6gQCNxqgASB1bnZlcmlmaWVkX2xhenkgZG9lcyBubyBjb3JyZWN0bmVzcyBjaGVja3Mgb24gdGhlIGJ5dGUgc3RyZWFtLiBUaGlzIHNob3VsZAogb25seSBiZSB1c2VkIHdoZXJlIGxhenkgd2l0aCB2ZXJpZmljYXRpb24gaXMgcHJvaGliaXRpdmUgZm9yIHBlcmZvcm1hbmNlCiByZWFzb25zLgoKDQoFBAwCBAQSBOoEAgoKDQoFBAwCBAUSBOoECw8KDQoFBAwCBAESBOoEEB8KDQoFBAwCBAMSBOoEIiQKDQoFBAwCBAgSBOoEJTYKDQoFBAwC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EgTkBQIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEEAUAEgTkBQ0YCg0KBQQQBQABEgTkBQ0RCg0KBQQQBQACEgTkBRUYCgwKAgQREgbnBQCEBgEKCwoDBBEBEgTnBQgVCtYDCgQEEQIAEgTyBQIyGtwBIElzIHRoaXMgbWV0aG9kIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIG1ldGhvZCwgb3IgaXQgd2lsbCBiZSBjb21wbGV0ZWx5IGlnbm9yZWQ7IGluIHRoZSB2ZXJ5IGxlYXN0LAogdGhpcyBpcyBhIGZvcm1hbGl6YXRpb24gZm9yIGRlcHJlY2F0aW5nIG1ldGhvZHMuCjLoASBOb3RlOiAgRmllbGQgbnVtYmVycyAxIHRocm91Z2ggMzIgYXJlIHJlc2VydmVkIGZvciBHb29nbGUncyBpbnRlcm5hbCBSUEMKICAgZnJhbWV3b3JrLiAgV2UgYXBvbG9naXplIGZvciBob2FyZGluZyB0aGVzZSBudW1iZXJzIHRvIG91cnNlbHZlcywgYnV0CiAgIHdlIHdlcmUgYWxyZWFkeSB1c2luZyB0aGVtIGxvbmcgYmVmb3JlIHdlIGRlY2lkZWQgdG8gcmVsZWFzZSBQcm90b2NvbAogICBCdWZmZXJzLgoKDQoFBBECAAQSBPIFAgoKDQoFBBECAAUSBPIFCw8KDQoFBBECAAESBPIFEBoKDQoFBBECAAMSBPIFHR8KDQoFBBECAAgSBPIFIDEKDQoFBBECAAcSBPIFKzAK8AEKBAQRBAASBvcFAvsFAxrfASBJcyB0aGlzIG1ldGhvZCBzaWRlLWVmZmVjdC1mcmVlIChvciBzYWZlIGluIEhUVFAgcGFybGFuY2UpLCBvciBpZGVtcG90ZW50LAogb3IgbmVpdGhlcj8gSFRUUCBiYXNlZCBSUEMgaW1wbGVtZW50YXRpb24gbWF5IGNob29zZSBHRVQgdmVyYiBmb3Igc2FmZQogbWV0aG9kcywgYW5k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bnRhdGlvbiBnZW5lcmF0b3JzLCBhbmQgc2ltaWxhcgogdG9vbHMuCgogRm9yIGV4YW1wbGUsIHNheSB3ZSBoYXZlIGEgZmlsZSBsaWtlOgogICBtZXNzYWdlIEZvbyB7CiAgICAgb3B0aW9uYWwgc3RyaW5nIGZvbyA9IDE7CiAgIH0KIExldCdzIGxvb2sgYXQganVzdCB0aGUgZmllbGQgZGVmaW5pdGlvbjoKICAgb3B0aW9uYWwgc3RyaW5nIGZvbyA9IDE7CiAgIF4gICAgICAgXl4gICAgIF5eICBeICBeXl4KICAgYSAgICAgICBiYyAgICAgZGUgIGYgIGdoaQogV2UgaGF2ZSB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczoKICAgc3BhbiAgIHBhdGggICAgICAgICAgICAgICByZXByZXNlbnRzCiAgIFthLGkpICBbIDQsIDAsIDIsIDAgXSAgICAgVGhlIHdob2xlIGZpZWxkIGRlZmluaXRpb24uCiAgIFthLGIpICBbIDQsIDAsIDIsIDAsIDQgXSAgVGhlIGxhYmVsIChvcHRpb25hbCkuCiAgIFtjLGQpICBbIDQsIDAsIDIsIDAsIDUgXSAgVGhlIHR5cGUgKHN0cmluZykuCiAgIFtlLGYpICBbIDQsIDAsIDIsIDAsIDEgXSAgVGhlIG5hbWUgKGZvbykuCiAgIFtnLGgpICBbIDQsIDAsIDIsIDAsIDMgXSAgVGhlIG51bWJlciAoMSkuCgogTm90ZXM6CiAtIEEgbG9jYXRpb24gbWF5IHJlZmVyIHRvIGEgcmVwZWF0ZWQgZmllbGQgaXRzZWxmIChpLmUuIG5vdCB0byBhbnkKICAgcGFydGljdWxhciBpbmRleCB3aXRoaW4gaXQpLiAgVGhpcyBpcyB1c2VkIHdoZW5ldmVyIGEgc2V0IG9mIGVsZW1lbnRzIGFyZQogICBsb2dpY2FsbHkgZW5jbG9zZWQgaW4gYSBzaW5nbGUgY29kZSBzZWdtZW50LiAgRm9yIGV4YW1wbGUsIGFuIGVudGlyZQogICBleHRlbmQgYmxvY2sgKHBvc3NpYmx5IGNvbnRhaW5pbmcgbXVsdGlwbGUgZXh0ZW5zaW9uIGRlZmluaXRpb25zKSB3aWxsCiAgIGhhdmUgYW4gb3V0ZXIgbG9jYXRpb24gd2hvc2UgcGF0aCByZWZlcnMgdG8gdGhlICJleHRlbnNpb25zIiByZXBlYXRlZAogICBmaWVsZCB3aXRob3V0IGFuIGluZGV4LgogLSBNdWx0aXBsZSBsb2NhdGlvbnMgbWF5IGhhdmUgdGhlIHNhbWUgcGF0aC4gIFRoaXMgaGFwcGVucyB3aGVuIGEgc2luZ2xlCiAgIGxvZ2ljYWwgZGVjbGFyYXRpb24gaXMgc3ByZWFkIG91dCBhY3Jvc3MgbXVsdGlwbGUgcGxhY2VzLiAgVGhlIG1vc3QKICAgb2J2aW91cyBleGFtcGxlIGlzIHRoZSAiZXh0ZW5kIiBibG9jayBhZ2FpbiAtLSB0aGVyZSBtYXkgYmUgbXVsdGlwbGUKICAgZXh0ZW5kIGJsb2NrcyBpbiB0aGUgc2FtZSBzY29wZSwgZWFjaCBvZiB3aGljaCB3aWxsIGhhdmUgdGhlIHNhbWUgcGF0aC4KIC0gQSBsb2NhdGlvbidzIHNwYW4gaXMgbm90IGFsd2F5cyBhIHN1YnNldCBvZiBpdHMgcGFyZW50J3Mgc3Bhbi4gIEZvcgogICBleGFtcGxlLCB0aGUgImV4dGVuZGVlIiBvZiBhbiBleHRlbnNpb24gZGVjbGFyYXRpb24gYXBwZWFycyBhdCB0aGUKICAgYmVnaW5uaW5nIG9mIHRoZSAiZXh0ZW5kIiBibG9jayBhbmQgaXMgc2hhcmVkIGJ5IGFsbCBleHRlbnNpb25zIHdpdGhpbgogICB0aGUgYmxvY2suCiAtIEp1c3QgYmVjYXVzZSBhIGxvY2F0aW9uJ3Mgc3BhbiBpcyBhIHN1YnNldCBvZiBzb21lIG90aGVyIGxvY2F0aW9uJ3Mgc3BhbgogICBkb2VzIG5vdCBtZWFuIHRoYXQgaXQgaXMgYSBkZXNjZW5kYW50LiAgRm9yIGV4YW1wbGUsIGEgImdyb3VwIiBkZWZpbmVzCiAgIGJvdGggYSB0eXBlIGFuZCBhIGZpZWxkIGluIGEgc2luZ2xlIGRlY2xhcmF0aW9uLiAgVGh1cywgdGhlIGxvY2F0aW9ucwogICBjb3JyZXNwb25kaW5nIHRvIHRoZSB0eXBlIGFuZCBmaWVsZCBhbmQgdGhlaXIgY29tcG9uZW50cyB3aWxsIG92ZXJsYXAuCiAtIENvZGUgd2hpY2ggdHJpZXMgdG8gaW50ZXJwcmV0IGxvY2F0aW9ucyBzaG91bGQgcHJvYmFibHkgYmUgZGVzaWduZWQgdG8KICAgaWdub3JlIHRob3NlIHRoYXQgaXQgZG9lc24ndCB1bmRlcnN0YW5kLCBhcyBtb3JlIHR5cGVzIG9mIGxvY2F0aW9ucyBjb3VsZAogICBiZSByZWNvcmRlZCBpbiB0aGUgZnV0dXJlLgoKDQoFBBMCAAQSBNMGAgoKDQoFBBMCAAYSBNMGCxMKDQoFBBMCAAESBNMGFBwKDQoFBBMCAAMSBNMGHyAKDgoEBBMDABIG1AYCpwcDCg0KBQQTAwABEgTUBgoSCokHCgYEEwMAAgASBOwGBCwa+AYgSWRlbnRpZmllcyB3aGljaCBwYXJ0IG9mIHRoZSBGaWxlRGVzY3JpcHRvclByb3RvIHdhcyBkZWZpbmVkIGF0IHRoaXMKIGxvY2F0aW9uLgoKIEVhY2ggZWxlbWVudCBpcyBhIGZpZWxkIG51bWJlciBvciBhbiBpbmRleC4gIFRoZXkgZm9ybSBhIHBhdGggZnJvbQogdGhlIHJvb3QgRmlsZURlc2NyaXB0b3JQcm90byB0byB0aGUgcGxhY2Ugd2hlcmUgdGhlIGRlZmluaXRpb24gb2NjdXJzLgogRm9yIGV4YW1wbGUsIHRoaXMgcGF0aDoKICAgWyA0LCAzLCAyLCA3LCAxIF0KIHJlZmVycyB0bzoKICAgZmlsZS5tZXNzYWdlX3R5cGUoMykgIC8vIDQsIDMKICAgICAgIC5maWVsZCg3KSAgICAgICAgIC8vIDIsIDcKICAgICAgIC5uYW1lKCkgICAgICAgICAgIC8vIDEKIFRoaXMgaXMgYmVjYXVzZSBGaWxlRGVzY3JpcHRvclByb3RvLm1lc3NhZ2VfdHlwZSBoYXMgZmllbGQgbnVtYmVyIDQ6CiAgIHJlcGVhdGVkIERlc2NyaXB0b3JQcm90byBtZXNzYWdlX3R5cGUgPSA0OwogYW5kIERlc2NyaXB0b3JQcm90by5maWVsZCBoYXMgZmllbGQgbnVtYmVyIDI6CiAgIHJlcGVhdGVkIEZpZWxkRGVzY3JpcHRvclByb3RvIGZpZWxkID0gMjsKIGFuZCBGaWVsZERlc2NyaXB0b3JQcm90by5uYW1lIGhhcyBmaWVsZCBudW1iZXIgMToKICAgb3B0aW9uYWwgc3RyaW5nIG5hbWUgPSAxOwoKIFRodXMsIHRoZSBhYm92ZSBwYXRoIGdpdmVzIHRoZSBsb2NhdGlvbiBvZiBhIGZpZWxkIG5hbWUuICBJZiB3ZSByZW1vdmVkCiB0aGUgbGFzdCBlbGVtZW50OgogICBbIDQsIDMsIDIsIDcgXQogdGhpcyBwYXRoIHJlZmVycyB0byB0aGUgd2hvbGUgZmllbGQgZGVjbGFyYXRpb24gKGZyb20gdGhlIGJlZ2lubmluZwogb2YgdGhlIGxhYmVsIHRvIHRoZSB0ZXJtaW5hdGluZyBzZW1pY29sb24pLgoKDwoHBBMDAAIABBIE7AYEDAoPCgcEEwMAAgAFEgTsBg0SCg8KBwQTAwACAAESBOwGExcKDwoHBBMDAAIAAxIE7AYaGwoPCgcEEwMAAgAIEgTsBhwrChAKCAQTAwACAAgCEgTsBh0qCtICCgYEEwMAAgESBPMGBCwawQIgQWx3YXlzIGhhcyBleGFjdGx5IHRocmVlIG9yIGZvdXIgZWxlbWVudHM6IHN0YXJ0IGxpbmUsIHN0YXJ0IGNvbHVtbiwKIGVuZCBsaW5lIChvcHRpb25hbCwgb3RoZXJ3aXNlIGFzc3VtZWQgc2FtZSBhcyBzdGFydCBsaW5lKSwgZW5kIGNvbHVtbi4KIFRoZXNlIGFyZSBwYWNrZWQgaW50byBhIHNpbmdsZSBmaWVsZCBmb3IgZWZmaWNpZW5jeS4gIE5vdGUgdGhhdCBsaW5lCiBhbmQgY29sdW1uIG51bWJlcnMgYXJlIHplcm8tYmFzZWQgLS0gdHlwaWNhbGx5IHlvdSB3aWxsIHdhbnQgdG8gYWRkCiAxIHRvIGVhY2ggYmVmb3JlIGRpc3BsYXlpbmcgdG8gYSB1c2VyLgoKDwoHBBMDAAIBBBIE8wYEDAoPCgcEEwMAAgEFEgTzBg0SCg8KBwQTAwACAQESBPMGExcKDwoHBBMDAAIBAxIE8wYaGwoPCgcEEwMAAgEIEgTzBhwrChAKCAQTAwACAQgCEgTzBh0qCqUMCgYEEwMAAgISBKQHBCkalAwgSWYgdGhpcyBTb3VyY2VDb2RlSW5mbyByZXByZXNlbnRzIGEgY29tcGxldGUgZGVjbGFyYXRpb24sIHRoZXNlIGFyZSBhbnkKIGNvbW1lbnRzIGFwcGVhcmluZyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiB3aGljaCBhcHBlYXIgdG8gYmUKIGF0dGFjaGVkIHRvIHRoZSBkZWNsYXJhdGlvbi4KCiBBIHNlcmllcyBvZiBsaW5lIGNvbW1lbnRzIGFwcGVhcmluZyBvbiBjb25zZWN1dGl2ZSBsaW5lcywgd2l0aCBubyBvdGhlcgogdG9rZW5zIGFwcGVhcmluZyBvbiB0aG9zZSBsaW5lcywgd2lsbCBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlIGNvbW1lbnQuCgogbGVhZGluZ19kZXRhY2hlZF9jb21tZW50cyB3aWxsIGtlZXAgcGFyYWdyYXBocyBvZiBjb21tZW50cyB0aGF0IGFwcGVhcgogYmVmb3JlIChidXQgbm90IGNvbm5lY3RlZCB0bykgdGhlIGN1cnJlbnQgZWxlbWVudC4gRWFjaCBwYXJhZ3JhcGgsCiBzZXBhcmF0ZWQgYnkgZW1wdHkgbGluZXMsIHdpbGwgYmUgb25lIGNvbW1lbnQgZWxlbWVudCBpbiB0aGUgcmVwZWF0ZWQKIGZpZWxkLgoKIE9ubHkgdGhlIGNvbW1lbnQgY29udGVudCBpcyBwcm92aWRlZDsgY29tbWVudCBtYXJrZXJzIChlLmcuIC8vKSBhcmUKIHN0cmlwcGVkIG91dC4gIEZvciBibG9jayBjb21tZW50cywgbGVhZGluZyB3aGl0ZXNwYWNlIGFuZCBhbiBhc3Rlcmlzawogd2lsbCBiZSBzdHJpcHBlZCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBsaW5lIG90aGVyIHRoYW4gdGhlIGZpcnN0LgogTmV3bGluZXMgYXJlIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuCgogRXhhbXBsZXM6CgogICBvcHRpb25hbCBpbnQzMiBmb28gPSAxOyAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBmb28uCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gYmFyLgogICBvcHRpb25hbCBpbnQzMiBiYXIgPSAyOwoKICAgb3B0aW9uYWwgc3RyaW5nIGJheiA9IDM7CiAgIC8vIENv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MmNzaGFycC9wcm90b3MvdW5pdHRlc3RfY3VzdG9tX29wdGlvbnNfcHJvdG8zLnByb3RvEhFwcm90b2J1Zl91bml0dGVzdBogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8i6wEKHFRlc3RNZXNzYWdlV2l0aEN1c3RvbU9wdGlvbnMSJgoGZmllbGQxGAEgASgJQg4IAcHgwx0t4XUKAgAAAFIGZmllbGQxEiEKC29uZW9mX2ZpZWxkGAIgASgFSABSCm9uZW9mRmllbGQiUwoGQW5FbnVtEhYKEkFORU5VTV9VTlNQRUNJRklFRBAAEg8KC0FORU5VTV9WQUwxEAESFgoLQU5FTlVNX1ZBTDIQAhoFsIb6BXsaCMX2yR3r/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/DowR3qrcDlJPrshTsqCGQSDkZpbGVBbm5vdGF0aW9uGhYSFE5lc3RlZEZpbGVBbm5vdGF0aW9uSrlRCgcSBSsA5wIBCvYQCgEMEgMrABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLTASBBdXRob3I6IGJlbmp5QGdvb2dsZS5jb20gKEJlbmp5IFdlaW5iZXJnZXIpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3RvIGZpbGUgdXNlZCB0byB0ZXN0IHRoZSAiY3VzdG9tIG9wdGlvbnMiIGZlYXR1cmUgb2YgZ29vZ2xlLnByb3RvYnVmLgoy0QIgVGhpcyBmaWxlIGlzIGJhc2VkIG9uIHVuaXR0ZXN0X2N1c3RvbV9vcHRpb25zLnByb3RvIGluCiBzcmMvZ29vZ2xlL3Byb3RvYnVmLCBidXQgaXMgbW9kaWZpZWQgZm9yIHByb3RvMy4gSXQgY291bGQKIHBvdGVudGlhbGx5IGJlIG1vdmVkIGludG8gc3JjL2dvb2dsZS9wcm90b2J1ZiwgYnV0IGN1cnJlbnRseSBDIwogaXMgdGhlIG9ubHkgbGFuZ3VhZ2UgdGhhdCByZWFsbHkgbmVlZHMgaXQsIGFzIHdlIGRvbid0IHN1cHBvcnQKIHByb3RvMiBzeW50YXguIEl0J3MgY3V0IGRvd24gc2lnbmlmaWNhbnRseSBhcyBwcm90bzMgb25seSBzdXBwb3J0cwogZXh0ZW5zaW9ucyBmb3Igb3B0aW9ucy4KCggKAQgSAy4AIAo1CgUIjp3YAxIDLgAgGicgQSBjdXN0b20gZmlsZSBvcHRpb24gKGRlZmluZWQgYmVsb3cpLgoKCQoCAwASAzAAKgqgAQoBAhIDNAAaGpUBIFdlIGRvbid0IHB1dCB0aGlzIGluIGEgcGFja2FnZSB3aXRoaW4gcHJvdG8yIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUKIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgZGVwZW5kIG9uIGJlaW5nIGluIHRoZSBwcm90bzIgbmFtZXNwYWNlLgoKCAoBCBIDNQA3CgkKAgglEgM1ADcKPgoBBxIEOQA7ATIzIFNvbWUgc2ltcGxlIHRlc3QgY3VzdG9tIG9wdGlvbnMgb2YgdmFyaW91cyB0eXBlcy4KCgkKAgcAEgM6Ah0KCgoDBwACEgM5ByIK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ZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjIoIEF1dGhvcjogbGl1amlzaUBnb29nbGUuY29tIChQaGVybCBMaXUpCgoICgECEgMiACgKCAoBCBIDJAA+CgkKAgglEgMkAD4KCgoCBAASBCYAKAEKCgoDBAABEgMmCBsKCwoEBAACABIDJwIXCgwKBQQAAgAEEgMnAgoKDAoFBAACAAUSAycLEAoMCgUEAAIAARIDJxESCgwKBQQAAgADEgMnFRYK+RYKI2NzaGFycC9wcm90b3MvdW5pdHRlc3RfaW1wb3J0LnByb3RvEh9wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yGipjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWMucHJvdG8iHQoNSW1wb3J0TWVzc2FnZRIMCgFkGAEgASgFUgFkKjwKCkltcG9ydEVudW0SDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAkqMQoQSW1wb3J0RW51bUZvck1hcBILCgdVTktOT1dOEAASBwoDRk9PEAESBwoDQkFSEAJCKUgB+AEBqgIhR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3MuUHJvdG8ySscUCgYSBCQAQgEKmA4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMskBIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3aGljaCBpcyBpbXBvcnRlZCBieSB1bml0dGVzdC5wcm90byB0byB0ZXN0IGltcG9ydGluZy4KCvUBCgECEgMqACga6gEgV2UgZG9uJ3QgcHV0IHRoaXMgaW4gYSBwYWNrYWdlIHdpdGhpbiBwcm90bzIgYmVjYXVzZSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZQogdGhhdCB0aGUgZ2VuZXJhdGVkIGNvZGUgZG9lc24ndCBkZXBlbmQgb24gYmVpbmcgaW4gdGhlIHByb3RvMiBuYW1lc3BhY2UuCiBJbiB0ZXN0X3V0aWwuaCB3ZSBkbwogInVzaW5nIG5hbWVzcGFjZSB1bml0dGVzdF9pbXBvcnQgPSBwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQiLgoKCAoBCBIDLAAcCgkKAggJEgMsABwKCAoBCBIDLQAfCgkKAggfEgMtAB8KCAoBCBIDLgA+CgkKAgglEgMuAD4KHwoCAwASAzEAOxoUIFRlc3QgcHVibGljIGltcG9ydAoKCQoCCgASAzEHDQoKCgIEABIEMwA1AQoKCgMEAAESAzMIFQoLCgQEAAIAEgM0AhcKDAoFBAACAAQSAzQCCgoMCgUEAAIABRIDNAsQCgwKBQQAAgABEgM0ERIKDAoFBAACAAMSAzQVFgoKCgIFABIENwA7AQoKCgMFAAESAzcFDwoLCgQFAAIAEgM4AhEKDAoFBQACAAESAzgCDAoMCgUFAAIAAhIDOA8QCgsKBAUAAgESAzkCEQoMCgUFAAIBARIDOQIMCgwKBQUAAgECEgM5DxAKCwoEBQACAhIDOgIRCgwKBQUAAgIBEgM6AgwKDAoFBQACAgISAzoPEApICgIFARIEPgBCARo8IFRvIHVzZSBhbiBlbnVtIGluIGEgbWFwLCBpdCBtdXN0IGhhcyB0aGUgZmlyc3QgdmFsdWUgYXMgMC4KCgoKAwUBARIDPgUVCgsKBAUBAgASAz8CDgoMCgUFAQIAARIDPwIJCgwKBQUBAgACEgM/DA0KCwoEBQECARIDQAIKCgwKBQUBAgEBEgNAAgUKDAoFBQECAQISA0AICQoLCgQFAQICEgNBAgoKDAoFBQECAgESA0ECBQoMCgUFAQICAhIDQQgJUAAKpdMFChxjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0LnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9wcm90bzIaI2NzaGFycC9wcm90b3MvdW5pdHRlc3RfaW1wb3J0LnByb3RvIpEkCgxUZXN0QWxsVHlwZXMSJQoOb3B0aW9uYWxfaW50MzIYASABKAVSDW9wdGlvbmFsSW50MzISJQoOb3B0aW9uYWxfaW50NjQYAiABKANSDW9wdGlvbmFsSW50NjQSJwoPb3B0aW9uYWxfdWludDMyGAMgASgNUg5vcHRpb25hbFVpbnQzMhInCg9vcHRpb25hbF91aW50NjQYBCABKARSDm9wdGlvbmFsVWludDY0EicKD29wdGlvbmFsX3NpbnQzMhgFIAEoEVIOb3B0aW9uYWxTaW50MzISJwoPb3B0aW9uYWxfc2ludDY0GAYgASgSUg5vcHRpb25hbFNpbnQ2NBIpChBvcHRpb25hbF9maXhlZDMyGAcgASgHUg9vcHRpb25hbEZpeGVkMzISKQoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBlIPb3B0aW9uYWxGaXhlZDY0EisKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPUhBvcHRpb25hbFNmaXhlZDMyEisKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQUhBvcHRpb25hbFNmaXhlZDY0EiUKDm9wdGlvbmFsX2Zsb2F0GAsgASgCUg1vcHRpb25hbEZsb2F0EicKD29wdGlvbmFsX2RvdWJsZRgMIAEoAVIOb3B0aW9uYWxEb3VibGUSIwoNb3B0aW9uYWxfYm9vbBgNIAEoCFIMb3B0aW9uYWxCb29sEicKD29wdGlvbmFsX3N0cmluZxgOIAEoCVIOb3B0aW9uYWxTdHJpbmcSJQoOb3B0aW9uYWxfYnl0ZXMYDyABKAxSDW9wdGlvbmFsQnl0ZXMSWgoNb3B0aW9uYWxncm91cBgQIAEoCjI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBJsChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlEmIKGG9wdGlvbmFsX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIWb3B0aW9uYWxGb3JlaWduTWVzc2FnZRJmChdvcHRpb25hbF9pbXBvcnRfbWVzc2FnZRgUIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0TWVzc2FnZVIVb3B0aW9uYWxJbXBvcnRNZXNzYWdlEmMKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhJvcHRpb25hbE5lc3RlZEVudW0SWQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtEl0KFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtUhJvcHRpb25hbEltcG9ydEVudW0SNgoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAlITb3B0aW9uYWxTdHJpbmdQaWVjZRInCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIAVIMb3B0aW9uYWxDb3JkEnkKHm9wdGlvbmFsX3B1YmxpY19pbXBvcnRfbWVzc2FnZRgaIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuUHVibGljSW1wb3J0TWVzc2FnZVIbb3B0aW9uYWxQdWJsaWNJbXBvcnRNZXNzYWdlEmwKFW9wdGlvbmFsX2xhenlfbWVzc2FnZRgbIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSE29wdGlvbmFsTGF6eU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSWgoNcmVwZWF0ZWRncm91cBguIAMoCjI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuUmVwZWF0ZWRHcm91cFINcmVwZWF0ZWRncm91cBJsChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEmIKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJmChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0TWVzc2FnZVIVcmVwZWF0ZWRJbXBvcnRNZXNzYWdlEmMKFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhJyZXBlYXRlZE5lc3RlZEVudW0SWQoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhNyZXBlYXRlZEZvcmVpZ25FbnVtEl0KFHJlcGVhdGVkX2ltcG9ydF9lbnVtGDUgAygOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtUhJyZXBlYXRlZEltcG9ydEVudW0SNgoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAlITcmVwZWF0ZWRTdHJpbmdQaWVjZRInCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIAVIMcmVwZWF0ZWRDb3JkEmwKFXJlcGVhdGVkX2xhenlfbWVzc2FnZRg5IAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAFSE3JlcGVhdGVkTGF6eU1lc3NhZ2USJwoNZGVmYXVsdF9pbnQzMhg9IAEoBToCNDFSDGRlZmF1bHRJbnQzMhInCg1kZWZhdWx0X2ludDY0GD4gASgDOgI0MlIMZGVmYXVsdEludDY0EikKDmRlZmF1bHRfdWludDMyGD8gASgNOgI0M1INZGVmYXVsdFVpbnQzMhIpCg5kZWZhdWx0X3VpbnQ2NBhAIAEoBDoCNDRSDWRlZmF1bHRVaW50NjQSKgoOZGVmYXVsdF9zaW50MzIYQSABKBE6Ay00NVINZGVmYXVsdFNpbnQzMhIpCg5kZWZhdWx0X3NpbnQ2NBhCIAEoEjoCNDZSDWRlZmF1bHRTaW50NjQSKwoPZGVmYXVsdF9maXhlZDMyGEMgASgHOgI0N1IOZGVmYXVsdEZpeGVkMzISKwoPZGVmYXVsdF9maXhlZDY0GEQgASgGOgI0OFIOZGVmYXVsdEZpeGVkNjQSLQoQZGVmYXVsdF9zZml4ZWQzMhhFIAEoDzoCNDlSD2RlZmF1bHRTZml4ZWQzMhIuChBkZWZhdWx0X3NmaXhlZDY0GEYgASgQOgMtNTBSD2RlZmF1bHRTZml4ZWQ2NBIpCg1kZWZhdWx0X2Zsb2F0GEcgASgCOgQ1MS41UgxkZWZhdWx0RmxvYXQSLAoOZGVmYXVsdF9kb3VibGUYSCABKAE6BTUyMDAwUg1kZWZhdWx0RG91YmxlEicKDGRlZmF1bHRfYm9vbBhJIAEoCDoEdHJ1ZVILZGVmYXVsdEJvb2wSLAoOZGVmYXVsdF9zdHJpbmcYSiABKAk6BWhlbGxvUg1kZWZhdWx0U3RyaW5nEioKDWRlZmF1bHRfYnl0ZXMYSyABKAw6BXdvcmxkUgxkZWZhdWx0Qnl0ZXMSZgoTZGVmYXVsdF9uZXN0ZWRfZW51bRhRIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bToDQkFSUhFkZWZhdWx0TmVzdGVkRW51bRJkChRkZWZhdWx0X2ZvcmVpZ25fZW51bRhSIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVJSEmRlZmF1bHRGb3JlaWduRW51bRJnChNkZWZhdWx0X2ltcG9ydF9lbnVtGFMgASgOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtOgpJTVBPUlRfQkFSUhFkZWZhdWx0SW1wb3J0RW51bRI5ChRkZWZhdWx0X3N0cmluZ19waWVjZRhUIAEoCToDYWJjQgIIAlISZGVmYXVsdFN0cmluZ1BpZWNlEioKDGRlZmF1bHRfY29yZBhVIAEoCToDMTIzQgIIAVILZGVmYXVsdENvcmQSIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEmgKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxofCg1OZXN0ZWRNZXNzYWdlEg4KAmJiGAEgASgFUgJiYhodCg1PcHRpb25hbEdyb3VwEgwKAWEYESABKAVSAWEaHQoNUmVwZWF0ZWRHcm91cBIMCgFhGC8gASgFUgFhIjkKCk5lc3RlZEVudW0SBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCDQoLb25lb2ZfZmllbGQi7wEKEk5lc3RlZFRlc3RBbGxUeXBlcxJCCgVjaGlsZBgBIAEoCzIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5OZXN0ZWRUZXN0QWxsVHlwZXNSBWNoaWxkEkAKB3BheWxvYWQYAiABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgdwYXlsb2FkElMKDnJlcGVhdGVkX2NoaWxkGAMgAygLMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLk5lc3RlZFRlc3RBbGxUeXBlc1INcmVwZWF0ZWRDaGlsZCKWAQoUVGVzdERlcHJlY2F0ZWRGaWVsZHMSLQoQZGVwcmVjYXRlZF9pbnQzMhgBIAEoBUICGAFSD2RlcHJlY2F0ZWRJbnQzMhI/ChlkZXByZWNhdGVkX2ludDMyX2luX29uZW9mGAIgASgFQgIYAUgAUhZkZXByZWNhdGVkSW50MzJJbk9uZW9mQg4KDG9uZW9mX2ZpZWxkcyIbChVUZXN0RGVwcmVjYXRlZE1lc3NhZ2U6AhgBIiwKDkZvcmVpZ25NZXNzYWdlEgwKAWMYASABKAVSAWMSDAoBZBgCIAEoBVIBZCIwChJUZXN0UmVzZXJ2ZWRGaWVsZHNKBAgCEANKBAgPEBBKBAgJEAxSA2JhclIDYmF6Ih0KEVRlc3RBbGxFeHRlbnNpb25zKggIARCAgICAAiInChdPcHRpb25hbEdyb3VwX2V4dGVuc2lvbhIMCgFhGBEgASgFUgFhIicKF1JlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uEgwKAWEYLyABKAVSAWEi3gEKCVRlc3RHcm91cBJXCg1vcHRpb25hbGdyb3VwGBAgASgKMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RHcm91cC5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwElkKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVITb3B0aW9uYWxGb3JlaWduRW51bRodCg1PcHRpb25hbEdyb3VwEgwKAWEYESABKAVSAWEiHgoSVGVzdEdyb3VwRXh0ZW5zaW9uKggIARCAgICAAiK4BAoTVGVzdE5lc3RlZEV4dGVuc2lvbhonChdPcHRpb25hbEdyb3VwX2V4dGVuc2lvbhIMCgFhGBEgASgFUgFhMkYKBHRlc3QSKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6gcgASgJOgR0ZXN0UgR0ZXN0MmQKF25lc3RlZF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOsHIAEoCVIVbmVzdGVkU3RyaW5nRXh0ZW5zaW9uMqwBChdvcHRpb25hbGdyb3VwX2V4dGVuc2lvbhIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0R3JvdXBFeHRlbnNpb24YECABKAoyRS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE5lc3RlZEV4dGVuc2lvbi5PcHRpb25hbEdyb3VwX2V4dGVuc2lvblIWb3B0aW9uYWxncm91cEV4dGVuc2lvbjKaAQofb3B0aW9uYWxfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0R3JvdXBFeHRlbnNpb24YFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SHG9wdGlvbmFsRm9yZWlnbkVudW1FeHRlbnNpb24ikAgKDFRlc3RSZXF1aXJlZBIMCgFhGAEgAigFUgFhEhYKBmR1bW15MhgCIAEoBVIGZHVtbXkyEgwKAWIYAyACKAVSAWISFgoGZHVtbXk0GAQgASgFUgZkdW1teTQSFgoGZHVtbXk1GAUgASgFUgZkdW1teTUSFgoGZHVtbXk2GAYgASgFUgZkdW1teTYSFgoGZHVtbXk3GAcgASgFUgZkdW1teTcSFgoGZHVtbXk4GAggASgFUgZkdW1teTgSFgoGZHVtbXk5GAkgASgFUgZkdW1teTkSGAoHZHVtbXkxMBgKIAEoBVIHZHVtbXkxMBIYCgdkdW1teTExGAsgASgFUgdkdW1teTExEhgKB2R1bW15MTIYDCABKAVSB2R1bW15MTISGAoHZHVtbXkxMxgNIAEoBVIHZHVtbXkxMxIYCgdkdW1teTE0GA4gASgFUgdkdW1teTE0EhgKB2R1bW15MTUYDyABKAVSB2R1bW15MTUSGAoHZHVtbXkxNhgQIAEoBVIHZHVtbXkxNhIYCgdkdW1teTE3GBEgASgFUgdkdW1teTE3EhgKB2R1bW15MTgYEiABKAVSB2R1bW15MTgSGAoHZHVtbXkxORgTIAEoBVIHZHVtbXkxORIYCgdkdW1teTIwGBQgASgFUgdkdW1teTIwEhgKB2R1bW15MjEYFSABKAVSB2R1bW15MjESGAoHZHVtbXkyMhgWIAEoBVIHZHVtbXkyMhIYCgdkdW1teTIzGBcgASgFUgdkdW1teTIzEhgKB2R1bW15MjQYGCABKAVSB2R1bW15MjQSGAoHZHVtbXkyNRgZIAEoBVIHZHVtbXkyNRIYCgdkdW1teTI2GBogASgFUgdkdW1teTI2EhgKB2R1bW15MjcYGyABKAVSB2R1bW15MjcSGAoHZHVtbXkyOBgcIAEoBVIHZHVtbXkyOBIYCgdkdW1teTI5GB0gASgFUgdkdW1teTI5EhgKB2R1bW15MzAYHiABKAVSB2R1bW15MzASGAoHZHVtbXkzMRgfIAEoBVIHZHVtbXkzMRIYCgdkdW1teTMyGCAgASgFUgdkdW1teTMyEgwKAWMYISACKAVSAWMybAoGc2luZ2xlEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOgHIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSBnNpbmdsZTJqCgVtdWx0aRIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxjpByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUgVtdWx0aSLRAQoTVGVzdFJlcXVpcmVkRm9yZWlnbhJRChBvcHRpb25hbF9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPb3B0aW9uYWxNZXNzYWdlElEKEHJlcGVhdGVkX21lc3NhZ2UYAiADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9yZXBlYXRlZE1lc3NhZ2USFAoFZHVtbXkYAyABKAVSBWR1bW15Io4CChNUZXN0UmVxdWlyZWRNZXNzYWdlElEKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9vcHRpb25hbE1lc3NhZ2USUQoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD3JlcGVhdGVkTWVzc2FnZRJRChByZXF1aXJlZF9tZXNzYWdlGAMgAigLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPcmVxdWlyZWRNZXNzYWdlInAKEVRlc3RGb3JlaWduTmVzdGVkElsKDmZvcmVpZ25fbmVzdGVkGAEgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUg1mb3JlaWduTmVzdGVkIhIKEFRlc3RFbXB0eU1lc3NhZ2UiKgoeVGVzdEVtcHR5TWVzc2FnZVdpdGhFeHRlbnNpb25zKggIARCAgICAAiI3ChtUZXN0TXVsdGlwbGVFeHRlbnNpb25SYW5nZXMqBAgqECsqBgivIBCUISoKCICABBCAgICAAiI7ChhUZXN0UmVhbGx5TGFyZ2VUYWdOdW1iZXISDAoBYRgBIAEoBVIBYRIRCgJiYhj///9/IAEoBVICYmIiYgoUVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USPAoBYRgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVjdXJzaXZlTWVzc2FnZVIBYRIMCgFpGAIgASgFUgFpIq8DChRUZXN0TXV0dWFsUmVjdXJzaW9uQRI+CgJiYhgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQlICYmISUwoIc3ViZ3JvdXAYAiABKAoyNy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkEuU3ViR3JvdXBSCHN1Ymdyb3VwGkoKClN1Yk1lc3NhZ2USPAoBYhgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQlIBYhq1AQoIU3ViR3JvdXASWgoLc3ViX21lc3NhZ2UYAyABKAsyOS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkEuU3ViTWVzc2FnZVIKc3ViTWVzc2FnZRJNCg9ub3RfaW5fdGhpc19zY2MYBCABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgxub3RJblRoaXNTY2MiewoUVGVzdE11dHVhbFJlY3Vyc2lvbkISPAoBYRgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQVIBYRIlCg5vcHRpb25hbF9pbnQzMhgCIAEoBVINb3B0aW9uYWxJbnQzMiLyAQoRVGVzdElzSW5pdGlhbGl6ZWQSVwoLc3ViX21lc3NhZ2UYASABKAsyNi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdElzSW5pdGlhbGl6ZWQuU3ViTWVzc2FnZVIKc3ViTWVzc2FnZRqDAQoKU3ViTWVzc2FnZRJbCghzdWJncm91cBgBIAEoCjI/LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SXNJbml0aWFsaXplZC5TdWJNZXNzYWdlLlN1Ykdyb3VwUghzdWJncm91cBoYCghTdWJHcm91cBIMCgFpGAIgAigFUgFpItQBChJUZXN0RHVwRmllbGROdW1iZXISDAoBYRgBIAEoBVIBYRJCCgNmb28YAiABKAoyMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdER1cEZpZWxkTnVtYmVyLkZvb1IDZm9vEkIKA2JhchgDIAEoCjIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHVwRmllbGROdW1iZXIuQmFyUgNiYXIaEwoDRm9vEgwKAWEYASABKAVSAWEaEwoDQmFyEgwKAWEYASABKAVSAWEiXwoQVGVzdEVhZ2VyTWVzc2FnZRJLCgtzdWJfbWVzc2FnZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNCAigAUgpzdWJNZXNzYWdlIl4KD1Rlc3RMYXp5TWVzc2FnZRJLCgtzdWJfbWVzc2FnZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNCAigBUgpzdWJNZXNzYWdlIuYCChhUZXN0TmVzdGVkTWVzc2FnZUhhc0JpdHMSeAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYASABKAsyQC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE5lc3RlZE1lc3NhZ2VIYXNCaXRzLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRrPAQoNTmVzdGVkTWVzc2FnZRJAChxuZXN0ZWRtZXNzYWdlX3JlcGVhdGVkX2ludDMyGAEgAygFUhpuZXN0ZWRtZXNzYWdlUmVwZWF0ZWRJbnQzMhJ8CiVuZXN0ZWRtZXNzYWdlX3JlcGVhdGVkX2ZvcmVpZ25tZXNzYWdlGAIgAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUiNuZXN0ZWRtZXNzYWdlUmVwZWF0ZWRGb3JlaWdubWVzc2FnZSLXBQoXVGVzdENhbWVsQ2FzZUZpZWxkTmFtZXMSJgoOUHJpbWl0aXZlRmllbGQYASABKAVSDlByaW1pdGl2ZUZpZWxkEiAKC1N0cmluZ0ZpZWxkGAIgASgJUgtTdHJpbmdGaWVsZBJDCglFbnVtRmllbGQYAyABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SCUVudW1GaWVsZBJMCgxNZXNzYWdlRmllbGQYBCABKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSDE1lc3NhZ2VGaWVsZBIuChBTdHJpbmdQaWVjZUZpZWxkGAUgASgJQgIIAlIQU3RyaW5nUGllY2VGaWVsZBIgCglDb3JkRmllbGQYBiABKAlCAggBUglDb3JkRmllbGQSNgoWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBVIWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBIwChNSZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJUhNSZXBlYXRlZFN0cmluZ0ZpZWxkElMKEVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhFSZXBlYXRlZEVudW1GaWVsZBJcChRSZXBlYXRlZE1lc3NhZ2VGaWVsZBgKIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIUUmVwZWF0ZWRNZXNzYWdlRmllbGQSPgoYUmVwZWF0ZWRTdHJpbmdQaWVjZUZpZWxkGAsgAygJQgIIAlIYUmVwZWF0ZWRTdHJpbmdQaWVjZUZpZWxkEjAKEVJlcGVhdGVkQ29yZEZpZWxkGAwgAygJQgIIAVIRUmVwZWF0ZWRDb3JkRmllbGQilQIKElRlc3RGaWVsZE9yZGVyaW5ncxIbCglteV9zdHJpbmcYCyABKAlSCG15U3RyaW5nEhUKBm15X2ludBgBIAEoA1IFbXlJbnQSGQoIbXlfZmxvYXQYZSABKAJSB215RmxvYXQScwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYyAEgASgLMjoucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2UaLwoNTmVzdGVkTWVzc2FnZRIOCgJvbxgCIAEoA1ICb28SDgoCYmIYASABKAVSAmJiKgQIAhALKgQIDBBlIsgBChdUZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMRIbCglteV9zdHJpbmcYASABKAlSCG15U3RyaW5nMo8BChN0ZXN0X2V4dF9vcmRlcmluZ3MxEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgNIAEoCzIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMVIRdGVzdEV4dE9yZGVyaW5nczEiqwMKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MyEhsKCW15X3N0cmluZxgBIAEoCVIIbXlTdHJpbmca4AEKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MzEhsKCW15X3N0cmluZxgBIAEoCVIIbXlTdHJpbmcypwEKE3Rlc3RfZXh0X29yZGVyaW5nczMSLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGA4gASgLMkkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MyLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MzUhF0ZXN0RXh0T3JkZXJpbmdzMzKPAQoTdGVzdF9leHRfb3JkZXJpbmdzMhIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYDCABKAsyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczJSEXRlc3RFeHRPcmRlcmluZ3MyIq8KChhUZXN0RXh0cmVtZURlZmF1bHRWYWx1ZXMSTQoNZXNjYXBlZF9ieXRlcxgBIAEoDDooXDAwMFwwMDFcMDA3XDAxMFwwMTRcblxyXHRcMDEzXFxcJ1wiXDM3NlIMZXNjYXBlZEJ5dGVzEi0KDGxhcmdlX3VpbnQzMhgCIAEoDToKNDI5NDk2NzI5NVILbGFyZ2VVaW50MzISNwoMbGFyZ2VfdWludDY0GAMgASgEOhQxODQ0Njc0NDA3MzcwOTU1MTYxNVILbGFyZ2VVaW50NjQSLAoLc21hbGxfaW50MzIYBCABKAU6Cy0yMTQ3NDgzNjQ3UgpzbWFsbEludDMyEjUKC3NtYWxsX2ludDY0GAUgASgDOhQtOTIyMzM3MjAzNjg1NDc3NTgwN1IKc21hbGxJbnQ2NBI5ChJyZWFsbHlfc21hbGxfaW50MzIYFSABKAU6Cy0yMTQ3NDgzNjQ4UhByZWFsbHlTbWFsbEludDMyEkIKEnJlYWxseV9zbWFsbF9pbnQ2NBgWIAEoAzoULTkyMjMzNzIwMzY4NTQ3NzU4MDhSEHJlYWxseVNtYWxsSW50NjQSJAoLdXRmOF9zdHJpbmcYBiABKAk6A+GItFIKdXRmOFN0cmluZxIgCgp6ZXJvX2Zsb2F0GAcgASgCOgEwUgl6ZXJvRmxvYXQSHgoJb25lX2Zsb2F0GAggASgCOgExUghvbmVGbG9hdBIkCgtzbWFsbF9mbG9hdBgJIAEoAjoDMS41UgpzbWFsbEZsb2F0EjAKEm5lZ2F0aXZlX29uZV9mbG9hdBgKIAEoAjoCLTFSEG5lZ2F0aXZlT25lRmxvYXQSKwoObmVnYXRpdmVfZmxvYXQYCyABKAI6BC0xLjVSDW5lZ2F0aXZlRmxvYXQSJgoLbGFyZ2VfZmxvYXQYDCABKAI6BTJlKzA4UgpsYXJnZUZsb2F0EjgKFHNtYWxsX25lZ2F0aXZlX2Zsb2F0GA0gASgCOgYtOGUtMjhSEnNtYWxsTmVnYXRpdmVGbG9hdBIiCgppbmZfZG91YmxlGA4gASgBOgNpbmZSCWluZkRvdWJsZRIqCg5uZWdfaW5mX2RvdWJsZRgPIAEoAToELWluZlIMbmVnSW5mRG91YmxlEiIKCm5hbl9kb3VibGUYECABKAE6A25hblIJbmFuRG91YmxlEiAKCWluZl9mbG9hdBgRIAEoAjoDaW5mUghpbmZGbG9hdBIoCg1uZWdfaW5mX2Zsb2F0GBIgASgCOgQtaW5mUgtuZWdJbmZGbG9hdBIgCgluYW5fZmxvYXQYEyABKAI6A25hblIIbmFuRmxvYXQSOAoMY3BwX3RyaWdyYXBoGBQgASgJOhU/ID8gPz8gPz8gPz8/ID8/LyA/Py1SC2NwcFRyaWdyYXBoEjAKEHN0cmluZ193aXRoX3plcm8YFyABKAk6BmhlbABsb1IOc3RyaW5nV2l0aFplcm8SMQoPYnl0ZXNfd2l0aF96ZXJvGBggASgMOgl3b3JcMDAwbGRSDWJ5dGVzV2l0aFplcm8SPQoWc3RyaW5nX3BpZWNlX3dpdGhfemVybxgZIAEoCToEYWIAY0ICCAJSE3N0cmluZ1BpZWNlV2l0aFplcm8SLgoOY29yZF93aXRoX3plcm8YGiABKAk6BDEyADNCAggBUgxjb3JkV2l0aFplcm8SOQoScmVwbGFjZW1lbnRfc3RyaW5nGBsgASgJOgoke3Vua25vd259UhFyZXBsYWNlbWVudFN0cmluZyJeChFTcGFyc2VFbnVtTWVzc2FnZRJJCgtzcGFyc2VfZW51bRgBIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0U3BhcnNlRW51bVIKc3BhcnNlRW51bSIfCglPbmVTdHJpbmcSEgoEZGF0YRgBIAEoCVIEZGF0YSIgCgpNb3JlU3RyaW5nEhIKBGRhdGEYASADKAlSBGRhdGEiHgoIT25lQnl0ZXMSEgoEZGF0YRgBIAEoDFIEZGF0YSIfCglNb3JlQnl0ZXMSEgoEZGF0YRgBIAMoDFIEZGF0YSIiCgxJbnQzMk1lc3NhZ2USEgoEZGF0YRgBIAEoBVIEZGF0YSIjCg1VaW50MzJNZXNzYWdlEhIKBGRhdGEYASABKA1SBGRhdGEiIgoMSW50NjRNZXNzYWdlEhIKBGRhdGEYASABKANSBGRhdGEiIwoNVWludDY0TWVzc2FnZRISCgRkYXRhGAEgASgEUgRkYXRhIiEKC0Jvb2xNZXNzYWdlEhIKBGRhdGEYASABKAhSBGRhdGEijQIKCVRlc3RPbmVvZhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxJJCgtmb29fbWVzc2FnZRgDIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNIAFIKZm9vTWVzc2FnZRJKCghmb29ncm91cBgEIAEoCjIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YuRm9vR3JvdXBIAFIIZm9vZ3JvdXAaJgoIRm9vR3JvdXASDAoBYRgFIAEoBVIBYRIMCgFiGAYgASgJUgFiQgUKA2ZvbyKkAgocVGVzdE9uZW9mQmFja3dhcmRzQ29tcGF0aWJsZRIXCgdmb29faW50GAEgASgFUgZmb29JbnQSHQoKZm9vX3N0cmluZxgCIAEoCVIJZm9vU3RyaW5nEkcKC2Zvb19tZXNzYWdlGAMgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IKZm9vTWVzc2FnZRJbCghmb29ncm91cBgEIAEoCjI/LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2ZCYWNrd2FyZHNDb21wYXRpYmxlLkZvb0dyb3VwUghmb29ncm91cBomCghGb29Hcm91cBIMCgFhGAUgASgFUgFhEgwKAWIYBiABKAlSAWIikAgKClRlc3RPbmVvZjISGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSHwoIZm9vX2NvcmQYAyABKAlCAggBSABSB2Zvb0NvcmQSLgoQZm9vX3N0cmluZ19waWVjZRgEIAEoCUICCAJIAFIOZm9vU3RyaW5nUGllY2USHQoJZm9vX2J5dGVzGAUgASgMSABSCGZvb0J5dGVzEkwKCGZvb19lbnVtGAYgASgOMi8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkRW51bUgAUgdmb29FbnVtElUKC2Zvb19tZXNzYWdlGAcgASgLMjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkTWVzc2FnZUgAUgpmb29NZXNzYWdlEksKCGZvb2dyb3VwGAggASgKMi0ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuRm9vR3JvdXBIAFIIZm9vZ3JvdXASYgoQZm9vX2xhenlfbWVzc2FnZRgLIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YyLk5lc3RlZE1lc3NhZ2VCAigBSABSDmZvb0xhenlNZXNzYWdlEhwKB2Jhcl9pbnQYDCABKAU6ATVIAVIGYmFySW50EicKCmJhcl9zdHJpbmcYDSABKAk6BlNUUklOR0gBUgliYXJTdHJpbmcSJQoIYmFyX2NvcmQYDiABKAk6BENPUkRCAggBSAFSB2JhckNvcmQSNgoQYmFyX3N0cmluZ19waWVjZRgPIAEoCToGU1BJRUNFQgIIAkgBUg5iYXJTdHJpbmdQaWVjZRIkCgliYXJfYnl0ZXMYECABKAw6BUJZVEVTSAFSCGJhckJ5dGVzElEKCGJhcl9lbnVtGBEgASgOMi8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkRW51bToDQkFSSAFSB2JhckVudW0SFwoHYmF6X2ludBgSIAEoBVIGYmF6SW50EiIKCmJhel9zdHJpbmcYEyABKAk6A0JBWlIJYmF6U3RyaW5nGiYKCEZvb0dyb3VwEgwKAWEYCSABKAVSAWESDAoBYhgKIAEoCVIBYhpFCg1OZXN0ZWRNZXNzYWdlEhcKB3F1eF9pbnQYASABKANSBnF1eEludBIbCgljb3JnZV9pbnQYAiADKAVSCGNvcmdlSW50IicKCk5lc3RlZEVudW0SBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEANCBQoDZm9vQgUKA2JhciLuAQoRVGVzdFJlcXVpcmVkT25lb2YSGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSXAoLZm9vX21lc3NhZ2UYAyABKAsyOS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkT25lb2YuTmVzdGVkTWVzc2FnZUgAUgpmb29NZXNzYWdlGjgKDU5lc3RlZE1lc3NhZ2USJwoPcmVxdWlyZWRfZG91YmxlGAEgAigBUg5yZXF1aXJlZERvdWJsZUIFCgNmb28igAIKD1Rlc3RSZXF1aXJlZE1hcBJECgNmb28YASADKAsyMi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkTWFwLkZvb0VudHJ5UgNmb28abwoIRm9vRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSTQoFdmFsdWUYAiABKAsyNy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkTWFwLk5lc3RlZE1lc3NhZ2VSBXZhbHVlOgI4ARo2Cg1OZXN0ZWRNZXNzYWdlEiUKDnJlcXVpcmVkX2ludDMyGAEgAigFUg1yZXF1aXJlZEludDMyIvQECg9UZXN0UGFja2VkVHlwZXMSJQoMcGFja2VkX2ludDMyGFogAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GFsgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GF0gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYXiADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhfIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYZiADKAhCAhABUgpwYWNrZWRCb29sEkoKC3BhY2tlZF9lbnVtGGcgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtQgIQAVIKcGFja2VkRW51bSKuBQoRVGVzdFVucGFja2VkVHlwZXMSKQoOdW5wYWNrZWRfaW50MzIYWiADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFsgAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYXCADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXSADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXiADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXyADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYSADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhkIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGUgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhmIAMoCEICEABSDHVucGFja2VkQm9vbBJOCg11bnBhY2tlZF9lbnVtGGcgAygOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtQgIQAFIMdW5wYWNrZWRFbnVtIiAKFFRlc3RQYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiIiChZUZXN0VW5wYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiLIBQoVVGVzdER5bmFtaWNFeHRlbnNpb25zEioKEHNjYWxhcl9leHRlbnNpb24Y0A8gASgHUg9zY2FsYXJFeHRlbnNpb24STQoOZW51bV9leHRlbnNpb24Y0Q8gASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUg1lbnVtRXh0ZW5zaW9uEnYKFmR5bmFtaWNfZW51bV9leHRlbnNpb24Y0g8gASgOMj8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljRW51bVR5cGVSFGR5bmFtaWNFbnVtRXh0ZW5zaW9uElYKEW1lc3NhZ2VfZXh0ZW5zaW9uGNMPIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIQbWVzc2FnZUV4dGVuc2lvbhJ/ChlkeW5hbWljX21lc3NhZ2VfZXh0ZW5zaW9uGNQPIAEoCzJCLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHluYW1pY0V4dGVuc2lvbnMuRHluYW1pY01lc3NhZ2VUeXBlUhdkeW5hbWljTWVzc2FnZUV4dGVuc2lvbhIuChJyZXBlYXRlZF9leHRlbnNpb24Y1Q8gAygJUhFyZXBlYXRlZEV4dGVuc2lvbhIuChBwYWNrZWRfZXh0ZW5zaW9uGNYPIAMoEUICEAFSD3BhY2tlZEV4dGVuc2lvbho6ChJEeW5hbWljTWVzc2FnZVR5cGUSJAoNZHluYW1pY19maWVsZBi0ECABKAVSDGR5bmFtaWNGaWVsZCJHCg9EeW5hbWljRW51bVR5cGUSEAoLRFlOQU1JQ19GT08QmBESEAoLRFlOQU1JQ19CQVIQmRESEAoLRFlOQU1JQ19CQVoQmhEinwIKI1Rlc3RSZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEikKEHJlcGVhdGVkX2ZpeGVkMzIYDCADKAdSD3JlcGVhdGVkRml4ZWQzMhIlCg5yZXBlYXRlZF9pbnQzMhgNIAMoBVINcmVwZWF0ZWRJbnQzMhIqChByZXBlYXRlZF9maXhlZDY0GP4PIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EiYKDnJlcGVhdGVkX2ludDY0GP8PIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg5yZXBlYXRlZF9mbG9hdBj+/w8gAygCUg1yZXBlYXRlZEZsb2F0EikKD3JlcGVhdGVkX3VpbnQ2NBj//w8gAygEUg5yZXBlYXRlZFVpbnQ2NCLjDAoQVGVzdFBhcnNpbmdNZXJnZRJUChJyZXF1aXJlZF9hbGxfdHlwZXMYASACKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhByZXF1aXJlZEFsbFR5cGVzElQKEm9wdGlvbmFsX2FsbF90eXBlcxgCIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSEG9wdGlvbmFsQWxsVHlwZXMSVAoScmVwZWF0ZWRfYWxsX3R5cGVzGAMgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IQcmVwZWF0ZWRBbGxUeXBlcxJeCg1vcHRpb25hbGdyb3VwGAogASgKMjgucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBJeCg1yZXBlYXRlZGdyb3VwGBQgAygKMjgucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRHcm91cFINcmVwZWF0ZWRncm91cBqtBQoXUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3ISPgoGZmllbGQxGAEgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQxEj4KBmZpZWxkMhgCIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMhI+CgZmaWVsZDMYAyADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDMSYQoGZ3JvdXAxGAogAygKMkkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAxUgZncm91cDESYQoGZ3JvdXAyGBQgAygKMkkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAyUgZncm91cDISOwoEZXh0MRjoByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgRleHQxEjsKBGV4dDIY6QcgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IEZXh0MhpICgZHcm91cDESPgoGZmllbGQxGAsgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQxGkgKBkdyb3VwMhI+CgZmaWVsZDEYFSABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDEacAoNT3B0aW9uYWxHcm91cBJfChhvcHRpb25hbF9ncm91cF9hbGxfdHlwZXMYCyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhVvcHRpb25hbEdyb3VwQWxsVHlwZXMacAoNUmVwZWF0ZWRHcm91cBJfChhyZXBlYXRlZF9ncm91cF9hbGxfdHlwZXMYFSABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhVyZXBlYXRlZEdyb3VwQWxsVHlwZXMqCQjoBxCAgICAAjJ2CgxvcHRpb25hbF9leHQSKi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZRjoByABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgtvcHRpb25hbEV4dDJ2CgxyZXBlYXRlZF9leHQSKi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZRjpByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgtyZXBlYXRlZEV4dCJHChtUZXN0Q29tbWVudEluamVjdGlvbk1lc3NhZ2USKAoBYRgBIAEoCToaKi8gPC0gTmVpdGhlciBzaG91bGQgdGhpcy5SAWEiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSISChBGb29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3NhZ2UiDAoKQmFyUmVxdWVzdCINCgtCYXJSZXNwb25zZSLOAQoMVGVzdEpzb25OYW1lEh8KC2ZpZWxkX25hbWUxGAEgASgFUgpmaWVsZE5hbWUxEh4KCmZpZWxkTmFtZTIYAiABKAVSCmZpZWxkTmFtZTISHgoKRmllbGROYW1lMxgDIAEoBVIKRmllbGROYW1lMxIgCgxfZmllbGRfbmFtZTQYBCABKAVSCkZpZWxkTmFtZTQSHwoLRklFTERfTkFNRTUYBSABKAVSCkZJRUxETkFNRTUSGgoLZmllbGRfbmFtZTYYBiABKAVSBUB0eXBlIv8HChRUZXN0SHVnZUZpZWxkTnVtYmVycxIpCg5vcHRpb25hbF9pbnQzMhjw+P//ASABKAVSDW9wdGlvbmFsSW50MzISHQoIZml4ZWRfMzIY8fj//wEgASgFUgdmaXhlZDMyEi0KDnJlcGVhdGVkX2ludDMyGPL4//8BIAMoBUICEABSDXJlcGVhdGVkSW50MzISKQoMcGFja2VkX2ludDMyGPP4//8BIAMoBUICEAFSC3BhY2tlZEludDMyEk4KDW9wdGlvbmFsX2VudW0Y9Pj//wEgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUgxvcHRpb25hbEVudW0SKwoPb3B0aW9uYWxfc3RyaW5nGPX4//8BIAEoCVIOb3B0aW9uYWxTdHJpbmcSKQoOb3B0aW9uYWxfYnl0ZXMY9vj//wEgASgMUg1vcHRpb25hbEJ5dGVzElcKEG9wdGlvbmFsX21lc3NhZ2UY9/j//wEgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUg9vcHRpb25hbE1lc3NhZ2USZgoNb3B0aW9uYWxncm91cBj4+P//ASABKAoyPC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEh1Z2VGaWVsZE51bWJlcnMuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBJzChFzdHJpbmdfc3RyaW5nX21hcBj6+P//ASADKAsyQy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEh1Z2VGaWVsZE51bWJlcnMuU3RyaW5nU3RyaW5nTWFwRW50cnlSD3N0cmluZ1N0cmluZ01hcBInCgxvbmVvZl91aW50MzIY+/j//wEgASgNSABSC29uZW9mVWludDMyEl0KFG9uZW9mX3Rlc3RfYWxsX3R5cGVzGPz4//8BIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNIAFIRb25lb2ZUZXN0QWxsVHlwZXMSJwoMb25lb2Zfc3RyaW5nGP34//8BIAEoCUgAUgtvbmVvZlN0cmluZxIlCgtvbmVvZl9ieXRlcxj++P//ASABKAxIAFIKb25lb2ZCeXRlcxosCg1PcHRpb25hbEdyb3VwEhsKB2dyb3VwX2EY+fj//wEgASgFUgZncm91cEEaQgoUU3RyaW5nU3RyaW5nTWFwRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASoMCOCq//8BEPD4//8BQg0KC29uZW9mX2ZpZWxkIvoBChhUZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGUSFgoGZmllbGQxGAEgASgFUgZmaWVsZDESFgoGZmllbGQyGAIgASgFUgZmaWVsZDISFgoGZmllbGQzGAMgASgFUgZmaWVsZDMSFgoGZmllbGQ0GAQgASgFUgZmaWVsZDQSFgoGZmllbGQ2GAYgASgFUgZmaWVsZDYSFgoGZmllbGQ3GAcgASgFUgZmaWVsZDcSFgoGZmllbGQ4GAggASgFUgZmaWVsZDgSFgoGZmllbGQ5GAkgASgFUgZmaWVsZDkSGAoHZmllbGQxMBgKIAEoBVIHZmllbGQxMCoECAUQBipACgtGb3JlaWduRW51bRIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBipLChRUZXN0RW51bVdpdGhEdXBWYWx1ZRIICgRGT08xEAESCAoEQkFSMRACEgcKA0JBWhADEggKBEZPTzIQARIICgRCQVIyEAIaAhABKokBCg5UZXN0U3BhcnNlRW51bRIMCghTUEFSU0VfQRB7Eg4KCFNQQVJTRV9CEKbnAxIPCghTUEFSU0VfQxCysYAGEhUKCFNQQVJTRV9EEPH//////////wESFQoIU1BBUlNFX0UQtN78////////ARIMCghTUEFSU0VfRhAAEgwKCFNQQVJTRV9HEAIqiw8KDVZlcnlMYXJnZUVudW0SFgoSRU5VTV9MQUJFTF9ERUZBVUxUEAASEAoMRU5VTV9MQUJFTF8xEAESEAoMRU5VTV9MQUJFTF8yEAISEAoMRU5VTV9MQUJFTF8zEAMSEAoMRU5VTV9MQUJFTF80EAQSEAoMRU5VTV9MQUJFTF81EAUSEAoMRU5VTV9MQUJFTF82EAYSEAoMRU5VTV9MQUJFTF83EAcSEAoMRU5VTV9MQUJFTF84EAgSEAoMRU5VTV9MQUJFTF85EAkSEQoNRU5VTV9MQUJFTF8xMBAKEhEKDUVOVU1fTEFCRUxfMTEQCxIRCg1FTlVNX0xBQkVMXzEyEAwSEQoNRU5VTV9MQUJFTF8xMxANEhEKDUVOVU1fTEFCRUxfMTQQDhIRCg1FTlVNX0xBQkVMXzE1EA8SEQoNRU5VTV9MQUJFTF8xNhAQEhEKDUVOVU1fTEFCRUxfMTcQERIRCg1FTlVNX0xBQkVMXzE4EBISEQoNRU5VTV9MQUJFTF8xORATEhEKDUVOVU1fTEFCRUxfMjAQFBIRCg1FTlVNX0xBQkVMXzIxEBUSEQoNRU5VTV9MQUJFTF8yMhAWEhEKDUVOVU1fTEFCRUxfMjMQFxIRCg1FTlVNX0xBQkVMXzI0EBgSEQoNRU5VTV9MQUJFTF8yNRAZEhEKDUVOVU1fTEFCRUxfMjYQGhIRCg1FTlVNX0xBQkVMXzI3EBsSEQoNRU5VTV9MQUJFTF8yOBAcEhEKDUVOVU1fTEFCRUxfMjkQHRIRCg1FTlVNX0xBQkVMXzMwEB4SEQoNRU5VTV9MQUJFTF8zMRAfEhEKDUVOVU1fTEFCRUxfMzIQIBIRCg1FTlVNX0xBQkVMXzMzECESEQoNRU5VTV9MQUJFTF8zNBAiEhEKDUVOVU1fTEFCRUxfMzUQIxIRCg1FTlVNX0xBQkVMXzM2ECQSEQoNRU5VTV9MQUJFTF8zNxAlEhEKDUVOVU1fTEFCRUxfMzgQJhIRCg1FTlVNX0xBQkVMXzM5ECcSEQoNRU5VTV9MQUJFTF80MBAoEhEKDUVOVU1fTEFCRUxfNDEQKRIRCg1FTlVNX0xBQkVMXzQyECoSEQoNRU5VTV9MQUJFTF80MxArEhEKDUVOVU1fTEFCRUxfNDQQLBIRCg1FTlVNX0xBQkVMXzQ1EC0SEQoNRU5VTV9MQUJFTF80NhAuEhEKDUVOVU1fTEFCRUxfNDcQLxIRCg1FTlVNX0xBQkVMXzQ4EDASEQoNRU5VTV9MQUJFTF80ORAxEhEKDUVOVU1fTEFCRUxfNTAQMhIRCg1FTlVNX0xBQkVMXzUxEDMSEQoNRU5VTV9MQUJFTF81MhA0EhEKDUVOVU1fTEFCRUxfNTMQNRIRCg1FTlVNX0xBQkVMXzU0EDYSEQoNRU5VTV9MQUJFTF81NRA3EhEKDUVOVU1fTEFCRUxfNTYQOBIRCg1FTlVNX0xBQkVMXzU3EDkSEQoNRU5VTV9MQUJFTF81OBA6EhEKDUVOVU1fTEFCRUxfNTkQOxIRCg1FTlVNX0xBQkVMXzYwEDwSEQoNRU5VTV9MQUJFTF82MRA9EhEKDUVOVU1fTEFCRUxfNjIQPhIRCg1FTlVNX0xBQkVMXzYzED8SEQoNRU5VTV9MQUJFTF82NBBAEhEKDUVOVU1fTEFCRUxfNjUQQRIRCg1FTlVNX0xBQkVMXzY2EEISEQoNRU5VTV9MQUJFTF82NxBDEhEKDUVOVU1fTEFCRUxfNjgQRBIRCg1FTlVNX0xBQkVMXzY5EEUSEQoNRU5VTV9MQUJFTF83MBBGEhEKDUVOVU1fTEFCRUxfNzEQRxIRCg1FTlVNX0xBQkVMXzcyEEgSEQoNRU5VTV9MQUJFTF83MxBJEhEKDUVOVU1fTEFCRUxfNzQQShIRCg1FTlVNX0xBQkVMXzc1EEsSEQoNRU5VTV9MQUJFTF83NhBMEhEKDUVOVU1fTEFCRUxfNzcQTRIRCg1FTlVNX0xBQkVMXzc4EE4SEQoNRU5VTV9MQUJFTF83ORBPEhEKDUVOVU1fTEFCRUxfODAQUBIRCg1FTlVNX0xBQkVMXzgxEFESEQoNRU5VTV9MQUJFTF84MhBSEhEKDUVOVU1fTEFCRUxfODMQUxIRCg1FTlVNX0xBQkVMXzg0EFQSEQoNRU5VTV9MQUJFTF84NRBVEhEKDUVOVU1fTEFCRUxfODYQVhIRCg1FTlVNX0xBQkVMXzg3EFcSEQoNRU5VTV9MQUJFTF84OBBYEhEKDUVOVU1fTEFCRUxfODkQWRIRCg1FTlVNX0xBQkVMXzkwEFoSEQoNRU5VTV9MQUJFTF85MRBbEhEKDUVOVU1fTEFCRUxfOTIQXBIRCg1FTlVNX0xBQkVMXzkzEF0SEQoNRU5VTV9MQUJFTF85NBBeEhEKDUVOVU1fTEFCRUxfOTUQXxIRCg1FTlVNX0xBQkVMXzk2EGASEQoNRU5VTV9MQUJFTF85NxBhEhEKDUVOVU1fTEFCRUxfOTgQYhIRCg1FTlVNX0xBQkVMXzk5EGMSEgoORU5VTV9MQUJFTF8xMDAQZDK1AQoLVGVzdFNlcnZpY2USUgoDRm9vEiQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvb1JlcXVlc3QaJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9vUmVzcG9uc2USUgoDQmFyEiQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkJhclJlcXVlc3QaJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuQmFyUmVzcG9uc2U6ZQoYb3B0aW9uYWxfaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAEgASgFUhZvcHRpb25hbEludDMyRXh0ZW5zaW9uOmUKGG9wdGlvbmFsX2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgCIAEoA1IWb3B0aW9uYWxJbnQ2NEV4dGVuc2lvbjpnChlvcHRpb25hbF91aW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAMgASgNUhdvcHRpb25hbFVpbnQzMkV4dGVuc2lvbjpnChlvcHRpb25hbF91aW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAQgASgEUhdvcHRpb25hbFVpbnQ2NEV4dGVuc2lvbjpnChlvcHRpb25hbF9zaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAUgASgRUhdvcHRpb25hbFNpbnQzMkV4dGVuc2lvbjpnChlvcHRpb25hbF9zaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAYgASgSUhdvcHRpb25hbFNpbnQ2NEV4dGVuc2lvbjppChpvcHRpb25hbF9maXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgHIAEoB1IYb3B0aW9uYWxGaXhlZDMyRXh0ZW5zaW9uOmkKGm9wdGlvbmFsX2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAggASgGUhhvcHRpb25hbEZpeGVkNjRFeHRlbnNpb246awobb3B0aW9uYWxfc2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAkgASgPUhlvcHRpb25hbFNmaXhlZDMyRXh0ZW5zaW9uOmsKG29wdGlvbmFsX3NmaXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgKIAEoEFIZb3B0aW9uYWxTZml4ZWQ2NEV4dGVuc2lvbjplChhvcHRpb25hbF9mbG9hdF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCyABKAJSFm9wdGlvbmFsRmxvYXRFeHRlbnNpb246ZwoZb3B0aW9uYWxfZG91YmxlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgMIAEoAVIXb3B0aW9uYWxEb3VibGVFeHRlbnNpb246YwoXb3B0aW9uYWxfYm9vbF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDSABKAhSFW9wdGlvbmFsQm9vbEV4dGVuc2lvbjpnChlvcHRpb25hbF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGA4gASgJUhdvcHRpb25hbFN0cmluZ0V4dGVuc2lvbjplChhvcHRpb25hbF9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDyABKAxSFm9wdGlvbmFsQnl0ZXNFeHRlbnNpb246lwEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBAgASgKMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLk9wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uUhZvcHRpb25hbGdyb3VwRXh0ZW5zaW9uOqwBCiFvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYEiABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSHm9wdGlvbmFsTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjqiAQoib3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgTIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIfb3B0aW9uYWxGb3JlaWduTWVzc2FnZUV4dGVuc2lvbjqmAQohb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBQgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUh5vcHRpb25hbEltcG9ydE1lc3NhZ2VFeHRlbnNpb246owEKHm9wdGlvbmFsX25lc3RlZF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgVIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIbb3B0aW9uYWxOZXN0ZWRFbnVtRXh0ZW5zaW9uOpkBCh9vcHRpb25hbF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhxvcHRpb25hbEZvcmVpZ25FbnVtRXh0ZW5zaW9uOp0BCh5vcHRpb25hbF9pbXBvcnRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SG29wdGlvbmFsSW1wb3J0RW51bUV4dGVuc2lvbjp2Ch9vcHRpb25hbF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBggASgJQgIIAlIcb3B0aW9uYWxTdHJpbmdQaWVjZUV4dGVuc2lvbjpnChdvcHRpb25hbF9jb3JkX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgZIAEoCUICCAFSFW9wdGlvbmFsQ29yZEV4dGVuc2lvbjq5AQoob3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgaIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuUHVibGljSW1wb3J0TWVzc2FnZVIkb3B0aW9uYWxQdWJsaWNJbXBvcnRNZXNzYWdlRXh0ZW5zaW9uOqwBCh9vcHRpb25hbF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBsgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVIcb3B0aW9uYWxMYXp5TWVzc2FnZUV4dGVuc2lvbjplChhyZXBlYXRlZF9pbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYHyADKAVSFnJlcGVhdGVkSW50MzJFeHRlbnNpb246ZQoYcmVwZWF0ZWRfaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCAgAygDUhZyZXBlYXRlZEludDY0RXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYISADKA1SF3JlcGVhdGVkVWludDMyRXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3VpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYIiADKARSF3JlcGVhdGVkVWludDY0RXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3NpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYIyADKBFSF3JlcGVhdGVkU2ludDMyRXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3NpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJCADKBJSF3JlcGVhdGVkU2ludDY0RXh0ZW5zaW9uOmkKGnJlcGVhdGVkX2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCUgAygHUhhyZXBlYXRlZEZpeGVkMzJFeHRlbnNpb246aQoacmVwZWF0ZWRfZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJiADKAZSGHJlcGVhdGVkRml4ZWQ2NEV4dGVuc2lvbjprChtyZXBlYXRlZF9zZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJyADKA9SGXJlcGVhdGVkU2ZpeGVkMzJFeHRlbnNpb246awobcmVwZWF0ZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCggAygQUhlyZXBlYXRlZFNmaXhlZDY0RXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgpIAMoAlIWcmVwZWF0ZWRGbG9hdEV4dGVuc2lvbjpnChlyZXBlYXRlZF9kb3VibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCogAygBUhdyZXBlYXRlZERvdWJsZUV4dGVuc2lvbjpjChdyZXBlYXRlZF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgrIAMoCFIVcmVwZWF0ZWRCb29sRXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYLCADKAlSF3JlcGVhdGVkU3RyaW5nRXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgtIAMoDFIWcmVwZWF0ZWRCeXRlc0V4dGVuc2lvbjqXAQoXcmVwZWF0ZWRncm91cF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYLiADKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuUmVwZWF0ZWRHcm91cF9leHRlbnNpb25SFnJlcGVhdGVkZ3JvdXBFeHRlbnNpb246rAEKIXJlcGVhdGVkX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgwIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIecmVwZWF0ZWROZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOqIBCiJyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDEgAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUh9yZXBlYXRlZEZvcmVpZ25NZXNzYWdlRXh0ZW5zaW9uOqYBCiFyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYMiADKAsyLi5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydE1lc3NhZ2VSHnJlcGVhdGVkSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqjAQoecmVwZWF0ZWRfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDMgAygOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhtyZXBlYXRlZE5lc3RlZEVudW1FeHRlbnNpb246mQEKH3JlcGVhdGVkX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNCADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SHHJlcGVhdGVkRm9yZWlnbkVudW1FeHRlbnNpb246nQEKHnJlcGVhdGVkX2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg1IAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bVIbcmVwZWF0ZWRJbXBvcnRFbnVtRXh0ZW5zaW9uOnYKH3JlcGVhdGVkX3N0cmluZ19waWVjZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNiADKAlCAggCUhxyZXBlYXRlZFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmcKF3JlcGVhdGVkX2NvcmRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDcgAygJQgIIAVIVcmVwZWF0ZWRDb3JkRXh0ZW5zaW9uOqwBCh9yZXBlYXRlZF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDkgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVIccmVwZWF0ZWRMYXp5TWVzc2FnZUV4dGVuc2lvbjpnChdkZWZhdWx0X2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg9IAEoBToCNDFSFWRlZmF1bHRJbnQzMkV4dGVuc2lvbjpnChdkZWZhdWx0X2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg+IAEoAzoCNDJSFWRlZmF1bHRJbnQ2NEV4dGVuc2lvbjppChhkZWZhdWx0X3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYPyABKA06AjQzUhZkZWZhdWx0VWludDMyRXh0ZW5zaW9uOmkKGGRlZmF1bHRfdWludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhAIAEoBDoCNDRSFmRlZmF1bHRVaW50NjRFeHRlbnNpb246agoYZGVmYXVsdF9zaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEEgASgROgMtNDVSFmRlZmF1bHRTaW50MzJFeHRlbnNpb246aQoYZGVmYXVsdF9zaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEIgASgSOgI0NlIWZGVmYXVsdFNpbnQ2NEV4dGVuc2lvbjprChlkZWZhdWx0X2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEMgASgHOgI0N1IXZGVmYXVsdEZpeGVkMzJFeHRlbnNpb246awoZZGVmYXVsdF9maXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhEIAEoBjoCNDhSF2RlZmF1bHRGaXhlZDY0RXh0ZW5zaW9uOm0KGmRlZmF1bHRfc2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEUgASgPOgI0OVIYZGVmYXVsdFNmaXhlZDMyRXh0ZW5zaW9uOm4KGmRlZmF1bHRfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEYgASgQOgMtNTBSGGRlZmF1bHRTZml4ZWQ2NEV4dGVuc2lvbjppChdkZWZhdWx0X2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhHIAEoAjoENTEuNVIVZGVmYXVsdEZsb2F0RXh0ZW5zaW9uOmwKGGRlZmF1bHRfZG91YmxlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhIIAEoAToFNTIwMDBSFmRlZmF1bHREb3VibGVFeHRlbnNpb246ZwoWZGVmYXVsdF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhJIAEoCDoEdHJ1ZVIUZGVmYXVsdEJvb2xFeHRlbnNpb246bAoYZGVmYXVsdF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEogASgJOgVoZWxsb1IWZGVmYXVsdFN0cmluZ0V4dGVuc2lvbjpqChdkZWZhdWx0X2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhLIAEoDDoFd29ybGRSFWRlZmF1bHRCeXRlc0V4dGVuc2lvbjqmAQodZGVmYXVsdF9uZXN0ZWRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYUSABKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUlIaZGVmYXVsdE5lc3RlZEVudW1FeHRlbnNpb246pAEKHmRlZmF1bHRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhSIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVJSG2RlZmF1bHRGb3JlaWduRW51bUV4dGVuc2lvbjqnAQodZGVmYXVsdF9pbXBvcnRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYUyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW06CklNUE9SVF9CQVJSGmRlZmF1bHRJbXBvcnRFbnVtRXh0ZW5zaW9uOnkKHmRlZmF1bHRfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhUIAEoCToDYWJjQgIIAlIbZGVmYXVsdFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmoKFmRlZmF1bHRfY29yZF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYVSABKAk6AzEyM0ICCAFSFGRlZmF1bHRDb3JkRXh0ZW5zaW9uOmEKFm9uZW9mX3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYbyABKA1SFG9uZW9mVWludDMyRXh0ZW5zaW9uOqYBCh5vbmVvZl9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYcCABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSG29uZW9mTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjphChZvbmVvZl9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGHEgASgJUhRvbmVvZlN0cmluZ0V4dGVuc2lvbjpfChVvbmVvZl9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYciABKAxSE29uZW9mQnl0ZXNFeHRlbnNpb246XAoTbXlfZXh0ZW5zaW9uX3N0cmluZxIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYMiABKAlSEW15RXh0ZW5zaW9uU3RyaW5nOlYKEG15X2V4dGVuc2lvbl9pbnQSLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGAUgASgFUg5teUV4dGVuc2lvbkludDpoChZwYWNrZWRfaW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFogAygFQgIQAVIUcGFja2VkSW50MzJFeHRlbnNpb246aAoWcGFja2VkX2ludDY0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhbIAMoA0ICEAFSFHBhY2tlZEludDY0RXh0ZW5zaW9uOmoKF3BhY2tlZF91aW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQAVIVcGFja2VkVWludDMyRXh0ZW5zaW9uOmoKF3BhY2tlZF91aW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGF0gAygEQgIQAVIVcGFja2VkVWludDY0RXh0ZW5zaW9uOmoKF3BhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGF4gAygRQgIQAVIVcGFja2VkU2ludDMyRXh0ZW5zaW9uOmoKF3BhY2tlZF9zaW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQAVIVcGFja2VkU2ludDY0RXh0ZW5zaW9uOmwKGHBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhgIAMoB0ICEAFSFnBhY2tlZEZpeGVkMzJFeHRlbnNpb246bAoYcGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGEgAygGQgIQAVIWcGFja2VkRml4ZWQ2NEV4dGVuc2lvbjpuChlwYWNrZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQAVIXcGFja2VkU2ZpeGVkMzJFeHRlbnNpb246bgoZcGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEAFSF3BhY2tlZFNmaXhlZDY0RXh0ZW5zaW9uOmgKFnBhY2tlZF9mbG9hdF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZCADKAJCAhABUhRwYWNrZWRGbG9hdEV4dGVuc2lvbjpqChdwYWNrZWRfZG91YmxlX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEAFSFXBhY2tlZERvdWJsZUV4dGVuc2lvbjpmChVwYWNrZWRfYm9vbF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZiADKAhCAhABUhNwYWNrZWRCb29sRXh0ZW5zaW9uOo0BChVwYWNrZWRfZW51bV9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhABUhNwYWNrZWRFbnVtRXh0ZW5zaW9uOm4KGHVucGFja2VkX2ludDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFogAygFQgIQAFIWdW5wYWNrZWRJbnQzMkV4dGVuc2lvbjpuChh1bnBhY2tlZF9pbnQ2NF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhbIAMoA0ICEABSFnVucGFja2VkSW50NjRFeHRlbnNpb246cAoZdW5wYWNrZWRfdWludDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQAFIXdW5wYWNrZWRVaW50MzJFeHRlbnNpb246cAoZdW5wYWNrZWRfdWludDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF0gAygEQgIQAFIXdW5wYWNrZWRVaW50NjRFeHRlbnNpb246cAoZdW5wYWNrZWRfc2ludDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF4gAygRQgIQAFIXdW5wYWNrZWRTaW50MzJFeHRlbnNpb246cAoZdW5wYWNrZWRfc2ludDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQAFIXdW5wYWNrZWRTaW50NjRFeHRlbnNpb246cgoadW5wYWNrZWRfZml4ZWQzMl9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhgIAMoB0ICEABSGHVucGFja2VkRml4ZWQzMkV4dGVuc2lvbjpyChp1bnBhY2tlZF9maXhlZDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGEgAygGQgIQAFIYdW5wYWNrZWRGaXhlZDY0RXh0ZW5zaW9uOnQKG3VucGFja2VkX3NmaXhlZDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQAFIZdW5wYWNrZWRTZml4ZWQzMkV4dGVuc2lvbjp0Cht1bnBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEABSGXVucGFja2VkU2ZpeGVkNjRFeHRlbnNpb246bgoYdW5wYWNrZWRfZmxvYXRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZCADKAJCAhAAUhZ1bnBhY2tlZEZsb2F0RXh0ZW5zaW9uOnAKGXVucGFja2VkX2RvdWJsZV9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEABSF3VucGFja2VkRG91YmxlRXh0ZW5zaW9uOmwKF3VucGFja2VkX2Jvb2xfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZiADKAhCAhAAUhV1bnBhY2tlZEJvb2xFeHRlbnNpb246kwEKF3VucGFja2VkX2VudW1fZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhAAUhV1bnBhY2tlZEVudW1FeHRlbnNpb246gAEKDnRlc3RfYWxsX3R5cGVzEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RIdWdlRmllbGROdW1iZXJzGOCq//8BIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSDHRlc3RBbGxUeXBlczqEAQoldGVzdF9leHRlbnNpb25faW5zaWRlX3RhYmxlX2V4dGVuc2lvbhIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGUYBSABKAVSIXRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZUV4dGVuc2lvbkIySAGAAQGIAQGQAQH4AQGqAiFHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvcy5Qcm90bzJKvLgDCgcSBSYA2QgBCqIOCgEMEgMmABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLTASBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3RvIGZpbGUgd2Ugd2lsbCB1c2UgZm9yIHVuaXQgdGVzdGluZy4KCiBMSU5UOiBBTExPV19HUk9VUFMsIExFR0FDWV9OQU1FUwoKCAoBCBIDKgAiCoABCgIIEBIDKgAiGmcgU29tZSBnZW5lcmljX3NlcnZpY2VzIG9wdGlvbihzKSBhZGRlZCBhdXRvbWF0aWNhbGx5LgogU2VlOiAgaHR0cDovL2dvL3Byb3RvMi1nZW5lcmljLXNlcnZpY2VzLWRlZmF1bHQKIgwgYXV0by1hZGRlZAoKCAoBCBIDKwAkChcKAggREgMrACQiDCBhdXRvLWFkZGVkCgoICgEIEgMsACIKFwoCCBISAywAIiIMIGF1dG8tYWRkZWQKCggKAQgSAy0AHwoJCgIIHxIDLQAfCgkKAgMAEgMvAC0K5gEKAQISAzQAIRrbASBXZSBkb24ndCBwdXQgdGhpcyBpbiBhIHBhY2thZ2Ugd2l0aGluIHByb3RvMiBiZWNhdXNlIHdlIG5lZWQgdG8gbWFrZSBzdXJlCiB0aGF0IHRoZSBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0IGRlcGVuZCBvbiBiZWluZyBpbiB0aGUgcHJvdG8yIG5hbWVzcGFjZS4KIEluIHRlc3RfdXRpbC5oIHdlIGRvICJ1c2luZyBuYW1lc3BhY2UgdW5pdHRlc3QgPSBwcm90b2J1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CgUEDAIIBBIEhwMCCgoNCgUEDAIIBRIEhwMLEAoNCgUEDAIIARIEhwMRFwoNCgUEDAIIAxIEhwMaGwoMCgQEDAIJEgSIAwIeCg0KBQQMAgkEEgSIAwIKCg0KBQQMAgkFEgSIAwsQCg0KBQQMAgkBEgSIAxEYCg0KBQQMAgkDEgSIAxsdCgwKBAQMAgoSBIkDAh4KDQoFBAwCCgQSBIkDAgoKDQoFBAwCCgUSBIkDCxAKDQoFBAwCCgESBIkDERgKDQoFBAwCCgMSBIkDGx0KDAoEBAwCCxIEigMCHgoNCgUEDAILBBIEigMCCgoNCgUEDAILBRIEigMLEAoNCgUEDAILARIEigMRGAoNCgUEDAILAxIEigMbHQoMCgQEDAIMEgSLAwIeCg0KBQQMAgwEEgSLAwIKCg0KBQQMAgwFEgSLAwsQCg0KBQQMAgwBEgSLAxEYCg0KBQQMAgwDEgSLAxsdCgwKBAQMAg0SBIwDAh4KDQoFBAwCDQQSBIwDAgoKDQoFBAwCDQUSBIwDCxAKDQoFBAwCDQESBIwDERgKDQoFBAwCDQMSBIwDGx0KDAoEBAwCDhIEjQMCHgoNCgUEDAIOBBIEjQMCCgoNCgUEDAIOBRIEjQMLEAoNCgUEDAIOARIEjQMRGAoNCgUEDAIOAxIEjQMbHQoMCgQEDAIPEgSOAwIeCg0KBQQMAg8EEgSOAwIKCg0KBQQMAg8FEgSOAwsQCg0KBQQMAg8BEgSOAxEYCg0KBQQMAg8DEgSOAxsdCgwKBAQMAhASBI8DAh4KDQoFBAwCEAQSBI8DAgoKDQoFBAwCEAUSBI8DCxAKDQoFBAwCEAESBI8DERgKDQoFBAwCEAMSBI8DGx0KDAoEBAwCERIEkAMCHgoNCgUEDAIRBBIEkAMCCgoNCgUEDAIRBRIEkAMLEAoNCgUEDAIRARIEkAMRGAoNCgUEDAIRAxIEkAMbHQoMCgQEDAISEgSRAwIeCg0KBQQMAhIEEgSRAwIKCg0KBQQMAhIFEgSRAwsQCg0KBQQMAhIBEgSRAxEYCg0KBQQMAhIDEgSRAxsdCgwKBAQMAhMSBJIDAh4KDQoFBAwCEwQSBJIDAgoKDQoFBAwCEwUSBJIDCxAKDQoFBAwCEwESBJIDERgKDQoFBAwCEwMSBJIDGx0KDAoEBAwCFBIEkwMCHgoNCgUEDAIUBBIEkwMCCgoNCgUEDAIUBRIEkwMLEAoNCgUEDAIUARIEkwMRGAoNCgUEDAIUAxIEkwMbHQoMCgQEDAIVEgSUAwIeCg0KBQQMAhUEEgSUAwIKCg0KBQQMAhUFEgSUAwsQCg0KBQQMAhUBEgSUAxEYCg0KBQQMAhUDEgSUAxsdCgwKBAQMAhYSBJUDAh4KDQoFBAwCFgQSBJUDAgoKDQoFBAwCFgUSBJUDCxAKDQoFBAwCFgESBJUDERgKDQoFBAwCFgMSBJUDGx0KDAoEBAwCFxIElgMCHgoNCgUEDAIXBBIElgMCCgoNCgUEDAIXBRIElgMLEAoNCgUEDAIXARIElgMRGAoNCgUEDAIXAxIElgMbHQoMCgQEDAIYEgSXAwIeCg0KBQQMAhgEEgSXAwIKCg0KBQQMAhgFEgSXAwsQCg0KBQQMAhgBEgSXAxEYCg0KBQQMAhgDEgSXAxsdCgwKBAQMAhkSBJgDAh4KDQoFBAwCGQQSBJgDAgoKDQoFBAwCGQUSBJgDCxAKDQoFBAwCGQESBJgDERgKDQoFBAwCGQMSBJgDGx0KDAoEBAwCGhIEmQMCHgoNCgUEDAIaBBIEmQMCCgoNCgUEDAIaBRIEmQMLEAoNCgUEDAIaARIEmQMRGAoNCgUEDAIaAxIEmQMbHQoMCgQEDAIbEgSaAwIeCg0KBQQMAhsEEgSaAwIKCg0KBQQMAhsFEgSaAwsQCg0KBQQMAhsBEgSaAxEYCg0KBQQMAhsDEgSaAxsdCgwKBAQMAhwSBJsDAh4KDQoFBAwCHAQSBJsDAgoKDQoFBAwCHAUSBJsDCxAKDQoFBAwCHAESBJsDERgKDQoFBAwCHAMSBJsDGx0KDAoEBAwCHRIEnAMCHgoNCgUEDAIdBBIEnAMCCgoNCgUEDAIdBRIEnAMLEAoNCgUEDAIdARIEnAMRGAoNCgUEDAIdAxIEnAMbHQoMCgQEDAIeEgSdAwIeCg0KBQQMAh4EEgSdAwIKCg0KBQQMAh4FEgSdAwsQCg0KBQQMAh4BEgSdAxEYCg0KBQQMAh4DEgSdAxsdCgwKBAQMAh8SBJ4DAh4KDQoFBAwCHwQSBJ4DAgoKDQoFBAwCHwUSBJ4DCxAKDQoFBAwCHwESBJ4DERgKDQoFBAwCHwMSBJ4DGx0KDAoEBAwCIBIEoAMCGAoNCgUEDAIgBBIEoAMCCgoNCgUEDAIgBRIE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BJ8GAgoKDQoFBDECAQUSBJ8GCxAKDQoFBDECAQESBJ8GER8KDQoFBDECAQMSBJ8GIiQKDQoFBDECAQgSBJ8GJTUKDgoGBDECAQgCEgSfBiY0CgwKBAQxAgISBKAGAjgKDQoFBDECAgQSBKAGAgoKDQoFBDECAgUSBKAGCxEKDQoFBDECAgESBKAGEiEKDQoFBDECAgMSBKAGJCYKDQoFBDECAggSBKAGJzcKDgoGBDECAggCEgSgBig2CgwKBAQxAgMSBKEGAjgKDQoFBDECAwQSBKEGAgoKDQoFBDECAwUSBKEGCxEKDQoFBDECAwESBKEGEiEKDQoFBDECAwMSBKEGJCYKDQoFBDECAwgSBKEGJzcKDgoGBDECAwgCEgShBig2CgwKBAQxAgQSBKIGAjgKDQoFBDECBAQSBKIGAgoKDQoFBDECBAUSBKIGCxEKDQoFBDECBAESBKIGEiEKDQoFBDECBAMSBKIGJCYKDQoFBDECBAgSBKIGJzcKDgoGBDECBAgCEgSiBig2CgwKBAQxAgUSBKMGAjgKDQoFBDECBQQSBKMGAgoKDQoFBDECBQUSBKMGCxEKDQoFBDECBQESBKMGEiEKDQoFBDECBQMSBKMGJCYKDQoFBDECBQgSBKMGJzcKDgoGBDECBQgCEgSjBig2CgwKBAQxAgYSBKQGAjoKDQoFBDECBgQSBKQGAgoKDQoFBDECBgUSBKQGCxIKDQoFBDECBgESBKQGEyMKDQoFBDECBgMSBKQGJigKDQoFBDECBggSBKQGKTkKDgoGBDECBggCEgSkBio4CgwKBAQxAgcSBKUGAjoKDQoFBDECBwQSBKUGAgoKDQoFBDECBwUSBKUGCxIKDQoFBDECBwESBKUGEyMKDQoFBDECBwMSBKUGJigKDQoFBDECBwgSBKUGKTkKDgoGBDECBwgCEgSlBio4CgwKBAQxAggSBKYGAjwKDQoFBDECCAQSBKYGAgoKDQoFBDECCAUSBKYGCxMKDQoFBDECCAESBKYGFCUKDQoFBDECCAMSBKYGKCoKDQoFBDECCAgSBKYGKzsKDgoGBDECCAgCEgSmBiw6CgwKBAQxAgkSBKcGAjwKDQoFBDECCQQSBKcGAgoKDQoFBDECCQUSBKcGCxMKDQoFBDECCQESBKcGFCUKDQoFBDECCQMSBKcGKCoKDQoFBDECCQgS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BNcIAhUKDQoFBQMCYwESBNcIAg8KDQoFBQMCYwISBNcIEhQKDAoEBQMCZBIE2AgCFwoNCgUFAwJkARIE2AgCEAoNCgUFAwJkAhIE2AgTFgq/EAooY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pc3N1ZTY5MzZfYS5wcm90bxIPdW5pdHRlc3RfaXNzdWVzGiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bzozCgNvcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY0IYDIAEoCVIDb3B0Qh2qAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc0qDDwoGEgQeACwBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA3CgkKAgglEgMiADcKxAEKAgMAEgMoACoyuAEgVGhpcyBmaWxlIGlzIHVzZWQgYXMgcGFydCBvZiBhIHVuaXQgdGVzdCBmb3IgaXNzdWUgNjkzNgogV2UgZG9uJ3QgbmVlZCB0byB1c2UgaXQsIHdlIGp1c3QgaGF2ZSB0byBpbXBvcnQgaXQgaW4gYm90aAogImV4dGVuc2lvbnNfaXNzdWU2OTM2X2IucHJvdG8iIGFuZCAiZXh0ZW5zaW9uc19pc3N1ZTY5MzZfYy5wcm90byIKCgkKAQcSBCoALAEKCQoCBwASAysCFQoKCgMHAAISAyoHJQoKCgMHAAUSAysCCAoKCgMHAAESAysJDAoKCgMHAAMSAysPFGIGcHJvdG8zCuUPCihjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3VlNjkzNl9iLnByb3RvEg91bml0dGVzdF9pc3N1ZXMaKGNzaGFycC9wcm90b3MvdW5pdHRlc3RfaXNzdWU2OTM2X2EucHJvdG8iDgoDRm9vOgeCtRgDZm9vQh2qAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc0rGDgoGEgQeACwBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIAMgoICgEIEgMkADcKCQoCCCUSAyQANwqbAQoCBAASBCoALAEyjgEgVGhpcyBmaWxlIGlzIHVzZWQgYXMgcGFydCBvZiBhIHVuaXQgdGVzdCBmb3IgaXNzdWUgNjkzNgogV2UgZG9uJ3QgbmVlZCB0byB1c2UgaXQsIHdlIGp1c3QgaGF2ZSB0byBpbXBvcnQgaXQgaW4KICJ1bml0dGVzdF9pc3N1ZTY5MzZfYy5wcm90byIKCgoKAwQAARIDKggLCgoKAwQABxIDKwIXCg0KBgQAB9CGAxIDKwIXYgZwcm90bzMK4BAKKGNzaGFycC9wcm90b3MvdW5pdHRlc3RfaXNzdWU2OTM2X2MucHJvdG8SD3VuaXR0ZXN0X2lzc3VlcxooY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pc3N1ZTY5MzZfYS5wcm90bxooY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pc3N1ZTY5MzZfYi5wcm90byI2CgNCYXISJgoDZm9vGAEgASgLMhQudW5pdHRlc3RfaXNzdWVzLkZvb1IDZm9vOgeCtRgDYmFyQh2qAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc0rvDgoGEgQeAC4BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIAMgoJCgIDARIDIwAyCggKAQgSAyUANwoJCgIIJRIDJQA3CoIBCgIEABIEKgAuATJ2IFRoaXMgZmlsZSBpcyB1c2VkIGFzIHBhcnQgb2YgYSB1bml0IHRlc3QgZm9yIGlzc3VlIDY5MzYKIFdlIGRvbid0IG5lZWQgdG8gdXNlIGl0LCB3ZSBqdXN0IGhhdmUgdG8gbG9hZCBpdCBhdCBydW50aW1lCgoKCgMEAAESAyoICwoKCgMEAAcSAysCFwoNCgYEAAfQhgMSAysCFwoLCgQEAAIAEgMtAg4KDAoFBAACAAYSAy0CBQoMCgUEAAIAARIDLQYJCgwKBQQAAgADEgMtDA1iBnByb3RvMwrzGAo0Y3NoYXJwL3Byb3Rvcy91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucy5wcm90bxIpcHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvIlkKCkZvb09wdGlvbnMSJgoHaW50X29wdBgBIAEoBUINyj4KCAHAPgLKPgIIA1IGaW50T3B0EhgKA2ZvbxgCIAEoBUIGyj4DENIJUgNmb28qCQjoBxCAgICAAjpFCgtiYXJfb3B0aW9ucxIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY6AcgASgFQgTAPtIJUgpiYXJPcHRpb25zOnYKC2Zvb19vcHRpb25zEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjpByABKAsyNS5wcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucy5Gb29PcHRpb25zUgpmb29PcHRpb25zOlYKC2Zvb19pbnRfb3B0EjUucHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMuRm9vT3B0aW9ucxjoByABKAVSCWZvb0ludE9wdDqNAQoLZm9vX2Zvb19vcHQSNS5wcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucy5Gb29PcHRpb25zGOkHIAEoCzI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnNSCWZvb0Zvb09wdEI0qgIxVW5pdFRlc3QuSXNzdWVzLlRlc3RQcm90b3MuU2VsZnJlZmVyZW50aWFsT3B0aW9uc0q1EwoGEgQeAD4BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgADIKCQoCAwASAyIAKgoICgEIEgMkAE4KCQoCCCUSAyQATgoKCgIEABIEJgAyAQoKCgMEAAESAyYIEgpQCgQEAAIAEgQoAiwFGkIgQ3VzdG9tIGZpZWxkIG9wdGlvbiB1c2VkIGluIGRlZmluaXRpb24gb2YgdGhlIGV4dGVuc2lvbiBtZXNzYWdlLgoKDAoFBAACAAQSAygCCgoMCgUEAAIABRIDKAsQCgwKBQQAAgABEgMoERgKDAoFBAACAAMSAygbHAoNCgUEAAIACBIEKB0sBAoPCgcEAAIACOkHEgQoHiwDClUKBAQAAgESAy8CORpIIEN1c3RvbSBmaWVsZCBvcHRpb24gdXNlZCBpbiBkZWZpbml0aW9uIG9mIHRoZSBjdXN0b20gb3B0aW9uJ3MgbWVzc2FnZS4KCgwKBQQAAgEEEgMvAgoKDAoFBAACAQUSAy8LEAoMCgUEAAIBARIDLxEUCgwKBQQAAgEDEgMvFxgKDAoFBAACAQgSAy8ZOAoOCgcEAAIBCOkHEgMvGjcKCgoDBAAFEgMxAhkKCwoEBAAFABIDMQ0YCgwKBQQABQABEgMxDREKDAoFBAAFAAISAzEVGAoJCgEHEgQ0ADkBCk0KAgcAEgM2AjsaQiBDdXN0b20gZmllbGQgb3B0aW9uIHVzZWQgb24gdGhlIGRlZmluaXRpb24gb2YgdGhhdCBmaWVsZCBvcHRpb24uCgoKCgMHAAISAzQHIwoKCgMHAAQSAzYCCgoKCgMHAAUSAzYLEAoKCgMHAAESAzYRHAoKCgMHAAMSAzYfIwoKCgMHAAgSAzYkOgoMCgUHAAjoBxIDNiU5CgkKAgcBEgM4AikKCgoDBwECEgM0ByMKCgoDBwEEEgM4AgoKCgoDBwEGEgM4CxUKCgoDBwEBEgM4FiEKCgoDBwEDEgM4JCgKCQoBBxIEOwA+AQoJCgIHAhIDPAIkCgoKAwcCAhIDOwcRCgoKAwcCBBIDPAIKCgoKAwcCBRIDPAsQCgoKAwcCARIDPBEcCgoKAwcCAxIDPB8jCgkKAgcDEgM9AikKCgoDBwMCEgM7BxEKCgoDBwMEEgM9AgoKCgoDBwMGEgM9CxUKCgoDBwMBEgM9FiEKCgoDBwMDEgM9JCgK2C0KGWdvb2dsZS9wcm90b2J1Zi9hbnkucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiI2CgNBbnkSGQoIdHlwZV91cmwYASABKAlSB3R5cGVVcmwSFAoFdmFsdWUYAiABKAxSBXZhbHVlQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSvErCgcSBR4AoAEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgBDCgkKAggLEgMiAEMKCAoBCBIDIwAsCgkKAggBEgMjACwKCAoBCBIDJAApCgkKAggIEgMkACkKCAoBCBIDJQAiCgkKAggKEgMlACIKCAoBCBIDJgAhCgkKAggkEgMmACEKCAoBCBIDJwA7CgkKAgglEgMnADsK9REKAgQAEgV/AKABARrnESBgQW55YCBjb250YWlucyBhbiBhcmJpdHJhcnkgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSBhbG9uZyB3aXRoIGEKIFVSTCB0aGF0IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBtZXNzYWdlLgoKIFByb3RvYnVmIGxpYnJhcnkgcHJvdmlkZXMgc3VwcG9ydCB0byBwYWNrL3VucGFjayBBbnkgdmFsdWVzIGluIHRoZSBmb3JtCiBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBvciBhZGRpdGlvbmFsIGdlbmVyYXRlZCBtZXRob2RzIG9mIHRoZSBBbnkgdHlwZS4KCiBFeGFtcGxlIDE6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gQysrLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnk7CiAgICAgYW55LlBhY2tGcm9tKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5VbnBhY2tUbygmZm9vKSkgewogICAgICAgLi4uCiAgICAgfQoKIEV4YW1wbGUgMjogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBKYXZhLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnkgPSBBbnkucGFjayhmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuaXMoRm9vLmNsYXNzKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uY2xhc3MpOwogICAgIH0KICAgICAvLyBvciAuLi4KICAgICBpZiAoYW55LmlzU2FtZVR5cGVBcyhGb28uZ2V0RGVmYXVsdEluc3RhbmNlKCkpKSB7CiAgICAgICBmb28gPSBhbnkudW5wYWNrKEZvby5nZXREZWZhdWx0SW5zdGFuY2UoKSk7CiAgICAgfQoKIEV4YW1wbGUgMzogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBQeXRob24uCgogICAgIGZvbyA9IEZvbyguLi4pCiAgICAgYW55ID0gQW55KCkKICAgICBhbnkuUGFjayhmb28pCiAgICAgLi4uCiAgICAgaWYgYW55LklzKEZvby5ERVNDUklQVE9SKToKICAgICAgIGFueS5VbnBhY2soZm9vKQogICAgICAgLi4uCgogRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IGFueXBiLk5ldyhmb28pCiAgICAgIGlmIGVyciAhPSBuaWwgewogICAgICAgIC4uLgogICAgICB9CiAgICAgIC4uLgogICAgICBmb28gOj0gJnBiLkZvb3t9CiAgICAgIGlmIGVyciA6PSBhbnkuVW5tYXJzaGFsVG8oZm9vKTsgZXJyICE9IG5pbCB7CiAgICAgICAgLi4uCiAgICAgIH0KCiBUaGUgcGFjayBtZXRob2RzIHByb3ZpZGVkIGJ5IHByb3RvYnVmIGxpYnJhcnkgd2lsbCBieSBkZWZhdWx0IHVzZQogJ3R5cGUuZ29vZ2xlYXBpcy5jb20vZnVsbC50eXBlLm5hbWUnIGFzIHRoZSB0eXBlIFVSTCBhbmQgdGhlIHVucGFjawogbWV0aG9kcyBvbmx5IHVzZSB0aGUgZnVsbHkgcXVhbGlmaWVkIHR5cGUgbmFtZSBhZnRlciB0aGUgbGFzdCAnLycKIGluIHRoZSB0eXBlIFVSTCwgZm9yIGV4YW1wbGUgImZvby5iYXIuY29tL3gveS56IiB3aWxsIHlpZWxkIHR5cGUKIG5hbWUgInkueiIuCgogSlNPTgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGFuIGBBbnlgIHZhbHVlIHVzZXMgdGhlIHJlZ3VsYXIKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXNlcmlhbGl6ZWQsIGVtYmVkZGVkIG1lc3NhZ2UsIHdpdGggYW4KIGFkZGl0aW9uYWwgZmllbGQgYEB0eXBlYCB3aGljaCBjb250YWlucyB0aGUgdHlwZSBVUkwuIEV4YW1wbGU6CgogICAgIHBhY2thZ2UgZ29vZ2xlLnByb2ZpbGU7CiAgICAgbWVzc2FnZSBQZXJzb24gewogICAgICAgc3RyaW5nIGZpcnN0X25hbWUgPSAxOwogICAgICAgc3RyaW5nIGxhc3RfbmFtZSA9IDI7CiAgICAgfQoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvZmlsZS5QZXJzb24iLAogICAgICAgImZpcnN0TmFtZSI6IDxzdHJpbmc+LAogICAgICAgImxhc3ROYW1lIjogPHN0cmluZz4KICAgICB9CgogSWYgdGhlIGVtYmVkZGVkIG1lc3NhZ2UgdHlwZSBpcyB3ZWxsLWtub3duIGFuZCBoYXMgYSBjdXN0b20gSlNPTgogcmVwcmVzZW50YXRpb24sIHRoYXQgcmVwcmVzZW50YXRpb24gd2lsbCBiZSBlbWJlZGRlZCBhZGRpbmcgYSBmaWVsZAogYHZhbHVlYCB3aGljaCBob2xkcyB0aGUgY3VzdG9tIEpTT04gaW4gYWRkaXRpb24gdG8gdGhlIGBAdHlwZWAKIGZpZWxkLiBFeGFtcGxlIChmb3IgbWVzc2FnZSBbZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uXVtdKToKCiAgICAgewogICAgICAgIkB0eXBlIjogInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIiwKICAgICAgICJ2YWx1ZSI6ICIxLjIxMnMiCiAgICAgfQoKCgoKAwQAARIDfwgLCtcKCgQEAAIAEgScAQIWGsgKIEEgVVJML3Jlc291cmNlIG5hbWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkCiBwcm90b2NvbCBidWZmZXIgbWVzc2FnZS4gVGhpcyBzdHJpbmcgbXVzdCBjb250YWluIGF0IGxlYXN0CiBvbmUgIi8iIGNoYXJhY3Rlci4gVGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgVVJMJ3MgcGF0aCBtdXN0IHJlcHJlc2VudAogdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSB0eXBlIChhcyBpbgogYHBhdGgvZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uYCkuIFRoZSBuYW1lIHNob3VsZCBiZSBpbiBhIGNhbm9uaWNhbCBmb3JtCiAoZS5nLiwgbGVhZGluZyAiLiIgaXMgbm90IGFjY2VwdGVkKS4KCiBJbiBwcmFjdGljZSwgdGVhbXMgdXN1YWxseSBwcmVjb21waWxlIGludG8gdGhlIGJpbmFyeSBhbGwgdHlwZXMgdGhhdCB0aGV5CiBleHBlY3QgaXQgdG8gdXNlIGluIHRoZSBjb250ZXh0IG9mIEFueS4gSG93ZXZlciwgZm9yIFVSTHMgd2hpY2ggdXNlIHRoZQogc2NoZW1lIGBodHRwYCwgYGh0dHBzYCwgb3Igbm8gc2NoZW1lLCBvbmUgY2FuIG9wdGlvbmFsbHkgc2V0IHVwIGEgdHlwZQogc2VydmVyIHRoYXQgbWFwcyB0eXBlIFVSTHMgdG8gbWVzc2FnZSBkZWZpbml0aW9ucyBhcyBmb2xsb3dzOgoKICogSWYgbm8gc2NoZW1lIGlzIHByb3ZpZGVkLCBgaHR0cHNgIGlzIGFzc3VtZWQuCiAqIEFuIEhUVFAgR0VUIG9uIHRoZSBVUkwgbXVzdCB5aWVsZCBhIFtnb29nbGUucHJvdG9idWYuVHlwZV1bXQogICB2YWx1ZSBpbiBiaW5hcnkgZm9ybWF0LCBvciBwcm9kdWNlIGFuIGVycm9yLgogKiBBcHBsaWNhdGlvbnMgYXJlIGFsbG93ZWQgdG8gY2FjaGUgbG9va3VwIHJlc3VsdHMgYmFzZWQgb24gdGhlCiAgIFVSTCwgb3IgaGF2ZSB0aGVtIHByZWNvbXBpbGVkIGludG8gYSBiaW5hcnkgdG8gYXZvaWQgYW55CiAgIGxvb2t1cC4gVGhlcmVmb3JlLCBiaW5hcnkgY29tcGF0aWJpbGl0eSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQKICAgb24gY2hhbmdlcyB0byB0eXBlcy4gKFVzZSB2ZXJzaW9uZWQgdHlwZSBuYW1lcyB0byBtYW5hZ2UKICAgYnJlYWtpbmcgY2hhbmdlcy4pCgogTm90ZTogdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG5vdCBjdXJyZW50bHkgYXZhaWxhYmxlIGluIHRoZSBvZmZpY2lhbAogcHJvdG9idWYgcmVsZWFzZSwgYW5kIGl0IGlzIG5vdCB1c2VkIGZvciB0eXBlIFVSTHMgYmVnaW5uaW5nIHdpdGgKIHR5cGUuZ29vZ2xlYXBpcy5jb20uCgogU2NoZW1lcyBvdGhlciB0aGFuIGBodHRwYCwgYGh0dHBzYCAob3IgdGhlIGVtcHR5IHNjaGVtZSkgbWlnaHQgYmUKIHVzZWQgd2l0aCBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBzZW1hbnRpY3MuCgoKDQoFBAACAAUSBJwBAggKDQoFBAACAAESBJwBCREKDQoFBAACAAMSBJwBFBUKVwoEBAACARIEnwECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoNCgUEAAIBBRIEnwECBwoNCgUEAAIBARIEnwEIDQoNCgUEAAIBAxIEnwEQEWIGcHJvdG8zCr4SCiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIsCg1Tb3VyY2VDb250ZXh0EhsKCWZpbGVfbmFtZRgBIAEoCVIIZmlsZU5hbWVCigEKE2NvbS5nb29nbGUucHJvdG9idWZCElNvdXJjZUNvbnRleHRQcm90b1ABWjZnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9zb3VyY2Vjb250ZXh0cGKiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKwRAKBhIEHgAvAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIALAoJCgIIARIDIgAsCggKAQgSAyMAMwoJCgIICBIDIwAzCggKAQgSAyQAIgoJCgIIChIDJAAiCggKAQgSAyUAIQoJCgIIJBIDJQAhCggKAQgSAyYAOwoJCgIIJRIDJgA7CggKAQgSAycATQoJCgIICxIDJwBNCoMBCgIEABIEKwAvARp3IGBTb3VyY2VDb250ZXh0YCByZXByZXNlbnRzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzb3VyY2Ugb2YgYQogcHJvdG9idWYgZWxlbWVudCwgbGlrZSB0aGUgZmlsZSBpbiB3aGljaCBpdCBpcyBkZWZpbmVkLgoKCgoDBAABEgMrCBUKowEKBAQAAgASAy4CFxqVASBUaGUgcGF0aC1xdWFsaWZpZWQgbmFtZSBvZiB0aGUgLnByb3RvIGZpbGUgdGhhdCBjb250YWluZWQgdGhlIGFzc29jaWF0ZWQKIHByb3RvYnVmIGVsZW1lbnQuICBGb3IgZXhhbXBsZTogYCJnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8iYC4KCgwKBQQAAgAFEgMuAggKDAoFBAACAAESAy4JEgoMCgUEAAIAAxIDLhUWYgZwcm90bzMK6EYKGmdvb2dsZS9wcm90b2J1Zi90eXBlLnByb3RvEg9nb29nbGUucHJvdG9idWYaGWdvb2dsZS9wcm90b2J1Zi9hbnkucHJvdG8aJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90byKNAgoEVHlwZRISCgRuYW1lGAEgASgJUgRuYW1lEi4KBmZpZWxkcxgCIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5GaWVsZFIGZmllbGRzEhYKBm9uZW9mcxgDIAMoCVIGb25lb2ZzEjEKB29wdGlvbnMYBCADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEkUKDnNvdXJjZV9jb250ZXh0GAUgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSDXNvdXJjZUNvbnRleHQSLwoGc3ludGF4GAYgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheFIGc3ludGF4IrQGCgVGaWVsZBIvCgRraW5kGAEgASgOMhsuZ29vZ2xlLnByb3RvYnVmLkZpZWxkLktpbmRSBGtpbmQSRAoLY2FyZGluYWxpdHkYAiABKA4yIi5nb29nbGUucHJvdG9idWYuRmllbGQuQ2FyZGluYWxpdHlSC2NhcmRpbmFsaXR5EhYKBm51bWJlchgDIAEoBVIGbnVtYmVyEhIKBG5hbWUYBCABKAlSBG5hbWUSGQoIdHlwZV91cmwYBiABKAlSB3R5cGVVcmwSHwoLb25lb2ZfaW5kZXgYByABKAVSCm9uZW9mSW5kZXgSFgoGcGFja2VkGAggASgIUgZwYWNrZWQSMQoHb3B0aW9ucxgJIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRIjCg1kZWZhdWx0X3ZhbHVlGAsgASgJUgxkZWZhdWx0VmFsdWUiyAIKBEtpbmQSEAoMVFlQRV9VTktOT1dOEAASDwoLVFlQRV9ET1VCTEUQARIOCgpUWVBFX0ZMT0FUEAISDgoKVFlQRV9JTlQ2NBADEg8KC1RZUEVfVUlOVDY0EAQSDgoKVFlQRV9JTlQzMhAFEhAKDFRZUEVfRklYRUQ2NBAGEhAKDFRZUEVfRklYRUQzMhAHEg0KCVRZUEVfQk9PTBAIEg8KC1RZUEVfU1RSSU5HEAkSDgoKVFlQRV9HUk9VUBAKEhAKDFRZUEVfTUVTU0FHRRALEg4KClRZUEVfQllURVMQDBIPCgtUWVBFX1VJTlQzMhANEg0KCVRZUEVfRU5VTRAOEhEKDVRZUEVfU0ZJWEVEMzIQDxIRCg1UWVBFX1NGSVhFRDY0EBASDwoLVFlQRV9TSU5UMzIQERIPCgtUWVBFX1NJTlQ2NBASInQKC0NhcmRpbmFsaXR5EhcKE0NBUkRJTkFMSVRZX1VOS05PV04QABIYChRDQVJESU5BTElUWV9PUFRJT05BTBABEhgKFENBUkRJTkFMSVRZX1JFUVVJUkVEEAISGAoUQ0FSRElOQUxJVFlfUkVQRUFURUQQAyL/AQoERW51bRISCgRuYW1lGAEgASgJUgRuYW1lEjgKCWVudW12YWx1ZRgCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVSCWVudW12YWx1ZRIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxJFCg5zb3VyY2VfY29udGV4dBgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0Ug1zb3VyY2VDb250ZXh0Ei8KBnN5bnRheBgFIAEoDjIXLmdvb2dsZS5wcm90b2J1Zi5TeW50YXhSBnN5bnRheCJqCglFbnVtVmFsdWUSEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAiABKAVSBm51bWJlchIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucyJICgZPcHRpb24SEgoEbmFtZRgBIAEoCVIEbmFtZRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBXZhbHVlKi4KBlN5bnRheBIRCg1TWU5UQVhfUFJPVE8yEAASEQoNU1lOVEFYX1BST1RPMxABQnsKE2NvbS5nb29nbGUucHJvdG9idWZCCVR5cGVQcm90b1ABWi1nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90eXBlcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKwzgKBxIFHgC6AQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu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IHNob3J0IG5hbWUuIEZvciBleGFtcGxlLCBgIm1hcF9lbnRyeSJgLgogRm9yIGN1c3RvbSBvcHRpb25zLCBpdCBzaG91bGQgYmUgdGhlIGZ1bGx5LXF1YWxpZmllZCBuYW1lLiBGb3IgZXhhbXBsZSwKIGAiZ29vZ2xlLmFwaS5odHRwImAuCgoNCgUEBAIABRIErAECCAoNCgUEBAIAARIErAEJDQoNCgUEBAIAAxIErAEQEQqgAgoEBAQCARIEsQECEBqRAiBUaGUgb3B0aW9uJ3MgdmFsdWUgcGFja2VkIGluIGFuIEFueSBtZXNzYWdlLiBJZiB0aGUgdmFsdWUgaXMgYSBwcmltaXRpdmUsCiB0aGUgY29ycmVzcG9uZGluZyB3cmFwcGVyIHR5cGUgZGVmaW5lZCBpbiBnb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8KIHNob3VsZCBiZSB1c2VkLiBJZiB0aGUgdmFsdWUgaXMgYW4gZW51bSwgaXQgc2hvdWxkIGJlIHN0b3JlZCBhcyBhbiBpbnQzMgogdmFsdWUgdXNpbmcgdGhlIGdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlIHR5cGUuCgoNCgUEBAIBBhIEsQECBQoNCgUEBAIBARIEsQEGCwoNCgUEBAIBAxIEsQEODwpJCgIFABIGtQEAugEBGjsgVGhlIHN5bnRheCBpbiB3aGljaCBhIHByb3RvY29sIGJ1ZmZlciBlbGVtZW50IGlzIGRlZmluZWQuCgoLCgMFAAESBLUBBQsKIAoEBQACABIEtwECFBoSIFN5bnRheCBgcHJvdG8yYC4KCg0KBQUAAgABEgS3AQIPCg0KBQUAAgACEgS3ARITCiAKBAUAAgESBLkBAhQaEiBTeW50YXggYHByb3RvM2AuCgoNCgUFAAIBARIEuQECDwoNCgUFAAIBAhIEuQESE2IGcHJvdG8zCptDChlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvEg9nb29nbGUucHJvdG9idWYaJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8iwQIKA0FwaRISCgRuYW1lGAEgASgJUgRuYW1lEjEKB21ldGhvZHMYAiADKAsyFy5nb29nbGUucHJvdG9idWYuTWV0aG9kUgdtZXRob2RzEjEKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEhgKB3ZlcnNpb24YBCABKAlSB3ZlcnNpb24SRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIuCgZtaXhpbnMYBiADKAsyFi5nb29nbGUucHJvdG9idWYuTWl4aW5SBm1peGlucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgisgIKBk1ldGhvZBISCgRuYW1lGAEgASgJUgRuYW1lEigKEHJlcXVlc3RfdHlwZV91cmwYAiABKAlSDnJlcXVlc3RUeXBlVXJsEisKEXJlcXVlc3Rfc3RyZWFtaW5nGAMgASgIUhByZXF1ZXN0U3RyZWFtaW5nEioKEXJlc3BvbnNlX3R5cGVfdXJsGAQgASgJUg9yZXNwb25zZVR5cGVVcmwSLQoScmVzcG9uc2Vfc3RyZWFtaW5nGAUgASgIUhFyZXNwb25zZVN0cmVhbWluZxIxCgdvcHRpb25zGAYgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgiLwoFTWl4aW4SEgoEbmFtZRgBIAEoCVIEbmFtZRISCgRyb290GAIgASgJUgRyb290QnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFwaVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FwaXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoA8CgcSBR4AzgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIALgoJCgIDARIDIwAkCggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYAKQoJCgIICBIDJgApCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCggKAQgSAykAOwoJCgIIJRIDKQA7CggKAQgSAyoAQwoJCgIICxIDKgBDCqsECgIEABIENQBfARqeBCBBcGkgaXMgYSBsaWdodC13ZWlnaHQgZGVzY3JpcHRvciBmb3IgYW4gQVBJIEludGVyZmFjZS4KCiBJbnRlcmZhY2VzIGFyZSBhbHNvIGRlc2NyaWJlZCBhcyAicHJvdG9jb2wgYnVmZmVyIHNlcnZpY2VzIiBpbiBzb21lIGNvbnRleHRzLAogc3VjaCBhcyBieSB0aGUgInNlcnZpY2UiIGtleXdvcmQgaW4gYSAucHJvdG8gZmlsZSwgYnV0IHRoZXkgYXJlIGRpZmZlcmVudAogZnJvbSBBUEkgU2VydmljZXMsIHdoaWNoIHJlcHJlc2VudCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIGFuIGludGVyZmFjZQogYXMgb3Bwb3NlZCB0byBzaW1wbHkgYSBkZXNjcmlwdGlvbiBvZiBtZXRob2RzIGFuZCBiaW5kaW5ncy4gVGhleSBhcmUgYWxzbwogc29tZXRpbWVzIHNpbXBseSByZWZlcnJlZCB0byBhcyAiQVBJcyIgaW4gb3RoZXIgY29udGV4dHMsIHN1Y2ggYXMgdGhlIG5hbWUgb2YKIHRoaXMgbWVzc2FnZSBpdHNlbGYuIFNlZSBodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vYXBpcy9kZXNpZ24vZ2xvc3NhcnkgZm9yCiBkZXRhaWxlZCB0ZXJtaW5vbG9neS4KCgoKAwQAARIDNQgLCnsKBAQAAgASAzgCEhpuIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGlzIGludGVyZmFjZSwgaW5jbHVkaW5nIHBhY2thZ2UgbmFtZQogZm9sbG93ZWQgYnkgdGhlIGludGVyZmFjZSdzIHNpbXBsZSBuYW1lLgoKDAoFBAACAAUSAzgCCAoMCgUEAAIAARIDOAkNCgwKBQQAAgADEgM4EBEKQwoEBAACARIDOwIeGjYgVGhlIG1ldGhvZHMgb2YgdGhpcyBpbnRlcmZhY2UsIGluIHVuc3BlY2lmaWVkIG9yZGVyLgoKDAoFBAACAQQSAzsCCgoMCgUEAAIBBhIDOwsRCgwKBQQAAgEBEgM7EhkKDAoFBAACAQMSAzscHQo2CgQEAAICEgM+Ah4aKSBBbnkgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIGludGVyZmFjZS4KCgwKBQQAAgIEEgM+AgoKDAoFBAACAgYSAz4LEQoMCgUEAAICARIDPhIZCgwKBQQAAgIDEgM+HB0KgQgKBAQAAgMSA1QCFRrzByBBIHZlcnNpb24gc3RyaW5nIGZvciB0aGlzIGludGVyZmFjZS4gSWYgc3BlY2lmaWVkLCBtdXN0IGhhdmUgdGhlIGZvcm0KIGBtYWpvci12ZXJzaW9uLm1pbm9yLXZlcnNpb25gLCBhcyBpbiBgMS4xMGAuIElmIHRoZSBtaW5vciB2ZXJzaW9uIGlzCiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB6ZXJvLiBJZiB0aGUgZW50aXJlIHZlcnNpb24gZmllbGQgaXMgZW1wdHksIHRoZQogbWFqb3IgdmVyc2lvbiBpcyBkZXJpdmVkIGZyb20gdGhlIHBhY2thZ2UgbmFtZSwgYXMgb3V0bGluZWQgYmVsb3cuIElmIHRoZQogZmllbGQgaXMgbm90IGVtcHR5LCB0aGUgdmVyc2lvbiBpbiB0aGUgcGFja2FnZSBuYW1lIHdpbGwgYmUgdmVyaWZpZWQgdG8gYmUKIGNvbnNpc3RlbnQgd2l0aCB3aGF0IGlzIHByb3ZpZGVkIGhlcmUuCgogVGhlIHZlcnNpb25pbmcgc2NoZW1hIHVzZXMgW3NlbWFudGljCiB2ZXJzaW9uaW5nXShodHRwOi8vc2VtdmVyLm9yZykgd2hlcmUgdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyCiBpbmRpY2F0ZXMgYSBicmVha2luZyBjaGFuZ2UgYW5kIHRoZSBtaW5vciB2ZXJzaW9uIGFuIGFkZGl0aXZlLAogbm9uLWJyZWFraW5nIGNoYW5nZS4gQm90aCB2ZXJzaW9uIG51bWJlcnMgYXJlIHNpZ25hbHMgdG8gdXNlcnMKIHdoYXQgdG8gZXhwZWN0IGZyb20gZGlmZmVyZW50IHZlcnNpb25zLCBhbmQgc2hvdWxkIGJlIGNhcmVmdWxseQogY2hvc2VuIGJhc2VkIG9uIHRoZSBwcm9kdWN0IHBsYW4uCgogVGhlIG1ham9yIHZlcnNpb24gaXMgYWxzbyByZWZsZWN0ZWQgaW4gdGhlIHBhY2thZ2UgbmFtZSBvZiB0aGUKIGludGVyZmFjZSwgd2hpY2ggbXVzdCBlbmQgaW4gYHY8bWFqb3ItdmVyc2lvbj5gLCBhcyBpbgogYGdvb2dsZS5mZWF0dXJlLnYxYC4gRm9yIG1ham9yIHZlcnNpb25zIDAgYW5kIDEsIHRoZSBzdWZmaXggY2FuCiBiZSBvbWl0dGVkLiBaZXJvIG1ham9yIHZlcnNpb25zIG11c3Qgb25seSBiZSB1c2VkIGZvcgogZXhwZXJpbWVudGFsLCBub24tR0EgaW50ZXJmYWNlcy4KCgoMCgUEAAIDBRIDVAIICgwKBQQAAgMBEgNUCRAKDAoFBAACAwMSA1QTFApbCgQEAAIEEgNYAiMaTiBTb3VyY2UgY29udGV4dCBmb3IgdGhlIHByb3RvY29sIGJ1ZmZlciBzZXJ2aWNlIHJlcHJlc2VudGVkIGJ5IHRoaXMKIG1lc3NhZ2UuCgoMCgUEAAIEBhIDWAIPCgwKBQQAAgQBEgNYEB4KDAoFBAACBAMSA1ghIgoyCgQEAAIFEgNbAhwaJSBJbmNsdWRlZCBpbnRlcmZhY2VzLiBTZWUgW01peGluXVtdLgoKDAoFBAACBQQSA1sCCgoMCgUEAAIFBhIDWwsQCgwKBQQAAgUBEgNbERcKDAoFBAACBQMSA1saGwowCgQEAAIGEgNeAhQaIyBUaGUgc291cmNlIHN5bnRheCBvZiB0aGUgc2VydmljZS4KCgwKBQQAAgYGEgNeAggKDAoFBAACBgESA14JDwoMCgUEAAIGAxIDXhITCj0KAgQBEgRiAHcBGjEgTWV0aG9kIHJlcHJlc2VudHMgYSBtZXRob2Qgb2YgYW4gQVBJIGludGVyZmFjZS4KCgoKAwQBARIDYggOCi4KBAQBAgASA2QCEhohIFRoZSBzaW1wbGUgbmFtZSBvZiB0aGlzIG1ldGhvZC4KCgwKBQQBAgAFEgNkAggKDAoFBAECAAESA2QJDQoMCgUEAQIAAxIDZBARCi8KBAQBAgESA2cCHhoiIEEgVVJMIG9mIHRoZSBpbnB1dCBtZXNzYWdlIHR5cGUuCgoMCgUEAQIBBRIDZwIICgwKBQQBAgEBEgNnCRkKDAoFBAECAQMSA2ccHQowCgQEAQICEgNqAh0aIyBJZiB0cnVlLCB0aGUgcmVxdWVzdCBpcyBzdHJlYW1lZC4KCgwKBQQBAgIFEgNqAgYKDAoFBAECAgESA2oHGAoMCgUEAQICAxIDahscCjIKBAQBAgMSA20CHxolIFRoZSBVUkwgb2YgdGhlIG91dHB1dCBtZXNzYWdlIHR5cGUuCgoMCgUEAQIDBRIDbQIICgwKBQQBAgMBEgNtCRoKDAoFBAECAwMSA20dHgoxCgQEAQIEEgNwAh4aJCBJZiB0cnVlLCB0aGUgcmVzcG9uc2UgaXMgc3RyZWFtZWQuCgoMCgUEAQIEBRIDcAIGCgwKBQQBAgQBEgNwBxkKDAoFBAECBAMSA3AcHQozCgQEAQIFEgNzAh4aJiBBbnkgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIG1ldGhvZC4KCgwKBQQBAgUEEgNzAgoKDAoFBAECBQYSA3MLEQoMCgUEAQIFARIDcxIZCgwKBQQBAgUDEgNzHB0KMAoEBAECBhIDdgIUGiMgVGhlIHNvdXJjZSBzeW50YXggb2YgdGhpcyBtZXRob2QuCgoMCgUEAQIGBhIDdgIICgwKBQQBAgYBEgN2CQ8KDAoFBAECBgMSA3YSEwrKEwoCBAISBscBAM4BARq7EyBEZWNsYXJlcyBhbiBBUEkgSW50ZXJmYWNlIHRvIGJlIGluY2x1ZGVkIGluIHRoaXMgaW50ZXJmYWNlLiBUaGUgaW5jbHVkaW5nCiBpbnRlcmZhY2UgbXVzdCByZWRlY2xhcmUgYWxsIHRoZSBtZXRob2RzIGZyb20gdGhlIGluY2x1ZGVkIGludGVyZmFjZSwgYnV0CiBkb2N1bWVudGF0aW9uIGFuZCBvcHRpb25zIGFyZSBpbmhlcml0ZWQgYXMgZm9sbG93czoKCiAtIElmIGFmdGVyIGNvbW1lbnQgYW5kIHdoaXRlc3BhY2Ugc3RyaXBwaW5nLCB0aGUgZG9jdW1lbnRhdGlvbgogICBzdHJpbmcgb2YgdGhlIHJlZGVjbGFyZWQgbWV0aG9kIGlzIGVtcHR5LCBpdCB3aWxsIGJlIGluaGVyaXRlZAogICBmcm9tIHRoZSBvcmlnaW5hbCBtZXRob2QuCgogLSBFYWNoIGFubm90YXRpb24gYmVsb25naW5nIHRvIHRoZSBzZXJ2aWNlIGNvbmZpZyAoaHR0cCwKICAgdmlzaWJpbGl0eSkgd2hpY2ggaXMgbm90IHNldCBpbiB0aGUgcmVkZWNsYXJlZCBtZXRob2Qgd2lsbCBiZQogICBpbmhlcml0ZWQuCgogLSBJZiBhbiBodHRwIGFubm90YXRpb24gaXMgaW5oZXJpdGVkLCB0aGUgcGF0aCBwYXR0ZXJuIHdpbGwgYmUKICAgbW9kaWZpZWQgYXMgZm9sbG93cy4gQW55IHZlcnNpb24gcHJlZml4IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlCiAgIHZlcnNpb24gb2YgdGhlIGluY2x1ZGluZyBpbnRlcmZhY2UgcGx1cyB0aGUgW3Jvb3RdW10gcGF0aCBpZgogICBzcGVjaWZpZWQuCgogRXhhbXBsZSBvZiBhIHNpbXBsZSBtaXhpbjoKCiAgICAgcGFja2FnZSBnb29nbGUuYWNsLnYxOwogICAgIHNlcnZpY2UgQWNjZXNzQ29udHJvbCB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YxL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICB9CgogICAgIHBhY2thZ2UgZ29vZ2xlLnN0b3JhZ2UudjI7CiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKTsKCiAgICAgICAvLyBHZXQgYSBkYXRhIHJlY29yZC4KICAgICAgIHJwYyBHZXREYXRhKEdldERhdGFSZXF1ZXN0KSByZXR1cm5zIChEYXRhKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL3tyZXNvdXJjZT0qKn0iOwogICAgICAgfQogICAgIH0KCiBFeGFtcGxlIG9mIGEgbWl4aW4gY29uZmlndXJhdGlvbjoKCiAgICAgYXBpczoKICAgICAtIG5hbWU6IGdvb2dsZS5zdG9yYWdlLnYyLlN0b3JhZ2UKICAgICAgIG1peGluczoKICAgICAgIC0gbmFtZTogZ29vZ2xlLmFjbC52MS5BY2Nlc3NDb250cm9sCgogVGhlIG1peGluIGNvbnN0cnVjdCBpbXBsaWVzIHRoYXQgYWxsIG1ldGhvZHMgaW4gYEFjY2Vzc0NvbnRyb2xgIGFyZQogYWxzbyBkZWNsYXJlZCB3aXRoIHNhbWUgbmFtZSBhbmQgcmVxdWVzdC9yZXNwb25zZSB0eXBlcyBpbgogYFN0b3JhZ2VgLiBBIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIG9yIGFubm90YXRpb24gcHJvY2Vzc29yIHdpbGwKIHNlZSB0aGUgZWZmZWN0aXZlIGBTdG9yYWdlLkdldEFjbGAgbWV0aG9kIGFmdGVyIGluaGVyaXRpbmcKIGRvY3VtZW50YXRpb24gYW5kIGFubm90YXRpb25zIGFzIGZvbGxvd3M6CgogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICAgIC4uLgogICAgIH0KCiBOb3RlIGhvdyB0aGUgdmVyc2lvbiBpbiB0aGUgcGF0aCBwYXR0ZXJuIGNoYW5nZWQgZnJvbSBgdjFgIHRvIGB2MmAuCgogSWYgdGhlIGByb290YCBmaWVsZCBpbiB0aGUgbWl4aW4gaXMgc3BlY2lmaWVkLCBpdCBzaG91bGQgYmUgYQogcmVsYXRpdmUgcGF0aCB1bmRlciB3aGljaCBpbmhlcml0ZWQgSFRUUCBwYXRocyBhcmUgcGxhY2VkLiBFeGFtcGxlOgoKICAgICBhcGlzOgogICAgIC0gbmFtZTogZ29vZ2xlLnN0b3JhZ2UudjIuU3RvcmFnZQogICAgICAgbWl4aW5zOgogICAgICAgLSBuYW1lOiBnb29nbGUuYWNsLnYxLkFjY2Vzc0NvbnRyb2wKICAgICAgICAgcm9vdDogYWNscwoKIFRoaXMgaW1wbGllcyB0aGUgZm9sbG93aW5nIGluaGVyaXRlZCBIVFRQIGFubm90YXRpb246CgogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL2FjbHMve3Jlc291cmNlPSoqfTpnZXRBY2wiOwogICAgICAgfQogICAgICAgLi4uCiAgICAgfQoKCwoDBAIBEgTHAQgNCkwKBAQCAgASBMkBAhIaPiBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGludGVyZmFjZSB3aGljaCBpcyBpbmNsdWRlZC4KCg0KBQQCAgAFEgTJAQIICg0KBQQCAgABEgTJAQkNCg0KBQQCAgADEgTJARARClsKBAQCAgESBM0BAhIaTSBJZiBub24tZW1wdHkgc3BlY2lmaWVzIGEgcGF0aCB1bmRlciB3aGljaCBpbmhlcml0ZWQgSFRUUCBwYXRocwogYXJlIHJvb3RlZC4KCg0KBQQCAgEFEgTNAQIICg0KBQQCAgEBEgTNAQkNCg0KBQQCAgEDEgTNARARYgZwcm90bzMK1yUKHmdvb2dsZS9wcm90b2J1Zi9kdXJhdGlvbi5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjoKCER1cmF0aW9uEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQoMBChNjb20uZ29vZ2xlLnByb3RvYnVmQg1EdXJhdGlvblByb3RvUAFaMWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2R1cmF0aW9ucGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK2SMKBhIEHgByAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAHwoJCgIIHxIDIgAfCggKAQgSAyMASAoJCgIICxIDIwBICggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUALgoJCgIICBIDJQAuCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCggKAQgSAygAOwoJCgIIJRIDKAA7Cp0QCgIEABIEZQByARqQECBBIER1cmF0aW9uIHJlcHJlc2VudHMgYSBzaWduZWQsIGZpeGVkLWxlbmd0aCBzcGFuIG9mIHRpbWUgcmVwcmVzZW50ZWQKIGFzIGEgY291bnQgb2Ygc2Vjb25kcyBhbmQgZnJhY3Rpb25zIG9mIHNlY29uZHMgYXQgbmFub3NlY29uZAogcmVzb2x1dGlvbi4gSXQgaXMgaW5kZXBlbmRlbnQgb2YgYW55IGNhbGVuZGFyIGFuZCBjb25jZXB0cyBsaWtlICJkYXkiCiBvciAibW9udGgiLiBJdCBpcyByZWxhdGVkIHRvIFRpbWVzdGFtcCBpbiB0aGF0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KIHR3byBUaW1lc3RhbXAgdmFsdWVzIGlzIGEgRHVyYXRpb24gYW5kIGl0IGNhbiBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkCiBmcm9tIGEgVGltZXN0YW1wLiBSYW5nZSBpcyBhcHByb3hpbWF0ZWx5ICstMTAsMDAwIHllYXJzLgoKICMgRXhhbXBsZXMKCiBFeGFtcGxlIDE6IENvbXB1dGUgRHVyYXRpb24gZnJvbSB0d28gVGltZXN0YW1wcyBpbiBwc2V1ZG8gY29kZS4KCiAgICAgVGltZXN0YW1wIHN0YXJ0ID0gLi4uOwogICAgIFRpbWVzdGFtcCBlbmQgPSAuLi47CiAgICAgRHVyYXRpb24gZHVyYXRpb24gPSAuLi47CgogICAgIGR1cmF0aW9uLnNlY29uZHMgPSBlbmQuc2Vjb25kcyAtIHN0YXJ0LnNlY29uZHM7CiAgICAgZHVyYXRpb24ubmFub3MgPSBlbmQubmFub3MgLSBzdGFydC5uYW5vczsKCiAgICAgaWYgKGR1cmF0aW9uLnNlY29uZHMgPCAwICYmIGR1cmF0aW9uLm5hbm9zID4gMCkgewogICAgICAgZHVyYXRpb24uc2Vjb25kcyArPSAxOwogICAgICAgZHVyYXRpb24ubmFub3MgLT0gMTAwMDAwMDAwMDsKICAgICB9IGVsc2UgaWYgKGR1cmF0aW9uLnNlY29uZHMgPiAwICYmIGR1cmF0aW9uLm5hbm9zIDwgMCkgewogICAgICAgZHVyYXRpb24uc2Vjb25kcyAtPSAxOwogICAgICAgZHVyYXRpb24ubmFub3MgKz0gMTAwMDAwMDAwMDsKICAgICB9CgogRXhhbXBsZSAyOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFRpbWVzdGFtcCArIER1cmF0aW9uIGluIHBzZXVkbyBjb2RlLgoKICAgICBUaW1lc3RhbXAgc3RhcnQgPSAuLi47CiAgICAgRHVyYXRpb24gZHVyYXRpb24gPSAuLi47CiAgICAgVGltZXN0YW1wIGVuZCA9IC4uLjsKCiAgICAgZW5kLnNlY29uZHMgPSBzdGFydC5zZWNvbmRzICsgZHVyYXRpb24uc2Vjb25kczsKICAgICBlbmQubmFub3MgPSBzdGFydC5uYW5vcyArIGR1cmF0aW9uLm5hbm9zOwoKICAgICBpZiAoZW5kLm5hbm9zIDwgMCkgewogICAgICAgZW5kLnNlY29uZHMgLT0gMTsKICAgICAgIGVuZC5uYW5vcyArPSAxMDAwMDAwMDAwOwogICAgIH0gZWxzZSBpZiAoZW5kLm5hbm9zID49IDEwMDAwMDAwMDApIHsKICAgICAgIGVuZC5zZWNvbmRzICs9IDE7CiAgICAgICBlbmQubmFub3MgLT0gMTAwMDAwMDAwMDsKICAgICB9CgogRXhhbXBsZSAzOiBDb21wdXRlIER1cmF0aW9uIGZyb20gZGF0ZXRpbWUudGltZWRlbHRhIGluIFB5dGhvbi4KCiAgICAgdGQgPSBkYXRldGltZS50aW1lZGVsdGEoZGF5cz0zLCBtaW51dGVzPTEwKQogICAgIGR1cmF0aW9uID0gRHVyYXRpb24oKQogICAgIGR1cmF0aW9uLkZyb21UaW1lZGVsdGEodGQpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIER1cmF0aW9uIHR5cGUgaXMgZW5jb2RlZCBhcyBhIHN0cmluZyByYXRoZXIgdGhhbiBhbgogb2JqZWN0LCB3aGVyZSB0aGUgc3RyaW5nIGVuZHMgaW4gdGhlIHN1ZmZpeCAicyIgKGluZGljYXRpbmcgc2Vjb25kcykgYW5kCiBpcyBwcmVjZWRlZCBieSB0aGUgbnVtYmVyIG9mIHNlY29uZHMsIHdpdGggbmFub3NlY29uZHMgZXhwcmVzc2VkIGFzCiBmcmFjdGlvbmFsIHNlY29uZHMuIEZvciBleGFtcGxlLCAzIHNlY29uZHMgd2l0aCAwIG5hbm9zZWNvbmRzIHNob3VsZCBiZQogZW5jb2RlZCBpbiBKU09OIGZvcm1hdCBhcyAiM3MiLCB3aGlsZSAzIHNlY29uZHMgYW5kIDEgbmFub3NlY29uZCBzaG91bGQKIGJlIGV4cHJlc3NlZCBpbiBKU09OIGZvcm1hdCBhcyAiMy4wMDAwMDAwMDFzIiwgYW5kIDMgc2Vjb25kcyBhbmQgMQogbWljcm9zZWNvbmQgc2hvdWxkIGJlIGV4cHJlc3NlZCBpbiBKU09OIGZvcm1hdCBhcyAiMy4wMDAwMDFzIi4KCgoKCgMEAAESA2UIEArcAQoEBAACABIDaQIUGs4BIFNpZ25lZCBzZWNvbmRzIG9mIHRoZSBzcGFuIG9mIHRpbWUuIE11c3QgYmUgZnJvbSAtMzE1LDU3NiwwMDAsMDAwCiB0byArMzE1LDU3NiwwMDAsMDAwIGluY2x1c2l2ZS4gTm90ZTogdGhlc2UgYm91bmRzIGFyZSBjb21wdXRlZCBmcm9tOgogNjAgc2VjL21pbiAqIDYwIG1pbi9ociAqIDI0IGhyL2RheSAqIDM2NS4yNSBkYXlzL3llYXIgKiAxMDAwMCB5ZWFycwoKDAoFBAACAAUSA2kCBwoMCgUEAAIAARIDaQgPCgwKBQQAAgADEgNpEhMKgwMKBAQAAgESA3ECEhr1AiBTaWduZWQgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbiBvZiB0aGUgc3Bhbgogb2YgdGltZS4gRHVyYXRpb25zIGxlc3MgdGhhbiBvbmUgc2Vjb25kIGFyZSByZXByZXNlbnRlZCB3aXRoIGEgMAogYHNlY29uZHNgIGZpZWxkIGFuZCBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGBuYW5vc2AgZmllbGQuIEZvciBkdXJhdGlvbnMKIG9mIG9uZSBzZWNvbmQgb3IgbW9yZSwgYSBub24temVybyB2YWx1ZSBmb3IgdGhlIGBuYW5vc2AgZmllbGQgbXVzdCBiZQogb2YgdGhlIHNhbWUgc2lnbiBhcyB0aGUgYHNlY29uZHNgIGZpZWxkLiBNdXN0IGJlIGZyb20gLTk5OSw5OTksOTk5CiB0byArOTk5LDk5OSw5OTkgaW5jbHVzaXZlLgoKDAoFBAACAQUSA3ECBwoMCgUEAAIBARIDcQgNCgwKBQQAAgEDEgNxEBFiBnByb3RvMwr/EQobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvEg9nb29nbGUucHJvdG9idWYiBwoFRW1wdHlCfQoTY29tLmdvb2dsZS5wcm90b2J1ZkIKRW1wdHlQcm90b1ABWi5nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9lbXB0eXBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSr4QCgYSBB4AMhAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiAEUKCQoCCAsSAyIARQoICgEIEgMjACwKCQoCCAESAyMALAoICgEIEgMkACsKCQoCCAgSAyQAKwoICgEIEgMlACIKCQoCCAoSAyUAIgoICgEIEgMmACEKCQoCCCQSAyYAIQoICgEIEgMnADsKCQoCCCUSAycAOwoICgEIEgMoAB8KCQoCCB8SAygAHwq7AgoCBAASAzIAEBqvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCgoKCgMEAAESAzIIDWIGcHJvdG8zCoo9CiBnb29nbGUvcHJvdG9idWYvZmllbGRfbWFzay5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiEKCUZpZWxkTWFzaxIUCgVwYXRocxgBIAMoCVIFcGF0aHNChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDkZpZWxkTWFza1Byb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2ZpZWxkbWFza3Bi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSqE7CgcSBR4A9AEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAsCgkKAggBEgMiACwKCAoBCBIDIwAvCgkKAggIEgMjAC8KCAoBCBIDJAAiCgkKAggKEgMkACIKCAoBCBIDJQAhCgkKAggkEgMlACEKCAoBCBIDJgA7CgkKAgglEgMmADsKCAoBCBIDJwBJCgkKAggLEgMnAEkKCAoBCBIDKAAfCgkKAggfEgMoAB8KsiwKAgQAEgbxAQD0AQEaoywgYEZpZWxkTWFza2AgcmVwcmVzZW50cyBhIHNldCBvZiBzeW1ib2xpYyBmaWVsZCBwYXRocywgZm9yIGV4YW1wbGU6CgogICAgIHBhdGhzOiAiZi5hIgogICAgIHBhdGhzOiAiZi5iLmQiCgogSGVyZSBgZmAgcmVwcmVzZW50cyBhIGZpZWxkIGluIHNvbWUgcm9vdCBtZXNzYWdlLCBgYWAgYW5kIGBiYAogZmllbGRzIGluIHRoZSBtZXNzYWdlIGZvdW5kIGluIGBmYCwgYW5kIGBkYCBhIGZpZWxkIGZvdW5kIGluIHRoZQogbWVzc2FnZSBpbiBgZi5iYC4KCiBGaWVsZCBtYXNrcyBhcmUgdXNlZCB0byBzcGVjaWZ5IGEgc3Vic2V0IG9mIGZpZWxkcyB0aGF0IHNob3VsZCBiZQogcmV0dXJuZWQgYnkgYSBnZXQgb3BlcmF0aW9uIG9yIG1vZGlmaWVkIGJ5IGFuIHVwZGF0ZSBvcGVyYXRpb24uCiBGaWVsZCBtYXNrcyBhbHNvIGhhdmUgYSBjdXN0b20gSlNPTiBlbmNvZGluZyAoc2VlIGJlbG93KS4KCiAjIEZpZWxkIE1hc2tzIGluIFByb2plY3Rpb25zCgogV2hlbiB1c2VkIGluIHRoZSBjb250ZXh0IG9mIGEgcHJvamVjdGlvbiwgYSByZXNwb25zZSBtZXNzYWdlIG9yCiBzdWItbWVzc2FnZSBpcyBmaWx0ZXJlZCBieSB0aGUgQVBJIHRvIG9ubHkgY29udGFpbiB0aG9zZSBmaWVsZHMgYXMKIHNwZWNpZmllZCBpbiB0aGUgbWFzay4gRm9yIGV4YW1wbGUsIGlmIHRoZSBtYXNrIGluIHRoZSBwcmV2aW91cwogZXhhbXBsZSBpcyBhcHBsaWVkIHRvIGEgcmVzcG9uc2UgbWVzc2FnZSBhcyBmb2xsb3dzOgoKICAgICBmIHsKICAgICAgIGEgOiAyMgogICAgICAgYiB7CiAgICAgICAgIGQgOiAxCiAgICAgICAgIHggOiAyCiAgICAgICB9CiAgICAgICB5IDogMTMKICAgICB9CiAgICAgejogOAoKIFRoZSByZXN1bHQgd2lsbCBub3QgY29udGFpbiBzcGVjaWZpYyB2YWx1ZXMgZm9yIGZpZWxkcyB4LHkgYW5kIHoKICh0aGVpciB2YWx1ZSB3aWxsIGJlIHNldCB0byB0aGUgZGVmYXVsdCwgYW5kIG9taXR0ZWQgaW4gcHJvdG8gdGV4dAogb3V0cHV0KToKCgogICAgIGYgewogICAgICAgYSA6IDIyCiAgICAgICBiIHsKICAgICAgICAgZCA6IDEKICAgICAgIH0KICAgICB9CgogQSByZXBlYXRlZCBmaWVsZCBpcyBub3QgYWxsb3dlZCBleGNlcHQgYXQgdGhlIGxhc3QgcG9zaXRpb24gb2YgYQogcGF0aHMgc3RyaW5nLgoKIElmIGEgRmllbGRNYXNrIG9iamVjdCBpcyBub3QgcHJlc2VudCBpbiBhIGdldCBvcGVyYXRpb24sIHRoZQogb3BlcmF0aW9uIGFwcGxpZXMgdG8gYWxsIGZpZWxkcyAoYXMgaWYgYSBGaWVsZE1hc2sgb2YgYWxsIGZpZWxkcwogaGFkIGJlZW4gc3BlY2lmaWVkKS4KCiBOb3RlIHRoYXQgYSBmaWVsZCBtYXNrIGRvZXMgbm90IG5lY2Vzc2FyaWx5IGFwcGx5IHRvIHRoZQogdG9wLWxldmVsIHJlc3BvbnNlIG1lc3NhZ2UuIEluIGNhc2Ugb2YgYSBSRVNUIGdldCBvcGVyYXRpb24sIHRoZQogZmllbGQgbWFzayBhcHBsaWVzIGRpcmVjdGx5IHRvIHRoZSByZXNwb25zZSwgYnV0IGluIGNhc2Ugb2YgYSBSRVNUCiBsaXN0IG9wZXJhdGlvbiwgdGhlIG1hc2sgaW5zdGVhZCBhcHBsaWVzIHRvIGVhY2ggaW5kaXZpZHVhbCBtZXNzYWdlCiBpbiB0aGUgcmV0dXJuZWQgcmVzb3VyY2UgbGlzdC4gSW4gY2FzZSBvZiBhIFJFU1QgY3VzdG9tIG1ldGhvZCwKIG90aGVyIGRlZmluaXRpb25zIG1heSBiZSB1c2VkLiBXaGVyZSB0aGUgbWFzayBhcHBsaWVzIHdpbGwgYmUKIGNsZWFybHkgZG9jdW1lbnRlZCB0b2dldGhlciB3aXRoIGl0cyBkZWNsYXJhdGlvbiBpbiB0aGUgQVBJLiAgSW4KIGFueSBjYXNlLCB0aGUgZWZmZWN0IG9uIHRoZSByZXR1cm5lZCByZXNvdXJjZS9yZXNvdXJjZXMgaXMgcmVxdWlyZWQKIGJlaGF2aW9yIGZvciBBUElzLgoKICMgRmllbGQgTWFza3MgaW4gVXBkYXRlIE9wZXJhdGlvbnMKCiBBIGZpZWxkIG1hc2sgaW4gdXBkYXRlIG9wZXJhdGlvbnMgc3BlY2lmaWVzIHdoaWNoIGZpZWxkcyBvZiB0aGUKIHRhcmdldGVkIHJlc291cmNlIGFyZSBnb2luZyB0byBiZSB1cGRhdGVkLiBUaGUgQVBJIGlzIHJlcXVpcmVkCiB0byBvbmx5IGNoYW5nZSB0aGUgdmFsdWVzIG9mIHRoZSBmaWVsZHMgYXMgc3BlY2lmaWVkIGluIHRoZSBtYXNrCiBhbmQgbGVhdmUgdGhlIG90aGVycyB1bnRvdWNoZWQuIElmIGEgcmVzb3VyY2UgaXMgcGFzc2VkIGluIHRvCiBkZXNjcmliZSB0aGUgdXBkYXRlZCB2YWx1ZXMsIHRoZSBBUEkgaWdub3JlcyB0aGUgdmFsdWVzIG9mIGFsbAogZmllbGRzIG5vdCBjb3ZlcmVkIGJ5IHRoZSBtYXNrLgoKIElmIGEgcmVwZWF0ZWQgZmllbGQgaXMgc3BlY2lmaWVkIGZvciBhbiB1cGRhdGUgb3BlcmF0aW9uLCBuZXcgdmFsdWVzIHdpbGwKIGJlIGFwcGVuZGVkIHRvIHRoZSBleGlzdGluZyByZXBlYXRlZCBmaWVsZCBpbiB0aGUgdGFyZ2V0IHJlc291cmNlLiBOb3RlIHRoYXQKIGEgcmVwZWF0ZWQgZmllbGQgaXMgb25seSBhbGxvd2VkIGluIHRoZSBsYXN0IHBvc2l0aW9uIG9mIGEgYHBhdGhzYCBzdHJpbmcuCgogSWYgYSBzdWItbWVzc2FnZSBpcyBzcGVjaWZpZWQgaW4gdGhlIGxhc3QgcG9zaXRpb24gb2YgdGhlIGZpZWxkIG1hc2sgZm9yIGFuCiB1cGRhdGUgb3BlcmF0aW9uLCB0aGVuIG5ldyB2YWx1ZSB3aWxsIGJlIG1lcmdlZCBpbnRvIHRoZSBleGlzdGluZyBzdWItbWVzc2FnZQogaW4gdGhlIHRhcmdldCByZXNvdXJjZS4KCiBGb3IgZXhhbXBsZSwgZ2l2ZW4gdGhlIHRhcmdldCBtZXNzYWdlOgoKICAgICBmIHsKICAgICAgIGIgewogICAgICAgICBkOiAxCiAgICAgICAgIHg6IDIKICAgICAgIH0KICAgICAgIGM6IFsxXQogICAgIH0KCiBBbmQgYW4gdXBkYXRlIG1lc3NhZ2U6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEwCiAgICAgICB9CiAgICAgICBjOiBbMl0KICAgICB9CgogdGhlbiBpZiB0aGUgZmllbGQgbWFzayBpczoKCiAgcGF0aHM6IFsiZi5iIiwgImYuYyJdCgogdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmU6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEwCiAgICAgICAgIHg6IDIKICAgICAgIH0KICAgICAgIGM6IFsxLCAyXQogICAgIH0KCiBBbiBpbXBsZW1lbnRhdGlvbiBtYXkgcHJvdmlkZSBvcHRpb25zIHRvIG92ZXJyaWRlIHRoaXMgZGVmYXVsdCBiZWhhdmlvciBmb3IKIHJlcGVhdGVkIGFuZCBtZXNzYWdlIGZpZWxkcy4KCiBJbiBvcmRlciB0byByZXNldCBhIGZpZWxkJ3MgdmFsdWUgdG8gdGhlIGRlZmF1bHQsIHRoZSBmaWVsZCBtdXN0CiBiZSBpbiB0aGUgbWFzayBhbmQgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlIGluIHRoZSBwcm92aWRlZCByZXNvdXJjZS4KIEhlbmNlLCBpbiBvcmRlciB0byByZXNldCBhbGwgZmllbGRzIG9mIGEgcmVzb3VyY2UsIHByb3ZpZGUgYSBkZWZhdWx0CiBpbnN0YW5jZSBvZiB0aGUgcmVzb3VyY2UgYW5kIHNldCBhbGwgZmllbGRzIGluIHRoZSBtYXNrLCBvciBkbwogbm90IHByb3ZpZGUgYSBtYXNrIGFzIGRlc2NyaWJlZCBiZWxvdy4KCiBJZiBhIGZpZWxkIG1hc2sgaXMgbm90IHByZXNlbnQgb24gdXBkYXRlLCB0aGUgb3BlcmF0aW9uIGFwcGxpZXMgdG8KIGFsbCBmaWVsZHMgKGFzIGlmIGEgZmllbGQgbWFzayBvZiBhbGwgZmllbGRzIGhhcyBiZWVuIHNwZWNpZmllZCkuCiBOb3RlIHRoYXQgaW4gdGhlIHByZXNlbmNlIG9mIHNjaGVtYSBldm9sdXRpb24sIHRoaXMgbWF5IG1lYW4gdGhhdAogZmllbGRzIHRoZSBjbGllbnQgZG9lcyBub3Qga25vdyBhbmQgaGFzIHRoZXJlZm9yZSBub3QgZmlsbGVkIGludG8KIHRoZSByZXF1ZXN0IHdpbGwgYmUgcmVzZXQgdG8gdGhlaXIgZGVmYXVsdC4gSWYgdGhpcyBpcyB1bndhbnRlZAogYmVoYXZpb3IsIGEgc3BlY2lmaWMgc2VydmljZSBtYXkgcmVxdWlyZSBhIGNsaWVudCB0byBhbHdheXMgc3BlY2lmeQogYSBmaWVsZCBtYXNrLCBwcm9kdWNpbmcgYW4gZXJyb3IgaWYgbm90LgoKIEFzIHdpdGggZ2V0IG9wZXJhdGlvbnMsIHRoZSBsb2NhdGlvbiBvZiB0aGUgcmVzb3VyY2Ugd2hpY2gKIGRlc2NyaWJlcyB0aGUgdXBkYXRlZCB2YWx1ZXMgaW4gdGhlIHJlcXVlc3QgbWVzc2FnZSBkZXBlbmRzIG9uIHRoZQogb3BlcmF0aW9uIGtpbmQuIEluIGFueSBjYXNlLCB0aGUgZWZmZWN0IG9mIHRoZSBmaWVsZCBtYXNrIGlzCiByZXF1aXJlZCB0byBiZSBob25vcmVkIGJ5IHRoZSBBUEkuCgogIyMgQ29uc2lkZXJhdGlvbnMgZm9yIEhUVFAgUkVTVAoKIFRoZSBIVFRQIGtpbmQgb2YgYW4gdXBkYXRlIG9wZXJhdGlvbiB3aGljaCB1c2VzIGEgZmllbGQgbWFzayBtdXN0CiBiZSBzZXQgdG8gUEFUQ0ggaW5zdGVhZCBvZiBQVVQgaW4gb3JkZXIgdG8gc2F0aXNmeSBIVFRQIHNlbWFudGljcwogKFBVVCBtdXN0IG9ubHkgYmUgdXNlZCBmb3IgZnVsbCB1cGRhdGVzKS4KCiAjIEpTT04gRW5jb2Rpbmcgb2YgRmllbGQgTWFza3MKCiBJbiBKU09OLCBhIGZpZWxkIG1hc2sgaXMgZW5jb2RlZCBhcyBhIHNpbmdsZSBzdHJpbmcgd2hlcmUgcGF0aHMgYXJlCiBzZXBhcmF0ZWQgYnkgYSBjb21tYS4gRmllbGRzIG5hbWUgaW4gZWFjaCBwYXRoIGFyZSBjb252ZXJ0ZWQKIHRvL2Zyb20gbG93ZXItY2FtZWwgbmFtaW5nIGNvbnZlbnRpb25zLgoKIEFzIGFuIGV4YW1wbGUsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgbWVzc2FnZSBkZWNsYXJhdGlvbnM6CgogICAgIG1lc3NhZ2UgUHJvZmlsZSB7CiAgICAgICBVc2VyIHVzZXIgPSAxOwogICAgICAgUGhvdG8gcGhvdG8gPSAyOwogICAgIH0KICAgICBtZXNzYWdlIFVzZXIgewogICAgICAgc3RyaW5nIGRpc3BsYXlfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgYWRkcmVzcyA9IDI7CiAgICAgfQoKIEluIHByb3RvIGEgZmllbGQgbWFzayBmb3IgYFByb2ZpbGVgIG1heSBsb29rIGFzIHN1Y2g6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJ1c2VyLmRpc3BsYXlfbmFtZSIKICAgICAgIHBhdGhzOiAicGhvdG8iCiAgICAgfQoKIEluIEpTT04sIHRoZSBzYW1lIG1hc2sgaXMgcmVwcmVzZW50ZWQgYXMgYmVsb3c6CgogICAgIHsKICAgICAgIG1hc2s6ICJ1c2VyLmRpc3BsYXlOYW1lLHBob3RvIgogICAgIH0KCiAjIEZpZWxkIE1hc2tzIGFuZCBPbmVvZiBGaWVsZHMKCiBGaWVsZCBtYXNrcyB0cmVhdCBmaWVsZHMgaW4gb25lb2ZzIGp1c3QgYXMgcmVndWxhciBmaWVsZHMuIENvbnNpZGVyIHRoZQogZm9sbG93aW5nIG1lc3NhZ2U6CgogICAgIG1lc3NhZ2UgU2FtcGxlTWVzc2FnZSB7CiAgICAgICBvbmVvZiB0ZXN0X29uZW9mIHsKICAgICAgICAgc3RyaW5nIG5hbWUgPSA0OwogICAgICAgICBTdWJNZXNzYWdlIHN1Yl9tZXNzYWdlID0gOTsKICAgICAgIH0KICAgICB9CgogVGhlIGZpZWxkIG1hc2sgY2FuIGJlOgoKICAgICBtYXNrIHsKICAgICAgIHBhdGhzOiAibmFtZSIKICAgICB9CgogT3I6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJzdWJfbWVzc2FnZSIKICAgICB9CgogTm90ZSB0aGF0IG9uZW9mIHR5cGUgbmFtZXMgKCJ0ZXN0X29uZW9mIiBpbiB0aGlzIGNhc2UpIGNhbm5vdCBiZSB1c2VkIGluCiBwYXRocy4KCiAjIyBGaWVsZCBNYXNrIFZlcmlmaWNhdGlvbgoKIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBhbnkgQVBJIG1ldGhvZCB3aGljaCBoYXMgYSBGaWVsZE1hc2sgdHlwZSBmaWVsZCBpbiB0aGUKIHJlcXVlc3Qgc2hvdWxkIHZlcmlmeSB0aGUgaW5jbHVkZWQgZmllbGQgcGF0aHMsIGFuZCByZXR1cm4gYW4KIGBJTlZBTElEX0FSR1VNRU5UYCBlcnJvciBpZiBhbnkgcGF0aCBpcyB1bm1hcHBhYmxlLgoKCwoDBAABEgTxAQgRCiwKBAQAAgASBPMBAhwaHiBUaGUgc2V0IG9mIGZpZWxkIG1hc2sgcGF0aHMuCgoNCgUEAAIABBIE8wECCgoNCgUEAAIABRIE8wELEQoNCgUEAAIAARIE8wESFwoNCgUEAAIAAxIE8wEaG2IGcHJvdG8zCsQxCh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiOwoJVGltZXN0YW1wEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQoUBChNjb20uZ29vZ2xlLnByb3RvYnVmQg5UaW1lc3RhbXBQcm90b1ABWjJnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90aW1lc3RhbXBwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rCLwoHEgUeAI8BAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAHwoJCgIIHxIDIgAfCggKAQgSAyMASQoJCgIICxIDIwBJCggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUALwoJCgIICBIDJQAvCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCggKAQgSAygAOwoJCgIIJRIDKAA7CtsdCgIEABIGhAEAjwEBGswdIEEgVGltZXN0YW1wIHJlcHJlc2VudHMgYSBwb2ludCBpbiB0aW1lIGluZGVwZW5kZW50IG9mIGFueSB0aW1lIHpvbmUgb3IgbG9jYWwKIGNhbGVuZGFyLCBlbmNvZGVkIGFzIGEgY291bnQgb2Ygc2Vjb25kcyBhbmQgZnJhY3Rpb25zIG9mIHNlY29uZHMgYXQKIG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gVGhlIGNvdW50IGlzIHJlbGF0aXZlIHRvIGFuIGVwb2NoIGF0IFVUQyBtaWRuaWdodCBvbgogSmFudWFyeSAxLCAxOTcwLCBpbiB0aGUgcHJvbGVwdGljIEdyZWdvcmlhbiBjYWxlbmRhciB3aGljaCBleHRlbmRzIHRoZQogR3JlZ29yaWFuIGNhbGVuZGFyIGJhY2t3YXJkcyB0byB5ZWFyIG9uZS4KCiBBbGwgbWludXRlcyBhcmUgNjAgc2Vjb25kcyBsb25nLiBMZWFwIHNlY29uZHMgYXJlICJzbWVhcmVkIiBzbyB0aGF0IG5vIGxlYXAKIHNlY29uZCB0YWJsZSBpcyBuZWVkZWQgZm9yIGludGVycHJldGF0aW9uLCB1c2luZyBhIFsyNC1ob3VyIGxpbmVhcgogc21lYXJdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3RpbWUvc21lYXIpLgoKIFRoZSByYW5nZSBpcyBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvIDk5OTktMTItMzFUMjM6NTk6NTkuOTk5OTk5OTk5Wi4gQnkKIHJlc3RyaWN0aW5nIHRvIHRoYXQgcmFuZ2UsIHdlIGVuc3VyZSB0aGF0IHdlIGNhbiBjb252ZXJ0IHRvIGFuZCBmcm9tIFtSRkMKIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZGF0ZSBzdHJpbmdzLgoKICMgRXhhbXBsZXMKCiBFeGFtcGxlIDE6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYHRpbWUoKWAuCgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHRpbWUoTlVMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoMCk7CgogRXhhbXBsZSAyOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGBnZXR0aW1lb2ZkYXkoKWAuCgogICAgIHN0cnVjdCB0aW1ldmFsIHR2OwogICAgIGdldHRpbWVvZmRheSgmdHYsIE5VTEwpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0di50dl9zZWMpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3ModHYudHZfdXNlYyAqIDEwMDApOwoKIEV4YW1wbGUgMzogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBXaW4zMiBgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoKWAuCgogICAgIEZJTEVUSU1FIGZ0OwogICAgIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCZmdCk7CiAgICAgVUlOVDY0IHRpY2tzID0gKCgoVUlOVDY0KWZ0LmR3SGlnaERhdGVUaW1lKSA8PCAzMikgfCBmdC5kd0xvd0RhdGVUaW1lOwoKICAgICAvLyBBIFdpbmRvd3MgdGljayBpcyAxMDAgbmFub3NlY29uZHMuIFdpbmRvd3MgZXBvY2ggMTYwMS0wMS0wMVQwMDowMDowMFoKICAgICAvLyBpcyAxMTY0NDQ3MzYwMCBzZWNvbmRzIGJlZm9yZSBVbml4IGVwb2NoIDE5NzAtMDEtMDFUMDA6MDA6MDBaLgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKChJTlQ2NCkgKCh0aWNrcyAvIDEwMDAwMDAwKSAtIDExNjQ0NDczNjAwTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKChJTlQzMikgKCh0aWNrcyAlIDEwMDAwMDAwKSAqIDEwMCkpOwoKIEV4YW1wbGUgNDogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBKYXZhIGBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKWAuCgogICAgIGxvbmcgbWlsbGlzID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXAgPSBUaW1lc3RhbXAubmV3QnVpbGRlcigpLnNldFNlY29uZHMobWlsbGlzIC8gMTAwMCkKICAgICAgICAgLnNldE5hbm9zKChpbnQpICgobWlsbGlzICUgMTAwMCkgKiAxMDAwMDAwKSkuYnVpbGQoKTsKCiBFeGFtcGxlIDU6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gSmF2YSBgSW5zdGFudC5ub3coKWAuCgogICAgIEluc3RhbnQgbm93ID0gSW5zdGFudC5ub3coKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcCA9CiAgICAgICAgIFRpbWVzdGFtcC5uZXdCdWlsZGVyKCkuc2V0U2Vjb25kcyhub3cuZ2V0RXBvY2hTZWNvbmQoKSkKICAgICAgICAgICAgIC5zZXROYW5vcyhub3cuZ2V0TmFubygpKS5idWlsZCgpOwoKIEV4YW1wbGUgNjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBjdXJyZW50IHRpbWUgaW4gUHl0aG9uLgoKICAgICB0aW1lc3RhbXAgPSBUaW1lc3RhbXAoKQogICAgIHRpbWVzdGFtcC5HZXRDdXJyZW50VGltZSgpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIFRpbWVzdGFtcCB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgaW4gdGhlCiBbUkZDIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZm9ybWF0LiBUaGF0IGlzLCB0aGUKIGZvcm1hdCBpcyAie3llYXJ9LXttb250aH0te2RheX1Ue2hvdXJ9OnttaW59OntzZWN9Wy57ZnJhY19zZWN9XVoiCiB3aGVyZSB7eWVhcn0gaXMgYWx3YXlzIGV4cHJlc3NlZCB1c2luZyBmb3VyIGRpZ2l0cyB3aGlsZSB7bW9udGh9LCB7ZGF5fSwKIHtob3VyfSwge21pbn0sIGFuZCB7c2VjfSBhcmUgemVyby1wYWRkZWQgdG8gdHdvIGRpZ2l0cyBlYWNoLiBUaGUgZnJhY3Rpb25hbAogc2Vjb25kcywgd2hpY2ggY2FuIGdvIHVwIHRvIDkgZGlnaXRzIChpLmUuIHVwIHRvIDEgbmFub3NlY29uZCByZXNvbHV0aW9uKSwKIGFyZSBvcHRpb25hbC4gVGhlICJaIiBzdWZmaXggaW5kaWNhdGVzIHRoZSB0aW1lem9uZSAoIlVUQyIpOyB0aGUgdGltZXpvbmUKIGlzIHJlcXVpcmVkLiBBIHByb3RvMyBKU09OIHNlcmlhbGl6ZXIgc2hvdWxkIGFsd2F5cyB1c2UgVVRDIChhcyBpbmRpY2F0ZWQgYnkKICJaIikgd2hlbiBwcmludGluZyB0aGUgVGltZXN0YW1wIHR5cGUgYW5kIGEgcHJvdG8zIEpTT04gcGFyc2VyIHNob3VsZCBiZQogYWJsZSB0byBhY2NlcHQgYm90aCBVVEMgYW5kIG90aGVyIHRpbWV6b25lcyAoYXMgaW5kaWNhdGVkIGJ5IGFuIG9mZnNldCkuCgogRm9yIGV4YW1wbGUsICIyMDE3LTAxLTE1VDAxOjMwOjE1LjAxWiIgZW5jb2RlcyAxNS4wMSBzZWNvbmRzIHBhc3QKIDAxOjMwIFVUQyBvbiBKYW51YXJ5IDE1LCAyMDE3LgoKIEluIEphdmFTY3JpcHQsIG9uZSBjYW4gY29udmVydCBhIERhdGUgb2JqZWN0IHRvIHRoaXMgZm9ybWF0IHVzaW5nIHRoZQogc3RhbmRhcmQKIFt0b0lTT1N0cmluZygpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlL3RvSVNPU3RyaW5nKQogbWV0aG9kLiBJbiBQeXRob24sIGEgc3RhbmRhcmQgYGRhdGV0aW1lLmRhdGV0aW1lYCBvYmplY3QgY2FuIGJlIGNvbnZlcnRlZAogdG8gdGhpcyBmb3JtYXQgdXNpbmcKIFtgc3RyZnRpbWVgXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvdGltZS5odG1sI3RpbWUuc3RyZnRpbWUpIHdpdGgKIHRoZSB0aW1lIGZvcm1hdCBzcGVjICclWS0lbS0lZFQlSDolTTolUy4lZlonLiBMaWtld2lzZSwgaW4gSmF2YSwgb25lIGNhbiB1c2UKIHRoZSBKb2RhIFRpbWUncyBbYElTT0RhdGVUaW1lRm9ybWF0LmRhdGVUaW1lKClgXSgKIGh0dHA6Ly93d3cuam9kYS5vcmcvam9kYS10aW1lL2FwaWRvY3Mvb3JnL2pvZGEvdGltZS9mb3JtYXQvSVNPRGF0ZVRpbWVGb3JtYXQuaHRtbCNkYXRlVGltZSUyRCUyRAogKSB0byBvYnRhaW4gYSBmb3JtYXR0ZXIgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgaW4gdGhpcyBmb3JtYXQuCgoKCwoDBAABEgSEAQgRCp0BCgQEAAIAEgSIAQIUGo4BIFJlcHJlc2VudHMgc2Vjb25kcyBvZiBVVEMgdGltZSBzaW5jZSBVbml4IGVwb2NoCiAxOTcwLTAxLTAxVDAwOjAwOjAwWi4gTXVzdCBiZSBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvCiA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmUuCgoNCgUEAAIABRIEiAECBwoNCgUEAAIAARIEiAEIDwoNCgUEAAIAAxIEiAESEwrlAQoEBAACARIEjgECEhrWASBOb24tbmVnYXRpdmUgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gTmVnYXRpdmUKIHNlY29uZCB2YWx1ZXMgd2l0aCBmcmFjdGlvbnMgbXVzdCBzdGlsbCBoYXZlIG5vbi1uZWdhdGl2ZSBuYW5vcyB2YWx1ZXMKIHRoYXQgY291bnQgZm9yd2FyZCBpbiB0aW1lLiBNdXN0IGJlIGZyb20gMCB0byA5OTksOTk5LDk5OQogaW5jbHVzaXZlLgoKDQoFBAACAQUSBI4BAgcKDQoFBAACAQESBI4BCA0KDQoFBAACAQMSBI4BEBFiBnByb3RvMwrNIwoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnByb3RvEg9nb29nbGUucHJvdG9idWYiIwoLRG91YmxlVmFsdWUSFAoFdmFsdWUYASABKAFSBXZhbHVlIiIKCkZsb2F0VmFsdWUSFAoFdmFsdWUYASABKAJSBXZhbHVlIiIKCkludDY0VmFsdWUSFAoFdmFsdWUYASABKANSBXZhbHVlIiMKC1VJbnQ2NFZhbHVlEhQKBXZhbHVlGAEgASgEUgV2YWx1ZSIiCgpJbnQzMlZhbHVlEhQKBXZhbHVlGAEgASgFUgV2YWx1ZSIjCgtVSW50MzJWYWx1ZRIUCgV2YWx1ZRgBIAEoDVIFdmFsdWUiIQoJQm9vbFZhbHVlEhQKBXZhbHVlGAEgASgIUgV2YWx1ZSIjCgtTdHJpbmdWYWx1ZRIUCgV2YWx1ZRgBIAEoCVIFdmFsdWUiIgoKQnl0ZXNWYWx1ZRIUCgV2YWx1ZRgBIAEoDFIFdmFsdWVCgwEKE2NvbS5nb29nbGUucHJvdG9idWZCDVdyYXBwZXJzUHJvdG9QAVoxZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vd3JhcHBlcnNwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rEHwoGEgQoAHoBCtkQCgEMEgMoABIyzhAgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogV3JhcHBlcnMgZm9yIHByaW1pdGl2ZSAobm9uLW1lc3NhZ2UpIHR5cGVzLiBUaGVzZSB0eXBlcyBhcmUgdXNlZnVsCiBmb3IgZW1iZWRkaW5nIHByaW1pdGl2ZXMgaW4gdGhlIGBnb29nbGUucHJvdG9idWYuQW55YCB0eXBlIGFuZCBmb3IgcGxhY2VzCiB3aGVyZSB3ZSBuZWVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIGFic2VuY2Ugb2YgYSBwcmltaXRpdmUKIHR5cGVkIGZpZWxkIGFuZCBpdHMgZGVmYXVsdCB2YWx1ZS4KCiBUaGVzZSB3cmFwcGVycyBoYXZlIG5vIG1lYW5pbmdmdWwgdXNlIHdpdGhpbiByZXBlYXRlZCBmaWVsZHMgYXMgdGhleSBsYWNrCiB0aGUgYWJpbGl0eSB0byBkZXRlY3QgcHJlc2VuY2Ugb24gaW5kaXZpZHVhbCBlbGVtZW50cy4KIFRoZXNlIHdyYXBwZXJzIGhhdmUgbm8gbWVhbmluZ2Z1bCB1c2Ugd2l0aGluIGEgbWFwIG9yIGEgb25lb2Ygc2luY2UKIGluZGl2aWR1YWwgZW50cmllcyBvZiBhIG1hcCBvciBmaWVsZHMgb2YgYSBvbmVvZiBjYW4gYWxyZWFkeSBkZXRlY3QgcHJl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c3RyaW5nLgoKCgoDBAgBEgN3CBIKHwoEBAgCABIDeQISGhIgVGhlIGJ5dGVzIHZhbHVlLgoKDAoFBAgCAAUSA3kCBwoMCgUECAIAARIDeQgNCgwKBQQIAgADEgN5EBFiBnByb3RvMwrqbQovZ29vZ2xlL3Byb3RvYnVmL3VuaXR0ZXN0X3dlbGxfa25vd25fdHlwZXMucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0Ghlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGhlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvGh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxogZ29vZ2xlL3Byb3RvYnVmL2ZpZWxkX21hc2sucHJvdG8aJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90byK0CQoSVGVzdFdlbGxLbm93blR5cGVzEjEKCWFueV9maWVsZBgBIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSCGFueUZpZWxkEjEKCWFwaV9maWVsZBgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSCGFwaUZpZWxkEkAKDmR1cmF0aW9uX2ZpZWxkGAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUg1kdXJhdGlvbkZpZWxkEjcKC2VtcHR5X2ZpZWxkGAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgplbXB0eUZpZWxkEkQKEGZpZWxkX21hc2tfZmllbGQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUg5maWVsZE1hc2tGaWVsZBJQChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UhJzb3VyY2VDb250ZXh0RmllbGQSOgoMc3RydWN0X2ZpZWxkGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFILc3RydWN0RmllbGQSQwoPdGltZXN0YW1wX2ZpZWxkGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIOdGltZXN0YW1wRmllbGQSNAoKdHlwZV9maWVsZBgJIAEoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlUgl0eXBlRmllbGQSPwoMZG91YmxlX2ZpZWxkGAogASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgtkb3VibGVGaWVsZBI8CgtmbG9hdF9maWVsZBgLIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUgpmbG9hdEZpZWxkEjwKC2ludDY0X2ZpZWxkGAwgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSCmludDY0RmllbGQSPwoMdWludDY0X2ZpZWxkGA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUgt1aW50NjRGaWVsZBI8CgtpbnQzMl9maWVsZBgOIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUgppbnQzMkZpZWxkEj8KDHVpbnQzMl9maWVsZBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVILdWludDMyRmllbGQSOQoKYm9vbF9maWVsZBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSCWJvb2xGaWVsZBI/CgxzdHJpbmdfZmllbGQYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSC3N0cmluZ0ZpZWxkEjwKC2J5dGVzX2ZpZWxkGBIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSCmJ5dGVzRmllbGQSNwoLdmFsdWVfZmllbGQYEyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSCnZhbHVlRmllbGQi/wgKFlJlcGVhdGVkV2VsbEtub3duVHlwZXMSMQoJYW55X2ZpZWxkGAEgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIIYW55RmllbGQSMQoJYXBpX2ZpZWxkGAIgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFwaVIIYXBpRmllbGQSQAoOZHVyYXRpb25fZmllbGQYAyADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SDWR1cmF0aW9uRmllbGQSNwoLZW1wdHlfZmllbGQYBCADKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSCmVtcHR5RmllbGQSRAoQZmllbGRfbWFza19maWVsZBgFIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSDmZpZWxkTWFza0ZpZWxkElAKFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgAygLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSEnNvdXJjZUNvbnRleHRGaWVsZBI6CgxzdHJ1Y3RfZmllbGQYByADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0UgtzdHJ1Y3RGaWVsZBJDCg90aW1lc3RhbXBfZmllbGQYCCADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUg50aW1lc3RhbXBGaWVsZBI0Cgp0eXBlX2ZpZWxkGAkgAygLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVSCXR5cGVGaWVsZBI/Cgxkb3VibGVfZmllbGQYCiADKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSC2RvdWJsZUZpZWxkEjwKC2Zsb2F0X2ZpZWxkGAsgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSCmZsb2F0RmllbGQSPAoLaW50NjRfZmllbGQYDCADKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIKaW50NjRGaWVsZBI/Cgx1aW50NjRfZmllbGQYDSADKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSC3VpbnQ2NEZpZWxkEjwKC2ludDMyX2ZpZWxkGA4gAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSCmludDMyRmllbGQSPwoMdWludDMyX2ZpZWxkGA8gAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUgt1aW50MzJGaWVsZBI5Cgpib29sX2ZpZWxkGBAgAygLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZVIJYm9vbEZpZWxkEj8KDHN0cmluZ19maWVsZBgRIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVILc3RyaW5nRmllbGQSPAoLYnl0ZXNfZmllbGQYEiADKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIKYnl0ZXNGaWVsZCKvCQoTT25lb2ZXZWxsS25vd25UeXBlcxIzCglhbnlfZmllbGQYASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55SABSCGFueUZpZWxkEjMKCWFwaV9maWVsZBgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlIAFIIYXBpRmllbGQSQgoOZHVyYXRpb25fZmllbGQYAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25IAFINZHVyYXRpb25GaWVsZBI5CgtlbXB0eV9maWVsZBgEIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eUgAUgplbXB0eUZpZWxkEkYKEGZpZWxkX21hc2tfZmllbGQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrSABSDmZpZWxkTWFza0ZpZWxkElIKFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRIAFISc291cmNlQ29udGV4dEZpZWxkEjwKDHN0cnVjdF9maWVsZBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAFILc3RydWN0RmllbGQSRQoPdGltZXN0YW1wX2ZpZWxkGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAUg50aW1lc3RhbXBGaWVsZBI2Cgp0eXBlX2ZpZWxkGAkgASgLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVIAFIJdHlwZUZpZWxkEkEKDGRvdWJsZV9maWVsZBgKIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZUgAUgtkb3VibGVGaWVsZBI+CgtmbG9hdF9maWVsZBgLIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlSABSCmZsb2F0RmllbGQSPgoLaW50NjRfZmllbGQYDCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZUgAUgppbnQ2NEZpZWxkEkEKDHVpbnQ2NF9maWVsZBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZUgAUgt1aW50NjRGaWVsZBI+CgtpbnQzMl9maWVsZBgOIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlSABSCmludDMyRmllbGQSQQoMdWludDMyX2ZpZWxkGA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlSABSC3VpbnQzMkZpZWxkEjsKCmJvb2xfZmllbGQYECABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlSABSCWJvb2xGaWVsZBJBCgxzdHJpbmdfZmllbGQYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVIAFILc3RyaW5nRmllbGQSPgoLYnl0ZXNfZmllbGQYEiABKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZUgAUgpieXRlc0ZpZWxkQg0KC29uZW9mX2ZpZWxkItgZChFNYXBXZWxsS25vd25UeXBlcxJPCglhbnlfZmllbGQYASADKAsyMi5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5BbnlGaWVsZEVudHJ5UghhbnlGaWVsZBJPCglhcGlfZmllbGQYAiADKAsyMi5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5BcGlGaWVsZEVudHJ5UghhcGlGaWVsZBJeCg5kdXJhdGlvbl9maWVsZBgDIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkR1cmF0aW9uRmllbGRFbnRyeVINZHVyYXRpb25GaWVsZBJVCgtlbXB0eV9maWVsZBgEIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkVtcHR5RmllbGRFbnRyeVIKZW1wdHlGaWVsZBJiChBmaWVsZF9tYXNrX2ZpZWxkGAUgAygLMjgucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRmllbGRNYXNrRmllbGRFbnRyeVIOZmllbGRNYXNrRmllbGQSbgoUc291cmNlX2NvbnRleHRfZmllbGQYBiADKAsyPC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Tb3VyY2VDb250ZXh0RmllbGRFbnRyeVISc291cmNlQ29udGV4dEZpZWxkElgKDHN0cnVjdF9maWVsZBgHIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlN0cnVjdEZpZWxkRW50cnlSC3N0cnVjdEZpZWxkEmEKD3RpbWVzdGFtcF9maWVsZBgIIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlRpbWVzdGFtcEZpZWxkRW50cnlSDnRpbWVzdGFtcEZpZWxkElIKCnR5cGVfZmllbGQYCSADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5UeXBlRmllbGRFbnRyeVIJdHlwZUZpZWxkElgKDGRvdWJsZV9maWVsZBgKIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkRvdWJsZUZpZWxkRW50cnlSC2RvdWJsZUZpZWxkElUKC2Zsb2F0X2ZpZWxkGAsgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRmxvYXRGaWVsZEVudHJ5UgpmbG9hdEZpZWxkElUKC2ludDY0X2ZpZWxkGAwgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuSW50NjRGaWVsZEVudHJ5UgppbnQ2NEZpZWxkElgKDHVpbnQ2NF9maWVsZBgNIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlVpbnQ2NEZpZWxkRW50cnlSC3VpbnQ2NEZpZWxkElUKC2ludDMyX2ZpZWxkGA4gAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuSW50MzJGaWVsZEVudHJ5UgppbnQzMkZpZWxkElgKDHVpbnQzMl9maWVsZBgPIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlVpbnQzMkZpZWxkRW50cnlSC3VpbnQzMkZpZWxkElIKCmJvb2xfZmllbGQYECADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Cb29sRmllbGRFbnRyeVIJYm9vbEZpZWxkElgKDHN0cmluZ19maWVsZBgRIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlN0cmluZ0ZpZWxkRW50cnlSC3N0cmluZ0ZpZWxkElUKC2J5dGVzX2ZpZWxkGBIgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQnl0ZXNGaWVsZEVudHJ5UgpieXRlc0ZpZWxkGlEKDUFueUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgV2YWx1ZToCOAEaUQoNQXBpRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSBXZhbHVlOgI4ARpbChJEdXJhdGlvbkZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSLwoFdmFsdWUYAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SBXZhbHVlOgI4ARpVCg9FbXB0eUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBXZhbHVlOgI4ARpdChNGaWVsZE1hc2tGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjAKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IFdmFsdWU6AjgBGmUKF1NvdXJjZUNvbnRleHRGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjQKBXZhbHVlGAIgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSBXZhbHVlOgI4ARpXChBTdHJ1Y3RGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5Ei0KBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIFdmFsdWU6AjgBGl0KE1RpbWVzdGFtcEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMAoFdmFsdWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgV2YWx1ZToCOAEaUwoOVHlwZUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKwoFdmFsdWUYAiABKAsyFS5nb29nbGUucHJvdG9idWYuVHlwZVIFdmFsdWU6AjgBGlwKEERvdWJsZUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSBXZhbHVlOgI4ARpaCg9GbG9hdEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIFdmFsdWU6AjgBGloKD0ludDY0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUgV2YWx1ZToCOAEaXAoQVWludDY0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIyCgV2YWx1ZRgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIFdmFsdWU6AjgBGloKD0ludDMyRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUgV2YWx1ZToCOAEaXAoQVWludDMyRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIyCgV2YWx1ZRgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIFdmFsdWU6AjgBGlgKDkJvb2xGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjAKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZVIFdmFsdWU6AjgBGlwKEFN0cmluZ0ZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSBXZhbHVlOgI4ARpaCg9CeXRlc0ZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIFdmFsdWU6AjgBQjkKGGNvbS5nb29nbGUucHJvdG9idWYudGVzdFABqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK5DQKBxIFHgCPAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT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Hmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90byKZWwoSVGVzdEFsbFR5cGVzUHJvdG8zEiUKDm9wdGlvbmFsX2ludDMyGAEgASgFUg1vcHRpb25hbEludDMyEiUKDm9wdGlvbmFsX2ludDY0GAIgASgDUg1vcHRpb25hbEludDY0EicKD29wdGlvbmFsX3VpbnQzMhgDIAEoDVIOb3B0aW9uYWxVaW50MzISJwoPb3B0aW9uYWxfdWludDY0GAQgASgEUg5vcHRpb25hbFVpbnQ2NBInCg9vcHRpb25hbF9zaW50MzIYBSABKBFSDm9wdGlvbmFsU2ludDMyEicKD29wdGlvbmFsX3NpbnQ2NBgGIAEoElIOb3B0aW9uYWxTaW50NjQSKQoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoB1IPb3B0aW9uYWxGaXhlZDMyEikKEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZSD29wdGlvbmFsRml4ZWQ2NBIrChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoD1IQb3B0aW9uYWxTZml4ZWQzMhIrChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEFIQb3B0aW9uYWxTZml4ZWQ2NBIlCg5vcHRpb25hbF9mbG9hdBgLIAEoAlINb3B0aW9uYWxGbG9hdBInCg9vcHRpb25hbF9kb3VibGUYDCABKAFSDm9wdGlvbmFsRG91YmxlEiMKDW9wdGlvbmFsX2Jvb2wYDSABKAhSDG9wdGlvbmFsQm9vbBInCg9vcHRpb25hbF9zdHJpbmcYDiABKAlSDm9wdGlvbmFsU3RyaW5nEiUKDm9wdGlvbmFsX2J5dGVzGA8gASgMUg1vcHRpb25hbEJ5dGVzEncKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRJnChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyLS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduTWVzc2FnZVIWb3B0aW9uYWxGb3JlaWduTWVzc2FnZRJuChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtUhJvcHRpb25hbE5lc3RlZEVudW0SXgoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMioucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbkVudW1SE29wdGlvbmFsRm9yZWlnbkVudW0ScQoVb3B0aW9uYWxfYWxpYXNlZF9lbnVtGBcgASgOMj0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLkFsaWFzZWRFbnVtUhNvcHRpb25hbEFsaWFzZWRFbnVtEjYKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAJSE29wdGlvbmFsU3RyaW5nUGllY2USJwoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAFSDG9wdGlvbmFsQ29yZBJeChFyZWN1cnNpdmVfbWVzc2FnZRgbIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvM1IQcmVjdXJzaXZlTWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJ3ChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USZwoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMi0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbk1lc3NhZ2VSFnJlcGVhdGVkRm9yZWlnbk1lc3NhZ2USbgoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVIScmVwZWF0ZWROZXN0ZWRFbnVtEl4KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUhNyZXBlYXRlZEZvcmVpZ25FbnVtEjYKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAJSE3JlcGVhdGVkU3RyaW5nUGllY2USJwoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAFSDHJlcGVhdGVkQ29yZBIlCgxwYWNrZWRfaW50MzIYSyADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYTCADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGE0gAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYTiADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhhPIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GFAgAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGFEgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GFQgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GFUgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhWIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhXIAMoCEICEAFSCnBhY2tlZEJvb2wSbgoScGFja2VkX25lc3RlZF9lbnVtGFggAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1CAhABUhBwYWNrZWROZXN0ZWRFbnVtEikKDnVucGFja2VkX2ludDMyGFkgAygFQgIQAFINdW5wYWNrZWRJbnQzMhIpCg51bnBhY2tlZF9pbnQ2NBhaIAMoA0ICEABSDXVucGFja2VkSW50NjQSKwoPdW5wYWNrZWRfdWludDMyGFsgAygNQgIQAFIOdW5wYWNrZWRVaW50MzISKwoPdW5wYWNrZWRfdWludDY0GFwgAygEQgIQAFIOdW5wYWNrZWRVaW50NjQSKwoPdW5wYWNrZWRfc2ludDMyGF0gAygRQgIQAFIOdW5wYWNrZWRTaW50MzISKwoPdW5wYWNrZWRfc2ludDY0GF4gAygSQgIQAFIOdW5wYWNrZWRTaW50NjQSLQoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoB0ICEABSD3VucGFja2VkRml4ZWQzMhItChB1bnBhY2tlZF9maXhlZDY0GGAgAygGQgIQAFIPdW5wYWNrZWRGaXhlZDY0Ei8KEXVucGFja2VkX3NmaXhlZDMyGGEgAygPQgIQAFIQdW5wYWNrZWRTZml4ZWQzMhIvChF1bnBhY2tlZF9zZml4ZWQ2NBhiIAMoEEICEABSEHVucGFja2VkU2ZpeGVkNjQSKQoOdW5wYWNrZWRfZmxvYXQYYyADKAJCAhAAUg11bnBhY2tlZEZsb2F0EisKD3VucGFja2VkX2RvdWJsZRhkIAMoAUICEABSDnVucGFja2VkRG91YmxlEicKDXVucGFja2VkX2Jvb2wYZSADKAhCAhAAUgx1bnBhY2tlZEJvb2wScgoUdW5wYWNrZWRfbmVzdGVkX2VudW0YZiADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bUICEABSEnVucGFja2VkTmVzdGVkRW51bRJsCg9tYXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJJbnQzMkVudHJ5Ug1tYXBJbnQzMkludDMyEmwKD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQ2NEludDY0RW50cnlSDW1hcEludDY0SW50NjQScgoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwVWludDMyVWludDMyRW50cnlSD21hcFVpbnQzMlVpbnQzMhJyChFtYXBfdWludDY0X3VpbnQ2NBg7IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBVaW50NjRVaW50NjRFbnRyeVIPbWFwVWludDY0VWludDY0EnIKEW1hcF9zaW50MzJfc2ludDMyGDwgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ug9tYXBTaW50MzJTaW50MzIScgoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU2ludDY0U2ludDY0RW50cnlSD21hcFNpbnQ2NFNpbnQ2NBJ4ChNtYXBfZml4ZWQzMl9maXhlZDMyGD4gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEZpeGVkMzJGaXhlZDMyRW50cnlSEW1hcEZpeGVkMzJGaXhlZDMyEngKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeVIRbWFwRml4ZWQ2NEZpeGVkNjQSfgoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGEAgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeVITbWFwU2ZpeGVkMzJTZml4ZWQzMhJ+ChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYQSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5UhNtYXBTZml4ZWQ2NFNmaXhlZDY0EmwKD21hcF9pbnQzMl9mbG9hdBhCIAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQzMkZsb2F0RW50cnlSDW1hcEludDMyRmxvYXQSbwoQbWFwX2ludDMyX2RvdWJsZRhDIAMoCzJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQzMkRvdWJsZUVudHJ5Ug5tYXBJbnQzMkRvdWJsZRJmCg1tYXBfYm9vbF9ib29sGEQgAygLMkIucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEJvb2xCb29sRW50cnlSC21hcEJvb2xCb29sEnIKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ1N0cmluZ0VudHJ5Ug9tYXBTdHJpbmdTdHJpbmcSbwoQbWFwX3N0cmluZ19ieXRlcxhGIAMoCzJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdCeXRlc0VudHJ5Ug5tYXBTdHJpbmdCeXRlcxKIAQoZbWFwX3N0cmluZ19uZXN0ZWRfbWVzc2FnZRhHIAMoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnlSFm1hcFN0cmluZ05lc3RlZE1lc3NhZ2USiwEKGm1hcF9zdHJpbmdfZm9yZWlnbl9tZXNzYWdlGEggAygLMk4ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnlSF21hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlEn8KFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5UhNtYXBTdHJpbmdOZXN0ZWRFbnVtEoIBChdtYXBfc3RyaW5nX2ZvcmVpZ25fZW51bRhKIAMoCzJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5UhRtYXBTdHJpbmdGb3JlaWduRW51bRIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzIScwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZUgAUhJvbmVvZk5lc3RlZE1lc3NhZ2USIwoMb25lb2Zfc3RyaW5nGHEgASgJSABSC29uZW9mU3RyaW5nEiEKC29uZW9mX2J5dGVzGHIgASgMSABSCm9uZW9mQnl0ZXMSHwoKb25lb2ZfYm9vbBhzIAEoCEgAUglvbmVvZkJvb2wSIwoMb25lb2ZfdWludDY0GHQgASgESABSC29uZW9mVWludDY0EiEKC29uZW9mX2Zsb2F0GHUgASgCSABSCm9uZW9mRmxvYXQSIwoMb25lb2ZfZG91YmxlGHYgASgBSABSC29uZW9mRG91YmxlEl0KCm9uZW9mX2VudW0YdyABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bUgAUglvbmVvZkVudW0SRgoQb25lb2ZfbnVsbF92YWx1ZRh4IAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVIAFIOb25lb2ZOdWxsVmFsdWUSTwoVb3B0aW9uYWxfYm9vbF93cmFwcGVyGMkBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSE29wdGlvbmFsQm9vbFdyYXBwZXISUgoWb3B0aW9uYWxfaW50MzJfd3JhcHBlchjKASABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIUb3B0aW9uYWxJbnQzMldyYXBwZXISUgoWb3B0aW9uYWxfaW50NjRfd3JhcHBlchjLASABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIUb3B0aW9uYWxJbnQ2NFdyYXBwZXISVQoXb3B0aW9uYWxfdWludDMyX3dyYXBwZXIYzAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUhVvcHRpb25hbFVpbnQzMldyYXBwZXISVQoXb3B0aW9uYWxfdWludDY0X3dyYXBwZXIYzQEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUhVvcHRpb25hbFVpbnQ2NFdyYXBwZXISUgoWb3B0aW9uYWxfZmxvYXRfd3JhcHBlchjOASABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIUb3B0aW9uYWxGbG9hdFdyYXBwZXISVQoXb3B0aW9uYWxfZG91YmxlX3dyYXBwZXIYzwEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUhVvcHRpb25hbERvdWJsZVdyYXBwZXISVQoXb3B0aW9uYWxfc3RyaW5nX3dyYXBwZXIY0AEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUhVvcHRpb25hbFN0cmluZ1dyYXBwZXISUgoWb3B0aW9uYWxfYnl0ZXNfd3JhcHBlchjRASABKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIUb3B0aW9uYWxCeXRlc1dyYXBwZXISTwoVcmVwZWF0ZWRfYm9vbF93cmFwcGVyGNMBIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSE3JlcGVhdGVkQm9vbFdyYXBwZXISUgoWcmVwZWF0ZWRfaW50MzJfd3JhcHBlchjUASADKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIUcmVwZWF0ZWRJbnQzMldyYXBwZXISUgoWcmVwZWF0ZWRfaW50NjRfd3JhcHBlchjVASADKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIUcmVwZWF0ZWRJbnQ2NFdyYXBwZXISVQoXcmVwZWF0ZWRfdWludDMyX3dyYXBwZXIY1gEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUhVyZXBlYXRlZFVpbnQzMldyYXBwZXISVQoXcmVwZWF0ZWRfdWludDY0X3dyYXBwZXIY1wEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUhVyZXBlYXRlZFVpbnQ2NFdyYXBwZXISUgoWcmVwZWF0ZWRfZmxvYXRfd3JhcHBlchjYASADKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIUcmVwZWF0ZWRGbG9hdFdyYXBwZXISVQoXcmVwZWF0ZWRfZG91YmxlX3dyYXBwZXIY2QEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUhVyZXBlYXRlZERvdWJsZVdyYXBwZXISVQoXcmVwZWF0ZWRfc3RyaW5nX3dyYXBwZXIY2gEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUhVyZXBlYXRlZFN0cmluZ1dyYXBwZXISUgoWcmVwZWF0ZWRfYnl0ZXNfd3JhcHBlchjbASADKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIUcmVwZWF0ZWRCeXRlc1dyYXBwZXISRwoRb3B0aW9uYWxfZHVyYXRpb24YrQIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUhBvcHRpb25hbER1cmF0aW9uEkoKEm9wdGlvbmFsX3RpbWVzdGFtcBiuAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUhFvcHRpb25hbFRpbWVzdGFtcBJLChNvcHRpb25hbF9maWVsZF9tYXNrGK8CIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSEW9wdGlvbmFsRmllbGRNYXNrEkEKD29wdGlvbmFsX3N0cnVjdBiwAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ug5vcHRpb25hbFN0cnVjdBI4CgxvcHRpb25hbF9hbnkYsQIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVILb3B0aW9uYWxBbnkSPgoOb3B0aW9uYWxfdmFsdWUYsgIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUg1vcHRpb25hbFZhbHVlEksKE29wdGlvbmFsX251bGxfdmFsdWUYswIgASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZVIRb3B0aW9uYWxOdWxsVmFsdWUSRwoRcmVwZWF0ZWRfZHVyYXRpb24YtwIgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUhByZXBlYXRlZER1cmF0aW9uEkoKEnJlcGVhdGVkX3RpbWVzdGFtcBi4AiADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUhFyZXBlYXRlZFRpbWVzdGFtcBJKChJyZXBlYXRlZF9maWVsZG1hc2sYuQIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IRcmVwZWF0ZWRGaWVsZG1hc2sSQQoPcmVwZWF0ZWRfc3RydWN0GMQCIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSDnJlcGVhdGVkU3RydWN0EjgKDHJlcGVhdGVkX2FueRi7AiADKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgtyZXBlYXRlZEFueRI+Cg5yZXBlYXRlZF92YWx1ZRi8AiADKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSDXJlcGVhdGVkVmFsdWUSSwoTcmVwZWF0ZWRfbGlzdF92YWx1ZRi9AiADKAsyGi5nb29nbGUucHJvdG9idWYuTGlzdFZhbHVlUhFyZXBlYXRlZExpc3RWYWx1ZRIfCgpmaWVsZG5hbWUxGJEDIAEoBVIKZmllbGRuYW1lMRIgCgtmaWVsZF9uYW1lMhiSAyABKAVSCmZpZWxkTmFtZTISIQoMX2ZpZWxkX25hbWUzGJMDIAEoBVIKRmllbGROYW1lMxIiCg1maWVsZF9fbmFtZTRfGJQDIAEoBVIKZmllbGROYW1lNBIhCgtmaWVsZDBuYW1lNRiVAyABKAVSC2ZpZWxkMG5hbWU1EiMKDWZpZWxkXzBfbmFtZTYYlgMgASgFUgtmaWVsZDBOYW1lNhIfCgpmaWVsZE5hbWU3GJcDIAEoBVIKZmllbGROYW1lNxIfCgpGaWVsZE5hbWU4GJgDIAEoBVIKRmllbGROYW1lOBIgCgtmaWVsZF9OYW1lORiZAyABKAVSCmZpZWxkTmFtZTkSIgoMRmllbGRfTmFtZTEwGJoDIAEoBVILRmllbGROYW1lMTASIgoMRklFTERfTkFNRTExGJsDIAEoBVILRklFTEROQU1FMTESIgoMRklFTERfbmFtZTEyGJwDIAEoBVILRklFTEROYW1lMTISJAoOX19maWVsZF9uYW1lMTMYnQMgASgFUgtGaWVsZE5hbWUxMxIkCg5fX0ZpZWxkX25hbWUxNBieAyABKAVSC0ZpZWxkTmFtZTE0EiMKDWZpZWxkX19uYW1lMTUYnwMgASgFUgtmaWVsZE5hbWUxNRIjCg1maWVsZF9fTmFtZTE2GKADIAEoBVILZmllbGROYW1lMTYSJAoOZmllbGRfbmFtZTE3X18YoQMgASgFUgtmaWVsZE5hbWUxNxIkCg5GaWVsZF9uYW1lMThfXxiiAyABKAVSC0ZpZWxkTmFtZTE4GnIKDU5lc3RlZE1lc3NhZ2USDAoBYRgBIAEoBVIBYRJTCgtjb3JlY3Vyc2l2ZRgCIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvM1ILY29yZWN1cnNpdmUaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpBChNNYXBTdHJpbmdCeXRlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgMUgV2YWx1ZToCOAEaigEKG01hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJVCgV2YWx1ZRgCIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUgV2YWx1ZToCOAEaeQocTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJDCgV2YWx1ZRgCIAEoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlUgV2YWx1ZToCOAEahAEKGE1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJSCgV2YWx1ZRgCIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtUgV2YWx1ZToCOAEacwoZTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJACgV2YWx1ZRgCIAEoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUgV2YWx1ZToCOAEiOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASJZCgtBbGlhc2VkRW51bRINCglBTElBU19GT08QABINCglBTElBU19CQVIQARINCglBTElBU19CQVoQAhIHCgNNT08QAhIHCgNtb28QAhIHCgNiQXoQAhoCEAFCDQoLb25lb2ZfZmllbGRKBgj1AxD/AyIeCg5Gb3JlaWduTWVzc2FnZRIMCgFjGAEgASgFUgFjIhYKFE51bGxIeXBvdGhlc2lzUHJvdG8zIi8KDkVudW1Pbmx5UHJvdG8zIh0KBEJvb2wSCgoGa0ZhbHNlEAASCQoFa1RydWUQASpACgtGb3JlaWduRW51bRIPCgtGT1JFSUdOX0ZPTxAAEg8KC0ZPUkVJR05fQkFSEAESDwoLRk9SRUlHTl9CQVoQAkI4Cihjb20uZ29vZ2xlLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zSAH4AQGiAgZQcm90bzNKkXIKBxIFJQCfAgEKwA0KAQwSAyUAEjK1DSBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJ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Zml4ZWQzMhgJIAEoD1IQb3B0aW9uYWxTZml4ZWQzMhIrChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEFIQb3B0aW9uYWxTZml4ZWQ2NBIlCg5vcHRpb25hbF9mbG9hdBgLIAEoAlINb3B0aW9uYWxGbG9hdBInCg9vcHRpb25hbF9kb3VibGUYDCABKAFSDm9wdGlvbmFsRG91YmxlEiMKDW9wdGlvbmFsX2Jvb2wYDSABKAhSDG9wdGlvbmFsQm9vbBInCg9vcHRpb25hbF9zdHJpbmcYDiABKAlSDm9wdGlvbmFsU3RyaW5nEiUKDm9wdGlvbmFsX2J5dGVzGA8gASgMUg1vcHRpb25hbEJ5dGVzEncKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRJtChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIWb3B0aW9uYWxGb3JlaWduTWVzc2FnZRJuChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUhJvcHRpb25hbE5lc3RlZEVudW0SZAoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSE29wdGlvbmFsRm9yZWlnbkVudW0SNgoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAlITb3B0aW9uYWxTdHJpbmdQaWVjZRInCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIAVIMb3B0aW9uYWxDb3JkEl4KEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yUhByZWN1cnNpdmVNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEncKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSFXJlcGVhdGVkTmVzdGVkTWVzc2FnZRJtChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJuChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUhJyZXBlYXRlZE5lc3RlZEVudW0SZAoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSE3JlcGVhdGVkRm9yZWlnbkVudW0SNgoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAlITcmVwZWF0ZWRTdHJpbmdQaWVjZRInCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIAVIMcmVwZWF0ZWRDb3JkEiUKDHBhY2tlZF9pbnQzMhhLIAMoBUICEAFSC3BhY2tlZEludDMyEiUKDHBhY2tlZF9pbnQ2NBhMIAMoA0ICEAFSC3BhY2tlZEludDY0EicKDXBhY2tlZF91aW50MzIYTSADKA1CAhABUgxwYWNrZWRVaW50MzISJwoNcGFja2VkX3VpbnQ2NBhOIAMoBEICEAFSDHBhY2tlZFVpbnQ2NBInCg1wYWNrZWRfc2ludDMyGE8gAygRQgIQAVIMcGFja2VkU2ludDMyEicKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABUgxwYWNrZWRTaW50NjQSKQoOcGFja2VkX2ZpeGVkMzIYUSADKAdCAhABUg1wYWNrZWRGaXhlZDMyEikKDnBhY2tlZF9maXhlZDY0GFIgAygGQgIQAVINcGFja2VkRml4ZWQ2NBIrCg9wYWNrZWRfc2ZpeGVkMzIYUyADKA9CAhABUg5wYWNrZWRTZml4ZWQzMhIrCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABUg5wYWNrZWRTZml4ZWQ2NBIlCgxwYWNrZWRfZmxvYXQYVSADKAJCAhABUgtwYWNrZWRGbG9hdBInCg1wYWNrZWRfZG91YmxlGFYgAygBQgIQAVIMcGFja2VkRG91YmxlEiMKC3BhY2tlZF9ib29sGFcgAygIQgIQAVIKcGFja2VkQm9vbBJuChJwYWNrZWRfbmVzdGVkX2VudW0YWCADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bUICEAFSEHBhY2tlZE5lc3RlZEVudW0SKQoOdW5wYWNrZWRfaW50MzIYWSADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFogAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYWyADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXCADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXiADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGF8gAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYCADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhlIAMoCEICEABSDHVucGFja2VkQm9vbBJyChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQAFISdW5wYWNrZWROZXN0ZWRFbnVtEmwKD21hcF9pbnQzMl9pbnQzMhg4IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkludDMyRW50cnlSDW1hcEludDMySW50MzISbAoPbWFwX2ludDY0X2ludDY0GDkgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJyChFtYXBfdWludDMyX3VpbnQzMhg6IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBVaW50MzJVaW50MzJFbnRyeVIPbWFwVWludDMyVWludDMyEnIKEW1hcF91aW50NjRfdWludDY0GDsgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5Ug9tYXBVaW50NjRVaW50NjQScgoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJyChFtYXBfc2ludDY0X3NpbnQ2NBg9IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTaW50NjRTaW50NjRFbnRyeVIPbWFwU2ludDY0U2ludDY0EngKE21hcF9maXhlZDMyX2ZpeGVkMzIYPiADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeVIRbWFwRml4ZWQzMkZpeGVkMzISeAoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBg/IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJ+ChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5UhNtYXBTZml4ZWQzMlNmaXhlZDMyEn4KFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnlSE21hcFNmaXhlZDY0U2ZpeGVkNjQSbAoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJvChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRG91YmxlRW50cnlSDm1hcEludDMyRG91YmxlEmYKDW1hcF9ib29sX2Jvb2wYRCADKAsyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwQm9vbEJvb2xFbnRyeVILbWFwQm9vbEJvb2wScgoRbWFwX3N0cmluZ19zdHJpbmcYRSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJvChBtYXBfc3RyaW5nX2J5dGVzGEYgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0J5dGVzRW50cnlSDm1hcFN0cmluZ0J5dGVzEogBChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeVIWbWFwU3RyaW5nTmVzdGVkTWVzc2FnZRKLAQoabWFwX3N0cmluZ19mb3JlaWduX21lc3NhZ2UYSCADKAsyTi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeVIXbWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2USfwoWbWFwX3N0cmluZ19uZXN0ZWRfZW51bRhJIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnlSE21hcFN0cmluZ05lc3RlZEVudW0SggEKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnlSFG1hcFN0cmluZ0ZvcmVpZ25FbnVtEiMKDG9uZW9mX3VpbnQzMhhvIAEoDUgAUgtvbmVvZlVpbnQzMhJzChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxIfCgpvbmVvZl9ib29sGHMgASgISABSCW9uZW9mQm9vbBIjCgxvbmVvZl91aW50NjQYdCABKARIAFILb25lb2ZVaW50NjQSIQoLb25lb2ZfZmxvYXQYdSABKAJIAFIKb25lb2ZGbG9hdBIjCgxvbmVvZl9kb3VibGUYdiABKAFIAFILb25lb2ZEb3VibGUSXQoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtSABSCW9uZW9mRW51bRJLCgRkYXRhGMkBIAEoCjI2LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5EYXRhUgRkYXRhEjAKDWRlZmF1bHRfaW50MzIY8QEgASgFOgotMTIzNDU2Nzg5UgxkZWZhdWx0SW50MzISOgoNZGVmYXVsdF9pbnQ2NBjyASABKAM6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5UgxkZWZhdWx0SW50NjQSMgoOZGVmYXVsdF91aW50MzIY8wEgASgNOgoyMTIzNDU2Nzg5Ug1kZWZhdWx0VWludDMyEjwKDmRlZmF1bHRfdWludDY0GPQBIAEoBDoUMTAxMjM0NTY3ODkxMjM0NTY3ODlSDWRlZmF1bHRVaW50NjQSMgoOZGVmYXVsdF9zaW50MzIY9QEgASgROgotMTIzNDU2Nzg5Ug1kZWZhdWx0U2ludDMyEjwKDmRlZmF1bHRfc2ludDY0GPYBIAEoEjoULTkxMjM0NTY3ODkxMjM0NTY3ODlSDWRlZmF1bHRTaW50NjQSNAoPZGVmYXVsdF9maXhlZDMyGPcBIAEoBzoKMjEyMzQ1Njc4OVIOZGVmYXVsdEZpeGVkMzISPgoPZGVmYXVsdF9maXhlZDY0GPgBIAEoBjoUMTAxMjM0NTY3ODkxMjM0NTY3ODlSDmRlZmF1bHRGaXhlZDY0EjYKEGRlZmF1bHRfc2ZpeGVkMzIY+QEgASgPOgotMTIzNDU2Nzg5Ug9kZWZhdWx0U2ZpeGVkMzISQAoQZGVmYXVsdF9zZml4ZWQ2NBj6ASABKBA6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5Ug9kZWZhdWx0U2ZpeGVkNjQSKwoNZGVmYXVsdF9mbG9hdBj7ASABKAI6BTllKzA5UgxkZWZhdWx0RmxvYXQSLQoOZGVmYXVsdF9kb3VibGUY/AEgASgBOgU3ZSsyMlINZGVmYXVsdERvdWJsZRIoCgxkZWZhdWx0X2Jvb2wY/QEgASgIOgR0cnVlUgtkZWZhdWx0Qm9vbBIvCg5kZWZhdWx0X3N0cmluZxj+ASABKAk6B1Jvc2VidWRSDWRlZmF1bHRTdHJpbmcSLAoNZGVmYXVsdF9ieXRlcxj/ASABKAw6Bmpvc2h1YVIMZGVmYXVsdEJ5dGVzEh8KCmZpZWxkbmFtZTEYkQMgASgFUgpmaWVsZG5hbWUxEiAKC2ZpZWxkX25hbWUyGJIDIAEoBVIKZmllbGROYW1lMhIhCgxfZmllbGRfbmFtZTMYkwMgASgFUgpGaWVsZE5hbWUzEiIKDWZpZWxkX19uYW1lNF8YlAMgASgFUgpmaWVsZE5hbWU0EiEKC2ZpZWxkMG5hbWU1GJUDIAEoBVILZmllbGQwbmFtZTUSIwoNZmllbGRfMF9uYW1lNhiWAyABKAVSC2ZpZWxkME5hbWU2Eh8KCmZpZWxkTmFtZTcYlwMgASgFUgpmaWVsZE5hbWU3Eh8KCkZpZWxkTmFtZTgYmAMgASgFUgpGaWVsZE5hbWU4EiAKC2ZpZWxkX05hbWU5GJkDIAEoBVIKZmllbGROYW1lORIiCgxGaWVsZF9OYW1lMTAYmgMgASgFUgtGaWVsZE5hbWUxMBIiCgxGSUVMRF9OQU1FMTEYmwMgASgFUgtGSUVMRE5BTUUxMRIiCgxGSUVMRF9uYW1lMTIYnAMgASgFUgtGSUVMRE5hbWUxMhIkCg5fX2ZpZWxkX25hbWUxMxidAyABKAVSC0ZpZWxkTmFtZTEzEiQKDl9fRmllbGRfbmFtZTE0GJ4DIAEoBVILRmllbGROYW1lMTQSIwoNZmllbGRfX25hbWUxNRifAyABKAVSC2ZpZWxkTmFtZTE1EiMKDWZpZWxkX19OYW1lMTYYoAMgASgFUgtmaWVsZE5hbWUxNhIkCg5maWVsZF9uYW1lMTdfXxihAyABKAVSC2ZpZWxkTmFtZTE3EiQKDkZpZWxkX25hbWUxOF9fGKIDIAEoBVILRmllbGROYW1lMTgacgoNTmVzdGVkTWVzc2FnZRIMCgFhGAEgASgFUgFhElMKC2NvcmVjdXJzaXZlGAIgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yUgtjb3JlY3Vyc2l2ZRpAChJNYXBJbnQzMkludDMyRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAVSBXZhbHVlOgI4ARpAChJNYXBJbnQ2NEludDY0RW50cnkSEAoDa2V5GAEgASgDUgNrZXkSFAoFdmFsdWUYAiABKANSBXZhbHVlOgI4ARpCChRNYXBVaW50MzJVaW50MzJFbnRyeRIQCgNrZXkYASABKA1SA2tleRIUCgV2YWx1ZRgCIAEoDVIFdmFsdWU6AjgBGkIKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EhAKA2tleRgBIAEoBFIDa2V5EhQKBXZhbHVlGAIgASgEUgV2YWx1ZToCOAEaQgoUTWFwU2ludDMyU2ludDMyRW50cnkSEAoDa2V5GAEgASgRUgNrZXkSFAoFdmFsdWUYAiABKBFSBXZhbHVlOgI4ARpCChRNYXBTaW50NjRTaW50NjRFbnRyeRIQCgNrZXkYASABKBJSA2tleRIUCgV2YWx1ZRgCIAEoElIFdmFsdWU6AjgBGkQKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAdSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoBlIDa2V5EhQKBXZhbHVlGAIgASgGUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoD1IDa2V5EhQKBXZhbHVlGAIgASgPUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoEFIDa2V5EhQKBXZhbHVlGAIgASgQUgV2YWx1ZToCOAEaQAoSTWFwSW50MzJGbG9hdEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEaQQoTTWFwSW50MzJEb3VibGVFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAVIFdmFsdWU6AjgBGj4KEE1hcEJvb2xCb29sRW50cnkSEAoDa2V5GAEgASgIUgNrZXkSFAoFdmFsdWUYAiABKAhSBXZhbHVlOgI4ARpCChRNYXBTdHJpbmdTdHJpbmdFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBGkEKE01hcFN0cmluZ0J5dGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARqKAQobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElUKBXZhbHVlGAIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSBXZhbHVlOgI4ARp/ChxNYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkkKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSBXZhbHVlOgI4ARqEAQoYTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElIKBXZhbHVlGAIgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1SBXZhbHVlOgI4ARp5ChlNYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkYKBXZhbHVlGAIgASgOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSBXZhbHVlOgI4ARpMCgREYXRhEiAKC2dyb3VwX2ludDMyGMoBIAEoBVIKZ3JvdXBJbnQzMhIiCgxncm91cF91aW50MzIYywEgASgNUgtncm91cFVpbnQzMhohChFNZXNzYWdlU2V0Q29ycmVjdCoICAQQ/////wc6AggBGvoBChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjESEAoDc3RyGBkgASgJUgNzdHIyyAEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBj5u14gASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMVITbWVzc2FnZVNldEV4dGVuc2lvbhr3AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yEgwKAWkYCSABKAVSAWkyyQEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBiQs/wBIAEoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjJSE21lc3NhZ2VTZXRFeHRlbnNpb24iOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASoFCHgQyQFCDQoLb25lb2ZfZmllbGRKBgjoBxCQTiIkChRGb3JlaWduTWVzc2FnZVByb3RvMhIMCgFjGAEgASgFUgFjIp4DChVVbmtub3duVG9UZXN0QWxsVHlwZXMSJgoOb3B0aW9uYWxfaW50MzIY6QcgASgFUg1vcHRpb25hbEludDMyEigKD29wdGlvbmFsX3N0cmluZxjqByABKAlSDm9wdGlvbmFsU3RyaW5nElsKDm5lc3RlZF9tZXNzYWdlGOsHIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUg1uZXN0ZWRNZXNzYWdlEmkKDW9wdGlvbmFsZ3JvdXAY7AcgASgKMkIucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVW5rbm93blRvVGVzdEFsbFR5cGVzLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXASJAoNb3B0aW9uYWxfYm9vbBjuByABKAhSDG9wdGlvbmFsQm9vbBImCg5yZXBlYXRlZF9pbnQzMhjzByADKAVSDXJlcGVhdGVkSW50MzIaHQoNT3B0aW9uYWxHcm91cBIMCgFhGAEgASgFUgFhIhYKFE51bGxIeXBvdGhlc2lzUHJvdG8yIi8KDkVudW1Pbmx5UHJvdG8yIh0KBEJvb2wSCgoGa0ZhbHNlEAASCQoFa1RydWUQASIlCg9PbmVTdHJpbmdQcm90bzISEgoEZGF0YRgBIAEoCVIEZGF0YSJhChFQcm90b1dpdGhLZXl3b3JkcxIWCgZpbmxpbmUYASABKAVSBmlubGluZRIYCgdjb25jZXB0GAIgASgJUgdjb25jZXB0EhoKCHJlcXVpcmVzGAMgAygJUghyZXF1aXJlcypGChFGb3JlaWduRW51bVByb3RvMhIPCgtGT1JFSUdOX0ZPTxAAEg8KC0ZPUkVJR05fQkFSEAESDwoLRk9SRUlHTl9CQVoQAjpaCg9leHRlbnNpb25faW50MzISMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIYeCABKAVSDmV4dGVuc2lvbkludDMyQjgKKGNvbS5nb29nbGUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzJIAfgBAaICBlByb3RvMkqQfQoHEgUlAK4CAQq6DQoBDBIDJQASMpkNIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKIFRlc3Qgc2NoZW1hIGZvciBwcm90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cHJvdG8zX29wdGlvbmFsLnByb3RvEhFwcm90b2J1Zl91bml0dGVzdBogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8ijw0KElRlc3RQcm90bzNPcHRpb25hbBIqCg5vcHRpb25hbF9pbnQzMhgBIAEoBUgAUg1vcHRpb25hbEludDMyiAEBEioKDm9wdGlvbmFsX2ludDY0GAIgASgDSAFSDW9wdGlvbmFsSW50NjSIAQESLAoPb3B0aW9uYWxfdWludDMyGAMgASgNSAJSDm9wdGlvbmFsVWludDMyiAEBEiwKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBEgDUg5vcHRpb25hbFVpbnQ2NIgBARIsCg9vcHRpb25hbF9zaW50MzIYBSABKBFIBFIOb3B0aW9uYWxTaW50MzKIAQESLAoPb3B0aW9uYWxfc2ludDY0GAYgASgSSAVSDm9wdGlvbmFsU2ludDY0iAEBEi4KEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdIBlIPb3B0aW9uYWxGaXhlZDMyiAEBEi4KEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZIB1IPb3B0aW9uYWxGaXhlZDY0iAEBEjAKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPSAhSEG9wdGlvbmFsU2ZpeGVkMzKIAQESMAoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBICVIQb3B0aW9uYWxTZml4ZWQ2NIgBARIqCg5vcHRpb25hbF9mbG9hdBgLIAEoAkgKUg1vcHRpb25hbEZsb2F0iAEBEiwKD29wdGlvbmFsX2RvdWJsZRgMIAEoAUgLUg5vcHRpb25hbERvdWJsZYgBARIoCg1vcHRpb25hbF9ib29sGA0gASgISAxSDG9wdGlvbmFsQm9vbIgBARIsCg9vcHRpb25hbF9zdHJpbmcYDiABKAlIDVIOb3B0aW9uYWxTdHJpbmeIAQESKgoOb3B0aW9uYWxfYnl0ZXMYDyABKAxIDlINb3B0aW9uYWxCeXRlc4gBARIsCg1vcHRpb25hbF9jb3JkGBAgASgJQgIIAUgPUgxvcHRpb25hbENvcmSIAQEScAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWwuTmVzdGVkTWVzc2FnZUgQUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2WIAQESbAoTbGF6eV9uZXN0ZWRfbWVzc2FnZRgTIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRNZXNzYWdlQgIoAUgRUhFsYXp5TmVzdGVkTWVzc2FnZYgBARJnChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIwLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRFbnVtSBJSEm9wdGlvbmFsTmVzdGVkRW51bYgBARIlCg5zaW5ndWxhcl9pbnQzMhgWIAEoBVINc2luZ3VsYXJJbnQzMhIlCg5zaW5ndWxhcl9pbnQ2NBgXIAEoA1INc2luZ3VsYXJJbnQ2NBorCg1OZXN0ZWRNZXNzYWdlEhMKAmJiGAEgASgFSABSAmJiiAEBQgUKA19iYiJKCgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCEQoPX29wdGlvbmFsX2ludDMyQhEKD19vcHRpb25hbF9pbnQ2NEISChBfb3B0aW9uYWxfdWludDMyQhIKEF9vcHRpb25hbF91aW50NjRCEgoQX29wdGlvbmFsX3NpbnQzMkISChBfb3B0aW9uYWxfc2ludDY0QhMKEV9vcHRpb25hbF9maXhlZDMyQhMKEV9vcHRpb25hbF9maXhlZDY0QhQKEl9vcHRpb25hbF9zZml4ZWQzMkIUChJfb3B0aW9uYWxfc2ZpeGVkNjRCEQoPX29wdGlvbmFsX2Zsb2F0QhIKEF9vcHRpb25hbF9kb3VibGVCEAoOX29wdGlvbmFsX2Jvb2xCEgoQX29wdGlvbmFsX3N0cmluZ0IRCg9fb3B0aW9uYWxfYnl0ZXNCEAoOX29wdGlvbmFsX2NvcmRCGgoYX29wdGlvbmFsX25lc3RlZF9tZXNzYWdlQhYKFF9sYXp5X25lc3RlZF9tZXNzYWdlQhcKFV9vcHRpb25hbF9uZXN0ZWRfZW51bSKyAgoZVGVzdFByb3RvM09wdGlvbmFsTWVzc2FnZRJhCg5uZXN0ZWRfbWVzc2FnZRgBIAEoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2UuTmVzdGVkTWVzc2FnZVINbmVzdGVkTWVzc2FnZRJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgCIAEoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2UuTmVzdGVkTWVzc2FnZUgAUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2WIAQEaHQoNTmVzdGVkTWVzc2FnZRIMCgFzGAEgASgJUgFzQhoKGF9vcHRpb25hbF9uZXN0ZWRfbWVzc2FnZSLJAQoYUHJvdG8zT3B0aW9uYWxFeHRlbnNpb25zMksKD2V4dF9ub19vcHRpb25hbBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiIzdmpASABKAVSDWV4dE5vT3B0aW9uYWwyUgoRZXh0X3dpdGhfb3B0aW9uYWwSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYic3ZqQEgASgFUg9leHRXaXRoT3B0aW9uYWyIAQE6DMDozM0KCMjozM0KEEI4CiFjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RpbmcucHJvdG9QAaoCEFByb3RvYnVmVW5pdHRlc3RKmyIKBhIEHgBkAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U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