CuEsChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJvChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWiVnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvYW55ogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoErCgcSBR4AmgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwA8CgkKAggLEgMjADwKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQApCgkKAggIEgMlACkKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEK5BAKAgQAEgV5AJoBARrWECBgQW55YCBjb250YWlucyBhbiBhcmJpdHJhcnkgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSBhbG9uZyB3aXRoIGEKIFVSTCB0aGF0IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBtZXNzYWdlLgoKIFByb3RvYnVmIGxpYnJhcnkgcHJvdmlkZXMgc3VwcG9ydCB0byBwYWNrL3VucGFjayBBbnkgdmFsdWVzIGluIHRoZSBmb3JtCiBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBvciBhZGRpdGlvbmFsIGdlbmVyYXRlZCBtZXRob2RzIG9mIHRoZSBBbnkgdHlwZS4KCiBFeGFtcGxlIDE6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gQysrLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnk7CiAgICAgYW55LlBhY2tGcm9tKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5VbnBhY2tUbygmZm9vKSkgewogICAgICAgLi4uCiAgICAgfQoKIEV4YW1wbGUgMjogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBKYXZhLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnkgPSBBbnkucGFjayhmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuaXMoRm9vLmNsYXNzKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uY2xhc3MpOwogICAgIH0KCiAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiAgRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IHB0eXBlcy5NYXJzaGFsQW55KGZvbykKICAgICAgLi4uCiAgICAgIGZvbyA6PSAmcGIuRm9ve30KICAgICAgaWYgZXJyIDo9IHB0eXBlcy5Vbm1hcnNoYWxBbnkoYW55LCBmb28pOyBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQoKIFRoZSBwYWNrIG1ldGhvZHMgcHJvdmlkZWQgYnkgcHJvdG9idWYgbGlicmFyeSB3aWxsIGJ5IGRlZmF1bHQgdXNlCiAndHlwZS5nb29nbGVhcGlzLmNvbS9mdWxsLnR5cGUubmFtZScgYXMgdGhlIHR5cGUgVVJMIGFuZCB0aGUgdW5wYWNrCiBtZXRob2RzIG9ubHkgdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lIGFmdGVyIHRoZSBsYXN0ICcvJwogaW4gdGhlIHR5cGUgVVJMLCBmb3IgZXhhbXBsZSAiZm9vLmJhci5jb20veC95LnoiIHdpbGwgeWllbGQgdHlwZQogbmFtZSAieS56Ii4KCgogSlNPTgogPT09PQogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gYEFueWAgdmFsdWUgdXNlcyB0aGUgcmVndWxhcgogcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbgogYWRkaXRpb25hbCBmaWVsZCBgQHR5cGVgIHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZToKCiAgICAgcGFja2FnZSBnb29nbGUucHJvZmlsZTsKICAgICBtZXNzYWdlIFBlcnNvbiB7CiAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgbGFzdF9uYW1lID0gMjsKICAgICB9CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvbiIsCiAgICAgICAiZmlyc3ROYW1lIjogPHN0cmluZz4sCiAgICAgICAibGFzdE5hbWUiOiA8c3RyaW5nPgogICAgIH0KCiBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OCiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkCiBgdmFsdWVgIHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgYEB0eXBlYAogZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOgoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb24iLAogICAgICAgInZhbHVlIjogIjEuMjEycyIKICAgICB9CgoKCgoDBAABEgN5CAsK1woKBAQAAgASBJYBAhYayAogQSBVUkwvcmVzb3VyY2UgbmFtZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQKIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLiBUaGlzIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QKIG9uZSAiLyIgY2hhcmFjdGVyLiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50CiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHR5cGUgKGFzIGluCiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0KIChlLmcuLCBsZWFkaW5nICIuIiBpcyBub3QgYWNjZXB0ZWQpLgoKIEluIHByYWN0aWNlLCB0ZWFtcyB1c3VhbGx5IHByZWNvbXBpbGUgaW50byB0aGUgYmluYXJ5IGFsbCB0eXBlcyB0aGF0IHRoZXkKIGV4cGVjdCBpdCB0byB1c2UgaW4gdGhlIGNvbnRleHQgb2YgQW55LiBIb3dldmVyLCBmb3IgVVJMcyB3aGljaCB1c2UgdGhlCiBzY2hlbWUgYGh0dHBgLCBgaHR0cHNgLCBvciBubyBzY2hlbWUsIG9uZSBjYW4gb3B0aW9uYWxseSBzZXQgdXAgYSB0eXBlCiBzZXJ2ZXIgdGhhdCBtYXBzIHR5cGUgVVJMcyB0byBtZXNzYWdlIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CgogKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4KICogQW4gSFRUUCBHRVQgb24gdGhlIFVSTCBtdXN0IHlpZWxkIGEgW2dvb2dsZS5wcm90b2J1Zi5UeXBlXVtdCiAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuCiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUKICAgVVJMLCBvciBoYXZlIHRoZW0gcHJlY29tcGlsZWQgaW50byBhIGJpbmFyeSB0byBhdm9pZCBhbnkKICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZAogICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZQogICBicmVha2luZyBjaGFuZ2VzLikKCiBOb3RlOiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIG9mZmljaWFsCiBwcm90b2J1ZiByZWxlYXNlLCBhbmQgaXQgaXMgbm90IHVzZWQgZm9yIHR5cGUgVVJMcyBiZWdpbm5pbmcgd2l0aAogdHlwZS5nb29nbGVhcGlzLmNvbS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoOCgUEAAIABBIFlgECeQ0KDQoFBAACAAUSBJYBAggKDQoFBAACAAESBJYBCREKDQoFBAACAAMSBJYBFBUKVwoEBAACARIEmQECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoPCgUEAAIBBBIGmQEClgEWCg0KBQQAAgEFEgSZAQIHCg0KBQQAAgEBEgSZAQgNCg0KBQQAAgEDEgSZARARYgZwcm90bzMKy/kCCiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIk0KEUZpbGVEZXNjcmlwdG9yU2V0EjgKBGZpbGUYASADKAsyJC5nb29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90b1IEZmlsZSLkBAoTRmlsZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3BhY2thZ2UYAiABKAlSB3BhY2thZ2USHgoKZGVwZW5kZW5jeRgDIAMoCVIKZGVwZW5kZW5jeRIrChFwdWJsaWNfZGVwZW5kZW5jeRgKIAMoBVIQcHVibGljRGVwZW5kZW5jeRInCg93ZWFrX2RlcGVuZGVuY3kYCyADKAVSDndlYWtEZXBlbmRlbmN5EkMKDG1lc3NhZ2VfdHlwZRgEIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SC21lc3NhZ2VUeXBlEkEKCWVudW1fdHlwZRgFIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvUghlbnVtVHlwZRJBCgdzZXJ2aWNlGAYgAygLMicuZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VEZXNjcmlwdG9yUHJvdG9SB3NlcnZpY2USQwoJZXh0ZW5zaW9uGAcgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUglleHRlbnNpb24SNgoHb3B0aW9ucxgIIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9uc1IHb3B0aW9ucxJJChBzb3VyY2VfY29kZV9pbmZvGAkgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvUg5zb3VyY2VDb2RlSW5mbxIWCgZzeW50YXgYDCABKAlSBnN5bnRheCK5BgoPRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSOwoFZmllbGQYAiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SBWZpZWxkEkMKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEkEKC25lc3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1IKbmVzdGVkVHlwZRJBCgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSWAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZVIOZXh0ZW5zaW9uUmFuZ2USRAoKb25lb2ZfZGVjbBgIIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90b1IJb25lb2ZEZWNsEjkKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnNSB29wdGlvbnMSVQoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgKIAMoCVIMcmVzZXJ2ZWROYW1lGnoKDkV4dGVuc2lvblJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZBJACgdvcHRpb25zGAMgASgLMiYuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9uc1IHb3B0aW9ucxo3Cg1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCJ8ChVFeHRlbnNpb25SYW5nZU9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKYBgoURmllbGREZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAyABKAVSBm51bWJlchJBCgVsYWJlbBgEIAEoDjIrLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5MYWJlbFIFbGFiZWwSPgoEdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlUgR0eXBlEhsKCXR5cGVfbmFtZRgGIAEoCVIIdHlwZU5hbWUSGgoIZXh0ZW5kZWUYAiABKAlSCGV4dGVuZGVlEiMKDWRlZmF1bHRfdmFsdWUYByABKAlSDGRlZmF1bHRWYWx1ZRIfCgtvbmVvZl9pbmRleBgJIAEoBVIKb25lb2ZJbmRleBIbCglqc29uX25hbWUYCiABKAlSCGpzb25OYW1lEjcKB29wdGlvbnMYCCABKAsyHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zUgdvcHRpb25zIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIpIJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIvChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgVmYWxzZVIOY2NFbmFibGVBcmVuYXMSKgoRb2JqY19jbGFzc19wcmVmaXgYJCABKAlSD29iamNDbGFzc1ByZWZpeBIpChBjc2hhcnBfbmFtZXNwYWNlGCUgASgJUg9jc2hhcnBOYW1lc3BhY2USIQoMc3dpZnRfcHJlZml4GCcgASgJUgtzd2lmdFByZWZpeBIoChBwaHBfY2xhc3NfcHJlZml4GCggASgJUg5waHBDbGFzc1ByZWZpeBIjCg1waHBfbmFtZXNwYWNlGCkgASgJUgxwaHBOYW1lc3BhY2USNAoWcGhwX21ldGFkYXRhX25hbWVzcGFjZRgsIAEoCVIUcGhwTWV0YWRhdGFOYW1lc3BhY2USIQoMcnVieV9wYWNrYWdlGC0gASgJUgtydWJ5UGFja2FnZRJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiI6CgxPcHRpbWl6ZU1vZGUSCQoFU1BFRUQQARINCglDT0RFX1NJWkUQAhIQCgxMSVRFX1JVTlRJTUUQAyoJCOgHEICAgIACSgQIJhAnItECCg5NZXNzYWdlT3B0aW9ucxI8ChdtZXNzYWdlX3NldF93aXJlX2Zvcm1hdBgBIAEoCDoFZmFsc2VSFG1lc3NhZ2VTZXRXaXJlRm9ybWF0EkwKH25vX3N0YW5kYXJkX2Rlc2NyaXB0b3JfYWNjZXNzb3IYAiABKAg6BWZhbHNlUhxub1N0YW5kYXJkRGVzY3JpcHRvckFjY2Vzc29yEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhsKCW1hcF9lbnRyeRgHIAEoCFIIbWFwRW50cnkSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAgQCUoECAkQCiLiAwoMRmllbGRPcHRpb25zEkEKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HUgVjdHlwZRIWCgZwYWNrZWQYAiABKAhSBnBhY2tlZBJHCgZqc3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFMUgZqc3R5cGUSGQoEbGF6eRgFIAEoCDoFZmFsc2VSBGxhenkSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGQoEd2VhaxgKIAEoCDoFZmFsc2VSBHdlYWsSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iLwoFQ1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVDRRACIjUKBkpTVHlwZRINCglKU19OT1JNQUwQABINCglKU19TVFJJTkcQARINCglKU19OVU1CRVIQAioJCOgHEICAgIACSgQIBBAFInMKDE9uZW9mT3B0aW9ucxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIsABCgtFbnVtT3B0aW9ucxIfCgthbGxvd19hbGlhcxgCIAEoCFIKYWxsb3dBbGlhcxIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBRAGIp4BChBFbnVtVmFsdWVPcHRpb25zEiUKCmRlcHJlY2F0ZWQYASABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIinAEKDlNlcnZpY2VPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi4AIKDU1ldGhvZE9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQScQoRaWRlbXBvdGVuY3lfbGV2ZWwYIiABKA4yLy5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucy5JZGVtcG90ZW5jeUxldmVsOhNJREVNUE9URU5DWV9VTktOT1dOUhBpZGVtcG90ZW5jeUxldmVsElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIlAKEElkZW1wb3RlbmN5TGV2ZWwSFwoTSURFTVBPVEVOQ1lfVU5LTk9XThAAEhMKD05PX1NJREVfRUZGRUNUUxABEg4KCklERU1QT1RFTlQQAioJCOgHEICAgIACIpoDChNVbmludGVycHJldGVkT3B0aW9uEkEKBG5hbWUYAiADKAsyLS5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbi5OYW1lUGFydFIEbmFtZRIpChBpZGVudGlmaWVyX3ZhbHVlGAMgASgJUg9pZGVudGlmaWVyVmFsdWUSLAoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEUhBwb3NpdGl2ZUludFZhbHVlEiwKEm5lZ2F0aXZlX2ludF92YWx1ZRgFIAEoA1IQbmVnYXRpdmVJbnRWYWx1ZRIhCgxkb3VibGVfdmFsdWUYBiABKAFSC2RvdWJsZVZhbHVlEiEKDHN0cmluZ192YWx1ZRgHIAEoDFILc3RyaW5nVmFsdWUSJwoPYWdncmVnYXRlX3ZhbHVlGAggASgJUg5hZ2dyZWdhdGVWYWx1ZRpKCghOYW1lUGFydBIbCgluYW1lX3BhcnQYASACKAlSCG5hbWVQYXJ0EiEKDGlzX2V4dGVuc2lvbhgCIAIoCFILaXNFeHRlbnNpb24ipwIKDlNvdXJjZUNvZGVJbmZvEkQKCGxvY2F0aW9uGAEgAygLMiguZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvLkxvY2F0aW9uUghsb2NhdGlvbhrOAQoITG9jYXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSFgoEc3BhbhgCIAMoBUICEAFSBHNwYW4SKQoQbGVhZGluZ19jb21tZW50cxgDIAEoCVIPbGVhZGluZ0NvbW1lbnRzEisKEXRyYWlsaW5nX2NvbW1lbnRzGAQgASgJUhB0cmFpbGluZ0NvbW1lbnRzEjoKGWxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMYBiADKAlSF2xlYWRpbmdEZXRhY2hlZENvbW1lbnRzItEBChFHZW5lcmF0ZWRDb2RlSW5mbxJNCgphbm5vdGF0aW9uGAEgAygLMi0uZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb25SCmFubm90YXRpb24abQoKQW5ub3RhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIfCgtzb3VyY2VfZmlsZRgCIAEoCVIKc291cmNlRmlsZRIUCgViZWdpbhgDIAEoBVIFYmVnaW4SEAoDZW5kGAQgASgFUgNlbmRCjwEKE2NvbS5nb29nbGUucHJvdG9idWZCEERlc2NyaXB0b3JQcm90b3NIAVo+Z2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHJvdG9jLWdlbi1nby9kZXNjcmlwdG9yO2Rlc2NyaXB0b3L4AQGiAgNHUEKqAhpHb29nbGUuUHJvdG9idWYuUmVmbGVjdGlvbkqsvgIKBxIFJwDyBgEKqg8KAQwSAycAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtsCIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIFRoZSBtZXNzYWdlcyBpbiB0aGlzIGZpbGUgZGVzY3JpYmUgdGhlIGRlZmluaXRpb25zIGZvdW5kIGluIC5wcm90byBmaWxlcy4KIEEgdmFsaWQgLnByb3RvIGZpbGUgY2FuIGJlIHRyYW5zbGF0ZWQgZGlyZWN0bHkgdG8gYSBGaWxlRGVzY3JpcHRvclByb3RvCiB3aXRob3V0IGFueSBvdGhlciBpbmZvcm1hdGlvbiAoZS5nLiB3aXRob3V0IHJlYWRpbmcgaXRzIGltcG9ydHMpLgoKCAoBAhID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dG9yZSB0aGUgdmFsdWVzIGluIHRoZW0uICBJbnN0ZWFkIGl0IHN0b3JlcyB0aGVtIGluIGEgZmllbGQgaW4gdGhlICpPcHRpb25zCiBtZXNzYWdlIGNhbGxlZCB1bmludGVycHJldGVkX29wdGlvbi4gVGhpcyBmaWVsZCBtdXN0IGhhdmUgdGhlIHNhbWUgbmFtZQogYWNyb3NzIGFsbCAqT3B0aW9ucyBtZXNzYWdlcy4gV2UgdGhlbiB1c2UgdGhpcyBmaWVsZCB0byBwb3B1bGF0ZSB0aGUKIGV4dGVuc2lvbnMgd2hlbiB3ZSBidWlsZCBhIGRlc2NyaXB0b3IsIGF0IHdoaWNoIHBvaW50IGFsbCBwcm90b3MgaGF2ZSBiZWVuCiBwYXJzZWQgYW5kIHNvIGFsbCBleHRlbnNpb25zIGFyZSBrbm93bi4KCiBFeHRlbnNpb24gbnVtYmVycyBmb3IgY3VzdG9tIG9wdGlvbnMgbWF5IGJlIGNob3NlbiBhcyBmb2xsb3dzOgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIG9ubHkgYmUgdXNlZCB3aXRoaW4gYSBzaW5nbGUgYXBwbGljYXRpb24gb3IKICAgb3JnYW5pemF0aW9uLCBvciBmb3IgZXhwZXJpbWVudGFsIG9wdGlvbnMsIHVzZSBmaWVsZCBudW1iZXJzIDUwMDAwCiAgIHRocm91Z2ggOTk5OTkuICBJdCBpcyB1cCB0byB5b3UgdG8gZW5zdXJlIHRoYXQgeW91IGRvIG5vdCB1c2UgdGhlCiAgIHNhbWUgbnVtYmVyIGZvciBtdWx0aXBsZSBvcHRpb25zLgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIGJlIHB1Ymxpc2hlZCBhbmQgdXNlZCBwdWJsaWNseSBieSBtdWx0aXBsZQogICBpbmRlcGVuZGVudCBlbnRpdGllcywgZS1tYWlsIHByb3RvYnVmLWdsb2JhbC1leHRlbnNpb24tcmVnaXN0cnlAZ29vZ2xlLmNvbQogICB0byByZXNlcnZlIGV4dGVuc2lvbiBudW1iZXJzLiBTaW1wbHkgcHJvdmlkZSB5b3VyIHByb2plY3QgbmFtZSAoZS5nLgogICBPYmplY3RpdmUtQyBwbHVnaW4pIGFuZCB5b3VyIHByb2plY3Qgd2Vic2l0ZSAoaWYgYXZhaWxhYmxlKSAtLSB0aGVyZSdzIG5vCiAgIG5lZWQgdG8gZXhwbGFpbiBob3cgeW91IGludGVuZCB0byB1c2UgdGhlbS4gVXN1YWxseSB5b3Ugb25seSBuZWVkIG9uZQogICBleHRlbnNpb24gbnVtYmVyLiBZb3UgY2FuIGRlY2xhcmUgbXVsdGlwbGUgb3B0aW9ucyB3aXRoIG9ubHkgb25lIGV4dGVuc2lvbgogICBudW1iZXIgYnkgcHV0dGluZyB0aGVtIGluIGEgc3ViLW1lc3NhZ2UuIFNlZSB0aGUgQ3VzdG9tIE9wdGlvbnMgc2VjdGlvbiBvZgogICB0aGUgZG9jcyBmb3IgZXhhbXBsZXM6CiAgIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90byNvcHRpb25zCiAgIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIHBvcHVsYXIsIGEgd2ViIHNlcnZpY2Ugd2lsbCBiZSBzZXQgdXAKICAgdG8gYXV0b21hdGljYWxseSBhc3NpZ24gb3B0aW9uIG51bWJlcnMuCgoLCgMECgESBL0CCBMK9AEKBAQKAgASBMMCAiMa5QEgU2V0cyB0aGUgSmF2YSBwYWNrYWdlIHdoZXJlIGNsYXNzZXMgZ2VuZXJhdGVkIGZyb20gdGhpcyAucHJvdG8gd2lsbCBiZQogcGxhY2VkLiAgQnkgZGVmYXVsdCwgdGhlIHByb3RvIHBhY2thZ2UgaXMgdXNlZCwgYnV0IHRoaXMgaXMgb2Z0ZW4KIGluYXBwcm9wcmlhdGUgYmVjYXVzZSBwcm90byBwYWNrYWdlcyBkbyBub3Qgbm9ybWFsbHkgc3RhcnQgd2l0aCBiYWNrd2FyZHMKIGRvbWFpbiBuYW1lcy4KCg0KBQQKAgAEEgTDAgIKCg0KBQQKAgAFEgTDAgsRCg0KBQQKAgABEgTDAhIeCg0KBQQKAgADEgTDAiEiCr8CCgQECgIBEgTLAgIrGrACIElmIHNldCwgYWxsIHRoZSBjbGFzc2VzIGZyb20gdGhlIC5wcm90byBmaWxlIGFyZSB3cmFwcGVkIGluIGEgc2luZ2xlCiBvdXRlciBjbGFzcyB3aXRo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DQoFBAoCBQQSBOgCAgoKDQoFBAoCBQYSBOgCCxcKDQoFBAoCBQESBOgCGCQKDQoFBAoCBQMSBOgCJygKDQoFBAoCBQgSBOgCKTgKDQoFBAoCBQcSBOgCMjcK4gIKBAQKAgYSBO8CAiIa0wIgU2V0cyB0aGUgR28gcGFja2FnZSB3aGVyZSBzdHJ1Y3RzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gSWYgb21pdHRlZCwgdGhlIEdvIHBhY2thZ2Ugd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZzoKICAgLSBUaGUgYmFzZW5hbWUgb2YgdGhlIHBhY2thZ2UgaW1wb3J0IHBhdGgsIGlmIHByb3ZpZGVkLgogICAtIE90aGVyd2lzZSwgdGhlIHBhY2thZ2Ugc3RhdGVtZW50IGluIHRoZSAucHJvdG8gZmlsZSwgaWYgcHJlc2VudC4KICAgLSBPdGhlcndpc2UsIHRoZSBiYXNlbmFtZSBvZiB0aGUgLnByb3RvIGZpbGUsIHdpdGhvdXQgZXh0ZW5zaW9uLgoKDQoFBAoCBgQSBO8CAgoKDQoFBAoCBgUSBO8CCxEKDQoFBAoCBgESBO8CEhwKDQoFBAoCBgMSBO8CHyEK1AQKBAQKAgcSBP0CAjkaxQQgU2hvdWxkIGdlbmVyaWMgc2VydmljZXMgYmUgZ2VuZXJhdGVkIGluIGVhY2ggbGFuZ3VhZ2U/ICAiR2VuZXJpYyIgc2VydmljZXMKIGFyZSBub3Qgc3BlY2lmaWMgdG8gYW55IHBhcnRpY3VsYXIgUlBDIHN5c3RlbS4gIFRoZXkgYXJlIGdlbmVyYXRlZCBieSB0aGUKIG1haW4gY29kZSBnZW5lcmF0b3JzIGluIGVhY2ggbGFuZ3VhZ2UgKHdpdGhvdXQgYWRkaXRpb25hbCBwbHVnaW5zKS4KIEdlbmVyaWMgc2VydmljZXMgd2VyZSB0aGUgb25seSBraW5kIG9mIHNlcnZpY2UgZ2VuZXJhdGlvbiBzdXBwb3J0ZWQgYnkKIGVhcmx5IHZlcnNpb25zIG9mIGdvb2dsZS5wcm90b2J1Zi4KCiBHZW5lcmljIHNlcnZpY2VzIGFyZSBub3cgY29uc2lkZXJlZCBkZXByZWNhdGVk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dCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIG1lc3NhZ2UsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwKIHRoaXMgaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBtZXNzYWdlcy4KCg0KBQQLAgIEEgTXAwIKCg0KBQQLAgIFEgTXAwsPCg0KBQQLAgIBEgTXAxAaCg0KBQQLAgIDEgTXAx0eCg0KBQQLAgIIEgTXAx8uCg0KBQQLAgIHEgTXAygtCp4GCgQECwIDEgTuAwIeGo8GIFdoZXRoZXIgdGhlIG1lc3NhZ2UgaXMgYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFwIGVudHJ5IHR5cGUgZm9yIHRoZQogbWFwcyBmaWVsZC4KCiBGb3IgbWFwcyBmaWVsZHM6CiAgICAgbWFwPEtleVR5cGUsIFZhbHVlVHlwZT4gbWFwX2ZpZWxkID0gMTsKIFRoZSBwYXJzZWQgZGVzY3JpcHRvciBsb29rcyBsaWtlOgogICAgIG1lc3NhZ2UgTWFwRmllbGRFbnRyeSB7CiAgICAgICAgIG9wdGlvbiBtYXBfZW50cnkgPSB0cnVlOwogICAgICAgICBvcHRpb25hbCBLZXlUeXBlIGtleSA9IDE7CiAgICAgICAgIG9wdGlvbmFsIFZhbHVlVHlwZSB2YWx1ZSA9IDI7CiAgICAgfQogICAgIHJlcGVhdGVkIE1hcEZpZWxkRW50cnkgbWFwX2ZpZWxkID0gMTsKCiBJbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gZ2VuZXJhdGUgdGhlIG1hcF9lbnRyeT10cnVlIG1lc3NhZ2UsIGJ1dAogdXNlIGEgbmF0aXZlIG1hcCBpbiB0aGUgdGFyZ2V0IGxhbmd1YWdlIHRvIGhvbGQgdGhlIGtleXMgYW5kIHZhbHVlcy4KIFRoZSByZWZsZWN0aW9uIEFQSXMgaW4gc3VjaCBpbXBsZW1lbnRpb25zIHN0aWxsIG5lZWQgdG8gd29yayBhcwogaWYgdGhlIGZpZWxkIGlzIGEgcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZC4KCiBOT1RFOiBEbyBub3Qgc2V0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cyBmaWVsZCBiZSBwYXJzZWQgbGF6aWx5PyAgTGF6eSBhcHBsaWVzIG9ubHkgdG8gbWVzc2FnZS10eXBlCiBmaWVsZHMuICBJdCBtZWFucyB0aGF0IHdoZW4gdGhlIG91dGVyIG1lc3NhZ2UgaXMgaW5pdGlhbGx5IHBhcnNlZCwgdGhlCiBpbm5lciBtZXNzYWdlJ3MgY29udGVudHMgd2lsbCBub3QgYmUgcGFyc2VkIGJ1dCBpbnN0ZWFkIHN0b3JlZCBpbiBlbmNvZGVkCiBmb3JtLiAgVGhlIGlubmVyIG1lc3NhZ2Ugd2lsbCBhY3R1YWxseSBiZSBwYXJzZWQgd2hlbiBpdCBpcyBmaXJzdCBhY2Nlc3NlZC4KCiBUaGlzIGlzIG9ubHkgYSBoaW50LiAgSW1wbGVtZW50YXRpb25zIGFyZSBmcmVlIHRvIGNob29zZSB3aGV0aGVyIHRvIHVzZQogZWFnZXIgb3IgbGF6eSBwYXJzaW5nIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uLiAgSG93ZXZlciwKIHNldHRpbmcgdGhpcyBvcHRpb24gdHJ1ZSBzdWdnZXN0cyB0aGF0IHRoZSBwcm90b2NvbCBhdXRob3IgYmVsaWV2ZXMgdGhhdAogdXNpbmcgbGF6eSBwYXJzaW5nIG9uIHRoaXMgZmllbGQgaXMgd29ydGggdGhlIGFkZGl0aW9uYWwgYm9va2tlZXBpbmcKIG92ZXJoZWFkIHR5cGljYWxseSBuZWVkZWQgdG8gaW1wbGVtZW50IGl0LgoKIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCB0aGUgcHVibGljIGludGVyZmFjZSBvZiBhbnkgZ2VuZXJhdGVkIGNvZGU7CiBhbGwgbWV0aG9kIHNpZ25hdHVyZXMgcmVtYWluIHRoZSBzYW1lLiAgRnVydGhlcm1vcmUsIHRocmVhZC1zYWZldHkgb2YgdGhlCiBpbnRlcmZhY2UgaXMgbm90IGFmZmVjdGVkIGJ5IHRoaXMgb3B0aW9uOyBjb25zdCBtZXRob2RzIHJlbWFpbiBzYWZlIHRvCiBjYWxsIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBjb25jdXJyZW50bHksIHdoaWxlIG5vbi1jb25zdCBtZXRob2RzIGNvbnRpbnVlCiB0byByZXF1aXJlIGV4Y2x1c2l2ZSBhY2Nlc3MuCgoKIE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzIHdpdGhpbgogYSBsYXp5IHN1Yi1tZXNzYWdlLiAgVGhhdCBpcywgY2FsbGluZyBJc0luaXRpYWxpemVkKCkgb24gdGhlIG91dGVyIG1lc3NhZ2UKIG1heSByZXR1cm4gdHJ1ZSBldmVuIGlmIHRoZSBpbm5lciBtZXNzYWdlIGhhcyBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkcy4KIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBpbm5lciBtZXNzYWdlIHdvdWxkIGhhdmUgdG8gYmUKIHBhcnNlZCBpbiBvcmRlciB0byBwZXJmb3JtIHRoZSBjaGVjaywgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIGxhenkKIHBhcnNpbmcuICBBbiBpbXBsZW1lbnRhdGlvbiB3aGljaCBjaG9vc2VzIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMKIG11c3QgYmUgY29uc2lzdGVudCBhYm91dCBpdC4gIFRoYXQgaXMsIGZvciBhbnkgcGFydGljdWxhciBzdWItbWVzc2FnZSwgdGhlCiBpbXBsZW1lbnRhdGlvbiBtdXN0IGVpdGhlciAqYWx3YXlzKiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCBvciAqbmV2ZXIqCiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBtZXNzYWdlIGhhcwogYmVlbiBwYXJzZWQuCgoNCgUEDAIDBBIEwgQCCgoNCgUEDAIDBRIEwgQLDwoNCgUEDAIDARIEwgQQFAoNCgUEDAIDAxIEwgQXGAoNCgUEDAIDCBIEwgQZKAoNCgUEDAIDBxIEwgQiJwroAQoEBAwCBBIEyAQCLxrZASBJcyB0aGlzIGZpZWxkIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4g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CgUEEQIBBBIEqwUCCgoNCgUEEQIBBhIEqwULGwoNCgUEEQIBARIEqwUcLQoNCgUEEQIBAxIErAUGCAoNCgUEEQIBCBIErAUJJgoNCgUEEQIBBxIErAUSJQpPCgQEEQICEgSvBQI6GkEgVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUEEQICBBIErwUCCgoNCgUEEQICBhIErwULHgoNCgUEEQICARIErwUfMwoNCgUEEQICAxIErwU2OQpaCgMEEQUSBLIFAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQRBQASBLIFDRgKDQoFBBEFAAESBLIFDREKDQoFBBEFAAISBLIFFRgKiwMKAgQSEga8BQDQBQEa/AIgQSBtZXNzYWdlIHJlcHJlc2VudGluZyBhIG9wdGlvbiB0aGUgcGFyc2VyIGRvZXMgbm90IHJlY29nbml6ZS4gVGhpcyBvbmx5CiBhcHBlYXJzIGluIG9wdGlvbnMgcHJvdG9zIGNyZWF0ZWQgYnkgdGhlIGNvbXBpbGVyOjpQYXJzZXIgY2xhc3MuCiBEZXNjcmlwdG9yUG9vbCByZXNvbHZlcyB0aGVzZSB3aGVuIGJ1aWxkaW5nIERlc2NyaXB0b3Igb2JqZWN0cy4gVGhlcmVmb3JlLAogb3B0aW9ucyBwcm90b3MgaW4gZGVzY3JpcHRvciBvYmplY3RzIChlLmcuIHJldHVybmVkIGJ5IERlc2NyaXB0b3I6Om9wdGlvbnMoKSwKIG9yIHByb2R1Y2VkIGJ5IERlc2NyaXB0b3I6OkNvcHlUbygpKSB3aWxsIG5ldmVyIGhhdmUgVW5pbnRlcnByZXRlZE9wdGlvbnMKIGluIHRoZW0uCgoLCgMEEgESBLwFCBsKywIKBAQSAwASBsIFAsUFAxq6AiBUaGUgbmFtZSBvZiB0aGUgdW5pbnRlcnByZXRlZCBvcHRpb24uICBFYWNoIHN0cmluZyByZXByZXNlbnRzIGEgc2VnbWVudCBpbgogYSBkb3Qtc2VwYXJhdGVkIG5hbWUuICBpc19l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ICAgICAgICAgICAgICAgcmVwcmVzZW50cwogICBbYSxpKSAgWyA0LCAwLCAyLCAwIF0gICAgIFRoZSB3aG9sZSBmaWVsZCBkZWZpbml0aW9uLgogICBbYSxiKSAgWyA0LCAwLCAyLCAwLCA0IF0gIFRoZSBsYWJlbCAob3B0aW9uYWwpLgogICBbYyxkKSAgWyA0LCAwLCAyLCAwLCA1IF0gIFRoZSB0eXBlIChzdHJpbmcpLgogICBbZSxmKSAgWyA0LCAwLCAyLCAwLCAxIF0gIFRoZSBuYW1lIChmb28pLgogICBbZyxoKSAgWyA0LCAwLCAyLCAwLCAzIF0gIFRoZSBudW1iZXIgKDEpLgoKIE5vdGVzOgogLSBBIGxvY2F0aW9uIG1heSByZWZlciB0byBhIHJlcGVhdGVkIGZpZWxkIGl0c2VsZiAoaS5lLiBub3QgdG8gYW55CiAgIHBhcnRpY3VsYXIgaW5kZXggd2l0aGluIGl0KS4gIFRoaXMgaXMgdXNlZCB3aGVuZXZlciBhIHNldCBvZiBlbGVtZW50cyBhcmUKICAgbG9naWNhbGx5IGVuY2xvc2VkIGluIGEgc2luZ2xlIGNvZGUgc2VnbWVudC4gIEZvciBleGFtcGxlLCBhbiBlbnRpcmUKICAgZXh0ZW5kIGJsb2NrIChwb3NzaWJseSBjb250YWluaW5nIG11bHRpcGxlIGV4dGVuc2lvbiBkZWZpbml0aW9ucykgd2lsbAogICBoYXZlIGFuIG91dGVyIGxvY2F0aW9uIHdob3NlIHBhdGggcmVmZXJzIHRvIHRoZSAiZXh0ZW5zaW9ucyIgcmVwZWF0ZWQKICAgZmllbGQgd2l0aG91dCBhbiBpbmRleC4KIC0gTXVsdGlwbGUgbG9jYXRpb25zIG1heSBoYXZlIHRoZSBzYW1lIHBhdGguICBUaGlzIGhhcHBlbnMgd2hlbiBhIHNpbmdsZQogICBsb2dpY2FsIGRlY2xhcmF0aW9uIGlzIHNwcmVhZCBvdXQgYWNyb3NzIG11bHRpcGxlIHBsYWNlcy4gIFRoZSBtb3N0CiAgIG9idmlvdXMgZXhhbXBsZSBpcyB0aGUgImV4dGVuZCIgYmxvY2sgYWdhaW4gLS0gdGhlcmUgbWF5IGJlIG11bHRpcGxlCiAgIGV4dGVuZCBibG9ja3MgaW4gdGhlIHNhbWUgc2NvcGUsIGVhY2ggb2Ygd2hpY2ggd2lsbCBoYXZlIHRoZSBzYW1lIHBhdGguCiAtIEEgbG9jYXRpb24ncyBzcGFuIGlzIG5vdCBhbHdheXMgYSBzdWJzZXQgb2YgaXRzIHBhcmVudCdzIHNwYW4uICBGb3IKICAgZXhhbXBsZSwgdGhlICJleHRlbmRlZSIgb2YgYW4gZXh0ZW5zaW9uIGRlY2xhcmF0aW9uIGFwcGVhcnMgYXQgdGhlCiAgIGJlZ2lubmluZyBvZiB0aGUgImV4dGVuZCIgYmxvY2sgYW5kIGlzIHNoYXJlZCBieSBhbGwgZXh0ZW5zaW9ucyB3aXRoaW4KICAgdGhlIGJsb2NrLgogLSBKdXN0IGJlY2F1c2UgYSBsb2NhdGlvbidzIHNwYW4gaXMgYSBzdWJzZXQgb2Ygc29tZSBvdGhlciBsb2NhdGlvbidzIHNwYW4KICAgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGEgZGVzY2VuZGVudC4gIEZvciBleGFtcGxlLCBhICJncm91cCIgZGVmaW5lcwogICBib3RoIGEgdHlwZSBhbmQgYSBmaWVsZCBpbiBhIHNpbmdsZSBkZWNsYXJhdGlvbi4gIFRodXMsIHRoZSBsb2NhdGlvbnMKICAgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZSBhbmQgZmllbGQgYW5kIHRoZWlyIGNvbXBvbmVudHMgd2lsbCBvdmVybGFwLgogLSBDb2RlIHdoaWNoIHRyaWVzIHRvIGludGVycHJldCBsb2NhdGlvbnMgc2hvdWxkIHByb2JhYmx5IGJlIGRlc2lnbmVkIHRvCiAgIGlnbm9yZSB0aG9zZSB0aGF0IGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCwgYXMgbW9yZSB0eXBlcyBvZiBsb2NhdGlvbnMgY291bGQKICAgYmUgcmVjb3JkZWQgaW4gdGhlIGZ1dHVyZS4KCg0KBQQTAgAEEgSDBgIKCg0KBQQTAgAGEgSDBgsTCg0KBQQTAgABEgSDBhQcCg0KBQQTAgADEgSDBh8gCg4KBAQTAwASBoQGAtcGAwoNCgUEEwMAARIEhAYKEgqDBwoGBBMDAAIAEgScBgQqGvIGIElkZW50aWZpZXMgd2hpY2ggcGFydCBvZiB0aGUgRmlsZURlc2NyaXB0b3JQcm90byB3YXMgZGVmaW5lZCBhdCB0aGlzCiBsb2NhdGlvbi4KCiBFYWNoIGVsZW1lbnQgaXMgYSBmaWVsZCBudW1iZXIgb3IgYW4gaW5kZXguICBUaGV5IGZvcm0gYSBwYXRoIGZyb20KIHRoZSByb290IEZpbGVEZXNjcmlwdG9yUHJvdG8gdG8gdGhlIHBsYWNlIHdoZXJlIHRoZSBkZWZpbml0aW9uLiAgRm9yCiBleGFtcGxlLCB0aGlzIHBhdGg6CiAgIFsgNCwgMywgMiwgNywgMSBdCiByZWZlcnMgdG86CiAgIGZpbGUubWVzc2FnZV90eXBlKDMpICAvLyA0LCAzCiAgICAgICAuZmllbGQoNykgICAgICAgICAvLyAyLCA3CiAgICAgICAubmFtZSgpICAgICAgICAgICAvLyAxCiBUaGlzIGlzIGJlY2F1c2UgRmlsZURlc2NyaXB0b3JQcm90by5tZXNzYWdlX3R5cGUgaGFzIGZpZWxkIG51bWJlciA0OgogICByZXBlYXRlZCBEZXNjcmlwdG9yUHJvdG8gbWVzc2FnZV90eXBlID0gNDsKIGFuZCBEZXNjcmlwdG9yUHJvdG8uZmllbGQgaGFzIGZpZWxkIG51bWJlciAyOgogICByZXBlYXRlZCBGaWVsZERlc2NyaXB0b3JQcm90byBmaWVsZCA9IDI7CiBhbmQgRmllbGREZXNjcmlwdG9yUHJvdG8ubmFtZSBoYXMgZmllbGQgbnVtYmVyIDE6CiAgIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMTsKCiBUaHVzLCB0aGUgYWJvdmUgcGF0aCBnaXZlcyB0aGUgbG9jYXRpb24gb2YgYSBmaWVsZCBuYW1lLiAgSWYgd2UgcmVtb3ZlZAogdGhlIGxhc3QgZWxlbWVudDoKICAgWyA0LCAzLCAyLCA3IF0KIHRoaXMgcGF0aCByZWZlcnMgdG8gdGhlIHdob2xlIGZpZWxkIGRlY2xhcmF0aW9uIChmcm9tIHRoZSBiZWdpbm5pbmcKIG9mIHRoZSBsYWJlbCB0byB0aGUgdGVybWluYXRpbmcgc2VtaWNvbG9uKS4KCg8KBwQTAwACAAQSBJwGBAwKDwoHBBMDAAIABRIEnAYNEgoPCgcEEwMAAgABEgScBhMXCg8KBwQTAwACAAMSBJwGGhsKDwoHBBMDAAIACBIEnAYcKQoQCggEEwMAAgAIAhIEnAYdKArSAgoGBBMDAAIBEgSjBgQqGsECIEFsd2F5cyBoYXMgZXhhY3RseSB0aHJlZSBvciBmb3VyIGVsZW1lbnRzOiBzdGFydCBsaW5lLCBzdGFydCBjb2x1bW4sCiBlbmQgbGluZSAob3B0aW9uYWwsIG90aGVyd2lzZSBhc3N1bWVkIHNhbWUgYXMgc3RhcnQgbGluZSksIGVuZCBjb2x1bW4uCiBUaGVzZSBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgZmllbGQgZm9yIGVmZmljaWVuY3kuICBOb3RlIHRoYXQgbGluZQogYW5kIGNvbHVtbiBudW1iZXJzIGFyZSB6ZXJvLWJhc2VkIC0tIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50IHRvIGFkZAogMSB0byBlYWNoIGJlZm9yZSBkaXNwbGF5aW5nIHRvIGEgdXNlci4KCg8KBwQTAwACAQQSBKMGBAwKDwoHBBMDAAIBBRIEowYNEgoPCgcEEwMAAgEBEgSjBhMXCg8KBwQTAwACAQMSBKMGGhsKDwoHBBMDAAIBCBIEowYcKQoQCggEEwMAAgEIAhIEowYdKAqlDAoGBBMDAAICEgTUBgQpGpQMIElmIHRoaXMgU291cmNlQ29kZUluZm8gcmVwcmVzZW50cyBhIGNvbXBsZXRlIGRlY2xhcmF0aW9uLCB0aGVzZSBhcmUgYW55CiBjb21tZW50cyBhcHBlYXJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVjbGFyYXRpb24gd2hpY2ggYXBwZWFyIHRvIGJlCiBhdHRhY2hlZCB0byB0aGUgZGVjbGFyYXRpb24uCgogQSBzZXJpZXMgb2YgbGluZSBjb21tZW50cyBhcHBlYXJpbmcgb24gY29uc2VjdXRpdmUgbGluZXMsIHdpdGggbm8gb3RoZXIKIHRva2VucyBhcHBlYXJpbmcgb24gdGhvc2UgbGluZXMsIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBjb21tZW50LgoKIGxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMgd2lsbCBrZWVwIHBhcmFncmFwaHMgb2YgY29tbWVudHMgdGhhdCBhcHBlYXIKIGJlZm9yZSAoYnV0IG5vdCBjb25uZWN0ZWQgdG8pIHRoZSBjdXJyZW50IGVsZW1lbnQuIEVhY2ggcGFyYWdyYXBoLAogc2VwYXJhdGVkIGJ5IGVtcHR5IGxpbmVzLCB3aWxsIGJlIG9uZSBjb21tZW50IGVsZW1lbnQgaW4gdGhlIHJlcGVhdGVkCiBmaWVsZC4KCiBPbmx5IHRoZSBjb21tZW50IGNvbnRlbnQgaXMgcHJvdmlkZWQ7IGNvbW1lbnQgbWFya2VycyAoZS5nLiAvLykgYXJlCiBzdHJpcHBlZCBvdXQuICBGb3IgYmxvY2sgY29tbWVudHMsIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgYW4gYXN0ZXJpc2sKIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggbGluZSBvdGhlciB0aGFuIHRoZSBmaXJzdC4KIE5ld2xpbmVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LgoKIEV4YW1wbGVzOgoKICAgb3B0aW9uYWwgaW50MzIgZm9vID0gMTsgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gZm9vLgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhci4KICAgb3B0aW9uYWwgaW50MzIgYmFyID0gMjsKCiAgIG9wdGlvbmFsIHN0cmluZyBiYXogPSAzOwogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhei4KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIGJhei4KCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gcXV4LgogICAvLwogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gcXV4LgogICBvcHRpb25hbCBkb3VibGUgcXV4ID0gNDsKCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlLiBUaGlzIGlzIG5vdCBsZWFkaW5nIG9yIHRyYWlsaW5nIGNvbW1lbnRzCiAgIC8vIHRvIHF1eCBvciBjb3JnZSBiZWNhdXNlIHRoZXJlIGFyZSBibGFuayBsaW5lcyBzZXBhcmF0aW5nIGl0IGZyb20KICAgLy8g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DwoHBBQDAAIDBBIE8AYEDAoPCgcEFAMAAgMFEgTwBg0SCg8KBwQUAwACAwESBPAGExYKDwoHBBQDAAIDAxIE8AYZGgqFEgoYdm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvEgZ2b2x0aGEaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvIh0KCUNoaWxkTm9kZRIQCgNrZXkYASABKAlSA2tleSoyCgZBY2Nlc3MSCgoGQ09ORklHEAASDQoJUkVBRF9PTkxZEAESDQoJUkVBTF9USU1FEAI6UgoKY2hpbGRfbm9kZRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY7N7ZAyABKAsyES52b2x0aGEuQ2hpbGROb2RlUgljaGlsZE5vZGU6SAoGYWNjZXNzEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjt3tkDIAEoDjIOLnZvbHRoYS5BY2Nlc3NSBmFjY2Vzc0JMChpvcmcub3BlbmNvcmQudm9sdGhhLmNvbW1vblouZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y0L2dvL2NvbW1vbkr3DgoGEgQRADkBCqMFCgEMEgMRABIytwQgQ29weXJpZ2h0IChjKSAyMDE1LCBHb29nbGUgSW5jLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoyXyBUaGlzIGZpbGUgY29udGFpbnMgYW5ub3RhdGlvbiBkZWZpbml0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlCiBhIGNvbmZpZ3VyYXRpb24gdHJlZS4KCggKAQgSAxMARQoJCgIICxIDEwBFCggKAQgSAxQAMwoJCgIIARIDFAAzCggKAQISAxYADwoJCgIDABIDGAAqCgoKAgQAEgQaABwBCgoKAwQAARIDGggRCgsKBAQAAgASAxsEEwoNCgUEAAIABBIEGwQaEwoMCgUEAAIABRIDGwQKCgwKBQQAAgABEgMbCw4KDAoFBAACAAMSAxsREgoKCgIFABIEHgAqAQoKCgMFAAESAx4FCworCgQFAAIAEgMhBA8aHiByZWFkLXdyaXRlLCBzdG9yZWQgYXR0cmlidXRlCgoMCgUFAAIAARIDIQQKCgwKBQUAAgACEgMhDQ4KSgoEBQACARIDJAQSGj0gcmVhZC1vbmx5IGZpZWxkLCBzdG9yZWQgd2l0aCB0aGUgbW9kZWwsIGNvdmVyZWQgYnkgaXRzIGhhc2gKCgwKBQUAAgEBEgMkBA0KDAoFBQACAQISAyQQEQqRAQoEBQACAhIDKAQSGoMBIEEgcmVhZC1vbmx5IGF0dHJpYnV0ZSB0aGF0IGlzIG5vdCBzdG9yZWQgaW4gdGhlIG1vZGVsLCBub3QgY292ZXJlZAogYnkgaXRzIGhhc2gsIGl0cyB2YWx1ZSBpcyBmaWxsZWQgcmVhbC10aW1lIHVwb24gZWFjaCByZXF1ZXN0LgoKDAoFBQACAgESAygEDQoMCgUFAAICAhIDKBARCgkKAQcSBCwAOQEKjAIKAgcAEgMyBCMagAIgSWYgcHJlc2VudCwgaXQgaW5kaWNhdGVzIHRoYXQgdGhpcyBmaWVsZCBpcyBzdG9yZWQgYXMgZXh0ZXJuYWwgY2hpbGQgbm9kZQogb3IgY2hpbGRyZW4gbm9kZXMgaW4gVm9sdGhhJ3MgaW50ZXJuYWwgY29uZmlndXJhdGlvbiB0cmVlLgogSWYgdGhlIGZpZWxkIGlzIGEgY29udGFpbmVyIGZpZWxkIGFuZCBpZiB0aGUgb3B0aW9uIHNwZWNpZmllcyBhIGtleQogdGhlIGNoaWxkIG9iamVjdHMgd2lsbCBiZSBhZGRyZXNzaWJsZSBieSB0aGF0IGtleS4KCgoKAwcAAhIDLAcjCgsKAwcABBIEMgQsJQoKCgMHAAYSAzIEDQoKCgMHAAESAzIOGAoKCgMHAAMSAzIbIgqcAgoCBwESAzgEHBqQAiBUaGlzIGFubm90YXRpb24gY2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBhIGZpZWxkIGlzIHJlYWQtb25seSwKIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIE5CSSBhY2Nlc3MuIEJhY2tlbmQgcGx1Z2lucyBhbmQgc3lzdGVtCiBpbnRlcm5hbHMgY2FuIHVwZGF0ZSB0aGUgZmllbGQgYnV0IHRoZSB1cGRhdGUgcmVxdWVzdHMgdGhyb3VnaCB0aGUKIE5CSSB3aWxsIGlnbm9yZSBmb3IgaW5zdGFuY2UgYSBmaWVsZCB0aGF0IGlzIG1hcmtlZCBhcyByZWFkLW9ubHkgKFJPKS4KCgoKAwcBAhIDLAcjCgsKAwcBBBIEOAQyIwoKCgMHAQYSAzgECgoKCgMHAQESAzgLEQoKCgMHAQMSAzgUG2IGcHJvdG8zCvIvCh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiOwoJVGltZXN0YW1wEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQn4KE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaK2dpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3B0eXBlcy90aW1lc3RhbXD4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK+C0KBxIFHgCIAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAB8KCQoCCB8SAyMAHwoICgEIEgMkAEIKCQoCCAsSAyQAQgoICgEIEgMlACwKCQoCCAESAyUALAoICgEIEgMmAC8KCQoCCAgSAyYALwoICgEIEgMnACIKCQoCCAoSAycAIgoICgEIEgMoACEKCQoCCCQSAygAIQrxGwoCBAASBXwAiAEBGuMbIEEgVGltZXN0YW1wIHJlcHJlc2VudHMgYSBwb2ludCBpbiB0aW1lIGluZGVwZW5kZW50IG9mIGFueSB0aW1lIHpvbmUgb3IgbG9jYWwKIGNhbGVuZGFyLCBlbmNvZGVkIGFzIGEgY291bnQgb2Ygc2Vjb25kcyBhbmQgZnJhY3Rpb25zIG9mIHNlY29uZHMgYXQKIG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gVGhlIGNvdW50IGlzIHJlbGF0aXZlIHRvIGFuIGVwb2NoIGF0IFVUQyBtaWRuaWdodCBvbgogSmFudWFyeSAxLCAxOTcwLCBpbiB0aGUgcHJvbGVwdGljIEdyZWdvcmlhbiBjYWxlbmRhciB3aGljaCBleHRlbmRzIHRoZQogR3JlZ29yaWFuIGNhbGVuZGFyIGJhY2t3YXJkcyB0byB5ZWFyIG9uZS4KCiBBbGwgbWludXRlcyBhcmUgNjAgc2Vjb25kcyBsb25nLiBMZWFwIHNlY29uZHMgYXJlICJzbWVhcmVkIiBzbyB0aGF0IG5vIGxlYXAKIHNlY29uZCB0YWJsZSBpcyBuZWVkZWQgZm9yIGludGVycHJldGF0aW9uLCB1c2luZyBhIFsyNC1ob3VyIGxpbmVhcgogc21lYXJdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3RpbWUvc21lYXIpLgoKIFRoZSByYW5nZSBpcyBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvIDk5OTktMTItMzFUMjM6NTk6NTkuOTk5OTk5OTk5Wi4gQnkKIHJlc3RyaWN0aW5nIHRvIHRoYXQgcmFuZ2UsIHdlIGVuc3VyZSB0aGF0IHdlIGNhbiBjb252ZXJ0IHRvIGFuZCBmcm9tIFtSRkMKIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZGF0ZSBzdHJpbmdzLgoKICMgRXhhbXBsZXMKCiBFeGFtcGxlIDE6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYHRpbWUoKWAuCgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHRpbWUoTlVMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoMCk7CgogRXhhbXBsZSAyOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGBnZXR0aW1lb2ZkYXkoKWAuCgogICAgIHN0cnVjdCB0aW1ldmFsIHR2OwogICAgIGdldHRpbWVvZmRheSgmdHYsIE5VTEwpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0di50dl9zZWMpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3ModHYudHZfdXNlYyAqIDEwMDApOwoKIEV4YW1wbGUgMzogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBXaW4zMiBgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoKWAuCgogICAgIEZJTEVUSU1FIGZ0OwogICAgIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCZmdCk7CiAgICAgVUlOVDY0IHRpY2tzID0gKCgoVUlOVDY0KWZ0LmR3SGlnaERhdGVUaW1lKSA8PCAzMikgfCBmdC5kd0xvd0RhdGVUaW1lOwoKICAgICAvLyBBIFdpbmRvd3MgdGljayBpcyAxMDAgbmFub3NlY29uZHMuIFdpbmRvd3MgZXBvY2ggMTYwMS0wMS0wMVQwMDowMDowMFoKICAgICAvLyBpcyAxMTY0NDQ3MzYwMCBzZWNvbmRzIGJlZm9yZSBVbml4IGVwb2NoIDE5NzAtMDEtMDFUMDA6MDA6MDBaLgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKChJTlQ2NCkgKCh0aWNrcyAvIDEwMDAwMDAwKSAtIDExNjQ0NDczNjAwTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKChJTlQzMikgKCh0aWNrcyAlIDEwMDAwMDAwKSAqIDEwMCkpOwoKIEV4YW1wbGUgNDogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBKYXZhIGBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKWAuCgogICAgIGxvbmcgbWlsbGlzID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXAgPSBUaW1lc3RhbXAubmV3QnVpbGRlcigpLnNldFNlY29uZHMobWlsbGlzIC8gMTAwMCkKICAgICAgICAgLnNldE5hbm9zKChpbnQpICgobWlsbGlzICUgMTAwMCkgKiAxMDAwMDAwKSkuYnVpbGQoKTsKCgogRXhhbXBsZSA1OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIGN1cnJlbnQgdGltZSBpbiBQeXRob24uCgogICAgIHRpbWVzdGFtcCA9IFRpbWVzdGFtcCgpCiAgICAgdGltZXN0YW1wLkdldEN1cnJlbnRUaW1lKCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgVGltZXN0YW1wIHR5cGUgaXMgZW5jb2RlZCBhcyBhIHN0cmluZyBpbiB0aGUKIFtSRkMgMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBmb3JtYXQuIFRoYXQgaXMsIHRoZQogZm9ybWF0IGlzICJ7eWVhcn0te21vbnRofS17ZGF5fVR7aG91cn06e21pbn06e3NlY31bLntmcmFjX3NlY31dWiIKIHdoZXJlIHt5ZWFyfSBpcyBhbHdheXMgZXhwcmVzc2VkIHVzaW5nIGZvdXIgZGlnaXRzIHdoaWxlIHttb250aH0sIHtkYXl9LAoge2hvdXJ9LCB7bWlufSwgYW5kIHtzZWN9IGFyZSB6ZXJvLXBhZGRlZCB0byB0d28gZGlnaXRzIGVhY2guIFRoZSBmcmFjdGlvbmFsCiBzZWNvbmRzLCB3aGljaCBjYW4gZ28gdXAgdG8gOSBkaWdpdHMgKGkuZS4gdXAgdG8gMSBuYW5vc2Vjb25kIHJlc29sdXRpb24pLAogYXJlIG9wdGlvbmFsLiBUaGUgIloiIHN1ZmZpeCBpbmRpY2F0ZXMgdGhlIHRpbWV6b25lICgiVVRDIik7IHRoZSB0aW1lem9uZQogaXMgcmVxdWlyZWQuIEEgcHJvdG8zIEpTT04gc2VyaWFsaXplciBzaG91bGQgYWx3YXlzIHVzZSBVVEMgKGFzIGluZGljYXRlZCBieQogIloiKSB3aGVuIHByaW50aW5nIHRoZSBUaW1lc3RhbXAgdHlwZSBhbmQgYSBwcm90bzMgSlNPTiBwYXJzZXIgc2hvdWxkIGJlCiBhYmxlIHRvIGFjY2VwdCBib3RoIFVUQyBhbmQgb3RoZXIgdGltZXpvbmVzIChhcyBpbmRpY2F0ZWQgYnkgYW4gb2Zmc2V0KS4KCiBGb3IgZXhhbXBsZSwgIjIwMTctMDEtMTVUMDE6MzA6MTUuMDFaIiBlbmNvZGVzIDE1LjAxIHNlY29uZHMgcGFzdAogMDE6MzAgVVRDIG9uIEphbnVhcnkgMTUsIDIwMTcuCgogSW4gSmF2YVNjcmlwdCwgb25lIGNhbiBjb252ZXJ0IGEgRGF0ZSBvYmplY3QgdG8gdGhpcyBmb3JtYXQgdXNpbmcgdGhlCiBzdGFuZGFyZCBbdG9JU09TdHJpbmcoKV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS90b0lTT1N0cmluZykKIG1ldGhvZC4gSW4gUHl0aG9uLCBhIHN0YW5kYXJkIGBkYXRldGltZS5kYXRldGltZWAgb2JqZWN0IGNhbiBiZSBjb252ZXJ0ZWQKIHRvIHRoaXMgZm9ybWF0IHVzaW5nIFtgc3RyZnRpbWVgXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvdGltZS5odG1sI3RpbWUuc3RyZnRpbWUpCiB3aXRoIHRoZSB0aW1lIGZvcm1hdCBzcGVjICclWS0lbS0lZFQlSDolTTolUy4lZlonLiBMaWtld2lzZSwgaW4gSmF2YSwgb25lCiBjYW4gdXNlIHRoZSBKb2RhIFRpbWUncyBbYElTT0RhdGVUaW1lRm9ybWF0LmRhdGVUaW1lKClgXSgKIGh0dHA6Ly93d3cuam9kYS5vcmcvam9kYS10aW1lL2FwaWRvY3Mvb3JnL2pvZGEvdGltZS9mb3JtYXQvSVNPRGF0ZVRpbWVGb3JtYXQuaHRtbCNkYXRlVGltZSUyRCUyRAogKSB0byBvYnRhaW4gYSBmb3JtYXR0ZXIgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgaW4gdGhpcyBmb3JtYXQuCgoKCgoKAwQAARIDfAgRCp0BCgQEAAIAEgSBAQIUGo4BIFJlcHJlc2VudHMgc2Vjb25kcyBvZiBVVEMgdGltZSBzaW5jZSBVbml4IGVwb2NoCiAxOTcwLTAxLTAxVDAwOjAwOjAwWi4gTXVzdCBiZSBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvCiA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmUuCgoOCgUEAAIABBIFgQECfBMKDQoFBAACAAUSBIEBAgcKDQoFBAACAAESBIEBCA8KDQoFBAACAAMSBIEBEhMK5QEKBAQAAgESBIcBAhIa1gEgTm9uLW5lZ2F0aXZlIGZyYWN0aW9ucyBvZiBhIHNlY29uZCBhdCBuYW5vc2Vjb25kIHJlc29sdXRpb24uIE5lZ2F0aXZlCiBzZWNvbmQgdmFsdWVzIHdpdGggZnJhY3Rpb25zIG11c3Qgc3RpbGwgaGF2ZSBub24tbmVnYXRpdmUgbmFub3MgdmFsdWVzCiB0aGF0IGNvdW50IGZvcndhcmQgaW4gdGltZS4gTXVzdCBiZSBmcm9tIDAgdG8gOTk5LDk5OSw5OTkKIGluY2x1c2l2ZS4KCg8KBQQAAgEEEgaHAQKBARQKDQoFBAACAQUSBIcBAgcKDQoFBAACAQESBIcBCA0KDQoFBAACAQMSBIcBEBFiBnByb3RvMwrCEwobdm9sdGhhX3Byb3Rvcy9hZGFwdGVyLnByb3RvEgZ2b2x0aGEaGWdvb2dsZS9wcm90b2J1Zi9hbnkucHJvdG8aGHZvbHRoYV9wcm90b3MvbWV0YS5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90byJSCg1BZGFwdGVyQ29uZmlnEkEKEWFkZGl0aW9uYWxfY29uZmlnGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIQYWRkaXRpb25hbENvbmZpZyLaAwoHQWRhcHRlchIVCgJpZBgBIAEoCUIF6PbNHQFSAmlkEh0KBnZlbmRvchgCIAEoCUIF6PbNHQFSBnZlbmRvchIfCgd2ZXJzaW9uGAMgASgJQgXo9s0dAVIHdmVyc2lvbhItCgZjb25maWcYECABKAsyFS52b2x0aGEuQWRhcHRlckNvbmZpZ1IGY29uZmlnElIKFmFkZGl0aW9uYWxfZGVzY3JpcHRpb24YQCABKAsyFC5nb29nbGUucHJvdG9idWYuQW55QgXo9s0dAVIVYWRkaXRpb25hbERlc2NyaXB0aW9uEiwKEmxvZ2ljYWxfZGV2aWNlX2lkcxgEIAMoCVIQbG9naWNhbERldmljZUlkcxJJ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ZSB0eXBlCiBpdCBpcyB1c2VkIHRvIGFzc29jaWF0ZSBhIGRldmljZSB0byBhbiBhZGFwdGVyCgoNCgUEAQIKBBIELQQqGAoMCgUEAQIKBRIDLQQKCgwKBQQBAgoBEgMtCw8KDAoFBAECCgMSAy0SEwoKCgIEAhIEMQAzAQoKCgMEAgESAzEIEAoLCgQEAgIAEgMyBB8KDAoFBAICAAQSAzIEDAoMCgUEAgIABhIDMg0UCgwKBQQCAgABEgMyFRoKDAoFBAICAAMSAzIdHmIGcHJvdG8zCpojChp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxIGY29tbW9uIhQKAklEEg4KAmlkGAEgASgJUgJpZCInCgNJRHMSIAoFaXRlbXMYASADKAsyCi5jb21tb24uSURSBWl0ZW1zImgKCkFkbWluU3RhdGUiWgoFVHlwZXMSCwoHVU5LTk9XThAAEhIKDlBSRVBST1ZJU0lPTkVEEAESCwoHRU5BQkxFRBACEgwKCERJU0FCTEVEEAMSFQoRRE9XTkxPQURJTkdfSU1BR0UQBCKRAQoKT3BlclN0YXR1cyKCAQoFVHlwZXMSCwoHVU5LTk9XThAAEg4KCkRJU0NPVkVSRUQQARIOCgpBQ1RJVkFUSU5HEAISCwoHVEVTVElORxADEgoKBkFDVElWRRAEEgoKBkZBSUxFRBAFEg8KC1JFQ09OQ0lMSU5HEAYSFgoSUkVDT05DSUxJTkdfRkFJTEVEEAciRQoNQ29ubmVjdFN0YXR1cyI0CgVUeXBlcxILCgdVTktOT1dOEAASDwoLVU5SRUFDSEFCTEUQARINCglSRUFDSEFCTEUQAiLyAQoNT3BlcmF0aW9uUmVzcBI9CgRjb2RlGAEgASgOMikuY29tbW9uLk9wZXJhdGlvblJlc3AuT3BlcmF0aW9uUmV0dXJuQ29kZVIEY29kZRInCg9hZGRpdGlvbmFsX2luZm8YAiABKAlSDmFkZGl0aW9uYWxJbmZvInkKE09wZXJhdGlvblJldHVybkNvZGUSFQoRT1BFUkFUSU9OX1NVQ0NFU1MQABIVChFPUEVSQVRJT05fRkFJTFVSRRABEhkKFU9QRVJBVElPTl9VTlNVUFBPUlRFRBACEhkKFU9QRVJBVElPTl9JTl9QUk9HUkVTUxADIiwKCVZhbHVlVHlwZSIf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KAlSCHNlbGVjdG9yEhIKA2dldBgCIAEoCUgAUgNnZXQSEgoDcHV0GAMgASgJSABSA3B1dBIUCgRwb3N0GAQgASgJSABSBHBvc3QSGAoGZGVsZXRlGAUgASgJSABSBmRlbGV0ZRIWCgVwYXRjaBgGIAEoCUgAUgVwYXRjaBI3CgZjdXN0b20YCCABKAsyHS5nb29nbGUuYXBpLkN1c3RvbUh0dHBQYXR0ZXJuSABSBmN1c3RvbRISCgRib2R5GAcgASgJUgRib2R5EiMKDXJlc3BvbnNlX2JvZHkYDCABKAlSDHJlc3BvbnNlQm9keRJFChNhZGRpdGlvbmFsX2JpbmRpbmdzGAsgAygLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZVISYWRkaXRpb25hbEJpbmRpbmdzQgkKB3BhdHRlcm4iOwoRQ3VzdG9tSHR0cFBhdHRlcm4SEgoEa2luZBgBIAEoCVIEa2luZBISCgRwYXRoGAIgASgJUgRwYXRoQmoKDmNvbS5nb29nbGUuYXBpQglIdHRwUHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnP4AQGiAgRHQVBJSpd0CgcSBQ8A+wIBCr4ECgEMEgMPABIyswQgQ29weXJpZ2h0IDIwMTggR29vZ2xlIExMQy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCgoICgECEgMRABMKCAoBCBIDEwAfCgkKAggfEgMTAB8KCAoBCBIDFABYCgkKAggLEgMUAFgKCAoBCBIDFQAiCgkKAggKEgMVACIKCAoBCBIDFgAqCgkKAggIEgMWACoKCAoBCBIDFwAnCgkKAggBEgMXACcKCAoBCBIDGAAiCgkKAggkEgMYACIKzQEKAgQAEgQdACoBGsABIERlZmluZXMgdGhlIEhUVFAgY29uZmlndXJhdGlvbiBmb3IgYW4gQVBJIHNlcnZpY2UuIEl0IGNvbnRhaW5zIGEgbGlzdCBvZgogW0h0dHBSdWxlXVtnb29nbGUuYXBpLkh0dHBSdWxlXSwgZWFjaCBzcGVjaWZ5aW5nIHRoZSBtYXBwaW5nIG9mIGFuIFJQQyBtZXRob2QKIHRvIG9uZSBvciBtb3JlIEhUVFAgUkVTVCBBUEkgbWV0aG9kcy4KCgoKAwQAARIDHQgMCqIBCgQEAAIAEgMhAh4alAEgQSBsaXN0IG9mIEhUVFAgY29uZmlndXJhdGlvbiBydWxlcyB0aGF0IGFwcGx5IHRvIGluZGl2aWR1YWwgQVBJIG1ldGhvZHMuCgogKipOT1RFOioqIEFsbCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24gcnVsZXMgZm9sbG93ICJsYXN0IG9uZSB3aW5zIiBvcmRlci4KCgwKBQQAAgAEEgMhAgoKDAoFBAACAAYSAyELEwoMCgUEAAIAARIDIRQZCgwKBQQAAgADEgMhHB0KkwIKBAQAAgESAykCKxqFAiBXaGVuIHNldCB0byB0cnVlLCBVUkwgcGF0aCBwYXJtZXRlcnMgd2lsbCBiZSBmdWxseSBVUkktZGVjb2RlZCBleGNlcHQgaW4KIGNhc2VzIG9mIHNpbmdsZSBzZWdtZW50IG1hdGNoZXMgaW4gcmVzZXJ2ZWQgZXhwYW5zaW9uLCB3aGVyZSAiJTJGIiB3aWxsIGJlCiBsZWZ0IGVuY29kZWQuCgogVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gbm90IGRlY29kZSBSRkMgNjU3MCByZXNlcnZlZCBjaGFyYWN0ZXJzIGluIG11bHRpCiBzZWdtZW50IG1hdGNoZXMuCgoNCgUEAAIBBBIEKQIhHgoMCgUEAAIBBRIDKQIGCgwKBQQAAgEBEgMpByYKDAoFBAACAQMSAykpKgq7UwoCBAESBrwCAPICARqsUyAjIGdSUEMgVHJhbnNjb2RpbmcKCiBnUlBDIFRyYW5zY29kaW5nIGlzIGEgZmVhdHVyZSBmb3IgbWFwcGluZyBiZXR3ZWVuIGEgZ1JQQyBtZXRob2QgYW5kIG9uZSBvcgogbW9yZSBIVFRQIFJFU1QgZW5kcG9pbnRzLiBJdCBhbGxvd3MgZGV2ZWxvcGVycyB0byBidWlsZCBhIHNpbmdsZSBBUEkgc2VydmljZQogdGhhdCBzdXBwb3J0cyBib3RoIGdSUEMgQVBJcyBhbmQgUkVTVCBBUElzLiBNYW55IHN5c3RlbXMsIGluY2x1ZGluZyBbR29vZ2xlCiBBUElzXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlYXBpcy9nb29nbGVhcGlzKSwKIFtDbG91ZCBFbmRwb2ludHNdKGh0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9lbmRwb2ludHMpLCBbZ1JQQwogR2F0ZXdheV0oaHR0cHM6Ly9naXRodWIuY29tL2dycGMtZWNvc3lzdGVtL2dycGMtZ2F0ZXdheSksCiBhbmQgW0Vudm95XShodHRwczovL2dpdGh1Yi5jb20vZW52b3lwcm94eS9lbnZveSkgcHJveHkgc3VwcG9ydCB0aGlzIGZlYXR1cmUKIGFuZCB1c2UgaXQgZm9yIGxhcmdlIHNjYWxlIHByb2R1Y3Rpb24gc2VydmljZXMuCgogYEh0dHBSdWxlYCBkZWZpbmVzIHRoZSBzY2hlbWEgb2YgdGhlIGdSUEMvUkVTVCBtYXBwaW5nLiBUaGUgbWFwcGluZyBzcGVjaWZpZXMKIGhvdyBkaWZmZXJlbnQgcG9ydGlvbnMgb2YgdGhlIGdSUEMgcmVxdWVzdCBtZXNzYWdlIGFyZSBtYXBwZWQgdG8gdGhlIFVSTAogcGF0aCwgVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGFuZCBIVFRQIHJlcXVlc3QgYm9keS4gSXQgYWxzbyBjb250cm9scyBob3cgdGhlCiBnUlBDIHJlc3BvbnNlIG1lc3NhZ2UgaXMgbWFwcGVkIHRvIHRoZSBIVFRQIHJlc3BvbnNlIGJvZHkuIGBIdHRwUnVsZWAgaXMKIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYW4gYGdvb2dsZS5hcGkuaHR0cGAgYW5ub3RhdGlvbiBvbiB0aGUgZ1JQQyBtZXRob2QuCgogRWFjaCBtYXBwaW5nIHNwZWNpZmllcyBhIFVSTCBwYXRoIHRlbXBsYXRlIGFuZCBhbiBIVFRQIG1ldGhvZC4gVGhlIHBhdGgKIHRlbXBsYXRlIG1heSByZWZlciB0byBvbmUgb3IgbW9yZSBmaWVsZHMgaW4gdGhlIGdSUEMgcmVxdWVzdCBtZXNzYWdlLCBhcyBsb25nCiBhcyBlYWNoIGZpZWxkIGlzIGEgbm9uLXJlcGVhdGVkIGZpZWxkIHdpdGggYSBwcmltaXRpdmUgKG5vbi1tZXNzYWdlKSB0eXBlLgogVGhlIHBhdGggdGVtcGxhdGUgY29udHJvbHMgaG93IGZpZWxkcyBvZiB0aGUgcmVxdWVzdCBtZXNzYWdlIGFyZSBtYXBwZWQgdG8KIHRoZSBVUkwgcGF0aC4KCiBFeGFtcGxlOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgR2V0TWVzc2FnZShHZXRNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgICBnZXQ6ICIvdjEve25hbWU9bWVzc2FnZXMvKn0iCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG5hbWUgPSAxOyAvLyBNYXBwZWQgdG8gVVJMIHBhdGguCiAgICAgfQogICAgIG1lc3NhZ2UgTWVzc2FnZSB7CiAgICAgICBzdHJpbmcgdGV4dCA9IDE7IC8vIFRoZSByZXNvdXJjZSBjb250ZW50LgogICAgIH0KCiBUaGlzIGVuYWJsZXMgYW4gSFRUUCBSRVNUIHRvIGdSUEMgbWFwcGluZyBhcyBiZWxvdzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1NmAgIHwgYEdldE1lc3NhZ2UobmFtZTogIm1lc3NhZ2VzLzEyMzQ1NiIpYAoKIEFueSBmaWVsZHMgaW4gdGhlIHJlcXVlc3QgbWVzc2FnZSB3aGljaCBhcmUgbm90IGJvdW5kIGJ5IHRoZSBwYXRoIHRlbXBsYXRlCiBhdXRvbWF0aWNhbGx5IGJlY29tZSBIVFRQIHF1ZXJ5IHBhcmFtZXRlcnMgaWYgdGhlcmUgaXMgbm8gSFRUUCByZXF1ZXN0IGJvZHkuCiBGb3IgZXhhbXBsZToKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIEdldE1lc3NhZ2UoR2V0TWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgICAgZ2V0OiIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIG1lc3NhZ2UgU3ViTWVzc2FnZSB7CiAgICAgICAgIHN0cmluZyBzdWJmaWVsZCA9IDE7CiAgICAgICB9CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7IC8vIE1hcHBlZCB0byBVUkwgcGF0aC4KICAgICAgIGludDY0IHJldmlzaW9uID0gMjsgICAgLy8gTWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXIgYHJldmlzaW9uYC4KICAgICAgIFN1Yk1lc3NhZ2Ugc3ViID0gMzsgICAgLy8gTWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXIgYHN1Yi5zdWJmaWVsZGAuCiAgICAgfQoKIFRoaXMgZW5hYmxlcyBhIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBhcyBiZWxvdzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1Nj9yZXZpc2lvbj0yJnN1Yi5zdWJmaWVsZD1mb29gIHwKIGBHZXRNZXNzYWdlKG1lc3NhZ2VfaWQ6ICIxMjM0NTYiIHJldmlzaW9uOiAyIHN1YjogU3ViTWVzc2FnZShzdWJmaWVsZDoKICJmb28iKSlgCgogTm90ZSB0aGF0IGZpZWxkcyB3aGljaCBhcmUgbWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXJzIG11c3QgaGF2ZSBhCiBwcmltaXRpdmUgdHlwZSBvciBhIHJlcGVhdGVkIHByaW1pdGl2ZSB0eXBlIG9yIGEgbm9uLXJlcGVhdGVkIG1lc3NhZ2UgdHlwZS4KIEluIHRoZSBjYXNlIG9mIGEgcmVwZWF0ZWQgdHlwZSwgdGhlIHBhcmFtZXRlciBjYW4gYmUgcmVwZWF0ZWQgaW4gdGhlIFVSTAogYXMgYC4uLj9wYXJhbT1BJnBhcmFtPUJgLiBJbiB0aGUgY2FzZSBvZiBhIG1lc3NhZ2UgdHlwZSwgZWFjaCBmaWVsZCBvZiB0aGUKIG1lc3NhZ2UgaXMgbWFwcGVkIHRvIGEgc2VwYXJhdGUgcGFyYW1ldGVyLCBzdWNoIGFzCiBgLi4uP2Zvby5hPUEmZm9vLmI9QiZmb28uYz1DYC4KCiBGb3IgSFRUUCBtZXRob2RzIHRoYXQgYWxsb3cgYSByZXF1ZXN0IGJvZHksIHRoZSBgYm9keWAgZmllbGQKIHNwZWNpZmllcyB0aGUgbWFwcGluZy4gQ29uc2lkZXIgYSBSRVNUIHVwZGF0ZSBtZXRob2Qgb24gdGhlCiBtZXNzYWdlIHJlc291cmNlIGNvbGxlY3Rpb246CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBVcGRhdGVNZXNzYWdlKFVwZGF0ZU1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBwYXRjaDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYm9keTogIm1lc3NhZ2UiCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgVXBkYXRlTWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOyAvLyBtYXBwZWQgdG8gdGhlIFVSTAogICAgICAgTWVzc2FnZSBtZXNzYWdlID0gMjsgICAvLyBtYXBwZWQgdG8gdGhlIGJvZHkKICAgICB9CgogVGhlIGZvbGxvd2luZyBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmcgaXMgZW5hYmxlZCwgd2hlcmUgdGhlCiByZXByZXNlbnRhdGlvbiBvZiB0aGUgSlNPTiBpbiB0aGUgcmVxdWVzdCBib2R5IGlzIGRldGVybWluZWQgYnkKIHByb3RvcyBKU09OIGVuY29kaW5nOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYFBBVENIIC92MS9tZXNzYWdlcy8xMjM0NTYgeyAidGV4dCI6ICJIaSEiIH1gIHwgYFVwZGF0ZU1lc3NhZ2UobWVzc2FnZV9pZDoKICIxMjM0NTYiIG1lc3NhZ2UgeyB0ZXh0OiAiSGkhIiB9KWAKCiBUaGUgc3BlY2lhbCBuYW1lIGAqYCBjYW4gYmUgdXNlZCBpbiB0aGUgYm9keSBtYXBwaW5nIHRvIGRlZmluZSB0aGF0CiBldmVyeSBmaWVsZCBub3QgYm91bmQgYnkgdGhlIHBhdGggdGVtcGxhdGUgc2hvdWxkIGJlIG1hcHBlZCB0byB0aGUKIHJlcXVlc3QgYm9keS4gIFRoaXMgZW5hYmxlcyB0aGUgZm9sbG93aW5nIGFsdGVybmF0aXZlIGRlZmluaXRpb24gb2YKIHRoZSB1cGRhdGUgbWV0aG9kOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgVXBkYXRlTWVzc2FnZShNZXNzYWdlKSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBwYXRjaDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYm9keTogIioiCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgTWVzc2FnZSB7CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7CiAgICAgICBzdHJpbmcgdGV4dCA9IDI7CiAgICAgfQoKCiBUaGUgZm9sbG93aW5nIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBpcyBlbmFibGVkOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYFBBVENIIC92MS9tZXNzYWdlcy8xMjM0NTYgeyAidGV4dCI6ICJIaSEiIH1gIHwgYFVwZGF0ZU1lc3NhZ2UobWVzc2FnZV9pZDoKICIxMjM0NTYiIHRleHQ6ICJIaSEiKWAKCiBOb3RlIHRoYXQgd2hlbiB1c2luZyBgKmAgaW4gdGhlIGJvZHkgbWFwcGluZywgaXQgaXMgbm90IHBvc3NpYmxlIHRvCiBoYXZlIEhUVFAgcGFyYW1ldGVycywgYXMgYWxsIGZpZWxkcyBub3QgYm91bmQgYnkgdGhlIHBhdGggZW5kIGluCiB0aGUgYm9keS4gVGhpcyBtYWtlcyB0aGlzIG9wdGlvbiBtb3JlIHJhcmVseSB1c2VkIGluIHByYWN0aWNlIHdoZW4KIGRlZmluaW5nIFJFU1QgQVBJcy4gVGhlIGNvbW1vbiB1c2FnZSBvZiBgKmAgaXMgaW4gY3VzdG9tIG1ldGhvZHMKIHdoaWNoIGRvbid0IHVzZSB0aGUgVVJMIGF0IGFsbCBmb3IgdHJhbnNmZXJyaW5nIGRhdGEuCgogSXQgaXMgcG9zc2libGUgdG8gZGVmaW5lIG11bHRpcGxlIEhUVFAgbWV0aG9kcyBmb3Igb25lIFJQQyBieSB1c2luZwogdGhlIGBhZGRpdGlvbmFsX2JpbmRpbmdzYCBvcHRpb24uIEV4YW1wbGU6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBHZXRNZXNzYWdlKEdldE1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBnZXQ6ICIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIGFkZGl0aW9uYWxfYmluZGluZ3MgewogICAgICAgICAgICAgZ2V0OiAiL3YxL3VzZXJzL3t1c2VyX2lkfS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgfQogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsKICAgICAgIHN0cmluZyB1c2VyX2lkID0gMjsKICAgICB9CgogVGhpcyBlbmFibGVzIHRoZSBmb2xsb3dpbmcgdHdvIGFsdGVybmF0aXZlIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZ3M6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgR0VUIC92MS9tZXNzYWdlcy8xMjM0NTZgIHwgYEdldE1lc3NhZ2UobWVzc2FnZV9pZDogIjEyMzQ1NiIpYAogYEdFVCAvdjEvdXNlcnMvbWUvbWVzc2FnZXMvMTIzNDU2YCB8IGBHZXRNZXNzYWdlKHVzZXJfaWQ6ICJtZSIgbWVzc2FnZV9pZDoKICIxMjM0NTYiKWAKCiAjIyBSdWxlcyBmb3IgSFRUUCBtYXBwaW5nCgogMS4gTGVhZiByZXF1ZXN0IGZpZWxkcyAocmVjdXJzaXZlIGV4cGFuc2lvbiBuZXN0ZWQgbWVzc2FnZXMgaW4gdGhlIHJlcXVlc3QKICAgIG1lc3NhZ2UpIGFyZSBjbGFzc2lmaWVkIGludG8gdGhyZWUgY2F0ZWdvcmllczoKICAgIC0gRmllbGRzIHJlZmVycmVkIGJ5IHRoZSBwYXRoIHRlbXBsYXRlLiBUaGV5IGFyZSBwYXNzZWQgdmlhIHRoZSBVUkwgcGF0aC4KICAgIC0gRmllbGRzIHJlZmVycmVkIGJ5IHRoZSBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XS4gVGhleQogICAgYXJlIHBhc3NlZCB2aWEgdGhlIEhUVFAKICAgICAgcmVxdWVzdCBib2R5LgogICAgLSBBbGwgb3RoZXIgZmllbGRzIGFyZSBwYXNzZWQgdmlhIHRoZSBVUkwgcXVlcnkgcGFyYW1ldGVycywgYW5kIHRoZQogICAgICBwYXJhbWV0ZXIgbmFtZSBpcyB0aGUgZmllbGQgcGF0aCBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlLiBBIHJlcGVhdGVkCiAgICAgIGZpZWxkIGNhbiBiZSByZXByZXNlbnRlZCBhcyBtdWx0aXBsZSBxdWVyeSBwYXJhbWV0ZXJzIHVuZGVyIHRoZSBzYW1lCiAgICAgIG5hbWUuCiAgMi4gSWYgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0gaXMgIioiLCB0aGVyZSBpcyBubyBVUkwKICBxdWVyeSBwYXJhbWV0ZXIsIGFsbCBmaWVsZHMKICAgICBhcmUgcGFzc2VkIHZpYSBVUkwgcGF0aCBhbmQgSFRUUCByZXF1ZXN0IGJvZHkuCiAgMy4gSWYgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0gaXMgb21pdHRlZCwgdGhlcmUgaXMgbm8gSFRUUAogIHJlcXVlc3QgYm9keSwgYWxsCiAgICAgZmllbGRzIGFyZSBwYXNzZWQgdmlhIFVSTCBwYXRoIGFuZCBVUkwgcXVlcnkgcGFyYW1ldGVycy4KCiAjIyMgUGF0aCB0ZW1wbGF0ZSBzeW50YXgKCiAgICAgVGVtcGxhdGUgPSAiLyIgU2VnbWVudHMgWyBWZXJiIF0gOwogICAgIFNlZ21lbnRzID0gU2VnbWVudCB7ICIvIiBTZWdtZW50IH0gOwogICAgIFNlZ21lbnQgID0gIioiIHwgIioqIiB8IExJVEVSQUwgfCBWYXJpYWJsZSA7CiAgICAgVmFyaWFibGUgPSAieyIgRmllbGRQYXRoIFsgIj0iIFNlZ21lbnRzIF0gIn0iIDsKICAgICBGaWVsZFBhdGggPSBJREVOVCB7ICIuIiBJREVOVCB9IDsKICAgICBWZXJiICAgICA9ICI6IiBMSVRFUkFMIDsKCiBUaGUgc3ludGF4IGAqYCBtYXRjaGVzIGEgc2luZ2xlIFVSTCBwYXRoIHNlZ21lbnQuIFRoZSBzeW50YXggYCoqYCBtYXRjaGVzCiB6ZXJvIG9yIG1vcmUgVVJMIHBhdGggc2VnbWVudHMsIHdoaWNoIG11c3QgYmUgdGhlIGxhc3QgcGFydCBvZiB0aGUgVVJMIHBhdGgKIGV4Y2VwdCB0aGUgYFZlcmJgLgoKIFRoZSBzeW50YXggYFZhcmlhYmxlYCBtYXRjaGVzIHBhcnQgb2YgdGhlIFVSTCBwYXRoIGFzIHNwZWNpZmllZCBieSBpdHMKIHRlbXBsYXRlLiBBIHZhcmlhYmxlIHRlbXBsYXRlIG11c3Qgbm90IGNvbnRhaW4gb3RoZXIgdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlCiBtYXRjaGVzIGEgc2luZ2xlIHBhdGggc2VnbWVudCwgaXRzIHRlbXBsYXRlIG1heSBiZSBvbWl0dGVkLCBlLmcuIGB7dmFyfWAKIGlzIGVxdWl2YWxlbnQgdG8gYHt2YXI9Kn1gLgoKIFRoZSBzeW50YXggYExJVEVSQUxgIG1hdGNoZXMgbGl0ZXJhbCB0ZXh0IGluIHRoZSBVUkwgcGF0aC4gSWYgdGhlIGBMSVRFUkFMYAogY29udGFpbnMgYW55IHJlc2VydmVkIGNoYXJhY3Rlciwgc3VjaCBjaGFyYWN0ZXJzIHNob3VsZCBiZSBwZXJjZW50LWVuY29kZWQKIGJlZm9yZSB0aGUgbWF0Y2hpbmcuCgogSWYgYSB2YXJpYWJsZSBjb250YWlucyBleGFjdGx5IG9uZSBwYXRoIHNlZ21lbnQsIHN1Y2ggYXMgYCJ7dmFyfSJgIG9yCiBgInt2YXI9Kn0iYCwgd2hlbiBzdWNoIGEgdmFyaWFibGUgaXMgZXhwYW5kZWQgaW50byBhIFVSTCBwYXRoIG9uIHRoZSBjbGllbnQKIHNpZGUsIGFsbCBjaGFyYWN0ZXJzIGV4Y2VwdCBgWy1fLn4wLTlhLXpBLVpdYCBhcmUgcGVyY2VudC1lbmNvZGVkLiBUaGUKIHNlcnZlciBzaWRlIGRvZXMgdGhlIHJldmVyc2UgZGVjb2RpbmcuIFN1Y2ggdmFyaWFibGVzIHNob3cgdXAgaW4gdGhlCiBbRGlzY292ZXJ5CiBEb2N1bWVudF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vZGlzY292ZXJ5L3YxL3JlZmVyZW5jZS9hcGlzKSBhcwogYHt2YXJ9YC4KCiBJZiBhIHZhcmlhYmxlIGNvbnRhaW5zIG11bHRpcGxlIHBhdGggc2VnbWVudHMsIHN1Y2ggYXMgYCJ7dmFyPWZvby8qfSJgCiBvciBgInt2YXI9Kip9ImAsIHdoZW4gc3VjaCBhIHZhcmlhYmxlIGlzIGV4cGFuZGVkIGludG8gYSBVUkwgcGF0aCBvbiB0aGUKIGNsaWVudCBzaWRlLCBhbGwgY2hhcmFjdGVycyBleGNlcHQgYFstXy5+LzAtOWEtekEtWl1gIGFyZSBwZXJjZW50LWVuY29kZWQuCiBUaGUgc2VydmVyIHNpZGUgZG9lcyB0aGUgcmV2ZXJzZSBkZWNvZGluZywgZXhjZXB0ICIlMkYiIGFuZCAiJTJmIiBhcmUgbGVmdAogdW5jaGFuZ2VkLiBTdWNoIHZhcmlhYmxlcyBzaG93IHVwIGluIHRoZQogW0Rpc2NvdmVyeQogRG9jdW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2Rpc2NvdmVyeS92MS9yZWZlcmVuY2UvYXBpcykgYXMKIGB7K3Zhcn1gLgoKICMjIFVzaW5nIGdSUEMgQVBJIFNlcnZpY2UgQ29uZmlndXJhdGlvbgoKIGdSUEMgQVBJIFNlcnZpY2UgQ29uZmlndXJhdGlvbiAoc2VydmljZSBjb25maWcpIGlzIGEgY29uZmlndXJhdGlvbiBsYW5ndWFnZQogZm9yIGNvbmZpZ3VyaW5nIGEgZ1JQQyBzZXJ2aWNlIHRvIGJlY29tZSBhIHVzZXItZmFjaW5nIHByb2R1Y3QuIFRoZQogc2VydmljZSBjb25maWcgaXMgc2ltcGx5IHRoZSBZQU1MIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBgZ29vZ2xlLmFwaS5TZXJ2aWNlYAogcHJvdG8gbWVzc2FnZS4KCiBBcyBhbiBhbHRlcm5hdGl2ZSB0byBhbm5vdGF0aW5nIHlvdXIgcHJvdG8gZmlsZSwgeW91IGNhbiBjb25maWd1cmUgZ1JQQwogdHJhbnNjb2RpbmcgaW4geW91ciBzZXJ2aWNlIGNvbmZpZyBZQU1MIGZpbGVzLiBZb3UgZG8gdGhpcyBieSBzcGVjaWZ5aW5nIGEKIGBIdHRwUnVsZWAgdGhhdCBtYXBzIHRoZSBnUlBDIG1ldGhvZCB0byBhIFJFU1QgZW5kcG9pbnQsIGFjaGlldmluZyB0aGUgc2FtZQogZWZmZWN0IGFzIHRoZSBwcm90byBhbm5vdGF0aW9uLiBUaGlzIGNhbiBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsIGlmIHlvdQogaGF2ZSBhIHByb3RvIHRoYXQgaXMgcmV1c2VkIGluIG11bHRpcGxlIHNlcnZpY2VzLiBOb3RlIHRoYXQgYW55IHRyYW5zY29kaW5nCiBzcGVjaWZpZWQgaW4gdGhlIHNlcnZpY2UgY29uZmlnIHdpbGwgb3ZlcnJpZGUgYW55IG1hdGNoaW5nIHRyYW5zY29kaW5nCiBjb25maWd1cmF0aW9uIGluIHRoZSBwcm90by4KCiBFeGFtcGxlOgoKICAgICBodHRwOgogICAgICAgcnVsZXM6CiAgICAgICAgICMgU2VsZWN0cyBhIGdSUEMgbWV0aG9kIGFuZCBhcHBsaWVzIEh0dHBSdWxlIHRvIGl0LgogICAgICAgICAtIHNlbGVjdG9yOiBleGFtcGxlLnYxLk1lc3NhZ2luZy5HZXRNZXNzYWdlCiAgICAgICAgICAgZ2V0OiAvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9L3tzdWIuc3ViZmllbGR9CgogIyMgU3BlY2lhbCBub3RlcwoKIFdoZW4gZ1JQQyBUcmFuc2NvZGluZyBpcyB1c2VkIHRvIG1hcCBhIGdSUEMgdG8gSlNPTiBSRVNUIGVuZHBvaW50cywgdGhlCiBwcm90byB0byBKU09OIGNvbnZlcnNpb24gbXVzdCBmb2xsb3cgdGhlIFtwcm90bzMKIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90bzMjanNvbikuCgogV2hpbGUgdGhlIHNpbmdsZSBzZWdtZW50IHZhcmlhYmxlIGZvbGxvd3MgdGhlIHNlbWFudGljcyBvZgogW1JGQyA2NTcwXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjU3MCkgU2VjdGlvbiAzLjIuMiBTaW1wbGUgU3RyaW5nCiBFeHBhbnNpb24sIHRoZSBtdWx0aSBzZWdtZW50IHZhcmlhYmxlICoqZG9lcyBub3QqKiBmb2xsb3cgUkZDIDY1NzAgU2VjdGlvbgogMy4yLjMgUmVzZXJ2ZWQgRXhwYW5zaW9uLiBUaGUgcmVhc29uIGlzIHRoYXQgdGhlIFJlc2VydmVkIEV4cGFuc2lvbgogZG9lcyBub3QgZXhwYW5kIHNwZWNpYWwgY2hhcmFjdGVycyBsaWtlIGA/YCBhbmQgYCNgLCB3aGljaCB3b3VsZCBsZWFkCiB0byBpbnZhbGlkIFVSTHMuIEFzIHRoZSByZXN1bHQsIGdSUEMgVHJhbnNjb2RpbmcgdXNlcyBhIGN1c3RvbSBlbmNvZGluZwogZm9yIG11bHRpIHNlZ21lbnQgdmFyaWFibGVzLgoKIFRoZSBwYXRoIHZhcmlhYmxlcyAqKm11c3Qgbm90KiogcmVmZXIgdG8gYW55IHJlcGVhdGVkIG9yIG1hcHBlZCBmaWVsZCwKIGJlY2F1c2UgY2xpZW50IGxpYnJhcmllcyBhcmUgbm90IGNhcGFibGUgb2YgaGFuZGxpbmcgc3VjaCB2YXJpYWJsZSBleHBhbnNpb24uCgogVGhlIHBhdGggdmFyaWFibGVzICoqbXVzdCBub3QqKiBjYXB0dXJlIHRoZSBsZWFkaW5nICIvIiBjaGFyYWN0ZXIuIFRoZSByZWFzb24KIGlzIHRoYXQgdGhlIG1vc3QgY29tbW9uIHVzZSBjYXNlICJ7dmFyfSIgZG9lcyBub3QgY2FwdHVyZSB0aGUgbGVhZGluZyAiLyIKIGNoYXJhY3Rlci4gRm9yIGNvbnNpc3RlbmN5LCBhbGwgcGF0aCB2YXJpYWJsZXMgbXVzdCBzaGFyZSB0aGUgc2FtZSBiZWhhdmlvci4KCiBSZXBlYXRlZCBtZXNzYWdlIGZpZWxkcyBtdXN0IG5vdCBiZSBtYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGJlY2F1c2UKIG5vIGNsaWVudCBsaWJyYXJ5IGNhbiBzdXBwb3J0IHN1Y2ggY29tcGxpY2F0ZWQgbWFwcGluZy4KCiBJZiBhbiBBUEkgbmVlZHMgdG8gdXNlIGEgSlNPTiBhcnJheSBmb3IgcmVxdWVzdCBvciByZXNwb25zZSBib2R5LCBpdCBjYW4gbWFwCiB0aGUgcmVxdWVzdCBvciByZXNwb25zZSBib2R5IHRvIGEgcmVwZWF0ZWQgZmllbGQuIEhv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CgoPCgUEAgIBBBIG+gIC9wISCg0KBQQCAgEFEgT6AgIICg0KBQQCAgEBEgT6AgkNCg0KBQQCAgEDEgT6AhARYgZwcm90bzMK5wgKHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8SCmdvb2dsZS5hcGkaFWdvb2dsZS9hcGkvaHR0cC5wcm90bxogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG86SwoEaHR0cBIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGLDKvCIgASgLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZVIEaHR0cEJuCg5jb20uZ29vZ2xlLmFwaUIQQW5ub3RhdGlvbnNQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5vdGF0aW9uczthbm5vdGF0aW9uc6ICBEdBUElKvAYKBhIEDgAeAQrCBAoBDBIDDgASMrcEIENvcHlyaWdodCAoYykgMjAxNSwgR29vZ2xlIEluYy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCggKAQISAxAAEwoJCgIDABIDEgAfCgkKAgMBEgMTACoKCAoBCBIDFQBYCgkKAggLEgMVAFgKCAoBCBIDFgAiCgkKAggKEgMWACIKCAoBCBIDFwAxCgkKAggIEgMXADEKCAoBCBIDGAAnCgkKAggBEgMYACcKCAoBCBIDGQAiCgkKAggkEgMZACIKCQoBBxIEGwAeAQocCgIHABIDHQIbGhEgU2VlIGBIdHRwUnVsZWAuCgoKCgMHAAISAxsHJAoLCgMHAAQSBB0CGyYKCgoDBwAGEgMdAgoKCgoDBwABEgMdCw8KCgoDBwADEgMdEhpiBnByb3RvMwqFgggKH3ZvbHRoYV9wcm90b3Mvb3BlbmZsb3dfMTMucHJvdG8SC29wZW5mbG93XzEzGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvImMKCm9mcF9oZWFkZXISGAoHdmVyc2lvbhgBIAEoDVIHdmVyc2lvbhIpCgR0eXBlGAIgASgOMhUub3BlbmZsb3dfMTMub2ZwX3R5cGVSBHR5cGUSEAoDeGlkGAMgASgNUgN4aWQiqwEKFW9mcF9oZWxsb19lbGVtX2hlYWRlchI0CgR0eXBlGAEgASgOMiAub3BlbmZsb3dfMTMub2ZwX2hlbGxvX2VsZW1fdHlwZVIEdHlwZRJRCg12ZXJzaW9uYml0bWFwGAIgASgLMikub3BlbmZsb3dfMTMub2ZwX2hlbGxvX2VsZW1fdmVyc2lvbmJpdG1hcEgAUg12ZXJzaW9uYml0bWFwQgkKB2VsZW1lbnQiOAocb2ZwX2hlbGxvX2VsZW1fdmVyc2lvbmJpdG1hcBIYCgdiaXRtYXBzGAIgAygNUgdiaXRtYXBzIksKCW9mcF9oZWxsbxI+CghlbGVtZW50cxgBIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9oZWxsb19lbGVtX2hlYWRlclIIZWxlbWVudHMiTQoRb2ZwX3N3aXRjaF9jb25maWcSFAoFZmxhZ3MYASABKA1SBWZsYWdzEiIKDW1pc3Nfc2VuZF9sZW4YAiABKA1SC21pc3NTZW5kTGVuIkIKDW9mcF90YWJsZV9tb2QSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSFgoGY29uZmlnGAIgASgNUgZjb25maWcioAIKCG9mcF9wb3J0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIXCgdod19hZGRyGAIgAygNUgZod0FkZHISEgoEbmFtZRgDIAEoCVIEbmFtZRIWCgZjb25maWcYBCABKA1SBmNvbmZpZxIUCgVzdGF0ZRgFIAEoDVIFc3RhdGUSEgoEY3VychgGIAEoDVIEY3VychIeCgphZHZlcnRpc2VkGAcgASgNUgphZHZlcnRpc2VkEhwKCXN1cHBvcnRlZBgIIAEoDVIJc3VwcG9ydGVkEhIKBHBlZXIYCSABKA1SBHBlZXISHQoKY3Vycl9zcGVlZBgKIAEoDVIJY3VyclNwZWVkEhsKCW1heF9zcGVlZBgLIAEoDVIIbWF4U3BlZWQitQEKE29mcF9zd2l0Y2hfZmVhdHVyZXMSHwoLZGF0YXBhdGhfaWQYASABKARSCmRhdGFwYXRoSWQSGwoJbl9idWZmZXJzGAIgASgNUghuQnVmZmVycxIZCghuX3RhYmxlcxgDIAEoDVIHblRhYmxlcxIhCgxhdXhpbGlhcnlfaWQYBCABKA1SC2F1eGlsaWFyeUlkEiIKDGNhcGFiaWxpdGllcxgFIAEoDVIMY2FwYWJpbGl0aWVzInIKD29mcF9wb3J0X3N0YXR1cxI0CgZyZWFzb24YASABKA4yHC5vcGVuZmxvd18xMy5vZnBfcG9ydF9yZWFzb25SBnJlYXNvbhIpCgRkZXNjGAIgASgLMhUub3BlbmZsb3dfMTMub2ZwX3BvcnRSBGRlc2MiigEKDG9mcF9wb3J0X21vZBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SFwoHaHdfYWRkchgCIAMoDVIGaHdBZGRyEhYKBmNvbmZpZxgDIAEoDVIGY29uZmlnEhIKBG1hc2sYBCABKA1SBG1hc2sSHAoJYWR2ZXJ0aXNlGAUgASgNUglhZHZlcnRpc2UidwoJb2ZwX21hdGNoEi8KBHR5cGUYASABKA4yGy5vcGVuZmxvd18xMy5vZnBfbWF0Y2hfdHlwZVIEdHlwZRI5CgpveG1fZmllbGRzGAIgAygLMhoub3BlbmZsb3dfMTMub2ZwX294bV9maWVsZFIJb3htRmllbGRzIuoBCg1vZnBfb3htX2ZpZWxkEjcKCW94bV9jbGFzcxgBIAEoDjIaLm9wZW5mbG93XzEzLm9mcF9veG1fY2xhc3NSCG94bUNsYXNzEj0KCW9mYl9maWVsZBgEIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9veG1fb2ZiX2ZpZWxkSABSCG9mYkZpZWxkElgKEmV4cGVyaW1lbnRlcl9maWVsZBgFIAEoCzInLm9wZW5mbG93XzEzLm9mcF9veG1fZXhwZXJpbWVudGVyX2ZpZWxkSABSEWV4cGVyaW1lbnRlckZpZWxkQgcKBWZpZWxkItcOChFvZnBfb3htX29mYl9maWVsZBI0CgR0eXBlGAEgASgOMiAub3BlbmZsb3dfMTMub3htX29mYl9maWVsZF90eXBlc1IEdHlwZRIZCghoYXNfbWFzaxgCIAEoCFIHaGFzTWFzaxIUCgRwb3J0GAMgASgNSABSBHBvcnQSJQoNcGh5c2ljYWxfcG9ydBgEIAEoDUgAUgxwaHlzaWNhbFBvcnQSJwoOdGFibGVfbWV0YWRhdGEYBSABKARIAFINdGFibGVNZXRhZGF0YRIZCgdldGhfZHN0GAYgASgMSABSBmV0aERzdBIZCgdldGhfc3JjGAcgASgMSABSBmV0aFNyYxIbCghldGhfdHlwZRgIIAEoDUgAUgdldGhUeXBlEhsKCHZsYW5fdmlkGAkgASgNSABSB3ZsYW5WaWQSGwoIdmxhbl9wY3AYCiABKA1IAFIHdmxhblBjcBIZCgdpcF9kc2NwGAsgASgNSABSBmlwRHNjcBIXCgZpcF9lY24YDCABKA1IAFIFaXBFY24SGwoIaXBfcHJvdG8YDSABKA1IAFIHaXBQcm90bxIbCghpcHY0X3NyYxgOIAEoDUgAUgdpcHY0U3JjEhsKCGlwdjRfZHN0GA8gASgNSABSB2lwdjREc3QSGQoHdGNwX3NyYxgQIAEoDUgAUgZ0Y3BTcmMSGQoHdGNwX2RzdBgRIAEoDUgAUgZ0Y3BEc3QSGQoHdWRwX3NyYxgSIAEoDUgAUgZ1ZHBTcmMSGQoHdWRwX2RzdBgTIAEoDUgAUgZ1ZHBEc3QSGwoIc2N0cF9zcmMYFCABKA1IAFIHc2N0cFNyYxIbCghzY3RwX2RzdBgVIAEoDUgAUgdzY3RwRHN0EiEKC2ljbXB2NF90eXBlGBYgASgNSABSCmljbXB2NFR5cGUSIQoLaWNtcHY0X2NvZGUYFyABKA1IAFIKaWNtcHY0Q29kZRIXCgZhcnBfb3AYGCABKA1IAFIFYXJwT3ASGQoHYXJwX3NwYRgZIAEoDUgAUgZhcnBTcGESGQoHYXJwX3RwYRgaIAEoDUgAUgZhcnBUcGESGQoHYXJwX3NoYRgbIAEoDEgAUgZhcnBTaGESGQoHYXJwX3RoYRgcIAEoDEgAUgZhcnBUaGESGwoIaXB2Nl9zcmMYHSABKAxIAFIHaXB2NlNyYxIbCghpcHY2X2RzdBgeIAEoDEgAUgdpcHY2RHN0EiEKC2lwdjZfZmxhYmVsGB8gASgNSABSCmlwdjZGbGFiZWwSIQoLaWNtcHY2X3R5cGUYICABKA1IAFIKaWNtcHY2VHlwZRIhCgtpY21wdjZfY29kZRghIAEoDUgAUgppY21wdjZDb2RlEiYKDmlwdjZfbmRfdGFyZ2V0GCIgASgMSABSDGlwdjZOZFRhcmdldBIgCgtpcHY2X25kX3NzbBgjIAEoDEgAUglpcHY2TmRTc2wSIAoLaXB2Nl9uZF90bGwYJCABKAxIAFIJaXB2Nk5kVGxsEh8KCm1wbHNfbGFiZWwYJSABKA1IAFIJbXBsc0xhYmVsEhkKB21wbHNfdGMYJiABKA1IAFIGbXBsc1RjEhsKCG1wbHNfYm9zGCcgASgNSABSB21wbHNCb3MSGwoIcGJiX2lzaWQYKCABKA1IAFIHcGJiSXNpZBIdCgl0dW5uZWxfaWQYKSABKARIAFIIdHVubmVsSWQSIQoLaXB2Nl9leHRoZHIYKiABKA1IAFIKaXB2NkV4dGhkchIwChN0YWJsZV9tZXRhZGF0YV9tYXNrGGkgASgESAFSEXRhYmxlTWV0YWRhdGFNYXNrEiIKDGV0aF9kc3RfbWFzaxhqIAEoDEgBUgpldGhEc3RNYXNrEiIKDGV0aF9zcmNfbWFzaxhrIAEoDEgBUgpldGhTcmNNYXNrEiQKDXZsYW5fdmlkX21hc2sYbSABKA1IAVILdmxhblZpZE1hc2sSJAoNaXB2NF9zcmNfbWFzaxhyIAEoDUgBUgtpcHY0U3JjTWFzaxIkCg1pcHY0X2RzdF9tYXNrGHMgASgNSAFSC2lwdjREc3RNYXNrEiIKDGFycF9zcGFfbWFzaxh9IAEoDUgBUgphcnBTcGFNYXNrEiIKDGFycF90cGFfbWFzaxh+IAEoDUgBUgphcnBUcGFNYXNrEiUKDWlwdjZfc3JjX21hc2sYgQEgASgMSAFSC2lwdjZTcmNNYXNrEiUKDWlwdjZfZHN0X21hc2sYggEgASgMSAFSC2lwdjZEc3RNYXNrEisKEGlwdjZfZmxhYmVsX21hc2sYgwEgASgNSAFSDmlwdjZGbGFiZWxNYXNrEiUKDXBiYl9pc2lkX21hc2sYjAEgASgNSAFSC3BiYklzaWRNYXNrEicKDnR1bm5lbF9pZF9tYXNrGI0BIAEoBEgBUgx0dW5uZWxJZE1hc2sSKwoQaXB2Nl9leHRoZHJfbWFzaxiOASABKA1IAVIOaXB2NkV4dGhkck1hc2tCBwoFdmFsdWVCBgoEbWFzayJfChpvZnBfb3htX2V4cGVyaW1lbnRlcl9maWVsZBIdCgpveG1faGVhZGVyGAEgASgNUglveG1IZWFkZXISIgoMZXhwZXJpbWVudGVyGAIgASgNUgxleHBlcmltZW50ZXIisgQKCm9mcF9hY3Rpb24SMAoEdHlwZRgBIAEoDjIcLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fdHlwZVIEdHlwZRI4CgZvdXRwdXQYAiABKAsyHi5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX291dHB1dEgAUgZvdXRwdXQSPQoIbXBsc190dGwYAyABKAsyIC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX21wbHNfdHRsSABSB21wbHNUdGwSMgoEcHVzaBgEIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fcHVzaEgAUgRwdXNoEj0KCHBvcF9tcGxzGAUgASgLMiAub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9wb3BfbXBsc0gAUgdwb3BNcGxzEjUKBWdyb3VwGAYgASgLMh0ub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9ncm91cEgAUgVncm91cBI3CgZud190dGwYByABKAsyHi5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX253X3R0bEgAUgVud1R0bBJACglzZXRfZmllbGQYCCABKAsyIS5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3NldF9maWVsZEgAUghzZXRGaWVsZBJKCgxleHBlcmltZW50ZXIYCSABKAsyJC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCCAoGYWN0aW9uIkAKEW9mcF9hY3Rpb25fb3V0cHV0EhIKBHBvcnQYASABKA1SBHBvcnQSFwoHbWF4X2xlbhgCIAEoDVIGbWF4TGVuIjAKE29mcF9hY3Rpb25fbXBsc190dGwSGQoIbXBsc190dGwYASABKA1SB21wbHNUdGwiLwoPb2ZwX2FjdGlvbl9wdXNoEhwKCWV0aGVydHlwZRgBIAEoDVIJZXRoZXJ0eXBlIjMKE29mcF9hY3Rpb25fcG9wX21wbHMSHAoJZXRoZXJ0eXBlGAEgASgNUglldGhlcnR5cGUiLQoQb2ZwX2FjdGlvbl9ncm91cBIZCghncm91cF9pZBgBIAEoDVIHZ3JvdXBJZCIqChFvZnBfYWN0aW9uX253X3R0bBIVCgZud190dGwYASABKA1SBW53VHRsIkgKFG9mcF9hY3Rpb25fc2V0X2ZpZWxkEjAKBWZpZWxkGAEgASgLMhoub3BlbmZsb3dfMTMub2ZwX294bV9maWVsZFIFZmllbGQiUQoXb2ZwX2FjdGlvbl9leHBlcmltZW50ZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXISEgoEZGF0YRgCIAEoDFIEZGF0YSKcAwoPb2ZwX2luc3RydWN0aW9uEhIKBHR5cGUYASABKA1SBHR5cGUSSAoKZ290b190YWJsZRgCIAEoCzInLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9nb3RvX3RhYmxlSABSCWdvdG9UYWJsZRJUCg53cml0ZV9tZXRhZGF0YRgDIAEoCzIrLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl93cml0ZV9tZXRhZGF0YUgAUg13cml0ZU1ldGFkYXRhEkAKB2FjdGlvbnMYBCABKAsyJC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fYWN0aW9uc0gAUgdhY3Rpb25zEjoKBW1ldGVyGAUgASgLMiIub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX21ldGVySABSBW1ldGVyEk8KDGV4cGVyaW1lbnRlchgGIAEoCzIpLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQgYKBGRhdGEiNwoab2ZwX2luc3RydWN0aW9uX2dvdG9fdGFibGUSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQiYQoeb2ZwX2luc3RydWN0aW9uX3dyaXRlX21ldGFkYXRhEhoKCG1ldGFkYXRhGAEgASgEUghtZXRhZGF0YRIjCg1tZXRhZGF0YV9tYXNrGAIgASgEUgxtZXRhZGF0YU1hc2siTAoXb2ZwX2luc3RydWN0aW9uX2FjdGlvbnMSMQoHYWN0aW9ucxgBIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25SB2FjdGlvbnMiMgoVb2ZwX2luc3RydWN0aW9uX21ldGVyEhkKCG1ldGVyX2lkGAEgASgNUgdtZXRlcklkIlYKHG9mcF9pbnN0cnVjdGlvbl9leHBlcmltZW50ZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXISEgoEZGF0YRgCIAEoDFIEZGF0YSLcAwoMb2ZwX2Zsb3dfbW9kEhYKBmNvb2tpZRgBIAEoBFIGY29va2llEh8KC2Nvb2tpZV9tYXNrGAIgASgEUgpjb29raWVNYXNrEhkKCHRhYmxlX2lkGAMgASgNUgd0YWJsZUlkEjsKB2NvbW1hbmQYBCABKA4yIS5vcGVuZmxvd18xMy5vZnBfZmxvd19tb2RfY29tbWFuZFIHY29tbWFuZBIhCgxpZGxlX3RpbWVvdXQYBSABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgGIAEoDVILaGFyZFRpbWVvdXQSGgoIcHJpb3JpdHkYByABKA1SCHByaW9yaXR5EhsKCWJ1ZmZlcl9pZBgIIAEoDVIIYnVmZmVySWQSGQoIb3V0X3BvcnQYCSABKA1SB291dFBvcnQSGwoJb3V0X2dyb3VwGAogASgNUghvdXRHcm91cBIUCgVmbGFncxgLIAEoDVIFZmxhZ3MSLAoFbWF0Y2gYDCABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoEkAKDGluc3RydWN0aW9ucxgNIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvblIMaW5zdHJ1Y3Rpb25zIpcBCgpvZnBfYnVja2V0EhYKBndlaWdodBgBIAEoDVIGd2VpZ2h0Eh0KCndhdGNoX3BvcnQYAiABKA1SCXdhdGNoUG9ydBIfCgt3YXRjaF9ncm91cBgDIAEoDVIKd2F0Y2hHcm91cBIxCgdhY3Rpb25zGAQgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucyLMAQoNb2ZwX2dyb3VwX21vZBI8Cgdjb21tYW5kGAEgASgOMiIub3BlbmZsb3dfMTMub2ZwX2dyb3VwX21vZF9jb21tYW5kUgdjb21tYW5kEi8KBHR5cGUYAiABKA4yGy5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfdHlwZVIEdHlwZRIZCghncm91cF9pZBgDIAEoDVIHZ3JvdXBJZBIxCgdidWNrZXRzGAQgAygLMhcub3BlbmZsb3dfMTMub2ZwX2J1Y2tldFIHYnVja2V0cyKNAQoOb2ZwX3BhY2tldF9vdXQSGwoJYnVmZmVyX2lkGAEgASgNUghidWZmZXJJZBIXCgdpbl9wb3J0GAIgASgNUgZpblBvcnQSMQoHYWN0aW9ucxgDIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25SB2FjdGlvbnMSEgoEZGF0YRgEIAEoDFIEZGF0YSLcAQoNb2ZwX3BhY2tldF9pbhIbCglidWZmZXJfaWQYASABKA1SCGJ1ZmZlcklkEjkKBnJlYXNvbhgCIAEoDjIhLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfaW5fcmVhc29uUgZyZWFzb24SGQoIdGFibGVfaWQYAyABKA1SB3RhYmxlSWQSFgoGY29va2llGAQgASgEUgZjb29raWUSLAoFbWF0Y2gYBSABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoEhIKBGRhdGEYBiABKAxSBGRhdGEinQMKEG9mcF9mbG93X3JlbW92ZWQSFgoGY29va2llGAEgASgEUgZjb29raWUSGgoIcHJpb3JpdHkYAiABKA1SCHByaW9yaXR5EjwKBnJlYXNvbhgDIAEoDjIkLm9wZW5mbG93XzEzLm9mcF9mbG93X3JlbW92ZWRfcmVhc29uUgZyZWFzb24SGQoIdGFibGVfaWQYBCABKA1SB3RhYmxlSWQSIQoMZHVyYXRpb25fc2VjGAUgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAYgASgNUgxkdXJhdGlvbk5zZWMSIQoMaWRsZV90aW1lb3V0GAcgASgNUgtpZGxlVGltZW91dBIhCgxoYXJkX3RpbWVvdXQYCCABKA1SC2hhcmRUaW1lb3V0EiEKDHBhY2tldF9jb3VudBgJIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgKIAEoBFIJYnl0ZUNvdW50EiwKBW1hdGNoGHkgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaCLcAgoVb2ZwX21ldGVyX2JhbmRfaGVhZGVyEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF90eXBlUgR0eXBlEhIKBHJhdGUYAiABKA1SBHJhdGUSHQoKYnVyc3Rfc2l6ZRgDIAEoDVIJYnVyc3RTaXplEjYKBGRyb3AYBCABKAsyIC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9kcm9wSABSBGRyb3ASSgoLZHNjcF9yZW1hcmsYBSABKAsyJy5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9kc2NwX3JlbWFya0gAUgpkc2NwUmVtYXJrEk4KDGV4cGVyaW1lbnRlchgGIAEoCzIoLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCBgoEZGF0YSIVChNvZnBfbWV0ZXJfYmFuZF9kcm9wIjsKGm9mcF9tZXRlcl9iYW5kX2RzY3BfcmVtYXJrEh0KCnByZWNfbGV2ZWwYASABKA1SCXByZWNMZXZlbCJBChtvZnBfbWV0ZXJfYmFuZF9leHBlcmltZW50ZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXIiuAEKDW9mcF9tZXRlcl9tb2QSPAoHY29tbWFuZBgBIAEoDjIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9tb2RfY29tbWFuZFIHY29tbWFuZBIUCgVmbGFncxgCIAEoDVIFZmxhZ3MSGQoIbWV0ZXJfaWQYAyABKA1SB21ldGVySWQSOAoFYmFuZHMYBCADKAsyIi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9oZWFkZXJSBWJhbmRzInwKDW9mcF9lcnJvcl9tc2cSLwoGaGVhZGVyGAEgASgLMhcub3BlbmZsb3dfMTMub2ZwX2hlYWRlclIGaGVhZGVyEhIKBHR5cGUYAiABKA1SBHR5cGUSEgoEY29kZRgDIAEoDVIEY29kZRISCgRkYXRhGAQgASgMUgRkYXRhIoMBChpvZnBfZXJyb3JfZXhwZXJpbWVudGVyX21zZxISCgR0eXBlGAEgASgNUgR0eXBlEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEiIKDGV4cGVyaW1lbnRlchgDIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYBCABKAxSBGRhdGEidgoVb2ZwX211bHRpcGFydF9yZXF1ZXN0EjMKBHR5cGUYASABKA4yHy5vcGVuZmxvd18xMy5vZnBfbXVsdGlwYXJ0X3R5cGVSBHR5cGUSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhIKBGJvZHkYAyABKAxSBGJvZHkidAoTb2ZwX211bHRpcGFydF9yZXBseRIzCgR0eXBlGAEgASgOMh8ub3BlbmZsb3dfMTMub2ZwX211bHRpcGFydF90eXBlUgR0eXBlEhQKBWZsYWdzGAIgASgNUgVmbGFncxISCgRib2R5GAMgASgMUgRib2R5Io8BCghvZnBfZGVzYxIZCghtZnJfZGVzYxgBIAEoCVIHbWZyRGVzYxIXCgdod19kZXNjGAIgASgJUgZod0Rlc2MSFwoHc3dfZGVzYxgDIAEoCVIGc3dEZXNjEh0KCnNlcmlhbF9udW0YBCABKAlSCXNlcmlhbE51bRIXCgdkcF9kZXNjGAUgASgJUgZkcERlc2Mi0gEKFm9mcF9mbG93X3N0YXRzX3JlcXVlc3QSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSGQoIb3V0X3BvcnQYAiABKA1SB291dFBvcnQSGwoJb3V0X2dyb3VwGAMgASgNUghvdXRHcm91cBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIfCgtjb29raWVfbWFzaxgFIAEoBFIKY29va2llTWFzaxIsCgVtYXRjaBgGIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gixQMKDm9mcF9mbG93X3N0YXRzEg4KAmlkGA4gASgEUgJpZBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIhCgxkdXJhdGlvbl9zZWMYAiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYAyABKA1SDGR1cmF0aW9uTnNlYxIaCghwcmlvcml0eRgEIAEoDVIIcHJpb3JpdHkSIQoMaWRsZV90aW1lb3V0GAUgASgNUgtpZGxlVGltZW91dBIhCgxoYXJkX3RpbWVvdXQYBiABKA1SC2hhcmRUaW1lb3V0EhQKBWZsYWdzGAcgASgNUgVmbGFncxIWCgZjb29raWUYCCABKARSBmNvb2tpZRIhCgxwYWNrZXRfY291bnQYCSABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYCiABKARSCWJ5dGVDb3VudBIsCgVtYXRjaBgMIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSQAoMaW5zdHJ1Y3Rpb25zGA0gAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMi1wEKG29mcF9hZ2dyZWdhdGVfc3RhdHNfcmVxdWVzdBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIZCghvdXRfcG9ydBgCIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYAyABKA1SCG91dEdyb3VwEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEh8KC2Nvb2tpZV9tYXNrGAUgASgEUgpjb29raWVNYXNrEiwKBW1hdGNoGAYgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaCJ8ChlvZnBfYWdncmVnYXRlX3N0YXRzX3JlcGx5EiEKDHBhY2tldF9jb3VudBgBIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgCIAEoBFIJYnl0ZUNvdW50Eh0KCmZsb3dfY291bnQYAyABKA1SCWZsb3dDb3VudCLtAwoab2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcGVydHkSPAoEdHlwZRgBIAEoDjIoLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfdHlwZVIEdHlwZRJWCgxpbnN0cnVjdGlvbnMYAiABKAsyMC5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2luc3RydWN0aW9uc0gAUgxpbnN0cnVjdGlvbnMSUgoLbmV4dF90YWJsZXMYAyABKAsyLy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX25leHRfdGFibGVzSABSCm5leHRUYWJsZXMSRwoHYWN0aW9ucxgEIAEoCzIrLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfYWN0aW9uc0gAUgdhY3Rpb25zEjsKA294bRgFIAEoCzInLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3Bfb3htSABSA294bRJWCgxleHBlcmltZW50ZXIYBiABKAsyMC5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCBwoFdmFsdWUiZwojb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9pbnN0cnVjdGlvbnMSQAoMaW5zdHJ1Y3Rpb25zGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMiSgoib2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9uZXh0X3RhYmxlcxIkCg5uZXh0X3RhYmxlX2lkcxgBIAMoDVIMbmV4dFRhYmxlSWRzIlMKHm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfYWN0aW9ucxIxCgdhY3Rpb25zGAEgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucyI1ChpvZnBfdGFibGVfZmVhdHVyZV9wcm9wX294bRIXCgdveG1faWRzGAMgAygNUgZveG1JZHMikQEKI29mcF90YWJsZV9mZWF0dXJlX3Byb3BfZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAMgASgNUgdleHBUeXBlEisKEWV4cGVyaW1lbnRlcl9kYXRhGAQgAygNUhBleHBlcmltZW50ZXJEYXRhIpMCChJvZnBfdGFibGVfZmVhdHVyZXMSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSEgoEbmFtZRgCIAEoCVIEbmFtZRIlCg5tZXRhZGF0YV9tYXRjaBgDIAEoBFINbWV0YWRhdGFNYXRjaBIlCg5tZXRhZGF0YV93cml0ZRgEIAEoBFINbWV0YWRhdGFXcml0ZRIWCgZjb25maWcYBSABKA1SBmNvbmZpZxIfCgttYXhfZW50cmllcxgGIAEoDVIKbWF4RW50cmllcxJHCgpwcm9wZXJ0aWVzGAcgAygLMicub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcGVydHlSCnByb3BlcnRpZXMilwEKD29mcF90YWJsZV9zdGF0cxIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIhCgxhY3RpdmVfY291bnQYAiABKA1SC2FjdGl2ZUNvdW50EiEKDGxvb2t1cF9jb3VudBgDIAEoBFILbG9va3VwQ291bnQSIwoNbWF0Y2hlZF9jb3VudBgEIAEoBFIMbWF0Y2hlZENvdW50IjEKFm9mcF9wb3J0X3N0YXRzX3JlcXVlc3QSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vIt0DCg5vZnBfcG9ydF9zdGF0cxIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SHQoKcnhfcGFja2V0cxgCIAEoBFIJcnhQYWNrZXRzEh0KCnR4X3BhY2tldHMYAyABKARSCXR4UGFja2V0cxIZCghyeF9ieXRlcxgEIAEoBFIHcnhCeXRlcxIZCgh0eF9ieXRlcxgFIAEoBFIHdHhCeXRlcxIdCgpyeF9kcm9wcGVkGAYgASgEUglyeERyb3BwZWQSHQoKdHhfZHJvcHBlZBgHIAEoBFIJdHhEcm9wcGVkEhsKCXJ4X2Vycm9ycxgIIAEoBFIIcnhFcnJvcnMSGwoJdHhfZXJyb3JzGAkgASgEUgh0eEVycm9ycxIgCgxyeF9mcmFtZV9lcnIYCiABKARSCnJ4RnJhbWVFcnISHgoLcnhfb3Zlcl9lcnIYCyABKARSCXJ4T3ZlckVychIcCgpyeF9jcmNfZXJyGAwgASgEUghyeENyY0VychIeCgpjb2xsaXNpb25zGA0gASgEUgpjb2xsaXNpb25zEiEKDGR1cmF0aW9uX3NlYxgOIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgPIAEoDVIMZHVyYXRpb25Oc2VjIjQKF29mcF9ncm91cF9zdGF0c19yZXF1ZXN0EhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkIlYKEm9mcF9idWNrZXRfY291bnRlchIhCgxwYWNrZXRfY291bnQYASABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYAiABKARSCWJ5dGVDb3VudCKXAgoPb2ZwX2dyb3VwX3N0YXRzEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkEhsKCXJlZl9jb3VudBgCIAEoDVIIcmVmQ291bnQSIQoMcGFja2V0X2NvdW50GAMgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAQgASgEUglieXRlQ291bnQSIQoMZHVyYXRpb25fc2VjGAUgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAYgASgNUgxkdXJhdGlvbk5zZWMSQgoMYnVja2V0X3N0YXRzGAcgAygLMh8ub3BlbmZsb3dfMTMub2ZwX2J1Y2tldF9jb3VudGVyUgtidWNrZXRTdGF0cyKPAQoOb2ZwX2dyb3VwX2Rlc2MSLwoEdHlwZRgBIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF90eXBlUgR0eXBlEhkKCGdyb3VwX2lkGAIgASgNUgdncm91cElkEjEKB2J1Y2tldHMYAyADKAsyFy5vcGVuZmxvd18xMy5vZnBfYnVja2V0UgdidWNrZXRzInYKD29mcF9ncm91cF9lbnRyeRIvCgRkZXNjGAEgASgLMhsub3BlbmZsb3dfMTMub2ZwX2dyb3VwX2Rlc2NSBGRlc2MSMgoFc3RhdHMYAiABKAsyHC5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfc3RhdHNSBXN0YXRzIocBChJvZnBfZ3JvdXBfZmVhdHVyZXMSFAoFdHlwZXMYASABKA1SBXR5cGVzEiIKDGNhcGFiaWxpdGllcxgCIAEoDVIMY2FwYWJpbGl0aWVzEh0KCm1heF9ncm91cHMYAyADKA1SCW1heEdyb3VwcxIYCgdhY3Rpb25zGAQgAygNUgdhY3Rpb25zIjgKG29mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdBIZCghtZXRlcl9pZBgBIAEoDVIHbWV0ZXJJZCJqChRvZnBfbWV0ZXJfYmFuZF9zdGF0cxIqChFwYWNrZXRfYmFuZF9jb3VudBgBIAEoBFIPcGFja2V0QmFuZENvdW50EiYKD2J5dGVfYmFuZF9jb3VudBgCIAEoBFINYnl0ZUJhbmRDb3VudCKhAgoPb2ZwX21ldGVyX3N0YXRzEhkKCG1ldGVyX2lkGAEgASgNUgdtZXRlcklkEh0KCmZsb3dfY291bnQYAiABKA1SCWZsb3dDb3VudBImCg9wYWNrZXRfaW5fY291bnQYAyABKARSDXBhY2tldEluQ291bnQSIgoNYnl0ZV9pbl9jb3VudBgEIAEoBFILYnl0ZUluQ291bnQSIQoMZHVyYXRpb25fc2VjGAUgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAYgASgNUgxkdXJhdGlvbk5zZWMSQAoKYmFuZF9zdGF0cxgHIAMoCzIhLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX3N0YXRzUgliYW5kU3RhdHMifQoQb2ZwX21ldGVyX2NvbmZpZxIUCgVmbGFncxgBIAEoDVIFZmxhZ3MSGQoIbWV0ZXJfaWQYAiABKA1SB21ldGVySWQSOAoFYmFuZHMYAyADKAsyIi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9oZWFkZXJSBWJhbmRzIq4BChJvZnBfbWV0ZXJfZmVhdHVyZXMSGwoJbWF4X21ldGVyGAEgASgNUghtYXhNZXRlchIdCgpiYW5kX3R5cGVzGAIgASgNUgliYW5kVHlwZXMSIgoMY2FwYWJpbGl0aWVzGAMgASgNUgxjYXBhYmlsaXRpZXMSGwoJbWF4X2JhbmRzGAQgASgNUghtYXhCYW5kcxIbCgltYXhfY29sb3IYBSABKA1SCG1heENvbG9yInwKD29mcF9tZXRlcl9lbnRyeRI1CgZjb25maWcYASABKAsyHS5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfY29uZmlnUgZjb25maWcSMgoFc3RhdHMYAiABKAsyHC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfc3RhdHNSBXN0YXRzInYKIW9mcF9leHBlcmltZW50ZXJfbXVsdGlwYXJ0X2hlYWRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchIZCghleHBfdHlwZRgCIAEoDVIHZXhwVHlwZRISCgRkYXRhGAMgASgMUgRkYXRhImwKF29mcF9leHBlcmltZW50ZXJfaGVhZGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEhIKBGRhdGEYAyABKAxSBGRhdGEiRQoVb2ZwX3F1ZXVlX3Byb3BfaGVhZGVyEhoKCHByb3BlcnR5GAEgASgNUghwcm9wZXJ0eRIQCgNsZW4YAiABKA1SA2xlbiJyChdvZnBfcXVldWVfcHJvcF9taW5fcmF0ZRJDCgtwcm9wX2hlYWRlchgBIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcEhlYWRlchISCgRyYXRlGAIgASgNUgRyYXRlInIKF29mcF9xdWV1ZV9wcm9wX21heF9yYXRlEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEhIKBHJhdGUYAiABKA1SBHJhdGUimgEKG29mcF9xdWV1ZV9wcm9wX2V4cGVyaW1lbnRlchJDCgtwcm9wX2hlYWRlchgBIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcEhlYWRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAMgASgMUgRkYXRhIoUBChBvZnBfcGFja2V0X3F1ZXVlEhkKCHF1ZXVlX2lkGAEgASgNUgdxdWV1ZUlkEhIKBHBvcnQYAiABKA1SBHBvcnQSQgoKcHJvcGVydGllcxgEIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcGVydGllcyIyChxvZnBfcXVldWVfZ2V0X2NvbmZpZ19yZXF1ZXN0EhIKBHBvcnQYASABKA1SBHBvcnQiZwoab2ZwX3F1ZXVlX2dldF9jb25maWdfcmVwbHkSEgoEcG9ydBgBIAEoDVIEcG9ydBI1CgZxdWV1ZXMYAiADKAsyHS5vcGVuZmxvd18xMy5vZnBfcGFja2V0X3F1ZXVlUgZxdWV1ZXMiRQoUb2ZwX2FjdGlvbl9zZXRfcXVldWUSEgoEdHlwZRgBIAEoDVIEdHlwZRIZCghxdWV1ZV9pZBgDIAEoDVIHcXVldWVJZCJNChdvZnBfcXVldWVfc3RhdHNfcmVxdWVzdBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SGQoIcXVldWVfaWQYAiABKA1SB3F1ZXVlSWQi5AEKD29mcF9xdWV1ZV9zdGF0cxIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SGQoIcXVldWVfaWQYAiABKA1SB3F1ZXVlSWQSGQoIdHhfYnl0ZXMYAyABKARSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgEIAEoBFIJdHhQYWNrZXRzEhsKCXR4X2Vycm9ycxgFIAEoBFIIdHhFcnJvcnMSIQoMZHVyYXRpb25fc2VjGAYgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAcgASgNUgxkdXJhdGlvbk5zZWMibQoQb2ZwX3JvbGVfcmVxdWVzdBI0CgRyb2xlGAEgASgOMiAub3BlbmZsb3dfMTMub2ZwX2NvbnRyb2xsZXJfcm9sZVIEcm9sZRIjCg1nZW5lcmF0aW9uX2lkGAIgASgEUgxnZW5lcmF0aW9uSWQijgEKEG9mcF9hc3luY19jb25maWcSJAoOcGFja2V0X2luX21hc2sYASADKA1SDHBhY2tldEluTWFzaxIoChBwb3J0X3N0YXR1c19tYXNrGAIgAygNUg5wb3J0U3RhdHVzTWFzaxIqChFmbG93X3JlbW92ZWRfbWFzaxgDIAMoDVIPZmxvd1JlbW92ZWRNYXNrImsKDk1ldGVyTW9kVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI3CgltZXRlcl9tb2QYAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfbW9kUghtZXRlck1vZBIQCgN4aWQYAyABKA1SA3hpZCJQCg9NZXRlclN0YXRzUmVwbHkSPQoLbWV0ZXJfc3RhdHMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfc3RhdHNSCm1ldGVyU3RhdHMiaQoPRmxvd1RhYmxlVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI0CghmbG93X21vZBgCIAEoCzIZLm9wZW5mbG93XzEzLm9mcF9mbG93X21vZFIHZmxvd01vZBIQCgN4aWQYAyABKA1SA3hpZCJxChRGbG93R3JvdXBUYWJsZVVwZGF0ZRIOCgJpZBgBIAEoCVICaWQSNwoJZ3JvdXBfbW9kGAIgASgLMhoub3BlbmZsb3dfMTMub2ZwX2dyb3VwX21vZFIIZ3JvdXBNb2QSEAoDeGlkGAMgASgNUgN4aWQiOgoFRmxvd3MSMQoFaXRlbXMYASADKAsyGy5vcGVuZmxvd18xMy5vZnBfZmxvd19zdGF0c1IFaXRlbXMiPAoGTWV0ZXJzEjIKBWl0ZW1zGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX21ldGVyX2VudHJ5UgVpdGVtcyJACgpGbG93R3JvdXBzEjIKBWl0ZW1zGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX2dyb3VwX2VudHJ5UgVpdGVtcyJpCgtGbG93Q2hhbmdlcxIpCgZ0b19hZGQYASABKAsyEi5vcGVuZmxvd18xMy5GbG93c1IFdG9BZGQSLwoJdG9fcmVtb3ZlGAIgASgLMhIub3BlbmZsb3dfMTMuRmxvd3NSCHRvUmVtb3ZlIq4BChBGbG93R3JvdXBDaGFuZ2VzEi4KBnRvX2FkZBgBIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSBXRvQWRkEjQKCXRvX3JlbW92ZRgCIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSCHRvUmVtb3ZlEjQKCXRvX3VwZGF0ZRgDIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSCHRvVXBkYXRlIlMKCFBhY2tldEluEg4KAmlkGAEgASgJUgJpZBI3CglwYWNrZXRfaW4YAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfcGFja2V0X2luUghwYWNrZXRJbiJXCglQYWNrZXRPdXQSDgoCaWQYASABKAlSAmlkEjoKCnBhY2tldF9vdXQYAiABKAsyGy5vcGVuZmxvd18xMy5vZnBfcGFja2V0X291dFIJcGFja2V0T3V0IpsBCgtDaGFuZ2VFdmVudBIOCgJpZBgBIAEoCVICaWQSPwoLcG9ydF9zdGF0dXMYAiABKAsyHC5vcGVuZmxvd18xMy5vZnBfcG9ydF9zdGF0dXNIAFIKcG9ydFN0YXR1cxIyCgVlcnJvchgDIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9lcnJvcl9tc2dIAFIFZXJyb3JCBwoFZXZlbnQq1QEKC29mcF9wb3J0X25vEhAKDE9GUFBfSU5WQUxJRBAAEhAKCE9GUFBfTUFYEID+//8HEhQKDE9GUFBfSU5fUE9SVBD4////BxISCgpPRlBQX1RBQkxFEPn///8HEhMKC09GUFBfTk9STUFMEPr///8HEhIKCk9GUFBfRkxPT0QQ+////wcSEAoIT0ZQUF9BTEwQ/P///wcSFwoPT0ZQUF9DT05UUk9MTEVSEP3///8HEhIKCk9GUFBfTE9DQUwQ/v///wcSEAoIT0ZQUF9BTlkQ/////wcqyAUKCG9mcF90eXBlEg4KCk9GUFRfSEVMTE8QABIOCgpPRlBUX0VSUk9SEAESFQoRT0ZQVF9FQ0hPX1JFUVVFU1QQAhITCg9PRlBUX0VDSE9fUkVQTFkQAxIVChFPRlBUX0VYUEVSSU1FTlRFUhAEEhkKFU9GUFRfRkVBVFVSRVNfUkVRVUVTVBAFEhcKE09GUFRfRkVBVFVSRVNfUkVQTFkQBhIbChdPRlBUX0dFVF9DT05GSUdfUkVRVUVTVBAHEhkKFU9GUFRfR0VUX0NPTkZJR19SRVBMWRAIEhMKD09GUFRfU0VUX0NPTkZJRxAJEhIKDk9GUFRfUEFDS0VUX0lOEAoSFQoRT0ZQVF9GTE9XX1JFTU9WRUQQCxIUChBPRlBUX1BPUlRfU1RBVFVTEAwSEwoPT0ZQVF9QQUNLRVRfT1VUEA0SEQoNT0ZQVF9GTE9XX01PRBAOEhIKDk9GUFRfR1JPVVBfTU9EEA8SEQoNT0ZQVF9QT1JUX01PRBAQEhIKDk9GUFRfVEFCTEVfTU9EEBESGgoWT0ZQVF9NVUxUSVBBUlRfUkVRVUVTVBASEhgKFE9GUFRfTVVMVElQQVJUX1JFUExZEBMSGAoUT0ZQVF9CQVJSSUVSX1JFUVVFU1QQFBIWChJPRlBUX0JBUlJJRVJfUkVQTFkQFRIhCh1PRlBUX1FVRVVFX0dFVF9DT05GSUdfUkVRVUVTVBAWEh8KG09GUFRfUVVFVUVfR0VUX0NPTkZJR19SRVBMWRAXEhUKEU9GUFRfUk9MRV9SRVFVRVNUEBgSEwoPT0ZQVF9ST0xFX1JFUExZEBkSGgoWT0ZQVF9HRVRfQVNZTkNfUkVRVUVTVBAaEhgKFE9GUFRfR0VUX0FTWU5DX1JFUExZEBsSEgoOT0ZQVF9TRVRfQVNZTkMQHBISCg5PRlBUX01FVEVSX01PRBAdKkMKE29mcF9oZWxsb19lbGVtX3R5cGUSEgoOT0ZQSEVUX0lOVkFMSUQQABIYChRPRlBIRVRfVkVSU0lPTkJJVE1BUBABKmUKEG9mcF9jb25maWdfZmxhZ3MSFAoQT0ZQQ19GUkFHX05PUk1BTBAAEhIKDk9GUENfRlJBR19EUk9QEAESEwoPT0ZQQ19GUkFHX1JFQVNNEAISEgoOT0ZQQ19GUkFHX01BU0sQAypAChBvZnBfdGFibGVfY29uZmlnEhEKDU9GUFRDX0lOVkFMSUQQABIZChVPRlBUQ19ERVBSRUNBVEVEX01BU0sQAyo+CglvZnBfdGFibGUSEQoNT0ZQVFRfSU5WQUxJRBAAEg4KCU9GUFRUX01BWBD+ARIOCglPRlBUVF9BTEwQ/wEquwEKEG9mcF9jYXBhYmlsaXRpZXMSEAoMT0ZQQ19JTlZBTElEEAASEwoPT0ZQQ19GTE9XX1NUQVRTEAESFAoQT0ZQQ19UQUJMRV9TVEFUUxACEhMKD09GUENfUE9SVF9TVEFUUxAEEhQKEE9GUENfR1JPVVBfU1RBVFMQCBIRCg1PRlBDX0lQX1JFQVNNECASFAoQT0ZQQ19RVUVVRV9TVEFUUxBAEhYKEU9GUENfUE9SVF9CTE9DS0VEEIACKnYKD29mcF9wb3J0X2NvbmZpZxIRCg1PRlBQQ19JTlZBTElEEAASEwoPT0ZQUENfUE9SVF9ET1dOEAESEQoNT0ZQUENfTk9fUkVDVhAEEhAKDE9GUFBDX05PX0ZXRBAgEhYKEk9GUFBDX05PX1BBQ0tFVF9JThBAKlsKDm9mcF9wb3J0X3N0YXRlEhEKDU9GUFBTX0lOVkFMSUQQABITCg9PRlBQU19MSU5LX0RPV04QARIRCg1PRlBQU19CTE9DS0VEEAISDgoKT0ZQUFNfTElWRRAEKt0CChFvZnBfcG9ydF9mZWF0dXJlcxIRCg1PRlBQRl9JTlZBTElEEAASEQoNT0ZQUEZfMTBNQl9IRBABEhEKDU9GUFBGXzEwTUJfRkQQAhISCg5PRlBQRl8xMDBNQl9IRBAEEhIKDk9GUFBGXzEwME1CX0ZEEAgSEAoMT0ZQUEZfMUdCX0hEEBASEAoMT0ZQUEZfMUdCX0ZEECASEQoNT0ZQUEZfMTBHQl9GRBBAEhIKDU9GUFBGXzQwR0JfRkQQgAESEwoOT0ZQUEZfMTAwR0JfRkQQgAISEQoMT0ZQUEZfMVRCX0ZEEIAEEhAKC09GUFBGX09USEVSEIAIEhEKDE9GUFBGX0NPUFBFUhCAEBIQCgtPRlBQRl9GSUJFUhCAIBISCg1PRlBQRl9BVVRPTkVHEIBAEhEKC09GUFBGX1BBVVNFEICAARIWChBPRlBQRl9QQVVTRV9BU1lNEICAAipECg9vZnBfcG9ydF9yZWFzb24SDQoJT0ZQUFJfQUREEAASEAoMT0ZQUFJfREVMRVRFEAESEAoMT0ZQUFJfTU9ESUZZEAIqMwoOb2ZwX21hdGNoX3R5cGUSEgoOT0ZQTVRfU1RBTkRBUkQQABINCglPRlBNVF9PWE0QASprCg1vZnBfb3htX2NsYXNzEhAKDE9GUFhNQ19OWE1fMBAAEhAKDE9GUFhNQ19OWE1fMRABEhsKFU9GUFhNQ19PUEVORkxPV19CQVNJQxCAgAISGQoTT0ZQWE1DX0VYUEVSSU1FTlRFUhD//wMqkAgKE294bV9vZmJfZmllbGRfdHlwZXMSFgoST0ZQWE1UX09GQl9JTl9QT1JUEAASGgoWT0ZQWE1UX09GQl9JTl9QSFlfUE9SVBABEhcKE09GUFhNVF9PRkJfTUVUQURBVEEQAhIWChJPRlBYTVRfT0ZCX0VUSF9EU1QQAxIWChJPRlBYTVRfT0ZCX0VUSF9TUkMQBBIXChNPRlBYTVRfT0ZCX0VUSF9UWVBFEAUSFwoTT0ZQWE1UX09GQl9WTEFOX1ZJRBAGEhcKE09GUFhNVF9PRkJfVkxBTl9QQ1AQBxIWChJPRlBYTVRfT0ZCX0lQX0RTQ1AQCBIVChFPRlBYTVRfT0ZCX0lQX0VDThAJEhcKE09GUFhNVF9PRkJfSVBfUFJPVE8QChIXChNPRlBYTVRfT0ZCX0lQVjRfU1JDEAsSFwoTT0ZQWE1UX09GQl9JUFY0X0RTVBAMEhYKEk9GUFhNVF9PRkJfVENQX1NSQxANEhYKEk9GUFhNVF9PRkJfVENQX0RTVBAOEhYKEk9GUFhNVF9PRkJfVURQX1NSQxAPEhYKEk9GUFhNVF9PRkJfVURQX0RTVBAQEhcKE09GUFhNVF9PRkJfU0NUUF9TUkMQERIXChNPRlBYTVRfT0ZCX1NDVFBfRFNUEBISGgoWT0ZQWE1UX09GQl9JQ01QVjRfVFlQRRATEhoKFk9GUFhNVF9PRkJfSUNNUFY0X0NPREUQFBIVChFPRlBYTVRfT0ZCX0FSUF9PUBAVEhYKEk9GUFhNVF9PRkJfQVJQX1NQQRAWEhYKEk9GUFhNVF9PRkJfQVJQX1RQQRAXEhYKEk9GUFhNVF9PRkJfQVJQX1NIQRAYEhYKEk9GUFhNVF9PRkJfQVJQX1RIQRAZEhcKE09GUFhNVF9PRkJfSVBWNl9TUkMQGhIXChNPRlBYTVRfT0ZCX0lQVjZfRFNUEBsSGgoWT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTBAcEhoKFk9GUFhNVF9PRkJfSUNNUFY2X1RZUEUQHRIaChZPRlBYTVRfT0ZCX0lDTVBWNl9DT0RFEB4SHQoZT0ZQWE1UX09GQl9JUFY2X05EX1RBUkdFVBAfEhoKFk9GUFhNVF9PRkJfSVBWNl9ORF9TTEwQIBIaChZPRlBYTVRfT0ZCX0lQVjZfTkRfVExMECESGQoVT0ZQWE1UX09GQl9NUExTX0xBQkVMECISFgoST0ZQWE1UX09GQl9NUExTX1RDECMSFwoTT0ZQWE1UX09GQl9NUExTX0JPUxAkEhcKE09GUFhNVF9PRkJfUEJCX0lTSUQQJRIYChRPRlBYTVRfT0ZCX1RVTk5FTF9JRBAmEhoKFk9GUFhNVF9PRkJfSVBWNl9FWFRIRFIQJyozCgtvZnBfdmxhbl9pZBIPCgtPRlBWSURfTk9ORRAAEhMKDk9GUFZJRF9QUkVTRU5UEIAgKskBChRvZnBfaXB2NmV4dGhkcl9mbGFncxISCg5PRlBJRUhfSU5WQUxJRBAAEhEKDU9GUElFSF9OT05FWFQQARIOCgpPRlBJRUhfRVNQEAISDwoLT0ZQSUVIX0FVVEgQBBIPCgtPRlBJRUhfREVTVBAIEg8KC09GUElFSF9GUkFHEBASEQoNT0ZQSUVIX1JPVVRFUhAgEg4KCk9GUElFSF9IT1AQQBIRCgxPRlBJRUhfVU5SRVAQgAESEQoMT0ZQSUVIX1VOU0VREIACKvwCCg9vZnBfYWN0aW9uX3R5cGUSEAoMT0ZQQVRfT1VUUFVUEAASFgoST0ZQQVRfQ09QWV9UVExfT1VUEAsSFQoRT0ZQQVRfQ09QWV9UVExfSU4QDBIWChJPRlBBVF9TRVRfTVBMU19UVEwQDxIWChJPRlBBVF9ERUNfTVBMU19UVEwQEBITCg9PRlBBVF9QVVNIX1ZMQU4QERISCg5PRlBBVF9QT1BfVkxBThASEhMKD09GUEFUX1BVU0hfTVBMUxATEhIKDk9GUEFUX1BPUF9NUExTEBQSEwoPT0ZQQVRfU0VUX1FVRVVFEBUSDwoLT0ZQQVRfR1JPVVAQFhIUChBPRlBBVF9TRVRfTldfVFRMEBcSFAoQT0ZQQVRfREVDX05XX1RUTBAYEhMKD09GUEFUX1NFVF9GSUVMRBAZEhIKDk9GUEFUX1BVU0hfUEJCEBoSEQoNT0ZQQVRfUE9QX1BCQhAbEhgKEk9GUEFUX0VYUEVSSU1FTlRFUhD//wMqVgoWb2ZwX2NvbnRyb2xsZXJfbWF4X2xlbhISCg5PRlBDTUxfSU5WQUxJRBAAEhAKCk9GUENNTF9NQVgQ5f8DEhYKEE9GUENNTF9OT19CVUZGRVIQ//8DKs8BChRvZnBfaW5zdHJ1Y3Rpb25fdHlwZRIRCg1PRlBJVF9JTlZBTElEEAASFAoQT0ZQSVRfR09UT19UQUJMRRABEhgKFE9GUElUX1dSSVRFX01FVEFEQVRBEAISFwoTT0ZQSVRfV1JJVEVfQUNUSU9OUxADEhcKE09GUElUX0FQUExZX0FDVElPTlMQBBIXChNPRlBJVF9DTEVBUl9BQ1RJT05TEAUSDwoLT0ZQSVRfTUVURVIQBhIYChJPRlBJVF9FWFBFUklNRU5URVIQ//8DKnsKFG9mcF9mbG93X21vZF9jb21tYW5kEg0KCU9GUEZDX0FERBAAEhAKDE9GUEZDX01PRElGWRABEhcKE09GUEZDX01PRElGWV9TVFJJQ1QQAhIQCgxPRlBGQ19ERUxFVEUQAxIXChNPRlBGQ19ERUxFVEVfU1RSSUNUEAQqowEKEm9mcF9mbG93X21vZF9mbGFncxIRCg1PRlBGRl9JTlZBTElEEAASFwoTT0ZQRkZfU0VORF9GTE9XX1JFTRABEhcKE09GUEZGX0NIRUNLX09WRVJMQVAQAhIWChJPRlBGRl9SRVNFVF9DT1VOVFMQBBIXChNPRlBGRl9OT19QS1RfQ09VTlRTEAgSFwoTT0ZQRkZfTk9fQllUX0NPVU5UUxAQKlMKCW9mcF9ncm91cBIQCgxPRlBHX0lOVkFMSUQQABIQCghPRlBHX01BWBCA/v//BxIQCghPRlBHX0FMTBD8////BxIQCghPRlBHX0FOWRD/////BypKChVvZnBfZ3JvdXBfbW9kX2NvbW1hbmQSDQoJT0ZQR0NfQUREEAASEAoMT0ZQR0NfTU9ESUZZEAESEAoMT0ZQR0NfREVMRVRFEAIqUwoOb2ZwX2dyb3VwX3R5cGUSDQoJT0ZQR1RfQUxMEAASEAoMT0ZQR1RfU0VMRUNUEAESEgoOT0ZQR1RfSU5ESVJFQ1QQAhIMCghPRlBHVF9GRhADKlAKFG9mcF9wYWNrZXRfaW5fcmVhc29uEhEKDU9GUFJfTk9fTUFUQ0gQABIPCgtPRlBSX0FDVElPThABEhQKEE9GUFJfSU5WQUxJRF9UVEwQAiqLAQoXb2ZwX2Zsb3dfcmVtb3ZlZF9yZWFzb24SFgoST0ZQUlJfSURMRV9USU1FT1VUEAASFgoST0ZQUlJfSEFSRF9USU1FT1VUEAESEAoMT0ZQUlJfREVMRVRFEAISFgoST0ZQUlJfR1JPVVBfREVMRVRFEAMSFgoST0ZQUlJfTUVURVJfREVMRVRFEAQqbgoJb2ZwX21ldGVyEg0KCU9GUE1fWkVSTxAAEhAKCE9GUE1fTUFYEICA/P8HEhUKDU9GUE1fU0xPV1BBVEgQ/f///wcSFwoPT0ZQTV9DT05UUk9MTEVSEP7///8HEhAKCE9GUE1fQUxMEP////8HKm0KE29mcF9tZXRlcl9iYW5kX3R5cGUSEgoOT0ZQTUJUX0lOVkFMSUQQABIPCgtPRlBNQlRfRFJPUBABEhYKEk9GUE1CVF9EU0NQX1JFTUFSSxACEhkKE09GUE1CVF9FWFBFUklNRU5URVIQ//8DKkoKFW9mcF9tZXRlcl9tb2RfY29tbWFuZBINCglPRlBNQ19BREQQABIQCgxPRlBNQ19NT0RJRlkQARIQCgxPRlBNQ19ERUxFVEUQAipnCg9vZnBfbWV0ZXJfZmxhZ3MSEQoNT0ZQTUZfSU5WQUxJRBAAEg4KCk9GUE1GX0tCUFMQARIPCgtPRlBNRl9QS1RQUxACEg8KC09GUE1GX0JVUlNUEAQSDwoLT0ZQTUZfU1RBVFMQCCqkAwoOb2ZwX2Vycm9yX3R5cGUSFgoST0ZQRVRfSEVMTE9fRkFJTEVEEAASFQoRT0ZQRVRfQkFEX1JFUVVFU1QQARIUChBPRlBFVF9CQURfQUNUSU9OEAISGQoVT0ZQRVRfQkFEX0lOU1RSVUNUSU9OEAMSEwoPT0ZQRVRfQkFEX01BVENIEAQSGQoVT0ZQRVRfRkxPV19NT0RfRkFJTEVEEAUSGgoWT0ZQRVRfR1JPVVBfTU9EX0ZBSUxFRBAGEhkKFU9GUEVUX1BPUlRfTU9EX0ZBSUxFRBAHEhoKFk9GUEVUX1RBQkxFX01PRF9GQUlMRUQQCBIZChVPRlBFVF9RVUVVRV9PUF9GQUlMRUQQCRIeChpPRlBFVF9TV0lUQ0hfQ09ORklHX0ZBSUxFRBAKEh0KGU9GUEVUX1JPTEVfUkVRVUVTVF9GQUlMRUQQCxIaChZPRlBFVF9NRVRFUl9NT0RfRkFJTEVEEAwSHwobT0ZQRVRfVEFCTEVfRkVBVFVSRVNfRkFJTEVEEA0SGAoST0ZQRVRfRVhQRVJJTUVOVEVSEP//AypCChVvZnBfaGVsbG9fZmFpbGVkX2NvZGUSFwoTT0ZQSEZDX0lOQ09NUEFUSUJMRRAAEhAKDE9GUEhGQ19FUEVSTRABKu0CChRvZnBfYmFkX3JlcXVlc3RfY29kZRIWChJPRlBCUkNfQkFEX1ZFUlNJT04QABITCg9PRlBCUkNfQkFEX1RZUEUQARIYChRPRlBCUkNfQkFEX01VTFRJUEFSVBACEhsKF09GUEJSQ19CQURfRVhQRVJJTUVOVEVSEAMSFwoTT0ZQQlJDX0JBRF9FWFBfVFlQRRAEEhAKDE9GUEJSQ19FUEVSTRAFEhIKDk9GUEJSQ19CQURfTEVOEAYSFwoTT0ZQQlJDX0JVRkZFUl9FTVBUWRAHEhkKFU9GUEJSQ19CVUZGRVJfVU5LTk9XThAIEhcKE09GUEJSQ19CQURfVEFCTEVfSUQQCRITCg9PRlBCUkNfSVNfU0xBVkUQChITCg9PRlBCUkNfQkFEX1BPUlQQCxIVChFPRlBCUkNfQkFEX1BBQ0tFVBAMEiQKIE9GUEJSQ19NVUxUSVBBUlRfQlVGRkVSX09WRVJGTE9XEA0qnAMKE29mcF9iYWRfYWN0aW9uX2NvZGUSEwoPT0ZQQkFDX0JBRF9UWVBFEAASEgoOT0ZQQkFDX0JBRF9MRU4QARIbChdPRlBCQUNfQkFEX0VYUEVSSU1FTlRFUhACEhcKE09GUEJBQ19CQURfRVhQX1RZUEUQAxIXChNPRlBCQUNfQkFEX09VVF9QT1JUEAQSFwoTT0ZQQkFDX0JBRF9BUkdVTUVOVBAFEhAKDE9GUEJBQ19FUEVSTRAGEhMKD09GUEJBQ19UT09fTUFOWRAHEhQKEE9GUEJBQ19CQURfUVVFVUUQCBIYChRPRlBCQUNfQkFEX09VVF9HUk9VUBAJEh0KGU9GUEJBQ19NQVRDSF9JTkNPTlNJU1RFTlQQChIcChhPRlBCQUNfVU5TVVBQT1JURURfT1JERVIQCxISCg5PRlBCQUNfQkFEX1RBRxAMEhcKE09GUEJBQ19CQURfU0VUX1RZUEUQDRIWChJPRlBCQUNfQkFEX1NFVF9MRU4QDhIbChdPRlBCQUNfQkFEX1NFVF9BUkdVTUVOVBAPKvoBChhvZnBfYmFkX2luc3RydWN0aW9uX2NvZGUSFwoTT0ZQQklDX1VOS05PV05fSU5TVBAAEhUKEU9GUEJJQ19VTlNVUF9JTlNUEAESFwoTT0ZQQklDX0JBRF9UQUJMRV9JRBACEhkKFU9GUEJJQ19VTlNVUF9NRVRBREFUQRADEh4KGk9GUEJJQ19VTlNVUF9NRVRBREFUQV9NQVNLEAQSGwoXT0ZQQklDX0JBRF9FWFBFUklNRU5URVIQBRIXChNPRlBCSUNfQkFEX0VYUF9UWVBFEAYSEgoOT0ZQQklDX0JBRF9MRU4QBxIQCgxPRlBCSUNfRVBFUk0QCCqlAgoSb2ZwX2JhZF9tYXRjaF9jb2RlEhMKD09GUEJNQ19CQURfVFlQRRAAEhIKDk9GUEJNQ19CQURfTEVOEAESEgoOT0ZQQk1DX0JBRF9UQUcQAhIbChdPRlBCTUNfQkFEX0RMX0FERFJfTUFTSxADEhsKF09GUEJNQ19CQURfTldfQUREUl9NQVNLEAQSGAoUT0ZQQk1DX0JBRF9XSUxEQ0FSRFMQBRIUChBPRlBCTUNfQkFEX0ZJRUxEEAYSFAoQT0ZQQk1DX0JBRF9WQUxVRRAHEhMKD09GUEJNQ19CQURfTUFTSxAIEhUKEU9GUEJNQ19CQURfUFJFUkVREAkSFAoQT0ZQQk1DX0RVUF9GSUVMRBAKEhAKDE9GUEJNQ19FUEVSTRALKtIBChhvZnBfZmxvd19tb2RfZmFpbGVkX2NvZGUSEwoPT0ZQRk1GQ19VTktOT1dOEAASFgoST0ZQRk1GQ19UQUJMRV9GVUxMEAESGAoUT0ZQRk1GQ19CQURfVEFCTEVfSUQQAhITCg9PRlBGTUZDX09WRVJMQVAQAxIRCg1PRlBGTUZDX0VQRVJNEAQSFwoTT0ZQRk1GQ19CQURfVElNRU9VVBAFEhcKE09GUEZNRkNfQkFEX0NPTU1BTkQQBhIVChFPRlBGTUZDX0JBRF9GTEFHUxAHKqEDChlvZnBfZ3JvdXBfbW9kX2ZhaWxlZF9jb2RlEhgKFE9GUEdNRkNfR1JPVVBfRVhJU1RTEAASGQoVT0ZQR01GQ19JTlZBTElEX0dST1VQEAESHgoaT0ZQR01GQ19XRUlHSFRfVU5TVVBQT1JURUQQAhIZChVPRlBHTUZDX09VVF9PRl9HUk9VUFMQAxIaChZPRlBHTUZDX09VVF9PRl9CVUNLRVRTEAQSIAocT0ZQR01GQ19DSEFJTklOR19VTlNVUFBPUlRFRBAFEh0KGU9GUEdNRkNfV0FUQ0hfVU5TVVBQT1JURUQQBhIQCgxPRlBHTUZDX0xPT1AQBxIZChVPRlBHTUZDX1VOS05PV05fR1JPVVAQCBIZChVPRlBHTUZDX0NIQUlORURfR1JPVVAQCRIUChBPRlBHTUZDX0JBRF9UWVBFEAoSFwoTT0ZQR01GQ19CQURfQ09NTUFORBALEhYKEk9GUEdNRkNfQkFEX0JVQ0tFVBAMEhUKEU9GUEdNRkNfQkFEX1dBVENIEA0SEQoNT0ZQR01GQ19FUEVSTRAOKo8BChhvZnBfcG9ydF9tb2RfZmFpbGVkX2NvZGUSFAoQT0ZQUE1GQ19CQURfUE9SVBAAEhcKE09GUFBNRkNfQkFEX0hXX0FERFIQARIWChJPRlBQTUZDX0JBRF9DT05GSUcQAhIZChVPRlBQTUZDX0JBRF9BRFZFUlRJU0UQAxIRCg1PRlBQTUZDX0VQRVJNEAQqXQoZb2ZwX3RhYmxlX21vZF9mYWlsZWRfY29kZRIVChFPRlBUTUZDX0JBRF9UQUJMRRAAEhYKEk9GUFRNRkNfQkFEX0NPTkZJRxABEhEKDU9GUFRNRkNfRVBFUk0QAipaChhvZnBfcXVldWVfb3BfZmFpbGVkX2NvZGUSFAoQT0ZQUU9GQ19CQURfUE9SVBAAEhUKEU9GUFFPRkNfQkFEX1FVRVVFEAESEQoNT0ZQUU9GQ19FUEVSTRACKl4KHW9mcF9zd2l0Y2hfY29uZmlnX2ZhaWxlZF9jb2RlEhUKEU9GUFNDRkNfQkFEX0ZMQUdTEAASEwoPT0ZQU0NGQ19CQURfTEVOEAESEQoNT0ZQU0NGQ19FUEVSTRACKloKHG9mcF9yb2xlX3JlcXVlc3RfZmFpbGVkX2NvZGUSEQoNT0ZQUlJGQ19TVEFMRRAAEhEKDU9GUFJSRkNfVU5TVVAQARIUChBPRlBSUkZDX0JBRF9ST0xFEAIqxQIKGW9mcF9tZXRlcl9tb2RfZmFpbGVkX2NvZGUSEwoPT0ZQTU1GQ19VTktOT1dOEAASGAoUT0ZQTU1GQ19NRVRFUl9FWElTVFMQARIZChVPRlBNTUZDX0lOVkFMSURfTUVURVIQAhIZChVPRlBNTUZDX1VOS05PV05fTUVURVIQAxIXChNPRlBNTUZDX0JBRF9DT01NQU5EEAQSFQoRT0ZQTU1GQ19CQURfRkxBR1MQBRIUChBPRlBNTUZDX0JBRF9SQVRFEAYSFQoRT0ZQTU1GQ19CQURfQlVSU1QQBxIUChBPRlBNTUZDX0JBRF9CQU5EEAgSGwoXT0ZQTU1GQ19CQURfQkFORF9ERVRBSUwQCRIZChVPRlBNTUZDX09VVF9PRl9NRVRFUlMQChIYChRPRlBNTUZDX09VVF9PRl9CQU5EUxALKqkBCh5vZnBfdGFibGVfZmVhdHVyZXNfZmFpbGVkX2NvZGUSFQoRT0ZQVEZGQ19CQURfVEFCTEUQABIYChRPRlBURkZDX0JBRF9NRVRBREFUQRABEhQKEE9GUFRGRkNfQkFEX1RZUEUQAhITCg9PRlBURkZDX0JBRF9MRU4QAxIYChRPRlBURkZDX0JBRF9BUkdVTUVOVBAEEhEKDU9GUFRGRkNfRVBFUk0QBSrOAgoSb2ZwX211bHRpcGFydF90eXBlEg4KCk9GUE1QX0RFU0MQABIOCgpPRlBNUF9GTE9XEAESEwoPT0ZQTVBfQUdHUkVHQVRFEAISDwoLT0ZQTVBfVEFCTEUQAxIUChBPRlBNUF9QT1JUX1NUQVRTEAQSDwoLT0ZQTVBfUVVFVUUQBRIPCgtPRlBNUF9HUk9VUBAGEhQKEE9GUE1QX0dST1VQX0RFU0MQBxIYChRPRlBNUF9HUk9VUF9GRUFUVVJFUxAIEg8KC09GUE1QX01FVEVSEAkSFgoST0ZQTVBfTUVURVJfQ09ORklHEAoSGAoUT0ZQTVBfTUVURVJfRkVBVFVSRVMQCxIYChRPRlBNUF9UQUJMRV9GRUFUVVJFUxAMEhMKD09GUE1QX1BPUlRfREVTQxANEhgKEk9GUE1QX0VYUEVSSU1FTlRFUhD//wMqSgobb2ZwX211bHRpcGFydF9yZXF1ZXN0X2ZsYWdzEhYKEk9GUE1QRl9SRVFfSU5WQUxJRBAAEhMKD09GUE1QRl9SRVFfTU9SRRABKkwKGW9mcF9tdWx0aXBhcnRfcmVwbHlfZmxhZ3MSGAoUT0ZQTVBGX1JFUExZX0lOVkFMSUQQABIVChFPRlBNUEZfUkVQTFlfTU9SRRABKuQDChtvZnBfdGFibGVfZmVhdHVyZV9wcm9wX3R5cGUSGAoUT0ZQVEZQVF9JTlNUUlVDVElPTlMQABIdChlPRlBURlBUX0lOU1RSVUNUSU9OU19NSVNTEAESFwoTT0ZQVEZQVF9ORVhUX1RBQkxFUxACEhwKGE9GUFRGUFRfTkVYVF9UQUJMRVNfTUlTUxADEhkKFU9GUFRGUFRfV1JJVEVfQUNUSU9OUxAEEh4KGk9GUFRGUFRfV1JJVEVfQUNUSU9OU19NSVNTEAUSGQoVT0ZQVEZQVF9BUFBMWV9BQ1RJT05TEAYSHgoaT0ZQVEZQVF9BUFBMWV9BQ1RJT05TX01JU1MQBxIRCg1PRlBURlBUX01BVENIEAgSFQoRT0ZQVEZQVF9XSUxEQ0FSRFMQChIaChZPRlBURlBUX1dSSVRFX1NFVEZJRUxEEAwSHwobT0ZQVEZQVF9XUklURV9TRVRGSUVMRF9NSVNTEA0SGgoWT0ZQVEZQVF9BUFBMWV9TRVRGSUVMRBAOEh8KG09GUFRGUFRfQVBQTFlfU0VURklFTERfTUlTUxAPEhoKFE9GUFRGUFRfRVhQRVJJTUVOVEVSEP7/AxIfChlPRlBURlBUX0VYUEVSSU1FTlRFUl9NSVNTEP//AyqTAQoWb2ZwX2dyb3VwX2NhcGFiaWxpdGllcxISCg5PRlBHRkNfSU5WQUxJRBAAEhgKFE9GUEdGQ19TRUxFQ1RfV0VJR0hUEAESGgoWT0ZQR0ZDX1NFTEVDVF9MSVZFTkVTUxACEhMKD09GUEdGQ19DSEFJTklORxAEEhoKFk9GUEdGQ19DSEFJTklOR19DSEVDS1MQCCprChRvZnBfcXVldWVfcHJvcGVydGllcxIRCg1PRlBRVF9JTlZBTElEEAASEgoOT0ZQUVRfTUlOX1JBVEUQARISCg5PRlBRVF9NQVhfUkFURRACEhgKEk9GUFFUX0VYUEVSSU1FTlRFUhD//wMqcQoTb2ZwX2NvbnRyb2xsZXJfcm9sZRIXChNPRlBDUl9ST0xFX05PQ0hBTkdFEAASFAoQT0ZQQ1JfUk9MRV9FUVVBTBABEhUKEU9GUENSX1JPTEVfTUFTVEVSEAISFAoQT0ZQQ1JfUk9MRV9TTEFWRRADQlUKHm9yZy5vcGVuY29yZC52b2x0aGEub3BlbmZsb3cxM1ozZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y0L2dvL29wZW5mbG93XzEzSuu0BgoHEgU5AIcSAQrkFAoBDBIDOQASGvkGCiBUaGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcmVuZGVyaW5nIG9mIE9wZW5GbG93IG1lc3NhZ2UKIGRlZmluaXRpb25zIGludG8gcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2VzLiBXZSBwcmVzZXJ2ZWQgdGhlIHNuYWtlCiBjYXNlIHN5bnRheCwgYW5kIG1hZGUgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgogLSBhbGwgcGFkIGZpZWxkcyBkcm9wcGVkCiAtIGZvciBlYWNoIGVudW0gdmFsdWUgYWJvdmUgMHg3ZmZmZmZmZiB0aGUgTVNCIGlzIGRyb3BwZWQuIEZvciBleGFtcGxlLAogICAweGZmZmZmZmZmIGlzIG5vdyAweDdmZmZmZmZmLgogLSAnPHR5cGU+IHRoaW5nWy4uLl0nIGlzIHJlcGxhY2VkIHdpdGggJ3JlcGVhdGVkIDx0eXBlPiB0aGluZycKIC0gJ2NoYXIgdGhpbmdbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAnc3RyaW5nIHRoaW5nJwogLSAndWludDhfdCBkYXRhWy4uLl0nIGlzIHJlcGxhY2VkIHdpdGggJ2J5dGVzIGRhdGEnCiAtIHRoZSBmb2xsb3dpbmcgc3lzdGVtYXRpYyBjaGFuZ2VzIGFyZSBkb25lIHRvIHZhcmlvdXMgaW50ZWdlciB0eXBlczoKICAgdWludDhfdCAgLT4gdWludDMyCiAgIHVpbnQxNl90IC0+IHVpbnQzMgogICB1aW50MzJfdCAtPiB1aW50MzIKICAgdWludDY0X3QgLT4gdWludDY0CiAtIHJlbW92ZWQgbW9zdCBsZW5ndGgsIGxlbiwgc2l6ZSBmaWVsZHMgd2hlcmUgdGhlc2UgdmFsdWVzIGNhbiBiZSBkZXRlcm1pbmVkCiAgIGZyb20gdGhlIGV4cGxpY2l0bHkgZW5jb2RlZCBsZW5ndGggb2YgInJlcGVhdGVkIiBwcm90b2J1ZiBmaWVsZHMuCiAtIGV4cGxpY2l0IHVzZSBvZiBlbnVtIHR5cGVzIHdoZXJlZXZlciBpdCBpcyB1bmFtYmlnb3VzIChhbmQgbm90IHVzZWQgYXMKICAgYml0bWFzay9mbGFncyB2YWx1ZS4KCjKmDSBDb3B5cmlnaHQgKGMpIDIwMDggVGhlIEJvYXJkIG9mIFRydXN0ZWVzIG9mIFRoZSBMZWxhbmQgU3RhbmZvcmQKIEp1bmlvciBVbml2ZXJzaXR5CiBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTIgT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24KCiBXZSBhcmUgbWFraW5nIHRoZSBPcGVuRmxvdyBzcGVjaWZpY2F0aW9uIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KIChTb2Z0d2FyZSkgYXZhaWxhYmxlIGZvciBwdWJsaWMgdXNlIGFuZCBiZW5lZml0IHdpdGggdGhlIGV4cGVjdGF0aW9uCiB0aGF0IG90aGVycyB3aWxsIHVzZSwgbW9kaWZ5IGFuZCBlbmhhbmNlIHRoZSBTb2Z0d2FyZSBhbmQgY29udHJpYnV0ZQogdGhvc2UgZW5oYW5jZW1lbnRzIGJhY2sgdG8gdGhlIGNvbW11bml0eS4gSG93ZXZlciwgc2luY2Ugd2Ugd291bGQKIGxpa2UgdG8gbWFrZSB0aGUgU29mdHdhcmUgYXZhaWxhYmxlIGZvciBicm9hZGVzdCB1c2UsIHdpdGggYXMgZmV3CiByZXN0cmljdGlvbnMgYXMgcG9zc2libGUgcGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZgogY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBTb2Z0d2FyZSB0byBkZWFsIGluCiB0aGUgU29mdHdhcmUgdW5kZXIgdGhlIGNvcHlyaWdodHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KCiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCiBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiBTT0ZUV0FSRS4KCiBUaGUgbmFtZSBhbmQgdHJhZGVtYXJrcyBvZiBjb3B5cmlnaHQgaG9sZGVyKHMpIG1heSBOT1QgYmUgdXNlZCBpbgogYWR2ZXJ0aXNpbmcgb3IgcHVibGljaXR5IHBlcnRhaW5pbmcgdG8gdGhlIFNvZnR3YXJlIG9yIGFueQogZGVyaXZhdGl2ZXMgd2l0aG91dCBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLgoyNSBPcGVuRmxvdzogcHJvdG9jb2wgYmV0d2VlbiBjb250cm9sbGVyIGFuZCBkYXRhcGF0aC4gCggKAQgSAzsASgoJCgIICxIDOwBKCggKAQgSAzwANwoJCgIIARIDPAA3CggKAQISAz4AFAoJCgIDABIDQAAmCqYECgIFABIEVQBqARo1IFBvcnQgbnVtYmVyaW5nLiBQb3J0cyBhcmUgbnVtYmVyZWQgc3RhcnRpbmcgZnJvbSAxLiAyYyBWZXJzaW9uIG51bWJlcjoKIE9wZW5GbG93IHZlcnNpb25zIHJlbGVhc2VkOiAweDAxID0gMS4wIDsgMHgwMiA9IDEuMSA7IDB4MDMgPSAxLjIKICAgICAweDA0ID0gMS4zCjJVIFRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBpbiB0aGUgdmVyc2lvbiBmaWVsZCBpcyByZXNlcnZlZCBhbmQgbXVzdAogYmUgc2V0IHRvIHplcm8uCjJ6I2RlZmluZSBPRlBfVkVSU0lPTiAgIDB4MDQKI2RlZmluZSBQSVBFTElORV9UQUJMRVMgNjQKI2RlZmluZSBPRlBfTUFYX1RBQkxFX05BTUVfTEVOIDMyCiNkZWZpbmUgT0ZQX01BWF9QT1JUX05BTUVfTEVOICAxNgoyLSBPZmZpY2lhbCBJQU5BIHJlZ2lz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IEZpZWxkcyB0byBtYXRjaCBhZ2FpbnN0IGZsb3dzIAoLCgMECgESBIEDCBEKHgoEBAoCABIEggMEHCIQIE9uZSBvZiBPRlBNVF8qIAoPCgUECgIABBIGggMEgQMTCg0KBQQKAgAGEgSCAwQSCg0KBQQKAgABEgSCAxMXCg0KBQQKAgADEgSCAxobChkKBAQKAgESBIMDBCoiCyAwIG9yIG1vcmUgCg0KBQQKAgEEEgSDAwQMCg0KBQQKAgEGEgSDAw0aCg0KBQQKAgEBEgSDAxslCg0KBQQKAgEDEgSDAygpCrcICgIFDBIGnQMAogMBGuYBIE9YTSBDbGFzcyBJRHMuCiBUaGUgaGlnaCBvcmRlciBiaXQgZGlmZmVyZW50aWF0ZSByZXNlcnZlZCBjbGFzc2VzIGZyb20gbWVtYmVyIGNsYXNzZXMuCiBDbGFzc2VzIDB4MDAwMCB0byAweDdGRkYgYXJlIG1lbWJlciBjbGFzc2VzLCBhbGxvY2F0ZWQgYnkgT05GLgogQ2xhc3NlcyAweDgwMDAgdG8gMHhGRkZFIGFyZSByZXNlcnZlZCBjbGFzc2VzLCByZXNlcnZlZCBmb3Igc3RhbmRhcmRpc2F0aW9uLgoyqQEgQ29tcG9uZW50cyBvZiBhIE9YTSBUTFYgaGVhZGVyLgogVGhvc2UgbWFjcm9zIGFyZSBub3QgdmFsaWQgZm9yIHRoZSBleHBlcmltZW50ZXIgY2xhc3MsIG1hY3JvcyBmb3IgdGhlCiBleHBlcmltZW50ZXIgY2xhc3Mgd2lsbCBkZXBlbmQgb24gdGhlIGV4cGVyaW1lbnRlciBoZWFkZXIgdXNlZC4gMpMFI2RlZmluZSBPWE1fSEVBREVSX18oQ0xBU1MsIEZJRUxELCBIQVNNQVNLLCBMRU5HVEgpIFwKICAgICgoKENMQVNTKSA8PCAxNikgfCAoKEZJRUxEKSA8PCA5KSB8ICgoSEFTTUFTSykgPDwgOCkgfCAoTEVOR1RIKSkKI2RlZmluZSBPWE1fSEVBREVSKENMQVNTLCBGSUVMRCwgTEVOR1RIKSBcCiAgICBPWE1fSEVBREVSX18oQ0xBU1MsIEZJRUxELCAwLCBMRU5HVEgpCiNkZWZpbmUgT1hNX0hFQURFUl9XKENMQVNTLCBGSUVMRCwgTEVOR1RIKSBc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X0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JTl9QSFlfUE9SVCwgNCkKIiAgVXNlZCBmb3IgT0ZQWE1UX09GX0lOX1BIWV9QT1JUIDK5BiBQaHlzaWNhbCBwb3J0IG9uIHdoaWNoIHRoZSBwYWNrZXQgd2FzIHJlY2VpdmVkLgoKIENvbnNpZGVyIGEgcGFja2V0IHJlY2VpdmVkIG9uIGEgdHVubmVsIGludGVyZmFjZSBkZWZpbmVkIG92ZXIgYSBsaW5rCiBhZ2dyZWdhdGlvbiBncm91cCAoTEFHKSB3aXRoIHR3byBwaHlzaWNhbCBwb3J0IG1lbWJlcnMuICBJZiB0aGUgdHVubmVsCiBpbnRlcmZhY2UgaXMgdGhlIGxvZ2ljYWwgcG9ydCBib3VuZCB0byBPcGVuRmxvdy4gIEluIHRoaXMgY2FzZSwKIE9GUFhNVF9PRl9JTl9QT1JUIGlzIHRoZSB0dW5uZWwncyBwb3J0IG51bWJlciBhbmQgT0ZQWE1UX09GX0lOX1BIWV9QT1JUIGlzCiB0aGUgcGh5c2ljYWwgcG9ydCBudW1iZXIgb2YgdGhlIExBRyBvbiB3aGljaCB0aGUgdHVubmVsIGlzIGNvbmZpZ3VyZWQuCgogV2hlbiBhIHBhY2tldCBpcyByZWNlaXZlZCBkaXJlY3RseSBvbiBhIHBoeXNpY2FsIHBvcnQgYW5kIG5vdCBwcm9jZXNzZWQgYnkgYQogbG9naWNhbCBwb3J0LCBPRlBYTVRfT0ZfSU5fUE9SVCBhbmQgT0ZQWE1UX09GX0lOX1BIWV9QT1JUIGhhdmUgdGhlIHNhbWUKIHZhbHVlLgoKIFRoaXMgZmllbGQgaXMgdXN1YWxseSBub3QgYXZhaWxhYmxlIGluIGEgcmVndWxhciBtYXRjaCBhbmQgb25seSBhdmFpbGFibGUKIGluIG9mcF9wYWNrZXRfaW4gbWVzc2FnZXMgd2hlbiBpdCdzIGRpZmZlcmVudCBmcm9tIE9YTV9PRl9JTl9QT1JULgoKIFByZXJlcXM6IE9YTV9PRl9JTl9QT1JUIG11c3QgYmUgcHJlc2VudC4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIDBRIEgAQIDgoNCgUEDAIDARIEgAQPHAoNCgUEDAIDAxIEgAQfIAqtAgoEBAwCBBIEjAQIIhqOASNkZWZpbmUgT1hNX09GX01FVEFEQVRBICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NRVRBREFUQSwgOCkKI2RlZmluZSBPWE1fT0ZfTUVUQURBVEFfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX01FVEFEQVRBLCA4KQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX01FVEFEQVRBIDJuIFRhYmxlIG1ldGFkYXRhLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiA2NC1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBAwCBAUSBIwECA4KDQoFBAwCBAESBIwEDx0KDQoFBAwCBAMSBIwEICEK4gMKBAQMAgUSBJkECBoamAIjZGVmaW5lIE9YTV9PRl9FVEhfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfRVRIX0RTVCwgNikKI2RlZmluZSBPWE1fT0ZfRVRIX0RTVF9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9EU1QsIDYpCiNkZWZpbmUgT1hNX09GX0VUSF9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfU1JDLCA2KQojZGVmaW5lIE9YTV9PRl9FVEhfU1JDX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfRVRIX1NSQywgNikKIi8gVXNlZCBmb3IgT0ZQWE1UX09GQl9FVEhfRFNUIChleGFjdGx5IDYgYnl0ZXMpIDKHASBTb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRkcmVzcyBpbiBFdGhlcm5ldCBoZWFkZXIuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuIAoNCgUEDAIFBRIEmQQIDQoNCgUEDAIFARIEmQQOFQoNCgUEDAIFAxIEmQQYGQo9CgQEDAIGEgSaBAgaIi8gVXNlZCBmb3IgT0ZQWE1UX09GQl9FVEhfU1JDIChleGFjdGx5IDYgYnl0ZXMpIAoNCgUEDAIGBRIEmgQIDQoNCgUEDAIGARIEmgQOFQoNCgUEDAIGAxIEmgQYGQrpAQoEBAwCBxIEpAQIHBpGI2RlZmluZSBPWE1fT0ZfRVRIX1RZUEUgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9UWVBFLDIpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfRVRIX1RZUEUgMnMgUGFja2V0J3MgRXRoZXJuZXQgdHlwZS4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgcFEgSkBAgOCg0KBQQMAgcBEgSkBA8XCg0KBQQMAgcDEgSkBBobCoMLCgQEDAIIEgTKBAgcGo4BI2RlZmluZSBPWE1fT0ZfVkxBTl9WSUQgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1ZMQU5fVklELCAyKQojZGVmaW5lIE9YTV9PRl9WTEFOX1ZJRF9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfVkxBTl9WSUQsIDIpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfVkxBTl9WSUQgMsMJIDgwMi4xUSBWSUQuCgogRm9yIGEgcGFja2V0IHdpdGggYW4gODAyLjFRIGhlYWRlciwgdGhpcyBpcyB0aGUgVkxBTi1JRCAoVklEKSBmcm9tIHRoZQogb3V0ZXJtb3N0IHRhZywgd2l0aCB0aGUgQ0ZJIGJpdCBmb3JjZWQgdG8gMS4gRm9yIGEgcGFja2V0IHdpdGggbm8gODAyLjFRCiBoZWFkZXIsIHRoaXMgaGFzIHZhbHVlIE9GUFZJRF9OT05FLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgd2l0aCBiaXQgMTMgaW5kaWNhdGluZwogcHJlc2VuY2Ugb2YgVkxBTiBoZWFkZXIgYW5kIDMgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMTMgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKIFRoaXMgZmllbGQgY2FuIGJlIHVzZWQgaW4gdmFyaW91cyB3YXlzOgoKICAgLSBJZiBpdCBpcyBub3QgY29uc3RyYWluZWQgYXQgYWxsLCB0aGUgbnhfbWF0Y2ggbWF0Y2hlcyBwYWNrZXRzIHdpdGhvdXQKICAgICBhbiA4MDIuMVEgaGVhZGVyIG9yIHdpdGggYW4gODAyLjFRIGhlYWRlciB0aGF0IGhhcyBhbnkgVklEIHZhbHVlLgoKICAgLSBUZXN0aW5nIGZvciBhbiBleGFjdCBtYXRjaCB3aXRoIDB4MCBtYXRjaGVzIG9ubHkgcGFja2V0cyB3aXRob3V0CiAgICAgYW4gODAyLjFRIGhlYWRlci4KCiAgIC0gVGVzdGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggd2l0aCBhIFZJRCB2YWx1ZSB3aXRoIENGST0xIG1hdGNoZXMgcGFja2V0cwogICAgIHRoYXQgaGF2ZSBhbiA4MDIuMVEgaGVhZGVyIHdpdGggYSBzcGVjaWZpZWQgVklELgoKICAgLSBUZXN0aW5nIGZvciBhbiBleGFjdCBtYXRjaCB3aXRoIGEgbm9uemVybyBWSUQgdmFsdWUgd2l0aCBDRkk9MCBkb2VzCiAgICAgbm90IG1ha2Ugc2Vuc2UuICBUaGUgc3dpdGNoIG1heSByZWplY3QgdGhpcyBjb21iaW5hdGlvbi4KCiAgIC0gVGVzdGluZyB3aXRoIG54bV92YWx1ZT0wLCBueG1fbWFzaz0weDBmZmYgbWF0Y2hlcyBwYWNrZXRzIHdpdGggbm8gODAyLjFRCiAgICAgaGVhZGVyIG9yIHdpdGggYW4gODAyLjFRIGhlYWRlciB3aXRoIGEgVklEIG9mIDAuCgogICAtIFRlc3Rpbmcgd2l0aCBueG1fdmFsdWU9MHgxMDAwLCBueG1fbWFzaz0weDEwMDAgbWF0Y2hlcyBwYWNrZXRzIHdpdGgKICAgICBhbiA4MDIuMVEgaGVhZGVyIHRoYXQgaGFzIGFueSBWSUQgdmFsdWUuCgoNCgUEDAIIBRIEygQIDgoNCgUEDAIIARIEygQPFwoNCgUEDAIIAxIEygQaGwrQAwoEBAwCCRIE2gQIHRpHI2RlZmluZSBPWE1fT0ZfVkxBTl9QQ1AgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1ZMQU5fUENQLCAxKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1ZMQU5fUENQIDLYAiA4MDIuMVEgUENQLgoKIEZvciBhIHBhY2tldCB3aXRoIGFuIDgwMi4xUSBoZWFkZXIsIHRoaXMgaXMgdGhlIFZMQU4tUENQIGZyb20gdGhlCiBvdXRlcm1vc3QgdGFnLiAgRm9yIGEgcGFja2V0IHdpdGggbm8gODAyLjFRIGhlYWRlciwgdGhpcyBoYXMgdmFsdWUKIDAuCgogUHJlcmVxczogT1hNX09GX1ZMQU5fVklEIG11c3QgYmUgZGlmZmVyZW50IGZyb20gT0ZQVklEX05PTkUuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNSBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAzIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4KCg0KBQQMAgkFEgTaBAgOCg0KBQQMAgkBEgTaBA8XCg0KBQQMAgkDEgTaBBocCqgDCgQEDAIKEgTmBAgcGkcjZGVmaW5lIE9YTV9PRl9JUF9EU0NQICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQX0RTQ1AsIDEpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBfRFNDUCAysQIgVGhlIERpZmYgU2VydiBDb2RlIFBvaW50IChEU0NQKSBiaXRzIG9mIHRoZSBJUCBoZWFkZXIuCiBQYXJ0IG9mIHRoZSBJUHY0IFRvUyBmaWVsZCBvciB0aGUgSVB2NiBUcmFmZmljIENsYXNzIGZpZWxkLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDIgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgNiBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIKBRIE5gQIDgoNCgUEDAIKARIE5gQPFgoNCgUEDAIKAxIE5gQZGwqNAwoEBAwCCxIE8gQIGxpFI2RlZmluZSBPWE1fT0ZfSVBfRUNOICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQX0VDTiwgMSkKIhwgVXNlZCBmb3IgT0ZQWE1UX09GQl9JUF9FQ04gMpkCIFRoZSBFQ04gYml0cyBvZiB0aGUgSVAgaGVhZGVyLgogUGFydCBvZiB0aGUgSVB2NCBUb1MgZmllbGQgb3IgdGhlIElQdjYgVHJhZmZpYyBDbGFzcyBmaWVsZC4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA2IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDIgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCCwUSBPIECA4KDQoFBAwCCwESBPIEDxUKDQoFBAwCCwMSBPIEGBoKjQIKBAQMAgwSBPwECB0aRyNkZWZpbmUgT1hNX09GX0lQX1BST1RPICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUF9QUk9UTywgMSkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUF9QUk9UTyAylQEgVGhlICJwcm90b2NvbCIgYnl0ZSBpbiB0aGUgSVAgaGVhZGVyLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIMBRIE/AQIDgoNCgUEDAIMARIE/AQPFwoNCgUEDAIMAxIE/AQaHAqNBAoEBAwCDRIEigUIHRqkAiNkZWZpbmUgT1hNX09GX0lQVjRfU1JDICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfU1JDLCA0KQojZGVmaW5lIE9YTV9PRl9JUFY0X1NSQ19XICAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X1NSQywgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNF9EU1QgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9EU1QsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjRfRFNUX1cgICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfRFNULCA0KQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQVjRfU1JDIDK3ASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gdGhlIElQIGhlYWRlci4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDAgZXhhY3RseS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDAINBRIEigUIDgoNCgUEDAINARIEigUPFwoNCgUEDAINAxIEigUaHAosCgQEDAIOEgSLBQgdIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUFY0X0RTVCAKDQoFBAwCDgUSBIsFCA4KDQoFBAwCDgESBIsFDxcKDQoFBAwCDgMSBIsFGhwKoQMKBAQMAg8SBJgFCBwajAEjZGVmaW5lIE9YTV9PRl9UQ1BfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVENQX1NSQywgMikKI2RlZmluZSBPWE1fT0ZfVENQX0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1RDUF9EU1QsIDIpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVENQX1NSQyAy5AEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwb3J0IGluIHRoZSBUQ1AgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA2IGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCDwUSBJgFCA4KDQoFBAwCDwESBJgFDxYKDQoFBAwCDwMSBJgFGRsKKwoEBAwCEBIEmQUIHCIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVENQX0RTVCAKDQoFBAwCEAUSBJkFCA4KDQoFBAwCEAESBJkFDxYKDQoFBAwCEAMSBJkFGRsKpQMKBAQMAhESBKYFCBwajAEjZGVmaW5lIE9YTV9PRl9VRFBfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVURQX1NSQywgMikKI2RlZmluZSBPWE1fT0ZfVURQX0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1VEUF9EU1QsIDIpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVURQX1NSQyAy6AEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwb3J0IGluIHRoZSBVRFAgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCAxNyBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAhEFEgSmBQgOCg0KBQQMAhEBEgSmBQ8WCg0KBQQMAhEDEgSmBRkbCisKBAQMAhISBKcFCBwiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1VEUF9EU1QgCg0KBQQMAhIFEgSnBQgOCg0KBQQMAhIBEgSnBQ8WCg0KBQQMAhIDEgSnBRkbCqoDCgQEDAITEgS0BQgdGo4BI2RlZmluZSBPWE1fT0ZfU0NUUF9TUkMgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1NDVFBfU1JDLCAyKQojZGVmaW5lIE9YTV9PRl9TQ1RQX0RTVCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfU0NUUF9EU1QsIDIpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfU0NUUF9TUkMgMuoBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gcG9ydCBpbiB0aGUgU0NUUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDEzMiBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAhMFEgS0BQgOCg0KBQQMAhMBEgS0BQ8XCg0KBQQMAhMDEgS0BRocCiwKBAQMAhQSBLUFCB0iHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1NDVFBfRFNUIAoNCgUEDAIUBRIEtQUIDgoNCgUEDAIUARIEtQUPFwoNCgUEDAIUAxIEtQUaHAqHAwoEBAwCFRIEwgUIIBqYASNkZWZpbmUgT1hNX09GX0lDTVBWNF9UWVBFICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFLCAxKQojZGVmaW5lIE9YTV9PRl9JQ01QVjRfQ09ERSAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjRfQ09ERSwgMSkKIiEgVXNlZCBmb3IgT0ZQWE1UX09GQl9JQ01QVjRfVFlQRSAyugEgVGhlIHR5cGUgb3IgY29kZSBpbiB0aGUgSUNNUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODAwIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDEgZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCFQUSBMIFCA4KDQoFBAwCFQESBMIFDxoKDQoFBAwCFQMSBMIFHR8KLwoEBAwCFhIEwwUIICIhIFVzZWQgZm9yIE9GUFhNVF9PRkJfSUNNUFY0X0NPREUgCg0KBQQMAhYFEgTDBQgOCg0KBQQMAhYBEgTDBQ8aCg0KBQQMAhYDEgTDBR0fCtUCCgQEDAIXEgTQBQgbGkUjZGVmaW5lIE9YTV9PRl9BUlBfT1AgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX09QLCAyKQoiHCBVc2VkIGZvciBPRlBYTVRfT0ZCX0FSUF9PUCAy4QEgQVJQIG9wY29kZS4KCiBGb3IgYW4gRXRoZXJuZXQrSVAgQVJQIHBhY2tldCwgdGhlIG9wY29kZSBpbiB0aGUgQVJQIGhlYWRlci4gIEFsd2F5cyAwCiBvdGhlcndpc2UuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODA2IGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCFwUSBNAFCA4KDQoFBAwCFwESBNAFDxUKDQoFBAwCFwMSBNAFGBoKtQQKBAQMAhgSBN8FCBwamAIjZGVmaW5lIE9YTV9PRl9BUlBfU1BBICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NQQSwgNCkKI2RlZmluZSBPWE1fT0ZfQVJQX1NQQV9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TUEEsIDQpCiNkZWZpbmUgT1hNX09GX0FSUF9UUEEgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVFBBLCA0KQojZGVmaW5lIE9YTV9PRl9BUlBfVFBBX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RQQSwgNCkKIhggRm9yIE9GUFhNVF9PRkJfQVJQX1NQQSAy8QEgRm9yIGFuIEV0aGVybmV0K0lQIEFSUCBwYWNrZXQsIHRoZSBzb3VyY2Ugb3IgdGFyZ2V0IHByb3RvY29sIGFkZHJlc3MKIGluIHRoZSBBUlAgaGVhZGVyLiAgQWx3YXlzIDAgb3RoZXJ3aXNlLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwNiBleGFjdGx5LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQMAhgFEgTfBQgOCg0KBQQMAhgBEgTfBQ8WCg0KBQQMAhgDEgTfBRkbCiYKBAQMAhkSBOAFCBwiGCBGb3IgT0ZQWE1UX09GQl9BUlBfVFBBIAoNCgUEDAIZBRIE4AUIDgoNCgUEDAIZARIE4AUPFgoNCgUEDAIZAxIE4AUZGwq3BAoEBAwCGhIE7gUIGxqcAiNkZWZpbmUgT1hNX09GX0FSUF9TSEEgICAgT1hNX0hFQURFUiAgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NIQSwgNikKI2RlZmluZSBPWE1fT0ZfQVJQX1NIQV9XICBPWE1fSEVBREVSX1cgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU0hBLCA2KQojZGVmaW5lIE9YTV9PRl9BUlBfVEhBICAgIE9YTV9IRUFERVIgICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9USEEsIDYpCiNkZWZpbmUgT1hNX09GX0FSUF9USEFfVyAgT1hNX0hFQURFUl9XICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RIQSwgNikKIiIgRm9yIE9GUFhNVF9PRkJfQVJQX1NIQSAoNiBieXRlcykgMuUBIEZvciBhbiBFdGhlcm5ldCtJUCBBUlAgcGFja2V0LCB0aGUgc291cmNlIG9yIHRhcmdldCBoYXJkd2FyZSBhZGRyZXNzCiBpbiB0aGUgQVJQIGhlYWRlci4gIEFsd2F5cyAwIG90aGVyd2lzZS4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDYgZXhhY3RseS4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIaBRIE7gUIDQoNCgUEDAIaARIE7gUOFQoNCgUEDAIaAxIE7gUYGgowCgQEDAIbEgTvBQgbIiIgRm9yIE9GUFhNVF9PRkJfQVJQX1RIQSAoNiBieXRlcykgCg0KBQQMAhsFEgTvBQgNCg0KBQQMAhsBEgTvBQ4VCg0KBQQMAhsDEgTvBRgaCvoDCgQEDAIcEgT9BQgcGqQCI2RlZmluZSBPWE1fT0ZfSVBWNl9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X1NSQywgMTYpCiNkZWZpbmUgT1hNX09GX0lQVjZfU1JDX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9TUkMsIDE2KQojZGVmaW5lIE9YTV9PRl9JUFY2X0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRFNULCAxNikKI2RlZmluZSBPWE1fT0ZfSVBWNl9EU1RfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0RTVCwgMTYpCiIZIEZvciBPRlBYTVRfT0ZCX0lQVjZfU1JDIDKpASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gdGhlIElQdjYgaGVhZGVyLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgoKIEZvcm1hdDogMTI4LWJpdCBJUHY2IGFkZHJlc3MuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBAwCHAUSBP0FCA0KDQoFBAwCHAESBP0FDhYKDQoFBAwCHAMSBP0FGRsKJwoEBAwCHRIE/gUIHCIZIEZvciBPRlBYTVRfT0ZCX0lQVjZfRFNUIAoNCgUEDAIdBRIE/gUIDQoNCgUEDAIdARIE/gUOFgoNCgUEDAIdAxIE/gUZGwqdAwoEBAwCHhIEjAYIIBqaASNkZWZpbmUgT1hNX09GX0lQVjZfRkxBQkVMICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTCwgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNl9GTEFCRUxfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMLCA0KQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTCAy0wEgVGhlIElQdjYgRmxvdyBMYWJlbAoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5CgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciB3aXRoIDEyIG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDIwIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQMAh4FEgSMBggOCg0KBQQMAh4BEgSMBg8aCg0KBQQMAh4DEgSMBh0fCoMDCgQEDAIfEgSZBgggGpYBI2RlZmluZSBPWE1fT0ZfSUNNUFY2X1RZUEUgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjZfVFlQRSwgMSkKI2RlZmluZSBPWE1fT0ZfSUNNUFY2X0NPREUgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjZfQ09ERSwgMSkKIhwgRm9yIE9GUFhNVF9PRkJfSUNNUFY2X1RZUEUgMr0BIFRoZSB0eXBlIG9yIGNvZGUgaW4gdGhlIElDTVB2NiBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAh8FEgSZBggOCg0KBQQMAh8BEgSZBg8aCg0KBQQMAh8DEgSZBh0fCioKBAQMAiASBJoGCCAiHCBGb3IgT0ZQWE1UX09GQl9JQ01QVjZfQ09ERSAKDQoFBAwCIAUSBJoGCA4KDQoFBAwCIAESBJoGDxoKDQoFBAwCIAMSBJoGHR8KkQMKBAQMAiESBKgGCCIaVyNkZWZpbmUgT1hNX09GX0lQVjZfTkRfVEFSR0VUIE9YTV9IRUFERVIgXAogICAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X05EX1RBUkdFVCwgMTYpCiIfIEZvciBPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VUIDKIAiBUaGUgdGFyZ2V0IGFkZHJlc3MgaW4gYW4gSVB2NiBOZWlnaGJvciBEaXNjb3ZlcnkgbWVzc2FnZS4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KICAgT1hNX09GX0lDTVBWNl9UWVBFIG11c3QgYmUgZWl0aGVyIDEzNSBvciAxMzYuCgogRm9ybWF0OiAxMjgtYml0IElQdjYgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIhBRIEqAYIDQoNCgUEDAIhARIEqAYOHAoNCgUEDAIhAxIEqAYfIQqXAwoEBAwCIhIEtgYIHxpMI2RlZmluZSBPWE1fT0ZfSVBWNl9ORF9TTEwgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9ORF9TTEwsIDYpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfTkRfU0xMIDKcAiBUaGUgc291cmNlIGxpbmstbGF5ZXIgYWRkcmVzcyBvcHRpb24gaW4gYW4gSVB2NiBOZWlnaGJvciBEaXNjb3ZlcnkKIG1lc3NhZ2UuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCiAgIE9YTV9PRl9JQ01QVjZfVFlQRSBtdXN0IGJlIGV4YWN0bHkgMTM1LgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAiIFEgS2BggNCg0KBQQMAiIBEgS2Bg4ZCg0KBQQMAiIDEgS2BhweCpcDCgQEDAIjEgTEBggfGkwjZGVmaW5lIE9YTV9PRl9JUFY2X05EX1RMTCAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X05EX1RMTCwgNikKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9ORF9UTEwgMpwCIFRoZSB0YXJnZXQgbGluay1sYXllciBhZGRyZXNzIG9wdGlvbiBpbiBhbiBJUHY2IE5laWdoYm9yIERpc2NvdmVyeQogbWVzc2FnZS4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KICAgT1hNX09GX0lDTVBWNl9UWVBFIG11c3QgYmUgZXhhY3RseSAxMzYuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCIwUSBMQGCA0KDQoFBAwCIwESBMQGDhkKDQoFBAwCIwMSBMQGHB4K/gIKBAQMAiQSBNAGCB8aSiNkZWZpbmUgT1hNX09GX01QTFNfTEFCRUwgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTVBMU19MQUJFTCwgNCkKIhsgRm9yIE9GUFhNVF9PRkJfTVBMU19MQUJFTCAyhgIgVGhlIExBQkVMIGluIHRoZSBmaXJzdCBNUExTIHNoaW0gaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODg0NyBvciAweDg4NDggZXhhY3RseS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlciB3aXRoIDEyIG1vc3Qtc2lnbmlmaWNhbnQKIGJpdHMgZm9yY2VkIHRvIDAuIE9ubHkgdGhlIGxvd2VyIDIwIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAiQFEgTQBggOCg0KBQQMAiQBEgTQBg8ZCg0KBQQMAiQDEgTQBhweCtwCCgQEDAIlEgTcBggcGkcjZGVmaW5lIE9YTV9PRl9NUExTX1RDICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01QTFNfVEMsIDEpCiIYIEZvciBPRlBYTVRfT0ZCX01QTFNfVEMgMuoBIFRoZSBUQyBpbiB0aGUgZmlyc3QgTVBMUyBzaGltIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4NDcgb3IgMHg4ODQ4IGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNSBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAzIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAiUFEgTcBggOCg0KBQQMAiUBEgTcBg8WCg0KBQQMAiUDEgTcBhkbCuQCCgQEDAImEgToBggdGkkjZGVmaW5lIE9YTV9PRl9NUExTX0JPUyAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NUExTX0JPUywgMSkKIhkgRm9yIE9GUFhNVF9PRkJfTVBMU19CT1MgMu8BIFRoZSBCb1MgYml0IGluIHRoZSBmaXJzdCBNUExTIHNoaW0gaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODg0NyBvciAweDg4NDggZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA3IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VzdCBiaXQgaGF2ZSBhIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCJgUSBOgGCA4KDQoFBAwCJgESBOgGDxcKDQoFBAwCJgMSBOgGGhwKqgMKBAQMAicSBPcGCB0ajgEjZGVmaW5lIE9YTV9PRl9QQkJfSVNJRCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfUEJCX0lTSUQsIDMpCiNkZWZpbmUgT1hNX09GX1BCQl9JU0lEX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9QQkJfSVNJRCwgMykKIhkgRm9yIE9GUFhNVF9PRkJfUEJCX0lTSUQgMu8BIElFRUUgODAyLjFhaCBJLVNJRC4KCiBGb3IgYSBwYWNrZXQgd2l0aCBhIFBCQiBoZWFkZXIsIHRoaXMgaXMgdGhlIEktU0lEIGZyb20gdGhlCiBvdXRlcm1vc3Qgc2VydmljZSB0YWcuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4OEU3IGV4YWN0bHkuCgogRm9ybWF0OiAyNC1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLiAKDQoFBAwCJwUSBPcGCA4KDQoFBAwCJwESBPcGDxcKDQoFBAwCJwMSBPcGGhwKvAYKBAQMAigSBIsHCB4alAEjZGVmaW5lIE9YTV9PRl9UVU5ORUxfSUQgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9UVU5ORUxfSUQsIDgpCiNkZWZpbmUgT1hNX09GX1RVTk5FTF9JRF9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX1RVTk5FTF9JRCwgOCkKIhogRm9yIE9GUFhNVF9PRkJfVFVOTkVMX0lEIDL6BCBMb2dpY2FsIFBvcnQgTWV0YWRhdGEuCgogTWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgbG9naWNhbCBwb3J0LgogSWYgdGhlIGxvZ2ljYWwgcG9ydCBwZXJmb3JtcyBlbmNhcHN1bGF0aW9uIGFuZCBkZWNhcHN1bGF0aW9uLCB0aGlzCiBpcyB0aGUgZGVtdWx0aXBsZXhpbmcgZmllbGQgZnJvbSB0aGUgZW5jYXBzdWxhdGlvbiBoZWFkZXIuCiBGb3IgZXhhbXBsZSwgZm9yIGEgcGFja2V0IHJlY2VpdmVkIHZpYSBHUkUgdHVubmVsIGluY2x1ZGluZyBhICgzMi1iaXQpIGtleSwKIHRoZSBrZXkgaXMgc3RvcmVkIGluIHRoZSBsb3cgMzItYml0cyBhbmQgdGhlIGhpZ2ggYml0cyBhcmUgemVyb2VkLgogRm9yIGEgTVBMUyBsb2dpY2FsIHBvcnQsIHRoZSBsb3cgMjAgYml0cyByZXByZXNlbnQgdGhlIE1QTFMgTGFiZWwuCiBGb3IgYSBWeExBTiBsb2dpY2FsIHBvcnQsIHRoZSBsb3cgMjQgYml0cyByZXByZXNlbnQgdGhlIFZOSS4KIElmIHRoZSBwYWNrZXQgaXMgbm90IHJlY2VpdmVkIHRocm91Z2ggYSBsb2dpY2FsIHBvcnQsIHRoZSB2YWx1ZSBpcyAwLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiA2NC1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLiAKDQoFBAwCKAUSBIsHCA4KDQoFBAwCKAESBIsHDxgKDQoFBAwCKAMSBIsHGx0KqAMKBAQMAikSBJgHCCAamgEjZGVmaW5lIE9YTV9PRl9JUFY2X0VYVEhEUiAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9FWFRIRFIsIDIpCiNkZWZpbmUgT1hNX09GX0lQVjZfRVhUSERSX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0VYVEhEUiwgMikKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9FWFRIRFIgMt4BIFRoZSBJUHY2IEV4dGVuc2lvbiBIZWFkZXIgcHNldWRvLWZpZWxkLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5CgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciB3aXRoIDcgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgOSBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBNYXNrYWJsZS4gCg0KBQQMAikFEgSYBwgOCg0KBQQMAikBEgSYBw8aCg0KBQQMAikDEgSYBx0fCk0KBAQMCAESBp0HBLUHBRo9IE9wdGlvbmFsIG1hc2sgdmFsdWVzIChtdXN0IGJlIHByZXNlbnQgd2hlbiBoYXNf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T3BlbkZsb3cgc3dpdGNoLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIHN0cnVjdCBvZnBfZGVzYy4gCg0KBQUtAgABEgSKDQQOCg0KBQUtAgACEgSKDRESCpYBCgQFLQIBEgSPDQQTGocBIEluZGl2aWR1YWwgZmxvdyBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2Zsb3dfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfZmxvd19zdGF0cy4gCg0KBQUtAgEBEgSPDQQOCg0KBQUtAgECEgSPDRESCpkBCgQFLQICEgSUDQQYGooBIEFnZ3JlZ2F0ZSBmbG93IHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfYWdncmVnYXRlX3N0YXRzX3JlcXVlc3QuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2FnZ3JlZ2F0ZV9zdGF0c19yZXBseS4gCg0KBQUtAgIBEgSUDQQTCg0KBQUtAgICEgSUDRYXCnkKBAUtAgMSBJkNBBQaayBGbG93IHRhYmxlIHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF90YWJsZV9zdGF0cy4gCg0KBQUtAgMBEgSZDQQPCg0KBQUtAgMCEgSZDRITCooBCgQFLQIEEgSeDQQZGnwgUG9ydCBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX3BvcnRfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfcG9ydF9zdGF0cy4gCg0KBQUtAgQBEgSeDQQUCg0KBQUtAgQCEgSeDRcYCpcBCgQFLQIFEgSjDQQUGogBIFF1ZXVlIHN0YXRpc3RpY3MgZm9yIGEgcG9ydAogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX3F1ZXVlX3N0YXRzX3JlcXVlc3QuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3F1ZXVlX3N0YXRzIAoNCgUFLQIFARIEow0EDwoNCgUFLQIFAhIEow0SEwqRAQoEBS0CBhIEqA0EFBqCASBHcm91cCBjb3VudGVyIHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfZ3JvdXBfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX2dyb3VwX3N0YXRzLiAKDQoFBS0CBgESBKgNBA8KDQoFBS0CBgISBKgNEhMKdAoEBS0CBxIErQ0EGRpmIEdyb3VwIGRlc2NyaXB0aW9uLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfZ3JvdXBfZGVzYy4gCg0KBQUtAgcBEgStDQQUCg0KBQUtAgcCEgStDRcYCmkKBAUtAggSBLINBB0aWyBHcm91cCBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2dyb3VwX2ZlYXR1cmVzLiAKDQoFBS0CCAESBLINBBgKDQoFBS0CCAISBLINGxwKkwEKBAUtAgkSBLcNBBQahAEgTWV0ZXIgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX3N0YXRzLiAKDQoFBS0CCQESBLcNBA8KDQoFBS0CCQISBLcNEhMKlwEKBAUtAgoSBLwNBBwaiAEgTWV0ZXIgY29uZmlndXJhdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX2NvbmZpZy4gCg0KBQUtAgoBEgS8DQQWCg0KBQUtAgoCEgS8DRkbCmkKBAUtAgsSBMENBB4aWyBNZXRlciBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX2ZlYXR1cmVzLiAKDQoFBS0CCwESBMENBBgKDQoFBS0CCwISBMENGx0KsQIKBAUtAgwSBMkNBB4aogIgVGFibGUgZmVhdHVyZXMuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVpdGhlciBlbXB0eSBvciBjb250YWlucyBhbiBhcnJheSBvZgogc3RydWN0IG9mcF90YWJsZV9mZWF0dXJlcyBjb250YWluaW5nIHRoZSBjb250cm9sbGVyJ3MKIGRlc2lyZWQgdmlldyBvZiB0aGUgc3dpdGNoLiBJZiB0aGUgc3dpdGNoIGlzIHVuYWJsZSB0bwogc2V0IHRoZSBzcGVjaWZpZWQgdmlldyBhbiBlcnJvciBpcyByZXR1cm5lZC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfdGFibGVfZmVhdHVyZXMuIAoNCgUFLQIMARIEyQ0EGAoNCgUFLQIMAhIEyQ0bHQptCgQFLQINEgTODQQZGl8gUG9ydCBkZXNjcmlwdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3BvcnQuIAoNCgUFLQINARIEzg0EEwoNCgUFLQINAhIEzg0WGAq+AQoEBS0CDhIE1A0EIBqvASBFeHBlcmltZW50ZXIgZXh0ZW5zaW9uLgogVGhlIHJlcXVlc3QgYW5kIHJlcGx5IGJvZGllcyBiZWdpbiB3aXRoCiBzdHJ1Y3Qgb2ZwX2V4cGVyaW1lbnRlcl9tdWx0aXBhcnRfaGVhZGVyLgogVGhlIHJlcXVlc3QgYW5kIHJlcGx5IGJvZGllcyBhcmUgb3RoZXJ3aXNlIGV4cGVyaW1lbnRlci1kZWZpbmVkLiAKDQoFBS0CDgESBNQNBBYKDQoFBS0CDgISBNQNGR8KfAoCBS4SBtoNAN0NATI9IEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCAxLjMuMSAtIGF2b2lkIGJyZWFraW5nIHRoZSBBUEkuIDIvI2RlZmluZSBvZnBfbXVsdGlwYXJ0X3R5cGVzIG9mcF9tdWx0aXBhcnRfdHlwZQoKCwoDBS4BEgTaDQUgCgwKBAUuAgASBNsNBBsKDQoFBS4CAAESBNsNBBYKDQoFBS4CAAISBNsNGRoKKAoEBS4CARIE3A0EGSIaIE1vcmUgcmVxdWVzdHMgdG8gZm9sbG93LiAKDQoFBS4CAQESBNwNBBMKDQoFBS4CAQISBNwNFxgKDAoCBCoSBt8NAOQNAQoLCgMEKgESBN8NCB0KQgoEBCoCABIE4Q0EIBoTb2ZwX2hlYWRlciBoZWFkZXI7CiIfIE9uZSBvZiB0aGUgT0ZQTVBfKiBjb25zdGFudHMuIAoPCgUEKgIABBIG4Q0E3w0fCg0KBQQqAgAGEgThDQQWCg0KBQQqAgABEgThDRcbCg0KBQQqAgADEgThDR4fCiMKBAQqAgESBOINBBUiFSBPRlBNUEZfUkVRXyogZmxhZ3MuIAoPCgUEKgIBBBIG4g0E4Q0gCg0KBQQqAgEFEgTiDQQKCg0KBQQqAgEBEgTiDQsQCg0KBQQqAgEDEgTiDRMUCjUKBAQqAgISBOMNBBMiJyBCb2R5IG9mIHRoZSByZXF1ZXN0LiAwIG9yIG1vcmUgYnl0ZXMuIAoPCgUEKgICBBIG4w0E4g0VCg0KBQQqAgIFEgTjDQQJCg0KBQQqAgIBEgTjDQoOCg0KBQQqAgIDEgTjDRESCgwKAgUvEgbmDQDpDQEKCwoDBS8BEgTmDQUeCgwKBAUvAgASBOcNBB0KDQoFBS8CAAESBOcNBBgKDQoFBS8CAAISBOcNGxwKJwoEBS8CARIE6A0EGyIZIE1vcmUgcmVwbGllcyB0byBmb2xsb3cuIAoNCgUFLwIBARIE6A0EFQoNCgUFLwIBAhIE6A0ZGgoMCgIEKxIG6w0A8A0BCgsKAwQrARIE6w0IGwpCCgQEKwIAEgTtDQQgGhNvZnBfaGVhZGVyIGhlYWRlcjsKIh8gT25lIG9mIHRoZSBPRlBNUF8qIGNvbnN0YW50cy4gCg8KBQQrAgAEEgbtDQTrDR0KDQoFBCsCAAYSBO0NBBYKDQoFBCsCAAESBO0NFxsKDQoFBCsCAAMSBO0NHh8KJQoEBCsCARIE7g0EFSIXIE9GUE1QRl9SRVBMWV8qIGZsYWdzLiAKDwoFBCsCAQQSBu4NBO0NIAoNCgUEKwIBBRIE7g0ECgoNCgUEKwIBARIE7g0LEAoNCgUEKwIBAxIE7g0TFAozCgQEKwICEgTvDQQTIiUgQm9keSBvZiB0aGUgcmVwbHkuIDAgb3IgbW9yZSBieXRlcy4gCg8KBQQrAgIEEgbvDQTuDRUKDQoFBCsCAgUSBO8NBAkKDQoFBCsCAgESBO8NCg4KDQoFBCsCAgMSBO8NERIKmwEKAgQsEgb2DQD8DQEaViBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX0RFU0MgcmVxdWVzdC4gIEVhY2ggZW50cnkgaXMgYSBOVUxMLXRlcm1pbmF0ZWQKIEFTQ0lJIHN0cmluZy4gMjUjZGVmaW5lIERFU0NfU1RSX0xFTiAgIDI1NgojZGVmaW5lIFNFUklBTF9OVU1fTEVOIDMyCgoLCgMELAESBPYNCBAKKQoEBCwCABIE9w0EGCIbIE1hbnVmYWN0dXJlciBkZXNjcmlwdGlvbi4gCg8KBQQsAgAEEgb3DQT2DRIKDQoFBCwCAAUSBPcNBAoKDQoFBCwCAAESBPcNCxMKDQoFBCwCAAMSBPcNFhcKJQoEBCwCARIE+A0EFyIXIEhhcmR3YXJlIGRlc2NyaXB0aW9uLiAKDwoFBCwCAQQSBvgNBPcNGAoNCgUELAIBBRIE+A0ECgoNCgUELAIBARIE+A0LEgoNCgUELAIBAxIE+A0VFgolCgQELAICEgT5DQQXIhcgU29mdHdhcmUgZGVzY3JpcHRpb24uIAoPCgUELAICBBIG+Q0E+A0XCg0KBQQsAgIFEgT5DQQKCg0KBQQsAgIBEgT5DQsSCg0KBQQsAgIDEgT5DRUWCh4KBAQsAgMSBPoNBBoiECBTZXJpYWwgbnVtYmVyLiAKDwoFBCwCAwQSBvoNBPkNFwoNCgUELAIDBRIE+g0ECgoNCgUELAIDARIE+g0LFQoNCgUELAIDAxIE+g0YGQo3CgQELAIEEgT7DQQXIikgSHVtYW4gcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgZGF0YXBhdGguIAoPCgUELAIEBBIG+w0E+g0aCg0KBQQsAgQFEgT7DQQKCg0KBQQsAgQBEgT7DQsSCg0KBQQsAgQDEgT7DRUWCkIKAgQtEgb/DQCODgEaNCBCb2R5IGZvciBvZnBfbXVsdGlwYXJ0X3JlcXVlc3Qgb2YgdHlwZSBPRlBNUF9GTE9XLiAKCwoDBC0BEgT/DQgeClUKBAQtAgASBIAOBBgiRyBJRCBvZiB0YWJsZSB0byByZWFkIChmcm9tIG9mcF90YWJsZV9zdGF0cyksCk9GUFRUX0FMTCBmb3IgYWxsIHRhYmxlcy4gCg8KBQQtAgAEEgaADgT/DSAKDQoFBC0CAAUSBIAOBAoKDQoFBC0CAAESBIAOCxMKDQoFBC0CAAMSBIAOFhcKegoEBC0CARIEgg4EGCJsIFJlcXVpcmUgbWF0Y2hpbmcgZW50cmllcyB0byBpbmNsdWRlIHRoaXMKYXMgYW4gb3V0cHV0IHBvcnQuICBBIHZhbHVlIG9mIE9GUFBfQU5ZCmluZGljYXRlcyBubyByZXN0cmljdGlvbi4gCg8KBQQtAgEEEgaCDgSADhgKDQoFBC0CAQUSBIIOBAoKDQoFBC0CAQESBIIOCxMKDQoFBC0CAQMSBIIOFhcKewoEBC0CAhIEhQ4EGSJtIFJlcXVpcmUgbWF0Y2hpbmcgZW50cmllcyB0byBpbmNsdWRlIHRoaXMKYXMgYW4gb3V0cHV0IGdyb3VwLiAgQSB2YWx1ZSBvZiBPRlBHX0FOWQppbmRpY2F0ZXMgbm8gcmVzdHJpY3Rpb24uIAoPCgUELQICBBIGhQ4Egg4YCg0KBQQtAgIFEgSFDgQKCg0KBQQtAgIBEgSFDgsUCg0KBQQtAgIDEgSFDhcYCkUKBAQtAgMSBIgOBBYiNyBSZXF1aXJlIG1hdGNoaW5nIGVudHJpZXMgdG8gY29udGFpbiB0aGlzCmNvb2tpZSB2YWx1ZSAKDwoFBC0CAwQSBogOBIUOGQoNCgUELQIDBRIEiA4ECgoNCgUELQIDARIEiA4LEQoNCgUELQIDAxIEiA4UFQptCgQELQIEEgSKDgQbIl8gTWFzayB1c2VkIHRvIHJlc3RyaWN0IHRoZSBjb29raWUgYml0cyB0aGF0Cm11c3QgbWF0Y2guIEEgdmFsdWUgb2YgMCBpbmRpY2F0ZXMKbm8gcmVzdHJpY3Rpb24uIAoPCgUELQIEBBIGig4EiA4WCg0KBQQtAgQFEgSKDgQKCg0KBQQtAgQBEgSKDgsWCg0KBQQtAgQDEgSKDhkaCi8KBAQtAgUSBI0OBBgiISBGaWVsZHMgdG8gbWF0Y2guIFZhcmlhYmxlIHNpemUuIAoPCgUELQIFBBIGjQ4Eig4bCg0KBQQtAgUGEgSNDgQNCg0KBQQtAgUBEgSNDg4TCg0KBQQtAgUDEgSNDhYXCjQKAgQuEgaRDgChDgEaJiBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX0ZMT1cgcmVxdWVzdC4gCgsKAwQuARIEkQ4IFgowCgQELgIAEgSSDgQTIiIgVW5pcXVlIElEIG9mIGZsb3cgd2l0aGluIGRldmljZS4gCg8KBQQuAgAEEgaSDgSRDhgKDQoFBC4CAAUSBJIOBAoKDQoFBC4CAAESBJIOCw0KDQoFBC4CAAMSBJIOEBIKKwoEBC4CARIEkw4EGCIdIElEIG9mIHRhYmxlIGZsb3cgY2FtZSBmcm9tLiAKDwoFBC4CAQQSBpMOBJIOEwoNCgUELgIBBRIEkw4ECgoNCgUELgIBARIEkw4LEwoNCgUELgIBAxIEkw4WFwo0CgQELgICEgSUDgQcIiYgVGltZSBmbG93IGhhcyBiZWVuIGFsaXZlIGluIHNlY29uZHMuIAoPCgUELgICBBIGlA4Ekw4YCg0KBQQuAgIFEgSUDgQKCg0KBQQuAgIBEgSUDgsXCg0KBQQuAgIDEgSUDhobCkwKBAQuAgMSBJUOBB0iPiBUaW1lIGZsb3cgaGFzIGJlZW4gYWxpdmUgaW4gbmFub3NlY29uZHMKYmV5b25kIGR1cmF0aW9uX3NlYy4gCg8KBQQuAgMEEgaVDgSUDhwKDQoFBC4CAwUSBJUOBAoKDQoFBC4CAwESBJUOCxgKDQoFBC4CAwMSBJUOGxwKJgoEBC4CBBIElw4EGCIYIFByaW9yaXR5IG9mIHRoZSBlbnRyeS4gCg8KBQQuAgQEEgaXDgSVDh0KDQoFBC4CBAUSBJcOBAoKDQoFBC4CBAESBJcOCxMKDQoFBC4CBAMSBJcOFhcKOQoEBC4CBRIEmA4EHCIrIE51bWJlciBvZiBzZWNvbmRzIGlkbGUgYmVmb3JlIGV4cGlyYXRpb24uIAoPCgUELgIFBBIGmA4Elw4YCg0KBQQuAgUFEgSYDgQKCg0KBQQuAgUBEgSYDgsXCg0KBQQuAgUDEgSYDhobCjQKBAQuAgYSBJkOBBwiJiBOdW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgZXhwaXJhdGlvbi4gCg8KBQQuAgYEEgaZDgSYDhwKDQoFBC4CBgUSBJkOBAoKDQoFBC4CBgESBJkOCxcKDQoFBC4CBgMSBJkOGhsKKAoEBC4CBxIEmg4EFSIaIEJpdG1hcCBvZiBPRlBGRl8qIGZsYWdzLiAKDwoFBC4CBwQSBpoOBJkOHAoNCgUELgIHBRIEmg4ECgoNCgUELgIHARIEmg4LEAoNCgUELgIHAxIEmg4TFAo0CgQELgIIEgSbDgQWIiYgT3BhcXVlIGNvbnRyb2xsZXItaXNzdWVkIGlkZW50aWZpZXIuIAoPCgUELgIIBBIGmw4Emg4VCg0KBQQuAggFEgSbDgQKCg0KBQQuAggBEgSbDgsRCg0KBQQuAggDEgSbDhQVCioKBAQuAgkSBJwOBBwiHCBOdW1iZXIgb2YgcGFja2V0cyBpbiBmbG93LiAKDwoFBC4CCQQSBpwOBJsOFgoNCgUELgIJBRIEnA4ECgoNCgUELgIJARIEnA4LFwoNCgUELgIJAxIEnA4aGwooCgQELgIKEgSdDgQbIhogTnVtYmVyIG9mIGJ5dGVzIGluIGZsb3cuIAoPCgUELgIKBBIGnQ4EnA4cCg0KBQQuAgoFEgSdDgQKCg0KBQQuAgoBEgSdDgsVCg0KBQQuAgoDEgSdDhgaCjUKBAQuAgsSBJ4OBBkiJyBEZXNjcmlwdGlvbiBvZiBmaWVsZHMuIFZhcmlhYmxlIHNpemUuIAoPCgUELgILBBIGng4EnQ4bCg0KBQQuAgsGEgSeDgQNCg0KBQQuAgsBEgSeDg4TCg0KBQQuAgsDEgSeDhYYCisKBAQuAgwSBJ8OBC8iHSBJbnN0cnVjdGlvbiBzZXQKKDAgb3IgbW9yZSkgCg0KBQQuAgwEEgSfDgQMCg0KBQQuAgwGEgSfDg0cCg0KBQQuAgwBEgSfDh0pCg0KBQQuAgwDEgSfDiwuCkcKAgQvEgakDgCzDgEaOSBCb2R5IGZvciBvZnBfbXVsdGlwYXJ0X3JlcXVlc3Qgb2YgdHlwZSBPRlBNUF9BR0dSRUdBVEUuIAoLCgMELwESBKQOCCMKVAoEBC8CABIEpQ4EGCJGIElEIG9mIHRhYmxlIHRvIHJlYWQgKGZyb20gb2ZwX3RhYmxlX3N0YXRzKQpPRlBUVF9BTEwgZm9yIGFsbCB0YWJsZXMuIAoPCgUELwIABBIGpQ4EpA4lCg0KBQQvAgAFEgSlDgQKCg0KBQQvAgABEgSlDgsTCg0KBQQvAgADEgSlDhYXCnoKBAQvAgESBKcOBBgibCBSZXF1aXJlIG1hdGNoaW5nIGVudHJpZXMgdG8gaW5jbHVkZSB0aGlzCmFzIGFuIG91dHB1dCBwb3J0LiAgQSB2YWx1ZSBvZiBPRlBQX0FOWQppbmRpY2F0ZXMgbm8gcmVzdHJpY3Rpb24uIAoPCgUELwIBBBIGpw4EpQ4YCg0KBQQvAgEFEgSnDgQKCg0KBQQvAgEBEgSnDgsTCg0KBQQvAgEDEgSnDhYXCnsKBAQvAgISBKoOBBkibSBSZXF1aXJlIG1hdGNoaW5nIGVudHJpZXMgdG8gaW5jbHVkZSB0aGlzCmFzIGFuIG91dHB1dCBncm91cC4gIEEgdmFsdWUgb2YgT0ZQR19BTlkKaW5kaWNhdGVzIG5vIHJlc3RyaWN0aW9uLiAKDwoFBC8CAgQSBqoOBKcOGAoNCgUELwICBRIEqg4ECgoNCgUELwICARIEqg4LFAoNCgUELwICAxIEqg4XGApFCgQELwIDEgStDgQWIjcgUmVxdWlyZSBtYXRjaGluZyBlbnRyaWVzIHRvIGNvbnRhaW4gdGhpcwpjb29raWUgdmFsdWUgCg8KBQQvAgMEEgatDgSqDhkKDQoFBC8CAwUSBK0OBAoKDQoFBC8CAwESBK0OCxEKDQoFBC8CAwMSBK0OFBUKbQoEBC8CBBIErw4EGyJfIE1hc2sgdXNlZCB0byByZXN0cmljdCB0aGUgY29va2llIGJpdHMgdGhhdAptdXN0IG1hdGNoLiBBIHZhbHVlIG9mIDAgaW5kaWNhdGVzCm5vIHJlc3RyaWN0aW9uLiAKDwoFBC8CBAQSBq8OBK0OFgoNCgUELwIEBRIErw4ECgoNCgUELwIEARIErw4LFgoNCgUELwIEAxIErw4ZGgovCgQELwIFEgSyDgQYIiEgRmllbGRzIHRvIG1hdGNoLiBWYXJpYWJsZSBzaXplLiAKDwoFBC8CBQQSBrIOBK8OGwoNCgUELwIFBhIEsg4EDQoNCgUELwIFARIEsg4OEwoNCgUELwIFAxIEsg4WFwo5CgIEMBIGtg4Aug4BGisgQm9keSBvZiByZXBseSB0byBPRlBNUF9BR0dSRUdBVEUgcmVxdWVzdC4gCgsKAwQwARIEtg4IIQorCgQEMAIAEgS3DgQcIh0gTnVtYmVyIG9mIHBhY2tldHMgaW4gZmxvd3MuIAoPCgUEMAIABBIGtw4Etg4jCg0KBQQwAgAFEgS3DgQKCg0KBQQwAgABEgS3DgsXCg0KBQQwAgADEgS3DhobCikKBAQwAgESBLgOBBoiGyBOdW1iZXIgb2YgYnl0ZXMgaW4gZmxvd3MuIAoPCgUEMAIBBBIGuA4Etw4cCg0KBQQwAgEFEgS4DgQKCg0KBQQwAgEBEgS4DgsVCg0KBQQwAgEDEgS4DhgZCiAKBAQwAgISBLkOBBoiEiBOdW1iZXIgb2YgZmxvd3MuIAoPCgUEMAICBBIGuQ4EuA4aCg0KBQQwAgIFEgS5DgQKCg0KBQQwAgIBEgS5DgsVCg0KBQQwAgIDEgS5DhgZCrsBCgIFMBIGwA4A0Q4BGqwBIFRhYmxlIEZlYXR1cmUgcHJvcGVydHkgdHlwZXMuCiBMb3cgb3JkZXIgYml0IGNsZWFyZWQgaW5kaWNhdGVzIGEgcHJvcGVydHkgZm9yIGEgcmVndWxhciBGbG93IEVudHJ5LgogTG93IG9yZGVyIGJpdCBzZXQgaW5kaWNhdGVzIGEgcHJvcGVydHkgZm9yIHRoZSBUYWJsZS1NaXNzIEZsb3cgRW50cnkuCgoLCgMFMAESBMAOBSAKJgoEBTACABIEwQ4EJyIYIEluc3RydWN0aW9ucyBwcm9wZXJ0eS4gCg0KBQUwAgABEgTBDgQYCg0KBQUwAgACEgTBDiUmCiwKBAUwAgESBMIOBCciHiBJbnN0cnVjdGlvbnMgZm9yIHRhYmxlLW1pc3MuIAoNCgUFMAIBARIEwg4EHQoNCgUFMAIBAhIEwg4lJgokCgQFMAICEgTDDgQnIhYgTmV4dCBUYWJsZSBwcm9wZXJ0eS4gCg0KBQUwAgIBEgTDDgQXCg0KBQUwAgICEgTDDiUmCioKBAUwAgMSBMQOBCciHCBOZXh0IFRhYmxlIGZvciB0YWJsZS1taXNzLiAKDQoFBTACAwESBMQOBBwKDQoFBTACAwISBMQOJSYKJwoEBTACBBIExQ4EJyIZIFdyaXRlIEFjdGlvbnMgcHJvcGVydHkuIAoNCgUFMAIEARIExQ4EGQoNCgUFMAIEAhIExQ4lJgotCgQFMAIFEgTGDgQnIh8gV3JpdGUgQWN0aW9ucyBmb3IgdGFibGUtbWlzcy4gCg0KBQUwAgUBEgTGDgQeCg0KBQUwAgUCEgTGDiUmCicKBAUwAgYSBMcOBCciGSBBcHBseSBBY3Rpb25zIHByb3BlcnR5LiAKDQoFBTACBgESBMcOBBkKDQoFBTACBgISBMcOJSYKLQoEBTACBxIEyA4EJyIfIEFwcGx5IEFjdGlvbnMgZm9yIHRhYmxlLW1pc3MuIAoNCgUFMAIHARIEyA4EHgoNCgUFMAIHAhIEyA4lJgofCgQFMAIIEgTJDgQnIhEgTWF0Y2ggcHJvcGVydHkuIAoNCgUFMAIIARIEyQ4EEQoNCgUFMAIIAhIEyQ4lJgojCgQFMAIJEgTKDgQoIhUgV2lsZGNhcmRzIHByb3BlcnR5LiAKDQoFBTACCQESBMoOBBUKDQoFBTACCQISBMoOJScKKQoEBTACChIEyw4EKCIbIFdyaXRlIFNldC1GaWVsZCBwcm9wZXJ0eS4gCg0KBQUwAgoBEgTLDgQaCg0KBQUwAgoCEgTLDiUnCi8KBAUwAgsSBMwOBCgiISBXcml0ZSBTZXQtRmllbGQgZm9yIHRhYmxlLW1pc3MuIAoNCgUFMAILARIEzA4EHwoNCgUFMAILAhIEzA4lJwopCgQFMAIMEgTNDgQoIhsgQXBwbHkgU2V0LUZpZWxkIHByb3BlcnR5LiAKDQoFBTACDAESBM0OBBoKDQoFBTACDAISBM0OJScKLwoEBTACDRIEzg4EKCIhIEFwcGx5IFNldC1GaWVsZCBmb3IgdGFibGUtbWlzcy4gCg0KBQUwAg0BEgTODgQfCg0KBQUwAg0CEgTODiUnCiYKBAUwAg4SBM8OBCwiGCBFeHBlcmltZW50ZXIgcHJvcGVydHkuIAoNCgUFMAIOARIEzw4EGAoNCgUFMAIOAhIEzw4lKwosCgQFMAIPEgTQDgQsIh4gRXhwZXJpbWVudGVyIGZvciB0YWJsZS1taXNzLiAKDQoFBTACDwESBNAOBB0KDQoFBTACDwISBNAOJSsKPgoCBDESBtQOAN0OARowIENvbW1vbiBoZWFkZXIgZm9yIGFsbCBUYWJsZSBGZWF0dXJlIFByb3BlcnRpZXMgCgsKAwQxARIE1A4IIgohCgQEMQIAEgTVDgQpIhMgT25lIG9mIE9GUFRGUFRfKi4gCg8KBQQxAgAEEgbVDgTUDiQKDQoFBDECAAYSBNUOBB8KDQoFBDECAAESBNUOICQKDQoFBDECAAMSBNUOJygKDgoEBDEIABIG1g4E3A4FCg0KBQQxCAABEgTWDgoPCgwKBAQxAgESBNcOCD0KDQoFBDECAQYSBNcOCCsKDQoFBDECAQESBNcOLDgKDQoFBDECAQMSBNcOOzwKDAoEBDECAhIE2A4IOwoNCgUEMQICBhIE2A4IKgoNCgUEMQICARIE2A4rNgoNCgUEMQICAxIE2A45OgoMCgQEMQIDEgTZDggzCg0KBQQxAgMGEgTZDggmCg0KBQQxAgMBEgTZDicuCg0KBQQxAgMDEgTZDjEyCgwKBAQxAgQSBNoOCCsKDQoFBDECBAYSBNoOCCIKDQoFBDECBAESBNoOIyYKDQoFBDECBAMSBNoOKSoKDAoEBDECBRIE2w4IPQoNCgUEMQIFBhIE2w4IKwoNCgUEMQIFARIE2w4sOAoNCgUEMQIFAxIE2w47PAolCgIEMhIG4A4A5A4BGhcgSW5zdHJ1Y3Rpb25zIHByb3BlcnR5IAoLCgMEMgESBOAOCCsKXwoEBDICABIE4w4ELho5IE9uZSBvZiBPRlBURlBUX0lOU1RSVUNUSU9OUywKT0ZQVEZQVF9JTlNUUlVDVElPTlNfTUlTUy4gIhYgTGlzdCBvZiBpbnN0cnVjdGlvbnMgCg0KBQQyAgAEEgTjDgQMCg0KBQQyAgAGEgTjDg0cCg0KBQQyAgABEgTjDh0pCg0KBQQyAgADEgTjDiwtCiQKAgQzEgbnDgDrDgEaFiBOZXh0IFRhYmxlcyBwcm9wZXJ0eSAKCwoDBDMBEgTnDggqClsKBAQzAgASBOoOBCcaNyBPbmUgb2YgT0ZQVEZQVF9ORVhUX1RBQkxFUywKT0ZQVEZQVF9ORVhUX1RBQkxFU19NSVNTLiAiFCBMaXN0IG9mIHRhYmxlIGlkcy4gCg0KBQQzAgAEEgTqDgQMCg0KBQQzAgAFEgTqDg0TCg0KBQQzAgABEgTqDhQiCg0KBQQzAgADEgTqDiUmCiAKAgQ0EgbuDgD0DgEaEiBBY3Rpb25zIHByb3BlcnR5IAoLCgMENAESBO4OCCYKjwEKBAQ0AgASBPMOBCQabiBPbmUgb2YgT0ZQVEZQVF9XUklURV9BQ1RJT05TLApPRlBURlBUX1dSSVRFX0FDVElPTlNfTUlTUywKT0ZQVEZQVF9BUFBMWV9BQ1RJT05TLApPRlBURlBUX0FQUExZX0FDVElPTlNfTUlTUy4gIhEgTGlzdCBvZiBhY3Rpb25zIAoNCgUENAIABBIE8w4EDAoNCgUENAIABhIE8w4NFwoNCgUENAIAARIE8w4YHwoNCgUENAIAAxIE8w4iIwrMAQoCBDUSBvcOAIAPARonIE1hdGNoLCBXaWxkY2FyZCBvciBTZXQtRmllbGQgcHJvcGVydHkgIpQBIE9uZSBvZiBPRlBURlBUX01BVENILApPRlBURlBUX1dJTERDQVJEUywKT0ZQVEZQVF9XUklURV9TRVRGSUVMRCwKT0ZQVEZQVF9XUklURV9TRVRGSUVMRF9NSVNTLApPRlBURlBUX0FQUExZX1NFVEZJRUxELApPRlBURlBUX0FQUExZX1NFVEZJRUxEX01JU1MuIAoLCgMENQESBPcOCCIKQAoEBDUCABIE/w4EIBoaIFRPRE8gaXMgdGhpcyBhIHVpbnQzMj8/PyAiFiBBcnJheSBvZiBPWE0gaGVhZGVycyAKDQoFBDUCAAQSBP8OBAwKDQoFBDUCAAUSBP8ODRMKDQoFBDUCAAESBP8OFBsKDQoFBDUCAAMSBP8OHh8KMwoCBDYSBoMPAIsPARolIEV4cGVyaW1lbnRlciB0YWJsZSBmZWF0dXJlIHByb3BlcnR5IAoLCgMENgESBIMPCCsKmgEKBAQ2AgASBIYPBCQaOSBPbmUgb2YgT0ZQVEZQVF9FWFBFUklNRU5URVIsCk9GUFRGUFRfRVhQRVJJTUVOVEVSX01JU1MuICJRIEV4cGVyaW1lbnRlciBJRCB3aGljaCB0YWtlcyB0aGUgc2FtZQpmb3JtIGFzIGluIHN0cnVjdApvZnBfZXhwZXJpbWVudGVyX2hlYWRlci4gCg8KBQQ2AgAEEgaGDwSDDy0KDQoFBDYCAAUSBIYPBAoKDQoFBDYCAAESBIYPEx8KDQoFBDYCAAMSBIYPIiMKJQoEBDYCARIEiQ8EICIXIEV4cGVyaW1lbnRlciBkZWZpbmVkLiAKDwoFBDYCAQQSBokPBIYPJAoNCgUENgIBBRIEiQ8ECgoNCgUENgIBARIEiQ8TGwoNCgUENgIBAxIEiQ8eHwoMCgQENgICEgSKDwQqCg0KBQQ2AgIEEgSKDwQMCg0KBQQ2AgIFEgSKDw0TCg0KBQQ2AgIBEgSKDxQlCg0KBQQ2AgIDEgSKDygpCn0KAgQ3EgaPDwCaDwEabyBCb2R5IGZvciBvZnBfbXVsdGlwYXJ0X3JlcXVlc3Qgb2YgdHlwZSBPRlBNUF9UQUJMRV9GRUFUVVJFUy4vCiBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX1RBQkxFX0ZFQVRVUkVTIHJlcXVlc3QuIAoLCgMENwESBI8PCBoKUAoEBDcCABIEkA8EGCJCIElkZW50aWZpZXIgb2YgdGFibGUuICBMb3dlciBudW1iZXJlZCB0YWJsZXMKYXJlIGNvbnN1bHRlZCBmaXJzdC4gCg8KBQQ3AgAEEgaQDwSPDxwKDQoFBDcCAAUSBJAPBAoKDQoFBDcCAAESBJAPCxMKDQoFBDcCAAMSBJAPFhcKDAoEBDcCARIEkg8EFAoPCgUENwIBBBIGkg8EkA8YCg0KBQQ3AgEFEgSSDwQKCg0KBQQ3AgEBEgSSDwsPCg0KBQQ3AgEDEgSSDxITCjEKBAQ3AgISBJMPBB4iIyBCaXRzIG9mIG1ldGFkYXRhIHRhYmxlIGNhbiBtYXRjaC4gCg8KBQQ3AgIEEgaTDwSSDxQKDQoFBDcCAgUSBJMPBAoKDQoFBDcCAgESBJMPCxkKDQoFBDcCAgMSBJMPHB0KMQoEBDcCAxIElA8EHiIjIEJpdHMgb2YgbWV0YWRhdGEgdGFibGUgY2FuIHdyaXRlLiAKDwoFBDcCAwQSBpQPBJMPHgoNCgUENwIDBRIElA8ECgoNCgUENwIDARIElA8LGQoNCgUENwIDAxIElA8cHQooCgQENwIEEgSVDwQWIhogQml0bWFwIG9mIE9GUFRDXyogdmFsdWVzIAoPCgUENwIEBBIGlQ8ElA8eCg0KBQQ3AgQFEgSVDwQKCg0KBQQ3AgQBEgSVDwsRCg0KBQQ3AgQDEgSVDxQVCjAKBAQ3AgUSBJYPBBsiIiBNYXggbnVtYmVyIG9mIGVudHJpZXMgc3VwcG9ydGVkLiAKDwoFBDcCBQQSBpYPBJUPFgoNCgUENwIFBRIElg8ECgoNCgUENwIFARIElg8LFgoNCgUENwIFAxIElg8ZGgorCgQENwIGEgSZDwQ3Gh0gVGFibGUgRmVhdHVyZSBQcm9wZXJ0eSBsaXN0IAoNCgUENwIGBBIEmQ8EDAoNCgUENwIGBhIEmQ8NJwoNCgUENwIGARIEmQ8oMgoNCgUENwIGAxIEmQ81Ngo1CgIEOBIGnQ8Aow8BGicgQm9keSBvZiByZXBseSB0byBPRlBNUF9UQUJMRSByZXF1ZXN0LiAKCwoDBDgBEgSdDwgXClAKBAQ4AgASBJ4PBBgiQiBJZGVudGlmaWVyIG9mIHRhYmxlLiAgTG93ZXIgbnVtYmVyZWQgdGFibGVzCmFyZSBjb25zdWx0ZWQgZmlyc3QuIAoPCgUEOAIABBIGng8EnQ8ZCg0KBQQ4AgAFEgSeDwQKCg0KBQQ4AgABEgSeDwsTCg0KBQQ4AgADEgSeDxYXCikKBAQ4AgESBKAPBBwiGyBOdW1iZXIgb2YgYWN0aXZlIGVudHJpZXMuIAoPCgUEOAIBBBIGoA8Eng8YCg0KBQQ4AgEFEgSgDwQKCg0KBQQ4AgEBEgSgDwsXCg0KBQQ4AgEDEgSgDxobCjUKBAQ4AgISBKEPBBwiJyBOdW1iZXIgb2YgcGFja2V0cyBsb29rZWQgdXAgaW4gdGFibGUuIAoPCgUEOAICBBIGoQ8EoA8cCg0KBQQ4AgIFEgShDwQKCg0KBQQ4AgIBEgShDwsXCg0KBQQ4AgIDEgShDxobCjEKBAQ4AgMSBKIPBB0iIyBOdW1iZXIgb2YgcGFja2V0cyB0aGF0IGhpdCB0YWJsZS4gCg8KBQQ4AgMEEgaiDwShDxwKDQoFBDgCAwUSBKIPBAoKDQoFBDgCAwESBKIPCxgKDQoFBDgCAwMSBKIPGxwKQgoCBDkSBqYPAKsPARo0IEJvZHkgZm9yIG9mcF9tdWx0aXBhcnRfcmVxdWVzdCBvZiB0eXBlIE9GUE1QX1BPUlQuIAoLCgMEOQESBKYPCB4KmQEKBAQ5AgASBKcPBBciigEgT0ZQTVBfUE9SVCBtZXNzYWdlIG11c3QgcmVxdWVzdCBzdGF0aXN0aWNzCiBlaXRoZXIgZm9yIGEgc2luZ2xlIHBvcnQgKHNwZWNpZmllZCBpbgogcG9ydF9ubykgb3IgZm9yIGFsbCBwb3J0cyAoaWYgcG9ydF9ubyA9PQogT0ZQUF9BTlkpLiAKDwoFBDkCAAQSBqcPBKYPIAoNCgUEOQIABRIEpw8ECgoNCgUEOQIAARIEpw8LEgoNCgUEOQIAAxIEpw8VFgptCgIEOhIGrw8Axg8BGl8gQm9keSBvZiByZXBseSB0byBPRlBNUF9QT1JUIHJlcXVlc3QuIElmIGEgY291bnRlciBpcyB1bnN1cHBvcnRlZCwgc2V0CiB0aGUgZmllbGQgdG8gYWxsIG9uZXMuIAoLCgMEOgESBK8PCBYKDAoEBDoCABIEsA8EFwoPCgUEOgIABBIGsA8Erw8YCg0KBQQ6AgAFEgSwDwQKCg0KBQQ6AgABEgSwDwsSCg0KBQQ6AgADEgSwDxUWCisKBAQ6AgESBLEPBBoiHSBOdW1iZXIgb2YgcmVjZWl2ZWQgcGFja2V0cy4gCg8KBQQ6AgEEEgaxDwSwDxcKDQoFBDoCAQUSBLEPBAoKDQoFBDoCAQESBLEPCxUKDQoFBDoCAQMSBLEPGBkKLgoEBDoCAhIEsg8EGiIgIE51bWJlciBvZiB0cmFuc21pdHRlZCBwYWNrZXRzLiAKDwoFBDoCAgQSBrIPBLEPGgoNCgUEOgICBRIEsg8ECgoNCgUEOgICARIEsg8LFQoNCgUEOgICAxIEsg8YGQopCgQEOgIDEgSzDwQYIhsgTnVtYmVyIG9mIHJlY2VpdmVkIGJ5dGVzLiAKDwoFBDoCAwQSBrMPBLIPGgoNCgUEOgIDBRIEsw8ECgoNCgUEOgIDARIEsw8LEwoNCgUEOgIDAxIEsw8WFwosCgQEOgIEEgS0DwQYIh4gTnVtYmVyIG9mIHRyYW5zbWl0dGVkIGJ5dGVzLiAKDwoFBDoCBAQSBrQPBLMPGAoNCgUEOgIEBRIEtA8ECgoNCgUEOgIEARIEtA8LEwoNCgUEOgIEAxIEtA8WFwowCgQEOgIFEgS1DwQaIiIgTnVtYmVyIG9mIHBhY2tldHMgZHJvcHBlZCBieSBSWC4gCg8KBQQ6AgUEEga1DwS0DxgKDQoFBDoCBQUSBLUPBAoKDQoFBDoCBQESBLUPCxUKDQoFBDoCBQMSBLUPGBkKMAoEBDoCBhIEtg8EGiIiIE51bWJlciBvZiBwYWNrZXRzIGRyb3BwZWQgYnkgVFguIAoPCgUEOgIGBBIGtg8EtQ8aCg0KBQQ6AgYFEgS2DwQKCg0KBQQ6AgYBEgS2DwsVCg0KBQQ6AgYDEgS2DxgZCqYBCgQEOgIHEgS3DwQZIpcBIE51bWJlciBvZiByZWNlaXZlIGVycm9ycy4gIFRoaXMgaXMgYSBzdXBlci1zZXQKb2YgbW9yZSBzcGVjaWZpYyByZWNlaXZlIGVycm9ycyBhbmQgc2hvdWxkIGJlCmdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc3VtIG9mIGFsbApyeF8qX2VyciB2YWx1ZXMuIAoPCgUEOgIHBBIGtw8Etg8aCg0KBQQ6AgcFEgS3DwQKCg0KBQQ6AgcBEgS3DwsUCg0KBQQ6AgcDEgS3DxcYCsEBCgQEOgIIEgS7DwQZIrIBIE51bWJlciBvZiB0cmFuc21pdCBlcnJvcnMuICBUaGlzIGlzIGEgc3VwZXItc2V0Cm9mIG1vcmUgc3BlY2lmaWMgdHJhbnNtaXQgZXJyb3JzIGFuZCBzaG91bGQgYmUKZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzdW0gb2YgYWxsCnR4XypfZXJyIHZhbHVlcyAobm9uZSBjdXJyZW50bHkgZGVmaW5lZC4pIAoPCgUEOgIIBBIGuw8Etw8ZCg0KBQQ6AggFEgS7DwQKCg0KBQQ6AggBEgS7DwsUCg0KBQQ6AggDEgS7DxcYCjEKBAQ6AgkSBL8PBB0iIyBOdW1iZXIgb2YgZnJhbWUgYWxpZ25tZW50IGVycm9ycy4gCg8KBQQ6AgkEEga/DwS7DxkKDQoFBDoCCQUSBL8PBAoKDQoFBDoCCQESBL8PCxcKDQoFBDoCCQMSBL8PGhwKMgoEBDoCChIEwA8EHCIkIE51bWJlciBvZiBwYWNrZXRzIHdpdGggUlggb3ZlcnJ1bi4gCg8KBQQ6AgoEEgbADwS/Dx0KDQoFBDoCCgUSBMAPBAoKDQoFBDoCCgESBMAPCxYKDQoFBDoCCgMSBMAPGRsKJQoEBDoCCxIEwQ8EGyIXIE51bWJlciBvZiBDUkMgZXJyb3JzLiAKDwoFBDoCCwQSBsEPBMAPHAoNCgUEOgILBRIEwQ8ECgoNCgUEOgILARIEwQ8LFQoNCgUEOgILAxIEwQ8YGgolCgQEOgIMEgTCDwQbIhcgTnVtYmVyIG9mIGNvbGxpc2lvbnMuIAoPCgUEOgIMBBIGwg8EwQ8bCg0KBQQ6AgwFEgTCDwQKCg0KBQQ6AgwBEgTCDwsVCg0KBQQ6AgwDEgTCDxgaCjQKBAQ6Ag0SBMMPBB0iJiBUaW1lIHBvcnQgaGFzIGJlZW4gYWxpdmUgaW4gc2Vjb25kcy4gCg8KBQQ6Ag0EEgbDDwTCDxsKDQoFBDoCDQUSBMMPBAoKDQoFBDoCDQESBMMPCxcKDQoFBDoCDQMSBMMPGhwKTAoEBDoCDhIExA8EHiI+IFRpbWUgcG9ydCBoYXMgYmVlbiBhbGl2ZSBpbiBuYW5vc2Vjb25kcwpiZXlvbmQgZHVyYXRpb25fc2VjLiAKDwoFBDoCDgQSBsQPBMMPHQoNCgUEOgIOBRIExA8ECgoNCgUEOgIOARIExA8LGAoNCgUEOgIOAxIExA8bHQosCgIEOxIGyQ8Ayw8BGh4gQm9keSBvZiBPRlBNUF9HUk9VUCByZXF1ZXN0LiAKCwoDBDsBEgTJDwgfCicKBAQ7AgASBMoPBBgiGSBBbGwgZ3JvdXBzIGlmIE9GUEdfQUxMLiAKDwoFBDsCAAQSBsoPBMkPIQoNCgUEOwIABRIEyg8ECgoNCgUEOwIAARIEyg8LEwoNCgUEOwIAAxIEyg8WFwosCgIEPBIGzg8A0Q8BGh4gVXNlZCBpbiBncm91cCBzdGF0cyByZXBsaWVzLiAKCwoDBDwBEgTODwgaCjYKBAQ8AgASBM8PBBwiKCBOdW1iZXIgb2YgcGFja2V0cyBwcm9jZXNzZWQgYnkgYnVja2V0LiAKDwoFBDwCAAQSBs8PBM4PHAoNCgUEPAIABRIEzw8ECgoNCgUEPAIAARIEzw8LFwoNCgUEPAIAAxIEzw8aGwo0CgQEPAIBEgTQDwQaIiYgTnVtYmVyIG9mIGJ5dGVzIHByb2Nlc3NlZCBieSBidWNrZXQuIAoPCgUEPAIBBBIG0A8Ezw8cCg0KBQQ8AgEFEgTQDwQKCg0KBQQ8AgEBEgTQDwsVCg0KBQQ8AgEDEgTQDxgZCjUKAgQ9EgbUDwDfDwEaJyBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX0dST1VQIHJlcXVlc3QuIAoLCgMEPQESBNQPCBcKIQoEBD0CABIE1Q8EGCITIEdyb3VwIGlkZW50aWZpZXIuIAoPCgUEPQIABBIG1Q8E1A8ZCg0KBQQ9AgAFEgTVDwQKCg0KBQQ9AgABEgTVDwsTCg0KBQQ9AgADEgTVDxYXCk4KBAQ9AgESBNYPBBkiQCBOdW1iZXIgb2YgZmxvd3Mgb3IgZ3JvdXBzIHRoYXQgZGlyZWN0bHkKZm9yd2FyZCB0byB0aGlzIGdyb3VwLiAKDwoFBD0CAQQSBtYPBNUPGAoNCgUEPQIBBRIE1g8ECgoNCgUEPQIBARIE1g8LFAoNCgUEPQIBAxIE1g8XGAo1CgQEPQICEgTYDwQcIicgTnVtYmVyIG9mIHBhY2tldHMgcHJvY2Vzc2VkIGJ5IGdyb3VwLiAKDwoFBD0CAgQSBtgPBNYPGQoNCgUEPQICBRIE2A8ECgoNCgUEPQICARIE2A8LFwoNCgUEPQICAxIE2A8aGwozCgQEPQIDEgTZDwQaIiUgTnVtYmVyIG9mIGJ5dGVzIHByb2Nlc3NlZCBieSBncm91cC4gCg8KBQQ9AgMEEgbZDwTYDxwKDQoFBD0CAwUSBNkPBAoKDQoFBD0CAwESBNkPCxUKDQoFBD0CAwMSBNkPGBkKNQoEBD0CBBIE2g8EHCInIFRpbWUgZ3JvdXAgaGFzIGJlZW4gYWxpdmUgaW4gc2Vjb25kcy4gCg8KBQQ9AgQEEgbaDwTZDxoKDQoFBD0CBAUSBNoPBAoKDQoFBD0CBAESBNoPCxcKDQoFBD0CBAMSBNoPGhsKTQoEBD0CBRIE2w8EHSI/IFRpbWUgZ3JvdXAgaGFzIGJlZW4gYWxpdmUgaW4gbmFub3NlY29uZHMKYmV5b25kIGR1cmF0aW9uX3NlYy4gCg8KBQQ9AgUEEgbbDwTaDxwKDQoFBD0CBQUSBNsPBAoKDQoFBD0CBQESBNsPCxgKDQoFBD0CBQMSBNsPGxwKKwoEBD0CBhIE3Q8EMSIdIE9uZSBjb3VudGVyIHNldCBwZXIKYnVja2V0LiAKDQoFBD0CBgQSBN0PBAwKDQoFBD0CBgYSBN0PDR8KDQoFBD0CBgESBN0PICwKDQoFBD0CBgMSBN0PLzAKOgoCBD4SBuIPAOYPARosIEJvZHkgb2YgcmVwbHkgdG8gT0ZQTVBfR1JPVVBfREVTQyByZXF1ZXN0LiAKCwoDBD4BEgTiDwgWCh8KBAQ+AgASBOMPBBwiESBPbmUgb2YgT0ZQR1RfKi4gCg8KBQQ+AgAEEgbjDwTiDxgKDQoFBD4CAAYSBOMPBBIKDQoFBD4CAAESBOMPExcKDQoFBD4CAAMSBOMPGhsKIQoEBD4CARIE5A8EGCITIEdyb3VwIGlkZW50aWZpZXIuIAoPCgUEPgIBBBIG5A8E4w8cCg0KBQQ+AgEFEgTkDwQKCg0KBQQ+AgEBEgTkDwsTCg0KBQQ+AgEDEgTkDxYXCiwKBAQ+AgISBOUPBCQiHiBMaXN0IG9mIGJ1Y2tldHMgLSAwIG9yIG1vcmUuIAoNCgUEPgICBBIE5Q8EDAoNCgUEPgICBhIE5Q8NFwoNCgUEPgICARIE5Q8YHwoNCgUEPgICAxIE5Q8iIwoMCgIEPxIG6A8A6w8BCgsKAwQ/ARIE6A8IFwoMCgQEPwIAEgTpDwQcCg8KBQQ/AgAEEgbpDwToDxkKDQoFBD8CAAYSBOkPBBIKDQoFBD8CAAESBOkPExcKDQoFBD8CAAMSBOkPGhsKDAoEBD8CARIE6g8EHgoPCgUEPwIBBBIG6g8E6Q8cCg0KBQQ/AgEGEgTqDwQTCg0KBQQ/AgEBEgTqDxQZCg0KBQQ/AgEDEgTqDxwdCpYBCgIFMRIG8Q8A9w8BGhsgR3JvdXAgY29uZmlndXJhdGlvbiBmbGFncyAyPSBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggMS4zLjEgLSBhdm9pZCBicmVha2luZyB0aGUgQVBJLiAyLCNkZWZpbmUgb2ZwX2dyb3VwX2Rlc2Nfc3RhdHMgb2ZwX2dyb3VwX2Rlc2MKCgsKAwUxARIE8Q8FGwoMCgQFMQIAEgTyDwQfCg0KBQUxAgABEgTyDwQSCg0KBQUxAgACEgTyDx0eCjAKBAUxAgESBPMPBB8iIiBTdXBwb3J0IHdlaWdodCBmb3Igc2VsZWN0IGdyb3VwcyAKDQoFBTECAQESBPMPBBgKDQoFBTECAQISBPMPHR4KMgoEBTECAhIE9A8EHyIkIFN1cHBvcnQgbGl2ZW5lc3MgZm9yIHNlbGVjdCBncm91cHMgCg0KBQUxAgIBEgT0DwQaCg0KBQUxAgICEgT0Dx0eCicKBAUxAgMSBPUPBB8iGSBTdXBwb3J0IGNoYWluaW5nIGdyb3VwcyAKDQoFBTECAwESBPUPBBMKDQoFBTECAwISBPUPHR4KMwoEBTECBBIE9g8EHyIlIENoZWNrIGNoYWluaW5nIGZvciBsb29wcyBhbmQgZGVsZXRlIAoNCgUFMQIEARIE9g8EGgoNCgUFMQIEAhIE9g8dHgpOCgIEQBIG+g8AgRABGkAgQm9keSBvZiByZXBseSB0byBPRlBNUF9HUk9VUF9GRUFUVVJFUyByZXF1ZXN0LiBHcm91cCBmZWF0dXJlcy4gCgsKAwRAARIE+g8IGgo6CgQEQAIAEgT7DwQWIiwgQml0bWFwIG9mICgxIDw8IE9GUEdUXyopIHZhbHVlcyBzdXBwb3J0ZWQuIAoPCgUEQAIABBIG+w8E+g8cCg0KBQRAAgAFEgT7DwQKCg0KBQRAAgABEgT7DwwRCg0KBQRAAgADEgT7DxQVCjgKBARAAgESBPwPBB0iKiBCaXRtYXAgb2YgT0ZQR0ZDXyogY2FwYWJpbGl0eSBzdXBwb3J0ZWQuIAoPCgUEQAIBBBIG/A8E+w8WCg0KBQRAAgEFEgT8DwQKCg0KBQRAAgEBEgT8DwwYCg0KBQRAAgEDEgT8DxscCjcKBARAAgISBP0PBCMiKSBNYXhpbXVtIG51bWJlciBvZiBncm91cHMgZm9yIGVhY2ggdHlwZS4KCg0KBQRAAgIEEgT9DwQMCg0KBQRAAgIFEgT9Dw0TCg0KBQRAAgIBEgT9DxQeCg0KBQRAAgIDEgT9DyEiCjsKBARAAgMSBP8PBCAiLSBCaXRtYXBzIG9mICgxIDw8IE9GUEFUXyopIHZhbHVlcwpzdXBwb3J0ZWQuIAoNCgUEQAIDBBIE/w8EDAoNCgUEQAIDBRIE/w8NEwoNCgUEQAIDARIE/w8UGwoNCgUEQAIDAxIE/w8eHwpECgIEQRIGhBAAhhABGjYgQm9keSBvZiBPRlBNUF9NRVRFUiBhbmQgT0ZQTVBfTUVURVJfQ09ORklHIHJlcXVlc3RzLiAKCwoDBEEBEgSEEAgjCiwKBARBAgASBIUQBBgiHiBNZXRlciBpbnN0YW5jZSwgb3IgT0ZQTV9BTEwuIAoPCgUEQQIABBIGhRAEhBAlCg0KBQRBAgAFEgSFEAQKCg0KBQRBAgABEgSFEAsTCg0KBQRBAgADEgSFEBYXCi4KAgRCEgaJEACMEAEaICBTdGF0aXN0aWNzIGZvciBlYWNoIG1ldGVyIGJhbmQgCgsKAwRCARIEiRAIHAoqCgQEQgIAEgSKEAQoIhwgTnVtYmVyIG9mIHBhY2tldHMgaW4gYmFuZC4gCg8KBQRCAgAEEgaKEASJEB4KDQoFBEICAAUSBIoQBAoKDQoFBEICAAESBIoQEiMKDQoFBEICAAMSBIoQJicKKAoEBEICARIEixAEJiIaIE51bWJlciBvZiBieXRlcyBpbiBiYW5kLiAKDwoFBEICAQQSBosQBIoQKAoNCgUEQgIBBRIEixAECgoNCgUEQgIBARIEixASIQoNCgUEQgIBAxIEixAkJQpHCgIEQxIGjxAAmRABGjkgQm9keSBvZiByZXBseSB0byBPRlBNUF9NRVRFUiByZXF1ZXN0LiBNZXRlciBzdGF0aXN0aWNzLiAKCwoDBEMBEgSPEAgXCh8KBARDAgASBJAQBB8iESBNZXRlciBpbnN0YW5jZS4gCg8KBQRDAgAEEgaQEASPEBkKDQoFBEMCAAUSBJAQBAoKDQoFBEMCAAESBJAQEhoKDQoFBEMCAAMSBJAQHR4KLwoEBEMCARIEkRAEISIhIE51bWJlciBvZiBmbG93cyBib3VuZCB0byBtZXRlci4gCg8KBQRDAgEEEgaREASQEB8KDQoFBEMCAQUSBJEQBAoKDQoFBEMCAQESBJEQEhwKDQoFBEMCAQMSBJEQHyAKKwoEBEMCAhIEkhAEJiIdIE51bWJlciBvZiBwYWNrZXRzIGluIGlucHV0LiAKDwoFBEMCAgQSBpIQBJEQIQoNCgUEQwICBRIEkhAECgoNCgUEQwICARIEkhASIQoNCgUEQwICAxIEkhAkJQopCgQEQwIDEgSTEAQkIhsgTnVtYmVyIG9mIGJ5dGVzIGluIGlucHV0LiAKDwoFBEMCAwQSBpMQBJIQJgoNCgUEQwIDBRIEkxAECgoNCgUEQwIDARIEkxASHwoNCgUEQwIDAxIEkxAiIwo1CgQEQwIEEgSUEAQjIicgVGltZSBtZXRlciBoYXMgYmVlbiBhbGl2ZSBpbiBzZWNvbmRzLiAKDwoFBEMCBAQSBpQQBJMQJAoNCgUEQwIEBRIElBAECgoNCgUEQwIEARIElBASHgoNCgUEQwIEAxIElBAhIgpNCgQEQwIFEgSVEAQkIj8gVGltZSBtZXRlciBoYXMgYmVlbiBhbGl2ZSBpbiBuYW5vc2Vjb25kcwpiZXlvbmQgZHVyYXRpb25fc2VjLiAKDwoFBEMCBQQSBpUQBJQQIwoNCgUEQwIFBRIElRAECgoNCgUEQwIFARIElRASHwoNCgUEQwIFAxIElRAiIwpICgQEQwIGEgSXEAQxIjogVGhlIGJhbmRfc3RhdHMgbGVuZ3RoIGlzCmluZmVycmVkIGZyb20gdGhlIGxlbmd0aCBmaWVsZC4gCg0KBQRDAgYEEgSXEAQMCg0KBQRDAgYGEgSXEA0hCg0KBQRDAgYBEgSXECIsCg0KBQRDAgYDEgSXEC8wClEKAgREEgacEAChEAEaQyBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX01FVEVSX0NPTkZJRyByZXF1ZXN0LiBNZXRlciBjb25maWd1cmF0aW9uLiAKCwoDBEQBEgScEAgYCicKBAREAgASBJ0QBBwiGSBBbGwgT0ZQTUZfKiB0aGF0IGFwcGx5LiAKDwoFBEQCAAQSBp0QBJwQGgoNCgUERAIABRIEnRAECgoNCgUERAIAARIEnRASFwoNCgUERAIAAxIEnRAaGwofCgQERAIBEgSeEAQfIhEgTWV0ZXIgaW5zdGFuY2UuIAoPCgUERAIBBBIGnhAEnRAcCg0KBQREAgEFEgSeEAQKCg0KBQREAgEBEgSeEBIaCg0KBQREAgEDEgSeEB0eCkMKBAREAgISBJ8QBC0iNSBUaGUgYmFuZHMgbGVuZ3RoIGlzCmluZmVycmVkIGZyb20gdGhlIGxlbmd0aCBmaWVsZC4gCg0KBQREAgIEEgSfEAQMCg0KBQREAgIGEgSfEA0iCg0KBQREAgIBEgSfECMoCg0KBQREAgIDEgSfECssCk4KAgRFEgakEACrEAEaQCBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX01FVEVSX0ZFQVRVUkVTIHJlcXVlc3QuIE1ldGVyIGZlYXR1cmVzLiAKCwoDBEUBEgSkEAgaCikKBARFAgASBKUQBBwiGyBNYXhpbXVtIG51bWJlciBvZiBtZXRlcnMuIAoPCgUERQIABBIGpRAEpBAcCg0KBQRFAgAFEgSlEAQKCg0KBQRFAgABEgSlEA4XCg0KBQRFAgADEgSlEBobCjwKBARFAgESBKYQBB0iLiBCaXRtYXBzIG9mICgxIDw8IE9GUE1CVF8qKSB2YWx1ZXMgc3VwcG9ydGVkLgoKDwoFBEUCAQQSBqYQBKUQHAoNCgUERQIBBRIEphAECgoNCgUERQIBARIEphAOGAoNCgUERQIBAxIEphAbHAotCgQERQICEgSoEAQfIh8gQml0bWFwcyBvZiAib2ZwX21ldGVyX2ZsYWdzIi4gCg8KBQRFAgIEEgaoEASmEB0KDQoFBEUCAgUSBKgQBAoKDQoFBEUCAgESBKgQDhoKDQoFBEUCAgMSBKgQHR4KKAoEBEUCAxIEqRAEHCIaIE1heGltdW0gYmFuZHMgcGVyIG1ldGVycyAKDwoFBEUCAwQSBqkQBKgQHwoNCgUERQIDBRIEqRAECgoNCgUERQIDARIEqRAOFwoNCgUERQIDAxIEqRAaGwojCgQERQIEEgSqEAQcIhUgTWF4aW11bSBjb2xvciB2YWx1ZSAKDwoFBEUCBAQSBqoQBKkQHAoNCgUERQIEBRIEqhAECgoNCgUERQIEARIEqhAOFwoNCgUERQIEAxIEqhAaGwoMCgIERhIGrRAAsBABCgsKAwRGARIErRAIFwoMCgQERgIAEgSuEAQeCg8KBQRGAgAEEgauEAStEBkKDQoFBEYCAAYSBK4QBBQKDQoFBEYCAAESBK4QFRsKDQoFBEYCAAMSBK4QHB0KDAoEBEYCARIErxAEHAoPCgUERgIBBBIGrxAErhAeCg0KBQRGAgEGEgSvEAQTCg0KBQRGAgEBEgSvEBQZCg0KBQRGAgEDEgSvEBobClAKAgRHEgazEAC4EAEaQiBCb2R5IGZvciBvZnBfbXVsdGlwYXJ0X3JlcXVlc3QvcmVwbHkgb2YgdHlwZSBPRlBNUF9FWFBFUklNRU5URVIuIAoLCgMERwESBLMQCCkKXwoEBEcCABIEtBAEHCJRIEV4cGVyaW1lbnRlciBJRCB3aGljaCB0YWtlcyB0aGUgc2FtZSBmb3JtCmFzIGluIHN0cnVjdCBvZnBfZXhwZXJpbWVudGVyX2hlYWRlci4gCg8KBQRHAgAEEga0EASzECsKDQoFBEcCAAUSBLQQBAoKDQoFBEcCAAESBLQQCxcKDQoFBEcCAAMSBLQQGhsKJQoEBEcCARIEthAEGCIXIEV4cGVyaW1lbnRlciBkZWZpbmVkLiAKDwoFBEcCAQQSBrYQBLQQHAoNCgUERwIBBRIEthAECgoNCgUERwIBARIEthALEwoNCgUERwIBAxIEthAWFwo/CgQERwICEgS3EAQTIjEgRXhwZXJpbWVudGVyLWRlZmluZWQgYXJiaXRyYXJ5IGFkZGl0aW9uYWwgZGF0YS4gCg8KBQRHAgIEEga3EAS2EBgKDQoFBEcCAgUSBLcQBAkKDQoFBEcCAgESBLcQCg4KDQoFBEcCAgMSBLcQERIKJwoCBEgSBrsQAMIQARoZIEV4cGVyaW1lbnRlciBleHRlbnNpb24uIAoLCgMESAESBLsQCB8KmQEKBARIAgASBL0QBBwaMm9mcF9oZWFkZXIgaGVhZGVyOyAgLyogVHlwZSBPRlBUX0VYUEVSSU1FTlRFUi4gKi8KIlcgRXhwZXJpbWVudGVyIElEOgogLSBNU0IgMDogbG93LW9yZGVyIGJ5dGVzIGFyZSBJRUVFIE9VSS4KIC0gTVNCICE9IDA6IGRlZmluZWQgYnkgT05GLiAKDwoFBEgCAAQSBr0QBLsQIQoNCgUESAIABRIEvRAECgoNCgUESAIAARIEvRALFwoNCgUESAIAAxIEvRAaGwolCgQESAIBEgTAEAQYIhcgRXhwZXJpbWVudGVyIGRlZmluZWQuIAoPCgUESAIBBBIGwBAEvRAcCg0KBQRIAgEFEgTAEAQKCg0KBQRIAgEBEgTAEAsTCg0KBQRIAgEDEgTAEBYXCj8KBARIAgISBMEQBBMiMSBFeHBlcmltZW50ZXItZGVmaW5lZCBhcmJpdHJhcnkgYWRkaXRpb25hbCBkYXRhLiAKDwoFBEgCAgQSBsEQBMAQGAoNCgUESAICBRIEwRAECQoNCgUESAICARIEwRAKDgoNCgUESAICAxIEwRAREgqhAgoCBTISBs0QANIQATJKIEFsbCBvbmVzIGlzIHVzZWQgdG8gaW5kaWNhdGUgYWxsIHF1ZXVlcyBpbiBhIHBvcnQgKGZvciBzdGF0cyByZXRyaWV2YWwpLiAyISNkZWZpbmUgT0ZQUV9BTEwgICAgICAweGZmZmZmZmZmCjInIE1pbiByYXRlID4gMTAwMCBtZWFucyBub3QgY29uZmlndXJlZC4gMigjZGVmaW5lIE9GUFFfTUlOX1JBVEVfVU5DRkcgICAgICAweGZmZmYKMicgTWF4IHJhdGUgPiAxMDAwIG1lYW5zIG5vdCBjb25maWd1cmVkLiAyKCNkZWZpbmUgT0ZQUV9NQVhfUkFURV9VTkNGRyAgICAgIDB4ZmZmZgoKCwoDBTIBEgTNEAUZCgwKBAUyAgASBM4QBBwKDQoFBTICAAESBM4QBBEKDQoFBTICAAISBM4QGhsKLAoEBTICARIEzxAEHCIeIE1pbmltdW0gZGF0YXJhdGUgZ3VhcmFudGVlZC4gCg0KBQUyAgEBEgTPEAQSCg0KBQUyAgECEgTPEBobCiEKBAUyAgISBNAQBBwiEyBNYXhpbXVtIGRhdGFyYXRlLiAKDQoFBTICAgESBNAQBBIKDQoFBTICAgISBNAQGhsKLgoEBTICAxIE0RAEISIgIEV4cGVyaW1lbnRlciBkZWZpbmVkIHByb3BlcnR5LiAKDQoFBTICAwESBNEQBBYKDQoFBTICAwISBNEQGiAKLwoCBEkSBtUQANgQARohIENvbW1vbiBkZXNjcmlwdGlvbiBmb3IgYSBxdWV1ZS4gCgsKAwRJARIE1RAIHQoeCgQESQIAEgTWEAQYIhAgT25lIG9mIE9GUFFUXy4gCg8KBQRJAgAEEgbWEATVEB8KDQoFBEkCAAUSBNYQBAoKDQoFBEkCAAESBNYQCxMKDQoFBEkCAAMSBNYQFhcKOgoEBEkCARIE1xAEEyIsIExlbmd0aCBvZiBwcm9wZXJ0eSwgaW5jbHVkaW5nIHRoaXMgaGVhZGVyLiAKDwoFBEkCAQQSBtcQBNYQGAoNCgUESQIBBRIE1xAECgoNCgUESQIBARIE1xALDgoNCgUESQIBAxIE1xAREgo0CgIEShIG2xAA3hABGiYgTWluLVJhdGUgcXVldWUgcHJvcGVydHkgZGVzY3JpcHRpb24uIAoLCgMESgESBNsQCB8KKQoEBEoCABIE3BAEKiIbIHByb3A6IE9GUFFUX01JTiwgbGVuOiAxNi4gCg8KBQRKAgAEEgbcEATbECEKDQoFBEoCAAYSBNwQBBkKDQoFBEoCAAESBNwQGiUKDQoFBEoCAAMSBNwQKCkKOwoEBEoCARIE3RAEFCItIEluIDEvMTAgb2YgYSBwZXJjZW50ID0gMDs+MTAwMCAtPiBkaXNhYmxlZC4gCg8KBQRKAgEEEgbdEATcECoKDQoFBEoCAQUSBN0QBAoKDQoFBEoCAQESBN0QCw8KDQoFBEoCAQMSBN0QEhMKNAoCBEsSBuEQAOQQARomIE1heC1SYXRlIHF1ZXVlIHByb3BlcnR5IGRlc2NyaXB0aW9uLiAKCwoDBEsBEgThEAgfCikKBARLAgASBOIQBCoiGyBwcm9wOiBPRlBRVF9NQVgsIGxlbjogMTYuIAoPCgUESwIABBIG4hAE4RAhCg0KBQRLAgAGEgTiEAQZCg0KBQRLAgABEgTiEBolCg0KBQRLAgADEgTiECgpCjsKBARLAgESBOMQBBQiLSBJbiAxLzEwIG9mIGEgcGVyY2VudCA9IDA7PjEwMDAgLT4gZGlzYWJsZWQuIAoPCgUESwIBBBIG4xAE4hAqCg0KBQRLAgEFEgTjEAQKCg0KBQRLAgEBEgTjEAsPCg0KBQRLAgEDEgTjEBITCjgKAgRMEgbnEADtEAEaKiBFeHBlcmltZW50ZXIgcXVldWUgcHJvcGVydHkgZGVzY3JpcHRpb24uIAoLCgMETAESBOcQCCMKKAoEBEwCABIE6BAEKiIaIHByb3A6IE9GUFFUX0VYUEVSSU1FTlRFUiAKDwoFBEwCAAQSBugQBOcQJQoNCgUETAIABhIE6BAEGQoNCgUETAIAARIE6BAaJQoNCgUETAIAAxIE6BAoKQpfCgQETAIBEgTpEAQcIlEgRXhwZXJpbWVudGVyIElEIHdoaWNoIHRha2VzIHRoZSBzYW1lCmZvcm0gYXMgaW4gc3RydWN0Cm9mcF9leHBlcmltZW50ZXJfaGVhZGVyLiAKDwoFBEwCAQQSBukQBOgQKgoNCgUETAIBBRIE6RAECgoNCgUETAIBARIE6RALFwoNCgUETAIBAxIE6RAaGwoqCgQETAICEgTsEAQTIhwgRXhwZXJpbWVudGVyIGRlZmluZWQgZGF0YS4gCg8KBQRMAgIEEgbsEATpEBwKDQoFBEwCAgUSBOwQBAkKDQoFBEwCAgESBOwQCg4KDQoFBEwCAgMSBOwQERIKLQoCBE0SBvAQAPQQARofIEZ1bGwgZGVzY3JpcHRpb24gZm9yIGEgcXVldWUuIAoLCgMETQESBPAQCBgKKgoEBE0CABIE8RAEGCIcIGlkIGZvciB0aGUgc3BlY2lmaWMgcXVldWUuIAoPCgUETQIABBIG8RAE8BAaCg0KBQRNAgAFEgTxEAQKCg0KBQRNAgABEgTxEAsTCg0KBQRNAgADEgTxEBYXCi8KBARNAgESBPIQBBQiISBQb3J0IHRoaXMgcXVldWUgaXMgYXR0YWNoZWQgdG8uIAoPCgUETQIBBBIG8hAE8RAYCg0KBQRNAgEFEgTyEAQKCg0KBQRNAgEBEgTyEAsPCg0KBQRNAgEDEgTyEBITCiMKBARNAgISBPMQBDIiFSBMaXN0IG9mIHByb3BlcnRpZXMuIAoNCgUETQICBBIE8xAEDAoNCgUETQICBhIE8xANIgoNCgUETQICARIE8xAjLQoNCgUETQICAxIE8xAwMQozCgIEThIG9xAA/RABGiUgUXVlcnkgZm9yIHBvcnQgcXVldWUgY29uZmlndXJhdGlvbi4gCgsKAwROARIE9xAIJAqfAQoEBE4CABIE+RAEFBoTb2ZwX2hlYWRlciBoZWFkZXI7CiJ8IFBvcnQgdG8gYmUgcXVlcmllZC4gU2hvdWxkIHJlZmVyCnRvIGEgdmFsaWQgcGh5c2ljYWwgcG9ydCAoaS5lLiA8PSBPRlBQX01BWCksCm9yIE9GUFBfQU5ZIHRvIHJlcXVlc3QgYWxsIGNvbmZpZ3VyZWQKcXVldWVzLgoPCgUETgIABBIG+RAE9xAmCg0KBQROAgAFEgT5EAQKCg0KBQROAgABEgT5EAsPCg0KBQROAgADEgT5EBITCjUKAgRPEgaAEQCEEQEaJyBRdWV1ZSBjb25maWd1cmF0aW9uIGZvciBhIGdpdmVuIHBvcnQuIAoLCgMETwESBIARCCIKIQoEBE8CABIEghEEFBoTb2ZwX2hlYWRlciBoZWFkZXI7CgoPCgUETwIABBIGghEEgBEkCg0KBQRPAgAFEgSCEQQKCg0KBQRPAgABEgSCEQsPCg0KBQRPAgADEgSCERITCioKBARPAgESBIMRBCkiHCBMaXN0IG9mIGNvbmZpZ3VyZWQgcXVldWVzLiAKDQoFBE8CAQQSBIMRBAwKDQoFBE8CAQYSBIMRDR0KDQoFBE8CAQESBIMRHiQKDQoFBE8CAQMSBIMRJygKUwoCBFASBocRAIoRARpFIE9GUEFUX1NFVF9RVUVVRSBhY3Rpb24gc3RydWN0OiBzZW5kIHBhY2tldHMgdG8gZ2l2ZW4gcXVldWUgb24gcG9ydC4gCgsKAwRQARIEhxEIHAogCgQEUAIAEgSIEQQUIhIgT0ZQQVRfU0VUX1FVRVVFLiAKDwoFBFACAAQSBogRBIcRHgoNCgUEUAIABRIEiBEECgoNCgUEUAIAARIEiBELDwoNCgUEUAIAAxIEiBESEwopCgQEUAIBEgSJEQQYIhsgUXVldWUgaWQgZm9yIHRoZSBwYWNrZXRzLiAKDwoFBFACAQQSBokRBIgRFAoNCgUEUAIBBRIEiREECgoNCgUEUAIBARIEiRELEwoNCgUEUAIBAxIEiREWFwoMCgIEURIGjBEAjxEBCgsKAwRRARIEjBEIHwomCgQEUQIAEgSNEQQXIhggQWxsIHBvcnRzIGlmIE9GUFBfQU5ZLiAKDwoFBFECAAQSBo0RBIwRIQoNCgUEUQIABRIEjREECgoNCgUEUQIAARIEjRELEgoNCgUEUQIAAxIEjREVFgonCgQEUQIBEgSOEQQYIhkgQWxsIHF1ZXVlcyBpZiBPRlBRX0FMTC4gCg8KBQRRAgEEEgaOEQSNERcKDQoFBFECAQUSBI4RBAoKDQoFBFECAQESBI4RCxMKDQoFBFECAQMSBI4RFhcKDAoCBFISBpERAJoRAQoLCgMEUgESBJERCBcKDAoEBFICABIEkhEEFwoPCgUEUgIABBIGkhEEkREZCg0KBQRSAgAFEgSSEQQKCg0KBQRSAgABEgSSEQsSCg0KBQRSAgADEgSSERUWChkKBARSAgESBJMRBBgiCyBRdWV1ZSBpLmQgCg8KBQRSAgEEEgaTEQSSERcKDQoFBFICAQUSBJMRBAoKDQoFBFICAQESBJMRCxMKDQoFBFICAQMSBJMRFhcKLAoEBFICAhIElBEEGCIeIE51bWJlciBvZiB0cmFuc21pdHRlZCBieXRlcy4gCg8KBQRSAgIEEgaUEQSTERgKDQoFBFICAgUSBJQRBAoKDQoFBFICAgESBJQRCxMKDQoFBFICAgMSBJQRFhcKLgoEBFICAxIElREEGiIgIE51bWJlciBvZiB0cmFuc21pdHRlZCBwYWNrZXRzLiAKDwoFBFICAwQSBpURBJQRGAoNCgUEUgIDBRIElREECgoNCgUEUgIDARIElRELFQoNCgUEUgIDAxIElREYGQo5CgQEUgIEEgSWEQQZIisgTnVtYmVyIG9mIHBhY2tldHMgZHJvcHBlZCBkdWUgdG8gb3ZlcnJ1bi4gCg8KBQRSAgQEEgaWEQSVERoKDQoFBFICBAUSBJYRBAoKDQoFBFICBAESBJYRCxQKDQoFBFICBAMSBJYRFxgKNQoEBFICBRIElxEEHCInIFRpbWUgcXVldWUgaGFzIGJlZW4gYWxpdmUgaW4gc2Vjb25kcy4gCg8KBQRSAgUEEgaXEQSWERkKDQoFBFICBQUSBJcRBAoKDQoFBFICBQESBJcRCxcKDQoFBFICBQMSBJcRGhsKTQoEBFICBhIEmBEEHSI/IFRpbWUgcXVldWUgaGFzIGJlZW4gYWxpdmUgaW4gbmFub3NlY29uZHMKYmV5b25kIGR1cmF0aW9uX3NlYy4gCg8KBQRSAgYEEgaYEQSXERwKDQoFBFICBgUSBJgRBAoKDQoFBFICBgESBJgRCxgKDQoFBFICBgMSBJgRGxwK6wYKAgUzEgaxEQC2EQEaEyBDb250cm9sbGVyIHJvbGVzLiAyxwYgQ29uZmlndXJlcyB0aGUgInJvbGUiIG9mIHRoZSBzZW5kaW5nIGNvbnRyb2xsZXIuICBUaGUgZGVmYXVsdCByb2xlIGlzOgoKICAgIC0gRXF1YWwgKE9GUENSX1JPTEVfRVFVQUwpLCB3aGljaCBhbGxvd3MgdGhlIGNvbnRyb2xsZXIgYWNjZXNzIHRvIGFsbAogICAgICBPcGVuRmxvdyBmZWF0dXJlcy4gQWxsIGNvbnRyb2xsZXJzIGhhdmUgZXF1YWwgcmVzcG9uc2liaWxpdHkuCgogVGhlIG90aGVyIHBvc3NpYmxlIHJvbGVzIGFyZSBhIHJlbGF0ZWQgcGFpcjoKCiAgICAtIE1hc3RlciAoT0ZQQ1JfUk9MRV9NQVNURVIpIGlzIGVxdWl2YWxlbnQgdG8gRXF1YWwsIGV4Y2VwdCB0aGF0IHRoZXJlCiAgICAgIG1heSBiZSBhdCBtb3N0IG9uZSBNYXN0ZXIgY29udHJvbGxlciBhdCBhIHRpbWU6IHdoZW4gYSBjb250cm9sbGVyCiAgICAgIGNvbmZpZ3VyZXMgaXRzZWxmIGFzIE1hc3RlciwgYW55IGV4aXN0aW5nIE1hc3RlciBpcyBkZW1vdGVkIHRvIHRoZQogICAgICBTbGF2ZSByb2xlLgoKICAgIC0gU2xhdmUgKE9GUENSX1JPTEVfU0xBVkUpIGFsbG93cyB0aGUgY29udHJvbGxlciByZWFkLW9ubHkgYWNjZXNzIHRvCiAgICAgIE9wZW5GbG93IGZlYXR1cmVzLiAgSW4gcGFydGljdWxhciBhdHRlbXB0cyB0byBtb2RpZnkgdGhlIGZsb3cgdGFibGUKICAgICAgd2lsbCBiZSByZWplY3RlZCB3aXRoIGFuIE9GUEJS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EiBMb2dpY2FsRGV2aWNlLmlkCgoPCgUEYAIABBIGghIEgRIVCg0KBQRgAgAFEgSCEgQKCg0KBQRgAgABEgSCEgsNCg0KBQRgAgADEgSCEhARCg4KBARgCAASBoMSBIYSBQoNCgUEYAgAARIEgxIKDwoMCgQEYAIBEgSEEggoCg0KBQRgAgEGEgSEEggXCg0KBQRgAgEBEgSEEhgjCg0KBQRgAgEDEgSEEiYnCgwKBARgAgISBIUSCCAKDQoFBGACAgYSBIUSCBUKDQoFBGACAgESBIUSFhsKDQoFBGACAgMSBIUSHh9iBnByb3RvMwrmyQEKGnZvbHRoYV9wcm90b3MvZGV2aWNlLnByb3RvEgZ2b2x0aGEaGWdvb2dsZS9wcm90b2J1Zi9hbnkucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhh2b2x0aGFfcHJvdG9zL21ldGEucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb3BlbmZsb3dfMTMucHJvdG8ivwIKCkRldmljZVR5cGUSDgoCaWQYASABKAlSAmlkEhsKCXZlbmRvcl9pZBgFIAEoCVIIdmVuZG9ySWQSHQoKdmVuZG9yX2lkcxgGIAMoCVIJdmVuZG9ySWRzEhgKB2FkYXB0ZXIYAiABKAlSB2FkYXB0ZXISNwoYYWNjZXB0c19idWxrX2Zsb3dfdXBkYXRlGAMgASgIUhVhY2NlcHRzQnVsa0Zsb3dVcGRhdGUSRAofYWNjZXB0c19hZGRfcmVtb3ZlX2Zsb3dfdXBkYXRlcxgEIAEoCFIbYWNjZXB0c0FkZFJlbW92ZUZsb3dVcGRhdGVzEkwKI2FjY2VwdHNfZGlyZWN0X2xvZ2ljYWxfZmxvd3NfdXBkYXRlGAcgASgIUh9hY2NlcHRzRGlyZWN0TG9naWNhbEZsb3dzVXBkYXRlIjcKC0RldmljZVR5cGVzEigKBWl0ZW1zGAEgAygLMhIudm9sdGhhLkRldmljZVR5cGVSBWl0ZW1zIsABCghQbUNvbmZpZxISCgRuYW1lGAEgASgJUgRuYW1lEisKBHR5cGUYAiABKA4yFy52b2x0aGEuUG1Db25maWcuUG1UeXBlUgR0eXBlEhgKB2VuYWJsZWQYAyABKAhSB2VuYWJsZWQSHwoLc2FtcGxlX2ZyZXEYBCABKA1SCnNhbXBsZUZyZXEiOAoGUG1UeXBlEgsKB0NPVU5URVIQABIJCgVHQVVHRRABEgkKBVNUQVRFEAISCwoHQ09OVEVYVBADIpMBCg1QbUdyb3VwQ29uZmlnEh0KCmdyb3VwX25hbWUYASABKAlSCWdyb3VwTmFtZRIdCgpncm91cF9mcmVxGAIgASgNUglncm91cEZyZXESGAoHZW5hYmxlZBgDIAEoCFIHZW5hYmxlZBIqCgdtZXRyaWNzGAQgAygLMhAudm9sdGhhLlBtQ29uZmlnUgdtZXRyaWNzIoECCglQbUNvbmZpZ3MSDgoCaWQYASABKAlSAmlkEiEKDGRlZmF1bHRfZnJlcRgCIAEoDVILZGVmYXVsdEZyZXESHwoHZ3JvdXBlZBgDIAEoCEIF6PbNHQFSB2dyb3VwZWQSKgoNZnJlcV9vdmVycmlkZRgEIAEoCEIF6PbNHQFSDGZyZXFPdmVycmlkZRItCgZncm91cHMYBSADKAsyFS52b2x0aGEuUG1Hcm91cENvbmZpZ1IGZ3JvdXBzEioKB21ldHJpY3MYBiADKAsyEC52b2x0aGEuUG1Db25maWdSB21ldHJpY3MSGQoIbWF4X3NrZXcYByABKA1SB21heFNrZXcijwIKBUltYWdlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoCVIHdmVyc2lvbhISCgRoYXNoGAMgASgNUgRoYXNoEikKEGluc3RhbGxfZGF0ZXRpbWUYBCABKAlSD2luc3RhbGxEYXRldGltZRIbCglpc19hY3RpdmUYBSABKAhSCGlzQWN0aXZlEiEKDGlzX2NvbW1pdHRlZBgGIAEoCFILaXNDb21taXR0ZWQSGQoIaXNfdmFsaWQYByABKAhSB2lzVmFsaWQSEAoDdXJsGAggASgJUgN1cmwSFgoGdmVuZG9yGAkgASgJUgZ2ZW5kb3ISFAoFY3JjMzIYCiABKA1SBWNyYzMyIuMHCg1JbWFnZURvd25sb2FkEg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1lEhAKA3VybBgDIAEoCVIDdXJsEhAKA2NyYxgEIAEoDVIDY3JjEk8KDmRvd25sb2FkX3N0YXRlGAUgASgOMigudm9sdGhhLkltYWdlRG93bmxvYWQuSW1hZ2VEb3dubG9hZFN0YXRlUg1kb3dubG9hZFN0YXRlEiMKDWltYWdlX3ZlcnNpb24YBiABKAlSDGltYWdlVmVyc2lvbhIpChBkb3dubG9hZGVkX2J5dGVzGAcgASgNUg9kb3dubG9hZGVkQnl0ZXMSSAoGcmVhc29uGAggASgOMjAudm9sdGhhLkltYWdlRG93bmxvYWQuSW1hZ2VEb3dubG9hZEZhaWx1cmVSZWFzb25SBnJlYXNvbhInCg9hZGRpdGlvbmFsX2luZm8YCSABKAlSDmFkZGl0aW9uYWxJbmZvEh8KC3NhdmVfY29uZmlnGAogASgIUgpzYXZlQ29uZmlnEhsKCWxvY2FsX2RpchgLIAEoCVIIbG9jYWxEaXISSQoLaW1hZ2Vfc3RhdGUYDCABKA4yKC52b2x0aGEuSW1hZ2VEb3dubG9hZC5JbWFnZUFjdGl2YXRlU3RhdGVSCmltYWdlU3RhdGUSGwoJZmlsZV9zaXplGA0gASgNUghmaWxlU2l6ZSK3AQoSSW1hZ2VEb3dubG9hZFN0YXRlEhQKEERPV05MT0FEX1VOS05PV04QABIWChJET1dOTE9BRF9TVUNDRUVERUQQARIWChJET1dOTE9BRF9SRVFVRVNURUQQAhIUChBET1dOTE9BRF9TVEFSVEVEEAMSEwoPRE9XTkxPQURfRkFJTEVEEAQSGAoURE9XTkxPQURfVU5TVVBQT1JURUQQBRIWChJET1dOTE9BRF9DQU5DRUxMRUQQBiKGAQoaSW1hZ2VEb3dubG9hZEZhaWx1cmVSZWFzb24SDAoITk9fRVJST1IQABIPCgtJTlZBTElEX1VSTBABEg8KC0RFVklDRV9CVVNZEAISFgoSSU5TVUZGSUNJRU5UX1NQQUNFEAMSEQoNVU5LTk9XTl9FUlJPUhAEEg0KCUNBTkNFTExFRBAFIowBChJJbWFnZUFjdGl2YXRlU3RhdGUSEQoNSU1BR0VfVU5LTk9XThAAEhIKDklNQUdFX0lOQUNUSVZFEAESFAoQSU1BR0VfQUNUSVZBVElORxACEhAKDElNQUdFX0FDVElWRRADEhMKD0lNQUdFX1JFVkVSVElORxAEEhIKDklNQUdFX1JFVkVSVEVEEAUiPQoOSW1hZ2VEb3dubG9hZHMSKwoFaXRlbXMYAiADKAsyFS52b2x0aGEuSW1hZ2VEb3dubG9hZFIFaXRlbXMiLQoGSW1hZ2VzEiMKBWltYWdlGAEgAygLMg0udm9sdGhhLkltYWdlUgVpbWFnZSKwAQoIT251SW1hZ2USGAoHdmVyc2lvbhgBIAEoCVIHdmVyc2lvbhIeCgppc0NvbW1pdGVkGAIgASgIUgppc0NvbW1pdGVkEhoKCGlzQWN0aXZlGAMgASgIUghpc0FjdGl2ZRIYCgdpc1ZhbGlkGAQgASgIUgdpc1ZhbGlkEiAKC3Byb2R1Y3RDb2RlGAUgASgJUgtwcm9kdWN0Q29kZRISCgRoYXNoGAYgASgJUgRoYXNoIjMKCU9udUltYWdlcxImCgVpdGVtcxgBIAMoCzIQLnZvbHRoYS5PbnVJbWFnZVIFaXRlbXMiYwoQRGV2aWNlSW1hZ2VTdGF0ZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEjIKCmltYWdlU3RhdGUYAiABKAsyEi52b2x0aGEuSW1hZ2VTdGF0ZVIKaW1hZ2VTdGF0ZSLjBwoKSW1hZ2VTdGF0ZRIYCgd2ZXJzaW9uGAEgASgJUgd2ZXJzaW9uEkwKDmRvd25sb2FkX3N0YXRlGAIgASgOMiUudm9sdGhhLkltYWdlU3RhdGUuSW1hZ2VEb3dubG9hZFN0YXRlUg1kb3dubG9hZFN0YXRlEj0KBnJlYXNvbhgDIAEoDjIlLnZvbHRoYS5JbWFnZVN0YXRlLkltYWdlRmFpbHVyZVJlYXNvblIGcmVhc29uEkgKC2ltYWdlX3N0YXRlGAQgASgOMicudm9sdGhhLkltYWdlU3RhdGUuSW1hZ2VBY3RpdmF0aW9uU3RhdGVSCmltYWdlU3RhdGUi0AEKEkltYWdlRG93bmxvYWRTdGF0ZRIUChBET1dOTE9BRF9VTktOT1dOEAASFgoSRE9XTkxPQURfU1VDQ0VFREVEEAESFgoSRE9XTkxPQURfUkVRVUVTVEVEEAISFAoQRE9XTkxPQURfU1RBUlRFRBADEhMKD0RPV05MT0FEX0ZBSUxFRBAEEhgKFERPV05MT0FEX1VOU1VQUE9SVEVEEAUSFwoTRE9XTkxPQURfQ0FOQ0VMTElORxAGEhYKEkRPV05MT0FEX0NBTkNFTExFRBAHIvQBChJJbWFnZUZhaWx1cmVSZWFzb24SDAoITk9fRVJST1IQABIPCgtJTlZBTElEX1VSTBABEg8KC0RFVklDRV9CVVNZEAISFgoSSU5TVUZGSUNJRU5UX1NQQUNFEAMSEQoNVU5LTk9XTl9FUlJPUhAEEhgKFENBTkNFTExFRF9PTl9SRVFVRVNUEAUSGgoWQ0FOQ0VMTEVEX09OX09OVV9TVEFURRAGEhoKFlZFTkRPUl9ERVZJQ0VfTUlTTUFUQ0gQBxIXChNPTUNJX1RSQU5TRkVSX0VSUk9SEAgSGAoUSU1BR0VfUkVGVVNFRF9CWV9PTlUQCSKZAgoUSW1hZ2VBY3RpdmF0aW9uU3RhdGUSEQoNSU1BR0VfVU5LTk9XThAAEhIKDklNQUdFX0lOQUNUSVZFEAESFAoQSU1BR0VfQUNUSVZBVElORxACEhAKDElNQUdFX0FDVElWRRADEhQKEElNQUdFX0NPTU1JVFRJTkcQBBITCg9JTUFHRV9DT01NSVRURUQQBRIdChlJTUFHRV9BQ1RJVkFUSU9OX0FCT1JUSU5HEAYSHAoYSU1BR0VfQUNUSVZBVElPTl9BQk9SVEVEEAcSGQoVSU1BR0VfQ09NTUlUX0FCT1JUSU5HEAgSGAoUSU1BR0VfQ09NTUlUX0FCT1JURUQQCRIVChFJTUFHRV9ET1dOTE9BRElORxAKIrcFCgRQb3J0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIUCgVsYWJlbBgCIAEoCVIFbGFiZWwSKQoEdHlwZRgDIAEoDjIVLnZvbHRoYS5Qb3J0LlBvcnRUeXBlUgR0eXBlEjkKC2FkbWluX3N0YXRlGAUgASgOMhguY29tbW9uLkFkbWluU3RhdGUuVHlwZXNSCmFkbWluU3RhdGUSOQoLb3Blcl9zdGF0dXMYBiABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cxIbCglkZXZpY2VfaWQYByABKAlSCGRldmljZUlkEisKBXBlZXJzGAggAygLMhUudm9sdGhhLlBvcnQuUGVlclBvcnRSBXBlZXJzEh0KCnJ4X3BhY2tldHMYCSABKAZSCXJ4UGFja2V0cxIZCghyeF9ieXRlcxgKIAEoBlIHcnhCeXRlcxIbCglyeF9lcnJvcnMYCyABKAZSCHJ4RXJyb3JzEh0KCnR4X3BhY2tldHMYDCABKAZSCXR4UGFja2V0cxIZCgh0eF9ieXRlcxgNIAEoBlIHdHhCeXRlcxIbCgl0eF9lcnJvcnMYDiABKAZSCHR4RXJyb3JzEjAKCG9mcF9wb3J0GA8gASgLMhUub3BlbmZsb3dfMTMub2ZwX3BvcnRSB29mcFBvcnQaQAoIUGVlclBvcnQSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIXCgdwb3J0X25vGAIgASgNUgZwb3J0Tm8icwoIUG9ydFR5cGUSCwoHVU5LTk9XThAAEhAKDEVUSEVSTkVUX05OSRABEhAKDEVUSEVSTkVUX1VOSRACEgsKB1BPTl9PTFQQAxILCgdQT05fT05VEAQSDQoJVkVORVRfT0xUEAUSDQoJVkVORVRfT05VEAYiKwoFUG9ydHMSIgoFaXRlbXMYASADKAsyDC52b2x0aGEuUG9ydFIFaXRlbXMimgsKBkRldmljZRIVCgJpZBgBIAEoCUIF6PbNHQFSAmlkEhkKBHR5cGUYAiABKAlCBej2zR0BUgR0eXBlEhkKBHJvb3QYAyABKAhCBej2zR0BUgRyb290EiIKCXBhcmVudF9pZBgEIAEoCUIF6PbNHQFSCHBhcmVudElkEisKDnBhcmVudF9wb3J0X25vGBQgASgNQgXo9s0dAVIMcGFyZW50UG9ydE5vEh0KBnZlbmRvchgFIAEoCUIF6PbNHQFSBnZlbmRvchIbCgVtb2RlbBgGIAEoCUIF6PbNHQFSBW1vZGVsEjAKEGhhcmR3YXJlX3ZlcnNpb24YByABKAlCBej2zR0BUg9oYXJkd2FyZVZlcnNpb24SMAoQZmlybXdhcmVfdmVyc2lvbhgIIAEoCUIF6PbNHQFSD2Zpcm13YXJlVmVyc2lvbhItCgZpbWFnZXMYCSABKAsyDi52b2x0aGEuSW1hZ2VzQgXo9s0dAVIGaW1hZ2VzEioKDXNlcmlhbF9udW1iZXIYCiABKAlCBej2zR0BUgxzZXJpYWxOdW1iZXISIgoJdmVuZG9yX2lkGBggASgJQgXo9s0dAVIIdmVuZG9ySWQSHwoHYWRhcHRlchgLIAEoCUIF6PbNHQFSB2FkYXB0ZXISEgoEdmxhbhgMIAEoDVIEdmxhbhIfCgttYWNfYWRkcmVzcxgNIAEoCVIKbWFjQWRkcmVzcxIjCgxpcHY0X2FkZHJlc3MYDiABKAlIAFILaXB2NEFkZHJlc3MSIwoMaXB2Nl9hZGRyZXNzGA8gASgJSABSC2lwdjZBZGRyZXNzEiQKDWhvc3RfYW5kX3BvcnQYFSABKAlIAFILaG9zdEFuZFBvcnQSHQoKZXh0cmFfYXJncxgXIAEoCVIJZXh0cmFBcmdzEkAKDXByb3h5X2FkZHJlc3MYEyABKAsyGy52b2x0aGEuRGV2aWNlLlByb3h5QWRkcmVzc1IMcHJveHlBZGRyZXNzEjkKC2FkbWluX3N0YXRlGBAgASgOMhguY29tbW9uLkFkbWluU3RhdGUuVHlwZXNSCmFkbWluU3RhdGUSQAoLb3Blcl9zdGF0dXMYESABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc0IF6PbNHQFSCm9wZXJTdGF0dXMSHQoGcmVhc29uGBYgASgJQgXo9s0dAVIGcmVhc29uEkkKDmNvbm5lY3Rfc3RhdHVzGBIgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNCBej2zR0BUg1jb25uZWN0U3RhdHVzEiwKBmN1c3RvbRhAIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBmN1c3RvbRI4CgpwbV9jb25maWdzGIMBIAEoCzIRLnZvbHRoYS5QbUNvbmZpZ3NCBeL2zR0AUglwbUNvbmZpZ3MSTAoPaW1hZ2VfZG93bmxvYWRzGIUBIAMoCzIVLnZvbHRoYS5JbWFnZURvd25sb2FkQgvi9s0dBgoEbmFtZVIOaW1hZ2VEb3dubG9hZHMagwIKDFByb3h5QWRkcmVzcxIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEh8KC2RldmljZV90eXBlGAIgASgJUgpkZXZpY2VUeXBlEh0KCmNoYW5uZWxfaWQYAyABKA1SCWNoYW5uZWxJZBIoChBjaGFubmVsX2dyb3VwX2lkGAQgASgNUg5jaGFubmVsR3JvdXBJZBIvChNjaGFubmVsX3Rlcm1pbmF0aW9uGAUgASgJUhJjaGFubmVsVGVybWluYXRpb24SFQoGb251X2lkGAYgASgNUgVvbnVJZBIkCg5vbnVfc2Vzc2lvbl9pZBgHIAEoDVIMb251U2Vzc2lvbklkQgkKB2FkZHJlc3MiLwoHRGV2aWNlcxIkCgVpdGVtcxgBIAMoCzIOLnZvbHRoYS5EZXZpY2VSBWl0ZW1zIqgDChRTaW11bGF0ZUFsYXJtUmVxdWVzdBIOCgJpZBgBIAEoCVICaWQSHAoJaW5kaWNhdG9yGAIgASgJUglpbmRpY2F0b3ISFwoHaW50Zl9pZBgDIAEoCVIGaW50ZklkEiQKDnBvcnRfdHlwZV9uYW1lGAQgASgJUgxwb3J0VHlwZU5hbWUSIgoNb251X2RldmljZV9pZBgFIAEoCVILb251RGV2aWNlSWQSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgGIAEoBVITaW52ZXJzZUJpdEVycm9yUmF0ZRIUCgVkcmlmdBgHIAEoBVIFZHJpZnQSFwoHbmV3X2VxZBgIIAEoBVIGbmV3RXFkEioKEW9udV9zZXJpYWxfbnVtYmVyGAkgASgJUg9vbnVTZXJpYWxOdW1iZXISSAoJb3BlcmF0aW9uGAogASgOMioudm9sdGhhLlNpbXVsYXRlQWxhcm1SZXF1ZXN0Lk9wZXJhdGlvblR5cGVSCW9wZXJhdGlvbiIlCg1PcGVyYXRpb25UeXBlEgkKBVJBSVNFEAASCQoFQ0xFQVIQAUJTChNvcmcub3BlbmNvcmQudm9sdGhhQgxWb2x0aGFEZXZpY2VaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NC9nby92b2x0aGFKnpYBCgcSBQAAswMBCggKAQwSAwAAEgoICgEIEgMCAEUKCQoCCAsSAwIARQoICgEIEgMDACwKCQoCCAESAwMALAoICgEIEgMEAC0KCQoCCAgSAwQALQoICgECEgMGAA8KCQoCAwASAwgAIwoJCgIDARIDCQAkCgkKAgMCEgMKACIKCQoCAwMSAwsAKQobCgIEABIEDgAhARoPIEEgRGV2aWNlIFR5cGUKCgoKAwQAARIDDggSCi4KBAQAAgASAxEEEhohIFVuaXF1ZSBuYW1lIGZvciB0aGUgZGV2aWNlIHR5cGUKCg0KBQQAAgAEEgQRBA4UCgwKBQQAAgAFEgMRBAoKDAoFBAACAAESAxELDQoMCgUEAAIAAxIDERARCnIKBAQAAgESAxUEGRplIFVuaXF1ZSB2ZW5kb3IgaWQgZm9yIHRoZSBkZXZpY2UgdHlwZSBhcHBsaWNhYmxlIHRvIE9OVQogNCBieXRlcyBvZiB2ZW5kb3IgaWQgZnJvbSBPTlUgc2VyaWFsIG51bWJlcgoKDQoFBAACAQQSBBUEERIKDAoFBAACAQUSAxUECgoMCgUEAAIBARIDFQsUCgwKBQQAAgEDEgMVFxgKCwoEBAACAhIDFwQjCgwKBQQAAgIEEgMXBAwKDAoFBAACAgUSAxcNEwoMCgUEAAICARIDFxQeCgwKBQQAAgIDEgMXISIKOwoEBAACAxIDGgQXGi4gTmFtZSBvZiB0aGUgYWRhcHRlciB0aGF0IGhhbmRsZXMgZGV2aWNlIHR5cGUKCg0KBQQAAgMEEgQaBBcjCgwKBQQAAgMFEgMaBAoKDAoFBAACAwESAxoLEgoMCgUEAAIDAxIDGhUWChsKBAQAAgQSAx0EJhoOIENhcGFiaWxpdGllcwoKDQoFBAACBAQSBB0EGhcKDAoFBAACBAUSAx0ECAoMCgUEAAIEARIDHQkhCgwKBQQAAgQDEgMdJCUKCwoEBAACBRIDHgQtCg0KBQQAAgUEEgQeBB0mCgwKBQQAAgUFEgMeBAgKDAoFBAACBQESAx4JKAoMCgUEAAIFAxIDHissCgsKBAQAAgYSAx8EMQoNCgUEAAIGBBIEHwQeLQoMCgUEAAIGBRIDHwQICgwKBQQAAgYBEgMfCSwKDAoFBAACBgMSAx8vMAopCgIEARIEJAAmARodIEEgcGx1cmFsaXR5IG9mIGRldmljZSB0eXBlcwoKCgoDBAEBEgMkCBMKCwoEBAECABIDJQQiCgwKBQQBAgAEEgMlBAwKDAoFBAECAAYSAyUNFwoMCgUEAQIAARIDJRgdCgwKBQQBAgADEgMlICEKCgoCBAISBCgAMwEKCgoDBAIBEgMoCBAKDAoEBAIEABIEKQQuBQoMCgUEAgQAARIDKQkPCg0KBgQCBAACABIDKggUCg4KBwQCBAACAAESAyoIDwoOCgcEAgQAAgACEgMqEhMKDQoGBAIEAAIBEgMrCBIKDgoHBAIEAAIBARIDKwgNCg4KBwQCBAACAQISAysQEQoNCgYEAgQAAgISAywIEgoOCgcEAgQAAgIBEgMsCA0KDgoHBAIEAAICAhIDLBARCg0KBgQCBAACAxIDLQgUCg4KBwQCBAACAwESAy0IDwoOCgcEAgQAAgMCEgMtEhMKCwoEBAICABIDLwQUCg0KBQQCAgAEEgQvBC4FCgwKBQQCAgAFEgMvBAoKDAoFBAICAAESAy8LDwoMCgUEAgIAAxIDLxITCgsKBAQCAgESAzAEFAoNCgUEAgIBBBIEMAQvFAoMCgUEAgIBBhIDMAQKCgwKBQQCAgEBEgMwCw8KDAoFBAICAQMSAzASEwo7CgQEAgICEgMxBBUiLiBXaGV0aGVyIG9yIG5vdCB0aGlzIG1ldHJpYyBtYWtlcyBpdCB0byBLYWZrYQoKDQoFBAICAgQSBDEEMBQKDAoFBAICAgUSAzEECAoMCgUEAgICARIDMQkQCgwKBQQCAgIDEgMxExQKLwoEBAICAxIDMgQbIiIgU2FtcGxlIHJhdGUgaW4gMTB0aHMgb2YgYSBzZWNvbmQKCg0KBQQCAgMEEgQyBDEVCgwKBQQCAgMFEgMyBAoKDAoFBAICAwESAzILFgoMCgUEAgIDAxIDMhkaCgoKAgQDEgQ1ADoBCgoKAwQDARIDNQgVCgsKBAQDAgASAzYEGgoNCgUEAwIABBIENgQ1FwoMCgUEAwIABRIDNgQKCgwKBQQDAgABEgM2CxUKDAoFBAMCAAMSAzYYGQovCgQEAwIBEgM3BBoiIiBGcmVxdWVuY3kgYXBwbGljYWJsZSB0byB0aGUgZ3JvcAoKDQoFBAMCAQQSBDcENhoKDAoFBAMCAQUSAzcECgoMCgUEAwIBARIDNwsVCgwKBQQDAgEDEgM3GBkKLgoEBAMCAhIDOAQVIiEgRW5hYmxlL2Rpc2FibGUgZ3JvdXAgbGV2ZWwgb25seQoKDQoFBAMCAgQSBDgENxoKDAoFBAMCAgUSAzgECAoMCgUEAwICARIDOAkQCgwKBQQDAgIDEgM4ExQKCwoEBAMCAxIDOQQiCgwKBQQDAgMEEgM5BAwKDAoFBAMCAwYSAzkNFQoMCgUEAwIDARIDORYdCgwKBQQDAgMDEgM5ICEKCgoCBAQSBDwARgEKCgoDBAQBEgM8CBEKMgoEBAQCABIDPQQSIiUgVG8gd29yayBhcm91bmQgYSBjaGFtZWxlb24gUE9TVCBidWcKCg0KBQQEAgAEEgQ9BDwTCgwKBQQEAgAFEgM9BAoKDAoFBAQCAAESAz0LDQoMCgUEBAIAAxIDPRARCiIKBAQEAgESAz4EHCIVIERlZmF1bHQgc2FtcGxlIHJhdGUKCg0KBQQEAgEEEgQ+BD0SCgwKBQQEAgEFEgM+BAoKDAoFBAQCAQESAz4LFwoMCgUEBAIBAxIDPhobCjUKBAQEAgISA0AELBooIEZvcmNlcyBncm91cCBuYW1lcyBhbmQgZ3JvdXAgc2VtYW50aWNzCgoNCgUEBAICBBIEQAQ+HAoMCgUEBAICBRIDQAQICgwKBQQEAgIBEgNACRAKDAoFBAQCAgMSA0ATFAoMCgUEBAICCBIDQBUrChAKCQQEAgII7d7ZAxIDQBYqCj4KBAQEAgMSA0IEMhoxIEFsbG93cyBQbSB0byBzZXQgYW4gaW5kaXZpZHVhbCBzYW1wbGUgZnJlcXVlbmN5CgoNCgUEBAIDBBIEQgRALAoMCgUEBAIDBRIDQgQICgwKBQQEAgMBEgNCCRYKDAoFBAQCAwMSA0IZGgoMCgUEBAIDCBIDQhsxChAKCQQEAgMI7d7ZAxIDQhwwCiwKBAQEAgQSA0MEJiIfIFRoZSBncm91cHMgaWYgZ3JvdXBlZCBpcyB0cnVlCgoMCgUEBAIEBBIDQwQMCgwKBQQEAgQGEgNDDRoKDAoFBAQCBAESA0MbIQoMCgUEBAIEAxIDQyQlCjoKBAQEAgUSA0QEIiItIFRoZSBtZXRyaWNzIHRoZW1zZWx2ZXMgaWYgZ3JvdXBlZCBpcyBmYWxzZS4KCgwKBQQEAgUEEgNEBAwKDAoFBAQCBQYSA0QNFQoMCgUEBAIFARIDRBYdCgwKBQQEAgUDEgNEICEKLwoEBAQCBhIDRQQYIiJEZWZhdWx0IHZhbHVlIGlzIHNldCB0byA1IHNlY29uZHMKCg0KBQQEAgYEEgRFBEQiCgwKBQQEAgYFEgNFBAoKDAoFBAQCBgESA0ULEwoMCgUEBAIGAxIDRRYXCikKAgQFEgRJAH8BGh1PYmplY3QgcmVwcmVzZW50aW5nIGFuIGltYWdlCgoKCgMEBQESA0kIDQoiCgQEBQIAEgNLBBQiFSBzb2Z0d2FyZSBwYXRjaCBuYW1lCgoNCgUEBQIABBIESwRJDwoMCgUEBQIABRIDSwQKCgwKBQQFAgABEgNLCw8KDAoFBAUCAAMSA0sSEwrAAQoEBAUCARIDTwQXGrIBIFZlcnNpb24sIHRoaXMgaXMgdGhlIHNvbGUgaWRlbnRpZmllciBvZiB0aGUgaW1hZ2UuIGl0J3MgdGhlIHZlbmRvciBzcGVjaWZpZWQgT01DSSB2ZXJzaW9uCiBtdXN0IGJlIGtub3duIGF0IHRoZSB0aW1lIG9mIGluaXRpYXRpbmcgYSBkb3dubG9hZCwgYWN0aXZhdGUsIGNvbW1pdCBpbWFnZSBvbiBhbiBvbnUuCgoNCgUEBQIBBBIETwRLFAoMCgUEBQIBBRIDTwQKCgwKBQQFAgEBEgNPCxIKDAoFBAUCAQMSA08VFgpiCgQEBQICEgNTBBQaVSBoYXNoIG9mIHRoZSBpbWFnZSB0byBiZSB2ZXJpZmllZCBhZ2FpbnN0CiBEZXByZWNhdGVkIGluIHZvbHRoYSAyLjgsIHdpbGwgYmUgcmVtb3ZlZAoKDQoFBAUCAgQSBFMETxcKDAoFBAUCAgUSA1MECgoMCgUEBQICARIDUwsPCgwKBQQFAgIDEgNTEhMKZAoEBAUCAxIDVgQgGisgRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKIiogY29tYmluZWQgZGF0ZSBhbmQgdGltZSBleHByZXNzZWQgaW4gVVRDLgoKDQoFBAUCAwQSBFYEUxQKDAoFBAUCAwUSA1YECgoMCgUEBQIDARIDVgsbCgwKBQQFAgMDEgNWHh8KmAMKBAQFAgQSA14EFxrCAiBUaGUgYWN0aXZlIHNvZnR3YXJlIGltYWdlIGlzIG9uZSB0aGF0IGlzIGN1cnJlbnRseSBsb2FkZWQgYW5kIGV4ZWN1dGluZwogaW4gdGhlIE9OVSBvciBjaXJjdWl0IHBhY2suIFVuZGVyIG5vcm1hbCBvcGVyYXRpb24sIG9uZSBzb2Z0d2FyZSBpbWFnZQogaXMgYWx3YXlzIGFjdGl2ZSB3aGlsZSB0aGUgb3RoZXIgaXMgaW5hY3RpdmUuIFVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYXJlCiBib3RoIHNvZnR3YXJlIGltYWdlcyBhbGxvd2VkIHRvIGJlIGFjdGl2ZSBhdCB0aGUgc2FtZSB0aW1lCiBEZXByZWNhdGVkIGluIHZvbHRoYSAyLjgsIHdpbGwgYmUgcmVtb3ZlZAoiHSBUcnVlIGlmIHRoZSBpbWFnZSBpcyBhY3RpdmUKMicgdXNlIElTTyA4NjAxIGZvcm1hdCBmb3IgZGF0ZSBhbmQgdGltZQoKDQoFBAUCBAQSBF4EViAKDAoFBAUC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b3RvEgZ2b2x0aGEaGHZvbHRoYV9wcm90b3MvbWV0YS5wcm90bxocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8iOwoPQ29uZmlnRXZlbnRUeXBlIigKBVR5cGVzEgcKA2FkZBAAEgoKBnJlbW92ZRABEgoKBnVwZGF0ZRACImgKC0NvbmZpZ0V2ZW50EjEKBHR5cGUYASABKA4yHS52b2x0aGEuQ29uZmlnRXZlbnRUeXBlLlR5cGVzUgR0eXBlEhIKBGhhc2gYAiABKAlSBGhhc2gSEgoEZGF0YRgDIAEoCVIEZGF0YSIqCgxLcGlFdmVudFR5cGUiGgoFVHlwZXMSCQoFc2xpY2UQABIGCgJ0cxABIqsCCg5NZXRyaWNNZXRhRGF0YRIUCgV0aXRsZRgBIAEoCVIFdGl0bGUSDgoCdHMYAiABKAFSAnRzEioKEWxvZ2ljYWxfZGV2aWNlX2lkGAMgASgJUg9sb2dpY2FsRGV2aWNlSWQSGwoJc2VyaWFsX25vGAQgASgJUghzZXJpYWxObxIbCglkZXZpY2VfaWQYBSABKAlSCGRldmljZUlkEj0KB2NvbnRleHQYBiADKAsyIy52b2x0aGEuTWV0cmljTWV0YURhdGEuQ29udGV4dEVudHJ5Ugdjb250ZXh0EhIKBHV1aWQYByABKAlSBHV1aWQaOgoMQ29udGV4dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEijwEKEE1ldHJpY1ZhbHVlUGFpcnMSPwoHbWV0cmljcxgBIAMoCzIlLnZvbHRoYS5NZXRyaWNWYWx1ZVBhaXJzLk1ldHJpY3NFbnRyeVIHbWV0cmljcxo6CgxNZXRyaWNzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ASLFAQoRTWV0cmljSW5mb3JtYXRpb24SMgoIbWV0YWRhdGEYASABKAsyFi52b2x0aGEuTWV0cmljTWV0YURhdGFSCG1ldGFkYXRhEkAKB21ldHJpY3MYAiADKAsyJi52b2x0aGEuTWV0cmljSW5mb3JtYXRpb24uTWV0cmljc0VudHJ5UgdtZXRyaWNzGjoKDE1ldHJpY3NFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBIt0BCghLcGlFdmVudBIuCgR0eXBlGAEgASgOMhoudm9sdGhhLktwaUV2ZW50VHlwZS5UeXBlc1IEdHlwZRIOCgJ0cxgCIAEoAlICdHMSOgoIcHJlZml4ZXMYAyADKAsyHi52b2x0aGEuS3BpRXZlbnQuUHJlZml4ZXNFbnRyeVIIcHJlZml4ZXMaVQoNUHJlZml4ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIuCgV2YWx1ZRgCIAEoCzIYLnZvbHRoYS5NZXRyaWNWYWx1ZVBhaXJzUgV2YWx1ZToCOAEihQEKCUtwaUV2ZW50MhIuCgR0eXBlGAEgASgOMhoudm9sdGhhLktwaUV2ZW50VHlwZS5UeXBlc1IEdHlwZRIOCgJ0cxgCIAEoAVICdHMSOAoKc2xpY2VfZGF0YRgDIAMoCzIZLnZvbHRoYS5NZXRyaWNJbmZvcm1hdGlvblIJc2xpY2VEYXRhIvQBCgtEZXZpY2VFdmVudBIfCgtyZXNvdXJjZV9pZBgBIAEoCVIKcmVzb3VyY2VJZBIqChFkZXZpY2VfZXZlbnRfbmFtZRgCIAEoCVIPZGV2aWNlRXZlbnROYW1lEiAKC2Rlc2NyaXB0aW9uGAMgASgJUgtkZXNjcmlwdGlvbhI6Cgdjb250ZXh0GAQgAygLMiAudm9sdGhhLkRldmljZUV2ZW50LkNvbnRleHRFbnRyeVIHY29udGV4dBo6CgxDb250ZXh0RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASLbAgoIUlBDRXZlbnQSEAoDcnBjGAEgASgJUgNycGMSIQoMb3BlcmF0aW9uX2lkGAIgASgJUgtvcGVyYXRpb25JZBIYCgdzZXJ2aWNlGAMgASgJUgdzZXJ2aWNlEhkKCHN0YWNrX2lkGAQgASgJUgdzdGFja0lkEh8KC3Jlc291cmNlX2lkGAUgASgJUgpyZXNvdXJjZUlkEiAKC2Rlc2NyaXB0aW9uGAYgASgJUgtkZXNjcmlwdGlvbhI3Cgdjb250ZXh0GAcgAygLMh0udm9sdGhhLlJQQ0V2ZW50LkNvbnRleHRFbnRyeVIHY29udGV4dBItCgZzdGF0dXMYCCABKAsyFS5jb21tb24uT3BlcmF0aW9uUmVzcFIGc3RhdHVzGjoKDENvbnRleHRFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBInYKDUV2ZW50Q2F0ZWdvcnkiZQoFVHlwZXMSEQoNQ09NTVVOSUNBVElPThAAEg8KC0VOVklST05NRU5UEAESDQoJRVFVSVBNRU5UEAISCwoHU0VSVklDRRADEg4KClBST0NFU1NJTkcQBBIMCghTRUNVUklUWRAFIlIKEEV2ZW50U3ViQ2F0ZWdvcnkiPgoFVHlwZXMSBwoDUE9OEAASBwoDT0xUEAESBwoDT05UEAISBwoDT05VEAMSBwoDTk5JEAQSCAoETk9ORRAFImYKCUV2ZW50VHlwZSJZCgVUeXBlcxIQCgxDT05GSUdfRVZFTlQQABINCglLUElfRVZFTlQQARIOCgpLUElfRVZFTlQyEAISEAoMREVWSUNFX0VWRU5UEAMSDQoJUlBDX0VWRU5UEAQi3wIKC0V2ZW50SGVhZGVyEg4KAmlkGAEgASgJUgJpZBI3CghjYXRlZ29yeRgCIAEoDjIbLnZvbHRoYS5FdmVudENhdGVnb3J5LlR5cGVzUghjYXRlZ29yeRJBCgxzdWJfY2F0ZWdvcnkYAyABKA4yHi52b2x0aGEuRXZlbnRTdWJDYXRlZ29yeS5UeXBlc1ILc3ViQ2F0ZWdvcnkSKwoEdHlwZRgEIAEoDjIXLnZvbHRoYS5FdmVudFR5cGUuVHlwZXNSBHR5cGUSIQoMdHlwZV92ZXJzaW9uGAUgASgJUgt0eXBlVmVyc2lvbhI3CglyYWlzZWRfdHMYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUghyYWlzZWRUcxI7CgtyZXBvcnRlZF90cxgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSCnJlcG9ydGVkVHMizAIKBUV2ZW50EisKBmhlYWRlchgBIAEoCzITLnZvbHRoYS5FdmVudEhlYWRlclIGaGVhZGVyEjgKDGNvbmZpZ19ldmVudBgCIAEoCzITLnZvbHRoYS5Db25maWdF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EgT6AR8gCiUKBAQOAgQSBP0BCCUaFyBSZWZlcnMgdG8gRGV2aWNlRXZlbnQKCg0KBQQOAgQGEgT9AQgTCg0KBQQOAgQBEgT9ARQgCg0KBQQOAgQDEgT9ASMkCiYKBAQOAgUSBIACCB8aGCBSZWZlcnMgdG8gYW4gUlBDIEV2ZW50CgoNCgUEDgIFBhIEgAIIEAoNCgUEDgIFARIEgAIRGgoNCgUEDgIFAxIEgAIdHmIGcHJvdG8zCoIhCh52b2x0aGFfcHJvdG9zL2V4dF9jb25maWcucHJvdG8SBmNvbmZpZyJpCgtBbGFybUNvbmZpZxJQChhvbnVfaXR1X3Bvbl9hbGFybV9jb25maWcYASABKAsyFi5jb25maWcuT251SXR1UG9uQWxhcm1IAFIUb251SXR1UG9uQWxhcm1Db25maWdCCAoGY29uZmlnIr4JCg5PbnVJdHVQb25BbGFybRIVCgZwb25fbmkYASABKAdSBXBvbk5pEhUKBm9udV9pZBgCIAEoB1IFb251SWQSOQoIYWxhcm1faWQYAyABKA4yHi5jb25maWcuT251SXR1UG9uQWxhcm0uQWxhcm1JRFIHYWxhcm1JZBJqChlhbGFybV9yZXBvcnRpbmdfY29uZGl0aW9uGAQgASgOMi4uY29uZmlnLk9udUl0dVBvbkFsYXJtLkFsYXJtUmVwb3J0aW5nQ29uZGl0aW9uUhdhbGFybVJlcG9ydGluZ0NvbmRpdGlvbhJgChVyYXRlX3RocmVzaG9sZF9jb25maWcYBSABKAsyKi5jb25maWcuT251SXR1UG9uQWxhcm0uUmF0ZVRocmVzaG9sZENvbmZpZ0gAUhNyYXRlVGhyZXNob2xkQ29uZmlnElQKEXJhdGVfcmFuZ2VfY29uZmlnGAYgASgLMiYuY29uZmlnLk9udUl0dVBvbkFsYXJtLlJhdGVSYW5nZUNvbmZpZ0gAUg9yYXRlUmFuZ2VDb25maWcSYwoWdmFsdWVfdGhyZXNob2xkX2NvbmZpZxgHIAEoCzIrLmNvbmZpZy5PbnVJdHVQb25BbGFybS5WYWx1ZVRocmVzaG9sZENvbmZpZ0gAUhR2YWx1ZVRocmVzaG9sZENvbmZpZxpcCghTb2FrVGltZRIoChBhY3RpdmVfc29ha190aW1lGAEgASgHUg5hY3RpdmVTb2FrVGltZRImCg9jbGVhcl9zb2FrX3RpbWUYAiABKAdSDWNsZWFyU29ha1RpbWUavQEKE1JhdGVUaHJlc2hvbGRDb25maWcSMgoVcmF0ZV90aHJlc2hvbGRfcmlzaW5nGAEgASgGUhNyYXRlVGhyZXNob2xkUmlzaW5nEjQKFnJhdGVfdGhyZXNob2xkX2ZhbGxpbmcYAiABKAZSFHJhdGVUaHJlc2hvbGRGYWxsaW5nEjwKCXNvYWtfdGltZRgDIAEoCzIfLmNvbmZpZy5PbnVJdHVQb25BbGFybS5Tb2FrVGltZVIIc29ha1RpbWUaowEKD1JhdGVSYW5nZUNvbmZpZxIoChByYXRlX3JhbmdlX2xvd2VyGAEgASgGUg5yYXRlUmFuZ2VMb3dlchIoChByYXRlX3JhbmdlX3VwcGVyGAIgASgGUg5yYXRlUmFuZ2VVcHBlchI8Cglzb2FrX3RpbWUYAyABKAsyHy5jb25maWcuT251SXR1UG9uQWxhcm0uU29ha1RpbWVSCHNvYWtUaW1lGn0KFFZhbHVlVGhyZXNob2xkQ29uZmlnEicKD3RocmVzaG9sZF9saW1pdBgBIAEoBlIOdGhyZXNob2xkTGltaXQSPAoJc29ha190aW1lGAIgASgLMh8uY29uZmlnLk9udUl0dVBvbkFsYXJtLlNvYWtUaW1lUghzb2FrVGltZSIZCgdBbGFybUlEEg4KClJESV9FUlJPUlMQACJSChdBbGFybVJlcG9ydGluZ0NvbmRpdGlvbhISCg5SQVRFX1RIUkVTSE9MRBAAEg4KClJBVEVfUkFOR0UQARITCg9WQUxVRV9USFJFU0hPTEQQAkIICgZjb25maWdCSQoTb3JnLm9wZW5jb3JkLnZvbHRoYVoyZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y0L2dvL2V4dC9jb25maWdK2BUKBhIEDQBFAQrRBAoBDBIDDQASGsYEIENvcHlyaWdodCAoYykgMjAyMCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4g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UHJvdG9QAVonZ2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHR5cGVzL2VtcHR5+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSv4QCgYSBB4AMxAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAD4KCQoCCAsSAyMAPgoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlACsKCQoCCAgSAyUAKwoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQoICgEIEgMoAB8KCQoCCB8SAygAHwr7AgoCBAASAzMAEBrvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEVtcHR5YCBpcyBlbXB0eSBKU09OIG9iamVjdCBge31gLgoKCgoDBAABEgMzCA1iBnByb3RvMwqysAEKHnZvbHRoYV9wcm90b3MvZXh0ZW5zaW9ucy5wcm90bxIJZXh0ZW5zaW9uGh52b2x0aGFfcHJvdG9zL2V4dF9jb25maWcucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90byI2ChJHZXREaXN0YW5jZVJlcXVlc3QSIAoLb251RGV2aWNlSWQYASABKAlSC29udURldmljZUlkIjEKE0dldERpc3RhbmNlUmVzcG9uc2USGgoIZGlzdGFuY2UYASABKA1SCGRpc3RhbmNlIjIKFEdldE9udVVuaUluZm9SZXF1ZXN0EhoKCHVuaUluZGV4GAEgASgNUgh1bmlJbmRleCLhBAoVR2V0T251VW5pSW5mb1Jlc3BvbnNlElAKCGFkbVN0YXRlGAEgASgOMjQuZXh0ZW5zaW9uLkdldE9udVVuaUluZm9SZXNwb25zZS5BZG1pbmlzdHJhdGl2ZVN0YXRlUghhZG1TdGF0ZRJPCglvcGVyU3RhdGUYAiABKA4yMS5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlLk9wZXJhdGlvbmFsU3RhdGVSCW9wZXJTdGF0ZRJPCgljb25maWdJbmQYAyABKA4yMS5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlLkNvbmZpZ3VyYXRpb25JbmRSCWNvbmZpZ0luZCLCAQoQQ29uZmlndXJhdGlvbkluZBIKCgZVTktPV04QABISCg5URU5fQkFTRV9UX0ZEWBABEhYKEkhVTkRSRURfQkFTRV9UX0ZEWBACEhgKFEdJR0FCSVRfRVRIRVJORVRfRkRYEAMSFgoSVEVOX0dfRVRIRVJORVRfRkRYEAQSEgoOVEVOX0JBU0VfVF9IRFgQBRIWChJIVU5EUkVEX0JBU0VfVF9IRFgQBhIYChRHSUdBQklUX0VUSEVSTkVUX0hEWBAHIkcKE0FkbWluaXN0cmF0aXZlU3RhdGUSFgoSQURNU1RBVEVfVU5ERUZJTkVEEAASCgoGTE9DS0VEEAESDAoIVU5MT0NLRUQQAiJGChBPcGVyYXRpb25hbFN0YXRlEhcKE09QRVJTVEFURV9VTkRFRklORUQQABILCgdFTkFCTEVEEAESDAoIRElTQUJMRUQQAiK3AQoSR2V0T2x0UG9ydENvdW50ZXJzEhYKBnBvcnRObxgBIAEoDVIGcG9ydE5vEkIKCHBvcnRUeXBlGAIgASgOMiYuZXh0ZW5zaW9uLkdldE9sdFBvcnRDb3VudGVycy5Qb3J0VHlwZVIIcG9ydFR5cGUiRQoIUG9ydFR5cGUSEAoMUG9ydF9VTktOT1dOEAASFQoRUG9ydF9FVEhFUk5FVF9OTkkQARIQCgxQb3J0X1BPTl9PTFQQAiLMAwoaR2V0T2x0UG9ydENvdW50ZXJzUmVzcG9uc2USGAoHdHhCeXRlcxgBIAEoBFIHdHhCeXRlcxIYCgdyeEJ5dGVzGAIgASgEUgdyeEJ5dGVzEhwKCXR4UGFja2V0cxgDIAEoBFIJdHhQYWNrZXRzEhwKCXJ4UGFja2V0cxgEIAEoBFIJcnhQYWNrZXRzEiYKDnR4RXJyb3JQYWNrZXRzGAUgASgEUg50eEVycm9yUGFja2V0cxImCg5yeEVycm9yUGFja2V0cxgGIAEoBFIOcnhFcnJvclBhY2tldHMSJgoOdHhCY2FzdFBhY2tldHMYByABKARSDnR4QmNhc3RQYWNrZXRzEiYKDnJ4QmNhc3RQYWNrZXRzGAggASgEUg5yeEJjYXN0UGFja2V0cxImCg50eFVjYXN0UGFja2V0cxgJIAEoBFIOdHhVY2FzdFBhY2tldHMSJgoOcnhVY2FzdFBhY2tldHMYCiABKARSDnJ4VWNhc3RQYWNrZXRzEiYKDnR4TWNhc3RQYWNrZXRzGAsgASgEUg50eE1jYXN0UGFja2V0cxImCg5yeE1jYXN0UGFja2V0cxgMIAEoBFIOcnhNY2FzdFBhY2tldHMiRAoUR2V0T251UG9uT3B0aWNhbEluZm8SLAoFZW1wdHkYASABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBWVtcHR5IoQCChxHZXRPbnVQb25PcHRpY2FsSW5mb1Jlc3BvbnNlEioKEHBvd2VyRmVlZFZvbHRhZ2UYASABKAJSEHBvd2VyRmVlZFZvbHRhZ2USMgoUcmVjZWl2ZWRPcHRpY2FsUG93ZXIYAiABKAJSFHJlY2VpdmVkT3B0aWNhbFBvd2VyEjYKFm1lYW5PcHRpY2FsTGF1bmNoUG93ZXIYAyABKAJSFm1lYW5PcHRpY2FsTGF1bmNoUG93ZXISKgoQbGFzZXJCaWFzQ3VycmVudBgEIAEoAlIQbGFzZXJCaWFzQ3VycmVudBIgCgt0ZW1wZXJhdHVyZRgFIAEoAlILdGVtcGVyYXR1cmUirwEKH0dldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnkSUgoJZGlyZWN0aW9uGAEgASgOMjQuZXh0ZW5zaW9uLkdldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnkuRGlyZWN0aW9uUglkaXJlY3Rpb24iOAoJRGlyZWN0aW9uEg0KCVVOREVGSU5FRBAAEgwKCFVQU1RSRUFNEAESDgoKRE9XTlNUUkVBTRACIpMFCidHZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5UmVzcG9uc2USHgoKZHJvcEV2ZW50cxgBIAEoDVIKZHJvcEV2ZW50cxIWCgZvY3RldHMYAiABKA1SBm9jdGV0cxIYCgdwYWNrZXRzGAMgASgNUgdwYWNrZXRzEioKEGJyb2FkY2FzdFBhY2tldHMYBCABKA1SEGJyb2FkY2FzdFBhY2tldHMSKgoQbXVsdGljYXN0UGFja2V0cxgFIAEoDVIQbXVsdGljYXN0UGFja2V0cxIsChFjcmNFcnJvcmVkUGFja2V0cxgGIAEoDVIRY3JjRXJyb3JlZFBhY2tldHMSKgoQdW5kZXJzaXplUGFja2V0cxgHIAEoDVIQdW5kZXJzaXplUGFja2V0cxIoCg9vdmVyc2l6ZVBhY2tldHMYCCABKA1SD292ZXJzaXplUGFja2V0cxIoCg9wYWNrZXRzNjRvY3RldHMYCSABKA1SD3BhY2tldHM2NG9jdGV0cxIyChRwYWNrZXRzNjVUbzEyN29jdGV0cxgKIAEoDVIUcGFja2V0czY1VG8xMjdvY3RldHMSNAoVcGFja2V0czEyOFRvMjU1T2N0ZXRzGAsgASgNUhVwYWNrZXRzMTI4VG8yNTVPY3RldHMSNAoVcGFja2V0czI1NlRvNTExb2N0ZXRzGAwgASgNUhVwYWNrZXRzMjU2VG81MTFvY3RldHMSNgoWcGFja2V0czUxMlRvMTAyM29jdGV0cxgNIAEoDVIWcGFja2V0czUxMlRvMTAyM29jdGV0cxI4ChdwYWNrZXRzMTAyNFRvMTUxOG9jdGV0cxgOIAEoDVIXcGFja2V0czEwMjRUbzE1MThvY3RldHMiQAoQR2V0T251RmVjSGlzdG9yeRIsCgVlbXB0eRgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIFZW1wdHki8gEKGEdldE9udUZlY0hpc3RvcnlSZXNwb25zZRImCg5jb3JyZWN0ZWRCeXRlcxgBIAEoDVIOY29ycmVjdGVkQnl0ZXMSLgoSY29ycmVjdGVkQ29kZVdvcmRzGAIgASgNUhJjb3JyZWN0ZWRDb2RlV29yZHMSHgoKZmVjU2Vjb25kcxgDIAEoDVIKZmVjU2Vjb25kcxImCg50b3RhbENvZGVXb3JkcxgEIAEoDVIOdG90YWxDb2RlV29yZHMSNgoWdW5jb3JyZWN0YWJsZUNvZGVXb3JkcxgFIAEoDVIWdW5jb3JyZWN0YWJsZUNvZGVXb3JkcyJHChVHZXRPbnVDb3VudGVyc1JlcXVlc3QSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQiSQolR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVxdWVzdBIgCgtvbnVEZXZpY2VJZBgBIAEoCVILb251RGV2aWNlSWQiQwoRR2V0UnhQb3dlclJlcXVlc3QSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQi5AwKFkdldE9udUNvdW50ZXJzUmVzcG9uc2USGQoHaW50Zl9pZBgBIAEoB0gAUgZpbnRmSWQSFwoGb251X2lkGAIgASgHSAFSBW9udUlkEicKDnBvc2l0aXZlX2RyaWZ0GAMgASgGSAJSDXBvc2l0aXZlRHJpZnQSJwoObmVnYXRpdmVfZHJpZnQYBCABKAZIA1INbmVnYXRpdmVEcmlmdBI6ChhkZWxpbWl0ZXJfbWlzc19kZXRlY3Rpb24YBSABKAZIBFIWZGVsaW1pdGVyTWlzc0RldGVjdGlvbhIfCgpiaXBfZXJyb3JzGAYgASgGSAVSCWJpcEVycm9ycxIdCgliaXBfdW5pdHMYByABKAZIBlIIYmlwVW5pdHMSNAoVZmVjX2NvcnJlY3RlZF9zeW1ib2xzGAggASgGSAdSE2ZlY0NvcnJlY3RlZFN5bWJvbHMSOAoXZmVjX2NvZGV3b3Jkc19jb3JyZWN0ZWQYCSABKAZICFIVZmVjQ29kZXdvcmRzQ29ycmVjdGVkEkAKG2ZlY19jb2Rld29yZHNfdW5jb3JyZWN0YWJsZRgKIAEoBkgJUhlmZWNDb2Rld29yZHNVbmNvcnJlY3RhYmxlEiUKDWZlY19jb2Rld29yZHMYCyABKAZIClIMZmVjQ29kZXdvcmRzEjAKE2ZlY19jb3JyZWN0ZWRfdW5pdHMYDCABKAZIC1IRZmVjQ29ycmVjdGVkVW5pdHMSKAoPeGdlbV9rZXlfZXJyb3JzGA0gASgGSAxSDXhnZW1LZXlFcnJvcnMSHQoJeGdlbV9sb3NzGA4gASgGSA1SCHhnZW1Mb3NzEigKD3J4X3Bsb2Ftc19lcnJvchgPIAEoBkgOUg1yeFBsb2Ftc0Vycm9yEi0KEnJ4X3Bsb2Ftc19ub25faWRsZRgQIAEoBkgPUg9yeFBsb2Ftc05vbklkbGUSGQoHcnhfb21jaRgRIAEoBkgQUgZyeE9tY2kSGQoHdHhfb21jaRgSIAEoBkgRUgZ0eE9tY2kSOgoZcnhfb21jaV9wYWNrZXRzX2NyY19lcnJvchgTIAEoBkgSUhVyeE9tY2lQYWNrZXRzQ3JjRXJyb3ISGwoIcnhfYnl0ZXMYFCABKAZIE1IHcnhCeXRlcxIfCgpyeF9wYWNrZXRzGBUgASgGSBRSCXJ4UGFja2V0cxIbCgh0eF9ieXRlcxgWIAEoBkgVUgd0eEJ5dGVzEh8KCnR4X3BhY2tldHMYFyABKAZIFlIJdHhQYWNrZXRzEiMKDGJlcl9yZXBvcnRlZBgYIAEoBkgXUgtiZXJSZXBvcnRlZBIhCgtsY2RnX2Vycm9ycxgZIAEoBkgYUgpsY2RnRXJyb3JzEh8KCnJkaV9lcnJvcnMYGiABKAZIGVIJcmRpRXJyb3JzEh4KCXRpbWVzdGFtcBgbIAEoB0gaUgl0aW1lc3RhbXBCDAoKaXNfaW50Zl9pZEILCglpc19vbnVfaWRCEwoRaXNfcG9zaXRpdmVfZHJpZnRCEwoRaXNfbmVnYXRpdmVfZHJpZnRCHQobaXNfZGVsaW1pdGVyX21pc3NfZGV0ZWN0aW9uQg8KDWlzX2JpcF9lcnJvcnNCDgoMaXNfYmlwX3VuaXRzQhoKGGlzX2ZlY19jb3JyZWN0ZWRfc3ltYm9sc0IcChppc19mZWNfY29kZXdvcmRzX2NvcnJlY3RlZEIgCh5pc19mZWNfY29kZXdvcmRzX3VuY29ycmVjdGFibGVCEgoQaXNfZmVjX2NvZGV3b3Jkc0IYChZpc19mZWNfY29ycmVjdGVkX3VuaXRzQhQKEmlzX3hnZW1fa2V5X2Vycm9yc0IOCgxpc194Z2VtX2xvc3NCFAoSaXNfcnhfcGxvYW1zX2Vycm9yQhcKFWlzX3J4X3Bsb2Ftc19ub25faWRsZUIMCgppc19yeF9vbWNpQgwKCmlzX3R4X29tY2lCHgocaXNfcnhfb21jaV9wYWNrZXRzX2NyY19lcnJvckINCgtpc19yeF9ieXRlc0IPCg1pc19yeF9wYWNrZXRzQg0KC2lzX3R4X2J5dGVzQg8KDWlzX3R4X3BhY2tldHNCEQoPaXNfYmVyX3JlcG9ydGVkQhAKDmlzX2xjZGdfZXJyb3JzQg8KDWlzX3JkaV9lcnJvcnNCDgoMaXNfdGltZXN0YW1wIowFChtPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG0SHwoLZHJvcF9ldmVudHMYASABKAZSCmRyb3BFdmVudHMSFgoGb2N0ZXRzGAIgASgGUgZvY3RldHMSFgoGZnJhbWVzGAMgASgGUgZmcmFtZXMSKQoQYnJvYWRjYXN0X2ZyYW1lcxgEIAEoBlIPYnJvYWRjYXN0RnJhbWVzEikKEG11bHRpY2FzdF9mcmFtZXMYBSABKAZSD211bHRpY2FzdEZyYW1lcxIsChJjcmNfZXJyb3JlZF9mcmFtZXMYBiABKAZSEGNyY0Vycm9yZWRGcmFtZXMSKQoQdW5kZXJzaXplX2ZyYW1lcxgHIAEoBlIPdW5kZXJzaXplRnJhbWVzEicKD292ZXJzaXplX2ZyYW1lcxgIIAEoBlIOb3ZlcnNpemVGcmFtZXMSKAoQZnJhbWVzXzY0X29jdGV0cxgJIAEoBlIOZnJhbWVzNjRPY3RldHMSNAoXZnJhbWVzXzY1X3RvXzEyN19vY3RldHMYCiABKAZSE2ZyYW1lczY1VG8xMjdPY3RldHMSNgoYZnJhbWVzXzEyOF90b18yNTVfb2N0ZXRzGAsgASgGUhRmcmFtZXMxMjhUbzI1NU9jdGV0cxI2ChhmcmFtZXNfMjU2X3RvXzUxMV9vY3RldHMYDCABKAZSFGZyYW1lczI1NlRvNTExT2N0ZXRzEjgKGWZyYW1lc181MTJfdG9fMTAyM19vY3RldHMYDSABKAZSFWZyYW1lczUxMlRvMTAyM09jdGV0cxI6ChpmcmFtZXNfMTAyNF90b18xNTE4X29jdGV0cxgOIAEoBlIWZnJhbWVzMTAyNFRvMTUxOE9jdGV0cyK0AQomR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVzcG9uc2USQgoIdXBzdHJlYW0YASABKAsyJi5leHRlbnNpb24uT21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUgh1cHN0cmVhbRJGCgpkb3duc3RyZWFtGAIgASgLMiYuZXh0ZW5zaW9uLk9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVIKZG93bnN0cmVhbSKYAQoSR2V0UnhQb3dlclJlc3BvbnNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEh8KC2ZhaWxfcmVhc29uGAQgASgJUgpmYWlsUmVhc29uEhkKCHJ4X3Bvd2VyGAUgASgBUgdyeFBvd2VyIoMFCg9HZXRWYWx1ZVJlcXVlc3QSOwoIZGlzdGFuY2UYASABKAsyHS5leHRlbnNpb24uR2V0RGlzdGFuY2VSZXF1ZXN0SABSCGRpc3RhbmNlEjsKB3VuaUluZm8YAiABKAsyHy5leHRlbnNpb24uR2V0T251VW5pSW5mb1JlcXVlc3RIAFIHdW5pSW5mbxJBCgtvbHRQb3J0SW5mbxgDIAEoCzIdLmV4dGVuc2lvbi5HZXRPbHRQb3J0Q291bnRlcnNIAFILb2x0UG9ydEluZm8SSQoOb251T3B0aWNhbEluZm8YBCABKAsyHy5leHRlbnNpb24uR2V0T251UG9uT3B0aWNhbEluZm9IAFIOb251T3B0aWNhbEluZm8SUgoNZXRoQnJpZGdlUG9ydBgFIAEoCzIqLmV4dGVuc2lvbi5HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5SABSDWV0aEJyaWRnZVBvcnQSPQoKZmVjSGlzdG9yeRgGIAEoCzIbLmV4dGVuc2lvbi5HZXRPbnVGZWNIaXN0b3J5SABSCmZlY0hpc3RvcnkSQgoKb251UG9uSW5mbxgHIAEoCzIgLmV4dGVuc2lvbi5HZXRPbnVDb3VudGVyc1JlcXVlc3RIAFIKb251UG9uSW5mbxJMCgdvbnVJbmZvGAggASgLMjAuZXh0ZW5zaW9uLkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlcXVlc3RIAFIHb251SW5mbxI4CgdyeFBvd2VyGAkgASgLMhwuZXh0ZW5zaW9uLkdldFJ4UG93ZXJSZXF1ZXN0SABSB3J4UG93ZXJCCQoHcmVxdWVzdCKqCAoQR2V0VmFsdWVSZXNwb25zZRI6CgZzdGF0dXMYASABKA4yIi5leHRlbnNpb24uR2V0VmFsdWVSZXNwb25zZS5TdGF0dXNSBnN0YXR1cxJFCgllcnJSZWFzb24YAiABKA4yJy5leHRlbnNpb24uR2V0VmFsdWVSZXNwb25zZS5FcnJvclJlYXNvblIJZXJyUmVhc29uEjwKCGRpc3RhbmNlGAMgASgLMh4uZXh0ZW5zaW9uLkdldERpc3RhbmNlUmVzcG9uc2VIAFIIZGlzdGFuY2USPAoHdW5pSW5mbxgEIAEoCzIgLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2VIAFIHdW5pSW5mbxJLCgxwb3J0Q291dG5lcnMYBSABKAsyJS5leHRlbnNpb24uR2V0T2x0UG9ydENvdW50ZXJzUmVzcG9uc2VIAFIMcG9ydENvdXRuZXJzElEKDm9udU9wdGljYWxJbmZvGAYgASgLMicuZXh0ZW5zaW9uLkdldE9udVBvbk9wdGljYWxJbmZvUmVzcG9uc2VIAFIOb251T3B0aWNhbEluZm8SYgoRZXRoQnJpZGdlUG9ydEluZm8YByABKAsyMi5leHRlbnNpb24uR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeVJlc3BvbnNlSABSEWV0aEJyaWRnZVBvcnRJbmZvEkUKCmZlY0hpc3RvcnkYCCABKAsyIy5leHRlbnNpb24uR2V0T251RmVjSGlzdG9yeVJlc3BvbnNlSABSCmZlY0hpc3RvcnkSSwoOb251UG9uQ291bnRlcnMYCSABKAsyIS5leHRlbnNpb24uR2V0T251Q291bnRlcnNSZXNwb25zZUgAUg5vbnVQb25Db3VudGVycxJVCgtvbnVDb3VudGVycxgKIAEoCzIxLmV4dGVuc2lvbi5HZXRPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SZXNwb25zZUgAUgtvbnVDb3VudGVycxI5CgdyeFBvd2VyGAsgASgLMh0uZXh0ZW5zaW9uLkdldFJ4UG93ZXJSZXNwb25zZUgAUgdyeFBvd2VyIjEKBlN0YXR1cxIUChBTVEFUVVNfVU5ERUZJTkVEEAASBgoCT0sQARIJCgVFUlJPUhACIq0BCgtFcnJvclJlYXNvbhIUChBSRUFTT05fVU5ERUZJTkVEEAASDwoLVU5TVVBQT1JURUQQARIVChFJTlZBTElEX0RFVklDRV9JRBACEhUKEUlOVkFMSURfUE9SVF9UWVBFEAMSCwoHVElNRU9VVBAEEhQKEElOVkFMSURfUkVRX1RZUEUQBRISCg5JTlRFUk5BTF9FUlJPUhAGEhIKDklOVkFMSURfREVWSUNFEAdCCgoIcmVzcG9uc2UiVgoPU2V0VmFsdWVSZXF1ZXN0EjgKDGFsYXJtX2NvbmZpZxgBIAEoCzITLmNvbmZpZy5BbGFybUNvbmZpZ0gAUgthbGFybUNvbmZpZ0IJCgdyZXF1ZXN0Iv4BChBTZXRWYWx1ZVJlc3BvbnNlEjoKBnN0YXR1cxgBIAEoDjIiLmV4dGVuc2lvbi5TZXRWYWx1ZVJlc3BvbnNlLlN0YXR1c1IGc3RhdHVzEkUKCWVyclJlYXNvbhgCIAEoDjInLmV4dGVuc2lvbi5TZXRWYWx1ZVJlc3BvbnNlLkVycm9yUmVhc29uUgllcnJSZWFzb24iMQoGU3RhdHVzEhQKEFNUQVRVU19VTkRFRklORUQQABIGCgJPSxABEgkKBUVSUk9SEAIiNAoLRXJyb3JSZWFzb24SFAoQUkVBU09OX1VOREVGSU5FRBAAEg8KC1VOU1VQUE9SVEVEEAEiaQoVU2luZ2xlR2V0VmFsdWVSZXF1ZXN0EhoKCHRhcmdldElkGAEgASgJUgh0YXJnZXRJZBI0CgdyZXF1ZXN0GAIgASgLMhouZXh0ZW5zaW9uLkdldFZhbHVlUmVxdWVzdFIHcmVxdWVzdCJRChZTaW5nbGVHZXRWYWx1ZVJlc3BvbnNlEjcKCHJlc3BvbnNlGAEgASgLMhsuZXh0ZW5zaW9uLkdldFZhbHVlUmVzcG9uc2VSCHJlc3BvbnNlImkKFVNpbmdsZVNldFZhbHVlUmVxdWVzdBIaCgh0YXJnZXRJZBgBIAEoCVIIdGFyZ2V0SWQSNAoHcmVxdWVzdBgCIAEoCzIaLmV4dGVuc2lvbi5TZXRWYWx1ZVJlcXVlc3RSB3JlcXVlc3QiUQoWU2luZ2xlU2V0VmFsdWVSZXNwb25zZRI3CghyZXNwb25zZRgBIAEoCzIbLmV4dGVuc2lvbi5TZXRWYWx1ZVJlc3BvbnNlUghyZXNwb25zZTKzAQoJRXh0ZW5zaW9uElIKC0dldEV4dFZhbHVlEiAuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVxdWVzdBohLmV4dGVuc2lvbi5TaW5nbGVHZXRWYWx1ZVJlc3BvbnNlElIKC1NldEV4dFZhbHVlEiAuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVxdWVzdBohLmV4dGVuc2lvbi5TaW5nbGVTZXRWYWx1ZVJlc3BvbnNlQlIKHW9yZy5vcGVuY29yZC52b2x0aGEuZXh0ZW5zaW9uWjFnaXRodWIu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BgACAAQSBB4IIAoKEQoJBgACAASwyrwiEgQeCCAKYgZwcm90bzMKtxgKI3ZvbHRoYV9wcm90b3MvaWV0Zl9pbnRlcmZhY2VzLnByb3RvEgRpZXRmIkQKCkludGVyZmFjZXMSNgoOYWxsX2ludGVyZmFjZXMYASADKAsyDy5pZXRmLkludGVyZmFjZVINYWxsSW50ZXJmYWNlcyKSAgoJSW50ZXJmYWNlEhIKBG5hbWUYASABKAlSBG5hbWUSIAoLZGVzY3JpcHRpb24YAiABKAlSC2Rlc2NyaXB0aW9uEhIKBHR5cGUYAyABKAlSBHR5cGUSGAoHZW5hYmxlZBgEIAEoCFIHZW5hYmxlZBJgChhsaW5rX3VwX2Rvd25fdHJhcF9lbmFibGUYBSABKA4yKC5pZXRmLkludGVyZmFjZS5MaW5rVXBEb3duVHJhcEVuYWJsZVR5cGVSFGxpbmtVcERvd25UcmFwRW5hYmxlIj8KGExpbmtVcERvd25UcmFwRW5hYmxlVHlwZRIRCg1UUkFQX0RJU0FCTEVEEAASEAoMVFJBUF9FTkFCTEVEEAEiTAoPSW50ZXJmYWNlc1N0YXRlEjkKDWFsbF9pbnRlcmZhY3MYASADKAsyFC5pZXRmLkludGVyZmFjZVN0YXRlUgxhbGxJbnRlcmZhY3MiwAQKDkludGVyZmFjZVN0YXRlEhIKBG5hbWUYASABKAlSBG5hbWUSEgoEdHlwZRgCIAEoCVIEdHlwZRJHCgxhZG1pbl9zdGF0dXMYAyABKA4yJC5pZXRmLkludGVyZmFjZVN0YXRlLkFkbWluU3RhdHVzVHlwZVILYWRtaW5TdGF0dXMSRAoLb3Blcl9zdGF0dXMYBCABKA4yIy5pZXRmLkludGVyZmFjZVN0YXRlLk9wZXJTdGF0dXNUeXBlUgpvcGVyU3RhdHVzEh8KC2xhc3RfY2hhbmdlGAUgASgJUgpsYXN0Q2hhbmdlEhkKCGlmX2luZGV4GAYgASgFUgdpZkluZGV4EiEKDHBoeXNfYWRkcmVzcxgHIAEoCVILcGh5c0FkZHJlc3MSJgoPaGlnaGVyX2xheWVyX2lmGAggAygJUg1oaWdoZXJMYXllcklmEiQKDmxvd2VyX2xheWVyX2lmGAkgAygJUgxsb3dlckxheWVySWYSFAoFc3BlZWQYCiABKARS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BB4aMiBuYW1lIG9mIHRoZSByb290IGRldmljZSBhbmNob3JpbmcgbG9naWNhbCBkZXZpY2UKCg0KBQQDAgQEEgQwBC04CgwKBQQDAgQFEgMwBAoKDAoFBAMCBAESAzALGQoMCgUEAwIEAxIDMBwdCgoKAgQEEgQzADUBCgoKAwQEARIDMwgWCgsKBAQEAgASAzQEJQoMCgUEBAIABBIDNAQMCgwKBQQEAgAGEgM0DRoKDAoFBAQCAAESAzQbIAoMCgUEBAIAAxIDNCMkYgZwcm90bzMKjB8KH3ZvbHRoYV9wcm90b3Mvb21jaV9taWJfZGIucHJvdG8SBG9tY2kaGHZvbHRoYV9wcm90b3MvbWV0YS5wcm90byJDChBNaWJBdHRyaWJ1dGVEYXRhEhkKBG5hbWUYASABKAlCBej2zR0BUgRuYW1lEhQKBXZhbHVlGAIgASgJUgV2YWx1ZSK0AQoPTWliSW5zdGFuY2VEYXRhEiYKC2luc3RhbmNlX2lkGAEgASgNQgXo9s0dAVIKaW5zdGFuY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEhoKCG1vZGlmaWVkGAMgASgJUghtb2RpZmllZBJDCgphdHRyaWJ1dGVzGAQgAygLMhYub21jaS5NaWJBdHRyaWJ1dGVEYXRhQgvi9s0dBgoEbmFtZVIKYXR0cmlidXRlcyJ5CgxNaWJDbGFzc0RhdGESIAoIY2xhc3NfaWQYASABKA1CBej2zR0BUgdjbGFzc0lkEkcKCWluc3RhbmNlcxgCIAMoCzIVLm9tY2kuTWliSW5zdGFuY2VEYXRhQhLi9s0dDQoLaW5zdGFuY2VfaWRSCWluc3RhbmNlcyJMCg1NYW5hZ2VkRW50aXR5EiAKCGNsYXNzX2lkGAEgASgNQgXo9s0dAVIHY2xhc3NJZBIZCgRuYW1lGAIgASgJQgXo9s0dAVIEbmFtZSI3CgtNZXNzYWdlVHlwZRIoCgxtZXNzYWdlX3R5cGUYASABKA1CBej2zR0BUgttZXNzYWdlVHlwZSLoAgoNTWliRGV2aWNlRGF0YRIiCglkZXZpY2VfaWQYASABKAlCBej2zR0BUghkZXZpY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEiQKDmxhc3Rfc3luY190aW1lGAMgASgJUgxsYXN0U3luY1RpbWUSIgoNbWliX2RhdGFfc3luYxgEIAEoDVILbWliRGF0YVN5bmMSGAoHdmVyc2lvbhgFIAEoDVIHdmVyc2lvbhI9CgdjbGFzc2VzGAYgAygLMhIub21jaS5NaWJDbGFzc0RhdGFCD+L2zR0KCghjbGFzc19pZFIHY2xhc3NlcxI+ChBtYW5hZ2VkX2VudGl0aWVzGAcgAygLMhMub21jaS5NYW5hZ2VkRW50aXR5Ug9tYW5hZ2VkRW50aXRpZXMSNgoNbWVzc2FnZV90eXBlcxgIIAMoCzIRLm9tY2kuTWVzc2FnZVR5cGVSDG1lc3NhZ2VUeXBlcyIuChFPcGVuT21jaUV2ZW50VHlwZSIZCgVUeXBlcxIQCgxzdGF0ZV9jaGFuZ2UQACJWCg1PcGVuT21jaUV2ZW50EjEKBHR5cGUYASABKA4yHS5vbWNpLk9wZW5PbWNpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEhIKBGRhdGEYAiABKAlSBGRhdGFCSAoYb3JnLm9wZW5jb3JkLnZvbHRoYS5vbWNpWixnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjQvZ28vb21jaUqFFgoGEgQPAE8BCt4ECgEMEgMPABIa0wQKIENvcHlyaWdodCAyMDE4IC0gcHJlc2VudCB0aGUgb3JpZ2luYWwgYXV0aG9yIG9yIGF1dGhvcnMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIg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4vbNHQYKBG5hbWVSCmF0dHJpYnV0ZXMifQoOQWxhcm1DbGFzc0RhdGESIAoIY2xhc3NfaWQYASABKA1CBej2zR0BUgdjbGFzc0lkEkkKCWluc3RhbmNlcxgCIAMoCzIXLm9tY2kuQWxhcm1JbnN0YW5jZURhdGFCEuL2zR0NCgtpbnN0YW5jZV9pZFIJaW5zdGFuY2VzIlEKEkFsYXJtTWFuYWdlZEVudGl0eRIgCghjbGFzc19pZBgBIAEoDUIF6PbNHQFSB2NsYXNzSWQSGQoEbmFtZRgCIAEoCUIF6PbNHQFSBG5hbWUiPAoQQWxhcm1NZXNzYWdlVHlwZRIoCgxtZXNzYWdlX3R5cGUYASABKA1CBej2zR0BUgttZXNzYWdlVHlwZSKCAwoPQWxhcm1EZXZpY2VEYXRhEiIKCWRldmljZV9pZBgBIAEoCUIF6PbNHQFSCGRldmljZUlkEhgKB2NyZWF0ZWQYAiABKAlSB2NyZWF0ZWQSLgoTbGFzdF9hbGFybV9zZXF1ZW5jZRgDIAEoDVIRbGFzdEFsYXJtU2VxdWVuY2USJAoObGFzdF9zeW5jX3RpbWUYBCABKAlSDGxhc3RTeW5jVGltZRIYCgd2ZXJzaW9uGAUgASgNUgd2ZXJzaW9uEj8KB2NsYXNzZXMYBiADKAsyFC5vbWNpLkFsYXJtQ2xhc3NEYXRhQg/i9s0dCgoIY2xhc3NfaWRSB2NsYXNzZXMSQwoQbWFuYWdlZF9lbnRpdGllcxgHIAMoCzIYLm9tY2kuQWxhcm1NYW5hZ2VkRW50aXR5Ug9tYW5hZ2VkRW50aXRpZXMSOwoNbWVzc2FnZV90eXBlcxgIIAMoCzIWLm9tY2kuQWxhcm1NZXNzYWdlVHlwZVIMbWVzc2FnZVR5cGVzIj8KFkFsYXJtT3Blbk9tY2lFdmVudFR5cGUiJQoRT3Blbk9tY2lFdmVudFR5cGUSEAoMc3RhdGVfY2hhbmdlEAAibAoSQWxhcm1PcGVuT21jaUV2ZW50EkIKBHR5cGUYASABKA4yLi5vbWNpLkFsYXJtT3Blbk9tY2lFdmVudFR5cGUuT3Blbk9tY2lFdmVudFR5cGVSBHR5cGUSEgoEZGF0YRgCIAEoCVIEZGF0YUJIChhvcmcub3BlbmNvcmQudm9sdGhhLm9tY2laLGdpdGh1Yi5jb20v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BwIABBIETQRMHAoMCgUEBwIABhIDTQQsCgwKBQQHAgABEgNNLTEKDAoFBAcCAAMSA000NQouCgQEBwIBEgNPBBQiISBhc3NvY2lhdGVkIGRhdGEsIGluIGpzb24gZm9ybWF0CgoNCgUEBwIBBBIETwRNNgoMCgUEBwIBBRIDTwQKCgwKBQQHAgEBEgNPCw8KDAoFBAcCAQMSA08SE2IGcHJvdG8zCvjYAQoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8SBnZvbHRoYRocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvGhh2b2x0aGFfcHJvdG9zL21ldGEucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxoidm9sdGhhX3Byb3Rvcy9sb2dpY2FsX2RldmljZS5wcm90bxoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8aG3ZvbHRoYV9wcm90b3MvYWRhcHRlci5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxofdm9sdGhhX3Byb3Rvcy9vbWNpX21pYl9kYi5wcm90bxohdm9sdGhhX3Byb3Rvcy9vbWNpX2FsYXJtX2RiLnByb3RvGh52b2x0aGFfcHJvdG9zL2V4dF9jb25maWcucHJvdG8ipAEKC0RldmljZUdyb3VwEhUKAmlkGAEgASgJQgXo9s0dAVICaWQSSQoPbG9naWNhbF9kZXZpY2VzGAIgAygLMhUudm9sdGhhLkxvZ2ljYWxEZXZpY2VCCeL2zR0ECgJpZFIObG9naWNhbERldmljZXMSMwoHZGV2aWNlcxgDIAMoCzIOLnZvbHRoYS5EZXZpY2VCCeL2zR0ECgJpZFIHZGV2aWNlcyI5CgxEZXZpY2VHcm91cHMSKQoFaXRlbXMYASADKAsyEy52b2x0aGEuRGV2aWNlR3JvdXBSBWl0ZW1zIp4BChJFdmVudEZpbHRlclJ1bGVLZXkihwEKE0V2ZW50RmlsdGVyUnVsZVR5cGUSDgoKZmlsdGVyX2FsbBAAEgwKCGNhdGVnb3J5EAESEAoMc3ViX2NhdGVnb3J5EAISEgoOa3BpX2V2ZW50X3R5cGUQAxIVChFjb25maWdfZXZlbnRfdHlwZRAEEhUKEWRldmljZV9ldmVudF90eXBlEAUiaQoPRXZlbnRGaWx0ZXJSdWxlEkAKA2tleRgBIAEoDjIuLnZvbHRoYS5FdmVudEZpbHRlclJ1bGVLZXkuRXZlbnRGaWx0ZXJSdWxlVHlwZVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZSKnAQoLRXZlbnRGaWx0ZXISFQoCaWQYASABKAlCBej2zR0BUgJpZBIWCgZlbmFibGUYAiABKAhSBmVuYWJsZRIbCglkZXZpY2VfaWQYAyABKAlSCGRldmljZUlkEh0KCmV2ZW50X3R5cGUYBCABKAlSCWV2ZW50VHlwZRItCgVydWxlcxgFIAMoCzIXLnZvbHRoYS5FdmVudEZpbHRlclJ1bGVSBXJ1bGVzIj0KDEV2ZW50RmlsdGVycxItCgdmaWx0ZXJzGAEgAygLMhMudm9sdGhhLkV2ZW50RmlsdGVyUgdmaWx0ZXJzImsKDENvcmVJbnN0YW5jZRImCgtpbnN0YW5jZV9pZBgBIAEoCUIF6PbNHQFSCmluc3RhbmNlSWQSMwoGaGVhbHRoGAIgASgLMhQudm9sdGhhLkhlYWx0aFN0YXR1c0IF4vbNHQBSBmhlYWx0aCI7Cg1Db3JlSW5zdGFuY2VzEioKBWl0ZW1zGAEgAygLMhQudm9sdGhhLkNvcmVJbnN0YW5jZVIFaXRlbXMiNQoPT21jaVRlc3RSZXF1ZXN0Eg4KAmlkGAEgASgJUgJpZBISCgR1dWlkGAIgASgJUgR1dWlkIn8KDFRlc3RSZXNwb25zZRI/CgZyZXN1bHQYASABKA4yJy52b2x0aGEuVGVzdFJlc3BvbnNlLlRlc3RSZXNwb25zZVJlc3VsdFIGcmVzdWx0Ii4KElRlc3RSZXNwb25zZVJlc3VsdBILCgdTVUNDRVNTEAASCwoHRkFJTFVSRRABIl0KCFZhbHVlU2V0Eg4KAmlkGAEgASgJUgJpZBI4CgxhbGFybV9jb25maWcYAiABKAsyEy5jb25maWcuQWxhcm1Db25maWdIAFILYWxhcm1Db25maWdCBwoFdmFsdWUi2QQKBlZvbHRoYRIfCgd2ZXJzaW9uGAEgASgJQgXo9s0dAVIHdmVyc2lvbhI2CghhZGFwdGVycxgCIAMoCzIPLnZvbHRoYS5BZGFwdGVyQgni9s0dBAoCaWRSCGFkYXB0ZXJzEkkKD2xvZ2ljYWxfZGV2aWNlcxgDIAMoCzIVLnZvbHRoYS5Mb2dpY2FsRGV2aWNlQgni9s0dBAoCaWRSDmxvZ2ljYWxEZXZpY2VzEjMKB2RldmljZXMYBCADKAsyDi52b2x0aGEuRGV2aWNlQgni9s0dBAoCaWRSB2RldmljZXMSQAoMZGV2aWNlX3R5cGVzGAUgAygLMhIudm9sdGhhLkRldmljZVR5cGVCCeL2zR0ECgJpZFILZGV2aWNlVHlwZXMSQwoNZGV2aWNlX2dyb3VwcxgGIAMoCzITLnZvbHRoYS5EZXZpY2VHcm91cEIJ4vbNHQQKAmlkUgxkZXZpY2VHcm91cHMSQwoNZXZlbnRfZmlsdGVycxgHIAMoCzITLnZvbHRoYS5FdmVudEZpbHRlckIJ4vbNHQQKAmlkUgxldmVudEZpbHRlcnMSUQoRb21jaV9taWJfZGF0YWJhc2UYHCADKAsyEy5vbWNpLk1pYkRldmljZURhdGFCEOL2zR0LCglkZXZpY2VfaWRSD29tY2lNaWJEYXRhYmFzZRJXChNvbWNpX2FsYXJtX2RhdGFiYXNlGB0gAygLMhUub21jaS5BbGFybURldmljZURhdGFCEOL2zR0LCglkZXZpY2VfaWRSEW9tY2lBbGFybURhdGFiYXNlIqUBChBTZWxmVGVzdFJlc3BvbnNlEj8KBnJlc3VsdBgBIAEoDjInLnZvbHRoYS5TZWxmVGVzdFJlc3BvbnNlLlNlbGZUZXN0UmVzdWx0UgZyZXN1bHQiUAoOU2VsZlRlc3RSZXN1bHQSCwoHU1VDQ0VTUxAAEgsKB0ZBSUxVUkUQARIRCg1OT1RfU1VQUE9SVEVEEAISEQoNVU5LTk9XTl9FUlJPUhADIk8KEU9mQWdlbnRTdWJzY3JpYmVyEh0KCm9mYWdlbnRfaWQYASABKAlSCW9mYWdlbnRJZBIbCgl2b2x0aGFfaWQYAiABKAlSCHZvbHRoYUlkIjsKCk1lbWJlcnNoaXASHQoKZ3JvdXBfbmFtZRgBIAEoCVIJZ3JvdXBOYW1lEg4KAmlkGAIgASgJUgJpZCLCAQoaRGV2aWNlSW1hZ2VEb3dubG9hZFJlcXVlc3QSJwoJZGV2aWNlX2lkGAEgAygLMgouY29tbW9uLklEUghkZXZpY2VJZBIjCgVpbWFnZRgCIAEoCzINLnZvbHRoYS5JbWFnZVIFaW1hZ2USLAoRYWN0aXZhdGVPblN1Y2Nlc3MYAyABKAhSEWFjdGl2YXRlT25TdWNjZXNzEigKD2NvbW1pdE9uU3VjY2VzcxgEIAEoCFIPY29tbWl0T25TdWNjZXNzIoEBChJEZXZpY2VJbWFnZVJlcXVlc3QSJwoJZGV2aWNlX2lkGAEgAygLMgouY29tbW9uLklEUghkZXZpY2VJZBIYCgd2ZXJzaW9uGAIgASgJUgd2ZXJzaW9uEigKD2NvbW1pdE9uU3VjY2VzcxgDIAEoCFIPY29tbWl0T25TdWNjZXNzIl8KE0RldmljZUltYWdlUmVzcG9uc2USSAoTZGV2aWNlX2ltYWdlX3N0YXRlcxgBIAMoCzIYLnZvbHRoYS5EZXZpY2VJbWFnZVN0YXRlUhFkZXZpY2VJbWFnZVN0YXRlcyJFCgxGbG93TWV0YWRhdGESNQoGbWV0ZXJzGAEgAygLMh0ub3BlbmZsb3dfMTMub2ZwX21ldGVyX2NvbmZpZ1IGbWV0ZXJzMq82Cg1Wb2x0aGFTZXJ2aWNlElcKDUdldE1lbWJlcnNoaXASFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEi52b2x0aGEuTWVtYmVyc2hpcCIagtPkkwIUEhIvYXBpL3YxL21lbWJlcnNoaXASXQoQVXBkYXRlTWVtYmVyc2hpcBISLnZvbHRoYS5NZW1iZXJzaGlwGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih2C0+STAhciEi9hcGkvdjEvbWVtYmVyc2hpcDoBKhJECglHZXRWb2x0aGESFi5nb29nbGUucHJvdG9idWYuRW1wdHkaDi52b2x0aGEuVm9sdGhhIg+C0+STAgkSBy9hcGkvdjESXQoRTGlzdENvcmVJbnN0YW5jZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFS52b2x0aGEuQ29yZUluc3RhbmNlcyIZgtPkkwITEhEvYXBpL3YxL2luc3RhbmNlcxJTCg9HZXRDb3JlSW5zdGFuY2USCi5jb21tb24uSUQaFC52b2x0aGEuQ29yZUluc3RhbmNlIh6C0+STAhgSFi9hcGkvdjEvaW5zdGFuY2VzL3tpZH0SUgoMTGlzdEFkYXB0ZXJzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhAudm9sdGhhLkFkYXB0ZXJzIhiC0+STAhISEC9hcGkvdjEvYWRhcHRlcnMSZQoSTGlzdExvZ2ljYWxEZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhYudm9sdGhhLkxvZ2ljYWxEZXZpY2VzIh+C0+STAhkSFy9hcGkvdjEvbG9naWNhbF9kZXZpY2VzElsKEEdldExvZ2ljYWxEZXZpY2USCi5jb21tb24uSUQaFS52b2x0aGEuTG9naWNhbERldmljZSIkgtPkkwIeEhwvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9EmYKFkxpc3RMb2dpY2FsRGV2aWNlUG9ydHMSCi5jb21tb24uSUQaFC52b2x0aGEuTG9naWNhbFBvcnRzIiqC0+STAiQSIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMSeAoUR2V0TG9naWNhbERldmljZVBvcnQSFS52b2x0aGEuTG9naWNhbFBvcnRJZBoTLnZvbHRoYS5Mb2dpY2FsUG9ydCI0gtPkkwIuEiwvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzL3twb3J0X2lkfRKFAQoXRW5hYmxlTG9naWNhbERldmljZVBvcnQSFS52b2x0aGEuTG9naWNhbFBvcnRJZBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI7gtPkkwI1IjMvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzL3twb3J0X2lkfS9lbmFibGUShwEKGERpc2FibGVMb2dpY2FsRGV2aWNlUG9ydBIVLnZvbHRoYS5Mb2dpY2FsUG9ydElkGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjyC0+STAjYiNC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9L2Rpc2FibGUSZAoWTGlzdExvZ2ljYWxEZXZpY2VGbG93cxIKLmNvbW1vbi5JRBoSLm9wZW5mbG93XzEzLkZsb3dzIiqC0+STAiQSIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd3MSgwEKHFVwZGF0ZUxvZ2ljYWxEZXZpY2VGbG93VGFibGUSHC5vcGVuZmxvd18xMy5GbG93VGFibGVVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLYLT5JMCJyIiL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9mbG93czoBKhKEAQodVXBkYXRlTG9naWNhbERldmljZU1ldGVyVGFibGUSGy5vcGVuZmxvd18xMy5NZXRlck1vZFVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIugtPkkwIoIiMvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L21ldGVyczoBKhJnChdMaXN0TG9naWNhbERldmljZU1ldGVycxIKLmNvbW1vbi5JRBoTLm9wZW5mbG93XzEzLk1ldGVycyIrgtPkkwIlEiMvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L21ldGVycxJ0ChtMaXN0TG9naWNhbERldmljZUZsb3dHcm91cHMSCi5jb21tb24uSUQaFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzIjCC0+STAioSKC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHMSkwEKIVVwZGF0ZUxvZ2ljYWxEZXZpY2VGbG93R3JvdXBUYWJsZRIhLm9wZW5mbG93XzEzLkZsb3dHcm91cFRhYmxlVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjOC0+STAi0iKC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHM6ASoSTwoLTGlzdERldmljZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaDy52b2x0aGEuRGV2aWNlcyIXgtPkkwIREg8vYXBpL3YxL2RldmljZXMSTwoNTGlzdERldmljZUlkcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoLLmNvbW1vbi5JRHMiGYLT5JMCExIRL2FwaS92MS9kZXZpY2VpZHMSVQoQUmVjb25jaWxlRGV2aWNlcxILLmNvbW1vbi5JRHMaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHILT5JMCFiIRL2FwaS92MS9kZXZpY2VpZHM6ASoSRQoJR2V0RGV2aWNlEgouY29tbW9uLklEGg4udm9sdGhhLkRldmljZSIcgtPkkwIWEhQvYXBpL3YxL2RldmljZXMve2lkfRJKCgxDcmVhdGVEZXZpY2USDi52b2x0aGEuRGV2aWNlGg4udm9sdGhhLkRldmljZSIagtPkkwIUIg8vYXBpL3YxL2RldmljZXM6ASoSVwoMRW5hYmxlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L2VuYWJsZRJZCg1EaXNhYmxlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh4iHC9hcGkvdjEvZGV2aWNlcy97aWR9L2Rpc2FibGUSVwoMUmVib290RGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L3JlYm9vdBJXCgxEZWxldGVEZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiI4LT5JMCHSobL2FwaS92MS9kZXZpY2VzL3tpZH0vZGVsZXRlEmIKEUZvcmNlRGVsZXRlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IimC0+STAiMqIS9hcGkvdjEvZGV2aWNlcy97aWR9L2ZvcmNlX2RlbGV0ZRJ1Cg1Eb3dubG9hZEltYWdlEhUudm9sdGhhLkltYWdlRG93bmxvYWQaFS5jb21tb24uT3BlcmF0aW9uUmVzcCI2gtPkkwIwIisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9OgEqEoIBChZHZXRJbWFnZURvd25sb2FkU3RhdHVzEhUudm9sdGhhLkltYWdlRG93bmxvYWQaFS52b2x0aGEuSW1hZ2VEb3dubG9hZCI6gtPkkwI0EjIvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L3N0YXR1cxJ1ChBHZXRJbWFnZURvd25sb2FkEhUudm9sdGhhLkltYWdlRG93bmxvYWQaFS52b2x0aGEuSW1hZ2VEb3dubG9hZCIzgtPkkwItEisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9EmYKEkxpc3RJbWFnZURvd25sb2FkcxIKLmNvbW1vbi5JRBoWLnZvbHRoYS5JbWFnZURvd25sb2FkcyIsgtPkkwImEiQvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMSeAoTQ2FuY2VsSW1hZ2VEb3dubG9hZBIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiM4LT5JMCLSorL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfRKIAQoTQWN0aXZhdGVJbWFnZVVwZGF0ZRIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiQ4LT5JMCPSI4L2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9pbWFnZV91cGRhdGU6ASoShgEKEVJldmVydEltYWdlVXBkYXRlEhUudm9sdGhhLkltYWdlRG93bmxvYWQaFS5jb21tb24uT3BlcmF0aW9uUmVzcCJDgtPkkwI9IjgvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L2ltYWdlX3JldmVydDoBKhKIAQoVRG93bmxvYWRJbWFnZVRvRGV2aWNlEiIudm9sdGhhLkRldmljZUltYWdlRG93bmxvYWRSZXF1ZXN0Ghsudm9sdGhhLkRldmljZUltYWdlUmVzcG9uc2UiLoLT5JMCKBImL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9kb3dubG9hZF9pbWFnZXMSdwoOR2V0SW1hZ2VTdGF0dXMSGi52b2x0aGEuRGV2aWNlSW1hZ2VSZXF1ZXN0Ghsudm9sdGhhLkRldmljZUltYWdlUmVzcG9uc2UiLILT5JMCJhIkL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9pbWFnZXNfc3RhdHVzEokBChlBYm9ydEltYWdlVXBncmFkZVRvRGV2aWNlEhoudm9sdGhhLkRldmljZUltYWdlUmVxdWVzdBobLnZvbHRoYS5EZXZpY2VJbWFnZVJlc3BvbnNlIjOC0+STAi0SKy9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvYWJvcnRfdXBncmFkZV9pbWFnZXMSVgoMR2V0T251SW1hZ2VzEgouY29tbW9uLklEGhEudm9sdGhhLk9udUltYWdlcyIngtPkkwIhEh8vYXBpL3YxL2RldmljZXMve2lkfS9vbnVfaW1hZ2VzEnsKDUFjdGl2YXRlSW1hZ2USGi52b2x0aGEuRGV2aWNlSW1hZ2VSZXF1ZXN0Ghsudm9sdGhhLkRldmljZUltYWdlUmVzcG9uc2UiMYLT5JMCKyImL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9hY3RpdmF0ZV9pbWFnZXM6ASoSdwoLQ29tbWl0SW1hZ2USGi52b2x0aGEuRGV2aWNlSW1hZ2VSZXF1ZXN0Ghsudm9sdGhhLkRldmljZUltYWdlUmVzcG9uc2UiL4LT5JMCKSIkL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9jb21taXRfaW1hZ2VzOgEqElAKD0xpc3REZXZpY2VQb3J0cxIKLmNvbW1vbi5JRBoNLnZvbHRoYS5Qb3J0cyIigtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9wb3J0cxJdChNMaXN0RGV2aWNlUG1Db25maWdzEgouY29tbW9uLklEGhEudm9sdGhhLlBtQ29uZmlncyIngtPkkwIhEh8vYXBpL3YxL2RldmljZXMve2lkfS9wbV9jb25maWdzEm4KFVVwZGF0ZURldmljZVBtQ29uZmlncxIRLnZvbHRoYS5QbUNvbmZpZ3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJCIfL2FwaS92MS9kZXZpY2VzL3tpZH0vcG1fY29uZmlnczoBKhJVCg9MaXN0RGV2aWNlRmxvd3MSCi5jb21tb24uSUQaEi5vcGVuZmxvd18xMy5GbG93cyIigtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9mbG93cxJlChRMaXN0RGV2aWNlRmxvd0dyb3VwcxIKLmNvbW1vbi5JRBoXLm9wZW5mbG93XzEzLkZsb3dHcm91cHMiKILT5JMCIhIgL2FwaS92MS9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHMSXAoPTGlzdERldmljZVR5cGVzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhMudm9sdGhhLkRldmljZVR5cGVzIhyC0+STAhYSFC9hcGkvdjEvZGV2aWNlX3R5cGVzElIKDUdldERldmljZVR5cGUSCi5jb21tb24uSUQaEi52b2x0aGEuRGV2aWNlVHlwZSIhgtPkkwIbEhkvYXBpL3YxL2RldmljZV90eXBlcy97aWR9El8KEExpc3REZXZpY2VHcm91cHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFC52b2x0aGEuRGV2aWNlR3JvdXBzIh2C0+STAhcSFS9hcGkvdjEvZGV2aWNlX2dyb3VwcxJGChBTdHJlYW1QYWNrZXRzT3V0EhYub3BlbmZsb3dfMTMuUGFja2V0T3V0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgAoARJFChBSZWNlaXZlUGFja2V0c0luEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhUub3BlbmZsb3dfMTMuUGFja2V0SW4iADABEksKE1JlY2VpdmVDaGFuZ2VFdmVudHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaGC5vcGVuZmxvd18xMy5DaGFuZ2VFdmVudCIAMAESVQoOR2V0RGV2aWNlR3JvdXASCi5jb21tb24uSUQaEy52b2x0aGEuRGV2aWNlR3JvdXAiIoLT5JMCHBIaL2FwaS92MS9kZXZpY2VfZ3JvdXBzL3tpZH0SXwoRQ3JlYXRlRXZlbnRGaWx0ZXISEy52b2x0aGEuRXZlbnRGaWx0ZXIaEy52b2x0aGEuRXZlbnRGaWx0ZXIiIILT5JMCGiIVL2FwaS92MS9ldmVudF9maWx0ZXJzOgEqElYKDkdldEV2ZW50RmlsdGVyEgouY29tbW9uLklEGhQudm9sdGhhLkV2ZW50RmlsdGVycyIigtPkkwIcEhovYXBpL3YxL2V2ZW50X2ZpbHRlcnMve2lkfRJkChFVcGRhdGVFdmVudEZpbHRlchITLnZvbHRoYS5FdmVudEZpbHRlchoTLnZvbHRoYS5FdmVudEZpbHRlciIlgtPkkwIfGhovYXBpL3YxL2V2ZW50X2ZpbHRlcnMve2lkfToBKhJkChFEZWxldGVFdmVudEZpbHRlchITLnZvbHRoYS5FdmVudEZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIigtPkkwIcKhovYXBpL3YxL2V2ZW50X2ZpbHRlcnMve2lkfRJfChBMaXN0RXZlbnRGaWx0ZXJzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhQudm9sdGhhLkV2ZW50RmlsdGVycyIdgtPkkwIXEhUvYXBpL3YxL2V2ZW50X2ZpbHRlcnMSTAoJR2V0SW1hZ2VzEgouY29tbW9uLklEGg4udm9sdGhhLkltYWdlcyIjgtPkkwIdEhsvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZXMSWAoIU2VsZlRlc3QSCi5jb21tb24uSUQaGC52b2x0aGEuU2VsZlRlc3RSZXNwb25zZSImgtPkkwIgIh4vYXBpL3YxL2RldmljZXMve2lkfS9zZWxmX3Rlc3QSVgoQR2V0TWliRGV2aWNlRGF0YRIKLmNvbW1vbi5JRBoTLm9tY2kuTWliRGV2aWNlRGF0YSIhgtPkkwIbEhkvYXBpL3YxL29wZW5vbWNpL3tpZH0vbWliElwKEkdldEFsYXJtRGV2aWNlRGF0YRIKLmNvbW1vbi5JRBoVLm9tY2kuQWxhcm1EZXZpY2VEYXRhIiOC0+STAh0SGy9hcGkvdjEvb3Blbm9tY2kve2lkfS9hbGFybRJzCg1TaW11bGF0ZUFsYXJtEhwudm9sdGhhLlNpbXVsYXRlQWxhcm1SZXF1ZXN0GhUuY29tbW9uLk9wZXJhdGlvblJlc3AiLYLT5JMCJyIiL2FwaS92MS9kZXZpY2VzL3tpZH0vc2ltdWxhdGVfbGFybToBKhJDCglTdWJzY3JpYmUSGS52b2x0aGEuT2ZBZ2VudFN1YnNjcmliZXIaGS52b2x0aGEuT2ZBZ2VudFN1YnNjcmliZXIiABJNCgpFbmFibGVQb3J0Egwudm9sdGhhLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGYLT5JMCEyIOL3YxL0VuYWJsZVBvcnQ6ASoSTwoLRGlzYWJsZVBvcnQSDC52b2x0aGEuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIagtPkkwIUIg8vdjEvRGlzYWJsZVBvcnQ6ASoSWAoLR2V0RXh0VmFsdWUSFi5jb21tb24uVmFsdWVTcGVjaWZpZXIaFC5jb21tb24uUmV0dXJuVmFsdWVz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AkQEsMq8IhIG2QUI3AUKUAJQA1AEUAVQBlAHUAhiBnByb3RvMwqbQAojdm9sdGhhX3Byb3Rvcy9pbnRlcl9jb250YWluZXIucHJvdG8SBnZvbHRoYRoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aGnZvbHRoYV9wcm90b3Mvdm9sdGhhLnByb3RvGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGh92b2x0aGFfcHJvdG9zL29wZW5mbG93XzEzLnByb3RvGiJ2b2x0aGFfcHJvdG9zL2xvZ2ljYWxfZGV2aWNlLnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvIhsKB1N0clR5cGUSEAoDdmFsGAEgASgJUgN2YWwiGwoHSW50VHlwZRIQCgN2YWwYASABKANSA3ZhbCIcCghCb29sVHlwZRIQCgN2YWwYASABKAhSA3ZhbCIiCgZQYWNrZXQSGAoHcGF5bG9hZBgBIAEoDFIHcGF5bG9hZCJcCglFcnJvckNvZGUiTwoFY29kZXMSFwoTVU5TVVBQT1JURURfUkVRVUVTVBAAEhYKEklOVkFMSURfUEFSQU1FVEVSUxABEhUKEURFQURMSU5FX0VYQ0VFREVEEAIiTAoFRXJyb3ISKwoEY29kZRgBIAEoDjIXLnZvbHRoYS5FcnJvckNvZGUuY29kZXNSBGNvZGUSFgoGcmVhc29uGAIgASgJUgZyZWFzb24i0gEKBkhlYWRlchIOCgJpZBgBIAEoCVICaWQSJwoEdHlwZRgCIAEoDjITLnZvbHRoYS5NZXNzYWdlVHlwZVIEdHlwZRIdCgpmcm9tX3RvcGljGAMgASgJUglmcm9tVG9waWMSGQoIdG9fdG9waWMYBCABKAlSB3RvVG9waWMSGwoJa2V5X3RvcGljGAUgASgJUghrZXlUb3BpYxI4Cgl0aW1lc3RhbXAYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgl0aW1lc3RhbXAiSAoIQXJndW1lbnQSEAoDa2V5GAEgASgJUgNrZXkSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgV2YWx1ZSJpChVJbnRlckNvbnRhaW5lck1lc3NhZ2USJgoGaGVhZGVyGAEgASgLMg4udm9sdGhhLkhlYWRlclIGaGVhZGVyEigKBGJvZHkYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgRib2R5IqYBChlJbnRlckNvbnRhaW5lclJlcXVlc3RCb2R5EhAKA3JwYxgCIAEoCVIDcnBjEiQKBGFyZ3MYAyADKAsyEC52b2x0aGEuQXJndW1lbnRSBGFyZ3MSKwoRcmVzcG9uc2VfcmVxdWlyZWQYBCABKAhSEHJlc3BvbnNlUmVxdWlyZWQSJAoOcmVwbHlfdG9fdG9waWMYBSABKAlSDHJlcGx5VG9Ub3BpYyJkChpJbnRlckNvbnRhaW5lclJlc3BvbnNlQm9keRIYCgdzdWNjZXNzGAEgASgIUgdzdWNjZXNzEiwKBnJlc3VsdBgDIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBnJlc3VsdCKIAQoQU3dpdGNoQ2FwYWJpbGl0eRIpCgRkZXNjGAEgASgLMhUub3BlbmZsb3dfMTMub2ZwX2Rlc2NSBGRlc2MSSQoPc3dpdGNoX2ZlYXR1cmVzGAIgASgLMiAub3BlbmZsb3dfMTMub2ZwX3N3aXRjaF9mZWF0dXJlc1IOc3dpdGNoRmVhdHVyZXMifgoQRGV2aWNlRGlzY292ZXJlZBIOCgJpZBgBIAEoCVICaWQSGwoJcGFyZW50X2lkGAIgASgJUghwYXJlbnRJZBIfCgtkZXZpY2VfdHlwZRgDIAEoCVIKZGV2aWNlVHlwZRIcCglwdWJsaXNoZXIYBCABKAlSCXB1Ymxpc2hlciKdAgoXSW50ZXJBZGFwdGVyTWVzc2FnZVR5cGUigQIKBVR5cGVzEhAKDEZMT1dfUkVRVUVTVBAAEhEKDUZMT1dfUkVTUE9OU0UQARIQCgxPTUNJX1JFUVVFU1QQAhIRCg1PTUNJX1JFU1BPTlNFEAMSEwoPTUVUUklDU19SRVFVRVNUEAQSFAoQTUVUUklDU19SRVNQT05TRRAFEhMKD09OVV9JTkRfUkVRVUVTVBAGEhQKEE9OVV9JTkRfUkVTUE9OU0UQBxIhCh1URUNIX1BST0ZJTEVfRE9XTkxPQURfUkVRVUVTVBAIEhsKF0RFTEVURV9HRU1fUE9SVF9SRVFVRVNUEAkSGAoUREVMRVRFX1RDT05UX1JFUVVFU1QQCiKdAgoSSW50ZXJBZGFwdGVySGVhZGVyEg4KAmlkGAEgASgJUgJpZBI5CgR0eXBlGAIgASgOMiUudm9sdGhhLkludGVyQWRhcHRlck1lc3NhZ2VUeXBlLlR5cGVzUgR0eXBlEh0KCmZyb21fdG9waWMYAyABKAlSCWZyb21Ub3BpYxIZCgh0b190b3BpYxgEIAEoCVIHdG9Ub3BpYxIgCgx0b19kZXZpY2VfaWQYBSABKAlSCnRvRGV2aWNlSWQSJgoPcHJveHlfZGV2aWNlX2lkGAYgASgJUg1wcm94eURldmljZUlkEjgKCXRpbWVzdGFtcBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSCXRpbWVzdGFtcCK5AQoXSW50ZXJBZGFwdGVyT21jaU1lc3NhZ2USGAoHbWVzc2FnZRgBIAEoDFIHbWVzc2FnZRJCCg5jb25uZWN0X3N0YXR1cxgCIAEoDjIbLmNvbW1vbi5Db25uZWN0U3RhdHVzLlR5cGVzUg1jb25uZWN0U3RhdHVzEkAKDXByb3h5X2FkZHJlc3MYAyABKAsyGy52b2x0aGEuRGV2aWNlLlByb3h5QWRkcmVzc1IMcHJveHlBZGRyZXNzIlMKJkludGVyQWRhcHRlclRlY2hQcm9maWxlRG93bmxvYWRNZXNzYWdlEhUKBnVuaV9pZBgBIAEoDVIFdW5pSWQSEgoEcGF0aBgCIAEoCVIEcGF0aCJyCiBJbnRlckFkYXB0ZXJEZWxldGVHZW1Qb3J0TWVzc2FnZRIVCgZ1bmlfaWQYASABKA1SBXVuaUlkEhcKB3RwX3BhdGgYAiABKAlSBnRwUGF0aBIeCgtnZW1fcG9ydF9pZBgDIAEoDVIJZ2VtUG9ydElkImsKHkludGVyQWRhcHRlckRlbGV0ZVRjb250TWVzc2FnZRIVCgZ1bmlfaWQYASABKA1SBXVuaUlkEhcKB3RwX3BhdGgYAiABKAlSBnRwUGF0aBIZCghhbGxvY19pZBgDIAEoDVIHYWxsb2NJZCKgAQoYSW50ZXJBZGFwdGVyUmVzcG9uc2VCb2R5EhYKBnN0YXR1cxgBIAEoCFIGc3RhdHVzEioKBGJvZHkYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55SABSBGJvZHkSNQoEb21jaRgDIAEoCzIfLnZvbHRoYS5JbnRlckFkYXB0ZXJPbWNpTWVzc2FnZUgAUgRvbWNpQgkKB3BheWxvYWQicwoTSW50ZXJBZGFwdGVyTWVzc2FnZRIyCgZoZWFkZXIYASABKAsyGi52b2x0aGEuSW50ZXJBZGFwdGVySGVhZGVyUgZoZWFkZXISKAoEYm9keRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBGJvZHkqPwoLTWVzc2FnZVR5cGUSCwoHUkVRVUVTVBAAEgwKCFJFU1BPTlNFEAESFQoRREVWSUNFX0RJU0NPVkVSRUQQAkJOChNvcmcub3BlbmNvcmQudm9sdGhhWjdnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjQvZ28vaW50ZXJfY29udGFpbmVySv0oCgcSBQAAmAEBCggKAQwSAwAAEgoICgEIEgMCAE4KCQoCCAsSAwIATgoICgEIEgMDACwKCQoCCAESAwMALAoJCgIDABIDBQArCgkKAgoAEgMFBw0KCQoCAwESAwYAKwoJCgIKARIDBgcNCgkKAgMCEgMHACMKCQoCAwMSAwgAKQoJCgIDBBIDCQAzCgkKAgoCEgMJBw0KCQoCAwUSAwoAKQoICgECEgMMAA8KCgoCBAASBA4AEAEKCgoDBAABEgMOCA8KCwoEBAACABIDDwQTCg0KBQQAAgAEEgQPBA4RCgwKBQQAAgAFEgMPBAoKDAoFBAACAAESAw8LDgoMCgUEAAIAAxIDDxESCgoKAgQBEgQSABQBCgoKAwQBARIDEggPCgsKBAQBAgASAxMEEgoNCgUEAQIABBIEEwQSEQoMCgUEAQIABRIDEwQJCgwKBQQBAgABEgMTCg0KDAoFBAECAAMSAxMQEQoKCgIEAhIEFgAYAQoKCgMEAgESAxYIEAoLCgQEAgIAEgMXBBEKDQoFBAICAAQSBBcEFhIKDAoFBAICAAUSAxcECAoMCgUEAgIAARIDFwkMCgwKBQQCAgADEgMXDxAKCgoCBAMSBBoAHAEKCgoDBAMBEgMaCA4KCwoEBAMCABIDGwQWCg0KBQQDAgAEEgQbBBoQCgwKBQQDAgAFEgMbBAkKDAoFBAMCAAESAxsKEQoMCgUEAwIAAxIDGxQVCgoKAgQEEgQeACQBCgoKAwQEARIDHggRCgwKBAQEBAASBB8EIwUKDAoFBAQEAAESAx8JDgoNCgYEBAQAAgASAyAIIAoOCgcEBAQAAgABEgMgCBsKDgoHBAQEAAIAAhIDIB4fCg0KBgQEBAACARIDIQgfCg4KBwQEBAACAQESAyEIGgoOCgcEBAQAAgECEgMhHR4KDQoGBAQEAAICEgMiCB4KDgoHBAQEAAICARIDIggZCg4KBwQEBAACAgISAyIcHQoKCgIEBRIEJgApAQoKCgMEBQESAyYIDQoLCgQEBQIAEgMnBB0KDQoFBAUCAAQSBCcEJg8KDAoFBAUCAAYSAycEEwoMCgUEBQIAARIDJxQYCgwKBQQFAgADEgMnGxwKCwoEBAUCARIDKAQWCg0KBQQFAgEEEgQoBCcdCgwKBQQFAgEFEgMoBAoKDAoFBAUCAQESAygLEQoMCgUEBQIBAxIDKBQVCgoKAgUAEgQrAC8BCgoKAwUAARIDKwUQCgsKBAUAAgASAywEEAoMCgUFAAIAARIDLAQLCgwKBQUAAgACEgMsDg8KCwoEBQACARIDLQQRCgwKBQUAAgEBEgMtBAwKDAoFBQACAQISAy0PEAoLCgQFAAICEgMuBBgKDAoFBQACAgESAy4EFQoMCgUFAAICAhIDLhYXCgoKAgQGEgQxADgBCgoKAwQGARIDMQgOCgsKBAQGAgASAzIEEgoNCgUEBgIABBIEMgQxEAoMCgUEBgIABRIDMgQKCgwKBQQGAgABEgMyCw0KDAoFBAYCAAMSAzIQEQoLCgQEBgIBEgMzBBkKDQoFBAYCAQQSBDMEMhIKDAoFBAYCAQYSAzMEDwoMCgUEBgIBARIDMxAUCgwKBQQGAgEDEgMzFxgKCwoEBAYCAhIDNAQaCg0KBQQGAgIEEgQ0BDMZCgwKBQQGAgIFEgM0BAoKDAoFBAYCAgESAzQLFQoMCgUEBgICAxIDNBgZCgsKBAQGAgMSAzUEGAoNCgUEBgIDBBIENQQ0GgoMCgUEBgIDBRIDNQQKCgwKBQQGAgMBEgM1CxMKDAoFBAYCAwMSAzUWFwoLCgQEBgIEEgM2BBkKDQoFBAYCBAQSBDYENRgKDAoFBAYCBAUSAzYECgoMCgUEBgIEARIDNgsUCgwKBQQGAgQDEgM2FxgKCwoEBAYCBRIDNwQsCg0KBQQGAgUEEgQ3BDYZCgwKBQQGAgUGEgM3BB0KDAoFBAYCBQESAzceJwoMCgUEBgIFAxIDNyorCgoKAgQHEgQ6AD0BCgoKAwQHARIDOggQCgsKBAQHAgASAzsEEwoNCgUEBwIABBIEOwQ6EgoMCgUEBwIABRIDOwQKCgwKBQQHAgABEgM7Cw4KDAoFBAcCAAMSAzsREgoLCgQEBwIBEgM8BCIKDQoFBAcCAQQSBDwEOxMKDAoFBAcCAQYSAzwEFwoMCgUEBwIBARIDPBgdCgwKBQQHAgEDEgM8ICEKCgoCBAgSBD8AQgEKCgoDBAgBEgM/CB0KCwoEBAgCABIDQAQWCg0KBQQIAgAEEgRABD8fCgwKBQQIAgAGEgNABAoKDAoFBAgCAAESA0ALEQoMCgUECAIAAxIDQBQVCgsKBAQIAgESA0EEIQoNCgUECAIBBBIEQQRAFgoMCgUECAIBBhIDQQQXCgwKBQQIAgEBEgNBGBwKDAoFBAgCAQMSA0EfIAoKCgIECRIERABJAQoKCgMECQESA0QIIQoLCgQECQIAEgNFBBMKDQoFBAkCAAQSBEUERCMKDAoFBAkCAAUSA0UECgoMCgUECQIAARIDRQsOCgwKBQQJAgADEgNFERIKCwoEBAkCARIDRgQfCgwKBQQJAgEEEgNGBAwKDAoFBAkCAQYSA0YNFQoMCgUECQIBARIDRhYaCgwKBQQJAgEDEgNGHR4KCwoEBAkCAhIDRwQfCg0KBQQJAgIEEgRHBEYfCgwKBQQJAgIFEgNHBAgKDAoFBAkCAgESA0cJGgoMCgUECQICAxIDRx0eCgsKBAQJAgMSA0gEHgoNCgUECQIDBBIESARHHwoMCgUECQIDBRIDSAQKCgwKBQQJAgMBEgNICxkKDAoFBAkCAwMSA0gcHQoKCgIEChIESwBOAQoKCgMECgESA0sIIgoLCgQECgIAEgNMBBUKDQoFBAoCAAQSBEwESyQKDAoFBAoCAAUSA0wECAoMCgUECgIAARIDTAkQCgwKBQQKAgADEgNMExQKCwoEBAoCARIDTQQjCg0KBQQKAgEEEgRNBEwVCgwKBQQKAgEGEgNNBBcKDAoFBAoCAQESA00YHgoMCgUECgIBAxIDTSEiCgoKAgQLEgRQAFMBCgoKAwQLARIDUAgYCgsKBAQLAgASA1EEIgoNCgUECwIABBIEUQRQGgoMCgUECwIABhIDUQQYCgwKBQQLAgABEgNRGR0KDAoFBAsCAAMSA1EgIQoLCgQECwIBEgNSBDgKDQoFBAsCAQQSBFIEUSIKDAoFBAsCAQYSA1IEIwoMCgUECwIBARIDUiQzCgwKBQQLAgEDEgNSNjcKCgoCBAwSBFUAWgEKCgoDBAwBEgNVCBgKCwoEBAwCABIDVgQSCg0KBQQMAgAEEgRWBFUaCgwKBQQMAgAFEgNWBAoKDAoFBAwCAAESA1YLDQoMCgUEDAIAAxIDVhARCgsKBAQMAgESA1cEGQoNCgUEDAIBBBIEVwRWEgoMCgUEDAIBBRIDVwQKCgwKBQQMAgEBEgNXCxQKDAoFBAwCAQMSA1cXGAoLCgQEDAICEgNYBBsKDQoFBAwCAgQSBFgEVxkKDAoFBAwCAgUSA1gECgoMCgUEDAICARIDWAsWCgwKBQQMAgIDEgNYGRoKCwoEBAwCAxIDWQQZCg0KBQQMAgMEEgRZBFgbCgwKBQQMAgMFEgNZBAoKDAoFBAwCAwESA1kLFAoMCgUEDAIDAxIDWRcYCgoKAgQNEgRcAGoBCgoKAwQNARIDXAgfCgwKBAQNBAASBF0EaQUKDAoFBA0EAAESA10JDgoNCgYEDQQAAgASA14IGQoOCgcEDQQAAgABEgNeCBQKDgoHBA0EAAIAAhIDXhcYCg0KBgQNBAACARIDXwgaCg4KBwQNBAACAQESA18IFQoOCgcEDQQAAgECEgNfGBkKDQoGBA0EAAICEgNgCBkKDgoHBA0EAAICARIDYAgUCg4KBwQNBAACAgISA2AXGAoNCgYEDQQAAgMSA2EIGgoOCgcEDQQAAgMBEgNhCBUKDgoHBA0EAAIDAhIDYRgZCg0KBgQNBAACBBIDYggcCg4KBwQNBAACBAESA2IIFwoOCgcEDQQAAgQCEgNiGhsKDQoGBA0EAAIFEgNjCB0KDgoHBA0EAAIFARIDYwgYCg4KBwQNBAACBQISA2MbHAoNCgYEDQQAAgYSA2QIHAoOCgcEDQQAAgYBEgNkCBcKDgoHBA0EAAIGAhIDZBobCg0KBgQNBAACBxIDZQgdCg4KBwQNBAACBwESA2UIGAoOCgcEDQQAAgcCEgNlGxwKDQoGBA0EAAIIEgNmCCoKDgoHBA0EAAIIARIDZgglCg4KBwQNBAACCAISA2YoKQoNCgYEDQQAAgkSA2cIJAoOCgcEDQQAAgkBEgNnCB8KDgoHBA0EAAIJAhIDZyIjCg0KBgQNBAACChIDaAgiCg4KBwQNBAACCgESA2gIHAoOCgcEDQQAAgoCEgNoHyEKCgoCBA4SBGwAdAEKCgoDBA4BEgNsCBoKCwoEBA4CABIDbQQSCg0KBQQOAgAEEgRtBGwcCgwKBQQOAgAFEgNtBAoKDAoFBA4CAAESA20LDQoMCgUEDgIAAxIDbRARCgsKBAQOAgESA24EKwoNCgUEDgIBBBIEbgRtEgoMCgUEDgIBBhIDbgQhCgwKBQQOAgEBEgNuIiYKDAoFBA4CAQMSA24pKgoLCgQEDgICEgNvBBoKDQoFBA4CAgQSBG8EbisKDAoFBA4CAgUSA28ECgoMCgUEDgICARIDbwsVCgwKBQQOAgIDEgNvGBkKCwoEBA4CAxIDcAQYCg0KBQQOAgMEEgRwBG8aCgwKBQQOAgMFEgNwBAoKDAoFBA4CAwESA3ALEwoMCgUEDgIDAxIDcBYXCgsKBAQOAgQSA3EEHAoNCgUEDgIEBBIEcQRwGAoMCgUEDgIEBRIDcQQKCgwKBQQOAgQBEgNxCxcKDAoFBA4CBAMSA3EaGwoLCgQEDgIFEgNyBB8KDQoFBA4CBQQSBHIEcRwKDAoFBA4CBQUSA3IECgoMCgUEDgIFARIDcgsaCgwKBQQOAgUDEgNyHR4KCwoEBA4CBhIDcwQsCg0KBQQOAgYEEgRzBHIfCgwKBQQOAgYGEgNzBB0KDAoFBA4CBgESA3MeJwoMCgUEDgIGAxIDcyorCgoKAgQPEgR2AHoBCgoKAwQPARIDdggfCiwKBAQPAgASA3cEFiIfIE9NQ0lfUkVRVUVTVCBvciBPTUNJX1JFU1BPTlNFCgoNCgUEDwIABBIEdwR2IQoMCgUEDwIABRIDdwQJCgwKBQQPAgABEgN3ChEKDAoFBA8CAAMSA3cUFQoLCgQEDwIBEgN4BDIKDQoFBA8CAQQSBHgEdxYKDAoFBA8CAQYSA3gEHgoMCgUEDwIBARIDeB8tCgwKBQQPAgEDEgN4MDEKCwoEBA8CAhIDeQQxCg0KBQQPAgIEEgR5BHgyCgwKBQQPAgIGEgN5BB4KDAoFBA8CAgESA3kfLAoMCgUEDwICAxIDeS8wCgoKAgQQEgR8AH8BCgoKAwQQARIDfAguCgsKBAQQAgASA30EFgoNCgUEEAIABBIEfQR8MAoMCgUEEAIABRIDfQQKCgwKBQQQAgABEgN9CxEKDAoFBBACAAMSA30UFQoLCgQEEAIBEgN+BBQKDQoFBBACAQQSBH4EfRYKDAoFBBACAQUSA34ECgoMCgUEEAIBARIDfgsPCgwKBQQQAgEDEgN+EhMKDAoCBBESBoEBAIUBAQoLCgMEEQESBIEBCCgKDAoEBBECABIEggEEFgoPCgUEEQIABBIGggEEgQEqCg0KBQQRAgAFEgSCAQQKCg0KBQQRAgABEgSCAQsRCg0KBQQRAgADEgSCARQVCgwKBAQRAgESBIMBBBcKDwoFBBECAQQSBoMBBIIBFgoNCgUEEQIBBRIEgwEECgoNCgUEEQIBARIEgwELEgoNCgUEEQIBAxIEgwEVFgoMCgQEEQICEgSEAQQbCg8KBQQRAgIEEgaEAQSDARcKDQoFBBECAgUSBIQBBAoKDQoFBBECAgESBIQBCxYKDQoFBBECAgMSBIQBGRoKDAoCBBISBocBAIsBAQoLCgMEEgESBIcBCCYKDAoEBBICABIEiAEEFgoPCgUEEgIABBIGiAEEhwEoCg0KBQQSAgAFEgSIAQQKCg0KBQQSAgABEgSIAQsRCg0KBQQSAgADEgSIARQVCgwKBAQSAgESBIkBBBcKDwoFBBICAQQSBokBBIgBFgoNCgUEEgIBBRIEiQEECgoNCgUEEgIBARIEiQELEgoNCgUEEgIBAxIEiQEVFgoMCgQEEgICEgSKAQQYCg8KBQQSAgIEEgaKAQSJARcKDQoFBBICAgUSBIoBBAoKDQoFBBICAgESBIoBCxMKDQoFBBICAgMSBIoBFhcKDAoCBBMSBo0BAJMBAQoLCgMEEwESBI0BCCAKDAoEBBMCABIEjgEEFAoPCgUEEwIABBIGjgEEjQEiCg0KBQQTAgAFEgSOAQQICg0KBQQTAgABEgSOAQkPCg0KBQQTAgADEgSOARITCg4KBAQTCAASBo8BBJIBBQoNCgUEEwgAARIEjwEKEQoMCgQEEwIBEgSQAQglCg0KBQQTAgEGEgSQAQgbCg0KBQQTAgEBEgSQARwgCg0KBQQTAgEDEgSQASMkCi0KBAQTAgISBJEBCCkiHyBPTUNJX1JFUVVFU1Qgb3IgT01DSV9SRVNQT05TRQoKDQoFBBMCAgYSBJEBCB8KDQoFBBMCAgESBJEBICQKDQoFBBMCAgMSBJEBJygKDAoCBBQSBpUBAJgBAQoLCgMEFAESBJUBCBsKDAoEBBQCABIElgEEIgoPCgUEFAIABBIGlgEElQEdCg0KBQQUAgAGEgSWAQQWCg0KBQQUAgABEgSWARcdCg0KBQQUAgADEgSWASAhCgwKBAQUAgESBJcBBCEKDwoFBBQCAQQSBpcBBJYBIgoNCgUEFAIBBhIElwEEFwoNCgUEFAIBARIElwEYHAoNCgUEFAIBAxIElwEfIFAAUAFQBGIGcHJvdG8zCtc/CiB2b2x0aGFfcHJvdG9zL3RlY2hfcHJvZmlsZS5wcm90bxIMdGVjaF9wcm9maWxlGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvIoACCg9TY2hlZHVsZXJDb25maWcSNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEj8KDWFkZGl0aW9uYWxfYncYAiABKA4yGi50ZWNoX3Byb2ZpbGUuQWRkaXRpb25hbEJXUgxhZGRpdGlvbmFsQncSGgoIcHJpb3JpdHkYAyABKAdSCHByaW9yaXR5EhYKBndlaWdodBgEIAEoB1IGd2VpZ2h0EkEKDHNjaGVkX3BvbGljeRgFIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UgtzY2hlZFBvbGljeSK4AQoSVHJhZmZpY1NoYXBpbmdJbmZvEhAKA2NpchgBIAEoB1IDY2lyEhAKA2NicxgCIAEoB1IDY2JzEhAKA3BpchgDIAEoB1IDcGlyEhAKA3BicxgEIAEoB1IDcGJzEhAKA2dpchgFIAEoB1IDZ2lyEkgKCmFkZF9id19pbmQYBiABKA4yKi50ZWNoX3Byb2ZpbGUuSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvblIIYWRkQndJbmQinQIKEFRyYWZmaWNTY2hlZHVsZXISNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEhkKCGFsbG9jX2lkGAIgASgHUgdhbGxvY0lkEjsKCXNjaGVkdWxlchgDIAEoCzIdLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJDb25maWdSCXNjaGVkdWxlchJSChR0cmFmZmljX3NoYXBpbmdfaW5mbxgEIAEoCzIgLnRlY2hfcHJvZmlsZS5UcmFmZmljU2hhcGluZ0luZm9SEnRyYWZmaWNTaGFwaW5nSW5mbxImCg90ZWNoX3Byb2ZpbGVfaWQYBSABKAdSDXRlY2hQcm9maWxlSWQiugEKEVRyYWZmaWNTY2hlZHVsZXJzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhUKBnVuaV9pZBgEIAEoB1IFdW5pSWQSFwoHcG9ydF9ubxgFIAEoB1IGcG9ydE5vEkUKDnRyYWZmaWNfc2NoZWRzGAMgAygLMh4udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJSDXRyYWZmaWNTY2hlZHMiNgoVVGFpbERyb3BEaXNjYXJkQ29uZmlnEh0KCnF1ZXVlX3NpemUYASABKAdSCXF1ZXVlU2l6ZSKFAQoQUmVkRGlzY2FyZENvbmZpZxIjCg1taW5fdGhyZXNob2xkGAEgASgHUgxtaW5UaHJlc2hvbGQSIwoNbWF4X3RocmVzaG9sZBgCIAEoB1IMbWF4VGhyZXNob2xkEicKD21heF9wcm9iYWJpbGl0eRgDIAEoB1IObWF4UHJvYmFiaWxpdHkiswEKEVdSZWREaXNjYXJkQ29uZmlnEjQKBWdyZWVuGAEgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSBWdyZWVuEjYKBnllbGxvdxgCIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUgZ5ZWxsb3cSMAoDcmVkGAMgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSA3JlZCLoAgoNRGlzY2FyZENvbmZpZxJCCg5kaXNjYXJkX3BvbGljeRgBIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5El4KGHRhaWxfZHJvcF9kaXNjYXJkX2NvbmZpZxgCIAEoCzIjLnRlY2hfcHJvZmlsZS5UYWlsRHJvcERpc2NhcmRDb25maWdIAFIVdGFpbERyb3BEaXNjYXJkQ29uZmlnEk4KEnJlZF9kaXNjYXJkX2NvbmZpZxgDIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnSABSEHJlZERpc2NhcmRDb25maWcSUQoTd3JlZF9kaXNjYXJkX2NvbmZpZxgEIAEoCzIfLnRlY2hfcHJvZmlsZS5XUmVkRGlzY2FyZENvbmZpZ0gAUhF3cmVkRGlzY2FyZENvbmZpZ0IQCg5kaXNjYXJkX2NvbmZpZyKlAwoMVHJhZmZpY1F1ZXVlEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhIdCgpnZW1wb3J0X2lkGAIgASgHUglnZW1wb3J0SWQSGQoIcGJpdF9tYXAYAyABKAlSB3BiaXRNYXASJQoOYWVzX2VuY3J5cHRpb24YBCABKAhSDWFlc0VuY3J5cHRpb24SQQoMc2NoZWRfcG9saWN5GAUgASgOMh4udGVjaF9wcm9maWxlLlNjaGVkdWxpbmdQb2xpY3lSC3NjaGVkUG9saWN5EhoKCHByaW9yaXR5GAYgASgHUghwcmlvcml0eRIWCgZ3ZWlnaHQYByABKAdSBndlaWdodBJCCg5kaXNjYXJkX3BvbGljeRgIIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5EkIKDmRpc2NhcmRfY29uZmlnGAkgASgLMhsudGVjaF9wcm9maWxlLkRpc2NhcmRDb25maWdSDWRpc2NhcmRDb25maWci2gEKDVRyYWZmaWNRdWV1ZXMSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFQoGdW5pX2lkGAQgASgHUgV1bmlJZBIXCgdwb3J0X25vGAUgASgHUgZwb3J0Tm8SQQoOdHJhZmZpY19xdWV1ZXMYBiADKAsyGi50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlUg10cmFmZmljUXVldWVzEiYKD3RlY2hfcHJvZmlsZV9pZBgHIAEoB1INdGVjaFByb2ZpbGVJZCo8CglEaXJlY3Rpb24SDAoIVVBTVFJFQU0QABIOCgpET1dOU1RSRUFNEAESEQoNQklESVJFQ1RJT05BTBACKjsKEFNjaGVkdWxpbmdQb2xpY3kSBwoDV1JSEAASEgoOU3RyaWN0UHJpb3JpdHkQARIKCgZIeWJyaWQQAipuCgxBZGRpdGlvbmFsQlcSFQoRQWRkaXRpb25hbEJXX05vbmUQABITCg9BZGRpdGlvbmFsQldfTkEQARIbChdBZGRpdGlvbmFsQldfQmVzdEVmZm9ydBACEhUKEUFkZGl0aW9uYWxCV19BdXRvEAMqPwoNRGlzY2FyZFBvbGljeRIMCghUYWlsRHJvcBAAEg0KCVdUYWlsRHJvcBABEgcKA1JlZBACEggKBFdSZWQQAyqcAQocSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbhIlCiFJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uX05vbmUQABIoCiRJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uX0Fzc3VyZWQQARIrCidJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uX0Jlc3RFZmZvcnQQAkJYCiBvcmcub3BlbmNvcmQudm9sdGhhLnRlY2hfcHJvZmlsZVo0Z2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y0L2dvL3RlY2hfcHJvZmlsZUrYKAoHEgUOAIMBAQrRBAoBDBIDDgASMsYEIENvcHlyaWdodCAoYykgMjAxOCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQu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AgMEEgWAAQR/FwoNCgUECQIDBRIEgAEECwoNCgUECQIDARIEgAEMEwoNCgUECQIDAxIEgAEWFwoMCgQECQIEEgSBAQQtCg0KBQQJAgQEEgSBAQQMCg0KBQQJAgQGEgSBAQ0ZCg0KBQQJAgQBEgSBARooCg0KBQQJAgQDEgSBASssCgwKBAQJAgUSBIIBBCAKDwoFBAkCBQQSBoIBBIEBLQoNCgUECQIFBRIEggEECwoNCgUECQIFARIEggEMGwoNCgUECQIFAxIEggEeH2IGcHJvdG8zCrD6Agobdm9sdGhhX3Byb3Rvcy9vcGVub2x0LnByb3RvEgdvcGVub2x0Ghxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGiB2b2x0aGFfcHJvdG9zL3RlY2hfcHJvZmlsZS5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aHnZvbHRoYV9wcm90b3MvZXh0X2NvbmZpZy5wcm90byLMBAoKSW5kaWNhdGlvbhIxCgdvbHRfaW5kGAEgASgLMhYub3Blbm9sdC5PbHRJbmRpY2F0aW9uSABSBm9sdEluZBI0CghpbnRmX2luZBgCIAEoCzIXLm9wZW5vbHQuSW50ZkluZGljYXRpb25IAFIHaW50ZkluZBJBCg1pbnRmX29wZXJfaW5kGAMgASgLMhsub3Blbm9sdC5JbnRmT3BlckluZGljYXRpb25IAFILaW50Zk9wZXJJbmQSPgoMb251X2Rpc2NfaW5kGAQgASgLMhoub3Blbm9sdC5PbnVEaXNjSW5kaWNhdGlvbkgAUgpvbnVEaXNjSW5kEjEKB29udV9pbmQYBSABKAsyFi5vcGVub2x0Lk9udUluZGljYXRpb25IAFIGb251SW5kEjQKCG9tY2lfaW5kGAYgASgLMhcub3Blbm9sdC5PbWNpSW5kaWNhdGlvbkgAUgdvbWNpSW5kEjQKB3BrdF9pbmQYByABKAsyGS5vcGVub2x0LlBhY2tldEluZGljYXRpb25IAFIGcGt0SW5kEjgKCnBvcnRfc3RhdHMYCCABKAsyFy5vcGVub2x0LlBvcnRTdGF0aXN0aWNzSABSCXBvcnRTdGF0cxI4CgpmbG93X3N0YXRzGAkgASgLMhcub3Blbm9sdC5GbG93U3RhdGlzdGljc0gAUglmbG93U3RhdHMSNwoJYWxhcm1faW5kGAogASgLMhgub3Blbm9sdC5BbGFybUluZGljYXRpb25IAFIIYWxhcm1JbmRCBgoEZGF0YSLrDQoPQWxhcm1JbmRpY2F0aW9uEjEKB2xvc19pbmQYASABKAsyFi5vcGVub2x0Lkxvc0luZGljYXRpb25IAFIGbG9zSW5kEkQKDmR5aW5nX2dhc3BfaW5kGAIgASgLMhwub3Blbm9sdC5EeWluZ0dhc3BJbmRpY2F0aW9uSABSDGR5aW5nR2FzcEluZBJBCg1vbnVfYWxhcm1faW5kGAMgASgLMhsub3Blbm9sdC5PbnVBbGFybUluZGljYXRpb25IAFILb251QWxhcm1JbmQSVwoUb251X3N0YXJ0dXBfZmFpbF9pbmQYBCABKAsyJC5vcGVub2x0Lk9udVN0YXJ0dXBGYWlsdXJlSW5kaWNhdGlvbkgAUhFvbnVTdGFydHVwRmFpbEluZBJaChZvbnVfc2lnbmFsX2RlZ3JhZGVfaW5kGAUgASgLMiMub3Blbm9sdC5PbnVTaWduYWxEZWdyYWRlSW5kaWNhdGlvbkgAUhNvbnVTaWduYWxEZWdyYWRlSW5kElsKF29udV9kcmlmdF9vZl93aW5kb3dfaW5kGAYgASgLMiMub3Blbm9sdC5PbnVEcmlmdE9mV2luZG93SW5kaWNhdGlvbkgAUhNvbnVEcmlmdE9mV2luZG93SW5kElQKEW9udV9sb3NzX29tY2lfaW5kGAcgASgLMicub3Blbm9sdC5PbnVMb3NzT2ZPbWNpQ2hhbm5lbEluZGljYXRpb25IAFIOb251TG9zc09tY2lJbmQSVwoUb251X3NpZ25hbHNfZmFpbF9pbmQYCCABKAsyJC5vcGVub2x0Lk9udVNpZ25hbHNGYWlsdXJlSW5kaWNhdGlvbkgAUhFvbnVTaWduYWxzRmFpbEluZBJPCgxvbnVfdGl3aV9pbmQYCSABKAsyKy5vcGVub2x0Lk9udVRyYW5zbWlzc2lvbkludGVyZmVyZW5jZVdhcm5pbmdIAFIKb251VGl3aUluZBJgChdvbnVfYWN0aXZhdGlvbl9mYWlsX2luZBgKIAEoCzInLm9wZW5vbHQuT251QWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uSABSFG9udUFjdGl2YXRpb25GYWlsSW5kEmAKGG9udV9wcm9jZXNzaW5nX2Vycm9yX2luZBgLIAEoCzIlLm9wZW5vbHQuT251UHJvY2Vzc2luZ0Vycm9ySW5kaWNhdGlvbkgAUhVvbnVQcm9jZXNzaW5nRXJyb3JJbmQSZQoZb251X2xvc3Nfb2Zfc3luY19mYWlsX2luZBgMIAEoCzIqLm9wZW5vbHQuT251TG9zc09mS2V5U3luY0ZhaWx1cmVJbmRpY2F0aW9uSABSFG9udUxvc3NPZlN5bmNGYWlsSW5kElUKFW9udV9pdHVfcG9uX3N0YXRzX2luZBgNIAEoCzIhLm9wZW5vbHQuT251SXR1UG9uU3RhdHNJbmRpY2F0aW9uSABSEW9udUl0dVBvblN0YXRzSW5kEmwKHG9udV9kZWFjdGl2YXRpb25fZmFpbHVyZV9pbmQYDiABKAsyKS5vcGVub2x0Lk9udURlYWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uSABSGW9udURlYWN0aXZhdGlvbkZhaWx1cmVJbmQSVwoVb251X3JlbW90ZV9kZWZlY3RfaW5kGA8gASgLMiIub3Blbm9sdC5PbnVSZW1vdGVEZWZlY3RJbmRpY2F0aW9uSABSEm9udVJlbW90ZURlZmVjdEluZBJzChxvbnVfbG9zc19nZW1fZGVsaW5lYXRpb25faW5kGBAgASgLMjEub3Blbm9sdC5PbnVMb3NzT2ZHRU1DaGFubmVsRGVsaW5lYXRpb25JbmRpY2F0aW9uSABSGG9udUxvc3NHZW1EZWxpbmVhdGlvbkluZBJ2CiBvbnVfcGh5c2ljYWxfZXF1aXBtZW50X2Vycm9yX2luZBgRIAEoCzIsLm9wZW5vbHQuT251UGh5c2ljYWxFcXVpcG1lbnRFcnJvckluZGljYXRpb25IAFIcb251UGh5c2ljYWxFcXVpcG1lbnRFcnJvckluZBJbChNvbnVfbG9zc19vZl9hY2tfaW5kGBIgASgLMisub3Blbm9sdC5PbnVMb3NzT2ZBY2tub3dsZWRnZW1lbnRJbmRpY2F0aW9uSABSD29udUxvc3NPZkFja0luZBJvChtvbnVfZGlmZl9yZWFjaF9leGNlZWRlZF9pbmQYEyABKAsyLy5vcGVub2x0Lk9udURpZmZlcmVudGlhbFJlYWNoRXhjZWVkZWRJbmRpY2F0aW9uSABSF29udURpZmZSZWFjaEV4Y2VlZGVkSW5kQgYKBGRhdGEiLgoNT2x0SW5kaWNhdGlvbhIdCgpvcGVyX3N0YXRlGAEgASgJUglvcGVyU3RhdGUiSAoOSW50ZkluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEh0KCm9wZXJfc3RhdGUYAiABKAlSCW9wZXJTdGF0ZSJoChFPbnVEaXNjSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSOgoNc2VyaWFsX251bWJlchgCIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXIikwQKDU9udUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHQoKb3Blcl9zdGF0ZRgDIAEoCVIJb3BlclN0YXRlEh8KC2FkbWluX3N0YXRlGAUgASgJUgphZG1pblN0YXRlEjoKDXNlcmlhbF9udW1iZXIYBCABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyEkwKC2ZhaWxfcmVhc29uGAYgASgOMisub3Blbm9sdC5PbnVJbmRpY2F0aW9uLkFjdGl2YXRpb25GYWlsUmVhc29uUgpmYWlsUmVhc29uIocCChRBY3RpdmF0aW9uRmFpbFJlYXNvbhIjCh9PTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9OT05FEAASJgoiT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fUkFOR0lORxABEjYKMk9OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX1BBU1NXT1JEX0FVVEhFTlRJQ0FUSU9OEAISIgoeT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fTE9TEAMSIQodT05VX0FDVElWQVRJT05fRkFJTF9PTlVfQUxBUk0QBBIjCh9PTlVfQUNUSVZBVElPTl9GQUlMX1NXSVRDSF9PVkVSEAUiYAoSSW50Zk9wZXJJbmRpY2F0aW9uEhIKBHR5cGUYASABKAlSBHR5cGUSFwoHaW50Zl9pZBgCIAEoB1IGaW50ZklkEh0KCm9wZXJfc3RhdGUYAyABKAlSCW9wZXJTdGF0ZSJSCg5PbWNpSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIQCgNwa3QYAyABKAxSA3BrdCLxAQoQUGFja2V0SW5kaWNhdGlvbhIbCglpbnRmX3R5cGUYBSABKAlSCGludGZUeXBlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYCCABKAdSBW9udUlkEhUKBnVuaV9pZBgJIAEoB1IFdW5pSWQSHQoKZ2VtcG9ydF9pZBgCIAEoB1IJZ2VtcG9ydElkEhcKB2Zsb3dfaWQYAyABKAdSBmZsb3dJZBIXCgdwb3J0X25vGAYgASgHUgZwb3J0Tm8SFgoGY29va2llGAcgASgGUgZjb29raWUSEAoDcGt0GAQgASgMUgNwa3QiJAoJSW50ZXJmYWNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZCI8CglIZWFydGJlYXQSLwoTaGVhcnRiZWF0X3NpZ25hdHVyZRgBIAEoB1ISaGVhcnRiZWF0U2lnbmF0dXJlIqwBCgNPbnUSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSOgoNc2VyaWFsX251bWJlchgDIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXISEAoDcGlyGAQgASgHUgNwaXISJwoPb21jY19lbmNyeXB0aW9uGAUgASgIUg5vbWNjRW5jcnlwdGlvbiKxAQoST251TG9naWNhbERpc3RhbmNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjkKGWxvZ2ljYWxfb251X2Rpc3RhbmNlX3plcm8YAyABKAdSFmxvZ2ljYWxPbnVEaXN0YW5jZVplcm8SMAoUbG9naWNhbF9vbnVfZGlzdGFuY2UYBCABKAdSEmxvZ2ljYWxPbnVEaXN0YW5jZSJLCgdPbWNpTXNnEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhAKA3BrdBgDIAEoDFIDcGt0IoUBCglPbnVQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFwoHcG9ydF9ubxgEIAEoB1IGcG9ydE5vEh0KCmdlbXBvcnRfaWQYBSABKAdSCWdlbXBvcnRJZBIQCgNwa3QYAyABKAxSA3BrdCI5CgxVcGxpbmtQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhAKA3BrdBgCIAEoDFIDcGt0IsUJCgpEZXZpY2VJbmZvEhYKBnZlbmRvchgBIAEoCVIGdmVuZG9yEhQKBW1vZGVsGAIgASgJUgVtb2RlbBIpChBoYXJkd2FyZV92ZXJzaW9uGAMgASgJUg9oYXJkd2FyZVZlcnNpb24SKQoQZmlybXdhcmVfdmVyc2lvbhgEIAEoCVIPZmlybXdhcmVWZXJzaW9uEhsKCWRldmljZV9pZBgQIAEoCVIIZGV2aWNlSWQSMAoUZGV2aWNlX3NlcmlhbF9udW1iZXIYESABKAlSEmRldmljZVNlcmlhbE51bWJlchIxChRwcmV2aW91c2x5X2Nvbm5lY3RlZBgTIAEoCFITcHJldmlvdXNseUNvbm5lY3RlZBIbCglwb25fcG9ydHMYDCABKAdSCHBvblBvcnRzEh4KCnRlY2hub2xvZ3kYBSABKAlSCnRlY2hub2xvZ3kSIAoMb251X2lkX3N0YXJ0GAYgASgHUgpvbnVJZFN0YXJ0EhwKCm9udV9pZF9lbmQYByABKAdSCG9udUlkRW5kEiQKDmFsbG9jX2lkX3N0YXJ0GAggASgHUgxhbGxvY0lkU3RhcnQSIAoMYWxsb2NfaWRfZW5kGAkgASgHUgphbGxvY0lkRW5kEigKEGdlbXBvcnRfaWRfc3RhcnQYCiABKAdSDmdlbXBvcnRJZFN0YXJ0EiQKDmdlbXBvcnRfaWRfZW5kGAsgASgHUgxnZW1wb3J0SWRFbmQSIgoNZmxvd19pZF9zdGFydBgNIAEoB1ILZmxvd0lkU3RhcnQSHgoLZmxvd19pZF9lbmQYDiABKAdSCWZsb3dJZEVuZBJACgZyYW5nZXMYDyADKAsyKC5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXNSBnJhbmdlcxqVBAoURGV2aWNlUmVzb3VyY2VSYW5nZXMSGQoIaW50Zl9pZHMYASADKAdSB2ludGZJZHMSHgoKdGVjaG5vbG9neRgCIAEoCVIKdGVjaG5vbG9neRJDCgVwb29scxgDIAMoCzItLm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlcy5Qb29sUgVwb29scxr8AgoEUG9vbBJKCgR0eXBlGAEgASgOMjYub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2wuUG9vbFR5cGVSBHR5cGUSUwoHc2hhcmluZxgCIAEoDjI5Lm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlcy5Qb29sLlNoYXJpbmdUeXBlUgdzaGFyaW5nEhQKBXN0YXJ0GAMgASgHUgVzdGFydBIQCgNlbmQYBCABKAdSA2VuZCJBCghQb29sVHlwZRIKCgZPTlVfSUQQABIMCghBTExPQ19JRBABEg4KCkdFTVBPUlRfSUQQAhILCgdGTE9XX0lEEAMiaAoLU2hhcmluZ1R5cGUSFgoSREVESUNBVEVEX1BFUl9JTlRGEAASHwobU0hBUkVEX0JZX0FMTF9JTlRGX0FMTF9URUNIEAESIAocU0hBUkVEX0JZX0FMTF9JTlRGX1NBTUVfVEVDSBACIoQDCgpDbGFzc2lmaWVyEhUKBm9fdHBpZBgBIAEoB1IFb1RwaWQSEwoFb192aWQYAiABKAdSBG9WaWQSFQoGaV90cGlkGAMgASgHUgVpVHBpZBITCgVpX3ZpZBgEIAEoB1IEaVZpZBIXCgdvX3BiaXRzGAUgASgHUgZvUGJpdHMSFwoHaV9wYml0cxgGIAEoB1IGaVBiaXRzEhkKCGV0aF90eXBlGAcgASgHUgdldGhUeXBlEhcKB2RzdF9tYWMYCCABKAxSBmRzdE1hYxIXCgdzcmNfbWFjGAkgASgMUgZzcmNNYWMSGQoIaXBfcHJvdG8YCiABKAdSB2lwUHJvdG8SFQoGZHN0X2lwGAsgASgHUgVkc3RJcBIVCgZzcmNfaXAYDCABKAdSBXNyY0lwEhkKCHNyY19wb3J0GA0gASgHUgdzcmNQb3J0EhkKCGRzdF9wb3J0GA4gASgHUgdkc3RQb3J0EiAKDHBrdF90YWdfdHlwZRgPIAEoCVIKcGt0VGFnVHlwZSKFAwoJQWN0aW9uQ21kEiIKDWFkZF9vdXRlcl90YWcYASABKAhSC2FkZE91dGVyVGFnEigKEHJlbW92ZV9vdXRlcl90YWcYAiABKAhSDnJlbW92ZU91dGVyVGFnEiAKDHRyYXBfdG9faG9zdBgDIAEoCFIKdHJhcFRvSG9zdBIsChJyZW1hcmtfb3V0ZXJfcGJpdHMYBCABKAhSEHJlbWFya091dGVyUGJpdHMSLAoScmVtYXJrX2lubmVyX3BiaXRzGAUgASgIUhByZW1hcmtJbm5lclBiaXRzEiIKDWFkZF9pbm5lcl90YWcYBiABKAhSC2FkZElubmVyVGFnEigKEHJlbW92ZV9pbm5lcl90YWcYByABKAhSDnJlbW92ZUlubmVyVGFnEi4KE3RyYW5zbGF0ZV9pbm5lcl90YWcYCCABKAhSEXRyYW5zbGF0ZUlubmVyVGFnEi4KE3RyYW5zbGF0ZV9vdXRlcl90YWcYCSABKAhSEXRyYW5zbGF0ZU91dGVyVGFnIrgBCgZBY3Rpb24SJAoDY21kGAEgASgLMhIub3Blbm9sdC5BY3Rpb25DbWRSA2NtZBITCgVvX3ZpZBgCIAEoB1IEb1ZpZBIXCgdvX3BiaXRzGAMgASgHUgZvUGJpdHMSFQoGb190cGlkGAQgASgHUgVvVHBpZBITCgVpX3ZpZBgFIAEoB1IEaVZpZBIXCgdpX3BiaXRzGAYgASgHUgZpUGJpdHMSFQoGaV90cGlkGAcgASgHUgVpVHBpZCLHBgoERmxvdxIkCg5hY2Nlc3NfaW50Zl9pZBgBIAEoD1IMYWNjZXNzSW50ZklkEhUKBm9udV9pZBgCIAEoD1IFb251SWQSFQoGdW5pX2lkGAsgASgPUgV1bmlJZBIXCgdmbG93X2lkGAMgASgGUgZmbG93SWQSKgoRc3ltbWV0cmljX2Zsb3dfaWQYEiABKAZSD3N5bW1ldHJpY0Zsb3dJZBIbCglmbG93X3R5cGUYBCABKAlSCGZsb3dUeXBlEhkKCGFsbG9jX2lkGAogASgPUgdhbGxvY0lkEiYKD25ldHdvcmtfaW50Zl9pZBgFIAEoD1INbmV0d29ya0ludGZJZBIdCgpnZW1wb3J0X2lkGAYgASgPUglnZW1wb3J0SWQSMwoKY2xhc3NpZmllchgHIAEoCzITLm9wZW5vbHQuQ2xhc3NpZmllclIKY2xhc3NpZmllchInCgZhY3Rpb24YCCABKAsyDy5vcGVub2x0LkFjdGlvblIGYWN0aW9uEhoKCHByaW9yaXR5GAkgASgPUghwcmlvcml0eRIWCgZjb29raWUYDCABKAZSBmNvb2tpZRIXCgdwb3J0X25vGA0gASgHUgZwb3J0Tm8SGQoIZ3JvdXBfaWQYDiABKAdSB2dyb3VwSWQSJgoPdGVjaF9wcm9maWxlX2lkGA8gASgHUg10ZWNoUHJvZmlsZUlkEiUKDnJlcGxpY2F0ZV9mbG93GBAgASgIUg1yZXBsaWNhdGVGbG93EkgKD3BiaXRfdG9fZ2VtcG9ydBgRIAMoCzIgLm9wZW5vbHQuRmxvdy5QYml0VG9HZW1wb3J0RW50cnlSDXBiaXRUb0dlbXBvcnQSRQoOZ2VtcG9ydF90b19hZXMYEyADKAsyHy5vcGVub2x0LkZsb3cuR2VtcG9ydFRvQWVzRW50cnlSDGdlbXBvcnRUb0FlcxpAChJQYml0VG9HZW1wb3J0RW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAdSBXZhbHVlOgI4ARo/ChFHZW1wb3J0VG9BZXNFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBIlQKDFNlcmlhbE51bWJlchIbCgl2ZW5kb3JfaWQYASABKAxSCHZlbmRvcklkEicKD3ZlbmRvcl9zcGVjaWZpYxgCIAEoDFIOdmVuZG9yU3BlY2lmaWMi/gsKDlBvcnRTdGF0aXN0aWNzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIZCghyeF9ieXRlcxgCIAEoBlIHcnhCeXRlcxIdCgpyeF9wYWNrZXRzGAMgASgGUglyeFBhY2tldHMSKAoQcnhfdWNhc3RfcGFja2V0cxgEIAEoBlIOcnhVY2FzdFBhY2tldHMSKAoQcnhfbWNhc3RfcGFja2V0cxgFIAEoBlIOcnhNY2FzdFBhY2tldHMSKAoQcnhfYmNhc3RfcGFja2V0cxgGIAEoBlIOcnhCY2FzdFBhY2tldHMSKAoQcnhfZXJyb3JfcGFja2V0cxgHIAEoBlIOcnhFcnJvclBhY2tldHMSGwoJcnhfZnJhbWVzGBEgASgGUghyeEZyYW1lcxIgCgxyeF9mcmFtZXNfNjQYEiABKAZSCnJ4RnJhbWVzNjQSJwoQcnhfZnJhbWVzXzY1XzEyNxgTIAEoBlINcnhGcmFtZXM2NTEyNxIpChFyeF9mcmFtZXNfMTI4XzI1NRgUIAEoBlIOcnhGcmFtZXMxMjgyNTUSKQoRcnhfZnJhbWVzXzI1Nl81MTEYFSABKAZSDnJ4RnJhbWVzMjU2NTExEisKEnJ4X2ZyYW1lc181MTJfMTAyMxgWIAEoBlIPcnhGcmFtZXM1MTIxMDIzEi0KE3J4X2ZyYW1lc18xMDI0XzE1MTgYFyABKAZSEHJ4RnJhbWVzMTAyNDE1MTgSLQoTcnhfZnJhbWVzXzE1MTlfMjA0NxgYIAEoBlIQcnhGcmFtZXMxNTE5MjA0NxItChNyeF9mcmFtZXNfMjA0OF80MDk1GBkgASgGUhByeEZyYW1lczIwNDg0MDk1Ei0KE3J4X2ZyYW1lc180MDk2XzkyMTYYGiABKAZSEHJ4RnJhbWVzNDA5NjkyMTYSLwoUcnhfZnJhbWVzXzkyMTdfMTYzODMYGyABKAZSEXJ4RnJhbWVzOTIxNzE2MzgzEiIKDXJ4X2NyY19lcnJvcnMYDiABKAZSC3J4Q3JjRXJyb3JzEhkKCHR4X2J5dGVzGAggASgGUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYCSABKAZSCXR4UGFja2V0cxIoChB0eF91Y2FzdF9wYWNrZXRzGAogASgGUg50eFVjYXN0UGFja2V0cxIoChB0eF9tY2FzdF9wYWNrZXRzGAsgASgGUg50eE1jYXN0UGFja2V0cxIoChB0eF9iY2FzdF9wYWNrZXRzGAwgASgGUg50eEJjYXN0UGFja2V0cxIoChB0eF9lcnJvcl9wYWNrZXRzGA0gASgGUg50eEVycm9yUGFja2V0cxIbCgl0eF9mcmFtZXMYHCABKAZSCHR4RnJhbWVzEiAKDHR4X2ZyYW1lc182NBgdIAEoBlIKdHhGcmFtZXM2NBInChB0eF9mcmFtZXNfNjVfMTI3GB4gASgGUg10eEZyYW1lczY1MTI3EikKEXR4X2ZyYW1lc18xMjhfMjU1GB8gASgGUg50eEZyYW1lczEyODI1NRIpChF0eF9mcmFtZXNfMjU2XzUxMRggIAEoBlIOdHhGcmFtZXMyNTY1MTESKwoSdHhfZnJhbWVzXzUxMl8xMDIzGCEgASgGUg90eEZyYW1lczUxMjEwMjMSLQoTdHhfZnJhbWVzXzEwMjRfMTUxOBgiIAEoBlIQdHhGcmFtZXMxMDI0MTUxOBItChN0eF9mcmFtZXNfMTUxOV8yMDQ3GCMgASgGUhB0eEZyYW1lczE1MTkyMDQ3Ei0KE3R4X2ZyYW1lc18yMDQ4XzQwOTUYJCABKAZSEHR4RnJhbWVzMjA0ODQwOTUSLQoTdHhfZnJhbWVzXzQwOTZfOTIxNhglIAEoBlIQdHhGcmFtZXM0MDk2OTIxNhIvChR0eF9mcmFtZXNfOTIxN18xNjM4MxgmIAEoBlIRdHhGcmFtZXM5MjE3MTYzODMSHQoKYmlwX2Vycm9ycxgPIAEoBlIJYmlwRXJyb3JzEhwKCXRpbWVzdGFtcBgQIAEoB1IJdGltZXN0YW1wIuYHCg1PbnVTdGF0aXN0aWNzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEiUKDnBvc2l0aXZlX2RyaWZ0GAMgASgGUg1wb3NpdGl2ZURyaWZ0EiUKDm5lZ2F0aXZlX2RyaWZ0GAQgASgGUg1uZWdhdGl2ZURyaWZ0EjgKGGRlbGltaXRlcl9taXNzX2RldGVjdGlvbhgFIAEoBlIWZGVsaW1pdGVyTWlzc0RldGVjdGlvbhIdCgpiaXBfZXJyb3JzGAYgASgGUgliaXBFcnJvcnMSGwoJYmlwX3VuaXRzGAcgASgGUghiaXBVbml0cxIyChVmZWNfY29ycmVjdGVkX3N5bWJvbHMYCCABKAZSE2ZlY0NvcnJlY3RlZFN5bWJvbHMSNgoXZmVjX2NvZGV3b3Jkc19jb3JyZWN0ZWQYCSABKAZSFWZlY0NvZGV3b3Jkc0NvcnJlY3RlZBI+ChtmZWNfY29kZXdvcmRzX3VuY29ycmVjdGFibGUYCiABKAZSGWZlY0NvZGV3b3Jkc1VuY29ycmVjdGFibGUSIwoNZmVjX2NvZGV3b3JkcxgLIAEoBlIMZmVjQ29kZXdvcmRzEi4KE2ZlY19jb3JyZWN0ZWRfdW5pdHMYDCABKAZSEWZlY0NvcnJlY3RlZFVuaXRzEiYKD3hnZW1fa2V5X2Vycm9ycxgNIAEoBlINeGdlbUtleUVycm9ycxIbCgl4Z2VtX2xvc3MYDiABKAZSCHhnZW1Mb3NzEiYKD3J4X3Bsb2Ftc19lcnJvchgPIAEoBlINcnhQbG9hbXNFcnJvchIrChJyeF9wbG9hbXNfbm9uX2lkbGUYECABKAZSD3J4UGxvYW1zTm9uSWRsZRIXCgdyeF9vbWNpGBEgASgGUgZyeE9tY2kSOAoZcnhfb21jaV9wYWNrZXRzX2NyY19lcnJvchgSIAEoBlIVcnhPbWNpUGFja2V0c0NyY0Vycm9yEhkKCHJ4X2J5dGVzGBMgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYFCABKAZSCXJ4UGFja2V0cxIZCgh0eF9ieXRlcxgVIAEoBlIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGBYgASgGUgl0eFBhY2tldHMSIQoMYmVyX3JlcG9ydGVkGBcgASgGUgtiZXJSZXBvcnRlZBIfCgtsY2RnX2Vycm9ycxgYIAEoBlIKbGNkZ0Vycm9ycxIdCgpyZGlfZXJyb3JzGBkgASgGUglyZGlFcnJvcnMSHAoJdGltZXN0YW1wGBogASgHUgl0aW1lc3RhbXAi3QEKEUdlbVBvcnRTdGF0aXN0aWNzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIdCgpnZW1wb3J0X2lkGAIgASgHUglnZW1wb3J0SWQSHQoKcnhfcGFja2V0cxgDIAEoBlIJcnhQYWNrZXRzEhkKCHJ4X2J5dGVzGAQgASgGUgdyeEJ5dGVzEh0KCnR4X3BhY2tldHMYBSABKAZSCXR4UGFja2V0cxIZCgh0eF9ieXRlcxgGIAEoBlIHdHhCeXRlcxIcCgl0aW1lc3RhbXAYGiABKAdSCXRpbWVzdGFtcCK7AQoORmxvd1N0YXRpc3RpY3MSFwoHZmxvd19pZBgBIAEoB1IGZmxvd0lkEhkKCHJ4X2J5dGVzGAIgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYAyABKAZSCXJ4UGFja2V0cxIZCgh0eF9ieXRlcxgIIAEoBlIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAkgASgGUgl0eFBhY2tldHMSHAoJdGltZXN0YW1wGBAgASgHUgl0aW1lc3RhbXAiQAoNTG9zSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFgoGc3RhdHVzGAIgASgJUgZzdGF0dXMiXQoTRHlpbmdHYXNwSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKjAgoST251QWxhcm1JbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCmxvc19zdGF0dXMYAyABKAlSCWxvc1N0YXR1cxIdCgpsb2Jfc3RhdHVzGAQgASgJUglsb2JTdGF0dXMSKAoQbG9wY19taXNzX3N0YXR1cxgFIAEoCVIObG9wY01pc3NTdGF0dXMSMQoVbG9wY19taWNfZXJyb3Jfc3RhdHVzGAYgASgJUhJsb3BjTWljRXJyb3JTdGF0dXMSHwoLbG9maV9zdGF0dXMYByABKAlSCmxvZmlTdGF0dXMSIQoMbG9hbWlfc3RhdHVzGAggASgJUgtsb2FtaVN0YXR1cyJlChtPbnVTdGFydHVwRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMimQEKGk9udVNpZ25hbERlZ3JhZGVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEjMKFmludmVyc2VfYml0X2Vycm9yX3JhdGUYBCABKAdSE2ludmVyc2VCaXRFcnJvclJhdGUikwEKGk9udURyaWZ0T2ZXaW5kb3dJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhQKBWRyaWZ0GAQgASgHUgVkcmlmdBIXCgduZXdfZXFkGAUgASgHUgZuZXdFcWQiaAoeT251TG9zc09mT21jaUNoYW5uZWxJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIpoBChtPbnVTaWduYWxzRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgEIAEoB1ITaW52ZXJzZUJpdEVycm9yUmF0ZSKCAQoiT251VHJhbnNtaXNzaW9uSW50ZXJmZXJlbmNlV2FybmluZxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIUCgVkcmlmdBgEIAEoB1IFZHJpZnQicQoeT251QWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh8KC2ZhaWxfcmVhc29uGAMgASgHUgpmYWlsUmVhc29uImsKIU9udUxvc3NPZktleVN5bmNGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyJUChJSZGlFcnJvckluZGljYXRpb24SJgoPcmRpX2Vycm9yX2NvdW50GAEgASgGUg1yZGlFcnJvckNvdW50EhYKBnN0YXR1cxgCIAEoCVIGc3RhdHVzIpYBChhPbnVJdHVQb25TdGF0c0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSQQoNcmRpX2Vycm9yX2luZBgDIAEoCzIbLm9wZW5vbHQuUmRpRXJyb3JJbmRpY2F0aW9uSABSC3JkaUVycm9ySW5kQgcKBXN0YXRzIk4KHE9udVByb2Nlc3NpbmdFcnJvckluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQiagogT251RGVhY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMiagoZT251UmVtb3RlRGVmZWN0SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpyZGlfZXJyb3JzGAMgASgGUglyZGlFcnJvcnMioQEKKE9udUxvc3NPZkdFTUNoYW5uZWxEZWxpbmVhdGlvbkluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSLQoSZGVsaW5lYXRpb25fZXJyb3JzGAQgASgHUhFkZWxpbmVhdGlvbkVycm9ycyJtCiNPbnVQaHlzaWNhbEVxdWlwbWVudEVycm9ySW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyJsCiJPbnVMb3NzT2ZBY2tub3dsZWRnZW1lbnRJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIowBCiZPbnVEaWZmZXJlbnRpYWxSZWFjaEV4Y2VlZGVkSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIaCghkaXN0YW5jZRgEIAEoB1IIZGlzdGFuY2Ui9gEKC0dyb3VwTWVtYmVyEiEKDGludGVyZmFjZV9pZBgBIAEoDVILaW50ZXJmYWNlSWQSSQoOaW50ZXJmYWNlX3R5cGUYAiABKA4yIi5vcGVub2x0Lkdyb3VwTWVtYmVyLkludGVyZmFjZVR5cGVSDWludGVyZmFjZVR5cGUSHgoLZ2VtX3BvcnRfaWQYAyABKA1SCWdlbVBvcnRJZBIaCghwcmlvcml0eRgEIAEoDVIIcHJpb3JpdHkiPQoNSW50ZXJmYWNlVHlwZRIHCgNQT04QABIQCgxFUE9OXzFHX1BBVEgQARIRCg1FUE9OXzEwR19QQVRIEAIihgIKBUdyb3VwEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkEjwKB2NvbW1hbmQYAiABKA4yIi5vcGVub2x0Lkdyb3VwLkdyb3VwTWVtYmVyc0NvbW1hbmRSB2NvbW1hbmQSLgoHbWVtYmVycxgDIAMoCzIULm9wZW5vbHQuR3JvdXBNZW1iZXJSB21lbWJlcnMSJwoGYWN0aW9uGAQgASgLMg8ub3Blbm9sdC5BY3Rpb25SBmFjdGlvbiJLChNHcm91cE1lbWJlcnNDb21tYW5kEg8KC0FERF9NRU1CRVJTEAASEgoOUkVNT1ZFX01FTUJFUlMQARIPCgtTRVRfTUVNQkVSUxACIloKClZhbHVlUGFyYW0SHgoDb251GAEgASgLMgwub3Blbm9sdC5PbnVSA29udRIsCgV2YWx1ZRgCIAEoDjIWLmNvbW1vbi5WYWx1ZVR5cGUuVHlwZVIFdmFsdWUiwwIKDlBvblJ4UG93ZXJEYXRhEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzElIKC2ZhaWxfcmVhc29uGAQgASgOMjEub3Blbm9sdC5Qb25SeFBvd2VyRGF0YS5Sc3NpTWVhc3VyZW1lbnRGYWlsUmVhc29uUgpmYWlsUmVhc29uEikKEXJ4X3Bvd2VyX21lYW5fZGJtGAUgASgBUg5yeFBvd2VyTWVhbkRibSJqChlSc3NpTWVhc3VyZW1lbnRGYWlsUmVhc29uEhQKEEZBSUxfUkVBU09OX05PTkUQABIcChhGQUlMX1JFQVNPTl9OT19ERUxJTUlURVIQARIZChVGQUlMX1JFQVNPTl9OT19BQ0NFU1MQAiIHCgVFbXB0eTKcFAoHT3Blbm9sdBJECgpEaXNhYmxlT2x0Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiFoLT5JMCECILL3YxL0Rpc2FibGU6ASoSRgoLUmVlbmFibGVPbHQSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIXgtPkkwIRIgwvdjEvUmVlbmFibGU6ASoSRQoLQWN0aXZhdGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGILT5JMCEiINL3YxL0VuYWJsZU9udToBKhJICg1EZWFjdGl2YXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9EaXNhYmxlT251OgEqEkMKCURlbGV0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIYgtPkkwISIg0vdjEvRGVsZXRlT251OgEqEkkKCk9tY2lNc2dPdXQSEC5vcGVub2x0Lk9tY2lNc2caDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9PbWNpTXNnT3V0OgEqEk8KDE9udVBhY2tldE91dBISLm9wZW5vbHQuT251UGFja2V0Gg4ub3Blbm9sdC5FbXB0eSIbgtPkkwIVIhAvdjEvT251UGFja2V0T3V0OgEqElgKD1VwbGlua1BhY2tldE91dBIVLm9wZW5vbHQuVXBsaW5rUGFja2V0Gg4ub3Blbm9sdC5FbXB0eSIegtPkkwIYIhMvdjEvVXBsaW5rUGFja2V0T3V0OgEqEkAKB0Zsb3dBZGQSDS5vcGVub2x0LkZsb3caDi5vcGVub2x0LkVtcHR5IhaC0+STAhAiCy92MS9GbG93QWRkOgEqEkYKCkZsb3dSZW1vdmUSDS5vcGVub2x0LkZsb3caDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9GbG93UmVtb3ZlOgEqElMKDkhlYXJ0YmVhdENoZWNrEg4ub3Blbm9sdC5FbXB0eRoSLm9wZW5vbHQuSGVhcnRiZWF0Ih2C0+STAhciEi92MS9IZWFydGJlYXRDaGVjazoBKhJNCgtFbmFibGVQb25JZhISLm9wZW5vbHQuSW50ZXJmYWNlGg4ub3Blbm9sdC5FbXB0eSIagtPkkwIUIg8vdjEvRW5hYmxlUG9uSWY6ASoSTwoMRGlzYWJsZVBvbklmEhIub3Blbm9sdC5JbnRlcmZhY2UaDi5vcGVub2x0LkVtcHR5IhuC0+STAhUiEC92MS9EaXNhYmxlUG9uSWY6ASoSUgoNR2V0RGV2aWNlSW5mbxIOLm9wZW5vbHQuRW1wdHkaEy5vcGVub2x0LkRldmljZUluZm8iHILT5JMCFiIRL3YxL0dldERldmljZUluZm86ASoSPwoGUmVib290Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiFYLT5JMCDyIKL3YxL1JlYm9vdDoBKhJVChFDb2xsZWN0U3RhdGlzdGljcxIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IiCC0+STAhoiFS92MS9Db2xsZWN0U3RhdGlzdGljczoBKhJZChBHZXRPbnVTdGF0aXN0aWNzEgwub3Blbm9sdC5PbnUaFi5vcGVub2x0Lk9udVN0YXRpc3RpY3MiH4LT5JMCGSIUL3YxL0dldE9udVN0YXRpc3RpY3M6ASoSawoUR2V0R2VtUG9ydFN0YXRpc3RpY3MSEi5vcGVub2x0Lk9udVBhY2tldBoaLm9wZW5vbHQuR2VtUG9ydFN0YXRpc3RpY3MiI4LT5JMCHSIYL3YxL0dldEdlbVBvcnRTdGF0aXN0aWNzOgEqEnIKF0NyZWF0ZVRyYWZmaWNTY2hlZHVsZXJzEh8udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJzGg4ub3Blbm9sdC5FbXB0eSImgtPkkwIgIhsvdjEvQ3JlYXRlVHJhZmZpY1NjaGVkdWxlcnM6ASoScgoXUmVtb3ZlVHJhZmZpY1NjaGVkdWxlcnMSHy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NjaGVkdWxlcnMaDi5vcGVub2x0LkVtcHR5IiaC0+STAiAiGy92MS9SZW1vdmVUcmFmZmljU2NoZWR1bGVyczoBKhJmChNDcmVhdGVUcmFmZmljUXVldWVzEhsudGVjaF9wcm9maWxlLlRyYWZmaWNRdWV1ZXMaDi5vcGVub2x0LkVtcHR5IiKC0+STAhwiFy92MS9DcmVhdGVUcmFmZmljUXVldWVzOgEqEmYKE1JlbW92ZVRyYWZmaWNRdWV1ZXMSGy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlcxoOLm9wZW5vbHQuRW1wdHkiIoLT5JMCHCIXL3YxL1JlbW92ZVRyYWZmaWNRdWV1ZXM6ASoSOwoQRW5hYmxlSW5kaWNhdGlvbhIOLm9wZW5vbHQuRW1wdHkaEy5vcGVub2x0LkluZGljYXRpb24iADABEl0KFVBlcmZvcm1Hcm91cE9wZXJhdGlvbhIOLm9wZW5vbHQuR3JvdXAaDi5vcGVub2x0LkVtcHR5IiSC0+STAh4iGS92MS9QZXJmb3JtR3JvdXBPcGVyYXRpb246ASoSSQoLRGVsZXRlR3JvdXASDi5vcGVub2x0Lkdyb3VwGg4ub3Blbm9sdC5FbXB0eSIagtPkkwIUIg8vdjEvRGVsZXRlR3JvdXA6ASoSVAoLR2V0RXh0VmFsdWUSEy5vcGVub2x0LlZhbHVlUGFyYW0aFC5jb21tb24uUmV0dXJuVmFsdWVzIhqC0+STAhQiDy92MS9HZXRFeHRWYWx1ZToBKhJdChFPbnVJdHVQb25BbGFybVNldBIWLmNvbmZpZy5PbnVJdHVQb25BbGFybRoOLm9wZW5vbHQuRW1wdHkiIILT5JMCGiIVL3YxL09udUl0dVBvbkFsYXJtU2V0OgEqEnAKGUdldExvZ2ljYWxPbnVEaXN0YW5jZVplcm8SDC5vcGVub2x0Lk9udRobLm9wZW5vbHQuT251TG9naWNhbERpc3RhbmNlIiiC0+STAiIiHS92MS9HZXRMb2dpY2FsT251RGlzdGFuY2VaZXJvOgEqEmgKFUdldExvZ2ljYWxPbnVEaXN0YW5jZRIMLm9wZW5vbHQuT251Ghsub3Blbm9sdC5PbnVMb2dpY2FsRGlzdGFuY2UiJILT5JMCHiIZL3YxL0dldExvZ2ljYWxPbnVEaXN0YW5jZToBKhJUCg1HZXRQb25SeFBvd2VyEgwub3Blbm9sdC5PbnUaFy5vcGVub2x0LlBvblJ4UG93ZXJEYXRhIhyC0+STAhYiES92MS9HZXRQb25SeFBvd2VyOgEqQl0KG29yZy5vcGVuY29yZC52b2x0aGEub3Blbm9sdEINVm9sdGhhT3Blbk9MVFovZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y0L2dvL29wZW5vbHRK7vcBCgcSBQ4AgQYQCtEECgEMEgMOABIyxgQgQ29weXJpZ2h0IChjKSAyMDE4IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgg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BQQxAgQDEgT+BR8gCgoKAgQyEgSBBgAQCgsKAwQyARIEgQYIDVABUAJiBnByb3RvMwroFgoadm9sdGhhX3Byb3Rvcy9wb25zaW0ucHJvdG8SBnZvbHRoYRobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvGh92b2x0aGFfcHJvdG9zL29wZW5mbG93XzEzLnByb3RvIlUKE1BvblNpbU9udURldmljZUluZm8SGQoIdW5pX3BvcnQYASABKAVSB3VuaVBvcnQSIwoNc2VyaWFsX251bWJlchgCIAEoCVIMc2VyaWFsTnVtYmVyIl4KEFBvblNpbURldmljZUluZm8SGQoIbm5pX3BvcnQYASABKAVSB25uaVBvcnQSLwoEb251cxgCIAMoCzIbLnZvbHRoYS5Qb25TaW1PbnVEZXZpY2VJbmZvUgRvbnVzIlIKCUZsb3dUYWJsZRISCgRwb3J0GAEgASgFUgRwb3J0EjEKBWZsb3dzGAIgAygLMhsub3BlbmZsb3dfMTMub2ZwX2Zsb3dfc3RhdHNSBWZsb3dzIlIKC1BvblNpbUZyYW1lEg4KAmlkGAEgASgJUgJpZBIYCgdwYXlsb2FkGAIgASgMUgdwYXlsb2FkEhkKCG91dF9wb3J0GAMgASgFUgdvdXRQb3J0Ij8KE1BvblNpbVBhY2tldENvdW50ZXISEgoEbmFtZRgBIAEoCVIEbmFtZRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWUiZwoRUG9uU2ltUG9ydE1ldHJpY3MSGwoJcG9ydF9uYW1lGAEgASgJUghwb3J0TmFtZRI1CgdwYWNrZXRzGAIgAygLMhsudm9sdGhhLlBvblNpbVBhY2tldENvdW50ZXJSB3BhY2tldHMiXAoNUG9uU2ltTWV0cmljcxIWCgZkZXZpY2UYASABKAlSBmRldmljZRIzCgdtZXRyaWNzGAIgAygLMhkudm9sdGhhLlBvblNpbVBvcnRNZXRyaWNzUgdtZXRyaWNzIioKFFBvblNpbU1ldHJpY3NSZXF1ZXN0EhIKBHBvcnQYASABKAVSBHBvcnQyyAIKBlBvblNpbRI6CglTZW5kRnJhbWUSEy52b2x0aGEuUG9uU2ltRnJhbWUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiABJACg1SZWNlaXZlRnJhbWVzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhMudm9sdGhhLlBvblNpbUZyYW1lIgAwARJDCg1HZXREZXZpY2VJbmZvEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ghgudm9sdGhhLlBvblNpbURldmljZUluZm8iABI+Cg9VcGRhdGVGbG93VGFibGUSES52b2x0aGEuRmxvd1RhYmxlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgASOwoIR2V0U3RhdHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFS52b2x0aGEuUG9uU2ltTWV0cmljcyIAQkUKE29yZy5vcGVuY29yZC52b2x0aGFaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NC9nby92b2x0aGFK1g0KBhIEAABDAQoICgEMEgMAABIKCAoBCBIDAgBFCgkKAggLEgMCAEUKCAoBCBIDAwAsCgkKAggBEgMDACwKCAoBAhIDBQAPCgkKAgMAEgMHACUKCQoCAwESAwgAKQoKCgIEABIECwAOAQoKCgMEAAESAwsIGwoLCgQEAAIAEgMMBBcKDQoFBAACAAQSBAwECx0KDAoFBAACAAUSAwwECQoMCgUEAAIAARIDDAoSCgwKBQQAAgADEgMMFRYKCwoEBAACARIDDQQdCg0KBQQAAgEEEgQNBAwXCgwKBQQAAgEFEgMNBAoKDAoFBAACAQESAw0LGAoMCgUEAAIBAxIDDRscCgoKAgQBEgQQABMBCgoKAwQBARIDEAgYCgsKBAQBAgASAxEEFwoNCgUEAQIABBIEEQQQGgoMCgUEAQIABRIDEQQJCgwKBQQBAgABEgMRChIKDAoFBAECAAMSAxEVFgoLCgQEAQIBEgMSBCoKDAoFBAECAQQSAxIEDAoMCgUEAQIBBhIDEg0gCgwKBQQBAgEBEgMSISUKDAoFBAECAQMSAxIoKQoKCgIEAhIEFQAYAQoKCgMEAgESAxUIEQorCgQEAgIAEgMWBBMiHiBVc2VkIHRvIGFkZHJlc3MgcmlnaHQgZGV2aWNlCgoNCgUEAgIABBIEFgQVEwoMCgUEAgIABRIDFgQJCgwKBQQCAgABEgMWCg4KDAoFBAICAAMSAxYREgoLCgQEAgIBEgMXBDIKDAoFBAICAQQSAxcEDAoMCgUEAgIBBhIDFw0nCgwKBQQCAgEBEgMXKC0KDAoFBAICAQMSAxcwMQoKCgIEAxIEGgAeAQoKCgMEAwESAxoIEwoLCgQEAwIAEgMbBBIKDQoFBAMCAAQSBBsEGhUKDAoFBAMCAAUSAxsECgoMCgUEAwIAARIDGwsNCgwKBQQDAgADEgMbEBEKCwoEBAMCARIDHAQWCg0KBQQDAgEEEgQcBBsSCgwKBQQDAgEFEgMcBAkKDAoFBAMCAQESAxwKEQoMCgUEAwIBAxIDHBQVCgsKBAQDAgISAx0EFwoNCgUEAwICBBIEHQQcFgoMCgUEAwICBRIDHQQJCgwKBQQDAgIBEgMdChIKDAoFBAMCAgMSAx0VFgoKCgIEBBIEIAAjAQoKCgMEBAESAyAIGwoLCgQEBAIAEgMhBBQKDQoFBAQCAAQSBCEEIB0KDAoFBAQCAAUSAyEECgoMCgUEBAIAARIDIQsPCgwKBQQEAgADEgMhEhMKCwoEBAQCARIDIgQUCg0KBQQEAgEEEgQiBCEUCgwKBQQEAgEFEgMiBAkKDAoFBAQCAQESAyIKDwoMCgUEBAIBAxIDIhITCgoKAgQFEgQlACgBCgoKAwQFARIDJQgZCgsKBAQFAgASAyYEGQoNCgUEBQIABBIEJgQlGwoMCgUEBQIABRIDJgQKCgwKBQQFAgABEgMmCxQKDAoFBAUCAAMSAyYXGAoLCgQEBQIBEgMnBC0KDAoFBAUCAQQSAycEDAoMCgUEBQIBBhIDJw0gCgwKBQQFAgEBEgMnISgKDAoFBAUCAQMSAycrLAoKCgIEBhIEKgAtAQoKCgMEBgESAyoIFQoLCgQEBgIAEgMrBBYKDQoFBAYCAAQSBCsEKhcKDAoFBAYCAAUSAysECgoMCgUEBgIAARIDKwsRCgwKBQQGAgADEgMrFBUKCwoEBAYCARIDLAQrCgwKBQQGAgEEEgMsBAwKDAoFBAYCAQYSAywNHgoMCgUEBgIBARIDLB8mCgwKBQQGAgEDEgMsKSoKCgoCBAcSBC8AMQEKCgoDBAcBEgMvCBwKCwoEBAcCABIDMAQTCg0KBQQHAgAEEgQwBC8eCgwKBQQHAgAFEgMwBAkKDAoFBAcCAAESAzAKDgoMCgUEBwIAAxIDMBESCgoKAgYAEgQzAEMBCgoKAwYAARIDMwgOCgwKBAYAAgASBDQENSoKDAoFBgACAAESAzQIEQoMCgUGAAIAAhIDNBIdCgwKBQYAAgADEgM1ESYKDAoEBgACARIENwQ4JwoMCgUGAAIBARIDNwgVCgwKBQYAAgECEgM3FisKDAoFBgACAQYSAzgRFwoMCgUGAAIBAxIDOBgjCgwKBAYAAgISBDoEOyQKDAoFBgACAgESAzoIFQoMCgUGAAICAhIDOhYrCgwKBQYAAgIDEgM7ECAKDAoEBgACAxIEPQQ+KQoMCgUGAAIDARIDPQgXCgwKBQYAAgMCEgM9GCEKDAoFBgACAwMSAz4QJQoMCgQGAAIEEgRABEEhCgwKBQYAAgQBEgNACBAKDAoFBgACBAISA0ARJgoMCgUGAAIEAxIDQRAdYgZwcm90bzM=