CuEsChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJvChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWiVnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvYW55ogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoErCgcSBR4AmgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwA8CgkKAggLEgMjADwKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQApCgkKAggIEgMlACkKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEK5BAKAgQAEgV5AJoBARrWECBgQW55YCBjb250YWlucyBhbiBhcmJpdHJhcnkgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSBhbG9uZyB3aXRoIGEKIFVSTCB0aGF0IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBtZXNzYWdlLgoKIFByb3RvYnVmIGxpYnJhcnkgcHJvdmlkZXMgc3VwcG9ydCB0byBwYWNrL3VucGFjayBBbnkgdmFsdWVzIGluIHRoZSBmb3JtCiBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBvciBhZGRpdGlvbmFsIGdlbmVyYXRlZCBtZXRob2RzIG9mIHRoZSBBbnkgdHlwZS4KCiBFeGFtcGxlIDE6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gQysrLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnk7CiAgICAgYW55LlBhY2tGcm9tKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5VbnBhY2tUbygmZm9vKSkgewogICAgICAgLi4uCiAgICAgfQoKIEV4YW1wbGUgMjogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBKYXZhLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnkgPSBBbnkucGFjayhmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuaXMoRm9vLmNsYXNzKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uY2xhc3MpOwogICAgIH0KCiAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiAgRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IHB0eXBlcy5NYXJzaGFsQW55KGZvbykKICAgICAgLi4uCiAgICAgIGZvbyA6PSAmcGIuRm9ve30KICAgICAgaWYgZXJyIDo9IHB0eXBlcy5Vbm1hcnNoYWxBbnkoYW55LCBmb28pOyBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQoKIFRoZSBwYWNrIG1ldGhvZHMgcHJvdmlkZWQgYnkgcHJvdG9idWYgbGlicmFyeSB3aWxsIGJ5IGRlZmF1bHQgdXNlCiAndHlwZS5nb29nbGVhcGlzLmNvbS9mdWxsLnR5cGUubmFtZScgYXMgdGhlIHR5cGUgVVJMIGFuZCB0aGUgdW5wYWNrCiBtZXRob2RzIG9ubHkgdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lIGFmdGVyIHRoZSBsYXN0ICcvJwogaW4gdGhlIHR5cGUgVVJMLCBmb3IgZXhhbXBsZSAiZm9vLmJhci5jb20veC95LnoiIHdpbGwgeWllbGQgdHlwZQogbmFtZSAieS56Ii4KCgogSlNPTgogPT09PQogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gYEFueWAgdmFsdWUgdXNlcyB0aGUgcmVndWxhcgogcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbgogYWRkaXRpb25hbCBmaWVsZCBgQHR5cGVgIHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZToKCiAgICAgcGFja2FnZSBnb29nbGUucHJvZmlsZTsKICAgICBtZXNzYWdlIFBlcnNvbiB7CiAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgbGFzdF9uYW1lID0gMjsKICAgICB9CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvbiIsCiAgICAgICAiZmlyc3ROYW1lIjogPHN0cmluZz4sCiAgICAgICAibGFzdE5hbWUiOiA8c3RyaW5nPgogICAgIH0KCiBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OCiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkCiBgdmFsdWVgIHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgYEB0eXBlYAogZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOgoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb24iLAogICAgICAgInZhbHVlIjogIjEuMjEycyIKICAgICB9CgoKCgoDBAABEgN5CAsK1woKBAQAAgASBJYBAhYayAogQSBVUkwvcmVzb3VyY2UgbmFtZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQKIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLiBUaGlzIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QKIG9uZSAiLyIgY2hhcmFjdGVyLiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50CiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHR5cGUgKGFzIGluCiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0KIChlLmcuLCBsZWFkaW5nICIuIiBpcyBub3QgYWNjZXB0ZWQpLgoKIEluIHByYWN0aWNlLCB0ZWFtcyB1c3VhbGx5IHByZWNvbXBpbGUgaW50byB0aGUgYmluYXJ5IGFsbCB0eXBlcyB0aGF0IHRoZXkKIGV4cGVjdCBpdCB0byB1c2UgaW4gdGhlIGNvbnRleHQgb2YgQW55LiBIb3dldmVyLCBmb3IgVVJMcyB3aGljaCB1c2UgdGhlCiBzY2hlbWUgYGh0dHBgLCBgaHR0cHNgLCBvciBubyBzY2hlbWUsIG9uZSBjYW4gb3B0aW9uYWxseSBzZXQgdXAgYSB0eXBlCiBzZXJ2ZXIgdGhhdCBtYXBzIHR5cGUgVVJMcyB0byBtZXNzYWdlIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CgogKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4KICogQW4gSFRUUCBHRVQgb24gdGhlIFVSTCBtdXN0IHlpZWxkIGEgW2dvb2dsZS5wcm90b2J1Zi5UeXBlXVtdCiAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuCiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUKICAgVVJMLCBvciBoYXZlIHRoZW0gcHJlY29tcGlsZWQgaW50byBhIGJpbmFyeSB0byBhdm9pZCBhbnkKICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZAogICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZQogICBicmVha2luZyBjaGFuZ2VzLikKCiBOb3RlOiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIG9mZmljaWFsCiBwcm90b2J1ZiByZWxlYXNlLCBhbmQgaXQgaXMgbm90IHVzZWQgZm9yIHR5cGUgVVJMcyBiZWdpbm5pbmcgd2l0aAogdHlwZS5nb29nbGVhcGlzLmNvbS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoOCgUEAAIABBIFlgECeQ0KDQoFBAACAAUSBJYBAggKDQoFBAACAAESBJYBCREKDQoFBAACAAMSBJYBFBUKVwoEBAACARIEmQECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoPCgUEAAIBBBIGmQEClgEWCg0KBQQAAgEFEgSZAQIHCg0KBQQAAgEBEgSZAQgNCg0KBQQAAgEDEgSZARARYgZwcm90bzMKuhkKGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvEgZjb21tb24iFAoCSUQSDgoCaWQYASABKAlSAmlkIicKA0lEcxIgCgVpdGVtcxgBIAMoCzIKLmNvbW1vbi5JRFIFaXRlbXMidQoKQWRtaW5TdGF0ZSJnCgVUeXBlcxILCgdVTktOT1dOEAASEgoOUFJFUFJPVklTSU9ORUQQARILCgdFTkFCTEVEEAISDAoIRElTQUJMRUQQAxIVChFET1dOTE9BRElOR19JTUFHRRAEEgsKB0RFTEVURUQQBSJnCgpPcGVyU3RhdHVzIlkKBVR5cGVzEgsKB1VOS05PV04QABIOCgpESVNDT1ZFUkVEEAESDgoKQUNUSVZBVElORxACEgsKB1RFU1RJTkcQAxIKCgZBQ1RJVkUQBBIKCgZGQUlMRUQQBSJFCg1Db25uZWN0U3RhdHVzIjQKBVR5cGVzEgsKB1VOS05PV04QABIPCgtVTlJFQUNIQUJMRRABEg0KCVJFQUNIQUJMRRACItcBCg1PcGVyYXRpb25SZXNwEj0KBGNvZGUYASABKA4yKS5jb21tb24uT3BlcmF0aW9uUmVzcC5PcGVyYXRpb25SZXR1cm5Db2RlUgRjb2RlEicKD2FkZGl0aW9uYWxfaW5mbxgCIAEoCVIOYWRkaXRpb25hbEluZm8iXgoTT3BlcmF0aW9uUmV0dXJuQ29kZRIVChFPUEVSQVRJT05fU1VDQ0VTUxAAEhUK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b29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIk0KEUZpbGVEZXNjcmlwdG9yU2V0EjgKBGZpbGUYASADKAsyJC5nb29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90b1IEZmlsZSLkBAoTRmlsZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3BhY2thZ2UYAiABKAlSB3BhY2thZ2USHgoKZGVwZW5kZW5jeRgDIAMoCVIKZGVwZW5kZW5jeRIrChFwdWJsaWNfZGVwZW5kZW5jeRgKIAMoBVIQcHVibGljRGVwZW5kZW5jeRInCg93ZWFrX2RlcGVuZGVuY3kYCyADKAVSDndlYWtEZXBlbmRlbmN5EkMKDG1lc3NhZ2VfdHlwZRgEIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SC21lc3NhZ2VUeXBlEkEKCWVudW1fdHlwZRgFIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvUghlbnVtVHlwZRJBCgdzZXJ2aWNlGAYgAygLMicuZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VEZXNjcmlwdG9yUHJvdG9SB3NlcnZpY2USQwoJZXh0ZW5zaW9uGAcgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUglleHRlbnNpb24SNgoHb3B0aW9ucxgIIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9uc1IHb3B0aW9ucxJJChBzb3VyY2VfY29kZV9pbmZvGAkgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvUg5zb3VyY2VDb2RlSW5mbxIWCgZzeW50YXgYDCABKAlSBnN5bnRheCK5BgoPRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSOwoFZmllbGQYAiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SBWZpZWxkEkMKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEkEKC25lc3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1IKbmVzdGVkVHlwZRJBCgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSWAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZVIOZXh0ZW5zaW9uUmFuZ2USRAoKb25lb2ZfZGVjbBgIIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90b1IJb25lb2ZEZWNsEjkKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnNSB29wdGlvbnMSVQoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgKIAMoCVIMcmVzZXJ2ZWROYW1lGnoKDkV4dGVuc2lvblJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZBJACgdvcHRpb25zGAMgASgLMiYuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9uc1IHb3B0aW9ucxo3Cg1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCJ8ChVFeHRlbnNpb25SYW5nZU9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKYBgoURmllbGREZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAyABKAVSBm51bWJlchJBCgVsYWJlbBgEIAEoDjIrLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5MYWJlbFIFbGFiZWwSPgoEdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlUgR0eXBlEhsKCXR5cGVfbmFtZRgGIAEoCVIIdHlwZU5hbWUSGgoIZXh0ZW5kZWUYAiABKAlSCGV4dGVuZGVlEiMKDWRlZmF1bHRfdmFsdWUYByABKAlSDGRlZmF1bHRWYWx1ZRIfCgtvbmVvZl9pbmRleBgJIAEoBVIKb25lb2ZJbmRleBIbCglqc29uX25hbWUYCiABKAlSCGpzb25OYW1lEjcKB29wdGlvbnMYCCABKAsyHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zUgdvcHRpb25zIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIpIJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIvChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgVmYWxzZVIOY2NFbmFibGVBcmVuYXMSKgoRb2JqY19jbGFzc19wcmVmaXgYJCABKAlSD29iamNDbGFzc1ByZWZpeBIpChBjc2hhcnBfbmFtZXNwYWNlGCUgASgJUg9jc2hhcnBOYW1lc3BhY2USIQoMc3dpZnRfcHJlZml4GCcgASgJUgtzd2lmdFByZWZpeBIoChBwaHBfY2xhc3NfcHJlZml4GCggASgJUg5waHBDbGFzc1ByZWZpeBIjCg1waHBfbmFtZXNwYWNlGCkgASgJUgxwaHBOYW1lc3BhY2USNAoWcGhwX21ldGFkYXRhX25hbWVzcGFjZRgsIAEoCVIUcGhwTWV0YWRhdGFOYW1lc3BhY2USIQoMcnVieV9wYWNrYWdlGC0gASgJUgtydWJ5UGFja2FnZRJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiI6CgxPcHRpbWl6ZU1vZGUSCQoFU1BFRUQQARINCglDT0RFX1NJWkUQAhIQCgxMSVRFX1JVTlRJTUUQAyoJCOgHEICAgIACSgQIJhAnItECCg5NZXNzYWdlT3B0aW9ucxI8ChdtZXNzYWdlX3NldF93aXJlX2Zvcm1hdBgBIAEoCDoFZmFsc2VSFG1lc3NhZ2VTZXRXaXJlRm9ybWF0EkwKH25vX3N0YW5kYXJkX2Rlc2NyaXB0b3JfYWNjZXNzb3IYAiABKAg6BWZhbHNlUhxub1N0YW5kYXJkRGVzY3JpcHRvckFjY2Vzc29yEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhsKCW1hcF9lbnRyeRgHIAEoCFIIbWFwRW50cnkSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAgQCUoECAkQCiLiAwoMRmllbGRPcHRpb25zEkEKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HUgVjdHlwZRIWCgZwYWNrZWQYAiABKAhSBnBhY2tlZBJHCgZqc3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFMUgZqc3R5cGUSGQoEbGF6eRgFIAEoCDoFZmFsc2VSBGxhenkSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGQoEd2VhaxgKIAEoCDoFZmFsc2VSBHdlYWsSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iLwoFQ1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVDRRACIjUKBkpTVHlwZRINCglKU19OT1JNQUwQABINCglKU19TVFJJTkcQARINCglKU19OVU1CRVIQAioJCOgHEICAgIACSgQIBBAFInMKDE9uZW9mT3B0aW9ucxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIsABCgtFbnVtT3B0aW9ucxIfCgthbGxvd19hbGlhcxgCIAEoCFIKYWxsb3dBbGlhcxIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBRAGIp4BChBFbnVtVmFsdWVPcHRpb25zEiUKCmRlcHJlY2F0ZWQYASABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIinAEKDlNlcnZpY2VPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi4AIKDU1ldGhvZE9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQScQoRaWRlbXBvdGVuY3lfbGV2ZWwYIiABKA4yLy5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucy5JZGVtcG90ZW5jeUxldmVsOhNJREVNUE9URU5DWV9VTktOT1dOUhBpZGVtcG90ZW5jeUxldmVsElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIlAKEElkZW1wb3RlbmN5TGV2ZWwSFwoTSURFTVBPVEVOQ1lfVU5LTk9XThAAEhMKD05PX1NJREVfRUZGRUNUUxABEg4KCklERU1QT1RFTlQQAioJCOgHEICAgIACIpoDChNVbmludGVycHJldGVkT3B0aW9uEkEKBG5hbWUYAiADKAsyLS5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbi5OYW1lUGFydFIEbmFtZRIpChBpZGVudGlmaWVyX3ZhbHVlGAMgASgJUg9pZGVudGlmaWVyVmFsdWUSLAoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEUhBwb3NpdGl2ZUludFZhbHVlEiwKEm5lZ2F0aXZlX2ludF92YWx1ZRgFIAEoA1IQbmVnYXRpdmVJbnRWYWx1ZRIhCgxkb3VibGVfdmFsdWUYBiABKAFSC2RvdWJsZVZhbHVlEiEKDHN0cmluZ192YWx1ZRgHIAEoDFILc3RyaW5nVmFsdWUSJwoPYWdncmVnYXRlX3ZhbHVlGAggASgJUg5hZ2dyZWdhdGVWYWx1ZRpKCghOYW1lUGFydBIbCgluYW1lX3BhcnQYASACKAlSCG5hbWVQYXJ0EiEKDGlzX2V4dGVuc2lvbhgCIAIoCFILaXNFeHRlbnNpb24ipwIKDlNvdXJjZUNvZGVJbmZvEkQKCGxvY2F0aW9uGAEgAygLMiguZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvLkxvY2F0aW9uUghsb2NhdGlvbhrOAQoITG9jYXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSFgoEc3BhbhgCIAMoBUICEAFSBHNwYW4SKQoQbGVhZGluZ19jb21tZW50cxgDIAEoCVIPbGVhZGluZ0NvbW1lbnRzEisKEXRyYWlsaW5nX2NvbW1lbnRzGAQgASgJUhB0cmFpbGluZ0NvbW1lbnRzEjoKGWxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMYBiADKAlSF2xlYWRpbmdEZXRhY2hlZENvbW1lbnRzItEBChFHZW5lcmF0ZWRDb2RlSW5mbxJNCgphbm5vdGF0aW9uGAEgAygLMi0uZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb25SCmFubm90YXRpb24abQoKQW5ub3RhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIfCgtzb3VyY2VfZmlsZRgCIAEoCVIKc291cmNlRmlsZRIUCgViZWdpbhgDIAEoBVIFYmVnaW4SEAoDZW5kGAQgASgFUgNlbmRCjwEKE2NvbS5nb29nbGUucHJvdG9idWZCEERlc2NyaXB0b3JQcm90b3NIAVo+Z2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHJvdG9jLWdlbi1nby9kZXNjcmlwdG9yO2Rlc2NyaXB0b3L4AQGiAgNHUEKqAhpHb29nbGUuUHJvdG9idWYuUmVmbGVjdGlvbkqsvgIKBxIFJwDyBgEKqg8KAQwSAycAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtsCIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIFRoZSBtZXNzYWdlcyBpbiB0aGlzIGZpbGUgZGVzY3JpYmUgdGhlIGRlZmluaXRpb25zIGZvdW5kIGluIC5wcm90byBmaWxlcy4KIEEgdmFsaWQgLnByb3RvIGZpbGUgY2FuIGJlIHRyYW5zbGF0ZWQgZGlyZWN0bHkgdG8gYSBGaWxlRGVzY3JpcHRvclByb3RvCiB3aXRob3V0IGFueSBvdGhlciBpbmZvcm1hdGlvbiAoZS5nLiB3aXRob3V0IHJlYWRpbmcgaXRzIGltcG9ydHMpLgoKCAoBAhIDKQAYCggKAQgSAyoAVQoJCgIICxIDKgBVCggKAQgSAysALAoJCgIIARIDKwAsCggKAQgSAywAMQoJCgIICBIDLAAxCggKAQgSAy0ANwoJCgIIJRIDLQA3CggKAQgSAy4AIQoJCgIIJBIDLgAhCggKAQgSAy8AHwoJCgIIHxIDLwAfCggKAQgSAzMAHAp/CgIICRIDMwAcGnQgZGVzY3JpcHRvci5wcm90byBtdXN0IGJlIG9wdGltaXplZCBmb3Igc3BlZWQgYmVjYXVzZSByZWZsZWN0aW9uLWJhc2VkCiBhbGdvcml0aG1zIGRvbid0IHdvcmsgZHVyaW5nIGJvb3RzdHJhcHBpbmcuCgpqCgIEABIENwA5ARpeIFRoZSBwcm90b2NvbCBjb21waWxlciBjYW4gb3V0cHV0IGEgRmlsZURlc2NyaXB0b3JTZXQgY29udGFpbmluZyB0aGUgLnByb3RvCiBmaWxlcyBpdCBwYXJzZXMuCgoKCgMEAAESAzcIGQoLCgQEAAIAEgM4AigKDAoFBAACAAQSAzgCCgoMCgUEAAIABhIDOAseCgwKBQQAAgABEgM4HyMKDAoFBAACAAMSAzgmJwovCgIEARIEPABZARojIERlc2NyaWJlcyBhIGNvbXBsZXRlIC5wcm90byBmaWxlLgoKCgoDBAEBEgM8CBsKOQoEBAECABIDPQIbIiwgZmlsZSBuYW1lLCByZWxhdGl2ZSB0byByb290IG9mIHNvdXJjZSB0cmVlCgoMCgUEAQIABBIDPQIKCgwKBQQBAgAFEgM9CxEKDAoFBAECAAESAz0SFgoMCgUEAQIAAxIDPRkaCioKBAQBAgESAz4CHiIdIGUuZy4gImZvbyIsICJmb28uYmFyIiwgZXRjLgoKDAoFBAECAQQSAz4CCgoMCgUEAQIBBRIDPgsRCgwKBQQBAgEBEgM+EhkKDAoFBAECAQMSAz4cHQo0CgQEAQICEgNBAiEaJyBOYW1lcyBvZiBmaWxlcyBpbXBvcnRlZCBieSB0aGlzIGZpbGUuCgoMCgUEAQICBBIDQQIKCgwKBQQBAgIFEgNBCxEKDAoFBAECAgESA0ESHAoMCgUEAQICAxIDQR8gClEKBAQBAgMSA0MCKBpEIEluZGV4ZXMgb2YgdGhlIHB1YmxpYyBpbXBvcnRlZCBmaWxlcyBpbiB0aGUgZGVwZW5kZW5jeSBsaXN0IGFib3ZlLgoKDAoFBAECAwQSA0MCCgoMCgUEAQIDBRIDQwsQCgwKBQQBAgMBEgNDESIKDAoFBAECAwMSA0MlJwp6CgQEAQIEEgNGAiYabSBJbmRleGVzIG9mIHRoZSB3ZWFrIGltcG9ydGVkIGZpbGVzIGluIHRoZSBkZXBlbmRlbmN5IGxpc3QuCiBGb3IgR29vZ2xlLWludGVybmFsIG1pZ3JhdGlvbiBvbmx5LiBEbyBub3QgdXNlLgoKDAoFBAECBAQSA0YCCgoMCgUEAQIEBRIDRgsQCgwKBQQBAgQBEgNGESAKDAoFBAECBAMSA0YjJQo2CgQEAQIFEgNJAiwaKSBBbGwgdG9wLWxldmVsIGRlZmluaXRpb25zIGluIHRoaXMgZmlsZS4KCgwKBQQBAgUEEgNJAgoKDAoFBAECBQYSA0kLGgoMCgUEAQIFARIDSRsnCgwKBQQBAgUDEgNJKisKCwoEBAECBhIDSgItCgwKBQQBAgYEEgNKAgoKDAoFBAECBgYSA0oLHgoMCgUEAQIGARIDSh8oCgwKBQQBAgYDEgNKKywKCwoEBAECBxIDSwIuCgwKBQQBAgcEEgNLAgoKDAoFBAECBwYSA0sLIQoMCgUEAQIHARIDSyIpCgwKBQQBAgcDEgNLLC0KCwoEBAECCBIDTAIuCgwKBQQBAggEEgNMAgoKDAoFBAECCAYSA0wLHwoMCgUEAQIIARIDTCApCgwKBQQBAggDEgNMLC0KCwoEBAECCRIDTgIjCgwKBQQBAgkEEgNOAgoKDAoFBAECCQYSA04LFgoMCgUEAQIJARIDThceCgwKBQQBAgkDEgNOISIK9AEKBAQBAgoSA1QCLxrmASBUaGlzIGZpZWxkIGNvbnRhaW5zIG9wdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcmlnaW5hbCBzb3VyY2UgY29kZS4KIFlvdSBtYXkgc2FmZWx5IHJlbW92ZSB0aGlzIGVudGlyZSBmaWVsZCB3aXRob3V0IGhhcm1pbmcgcnVudGltZQogZnVuY3Rpb25hbGl0eSBvZiB0aGUgZGVzY3JpcHRvcnMgLS0gdGhlIGluZm9ybWF0aW9uIGlzIG5lZWRlZCBvbmx5IGJ5CiBkZXZlbG9wbWVudCB0b29scy4KCgwKBQQBAgoEEgNUAgoKDAoFBAECCgYSA1QLGQoMCgUEAQIKARIDVBoqCgwKBQQBAgoDEgNULS4KXQoEBAECCxIDWAIeGlAgVGhlIHN5bnRheCBvZiB0aGUgcHJvdG8gZmlsZS4KIFRoZSBzdXBwb3J0ZWQgdmFsdWVzIGFyZSAicHJvdG8yIiBhbmQgInByb3RvMyIuCgoMCgUEAQILBBIDWAIKCgwKBQQBAgsFEgNYCxEKDAoFBAECCwESA1gSGAoMCgUEAQILAxIDWBsdCicKAgQCEgRcAHwBGhsgRGVzY3JpYmVzIGEgbWVzc2FnZSB0eXBlLgoKCgoDBAIBEgNcCBcKCwoEBAICABIDXQIbCgwKBQQCAgAEEgNdAgoKDAoFBAICAAUSA10LEQoMCgUEAgIAARIDXRIWCgwKBQQCAgADEgNdGRoKCwoEBAICARIDXwIqCgwKBQQCAgEEEgNfAgoKDAoFBAICAQYSA18LHwoMCgUEAgIBARIDXyAlCgwKBQQCAgEDEgNfKCkKCwoEBAICAhIDYAIuCgwKBQQCAgIEEgNgAgoKDAoFBAICAgYSA2ALHwoMCgUEAgICARIDYCApCgwKBQQCAgIDEgNgLC0KCwoEBAICAxIDYgIrCgwKBQQCAgMEEgNiAgoKDAoFBAICAwYSA2ILGgoMCgUEAgIDARIDYhsmCgwKBQQCAgMDEgNiKSoKCwoEBAICBBIDYwItCgwKBQQCAgQEEgNjAgoKDAoFBAICBAYSA2MLHgoMCgUEAgIEARIDYx8oCgwKBQQCAgQDEgNjKywKDAoEBAIDABIEZQJqAwoMCgUEAgMAARIDZQoYCg0KBgQCAwACABIDZgQdCg4KBwQCAwACAAQSA2YEDAoOCgcEAgMAAgAFEgNmDRIKDgoHBAIDAAIAARIDZhMYCg4KBwQCAwACAAMSA2YbHAoNCgYEAgMAAgESA2cEGwoOCgcEAgMAAgEEEgNnBAwKDgoHBAIDAAIBBRIDZw0SCg4KBwQCAwACAQESA2cTFgoOCgcEAgMAAgEDEgNnGRoKDQoGBAIDAAICEgNpBC8KDgoHBAIDAAICBBIDaQQMCg4KBwQCAwACAgYSA2kNIgoOCgcEAgMAAgIBEgNpIyoKDgoHBAIDAAICAxIDaS0uCgsKBAQCAgUSA2sCLgoMCgUEAgIFBBIDawIKCgwKBQQCAgUGEgNrCxkKDAoFBAICBQESA2saKQoMCgUEAgIFAxIDaywtCgsKBAQCAgYSA20CLwoMCgUEAgIGBBIDbQIKCgwKBQQCAgYGEgNtCx8KDAoFBAICBgESA20gKgoMCgUEAgIGAxIDbS0uCgsKBAQCAgcSA28CJgoMCgUEAgIHBBIDbwIKCgwKBQQCAgcGEgNvCxkKDAoFBAICBwESA28aIQoMCgUEAgIHAxIDbyQlCqoBCgQEAgMBEgR0AncDGpsBIFJhbmdlIG9mIHJlc2VydmVkIHRhZyBudW1iZXJzLiBSZXNlcnZlZCB0YWcgbnVtYmVycyBtYXkgbm90IGJlIHVzZWQgYnkKIGZpZWxkcyBvciBleHRlbnNpb24gcmFuZ2VzIGluIHRoZSBzYW1lIG1lc3NhZ2UuIFJlc2VydmVkIHJhbmdlcyBtYXkKIG5vdCBvdmVybGFwLgoKDAoFBAIDAQESA3QKFwobCgYEAgMBAgASA3UEHSIMIEluY2x1c2l2ZS4KCg4KBwQCAwECAAQSA3UEDAoOCgcEAgMBAgAFEgN1DRIKDgoHBAIDAQIAARIDdRMYCg4KBwQCAwECAAMSA3UbHAobCgYEAgMBAgESA3YEGyIMIEV4Y2x1c2l2ZS4KCg4KBwQCAwECAQQSA3YEDAoOCgcEAgMBAgEFEgN2DRIKDgoHBAIDAQIBARIDdhMWCg4KBwQCAwECAQMSA3YZGgoLCgQEAgIIEgN4AiwKDAoFBAICCAQSA3gCCgoMCgUEAgIIBhIDeAsYCgwKBQQCAggBEgN4GScKDAoFBAICCAMSA3gqKwqCAQoEBAICCRIDewIlGnUgUmVzZXJ2ZWQgZmllbGQgbmFtZXMsIHdoaWNoIG1heSBub3QgYmUgdXNlZCBieSBmaWVsZHMgaW4gdGhlIHNhbWUgbWVzc2FnZS4KIEEgZ2l2ZW4gbmFtZSBtYXkgb25seSBiZSByZXNlcnZlZCBvbmNlLgoKDAoFBAICCQQSA3sCCgoMCgUEAgIJBRIDewsRCgwKBQQCAgkBEgN7Eh8KDAoFBAICCQMSA3siJAoLCgIEAxIFfgCEAQEKCgoDBAMBEgN+CB0KTwoEBAMCABIEgAECOhpBIFRoZSBwYXJzZXIgc3RvcmVzIG9wdGlvbnMgaXQgZG9lc24ndCByZWNvZ25pemUgaGVyZS4gU2VlIGFib3ZlLgoKDQoFBAMCAAQSBIABAgoKDQoFBAMCAAYSBIABCx4KDQoFBAMCAAESBIABHzMKDQoFBAMCAAMSBIABNjkKWgoDBAMFEgSDAQIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEAwUAEgSDAQ0YCg0KBQQDBQABEgSDAQ0RCg0KBQQDBQACEgSDARUYCjMKAgQEEgaHAQDVAQEaJSBEZXNjcmliZXMgYSBmaWVsZCB3aXRoaW4gYSBtZXNzYWdlLgoKCwoDBAQBEgSHAQgcCg4KBAQEBAASBogBAqcBAwoNCgUEBAQAARIEiAEHCwpTCgYEBAQAAgASBIsBBBwaQyAwIGlzIHJlc2VydmVkIGZvciBlcnJvcnMuCiBPcmRlciBpcyB3ZWlyZCBmb3IgaGlzdG9yaWNhbCByZWFzb25zLgoKDwoHBAQEAAIAARIEiwEEDwoPCgcEBAQAAgACEgSLARobCg4KBgQEBAACARIEjAEEHAoPCgcEBAQAAgEBEgSMAQQOCg8KBwQEBAACAQISBIwBGhsKdwoGBAQEAAICEgSPAQQcGmcgTm90IFppZ1phZyBlbmNvZGVkLiAgTmVnYXRpdmUgbnVtYmVycyB0YWtlIDEwIGJ5dGVzLiAgVXNlIFRZUEVfU0lOVDY0IGlmCiBuZWdhdGl2ZSB2YWx1ZXMgYXJlIGxpa2VseS4KCg8KBwQEBAACAgESBI8BBA4KDwoHBAQEAAICAhIEjwEaGwoOCgYEBAQAAgMSBJABBBwKDwoHBAQEAAIDARIEkAEEDwoPCgcEBAQAAgMCEgSQARobCncKBgQEBAACBBIEkwEEHBpnIE5vdCBaaWdaYWcgZW5jb2RlZC4gIE5lZ2F0aXZlIG51bWJlcnMgdGFrZSAxMCBieXRlcy4gIFVzZSBUWVBFX1NJTlQzMiBpZgogbmVnYXRpdmUgdmFsdWVzIGFyZSBsaWtlbHkuCgoPCgcEBAQAAgQBEgSTAQQOCg8KBwQEBAACBAISBJMBGhsKDgoGBAQEAAIFEgSUAQQcCg8KBwQEBAACBQESBJQBBBAKDwoHBAQEAAIFAhIElAEaGwoOCgYEBAQAAgYSBJUBBBwKDwoHBAQEAAIGARIElQEEEAoPCgcEBAQAAgYCEgSVARobCg4KBgQEBAACBxIElgEEHAoPCgcEBAQAAgcBEgSWAQQNCg8KBwQEBAACBwISBJYBGhsKDgoGBAQEAAIIEgSXAQQcCg8KBwQEBAACCAESBJcBBA8KDwoHBAQEAAIIAhIElwEaGwriAQoGBAQEAAIJEgScAQQdGtEBIFRhZy1kZWxpbWl0ZWQgYWdncmVnYXRlLgogR3JvdXAgdHlwZSBpcyBkZXByZWNhdGVkIGFuZCBub3Qgc3VwcG9ydGVkIGluIHByb3RvMy4gSG93ZXZlciwgUHJvdG8zCiBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIHN0aWxsIGJlIGFibGUgdG8gcGFyc2UgdGhlIGdyb3VwIHdpcmUgZm9ybWF0IGFuZAogdHJlYXQgZ3JvdXAgZmllbGRzIGFzIHVua25vd24gZmllbGRzLgoKDwoHBAQEAAIJARIEnAEEDgoPCgcEBAQAAgkCEgScARocCi0KBgQEBAACChIEnQEEHSIdIExlbmd0aC1kZWxpbWl0ZWQgYWdncmVnYXRlLgoKDwoHBAQEAAIKARIEnQEEEAoPCgcEBAQAAgoCEgSdARocCiMKBgQEBAACCxIEoAEEHRoTIE5ldyBpbiB2ZXJzaW9uIDIuCgoPCgcEBAQAAgsBEgSgAQQOCg8KBwQEBAACCwISBKABGhwKDgoGBAQEAAIMEgShAQQdCg8KBwQEBAACDAESBKEBBA8KDwoHBAQEAAIMAhIEoQEaHAoOCgYEBAQAAg0SBKIBBB0KDwoHBAQEAAINARIEogEEDQoPCgcEBAQAAg0CEgSiARocCg4KBgQEBAACDhIEowEEHQoPCgcEBAQAAg4BEgSjAQQRCg8KBwQEBAACDgISBKMBGhwKDgoGBAQEAAIPEgSkAQQdCg8KBwQEBAACDwESBKQBBBEKDwoHBAQEAAIPAhIEpAEaHAonCgYEBAQAAhASBKUBBB0iFyBVc2VzIFppZ1phZyBlbmNvZGluZy4KCg8KBwQEBAACEAESBKUBBA8KDwoHBAQEAAIQAhIEpQEaHAonCgYEBAQAAhESBKYBBB0iFyBVc2VzIFppZ1phZyBlbmNvZGluZy4KCg8KBwQEBAACEQESBKYBBA8KDwoHBAQEAAIRAhIEpgEaHAoOCgQEBAQBEgapAQKuAQMKDQoFBAQEAQESBKkBBwwKKgoGBAQEAQIAEgSrAQQcGhogMCBpcyByZXNlcnZlZCBmb3IgZXJyb3JzCgoPCgcEBAQBAgABEgSrAQQSCg8KBwQEBAECAAISBKsBGhsKDgoGBAQEAQIBEgSsAQQcCg8KBwQEBAECAQESBKwBBBIKDwoHBAQEAQIBAhIErAEaGwoOCgYEBAQBAgISBK0BBBwKDwoHBAQEAQICARIErQEEEgoPCgcEBAQBAgICEgStARobCgwKBAQEAgASBLABAhsKDQoFBAQCAAQSBLABAgoKDQoFBAQCAAUSBLABCxEKDQoFBAQCAAESBLABEhYKDQoFBAQCAAMSBLABGRoKDAoEBAQCARIEsQECHAoNCgUEBAIBBBIEsQECCgoNCgUEBAIBBRIEsQELEAoNCgUEBAIBARIEsQERFwoNCgUEBAIBAxIEsQEaGwoMCgQEBAICEgSyAQIbCg0KBQQEAgIEEgSyAQIKCg0KBQQEAgIGEgSyAQsQCg0KBQQEAgIBEgSyAREWCg0KBQQEAgIDEgSyARkaCpwBCgQEBAIDEgS2AQIZGo0BIElmIHR5cGVfbmFtZSBpcyBzZXQsIHRoaXMgbmVlZCBub3QgYmUgc2V0LiAgSWYgYm90aCB0aGlzIGFuZCB0eXBlX25hbWUKIGFyZSBzZXQsIHRoaXMgbXVzdCBiZSBvbmUgb2YgVFlQRV9FTlVNLCBUWVBFX01FU1NBR0Ugb3IgVFlQRV9HUk9VUC4KCg0KBQQEAgMEEgS2AQIKCg0KBQQEAgMGEgS2AQsPCg0KBQQEAgMBEgS2ARAUCg0KBQQEAgMDEgS2ARcYCrcCCgQEBAIEEgS9AQIgGqgCIEZvciBtZXNzYWdlIGFuZCBlbnVtIHR5cGVzLCB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSB0eXBlLiAgSWYgdGhlIG5hbWUKIHN0YXJ0cyB3aXRoIGEgJy4nLCBpdCBpcyBmdWxseS1xdWFsaWZpZWQuICBPdGhlcndpc2UsIEMrKy1saWtlIHNjb3BpbmcKIHJ1bGVzIGFyZSB1c2VkIHRvIGZpbmQgdGhlIHR5cGUgKGkuZS4gZmlyc3QgdGhlIG5lc3RlZCB0eXBlcyB3aXRoaW4gdGhpcwogbWVzc2FnZSBhcmUgc2VhcmNoZWQsIHRoZW4gd2l0aGluIHRoZSBwYXJlbnQsIG9uIHVwIHRvIHRoZSByb290CiBuYW1lc3BhY2UpLgoKDQoFBAQCBAQSBL0BAgoKDQoFBAQCBAUSBL0BCxEKDQoFBAQCBAESBL0BEhsKDQoFBAQCBAMSBL0BHh8KfgoEBAQCBRIEwQECHxpwIEZvciBleHRlbnNpb25zLCB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSB0eXBlIGJlaW5nIGV4dGVuZGVkLiAgSXQgaXMKIHJlc29sdmVkIGluIHRoZSBzYW1lIG1hbm5lciBhcyB0eXBlX25hbWUuCgoNCgUEBAIFBBIEwQECCgoNCgUEBAIFBRIEwQELEQoNCgUEBAIFARIEwQESGgoNCgUEBAIFAxIEwQEdHgqxAgoEBAQCBhIEyAECJBqiAiBGb3IgbnVtZXJpYyB0eXBlcywgY29udGFpbnMgdGhlIG9yaWdpbmFsIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlLgogRm9yIGJvb2xlYW5zLCAidHJ1ZSIgb3IgImZhbHNlIi4KIEZvciBzdHJpbmdzLCBjb250YWlucyB0aGUgZGVmYXVsdCB0ZXh0IGNvbnRlbnRzIChub3QgZXNjYXBlZCBpbiBhbnkgd2F5KS4KIEZvciBieXRlcywgY29udGFpbnMgdGhlIEMgZXNjYXBlZCB2YWx1ZS4gIEFsbCBieXRlcyA+PSAxMjggYXJlIGVzY2FwZWQuCiBUT0RPKGtlbnRvbik6ICBCYXNlLTY0IGVuY29kZT8KCg0KBQQEAgYEEgTIAQIKCg0KBQQEAgYFEgTIAQsRCg0KBQQEAgYBEgTIARIfCg0KBQQEAgYDEgTIASIjCoQBCgQEBAIHEgTMAQIhGnYgSWYgc2V0LCBnaXZlcyB0aGUgaW5kZXggb2YgYSBvbmVvZiBpbiB0aGUgY29udGFpbmluZyB0eXBlJ3Mgb25lb2ZfZGVjbAogbGlzdC4gIFRoaXMgZmllbGQgaXMgYSBtZW1iZXIgb2YgdGhhdCBvbmVvZi4KCg0KBQQEAgcEEgTMAQIKCg0KBQQEAgcFEgTMAQsQCg0KBQQEAgcBEgTMAREcCg0KBQQEAgcDEgTMAR8gCvoBCgQEBAIIEgTSAQIhGusBIEpTT04gbmFtZSBvZiB0aGlzIGZpZWxkLiBUaGUgdmFsdWUgaXMgc2V0IGJ5IHByb3RvY29sIGNvbXBpbGVyLiBJZiB0aGUKIHVzZXIgaGFzIHNldCBhICJqc29uX25hbWUiIG9wdGlvbiBvbiB0aGlzIGZpZWxkLCB0aGF0IG9wdGlvbidzIHZhbHVlCiB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgaXQncyBkZWR1Y2VkIGZyb20gdGhlIGZpZWxkJ3MgbmFtZSBieSBjb252ZXJ0aW5nCiBpdCB0byBjYW1lbENhc2UuCgoNCgUEBAIIBBIE0gECCgoNCgUEBAIIBRIE0gELEQoNCgUEBAIIARIE0gESGwoNCgUEBAIIAxIE0gEeIAoMCgQEBAIJEgTUAQIkCg0KBQQEAgkEEgTUAQIKCg0KBQQEAgkGEgTUAQsXCg0KBQQEAgkBEgTUARgfCg0KBQQEAgkDEgTUASIjCiIKAgQFEgbYAQDbAQEaFCBEZXNjcmliZXMgYSBvbmVvZi4KCgsKAwQFARIE2AEIHAoMCgQEBQIAEgTZAQIbCg0KBQQFAgAEEgTZAQIKCg0KBQQFAgAFEgTZAQsRCg0KBQQFAgABEgTZARIWCg0KBQQFAgADEgTZARkaCgwKBAQFAgESBNoBAiQKDQoFBAUCAQQSBNoBAgoKDQoFBAUCAQYSBNoBCxcKDQoFBAUCAQESBNoBGB8KDQoFBAUCAQMSBNoBIiMKJwoCBAYSBt4BAPgBARoZIERlc2NyaWJlcyBhbiBlbnVtIHR5cGUuCgoLCgMEBgESBN4BCBsKDAoEBAYCABIE3wECGwoNCgUEBgIABBIE3wECCgoNCgUEBgIABRIE3wELEQoNCgUEBgIAARIE3wESFgoNCgUEBgIAAxIE3wEZGgoMCgQEBgIBEgThAQIuCg0KBQQGAgEEEgThAQIKCg0KBQQGAgEGEgThAQsjCg0KBQQGAgEBEgThASQpCg0KBQQGAgEDEgThASwtCgwKBAQGAgISBOMBAiMKDQoFBAYCAgQSBOMBAgoKDQoFBAYCAgYSBOMBCxYKDQoFBAYCAgESBOMBFx4KDQoFBAYCAgMSBOMBISIKrwIKBAQGAwASBusBAu4BAxqeAiBSYW5nZSBvZiByZXNlcnZlZCBudW1lcmljIHZhbHVlcy4gUmVzZXJ2ZWQgdmFsdWVzIG1heSBub3QgYmUgdXNlZCBieQogZW50cmllcyBpbiB0aGUgc2FtZSBlbnVtLiBSZXNlcnZlZCByYW5nZXMgbWF5IG5vdCBvdmVybGFwLgoKIE5vdGUgdGhhdCB0aGlzIGlzIGRpc3RpbmN0IGZyb20gRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2UgaW4gdGhhdCBpdAogaXMgaW5jbHVzaXZlIHN1Y2ggdGhhdCBpdCBjYW4gYXBwcm9wcmlhdGVseSByZXByZXNlbnQgdGhlIGVudGlyZSBpbnQzMgogZG9tYWluLgoKDQoFBAYDAAESBOsBChsKHAoGBAYDAAIAEgTsAQQdIgwgSW5jbHVzaXZlLgoKDwoHBAYDAAIABBIE7AEEDAoPCgcEBgMAAgAFEgTsAQ0SCg8KBwQGAwACAAESBOwBExgKDwoHBAYDAAIAAxIE7AEbHAocCgYEBgMAAgESBO0BBBsiDCBJbmNsdXNpdmUuCgoPCgcEBgMAAgEEEgTtAQQMCg8KBwQGAwACAQUSBO0BDRIKDwoHBAYDAAIBARIE7QETFgoPCgcEBgMAAgEDEgTtARkaCqoBCgQEBgIDEgTzAQIwGpsBIFJhbmdlIG9mIHJlc2VydmVkIG51bWVyaWMgdmFsdWVzLiBSZXNlcnZlZCBudW1lcmljIHZhbHVlcyBtYXkgbm90IGJlIHVzZWQKIGJ5IGVudW0gdmFsdWVzIGluIHRoZSBzYW1lIGVudW0gZGVjbGFyYXRpb24uIFJlc2VydmVkIHJhbmdlcyBtYXkgbm90CiBvdmVybGFwLgoKDQoFBAYCAwQSBPMBAgoKDQoFBAYCAwYSBPMBCxwKDQoFBAYCAwESBPMBHSsKDQoFBAYCAwMSBPMBLi8KbAoEBAYCBBIE9wECJBpeIFJlc2VydmVkIGVudW0gdmFsdWUgbmFtZXMsIHdoaWNoIG1heSBub3QgYmUgcmV1c2VkLiBBIGdpdmVuIG5hbWUgbWF5IG9ubHkKIGJlIHJlc2VydmVkIG9uY2UuCgoNCgUEBgIEBBIE9wECCgoNCgUEBgIEBRIE9wELEQoNCgUEBgIEARIE9wESHwoNCgUEBgIEAxIE9wEiIwoxCgIEBxIG+wEAgAIBGiMgRGVzY3JpYmVzIGEgdmFsdWUgd2l0aGluIGFuIGVudW0uCgoLCgMEBwESBPsBCCAKDAoEBAcCABIE/AECGwoNCgUEBwIABBIE/AECCgoNCgUEBwIABRIE/AELEQoNCgUEBwIAARIE/AESFgoNCgUEBwIAAxIE/AEZGgoMCgQEBwIBEgT9AQIcCg0KBQQHAgEEEgT9AQIKCg0KBQQHAgEFEgT9AQsQCg0KBQQHAgEBEgT9AREXCg0KBQQHAgEDEgT9ARobCgwKBAQHAgISBP8BAigKDQoFBAcCAgQSBP8BAgoKDQoFBAcCAgYSBP8BCxsKDQoFBAcCAgESBP8BHCMKDQoFBAcCAgMSBP8BJicKJAoCBAgSBoMCAIgCARoWIERlc2NyaWJlcyBhIHNlcnZpY2UuCgoLCgMECAESBIMCCB4KDAoEBAgCABIEhAICGwoNCgUECAIABBIEhAICCgoNCgUECAIABRIEhAILEQoNCgUECAIAARIEhAISFgoNCgUECAIAAxIEhAIZGgoMCgQECAIBEgSFAgIsCg0KBQQIAgEEEgSFAgIKCg0KBQQIAgEGEgSFAgsgCg0KBQQIAgEBEgSFAiEnCg0KBQQIAgEDEgSFAiorCgwKBAQIAgISBIcCAiYKDQoFBAgCAgQSBIcCAgoKDQoFBAgCAgYSBIcCCxkKDQoFBAgCAgESBIcCGiEKDQoFBAgCAgMSBIcCJCUKMAoCBAkSBosCAJkCARoiIERlc2NyaWJlcyBhIG1ldGhvZCBvZiBhIHNlcnZpY2UuCgoLCgMECQESBIsCCB0KDAoEBAkCABIEjAICGwoNCgUECQIABBIEjAICCgoNCgUECQIABRIEjAILEQoNCgUECQIAARIEjAISFgoNCgUECQIAAxIEjAIZGgqXAQoEBAkCARIEkAICIRqIASBJbnB1dCBhbmQgb3V0cHV0IHR5cGUgbmFtZXMuICBUaGVzZSBhcmUgcmVzb2x2ZWQgaW4gdGhlIHNhbWUgd2F5IGFzCiBGaWVsZERlc2NyaXB0b3JQcm90by50eXBlX25hbWUsIGJ1dCBtdXN0IHJlZmVyIHRvIGEgbWVzc2FnZSB0eXBlLgoKDQoFBAkCAQQSBJACAgoKDQoFBAkCAQUSBJACCxEKDQoFBAkCAQESBJACEhwKDQoFBAkCAQMSBJACHyAKDAoEBAkCAhIEkQICIgoNCgUECQICBBIEkQICCgoNCgUECQICBRIEkQILEQoNCgUECQICARIEkQISHQoNCgUECQICAxIEkQIgIQoMCgQECQIDEgSTAgIlCg0KBQQJAgMEEgSTAgIKCg0KBQQJAgMGEgSTAgsYCg0KBQQJAgMBEgSTAhkgCg0KBQQJAgMDEgSTAiMkCkUKBAQJAgQSBJYCAjUaNyBJZGVudGlmaWVzIGlmIGNsaWVudCBzdHJlYW1zIG11bHRpcGxlIGNsaWVudCBtZXNzYWdlcwoKDQoFBAkCBAQSBJYCAgoKDQoFBAkCBAUSBJYCCw8KDQoFBAkCBAESBJYCECAKDQoFBAkCBAMSBJYCIyQKDQoFBAkCBAgSBJYCJTQKDQoFBAkCBAcSBJYCLjMKRQoEBAkCBRIEmAICNRo3IElkZW50aWZpZXMgaWYgc2VydmVyIHN0cmVhbXMgbXVsdGlwbGUgc2VydmVyIG1lc3NhZ2VzCgoNCgUECQIFBBIEmAICCgoNCgUECQIFBRIEmAILDwoNCgUECQIFARIEmAIQIAoNCgUECQIFAxIEmAIjJAoNCgUECQIFCBIEmAIlNAoNCgUECQIFBxIEmAIuMwqvDgoCBAoSBr0CALcDATJOID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIE9wdGlvbnMKMtANIEVhY2ggb2YgdGhlIGRlZmluaXRpb25zIGFib3ZlIG1heSBoYXZlICJvcHRpb25zIiBhdHRhY2hlZC4gIFRoZXNlIGFyZQoganVzdCBhbm5vdGF0aW9ucyB3aGljaCBtYXkgY2F1c2UgY29kZSB0byBiZSBnZW5lcmF0ZWQgc2xpZ2h0bHkgZGlmZmVyZW50bHkKIG9yIG1heSBjb250YWluIGhpbnRzIGZvciBjb2RlIHRoYXQgbWFuaXB1bGF0ZXMgcHJvdG9jb2wgbWVzc2FnZXMuCgogQ2xpZW50cyBtYXkgZGVmaW5lIGN1c3RvbSBvcHRpb25zIGFzIGV4dGVuc2lvbnMgb2YgdGhlICpPcHRpb25zIG1lc3NhZ2VzLgogVGhlc2UgZXh0ZW5zaW9ucyBtYXkgbm90IHlldCBiZSBrbm93biBhdCBwYXJzaW5nIHRpbWUsIHNvIHRoZSBwYXJzZXIgY2Fubm90CiBzdG9yZSB0aGUgdmFsdWVzIGluIHRoZW0uICBJbnN0ZWFkIGl0IHN0b3JlcyB0aGVtIGluIGEgZmllbGQgaW4gdGhlICpPcHRpb25zCiBtZXNzYWdlIGNhbGxlZCB1bmludGVycHJldGVkX29wdGlvbi4gVGhpcyBmaWVsZCBtdXN0IGhhdmUgdGhlIHNhbWUgbmFtZQogYWNyb3NzIGFsbCAqT3B0aW9ucyBtZXNzYWdlcy4gV2UgdGhlbiB1c2UgdGhpcyBmaWVsZCB0byBwb3B1bGF0ZSB0aGUKIGV4dGVuc2lvbnMgd2hlbiB3ZSBidWlsZCBhIGRlc2NyaXB0b3IsIGF0IHdoaWNoIHBvaW50IGFsbCBwcm90b3MgaGF2ZSBiZWVuCiBwYXJzZWQgYW5kIHNvIGFsbCBleHRlbnNpb25zIGFyZSBrbm93bi4KCiBFeHRlbnNpb24gbnVtYmVycyBmb3IgY3VzdG9tIG9wdGlvbnMgbWF5IGJlIGNob3NlbiBhcyBmb2xsb3dzOgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIG9ubHkgYmUgdXNlZCB3aXRoaW4gYSBzaW5nbGUgYXBwbGljYXRpb24gb3IKICAgb3JnYW5pemF0aW9uLCBvciBmb3IgZXhwZXJpbWVudGFsIG9wdGlvbnMsIHVzZSBmaWVsZCBudW1iZXJzIDUwMDAwCiAgIHRocm91Z2ggOTk5OTkuICBJdCBpcyB1cCB0byB5b3UgdG8gZW5zdXJlIHRoYXQgeW91IGRvIG5vdCB1c2UgdGhlCiAgIHNhbWUgbnVtYmVyIGZvciBtdWx0aXBsZSBvcHRpb25zLgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIGJlIHB1Ymxpc2hlZCBhbmQgdXNlZCBwdWJsaWNseSBieSBtdWx0aXBsZQogICBpbmRlcGVuZGVudCBlbnRpdGllcywgZS1tYWlsIHByb3RvYnVmLWdsb2JhbC1leHRlbnNpb24tcmVnaXN0cnlAZ29vZ2xlLmNvbQogICB0byByZXNlcnZlIGV4dGVuc2lvbiBudW1iZXJzLiBTaW1wbHkgcHJvdmlkZSB5b3VyIHByb2plY3QgbmFtZSAoZS5nLgogICBPYmplY3RpdmUtQyBwbHVnaW4pIGFuZCB5b3VyIHByb2plY3Qgd2Vic2l0ZSAoaWYgYXZhaWxhYmxlKSAtLSB0aGVyZSdzIG5vCiAgIG5lZWQgdG8gZXhwbGFpbiBob3cgeW91IGludGVuZCB0byB1c2UgdGhlbS4gVXN1YWxseSB5b3Ugb25seSBuZWVkIG9uZQogICBleHRlbnNpb24gbnVtYmVyLiBZb3UgY2FuIGRlY2xhcmUgbXVsdGlwbGUgb3B0aW9ucyB3aXRoIG9ubHkgb25lIGV4dGVuc2lvbgogICBudW1iZXIgYnkgcHV0dGluZyB0aGVtIGluIGEgc3ViLW1lc3NhZ2UuIFNlZSB0aGUgQ3VzdG9tIE9wdGlvbnMgc2VjdGlvbiBvZgogICB0aGUgZG9jcyBmb3IgZXhhbXBsZXM6CiAgIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90byNvcHRpb25zCiAgIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIHBvcHVsYXIsIGEgd2ViIHNlcnZpY2Ugd2lsbCBiZSBzZXQgdXAKICAgdG8gYXV0b21hdGljYWxseSBhc3NpZ24gb3B0aW9uIG51bWJlcnMuCgoLCgMECgESBL0CCBMK9AEKBAQKAgASBMMCAiMa5QEgU2V0cyB0aGUgSmF2YSBwYWNrYWdlIHdoZXJlIGNsYXNzZXMgZ2VuZXJhdGVkIGZyb20gdGhpcyAucHJvdG8gd2lsbCBiZQogcGxhY2VkLiAgQnkgZGVmYXVsdCwgdGhlIHByb3RvIHBhY2thZ2UgaXMgdXNlZCwgYnV0IHRoaXMgaXMgb2Z0ZW4KIGluYXBwcm9wcmlhdGUgYmVjYXVzZSBwcm90byBwYWNrYWdlcyBkbyBub3Qgbm9ybWFsbHkgc3RhcnQgd2l0aCBiYWNrd2FyZHMKIGRvbWFpbiBuYW1lcy4KCg0KBQQKAgAEEgTDAgIKCg0KBQQKAgAFEgTDAgsRCg0KBQQKAgABEgTDAhIeCg0KBQQKAgADEgTDAiEiCr8CCgQECgIBEgTLAgIrGrACIElmIHNldCwgYWxsIHRoZSBjbGFzc2VzIGZyb20gdGhlIC5wcm90byBmaWxlIGFyZSB3cmFwcGVkIGluIGEgc2luZ2xlCiBvdXRlciBjbGFzcyB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgVGhpcyBhcHBsaWVzIHRvIGJvdGggUHJvdG8xCiAoZXF1aXZhbGVudCB0byB0aGUgb2xkICItLW9uZV9qYXZhX2ZpbGUiIG9wdGlvbikgYW5kIFByb3RvMiAod2hlcmUKIGEgLnByb3RvIGFsd2F5cyB0cmFuc2xhdGVzIHRvIGEgc2luZ2xlIGNsYXNzLCBidXQgeW91IG1heSB3YW50IHRvCiBleHBsaWNpdGx5IGNob29zZSB0aGUgY2xhc3MgbmFtZSkuCgoNCgUECgIBBBIEywICCgoNCgUECgIBBRIEywILEQoNCgUECgIBARIEywISJgoNCgUECgIBAxIEywIpKgqjAwoEBAoCAhIE0wICORqUAyBJZiBzZXQgdHJ1ZSwgdGhlbiB0aGUgSmF2YSBjb2RlIGdlbmVyYXRvciB3aWxsIGdlbmVyYXRlIGEgc2VwYXJhdGUgLmphdmEKIGZpbGUgZm9yIGVhY2ggdG9wLWxldmVsIG1lc3NhZ2UsIGVudW0sIGFuZCBzZXJ2aWNlIGRlZmluZWQgaW4gdGhlIC5wcm90bwogZmlsZS4gIFRodXMsIHRoZXNlIHR5cGVzIHdpbGwgKm5vdCogYmUgbmVzdGVkIGluc2lkZSB0aGUgb3V0ZXIgY2xhc3MKIG5hbWVkIGJ5IGphdmFfb3V0ZXJfY2xhc3NuYW1lLiAgSG93ZXZlciwgdGhlIG91dGVyIGNsYXNzIHdpbGwgc3RpbGwgYmUKIGdlbmVyYXRlZCB0byBjb250YWluIHRoZSBmaWxlJ3MgZ2V0RGVzY3JpcHRvcigpIG1ldGhvZCBhcyB3ZWxsIGFzIGFueQogdG9wLWxldmVsIGV4dGVuc2lvbnMgZGVmaW5lZCBpbiB0aGUgZmlsZS4KCg0KBQQKAgIEEgTTAgIKCg0KBQQKAgIFEgTTAgsPCg0KBQQKAgIBEgTTAhAjCg0KBQQKAgIDEgTTAiYoCg0KBQQKAgIIEgTTAik4Cg0KBQQKAgIHEgTTAjI3CikKBAQKAgMSBNYCAkUaGyBUaGlzIG9wdGlvbiBkb2VzIG5vdGhpbmcuCgoNCgUECgIDBBIE1gICCgoNCgUECgIDBRIE1gILDwoNCgUECgIDARIE1gIQLQoNCgUECgIDAxIE1gIwMgoNCgUECgIDCBIE1gIzRAoOCgYECgIDCAMSBNYCNEMK5gIKBAQKAgQSBN4CAjwa1wIgSWYgc2V0IHRydWUsIHRoZW4gdGhlIEphdmEyIGNvZGUgZ2VuZXJhdG9yIHdpbGwgZ2VuZXJhdGUgY29kZSB0aGF0CiB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW5ldmVyIGFuIGF0dGVtcHQgaXMgbWFkZSB0byBhc3NpZ24gYSBub24tVVRGLTgKIGJ5dGUgc2VxdWVuY2UgdG8gYSBzdHJpbmcgZmllbGQuCiBNZXNzYWdlIHJlZmxlY3Rpb24gd2lsbCBkbyB0aGUgc2FtZS4KIEhvd2V2ZXIsIGFuIGV4dGVuc2lvbiBmaWVsZCBzdGlsbCBhY2NlcHRzIG5vbi1VVEYtOCBieXRlIHNlcXVlbmNlcy4KIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gd2hlbiB1c2VkIHdpdGggdGhlIGxpdGUgcnVudGltZS4KCg0KBQQKAgQEEgTeAgIKCg0KBQQKAgQFEgTeAgsPCg0KBQQKAgQBEgTeAhAmCg0KBQQKAgQDEgTeAikrCg0KBQQKAgQIEgTeAiw7Cg0KBQQKAgQHEgTeAjU6CkwKBAQKBAASBuICAucCAxo8IEdlbmVyYXRlZCBjbGFzc2VzIGNhbiBiZSBvcHRpbWl6ZWQgZm9yIHNwZWVkIG9yIGNvZGUgc2l6ZS4KCg0KBQQKBAABEgTiAgcTCkQKBgQKBAACABIE4wIEDiI0IEdlbmVyYXRlIGNvbXBsZXRlIGNvZGUgZm9yIHBhcnNpbmcsIHNlcmlhbGl6YXRpb24sCgoPCgcECgQAAgABEgTjAgQJCg8KBwQKBAACAAISBOMCDA0KRwoGBAoEAAIBEgTlAgQSGgYgZXRjLgoiLyBVc2UgUmVmbGVjdGlvbk9wcyB0byBpbXBsZW1lbnQgdGhlc2UgbWV0aG9kcy4KCg8KBwQKBAACAQESBOUCBA0KDwoHBAoEAAIBAhIE5QIQEQpHCgYECgQAAgISBOYCBBUiNyBHZW5lcmF0ZSBjb2RlIHVzaW5nIE1lc3NhZ2VMaXRlIGFuZCB0aGUgbGl0ZSBydW50aW1lLgoKDwoHBAoEAAICARIE5gIEEAoPCgcECgQAAgICEgTmAhMUCgwKBAQKAgUSBOgCAjkKDQoFBAoCBQQSBOgCAgoKDQoFBAoCBQYSBOgCCxcKDQoFBAoCBQESBOgCGCQKDQoFBAoCBQMSBOgCJygKDQoFBAoCBQgSBOgCKTgKDQoFBAoCBQcSBOgCMjcK4gIKBAQKAgYSBO8CAiIa0wIgU2V0cyB0aGUgR28gcGFja2FnZSB3aGVyZSBzdHJ1Y3RzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gSWYgb21pdHRlZCwgdGhlIEdvIHBhY2thZ2Ugd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZzoKICAgLSBUaGUgYmFzZW5hbWUgb2YgdGhlIHBhY2thZ2UgaW1wb3J0IHBhdGgsIGlmIHByb3ZpZGVkLgogICAtIE90aGVyd2lzZSwgdGhlIHBhY2thZ2Ugc3RhdGVtZW50IGluIHRoZSAucHJvdG8gZmlsZSwgaWYgcHJlc2VudC4KICAgLSBPdGhlcndpc2UsIHRoZSBiYXNlbmFtZSBvZiB0aGUgLnByb3RvIGZpbGUsIHdpdGhvdXQgZXh0ZW5zaW9uLgoKDQoFBAoCBgQSBO8CAgoKDQoFBAoCBgUSBO8CCxEKDQoFBAoCBgESBO8CEhwKDQoFBAoCBgMSBO8CHyEK1AQKBAQKAgcSBP0CAjkaxQQgU2hvdWxkIGdlbmVyaWMgc2VydmljZXMgYmUgZ2VuZXJhdGVkIGluIGVhY2ggbGFuZ3VhZ2U/ICAiR2VuZXJpYyIgc2VydmljZXMKIGFyZSBub3Qgc3BlY2lmaWMgdG8gYW55IHBhcnRpY3VsYXIgUlBDIHN5c3RlbS4gIFRoZXkgYXJlIGdlbmVyYXRlZCBieSB0aGUKIG1haW4gY29kZSBnZW5lcmF0b3JzIGluIGVhY2ggbGFuZ3VhZ2UgKHdpdGhvdXQgYWRkaXRpb25hbCBwbHVnaW5zKS4KIEdlbmVyaWMgc2VydmljZXMgd2VyZSB0aGUgb25seSBraW5kIG9mIHNlcnZpY2UgZ2VuZXJhdGlvbiBzdXBwb3J0ZWQgYnkKIGVhcmx5IHZlcnNpb25zIG9mIGdvb2dsZS5wcm90b2J1Zi4KCiBHZW5lcmljIHNlcnZpY2VzIGFyZSBub3cgY29uc2lkZXJlZCBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHVzaW5nIHBsdWdpbnMKIHRoYXQgZ2VuZXJhdGUgY29kZSBzcGVjaWZpYyB0byB5b3VyIHBhcnRpY3VsYXIgUlBDIHN5c3RlbS4gIFRoZXJlZm9yZSwKIHRoZXNlIGRlZmF1bHQgdG8gZmFsc2UuICBPbGQgY29kZSB3aGljaCBkZXBlbmRzIG9uIGdlbmVyaWMgc2VydmljZXMgc2hvdWxkCiBleHBsaWNpdGx5IHNldCB0aGVtIHRvIHRydWUuCgoNCgUECgIHBBIE/QICCgoNCgUECgIHBRIE/QILDwoNCgUECgIHARIE/QIQIwoNCgUECgIHAxIE/QImKAoNCgUECgIHCBIE/QIpOAoNCgUECgIHBxIE/QIyNwoMCgQECgIIEgT+AgI7Cg0KBQQKAggEEgT+AgIKCg0KBQQKAggFEgT+AgsPCg0KBQQKAggBEgT+AhAlCg0KBQQKAggDEgT+AigqCg0KBQQKAggIEgT+Ais6Cg0KBQQKAggHEgT+AjQ5CgwKBAQKAgkSBP8CAjkKDQoFBAoCCQQSBP8CAgoKDQoFBAoCCQUSBP8CCw8KDQoFBAoCCQESBP8CECMKDQoFBAoCCQMSBP8CJigKDQoFBAoCCQgSBP8CKTgKDQoFBAoCCQcSBP8CMjcKDAoEBAoCChIEgAMCOgoNCgUECgIKBBIEgAMCCgoNCgUECgIKBRIEgAMLDwoNCgUECgIKARIEgAMQJAoNCgUECgIKAxIEgAMnKQoNCgUECgIKCBIEgAMqOQoNCgUECgIKBxIEgAMzOArzAQoEBAoCCxIEhgMCMBrkASBJcyB0aGlzIGZpbGUgZGVwcmVjYXRlZD8KIERlcGVuZGluZyBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLCB0aGlzIGNhbiBlbWl0IERlcHJlY2F0ZWQgYW5ub3RhdGlvbnMKIGZvciBldmVyeXRoaW5nIGluIHRoZSBmaWxlLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkKIGxlYXN0LCB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgZmlsZXMuCgoNCgUECgILBBIEhgMCCgoNCgUECgILBRIEhgMLDwoNCgUECgILARIEhgMQGgoNCgUECgILAxIEhgMdHwoNCgUECgILCBIEhgMgLwoNCgUECgILBxIEhgMpLgp/CgQECgIMEgSKAwI2GnEgRW5hYmxlcyB0aGUgdXNlIG9mIGFyZW5hcyBmb3IgdGhlIHByb3RvIG1lc3NhZ2VzIGluIHRoaXMgZmlsZS4gVGhpcyBhcHBsaWVzCiBvbmx5IHRvIGdlbmVyYXRlZCBjbGFzc2VzIGZvciBDKysuCgoNCgUECgIMBBIEigMCCgoNCgUECgIMBRIEigMLDwoNCgUECgIMARIEigMQIAoNCgUECgIMAxIEigMjJQoNCgUECgIMCBIEigMmNQoNCgUECgIMBxIEigMvNAqSAQoEBAoCDRIEjwMCKRqDASBTZXRzIHRoZSBvYmplY3RpdmUgYyBjbGFzcyBwcmVmaXggd2hpY2ggaXMgcHJlcGVuZGVkIHRvIGFsbCBvYmplY3RpdmUgYwogZ2VuZXJhdGVkIGNsYXNzZXMgZnJvbSB0aGlzIC5wcm90by4gVGhlcmUgaXMgbm8gZGVmYXVsdC4KCg0KBQQKAg0EEgSPAwIKCg0KBQQKAg0FEgSPAwsRCg0KBQQKAg0BEgSPAxIjCg0KBQQKAg0DEgSPAyYoCkkKBAQKAg4SBJIDAigaOyBOYW1lc3BhY2UgZm9yIGdlbmVyYXRlZCBjbGFzc2VzOyBkZWZhdWx0cyB0byB0aGUgcGFja2FnZS4KCg0KBQQKAg4EEgSSAwIKCg0KBQQKAg4FEgSSAwsRCg0KBQQKAg4BEgSSAxIiCg0KBQQKAg4DEgSSAyUnCpECCgQECgIPEgSYAwIkGoICIEJ5IGRlZmF1bHQgU3dpZnQgZ2VuZXJhdG9ycyB3aWxsIHRha2UgdGhlIHByb3RvIHBhY2thZ2UgYW5kIENhbWVsQ2FzZSBpdAogcmVwbGFjaW5nICcuJyB3aXRoIHVuZGVyc2NvcmUgYW5kIHVzZSB0aGF0IHRvIHByZWZpeCB0aGUgdHlwZXMvc3ltYm9scwogZGVmaW5lZC4gV2hlbiB0aGlzIG9wdGlvbnMgaXMgcHJvdmlkZWQsIHRoZXkgd2lsbCB1c2UgdGhpcyB2YWx1ZSBpbnN0ZWFkCiB0byBwcmVmaXggdGhlIHR5cGVzL3N5bWJvbHMgZGVmaW5lZC4KCg0KBQQKAg8EEgSYAwIKCg0KBQQKAg8FEgSYAwsRCg0KBQQKAg8BEgSYAxIeCg0KBQQKAg8DEgSYAyEjCn4KBAQKAhASBJwDAigacCBTZXRzIHRoZSBwaHAgY2xhc3MgcHJlZml4IHdoaWNoIGlzIHByZXBlbmRlZCB0byBhbGwgcGhwIGdlbmVyYXRlZCBjbGFzc2VzCiBmcm9tIHRoaXMgLnByb3RvLiBEZWZhdWx0IGlzIGVtcHR5LgoKDQoFBAoCEAQSBJwDAgoKDQoFBAoCEAUSBJwDCxEKDQoFBAoCEAESBJwDEiIKDQoFBAoCEAMSBJwDJScKvgEKBAQKAhESBKEDAiUarwEgVXNlIHRoaXMgb3B0aW9uIHRvIGNoYW5nZSB0aGUgbmFtZXNwYWNlIG9mIHBocCBnZW5lcmF0ZWQgY2xhc3Nlcy4gRGVmYXVsdAogaXMgZW1wdHkuIFdoZW4gdGhpcyBvcHRpb24gaXMgZW1wdHksIHRoZSBwYWNrYWdlIG5hbWUgd2lsbCBiZSB1c2VkIGZvcgogZGV0ZXJtaW5pbmcgdGhlIG5hbWVzcGFjZS4KCg0KBQQKAhEEEgShAwIKCg0KBQQKAhEFEgShAwsRCg0KBQQKAhEBEgShAxIfCg0KBQQKAhEDEgShAyIkCsoBCgQECgISEgSnAwIuGrsBIFVzZSB0aGlzIG9wdGlvbiB0byBjaGFuZ2UgdGhlIG5hbWVzcGFjZSBvZiBwaHAgZ2VuZXJhdGVkIG1ldGFkYXRhIGNsYXNzZXMuCiBEZWZhdWx0IGlzIGVtcHR5LiBXaGVuIHRoaXMgb3B0aW9uIGlzIGVtcHR5LCB0aGUgcHJvdG8gZmlsZSBuYW1lIHdpbGwgYmUgdXNlZAogZm9yIGRldGVybWluaW5nIHRoZSBuYW1lc3BhY2UuCgoNCgUECgISBBIEpwMCCgoNCgUECgISBRIEpwMLEQoNCgUECgISARIEpwMSKAoNCgUECgISAxIEpwMrLQrCAQoEBAoCExIErAMCJBqzASBVc2UgdGhpcyBvcHRpb24gdG8gY2hhbmdlIHRoZSBwYWNrYWdlIG9mIHJ1YnkgZ2VuZXJhdGVkIGNsYXNzZXMuIERlZmF1bHQKIGlzIGVtcHR5LiBXaGVuIHRoaXMgb3B0aW9uIGlzIG5vdCBzZXQsIHRoZSBwYWNrYWdlIG5hbWUgd2lsbCBiZSB1c2VkIGZvcgogZGV0ZXJtaW5pbmcgdGhlIHJ1YnkgcGFja2FnZS4KCg0KBQQKAhMEEgSsAwIKCg0KBQQKAhMFEgSsAwsRCg0KBQQKAhMBEgSsAxIeCg0KBQQKAhMDEgSsAyEjCnwKBAQKAhQSBLADAjoabiBUaGUgcGFyc2VyIHN0b3JlcyBvcHRpb25zIGl0IGRvZXNuJ3QgcmVjb2duaXplIGhlcmUuCiBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSAiT3B0aW9ucyIgc2VjdGlvbiBhYm92ZS4KCg0KBQQKAhQEEgSwAwIKCg0KBQQKAhQGEgSwAwseCg0KBQQKAhQBEgSwAx8zCg0KBQQKAhQDEgSwAzY5CocBCgMECgUSBLQDAhkaeiBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuCiBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSAiT3B0aW9ucyIgc2VjdGlvbiBhYm92ZS4KCgwKBAQKBQASBLQDDRgKDQoFBAoFAAESBLQDDREKDQoFBAoFAAISBLQDFRgKCwoDBAoJEgS2AwIOCgwKBAQKCQASBLYDCw0KDQoFBAoJAAESBLYDCw0KDQoFBAoJAAISBLYDCw0KDAoCBAsSBrkDAPgDAQoLCgMECwESBLkDCBYK2AUKBAQLAgASBMwDAjwayQUgU2V0IHRydWUgdG8gdXNlIHRoZSBvbGQgcHJvdG8xIE1lc3NhZ2VTZXQgd2lyZSBmb3JtYXQgZm9yIGV4dGVuc2lvbnMuCiBUaGlzIGlzIHByb3ZpZGVkIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBNZXNzYWdlU2V0IHdpcmUKIGZvcm1hdC4gIFlvdSBzaG91bGQgbm90IHVzZSB0aGlzIGZvciBhbnkgb3RoZXIgcmVhc29uOiAgSXQncyBsZXNzCiBlZmZpY2llbnQsIGhhcyBmZXdlciBmZWF0dXJlcywgYW5kIGlzIG1vcmUgY29tcGxpY2F0ZWQuCgogVGhlIG1lc3NhZ2UgbXVzdCBiZSBkZWZpbmVkIGV4YWN0bHkgYXMgZm9sbG93czoKICAgbWVzc2FnZSBGb28gewogICAgIG9wdGlvbiBtZXNzYWdlX3NldF93aXJlX2Zvcm1hdCA9IHRydWU7CiAgICAgZXh0ZW5zaW9ucyA0IHRvIG1heDsKICAgfQogTm90ZSB0aGF0IHRoZSBtZXNzYWdlIGNhbm5vdCBoYXZlIGFueSBkZWZpbmVkIGZpZWxkczsgTWVzc2FnZVNldHMgb25seQogaGF2ZSBleHRlbnNpb25zLgoKIEFsbCBleHRlbnNpb25zIG9mIHlvdXIgdHlwZSBtdXN0IGJlIHNpbmd1bGFyIG1lc3NhZ2VzOyBlLmcuIHRoZXkgY2Fubm90CiBiZSBpbnQzMnMsIGVudW1zLCBvciByZXBlYXRlZCBtZXNzYWdlcy4KCiBCZWNhdXNlIHRoaXMgaXMgYW4gb3B0aW9uLCB0aGUgYWJvdmUgdHdvIHJlc3RyaWN0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hgQTFAraAgoEBAwCARIEjQQCGxrLAiBUaGUgcGFja2VkIG9wdGlvbiBjYW4gYmUgZW5hYmxlZCBmb3IgcmVwZWF0ZWQgcHJpbWl0aXZlIGZpZWxkcyB0byBlbmFibGUKIGEgbW9yZSBlZmZpY2llbnQgcmVwcmVzZW50YXRpb24gb24gdGhlIHdpcmUuIFJhdGhlciB0aGFuIHJlcGVhdGVkbHkKIHdyaXRpbmcgdGhlIHRhZyBhbmQgdHlwZSBmb3IgZWFjaCBlbGVtZW50LCB0aGUgZW50aXJlIGFycmF5IGlzIGVuY29kZWQgYXMKIGEgc2luZ2xlIGxlbmd0aC1kZWxpbWl0ZWQgYmxvYi4gSW4gcHJvdG8zLCBvbmx5IGV4cGxpY2l0IHNldHRpbmcgaXQgdG8KIGZhbHNlIHdpbGwgYXZvaWQgdXNpbmcgcGFja2VkIGVuY29kaW5nLgoKDQoFBAwCAQQSBI0EAgoKDQoFBAwCAQUSBI0ECw8KDQoFBAwCAQESBI0EEBYKDQoFBAwCAQMSBI0EGRoKmgUKBAQMAgISBJoEAjMaiwUgVGhlIGpzdHlwZSBvcHRpb24gZGV0ZXJtaW5lcyB0aGUgSmF2YVNjcmlwdCB0eXBlIHVzZWQgZm9yIHZhbHVlcyBvZiB0aGUKIGZpZWxkLiAgVGhlIG9wdGlvbiBpcyBwZXJtaXR0ZWQgb25seSBmb3IgNjQgYml0IGludGVncmFsIGFuZCBmaXhlZCB0eXBlcwogKGludDY0LCB1aW50NjQsIHNpbnQ2NCwgZml4ZWQ2NCwgc2ZpeGVkNjQpLiAgQSBmaWVsZCB3aXRoIGpzdHlwZSBKU19TVFJJTkcKIGlzIHJlcHJlc2VudGVkIGFzIEphdmFTY3JpcHQgc3RyaW5nLCB3aGljaCBhdm9pZHMgbG9zcyBvZiBwcmVjaXNpb24gdGhhdAogY2FuIGhhcHBlbiB3aGVuIGEgbGFyZ2UgdmFsdWUgaXMgY29udmVydGVkIHRvIGEgZmxvYXRpbmcgcG9pbnQgSmF2YVNjcmlwdC4KIFNwZWNpZnlpbmcgSlNfTlVNQkVSIGZvciB0aGUganN0eXBlIGNhdXNlcyB0aGUgZ2VuZXJhdGVkIEphdmFTY3JpcHQgY29kZSB0bwogdXNlIHRoZSBKYXZhU2NyaXB0ICJudW1iZXIiIHR5cGUuICBUaGUgYmVoYXZpb3Igb2YgdGhlIGRlZmF1bHQgb3B0aW9uCiBKU19OT1JNQUwgaXMgaW1wbGVtZW50YXRpb24gZGVwZW5kZW50LgoKIFRoaXMgb3B0aW9uIGlzIGFuIGVudW0gdG8gcGVybWl0IGFkZGl0aW9uYWwgdHlwZXMgdG8gYmUgYWRkZWQsIGUuZy4KIGdvb2cubWF0aC5JbnRlZ2VyLgoKDQoFBAwCAgQSBJoEAgoKDQoFBAwCAgYSBJoECxEKDQoFBAwCAgESBJoEEhgKDQoFBAwCAgMSBJoEGxwKDQoFBAwCAggSBJoEHTIKDQoFBAwCAgcSBJoEKDEKDgoEBAwEARIGmwQCpAQDCg0KBQQMBAEBEgSbBAcNCicKBgQMBAECABIEnQQEEhoXIFVzZSB0aGUgZGVmYXVsdCB0eXBlLgoKDwoHBAwEAQIAARIEnQQEDQoPCgcEDAQBAgACEgSdBBARCikKBgQMBAECARIEoAQEEhoZIFVzZSBKYXZhU2NyaXB0IHN0cmluZ3MuCgoPCgcEDAQBAgEBEgSgBAQNCg8KBwQMBAECAQISBKAEEBEKKQoGBAwEAQICEgSjBAQSGhkgVXNlIEphdmFTY3JpcHQgbnVtYmVycy4KCg8KBwQMBAECAgESBKMEBA0KDwoHBAwEAQICAhIEowQQEQrvDAoEBAwCAxIEwgQCKRrgDCBTaG91bGQgdGhpcyBmaWVsZCBiZSBwYXJzZWQgbGF6aWx5PyAgTGF6eSBhcHBsaWVzIG9ubHkgdG8gbWVzc2FnZS10eXBlCiBmaWVsZHMuICBJdCBtZWFucyB0aGF0IHdoZW4gdGhlIG91dGVyIG1lc3NhZ2UgaXMgaW5pdGlhbGx5IHBhcnNlZCwgdGhlCiBpbm5lciBtZXNzYWdlJ3MgY29udGVudHMgd2lsbCBub3QgYmUgcGFyc2VkIGJ1dCBpbnN0ZWFkIHN0b3JlZCBpbiBlbmNvZGVkCiBmb3JtLiAgVGhlIGlubmVyIG1lc3NhZ2Ugd2lsbCBhY3R1YWxseSBiZSBwYXJzZWQgd2hlbiBpdCBpcyBmaXJzdCBhY2Nlc3NlZC4KCiBUaGlzIGlzIG9ubHkgYSBoaW50LiAgSW1wbGVtZW50YXRpb25zIGFyZSBmcmVlIHRvIGNob29zZSB3aGV0aGVyIHRvIHVzZQogZWFnZXIgb3IgbGF6eSBwYXJzaW5nIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uLiAgSG93ZXZlciwKIHNldHRpbmcgdGhpcyBvcHRpb24gdHJ1ZSBzdWdnZXN0cyB0aGF0IHRoZSBwcm90b2NvbCBhdXRob3IgYmVsaWV2ZXMgdGhhdAogdXNpbmcgbGF6eSBwYXJzaW5nIG9uIHRoaXMgZmllbGQgaXMgd29ydGggdGhlIGFkZGl0aW9uYWwgYm9va2tlZXBpbmcKIG92ZXJoZWFkIHR5cGljYWxseSBuZWVkZWQgdG8gaW1wbGVtZW50IGl0LgoKIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCB0aGUgcHVibGljIGludGVyZmFjZSBvZiBhbnkgZ2VuZXJhdGVkIGNvZGU7CiBhbGwgbWV0aG9kIHNpZ25hdHVyZXMgcmVtYWluIHRoZSBzYW1lLiAgRnVydGhlcm1vcmUsIHRocmVhZC1zYWZldHkgb2YgdGhlCiBpbnRlcmZhY2UgaXMgbm90IGFmZmVjdGVkIGJ5IHRoaXMgb3B0aW9uOyBjb25zdCBtZXRob2RzIHJlbWFpbiBzYWZlIHRvCiBjYWxsIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBjb25jdXJyZW50bHksIHdoaWxlIG5vbi1jb25zdCBtZXRob2RzIGNvbnRpbnVlCiB0byByZXF1aXJlIGV4Y2x1c2l2ZSBhY2Nlc3MuCgoKIE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzIHdpdGhpbgogYSBsYXp5IHN1Yi1tZXNzYWdlLiAgVGhhdCBpcywgY2FsbGluZyBJc0luaXRpYWxpemVkKCkgb24gdGhlIG91dGVyIG1lc3NhZ2UKIG1heSByZXR1cm4gdHJ1ZSBldmVuIGlmIHRoZSBpbm5lciBtZXNzYWdlIGhhcyBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkcy4KIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBpbm5lciBtZXNzYWdlIHdvdWxkIGhhdmUgdG8g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BBEFAAESBLIFDREKDQoFBBEFAAISBLIFFRgKiwMKAgQSEga8BQDQBQEa/AIgQSBtZXNzYWdlIHJlcHJlc2VudGluZyBhIG9wdGlvbiB0aGUgcGFyc2VyIGRvZXMgbm90IHJlY29nbml6ZS4gVGhpcyBvbmx5CiBhcHBlYXJzIGluIG9wdGlvbnMgcHJvdG9zIGNyZWF0ZWQgYnkgdGhlIGNvbXBpbGVyOjpQYXJzZXIgY2xhc3MuCiBEZXNjcmlwdG9yUG9vbCByZXNvbHZlcyB0aGVzZSB3aGVuIGJ1aWxkaW5nIERlc2NyaXB0b3Igb2JqZWN0cy4gVGhlcmVmb3JlLAogb3B0aW9ucyBwcm90b3MgaW4gZGVzY3JpcHRvciBvYmplY3RzIChlLmcuIHJldHVybmVkIGJ5IERlc2NyaXB0b3I6Om9wdGlvbnMoKSwKIG9yIHByb2R1Y2VkIGJ5IERlc2NyaXB0b3I6OkNvcHlUbygpKSB3aWxsIG5ldmVyIGhhdmUgVW5pbnRlcnByZXRlZE9wdGlvbnMKIGluIHRoZW0uCgoLCgMEEgESBLwFCBsKywIKBAQSAwASBsIFAsUFAxq6AiBUaGUgbmFtZSBvZiB0aGUgdW5pbnRlcnByZXRlZCBvcHRpb24uICBFYWNoIHN0cmluZyByZXByZXNlbnRzIGEgc2VnbWVudCBpbgogYSBkb3Qtc2VwYXJhdGVkIG5hbWUuICBpc19leHRlbnNpb24gaXMgdHJ1ZSBpZmYgYSBzZWdtZW50IHJlcHJlc2VudHMgYW4KIGV4dGVuc2lvbiAoZGVub3RlZCB3aXRoIHBhcmVudGhlc2VzIGluIG9wdGlvbnMgc3BlY3MgaW4gLnByb3RvIGZpbGVzKS4KIEUuZy4seyBbImZvbyIsIGZhbHNlXSwgWyJiYXIuYmF6IiwgdHJ1ZV0sIFsicXV4IiwgZmFsc2VdIH0gcmVwcmVzZW50cwogImZvby4oYmFyLmJheikucXV4Ii4KCg0KBQQSAwABEgTCBQoSCg4KBgQSAwACABIEwwUEIgoPCgcEEgMAAgAEEgTDBQQMCg8KBwQSAwACAAUSBMMFDRMKDwoHBBIDAAIAARIEwwUUHQoPCgcEEgMAAgADEgTDBSAhCg4KBgQSAwACARIExAUEIwoPCgcEEgMAAgEEEgTE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b3QgdG8gYW55CiAgIHBhcnRpY3VsYXIgaW5kZXggd2l0aGluIGl0KS4gIFRoaXMgaXMgdXNlZCB3aGVuZXZlciBhIHNldCBvZiBlbGVtZW50cyBhcmUKICAgbG9naWNhbGx5IGVuY2xvc2VkIGluIGEgc2luZ2xlIGNvZGUgc2VnbWVudC4gIEZvciBleGFtcGxlLCBhbiBlbnRpcmUKICAgZXh0ZW5kIGJsb2NrIChwb3NzaWJseSBjb250YWluaW5nIG11bHRpcGxlIGV4dGVuc2lvbiBkZWZpbml0aW9ucykgd2lsbAogICBoYXZlIGFuIG91dGVyIGxvY2F0aW9uIHdob3NlIHBhdGggcmVmZXJzIHRvIHRoZSAiZXh0ZW5zaW9ucyIgcmVwZWF0ZWQKICAgZmllbGQgd2l0aG91dCBhbiBpbmRleC4KIC0gTXVsdGlwbGUgbG9jYXRpb25zIG1heSBoYXZlIHRoZSBzYW1lIHBhdGguICBUaGlzIGhhcHBlbnMgd2hlbiBhIHNpbmdsZQogICBsb2dpY2FsIGRlY2xhcmF0aW9uIGlzIHNwcmVhZCBvdXQgYWNyb3NzIG11bHRpcGxlIHBsYWNlcy4gIFRoZSBtb3N0CiAgIG9idmlvdXMgZXhhbXBsZSBpcyB0aGUgImV4dGVuZCIgYmxvY2sgYWdhaW4gLS0gdGhlcmUgbWF5IGJlIG11bHRpcGxlCiAgIGV4dGVuZCBibG9ja3MgaW4gdGhlIHNhbWUgc2NvcGUsIGVhY2ggb2Ygd2hpY2ggd2lsbCBoYXZlIHRoZSBzYW1lIHBhdGguCiAtIEEgbG9jYXRpb24ncyBzcGFuIGlzIG5vdCBhbHdheXMgYSBzdWJzZXQgb2YgaXRzIHBhcmVudCdzIHNwYW4uICBGb3IKICAgZXhhbXBsZSwgdGhlICJleHRlbmRlZSIgb2YgYW4gZXh0ZW5zaW9uIGRlY2xhcmF0aW9uIGFwcGVhcnMgYXQgdGhlCiAgIGJlZ2lubmluZyBvZiB0aGUgImV4dGVuZCIgYmxvY2sgYW5kIGlzIHNoYXJlZCBieSBhbGwgZXh0ZW5zaW9ucyB3aXRoaW4KICAgdGhlIGJsb2NrLgogLSBKdXN0IGJlY2F1c2UgYSBsb2NhdGlvbidzIHNwYW4gaXMgYSBzdWJzZXQgb2Ygc29tZSBvdGhlciBsb2NhdGlvbidzIHNwYW4KICAgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGEgZGVzY2VuZGVudC4gIEZvciBleGFtcGxlLCBhICJncm91cCIgZGVmaW5lcwogICBib3RoIGEgdHlwZSBhbmQgYSBmaWVsZCBpbiBhIHNpbmdsZSBkZWNsYXJhdGlvbi4gIFRodXMsIHRoZSBsb2NhdGlvbnMKICAgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZSBhbmQgZmllbGQgYW5kIHRoZWlyIGNvbXBvbmVudHMgd2lsbCBvdmVybGFwLgogLSBDb2RlIHdoaWNoIHRyaWVzIHRvIGludGVycHJldCBsb2NhdGlvbnMgc2hvdWxkIHByb2JhYmx5IGJlIGRlc2lnbmVkIHRvCiAgIGlnbm9yZSB0aG9zZSB0aGF0IGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCwgYXMgbW9yZSB0eXBlcyBvZiBsb2NhdGlvbnMgY291bGQKICAgYmUgcmVjb3JkZWQgaW4gdGhlIGZ1dHVyZS4KCg0KBQQTAgAEEgSDBgIKCg0KBQQTAgAGEgSDBgsTCg0KBQQTAgABEgSDBhQcCg0KBQQTAgADEgSDBh8gCg4KBAQTAwASBoQGAtcGAwoNCgUEEwMAARIEhAYKEgqDBwoGBBMDAAIAEgScBgQqGvIGIElkZW50aWZpZXMgd2hpY2ggcGFydCBvZiB0aGUgRmlsZURlc2NyaXB0b3JQcm90byB3YXMgZGVmaW5lZCBhdCB0aGlzCiBsb2NhdGlvbi4KCiBFYWNoIGVsZW1lbnQgaXMgYSBmaWVsZCBudW1iZXIgb3IgYW4gaW5kZXguICBUaGV5IGZvcm0gYSBwYXRoIGZyb20KIHRoZSByb290IEZpbGVEZXNjcmlwdG9yUHJvdG8gdG8gdGhlIHBsYWNlIHdoZXJlIHRoZSBkZWZpbml0aW9uLiAgRm9yCiBleGFtcGxlLCB0aGlzIHBhdGg6CiAgIFsgNCwgMywgMiwgNywgMSBdCiByZWZlcnMgdG86CiAgIGZpbGUubWVzc2FnZV90eXBlKDMpICAvLyA0LCAzCiAgICAgICAuZmllbGQoNykgICAgICAgICAvLyAyLCA3CiAgICAgICAubmFtZSgpICAgICAgICAgICAvLyAxCiBUaGlzIGlzIGJlY2F1c2UgRmlsZURlc2NyaXB0b3JQcm90by5tZXNzYWdlX3R5cGUgaGFzIGZpZWxkIG51bWJlciA0OgogICByZXBlYXRlZCBEZXNjcmlwdG9yUHJvdG8gbWVzc2FnZV90eXBlID0gNDsKIGFuZCBEZXNjcmlwdG9yUHJvdG8uZmllbGQgaGFzIGZpZWxkIG51bWJlciAyOgogICByZXBlYXRlZCBGaWVsZERlc2NyaXB0b3JQcm90byBmaWVsZCA9IDI7CiBhbmQgRmllbGREZXNjcmlwdG9yUHJvdG8ubmFtZSBoYXMgZmllbGQgbnVtYmVyIDE6CiAgIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMTsKCiBUaHVzLCB0aGUgYWJvdmUgcGF0aCBnaXZlcyB0aGUgbG9jYXRpb24gb2YgYSBmaWVsZCBuYW1lLiAgSWYgd2UgcmVtb3ZlZAogdGhlIGxhc3QgZWxlbWVudDoKICAgWyA0LCAzLCAyLCA3IF0KIHRoaXMgcGF0aCByZWZlcnMgdG8gdGhlIHdob2xlIGZpZWxkIGRlY2xhcmF0aW9uIChmcm9tIHRoZSBiZWdpbm5pbmcKIG9mIHRoZSBsYWJlbCB0byB0aGUgdGVybWluYXRpbmcgc2VtaWNvbG9uKS4KCg8KBwQTAwACAAQSBJwGBAwKDwoHBBMDAAIABRIEnAYNEgoPCgcEEwMAAgABEgScBhMXCg8KBwQTAwACAAMSBJwGGhsKDwoHBBMDAAIACBIEnAYcKQoQCggEEwMAAgAIAhIEnAYdKArSAgoGBBMDAAIBEgSjBgQqGsECIEFsd2F5cyBoYXMgZXhhY3RseSB0aHJlZSBvciBmb3VyIGVsZW1lbnRzOiBzdGFydCBsaW5lLCBzdGFydCBjb2x1bW4sCiBlbmQgbGluZSAob3B0aW9uYWwsIG90aGVyd2lzZSBhc3N1bWVkIHNhbWUgYXMgc3RhcnQgbGluZSksIGVuZCBjb2x1bW4uCiBUaGVzZSBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgZmllbGQgZm9yIGVmZmljaWVuY3kuICBOb3RlIHRoYXQgbGluZQogYW5kIGNvbHVtbiBudW1iZXJzIGFyZSB6ZXJvLWJhc2VkIC0tIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50IHRvIGFkZAogMSB0byBlYWNoIGJlZm9yZSBkaXNwbGF5aW5nIHRvIGEgdXNlci4KCg8KBwQTAwACAQQSBKMGBAwKDwoHBBMDAAIBBRIEowYNEgoPCgcEEwMAAgEBEgSjBhMXCg8KBwQTAwACAQMSBKMGGhsKDwoHBBMDAAIBCBIEowYcKQoQCggEEwMAAgEIAhIEowYdKAqlDAoGBBMDAAICEgTUBgQpGpQMIElmIHRoaXMgU291cmNlQ29kZUluZm8gcmVwcmVzZW50cyBhIGNvbXBsZXRlIGRlY2xhcmF0aW9uLCB0aGVzZSBhcmUgYW55CiBjb21tZW50cyBhcHBlYXJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVjbGFyYXRpb24gd2hpY2ggYXBwZWFyIHRvIGJlCiBhdHRhY2hlZCB0byB0aGUgZGVjbGFyYXRpb24uCgogQSBzZXJpZXMgb2YgbGluZSBjb21tZW50cyBhcHBlYXJpbmcgb24gY29uc2VjdXRpdmUgbGluZXMsIHdpdGggbm8gb3RoZXIKIHRva2VucyBhcHBlYXJpbmcgb24gdGhvc2UgbGluZXMsIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBjb21tZW50LgoKIGxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMgd2lsbCBrZWVwIHBhcmFncmFwaHMgb2YgY29tbWVudHMgdGhhdCBhcHBlYXIKIGJlZm9yZSAoYnV0IG5vdCBjb25uZWN0ZWQgdG8pIHRoZSBjdXJyZW50IGVsZW1lbnQuIEVhY2ggcGFyYWdyYXBoLAogc2VwYXJhdGVkIGJ5IGVtcHR5IGxpbmVzLCB3aWxsIGJlIG9uZSBjb21tZW50IGVsZW1lbnQgaW4gdGhlIHJlcGVhdGVkCiBmaWVsZC4KCiBPbmx5IHRoZSBjb21tZW50IGNvbnRlbnQgaXMgcHJvdmlkZWQ7IGNvbW1lbnQgbWFya2VycyAoZS5nLiAvLykgYXJlCiBzdHJpcHBlZCBvdXQuICBGb3IgYmxvY2sgY29tbWVudHMsIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgYW4gYXN0ZXJpc2sKIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggbGluZSBvdGhlciB0aGFuIHRoZSBmaXJzdC4KIE5ld2xpbmVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LgoKIEV4YW1wbGVzOgoKICAgb3B0aW9uYWwgaW50MzIgZm9vID0gMTsgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gZm9vLgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhci4KICAgb3B0aW9uYWwgaW50MzIgYmFyID0gMjsKCiAgIG9wdGlvbmFsIHN0cmluZyBiYXogPSAzOwogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhei4KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIGJhei4KCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gcXV4LgogICAvLwogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gcXV4LgogICBvcHRpb25hbCBkb3VibGUgcXV4ID0gNDsKCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlLiBUaGlzIGlzIG5vdCBsZWFkaW5nIG9yIHRyYWlsaW5nIGNvbW1lbnRzCiAgIC8vIHRvIHF1eCBvciBjb3JnZSBiZWNhdXNlIHRoZXJlIGFyZSBibGFuayBsaW5lcyBzZXBhcmF0aW5nIGl0IGZyb20KICAgLy8gYm90aC4KCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlIHBhcmFncmFwaCAyLgoKICAgb3B0aW9uYWwgc3RyaW5nIGNvcmdlID0gNTsKICAgLyogQmxvY2sgY29tbWVudCBhdHRhY2hlZAogICAgKiB0byBjb3JnZS4gIExlYWRpbmcgYXN0ZXJpc2tzCiAgICAqIHdpbGwgYmUgcmVtb3ZlZC4gKi8KICAgLyogQmxvY2sgY29tbWVudCBhdHRhY2hlZCB0bwogICAgKiBncmF1bHQuICovCiAgIG9wdGlvbmFsIGludDMyIGdyYXVsdCA9IDY7CgogICAvLyBpZ25vcmVkIGRldGFjaGVkIGNvbW1lbnRzLgoKDwoHBBMDAAICBBIE1AYEDAoPCgcEEwMAAgIFEgTUBg0TCg8KBwQTAwACAgESBNQGFCQK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T3B0aW9ucxjt3tkDIAEoDjIOLnZvbHRoYS5BY2Nlc3NSBmFjY2Vzc0JMChpvcmcub3BlbmNvcmQudm9sdGhhLmNvbW1vblouZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3YzL2dvL2NvbW1vbkr3DgoGEgQRADkBCqMFCgEMEgMRABIytwQgQ29weXJpZ2h0IChjKSAyMDE1LCBHb29nbGUgSW5jLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoyXyBUaGlzIGZpbGUgY29udGFpbnMgYW5ub3RhdGlvbiBkZWZpbml0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlCiBhIGNvbmZpZ3VyYXRpb24gdHJlZS4KCggKAQgSAxMARQoJCgIICxIDEwBFCggKAQgSAxQAMwoJCgIIARIDFAAzCggKAQISAxYADwoJCgIDABIDGAAqCgoKAgQAEgQaABwBCgoKAwQAARIDGggRCgsKBAQAAgASAxsEEwoNCgUEAAIABBIEGwQaEwoMCgUEAAIABRIDGwQKCgwKBQQAAgABEgMbCw4KDAoFBAACAAMSAxsREgoKCgIFABIEHgAqAQoKCgMFAAESAx4FCworCgQFAAIAEgMhBA8aHiByZWFkLXdyaXRlLCBzdG9yZWQgYXR0cmlidXRlCgoMCgUFAAIAARIDIQQKCgwKBQUAAgACEgMhDQ4KSgoEBQACARIDJAQSGj0gcmVhZC1vbmx5IGZpZWxkLCBzdG9yZWQgd2l0aCB0aGUgbW9kZWwsIGNvdmVyZWQgYnkgaXRzIGhhc2gKCgwKBQUAAgEBEgMkBA0KDAoFBQACAQISAyQQEQqRAQoEBQACAhIDKAQSGoMBIEEgcmVhZC1vbmx5IGF0dHJpYnV0ZSB0aGF0IGlzIG5vdCBzdG9yZWQgaW4gdGhlIG1vZGVsLCBub3QgY292ZXJlZAogYnkgaXRzIGhhc2gsIGl0cyB2YWx1ZSBpcyBmaWxsZWQgcmVhbC10aW1lIHVwb24gZWFjaCByZXF1ZXN0LgoKDAoFBQACAgESAygEDQoMCgUFAAICAhIDKBARCgkKAQcSBCwAOQEKjAIKAgcAEgMyBCMagAIgSWYgcHJlc2VudCwgaXQgaW5kaWNhdGVzIHRoYXQgdGhpcyBmaWVsZCBpcyBzdG9yZWQgYXMgZXh0ZXJuYWwgY2hpbGQgbm9kZQogb3IgY2hpbGRyZW4gbm9kZXMgaW4gVm9sdGhhJ3MgaW50ZXJuYWwgY29uZmlndXJhdGlvbiB0cmVlLgogSWYgdGhlIGZpZWxkIGlzIGEgY29udGFpbmVyIGZpZWxkIGFuZCBpZiB0aGUgb3B0aW9uIHNwZWNpZmllcyBhIGtleQogdGhlIGNoaWxkIG9iamVjdHMgd2lsbCBiZSBhZGRyZXNzaWJsZSBieSB0aGF0IGtleS4KCgoKAwcAAhIDLAcjCgsKAwcABBIEMgQsJQoKCgMHAAYSAzIEDQoKCgMHAAESAzIOGAoKCgMHAAMSAzIbIgqcAgoCBwESAzgEHBqQAiBUaGlzIGFubm90YXRpb24gY2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBhIGZpZWxkIGlzIHJlYWQtb25seSwKIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIE5CSSBhY2Nlc3MuIEJhY2tlbmQgcGx1Z2lucyBhbmQgc3lzdGVtCiBpbnRlcm5hbHMgY2FuIHVwZGF0ZSB0aGUgZmllbGQgYnV0IHRoZSB1cGRhdGUgcmVxdWVzdHMgdGhyb3VnaCB0aGUKIE5CSSB3aWxsIGlnbm9yZSBmb3IgaW5zdGFuY2UgYSBmaWVsZCB0aGF0IGlzIG1hcmtlZCBhcyByZWFkLW9ubHkgKFJPKS4KCgoKAwcBAhIDLAcjCgsKAwcBBBIEOAQyIwoKCgMHAQYSAzgECgoKCgMHAQESAzgLEQoKCgMHAQMSAzgUG2IGcHJvdG8zCvIvCh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiOwoJVGltZXN0YW1wEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQn4KE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaK2dpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3B0eXBlcy90aW1lc3RhbXD4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK+C0KBxIFHgCIAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAB8KCQoCCB8SAyMAHwoICgEIEgMkAEIKCQoCCAsSAyQAQgoICgEIEgMlACwKCQoCCAESAyUALAoICgEIEgMmAC8KCQoCCAgSAyYALwoICgEIEgMnACIKCQoCCAoSAycAIgoICgEIEgMoACEKCQoCCCQSAygAIQrxGwoCBAASBXwAiAEBGuMbIEEgVGltZXN0YW1wIHJlcHJlc2VudHMgYSBwb2ludCBpbiB0aW1lIGluZGVwZW5kZW50IG9mIGFueSB0aW1lIHpvbmUgb3IgbG9jYWwKIGNhbGVuZGFyLCBlbmNvZGVkIGFzIGEgY291bnQgb2Ygc2Vjb25kcyBhbmQgZnJhY3Rpb25zIG9mIHNlY29uZHMgYXQKIG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gVGhlIGNvdW50IGlzIHJlbGF0aXZlIHRvIGFuIGVwb2NoIGF0IFVUQyBtaWRuaWdodCBvbgogSmFudWFyeSAxLCAxOTcwLCBpbiB0aGUgcHJvbGVwdGljIEdyZWdvcmlhbiBjYWxlbmRhciB3aGljaCBleHRlbmRzIHRoZQogR3JlZ29yaWFuIGNhbGVuZGFyIGJhY2t3YXJkcyB0byB5ZWFyIG9uZS4KCiBBbGwgbWludXRlcyBhcmUgNjAgc2Vjb25kcyBsb25nLiBMZWFwIHNlY29uZHMgYXJlICJzbWVhcmVkIiBzbyB0aGF0IG5vIGxlYXAKIHNlY29uZCB0YWJsZSBpcyBuZWVkZWQgZm9yIGludGVycHJldGF0aW9uLCB1c2luZyBhIFsyNC1ob3VyIGxpbmVhcgogc21lYXJdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3RpbWUvc21lYXIpLgoKIFRoZSByYW5nZSBpcyBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvIDk5OTktMTItMzFUMjM6NTk6NTkuOTk5OTk5OTk5Wi4gQnkKIHJlc3RyaWN0aW5nIHRvIHRoYXQgcmFuZ2UsIHdlIGVuc3VyZSB0aGF0IHdlIGNhbiBjb252ZXJ0IHRvIGFuZCBmcm9tIFtSRkMKIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZGF0ZSBzdHJpbmdzLgoKICMgRXhhbXBsZXMKCiBFeGFtcGxlIDE6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYHRpbWUoKWAuCgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHRpbWUoTlVMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoMCk7CgogRXhhbXBsZSAyOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGBnZXR0aW1lb2ZkYXkoKWAuCgogICAgIHN0cnVjdCB0aW1ldmFsIHR2OwogICAgIGdldHRpbWVvZmRheSgmdHYsIE5VTEwpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0di50dl9zZWMpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3ModHYudHZfdXNlYyAqIDEwMDApOwoKIEV4YW1wbGUgMzogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBXaW4zMiBgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoKWAuCgogICAgIEZJTEVUSU1FIGZ0OwogICAgIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCZmdCk7CiAgICAgVUlOVDY0IHRpY2tzID0gKCgoVUlOVDY0KWZ0LmR3SGlnaERhdGVUaW1lKSA8PCAzMikgfCBmdC5kd0xvd0RhdGVUaW1lOwoKICAgICAvLyBBIFdpbmRvd3MgdGljayBpcyAxMDAgbmFub3NlY29uZHMuIFdpbmRvd3MgZXBvY2ggMTYwMS0wMS0wMVQwMDowMDowMFoKICAgICAvLyBpcyAxMTY0NDQ3MzYwMCBzZWNvbmRzIGJlZm9yZSBVbml4IGVwb2NoIDE5NzAtMDEtMDFUMDA6MDA6MDBaLgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKChJTlQ2NCkgKCh0aWNrcyAvIDEwMDAwMDAwKSAtIDExNjQ0NDczNjAwTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKChJTlQzMikgKCh0aWNrcyAlIDEwMDAwMDAwKSAqIDEwMCkpOwoKIEV4YW1wbGUgNDogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBKYXZhIGBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKWAuCgogICAgIGxvbmcgbWlsbGlzID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXAgPSBUaW1lc3RhbXAubmV3QnVpbGRlcigpLnNldFNlY29uZHMobWlsbGlzIC8gMTAwMCkKICAgICAgICAgLnNldE5hbm9zKChpbnQpICgobWlsbGlzICUgMTAwMCkgKiAxMDAwMDAwKSkuYnVpbGQoKTsKCgogRXhhbXBsZSA1OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIGN1cnJlbnQgdGltZSBpbiBQeXRob24uCgogICAgIHRpbWVzdGFtcCA9IFRpbWVzdGFtcCgpCiAgICAgdGltZXN0YW1wLkdldEN1cnJlbnRUaW1lKCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgVGltZXN0YW1wIHR5cGUgaXMgZW5jb2RlZCBhcyBhIHN0cmluZyBpbiB0aGUKIFtSRkMgMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBmb3JtYXQuIFRoYXQgaXMsIHRoZQogZm9ybWF0IGlzICJ7eWVhcn0te21vbnRofS17ZGF5fVR7aG91cn06e21pbn06e3NlY31bLntmcmFjX3NlY31dWiIKIHdoZXJlIHt5ZWFyfSBpcyBhbHdheXMgZXhwcmVzc2VkIHVzaW5nIGZvdXIgZGlnaXRzIHdoaWxlIHttb250aH0sIHtkYXl9LAoge2hvdXJ9LCB7bWlufSwgYW5kIHtzZWN9IGFyZSB6ZXJvLXBhZGRlZCB0byB0d28gZGlnaXRzIGVhY2guIFRoZSBmcmFjdGlvbmFsCiBzZWNvbmRzLCB3aGljaCBjYW4gZ28gdXAgdG8gOSBkaWdpdHMgKGkuZS4gdXAgdG8gMSBuYW5vc2Vjb25kIHJlc29sdXRpb24pLAogYXJlIG9wdGlvbmFsLiBUaGUgIloiIHN1ZmZpeCBpbmRpY2F0ZXMgdGhlIHRpbWV6b25lICgiVVRDIik7IHRoZSB0aW1lem9uZQogaXMgcmVxdWlyZWQuIEEgcHJvdG8zIEpTT04gc2VyaWFsaXplciBzaG91bGQgYWx3YXlzIHVzZSBVVEMgKGFzIGluZGljYXRlZCBieQogIloiKSB3aGVuIHByaW50aW5nIHRoZSBUaW1lc3RhbXAgdHlwZSBhbmQgYSBwcm90bzMgSlNPTiBwYXJzZXIgc2hvdWxkIGJlCiBhYmxlIHRvIGFjY2VwdCBib3RoIFVUQyBhbmQgb3RoZXIgdGltZXpvbmVzIChhcyBpbmRpY2F0ZWQgYnkgYW4gb2Zmc2V0KS4KCiBGb3IgZXhhbXBsZSwgIjIwMTctMDEtMTVUMDE6MzA6MTUuMDFaIiBlbmNvZGVzIDE1LjAxIHNlY29uZHMgcGFzdAogMDE6MzAgVVRDIG9uIEphbnVhcnkgMTUsIDIwMTcuCgogSW4gSmF2YVNjcmlwdCwgb25lIGNhbiBjb252ZXJ0IGEgRGF0ZSBvYmplY3QgdG8gdGhpcyBmb3JtYXQgdXNpbmcgdGhlCiBzdGFuZGFyZCBbdG9JU09TdHJpbmcoKV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS90b0lTT1N0cmluZykKIG1ldGhvZC4gSW4gUHl0aG9uLCBhIHN0YW5kYXJkIGBkYXRldGltZS5kYXRldGltZWAgb2JqZWN0IGNhbiBiZSBjb252ZXJ0ZWQKIHRvIHRoaXMgZm9ybWF0IHVzaW5nIFtgc3RyZnRpbWVgXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvdGltZS5odG1sI3RpbWUuc3RyZnRpbWUpCiB3aXRoIHRoZSB0aW1lIGZvcm1hdCBzcGVjICclWS0lbS0lZFQlSDolTTolUy4lZlonLiBMaWtld2lzZSwgaW4gSmF2YSwgb25lCiBjYW4gdXNlIHRoZSBKb2RhIFRpbWUncyBbYElTT0RhdGVUaW1lRm9ybWF0LmRhdGVUaW1lKClgXSgKIGh0dHA6Ly93d3cuam9kYS5vcmcvam9kYS10aW1lL2FwaWRvY3Mvb3JnL2pvZGEvdGltZS9mb3JtYXQvSVNPRGF0ZVRpbWVGb3JtYXQuaHRtbCNkYXRlVGltZSUyRCUyRAogKSB0byBvYnRhaW4gYSBmb3JtYXR0ZXIgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgaW4gdGhpcyBmb3JtYXQuCgoKCgoKAwQAARIDfAgRCp0BCgQEAAIAEgSBAQIUGo4BIFJlcHJlc2VudHMgc2Vjb25kcyBvZiBVVEMgdGltZSBzaW5jZSBVbml4IGVwb2NoCiAxOTcwLTAxLTAxVDAwOjAwOjAwWi4gTXVzdCBiZSBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvCiA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmUuCgoOCgUEAAIABBIFgQECfBMKDQoFBAACAAUSBIEBAgcKDQoFBAACAAESBIEBCA8KDQoFBAACAAMSBIEBEhMK5QEKBAQAAgESBIcBAhIa1gEgTm9uLW5lZ2F0aXZlIGZyYWN0aW9ucyBvZiBhIHNlY29uZCBhdCBuYW5vc2Vjb25kIHJlc29sdXRpb24uIE5lZ2F0aXZlCiBzZWNvbmQgdmFsdWVzIHdpdGggZnJhY3Rpb25zIG11c3Qgc3RpbGwgaGF2ZSBub24tbmVnYXRpdmUgbmFub3MgdmFsdWVzCiB0aGF0IGNvdW50IGZvcndhcmQgaW4gdGltZS4gTXVzdCBiZSBmcm9tIDAgdG8gOTk5LDk5OSw5OTkKIGluY2x1c2l2ZS4KCg8KBQQAAgEEEgaHAQKBARQKDQoFBAACAQUSBIcBAgcKDQoFBAACAQESBIcBCA0KDQoFBAACAQMSBIcBEBFiBnByb3RvMwqkEgobdm9sdGhhX3Byb3Rvcy9hZGFwdGVyLnByb3RvEgZ2b2x0aGEaGWdvb2dsZS9wcm90b2J1Zi9hbnkucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhh2b2x0aGFfcHJvdG9zL21ldGEucHJvdG8aH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8iUgoNQWRhcHRlckNvbmZpZxJBChFhZGRpdGlvbmFsX2NvbmZpZxhAIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSEGFkZGl0aW9uYWxDb25maWcixgMKB0FkYXB0ZXISFQoCaWQYASABKAlCBej2zR0BUgJpZBIdCgZ2ZW5kb3IYAiABKAlCBej2zR0BUgZ2ZW5kb3ISHwoHdmVyc2lvbhgDIAEoCUIF6PbNHQFSB3ZlcnNpb24SLQoGY29uZmlnGBAgASgLMhUudm9sdGhhLkFkYXB0ZXJDb25maWdSBmNvbmZpZxJSChZhZGRpdGlvbmFsX2Rlc2NyaXB0aW9uGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUIF6PbNHQFSFWFkZGl0aW9uYWxEZXNjcmlwdGlvbhIsChJsb2dpY2FsX2RldmljZV9pZHMYBCADKAlSEGxvZ2ljYWxEZXZpY2VJZHMSSQoSbGFzdF9jb21tdW5pY2F0aW9uGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRbGFzdENvbW11bmljYXRpb24SJgoOY3VycmVudFJlcGxpY2EYBiABKAVSDmN1cnJlbnRSZXBsaWNhEiQKDXRvdGFsUmVwbGljYXMYByABKAVSDXRvdGFsUmVwbGljYXMSGgoIZW5kcG9pbnQYCCABKAlSCGVuZHBvaW50IjEKCEFkYXB0ZXJzEiUKBWl0ZW1zGAEgAygLMg8udm9sdGhhLkFkYXB0ZXJSBWl0ZW1zQlQKE29yZy5vcGVuY29yZC52b2x0aGFCDVZvbHRoYUFkYXB0ZXJaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92My9nby92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cGF0aBgCIAEoCVIEcGF0aEJqCg5jb20uZ29vZ2xlLmFwaUIJSHR0cFByb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25z+AEBogIER0FQSUqXdAoHEgUPAPsCAQq+BAoBDBIDDwASMrMEIENvcHlyaWdodCAyMDE4IEdvb2dsZSBMTEMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoKCAoBAhIDEQATCggKAQgSAxMAHwoJCgIIHxIDEwAfCggKAQgSAxQAWAoJCgIICxIDFABYCggKAQgSAxUAIgoJCgIIChIDFQAiCggKAQgSAxYAKgoJCgIICBIDFgAqCggKAQgSAxcAJwoJCgIIARIDFwAnCggKAQgSAxgAIgoJCgIIJBIDGAAiCs0BCgIEABIEHQAqARrAASBEZWZpbmVzIHRoZSBIVFRQIGNvbmZpZ3VyYXRpb24gZm9yIGFuIEFQSSBzZXJ2aWNlLiBJdCBjb250YWlucyBhIGxpc3Qgb2YKIFtIdHRwUnVsZV1bZ29vZ2xlLmFwaS5IdHRwUnVsZV0sIGVhY2ggc3BlY2lmeWluZyB0aGUgbWFwcGluZyBvZiBhbiBSUEMgbWV0aG9kCiB0byBvbmUgb3IgbW9yZSBIVFRQIFJFU1QgQVBJIG1ldGhvZHMuCgoKCgMEAAESAx0IDAqiAQoEBAACABIDIQIeGpQBIEEgbGlzdCBvZiBIVFRQIGNvbmZpZ3VyYXRpb24gcnVsZXMgdGhhdCBhcHBseSB0byBpbmRpdmlkdWFsIEFQSSBtZXRob2RzLgoKICoqTk9URToqKiBBbGwgc2VydmljZSBjb25maWd1cmF0aW9uIHJ1bGVzIGZvbGxvdyAibGFzdCBvbmUgd2lucyIgb3JkZXIuCgoMCgUEAAIABBIDIQIKCgwKBQQAAgAGEgMhCxMKDAoFBAACAAESAyEUGQoMCgUEAAIAAxIDIRwdCpMCCgQEAAIBEgMpAisahQIgV2hlbiBzZXQgdG8gdHJ1ZSwgVVJMIHBhdGggcGFybWV0ZXJzIHdpbGwgYmUgZnVsbHkgVVJJLWRlY29kZWQgZXhjZXB0IGluCiBjYXNlcyBvZiBzaW5nbGUgc2VnbWVudCBtYXRjaGVzIGluIHJlc2VydmVkIGV4cGFuc2lvbiwgd2hlcmUgIiUyRiIgd2lsbCBiZQogbGVmdCBlbmNvZGVkLgoKIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIG5vdCBkZWNvZGUgUkZDIDY1NzAgcmVzZXJ2ZWQgY2hhcmFjdGVycyBpbiBtdWx0aQogc2VnbWVudCBtYXRjaGVzLgoKDQoFBAACAQQSBCkCIR4KDAoFBAACAQUSAykCBgoMCgUEAAIBARIDKQcmCgwKBQQAAgEDEgMpKSoKu1MKAgQBEga8AgDyAgEarFMgIyBnUlBDIFRyYW5zY29kaW5nCgogZ1JQQyBUcmFuc2NvZGluZyBpcyBhIGZlYXR1cmUgZm9yIG1hcHBpbmcgYmV0d2VlbiBhIGdSUEMgbWV0aG9kIGFuZCBvbmUgb3IKIG1vcmUgSFRUUCBSRVNUIGVuZHBvaW50cy4gSXQgYWxsb3dzIGRldmVsb3BlcnMgdG8gYnVpbGQgYSBzaW5nbGUgQVBJIHNlcnZpY2UKIHRoYXQgc3VwcG9ydHMgYm90aCBnUlBDIEFQSXMgYW5kIFJFU1QgQVBJcy4gTWFueSBzeXN0ZW1zLCBpbmNsdWRpbmcgW0dvb2dsZQogQVBJc10oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZWFwaXMvZ29vZ2xlYXBpcyksCiBbQ2xvdWQgRW5kcG9pbnRzXShodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vZW5kcG9pbnRzKSwgW2dSUEMKIEdhdGV3YXldKGh0dHBzOi8vZ2l0aHViLmNvbS9ncnBjLWVjb3N5c3RlbS9ncnBjLWdhdGV3YXkpLAogYW5kIFtFbnZveV0oaHR0cHM6Ly9naXRodWIuY29tL2Vudm95cHJveHkvZW52b3kpIHByb3h5IHN1cHBvcnQgdGhpcyBmZWF0dXJlCiBhbmQgdXNlIGl0IGZvciBsYXJnZSBzY2FsZSBwcm9kdWN0aW9uIHNlcnZpY2VzLgoKIGBIdHRwUnVsZWAgZGVmaW5lcyB0aGUgc2NoZW1hIG9mIHRoZSBnUlBDL1JFU1QgbWFwcGluZy4gVGhlIG1hcHBpbmcgc3BlY2lmaWVzCiBob3cgZGlmZmVyZW50IHBvcnRpb25zIG9mIHRoZSBnUlBDIHJlcXVlc3QgbWVzc2FnZSBhcmUgbWFwcGVkIHRvIHRoZSBVUkwKIHBhdGgsIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLCBhbmQgSFRUUCByZXF1ZXN0IGJvZHkuIEl0IGFsc28gY29udHJvbHMgaG93IHRoZQogZ1JQQyByZXNwb25zZSBtZXNzYWdlIGlzIG1hcHBlZCB0byB0aGUgSFRUUCByZXNwb25zZSBib2R5LiBgSHR0cFJ1bGVgIGlzCiB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGFuIGBnb29nbGUuYXBpLmh0dHBgIGFubm90YXRpb24gb24gdGhlIGdSUEMgbWV0aG9kLgoKIEVhY2ggbWFwcGluZyBzcGVjaWZpZXMgYSBVUkwgcGF0aCB0ZW1wbGF0ZSBhbmQgYW4gSFRUUCBtZXRob2QuIFRoZSBwYXRoCiB0ZW1wbGF0ZSBtYXkgcmVmZXIgdG8gb25lIG9yIG1vcmUgZmllbGRzIGluIHRoZSBnUlBDIHJlcXVlc3QgbWVzc2FnZSwgYXMgbG9uZwogYXMgZWFjaCBmaWVsZCBpcyBhIG5vbi1yZXBlYXRlZCBmaWVsZCB3aXRoIGEgcHJpbWl0aXZlIChub24tbWVzc2FnZSkgdHlwZS4KIFRoZSBwYXRoIHRlbXBsYXRlIGNvbnRyb2xzIGhvdyBmaWVsZHMgb2YgdGhlIHJlcXVlc3QgbWVzc2FnZSBhcmUgbWFwcGVkIHRvCiB0aGUgVVJMIHBhdGguCgogRXhhbXBsZToKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIEdldE1lc3NhZ2UoR2V0TWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgICAgZ2V0OiAiL3YxL3tuYW1lPW1lc3NhZ2VzLyp9IgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIHN0cmluZyBuYW1lID0gMTsgLy8gTWFwcGVkIHRvIFVSTCBwYXRoLgogICAgIH0KICAgICBtZXNzYWdlIE1lc3NhZ2UgewogICAgICAgc3RyaW5nIHRleHQgPSAxOyAvLyBUaGUgcmVzb3VyY2UgY29udGVudC4KICAgICB9CgogVGhpcyBlbmFibGVzIGFuIEhUVFAgUkVTVCB0byBnUlBDIG1hcHBpbmcgYXMgYmVsb3c6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgR0VUIC92MS9tZXNzYWdlcy8xMjM0NTZgICB8IGBHZXRNZXNzYWdlKG5hbWU6ICJtZXNzYWdlcy8xMjM0NTYiKWAKCiBBbnkgZmllbGRzIGluIHRoZSByZXF1ZXN0IG1lc3NhZ2Ugd2hpY2ggYXJlIG5vdCBib3VuZCBieSB0aGUgcGF0aCB0ZW1wbGF0ZQogYXV0b21hdGljYWxseSBiZWNvbWUgSFRUUCBxdWVyeSBwYXJhbWV0ZXJzIGlmIHRoZXJlIGlzIG5vIEhUVFAgcmVxdWVzdCBib2R5LgogRm9yIGV4YW1wbGU6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBHZXRNZXNzYWdlKEdldE1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICAgIGdldDoiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBHZXRNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBtZXNzYWdlIFN1Yk1lc3NhZ2UgewogICAgICAgICBzdHJpbmcgc3ViZmllbGQgPSAxOwogICAgICAgfQogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOyAvLyBNYXBwZWQgdG8gVVJMIHBhdGguCiAgICAgICBpbnQ2NCByZXZpc2lvbiA9IDI7ICAgIC8vIE1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVyIGByZXZpc2lvbmAuCiAgICAgICBTdWJNZXNzYWdlIHN1YiA9IDM7ICAgIC8vIE1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVyIGBzdWIuc3ViZmllbGRgLgogICAgIH0KCiBUaGlzIGVuYWJsZXMgYSBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmcgYXMgYmVsb3c6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgR0VUIC92MS9tZXNzYWdlcy8xMjM0NTY/cmV2aXNpb249MiZzdWIuc3ViZmllbGQ9Zm9vYCB8CiBgR2V0TWVzc2FnZShtZXNzYWdlX2lkOiAiMTIzNDU2IiByZXZpc2lvbjogMiBzdWI6IFN1Yk1lc3NhZ2Uoc3ViZmllbGQ6CiAiZm9vIikpYAoKIE5vdGUgdGhhdCBmaWVsZHMgd2hpY2ggYXJlIG1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVycyBtdXN0IGhhdmUgYQogcHJpbWl0aXZlIHR5cGUgb3IgYSByZXBlYXRlZCBwcmltaXRpdmUgdHlwZSBvciBhIG5vbi1yZXBlYXRlZCBtZXNzYWdlIHR5cGUuCiBJbiB0aGUgY2FzZSBvZiBhIHJlcGVhdGVkIHR5cGUsIHRoZSBwYXJhbWV0ZXIgY2FuIGJlIHJlcGVhdGVkIGluIHRoZSBVUkwKIGFzIGAuLi4/cGFyYW09QSZwYXJhbT1CYC4gSW4gdGhlIGNhc2Ugb2YgYSBtZXNzYWdlIHR5cGUsIGVhY2ggZmllbGQgb2YgdGhlCiBtZXNzYWdlIGlzIG1hcHBlZCB0byBhIHNlcGFyYXRlIHBhcmFtZXRlciwgc3VjaCBhcwogYC4uLj9mb28uYT1BJmZvby5iPUImZm9vLmM9Q2AuCgogRm9yIEhUVFAgbWV0aG9kcyB0aGF0IGFsbG93IGEgcmVxdWVzdCBib2R5LCB0aGUgYGJvZHlgIGZpZWxkCiBzcGVjaWZpZXMgdGhlIG1hcHBpbmcuIENvbnNpZGVyIGEgUkVTVCB1cGRhdGUgbWV0aG9kIG9uIHRoZQogbWVzc2FnZSByZXNvdXJjZSBjb2xsZWN0aW9uOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgVXBkYXRlTWVzc2FnZShVcGRhdGVNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgcGF0Y2g6ICIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIGJvZHk6ICJtZXNzYWdlIgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIFVwZGF0ZU1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsgLy8gbWFwcGVkIHRvIHRoZSBVUkwKICAgICAgIE1lc3NhZ2UgbWVzc2FnZSA9IDI7ICAgLy8gbWFwcGVkIHRvIHRoZSBib2R5CiAgICAgfQoKIFRoZSBmb2xsb3dpbmcgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nIGlzIGVuYWJsZWQsIHdoZXJlIHRoZQogcmVwcmVzZW50YXRpb24gb2YgdGhlIEpTT04gaW4gdGhlIHJlcXVlc3QgYm9keSBpcyBkZXRlcm1pbmVkIGJ5CiBwcm90b3MgSlNPTiBlbmNvZGluZzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBQQVRDSCAvdjEvbWVzc2FnZXMvMTIzNDU2IHsgInRleHQiOiAiSGkhIiB9YCB8IGBVcGRhdGVNZXNzYWdlKG1lc3NhZ2VfaWQ6CiAiMTIzNDU2IiBtZXNzYWdlIHsgdGV4dDogIkhpISIgfSlgCgogVGhlIHNwZWNpYWwgbmFtZSBgKmAgY2FuIGJlIHVzZWQgaW4gdGhlIGJvZHkgbWFwcGluZyB0byBkZWZpbmUgdGhhdAogZXZlcnkgZmllbGQgbm90IGJvdW5kIGJ5IHRoZSBwYXRoIHRlbXBsYXRlIHNob3VsZCBiZSBtYXBwZWQgdG8gdGhlCiByZXF1ZXN0IGJvZHkuICBUaGlzIGVuYWJsZXMgdGhlIGZvbGxvd2luZyBhbHRlcm5hdGl2ZSBkZWZpbml0aW9uIG9mCiB0aGUgdXBkYXRlIG1ldGhvZDoKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIFVwZGF0ZU1lc3NhZ2UoTWVzc2FnZSkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgcGF0Y2g6ICIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIGJvZHk6ICIqIgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIE1lc3NhZ2UgewogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOwogICAgICAgc3RyaW5nIHRleHQgPSAyOwogICAgIH0KCgogVGhlIGZvbGxvd2luZyBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmcgaXMgZW5hYmxlZDoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBQQVRDSCAvdjEvbWVzc2FnZXMvMTIzNDU2IHsgInRleHQiOiAiSGkhIiB9YCB8IGBVcGRhdGVNZXNzYWdlKG1lc3NhZ2VfaWQ6CiAiMTIzNDU2IiB0ZXh0OiAiSGkhIilgCgogTm90ZSB0aGF0IHdoZW4gdXNpbmcgYCpgIGluIHRoZSBib2R5IG1hcHBpbmcsIGl0IGlzIG5vdCBwb3NzaWJsZSB0bwogaGF2ZSBIVFRQIHBhcmFtZXRlcnMsIGFzIGFsbCBmaWVsZHMgbm90IGJvdW5kIGJ5IHRoZSBwYXRoIGVuZCBpbgogdGhlIGJvZHkuIFRoaXMgbWFrZXMgdGhpcyBvcHRpb24gbW9yZSByYXJlbHkgdXNlZCBpbiBwcmFjdGljZSB3aGVuCiBkZWZpbmluZyBSRVNUIEFQSXMuIFRoZSBjb21tb24gdXNhZ2Ugb2YgYCpgIGlzIGluIGN1c3RvbSBtZXRob2RzCiB3aGljaCBkb24ndCB1c2UgdGhlIFVSTCBhdCBhbGwgZm9yIHRyYW5zZmVycmluZyBkYXRhLgoKIEl0IGlzIHBvc3NpYmxlIHRvIGRlZmluZSBtdWx0aXBsZSBIVFRQIG1ldGhvZHMgZm9yIG9uZSBSUEMgYnkgdXNpbmcKIHRoZSBgYWRkaXRpb25hbF9iaW5kaW5nc2Agb3B0aW9uLiBFeGFtcGxlOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgR2V0TWVzc2FnZShHZXRNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgZ2V0OiAiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICBhZGRpdGlvbmFsX2JpbmRpbmdzIHsKICAgICAgICAgICAgIGdldDogIi92MS91c2Vycy97dXNlcl9pZH0vbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIH0KICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBHZXRNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7CiAgICAgICBzdHJpbmcgdXNlcl9pZCA9IDI7CiAgICAgfQoKIFRoaXMgZW5hYmxlcyB0aGUgZm9sbG93aW5nIHR3byBhbHRlcm5hdGl2ZSBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmdzOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYEdFVCAvdjEvbWVzc2FnZXMvMTIzNDU2YCB8IGBHZXRNZXNzYWdlKG1lc3NhZ2VfaWQ6ICIxMjM0NTYiKWAKIGBHRVQgL3YxL3VzZXJzL21lL21lc3NhZ2VzLzEyMzQ1NmAgfCBgR2V0TWVzc2FnZSh1c2VyX2lkOiAibWUiIG1lc3NhZ2VfaWQ6CiAiMTIzNDU2IilgCgogIyMgUnVsZXMgZm9yIEhUVFAgbWFwcGluZwoKIDEuIExlYWYgcmVxdWVzdCBmaWVsZHMgKHJlY3Vyc2l2ZSBleHBhbnNpb24gbmVzdGVkIG1lc3NhZ2VzIGluIHRoZSByZXF1ZXN0CiAgICBtZXNzYWdlKSBhcmUgY2xhc3NpZmllZCBpbnRvIHRocmVlIGNhdGVnb3JpZXM6CiAgICAtIEZpZWxkcyByZWZlcnJlZCBieSB0aGUgcGF0aCB0ZW1wbGF0ZS4gVGhleSBhcmUgcGFzc2VkIHZpYSB0aGUgVVJMIHBhdGguCiAgICAtIEZpZWxkcyByZWZlcnJlZCBieSB0aGUgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0uIFRoZXkKICAgIGFyZSBwYXNzZWQgdmlhIHRoZSBIVFRQCiAgICAgIHJlcXVlc3QgYm9keS4KICAgIC0gQWxsIG90aGVyIGZpZWxkcyBhcmUgcGFzc2VkIHZpYSB0aGUgVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGFuZCB0aGUKICAgICAgcGFyYW1ldGVyIG5hbWUgaXMgdGhlIGZpZWxkIHBhdGggaW4gdGhlIHJlcXVlc3QgbWVzc2FnZS4gQSByZXBlYXRlZAogICAgICBmaWVsZCBjYW4gYmUgcmVwcmVzZW50ZWQgYXMgbXVsdGlwbGUgcXVlcnkgcGFyYW1ldGVycyB1bmRlciB0aGUgc2FtZQogICAgICBuYW1lLgogIDIuIElmIFtIdHRwUnVsZS5ib2R5XVtnb29nbGUuYXBpLkh0dHBSdWxlLmJvZHldIGlzICIqIiwgdGhlcmUgaXMgbm8gVVJMCiAgcXVlcnkgcGFyYW1ldGVyLCBhbGwgZmllbGRzCiAgICAgYXJlIHBhc3NlZCB2aWEgVVJMIHBhdGggYW5kIEhUVFAgcmVxdWVzdCBib2R5LgogIDMuIElmIFtIdHRwUnVsZS5ib2R5XVtnb29nbGUuYXBpLkh0dHBSdWxlLmJvZHldIGlzIG9taXR0ZWQsIHRoZXJlIGlzIG5vIEhUVFAKICByZXF1ZXN0IGJvZHksIGFsbAogICAgIGZpZWxkcyBhcmUgcGFzc2VkIHZpYSBVUkwgcGF0aCBhbmQgVVJMIHF1ZXJ5IHBhcmFtZXRlcnMuCgogIyMjIFBhdGggdGVtcGxhdGUgc3ludGF4CgogICAgIFRlbXBsYXRlID0gIi8iIFNlZ21lbnRzIFsgVmVyYiBdIDsKICAgICBTZWdtZW50cyA9IFNlZ21lbnQgeyAiLyIgU2VnbWVudCB9IDsKICAgICBTZWdtZW50ICA9ICIqIiB8ICIqKiIgfCBMSVRFUkFMIHwgVmFyaWFibGUgOwogICAgIFZhcmlhYmxlID0gInsiIEZpZWxkUGF0aCBbICI9IiBTZWdtZW50cyBdICJ9IiA7CiAgICAgRmllbGRQYXRoID0gSURFTlQgeyAiLiIgSURFTlQgfSA7CiAgICAgVmVyYiAgICAgPSAiOiIgTElURVJBTCA7CgogVGhlIHN5bnRheCBgKmAgbWF0Y2hlcyBhIHNpbmdsZSBVUkwgcGF0aCBzZWdtZW50LiBUaGUgc3ludGF4IGAqKmAgbWF0Y2hlcwogemVybyBvciBtb3JlIFVSTCBwYXRoIHNlZ21lbnRzLCB3aGljaCBtdXN0IGJlIHRoZSBsYXN0IHBhcnQgb2YgdGhlIFVSTCBwYXRoCiBleGNlcHQgdGhlIGBWZXJiYC4KCiBUaGUgc3ludGF4IGBWYXJpYWJsZWAgbWF0Y2hlcyBwYXJ0IG9mIHRoZSBVUkwgcGF0aCBhcyBzcGVjaWZpZWQgYnkgaXRzCiB0ZW1wbGF0ZS4gQSB2YXJpYWJsZSB0ZW1wbGF0ZSBtdXN0IG5vdCBjb250YWluIG90aGVyIHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZQogbWF0Y2hlcyBhIHNpbmdsZSBwYXRoIHNlZ21lbnQsIGl0cyB0ZW1wbGF0ZSBtYXkgYmUgb21pdHRlZCwgZS5nLiBge3Zhcn1gCiBpcyBlcXVpdmFsZW50IHRvIGB7dmFyPSp9YC4KCiBUaGUgc3ludGF4IGBMSVRFUkFMYCBtYXRjaGVzIGxpdGVyYWwgdGV4dCBpbiB0aGUgVVJMIHBhdGguIElmIHRoZSBgTElURVJBTGAKIGNvbnRhaW5zIGFueSByZXNlcnZlZCBjaGFyYWN0ZXIsIHN1Y2ggY2hhcmFjdGVycyBzaG91bGQgYmUgcGVyY2VudC1lbmNvZGVkCiBiZWZvcmUgdGhlIG1hdGNoaW5nLgoKIElmIGEgdmFyaWFibGUgY29udGFpbnMgZXhhY3RseSBvbmUgcGF0aCBzZWdtZW50LCBzdWNoIGFzIGAie3Zhcn0iYCBvcgogYCJ7dmFyPSp9ImAsIHdoZW4gc3VjaCBhIHZhcmlhYmxlIGlzIGV4cGFuZGVkIGludG8gYSBVUkwgcGF0aCBvbiB0aGUgY2xpZW50CiBzaWRlLCBhbGwgY2hhcmFjdGVycyBleGNlcHQgYFstXy5+MC05YS16QS1aXWAgYXJlIHBlcmNlbnQtZW5jb2RlZC4gVGhlCiBzZXJ2ZXIgc2lkZSBkb2VzIHRoZSByZXZlcnNlIGRlY29kaW5nLiBTdWNoIHZhcmlhYmxlcyBzaG93IHVwIGluIHRoZQogW0Rpc2NvdmVyeQogRG9jdW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2Rpc2NvdmVyeS92MS9yZWZlcmVuY2UvYXBpcykgYXMKIGB7dmFyfWAuCgogSWYgYSB2YXJpYWJsZSBjb250YWlucyBtdWx0aXBsZSBwYXRoIHNlZ21lbnRzLCBzdWNoIGFzIGAie3Zhcj1mb28vKn0iYAogb3IgYCJ7dmFyPSoqfSJgLCB3aGVuIHN1Y2ggYSB2YXJpYWJsZSBpcyBleHBhbmRlZCBpbnRvIGEgVVJMIHBhdGggb24gdGhlCiBjbGllbnQgc2lkZSwgYWxsIGNoYXJhY3RlcnMgZXhjZXB0IGBbLV8ufi8wLTlhLXpBLVpdYCBhcmUgcGVyY2VudC1lbmNvZGVkLgogVGhlIHNlcnZlciBzaWRlIGRvZXMgdGhlIHJldmVyc2UgZGVjb2RpbmcsIGV4Y2VwdCAiJTJGIiBhbmQgIiUyZiIgYXJlIGxlZnQKIHVuY2hhbmdlZC4gU3VjaCB2YXJpYWJsZXMgc2hvdyB1cCBpbiB0aGUKIFtEaXNjb3ZlcnkKIERvY3VtZW50XShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9kaXNjb3ZlcnkvdjEvcmVmZXJlbmNlL2FwaXMpIGFzCiBgeyt2YXJ9YC4KCiAjIyBVc2luZyBnUlBDIEFQSSBTZXJ2aWNlIENvbmZpZ3VyYXRpb24KCiBnUlBDIEFQSSBTZXJ2aWNlIENvbmZpZ3VyYXRpb24gKHNlcnZpY2UgY29uZmlnKSBpcyBhIGNvbmZpZ3VyYXRpb24gbGFuZ3VhZ2UKIGZvciBjb25maWd1cmluZyBhIGdSUEMgc2VydmljZSB0byBiZWNvbWUgYSB1c2VyLWZhY2luZyBwcm9kdWN0LiBUaGUKIHNlcnZpY2UgY29uZmlnIGlzIHNpbXBseSB0aGUgWUFNTCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYGdvb2dsZS5hcGkuU2VydmljZWAKIHByb3RvIG1lc3NhZ2UuCgogQXMgYW4gYWx0ZXJuYXRpdmUgdG8gYW5ub3RhdGluZyB5b3VyIHByb3RvIGZpbGUsIHlvdSBjYW4gY29uZmlndXJlIGdSUEMKIHRyYW5zY29kaW5nIGluIHlvdXIgc2VydmljZSBjb25maWcgWUFNTCBmaWxlcy4gWW91IGRvIHRoaXMgYnkgc3BlY2lmeWluZyBhCiBgSHR0cFJ1bGVgIHRoYXQgbWFwcyB0aGUgZ1JQQyBtZXRob2QgdG8gYSBSRVNUIGVuZHBvaW50LCBhY2hpZXZpbmcgdGhlIHNhbWUKIGVmZmVjdCBhcyB0aGUgcHJvdG8gYW5ub3RhdGlvbi4gVGhpcyBjYW4gYmUgcGFydGljdWxhcmx5IHVzZWZ1bCBpZiB5b3UKIGhhdmUgYSBwcm90byB0aGF0IGlzIHJldXNlZCBpbiBtdWx0aXBsZSBzZXJ2aWNlcy4gTm90ZSB0aGF0IGFueSB0cmFuc2NvZGluZwogc3BlY2lmaWVkIGluIHRoZSBzZXJ2aWNlIGNvbmZpZyB3aWxsIG92ZXJyaWRlIGFueSBtYXRjaGluZyB0cmFuc2NvZGluZwogY29uZmlndXJhdGlvbiBpbiB0aGUgcHJvdG8uCgogRXhhbXBsZToKCiAgICAgaHR0cDoKICAgICAgIHJ1bGVzOgogICAgICAgICAjIFNlbGVjdHMgYSBnUlBDIG1ldGhvZCBhbmQgYXBwbGllcyBIdHRwUnVsZSB0byBpdC4KICAgICAgICAgLSBzZWxlY3RvcjogZXhhbXBsZS52MS5NZXNzYWdpbmcuR2V0TWVzc2FnZQogICAgICAgICAgIGdldDogL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfS97c3ViLnN1YmZpZWxkfQoKICMjIFNwZWNpYWwgbm90ZXMKCiBXaGVuIGdSUEMgVHJhbnNjb2RpbmcgaXMgdXNlZCB0byBtYXAgYSBnUlBDIHRvIEpTT04gUkVTVCBlbmRwb2ludHMsIHRoZQogcHJvdG8gdG8gSlNPTiBjb252ZXJzaW9uIG11c3QgZm9sbG93IHRoZSBbcHJvdG8zCiBzcGVjaWZpY2F0aW9uXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8zI2pzb24pLgoKIFdoaWxlIHRoZSBzaW5nbGUgc2VnbWVudCB2YXJpYWJsZSBmb2xsb3dzIHRoZSBzZW1hbnRpY3Mgb2YKIFtSRkMgNjU3MF0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY1NzApIFNlY3Rpb24gMy4yLjIgU2ltcGxlIFN0cmluZwogRXhwYW5zaW9uLCB0aGUgbXVsdGkgc2VnbWVudCB2YXJpYWJsZSAqKmRvZXMgbm90KiogZm9sbG93IFJGQyA2NTcwIFNlY3Rpb24KIDMuMi4zIFJlc2VydmVkIEV4cGFuc2lvbi4gVGhlIHJlYXNvbiBpcyB0aGF0IHRoZSBSZXNlcnZlZCBFeHBhbnNpb24KIGRvZXMgbm90IGV4cGFuZCBzcGVjaWFsIGNoYXJhY3RlcnMgbGlrZSBgP2AgYW5kIGAjYCwgd2hpY2ggd291bGQgbGVhZAogdG8gaW52YWxpZCBVUkxzLiBBcyB0aGUgcmVzdWx0LCBnUlBDIFRyYW5zY29kaW5nIHVzZXMgYSBjdXN0b20gZW5jb2RpbmcKIGZvciBtdWx0aSBzZWdtZW50IHZhcmlhYmxlcy4KCiBUaGUgcGF0aCB2YXJpYWJsZXMgKiptdXN0IG5vdCoqIHJlZmVyIHRvIGFueSByZXBlYXRlZCBvciBtYXBwZWQgZmllbGQsCiBiZWNhdXNlIGNsaWVudCBsaWJyYXJpZXMgYXJlIG5vdCBjYXBhYmxlIG9mIGhhbmRsaW5nIHN1Y2ggdmFyaWFibGUgZXhwYW5zaW9uLgoKIFRoZSBwYXRoIHZhcmlhYmxlcyAqKm11c3Qgbm90KiogY2FwdHVyZSB0aGUgbGVhZGluZyAiLyIgY2hhcmFjdGVyLiBUaGUgcmVhc29uCiBpcyB0aGF0IHRoZSBtb3N0IGNvbW1vbiB1c2UgY2FzZSAie3Zhcn0iIGRvZXMgbm90IGNhcHR1cmUgdGhlIGxlYWRpbmcgIi8iCiBjaGFyYWN0ZXIuIEZvciBjb25zaXN0ZW5jeSwgYWxsIHBhdGggdmFyaWFibGVzIG11c3Qgc2hhcmUgdGhlIHNhbWUgYmVoYXZpb3IuCgogUmVwZWF0ZWQgbWVzc2FnZSBmaWVsZHMgbXVzdCBub3QgYmUgbWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLCBiZWNhdXNlCiBubyBjbGllbnQgbGlicmFyeSBjYW4gc3VwcG9ydCBzdWNoIGNvbXBsaWNhdGVkIG1hcHBpbmcuCgogSWYgYW4gQVBJIG5lZWRzIHRvIHVzZSBhIEpTT04gYXJyYXkgZm9yIHJlcXVlc3Qgb3IgcmVzcG9uc2UgYm9keSwgaXQgY2FuIG1hcAogdGhlIHJlcXVlc3Qgb3IgcmVzcG9uc2UgYm9keSB0byBhIHJlcGVhdGVkIGZpZWxkLiBIb3dldmVyLCBzb21lIGdSUEMKIFRyYW5zY29kaW5nIGltcGxlbWVudGF0aW9ucyBtYXkgbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlLgoKCwoDBAEBEgS8AggQCo8BCgQEAQIAEgTBAgIWGoABIFNlbGVjdHMgYSBtZXRob2QgdG8gd2hpY2ggdGhpcyBydWxlIGFwcGxpZXMuCgogUmVmZXIgdG8gW3NlbGVjdG9yXVtnb29nbGUuYXBpLkRvY3VtZW50YXRpb25SdWxlLnNlbGVjdG9yXSBmb3Igc3ludGF4CiBkZXRhaWxzLgoKDwoFBAECAAQSBsECArwCEgoNCgUEAQIABRIEwQICCAoNCgUEAQIAARIEwQIJEQoNCgUEAQIAAxIEwQIUFQrQAQoEBAEIABIGxgIC3AIDGr8BIERldGVybWluZXMgdGhlIFVSTCBwYXR0ZXJuIGlzIG1hdGNoZWQgYnkgdGhpcyBy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CAoNCgUEAQIIARIE7AIJFgoNCgUEAQIIAxIE7AIZGwq7AQoEBAECCRIE8QICLRqsASBBZGRpdGlvbmFsIEhUVFAgYmluZGluZ3MgZm9yIHRoZSBzZWxlY3Rvci4gTmVzdGVkIGJpbmRpbmdzIG11c3QKIG5vdCBjb250YWluIGFuIGBhZGRpdGlvbmFsX2JpbmRpbmdzYCBmaWVsZCB0aGVtc2VsdmVzICh0aGF0IGlzLAogdGhlIG5lc3RpbmcgbWF5IG9ubHkgYmUgb25lIGxldmVsIGRlZXApLgoKDQoFBAECCQQSBPECAgoKDQoFBAECCQYSBPECCxMKDQoFBAECCQESBPECFCcKDQoFBAECCQMSBPECKiwKRwoCBAISBvUCAPsCARo5IEEgY3VzdG9tIHBhdHRlcm4gaXMgdXNlZCBmb3IgZGVmaW5pbmcgY3VzdG9tIEhUVFAgdmVyYi4KCgsKAwQCARIE9QIIGQoyCgQEAgIAEgT3AgISGiQgVGhlIG5hbWUgb2YgdGhpcyBjdXN0b20gSFRUUCB2ZXJiLgoKDwoFBAICAAQSBvcCAvUCGwoNCgUEAgIABRIE9wICCAoNCgUEAgIAARIE9wIJDQoNCgUEAgIAAxIE9wIQEQo1CgQEAgIBEgT6AgISGicgVGhlIHBhdGggbWF0Y2hlZCBieSB0aGlzIGN1c3RvbSB2ZXJiLgoKDwoFBAICAQQSBvoCAvcCEgoNCgUEAgIBBRIE+gICCAoNCgUEAgIBARIE+gIJDQoNCgUEAgIBAxIE+gIQEWIGcHJvdG8zCucIChxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvEgpnb29nbGUuYXBpGhVnb29nbGUvYXBpL2h0dHAucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvOksKBGh0dHASHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiwyrwiIAEoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGVSBGh0dHBCbgoOY29tLmdvb2dsZS5hcGlCEEFubm90YXRpb25zUHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnOiAgRHQVBJSrwGCgYSBA4AHgEKwgQKAQwSAw4AEjK3BCBDb3B5cmlnaHQgKGMpIDIwMTUsIEdvb2dsZSBJbmMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoICgECEgMQABMKCQoCAwASAxIAHwoJCgIDARIDEwAqCggKAQgSAxUAWAoJCgIICxIDFQBYCggKAQgSAxYAIgoJCgIIChIDFgAiCggKAQgSAxcAMQoJCgIICBIDFwAxCggKAQgSAxgAJwoJCgIIARIDGAAnCggKAQgSAxkAIgoJCgIIJBIDGQAiCgkKAQcSBBsAHgEKHAoCBwASAx0CGxoRIFNlZSBgSHR0cFJ1bGVgLgoKCgoDBwACEgMbByQKCwoDBwAEEgQdAhsmCgoKAwcABhIDHQIKCgoKAwcAARIDHQsPCgoKAwcAAxIDHRIaYgZwcm90bzMKhv0HCh92b2x0aGFfcHJvdG9zL29wZW5mbG93XzEzLnByb3RvEgtvcGVuZmxvd18xMxocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90byJjCgpvZnBfaGVhZGVyEhgKB3ZlcnNpb24YASABKA1SB3ZlcnNpb24SKQoEdHlwZRgCIAEoDjIVLm9wZW5mbG93XzEzLm9mcF90eXBlUgR0eXBlEhAKA3hpZBgDIAEoDVIDeGlkIqsBChVvZnBfaGVsbG9fZWxlbV9oZWFkZXISNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm9mcF9oZWxsb19lbGVtX3R5cGVSBHR5cGUSUQoNdmVyc2lvbmJpdG1hcBgCIAEoCzIpLm9wZW5mbG93XzEzLm9mcF9oZWxsb19lbGVtX3ZlcnNpb25iaXRtYXBIAFINdmVyc2lvbmJpdG1hcEIJCgdlbGVtZW50IjgKHG9mcF9oZWxsb19lbGVtX3ZlcnNpb25iaXRtYXASGAoHYml0bWFwcxgCIAMoDVIHYml0bWFwcyJLCglvZnBfaGVsbG8SPgoIZWxlbWVudHMYASADKAsyIi5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV9oZWFkZXJSCGVsZW1lbnRzIk0KEW9mcF9zd2l0Y2hfY29uZmlnEhQKBWZsYWdzGAEgASgNUgVmbGFncxIiCg1taXNzX3NlbmRfbGVuGAIgASgNUgttaXNzU2VuZExlbiJCCg1vZnBfdGFibGVfbW9kEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhYKBmNvbmZpZxgCIAEoDVIGY29uZmlnIqACCghvZnBfcG9ydBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SFwoHaHdfYWRkchgCIAMoDVIGaHdBZGRyEhIKBG5hbWUYAyABKAlSBG5hbWUSFgoGY29uZmlnGAQgASgNUgZjb25maWcSFAoFc3RhdGUYBSABKA1SBXN0YXRlEhIKBGN1cnIYBiABKA1SBGN1cnISHgoKYWR2ZXJ0aXNlZBgHIAEoDVIKYWR2ZXJ0aXNlZBIcCglzdXBwb3J0ZWQYCCABKA1SCXN1cHBvcnRlZBISCgRwZWVyGAkgASgNUgRwZWVyEh0KCmN1cnJfc3BlZWQYCiABKA1SCWN1cnJTcGVlZBIbCgltYXhfc3BlZWQYCyABKA1SCG1heFNwZWVkIrUBChNvZnBfc3dpdGNoX2ZlYXR1cmVzEh8KC2RhdGFwYXRoX2lkGAEgASgEUgpkYXRhcGF0aElkEhsKCW5fYnVmZmVycxgCIAEoDVIIbkJ1ZmZlcnMSGQoIbl90YWJsZXMYAyABKA1SB25UYWJsZXMSIQoMYXV4aWxpYXJ5X2lkGAQgASgNUgthdXhpbGlhcnlJZBIiCgxjYXBhYmlsaXRpZXMYBSABKA1SDGNhcGFiaWxpdGllcyJyCg9vZnBfcG9ydF9zdGF0dXMSNAoGcmVhc29uGAEgASgOMhwub3BlbmZsb3dfMTMub2ZwX3BvcnRfcmVhc29uUgZyZWFzb24SKQoEZGVzYxgCIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9wb3J0UgRkZXNjIooBCgxvZnBfcG9ydF9tb2QSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhcKB2h3X2FkZHIYAiADKA1SBmh3QWRkchIWCgZjb25maWcYAyABKA1SBmNvbmZpZxISCgRtYXNrGAQgASgNUgRtYXNrEhwKCWFkdmVydGlzZRgFIAEoDVIJYWR2ZXJ0aXNlIncKCW9mcF9tYXRjaBIvCgR0eXBlGAEgASgOMhsub3BlbmZsb3dfMTMub2ZwX21hdGNoX3R5cGVSBHR5cGUSOQoKb3htX2ZpZWxkcxgCIAMoCzIaLm9wZW5mbG93XzEzLm9mcF9veG1fZmllbGRSCW94bUZpZWxkcyLqAQoNb2ZwX294bV9maWVsZBI3CglveG1fY2xhc3MYASABKA4yGi5vcGVuZmxvd18xMy5vZnBfb3htX2NsYXNzUghveG1DbGFzcxI9CglvZmJfZmllbGQYBCABKAsyHi5vcGVuZmxvd18xMy5vZnBfb3htX29mYl9maWVsZEgAUghvZmJGaWVsZBJYChJleHBlcmltZW50ZXJfZmllbGQYBSABKAsyJy5vcGVuZmxvd18xMy5vZnBfb3htX2V4cGVyaW1lbnRlcl9maWVsZEgAUhFleHBlcmltZW50ZXJGaWVsZEIHCgVmaWVsZCLXDgoRb2ZwX294bV9vZmJfZmllbGQSNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm94bV9vZmJfZmllbGRfdHlwZXNSBHR5cGUSGQoIaGFzX21hc2sYAiABKAhSB2hhc01hc2sSFAoEcG9ydBgDIAEoDUgAUgRwb3J0EiUKDXBoeXNpY2FsX3BvcnQYBCABKA1IAFIMcGh5c2ljYWxQb3J0EicKDnRhYmxlX21ldGFkYXRhGAUgASgESABSDXRhYmxlTWV0YWRhdGESGQoHZXRoX2RzdBgGIAEoDEgAUgZldGhEc3QSGQoHZXRoX3NyYxgHIAEoDEgAUgZldGhTcmMSGwoIZXRoX3R5cGUYCCABKA1IAFIHZXRoVHlwZRIbCgh2bGFuX3ZpZBgJIAEoDUgAUgd2bGFuVmlkEhsKCHZsYW5fcGNwGAogASgNSABSB3ZsYW5QY3ASGQoHaXBfZHNjcBgLIAEoDUgAUgZpcERzY3ASFwoGaXBfZWNuGAwgASgNSABSBWlwRWNuEhsKCGlwX3Byb3RvGA0gASgNSABSB2lwUHJvdG8SGwoIaXB2NF9zcmMYDiABKA1IAFIHaXB2NFNyYxIbCghpcHY0X2RzdBgPIAEoDUgAUgdpcHY0RHN0EhkKB3RjcF9zcmMYECABKA1IAFIGdGNwU3JjEhkKB3RjcF9kc3QYESABKA1IAFIGdGNwRHN0EhkKB3VkcF9zcmMYEiABKA1IAFIGdWRwU3JjEhkKB3VkcF9kc3QYEyABKA1IAFIGdWRwRHN0EhsKCHNjdHBfc3JjGBQgASgNSABSB3NjdHBTcmMSGwoIc2N0cF9kc3QYFSABKA1IAFIHc2N0cERzdBIhCgtpY21wdjRfdHlwZRgWIAEoDUgAUgppY21wdjRUeXBlEiEKC2ljbXB2NF9jb2RlGBcgASgNSABSCmljbXB2NENvZGUSFwoGYXJwX29wGBggASgNSABSBWFycE9wEhkKB2FycF9zcGEYGSABKA1IAFIGYXJwU3BhEhkKB2FycF90cGEYGiABKA1IAFIGYXJwVHBhEhkKB2FycF9zaGEYGyABKAxIAFIGYXJwU2hhEhkKB2FycF90aGEYHCABKAxIAFIGYXJwVGhhEhsKCGlwdjZfc3JjGB0gASgMSABSB2lwdjZTcmMSGwoIaXB2Nl9kc3QYHiABKAxIAFIHaXB2NkRzdBIhCgtpcHY2X2ZsYWJlbBgfIAEoDUgAUgppcHY2RmxhYmVsEiEKC2ljbXB2Nl90eXBlGCAgASgNSABSCmljbXB2NlR5cGUSIQoLaWNtcHY2X2NvZGUYISABKA1IAFIKaWNtcHY2Q29kZRImCg5pcHY2X25kX3RhcmdldBgiIAEoDEgAUgxpcHY2TmRUYXJnZXQSIAoLaXB2Nl9uZF9zc2wYIyABKAxIAFIJaXB2Nk5kU3NsEiAKC2lwdjZfbmRfdGxsGCQgASgMSABSCWlwdjZOZFRsbBIfCgptcGxzX2xhYmVsGCUgASgNSABSCW1wbHNMYWJlbBIZCgdtcGxzX3RjGCYgASgNSABSBm1wbHNUYxIbCghtcGxzX2JvcxgnIAEoDUgAUgdtcGxzQm9zEhsKCHBiYl9pc2lkGCggASgNSABSB3BiYklzaWQSHQoJdHVubmVsX2lkGCkgASgESABSCHR1bm5lbElkEiEKC2lwdjZfZXh0aGRyGCogASgNSABSCmlwdjZFeHRoZHISMAoTdGFibGVfbWV0YWRhdGFfbWFzaxhpIAEoBEgBUhF0YWJsZU1ldGFkYXRhTWFzaxIiCgxldGhfZHN0X21hc2sYaiABKAxIAVIKZXRoRHN0TWFzaxIiCgxldGhfc3JjX21hc2sYayABKAxIAVIKZXRoU3JjTWFzaxIkCg12bGFuX3ZpZF9tYXNrGG0gASgNSAFSC3ZsYW5WaWRNYXNrEiQKDWlwdjRfc3JjX21hc2sYciABKA1IAVILaXB2NFNyY01hc2sSJAoNaXB2NF9kc3RfbWFzaxhzIAEoDUgBUgtpcHY0RHN0TWFzaxIiCgxhcnBfc3BhX21hc2sYfSABKA1IAVIKYXJwU3BhTWFzaxIiCgxhcnBfdHBhX21hc2sYfiABKA1IAVIKYXJwVHBhTWFzaxIlCg1pcHY2X3NyY19tYXNrGIEBIAEoDEgBUgtpcHY2U3JjTWFzaxIlCg1pcHY2X2RzdF9tYXNrGIIBIAEoDEgBUgtpcHY2RHN0TWFzaxIrChBpcHY2X2ZsYWJlbF9tYXNrGIMBIAEoDUgBUg5pcHY2RmxhYmVsTWFzaxIlCg1wYmJfaXNpZF9tYXNrGIwBIAEoDUgBUgtwYmJJc2lkTWFzaxInCg50dW5uZWxfaWRfbWFzaxiNASABKARIAVIMdHVubmVsSWRNYXNrEisKEGlwdjZfZXh0aGRyX21hc2sYjgEgASgNSAFSDmlwdjZFeHRoZHJNYXNrQgcKBXZhbHVlQgYKBG1hc2siXwoab2ZwX294bV9leHBlcmltZW50ZXJfZmllbGQSHQoKb3htX2hlYWRlchgBIAEoDVIJb3htSGVhZGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyIrIECgpvZnBfYWN0aW9uEjAKBHR5cGUYASABKA4yHC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3R5cGVSBHR5cGUSOAoGb3V0cHV0GAIgASgLMh4ub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9vdXRwdXRIAFIGb3V0cHV0Ej0KCG1wbHNfdHRsGAMgASgLMiAub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9tcGxzX3R0bEgAUgdtcGxzVHRsEjIKBHB1c2gYBCABKAsyHC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3B1c2hIAFIEcHVzaBI9Cghwb3BfbXBscxgFIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fcG9wX21wbHNIAFIHcG9wTXBscxI1CgVncm91cBgGIAEoCzIdLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fZ3JvdXBIAFIFZ3JvdXASNwoGbndfdHRsGAcgASgLMh4ub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9ud190dGxIAFIFbndUdGwSQAoJc2V0X2ZpZWxkGAggASgLMiEub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9zZXRfZmllbGRIAFIIc2V0RmllbGQSSgoMZXhwZXJpbWVudGVyGAkgASgLMiQub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQggKBmFjdGlvbiJAChFvZnBfYWN0aW9uX291dHB1dBISCgRwb3J0GAEgASgNUgRwb3J0EhcKB21heF9sZW4YAiABKA1SBm1heExlbiIwChNvZnBfYWN0aW9uX21wbHNfdHRsEhkKCG1wbHNfdHRsGAEgASgNUgdtcGxzVHRsIi8KD29mcF9hY3Rpb25fcHVzaBIcCglldGhlcnR5cGUYASABKA1SCWV0aGVydHlwZSIzChNvZnBfYWN0aW9uX3BvcF9tcGxzEhwKCWV0aGVydHlwZRgBIAEoDVIJZXRoZXJ0eXBlIi0KEG9mcF9hY3Rpb25fZ3JvdXASGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQiKgoRb2ZwX2FjdGlvbl9ud190dGwSFQoGbndfdHRsGAEgASgNUgVud1R0bCJIChRvZnBfYWN0aW9uX3NldF9maWVsZBIwCgVmaWVsZBgBIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9veG1fZmllbGRSBWZpZWxkIlEKF29mcF9hY3Rpb25fZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAiABKAxSBGRhdGEinAMKD29mcF9pbnN0cnVjdGlvbhISCgR0eXBlGAEgASgNUgR0eXBlEkgKCmdvdG9fdGFibGUYAiABKAsyJy5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fZ290b190YWJsZUgAUglnb3RvVGFibGUSVAoOd3JpdGVfbWV0YWRhdGEYAyABKAsyKy5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fd3JpdGVfbWV0YWRhdGFIAFINd3JpdGVNZXRhZGF0YRJACgdhY3Rpb25zGAQgASgLMiQub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2FjdGlvbnNIAFIHYWN0aW9ucxI6CgVtZXRlchgFIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9tZXRlckgAUgVtZXRlchJPCgxleHBlcmltZW50ZXIYBiABKAsyKS5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIGCgRkYXRhIjcKGm9mcF9pbnN0cnVjdGlvbl9nb3RvX3RhYmxlEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkImEKHm9mcF9pbnN0cnVjdGlvbl93cml0ZV9tZXRhZGF0YRIaCghtZXRhZGF0YRgBIAEoBFIIbWV0YWRhdGESIwoNbWV0YWRhdGFfbWFzaxgCIAEoBFIMbWV0YWRhdGFNYXNrIkwKF29mcF9pbnN0cnVjdGlvbl9hY3Rpb25zEjEKB2FjdGlvbnMYASADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIjIKFW9mcF9pbnN0cnVjdGlvbl9tZXRlchIZCghtZXRlcl9pZBgBIAEoDVIHbWV0ZXJJZCJWChxvZnBfaW5zdHJ1Y3Rpb25fZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAiABKAxSBGRhdGEi3AMKDG9mcF9mbG93X21vZBIWCgZjb29raWUYASABKARSBmNvb2tpZRIfCgtjb29raWVfbWFzaxgCIAEoBFIKY29va2llTWFzaxIZCgh0YWJsZV9pZBgDIAEoDVIHdGFibGVJZBI7Cgdjb21tYW5kGAQgASgOMiEub3BlbmZsb3dfMTMub2ZwX2Zsb3dfbW9kX2NvbW1hbmRSB2NvbW1hbmQSIQoMaWRsZV90aW1lb3V0GAUgASgNUgtpZGxlVGltZW91dBIhCgxoYXJkX3RpbWVvdXQYBiABKA1SC2hhcmRUaW1lb3V0EhoKCHByaW9yaXR5GAcgASgNUghwcmlvcml0eRIbCglidWZmZXJfaWQYCCABKA1SCGJ1ZmZlcklkEhkKCG91dF9wb3J0GAkgASgNUgdvdXRQb3J0EhsKCW91dF9ncm91cBgKIAEoDVIIb3V0R3JvdXASFAoFZmxhZ3MYCyABKA1SBWZsYWdzEiwKBW1hdGNoGAwgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBJACgxpbnN0cnVjdGlvbnMYDSADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyKXAQoKb2ZwX2J1Y2tldBIWCgZ3ZWlnaHQYASABKA1SBndlaWdodBIdCgp3YXRjaF9wb3J0GAIgASgNUgl3YXRjaFBvcnQSHwoLd2F0Y2hfZ3JvdXAYAyABKA1SCndhdGNoR3JvdXASMQoHYWN0aW9ucxgEIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25SB2FjdGlvbnMizAEKDW9mcF9ncm91cF9tb2QSPAoHY29tbWFuZBgBIAEoDjIiLm9wZW5mbG93XzEzLm9mcF9ncm91cF9tb2RfY29tbWFuZFIHY29tbWFuZBIvCgR0eXBlGAIgASgOMhsub3BlbmZsb3dfMTMub2ZwX2dyb3VwX3R5cGVSBHR5cGUSGQoIZ3JvdXBfaWQYAyABKA1SB2dyb3VwSWQSMQoHYnVja2V0cxgEIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9idWNrZXRSB2J1Y2tldHMijQEKDm9mcF9wYWNrZXRfb3V0EhsKCWJ1ZmZlcl9pZBgBIAEoDVIIYnVmZmVySWQSFwoHaW5fcG9ydBgCIAEoDVIGaW5Qb3J0EjEKB2FjdGlvbnMYAyADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zEhIKBGRhdGEYBCABKAxSBGRhdGEi3AEKDW9mcF9wYWNrZXRfaW4SGwoJYnVmZmVyX2lkGAEgASgNUghidWZmZXJJZBI5CgZyZWFzb24YAiABKA4yIS5vcGVuZmxvd18xMy5vZnBfcGFja2V0X2luX3JlYXNvblIGcmVhc29uEhkKCHRhYmxlX2lkGAMgASgNUgd0YWJsZUlkEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEiwKBW1hdGNoGAUgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBISCgRkYXRhGAYgASgMUgRkYXRhIp0DChBvZnBfZmxvd19yZW1vdmVkEhYKBmNvb2tpZRgBIAEoBFIGY29va2llEhoKCHByaW9yaXR5GAIgASgNUghwcmlvcml0eRI8CgZyZWFzb24YAyABKA4yJC5vcGVuZmxvd18xMy5vZnBfZmxvd19yZW1vdmVkX3JlYXNvblIGcmVhc29uEhkKCHRhYmxlX2lkGAQgASgNUgd0YWJsZUlkEiEKDGR1cmF0aW9uX3NlYxgFIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgGIAEoDVIMZHVyYXRpb25Oc2VjEiEKDGlkbGVfdGltZW91dBgHIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAggASgNUgtoYXJkVGltZW91dBIhCgxwYWNrZXRfY291bnQYCSABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYCiABKARSCWJ5dGVDb3VudBIsCgVtYXRjaBh5IAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gi3AIKFW9mcF9tZXRlcl9iYW5kX2hlYWRlchI0CgR0eXBlGAEgASgOMiAub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfdHlwZVIEdHlwZRISCgRyYXRlGAIgASgNUgRyYXRlEh0KCmJ1cnN0X3NpemUYAyABKA1SCWJ1cnN0U2l6ZRI2CgRkcm9wGAQgASgLMiAub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZHJvcEgAUgRkcm9wEkoKC2RzY3BfcmVtYXJrGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZHNjcF9yZW1hcmtIAFIKZHNjcFJlbWFyaxJOCgxleHBlcmltZW50ZXIYBiABKAsyKC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQgYKBGRhdGEiFQoTb2ZwX21ldGVyX2JhbmRfZHJvcCI7ChpvZnBfbWV0ZXJfYmFuZF9kc2NwX3JlbWFyaxIdCgpwcmVjX2xldmVsGAEgASgNUglwcmVjTGV2ZWwiQQobb2ZwX21ldGVyX2JhbmRfZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyIrgBCg1vZnBfbWV0ZXJfbW9kEjwKB2NvbW1hbmQYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfbW9kX2NvbW1hbmRSB2NvbW1hbmQSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhkKCG1ldGVyX2lkGAMgASgNUgdtZXRlcklkEjgKBWJhbmRzGAQgAygLMiIub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfaGVhZGVyUgViYW5kcyJLCg1vZnBfZXJyb3JfbXNnEhIKBHR5cGUYASABKA1SBHR5cGUSEgoEY29kZRgCIAEoDVIEY29kZRISCgRkYXRhGAMgASgMUgRkYXRhIoMBChpvZnBfZXJyb3JfZXhwZXJpbWVudGVyX21zZxISCgR0eXBlGAEgASgNUgR0eXBlEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEiIKDGV4cGVyaW1lbnRlchgDIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYBCABKAxSBGRhdGEidgoVb2ZwX211bHRpcGFydF9yZXF1ZXN0EjMKBHR5cGUYASABKA4yHy5vcGVuZmxvd18xMy5vZnBfbXVsdGlwYXJ0X3R5cGVSBHR5cGUSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhIKBGJvZHkYAyABKAxSBGJvZHkidAoTb2ZwX211bHRpcGFydF9yZXBseRIzCgR0eXBlGAEgASgOMh8ub3BlbmZsb3dfMTMub2ZwX211bHRpcGFydF90eXBlUgR0eXBlEhQKBWZsYWdzGAIgASgNUgVmbGFncxISCgRib2R5GAMgASgMUgRib2R5Io8BCghvZnBfZGVzYxIZCghtZnJfZGVzYxgBIAEoCVIHbWZyRGVzYxIXCgdod19kZXNjGAIgASgJUgZod0Rlc2MSFwoHc3dfZGVzYxgDIAEoCVIGc3dEZXNjEh0KCnNlcmlhbF9udW0YBCABKAlSCXNlcmlhbE51bRIXCgdkcF9kZXNjGAUgASgJUgZkcERlc2Mi0gEKFm9mcF9mbG93X3N0YXRzX3JlcXVlc3QSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSGQoIb3V0X3BvcnQYAiABKA1SB291dFBvcnQSGwoJb3V0X2dyb3VwGAMgASgNUghvdXRHcm91cBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIfCgtjb29raWVfbWFzaxgFIAEoBFIKY29va2llTWFzaxIsCgVtYXRjaBgGIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gixQMKDm9mcF9mbG93X3N0YXRzEg4KAmlkGA4gASgEUgJpZBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIhCgxkdXJhdGlvbl9zZWMYAiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYAyABKA1SDGR1cmF0aW9uTnNlYxIaCghwcmlvcml0eRgEIAEoDVIIcHJpb3JpdHkSIQoMaWRsZV90aW1lb3V0GAUgASgNUgtpZGxlVGltZW91dBIhCgxoYXJkX3RpbWVvdXQYBiABKA1SC2hhcmRUaW1lb3V0EhQKBWZsYWdzGAcgASgNUgVmbGFncxIWCgZjb29raWUYCCABKARSBmNvb2tpZRIhCgxwYWNrZXRfY291bnQYCSABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYCiABKARSCWJ5dGVDb3VudBIsCgVtYXRjaBgMIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSQAoMaW5zdHJ1Y3Rpb25zGA0gAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMi1wEKG29mcF9hZ2dyZWdhdGVfc3RhdHNfcmVxdWVzdBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIZCghvdXRfcG9ydBgCIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYAyABKA1SCG91dEdyb3VwEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEh8KC2Nvb2tpZV9tYXNrGAUgASgEUgpjb29raWVNYXNrEiwKBW1hdGNoGAYgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaCJ8ChlvZnBfYWdncmVnYXRlX3N0YXRzX3JlcGx5EiEKDHBhY2tldF9jb3VudBgBIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgCIAEoBFIJYnl0ZUNvdW50Eh0KCmZsb3dfY291bnQYAyABKA1SCWZsb3dDb3VudCLtAwoab2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcGVydHkSPAoEdHlwZRgBIAEoDjIoLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfdHlwZVIEdHlwZRJWCgxpbnN0cnVjdGlvbnMYAiABKAsyMC5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2luc3RydWN0aW9uc0gAUgxpbnN0cnVjdGlvbnMSUgoLbmV4dF90YWJsZXMYAyABKAsyLy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX25leHRfdGFibGVzSABSCm5leHRUYWJsZXMSRwoHYWN0aW9ucxgEIAEoCzIrLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfYWN0aW9uc0gAUgdhY3Rpb25zEjsKA294bRgFIAEoCzInLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3Bfb3htSABSA294bRJWCgxleHBlcmltZW50ZXIYBiABKAsyMC5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCBwoFdmFsdWUiZwojb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9pbnN0cnVjdGlvbnMSQAoMaW5zdHJ1Y3Rpb25zGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMiSgoib2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9uZXh0X3RhYmxlcxIkCg5uZXh0X3RhYmxlX2lkcxgBIAMoDVIMbmV4dFRhYmxlSWRzIlMKHm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfYWN0aW9ucxIxCgdhY3Rpb25zGAEgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucyI1ChpvZnBfdGFibGVfZmVhdHVyZV9wcm9wX294bRIXCgdveG1faWRzGAMgAygNUgZveG1JZHMikQEKI29mcF90YWJsZV9mZWF0dXJlX3Byb3BfZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAMgASgNUgdleHBUeXBlEisKEWV4cGVyaW1lbnRlcl9kYXRhGAQgAygNUhBleHBlcmltZW50ZXJEYXRhIpMCChJvZnBfdGFibGVfZmVhdHVyZXMSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSEgoEbmFtZRgCIAEoCVIEbmFtZRIlCg5tZXRhZGF0YV9tYXRjaBgDIAEoBFINbWV0YWRhdGFNYXRjaBIlCg5tZXRhZGF0YV93cml0ZRgEIAEoBFINbWV0YWRhdGFXcml0ZRIWCgZjb25maWcYBSABKA1SBmNvbmZpZxIfCgttYXhfZW50cmllcxgGIAEoDVIKbWF4RW50cmllcxJHCgpwcm9wZXJ0aWVzGAcgAygLMicub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcGVydHlSCnByb3BlcnRpZXMilwEKD29mcF90YWJsZV9zdGF0cxIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIhCgxhY3RpdmVfY291bnQYAiABKA1SC2FjdGl2ZUNvdW50EiEKDGxvb2t1cF9jb3VudBgDIAEoBFILbG9va3VwQ291bnQSIwoNbWF0Y2hlZF9jb3VudBgEIAEoBFIMbWF0Y2hlZENvdW50IjEKFm9mcF9wb3J0X3N0YXRzX3JlcXVlc3QSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vIt0DCg5vZnBfcG9ydF9zdGF0cxIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SHQoKcnhfcGFja2V0cxgCIAEoBFIJcnhQYWNrZXRzEh0KCnR4X3BhY2tldHMYAyABKARSCXR4UGFja2V0cxIZCghyeF9ieXRlcxgEIAEoBFIHcnhCeXRlcxIZCgh0eF9ieXRlcxgFIAEoBFIHdHhCeXRlcxIdCgpyeF9kcm9wcGVkGAYgASgEUglyeERyb3BwZWQSHQoKdHhfZHJvcHBlZBgHIAEoBFIJdHhEcm9wcGVkEhsKCXJ4X2Vycm9ycxgIIAEoBFIIcnhFcnJvcnMSGwoJdHhfZXJyb3JzGAkgASgEUgh0eEVycm9ycxIgCgxyeF9mcmFtZV9lcnIYCiABKARSCnJ4RnJhbWVFcnISHgoLcnhfb3Zlcl9lcnIYCyABKARSCXJ4T3ZlckVychIcCgpyeF9jcmNfZXJyGAwgASgEUghyeENyY0VychIeCgpjb2xsaXNpb25zGA0gASgEUgpjb2xsaXNpb25zEiEKDGR1cmF0aW9uX3NlYxgOIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgPIAEoDVIMZHVyYXRpb25Oc2VjIjQKF29mcF9ncm91cF9zdGF0c19yZXF1ZXN0EhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkIlYKEm9mcF9idWNrZXRfY291bnRlchIhCgxwYWNrZXRfY291bnQYASABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYAiABKARSCWJ5dGVDb3VudCKXAgoPb2ZwX2dyb3VwX3N0YXRzEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkEhsKCXJlZl9jb3VudBgCIAEoDVIIcmVmQ291bnQSIQoMcGFja2V0X2NvdW50GAMgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAQgASgEUglieXRlQ291bnQSIQoMZHVyYXRpb25fc2VjGAUgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAYgASgNUgxkdXJhdGlvbk5zZWMSQgoMYnVja2V0X3N0YXRzGAcgAygLMh8ub3BlbmZsb3dfMTMub2ZwX2J1Y2tldF9jb3VudGVyUgtidWNrZXRTdGF0cyKPAQoOb2ZwX2dyb3VwX2Rlc2MSLwoEdHlwZRgBIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF90eXBlUgR0eXBlEhkKCGdyb3VwX2lkGAIgASgNUgdncm91cElkEjEKB2J1Y2tldHMYAyADKAsyFy5vcGVuZmxvd18xMy5vZnBfYnVja2V0UgdidWNrZXRzInYKD29mcF9ncm91cF9lbnRyeRIvCgRkZXNjGAEgASgLMhsub3BlbmZsb3dfMTMub2ZwX2dyb3VwX2Rlc2NSBGRlc2MSMgoFc3RhdHMYAiABKAsyHC5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfc3RhdHNSBXN0YXRzIocBChJvZnBfZ3JvdXBfZmVhdHVyZXMSFAoFdHlwZXMYASABKA1SBXR5cGVzEiIKDGNhcGFiaWxpdGllcxgCIAEoDVIMY2FwYWJpbGl0aWVzEh0KCm1heF9ncm91cHMYAyADKA1SCW1heEdyb3VwcxIYCgdhY3Rpb25zGAQgAygNUgdhY3Rpb25zIjgKG29mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdBIZCghtZXRlcl9pZBgBIAEoDVIHbWV0ZXJJZCJqChRvZnBfbWV0ZXJfYmFuZF9zdGF0cxIqChFwYWNrZXRfYmFuZF9jb3VudBgBIAEoBFIPcGFja2V0QmFuZENvdW50EiYKD2J5dGVfYmFuZF9jb3VudBgCIAEoBFINYnl0ZUJhbmRDb3VudCKhAgoPb2ZwX21ldGVyX3N0YXRzEhkKCG1ldGVyX2lkGAEgASgNUgdtZXRlcklkEh0KCmZsb3dfY291bnQYAiABKA1SCWZsb3dDb3VudBImCg9wYWNrZXRfaW5fY291bnQYAyABKARSDXBhY2tldEluQ291bnQSIgoNYnl0ZV9pbl9jb3VudBgEIAEoBFILYnl0ZUluQ291bnQSIQoMZHVyYXRpb25fc2VjGAUgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAYgASgNUgxkdXJhdGlvbk5zZWMSQAoKYmFuZF9zdGF0cxgHIAMoCzIhLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX3N0YXRzUgliYW5kU3RhdHMifQoQb2ZwX21ldGVyX2NvbmZpZxIUCgVmbGFncxgBIAEoDVIFZmxhZ3MSGQoIbWV0ZXJfaWQYAiABKA1SB21ldGVySWQSOAoFYmFuZHMYAyADKAsyIi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9oZWFkZXJSBWJhbmRzIq4BChJvZnBfbWV0ZXJfZmVhdHVyZXMSGwoJbWF4X21ldGVyGAEgASgNUghtYXhNZXRlchIdCgpiYW5kX3R5cGVzGAIgASgNUgliYW5kVHlwZXMSIgoMY2FwYWJpbGl0aWVzGAMgASgNUgxjYXBhYmlsaXRpZXMSGwoJbWF4X2JhbmRzGAQgASgNUghtYXhCYW5kcxIbCgltYXhfY29sb3IYBSABKA1SCG1heENvbG9yInwKD29mcF9tZXRlcl9lbnRyeRI1CgZjb25maWcYASABKAsyHS5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfY29uZmlnUgZjb25maWcSMgoFc3RhdHMYAiABKAsyHC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfc3RhdHNSBXN0YXRzInYKIW9mcF9leHBlcmltZW50ZXJfbXVsdGlwYXJ0X2hlYWRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchIZCghleHBfdHlwZRgCIAEoDVIHZXhwVHlwZRISCgRkYXRhGAMgASgMUgRkYXRhImwKF29mcF9leHBlcmltZW50ZXJfaGVhZGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEhIKBGRhdGEYAyABKAxSBGRhdGEiRQoVb2ZwX3F1ZXVlX3Byb3BfaGVhZGVyEhoKCHByb3BlcnR5GAEgASgNUghwcm9wZXJ0eRIQCgNsZW4YAiABKA1SA2xlbiJyChdvZnBfcXVldWVfcHJvcF9taW5fcmF0ZRJDCgtwcm9wX2hlYWRlchgBIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcEhlYWRlchISCgRyYXRlGAIgASgNUgRyYXRlInIKF29mcF9xdWV1ZV9wcm9wX21heF9yYXRlEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEhIKBHJhdGUYAiABKA1SBHJhdGUimgEKG29mcF9xdWV1ZV9wcm9wX2V4cGVyaW1lbnRlchJDCgtwcm9wX2hlYWRlchgBIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcEhlYWRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAMgASgMUgRkYXRhIoUBChBvZnBfcGFja2V0X3F1ZXVlEhkKCHF1ZXVlX2lkGAEgASgNUgdxdWV1ZUlkEhIKBHBvcnQYAiABKA1SBHBvcnQSQgoKcHJvcGVydGllcxgEIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcGVydGllcyIyChxvZnBfcXVldWVfZ2V0X2NvbmZpZ19yZXF1ZXN0EhIKBHBvcnQYASABKA1SBHBvcnQiZwoab2ZwX3F1ZXVlX2dldF9jb25maWdfcmVwbHkSEgoEcG9ydBgBIAEoDVIEcG9ydBI1CgZxdWV1ZXMYAiADKAsyHS5vcGVuZmxvd18xMy5vZnBfcGFja2V0X3F1ZXVlUgZxdWV1ZXMiRQoUb2ZwX2FjdGlvbl9zZXRfcXVldWUSEgoEdHlwZRgBIAEoDVIEdHlwZRIZCghxdWV1ZV9pZBgDIAEoDVIHcXVldWVJZCJNChdvZnBfcXVldWVfc3RhdHNfcmVxdWVzdBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SGQoIcXVldWVfaWQYAiABKA1SB3F1ZXVlSWQi5AEKD29mcF9xdWV1ZV9zdGF0cxIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SGQoIcXVldWVfaWQYAiABKA1SB3F1ZXVlSWQSGQoIdHhfYnl0ZXMYAyABKARSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgEIAEoBFIJdHhQYWNrZXRzEhsKCXR4X2Vycm9ycxgFIAEoBFIIdHhFcnJvcnMSIQoMZHVyYXRpb25fc2VjGAYgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAcgASgNUgxkdXJhdGlvbk5zZWMibQoQb2ZwX3JvbGVfcmVxdWVzdBI0CgRyb2xlGAEgASgOMiAub3BlbmZsb3dfMTMub2ZwX2NvbnRyb2xsZXJfcm9sZVIEcm9sZRIjCg1nZW5lcmF0aW9uX2lkGAIgASgEUgxnZW5lcmF0aW9uSWQijgEKEG9mcF9hc3luY19jb25maWcSJAoOcGFja2V0X2luX21hc2sYASADKA1SDHBhY2tldEluTWFzaxIoChBwb3J0X3N0YXR1c19tYXNrGAIgAygNUg5wb3J0U3RhdHVzTWFzaxIqChFmbG93X3JlbW92ZWRfbWFzaxgDIAMoDVIPZmxvd1JlbW92ZWRNYXNrIlkKDk1ldGVyTW9kVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI3CgltZXRlcl9tb2QYAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfbW9kUghtZXRlck1vZCJQCg9NZXRlclN0YXRzUmVwbHkSPQoLbWV0ZXJfc3RhdHMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfc3RhdHNSCm1ldGVyU3RhdHMiVwoPRmxvd1RhYmxlVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI0CghmbG93X21vZBgCIAEoCzIZLm9wZW5mbG93XzEzLm9mcF9mbG93X21vZFIHZmxvd01vZCJfChRGbG93R3JvdXBUYWJsZVVwZGF0ZRIOCgJpZBgBIAEoCVICaWQSNwoJZ3JvdXBfbW9kGAIgASgLMhoub3BlbmZsb3dfMTMub2ZwX2dyb3VwX21vZFIIZ3JvdXBNb2QiOgoFRmxvd3MSMQoFaXRlbXMYASADKAsyGy5vcGVuZmxvd18xMy5vZnBfZmxvd19zdGF0c1IFaXRlbXMiPAoGTWV0ZXJzEjIKBWl0ZW1zGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX21ldGVyX2VudHJ5UgVpdGVtcyJACgpGbG93R3JvdXBzEjIKBWl0ZW1zGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX2dyb3VwX2VudHJ5UgVpdGVtcyJpCgtGbG93Q2hhbmdlcxIpCgZ0b19hZGQYASABKAsyEi5vcGVuZmxvd18xMy5GbG93c1IFdG9BZGQSLwoJdG9fcmVtb3ZlGAIgASgLMhIub3BlbmZsb3dfMTMuRmxvd3NSCHRvUmVtb3ZlIq4BChBGbG93R3JvdXBDaGFuZ2VzEi4KBnRvX2FkZBgBIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSBXRvQWRkEjQKCXRvX3JlbW92ZRgCIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSCHRvUmVtb3ZlEjQKCXRvX3VwZGF0ZRgDIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSCHRvVXBkYXRlIlMKCFBhY2tldEluEg4KAmlkGAEgASgJUgJpZBI3CglwYWNrZXRfaW4YAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfcGFja2V0X2luUghwYWNrZXRJbiJXCglQYWNrZXRPdXQSDgoCaWQYASABKAlSAmlkEjoKCnBhY2tldF9vdXQYAiABKAsyGy5vcGVuZmxvd18xMy5vZnBfcGFja2V0X291dFIJcGFja2V0T3V0ImcKC0NoYW5nZUV2ZW50Eg4KAmlkGAEgASgJUgJpZBI/Cgtwb3J0X3N0YXR1cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3N0YXR1c0gAUgpwb3J0U3RhdHVzQgcKBWV2ZW50KtUBCgtvZnBfcG9ydF9ubxIQCgxPRlBQX0lOVkFMSUQQABIQCghPRlBQX01BWBCA/v//BxIUCgxPRlBQX0lOX1BPUlQQ+P///wcSEgoKT0ZQUF9UQUJMRRD5////BxITCgtPRlBQX05PUk1BTBD6////BxISCgpPRlBQX0ZMT09EEPv///8HEhAKCE9GUFBfQUxMEPz///8HEhcKD09GUFBfQ09OVFJPTExFUhD9////BxISCgpPRlBQX0xPQ0FMEP7///8HEhAKCE9GUFBfQU5ZEP////8HKsgFCghvZnBfdHlwZRIOCgpPRlBUX0hFTExPEAASDgoKT0ZQVF9FUlJPUhABEhUKEU9GUFRfRUNIT19SRVFVRVNUEAISEwoPT0ZQVF9FQ0hPX1JFUExZEAMSFQoRT0ZQVF9FWFBFUklNRU5URVIQBBIZChVPRlBUX0ZFQVRVUkVTX1JFUVVFU1QQBRIXChNPRlBUX0ZFQVRVUkVTX1JFUExZEAYSGwoXT0ZQVF9HRVRfQ09ORklHX1JFUVVFU1QQBxIZChVPRlBUX0dFVF9DT05GSUdfUkVQTFkQCBITCg9PRlBUX1NFVF9DT05GSUcQCRISCg5PRlBUX1BBQ0tFVF9JThAKEhUKEU9GUFRfRkxPV19SRU1PVkVEEAsSFAoQT0ZQVF9QT1JUX1NUQVRVUxAMEhMKD09GUFRfUEFDS0VUX09VVBANEhEKDU9GUFRfRkxPV19NT0QQDhISCg5PRlBUX0dST1VQX01PRBAPEhEKDU9GUFRfUE9SVF9NT0QQEBISCg5PRlBUX1RBQkxFX01PRBAREhoKFk9GUFRfTVVMVElQQVJUX1JFUVVFU1QQEhIYChRPRlBUX01VTFRJUEFSVF9SRVBMWRATEhgKFE9GUFRfQkFSUklFUl9SRVFVRVNUEBQSFgoST0ZQVF9CQVJSSUVSX1JFUExZEBUSIQodT0ZQVF9RVUVVRV9HRVRfQ09ORklHX1JFUVVFU1QQFhIfChtPRlBUX1FVRVVFX0dFVF9DT05GSUdfUkVQTFkQFxIVChFPRlBUX1JPTEVfUkVRVUVTVBAYEhMKD09GUFRfUk9MRV9SRVBMWRAZEhoKFk9GUFRfR0VUX0FTWU5DX1JFUVVFU1QQGhIYChRPRlBUX0dFVF9BU1lOQ19SRVBMWRAbEhIKDk9GUFRfU0VUX0FTWU5DEBwSEgoOT0ZQVF9NRVRFUl9NT0QQHSpDChNvZnBfaGVsbG9fZWxlbV90eXBlEhIKDk9GUEhFVF9JTlZBTElEEAASGAoUT0ZQSEVUX1ZFUlNJT05CSVRNQVAQASplChBvZnBfY29uZmlnX2ZsYWdzEhQKEE9GUENfRlJBR19OT1JNQUwQABISCg5PRlBDX0ZSQUdfRFJPUBABEhMKD09GUENfRlJBR19SRUFTTRACEhIKDk9GUENfRlJBR19NQVNLEAMqQAoQb2ZwX3RhYmxlX2NvbmZpZxIRCg1PRlBUQ19JTlZBTElEEAASGQoVT0ZQVENfREVQUkVDQVRFRF9NQVNLEAMqPgoJb2ZwX3RhYmxlEhEKDU9GUFRUX0lOVkFMSUQQABIOCglPRlBUVF9NQVgQ/gESDgoJT0ZQVFRfQUxMEP8BKrsBChBvZnBfY2FwYWJpbGl0aWVzEhAKDE9GUENfSU5WQUxJRBAAEhMKD09GUENfRkxPV19TVEFUUxABEhQKEE9GUENfVEFCTEVfU1RBVFMQAhITCg9PRlBDX1BPUlRfU1RBVFMQBBIUChBPRlBDX0dST1VQX1NUQVRTEAgSEQoNT0ZQQ19JUF9SRUFTTRAgEhQKEE9GUENfUVVFVUVfU1RBVFMQQBIWChFPRlBDX1BPUlRfQkxPQ0tFRBCAAip2Cg9vZnBfcG9ydF9jb25maWcSEQoNT0ZQUENfSU5WQUxJRBAAEhMKD09GUFBDX1BPUlRfRE9XThABEhEKDU9GUFBDX05PX1JFQ1YQBBIQCgxPRlBQQ19OT19GV0QQIBIWChJPRlBQQ19OT19QQUNLRVRfSU4QQCpbCg5vZnBfcG9ydF9zdGF0ZRIRCg1PRlBQU19JTlZBTElEEAASEwoPT0ZQUFNfTElOS19ET1dOEAESEQoNT0ZQUFNfQkxPQ0tFRBACEg4KCk9GUFBTX0xJVkUQBCrdAgoRb2ZwX3BvcnRfZmVhdHVyZXMSEQoNT0ZQUEZfSU5WQUxJRBAAEhEKDU9GUFBGXzEwTUJfSEQQARIRCg1PRlBQRl8xME1CX0ZEEAISEgoOT0ZQUEZfMTAwTUJfSEQQBBISCg5PRlBQRl8xMDBNQl9GRBAIEhAKDE9GUFBGXzFHQl9IRBAQEhAKDE9GUFBGXzFHQl9GRBAgEhEKDU9GUFBGXzEwR0JfRkQQQBISCg1PRlBQRl80MEdCX0ZEEIABEhMKDk9GUFBGXzEwMEdCX0ZEEIACEhEKDE9GUFBGXzFUQl9GRBCABBIQCgtPRlBQRl9PVEhFUhCACBIRCgxPRlBQRl9DT1BQRVIQgBASEAoLT0ZQUEZfRklCRVIQgCASEgoNT0ZQUEZfQVVUT05FRxCAQBIRCgtPRlBQRl9QQVVTRRCAgAESFgoQT0ZQUEZfUEFVU0VfQVNZTRCAgAIqRAoPb2ZwX3BvcnRfcmVhc29uEg0KCU9GUFBSX0FERBAAEhAKDE9GUFBSX0RFTEVURRABEhAKDE9GUFBSX01PRElGWRACKjMKDm9mcF9tYXRjaF90eXBlEhIKDk9GUE1UX1NUQU5EQVJEEAASDQoJT0ZQTVRfT1hNEAEqawoNb2ZwX294bV9jbGFzcxIQCgxPRlBYTUNfTlhNXzAQABIQCgxPRlBYTUNfTlhNXzEQARIbChVPRlBYTUNfT1BFTkZMT1dfQkFTSUMQgIACEhkKE09GUFhNQ19FWFBFUklNRU5URVIQ//8DKpAIChNveG1fb2ZiX2ZpZWxkX3R5cGVzEhYKEk9GUFhNVF9PRkJfSU5fUE9SVBAAEhoKFk9GUFhNVF9PRkJfSU5fUEhZX1BPUlQQARIXChNPRlBYTVRfT0ZCX01FVEFEQVRBEAISFgoST0ZQWE1UX09GQl9FVEhfRFNUEAMSFgoST0ZQWE1UX09GQl9FVEhfU1JDEAQSFwoTT0ZQWE1UX09GQl9FVEhfVFlQRRAFEhcKE09GUFhNVF9PRkJfVkxBTl9WSUQQBhIXChNPRlBYTVRfT0ZCX1ZMQU5fUENQEAcSFgoST0ZQWE1UX09GQl9JUF9EU0NQEAgSFQoRT0ZQWE1UX09GQl9JUF9FQ04QCRIXChNPRlBYTVRfT0ZCX0lQX1BST1RPEAoSFwoTT0ZQWE1UX09GQl9JUFY0X1NSQxALEhcKE09GUFhNVF9PRkJfSVBWNF9EU1QQDBIWChJPRlBYTVRfT0ZCX1RDUF9TUkMQDRIWChJPRlBYTVRfT0ZCX1RDUF9EU1QQDhIWChJPRlBYTVRfT0ZCX1VEUF9TUkMQDxIWChJPRlBYTVRfT0ZCX1VEUF9EU1QQEBIXChNPRlBYTVRfT0ZCX1NDVFBfU1JDEBESFwoTT0ZQWE1UX09GQl9TQ1RQX0RTVBASEhoKFk9GUFhNVF9PRkJfSUNNUFY0X1RZUEUQExIaChZPRlBYTVRfT0ZCX0lDTVBWNF9DT0RFEBQSFQoRT0ZQWE1UX09GQl9BUlBfT1AQFRIWChJPRlBYTVRfT0ZCX0FSUF9TUEEQFhIWChJPRlBYTVRfT0ZCX0FSUF9UUEEQFxIWChJPRlBYTVRfT0ZCX0FSUF9TSEEQGBIWChJPRlBYTVRfT0ZCX0FSUF9USEEQGRIXChNPRlBYTVRfT0ZCX0lQVjZfU1JDEBoSFwoTT0ZQWE1UX09GQl9JUFY2X0RTVBAbEhoKFk9GUFhNVF9PRkJfSVBWNl9GTEFCRUwQHBIaChZPRlBYTVRfT0ZCX0lDTVBWNl9UWVBFEB0SGgoWT0ZQWE1UX09GQl9JQ01QVjZfQ09ERRAeEh0KGU9GUFhNVF9PRkJfSVBWNl9ORF9UQVJHRVQQHxIaChZPRlBYTVRfT0ZCX0lQVjZfTkRfU0xMECASGgoWT0ZQWE1UX09GQl9JUFY2X05EX1RMTBAhEhkKFU9GUFhNVF9PRkJfTVBMU19MQUJFTBAiEhYKEk9GUFhNVF9PRkJfTVBMU19UQxAjEhcKE09GUFhNVF9PRkJfTVBMU19CT1MQJBIXChNPRlBYTVRfT0ZCX1BCQl9JU0lEECUSGAoUT0ZQWE1UX09GQl9UVU5ORUxfSUQQJhIaChZPRlBYTVRfT0ZCX0lQVjZfRVhUSERSECcqMwoLb2ZwX3ZsYW5faWQSDwoLT0ZQVklEX05PTkUQABITCg5PRlBWSURfUFJFU0VOVBCAICrJAQoUb2ZwX2lwdjZleHRoZHJfZmxhZ3MSEgoOT0ZQSUVIX0lOVkFMSUQQABIRCg1PRlBJRUhfTk9ORVhUEAESDgoKT0ZQSUVIX0VTUBACEg8KC09GUElFSF9BVVRIEAQSDwoLT0ZQSUVIX0RFU1QQCBIPCgtPRlBJRUhfRlJBRxAQEhEKDU9GUElFSF9ST1VURVIQIBIOCgpPRlBJRUhfSE9QEEASEQoMT0ZQSUVIX1VOUkVQEIABEhEKDE9GUElFSF9VTlNFURCAAir8AgoPb2ZwX2FjdGlvbl90eXBlEhAKDE9GUEFUX09VVFBVVBAAEhYKEk9GUEFUX0NPUFlfVFRMX09VVBALEhUKEU9GUEFUX0NPUFlfVFRMX0lOEAwSFgoST0ZQQVRfU0VUX01QTFNfVFRMEA8SFgoST0ZQQVRfREVDX01QTFNfVFRMEBASEwoPT0ZQQVRfUFVTSF9WTEFOEBESEgoOT0ZQQVRfUE9QX1ZMQU4QEhITCg9PRlBBVF9QVVNIX01QTFMQExISCg5PRlBBVF9QT1BfTVBMUxAUEhMKD09GUEFUX1NFVF9RVUVVRRAVEg8KC09GUEFUX0dST1VQEBYSFAoQT0ZQQVRfU0VUX05XX1RUTBAXEhQKEE9GUEFUX0RFQ19OV19UVEwQGBITCg9PRlBBVF9TRVRfRklFTEQQGRISCg5PRlBBVF9QVVNIX1BCQhAaEhEKDU9GUEFUX1BPUF9QQkIQGxIYChJPRlBBVF9FWFBFUklNRU5URVIQ//8DKlYKFm9mcF9jb250cm9sbGVyX21heF9sZW4SEgoOT0ZQQ01MX0lOVkFMSUQQABIQCgpPRlBDTUxfTUFYEOX/AxIWChBPRlBDTUxfTk9fQlVGRkVSEP//AyrPAQoUb2ZwX2luc3RydWN0aW9uX3R5cGUSEQoNT0ZQSVRfSU5WQUxJRBAAEhQKEE9GUElUX0dPVE9fVEFCTEUQARIYChRPRlBJVF9XUklURV9NRVRBREFUQRACEhcKE09GUElUX1dSSVRFX0FDVElPTlMQAxIXChNPRlBJVF9BUFBMWV9BQ1RJT05TEAQSFwoTT0ZQSVRfQ0xFQVJfQUNUSU9OUxAFEg8KC09GUElUX01FVEVSEAYSGAoST0ZQSVRfRVhQRVJJTUVOVEVSEP//Ayp7ChRvZnBfZmxvd19tb2RfY29tbWFuZBINCglPRlBGQ19BREQQABIQCgxPRlBGQ19NT0RJRlkQARIXChNPRlBGQ19NT0RJRllfU1RSSUNUEAISEAoMT0ZQRkNfREVMRVRFEAMSFwoTT0ZQRkNfREVMRVRFX1NUUklDVBAEKqMBChJvZnBfZmxvd19tb2RfZmxhZ3MSEQoNT0ZQRkZfSU5WQUxJRBAAEhcKE09GUEZGX1NFTkRfRkxPV19SRU0QARIXChNPRlBGRl9DSEVDS19PVkVSTEFQEAISFgoST0ZQRkZfUkVTRVRfQ09VTlRTEAQSFwoTT0ZQRkZfTk9fUEtUX0NPVU5UUxAIEhcKE09GUEZGX05PX0JZVF9DT1VOVFMQECpTCglvZnBfZ3JvdXASEAoMT0ZQR19JTlZBTElEEAASEAoIT0ZQR19NQVgQgP7//wcSEAoIT0ZQR19BTEwQ/P///wcSEAoIT0ZQR19BTlkQ/////wcqSgoVb2ZwX2dyb3VwX21vZF9jb21tYW5kEg0KCU9GUEdDX0FERBAAEhAKDE9GUEdDX01PRElGWRABEhAKDE9GUEdDX0RFTEVURRACKlMKDm9mcF9ncm91cF90eXBlEg0KCU9GUEdUX0FMTBAAEhAKDE9GUEdUX1NFTEVDVBABEhIKDk9GUEdUX0lORElSRUNUEAISDAoIT0ZQR1RfRkYQAypQChRvZnBfcGFja2V0X2luX3JlYXNvbhIRCg1PRlBSX05PX01BVENIEAASDwoLT0ZQUl9BQ1RJT04QARIUChBPRlBSX0lOVkFMSURfVFRMEAIqiwEKF29mcF9mbG93X3JlbW92ZWRfcmVhc29uEhYKEk9GUFJSX0lETEVfVElNRU9VVBAAEhYKEk9GUFJSX0hBUkRfVElNRU9VVBABEhAKDE9GUFJSX0RFTEVURRACEhYKEk9GUFJSX0dST1VQX0RFTEVURRADEhYKEk9GUFJSX01FVEVSX0RFTEVURRAEKm4KCW9mcF9tZXRlchINCglPRlBNX1pFUk8QABIQCghPRlBNX01BWBCAgPz/BxIVCg1PRlBNX1NMT1dQQVRIEP3///8HEhcKD09GUE1fQ09OVFJPTExFUhD+////BxIQCghPRlBNX0FMTBD/////ByptChNvZnBfbWV0ZXJfYmFuZF90eXBlEhIKDk9GUE1CVF9JTlZBTElEEAASDwoLT0ZQTUJUX0RST1AQARIWChJPRlBNQlRfRFNDUF9SRU1BUksQAhIZChNPRlBNQlRfRVhQRVJJTUVOVEVSEP//AypKChVvZnBfbWV0ZXJfbW9kX2NvbW1hbmQSDQoJT0ZQTUNfQUREEAASEAoMT0ZQTUNfTU9ESUZZEAESEAoMT0ZQTUNfREVMRVRFEAIqZwoPb2ZwX21ldGVyX2ZsYWdzEhEKDU9GUE1GX0lOVkFMSUQQABIOCgpPRlBNRl9LQlBTEAESDwoLT0ZQTUZfUEtUUFMQAhIPCgtPRlBNRl9CVVJTVBAEEg8KC09GUE1GX1NUQVRTEAgqpAMKDm9mcF9lcnJvcl90eXBlEhYKEk9GUEVUX0hFTExPX0ZBSUxFRBAAEhUKEU9GUEVUX0JBRF9SRVFVRVNUEAESFAoQT0ZQRVRfQkFEX0FDVElPThACEhkKFU9GUEVUX0JBRF9JTlNUUlVDVElPThADEhMKD09GUEVUX0JBRF9NQVRDSBAEEhkKFU9GUEVUX0ZMT1dfTU9EX0ZBSUxFRBAFEhoKFk9GUEVUX0dST1VQX01PRF9GQUlMRUQQBhIZChVPRlBFVF9QT1JUX01PRF9GQUlMRUQQBxIaChZPRlBFVF9UQUJMRV9NT0RfRkFJTEVEEAgSGQoVT0ZQRVRfUVVFVUVfT1BfRkFJTEVEEAkSHgoaT0ZQRVRfU1dJVENIX0NPTkZJR19GQUlMRUQQChIdChlPRlBFVF9ST0xFX1JFUVVFU1RfRkFJTEVEEAsSGgoWT0ZQRVRfTUVURVJfTU9EX0ZBSUxFRBAMEh8KG09GUEVUX1RBQkxFX0ZFQVRVUkVTX0ZBSUxFRBANEhgKEk9GUEVUX0VYUEVSSU1FTlRFUhD//wMqQgoVb2ZwX2hlbGxvX2ZhaWxlZF9jb2RlEhcKE09GUEhGQ19JTkNPTVBBVElCTEUQABIQCgxPRlBIRkNfRVBFUk0QASrtAgoUb2ZwX2JhZF9yZXF1ZXN0X2NvZGUSFgoST0ZQQlJDX0JBRF9WRVJTSU9OEAASEwoPT0ZQQlJDX0JBRF9UWVBFEAESGAoUT0ZQQlJDX0JBRF9NVUxUSVBBUlQQAhIbChdPRlBCUkNfQkFEX0VYUEVSSU1FTlRFUhADEhcKE09GUEJSQ19CQURfRVhQX1RZUEUQBBIQCgxPRlBCUkNfRVBFUk0QBRISCg5PRlBCUkNfQkFEX0xFThAGEhcKE09GUEJSQ19CVUZGRVJfRU1QVFkQBxIZChVPRlBCUkNfQlVGRkVSX1VOS05PV04QCBIXChNPRlBCUkNfQkFEX1RBQkxFX0lEEAkSEwoPT0ZQQlJDX0lTX1NMQVZFEAoSEwoPT0ZQQlJDX0JBRF9QT1JUEAsSFQoRT0ZQQlJDX0JBRF9QQUNLRVQQDBIkCiBPRlBCUkNfTVVMVElQQVJUX0JVRkZFUl9PVkVSRkxPVxANKpwDChNvZnBfYmFkX2FjdGlvbl9jb2RlEhMKD09GUEJBQ19CQURfVFlQRRAAEhIKDk9GUEJBQ19CQURfTEVOEAESGwoXT0ZQQkFDX0JBRF9FWFBFUklNRU5URVIQAhIXChNPRlBCQUNfQkFEX0VYUF9UWVBFEAMSFwoTT0ZQQkFDX0JBRF9PVVRfUE9SVBAEEhcKE09GUEJBQ19CQURfQVJHVU1FTlQQBRIQCgxPRlBCQUNfRVBFUk0QBhITCg9PRlBCQUNfVE9PX01BTlkQBxIUChBPRlBCQUNfQkFEX1FVRVVFEAgSGAoUT0ZQQkFDX0JBRF9PVVRfR1JPVVAQCRIdChlPRlBCQUNfTUFUQ0hfSU5DT05TSVNURU5UEAoSHAoYT0ZQQkFDX1VOU1VQUE9SVEVEX09SREVSEAsSEgoOT0ZQQkFDX0JBRF9UQUcQDBIXChNPRlBCQUNfQkFEX1NFVF9UWVBFEA0SFgoST0ZQQkFDX0JBRF9TRVRfTEVOEA4SGwoXT0ZQQkFDX0JBRF9TRVRfQVJHVU1FTlQQDyr6AQoYb2ZwX2JhZF9pbnN0cnVjdGlvbl9jb2RlEhcKE09GUEJJQ19VTktOT1dOX0lOU1QQABIVChFPRlBCSUNfVU5TVVBfSU5TVBABEhcKE09GUEJJQ19CQURfVEFCTEVfSUQQAhIZChVPRlBCSUNfVU5TVVBfTUVUQURBVEEQAxIeChpPRlBCSUNfVU5TVVBfTUVUQURBVEFfTUFTSxAEEhsKF09GUEJJQ19CQURfRVhQRVJJTUVOVEVSEAUSFwoTT0ZQQklDX0JBRF9FWFBfVFlQRRAGEhIKDk9GUEJJQ19CQURfTEVOEAcSEAoMT0ZQQklDX0VQRVJNEAgqpQIKEm9mcF9iYWRfbWF0Y2hfY29kZRITCg9PRlBCTUNfQkFEX1RZUEUQABISCg5PRlBCTUNfQkFEX0xFThABEhIKDk9GUEJNQ19CQURfVEFHEAISGwoXT0ZQQk1DX0JBRF9ETF9BRERSX01BU0sQAxIbChdPRlBCTUNfQkFEX05XX0FERFJfTUFTSxAEEhgKFE9GUEJNQ19CQURfV0lMRENBUkRTEAUSFAoQT0ZQQk1DX0JBRF9GSUVMRBAGEhQKEE9GUEJNQ19CQURfVkFMVUUQBxITCg9PRlBCTUNfQkFEX01BU0sQCBIVChFPRlBCTUNfQkFEX1BSRVJFURAJEhQKEE9GUEJNQ19EVVBfRklFTEQQChIQCgxPRlBCTUNfRVBFUk0QCyrSAQoYb2ZwX2Zsb3dfbW9kX2ZhaWxlZF9jb2RlEhMKD09GUEZNRkNfVU5LTk9XThAAEhYKEk9GUEZNRkNfVEFCTEVfRlVMTBABEhgKFE9GUEZNRkNfQkFEX1RBQkxFX0lEEAISEwoPT0ZQRk1GQ19PVkVSTEFQEAMSEQoNT0ZQRk1GQ19FUEVSTRAEEhcKE09GUEZNRkNfQkFEX1RJTUVPVVQQBRIXChNPRlBGTUZDX0JBRF9DT01NQU5EEAYSFQoRT0ZQRk1GQ19CQURfRkxBR1MQByqhAwoZb2ZwX2dyb3VwX21vZF9mYWlsZWRfY29kZRIYChRPRlBHTUZDX0dST1VQX0VYSVNUUxAAEhkKFU9GUEdNRkNfSU5WQUxJRF9HUk9VUBABEh4KGk9GUEdNRkNfV0VJR0hUX1VOU1VQUE9SVEVEEAISGQoVT0ZQR01GQ19PVVRfT0ZfR1JPVVBTEAMSGgoWT0ZQR01GQ19PVVRfT0ZfQlVDS0VUUxAEEiAKHE9GUEdNRkNfQ0hBSU5JTkdfVU5TVVBQT1JURUQQBRIdChlPRlBHTUZDX1dBVENIX1VOU1VQUE9SVEVEEAYSEAoMT0ZQR01GQ19MT09QEAcSGQoVT0ZQR01GQ19VTktOT1dOX0dST1VQEAgSGQoVT0ZQR01GQ19DSEFJTkVEX0dST1VQEAkSFAoQT0ZQR01GQ19CQURfVFlQRRAKEhcKE09GUEdNRkNfQkFEX0NPTU1BTkQQCxIWChJPRlBHTUZDX0JBRF9CVUNLRVQQDBIVChFPRlBHTUZDX0JBRF9XQVRDSBANEhEKDU9GUEdNRkNfRVBFUk0QDiqPAQoYb2ZwX3BvcnRfbW9kX2ZhaWxlZF9jb2RlEhQKEE9GUFBNRkNfQkFEX1BPUlQQABIXChNPRlBQTUZDX0JBRF9IV19BRERSEAESFgoST0ZQUE1GQ19CQURfQ09ORklHEAISGQoVT0ZQUE1GQ19CQURfQURWRVJUSVNFEAMSEQoNT0ZQUE1GQ19FUEVSTRAEKl0KGW9mcF90YWJsZV9tb2RfZmFpbGVkX2NvZGUSFQoRT0ZQVE1GQ19CQURfVEFCTEUQABIWChJPRlBUTUZDX0JBRF9DT05GSUcQARIRCg1PRlBUTUZDX0VQRVJNEAIqWgoYb2ZwX3F1ZXVlX29wX2ZhaWxlZF9jb2RlEhQKEE9GUFFPRkNfQkFEX1BPUlQQABIVChFPRlBRT0ZDX0JBRF9RVUVVRRABEhEKDU9GUFFPRkNfRVBFUk0QAipeCh1vZnBfc3dpdGNoX2NvbmZpZ19mYWlsZWRfY29kZRIVChFPRlBTQ0ZDX0JBRF9GTEFHUxAAEhMKD09GUFNDRkNfQkFEX0xFThABEhEKDU9GUFNDRkNfRVBFUk0QAipaChxvZnBfcm9sZV9yZXF1ZXN0X2ZhaWxlZF9jb2RlEhEKDU9GUFJSRkNfU1RBTEUQABIRCg1PRlBSUkZDX1VOU1VQEAESFAoQT0ZQUlJGQ19CQURfUk9MRRACKsUCChlvZnBfbWV0ZXJfbW9kX2ZhaWxlZF9jb2RlEhMKD09GUE1NRkNfVU5LTk9XThAAEhgKFE9GUE1NRkNfTUVURVJfRVhJU1RTEAESGQoVT0ZQTU1GQ19JTlZBTElEX01FVEVSEAISGQoVT0ZQTU1GQ19VTktOT1dOX01FVEVSEAMSFwoTT0ZQTU1GQ19CQURfQ09NTUFORBAEEhUKEU9GUE1NRkNfQkFEX0ZMQUdTEAUSFAoQT0ZQTU1GQ19CQURfUkFURRAGEhUKEU9GUE1NRkNfQkFEX0JVUlNUEAcSFAoQT0ZQTU1GQ19CQURfQkFORBAIEhsKF09GUE1NRkNfQkFEX0JBTkRfREVUQUlMEAkSGQoVT0ZQTU1GQ19PVVRfT0ZfTUVURVJTEAoSGAoUT0ZQTU1GQ19PVVRfT0ZfQkFORFMQCyqpAQoeb2ZwX3RhYmxlX2ZlYXR1cmVzX2ZhaWxlZF9jb2RlEhUKEU9GUFRGRkNfQkFEX1RBQkxFEAASGAoUT0ZQVEZGQ19CQURfTUVUQURBVEEQARIUChBPRlBURkZDX0JBRF9UWVBFEAISEwoPT0ZQVEZGQ19CQURfTEVOEAMSGAoUT0ZQVEZGQ19CQURfQVJHVU1FTlQQBBIRCg1PRlBURkZDX0VQRVJNEAUqzgIKEm9mcF9tdWx0aXBhcnRfdHlwZRIOCgpPRlBNUF9ERVNDEAASDgoKT0ZQTVBfRkxPVxABEhMKD09GUE1QX0FHR1JFR0FURRACEg8KC09GUE1QX1RBQkxFEAMSFAoQT0ZQTVBfUE9SVF9TVEFUUxAEEg8KC09GUE1QX1FVRVVFEAUSDwoLT0ZQTVBfR1JPVVAQBhIUChBPRlBNUF9HUk9VUF9ERVNDEAcSGAoUT0ZQTVBfR1JPVVBfRkVBVFVSRVMQCBIPCgtPRlBNUF9NRVRFUhAJEhYKEk9GUE1QX01FVEVSX0NPTkZJRxAKEhgKFE9GUE1QX01FVEVSX0ZFQVRVUkVTEAsSGAoUT0ZQTVBfVEFCTEVfRkVBVFVSRVMQDBITCg9PRlBNUF9QT1JUX0RFU0MQDRIYChJPRlBNUF9FWFBFUklNRU5URVIQ//8DKkoKG29mcF9tdWx0aXBhcnRfcmVxdWVzdF9mbGFncxIWChJPRlBNUEZfUkVRX0lOVkFMSUQQABITCg9PRlBNUEZfUkVRX01PUkUQASpMChlvZnBfbXVsdGlwYXJ0X3JlcGx5X2ZsYWdzEhgKFE9GUE1QRl9SRVBMWV9JTlZBTElEEAASFQoRT0ZQTVBGX1JFUExZX01PUkUQASrkAwobb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF90eXBlEhgKFE9GUFRGUFRfSU5TVFJVQ1RJT05TEAASHQoZT0ZQVEZQVF9JTlNUUlVDVElPTlNfTUlTUxABEhcKE09GUFRGUFRfTkVYVF9UQUJMRVMQAhIcChhPRlBURlBUX05FWFRfVEFCTEVTX01JU1MQAxIZChVPRlBURlBUX1dSSVRFX0FDVElPTlMQBBIeChpPRlBURlBUX1dSSVRFX0FDVElPTlNfTUlTUxAFEhkKFU9GUFRGUFRfQVBQTFlfQUNUSU9OUxAGEh4KGk9GUFRGUFRfQVBQTFlfQUNUSU9OU19NSVNTEAcSEQoNT0ZQVEZQVF9NQVRDSBAIEhUKEU9GUFRGUFRfV0lMRENBUkRTEAoSGgoWT0ZQVEZQVF9XUklURV9TRVRGSUVMRBAMEh8KG09GUFRGUFRfV1JJVEVfU0VURklFTERfTUlTUxANEhoKFk9GUFRGUFRfQVBQTFlfU0VURklFTEQQDhIfChtPRlBURlBUX0FQUExZX1NFVEZJRUxEX01JU1MQDxIaChRPRlBURlBUX0VYUEVSSU1FTlRFUhD+/wMSHwoZT0ZQVEZQVF9FWFBFUklNRU5URVJfTUlTUxD//wMqkwEKFm9mcF9ncm91cF9jYXBhYmlsaXRpZXMSEgoOT0ZQR0ZDX0lOVkFMSUQQABIYChRPRlBHRkNfU0VMRUNUX1dFSUdIVBABEhoKFk9GUEdGQ19TRUxFQ1RfTElWRU5FU1MQAhITCg9PRlBHRkNfQ0hBSU5JTkcQBBIaChZPRlBHRkNfQ0hBSU5JTkdfQ0hFQ0tTEAgqawoUb2ZwX3F1ZXVlX3Byb3BlcnRpZXMSEQoNT0ZQUVRfSU5WQUxJRBAAEhIKDk9GUFFUX01JTl9SQVRFEAESEgoOT0ZQUVRfTUFYX1JBVEUQAhIYChJPRlBRVF9FWFBFUklNRU5URVIQ//8DKnEKE29mcF9jb250cm9sbGVyX3JvbGUSFwoTT0ZQQ1JfUk9MRV9OT0NIQU5HRRAAEhQKEE9GUENSX1JPTEVfRVFVQUwQARIVChFPRlBDUl9ST0xFX01BU1RFUhACEhQKEE9GUENSX1JPTEVfU0xBVkUQA0JVCh5vcmcub3BlbmNvcmQudm9sdGhhLm9wZW5mbG93MTNaM2dpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92My9nby9vcGVuZmxvd18xM0qIsQYKBxIFOQCDEgEK5BQKAQwSAzkAEhr5BgogVGhpcyBpcyBhIHJlbGF0aXZlbHkgc3RyYWlnaHRmb3J3YXJkIHJlbmRlcmluZyBvZiBPcGVuRmxvdyBtZXNzYWdlCiBkZWZpbml0aW9ucyBpbnRvIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlcy4gV2UgcHJlc2VydmVkIHRoZSBzbmFrZQogY2FzZSBzeW50YXgsIGFuZCBtYWRlIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKIC0gYWxsIHBhZCBmaWVsZHMgZHJvcHBlZAogLSBmb3IgZWFjaCBlbnVtIHZhbHVlIGFib3ZlIDB4N2ZmZmZmZmYgdGhlIE1TQiBpcyBkcm9wcGVkLiBGb3IgZXhhbXBsZSwKICAgMHhmZmZmZmZmZiBpcyBub3cgMHg3ZmZmZmZmZi4KIC0gJzx0eXBlPiB0aGluZ1suLi5dJyBpcyByZXBsYWNlZCB3aXRoICdyZXBlYXRlZCA8dHlwZT4gdGhpbmcnCiAtICdjaGFyIHRoaW5nWy4uLl0nIGlzIHJlcGxhY2VkIHdpdGggJ3N0cmluZyB0aGluZycKIC0gJ3VpbnQ4X3QgZGF0YVsuLi5dJyBpcyByZXBsYWNlZCB3aXRoICdieXRlcyBkYXRhJwogLSB0aGUgZm9sbG93aW5nIHN5c3RlbWF0aWMgY2hhbmdlcyBhcmUgZG9uZSB0byB2YXJpb3VzIGludGVnZXIgdHlwZXM6CiAgIHVpbnQ4X3QgIC0+IHVpbnQzMgogICB1aW50MTZfdCAtPiB1aW50MzIKICAgdWludDMyX3QgLT4gdWludDMyCiAgIHVpbnQ2NF90IC0+IHVpbnQ2NAogLSByZW1vdmVkIG1vc3QgbGVuZ3RoLCBsZW4sIHNpemUgZmllbGRzIHdoZXJlIHRoZXNlIHZhbHVlcyBjYW4gYmUgZGV0ZXJtaW5lZAogICBmcm9tIHRoZSBleHBsaWNpdGx5IGVuY29kZWQgbGVuZ3RoIG9mICJyZXBlYXRlZCIgcHJvdG9idWYgZmllbGRzLgogLSBleHBsaWNpdCB1c2Ugb2YgZW51bSB0eXBlcyB3aGVyZWV2ZXIgaXQgaXMgdW5hbWJpZ291cyAoYW5kIG5vdCB1c2VkIGFzCiAgIGJpdG1hc2svZmxhZ3MgdmFsdWUuCgoypg0gQ29weXJpZ2h0IChjKSAyMDA4IFRoZSBCb2FyZCBvZiBUcnVzdGVlcyBvZiBUaGUgTGVsYW5kIFN0YW5mb3JkCiBKdW5pb3IgVW5pdmVyc2l0eQogQ29weXJpZ2h0IChjKSAyMDExLCAyMDEyIE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogV2UgYXJlIG1ha2luZyB0aGUgT3BlbkZsb3cgc3BlY2lmaWNhdGlvbiBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCiAoU29mdHdhcmUpIGF2YWlsYWJsZSBmb3IgcHVibGljIHVzZSBhbmQgYmVuZWZpdCB3aXRoIHRoZSBleHBlY3RhdGlvbgogdGhhdCBvdGhlcnMgd2lsbCB1c2UsIG1vZGlmeSBhbmQgZW5oYW5jZSB0aGUgU29mdHdhcmUgYW5kIGNvbnRyaWJ1dGUKIHRob3NlIGVuaGFuY2VtZW50cyBiYWNrIHRvIHRoZSBjb21tdW5pdHkuIEhvd2V2ZXIsIHNpbmNlIHdlIHdvdWxkCiBsaWtlIHRvIG1ha2UgdGhlIFNvZnR3YXJlIGF2YWlsYWJsZSBmb3IgYnJvYWRlc3QgdXNlLCB3aXRoIGFzIGZldwogcmVzdHJpY3Rpb25zIGFzIHBvc3NpYmxlIHBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YKIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgU29mdHdhcmUgdG8gZGVhbCBpbgogdGhlIFNvZnR3YXJlIHVuZGVyIHRoZSBjb3B5cmlnaHRzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAogZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQogaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCgogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECiBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUwogQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogU09GVFdBUkUuCgogVGhlIG5hbWUgYW5kIHRyYWRlbWFya3Mgb2YgY29weXJpZ2h0IGhvbGRlcihzKSBtYXkgTk9UIGJlIHVzZWQgaW4KIGFkdmVydGlzaW5nIG9yIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIHRoZSBTb2Z0d2FyZSBvciBhbnkKIGRlcml2YXRpdmVzIHdpdGhvdXQgc3BlY2lmaWMsIHdyaXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4KMjUgT3BlbkZsb3c6IHByb3RvY29sIGJldHdlZW4gY29udHJvbGxlciBhbmQgZGF0YXBhdGguIAoICgEIEgM7AEoKCQoCCAsSAzsASgoICgEIEgM8ADcKCQoCCAESAzwANwoICgECEgM+ABQKCQoCAwASA0AAJgqmBAoCBQASBFUAagEaNSBQb3J0IG51bWJlcmluZy4gUG9ydHMgYXJlIG51bWJlcmVkIHN0YXJ0aW5nIGZyb20gMS4gMmMgVmVyc2lvbiBudW1iZXI6CiBPcGVuRmxvdyB2ZXJzaW9ucyByZWxlYXNlZDogMHgwMSA9IDEuMCA7IDB4MDIgPSAxLjEgOyAweDAzID0gMS4yCiAgICAgMHgwNCA9IDEuMwoyVSBUaGUgbW9zdCBzaWduaWZpY2FudCBiaXQgaW4gdGhlIHZlcnNpb24gZmllbGQgaXMgcmVzZXJ2ZWQgYW5kIG11c3QKIGJlIHNldCB0byB6ZXJvLgoyeiNkZWZpbmUgT0ZQX1ZFUlNJT04gICAweDA0CiNkZWZpbmUgUElQRUxJTkVfVEFCTEVTIDY0CiNkZWZpbmUgT0ZQX01BWF9UQUJMRV9OQU1FX0xFTiAzMgojZGVmaW5lIE9GUF9NQVhfUE9SVF9OQU1FX0xFTiAgMTYKMi0gT2ZmaWNpYWwgSUFOQSByZWdpc3RlcmVkIHBvcnQgZm9yIE9wZW5GbG93LiAyNiNkZWZpbmUgT0ZQX1RDUF9QT1JUICA2NjUzCiNkZWZpbmUgT0ZQX1NTTF9QT1JUICA2NjUzCjJEI2RlZmluZSBPRlBfRVRIX0FMRU4gNiAgICAgICAgICAvKiBCeXRlcyBpbiBhbiBFdGhlcm5ldCBhZGRyZXNzLiAqLwoKCgoDBQABEgNVBRAKCwoEBQACABIDVgQYCgwKBQUAAgABEgNWBBAKDAoFBQACAAISA1YWFwpDCgQFAAIBEgNZBCEaNiBNYXhpbXVtIG51bWJlciBvZiBwaHlzaWNhbCBhbmQgbG9naWNhbCBzd2l0Y2ggcG9ydHMuIAoMCgUFAAIBARIDWQQMCgwKBQUAAgECEgNZFiAKvAEKBAUAAgISA1wEIRovIFJlc2VydmVkIE9wZW5GbG93IFBvcnQgKGZha2Ugb3V0cHV0ICJwb3J0cyIpLiAifiBTZW5kIHRoZSBwYWNrZXQgb3V0IHRoZSBpbnB1dCBwb3J0LiAgVGhpcwpyZXNlcnZlZCBwb3J0IG11c3QgYmUgZXhwbGljaXRseSB1c2VkCmluIG9yZGVyIHRvIHNlbmQgYmFjayBvdXQgb2YgdGhlIGlucHV0CnBvcnQuIAoMCgUFAAICARIDXAQQCgwKBQUAAgICEgNcFiAK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cyBhcmUgbm90IHZhbGlkIGZvciB0aGUgZXhwZXJpbWVudGVyIGNsYXNzLCBtYWNyb3MgZm9yIHRoZQogZXhwZXJpbWVudGVyIGNsYXNzIHdpbGwgZGVwZW5kIG9uIHRoZSBleHBlcmltZW50ZXIgaGVhZGVyIHVzZWQuIDKTBSNkZWZpbmUgT1hNX0hFQURFUl9fKENMQVNTLCBGSUVMRCwgSEFTTUFTSywgTEVOR1RIKSBcCiAgICAoKChDTEFTUykgPDwgMTYpIHwgKChGSUVMRCkgPDwgOSkgfCAoKEhBU01BU0spIDw8IDgpIHwgKExFTkdUSCkpCiNkZWZpbmUgT1hNX0hFQURFUihDTEFTUywgRklFTEQsIExFTkdUSCkgXAogICAgT1hNX0hFQURFUl9fKENMQVNTLCBGSUVMRCwgMCwgTEVOR1RIKQojZGVmaW5lIE9YTV9IRUFERVJfVyhDTEFTUywgRklFTEQsIExFTkdUSCkgXAogICAgT1hNX0hFQURFUl9fKENMQVNTLCBGSUVMRCwgMSwgKExFTkdUSCkgKiAyKQojZGVmaW5lIE9YTV9DTEFTUyhIRUFERVIpICgoSEVBREVSKSA+PiAxNikKI2RlZmluZSBPWE1fRklFTEQoSEVBREVSKSAoKChIRUFERVIpID4+IDkpICYgMHg3ZikKI2RlZmluZSBPWE1fVFlQRShIRUFERVIpICgoKEhFQURFUikgPj4gOSkgJiAweDdmZmZmZikKI2RlZmluZSBPWE1fSEFTTUFTSyhIRUFERVIpICgoKEhFQURFUikgPj4gOCkgJiAxKQojZGVmaW5lIE9YTV9MRU5HVEgoSEVBREVSKSAoKEhFQURFUikgJiAweGZmKQoKI2RlZmluZSBPWE1fTUFLRV9XSUxEX0hFQURFUihIRUFERVIpIFwKICAgIE9YTV9IRUFERVJfVyhPWE1fQ0xBU1MoSEVBREVSKSwgT1hNX0ZJRUxEKEhFQURFUiksIE9YTV9MRU5HVEgoSEVBREVSKSkKCgsKAwUMARIEnQMFEgovCgQFDAIAEgSeAwQjIiEgQmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIE5YTSAKDQoFBQwCAAESBJ4DBBAKDQoFBQwCAAISBJ4DHCIKLwoEBQwCARIEnwMEIyIhIEJhY2t3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X0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JTl9QT1JULCA0KQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX0lOX1BPUlQgMtQBIE9wZW5GbG93IHBvcnQgb24gd2hpY2ggdGhlIHBhY2tldCB3YXMgcmVjZWl2ZWQuCiBNYXkgYmUgYSBwaHlzaWNhbCBwb3J0LCBhIGxvZ2ljYWwgcG9ydCwgb3IgdGhlIHJlc2VydmVkIHBvcnQgT0ZQUF9MT0NBTAoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCAgUSBOkDCA4KDQoFBAwCAgESBOkDDxMKDQoFBAwCAgMSBOkDFhcKtwcKBAQMAgMSBIAECCEaSyNkZWZpbmUgT1hNX09GX0lOX1BIWV9QT1JUIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSU5fUEhZX1BPUlQsIDQpCiIgIFVzZWQgZm9yIE9GUFhNVF9PRl9JTl9QSFlfUE9SVCAyuQYgUGh5c2ljYWwgcG9ydCBvbiB3aGljaCB0aGUgcGFja2V0IHdhcyByZWNlaXZlZC4KCiBDb25zaWRlciBhIHBhY2tldCByZWNlaXZlZCBvbiBhIHR1bm5lbCBpbnRlcmZhY2UgZGVmaW5lZCBvdmVyIGEgbGluawogYWdncmVnYXRpb24gZ3JvdXAgKExBRykgd2l0aCB0d28gcGh5c2ljYWwgcG9ydCBtZW1iZXJzLiAgSWYgdGhlIHR1bm5lbAogaW50ZXJmYWNlIGlzIHRoZSBsb2dpY2FsIHBvcnQgYm91bmQgdG8gT3BlbkZsb3cuICBJbiB0aGlzIGNhc2UsCiBPRlBYTVRfT0ZfSU5fUE9SVCBpcyB0aGUgdHVubmVsJ3MgcG9ydCBudW1iZXIgYW5kIE9GUFhNVF9PRl9JTl9QSFlfUE9SVCBpcwogdGhlIHBoeXNpY2FsIHBvcnQgbnVtYmVyIG9mIHRoZSBMQUcgb24gd2hpY2ggdGhlIHR1bm5lbCBpcyBjb25maWd1cmVkLgoKIFdoZW4gYSBwYWNrZXQgaXMgcmVjZWl2ZWQgZGlyZWN0bHkgb24gYSBwaHlzaWNhbCBwb3J0IGFuZCBub3QgcHJvY2Vzc2VkIGJ5IGEKIGxvZ2ljYWwgcG9ydCwgT0ZQWE1UX09GX0lOX1BPUlQgYW5kIE9GUFhNVF9PRl9JTl9QSFlfUE9SVCBoYXZlIHRoZSBzYW1lCiB2YWx1ZS4KCiBUaGlzIGZpZWxkIGlzIHVzdWFsbHkgbm90IGF2YWlsYWJsZSBpbiBhIHJlZ3VsYXIgbWF0Y2ggYW5kIG9ubHkgYXZhaWxhYmxlCiBpbiBvZnBfcGFja2V0X2luIG1lc3NhZ2VzIHdoZW4gaXQncyBkaWZmZXJlbnQgZnJvbSBPWE1fT0ZfSU5fUE9SVC4KCiBQcmVyZXFzOiBPWE1fT0ZfSU5fUE9SVCBtdXN0IGJlIHByZXNlbnQuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCAwUSBIAECA4KDQoFBAwCAwESBIAEDxwKDQoFBAwCAwMSBIAEHyAKrQIKBAQMAgQSBIwECCIajgEjZGVmaW5lIE9YTV9PRl9NRVRBREFUQSAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTUVUQURBVEEsIDgpCiNkZWZpbmUgT1hNX09GX01FVEFEQVRBX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9NRVRBREFUQSwgOCkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9NRVRBREFUQSAybiBUYWJsZSBtZXRhZGF0YS4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogNjQtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQMAgQFEgSMBAgOCg0KBQQMAgQBEgSMBA8dCg0KBQQMAgQDEgSMBCAhCuIDCgQEDAIFEgSZBAgaGpgCI2RlZmluZSBPWE1fT0ZfRVRIX0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9EU1QsIDYpCiNkZWZpbmUgT1hNX09GX0VUSF9EU1RfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfRFNULCA2KQojZGVmaW5lIE9YTV9PRl9FVEhfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfRVRIX1NSQywgNikKI2RlZmluZSBPWE1fT0ZfRVRIX1NSQ19XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9TUkMsIDYpCiIvIFVzZWQgZm9yIE9GUFhNVF9PRkJfRVRIX0RTVCAoZXhhY3RseSA2IGJ5dGVzKSAyhwEgU291cmNlIG9yIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gRXRoZXJuZXQgaGVhZGVyLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLiAKDQoFBAwCBQUSBJkECA0KDQoFBAwCBQESBJkEDhUKDQoFBAwCBQMSBJkEGBkKPQoEBAwCBhIEmgQIGiIvIFVzZWQgZm9yIE9GUFhNVF9PRkJfRVRIX1NSQyAoZXhhY3RseSA2IGJ5dGVzKSAKDQoFBAwCBgUSBJoECA0KDQoFBAwCBgESBJoEDhUKDQoFBAwCBgMSBJoEGBkK6QEKBAQMAgcSBKQECBwaRiNkZWZpbmUgT1hNX09GX0VUSF9UWVBFICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfVFlQRSwyKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0VUSF9UWVBFIDJzIFBhY2tldCdzIEV0aGVybmV0IHR5cGUuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIHBRIEpAQIDgoNCgUEDAIHARIEpAQPFwoNCgUEDAIHAxIEpAQaGwqDCwoEBAwCCBIEygQIHBqOASNkZWZpbmUgT1hNX09GX1ZMQU5fVklEICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9WTEFOX1ZJRCwgMikKI2RlZmluZSBPWE1fT0ZfVkxBTl9WSURfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX1ZMQU5fVklELCAyKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1ZMQU5fVklEIDLDCSA4MDIuMVEgVklELgoKIEZvciBhIHBhY2tldCB3aXRoIGFuIDgwMi4xUSBoZWFkZXIsIHRoaXMgaXMgdGhlIFZMQU4tSUQgKFZJRCkgZnJvbSB0aGUKIG91dGVybW9zdCB0YWcsIHdpdGggdGhlIENGSSBiaXQgZm9yY2VkIHRvIDEuIEZvciBhIHBhY2tldCB3aXRoIG5vIDgwMi4xUQogaGVhZGVyLCB0aGlzIGhhcyB2YWx1ZSBPRlBWSURfTk9ORS4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyIHdpdGggYml0IDEzIGluZGljYXRpbmcKIHByZXNlbmNlIG9mIFZMQU4gaGVhZGVyIGFuZCAzIG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDEzIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCiBUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIGluIHZhcmlvdXMgd2F5czoKCiAgIC0gSWYgaXQgaXMgbm90IGNvbnN0cmFpbmVkIGF0IGFsbCwgdGhlIG54X21hdGNoIG1hdGNoZXMgcGFja2V0cyB3aXRob3V0CiAgICAgYW4gODAyLjFRIGhlYWRlciBvciB3aXRoIGFuIDgwMi4xUSBoZWFkZXIgdGhhdCBoYXMgYW55IFZJRCB2YWx1ZS4KCiAgIC0gVGVzdGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggd2l0aCAweDAgbWF0Y2hlcyBvbmx5IHBhY2tldHMgd2l0aG91dAogICAgIGFuIDgwMi4xUSBoZWFkZXIuCgogICAtIFRlc3RpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIHdpdGggYSBWSUQgdmFsdWUgd2l0aCBDRkk9MSBtYXRjaGVzIHBhY2tldHMKICAgICB0aGF0IGhhdmUgYW4gODAyLjFRIGhlYWRlciB3aXRoIGEgc3BlY2lmaWVkIFZJRC4KCiAgIC0gVGVzdGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggd2l0aCBhIG5vbnplcm8gVklEIHZhbHVlIHdpdGggQ0ZJPTAgZG9lcwogICAgIG5vdCBtYWtlIHNlbnNlLiAgVGhlIHN3aXRjaCBtYXkgcmVqZWN0IHRoaXMgY29tYmluYXRpb24uCgogICAtIFRlc3Rpbmcgd2l0aCBueG1fdmFsdWU9MCwgbnhtX21hc2s9MHgwZmZmIG1hdGNoZXMgcGFja2V0cyB3aXRoIG5vIDgwMi4xUQogICAgIGhlYWRlciBvciB3aXRoIGFuIDgwMi4xUSBoZWFkZXIgd2l0aCBhIFZJRCBvZiAwLgoKICAgLSBUZXN0aW5nIHdpdGggbnhtX3ZhbHVlPTB4MTAwMCwgbnhtX21hc2s9MHgxMDAwIG1hdGNoZXMgcGFja2V0cyB3aXRoCiAgICAgYW4gODAyLjFRIGhlYWRlciB0aGF0IGhhcyBhbnkgVklEIHZhbHVlLgoKDQoFBAwCCAUSBMoECA4KDQoFBAwCCAESBMoEDxcKDQoFBAwCCAMSBMoEGhsK0AMKBAQMAgkSBNoECB0aRyNkZWZpbmUgT1hNX09GX1ZMQU5fUENQICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9WTEFOX1BDUCwgMSkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9WTEFOX1BDUCAy2AIgODAyLjFRIFBDUC4KCiBGb3IgYSBwYWNrZXQgd2l0aCBhbiA4MDIuMVEgaGVhZGVyLCB0aGlzIGlzIHRoZSBWTEFOLVBDUCBmcm9tIHRoZQogb3V0ZXJtb3N0IHRhZy4gIEZvciBhIHBhY2tldCB3aXRoIG5vIDgwMi4xUSBoZWFkZXIsIHRoaXMgaGFzIHZhbHVlCiAwLgoKIFByZXJlcXM6IE9YTV9PRl9WTEFOX1ZJRCBtdXN0IGJlIGRpZmZlcmVudCBmcm9tIE9GUFZJRF9OT05FLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDUgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMyBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuCgoNCgUEDAIJBRIE2gQIDgoNCgUEDAIJARIE2gQPFwoNCgUEDAIJAxIE2gQaHAqoAwoEBAwCChIE5gQIHBpHI2RlZmluZSBPWE1fT0ZfSVBfRFNDUCAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUF9EU0NQLCAxKQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQX0RTQ1AgMrECIFRoZSBEaWZmIFNlcnYgQ29kZSBQb2ludCAoRFNDUCkgYml0cyBvZiB0aGUgSVAgaGVhZGVyLgogUGFydCBvZiB0aGUgSVB2NCBUb1MgZmllbGQgb3IgdGhlIElQdjYgVHJhZmZpYyBDbGFzcyBmaWVsZC4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCAyIG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDYgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCCgUSBOYECA4KDQoFBAwCCgESBOYEDxYKDQoFBAwCCgMSBOYEGRsKjQMKBAQMAgsSBPIECBsaRSNkZWZpbmUgT1hNX09GX0lQX0VDTiAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUF9FQ04sIDEpCiIcIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBfRUNOIDKZAiBUaGUgRUNOIGJpdHMgb2YgdGhlIElQIGhlYWRlci4KIFBhcnQgb2YgdGhlIElQdjQgVG9TIGZpZWxkIG9yIHRoZSBJUHY2IFRyYWZmaWMgQ2xhc3MgZmllbGQuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNiBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAyIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgsFEgTyBAgOCg0KBQQMAgsBEgTyBA8VCg0KBQQMAgsDEgTyBBgaCo0CCgQEDAIMEgT8BAgdGkcjZGVmaW5lIE9YTV9PRl9JUF9QUk9UTyAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBfUFJPVE8sIDEpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBfUFJPVE8gMpUBIFRoZSAicHJvdG9jb2wiIGJ5dGUgaW4gdGhlIElQIGhlYWRlci4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCDAUSBPwECA4KDQoFBAwCDAESBPwEDxcKDQoFBAwCDAMSBPwEGhwKjQQKBAQMAg0SBIoFCB0apAIjZGVmaW5lIE9YTV9PRl9JUFY0X1NSQyAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X1NSQywgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNF9TUkNfVyAgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9TUkMsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjRfRFNUICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfRFNULCA0KQojZGVmaW5lIE9YTV9PRl9JUFY0X0RTVF9XICAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X0RTVCwgNCkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUFY0X1NSQyAytwEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBhZGRyZXNzIGluIHRoZSBJUCBoZWFkZXIuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODAwIGV4YWN0bHkuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBAwCDQUSBIoFCA4KDQoFBAwCDQESBIoFDxcKDQoFBAwCDQMSBIoFGhwKLAoEBAwCDhIEiwUIHSIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBWNF9EU1QgCg0KBQQMAg4FEgSLBQgOCg0KBQQMAg4BEgSLBQ8XCg0KBQQMAg4DEgSLBRocCqEDCgQEDAIPEgSYBQgcGowBI2RlZmluZSBPWE1fT0ZfVENQX1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1RDUF9TUkMsIDIpCiNkZWZpbmUgT1hNX09GX1RDUF9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9UQ1BfRFNULCAyKQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1RDUF9TUkMgMuQBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gcG9ydCBpbiB0aGUgVENQIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNiBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAg8FEgSYBQgOCg0KBQQMAg8BEgSYBQ8WCg0KBQQMAg8DEgSYBRkbCisKBAQMAhASBJkFCBwiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1RDUF9EU1QgCg0KBQQMAhAFEgSZBQgOCg0KBQQMAhABEgSZBQ8WCg0KBQQMAhADEgSZBRkbCqUDCgQEDAIREgSmBQgcGowBI2RlZmluZSBPWE1fT0ZfVURQX1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1VEUF9TUkMsIDIpCiNkZWZpbmUgT1hNX09GX1VEUF9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9VRFBfRFNULCAyKQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1VEUF9TUkMgMugBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gcG9ydCBpbiB0aGUgVURQIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggMTcgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIRBRIEpgUIDgoNCgUEDAIRARIEpgUPFgoNCgUEDAIRAxIEpgUZGworCgQEDAISEgSnBQgcIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9VRFBfRFNUIAoNCgUEDAISBRIEpwUIDgoNCgUEDAISARIEpwUPFgoNCgUEDAISAxIEpwUZGwqqAwoEBAwCExIEtAUIHRqOASNkZWZpbmUgT1hNX09GX1NDVFBfU1JDICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9TQ1RQX1NSQywgMikKI2RlZmluZSBPWE1fT0ZfU0NUUF9EU1QgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1NDVFBfRFNULCAyKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1NDVFBfU1JDIDLqASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIFNDVFAgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCAxMzIgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAITBRIEtAUIDgoNCgUEDAITARIEtAUPFwoNCgUEDAITAxIEtAUaHAosCgQEDAIUEgS1BQgdIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9TQ1RQX0RTVCAKDQoFBAwCFAUSBLUFCA4KDQoFBAwCFAESBLUFDxcKDQoFBAwCFAMSBLUFGhwKhwMKBAQMAhUSBMIFCCAamAEjZGVmaW5lIE9YTV9PRl9JQ01QVjRfVFlQRSAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjRfVFlQRSwgMSkKI2RlZmluZSBPWE1fT0ZfSUNNUFY0X0NPREUgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY0X0NPREUsIDEpCiIhIFVzZWQgZm9yIE9GUFhNVF9PRkJfSUNNUFY0X1RZUEUgMroBIFRoZSB0eXBlIG9yIGNvZGUgaW4gdGhlIElDTVAgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwMCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCAxIGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAhUFEgTCBQgOCg0KBQQMAhUBEgTCBQ8aCg0KBQQMAhUDEgTCBR0fCi8KBAQMAhYSBMMFCCAiISBVc2VkIGZvciBPRlBYTVRfT0ZCX0lDTVBWNF9DT0RFIAoNCgUEDAIWBRIEwwUIDgoNCgUEDAIWARIEwwUPGgoNCgUEDAIWAxIEwwUdHwrVAgoEBAwCFxIE0AUIGxpFI2RlZmluZSBPWE1fT0ZfQVJQX09QICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9PUCwgMikKIhwgVXNlZCBmb3IgT0ZQWE1UX09GQl9BUlBfT1AgMuEBIEFSUCBvcGNvZGUuCgogRm9yIGFuIEV0aGVybmV0K0lQIEFSUCBwYWNrZXQsIHRoZSBvcGNvZGUgaW4gdGhlIEFSUCBoZWFkZXIuICBBbHdheXMgMAogb3RoZXJ3aXNlLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwNiBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAhcFEgTQBQgOCg0KBQQMAhcBEgTQBQ8VCg0KBQQMAhcDEgTQBRgaCrUECgQEDAIYEgTfBQgcGpgCI2RlZmluZSBPWE1fT0ZfQVJQX1NQQSAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TUEEsIDQpCiNkZWZpbmUgT1hNX09GX0FSUF9TUEFfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU1BBLCA0KQojZGVmaW5lIE9YTV9PRl9BUlBfVFBBICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RQQSwgNCkKI2RlZmluZSBPWE1fT0ZfQVJQX1RQQV9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9UUEEsIDQpCiIYIEZvciBPRlBYTVRfT0ZCX0FSUF9TUEEgMvEBIEZvciBhbiBFdGhlcm5ldCtJUCBBUlAgcGFja2V0LCB0aGUgc291cmNlIG9yIHRhcmdldCBwcm90b2NvbCBhZGRyZXNzCiBpbiB0aGUgQVJQIGhlYWRlci4gIEFsd2F5cyAwIG90aGVyd2lzZS4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDYgZXhhY3RseS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDAIYBRIE3wUIDgoNCgUEDAIYARIE3wUPFgoNCgUEDAIYAxIE3wUZGwomCgQEDAIZEgTgBQgcIhggRm9yIE9GUFhNVF9PRkJfQVJQX1RQQSAKDQoFBAwCGQUSBOAFCA4KDQoFBAwCGQESBOAFDxYKDQoFBAwCGQMSBOAFGRsKtwQKBAQMAhoSBO4FCBsanAIjZGVmaW5lIE9YTV9PRl9BUlBfU0hBICAgIE9YTV9IRUFERVIgICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TSEEsIDYpCiNkZWZpbmUgT1hNX09GX0FSUF9TSEFfVyAgT1hNX0hFQURFUl9XICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NIQSwgNikKI2RlZmluZSBPWE1fT0ZfQVJQX1RIQSAgICBPWE1fSEVBREVSICAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVEhBLCA2KQojZGVmaW5lIE9YTV9PRl9BUlBfVEhBX1cgIE9YTV9IRUFERVJfVyAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9USEEsIDYpCiIiIEZvciBPRlBYTVRfT0ZCX0FSUF9TSEEgKDYgYnl0ZXMpIDLlASBGb3IgYW4gRXRoZXJuZXQrSVAgQVJQIHBhY2tldCwgdGhlIHNvdXJjZSBvciB0YXJnZXQgaGFyZHdhcmUgYWRkcmVzcwogaW4gdGhlIEFSUCBoZWFkZXIuICBBbHdheXMgMCBvdGhlcndpc2UuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODA2IGV4YWN0bHkuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCGgUSBO4FCA0KDQoFBAwCGgESBO4FDhUKDQoFBAwCGgMSBO4FGBoKMAoEBAwCGxIE7wUIGyIiIEZvciBPRlBYTVRfT0ZCX0FSUF9USEEgKDYgYnl0ZXMpIAoNCgUEDAIbBRIE7wUIDQoNCgUEDAIbARIE7wUOFQoNCgUEDAIbAxIE7wUYGgr6AwoEBAwCHBIE/QUIHBqkAiNkZWZpbmUgT1hNX09GX0lQVjZfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9TUkMsIDE2KQojZGVmaW5lIE9YTV9PRl9JUFY2X1NSQ19XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfU1JDLCAxNikKI2RlZmluZSBPWE1fT0ZfSVBWNl9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0RTVCwgMTYpCiNkZWZpbmUgT1hNX09GX0lQVjZfRFNUX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9EU1QsIDE2KQoiGSBGb3IgT0ZQWE1UX09GQl9JUFY2X1NSQyAyqQEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBhZGRyZXNzIGluIHRoZSBJUHY2IGhlYWRlci4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KCiBGb3JtYXQ6IDEyOC1iaXQgSVB2NiBhZGRyZXNzLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQMAhwFEgT9BQgNCg0KBQQMAhwBEgT9BQ4WCg0KBQQMAhwDEgT9BRkbCicKBAQMAh0SBP4FCBwiGSBGb3IgT0ZQWE1UX09GQl9JUFY2X0RTVCAKDQoFBAwCHQUSBP4FCA0KDQoFBAwCHQESBP4FDhYKDQoFBAwCHQMSBP4FGRsKnQMKBAQMAh4SBIwGCCAamgEjZGVmaW5lIE9YTV9PRl9JUFY2X0ZMQUJFTCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9GTEFCRUwsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjZfRkxBQkVMX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTCwgNCkKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9GTEFCRUwgMtMBIFRoZSBJUHY2IEZsb3cgTGFiZWwKCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseQoKIEZvcm1hdDogMzItYml0IGludGVnZXIgd2l0aCAxMiBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAyMCBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDAIeBRIEjAYIDgoNCgUEDAIeARIEjAYPGgoNCgUEDAIeAxIEjAYdHwqDAwoEBAwCHxIEmQYIIBqWASNkZWZpbmUgT1hNX09GX0lDTVBWNl9UWVBFIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY2X1RZUEUsIDEpCiNkZWZpbmUgT1hNX09GX0lDTVBWNl9DT0RFIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY2X0NPREUsIDEpCiIcIEZvciBPRlBYTVRfT0ZCX0lDTVBWNl9UWVBFIDK9ASBUaGUgdHlwZSBvciBjb2RlIGluIHRoZSBJQ01QdjYgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIfBRIEmQYIDgoNCgUEDAIfARIEmQYPGgoNCgUEDAIfAxIEmQYdHwoqCgQEDAIgEgSaBgggIhwgRm9yIE9GUFhNVF9PRkJfSUNNUFY2X0NPREUgCg0KBQQMAiAFEgSaBggOCg0KBQQMAiABEgSaBg8aCg0KBQQMAiADEgSaBh0fCpEDCgQEDAIhEgSoBggiGlcjZGVmaW5lIE9YTV9PRl9JUFY2X05EX1RBUkdFVCBPWE1fSEVBREVSIFwKICAgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9ORF9UQVJHRVQsIDE2KQoiHyBGb3IgT0ZQWE1UX09GQl9JUFY2X05EX1RBUkdFVCAyiAIgVGhlIHRhcmdldCBhZGRyZXNzIGluIGFuIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5IG1lc3NhZ2UuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCiAgIE9YTV9PRl9JQ01QVjZfVFlQRSBtdXN0IGJlIGVpdGhlciAxMzUgb3IgMTM2LgoKIEZvcm1hdDogMTI4LWJpdCBJUHY2IGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCIQUSBKgGCA0KDQoFBAwCIQESBKgGDhwKDQoFBAwCIQMSBKgGHyEKlwMKBAQMAiISBLYGCB8aTCNkZWZpbmUgT1hNX09GX0lQVjZfTkRfU0xMICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfTkRfU0xMLCA2KQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X05EX1NMTCAynAIgVGhlIHNvdXJjZSBsaW5rLWxheWVyIGFkZHJlc3Mgb3B0aW9uIGluIGFuIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5CiBtZXNzYWdlLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgogICBPWE1fT0ZfSUNNUFY2X1RZUEUgbXVzdCBiZSBleGFjdGx5IDEzNS4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIiBRIEtgYIDQoNCgUEDAIiARIEtgYOGQoNCgUEDAIiAxIEtgYcHgqXAwoEBAwCIxIExAYIHxpMI2RlZmluZSBPWE1fT0ZfSVBWNl9ORF9UTEwgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9ORF9UTEwsIDYpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfTkRfVExMIDKcAiBUaGUgdGFyZ2V0IGxpbmstbGF5ZXIgYWRkcmVzcyBvcHRpb24gaW4gYW4gSVB2NiBOZWlnaGJvciBEaXNjb3ZlcnkKIG1lc3NhZ2UuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCiAgIE9YTV9PRl9JQ01QVjZfVFlQRSBtdXN0IGJlIGV4YWN0bHkgMTM2LgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAiMFEgTEBggNCg0KBQQMAiMBEgTEBg4ZCg0KBQQMAiMDEgTEBhweCv4CCgQEDAIkEgTQBggfGkojZGVmaW5lIE9YTV9PRl9NUExTX0xBQkVMICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01QTFNfTEFCRUwsIDQpCiIbIEZvciBPRlBYTVRfT0ZCX01QTFNfTEFCRUwgMoYCIFRoZSBMQUJFTCBpbiB0aGUgZmlyc3QgTVBMUyBzaGltIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4NDcgb3IgMHg4ODQ4IGV4YWN0bHkuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgd2l0aCAxMiBtb3N0LXNpZ25pZmljYW50CiBiaXRzIGZvcmNlZCB0byAwLiBPbmx5IHRoZSBsb3dlciAyMCBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIkBRIE0AYIDgoNCgUEDAIkARIE0AYPGQoNCgUEDAIkAxIE0AYcHgrcAgoEBAwCJRIE3AYIHBpHI2RlZmluZSBPWE1fT0ZfTVBMU19UQyAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NUExTX1RDLCAxKQoiGCBGb3IgT0ZQWE1UX09GQl9NUExTX1RDIDLqASBUaGUgVEMgaW4gdGhlIGZpcnN0IE1QTFMgc2hpbSBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4ODQ3IG9yIDB4ODg0OCBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDUgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMyBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIlBRIE3AYIDgoNCgUEDAIlARIE3AYPFgoNCgUEDAIlAxIE3AYZGwrkAgoEBAwCJhIE6AYIHRpJI2RlZmluZSBPWE1fT0ZfTVBMU19CT1MgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTVBMU19CT1MsIDEpCiIZIEZvciBPRlBYTVRfT0ZCX01QTFNfQk9TIDLvASBUaGUgQm9TIGJpdCBpbiB0aGUgZmlyc3QgTVBMUyBzaGltIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4NDcgb3IgMHg4ODQ4IGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNyBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlc3QgYml0IGhhdmUgYSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAiYFEgToBggOCg0KBQQMAiYBEgToBg8XCg0KBQQMAiYDEgToBhocCqoDCgQEDAInEgT3BggdGo4BI2RlZmluZSBPWE1fT0ZfUEJCX0lTSUQgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1BCQl9JU0lELCAzKQojZGVmaW5lIE9YTV9PRl9QQkJfSVNJRF9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfUEJCX0lTSUQsIDMpCiIZIEZvciBPRlBYTVRfT0ZCX1BCQl9JU0lEIDLvASBJRUVFIDgwMi4xYWggSS1TSUQuCgogRm9yIGEgcGFja2V0IHdpdGggYSBQQkIgaGVhZGVyLCB0aGlzIGlzIHRoZSBJLVNJRCBmcm9tIHRoZQogb3V0ZXJtb3N0IHNlcnZpY2UgdGFnLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODhFNyBleGFjdGx5LgoKIEZvcm1hdDogMjQtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4gCg0KBQQMAicFEgT3BggOCg0KBQQMAicBEgT3Bg8XCg0KBQQMAicDEgT3BhocCrwGCgQEDAIoEgSLBwgeGpQBI2RlZmluZSBPWE1fT0ZfVFVOTkVMX0lEICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVFVOTkVMX0lELCA4KQojZGVmaW5lIE9YTV9PRl9UVU5ORUxfSURfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9UVU5ORUxfSUQsIDgpCiIaIEZvciBPRlBYTVRfT0ZCX1RVTk5FTF9JRCAy+gQgTG9naWNhbCBQb3J0IE1ldGFkYXRhLgoKIE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIGxvZ2ljYWwgcG9ydC4KIElmIHRoZSBsb2dpY2FsIHBvcnQgcGVyZm9ybXMgZW5jYXBzdWxhdGlvbiBhbmQgZGVjYXBzdWxhdGlvbiwgdGhpcwogaXMgdGhlIGRlbXVsdGlwbGV4aW5nIGZpZWxkIGZyb20gdGhlIGVuY2Fwc3VsYXRpb24gaGVhZGVyLgogRm9yIGV4YW1wbGUsIGZvciBhIHBhY2tldCByZWNlaXZlZCB2aWEgR1JFIHR1bm5lbCBpbmNsdWRpbmcgYSAoMzItYml0KSBrZXksCiB0aGUga2V5IGlzIHN0b3JlZCBpbiB0aGUgbG93IDMyLWJpdHMgYW5kIHRoZSBoaWdoIGJpdHMgYXJlIHplcm9lZC4KIEZvciBhIE1QTFMgbG9naWNhbCBwb3J0LCB0aGUgbG93IDIwIGJpdHMgcmVwcmVzZW50IHRoZSBNUExTIExhYmVsLgogRm9yIGEgVnhMQU4gbG9naWNhbCBwb3J0LCB0aGUgbG93IDI0IGJpdHMgcmVwcmVzZW50IHRoZSBWTkkuCiBJZiB0aGUgcGFja2V0IGlzIG5vdCByZWNlaXZlZCB0aHJvdWdoIGEgbG9naWNhbCBwb3J0LCB0aGUgdmFsdWUgaXMgMC4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogNjQtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4gCg0KBQQMAigFEgSLBwgOCg0KBQQMAigBEgSLBw8YCg0KBQQMAigDEgSLBxsdCqgDCgQEDAIpEgSYBwggGpoBI2RlZmluZSBPWE1fT0ZfSVBWNl9FWFRIRFIgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRVhUSERSLCAyKQojZGVmaW5lIE9YTV9PRl9JUFY2X0VYVEhEUl9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBW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c3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX3N0YXRzLiAKDQoFBS0CCQESBLcNBA8KDQoFBS0CCQISBLcNEhMKlwEKBAUtAgoSBLwNBBwaiAEgTWV0ZXIgY29uZmlndXJhdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX2NvbmZpZy4gCg0KBQUtAgoBEgS8DQQWCg0KBQUtAgoCEgS8DRkbCmkKBAUtAgsSBMENBB4aWyBNZXRlciBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX2ZlYXR1cmVzLiAKDQoFBS0CCwESBMENBBgKDQoFBS0CCwISBMENGx0KsQIKBAUtAgwSBMkNBB4aogIgVGFibGUgZmVhdHVyZXMuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVpdGhlciBlbXB0eSBvciBjb250YWlucyBhbiBhcnJheSBvZgogc3RydWN0IG9mcF90YWJsZV9mZWF0dXJlcyBjb250YWluaW5nIHRoZSBjb250cm9sbGVyJ3MKIGRlc2lyZWQgdmlldyBvZiB0aGUgc3dpdGNoLiBJZiB0aGUgc3dpdGNoIGlzIHVuYWJsZSB0bwogc2V0IHRoZSBzcGVjaWZpZWQgdmlldyBhbiBlcnJvciBpcyByZXR1cm5lZC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfdGFibGVfZmVhdHVyZXMuIAoNCgUFLQIMARIEyQ0EGAoNCgUFLQIMAhIEyQ0bHQptCgQFLQINEgTODQQZGl8gUG9ydCBkZXNjcmlwdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBh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EgT/EQQKCg0KBQRgAgABEgT/EQsNCg0KBQRgAgADEgT/ERARCg4KBARgCAASBoASBIISBQoNCgUEYAgAARIEgBIKDwoMCgQEYAIBEgSBEggoCg0KBQRgAgEGEgSBEggXCg0KBQRgAgEBEgSBEhgjCg0KBQRgAgEDEgSBEiYnYgZwcm90bzMKvJsBChp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90bxIGdm9sdGhhGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoYdm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvGh92b2x0aGFfcHJvdG9zL29wZW5mbG93XzEzLnByb3RvIr8CCgpEZXZpY2VUeXBlEg4KAmlkGAEgASgJUgJpZBIbCgl2ZW5kb3JfaWQYBSABKAlSCHZlbmRvcklkEh0KCnZlbmRvcl9pZHMYBiADKAlSCXZlbmRvcklkcxIYCgdhZGFwdGVyGAIgASgJUgdhZGFwdGVyEjcKGGFjY2VwdHNfYnVsa19mbG93X3VwZGF0ZRgDIAEoCFIVYWNjZXB0c0J1bGtGbG93VXBkYXRlEkQKH2FjY2VwdHNfYWRkX3JlbW92ZV9mbG93X3VwZGF0ZXMYBCABKAhSG2FjY2VwdHNBZGRSZW1vdmVGbG93VXBkYXRlcxJMCiNhY2NlcHRzX2RpcmVjdF9sb2dpY2FsX2Zsb3dzX3VwZGF0ZRgHIAEoCFIfYWNjZXB0c0RpcmVjdExvZ2ljYWxGbG93c1VwZGF0ZSI3CgtEZXZpY2VUeXBlcxIoCgVpdGVtcxgBIAMoCzISLnZvbHRoYS5EZXZpY2VUeXBlUgVpdGVtcyLAAQoIUG1Db25maWcSEgoEbmFtZRgBIAEoCVIEbmFtZRIrCgR0eXBlGAIgASgOMhcudm9sdGhhLlBtQ29uZmlnLlBtVHlwZVIEdHlwZRIYCgdlbmFibGVkGAMgASgIUgdlbmFibGVkEh8KC3NhbXBsZV9mcmVxGAQgASgNUgpzYW1wbGVGcmVxIjgKBlBtVHlwZRILCgdDT1VOVEVSEAASCQoFR0FVR0UQARIJCgVTVEFURRACEgsKB0NPTlRFWFQQAyKTAQoNUG1Hcm91cENvbmZpZxIdCgpncm91cF9uYW1lGAEgASgJUglncm91cE5hbWUSHQoKZ3JvdXBfZnJlcRgCIAEoDVIJZ3JvdXBGcmVxEhgKB2VuYWJsZWQYAyABKAhSB2VuYWJsZWQSKgoHbWV0cmljcxgEIAMoCzIQLnZvbHRoYS5QbUNvbmZpZ1IHbWV0cmljcyLmAQoJUG1Db25maWdzEg4KAmlkGAEgASgJUgJpZBIhCgxkZWZhdWx0X2ZyZXEYAiABKA1SC2RlZmF1bHRGcmVxEh8KB2dyb3VwZWQYAyABKAhCBej2zR0BUgdncm91cGVkEioKDWZyZXFfb3ZlcnJpZGUYBCABKAhCBej2zR0BUgxmcmVxT3ZlcnJpZGUSLQoGZ3JvdXBzGAUgAygLMhUudm9sdGhhLlBtR3JvdXBDb25maWdSBmdyb3VwcxIqCgdtZXRyaWNzGAYgAygLMhAudm9sdGhhLlBtQ29uZmlnUgdtZXRyaWNzIs8BCgVJbWFnZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKAlSB3ZlcnNpb24SEgoEaGFzaBgDIAEoCVIEaGFzaBIpChBpbnN0YWxsX2RhdGV0aW1lGAQgASgJUg9pbnN0YWxsRGF0ZXRpbWUSGwoJaXNfYWN0aXZlGAUgASgIUghpc0FjdGl2ZRIhCgxpc19jb21taXR0ZWQYBiABKAhSC2lzQ29tbWl0dGVkEhkKCGlzX3ZhbGlkGAcgASgIUgdpc1ZhbGlkIi0KBkltYWdlcxIjCgVpbWFnZRgBIAMoCzINLnZvbHRoYS5JbWFnZVIFaW1hZ2Ui4wcKDUltYWdlRG93bmxvYWQSDgoCaWQYASABKAlSAmlkEhIKBG5hbWUYAiABKAlSBG5hbWUSEAoDdXJsGAMgASgJUgN1cmwSEAoDY3JjGAQgASgNUgNjcmMSTwoOZG93bmxvYWRfc3RhdGUYBSABKA4yKC52b2x0aGEuSW1hZ2VEb3dubG9hZC5JbWFnZURvd25sb2FkU3RhdGVSDWRvd25sb2FkU3RhdGUSIwoNaW1hZ2VfdmVyc2lvbhgGIAEoCVIMaW1hZ2VWZXJzaW9uEikKEGRvd25sb2FkZWRfYnl0ZXMYByABKA1SD2Rvd25sb2FkZWRCeXRlcxJICgZyZWFzb24YCCABKA4yMC52b2x0aGEuSW1hZ2VEb3dubG9hZC5JbWFnZURvd25sb2FkRmFpbHVyZVJlYXNvblIGcmVhc29uEicKD2FkZGl0aW9uYWxfaW5mbxgJIAEoCVIOYWRkaXRpb25hbEluZm8SHwoLc2F2ZV9jb25maWcYCiABKAhSCnNhdmVDb25maWcSGwoJbG9jYWxfZGlyGAsgASgJUghsb2NhbERpchJJCgtpbWFnZV9zdGF0ZRgMIAEoDjIoLnZvbHRoYS5JbWFnZURvd25sb2FkLkltYWdlQWN0aXZhdGVTdGF0ZVIKaW1hZ2VTdGF0ZRIbCglmaWxlX3NpemUYDSABKA1SCGZpbGVTaXplIrcBChJJbWFnZURvd25sb2FkU3RhdGUSFAoQRE9XTkxPQURfVU5LTk9XThAAEhYKEkRPV05MT0FEX1NVQ0NFRURFRBABEhYKEkRPV05MT0FEX1JFUVVFU1RFRBACEhQKEERPV05MT0FEX1NUQVJURUQQAxITCg9ET1dOTE9BRF9GQUlMRUQQBBIYChRET1dOTE9BRF9VTlNVUFBPUlRFRBAFEhYKEkRPV05MT0FEX0NBTkNFTExFRBAGIoYBChpJbWFnZURvd25sb2FkRmFpbHVyZVJlYXNvbhIMCghOT19FUlJPUhAAEg8KC0lOVkFMSURfVVJMEAESDwoLREVWSUNFX0JVU1kQAhIWChJJTlNVRkZJQ0lFTlRfU1BBQ0UQAxIRCg1VTktOT1dOX0VSUk9SEAQSDQoJQ0FOQ0VMTEVEEAUijAEKEkltYWdlQWN0aXZhdGVTdGF0ZRIRCg1JTUFHRV9VTktOT1dOEAASEgoOSU1BR0VfSU5BQ1RJVkUQARIUChBJTUFHRV9BQ1RJVkFUSU5HEAISEAoMSU1BR0VfQUNUSVZFEAMSEwoPSU1BR0VfUkVWRVJUSU5HEAQSEgoOSU1BR0VfUkVWRVJURUQQBSI9Cg5JbWFnZURvd25sb2FkcxIrCgVpdGVtcxgCIAMoCzIVLnZvbHRoYS5JbWFnZURvd25sb2FkUgVpdGVtcyKFBQoEUG9ydBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SFAoFbGFiZWwYAiABKAlSBWxhYmVsEikKBHR5cGUYAyABKA4yFS52b2x0aGEuUG9ydC5Qb3J0VHlwZVIEdHlwZRI5CgthZG1pbl9zdGF0ZRgFIAEoDjIYLmNvbW1vbi5BZG1pblN0YXRlLlR5cGVzUgphZG1pblN0YXRlEjkKC29wZXJfc3RhdHVzGAYgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNSCm9wZXJTdGF0dXMSGwoJZGV2aWNlX2lkGAcgASgJUghkZXZpY2VJZBIrCgVwZWVycxgIIAMoCzIVLnZvbHRoYS5Qb3J0LlBlZXJQb3J0UgVwZWVycxIdCgpyeF9wYWNrZXRzGAkgASgGUglyeFBhY2tldHMSGQoIcnhfYnl0ZXMYCiABKAZSB3J4Qnl0ZXMSGwoJcnhfZXJyb3JzGAsgASgGUghyeEVycm9ycxIdCgp0eF9wYWNrZXRzGAwgASgGUgl0eFBhY2tldHMSGQoIdHhfYnl0ZXMYDSABKAZSB3R4Qnl0ZXMSGwoJdHhfZXJyb3JzGA4gASgGUgh0eEVycm9ycxpACghQZWVyUG9ydBIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhcKB3BvcnRfbm8YAiABKA1SBnBvcnRObyJzCghQb3J0VHlwZRILCgdVTktOT1dOEAASEAoMRVRIRVJORVRfTk5JEAESEAoMRVRIRVJORVRfVU5JEAISCwoHUE9OX09MVBADEgsKB1BPTl9PTlUQBBINCglWRU5FVF9PTFQQBRINCglWRU5FVF9PTlUQBiIrCgVQb3J0cxIiCgVpdGVtcxgBIAMoCzIMLnZvbHRoYS5Qb3J0UgVpdGVtcyLDDAoGRGV2aWNlEhUKAmlkGAEgASgJQgXo9s0dAVICaWQSGQoEdHlwZRgCIAEoCUIF6PbNHQFSBHR5cGUSGQoEcm9vdBgDIAEoCEIF6PbNHQFSBHJvb3QSIgoJcGFyZW50X2lkGAQgASgJQgXo9s0dAVIIcGFyZW50SWQSKwoOcGFyZW50X3BvcnRfbm8YFCABKA1CBej2zR0BUgxwYXJlbnRQb3J0Tm8SHQoGdmVuZG9yGAUgASgJQgXo9s0dAVIGdmVuZG9yEhsKBW1vZGVsGAYgASgJQgXo9s0dAVIFbW9kZWwSMAoQaGFyZHdhcmVfdmVyc2lvbhgHIAEoCUIF6PbNHQFSD2hhcmR3YXJlVmVyc2lvbhIwChBmaXJtd2FyZV92ZXJzaW9uGAggASgJQgXo9s0dAVIPZmlybXdhcmVWZXJzaW9uEi0KBmltYWdlcxgJIAEoCzIOLnZvbHRoYS5JbWFnZXNCBej2zR0BUgZpbWFnZXMSKgoNc2VyaWFsX251bWJlchgKIAEoCUIF6PbNHQFSDHNlcmlhbE51bWJlchIiCgl2ZW5kb3JfaWQYGCABKAlCBej2zR0BUgh2ZW5kb3JJZBIfCgdhZGFwdGVyGAsgASgJQgXo9s0dAVIHYWRhcHRlchISCgR2bGFuGAwgASgNUgR2bGFuEh8KC21hY19hZGRyZXNzGA0gASgJUgptYWNBZGRyZXNzEiMKDGlwdjRfYWRkcmVzcxgOIAEoCUgAUgtpcHY0QWRkcmVzcxIjCgxpcHY2X2FkZHJlc3MYDyABKAlIAFILaXB2NkFkZHJlc3MSJAoNaG9zdF9hbmRfcG9ydBgVIAEoCUgAUgtob3N0QW5kUG9ydBIdCgpleHRyYV9hcmdzGBcgASgJUglleHRyYUFyZ3MSQAoNcHJveHlfYWRkcmVzcxgTIAEoCzIbLnZvbHRoYS5EZXZpY2UuUHJveHlBZGRyZXNzUgxwcm94eUFkZHJlc3MSOQoLYWRtaW5fc3RhdGUYECABKA4yGC5jb21tb24uQWRtaW5TdGF0ZS5UeXBlc1IKYWRtaW5TdGF0ZRJACgtvcGVyX3N0YXR1cxgRIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzQgXo9s0dAVIKb3BlclN0YXR1cxIdCgZyZWFzb24YFiABKAlCBej2zR0BUgZyZWFzb24SSQoOY29ubmVjdF9zdGF0dXMYEiABKA4yGy5jb21tb24uQ29ubmVjdFN0YXR1cy5UeXBlc0IF6PbNHQFSDWNvbm5lY3RTdGF0dXMSLAoGY3VzdG9tGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIGY3VzdG9tEjMKBXBvcnRzGIABIAMoCzIMLnZvbHRoYS5Qb3J0Qg7i9s0dCQoHcG9ydF9ub1IFcG9ydHMSMAoFZmxvd3MYgQEgASgLMhIub3BlbmZsb3dfMTMuRmxvd3NCBeL2zR0AUgVmbG93cxJACgtmbG93X2dyb3VwcxiCASABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzQgXi9s0dAFIKZmxvd0dyb3VwcxI4CgpwbV9jb25maWdzGIMBIAEoCzIRLnZvbHRoYS5QbUNvbmZpZ3NCBeL2zR0AUglwbUNvbmZpZ3MSTAoPaW1hZ2VfZG93bmxvYWRzGIUBIAMoCzIVLnZvbHRoYS5JbWFnZURvd25sb2FkQgvi9s0dBgoEbmFtZVIOaW1hZ2VEb3dubG9hZHMagwIKDFByb3h5QWRkcmVzcxIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEh8KC2RldmljZV90eXBlGAIgASgJUgpkZXZpY2VUeXBlEh0KCmNoYW5uZWxfaWQYAyABKA1SCWNoYW5uZWxJZBIoChBjaGFubmVsX2dyb3VwX2lkGAQgASgNUg5jaGFubmVsR3JvdXBJZBIvChNjaGFubmVsX3Rlcm1pbmF0aW9uGAUgASgJUhJjaGFubmVsVGVybWluYXRpb24SFQoGb251X2lkGAYgASgNUgVvbnVJZBIkCg5vbnVfc2Vzc2lvbl9pZBgHIAEoDVIMb251U2Vzc2lvbklkQgkKB2FkZHJlc3MiLwoHRGV2aWNlcxIkCgVpdGVtcxgBIAMoCzIOLnZvbHRoYS5EZXZpY2VSBWl0ZW1zIqgDChRTaW11bGF0ZUFsYXJtUmVxdWVzdBIOCgJpZBgBIAEoCVICaWQSHAoJaW5kaWNhdG9yGAIgASgJUglpbmRpY2F0b3ISFwoHaW50Zl9pZBgDIAEoCVIGaW50ZklkEiQKDnBvcnRfdHlwZV9uYW1lGAQgASgJUgxwb3J0VHlwZU5hbWUSIgoNb251X2RldmljZV9pZBgFIAEoCVILb251RGV2aWNlSWQSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgGIAEoBVITaW52ZXJzZUJpdEVycm9yUmF0ZRIUCgVkcmlmdBgHIAEoBVIFZHJpZnQSFwoHbmV3X2VxZBgIIAEoBVIGbmV3RXFkEioKEW9udV9zZXJpYWxfbnVtYmVyGAkgASgJUg9vbnVTZXJpYWxOdW1iZXISSAoJb3BlcmF0aW9uGAogASgOMioudm9sdGhhLlNpbXVsYXRlQWxhcm1SZXF1ZXN0Lk9wZXJhdGlvblR5cGVSCW9wZXJhdGlvbiIlCg1PcGVyYXRpb25UeXBlEgkKBVJBSVNFEAASCQoFQ0xFQVIQAUJTChNvcmcub3BlbmNvcmQudm9sdGhhQgxWb2x0aGFEZXZpY2VaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9s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Ej8KB21ldHJpY3MYASADKAsyJS52b2x0aGEuTWV0cmljVmFsdWVQYWlycy5NZXRyaWNzRW50cnlSB21ldHJpY3MaOgoMTWV0cmljc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEixQEKEU1ldHJpY0luZm9ybWF0aW9uEjIKCG1ldGFkYXRhGAEgASgLMhYudm9sdGhhLk1ldHJpY01ldGFEYXRhUghtZXRhZGF0YRJACgdtZXRyaWNzGAIgAygLMiYudm9sdGhhLk1ldHJpY0luZm9ybWF0aW9uLk1ldHJpY3NFbnRyeVIHbWV0cmljcxo6CgxNZXRyaWNzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ASLdAQoIS3BpRXZlbnQSLgoEdHlwZRgBIAEoDjIaLnZvbHRoYS5LcGlFdmVudFR5cGUuVHlwZXNSBHR5cGUSDgoCdHMYAiABKAJSAnRzEjoKCHByZWZpeGVzGAMgAygLMh4udm9sdGhhLktwaUV2ZW50LlByZWZpeGVzRW50cnlSCHByZWZpeGVzGlUKDVByZWZpeGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLgoFdmFsdWUYAiABKAsyGC52b2x0aGEuTWV0cmljVmFsdWVQYWlyc1IFdmFsdWU6AjgBIoUBCglLcGlFdmVudDISLgoEdHlwZRgBIAEoDjIaLnZvbHRoYS5LcGlFdmVudFR5cGUuVHlwZXNSBHR5cGUSDgoCdHMYAiABKAFSAnRzEjgKCnNsaWNlX2RhdGEYAyADKAsyGS52b2x0aGEuTWV0cmljSW5mb3JtYXRpb25SCXNsaWNlRGF0YSJ3Cg5BbGFybUV2ZW50VHlwZSJlCgVUeXBlcxIRCg1DT01NVU5JQ0FUSU9OEAASDwoLRU5WSVJPTk1FTlQQARINCglFUVVJUE1FTlQQAhILCgdTRVJWSUNFEAMSDgoKUFJPQ0VTU0lORxAEEgwKCFNFQ1VSSVRZEAUiSgoSQWxhcm1FdmVudENhdGVnb3J5IjQKBVR5cGVzEgcKA1BPThAAEgcKA09MVBABEgcKA09OVBACEgcKA09OVRADEgcKA05OSRAEIjMKD0FsYXJtRXZlbnRTdGF0ZSIgCgVUeXBlcxIKCgZSQUlTRUQQABILCgdDTEVBUkVEEAEiYQoSQWxhcm1FdmVudFNldmVyaXR5IksKBVR5cGVzEhEKDUlOREVURVJNSU5BVEUQABILCgdXQVJOSU5HEAESCQoFTUlOT1IQAhIJCgVNQUpPUhADEgwKCENSSVRJQ0FMEAQivgUKCkFsYXJtRXZlbnQSDgoCaWQYASABKAlSAmlkEjAKBHR5cGUYAiABKA4yHC52b2x0aGEuQWxhcm1FdmVudFR5cGUuVHlwZXNSBHR5cGUSPAoIY2F0ZWdvcnkYAyABKA4yIC52b2x0aGEuQWxhcm1FdmVudENhdGVnb3J5LlR5cGVzUghjYXRlZ29yeRIzCgVzdGF0ZRgEIAEoDjIdLnZvbHRoYS5BbGFybUV2ZW50U3RhdGUuVHlwZXNSBXN0YXRlEjwKCHNldmVyaXR5GAUgASgOMiAudm9sdGhhLkFsYXJtRXZlbnRTZXZlcml0eS5UeXBlc1IIc2V2ZXJpdHkSNwoJcmFpc2VkX3RzGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIIcmFpc2VkVHMSOwoLcmVwb3J0ZWRfdHMYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgpyZXBvcnRlZFRzEjkKCmNoYW5nZWRfdHMYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgljaGFuZ2VkVHMSHwoLcmVzb3VyY2VfaWQYCSABKAlSCnJlc291cmNlSWQSIAoLZGVzY3JpcHRpb24YCiABKAlSC2Rlc2NyaXB0aW9uEjkKB2NvbnRleHQYCyADKAsyHy52b2x0aGEuQWxhcm1FdmVudC5Db250ZXh0RW50cnlSB2NvbnRleHQSKgoRbG9naWNhbF9kZXZpY2VfaWQYDCABKAlSD2xvZ2ljYWxEZXZpY2VJZBImCg9hbGFybV90eXBlX25hbWUYDSABKAlSDWFsYXJtVHlwZU5hbWUaOgoMQ29udGV4dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEi9AEKC0RldmljZUV2ZW50Eh8KC3Jlc291cmNlX2lkGAEgASgJUgpyZXNvdXJjZUlkEioKEWRldmljZV9ldmVudF9uYW1lGAIgASgJUg9kZXZpY2VFdmVudE5hbWUSIAoLZGVzY3JpcHRpb24YAyABKAlSC2Rlc2NyaXB0aW9uEjoKB2NvbnRleHQYBCADKAsyIC52b2x0aGEuRGV2aWNlRXZlbnQuQ29udGV4dEVudHJ5Ugdjb250ZXh0GjoKDENvbnRleHRFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBInYKDUV2ZW50Q2F0ZWdvcnkiZQoFVHlwZXMSEQoNQ09NTVVOSUNBVElPThAAEg8KC0VOVklST05NRU5UEAESDQoJRVFVSVBNRU5UEAISCwoHU0VSVklDRRADEg4KClBST0NFU1NJTkcQBBIMCghTRUNVUklUWRAFIkgKEEV2ZW50U3ViQ2F0ZWdvcnkiNAoFVHlwZXMSBwoDUE9OEAASBwoDT0xUEAESBwoDT05UEAISBwoDT05VEAMSBwoDTk5JEAQiVwoJRXZlbnRUeXBlIkoKBVR5cGVzEhAKDENPTkZJR19FVkVOVBAAEg0KCUtQSV9FVkVOVBABEg4KCktQSV9FVkVOVDIQAhIQCgxERVZJQ0VfRVZFTlQQAyLfAgoLRXZlbnRIZWFkZXISDgoCaWQYASABKAlSAmlkEjcKCGNhdGVnb3J5GAIgASgOMhsudm9sdGhhLkV2ZW50Q2F0ZWdvcnkuVHlwZXNSCGNhdGVnb3J5EkEKDHN1Yl9jYXRlZ29yeRgDIAEoDjIeLnZvbHRoYS5FdmVudFN1YkNhdGVnb3J5LlR5cGVzUgtzdWJDYXRlZ29yeRIrCgR0eXBlGAQgASgOMhcudm9sdGhhLkV2ZW50VHlwZS5UeXBlc1IEdHlwZRIhCgx0eXBlX3ZlcnNpb24YBSABKAlSC3R5cGVWZXJzaW9uEjcKCXJhaXNlZF90cxgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSCHJhaXNlZFRzEjsKC3JlcG9ydGVkX3RzGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIKcmVwb3J0ZWRUcyKbAgoFRXZlbnQSKwoGaGVhZGVyGAEgASgLMhMudm9sdGhhLkV2ZW50SGVhZGVyUgZoZWFkZXISOAoMY29uZmlnX2V2ZW50GAIgASgL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Z2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvEg9nb29nbGUucHJvdG9idWYiBwoFRW1wdHlCdgoTY29tLmdvb2dsZS5wcm90b2J1ZkIKRW1wdHlQcm90b1ABWidnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvZW1wdHn4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK/hAKBhIEHgAzEArMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAPgoJCgIICxIDIwA+CggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUAKwoJCgIICBIDJQArCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCggKAQgSAygAHwoJCgIIHxIDKAAfCvsCCgIEABIDMwAQGu8CIEEgZ2VuZXJpYyBlbXB0eSBtZXNzYWdlIHRoYXQgeW91IGNhbiByZS11c2UgdG8gYXZvaWQgZGVmaW5pbmcgZHVwbGljYXRlZAogZW1wdHkgbWVzc2FnZXMgaW4geW91ciBBUElzLiBBIHR5cGljYWwgZXhhbXBsZSBpcyB0byB1c2UgaXQgYXMgdGhlIHJlcXVlc3QKIG9yIHRoZSByZXNwb25zZSB0eXBlIG9mIGFuIEFQSSBtZXRob2QuIEZvciBpbnN0YW5jZToKCiAgICAgc2VydmljZSBGb28gewogICAgICAgcnBjIEJhcihnb29nbGUucHJvdG9idWYuRW1wdHkpIHJldHVybnMgKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSk7CiAgICAgfQoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgRW1wdHlgIGlzIGVtcHR5IEpTT04gb2JqZWN0IGB7fWAuCgoKCgMEAAESAzMIDWIGcHJvdG8zCv4JChp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxIGdm9sdGhhGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aGHZvbHRoYV9wcm90b3MvbWV0YS5wcm90byKEAQoMSGVhbHRoU3RhdHVzEj0KBXN0YXRlGAEgASgOMiAudm9sdGhhLkhlYWx0aFN0YXR1cy5IZWFsdGhTdGF0ZUIF6PbNHQFSBXN0YXRlIjUKC0hlYWx0aFN0YXRlEgsKB0hFQUxUSFkQABIOCgpPVkVSTE9BREVEEAESCQoFRFlJTkcQAjJhCg1IZWFsdGhTZXJ2aWNlElAKD0dldEhlYWx0aFN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoULnZvbHRoYS5IZWFsdGhTdGF0dXMiD4LT5JMCCRIHL2hlYWx0aEJFChNvcmcub3BlbmNvcmQudm9sdGhhWi5naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjMvZ28vdm9sdGhhSskGCgYSBAAAIwEKCAoBDBIDAAASCggKAQgSAwIARQoJCgIICxIDAgBFCggKAQgSAwMALAoJCgIIARIDAwAsCggKAQISAwUADwoJCgIDABIDBwAmCgkKAgMBEgMIACUKCQoCAwISAwkAIgo3CgIEABIEDAAXARorIEVuY29kZSBoZWFsdGggc3RhdHVzIG9mIGEgVm9sdGhhIGluc3RhbmNlCgoKCgMEAAESAwwIFAodCgQEAAQAEgQPBBMFGg8gSGVhbHRoIHN0YXRlcwoKDAoFBAAEAAESAw8JFAooCgYEAAQAAgASAxAIFCIZIFRoZSBpbnN0YW5jZSBpcyBoZWFsdGh5CgoOCgcEAAQAAgABEgMQCA8KDgoHBAAEAAIAAhIDEBITCkAKBgQABAACARIDEQgXIjEgVGhlIGluc3RhbmNlIGlzIG92ZXJsb2FkZWQsIGRlY3JlYXNlIHF1ZXJ5IHJhdGUKCg4KBwQABAACAQESAxEIEgoOCgcEAAQAAgECEgMRFRYKRwoGBAAEAAICEgMSCBIiOCBUaGUgaW5zdGFuY2UgaXMgaW4gYSBjcml0aWNhbCBjb25kaXRpb24sIGRvIG5vdCB1c2UgaXQKCg4KBwQABAACAgESAxIIDQoOCgcEAAQAAgICEgMSEBEKPgoEBAACABIDFgQxGjEgQ3VycmVudCBzdGF0ZSBvZiBoZWFsdGggb2YgdGhpcyBWb2x0aGEgaW5zdGFuY2UKCg0KBQQAAgAEEgQWBBMFCgwKBQQAAgAGEgMWBA8KDAoFBAACAAESAxYQFQoMCgUEAAIAAxIDFhgZCgwKBQQAAgAIEgMWGjAKEAoJBAACAAjt3tkDEgMWGy8KJQoCBgASBBoAIwEaGSBIZWFsdGggcmVsYXRlZCBzZXJ2aWNlcwoKCgoDBgABEgMaCBUKQQoEBgACABIEHQQhBRozIFJldHVybiBjdXJyZW50IGhlYWx0aCBzdGF0dXMgb2YgYSBWb2x0aGEgaW5zdGFuY2UKCgwKBQYAAgABEgMdCBcKDAoFBgACAAISAx0YLQoMCgUGAAIAAxIDHThECg0KBQYAAgAEEgQeCCAKChEKCQYAAgAEsMq8IhIEHgggCmIGcHJvdG8zCrcYCiN2b2x0aGFfcHJvdG9zL2lldGZfaW50ZXJmYWNlcy5wcm90bxIEaWV0ZiJECgpJbnRlcmZhY2VzEjYKDmFsbF9pbnRlcmZhY2VzGAEgAygLMg8uaWV0Zi5JbnRlcmZhY2VSDWFsbEludGVyZmFjZXMikgIKCUludGVyZmFjZRISCgRuYW1lGAEgASgJUgRuYW1lEiAKC2Rlc2NyaXB0aW9uGAIgASgJUgtkZXNjcmlwdGlvbhISCgR0eXBlGAMgASgJUgR0eXBlEhgKB2VuYWJsZWQYBCABKAhSB2VuYWJsZWQSYAoYbGlua191cF9kb3duX3RyYXBfZW5hYmxlGAUgASgOMiguaWV0Zi5JbnRlcmZhY2UuTGlua1VwRG93blRyYXBFbmFibGVUeXBlUhRsaW5rVXBEb3duVHJhcEVuYWJsZSI/ChhMaW5rVXBEb3duVHJhcEVuYWJsZVR5cGUSEQoNVFJBUF9ESVNBQkxFRBAAEhAKDFRSQVBfRU5BQkxFRBABIkwKD0ludGVyZmFjZXNTdGF0ZRI5Cg1hbGxfaW50ZXJmYWNzGAEgAygLMhQuaWV0Zi5JbnRlcmZhY2VTdGF0ZVIMYWxsSW50ZXJmYWNzIsAECg5JbnRlcmZhY2VTdGF0ZRISCgRuYW1lGAEgASgJUgRuYW1lEhIKBHR5cGUYAiABKAlSBHR5cGUSRwoMYWRtaW5fc3RhdHVzGAMgASgOMiQuaWV0Zi5JbnRlcmZhY2VTdGF0ZS5BZG1pblN0YXR1c1R5cGVSC2FkbWluU3RhdHVzEkQKC29wZXJfc3RhdHVzGAQgASgOMiMuaWV0Zi5JbnRlcmZhY2VTdGF0ZS5PcGVyU3RhdHVzVHlwZVIKb3BlclN0YXR1cxIfCgtsYXN0X2NoYW5nZRgFIAEoCVIKbGFzdENoYW5nZRIZCghpZl9pbmRleBgGIAEoBVIHaWZJbmRleBIhCgxwaHlzX2FkZHJlc3MYByABKAlSC3BoeXNBZGRyZXNzEiYKD2hpZ2hlcl9sYXllcl9pZhgIIAMoCVINaGlnaGVyTGF5ZXJJZhIkCg5sb3dlcl9sYXllcl9pZhgJIAMoCVIMbG93ZXJMYXllcklmEhQKBXNwZWVkGAogASgEUgVz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U3RhdHMiOQoMTG9naWNhbFBvcnRzEikKBWl0ZW1zGAEgAygLMhMudm9sdGhhLkxvZ2ljYWxQb3J0UgVpdGVtcyK8AwoNTG9naWNhbERldmljZRIOCgJpZBgBIAEoCVICaWQSHwoLZGF0YXBhdGhfaWQYAiABKARSCmRhdGFwYXRoSWQSKQoEZGVzYxgDIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9kZXNjUgRkZXNjEkkKD3N3aXRjaF9mZWF0dXJlcxgEIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9zd2l0Y2hfZmVhdHVyZXNSDnN3aXRjaEZlYXR1cmVzEiQKDnJvb3RfZGV2aWNlX2lkGAUgASgJUgxyb290RGV2aWNlSWQSNQoFcG9ydHMYgAEgAygLMhMudm9sdGhhLkxvZ2ljYWxQb3J0Qgni9s0dBAoCaWRSBXBvcnRzEjAKBWZsb3dzGIEBIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzQgXi9s0dAFIFZmxvd3MSQAoLZmxvd19ncm91cHMYggEgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc0IF4vbNHQBSCmZsb3dHcm91cHMSMwoGbWV0ZXJzGIMBIAEoCzITLm9wZW5mbG93XzEzLk1ldGVyc0IF4vbNHQBSBm1ldGVycyI9Cg5Mb2dpY2FsRGV2aWNlcxIrCgVpdGVtcxgBIAMoCzIVLnZvbHRoYS5Mb2dpY2FsRGV2aWNlUgVpdGVtc0JWChNvcmcub3BlbmNvcmQudm9sdGhhQg9PRkxvZ2ljYWxEZXZpY2VaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92My9nby92b2x0aGFKzRAKBhIEAABDAQoICgEMEgMAABIKCAoBCBIDAgBFCgkKAggLEgMCAEUKCAoBCBIDAwAsCgkKAggBEgMDACwKCAoBCBIDBAAwCgkKAggIEgMEADAKCAoBAhIDBgAPCgkKAgMAEgMIACYKCQoCAwESAwkAIgoJCgIDAhIDCgApCgoKAgQAEgQMABIBCgoKAwQAARIDDAgVCioKBAQAAgASAw4EEhodIHVuaXF1ZSBpZCBvZiBsb2dpY2FsIGRldmljZQoKDQoFBAACAAQSBA4EDBcKDAoFBAACAAUSAw4ECgoMCgUEAAIAARIDDgsN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AgQEEgRBAEMBCgoKAwQEARIDQQgWCgsKBAQEAgASA0IEJQoMCgUEBAIABBIDQgQMCgwKBQQEAgAGEgNCDRoKDAoFBAQCAAESA0IbIAoMCgUEBAIAAxIDQiMkYgZwcm90bzMKjB8KH3ZvbHRoYV9wcm90b3Mvb21jaV9taWJfZGIucHJvdG8SBG9tY2kaGHZvbHRoYV9wcm90b3MvbWV0YS5wcm90byJDChBNaWJBdHRyaWJ1dGVEYXRhEhkKBG5hbWUYASABKAlCBej2zR0BUgRuYW1lEhQKBXZhbHVlGAIgASgJUgV2YWx1ZSK0AQoPTWliSW5zdGFuY2VEYXRhEiYKC2luc3RhbmNlX2lkGAEgASgNQgXo9s0dAVIKaW5zdGFuY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEhoKCG1vZGlmaWVkGAMgASgJUghtb2RpZmllZBJDCgphdHRyaWJ1dGVzGAQgAygLMhYub21jaS5NaWJBdHRyaWJ1dGVEYXRhQgvi9s0dBgoEbmFtZVIKYXR0cmlidXRlcyJ5CgxNaWJDbGFzc0RhdGESIAoIY2xhc3NfaWQYASABKA1CBej2zR0BUgdjbGFzc0lkEkcKCWluc3RhbmNlcxgCIAMoCzIVLm9tY2kuTWliSW5zdGFuY2VEYXRhQhLi9s0dDQoLaW5zdGFuY2VfaWRSCWluc3RhbmNlcyJMCg1NYW5hZ2VkRW50aXR5EiAKCGNsYXNzX2lkGAEgASgNQgXo9s0dAVIHY2xhc3NJZBIZCgRuYW1lGAIgASgJQgXo9s0dAVIEbmFtZSI3CgtNZXNzYWdlVHlwZRIoCgxtZXNzYWdlX3R5cGUYASABKA1CBej2zR0BUgttZXNzYWdlVHlwZSLoAgoNTWliRGV2aWNlRGF0YRIiCglkZXZpY2VfaWQYASABKAlCBej2zR0BUghkZXZpY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEiQKDmxhc3Rfc3luY190aW1lGAMgASgJUgxsYXN0U3luY1RpbWUSIgoNbWliX2RhdGFfc3luYxgEIAEoDVILbWliRGF0YVN5bmMSGAoHdmVyc2lvbhgFIAEoDVIHdmVyc2lvbhI9CgdjbGFzc2VzGAYgAygLMhIub21jaS5NaWJDbGFzc0RhdGFCD+L2zR0KCghjbGFzc19pZFIHY2xhc3NlcxI+ChBtYW5hZ2VkX2VudGl0aWVzGAcgAygLMhMub21jaS5NYW5hZ2VkRW50aXR5Ug9tYW5hZ2VkRW50aXRpZXMSNgoNbWVzc2FnZV90eXBlcxgIIAMoCzIRLm9tY2kuTWVzc2FnZVR5cGVSDG1lc3NhZ2VUeXBlcyIuChFPcGVuT21jaUV2ZW50VHlwZSIZCgVUeXBlcxIQCgxzdGF0ZV9jaGFuZ2UQACJWCg1PcGVuT21jaUV2ZW50EjEKBHR5cGUYASABKA4yHS5vbWNpLk9wZW5PbWNpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEhIKBGRhdGEYAiABKAlSBGRhdGFCSAoYb3JnLm9wZW5jb3JkLnZvbHRoYS5vbWNpWixnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjMvZ28vb21jaUqFFgoGEgQPAE8BCt4ECgEMEgMPABIa0wQKIENvcHlyaWdodCAyMDE4IC0gcHJlc2VudCB0aGUgb3JpZ2luYWwgYXV0aG9yIG9yIGF1dGhvcnMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmlj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ZURhdGFCEuL2zR0NCgtpbnN0YW5jZV9pZFIJaW5zdGFuY2VzIlEKEkFsYXJtTWFuYWdlZEVudGl0eRIgCghjbGFzc19pZBgBIAEoDUIF6PbNHQFSB2NsYXNzSWQSGQoEbmFtZRgCIAEoCUIF6PbNHQFSBG5hbWUiPAoQQWxhcm1NZXNzYWdlVHlwZRIoCgxtZXNzYWdlX3R5cGUYASABKA1CBej2zR0BUgttZXNzYWdlVHlwZSKCAwoPQWxhcm1EZXZpY2VEYXRhEiIKCWRldmljZV9pZBgBIAEoCUIF6PbNHQFSCGRldmljZUlkEhgKB2NyZWF0ZWQYAiABKAlSB2NyZWF0ZWQSLgoTbGFzdF9hbGFybV9zZXF1ZW5jZRgDIAEoDVIRbGFzdEFsYXJtU2VxdWVuY2USJAoObGFzdF9zeW5jX3RpbWUYBCABKAlSDGxhc3RTeW5jVGltZRIYCgd2ZXJzaW9uGAUgASgNUgd2ZXJzaW9uEj8KB2NsYXNzZXMYBiADKAsyFC5vbWNpLkFsYXJtQ2xhc3NEYXRhQg/i9s0dCgoIY2xhc3NfaWRSB2NsYXNzZXMSQwoQbWFuYWdlZF9lbnRpdGllcxgHIAMoCzIYLm9tY2kuQWxhcm1NYW5hZ2VkRW50aXR5Ug9tYW5hZ2VkRW50aXRpZXMSOwoNbWVzc2FnZV90eXBlcxgIIAMoCzIWLm9tY2kuQWxhcm1NZXNzYWdlVHlwZVIMbWVzc2FnZVR5cGVzIj8KFkFsYXJtT3Blbk9tY2lFdmVudFR5cGUiJQoRT3Blbk9tY2lFdmVudFR5cGUSEAoMc3RhdGVfY2hhbmdlEAAibAoSQWxhcm1PcGVuT21jaUV2ZW50EkIKBHR5cGUYASABKA4yLi5vbWNpLkFsYXJtT3Blbk9tY2lFdmVudFR5cGUuT3Blbk9tY2lFdmVudFR5cGVSBHR5cGUSEgoEZGF0YRgCIAEoCVIEZGF0YUJIChhvcmcub3BlbmNvcmQudm9sdGhhLm9tY2laLGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92My9nby9vbWNpSoUWCgYSBA8AUAEK3gQKAQwSAw8AEhrTBAogQ29weXJpZ2h0IDIwMTggLSBwcmVzZW50IHRoZSBvcmlnaW5hbCBhdXRob3Igb3IgYXV0aG9y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NgoMCgUEBwIBBRIDTwQKCgwKBQQHAgEBEgNPCw8KDAoFBAcCAQMSA08SE2IGcHJvdG8zCtWuAQoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8SBnZvbHRoYRocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvGhh2b2x0aGFfcHJvdG9zL21ldGEucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxoidm9sdGhhX3Byb3Rvcy9sb2dpY2FsX2RldmljZS5wcm90bxoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8aG3ZvbHRoYV9wcm90b3MvYWRhcHRlci5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxofdm9sdGhhX3Byb3Rvcy9vbWNpX21pYl9kYi5wcm90bxohdm9sdGhhX3Byb3Rvcy9vbWNpX2FsYXJtX2RiLnByb3RvIqQBCgtEZXZpY2VHcm91cBIVCgJpZBgBIAEoCUIF6PbNHQFSAmlkEkkKD2xvZ2ljYWxfZGV2aWNlcxgCIAMoCzIVLnZvbHRoYS5Mb2dpY2FsRGV2aWNlQgni9s0dBAoCaWRSDmxvZ2ljYWxEZXZpY2VzEjMKB2RldmljZXMYAyADKAsyDi52b2x0aGEuRGV2aWNlQgni9s0dBAoCaWRSB2RldmljZXMiOQoMRGV2aWNlR3JvdXBzEikKBWl0ZW1zGAEgAygLMhMudm9sdGhhLkRldmljZUdyb3VwUgVpdGVtcyKeAQoSRXZlbnRGaWx0ZXJSdWxlS2V5IocBChNFdmVudEZpbHRlclJ1bGVUeXBlEg4KCmZpbHRlcl9hbGwQABIMCghjYXRlZ29yeRABEhAKDHN1Yl9jYXRlZ29yeRACEhIKDmtwaV9ldmVudF90eXBlEAMSFQoRY29uZmlnX2V2ZW50X3R5cGUQBBIVChFkZXZpY2VfZXZlbnRfdHlwZRAFImkKD0V2ZW50RmlsdGVyUnVsZRJACgNrZXkYASABKA4yLi52b2x0aGEuRXZlbnRGaWx0ZXJSdWxlS2V5LkV2ZW50RmlsdGVyUnVsZVR5cGVSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWUipwEKC0V2ZW50RmlsdGVyEhUKAmlkGAEgASgJQgXo9s0dAVICaWQSFgoGZW5hYmxlGAIgASgIUgZlbmFibGUSGwoJZGV2aWNlX2lkGAMgASgJUghkZXZpY2VJZBIdCgpldmVudF90eXBlGAQgASgJUglldmVudFR5cGUSLQoFcnVsZXMYBSADKAsyFy52b2x0aGEuRXZlbnRGaWx0ZXJSdWxlUgVydWxlcyI9CgxFdmVudEZpbHRlcnMSLQoHZmlsdGVycxgBIAMoCzITLnZvbHRoYS5FdmVudEZpbHRlclIHZmlsdGVycyJrCgxDb3JlSW5zdGFuY2USJgoLaW5zdGFuY2VfaWQYASABKAlCBej2zR0BUgppbnN0YW5jZUlkEjMKBmhlYWx0aBgCIAEoCzIULnZvbHRoYS5IZWFsdGhTdGF0dXNCBeL2zR0AUgZoZWFsdGgiOwoNQ29yZUluc3RhbmNlcxIqCgVpdGVtcxgBIAMoCzIULnZvbHRoYS5Db3JlSW5zdGFuY2VSBWl0ZW1zIjUKD09tY2lUZXN0UmVxdWVzdBIOCgJpZBgBIAEoCVICaWQSEgoEdXVpZBgCIAEoCVIEdXVpZCJ/CgxUZXN0UmVzcG9uc2USPwoGcmVzdWx0GAEgASgOMicudm9sdGhhLlRlc3RSZXNwb25zZS5UZXN0UmVzcG9uc2VSZXN1bHRSBnJlc3VsdCIuChJUZXN0UmVzcG9uc2VSZXN1bHQSCwoHU1VDQ0VTUxAAEgsKB0ZBSUxVUkUQASLZBAoGVm9sdGhhEh8KB3ZlcnNpb24YASABKAlCBej2zR0BUgd2ZXJzaW9uEjYKCGFkYXB0ZXJzGAIgAygLMg8udm9sdGhhLkFkYXB0ZXJCCeL2zR0ECgJpZFIIYWRhcHRlcnMSSQoPbG9naWNhbF9kZXZpY2VzGAMgAygLMhUudm9sdGhhLkxvZ2ljYWxEZXZpY2VCCeL2zR0ECgJpZFIObG9naWNhbERldmljZXMSMwoHZGV2aWNlcxgEIAMoCzIOLnZvbHRoYS5EZXZpY2VCCeL2zR0ECgJpZFIHZGV2aWNlcxJACgxkZXZpY2VfdHlwZXMYBSADKAsyEi52b2x0aGEuRGV2aWNlVHlwZUIJ4vbNHQQKAmlkUgtkZXZpY2VUeXBlcxJDCg1kZXZpY2VfZ3JvdXBzGAYgAygLMhMudm9sdGhhLkRldmljZUdyb3VwQgni9s0dBAoCaWRSDGRldmljZUdyb3VwcxJDCg1ldmVudF9maWx0ZXJzGAcgAygLMhMudm9sdGhhLkV2ZW50RmlsdGVyQgni9s0dBAoCaWRSDGV2ZW50RmlsdGVycxJRChFvbWNpX21pYl9kYXRhYmFzZRgcIAMoCzITLm9tY2kuTWliRGV2aWNlRGF0YUIQ4vbNHQsKCWRldmljZV9pZFIPb21jaU1pYkRhdGFiYXNlElcKE29tY2lfYWxhcm1fZGF0YWJhc2UYHSADKAsyFS5vbWNpLkFsYXJtRGV2aWNlRGF0YUIQ4vbNHQsKCWRldmljZV9pZFIRb21jaUFsYXJtRGF0YWJhc2UipQEKEFNlbGZUZXN0UmVzcG9uc2USPwoGcmVzdWx0GAEgASgOMicudm9sdGhhLlNlbGZUZXN0UmVzcG9uc2UuU2VsZlRlc3RSZXN1bHRSBnJlc3VsdCJQCg5TZWxmVGVzdFJlc3VsdBILCgdTVUNDRVNTEAASCwoHRkFJTFVSRRABEhEKDU5PVF9TVVBQT1JURUQQAhIRCg1VTktOT1dOX0VSUk9SEAMiTwoRT2ZBZ2VudFN1YnNjcmliZXISHQoKb2ZhZ2VudF9pZBgBIAEoCVIJb2ZhZ2VudElkEhsKCXZvbHRoYV9pZBgCIAEoCVIIdm9sdGhhSWQiOwoKTWVtYmVyc2hpcBIdCgpncm91cF9uYW1lGAEgASgJUglncm91cE5hbWUSDgoCaWQYAiABKAlSAmlkIkUKDEZsb3dNZXRhZGF0YRI1CgZtZXRlcnMYASADKAsyHS5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfY29uZmlnUgZtZXRlcnMyvS4KDVZvbHRoYVNlcnZpY2USVwoNR2V0TWVtYmVyc2hpcBIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoSLnZvbHRoYS5NZW1iZXJzaGlwIhqC0+STAhQSEi9hcGkvdjEvbWVtYmVyc2hpcBJdChBVcGRhdGVNZW1iZXJzaGlwEhIudm9sdGhhLk1lbWJlcnNoaXAaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHYLT5JMCFyISL2FwaS92MS9tZW1iZXJzaGlwOgEqEkQKCUdldFZvbHRoYRIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoOLnZvbHRoYS5Wb2x0aGEiD4LT5JMCCRIHL2FwaS92MRJdChFMaXN0Q29yZUluc3RhbmNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoVLnZvbHRoYS5Db3JlSW5zdGFuY2VzIhmC0+STAhMSES9hcGkvdjEvaW5zdGFuY2VzElMKD0dldENvcmVJbnN0YW5jZRIKLmNvbW1vbi5JRBoULnZvbHRoYS5Db3JlSW5zdGFuY2UiHoLT5JMCGBIWL2FwaS92MS9pbnN0YW5jZXMve2lkfRJSCgxMaXN0QWRhcHRlcnMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEC52b2x0aGEuQWRhcHRlcnMiGILT5JMCEhIQL2FwaS92MS9hZGFwdGVycxJlChJMaXN0TG9naWNhbERldmljZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFi52b2x0aGEuTG9naWNhbERldmljZXMiH4LT5JMCGRIXL2FwaS92MS9sb2dpY2FsX2RldmljZXMSWwoQR2V0TG9naWNhbERldmljZRIKLmNvbW1vbi5JRBoVLnZvbHRoYS5Mb2dpY2FsRGV2aWNlIiSC0+STAh4SHC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0SZgoWTGlzdExvZ2ljYWxEZXZpY2VQb3J0cxIKLmNvbW1vbi5JRBoULnZvbHRoYS5Mb2dpY2FsUG9ydHMiKoLT5JMCJBIiL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cxJ4ChRHZXRMb2dpY2FsRGV2aWNlUG9ydBIVLnZvbHRoYS5Mb2dpY2FsUG9ydElkGhMudm9sdGhhLkxvZ2ljYWxQb3J0IjSC0+STAi4SLC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9EoUBChdFbmFibGVMb2dpY2FsRGV2aWNlUG9ydBIVLnZvbHRoYS5Mb2dpY2FsUG9ydElkGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjuC0+STAjUiMy9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9L2VuYWJsZRKHAQoYRGlzYWJsZUxvZ2ljYWxEZXZpY2VQb3J0EhUudm9sdGhhLkxvZ2ljYWxQb3J0SWQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiPILT5JMCNiI0L2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0vZGlzYWJsZRJkChZMaXN0TG9naWNhbERldmljZUZsb3dzEgouY29tbW9uLklEGhIub3BlbmZsb3dfMTMuRmxvd3MiKoLT5JMCJBIiL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9mbG93cxKDAQocVXBkYXRlTG9naWNhbERldmljZUZsb3dUYWJsZRIcLm9wZW5mbG93XzEzLkZsb3dUYWJsZVVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSItgtPkkwInIiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dzOgEqEoQBCh1VcGRhdGVMb2dpY2FsRGV2aWNlTWV0ZXJUYWJsZRIbLm9wZW5mbG93XzEzLk1ldGVyTW9kVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii6C0+STAigiIy9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vbWV0ZXJzOgEqEmcKF0xpc3RMb2dpY2FsRGV2aWNlTWV0ZXJzEgouY29tbW9uLklEGhMub3BlbmZsb3dfMTMuTWV0ZXJzIiuC0+STAiUSIy9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vbWV0ZXJzEnQKG0xpc3RMb2dpY2FsRGV2aWNlRmxvd0dyb3VwcxIKLmNvbW1vbi5JRBoXLm9wZW5mbG93XzEzLkZsb3dHcm91cHMiMILT5JMCKhIoL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9mbG93X2dyb3VwcxKTAQohVXBkYXRlTG9naWNhbERldmljZUZsb3dHcm91cFRhYmxlEiEub3BlbmZsb3dfMTMuRmxvd0dyb3VwVGFibGVVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiM4LT5JMCLSIoL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9mbG93X2dyb3VwczoBKhJPCgtMaXN0RGV2aWNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoPLnZvbHRoYS5EZXZpY2VzIheC0+STAhESDy9hcGkvdjEvZGV2aWNlcxJPCg1MaXN0RGV2aWNlSWRzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GgsuY29tbW9uLklEcyIZgtPkkwITEhEvYXBpL3YxL2RldmljZWlkcxJVChBSZWNvbmNpbGVEZXZpY2VzEgsuY29tbW9uLklEcxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIcgtPkkwIWIhEvYXBpL3YxL2RldmljZWlkczoBKhJFCglHZXREZXZpY2USCi5jb21tb24uSUQaDi52b2x0aGEuRGV2aWNlIhyC0+STAhYSFC9hcGkvdjEvZGV2aWNlcy97aWR9EkoKDENyZWF0ZURldmljZRIOLnZvbHRoYS5EZXZpY2UaDi52b2x0aGEuRGV2aWNlIhqC0+STAhQiDy9hcGkvdjEvZGV2aWNlczoBKhJXCgxFbmFibGVEZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiI4LT5JMCHSIbL2FwaS92MS9kZXZpY2VzL3tpZH0vZW5hYmxlElkKDURpc2FibGVEZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJILT5JMCHiIcL2FwaS92MS9kZXZpY2VzL3tpZH0vZGlzYWJsZRJXCgxSZWJvb3REZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiI4LT5JMCHSIbL2FwaS92MS9kZXZpY2VzL3tpZH0vcmVib290ElcKDERlbGV0ZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIjgtPkkwIdKhsvYXBpL3YxL2RldmljZXMve2lkfS9kZWxldGUSdQoNRG93bmxvYWRJbWFnZRIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiNoLT5JMCMCIrL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfToBKhKCAQoWR2V0SW1hZ2VEb3dubG9hZFN0YXR1cxIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUudm9sdGhhLkltYWdlRG93bmxvYWQiOoLT5JMCNBIyL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9zdGF0dXMSdQoQR2V0SW1hZ2VEb3dubG9hZBIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUudm9sdGhhLkltYWdlRG93bmxvYWQiM4LT5JMCLRIrL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfRJmChJMaXN0SW1hZ2VEb3dubG9hZHMSCi5jb21tb24uSUQaFi52b2x0aGEuSW1hZ2VEb3dubG9hZHMiLILT5JMCJhIkL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzEngKE0NhbmNlbEltYWdlRG93bmxvYWQSFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIjOC0+STAi0qKy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0SiAEKE0FjdGl2YXRlSW1hZ2VVcGRhdGUSFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIkOC0+STAj0iOC9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0vaW1hZ2VfdXBkYXRlOgEqEoYBChFSZXZlcnRJbWFnZVVwZGF0ZRIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiQ4LT5JMCPSI4L2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9pbWFnZV9yZXZlcnQ6ASoSUAoPTGlzdERldmljZVBvcnRzEgouY29tbW9uLklEGg0udm9sdGhhLlBvcnRzIiKC0+STAhwSGi9hcGkvdjEvZGV2aWNlcy97aWR9L3BvcnRzEl0KE0xpc3REZXZpY2VQbUNvbmZpZ3MSCi5jb21tb24uSUQaES52b2x0aGEuUG1Db25maWdzIieC0+STAiESHy9hcGkvdjEvZGV2aWNlcy97aWR9L3BtX2NvbmZpZ3MSbgoVVXBkYXRlRGV2aWNlUG1Db25maWdzEhEudm9sdGhhLlBtQ29uZmlncxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIqgtPkkwIkIh8vYXBpL3YxL2RldmljZXMve2lkfS9wbV9jb25maWdzOgEqElUKD0xpc3REZXZpY2VGbG93cxIKLmNvbW1vbi5JRBoSLm9wZW5mbG93XzEzLkZsb3dzIiKC0+STAhwSGi9hcGkvdjEvZGV2aWNlcy97aWR9L2Zsb3dzEmUKFExpc3REZXZpY2VGbG93R3JvdXBzEgouY29tbW9uLklEGhcub3BlbmZsb3dfMTMuRmxvd0dyb3VwcyIogtPkkwIiEiAvYXBpL3YxL2RldmljZXMve2lkfS9mbG93X2dyb3VwcxJcCg9MaXN0RGV2aWNlVHlwZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEy52b2x0aGEuRGV2aWNlVHlwZXMiHILT5JMCFhIUL2FwaS92MS9kZXZpY2VfdHlwZXMSUgoNR2V0RGV2aWNlVHlwZRIKLmNvbW1vbi5JRBoSLnZvbHRoYS5EZXZpY2VUeXBlIiGC0+STAhsSGS9hcGkvdjEvZGV2aWNlX3R5cGVzL3tpZH0SXwoQTGlzdERldmljZUdyb3VwcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoULnZvbHRoYS5EZXZpY2VHcm91cHMiHYLT5JMCFxIVL2FwaS92MS9kZXZpY2VfZ3JvdXBzEkYKEFN0cmVhbVBhY2tldHNPdXQSFi5vcGVuZmxvd18xMy5QYWNrZXRPdXQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiACgBEkUKEFJlY2VpdmVQYWNrZXRzSW4SFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFS5vcGVuZmxvd18xMy5QYWNrZXRJbiIAMAESSwoTUmVjZWl2ZUNoYW5nZUV2ZW50cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoYLm9wZW5mbG93XzEzLkNoYW5nZUV2ZW50IgAwARJVCg5HZXREZXZpY2VHcm91cBIKLmNvbW1vbi5JRBoTLnZvbHRoYS5EZXZpY2VHcm91cCIigtPkkwIcEhovYXBpL3YxL2RldmljZV9ncm91cHMve2lkfRJfChFDcmVhdGVFdmVudEZpbHRlchITLnZvbHRoYS5FdmVudEZpbHRlchoTLnZvbHRoYS5FdmVudEZpbHRlciIggtPkkwIaIhUvYXBpL3YxL2V2ZW50X2ZpbHRlcnM6ASoSVgoOR2V0RXZlbnRGaWx0ZXISCi5jb21tb24uSUQaFC52b2x0aGEuRXZlbnRGaWx0ZXJzIiKC0+STAhwSGi9hcGkvdjEvZXZlbnRfZmlsdGVycy97aWR9EmQKEVVwZGF0ZUV2ZW50RmlsdGVyEhMudm9sdGhhLkV2ZW50RmlsdGVyGhMudm9sdGhhLkV2ZW50RmlsdGVyIiWC0+STAh8aGi9hcGkvdjEvZXZlbnRfZmlsdGVycy97aWR9OgEqEmQKEURlbGV0ZUV2ZW50RmlsdGVyEhMudm9sdGhhLkV2ZW50RmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiKC0+STAhwqGi9hcGkvdjEvZXZlbnRfZmlsdGVycy97aWR9El8KEExpc3RFdmVudEZpbHRlcnMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFC52b2x0aGEuRXZlbnRGaWx0ZXJzIh2C0+STAhcSFS9hcGkvdjEvZXZlbnRfZmlsdGVycxJMCglHZXRJbWFnZXMSCi5jb21tb24uSUQaDi52b2x0aGEuSW1hZ2VzIiOC0+STAh0SGy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlcxJYCghTZWxmVGVzdBIKLmNvbW1vbi5JRBoYLnZvbHRoYS5TZWxmVGVzdFJlc3BvbnNlIiaC0+STAiAiHi9hcGkvdjEvZGV2aWNlcy97aWR9L3NlbGZfdGVzdBJWChBHZXRNaWJEZXZpY2VEYXRhEgouY29tbW9uLklEGhMub21jaS5NaWJEZXZpY2VEYXRhIiGC0+STAhsSGS9hcGkvdjEvb3Blbm9tY2kve2lkfS9taWISXAoSR2V0QWxhcm1EZXZpY2VEYXRhEgouY29tbW9uLklEGhUub21jaS5BbGFybURldmljZURhdGEiI4LT5JMCHRIbL2FwaS92MS9vcGVub21jaS97aWR9L2FsYXJtEnMKDVNpbXVsYXRlQWxhcm0SHC52b2x0aGEuU2ltdWxhdGVBbGFybVJlcXVlc3QaFS5jb21tb24uT3BlcmF0aW9uUmVzcCItgtPkkwInIiIvYXBpL3YxL2RldmljZXMve2lkfS9zaW11bGF0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dG9zL3ZvbHRoYS5wcm90bxoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxoidm9sdGhhX3Byb3Rvcy9sb2dpY2FsX2RldmljZS5wcm90byIbCgdTdHJUeXBlEhAKA3ZhbBgBIAEoCVIDdmFsIhsKB0ludFR5cGUSEAoDdmFsGAEgASgDUgN2YWwiHAoIQm9vbFR5cGUSEAoDdmFsGAEgASgIUgN2YWwiIgoGUGFja2V0EhgKB3BheWxvYWQYASABKAxSB3BheWxvYWQiXAoJRXJyb3JDb2RlIk8KBWNvZGVzEhcKE1VOU1VQUE9SVEVEX1JFUVVFU1QQABIWChJJTlZBTElEX1BBUkFNRVRFUlMQARIVChFERUFETElORV9FWENFRURFRBACIkwKBUVycm9yEisKBGNvZGUYASABKA4yFy52b2x0aGEuRXJyb3JDb2RlLmNvZGVzUgRjb2RlEhYKBnJlYXNvbhgCIAEoCVIGcmVhc29uIrYBCgZIZWFkZXISDgoCaWQYASABKAlSAmlkEicKBHR5cGUYAiABKA4yEy52b2x0aGEuTWVzc2FnZVR5cGVSBHR5cGUSHQoKZnJvbV90b3BpYxgDIAEoCVIJZnJvbVRvcGljEhkKCHRvX3RvcGljGAQgASgJUgd0b1RvcGljEhsKCWtleV90b3BpYxgFIAEoCVIIa2V5VG9waWMSHAoJdGltZXN0YW1wGAYgASgDUgl0aW1lc3RhbXAiSAoIQXJndW1lbnQSEAoDa2V5GAEgASgJUgNrZXkSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgV2YWx1ZSJpChVJbnRlckNvbnRhaW5lck1lc3NhZ2USJgoGaGVhZGVyGAEgASgLMg4udm9sdGhhLkhlYWRlclIGaGVhZGVyEigKBGJvZHkYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgRib2R5IqYBChlJbnRlckNvbnRhaW5lclJlcXVlc3RCb2R5EhAKA3JwYxgCIAEoCVIDcnBjEiQKBGFyZ3MYAyADKAsyEC52b2x0aGEuQXJndW1lbnRSBGFyZ3MSKwoRcmVzcG9uc2VfcmVxdWlyZWQYBCABKAhSEHJlc3BvbnNlUmVxdWlyZWQSJAoOcmVwbHlfdG9fdG9waWMYBSABKAlSDHJlcGx5VG9Ub3BpYyJkChpJbnRlckNvbnRhaW5lclJlc3BvbnNlQm9keRIYCgdzdWNjZXNzGAEgASgIUgdzdWNjZXNzEiwKBnJlc3VsdBgDIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBnJlc3VsdCKIAQoQU3dpdGNoQ2FwYWJpbGl0eRIpCgRkZXNjGAEgASgLMhUub3BlbmZsb3dfMTMub2ZwX2Rlc2NSBGRlc2MSSQoPc3dpdGNoX2ZlYXR1cmVzGAIgASgLMiAub3BlbmZsb3dfMTMub2ZwX3N3aXRjaF9mZWF0dXJlc1IOc3dpdGNoRmVhdHVyZXMiOQoOUG9ydENhcGFiaWxpdHkSJwoEcG9ydBgBIAEoCzITLnZvbHRoYS5Mb2dpY2FsUG9ydFIEcG9ydCJ+ChBEZXZpY2VEaXNjb3ZlcmVkEg4KAmlkGAEgASgJUgJpZBIbCglwYXJlbnRfaWQYAiABKAlSCHBhcmVudElkEh8KC2RldmljZV90eXBlGAMgASgJUgpkZXZpY2VUeXBlEhwKCXB1Ymxpc2hlchgEIAEoCVIJcHVibGlzaGVyIp0CChdJbnRlckFkYXB0ZXJNZXNzYWdlVHlwZSKBAgoFVHlwZXMSEAoMRkxPV19SRVFVRVNUEAASEQoNRkxPV19SRVNQT05TRRABEhAKDE9NQ0lfUkVRVUVTVBACEhEKDU9NQ0lfUkVTUE9OU0UQAxITCg9NRVRSSUNTX1JFUVVFU1QQBBIUChBNRVRSSUNTX1JFU1BPTlNFEAUSEwoPT05VX0lORF9SRVFVRVNUEAYSFAoQT05VX0lORF9SRVNQT05TRRAHEiEKHVRFQ0hfUFJPRklMRV9ET1dOTE9BRF9SRVFVRVNUEAgSGwoXREVMRVRFX0dFTV9QT1JUX1JFUVVFU1QQCRIYChRERUxFVEVfVENPTlRfUkVRVUVTVBAKIoECChJJbnRlckFkYXB0ZXJIZWFkZXISDgoCaWQYASABKAlSAmlkEjkKBHR5cGUYAiABKA4yJS52b2x0aGEuSW50ZXJBZGFwdGVyTWVzc2FnZVR5cGUuVHlwZXNSBHR5cGUSHQoKZnJvbV90b3BpYxgDIAEoCVIJZnJvbVRvcGljEhkKCHRvX3RvcGljGAQgASgJUgd0b1RvcGljEiAKDHRvX2RldmljZV9pZBgFIAEoCVIKdG9EZXZpY2VJZBImCg9wcm94eV9kZXZpY2VfaWQYBiABKAlSDXByb3h5RGV2aWNlSWQSHAoJdGltZXN0YW1wGAcgASgDUgl0aW1lc3RhbXAiuQEKF0ludGVyQWRhcHRlck9tY2lNZXNzYWdlEhgKB21lc3NhZ2UYASABKAxSB21lc3NhZ2USQgoOY29ubmVjdF9zdGF0dXMYAiABKA4yGy5jb21tb24uQ29ubmVjdFN0YXR1cy5UeXBlc1INY29ubmVjdFN0YXR1cxJACg1wcm94eV9hZGRyZXNzGAMgASgLMhsudm9sdGhhLkRldmljZS5Qcm94eUFkZHJlc3NSDHByb3h5QWRkcmVzcyJTCiZJbnRlckFkYXB0ZXJUZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZRIVCgZ1bmlfaWQYASABKA1SBXVuaUlkEhIKBHBhdGgYAiABKAlSBHBhdGgicgogSW50ZXJBZGFwdGVyRGVsZXRlR2VtUG9ydE1lc3NhZ2USFQoGdW5pX2lkGAEgASgNUgV1bmlJZBIXCgd0cF9wYXRoGAIgASgJUgZ0cFBhdGgSHgoLZ2VtX3BvcnRfaWQYAyABKA1SCWdlbVBvcnRJZCJrCh5JbnRlckFkYXB0ZXJEZWxldGVUY29udE1lc3NhZ2USFQoGdW5pX2lkGAEgASgNUgV1bmlJZBIXCgd0cF9wYXRoGAIgASgJUgZ0cFBhdGgSGQoIYWxsb2NfaWQYAyABKA1SB2FsbG9jSWQioAEKGEludGVyQWRhcHRlclJlc3BvbnNlQm9keRIWCgZzdGF0dXMYASABKAhSBnN0YXR1cxIqCgRib2R5GAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUgAUgRib2R5EjUKBG9tY2kYAyABKAsyHy52b2x0aGEuSW50ZXJBZGFwdGVyT21jaU1lc3NhZ2VIAFIEb21jaUIJCgdwYXlsb2FkInMKE0ludGVyQWRhcHRlck1lc3NhZ2USMgoGaGVhZGVyGAEgASgLMhoudm9sdGhhLkludGVyQWRhcHRlckhlYWRlclIGaGVhZGVyEigKBGJvZHkYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgRib2R5Kj8K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AgADEgSZASAhCgwKBAQVAgESBJoBBCEKDwoFBBUCAQQSBpoBBJkBIgoNCgUEFQIBBhIEmgEEFwoNCgUEFQIBARIEmgEYHAoNCgUEFQIBAxIEmgEfIFAAUAFQBGIGcHJvdG8zCvA9CiB2b2x0aGFfcHJvdG9zL3RlY2hfcHJvZmlsZS5wcm90bxIMdGVjaF9wcm9maWxlGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvIoACCg9TY2hlZHVsZXJDb25maWcSNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEj8KDWFkZGl0aW9uYWxfYncYAiABKA4yGi50ZWNoX3Byb2ZpbGUuQWRkaXRpb25hbEJXUgxhZGRpdGlvbmFsQncSGgoIcHJpb3JpdHkYAyABKAdSCHByaW9yaXR5EhYKBndlaWdodBgEIAEoB1IGd2VpZ2h0EkEKDHNjaGVkX3BvbGljeRgFIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UgtzY2hlZFBvbGljeSK4AQoSVHJhZmZpY1NoYXBpbmdJbmZvEhAKA2NpchgBIAEoB1IDY2lyEhAKA2NicxgCIAEoB1IDY2JzEhAKA3BpchgDIAEoB1IDcGlyEhAKA3BicxgEIAEoB1IDcGJzEhAKA2dpchgFIAEoB1IDZ2lyEkgKCmFkZF9id19pbmQYBiABKA4yKi50ZWNoX3Byb2ZpbGUuSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvblIIYWRkQndJbmQi9QEKEFRyYWZmaWNTY2hlZHVsZXISNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEhkKCGFsbG9jX2lkGAIgASgHUgdhbGxvY0lkEjsKCXNjaGVkdWxlchgDIAEoCzIdLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJDb25maWdSCXNjaGVkdWxlchJSChR0cmFmZmljX3NoYXBpbmdfaW5mbxgEIAEoCzIgLnRlY2hfcHJvZmlsZS5UcmFmZmljU2hhcGluZ0luZm9SEnRyYWZmaWNTaGFwaW5nSW5mbyK6AQoRVHJhZmZpY1NjaGVkdWxlcnMSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFQoGdW5pX2lkGAQgASgHUgV1bmlJZBIXCgdwb3J0X25vGAUgASgHUgZwb3J0Tm8SRQoOdHJhZmZpY19zY2hlZHMYAyADKAsyHi50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NjaGVkdWxlclINdHJhZmZpY1NjaGVkcyI2ChVUYWlsRHJvcERpc2NhcmRDb25maWcSHQoKcXVldWVfc2l6ZRgBIAEoB1IJcXVldWVTaXplIoUBChBSZWREaXNjYXJkQ29uZmlnEiMKDW1pbl90aHJlc2hvbGQYASABKAdSDG1pblRocmVzaG9sZBIjCg1tYXhfdGhyZXNob2xkGAIgASgHUgxtYXhUaHJlc2hvbGQSJwoPbWF4X3Byb2JhYmlsaXR5GAMgASgHUg5tYXhQcm9iYWJpbGl0eSKzAQoRV1JlZERpc2NhcmRDb25maWcSNAoFZ3JlZW4YASABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1IFZ3JlZW4SNgoGeWVsbG93GAIgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSBnllbGxvdxIwCgNyZWQYAyABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1IDcmVkIugCCg1EaXNjYXJkQ29uZmlnEkIKDmRpc2NhcmRfcG9saWN5GAEgASgOMhsudGVjaF9wcm9maWxlLkRpc2NhcmRQb2xpY3lSDWRpc2NhcmRQb2xpY3kSXgoYdGFpbF9kcm9wX2Rpc2NhcmRfY29uZmlnGAIgASgLMiMudGVjaF9wcm9maWxlLlRhaWxEcm9wRGlzY2FyZENvbmZpZ0gAUhV0YWlsRHJvcERpc2NhcmRDb25maWcSTgoScmVkX2Rpc2NhcmRfY29uZmlnGAMgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdIAFIQcmVkRGlzY2FyZENvbmZpZxJRChN3cmVkX2Rpc2NhcmRfY29uZmlnGAQgASgLMh8udGVjaF9wcm9maWxlLldSZWREaXNjYXJkQ29uZmlnSABSEXdyZWREaXNjYXJkQ29uZmlnQhAKDmRpc2NhcmRfY29uZmlnIqUDCgxUcmFmZmljUXVldWUSNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEh0KCmdlbXBvcnRfaWQYAiABKAdSCWdlbXBvcnRJZBIZCghwYml0X21hcBgDIAEoCVIHcGJpdE1hcBIlCg5hZXNfZW5jcnlwdGlvbhgEIAEoCFINYWVzRW5jcnlwdGlvbhJBCgxzY2hlZF9wb2xpY3kYBSABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVILc2NoZWRQb2xpY3kSGgoIcHJpb3JpdHkYBiABKAdSCHByaW9yaXR5EhYKBndlaWdodBgHIAEoB1IGd2VpZ2h0EkIKDmRpc2NhcmRfcG9saWN5GAggASgOMhsudGVjaF9wcm9maWxlLkRpc2NhcmRQb2xpY3lSDWRpc2NhcmRQb2xpY3kSQgoOZGlzY2FyZF9jb25maWcYCSABKAsyGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZENvbmZpZ1INZGlzY2FyZENvbmZpZyKyAQoNVHJhZmZpY1F1ZXVlcxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIVCgZ1bmlfaWQYBCABKAdSBXVuaUlkEhcKB3BvcnRfbm8YBSABKAdSBnBvcnRObxJBCg50cmFmZmljX3F1ZXVlcxgGIAMoCzIaLnRlY2hfcHJvZmlsZS5UcmFmZmljUXVldWVSDXRyYWZmaWNRdWV1ZXMqPAoJRGlyZWN0aW9uEgwKCFVQU1RSRUFNEAASDgoKRE9XTlNUUkVBTRABEhEKDUJJRElSRUNUSU9OQUwQAio7ChBTY2hlZHVsaW5nUG9saWN5EgcKA1dSUhAAEhIKDlN0cmljdFByaW9yaXR5EAESCgoGSHlicmlkEAIqbgoMQWRkaXRpb25hbEJXEhUKEUFkZGl0aW9uYWxCV19Ob25lEAASEwoPQWRkaXRpb25hbEJXX05BEAESGwoXQWRkaXRpb25hbEJXX0Jlc3RFZmZvcnQQAhIVChFBZGRpdGlvbmFsQldfQXV0bxADKj8KDURpc2NhcmRQb2xpY3kSDAoIVGFpbERyb3AQABINCglXVGFpbERyb3AQARIHCgNSZWQQAhIICgRXUmVkEAMqnAEKHEluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb24SJQohSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9Ob25lEAASKAokSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9Bc3N1cmVkEAESKwonSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9CZXN0RWZmb3J0EAJCWAogb3JnLm9wZW5jb3JkLnZvbHRoYS50ZWNoX3Byb2ZpbGVaNGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92My9nby90ZWNoX3Byb2ZpbGVKwScKBxIFDgCBAQEK0QQKAQwSAw4AEjLGBCBDb3B5cmlnaHQgKGMpIDIwMTggT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoICgEIEgMQAEsKCQoCCAsSAxAASwoICgEIEgMRADkKCQoCCAES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aGFfcHJvdG9zL3RlY2hfcHJvZmlsZS5wcm90byLMBAoKSW5kaWNhdGlvbhIxCgdvbHRfaW5kGAEgASgLMhYub3Blbm9sdC5PbHRJbmRpY2F0aW9uSABSBm9sdEluZBI0CghpbnRmX2luZBgCIAEoCzIXLm9wZW5vbHQuSW50ZkluZGljYXRpb25IAFIHaW50ZkluZBJBCg1pbnRmX29wZXJfaW5kGAMgASgLMhsub3Blbm9sdC5JbnRmT3BlckluZGljYXRpb25IAFILaW50Zk9wZXJJbmQSPgoMb251X2Rpc2NfaW5kGAQgASgLMhoub3Blbm9sdC5PbnVEaXNjSW5kaWNhdGlvbkgAUgpvbnVEaXNjSW5kEjEKB29udV9pbmQYBSABKAsyFi5vcGVub2x0Lk9udUluZGljYXRpb25IAFIGb251SW5kEjQKCG9tY2lfaW5kGAYgASgLMhcub3Blbm9sdC5PbWNpSW5kaWNhdGlvbkgAUgdvbWNpSW5kEjQKB3BrdF9pbmQYByABKAsyGS5vcGVub2x0LlBhY2tldEluZGljYXRpb25IAFIGcGt0SW5kEjgKCnBvcnRfc3RhdHMYCCABKAsyFy5vcGVub2x0LlBvcnRTdGF0aXN0aWNzSABSCXBvcnRTdGF0cxI4CgpmbG93X3N0YXRzGAkgASgLMhcub3Blbm9sdC5GbG93U3RhdGlzdGljc0gAUglmbG93U3RhdHMSNwoJYWxhcm1faW5kGAogASgLMhgub3Blbm9sdC5BbGFybUluZGljYXRpb25IAFIIYWxhcm1JbmRCBgoEZGF0YSL6DAoPQWxhcm1JbmRpY2F0aW9uEjEKB2xvc19pbmQYASABKAsyFi5vcGVub2x0Lkxvc0luZGljYXRpb25IAFIGbG9zSW5kEkQKDmR5aW5nX2dhc3BfaW5kGAIgASgLMhwub3Blbm9sdC5EeWluZ0dhc3BJbmRpY2F0aW9uSABSDGR5aW5nR2FzcEluZBJBCg1vbnVfYWxhcm1faW5kGAMgASgLMhsub3Blbm9sdC5PbnVBbGFybUluZGljYXRpb25IAFILb251QWxhcm1JbmQSVwoUb251X3N0YXJ0dXBfZmFpbF9pbmQYBCABKAsyJC5vcGVub2x0Lk9udVN0YXJ0dXBGYWlsdXJlSW5kaWNhdGlvbkgAUhFvbnVTdGFydHVwRmFpbEluZBJaChZvbnVfc2lnbmFsX2RlZ3JhZGVfaW5kGAUgASgLMiMub3Blbm9sdC5PbnVTaWduYWxEZWdyYWRlSW5kaWNhdGlvbkgAUhNvbnVTaWduYWxEZWdyYWRlSW5kElsKF29udV9kcmlmdF9vZl93aW5kb3dfaW5kGAYgASgLMiMub3Blbm9sdC5PbnVEcmlmdE9mV2luZG93SW5kaWNhdGlvbkgAUhNvbnVEcmlmdE9mV2luZG93SW5kElQKEW9udV9sb3NzX29tY2lfaW5kGAcgASgLMicub3Blbm9sdC5PbnVMb3NzT2ZPbWNpQ2hhbm5lbEluZGljYXRpb25IAFIOb251TG9zc09tY2lJbmQSVwoUb251X3NpZ25hbHNfZmFpbF9pbmQYCCABKAsyJC5vcGVub2x0Lk9udVNpZ25hbHNGYWlsdXJlSW5kaWNhdGlvbkgAUhFvbnVTaWduYWxzRmFpbEluZBJPCgxvbnVfdGl3aV9pbmQYCSABKAsyKy5vcGVub2x0Lk9udVRyYW5zbWlzc2lvbkludGVyZmVyZW5jZVdhcm5pbmdIAFIKb251VGl3aUluZBJgChdvbnVfYWN0aXZhdGlvbl9mYWlsX2luZBgKIAEoCzInLm9wZW5vbHQuT251QWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uSABSFG9udUFjdGl2YXRpb25GYWlsSW5kEmAKGG9udV9wcm9jZXNzaW5nX2Vycm9yX2luZBgLIAEoCzIlLm9wZW5vbHQuT251UHJvY2Vzc2luZ0Vycm9ySW5kaWNhdGlvbkgAUhVvbnVQcm9jZXNzaW5nRXJyb3JJbmQSZQoZb251X2xvc3Nfb2Zfc3luY19mYWlsX2luZBgMIAEoCzIqLm9wZW5vbHQuT251TG9zc09mS2V5U3luY0ZhaWx1cmVJbmRpY2F0aW9uSABSFG9udUxvc3NPZlN5bmNGYWlsSW5kElUKFW9udV9pdHVfcG9uX3N0YXRzX2luZBgNIAEoCzIhLm9wZW5vbHQuT251SXR1UG9uU3RhdHNJbmRpY2F0aW9uSABSEW9udUl0dVBvblN0YXRzSW5kEmwKHG9udV9kZWFjdGl2YXRpb25fZmFpbHVyZV9pbmQYDiABKAsyKS5vcGVub2x0Lk9udURlYWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uSABSGW9udURlYWN0aXZhdGlvbkZhaWx1cmVJbmQSVwoVb251X3JlbW90ZV9kZWZlY3RfaW5kGA8gASgLMiIub3Blbm9sdC5PbnVSZW1vdGVEZWZlY3RJbmRpY2F0aW9uSABSEm9udVJlbW90ZURlZmVjdEluZBJzChxvbnVfbG9zc19nZW1fZGVsaW5lYXRpb25faW5kGBAgASgLMjEub3Blbm9sdC5PbnVMb3NzT2ZHRU1DaGFubmVsRGVsaW5lYXRpb25JbmRpY2F0aW9uSABSGG9udUxvc3NHZW1EZWxpbmVhdGlvbkluZBJ2CiBvbnVfcGh5c2ljYWxfZXF1aXBtZW50X2Vycm9yX2luZBgRIAEoCzIsLm9wZW5vbHQuT251UGh5c2ljYWxFcXVpcG1lbnRFcnJvckluZGljYXRpb25IAFIcb251UGh5c2ljYWxFcXVpcG1lbnRFcnJvckluZBJbChNvbnVfbG9zc19vZl9hY2tfaW5kGBIgASgLMisub3Blbm9sdC5PbnVMb3NzT2ZBY2tub3dsZWRnZW1lbnRJbmRpY2F0aW9uSABSD29udUxvc3NPZkFja0luZEIGCgRkYXRhIi4KDU9sdEluZGljYXRpb24SHQoKb3Blcl9zdGF0ZRgBIAEoCVIJb3BlclN0YXRlIkgKDkludGZJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIdCgpvcGVyX3N0YXRlGAIgASgJUglvcGVyU3RhdGUiaAoRT251RGlzY0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEjoKDXNlcmlhbF9udW1iZXIYAiABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyIrsBCg1PbnVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCm9wZXJfc3RhdGUYAyABKAlSCW9wZXJTdGF0ZRIfCgthZG1pbl9zdGF0ZRgFIAEoCVIKYWRtaW5TdGF0ZRI6Cg1zZXJpYWxfbnVtYmVyGAQgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSDHNlcmlhbE51bWJlciJgChJJbnRmT3BlckluZGljYXRpb24SEgoEdHlwZRgBIAEoCVIEdHlwZRIXCgdpbnRmX2lkGAIgASgHUgZpbnRmSWQSHQoKb3Blcl9zdGF0ZRgDIAEoCVIJb3BlclN0YXRlIlIKDk9tY2lJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhAKA3BrdBgDIAEoDFIDcGt0IsMBChBQYWNrZXRJbmRpY2F0aW9uEhsKCWludGZfdHlwZRgFIAEoCVIIaW50ZlR5cGUSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEh0KCmdlbXBvcnRfaWQYAiABKAdSCWdlbXBvcnRJZBIXCgdmbG93X2lkGAMgASgHUgZmbG93SWQSFwoHcG9ydF9ubxgGIAEoB1IGcG9ydE5vEhYKBmNvb2tpZRgHIAEoBlIGY29va2llEhAKA3BrdBgEIAEoDFIDcGt0IiQKCUludGVyZmFjZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQiPAoJSGVhcnRiZWF0Ei8KE2hlYXJ0YmVhdF9zaWduYXR1cmUYASABKAdSEmhlYXJ0YmVhdFNpZ25hdHVyZSKDAQoDT251EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjoKDXNlcmlhbF9udW1iZXIYAyABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyEhAKA3BpchgEIAEoB1IDcGlyIksKB09tY2lNc2cSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSEAoDcGt0GAMgASgMUgNwa3QihQEKCU9udVBhY2tldBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIXCgdwb3J0X25vGAQgASgHUgZwb3J0Tm8SHQoKZ2VtcG9ydF9pZBgFIAEoB1IJZ2VtcG9ydElkEhAKA3BrdBgDIAEoDFIDcGt0IjkKDFVwbGlua1BhY2tldBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSEAoDcGt0GAIgASgMUgNwa3QikgkKCkRldmljZUluZm8SFgoGdmVuZG9yGAEgASgJUgZ2ZW5kb3ISFAoFbW9kZWwYAiABKAlSBW1vZGVsEikKEGhhcmR3YXJlX3ZlcnNpb24YAyABKAlSD2hhcmR3YXJlVmVyc2lvbhIpChBmaXJtd2FyZV92ZXJzaW9uGAQgASgJUg9maXJtd2FyZVZlcnNpb24SGwoJZGV2aWNlX2lkGBAgASgJUghkZXZpY2VJZBIwChRkZXZpY2Vfc2VyaWFsX251bWJlchgRIAEoCVISZGV2aWNlU2VyaWFsTnVtYmVyEhsKCXBvbl9wb3J0cxgMIAEoB1IIcG9uUG9ydHMSHgoKdGVjaG5vbG9neRgFIAEoCVIKdGVjaG5vbG9neRIgCgxvbnVfaWRfc3RhcnQYBiABKAdSCm9udUlkU3RhcnQSHAoKb251X2lkX2VuZBgHIAEoB1IIb251SWRFbmQSJAoOYWxsb2NfaWRfc3RhcnQYCCABKAdSDGFsbG9jSWRTdGFydBIgCgxhbGxvY19pZF9lbmQYCSABKAdSCmFsbG9jSWRFbmQSKAoQZ2VtcG9ydF9pZF9zdGFydBgKIAEoB1IOZ2VtcG9ydElkU3RhcnQSJAoOZ2VtcG9ydF9pZF9lbmQYCyABKAdSDGdlbXBvcnRJZEVuZBIiCg1mbG93X2lkX3N0YXJ0GA0gASgHUgtmbG93SWRTdGFydBIeCgtmbG93X2lkX2VuZBgOIAEoB1IJZmxvd0lkRW5kEkAKBnJhbmdlcxgPIAMoCzIoLm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlc1IGcmFuZ2VzGpUEChREZXZpY2VSZXNvdXJjZVJhbmdlcxIZCghpbnRmX2lkcxgBIAMoB1IHaW50ZklkcxIeCgp0ZWNobm9sb2d5GAIgASgJUgp0ZWNobm9sb2d5EkMKBXBvb2xzGAMgAygLMi0ub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2xSBXBvb2xzGvwCCgRQb29sEkoKBHR5cGUYASABKA4yNi5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbC5Qb29sVHlwZVIEdHlwZRJTCgdzaGFyaW5nGAIgASgOMjkub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2wuU2hhcmluZ1R5cGVSB3NoYXJpbmcSFAoFc3RhcnQYAyABKAdSBXN0YXJ0EhAKA2VuZBgEIAEoB1IDZW5kIkEKCFBvb2xUeXBlEgoKBk9OVV9JRBAAEgwKCEFMTE9DX0lEEAESDgoKR0VNUE9SVF9JRBACEgsKB0ZMT1dfSUQQAyJoCgtTaGFyaW5nVHlwZRIWChJERURJQ0FURURfUEVSX0lOVEYQABIfChtTSEFSRURfQllfQUxMX0lOVEZfQUxMX1RFQ0gQARIgChxTSEFSRURfQllfQUxMX0lOVEZfU0FNRV9URUNIEAIihAMKCkNsYXNzaWZpZXISFQoGb190cGlkGAEgASgHUgVvVHBpZBITCgVvX3ZpZBgCIAEoB1IEb1ZpZBIVCgZpX3RwaWQYAyABKAdSBWlUcGlkEhMKBWlfdmlkGAQgASgHUgRpVmlkEhcKB29fcGJpdHMYBSABKAdSBm9QYml0cxIXCgdpX3BiaXRzGAYgASgHUgZpUGJpdHMSGQoIZXRoX3R5cGUYByABKAdSB2V0aFR5cGUSFwoHZHN0X21hYxgIIAEoDFIGZHN0TWFjEhcKB3NyY19tYWMYCSABKAxSBnNyY01hYxIZCghpcF9wcm90bxgKIAEoB1IHaXBQcm90bxIVCgZkc3RfaXAYCyABKAdSBWRzdElwEhUKBnNyY19pcBgMIAEoB1IFc3JjSXASGQoIc3JjX3BvcnQYDSABKAdSB3NyY1BvcnQSGQoIZHN0X3BvcnQYDiABKAdSB2RzdFBvcnQSIAoMcGt0X3RhZ190eXBlGA8gASgJUgpwa3RUYWdUeXBlIoUDCglBY3Rpb25DbWQSIgoNYWRkX291dGVyX3RhZxgBIAEoCFILYWRkT3V0ZXJUYWcSKAoQcmVtb3ZlX291dGVyX3RhZxgCIAEoCFIOcmVtb3ZlT3V0ZXJUYWcSIAoMdHJhcF90b19ob3N0GAMgASgIUgp0cmFwVG9Ib3N0EiwKEnJlbWFya19vdXRlcl9wYml0cxgEIAEoCFIQcmVtYXJrT3V0ZXJQYml0cxIsChJyZW1hcmtfaW5uZXJfcGJpdHMYBSABKAhSEHJlbWFya0lubmVyUGJpdHMSIgoNYWRkX2lubmVyX3RhZxgGIAEoCFILYWRkSW5uZXJUYWcSKAoQcmVtb3ZlX2lubmVyX3RhZxgHIAEoCFIOcmVtb3ZlSW5uZXJUYWcSLgoTdHJhbnNsYXRlX2lubmVyX3RhZxgIIAEoCFIRdHJhbnNsYXRlSW5uZXJUYWcSLgoTdHJhbnNsYXRlX291dGVyX3RhZxgJIAEoCFIRdHJhbnNsYXRlT3V0ZXJUYWciuAEKBkFjdGlvbhIkCgNjbWQYASABKAsyEi5vcGVub2x0LkFjdGlvbkNtZFIDY21kEhMKBW9fdmlkGAIgASgHUgRvVmlkEhcKB29fcGJpdHMYAyABKAdSBm9QYml0cxIVCgZvX3RwaWQYBCABKAdSBW9UcGlkEhMKBWlfdmlkGAUgASgHUgRpVmlkEhcKB2lfcGJpdHMYBiABKAdSBmlQYml0cxIVCgZpX3RwaWQYByABKAdSBWlUcGlkIrgDCgRGbG93EiQKDmFjY2Vzc19pbnRmX2lkGAEgASgPUgxhY2Nlc3NJbnRmSWQSFQoGb251X2lkGAIgASgPUgVvbnVJZBIVCgZ1bmlfaWQYCyABKA9SBXVuaUlkEhcKB2Zsb3dfaWQYAyABKAdSBmZsb3dJZBIbCglmbG93X3R5cGUYBCABKAlSCGZsb3dUeXBlEhkKCGFsbG9jX2lkGAogASgPUgdhbGxvY0lkEiYKD25ldHdvcmtfaW50Zl9pZBgFIAEoD1INbmV0d29ya0ludGZJZBIdCgpnZW1wb3J0X2lkGAYgASgPUglnZW1wb3J0SWQSMwoKY2xhc3NpZmllchgHIAEoCzITLm9wZW5vbHQuQ2xhc3NpZmllclIKY2xhc3NpZmllchInCgZhY3Rpb24YCCABKAsyDy5vcGVub2x0LkFjdGlvblIGYWN0aW9uEhoKCHByaW9yaXR5GAkgASgPUghwcmlvcml0eRIWCgZjb29raWUYDCABKAZSBmNvb2tpZRIXCgdwb3J0X25vGA0gASgHUgZwb3J0Tm8SGQoIZ3JvdXBfaWQYDiABKAdSB2dyb3VwSWQiVAoMU2VyaWFsTnVtYmVyEhsKCXZlbmRvcl9pZBgBIAEoDFIIdmVuZG9ySWQSJwoPdmVuZG9yX3NwZWNpZmljGAIgASgMUg52ZW5kb3JTcGVjaWZpYyLOBAoOUG9ydFN0YXRpc3RpY3MSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhkKCHJ4X2J5dGVzGAIgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYAyABKAZSCXJ4UGFja2V0cxIoChByeF91Y2FzdF9wYWNrZXRzGAQgASgGUg5yeFVjYXN0UGFja2V0cxIoChByeF9tY2FzdF9wYWNrZXRzGAUgASgGUg5yeE1jYXN0UGFja2V0cxIoChByeF9iY2FzdF9wYWNrZXRzGAYgASgGUg5yeEJjYXN0UGFja2V0cxIoChByeF9lcnJvcl9wYWNrZXRzGAcgASgGUg5yeEVycm9yUGFja2V0cxIZCgh0eF9ieXRlcxgIIAEoBlIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAkgASgGUgl0eFBhY2tldHMSKAoQdHhfdWNhc3RfcGFja2V0cxgKIAEoBlIOdHhVY2FzdFBhY2tldHMSKAoQdHhfbWNhc3RfcGFja2V0cxgLIAEoBlIOdHhNY2FzdFBhY2tldHMSKAoQdHhfYmNhc3RfcGFja2V0cxgMIAEoBlIOdHhCY2FzdFBhY2tldHMSKAoQdHhfZXJyb3JfcGFja2V0cxgNIAEoBlIOdHhFcnJvclBhY2tldHMSIgoNcnhfY3JjX2Vycm9ycxgOIAEoBlILcnhDcmNFcnJvcnMSHQoKYmlwX2Vycm9ycxgPIAEoBlIJYmlwRXJyb3JzEhwKCXRpbWVzdGFtcBgQIAEoB1IJdGltZXN0YW1wIrsBCg5GbG93U3RhdGlzdGljcxIXCgdmbG93X2lkGAEgASgHUgZmbG93SWQSGQoIcnhfYnl0ZXMYAiABKAZSB3J4Qnl0ZXMSHQoKcnhfcGFja2V0cxgDIAEoBlIJcnhQYWNrZXRzEhkKCHR4X2J5dGVzGAggASgGUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYCSABKAZSCXR4UGFja2V0cxIcCgl0aW1lc3RhbXAYECABKAdSCXRpbWVzdGFtcCJACg1Mb3NJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIWCgZzdGF0dXMYAiABKAlSBnN0YXR1cyJdChNEeWluZ0dhc3BJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIqMCChJPbnVBbGFybUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHQoKbG9zX3N0YXR1cxgDIAEoCVIJbG9zU3RhdHVzEh0KCmxvYl9zdGF0dXMYBCABKAlSCWxvYlN0YXR1cxIoChBsb3BjX21pc3Nfc3RhdHVzGAUgASgJUg5sb3BjTWlzc1N0YXR1cxIxChVsb3BjX21pY19lcnJvcl9zdGF0dXMYBiABKAlSEmxvcGNNaWNFcnJvclN0YXR1cxIfCgtsb2ZpX3N0YXR1cxgHIAEoCVIKbG9maVN0YXR1cxIhCgxsb2FtaV9zdGF0dXMYCCABKAlSC2xvYW1pU3RhdHVzImUKG09udVN0YXJ0dXBGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKZAQoaT251U2lnbmFsRGVncmFkZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgEIAEoB1ITaW52ZXJzZUJpdEVycm9yUmF0ZSKTAQoaT251RHJpZnRPZldpbmRvd0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSFAoFZHJpZnQYBCABKAdSBWRyaWZ0EhcKB25ld19lcWQYBSABKAdSBm5ld0VxZCJoCh5PbnVMb3NzT2ZPbWNpQ2hhbm5lbEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMimgEKG09udVNpZ25hbHNGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIzChZpbnZlcnNlX2JpdF9lcnJvcl9yYXRlGAQgASgHUhNpbnZlcnNlQml0RXJyb3JSYXRlIoIBCiJPbnVUcmFuc21pc3Npb25JbnRlcmZlcmVuY2VXYXJuaW5nEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhQKBWRyaWZ0GAQgASgHUgVkcmlmdCJxCh5PbnVBY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHwoLZmFpbF9yZWFzb24YAyABKAdSCmZhaWxSZWFzb24iawohT251TG9zc09mS2V5U3luY0ZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzImkKGE9udUl0dVBvblN0YXRzSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpyZGlfZXJyb3JzGAMgASgHUglyZGlFcnJvcnMiTgocT251UHJvY2Vzc2luZ0Vycm9ySW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCJzCiBPbnVEZWFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIfCgtmYWlsX3JlYXNvbhgDIAEoB1IKZmFpbFJlYXNvbiJqChlPbnVSZW1vdGVEZWZlY3RJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCnJkaV9lcnJvcnMYAyABKAdSCXJkaUVycm9ycyKhAQooT251TG9zc09mR0VNQ2hhbm5lbERlbGluZWF0aW9uSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxItChJkZWxpbmVhdGlvbl9lcnJvcnMYBCABKAdSEWRlbGluZWF0aW9uRXJyb3JzIm0KI09udVBoeXNpY2FsRXF1aXBtZW50RXJyb3JJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzImwKIk9udUxvc3NPZkFja25vd2xlZGdlbWVudEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMi9gEKC0dyb3VwTWVtYmVyEiEKDGludGVyZmFjZV9pZBgBIAEoDVILaW50ZXJmYWNlSWQSSQoOaW50ZXJmYWNlX3R5cGUYAiABKA4yIi5vcGVub2x0Lkdyb3VwTWVtYmVyLkludGVyZmFjZVR5cGVSDWludGVyZmFjZVR5cGUSHgoLZ2VtX3BvcnRfaWQYAyABKA1SCWdlbVBvcnRJZBIaCghwcmlvcml0eRgEIAEoDVIIcHJpb3JpdHkiPQoNSW50ZXJmYWNlVHlwZRIHCgNQT04QABIQCgxFUE9OXzFHX1BBVEgQARIRCg1FUE9OXzEwR19QQVRIEAIihgIKBUdyb3VwEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkEjwKB2NvbW1hbmQYAiABKA4yIi5vcGVub2x0Lkdyb3VwLkdyb3VwTWVtYmVyc0NvbW1hbmRSB2NvbW1hbmQSLgoHbWVtYmVycxgDIAMoCzIULm9wZW5vbHQuR3JvdXBNZW1iZXJSB21lbWJlcnMSJwoGYWN0aW9uGAQgASgLMg8ub3Blbm9sdC5BY3Rpb25SBmFjdGlvbiJLChNHcm91cE1lbWJlcnNDb21tYW5kEg8KC0FERF9NRU1CRVJTEAASEgoOUkVNT1ZFX01FTUJFUlMQARIPCgtTRVRfTUVNQkVSUxACIgcKBUVtcHR5MqIOCgdPcGVub2x0EkQKCkRpc2FibGVPbHQSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIWgtPkkwIQIgsvdjEvRGlzYWJsZToBKhJGCgtSZWVuYWJsZU9sdBIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IheC0+STAhEiDC92MS9SZWVuYWJsZToBKhJFCgtBY3RpdmF0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIYgtPkkwISIg0vdjEvRW5hYmxlT251OgEqEkgKDURlYWN0aXZhdGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGYLT5JMCEyIOL3YxL0Rpc2FibGVPbnU6ASoSQwoJRGVsZXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhiC0+STAhIiDS92MS9EZWxldGVPbnU6ASoSSQoKT21jaU1zZ091dBIQLm9wZW5vbHQuT21jaU1zZxoOLm9wZW5vbHQuRW1wdHkiGYLT5JMCEyIOL3YxL09tY2lNc2dPdXQ6ASoSTwoMT251UGFja2V0T3V0EhIub3Blbm9sdC5PbnVQYWNrZXQaDi5vcGVub2x0LkVtcHR5IhuC0+STAhUiEC92MS9PbnVQYWNrZXRPdXQ6ASoSWAoPVXBsaW5rUGFja2V0T3V0EhUub3Blbm9sdC5VcGxpbmtQYWNrZXQaDi5vcGVub2x0LkVtcHR5Ih6C0+STAhgiEy92MS9VcGxpbmtQYWNrZXRPdXQ6ASoSQAoHRmxvd0FkZBINLm9wZW5vbHQuRmxvdxoOLm9wZW5vbHQuRW1wdHkiFoLT5JMCECILL3YxL0Zsb3dBZGQ6ASoSRgoKRmxvd1JlbW92ZRINLm9wZW5vbHQuRmxvdxoOLm9wZW5vbHQuRW1wdHkiGYLT5JMCEyIOL3YxL0Zsb3dSZW1vdmU6ASoSUwoOSGVhcnRiZWF0Q2hlY2sSDi5vcGVub2x0LkVtcHR5GhIub3Blbm9sdC5IZWFydGJlYXQiHYLT5JMCFyISL3YxL0hlYXJ0YmVhdENoZWNrOgEqEk0KC0VuYWJsZVBvbklmEhIub3Blbm9sdC5JbnRlcmZhY2UaDi5vcGVub2x0LkVtcHR5IhqC0+STAhQiDy92MS9FbmFibGVQb25JZjoBKhJPCgxEaXNhYmxlUG9uSWYSEi5vcGVub2x0LkludGVyZmFjZRoOLm9wZW5vbHQuRW1wdHkiG4LT5JMCFSIQL3YxL0Rpc2FibGVQb25JZjoBKhJSCg1HZXREZXZpY2VJbmZvEg4ub3Blbm9sdC5FbXB0eRoTLm9wZW5vbHQuRGV2aWNlSW5mbyIcgtPkkwIWIhEvdjEvR2V0RGV2aWNlSW5mbzoBKhI/CgZSZWJvb3QSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIVgtPkkwIPIgovdjEvUmVib290OgEqElUKEUNvbGxlY3RTdGF0aXN0aWNzEg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiIILT5JMCGiIVL3YxL0NvbGxlY3RTdGF0aXN0aWNzOgEqEnIKF0NyZWF0ZVRyYWZmaWNTY2hlZHVsZXJzEh8udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJzGg4ub3Blbm9sdC5FbXB0eSImgtPkkwIgIhsvdjEvQ3JlYXRlVHJhZmZpY1NjaGVkdWxlcnM6ASoScgoXUmVtb3ZlVHJhZmZpY1NjaGVkdWxlcnMSHy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NjaGVkdWxlcnMaDi5vcGVub2x0LkVtcHR5IiaC0+STAiAiGy92MS9SZW1vdmVUcmFmZmljU2NoZWR1bGVyczoBKhJmChNDcmVhdGVUcmFmZmljUXVldWVzEhsudGVjaF9wcm9maWxlLlRyYWZmaWNRdWV1ZXMaDi5vcGVub2x0LkVtcHR5IiKC0+STAhwiFy92MS9DcmVhdGVUcmFmZmljUXVldWVzOgEqEmYKE1JlbW92ZVRyYWZmaWNRdWV1ZXMSGy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlcxoOLm9wZW5vbHQuRW1wdHkiIoLT5JMCHCIXL3YxL1JlbW92ZVRyYWZmaWNRdWV1ZXM6ASoSOwoQRW5hYmxlSW5kaWNhdGlvbhIOLm9wZW5vbHQuRW1wdHkaEy5vcGVub2x0LkluZGljYXRpb24iADABEl0KFVBlcmZvcm1Hcm91cE9wZXJhdGlvbhIOLm9wZW5vbHQuR3JvdXAaDi5vcGVub2x0LkVtcHR5IiSC0+STAh4iGS92MS9QZXJmb3JtR3JvdXBPcGVyYXRpb246ASpCXQobb3JnLm9wZW5jb3JkLnZvbHRoYS5vcGVu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GQoIbm5pX3BvcnQYASABKAVSB25uaVBvcnQSLwoEb251cxgCIAMoCzIbLnZvbHRoYS5Qb25TaW1PbnVEZXZpY2VJbmZvUgRvbnVzIlIKCUZsb3dUYWJsZRISCgRwb3J0GAEgASgFUgRwb3J0EjEKBWZsb3dzGAIgAygLMhsub3BlbmZsb3dfMTMub2ZwX2Zsb3dfc3RhdHNSBWZsb3dzIlIKC1BvblNpbUZyYW1lEg4KAmlkGAEgASgJUgJpZBIYCgdwYXlsb2FkGAIgASgMUgdwYXlsb2FkEhkKCG91dF9wb3J0GAMgASgFUgdvdXRQb3J0Ij8KE1BvblNpbVBhY2tldENvdW50ZXISEgoEbmFtZRgBIAEoCVIEbmFtZRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWUiZwoRUG9uU2ltUG9ydE1ldHJpY3MSGwoJcG9ydF9uYW1lGAEgASgJUghwb3J0TmFtZRI1CgdwYWNrZXRzGAIgAygLMhsudm9sdGhhLlBvblNpbVBhY2tldENvdW50ZXJSB3BhY2tldHMiXAoNUG9uU2ltTWV0cmljcxIWCgZkZXZpY2UYASABKAlSBmRldmljZRIzCgdtZXRyaWNzGAIgAygLMhkudm9sdGhhLlBvblNpbVBvcnRNZXRyaWNzUgdtZXRyaWNzIioKFFBvblNpbU1ldHJpY3NSZXF1ZXN0EhIKBHBvcnQYASABKAVSBHBvcnQyyAIKBlBvblNpbRI6CglTZW5kRnJhbWUSEy52b2x0aGEuUG9uU2ltRnJhbWUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiABJACg1SZWNlaXZlRnJhbWVzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhMudm9sdGhhLlBvblNpbUZyYW1lIgAwARJDCg1HZXREZXZpY2VJbmZvEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ghgudm9sdGhhLlBvblNpbURldmljZUluZm8iABI+Cg9VcGRhdGVGbG93VGFibGUSES52b2x0aGEuRmxvd1RhYmxlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgASOwoIR2V0U3RhdHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFS52b2x0aGEuUG9uU2ltTWV0cmljcyIAQkUKE29yZy5vcGVuY29yZC52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