CuEsChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJvChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWiVnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvYW55ogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoErCgcSBR4AmgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwA8CgkKAggLEgMjADwKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQApCgkKAggIEgMlACkKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEK5BAKAgQAEgV5AJoBARrWECBgQW55YCBjb250YWlucyBhbiBhcmJpdHJhcnkgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSBhbG9uZyB3aXRoIGEKIFVSTCB0aGF0IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBtZXNzYWdlLgoKIFByb3RvYnVmIGxpYnJhcnkgcHJvdmlkZXMgc3VwcG9ydCB0byBwYWNrL3VucGFjayBBbnkgdmFsdWVzIGluIHRoZSBmb3JtCiBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBvciBhZGRpdGlvbmFsIGdlbmVyYXRlZCBtZXRob2RzIG9mIHRoZSBBbnkgdHlwZS4KCiBFeGFtcGxlIDE6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gQysrLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnk7CiAgICAgYW55LlBhY2tGcm9tKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5VbnBhY2tUbygmZm9vKSkgewogICAgICAgLi4uCiAgICAgfQoKIEV4YW1wbGUgMjogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBKYXZhLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnkgPSBBbnkucGFjayhmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuaXMoRm9vLmNsYXNzKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uY2xhc3MpOwogICAgIH0KCiAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiAgRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IHB0eXBlcy5NYXJzaGFsQW55KGZvbykKICAgICAgLi4uCiAgICAgIGZvbyA6PSAmcGIuRm9ve30KICAgICAgaWYgZXJyIDo9IHB0eXBlcy5Vbm1hcnNoYWxBbnkoYW55LCBmb28pOyBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQoKIFRoZSBwYWNrIG1ldGhvZHMgcHJvdmlkZWQgYnkgcHJvdG9idWYgbGlicmFyeSB3aWxsIGJ5IGRlZmF1bHQgdXNlCiAndHlwZS5nb29nbGVhcGlzLmNvbS9mdWxsLnR5cGUubmFtZScgYXMgdGhlIHR5cGUgVVJMIGFuZCB0aGUgdW5wYWNrCiBtZXRob2RzIG9ubHkgdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lIGFmdGVyIHRoZSBsYXN0ICcvJwogaW4gdGhlIHR5cGUgVVJMLCBmb3IgZXhhbXBsZSAiZm9vLmJhci5jb20veC95LnoiIHdpbGwgeWllbGQgdHlwZQogbmFtZSAieS56Ii4KCgogSlNPTgogPT09PQogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gYEFueWAgdmFsdWUgdXNlcyB0aGUgcmVndWxhcgogcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbgogYWRkaXRpb25hbCBmaWVsZCBgQHR5cGVgIHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZToKCiAgICAgcGFja2FnZSBnb29nbGUucHJvZmlsZTsKICAgICBtZXNzYWdlIFBlcnNvbiB7CiAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgbGFzdF9uYW1lID0gMjsKICAgICB9CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvbiIsCiAgICAgICAiZmlyc3ROYW1lIjogPHN0cmluZz4sCiAgICAgICAibGFzdE5hbWUiOiA8c3RyaW5nPgogICAgIH0KCiBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OCiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkCiBgdmFsdWVgIHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgYEB0eXBlYAogZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOgoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb24iLAogICAgICAgInZhbHVlIjogIjEuMjEycyIKICAgICB9CgoKCgoDBAABEgN5CAsK1woKBAQAAgASBJYBAhYayAogQSBVUkwvcmVzb3VyY2UgbmFtZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQKIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLiBUaGlzIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QKIG9uZSAiLyIgY2hhcmFjdGVyLiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50CiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHR5cGUgKGFzIGluCiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0KIChlLmcuLCBsZWFkaW5nICIuIiBpcyBub3QgYWNjZXB0ZWQpLgoKIEluIHByYWN0aWNlLCB0ZWFtcyB1c3VhbGx5IHByZWNvbXBpbGUgaW50byB0aGUgYmluYXJ5IGFsbCB0eXBlcyB0aGF0IHRoZXkKIGV4cGVjdCBpdCB0byB1c2UgaW4gdGhlIGNvbnRleHQgb2YgQW55LiBIb3dldmVyLCBmb3IgVVJMcyB3aGljaCB1c2UgdGhlCiBzY2hlbWUgYGh0dHBgLCBgaHR0cHNgLCBvciBubyBzY2hlbWUsIG9uZSBjYW4gb3B0aW9uYWxseSBzZXQgdXAgYSB0eXBlCiBzZXJ2ZXIgdGhhdCBtYXBzIHR5cGUgVVJMcyB0byBtZXNzYWdlIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CgogKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4KICogQW4gSFRUUCBHRVQgb24gdGhlIFVSTCBtdXN0IHlpZWxkIGEgW2dvb2dsZS5wcm90b2J1Zi5UeXBlXVtdCiAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuCiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUKICAgVVJMLCBvciBoYXZlIHRoZW0gcHJlY29tcGlsZWQgaW50byBhIGJpbmFyeSB0byBhdm9pZCBhbnkKICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZAogICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZQogICBicmVha2luZyBjaGFuZ2VzLikKCiBOb3RlOiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIG9mZmljaWFsCiBwcm90b2J1ZiByZWxlYXNlLCBhbmQgaXQgaXMgbm90IHVzZWQgZm9yIHR5cGUgVVJMcyBiZWdpbm5pbmcgd2l0aAogdHlwZS5nb29nbGVhcGlzLmNvbS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoOCgUEAAIABBIFlgECeQ0KDQoFBAACAAUSBJYBAggKDQoFBAACAAESBJYBCREKDQoFBAACAAMSBJYBFBUKVwoEBAACARIEmQECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoPCgUEAAIBBBIGmQEClgEWCg0KBQQAAgEFEgSZAQIHCg0KBQQAAgEBEgSZAQgNCg0KBQQAAgEDEgSZARARYgZwcm90bzMKxBEKG3ZvbHRoYV9wcm90b3MvYWRhcHRlci5wcm90bxIHYWRhcHRlchoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90byJSCg1BZGFwdGVyQ29uZmlnEkEKEWFkZGl0aW9uYWxfY29uZmlnGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIQYWRkaXRpb25hbENvbmZpZyKjAwoHQWRhcHRlchIOCgJpZBgBIAEoCVICaWQSFgoGdmVuZG9yGAIgASgJUgZ2ZW5kb3ISGAoHdmVyc2lvbhgDIAEoCVIHdmVyc2lvbhIuCgZjb25maWcYECABKAsyFi5hZGFwdGVyLkFkYXB0ZXJDb25maWdSBmNvbmZpZxJLChZhZGRpdGlvbmFsX2Rlc2NyaXB0aW9uGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIVYWRkaXRpb25hbERlc2NyaXB0aW9uEiwKEmxvZ2ljYWxfZGV2aWNlX2lkcxgEIAMoCVIQbG9naWNhbERldmljZUlkcxItChJsYXN0X2NvbW11bmljYXRpb24YBSABKANSEWxhc3RDb21tdW5pY2F0aW9uEiYKDmN1cnJlbnRSZXBsaWNhGAYgASgFUg5jdXJyZW50UmVwbGljYRIkCg10b3RhbFJlcGxpY2FzGAcgASgFUg10b3RhbFJlcGxpY2FzEhoKCGVuZHBvaW50GAggASgJUghlbmRwb2ludBISCgR0eXBlGAkgASgJ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dWYvcHR5cGVzL2VtcHR5+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSv4QCgYSBB4AMxAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAD4KCQoCCAsSAyMAPgoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlACsKCQoCCAgSAyUAKwoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQoICgEIEgMoAB8KCQoCCB8SAygAHwr7AgoCBAASAzMAEBrvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEVtcHR5YCBpcyBlbXB0eSBKU09OIG9iamVjdCBge31gLgoKCgoDBAABEgMzCA1iBnByb3RvMwqNIAoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8SBmNvbW1vbiIUCgJJRBIOCgJpZBgBIAEoCVICaWQiJwoDSURzEiAKBWl0ZW1zGAEgAygLMgouY29tbW9uLklEUgVpdGVtcyJ6CgpDb25uZWN0aW9uEhoKCGVuZHBvaW50GAEgASgJUghlbmRwb2ludBIgCgtjb250ZXh0SW5mbxgCIAEoCVILY29udGV4dEluZm8SLgoTa2VlcF9hbGl2ZV9pbnRlcnZhbBgDIAEoA1IRa2VlcEFsaXZlSW50ZXJ2YWwiaAoKQWRtaW5TdGF0ZSJaCgVUeXBlcxILCgdVTktOT1dOEAASEgoOUFJFUFJPVklTSU9ORUQQARILCgdFTkFCTEVEEAISDAoIRElTQUJMRUQQAxIVChFET1dOTE9BRElOR19JTUFHRRAEIp8BCgpPcGVyU3RhdHVzIpABCgVUeXBlcxILCgdVTktOT1dOEAASDgoKRElTQ09WRVJFRBABEg4KCkFDVElWQVRJTkcQAhILCgdURVNUSU5HEAMSCgoGQUNUSVZFEAQSCgoGRkFJTEVEEAUSDwoLUkVDT05DSUxJTkcQBhIW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cwRwIQoMCgUEBgIBBRIDcwQKCgwKBQQGAgEBEgNzCxoKDAoFBAYCAQMSA3MdHmIGcHJvdG8zCsZ5ChVnb29nbGUvYXBpL2h0dHAucHJvdG8SCmdvb2dsZS5hcGkieQoESHR0cBIqCgVydWxlcxgBIAMoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGVSBXJ1bGVzEkUKH2Z1bGx5X2RlY29kZV9yZXNlcnZlZF9leHBhbnNpb24YAiABKAhSHGZ1bGx5RGVjb2RlUmVzZXJ2ZWRFeHBhbnNpb24i2gIKCEh0dHBSdWxlEhoKCHNlbGVjdG9yGAEgASgJUghzZWxlY3RvchISCgNnZXQYAiABKAlIAFIDZ2V0EhIKA3B1dBgDIAEoCUgAUgNwdXQSFAoEcG9zdBgEIAEoCUgAUgRwb3N0EhgKBmRlbGV0ZRgFIAEoCUgAUgZkZWxldGUSFgoFcGF0Y2gYBiABKAlIAFIFcGF0Y2gSNwoGY3VzdG9tGAggASgLMh0uZ29vZ2xlLmFwaS5DdXN0b21IdHRwUGF0dGVybkgAUgZjdXN0b20SEgoEYm9keRgHIAEoCVIEYm9keRIjCg1yZXNwb25zZV9ib2R5GAwgASgJUgxyZXNwb25zZUJvZHkSRQoTYWRkaXRpb25hbF9iaW5kaW5ncxgLIAMoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGVSEmFkZGl0aW9uYWxCaW5kaW5nc0IJCgdwYXR0ZXJuIjsKEUN1c3RvbUh0dHBQYXR0ZXJuEhIKBGtpbmQYASABKAlSBGtpbmQSEgoEcGF0aBgCIAEoCVIEcGF0aEJqCg5jb20uZ29vZ2xlLmFwaUIJSHR0cFByb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25z+AEBogIER0FQSUqXdAoHEgUPAPsCAQq+BAoBDBIDDwASMrMEIENvcHlyaWdodCAyMDE4IEdvb2dsZSBMTEMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoKCAoBAhIDEQATCggKAQgSAxMAHwoJCgIIHxIDEwAfCggKAQgSAxQAWAoJCgIICxIDFABYCggKAQgSAxUAIgoJCgIIChIDFQAiCggKAQgSAxYAKgoJCgIICBIDFgAqCggKAQgSAxcAJwoJCgIIARIDFwAnCggKAQgSAxgAIgoJCgIIJBIDGAAiCs0BCgIEABIEHQAqARrAASBEZWZpbmVzIHRoZSBIVFRQIGNvbmZpZ3VyYXRpb24gZm9yIGFuIEFQSSBzZXJ2aWNlLiBJdCBjb250YWlucyBhIGxpc3Qgb2YKIFtIdHRwUnVsZV1bZ29vZ2xlLmFwaS5IdHRwUnVsZV0sIGVhY2ggc3BlY2lmeWluZyB0aGUgbWFwcGluZyBvZiBhbiBSUEMgbWV0aG9kCiB0byBvbmUgb3IgbW9yZSBIVFRQIFJFU1QgQVBJIG1ldGhvZHMuCgoKCgMEAAESAx0IDAqiAQoEBAACABIDIQIeGpQBIEEgbGlzdCBvZiBIVFRQIGNvbmZpZ3VyYXRpb24gcnVsZXMgdGhhdCBhcHBseSB0byBpbmRpdmlkdWFsIEFQSSBtZXRob2RzLgoKICoqTk9URToqKiBBbGwgc2VydmljZSBjb25maWd1cmF0aW9uIHJ1bGVzIGZvbGxvdyAibGFzdCBvbmUgd2lucyIgb3JkZXIuCgoMCgUEAAIABBIDIQIKCgwKBQQAAgAGEgMhCxMKDAoFBAACAAESAyEUGQoMCgUEAAIAAxIDIRwdCpMCCgQEAAIBEgMpAisahQIgV2hlbiBzZXQgdG8gdHJ1ZSwgVVJMIHBhdGggcGFybWV0ZXJzIHdpbGwgYmUgZnVsbHkgVVJJLWRlY29kZWQgZXhjZXB0IGluCiBjYXNlcyBvZiBzaW5nbGUgc2VnbWVudCBtYXRjaGVzIGluIHJlc2VydmVkIGV4cGFuc2lvbiwgd2hlcmUgIiUyRiIgd2lsbCBiZQogbGVmdCBlbmNvZGVkLgoKIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIG5vdCBkZWNvZGUgUkZDIDY1NzAgcmVzZXJ2ZWQgY2hhcmFjdGVycyBpbiBtdWx0aQogc2VnbWVudCBtYXRjaGVzLgoKDQoFBAACAQQSBCkCIR4KDAoFBAACAQUSAykCBgoMCgUEAAIBARIDKQcmCgwKBQQAAgEDEgMpKSoKu1MKAgQBEga8AgDyAgEarFMgIyBnUlBDIFRyYW5zY29kaW5nCgogZ1JQQyBUcmFuc2NvZGluZyBpcyBhIGZlYXR1cmUgZm9yIG1hcHBpbmcgYmV0d2VlbiBhIGdSUEMgbWV0aG9kIGFuZCBvbmUgb3IKIG1vcmUgSFRUUCBSRVNUIGVuZHBvaW50cy4gSXQgYWxsb3dzIGRldmVsb3BlcnMgdG8gYnVpbGQgYSBzaW5nbGUgQVBJIHNlcnZpY2UKIHRoYXQgc3VwcG9ydHMgYm90aCBnUlBDIEFQSXMgYW5kIFJFU1QgQVBJcy4gTWFueSBzeXN0ZW1zLCBpbmNsdWRpbmcgW0dvb2dsZQogQVBJc10oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZWFwaXMvZ29vZ2xlYXBpcyksCiBbQ2xvdWQgRW5kcG9pbnRzXShodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vZW5kcG9pbnRzKSwgW2dSUEMKIEdhdGV3YXldKGh0dHBzOi8vZ2l0aHViLmNvbS9ncnBjLWVjb3N5c3RlbS9ncnBjLWdhdGV3YXkpLAogYW5kIFtFbnZveV0oaHR0cHM6Ly9naXRodWIuY29tL2Vudm95cHJveHkvZW52b3kpIHByb3h5IHN1cHBvcnQgdGhpcyBmZWF0dXJlCiBhbmQgdXNlIGl0IGZvciBsYXJnZSBzY2FsZSBwcm9kdWN0aW9uIHNlcnZpY2VzLgoKIGBIdHRwUnVsZWAgZGVmaW5lcyB0aGUgc2NoZW1hIG9mIHRoZSBnUlBDL1JFU1QgbWFwcGluZy4gVGhlIG1hcHBpbmcgc3BlY2lmaWVzCiBob3cgZGlmZmVyZW50IHBvcnRpb25zIG9mIHRoZSBnUlBDIHJlcXVlc3QgbWVzc2FnZSBhcmUgbWFwcGVkIHRvIHRoZSBVUkwKIHBhdGgsIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLCBhbmQgSFRUUCByZXF1ZXN0IGJvZHkuIEl0IGFsc28gY29udHJvbHMgaG93IHRoZQogZ1JQQyByZXNwb25zZSBtZXNzYWdlIGlzIG1hcHBlZCB0byB0aGUgSFRUUCByZXNwb25zZSBib2R5LiBgSHR0cFJ1bGVgIGlzCiB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGFuIGBnb29nbGUuYXBpLmh0dHBgIGFubm90YXRpb24gb24gdGhlIGdSUEMgbWV0aG9kLgoKIEVhY2ggbWFwcGluZyBzcGVjaWZpZXMgYSBVUkwgcGF0aCB0ZW1wbGF0ZSBhbmQgYW4gSFRUUCBtZXRob2QuIFRoZSBwYXRoCiB0ZW1wbGF0ZSBtYXkgcmVmZXIgdG8gb25lIG9yIG1vcmUgZmllbGRzIGluIHRoZSBnUlBDIHJlcXVlc3QgbWVzc2FnZSwgYXMgbG9uZwogYXMgZWFjaCBmaWVsZCBpcyBhIG5vbi1yZXBlYXRlZCBmaWVsZCB3aXRoIGEgcHJpbWl0aXZlIChub24tbWVzc2FnZSkgdHlwZS4KIFRoZSBwYXRoIHRlbXBsYXRlIGNvbnRyb2xzIGhvdyBmaWVsZHMgb2YgdGhlIHJlcXVlc3QgbWVzc2FnZSBhcmUgbWFwcGVkIHRvCiB0aGUgVVJMIHBhdGguCgogRXhhbXBsZToKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIEdldE1lc3NhZ2UoR2V0TWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgICAgZ2V0OiAiL3YxL3tuYW1lPW1lc3NhZ2VzLyp9IgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIHN0cmluZyBuYW1lID0gMTsgLy8gTWFwcGVkIHRvIFVSTCBwYXRoLgogICAgIH0KICAgICBtZXNzYWdlIE1lc3NhZ2UgewogICAgICAgc3RyaW5nIHRleHQgPSAxOyAvLyBUaGUgcmVzb3VyY2UgY29udGVudC4KICAgICB9CgogVGhpcyBlbmFibGVzIGFuIEhUVFAgUkVTVCB0byBnUlBDIG1hcHBpbmcgYXMgYmVsb3c6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgR0VUIC92MS9tZXNzYWdlcy8xMjM0NTZgICB8IGBHZXRNZXNzYWdlKG5hbWU6ICJtZXNzYWdlcy8xMjM0NTYiKWAKCiBBbnkgZmllbGRzIGluIHRoZSByZXF1ZXN0IG1lc3NhZ2Ugd2hpY2ggYXJlIG5vdCBib3VuZCBieSB0aGUgcGF0aCB0ZW1wbGF0ZQogYXV0b21hdGljYWxseSBiZWNvbWUgSFRUUCBxdWVyeSBwYXJhbWV0ZXJzIGlmIHRoZXJlIGlzIG5vIEhUVFAgcmVxdWVzdCBib2R5LgogRm9yIGV4YW1wbGU6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBHZXRNZXNzYWdlKEdldE1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICAgIGdldDoiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBHZXRNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBtZXNzYWdlIFN1Yk1lc3NhZ2UgewogICAgICAgICBzdHJpbmcgc3ViZmllbGQgPSAxOwogICAgICAgfQogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOyAvLyBNYXBwZWQgdG8gVVJMIHBhdGguCiAgICAgICBpbnQ2NCByZXZpc2lvbiA9IDI7ICAgIC8vIE1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVyIGByZXZpc2lvbmAuCiAgICAgICBTdWJNZXNzYWdlIHN1YiA9IDM7ICAgIC8vIE1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVyIGBzdWIuc3ViZmllbGRgLgogICAgIH0KCiBUaGlzIGVuYWJsZXMgYSBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmcgYXMgYmVsb3c6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgR0VUIC92MS9tZXNzYWdlcy8xMjM0NTY/cmV2aXNpb249MiZzdWIuc3ViZmllbGQ9Zm9vYCB8CiBgR2V0TWVzc2FnZShtZXNzYWdlX2lkOiAiMTIzNDU2IiByZXZpc2lvbjogMiBzdWI6IFN1Yk1lc3NhZ2Uoc3ViZmllbGQ6CiAiZm9vIikpYAoKIE5vdGUgdGhhdCBmaWVsZHMgd2hpY2ggYXJlIG1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVycyBtdXN0IGhhdmUgYQogcHJpbWl0aXZlIHR5cGUgb3IgYSByZXBlYXRlZCBwcmltaXRpdmUgdHlwZSBvciBhIG5vbi1yZXBlYXRlZCBtZXNzYWdlIHR5cGUuCiBJbiB0aGUgY2FzZSBvZiBhIHJlcGVhdGVkIHR5cGUsIHRoZSBwYXJhbWV0ZXIgY2FuIGJlIHJlcGVhdGVkIGluIHRoZSBVUkwKIGFzIGAuLi4/cGFyYW09QSZwYXJhbT1CYC4gSW4gdGhlIGNhc2Ugb2YgYSBtZXNzYWdlIHR5cGUsIGVhY2ggZmllbGQgb2YgdGhlCiBtZXNzYWdlIGlzIG1hcHBlZCB0byBhIHNlcGFyYXRlIHBhcmFtZXRlciwgc3VjaCBhcwogYC4uLj9mb28uYT1BJmZvby5iPUImZm9vLmM9Q2AuCgogRm9yIEhUVFAgbWV0aG9kcyB0aGF0IGFsbG93IGEgcmVxdWVzdCBib2R5LCB0aGUgYGJvZHlgIGZpZWxkCiBzcGVjaWZpZXMgdGhlIG1hcHBpbmcuIENvbnNpZGVyIGEgUkVTVCB1cGRhdGUgbWV0aG9kIG9uIHRoZQogbWVzc2FnZSByZXNvdXJjZSBjb2xsZWN0aW9uOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgVXBkYXRlTWVzc2FnZShVcGRhdGVNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgcGF0Y2g6ICIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIGJvZHk6ICJtZXNzYWdlIgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIFVwZGF0ZU1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsgLy8gbWFwcGVkIHRvIHRoZSBVUkwKICAgICAgIE1lc3NhZ2UgbWVzc2FnZSA9IDI7ICAgLy8gbWFwcGVkIHRvIHRoZSBib2R5CiAgICAgfQoKIFRoZSBmb2xsb3dpbmcgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nIGlzIGVuYWJsZWQsIHdoZXJlIHRoZQogcmVwcmVzZW50YXRpb24gb2YgdGhlIEpTT04gaW4gdGhlIHJlcXVlc3QgYm9keSBpcyBkZXRlcm1pbmVkIGJ5CiBwcm90b3MgSlNPTiBlbmNvZGluZzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBQQVRDSCAvdjEvbWVzc2FnZXMvMTIzNDU2IHsgInRleHQiOiAiSGkhIiB9YCB8IGBVcGRhdGVNZXNzYWdlKG1lc3NhZ2VfaWQ6CiAiMTIzNDU2IiBtZXNzYWdlIHsgdGV4dDogIkhpISIgfSlgCgogVGhlIHNwZWNpYWwgbmFtZSBgKmAgY2FuIGJlIHVzZWQgaW4gdGhlIGJvZHkgbWFwcGluZyB0byBkZWZpbmUgdGhhdAogZXZlcnkgZmllbGQgbm90IGJvdW5kIGJ5IHRoZSBwYXRoIHRlbXBsYXRlIHNob3VsZCBiZSBtYXBwZWQgdG8gdGhlCiByZXF1ZXN0IGJvZHkuICBUaGlzIGVuYWJsZXMgdGhlIGZvbGxvd2luZyBhbHRlcm5hdGl2ZSBkZWZpbml0aW9uIG9mCiB0aGUgdXBkYXRlIG1ldGhvZDoKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIFVwZGF0ZU1lc3NhZ2UoTWVzc2FnZSkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgcGF0Y2g6ICIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIGJvZHk6ICIqIgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIE1lc3NhZ2UgewogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOwogICAgICAgc3RyaW5nIHRleHQgPSAyOwogICAgIH0KCgogVGhlIGZvbGxvd2luZyBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmcgaXMgZW5hYmxlZDoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBQQVRDSCAvdjEvbWVzc2FnZXMvMTIzNDU2IHsgInRleHQiOiAiSGkhIiB9YCB8IGBVcGRhdGVNZXNzYWdlKG1lc3NhZ2VfaWQ6CiAiMTIzNDU2IiB0ZXh0OiAiSGkhIilgCgogTm90ZSB0aGF0IHdoZW4gdXNpbmcgYCpgIGluIHRoZSBib2R5IG1hcHBpbmcsIGl0IGlzIG5vdCBwb3NzaWJsZSB0bwogaGF2ZSBIVFRQIHBhcmFtZXRlcnMsIGFzIGFsbCBmaWVsZHMgbm90IGJvdW5kIGJ5IHRoZSBwYXRoIGVuZCBpbgogdGhlIGJvZHkuIFRoaXMgbWFrZXMgdGhpcyBvcHRpb24gbW9yZSByYXJlbHkgdXNlZCBpbiBwcmFjdGljZSB3aGVuCiBkZWZpbmluZyBSRVNUIEFQSXMuIFRoZSBjb21tb24gdXNhZ2Ugb2YgYCpgIGlzIGluIGN1c3RvbSBtZXRob2RzCiB3aGljaCBkb24ndCB1c2UgdGhlIFVSTCBhdCBhbGwgZm9yIHRyYW5zZmVycmluZyBkYXRhLgoKIEl0IGlzIHBvc3NpYmxlIHRvIGRlZmluZSBtdWx0aXBsZSBIVFRQIG1ldGhvZHMgZm9yIG9uZSBSUEMgYnkgdXNpbmcKIHRoZSBgYWRkaXRpb25hbF9iaW5kaW5nc2Agb3B0aW9uLiBFeGFtcGxlOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgR2V0TWVzc2FnZShHZXRNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgZ2V0OiAiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICBhZGRpdGlvbmFsX2JpbmRpbmdzIHsKICAgICAgICAgICAgIGdldDogIi92MS91c2Vycy97dXNlcl9pZH0vbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIH0KICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBHZXRNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7CiAgICAgICBzdHJpbmcgdXNlcl9pZCA9IDI7CiAgICAgfQoKIFRoaXMgZW5hYmxlcyB0aGUgZm9sbG93aW5nIHR3byBhbHRlcm5hdGl2ZSBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmdzOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYEdFVCAvdjEvbWVzc2FnZXMvMTIzNDU2YCB8IGBHZXRNZXNzYWdlKG1lc3NhZ2VfaWQ6ICIxMjM0NTYiKWAKIGBHRVQgL3YxL3VzZXJzL21lL21lc3NhZ2VzLzEyMzQ1NmAgfCBgR2V0TWVzc2FnZSh1c2VyX2lkOiAibWUiIG1lc3NhZ2VfaWQ6CiAiMTIzNDU2IilgCgogIyMgUnVsZXMgZm9yIEhUVFAgbWFwcGluZwoKIDEuIExlYWYgcmVxdWVzdCBmaWVsZHMgKHJlY3Vyc2l2ZSBleHBhbnNpb24gbmVzdGVkIG1lc3NhZ2VzIGluIHRoZSByZXF1ZXN0CiAgICBtZXNzYWdlKSBhcmUgY2xhc3NpZmllZCBpbnRvIHRocmVlIGNhdGVnb3JpZXM6CiAgICAtIEZpZWxkcyByZWZlcnJlZCBieSB0aGUgcGF0aCB0ZW1wbGF0ZS4gVGhleSBhcmUgcGFzc2VkIHZpYSB0aGUgVVJMIHBhdGguCiAgICAtIEZpZWxkcyByZWZlcnJlZCBieSB0aGUgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0uIFRoZXkKICAgIGFyZSBwYXNzZWQgdmlhIHRoZSBIVFRQCiAgICAgIHJlcXVlc3QgYm9keS4KICAgIC0gQWxsIG90aGVyIGZpZWxkcyBhcmUgcGFzc2VkIHZpYSB0aGUgVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGFuZCB0aGUKICAgICAgcGFyYW1ldGVyIG5hbWUgaXMgdGhlIGZpZWxkIHBhdGggaW4gdGhlIHJlcXVlc3QgbWVzc2FnZS4gQSByZXBlYXRlZAogICAgICBmaWVsZCBjYW4gYmUgcmVwcmVzZW50ZWQgYXMgbXVsdGlwbGUgcXVlcnkgcGFyYW1ldGVycyB1bmRlciB0aGUgc2FtZQogICAgICBuYW1lLgogIDIuIElmIFtIdHRwUnVsZS5ib2R5XVtnb29nbGUuYXBpLkh0dHBSdWxlLmJvZHldIGlzICIqIiwgdGhlcmUgaXMgbm8gVVJMCiAgcXVlcnkgcGFyYW1ldGVyLCBhbGwgZmllbGRzCiAgICAgYXJlIHBhc3NlZCB2aWEgVVJMIHBhdGggYW5kIEhUVFAgcmVxdWVzdCBib2R5LgogIDMuIElmIFtIdHRwUnVsZS5ib2R5XVtnb29nbGUuYXBpLkh0dHBSdWxlLmJvZHldIGlzIG9taXR0ZWQsIHRoZXJlIGlzIG5vIEhUVFAKICByZXF1ZXN0IGJvZHksIGFsbAogICAgIGZpZWxkcyBhcmUgcGFzc2VkIHZpYSBVUkwgcGF0aCBhbmQgVVJMIHF1ZXJ5IHBhcmFtZXRlcnMuCgogIyMjIFBhdGggdGVtcGxhdGUgc3ludGF4CgogICAgIFRlbXBsYXRlID0gIi8iIFNlZ21lbnRzIFsgVmVyYiBdIDsKICAgICBTZWdtZW50cyA9IFNlZ21lbnQgeyAiLyIgU2VnbWVudCB9IDsKICAgICBTZWdtZW50ICA9ICIqIiB8ICIqKiIgfCBMSVRFUkFMIHwgVmFyaWFibGUgOwogICAgIFZhcmlhYmxlID0gInsiIEZpZWxkUGF0aCBbICI9IiBTZWdtZW50cyBdICJ9IiA7CiAgICAgRmllbGRQYXRoID0gSURFTlQgeyAiLiIgSURFTlQgfSA7CiAgICAgVmVyYiAgICAgPSAiOiIgTElURVJBTCA7CgogVGhlIHN5bnRheCBgKmAgbWF0Y2hlcyBhIHNpbmdsZSBVUkwgcGF0aCBzZWdtZW50LiBUaGUgc3ludGF4IGAqKmAgbWF0Y2hlcwogemVybyBvciBtb3JlIFVSTCBwYXRoIHNlZ21lbnRzLCB3aGljaCBtdXN0IGJlIHRoZSBsYXN0IHBhcnQgb2YgdGhlIFVSTCBwYXRoCiBleGNlcHQgdGhlIGBWZXJiYC4KCiBUaGUgc3ludGF4IGBWYXJpYWJsZWAgbWF0Y2hlcyBwYXJ0IG9mIHRoZSBVUkwgcGF0aCBhcyBzcGVjaWZpZWQgYnkgaXRzCiB0ZW1wbGF0ZS4gQSB2YXJpYWJsZSB0ZW1wbGF0ZSBtdXN0IG5vdCBjb250YWluIG90aGVyIHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZQogbWF0Y2hlcyBhIHNpbmdsZSBwYXRoIHNlZ21lbnQsIGl0cyB0ZW1wbGF0ZSBtYXkgYmUgb21pdHRlZCwgZS5nLiBge3Zhcn1gCiBpcyBlcXVpdmFsZW50IHRvIGB7dmFyPSp9YC4KCiBUaGUgc3ludGF4IGBMSVRFUkFMYCBtYXRjaGVzIGxpdGVyYWwgdGV4dCBpbiB0aGUgVVJMIHBhdGguIElmIHRoZSBgTElURVJBTGAKIGNvbnRhaW5zIGFueSByZXNlcnZlZCBjaGFyYWN0ZXIsIHN1Y2ggY2hhcmFjdGVycyBzaG91bGQgYmUgcGVyY2VudC1lbmNvZGVkCiBiZWZvcmUgdGhlIG1hdGNoaW5nLgoKIElmIGEgdmFyaWFibGUgY29udGFpbnMgZXhhY3RseSBvbmUgcGF0aCBzZWdtZW50LCBzdWNoIGFzIGAie3Zhcn0iYCBvcgogYCJ7dmFyPSp9ImAsIHdoZW4gc3VjaCBhIHZhcmlhYmxlIGlzIGV4cGFuZGVkIGludG8gYSBVUkwgcGF0aCBvbiB0aGUgY2xpZW50CiBzaWRlLCBhbGwgY2hhcmFjdGVycyBleGNlcHQgYFstXy5+MC05YS16QS1aXWAgYXJlIHBlcmNlbnQtZW5jb2RlZC4gVGhlCiBzZXJ2ZXIgc2lkZSBkb2VzIHRoZSByZXZlcnNlIGRlY29kaW5nLiBTdWNoIHZhcmlhYmxlcyBzaG93IHVwIGluIHRoZQogW0Rpc2NvdmVyeQogRG9jdW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2Rpc2NvdmVyeS92MS9yZWZlcmVuY2UvYXBpcykgYXMKIGB7dmFyfWAuCgogSWYgYSB2YXJpYWJsZSBjb250YWlucyBtdWx0aXBsZSBwYXRoIHNlZ21lbnRzLCBzdWNoIGFzIGAie3Zhcj1mb28vKn0iYAogb3IgYCJ7dmFyPSoqfSJgLCB3aGVuIHN1Y2ggYSB2YXJpYWJsZSBpcyBleHBhbmRlZCBpbnRvIGEgVVJMIHBhdGggb24gdGhlCiBjbGllbnQgc2lkZSwgYWxsIGNoYXJhY3RlcnMgZXhjZXB0IGBbLV8ufi8wLTlhLXpBLVpdYCBhcmUgcGVyY2VudC1lbmNvZGVkLgogVGhlIHNlcnZlciBzaWRlIGRvZXMgdGhlIHJldmVyc2UgZGVjb2RpbmcsIGV4Y2VwdCAiJTJGIiBhbmQgIiUyZiIgYXJlIGxlZnQKIHVuY2hhbmdlZC4gU3VjaCB2YXJpYWJsZXMgc2hvdyB1cCBpbiB0aGUKIFtEaXNjb3ZlcnkKIERvY3VtZW50XShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9kaXNjb3ZlcnkvdjEvcmVmZXJlbmNlL2FwaXMpIGFzCiBgeyt2YXJ9YC4KCiAjIyBVc2luZyBnUlBDIEFQSSBTZXJ2aWNlIENvbmZpZ3VyYXRpb24KCiBnUlBDIEFQSSBTZXJ2aWNlIENvbmZpZ3VyYXRpb24gKHNlcnZpY2UgY29uZmlnKSBpcyBhIGNvbmZpZ3VyYXRpb24gbGFuZ3VhZ2UKIGZvciBjb25maWd1cmluZyBhIGdSUEMgc2VydmljZSB0byBiZWNvbWUgYSB1c2VyLWZhY2luZyBwcm9kdWN0LiBUaGUKIHNlcnZpY2UgY29uZmlnIGlzIHNpbXBseSB0aGUgWUFNTCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYGdvb2dsZS5hcGkuU2VydmljZWAKIHByb3RvIG1lc3NhZ2UuCgogQXMgYW4gYWx0ZXJuYXRpdmUgdG8gYW5ub3RhdGluZyB5b3VyIHByb3RvIGZpbGUsIHlvdSBjYW4gY29uZmlndXJlIGdSUEMKIHRyYW5zY29kaW5nIGluIHlvdXIgc2VydmljZSBjb25maWcgWUFNTCBmaWxlcy4gWW91IGRvIHRoaXMgYnkgc3BlY2lmeWluZyBhCiBgSHR0cFJ1bGVgIHRoYXQgbWFwcyB0aGUgZ1JQQyBtZXRob2QgdG8gYSBSRVNUIGVuZHBvaW50LCBhY2hpZXZpbmcgdGhlIHNhbWUKIGVmZmVjdCBhcyB0aGUgcHJvdG8gYW5ub3RhdGlvbi4gVGhpcyBjYW4gYmUgcGFydGljdWxhcmx5IHVzZWZ1bCBpZiB5b3UKIGhhdmUgYSBwcm90byB0aGF0IGlzIHJldXNlZCBpbiBtdWx0aXBsZSBzZXJ2aWNlcy4gTm90ZSB0aGF0IGFueSB0cmFuc2NvZGluZwogc3BlY2lmaWVkIGluIHRoZSBzZXJ2aWNlIGNvbmZpZyB3aWxsIG92ZXJyaWRlIGFueSBtYXRjaGluZyB0cmFuc2NvZGluZwogY29uZmlndXJhdGlvbiBpbiB0aGUgcHJvdG8uCgogRXhhbXBsZToKCiAgICAgaHR0cDoKICAgICAgIHJ1bGVzOgogICAgICAgICAjIFNlbGVjdHMgYSBnUlBDIG1ldGhvZCBhbmQgYXBwbGllcyBIdHRwUnVsZSB0byBpdC4KICAgICAgICAgLSBzZWxlY3RvcjogZXhhbXBsZS52MS5NZXNzYWdpbmcuR2V0TWVzc2FnZQogICAgICAgICAgIGdldDogL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfS97c3ViLnN1YmZpZWxkfQoKICMjIFNwZWNpYWwgbm90ZXMKCiBXaGVuIGdSUEMgVHJhbnNjb2RpbmcgaXMgdXNlZCB0byBtYXAgYSBnUlBDIHRvIEpTT04gUkVTVCBlbmRwb2ludHMsIHRoZQogcHJvdG8gdG8gSlNPTiBjb252ZXJzaW9uIG11c3QgZm9sbG93IHRoZSBbcHJvdG8zCiBzcGVjaWZpY2F0aW9uXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8zI2pzb24pLgoKIFdoaWxlIHRoZSBzaW5nbGUgc2VnbWVudCB2YXJpYWJsZSBmb2xsb3dzIHRoZSBzZW1hbnRpY3Mgb2YKIFtSRkMgNjU3MF0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY1NzApIFNlY3Rpb24gMy4yLjIgU2ltcGxlIFN0cmluZwogRXhwYW5zaW9uLCB0aGUgbXVsdGkgc2VnbWVudCB2YXJpYWJsZSAqKmRvZXMgbm90KiogZm9sbG93IFJGQyA2NTcwIFNlY3Rpb24KIDMuMi4zIFJlc2VydmVkIEV4cGFuc2lvbi4gVGhlIHJlYXNvbiBpcyB0aGF0IHRoZSBSZXNlcnZlZCBFeHBhbnNpb24KIGRvZXMgbm90IGV4cGFuZCBzcGVjaWFsIGNoYXJhY3RlcnMgbGlrZSBgP2AgYW5kIGAjYCwgd2hpY2ggd291bGQgbGVhZAogdG8gaW52YWxpZCBVUkxzLiBBcyB0aGUgcmVzdWx0LCBnUlBDIFRyYW5zY29kaW5nIHVzZXMgYSBjdXN0b20gZW5jb2RpbmcKIGZvciBtdWx0aSBzZWdtZW50IHZhcmlhYmxlcy4KCiBUaGUgcGF0aCB2YXJpYWJsZXMgKiptdXN0IG5vdCoqIHJlZmVyIHRvIGFueSByZXBlYXRlZCBvciBtYXBwZWQgZmllbGQsCiBiZWNhdXNlIGNsaWVudCBsaWJyYXJpZXMgYXJlIG5vdCBjYXBhYmxlIG9mIGhhbmRsaW5nIHN1Y2ggdmFyaWFibGUgZXhwYW5zaW9uLgoKIFRoZSBwYXRoIHZhcmlhYmxlcyAqKm11c3Qgbm90KiogY2FwdHVyZSB0aGUgbGVhZGluZyAiLyIgY2hhcmFjdGVyLiBUaGUgcmVhc29uCiBpcyB0aGF0IHRoZSBtb3N0IGNvbW1vbiB1c2UgY2FzZSAie3Zhcn0iIGRvZXMgbm90IGNhcHR1cmUgdGhlIGxlYWRpbmcgIi8iCiBjaGFyYWN0ZXIuIEZvciBjb25zaXN0ZW5jeSwgYWxsIHBhdGggdmFyaWFibGVzIG11c3Qgc2hhcmUgdGhlIHNhbWUgYmVoYXZpb3IuCgogUmVwZWF0ZWQgbWVzc2FnZSBmaWVsZHMgbXVzdCBub3QgYmUgbWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLCBiZWNhdXNlCiBubyBjbGllbnQgbGlicmFyeSBjYW4gc3VwcG9ydCBzdWNoIGNvbXBsaWNhdGVkIG1hcHBpbmcuCgogSWYgYW4gQVBJIG5lZWRzIHRvIHVzZSBhIEpTT04gYXJyYXkgZm9yIHJlcXVlc3Qgb3IgcmVzcG9uc2UgYm9keSwgaXQgY2FuIG1hcAogdGhlIHJlcXVlc3Qgb3IgcmVzcG9uc2UgYm9keSB0byBhIHJlcGVhdGVkIGZpZWxkLiBIb3dldmVyLCBzb21lIGdSUEMKIFRyYW5zY29kaW5nIGltcGxlbWVudGF0aW9ucyBtYXkgbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlLgoKCwoDBAEBEgS8AggQCo8BCgQEAQIAEgTBAgIWGoABIFNlbGVjdHMgYSBtZXRob2QgdG8gd2hpY2ggdGhpcyBydWxlIGFwcGxpZXMuCgogUmVmZXIgdG8gW3NlbGVjdG9yXVtnb29nbGUuYXBpLkRvY3VtZW50YXRpb25SdWxlLnNlbGVjdG9yXSBmb3Igc3ludGF4CiBkZXRhaWxzLgoKDwoFBAECAAQSBsECArwCEgoNCgUEAQIABRIEwQICCAoNCgUEAQIAARIEwQIJEQoNCgUEAQIAAxIEwQIUFQrQAQoEBAEIABIGxgIC3AIDGr8BIERldGVybWluZXMgdGhlIFVSTCBwYXR0ZXJuIGlzIG1hdGNoZWQgYnkgdGhpcyBydWxlcy4gVGhpcyBwYXR0ZXJuIGNhbiBiZQogdXNlZCB3aXRoIGFueSBvZiB0aGUge2dldHxwdXR8cG9zdHxkZWxldGV8cGF0Y2h9IG1ldGhvZHMuIEEgY3VzdG9tIG1ldGhvZAogY2FuIGJlIGRlZmluZWQgdXNpbmcgdGhlICdjdXN0b20nIGZpZWxkLgoKDQoFBAEIAAESBMYCCA8KXAoEBAECARIEyQIEExpOIE1hcHMgdG8gSFRUUCBHRVQuIFVzZWQgZm9yIGxpc3RpbmcgYW5kIGdldHRpbmcgaW5mb3JtYXRpb24gYWJvdXQKIHJlc291cmNlcy4KCg0KBQQBAgEFEgTJAgQKCg0KBQQBAgEBEgTJAgsOCg0KBQQBAgED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APsCARo5IEEgY3VzdG9tIHBhdHRlcm4gaXMgdXNlZCBmb3IgZGVmaW5pbmcgY3VzdG9tIEhUVFAgdmVyYi4KCgsKAwQCARIE9QIIGQoyCgQEAgIAEgT3AgISGiQgVGhlIG5hbWUgb2YgdGhpcyBjdXN0b20gSFRUUCB2ZXJiLgoKDwoFBAICAAQSBvcCAvUCGwoNCgUEAgIABRIE9wICCAoNCgUEAgIAARIE9wIJDQoNCgUEAgIAAxIE9wIQEQo1CgQEAgIBEgT6AgISGicgVGhlIHBhdGggbWF0Y2hlZCBieSB0aGlzIGN1c3RvbSB2ZXJiLgoKDwoFBAICAQQSBvoCAvcCEgoNCgUEAgIBBRIE+gICCAoNCgUEAgIBARIE+gIJDQoNCgUEAgIBAxIE+gIQEWIGcHJvdG8zCsv5AgogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiJNChFGaWxlRGVzY3JpcHRvclNldBI4CgRmaWxlGAEgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkZpbGVEZXNjcmlwdG9yUHJvdG9SBGZpbGUi5AQKE0ZpbGVEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgdwYWNrYWdlGAIgASgJUgdwYWNrYWdlEh4KCmRlcGVuZGVuY3kYAyADKAlSCmRlcGVuZGVuY3kSKwoRcHVibGljX2RlcGVuZGVuY3kYCiADKAVSEHB1YmxpY0RlcGVuZGVuY3kSJwoPd2Vha19kZXBlbmRlbmN5GAsgAygFUg53ZWFrRGVwZW5kZW5jeRJDCgxtZXNzYWdlX3R5cGUYBCADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvUgttZXNzYWdlVHlwZRJBCgllbnVtX3R5cGUYBSADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSQQoHc2VydmljZRgGIAMoCzInLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlRGVzY3JpcHRvclByb3RvUgdzZXJ2aWNlEkMKCWV4dGVuc2lvbhgHIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEjYKB29wdGlvbnMYCCABKAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnNSB29wdGlvbnMSSQoQc291cmNlX2NvZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mb1IOc291cmNlQ29kZUluZm8SFgoGc3ludGF4GAwgASgJUgZzeW50YXgiuQYKD0Rlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjsKBWZpZWxkGAIgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUgVmaWVsZBJDCglleHRlbnNpb24YBiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhJBCgtuZXN0ZWRfdHlwZRgDIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SCm5lc3RlZFR5cGUSQQoJZW51bV90eXBlGAQgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlElgKD2V4dGVuc2lvbl9yYW5nZRgFIAMoCzIvLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uRXh0ZW5zaW9uUmFuZ2VSDmV4dGVuc2lvblJhbmdlEkQKCm9uZW9mX2RlY2wYCCADKAsyJS5nb29nbGUucHJvdG9idWYuT25lb2ZEZXNjcmlwdG9yUHJvdG9SCW9uZW9mRGVjbBI5CgdvcHRpb25zGAcgASgLMh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zUgdvcHRpb25zElUKDnJlc2VydmVkX3JhbmdlGAkgAygLMi4uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYCiADKAlSDHJlc2VydmVkTmFtZRp6Cg5FeHRlbnNpb25SYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQSQAoHb3B0aW9ucxgDIAEoCzImLmdvb2dsZS5wcm90b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnNSB29wdGlvbnMaNwoNUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQifAoVRXh0ZW5zaW9uUmFuZ2VPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIimAYKFEZpZWxkRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISQQoFbGFiZWwYBCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWxSBWxhYmVsEj4KBHR5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZVIEdHlwZRIbCgl0eXBlX25hbWUYBiABKAlSCHR5cGVOYW1lEhoKCGV4dGVuZGVlGAIgASgJUghleHRlbmRlZRIjCg1kZWZhdWx0X3ZhbHVlGAcgASgJUgxkZWZhdWx0VmFsdWUSHwoLb25lb2ZfaW5kZXgYCSABKAVSCm9uZW9mSW5kZXgSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRI3CgdvcHRpb25zGAggASgLMh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9uc1IHb3B0aW9ucyK2AgoEVHlwZRIPCgtUWVBFX0RPVUJMRRABEg4KClRZUEVfRkxPQVQQAhIOCgpUWVBFX0lOVDY0EAMSDwoLVFlQRV9VSU5UNjQQBBIOCgpUWVBFX0lOVDMyEAUSEAoMVFlQRV9GSVhFRDY0EAYSEAoMVFlQRV9GSVhFRDMyEAcSDQoJVFlQRV9CT09MEAgSDwoLVFlQRV9TVFJJTkcQCRIOCgpUWVBFX0dST1VQEAoSEAoMVFlQRV9NRVNTQUdFEAsSDgoKVFlQRV9CWVRFUxAMEg8KC1RZUEVfVUlOVDMyEA0SDQoJVFlQRV9FTlVNEA4SEQoNVFlQRV9TRklYRUQzMhAPEhEKDVRZUEVfU0ZJWEVENjQQEBIPCgtUWVBFX1NJTlQzMhAREg8KC1RZUEVfU0lOVDY0EBIiQwoFTGFiZWwSEgoOTEFCRUxfT1BUSU9OQUwQARISCg5MQUJFTF9SRVFVSVJFRBACEhIKDkxBQkVMX1JFUEVBVEVEEAMiYwoUT25lb2ZEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI3CgdvcHRpb25zGAIgASgLMh0uZ29vZ2xlLnByb3RvYnVmLk9uZW9mT3B0aW9uc1IHb3B0aW9ucyLjAgoTRW51bURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj8KBXZhbHVlGAIgAygLMikuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZURlc2NyaXB0b3JQcm90b1IFdmFsdWUSNgoHb3B0aW9ucxgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9uc1IHb3B0aW9ucxJdCg5yZXNlcnZlZF9yYW5nZRgEIAMoCzI2Lmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvLkVudW1SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYBSADKAlSDHJlc2VydmVkTmFtZRo7ChFFbnVtUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQigwEKGEVudW1WYWx1ZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgCIAEoBVIGbnVtYmVyEjsKB29wdGlvbnMYAyABKAsyIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9uc1IHb3B0aW9ucyKnAQoWU2VydmljZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj4KBm1ldGhvZBgCIAMoCzImLmdvb2dsZS5wcm90b2J1Zi5NZXRob2REZXNjcmlwdG9yUHJvdG9SBm1ldGhvZBI5CgdvcHRpb25zGAMgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zUgdvcHRpb25zIokCChVNZXRob2REZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIdCgppbnB1dF90eXBlGAIgASgJUglpbnB1dFR5cGUSHwoLb3V0cHV0X3R5cGUYAyABKAlSCm91dHB1dFR5cGUSOAoHb3B0aW9ucxgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zUgdvcHRpb25zEjAKEGNsaWVudF9zdHJlYW1pbmcYBSABKAg6BWZhbHNlUg9jbGllbnRTdHJlYW1pbmcSMAoQc2VydmVyX3N0cmVhbWluZxgGIAEoCDoFZmFsc2VSD3NlcnZlclN0cmVhbWluZyKSCQoLRmlsZU9wdGlvbnMSIQoMamF2YV9wYWNrYWdlGAEgASgJUgtqYXZhUGFja2FnZRIwChRqYXZhX291dGVyX2NsYXNzbmFtZRgIIAEoCVISamF2YU91dGVyQ2xhc3NuYW1lEjUKE2phdmFfbXVsdGlwbGVfZmlsZXMYCiABKAg6BWZhbHNlUhFqYXZhTXVsdGlwbGVGaWxlcxJECh1qYXZhX2dlbmVyYXRlX2VxdWFsc19hbmRfaGFzaBgUIAEoCEICGAFSGWphdmFHZW5lcmF0ZUVxdWFsc0FuZEhhc2gSOgoWamF2YV9zdHJpbmdfY2hlY2tfdXRmOBgbIAEoCDoFZmFsc2VSE2phdmFTdHJpbmdDaGVja1V0ZjgSUwoMb3B0aW1pemVfZm9yGAkgASgOMikuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zLk9wdGltaXplTW9kZToFU1BFRURSC29wdGltaXplRm9yEh0KCmdvX3BhY2thZ2UYCyABKAlSCWdvUGFja2FnZRI1ChNjY19nZW5lcmljX3NlcnZpY2VzGBAgASgIOgVmYWxzZVIRY2NHZW5lcmljU2VydmljZXMSOQoVamF2YV9nZW5lcmljX3NlcnZpY2VzGBEgASgIOgVmYWxzZVITamF2YUdlbmVyaWNTZXJ2aWNlcxI1ChNweV9nZW5lcmljX3NlcnZpY2VzGBIgASgIOgVmYWxzZVIRcHlHZW5lcmljU2VydmljZXMSNwoUcGhwX2dlbmVyaWNfc2VydmljZXMYKiABKAg6BWZhbHNlUhJwaHBHZW5lcmljU2VydmljZXMSJQoKZGVwcmVjYXRlZBgXIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSLwoQY2NfZW5hYmxlX2FyZW5hcxgfIAEoCDoFZmFsc2VSDmNjRW5hYmxlQXJlbmFzEioKEW9iamNfY2xhc3NfcHJlZml4GCQgASgJUg9vYmpjQ2xhc3NQcmVmaXgSKQoQY3NoYXJwX25hbWVzcGFjZRglIAEoCVIPY3NoYXJwTmFtZXNwYWNlEiEKDHN3aWZ0X3ByZWZpeBgnIAEoCVILc3dpZnRQcmVmaXgSKAoQcGhwX2NsYXNzX3ByZWZpeBgoIAEoCVIOcGhwQ2xhc3NQcmVmaXgSIwoNcGhwX25hbWVzcGFjZRgpIAEoCVIMcGhwTmFtZXNwYWNlEjQKFnBocF9tZXRhZGF0YV9uYW1lc3BhY2UYLCABKAlSFHBocE1ldGFkYXRhTmFtZXNwYWNlEiEKDHJ1YnlfcGFja2FnZRgtIAEoCVILcnVieVBhY2thZ2USWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iOgoMT3B0aW1pemVNb2RlEgkKBVNQRUVEEAESDQoJQ09ERV9TSVpFEAISEAoMTElURV9SVU5USU1FEAMqCQjoBxCAgICAAkoECCYQJyLRAgoOTWVzc2FnZU9wdGlvbnMSPAoXbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQYASABKAg6BWZhbHNlUhRtZXNzYWdlU2V0V2lyZUZvcm1hdBJMCh9ub19zdGFuZGFyZF9kZXNjcmlwdG9yX2FjY2Vzc29yGAIgASgIOgVmYWxzZVIcbm9TdGFuZGFyZERlc2NyaXB0b3JBY2Nlc3NvchIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIbCgltYXBfZW50cnkYByABKAhSCG1hcEVudHJ5ElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgIEAlKBAgJEAoi4gMKDEZpZWxkT3B0aW9ucxJBCgVjdHlwZRgBIAEoDjIjLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuQ1R5cGU6BlNUUklOR1IFY3R5cGUSFgoGcGFja2VkGAIgASgIUgZwYWNrZWQSRwoGanN0eXBlGAYgASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5KU1R5cGU6CUpTX05PUk1BTFIGanN0eXBlEhkKBGxhenkYBSABKAg6BWZhbHNlUgRsYXp5EiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhkKBHdlYWsYCiABKAg6BWZhbHNlUgR3ZWFrElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIi8KBUNUeXBlEgoKBlNUUklORxAAEggKBENPUkQQARIQCgxTVFJJTkdfUElFQ0UQAiI1CgZKU1R5cGUSDQoJSlNfTk9STUFMEAASDQoJSlNfU1RSSU5HEAESDQoJSlNfTlVNQkVSEAIqCQjoBxCAgICAAkoECAQQBSJzCgxPbmVvZk9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLAAQoLRW51bU9wdGlvbnMSHwoLYWxsb3dfYWxpYXMYAiABKAhSCmFsbG93QWxpYXMSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAUQBiKeAQoQRW51bVZhbHVlT3B0aW9ucxIlCgpkZXByZWNhdGVkGAEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIpwBCg5TZXJ2aWNlT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIuACCg1NZXRob2RPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkEnEKEWlkZW1wb3RlbmN5X2xldmVsGCIgASgOMi8uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMuSWRlbXBvdGVuY3lMZXZlbDoTSURFTVBPVEVOQ1lfVU5LTk9XTlIQaWRlbXBvdGVuY3lMZXZlbBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiJQChBJZGVtcG90ZW5jeUxldmVsEhcKE0lERU1QT1RFTkNZX1VOS05PV04QABITCg9OT19TSURFX0VGRkVDVFMQARIOCgpJREVNUE9URU5UEAIqCQjoBxCAgICAAiKaAwoTVW5pbnRlcnByZXRlZE9wdGlvbhJBCgRuYW1lGAIgAygLMi0uZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24uTmFtZVBhcnRSBG5hbWUSKQoQaWRlbnRpZmllcl92YWx1ZRgDIAEoCVIPaWRlbnRpZmllclZhbHVlEiwKEnBvc2l0aXZlX2ludF92YWx1ZRgEIAEoBFIQcG9zaXRpdmVJbnRWYWx1ZRIsChJuZWdhdGl2ZV9pbnRfdmFsdWUYBSABKANSEG5lZ2F0aXZlSW50VmFsdWUSIQoMZG91YmxlX3ZhbHVlGAYgASgBUgtkb3VibGVWYWx1ZRIhCgxzdHJpbmdfdmFsdWUYByABKAxSC3N0cmluZ1ZhbHVlEicKD2FnZ3JlZ2F0ZV92YWx1ZRgIIAEoCVIOYWdncmVnYXRlVmFsdWUaSgoITmFtZVBhcnQSGwoJbmFtZV9wYXJ0GAEgAigJUghuYW1lUGFydBIhCgxpc19leHRlbnNpb24YAiACKAhSC2lzRXh0ZW5zaW9uIqcCCg5Tb3VyY2VDb2RlSW5mbxJECghsb2NhdGlvbhgBIAMoCzIoLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvblIIbG9jYXRpb24azgEKCExvY2F0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEhYKBHNwYW4YAiADKAVCAhABUgRzcGFuEikKEGxlYWRpbmdfY29tbWVudHMYAyABKAlSD2xlYWRpbmdDb21tZW50cxIrChF0cmFpbGluZ19jb21tZW50cxgEIAEoCVIQdHJhaWxpbmdDb21tZW50cxI6ChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJUhdsZWFkaW5nRGV0YWNoZWRDb21tZW50cyLRAQoRR2VuZXJhdGVkQ29kZUluZm8STQoKYW5ub3RhdGlvbhgBIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uUgphbm5vdGF0aW9uGm0KCkFubm90YXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSHwoLc291cmNlX2ZpbGUYAiABKAlSCnNvdXJjZUZpbGUSFAoFYmVnaW4YAyABKAVSBWJlZ2luEhAKA2VuZBgEIAEoBVIDZW5kQo8BChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9zSAFaPmdpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3Byb3RvYy1nZW4tZ28vZGVzY3JpcHRvcjtkZXNjcmlwdG9y+AEBogIDR1BCqgIaR29vZ2xlLlByb3RvYnVmLlJlZmxlY3Rpb25KrL4CCgcSBScA8gYBCqoPCgEMEgMnABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLbAiBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBUaGUgbWVzc2FnZXMgaW4gdGhpcyBmaWxlIGRlc2NyaWJlIHRoZSBkZWZpbml0aW9ucyBmb3VuZCBpbiAucHJvdG8gZmlsZXMuCiBBIHZhbGlkIC5wcm90byBmaWxlIGNhbiBiZSB0cmFuc2xhdGVkIGRpcmVjdGx5IHRvIGEgRmlsZURlc2NyaXB0b3JQcm90bwogd2l0aG91dCBhbnkgb3RoZXIgaW5mb3JtYXRpb24gKGUuZy4gd2l0aG91dCByZWFkaW5nIGl0cyBpbXBvcnRzKS4KCggKAQISAykAGAoICgEIEgMqAFUKCQoC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biB0aGVtLiAgSW5zdGVhZCBpdCBzdG9yZXMgdGhlbSBpbiBhIGZpZWxkIGluIHRoZSAqT3B0aW9ucwogbWVzc2FnZSBjYWxsZWQgdW5pbnRlcnByZXRlZF9vcHRpb24uIFRoaXMgZmllbGQgbXVzdCBoYXZlIHRoZSBzYW1lIG5hbWUKIGFjcm9zcyBhbGwgKk9wdGlvbnMgbWVzc2FnZXMuIFdlIHRoZW4gdXNlIHRoaXMgZmllbGQgdG8gcG9wdWxhdGUgdGhlCiBleHRlbnNpb25zIHdoZW4gd2UgYnVpbGQgYSBkZXNjcmlwdG9yLCBhdCB3aGljaCBwb2ludCBhbGwgcHJvdG9zIGhhdmUgYmVlbgogcGFyc2VkIGFuZCBzbyBhbGwgZXh0ZW5zaW9ucyBhcmUga25vd24uCgogRXh0ZW5zaW9uIG51bWJlcnMgZm9yIGN1c3RvbSBvcHRpb25zIG1heSBiZSBjaG9zZW4gYXMgZm9sbG93czoKICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBvbmx5IGJlIHVzZWQgd2l0aGluIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yCiAgIG9yZ2FuaXphdGlvbiwgb3IgZm9yIGV4cGVyaW1lbnRhbCBvcHRpb25zLCB1c2UgZmllbGQgbnVtYmVycyA1MDAwMAogICB0aHJvdWdoIDk5OTk5LiAgSXQgaXMgdXAgdG8geW91IHRvIGVuc3VyZSB0aGF0IHlvdSBkbyBub3QgdXNlIHRoZQogICBzYW1lIG51bWJlciBmb3IgbXVsdGlwbGUgb3B0aW9ucy4KICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBiZSBwdWJsaXNoZWQgYW5kIHVzZWQgcHVibGljbHkgYnkgbXVsdGlwbGUKICAgaW5kZXBlbmRlbnQgZW50aXRpZXMsIGUtbWFpbCBwcm90b2J1Zi1nbG9iYWwtZXh0ZW5zaW9uLXJlZ2lzdHJ5QGdvb2dsZS5jb20KICAgdG8gcmVzZXJ2ZSBleHRlbnNpb24gbnVtYmVycy4gU2ltcGx5IHByb3ZpZGUgeW91ciBwcm9qZWN0IG5hbWUgKGUuZy4KICAgT2JqZWN0aXZlLUMgcGx1Z2luKSBhbmQgeW91ciBwcm9qZWN0IHdlYnNpdGUgKGlmIGF2YWlsYWJsZSkgLS0gdGhlcmUncyBubwogICBuZWVkIHRvIGV4cGxhaW4gaG93IHlvdSBpbnRlbmQgdG8gdXNlIHRoZW0uIFVzdWFsbHkgeW91IG9ubHkgbmVlZCBvbmUKICAgZXh0ZW5zaW9uIG51bWJlci4gWW91IGNhbiBkZWNsYXJlIG11bHRpcGxlIG9wdGlvbnMgd2l0aCBvbmx5IG9uZSBleHRlbnNpb24KICAgbnVtYmVyIGJ5IHB1dHRpbmcgdGhlbSBpbiBhIHN1Yi1tZXNzYWdlLiBTZWUgdGhlIEN1c3RvbSBPcHRpb25zIHNlY3Rpb24gb2YKICAgdGhlIGRvY3MgZm9yIGV4YW1wbGVzOgogICBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8jb3B0aW9ucwogICBJZiB0aGlzIHR1cm5zIG91dCB0byBiZSBwb3B1bGFyLCBhIHdlYiBzZXJ2aWNlIHdpbGwgYmUgc2V0IHVwCiAgIHRvIGF1dG9tYXRpY2FsbHkgYXNzaWduIG9wdGlvbiBudW1iZXJzLgoKCwoDBAoBEgS9AggTCvQBCgQECgIAEgTDAgIjGuUBIFNldHMgdGhlIEphdmEgcGFja2FnZSB3aGVyZSBjbGFzc2VzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gIEJ5IGRlZmF1bHQsIHRoZSBwcm90byBwYWNrYWdlIGlzIHVzZWQsIGJ1dCB0aGlzIGlzIG9mdGVuCiBpbmFwcHJvcHJpYXRlIGJlY2F1c2UgcHJvdG8gcGFja2FnZXMgZG8gbm90IG5vcm1hbGx5IHN0YXJ0IHdpdGggYmFja3dhcmRzCiBkb21haW4gbmFtZXMuCgoNCgUECgIABBIEwwICCgoNCgUECgIABRIEwwILEQoNCgUECgIAARIEwwISHgoNCgUECgIAAxIEwwIhIgq/AgoEBAoCARIEywICKxqwAiBJZiBzZXQsIGFsbCB0aGUgY2xhc3NlcyBmcm9tIHRoZSAucHJvdG8gZmlsZSBhcmUgd3JhcHBlZCBpbiBhIHNpbmdsZQogb3V0ZXIgY2xhc3Mgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4g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BQQKAgUGEgToAgsXCg0KBQQKAgUBEgToAhgkCg0KBQQKAgUDEgToAicoCg0KBQQKAgUIEgToAik4Cg0KBQQKAgUHEgToAjI3CuICCgQECgIGEgTvAgIiGtMCIFNldHMgdGhlIEdvIHBhY2thZ2Ugd2hlcmUgc3RydWN0cyBnZW5lcmF0ZWQgZnJvbSB0aGlzIC5wcm90byB3aWxsIGJlCiBwbGFjZWQuIElmIG9taXR0ZWQsIHRoZSBHbyBwYWNrYWdlIHdpbGwgYmUgZGVyaXZlZCBmcm9tIHRoZSBmb2xsb3dpbmc6CiAgIC0gVGhlIGJhc2VuYW1lIG9mIHRoZSBwYWNrYWdlIGltcG9ydCBwYXRoLCBpZiBwcm92aWRlZC4KICAgLSBPdGhlcndpc2UsIHRoZSBwYWNrYWdlIHN0YXRlbWVudCBpbiB0aGUgLnByb3RvIGZpbGUsIGlmIHByZXNlbnQuCiAgIC0gT3RoZXJ3aXNlLCB0aGUgYmFzZW5hbWUgb2YgdGhlIC5wcm90byBmaWxlLCB3aXRob3V0IGV4dGVuc2lvbi4KCg0KBQQKAgYEEgTvAgIKCg0KBQQKAgYFEgTvAgsRCg0KBQQKAgYBEgTvAhIcCg0KBQQKAgYDEgTvAh8hCtQECgQECgIHEgT9AgI5GsUEIFNob3VsZCBnZW5lcmljIHNlcnZpY2VzIGJlIGdlbmVyYXRlZCBpbiBlYWNoIGxhbmd1YWdlPyAgIkdlbmVyaWMiIHNlcnZpY2VzCiBhcmUgbm90IHNwZWNpZmljIHRvIGFueSBwYXJ0aWN1bGFyIFJQQyBzeXN0ZW0uICBUaGV5IGFyZSBnZW5lcmF0ZWQgYnkgdGhlCiBtYWluIGNvZGUgZ2VuZXJhdG9ycyBpbiBlYWNoIGxhbmd1YWdlICh3aXRob3V0IGFkZGl0aW9uYWwgcGx1Z2lucykuCiBHZW5lcmljIHNlcnZpY2VzIHdlcmUgdGhlIG9ubHkga2luZCBvZiBzZXJ2aWNlIGdlbmVyYXRpb24gc3VwcG9ydGVkIGJ5CiBlYXJseSB2ZXJzaW9ucyBvZiBnb29nbGUucHJvdG9idWYuCgogR2VuZXJpYyBzZXJ2aWNlcyBhcmUgbm93IGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB1c2lu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b24gbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQgPSB0cnVlOwogICAgIGV4dGVuc2lvbnMgNCB0byBtYXg7CiAgIH0KIE5vdGUgdGhhdCB0aGUgbWVzc2FnZSBjYW5ub3QgaGF2ZSBhbnkgZGVmaW5lZCBmaWVsZHM7IE1lc3NhZ2VTZXRzIG9ubHkKIGhhdmUgZXh0ZW5zaW9ucy4KCiBBbGwgZXh0ZW5zaW9ucyBvZiB5b3VyIHR5cGUgbXVzdCBiZSBzaW5ndWxhciBtZXNzYWdlczsgZS5nLiB0aGV5IGNhbm5vdAogYmUgaW50MzJzLCBlbnVtcywgb3IgcmVwZWF0ZWQgbWVzc2FnZXMuCgogQmVjYXVzZSB0aGlzIGlzIGFuIG9wdGlvbiwgdGhlIGFib3ZlIHR3byByZXN0cmljdGlvbnMgYXJlIG5vdCBlbmZvcmNlZCBieQogdGhlIHByb3RvY29sIGNvbXBpbGVyLgoKDQoFBAsCAAQSBMwDAgoKDQoFBAsCAAUSBMwDCw8KDQoFBAsCAAESBMwDECcKDQoFBAsCAAMSBMwDKisKDQoFBAsCAAgSBMwDLDsKDQoFBAsCAAcSBMwDNToK6wEKBAQLAgESBNEDAkQa3AEgRGlzYWJsZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHN0YW5kYXJkICJkZXNjcmlwdG9yKCkiIGFjY2Vzc29yLCB3aGljaCBjYW4KIGNvbmZsaWN0IHdpdGggYSBmaWVsZCBvZiB0aGUgc2FtZSBuYW1lLiAgVGhpcyBpcyBtZWFudCB0byBtYWtlIG1pZ3JhdGlvbgogZnJvbSBwcm90bzEgZWFzaWVyOyBuZXcgY29kZSBzaG91bGQgYXZvaWQgZmllbGRzIG5hbWVkICJkZXNjcmlwdG9yIi4KCg0KBQQLAgEEEgTRAwIKCg0KBQQLAgEFEgTRAwsPCg0KBQQLAgEBEgTRAxAvCg0KBQQLAgEDEgTRAzIzCg0KBQQLAgEIEgTRAzRDCg0KBQQLAgEHEgTRAz1CCu4BCgQECwICEgTXAwIvGt8BIElzIHRoaXMgbWVzc2FnZSBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIHRoZSBtZXNzYWdlLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsCiB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgbWVzc2FnZXMuCgoNCgUECwICBBIE1wMCCgoNCgUECwICBRIE1wMLDwoNCgUECwICARIE1wMQGgoNCgUECwICAxIE1wMdHgoNCgUECwICCBIE1wMfLgoNCgUECwICBxIE1wMoLQqeBgoEBAsCAxIE7gMCHhqPBiBXaGV0aGVyIHRoZSBtZXNzYWdlIGlzIGFuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1hcCBlbnRyeSB0eXBlIGZvciB0aGUKIG1hcHMgZmllbGQuCgogRm9yIG1hcHMgZmllbGRzOgogICAgIG1hcDxLZXlUeXBlLCBWYWx1ZVR5cGU+IG1hcF9maWVsZCA9IDE7CiBUaGUgcGFyc2VkIGRlc2NyaXB0b3IgbG9va3MgbGlrZToKICAgICBtZXNzYWdlIE1hcEZpZWxkRW50cnkgewogICAgICAgICBvcHRpb24gbWFwX2VudHJ5ID0gdHJ1ZTsKICAgICAgICAgb3B0aW9uYWwgS2V5VHlwZSBrZXkgPSAxOwogICAgICAgICBvcHRpb25hbCBWYWx1ZVR5cGUgdmFsdWUgPSAyOwogICAgIH0KICAgICByZXBlYXRlZCBNYXBGaWVsZEVudHJ5IG1hcF9maWVsZCA9IDE7CgogSW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGdlbmVyYXRlIHRoZSBtYXBfZW50cnk9dHJ1ZSBtZXNzYWdlLCBidXQKIHVzZSBhIG5hdGl2ZSBtYXAgaW4gdGhlIHRhcmdldCBsYW5ndWFnZSB0byBob2xkIHRoZSBrZXlzIGFuZCB2YWx1ZXMuCiBUaGUgcmVmbGVjdGlvbiBBUElzIGluIHN1Y2ggaW1wbGVtZW50aW9ucyBzdGlsbCBuZWVkIHRvIHdvcmsgYXMKIGlmIHRoZSBmaWVsZCBpcyBhIHJlcGVhdGVkIG1lc3NhZ2UgZmllbGQuCgogTk9URTogRG8gbm90IHNldCB0aGUgb3B0aW9uIGluIC5wcm90byBmaWxlcy4gQWx3YXlzIHVzZSB0aGUgbWFwcyBzeW50YXgKIGluc3RlYWQuIFRoZSBvcHRpb24gc2hvdWxkIG9ubHkgYmUgaW1wbGljaXRseSBzZXQgYnkgdGhlIHByb3RvIGNvbXBpbGVyCiBwYXJzZXIuCgoNCgUECwIDBBIE7gMCCgoNCgUECwIDBRIE7gMLDwoNCgUECwIDARIE7gMQGQoNCgUECwIDAxIE7gMcHQokCgMECwkSBPADAg0iFyBqYXZhbGl0ZV9zZXJpYWxpemFibGUKCgwKBAQLCQASBPADCwwKDQoFBAsJAAESBPADCwwKDQoFBAsJAAISBPADCwwKHwoDBAsJEgTxAwINIhIgamF2YW5hbm9fYXNfbGl0ZQoKDAoEBAsJARIE8QMLDAoNCgUECwkBARIE8QMLDAoNCgUECwkBAhIE8QMLDApPCgQECwIEEgT0AwI6GkEgVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUECwIEBBIE9AMCCgoNCgUECwIEBhIE9AMLHgoNCgUECwIEARIE9AMfMwoNCgUECwIEAxIE9AM2OQpaCgMECwUSBPcDAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQLBQASBPcDDRgKDQoFBAsFAAESBPcDDREKDQoFBAsFAAISBPcDFRgKDAoCBAwSBvoDANUEAQoLCgMEDAESBPoDCBQKowIKBAQMAgASBP8DAi4alAIgVGhlIGN0eXBlIG9wdGlvbiBpbnN0cnVjdHMgdGhlIEMrKyBjb2RlIGdlbmVyYXRvciB0byB1c2UgYSBkaWZmZXJlbnQKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBmaWVsZCB0aGFuIGl0IG5vcm1hbGx5IHdvdWxkLiAgU2VlIHRoZSBzcGVjaWZpYwogb3B0aW9ucyBiZWxvdy4gIFRoaXMgb3B0aW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4gdGhlIG9wZW4gc291cmNlCiByZWxlYXNlIC0tIHNvcnJ5LCB3ZSdsbCB0cnkgdG8gaW5jbHVkZSBpdCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIQoKDQoFBAwCAAQSBP8DAgoKDQoFBAwCAAYSBP8DCxAKDQoFBAwCAAESBP8DERYKDQoFBAwCAAMSBP8DGRoKDQoFBAwCAAgSBP8DGy0KDQoFBAwCAAcSBP8DJiwKDgoEBAwEABIGgAQChwQDCg0KBQQMBAABEgSABAcMCh8KBgQMBAACABIEggQEDxoPIERlZmF1bHQgbW9kZS4KCg8KBwQMBAACAAESBIIEBAoKDwoHBAwEAAIAAhIEggQNDgoOCgYEDAQAAgESBIQEBA0KDwoHBAwEAAIBARIEhAQECAoPCgcEDAQAAgECEgSEBAsMCg4KBgQMBAACAhIEhgQEFQoPCgcEDAQAAgIBEgSGBAQQCg8KBwQMBAACAgISBIYEExQK2gIKBAQMAgESBI0EAhsaywIgVGhlIHBhY2tlZCBvcHRpb24gY2FuIGJlIGVuYWJsZWQgZm9yIHJlcGVhdGVkIHByaW1pdGl2ZSBmaWVsZHMgdG8gZW5hYmxlCiBhIG1vcmUgZWZmaWNpZW50IHJlcHJlc2VudGF0aW9uIG9uIHRoZSB3aXJlLiBSYXRoZXIgdGhhbiByZXBlYXRlZGx5CiB3cml0aW5nIHRoZSB0YWcgYW5kIHR5cGUgZm9yIGVhY2ggZWxlbWVudCwgdGhlIGVudGlyZSBhcnJheSBpcyBlbmNvZGVkIGFzCiBhIHNpbmdsZSBsZW5ndGgtZGVsaW1pdGVkIGJsb2IuIEluIHByb3RvMywgb25seSBleHBsaWNpdCBzZXR0aW5nIGl0IHRvCiBmYWxzZSB3aWxsIGF2b2lkIHVzaW5nIHBhY2tlZCBlbmNvZGluZy4KCg0KBQQMAgEEEgSNBAIKCg0KBQQMAgEFEgSNBAsPCg0KBQQMAgEBEgSNBBAWCg0KBQQMAgEDEgSNBBkaCpoFCgQEDAICEgSaBAIzGosFIFRoZSBqc3R5cGUgb3B0aW9uIGRldGVybWluZXMgdGhlIEphdmFTY3JpcHQgdHlwZSB1c2VkIGZvciB2YWx1ZXMgb2YgdGhlCiBmaWVsZC4gIFRoZSBvcHRpb24gaXMgcGVybWl0dGVkIG9ubHkgZm9yIDY0IGJpdCBpbnRlZ3JhbCBhbmQgZml4ZWQgdHlwZXMKIChpbnQ2NCwgdWludDY0LCBzaW50NjQsIGZpeGVkNjQsIHNmaXhlZDY0KS4gIEEgZmllbGQgd2l0aCBqc3R5cGUgSlNfU1RSSU5HCiBpcyByZXByZXNlbnRlZCBhcyBKYXZhU2NyaXB0IHN0cmluZywgd2hpY2ggYXZvaWRzIGxvc3Mgb2YgcHJlY2lzaW9uIHRoYXQKIGNhbiBoYXBwZW4gd2hlbiBhIGxhcmdlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBhIGZsb2F0aW5nIHBvaW50IEphdmFTY3JpcHQuCiBTcGVjaWZ5aW5nIEpTX05VTUJFUiBmb3IgdGhlIGpzdHlwZSBjYXVzZXMgdGhlIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGNvZGUgdG8KIHVzZSB0aGUgSmF2YVNjcmlwdCAibnVtYmVyIiB0eXBlLiAgVGhlIGJlaGF2aW9yIG9mIHRoZSBkZWZhdWx0IG9wdGlvbgogSlNfTk9STUFMIGlzIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudC4KCiBUaGlzIG9wdGlvbiBpcyBhbiBlbnVtIHRvIHBlcm1pdCBhZGRpdGlvbmFsIHR5cGVzIHRvIGJlIGFkZGVkLCBlLmcuCiBnb29nLm1hdGguSW50ZWdlci4KCg0KBQQMAgIEEgSaBAIKCg0KBQQMAgIGEgSaBAsRCg0KBQQMAgIBEgSaBBIYCg0KBQQMAgIDEgSaBBscCg0KBQQMAgIIEgSaBB0yCg0KBQQMAgIHEgSaBCgxCg4KBAQMBAESBpsEAqQEAwoNCgUEDAQBARIEmwQHDQonCgYEDAQBAgASBJ0EBBIaFyBVc2UgdGhlIGRlZmF1bHQgdHlwZS4KCg8KBwQMBAECAAESBJ0EBA0KDwoHBAwEAQIAAhIEnQQQEQopCgYEDAQBAgESBKAEBBIaGSBVc2UgSmF2YVNjcmlwdCBzdHJpbmdzLgoKDwoHBAwEAQIBARIEoAQEDQoPCgcEDAQBAgECEgSgBBARCikKBgQMBAECAhIEowQEEhoZIFVzZSBKYXZhU2NyaXB0IG51bWJlcnMuCgoPCgcEDAQBAgIBEgSjBAQNCg8KBwQMBAECAgISBKMEEBEK7wwKBAQMAgMSBMIEAika4AwgU2hvdWxkIHRoaXMgZmllbGQgYmUgcGFyc2VkIGxhemlseT8gIExhenkgYXBwbGllcyBvbmx5IHRvIG1lc3NhZ2UtdHlwZQogZmllbGRzLiAgSXQgbWVhbnMgdGhhdCB3aGVuIHRoZSBvdXRlciBtZXNzYWdlIGlzIGluaXRpYWxseSBwYXJzZWQsIHRoZQogaW5uZXIgbWVzc2FnZSdzIGNvbnRlbnRzIHdpbGwgbm90IGJlIHBhcnNlZCBidXQgaW5zdGVhZCBzdG9yZWQgaW4gZW5jb2RlZAogZm9ybS4gIFRoZSBpbm5lciBtZXNzYWdlIHdpbGwgYWN0dWFsbHkgYmUgcGFyc2VkIHdoZW4gaXQgaXMgZmlyc3QgYWNjZXNzZWQuCgogVGhpcyBpcyBvbmx5IGEgaGludC4gIEltcGxlbWVudGF0aW9ucyBhcmUgZnJlZSB0byBjaG9vc2Ugd2hldGhlciB0byB1c2UKIGVhZ2VyIG9yIGxhenkgcGFyc2luZyByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbi4gIEhvd2V2ZXIsCiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRydWUgc3VnZ2VzdHMgdGhhdCB0aGUgcHJvdG9jb2wgYXV0aG9yIGJlbGlldmVzIHRoYXQKIHVzaW5nIGxhenkgcGFyc2luZyBvbiB0aGlzIGZpZWxkIGlzIHdvcnRoIHRoZSBhZGRpdGlvbmFsIGJvb2trZWVwaW5nCiBvdmVyaGVhZCB0eXBpY2FsbHkgbmVlZGVkIHRvIGltcGxlbWVudCBpdC4KCiBUaGlzIG9wdGlvbiBkb2VzIG5vdCBhZmZlY3QgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgYW55IGdlbmVyYXRlZCBjb2RlOwogYWxsIG1ldGhvZCBzaWduYXR1cmVzIHJlbWFpbiB0aGUgc2FtZS4gIEZ1cnRoZXJtb3JlLCB0aHJlYWQtc2FmZXR5IG9mIHRoZQogaW50ZXJmYWNlIGlzIG5vdCBhZmZlY3RlZCBieSB0aGlzIG9wdGlvbjsgY29uc3QgbWV0aG9kcyByZW1haW4gc2FmZSB0bwogY2FsbCBmcm9tIG11bHRpcGxlIHRocmVhZHMgY29uY3VycmVudGx5LCB3aGlsZSBub24tY29uc3QgbWV0aG9kcyBjb250aW51ZQogdG8gcmVxdWlyZSBleGNsdXNpdmUgYWNjZXNzLgoKCiBOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcyB3aXRoaW4KIGEgbGF6eSBzdWItbWVzc2FnZS4gIFRoYXQgaXMsIGNhbGxpbmcgSXNJbml0aWFsaXplZCgpIG9uIHRoZSBvdXRlciBtZXNzYWdlCiBtYXkgcmV0dXJuIHRydWUgZXZlbiBpZiB0aGUgaW5uZXIgbWVzc2FnZSBoYXMgbWlzc2luZyByZXF1aXJlZCBmaWVsZHMuCiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgaW5uZXIgbWVzc2FnZSB3b3VsZCBoYXZlIHRvIGJlCiBwYXJzZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgY2hlY2ssIGRlZmVhdGluZyB0aGUgcHVycG9zZSBvZiBsYXp5CiBwYXJzaW5nLiAgQW4gaW1wbGVtZW50YXRpb24gd2hpY2ggY2hvb3NlcyBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzCiBtdXN0IGJlIGNvbnNpc3RlbnQgYWJvdXQgaXQuICBUaGF0IGlzLCBmb3IgYW55IHBhcnRpY3VsYXIgc3ViLW1lc3NhZ2UsIHRoZQogaW1wbGVtZW50YXRpb24gbXVzdCBlaXRoZXIgKmFsd2F5cyogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgb3IgKm5ldmVyKgogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgbWVzc2FnZSBoYXMKIGJlZW4gcGFyc2VkLgoKDQoFBAwCAwQSBMIEAgoKDQoFBAwCAwUSBMIECw8KDQoFBAwCAwESBMIEEBQKDQoFBAwCAwMSBMIEFxgKDQoFBAwCAwgSBMIEGSgKDQoFBAwCAwcSBMIEIicK6AEKBAQMAgQSBMgEAi8a2QEgSXMgdGhpcyBmaWVsZCBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBh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BBECAQYSBKsFCxsKDQoFBBECAQESBKsFHC0KDQoFBBECAQMSBKwFBggKDQoFBBECAQgSBKwFCSYKDQoFBBECAQcSBKwFEiUKTwoEBBECAhIErwUCOhpBIFRoZSBwYXJzZXIgc3RvcmVzIG9wdGlvbnMgaXQgZG9lc24ndCByZWNvZ25pemUgaGVyZS4gU2VlIGFib3ZlLgoKDQoFBBECAgQSBK8FAgoKDQoFBBECAgYSBK8FCx4KDQoFBBECAgESBK8FHzMKDQoFBBECAgMSBK8FNjkKWgoDBBEFEgSyBQIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEEQUAEgSyBQ0YCg0KBQQRBQABEgSyBQ0RCg0KBQQRBQACEgSyBRUYCosDCgIEEhIGvAUA0AUBGvwCIEEgbWVzc2FnZSByZXByZXNlbnRpbmcgYSBvcHRpb24gdGhlIHBhcnNlciBkb2VzIG5vdCByZWNvZ25pemUuIFRoaXMgb25seQogYXBwZWFycyBpbiBvcHRpb25zIHByb3RvcyBjcmVhdGVkIGJ5IHRoZSBjb21waWxlcjo6UGFyc2VyIGNsYXNzLgogRGVzY3JpcHRvclBvb2wgcmVzb2x2ZXMgdGhlc2Ugd2hlbiBidWlsZGluZyBEZXNjcmlwdG9yIG9iamVjdHMuIFRoZXJlZm9yZSwKIG9wdGlvbnMgcHJvdG9zIGluIGRlc2NyaXB0b3Igb2JqZWN0cyAoZS5nLiByZXR1cm5lZCBieSBEZXNjcmlwdG9yOjpvcHRpb25zKCksCiBvciBwcm9kdWNlZCBieSBEZXNjcmlwdG9yOjpDb3B5VG8oKSkgd2lsbCBuZXZlciBoYXZlIFVuaW50ZXJwcmV0ZWRPcHRpb25zCiBpbiB0aGVtLgoKCwoDBBIBEgS8BQgbCssCCgQEEgMAEgbCBQLFBQMaugIgVGhlIG5hbWUgb2YgdGhlIHVuaW50ZXJwcmV0ZWQgb3B0aW9uLiAgRWFjaCBzdHJpbmcgcmVwcmVzZW50cyBhIHNlZ21lbnQgaW4KIGEgZG90LXNlcGFyYXRlZCBuYW1lLiAgaXNfZXh0ZW5zaW9uIGlzIHRydWUg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cHJlc2VudHMKICAgW2EsaSkgIFsgNCwgMCwgMiwgMCBdICAgICBUaGUgd2hvbGUgZmllbGQgZGVmaW5pdGlvbi4KICAgW2EsYikgIFsgNCwgMCwgMiwgMCwgNCBdICBUaGUgbGFiZWwgKG9wdGlvbmFsKS4KICAgW2MsZCkgIFsgNCwgMCwgMiwgMCwgNSBdICBUaGUgdHlwZSAoc3RyaW5nKS4KICAgW2UsZikgIFsgNCwgMCwgMiwgMCwgMSBdICBUaGUgbmFtZSAoZm9vKS4KICAgW2csaCkgIFsgNCwgMCwgMiwgMCwgMyBdICBUaGUgbnVtYmVyICgxKS4KCiBOb3RlczoKIC0gQSBsb2NhdGlvbiBtYXkgcmVmZXIgdG8gYSByZXBlYXRlZCBmaWVsZCBpdHNlbGYgKGkuZS4gbm90IHRvIGFueQogICBwYXJ0aWN1bGFyIGluZGV4IHdpdGhpbiBpdCkuICBUaGlzIGlzIHVzZWQgd2hlbmV2ZXIgYSBzZXQgb2YgZWxlbWVudHMgYXJlCiAgIGxvZ2ljYWxseSBlbmNsb3NlZCBpbiBhIHNpbmdsZSBjb2RlIHNlZ21lbnQuICBGb3IgZXhhbXBsZSwgYW4gZW50aXJlCiAgIGV4dGVuZCBibG9jayAocG9zc2libHkgY29udGFpbmluZyBtdWx0aXBsZSBleHRlbnNpb24gZGVmaW5pdGlvbnMpIHdpbGwKICAgaGF2ZSBhbiBvdXRlciBsb2NhdGlvbiB3aG9zZSBwYXRoIHJlZmVycyB0byB0aGUgImV4dGVuc2lvbnMiIHJlcGVhdGVkCiAgIGZpZWxkIHdpdGhvdXQgYW4gaW5kZXguCiAtIE11bHRpcGxlIGxvY2F0aW9ucyBtYXkgaGF2ZSB0aGUgc2FtZSBwYXRoLiAgVGhpcyBoYXBwZW5zIHdoZW4gYSBzaW5nbGUKICAgbG9naWNhbCBkZWNsYXJhdGlvbiBpcyBzcHJlYWQgb3V0IGFjcm9zcyBtdWx0aXBsZSBwbGFjZXMuICBUaGUgbW9zdAogICBvYnZpb3VzIGV4YW1wbGUgaXMgdGhlICJleHRlbmQiIGJsb2NrIGFnYWluIC0tIHRoZXJlIG1heSBiZSBtdWx0aXBsZQogICBleHRlbmQgYmxvY2tzIGluIHRoZSBzYW1lIHNjb3BlLCBlYWNoIG9mIHdoaWNoIHdpbGwgaGF2ZSB0aGUgc2FtZSBwYXRoLgogLSBBIGxvY2F0aW9uJ3Mgc3BhbiBpcyBub3QgYWx3YXlzIGEgc3Vic2V0IG9mIGl0cyBwYXJlbnQncyBzcGFuLiAgRm9yCiAgIGV4YW1wbGUsIHRoZSAiZXh0ZW5kZWUiIG9mIGFuIGV4dGVuc2lvbiBkZWNsYXJhdGlvbiBhcHBlYXJzIGF0IHRoZQogICBiZWdpbm5pbmcgb2YgdGhlICJleHRlbmQiIGJsb2NrIGFuZCBpcyBzaGFyZWQgYnkgYWxsIGV4dGVuc2lvbnMgd2l0aGluCiAgIHRoZSBibG9jay4KIC0gSnVzdCBiZWNhdXNlIGEgbG9jYXRpb24ncyBzcGFuIGlzIGEgc3Vic2V0IG9mIHNvbWUgb3RoZXIgbG9jYXRpb24ncyBzcGFuCiAgIGRvZXMgbm90IG1lYW4gdGhhdCBpdCBpcyBhIGRlc2NlbmRlbnQuICBGb3IgZXhhbXBsZSwgYSAiZ3JvdXAiIGRlZmluZXMKICAgYm90aCBhIHR5cGUgYW5kIGEgZmllbGQgaW4gYSBzaW5nbGUgZGVjbGFyYXRpb24uICBUaHVzLCB0aGUgbG9jYXRpb25zCiAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR5cGUgYW5kIGZpZWxkIGFuZCB0aGVpciBjb21wb25lbnRzIHdpbGwgb3ZlcmxhcC4KIC0gQ29kZSB3aGljaCB0cmllcyB0byBpbnRlcnByZXQgbG9jYXRpb25zIHNob3VsZCBwcm9iYWJseSBiZSBkZXNpZ25lZCB0bwogICBpZ25vcmUgdGhvc2UgdGhhdCBpdCBkb2Vzbid0IHVuZGVyc3RhbmQsIGFzIG1vcmUgdHlwZXMgb2YgbG9jYXRpb25zIGNvdWxkCiAgIGJlIHJlY29yZGVkIGluIHRoZSBmdXR1cmUuCgoNCgUEEwIABBIEgwYCCgoNCgUEEwIABhIEgwYLEwoNCgUEEwIAARIEgwYUHAoNCgUEEwIAAxIEgwYfIAoOCgQEEwMAEgaEBgLXBgMKDQoFBBMDAAESBIQGChIKgwcKBgQTAwACABIEnAYEKhryBiBJZGVudGlmaWVzIHdoaWNoIHBhcnQgb2YgdGhlIEZpbGVEZXNjcmlwdG9yUHJvdG8gd2FzIGRlZmluZWQgYXQgdGhpcwogbG9jYXRpb24uCgogRWFjaCBlbGVtZW50IGlzIGEgZmllbGQgbnVtYmVyIG9yIGFuIGluZGV4LiAgVGhleSBmb3JtIGEgcGF0aCBmcm9tCiB0aGUgcm9vdCBGaWxlRGVzY3JpcHRvclByb3RvIHRvIHRoZSBwbGFjZSB3aGVyZSB0aGUgZGVmaW5pdGlvbi4gIEZvcgogZXhhbXBsZSwgdGhpcyBwYXRoOgogICBbIDQsIDMsIDIsIDcsIDEgXQogcmVmZXJzIHRvOgogICBmaWxlLm1lc3NhZ2VfdHlwZSgzKSAgLy8gNCwgMwogICAgICAgLmZpZWxkKDcpICAgICAgICAgLy8gMiwgNwogICAgICAgLm5hbWUoKSAgICAgICAgICAgLy8gMQogVGhpcyBpcyBiZWNhdXNlIEZpbGVEZXNjcmlwdG9yUHJvdG8ubWVzc2FnZV90eXBlIGhhcyBmaWVsZCBudW1iZXIgNDoKICAgcmVwZWF0ZWQgRGVzY3JpcHRvclByb3RvIG1lc3NhZ2VfdHlwZSA9IDQ7CiBhbmQgRGVzY3JpcHRvclByb3RvLmZpZWxkIGhhcyBmaWVsZCBudW1iZXIgMjoKICAgcmVwZWF0ZWQgRmllbGREZXNjcmlwdG9yUHJvdG8gZmllbGQgPSAyOwogYW5kIEZpZWxkRGVzY3JpcHRvclByb3RvLm5hbWUgaGFzIGZpZWxkIG51bWJlciAxOgogICBvcHRpb25hbCBzdHJpbmcgbmFtZSA9IDE7CgogVGh1cywgdGhlIGFib3ZlIHBhdGggZ2l2ZXMgdGhlIGxvY2F0aW9uIG9mIGEgZmllbGQgbmFtZS4gIElmIHdlIHJlbW92ZWQKIHRoZSBsYXN0IGVsZW1lbnQ6CiAgIFsgNCwgMywgMiwgNyBdCiB0aGlzIHBhdGggcmVmZXJzIHRvIHRoZSB3aG9sZSBmaWVsZCBkZWNsYXJhdGlvbiAoZnJvbSB0aGUgYmVnaW5uaW5nCiBvZiB0aGUgbGFiZWwgdG8gdGhlIHRlcm1pbmF0aW5nIHNlbWljb2xvbikuCgoPCgcEEwMAAgAEEgScBgQMCg8KBwQTAwACAAUSBJwGDRIKDwoHBBMDAAIAARIEnAYTFwoPCgcEEwMAAgADEgScBhobCg8KBwQTAwACAAgSBJwGHCkKEAoIBBMDAAIACAISBJwGHSgK0gIKBgQTAwACARIEowYEKhrBAiBBbHdheXMgaGFzIGV4YWN0bHkgdGhyZWUgb3IgZm91ciBlbGVtZW50czogc3RhcnQgbGluZSwgc3RhcnQgY29sdW1uLAogZW5kIGxpbmUgKG9wdGlvbmFsLCBvdGhlcndpc2UgYXNzdW1lZCBzYW1lIGFzIHN0YXJ0IGxpbmUpLCBlbmQgY29sdW1uLgogVGhlc2UgYXJlIHBhY2tlZCBpbnRvIGEgc2luZ2xlIGZpZWxkIGZvciBlZmZpY2llbmN5LiAgTm90ZSB0aGF0IGxpbmUKIGFuZCBjb2x1bW4gbnVtYmVycyBhcmUgemVyby1iYXNlZCAtLSB0eXBpY2FsbHkgeW91IHdpbGwgd2FudCB0byBhZGQKIDEgdG8gZWFjaCBiZWZvcmUgZGlzcGxheWluZyB0byBhIHVzZXIuCgoPCgcEEwMAAgEEEgSjBgQMCg8KBwQTAwACAQUSBKMGDRIKDwoHBBMDAAIBARIEowYTFwoPCgcEEwMAAgEDEgSjBhobCg8KBwQTAwACAQgSBKMGHCkKEAoIBBMDAAIBCAISBKMGHSgKpQwKBgQTAwACAhIE1AYEKRqUDCBJZiB0aGlzIFNvdXJjZUNvZGVJbmZvIHJlcHJlc2VudHMgYSBjb21wbGV0ZSBkZWNsYXJhdGlvbiwgdGhlc2UgYXJlIGFueQogY29tbWVudHMgYXBwZWFyaW5nIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGRlY2xhcmF0aW9uIHdoaWNoIGFwcGVhciB0byBiZQogYXR0YWNoZWQgdG8gdGhlIGRlY2xhcmF0aW9uLgoKIEEgc2VyaWVzIG9mIGxpbmUgY29tbWVudHMgYXBwZWFyaW5nIG9uIGNvbnNlY3V0aXZlIGxpbmVzLCB3aXRoIG5vIG90aGVyCiB0b2tlbnMgYXBwZWFyaW5nIG9uIHRob3NlIGxpbmVzLCB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGUgY29tbWVudC4KCiBsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzIHdpbGwga2VlcCBwYXJhZ3JhcGhzIG9mIGNvbW1lbnRzIHRoYXQgYXBwZWFyCiBiZWZvcmUgKGJ1dCBub3QgY29ubmVjdGVkIHRvKSB0aGUgY3VycmVudCBlbGVtZW50LiBFYWNoIHBhcmFncmFwaCwKIHNlcGFyYXRlZCBieSBlbXB0eSBsaW5lcywgd2lsbCBiZSBvbmUgY29tbWVudCBlbGVtZW50IGluIHRoZSByZXBlYXRlZAogZmllbGQuCgogT25seSB0aGUgY29tbWVudCBjb250ZW50IGlzIHByb3ZpZGVkOyBjb21tZW50IG1hcmtlcnMgKGUuZy4gLy8pIGFyZQogc3RyaXBwZWQgb3V0LiAgRm9yIGJsb2NrIGNvbW1lbnRzLCBsZWFkaW5nIHdoaXRlc3BhY2UgYW5kIGFuIGFzdGVyaXNrCiB3aWxsIGJlIHN0cmlwcGVkIGZyb20gdGhlIGJlZ2lubmluZyBvZiBlYWNoIGxpbmUgb3RoZXIgdGhhbiB0aGUgZmlyc3QuCiBOZXdsaW5lcyBhcmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4KCiBFeGFtcGxlczoKCiAgIG9wdGlvbmFsIGludDMyIGZvbyA9IDE7ICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGZvby4KICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBiYXIuCiAgIG9wdGlvbmFsIGludDMyIGJhciA9IDI7CgogICBvcHRpb25hbCBzdHJpbmcgYmF6ID0gMzsKICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBiYXouCiAgIC8vIEFub3RoZXIgbGluZSBhdHRhY2hlZCB0byBiYXouCgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIHF1eC4KICAgLy8KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIHF1eC4KICAgb3B0aW9uYWwgZG91YmxlIHF1eCA9IDQ7CgogICAvLyBEZXRhY2hlZCBjb21tZW50IGZvciBjb3JnZS4gVGhpcyBpcyBub3QgbGVhZGluZyBvciB0cmFpbGluZyBjb21tZW50cwogICAvLyB0byBxdXggb3IgY29yZ2UgYmVjYXVzZSB0aGVyZSBhcmUgYmxhbmsgbGluZXMgc2VwYXJhdGluZyBpdCBmcm9tCiAgIC8vIGJvdGguCgogICAvLyBEZXRh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DwoHBBQDAAIDBRIE8AYNEgoPCgcEFAMAAgMBEgTwBhMWCg8KBwQUAwACAwMSBPAGGRoK5wgKHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8SCmdvb2dsZS5hcGkaFWdvb2dsZS9hcGkvaHR0cC5wcm90bxogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG86SwoEaHR0cBIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGLDKvCIgASgLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZVIEaHR0cEJuCg5jb20uZ29vZ2xlLmFwaUIQQW5ub3RhdGlvbnNQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5vdGF0aW9uczthbm5vdGF0aW9uc6ICBEdBUElKvAYKBhIEDgAeAQrCBAoBDBIDDgASMrcEIENvcHlyaWdodCAoYykgMjAxNSwgR29vZ2xlIEluYy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k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ZWxlbV92ZXJzaW9uYml0bWFwSABSDXZlcnNpb25iaXRtYXBCCQoHZWxlbWVudCI4ChxvZnBfaGVsbG9fZWxlbV92ZXJzaW9uYml0bWFwEhgKB2JpdG1hcHMYAiADKA1SB2JpdG1hcHMiSwoJb2ZwX2hlbGxvEj4KCGVsZW1lbnRzGAEgAygLMiIub3BlbmZsb3dfMTMub2ZwX2hlbGxvX2VsZW1faGVhZGVyUghlbGVtZW50cyJNChFvZnBfc3dpdGNoX2NvbmZpZxIUCgVmbGFncxgBIAEoDVIFZmxhZ3MSIgoNbWlzc19zZW5kX2xlbhgCIAEoDVILbWlzc1NlbmRMZW4iQgoNb2ZwX3RhYmxlX21vZBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIWCgZjb25maWcYAiABKA1SBmNvbmZpZyKgAgoIb2ZwX3BvcnQSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhcKB2h3X2FkZHIYAiADKA1SBmh3QWRkchISCgRuYW1lGAMgASgJUgRuYW1lEhYKBmNvbmZpZxgEIAEoDVIGY29uZmlnEhQKBXN0YXRlGAUgASgNUgVzdGF0ZRISCgRjdXJyGAYgASgNUgRjdXJyEh4KCmFkdmVydGlzZWQYByABKA1SCmFkdmVydGlzZWQSHAoJc3VwcG9ydGVkGAggASgNUglzdXBwb3J0ZWQSEgoEcGVlchgJIAEoDVIEcGVlchIdCgpjdXJyX3NwZWVkGAogASgNUgljdXJyU3BlZWQSGwoJbWF4X3NwZWVkGAsgASgNUghtYXhTcGVlZCK1AQoTb2ZwX3N3aXRjaF9mZWF0dXJlcxIfCgtkYXRhcGF0aF9pZBgBIAEoBFIKZGF0YXBhdGhJZBIbCgluX2J1ZmZlcnMYAiABKA1SCG5CdWZmZXJzEhkKCG5fdGFibGVzGAMgASgNUgduVGFibGVzEiEKDGF1eGlsaWFyeV9pZBgEIAEoDVILYXV4aWxpYXJ5SWQSIgoMY2FwYWJpbGl0aWVzGAUgASgNUgxjYXBhYmlsaXRpZXMicgoPb2ZwX3BvcnRfc3RhdHVzEjQKBnJlYXNvbhgBIAEoDjIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3JlYXNvblIGcmVhc29uEikKBGRlc2MYAiABKAsyFS5vcGVuZmxvd18xMy5vZnBfcG9ydFIEZGVzYyJPChFvZnBfZGV2aWNlX3N0YXR1cxI6CgZzdGF0dXMYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfZGV2aWNlX2Nvbm5lY3Rpb25SBnN0YXR1cyKKAQoMb2ZwX3BvcnRfbW9kEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIXCgdod19hZGRyGAIgAygNUgZod0FkZHISFgoGY29uZmlnGAMgASgNUgZjb25maWcSEgoEbWFzaxgEIAEoDVIEbWFzaxIcCglhZHZlcnRpc2UYBSABKA1SCWFkdmVydGlzZSJ3CglvZnBfbWF0Y2gSLwoEdHlwZRgBIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9tYXRjaF90eXBlUgR0eXBlEjkKCm94bV9maWVsZHMYAiADKAsyGi5vcGVuZmxvd18xMy5vZnBfb3htX2ZpZWxkUglveG1GaWVsZHMi6gEKDW9mcF9veG1fZmllbGQSNwoJb3htX2NsYXNzGAEgASgOMhoub3BlbmZsb3dfMTMub2ZwX294bV9jbGFzc1IIb3htQ2xhc3MSPQoJb2ZiX2ZpZWxkGAQgASgLMh4ub3BlbmZsb3dfMTMub2ZwX294bV9vZmJfZmllbGRIAFIIb2ZiRmllbGQSWAoSZXhwZXJpbWVudGVyX2ZpZWxkGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX294bV9leHBlcmltZW50ZXJfZmllbGRIAFIRZXhwZXJpbWVudGVyRmllbGRCBwoFZmllbGQi1w4KEW9mcF9veG1fb2ZiX2ZpZWxkEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5veG1fb2ZiX2ZpZWxkX3R5cGVzUgR0eXBlEhkKCGhhc19tYXNrGAIgASgIUgdoYXNNYXNrEhQKBHBvcnQYAyABKA1IAFIEcG9ydBIlCg1waHlzaWNhbF9wb3J0GAQgASgNSABSDHBoeXNpY2FsUG9ydBInCg50YWJsZV9tZXRhZGF0YRgFIAEoBEgAUg10YWJsZU1ldGFkYXRhEhkKB2V0aF9kc3QYBiABKAxIAFIGZXRoRHN0EhkKB2V0aF9zcmMYByABKAxIAFIGZXRoU3JjEhsKCGV0aF90eXBlGAggASgNSABSB2V0aFR5cGUSGwoIdmxhbl92aWQYCSABKA1IAFIHdmxhblZpZBIbCgh2bGFuX3BjcBgKIAEoDUgAUgd2bGFuUGNwEhkKB2lwX2RzY3AYCyABKA1IAFIGaXBEc2NwEhcKBmlwX2VjbhgMIAEoDUgAUgVpcEVjbhIbCghpcF9wcm90bxgNIAEoDUgAUgdpcFByb3RvEhsKCGlwdjRfc3JjGA4gASgNSABSB2lwdjRTcmMSGwoIaXB2NF9kc3QYDyABKA1IAFIHaXB2NERzdBIZCgd0Y3Bfc3JjGBAgASgNSABSBnRjcFNyYxIZCgd0Y3BfZHN0GBEgASgNSABSBnRjcERzdBIZCgd1ZHBfc3JjGBIgASgNSABSBnVkcFNyYxIZCgd1ZHBfZHN0GBMgASgNSABSBnVkcERzdBIbCghzY3RwX3NyYxgUIAEoDUgAUgdzY3RwU3JjEhsKCHNjdHBfZHN0GBUgASgNSABSB3NjdHBEc3QSIQoLaWNtcHY0X3R5cGUYFiABKA1IAFIKaWNtcHY0VHlwZRIhCgtpY21wdjRfY29kZRgXIAEoDUgAUgppY21wdjRDb2RlEhcKBmFycF9vcBgYIAEoDUgAUgVhcnBPcBIZCgdhcnBfc3BhGBkgASgNSABSBmFycFNwYRIZCgdhcnBfdHBhGBogASgNSABSBmFycFRwYRIZCgdhcnBfc2hhGBsgASgMSABSBmFycFNoYRIZCgdhcnBfdGhhGBwgASgMSABSBmFycFRoYRIbCghpcHY2X3NyYxgdIAEoDEgAUgdpcHY2U3JjEhsKCGlwdjZfZHN0GB4gASgMSABSB2lwdjZEc3QSIQoLaXB2Nl9mbGFiZWwYHyABKA1IAFIKaXB2NkZsYWJlbBIhCgtpY21wdjZfdHlwZRggIAEoDUgAUgppY21wdjZUeXBlEiEKC2ljbXB2Nl9jb2RlGCEgASgNSABSCmljbXB2NkNvZGUSJgoOaXB2Nl9uZF90YXJnZXQYIiABKAxIAFIMaXB2Nk5kVGFyZ2V0EiAKC2lwdjZfbmRfc3NsGCMgASgMSABSCWlwdjZOZFNzbBIgCgtpcHY2X25kX3RsbBgkIAEoDEgAUglpcHY2TmRUbGwSHwoKbXBsc19sYWJlbBglIAEoDUgAUgltcGxzTGFiZWwSGQoHbXBsc190YxgmIAEoDUgAUgZtcGxzVGMSGwoIbXBsc19ib3MYJyABKA1IAFIHbXBsc0JvcxIbCghwYmJfaXNpZBgoIAEoDUgAUgdwYmJJc2lkEh0KCXR1bm5lbF9pZBgpIAEoBEgAUgh0dW5uZWxJZBIhCgtpcHY2X2V4dGhkchgqIAEoDUgAUgppcHY2RXh0aGRyEjAKE3RhYmxlX21ldGFkYXRhX21hc2sYaSABKARIAVIRdGFibGVNZXRhZGF0YU1hc2sSIgoMZXRoX2RzdF9tYXNrGGogASgMSAFSCmV0aERzdE1hc2sSIgoMZXRoX3NyY19tYXNrGGsgASgMSAFSCmV0aFNyY01hc2sSJAoNdmxhbl92aWRfbWFzaxhtIAEoDUgBUgt2bGFuVmlkTWFzaxIkCg1pcHY0X3NyY19tYXNrGHIgASgNSAFSC2lwdjRTcmNNYXNrEiQKDWlwdjRfZHN0X21hc2sYcyABKA1IAVILaXB2NERzdE1hc2sSIgoMYXJwX3NwYV9tYXNrGH0gASgNSAFSCmFycFNwYU1hc2sSIgoMYXJwX3RwYV9tYXNrGH4gASgNSAFSCmFycFRwYU1hc2sSJQoNaXB2Nl9zcmNfbWFzaxiBASABKAxIAVILaXB2NlNyY01hc2sSJQoNaXB2Nl9kc3RfbWFzaxiCASABKAxIAVILaXB2NkRzdE1hc2sSKwoQaXB2Nl9mbGFiZWxfbWFzaxiDASABKA1IAVIOaXB2NkZsYWJlbE1hc2sSJQoNcGJiX2lzaWRfbWFzaxiMASABKA1IAVILcGJiSXNpZE1hc2sSJwoOdHVubmVsX2lkX21hc2sYjQEgASgESAFSDHR1bm5lbElkTWFzaxIrChBpcHY2X2V4dGhkcl9tYXNrGI4BIAEoDUgBUg5pcHY2RXh0aGRyTWFza0IHCgV2YWx1ZUIGCgRtYXNrIl8KGm9mcF9veG1fZXhwZXJpbWVudGVyX2ZpZWxkEh0KCm94bV9oZWFkZXIYASABKA1SCW94bUhlYWRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlciKyBAoKb2ZwX2FjdGlvbhIwCgR0eXBlGAEgASgOMhwub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl90eXBlUgR0eXBlEjgKBm91dHB1dBgCIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fb3V0cHV0SABSBm91dHB1dBI9CghtcGxzX3R0bBgDIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fbXBsc190dGxIAFIHbXBsc1R0bBIyCgRwdXNoGAQgASgLMhwub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9wdXNoSABSBHB1c2gSPQoIcG9wX21wbHMYBSABKAsyIC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3BvcF9tcGxzSABSB3BvcE1wbHMSNQoFZ3JvdXAYBiABKAsyHS5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX2dyb3VwSABSBWdyb3VwEjcKBm53X3R0bBgHIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fbndfdHRsSABSBW53VHRsEkAKCXNldF9maWVsZBgIIAEoCzIhLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fc2V0X2ZpZWxkSABSCHNldEZpZWxkEkoKDGV4cGVyaW1lbnRlchgJIAEoCzIkLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIICgZhY3Rpb24iQAoRb2ZwX2FjdGlvbl9vdXRwdXQSEgoEcG9ydBgBIAEoDVIEcG9ydBIXCgdtYXhfbGVuGAIgASgNUgZtYXhMZW4iMAoTb2ZwX2FjdGlvbl9tcGxzX3R0bBIZCghtcGxzX3R0bBgBIAEoDVIHbXBsc1R0bCIvCg9vZnBfYWN0aW9uX3B1c2gSHAoJZXRoZXJ0eXBlGAEgASgNUglldGhlcnR5cGUiMwoTb2ZwX2FjdGlvbl9wb3BfbXBscxIcCglldGhlcnR5cGUYASABKA1SCWV0aGVydHlwZSItChBvZnBfYWN0aW9uX2dyb3VwEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkIioKEW9mcF9hY3Rpb25fbndfdHRsEhUKBm53X3R0bBgBIAEoDVIFbndUdGwiSAoUb2ZwX2FjdGlvbl9zZXRfZmllbGQSMAoFZmllbGQYASABKAsyGi5vcGVuZmxvd18xMy5vZnBfb3htX2ZpZWxkUgVmaWVsZCJRChdvZnBfYWN0aW9uX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAIgASgMUgRkYXRhIpwDCg9vZnBfaW5zdHJ1Y3Rpb24SEgoEdHlwZRgBIAEoDVIEdHlwZRJICgpnb3RvX3RhYmxlGAIgASgLMicub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2dvdG9fdGFibGVIAFIJZ290b1RhYmxlElQKDndyaXRlX21ldGFkYXRhGAMgASgLMisub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX3dyaXRlX21ldGFkYXRhSABSDXdyaXRlTWV0YWRhdGESQAoHYWN0aW9ucxgEIAEoCzIkLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9hY3Rpb25zSABSB2FjdGlvbnMSOgoFbWV0ZXIYBSABKAsyIi5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fbWV0ZXJIAFIFbWV0ZXISTwoMZXhwZXJpbWVudGVyGAYgASgLMikub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCBgoEZGF0YSI3ChpvZnBfaW5zdHJ1Y3Rpb25fZ290b190YWJsZRIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZCJhCh5vZnBfaW5zdHJ1Y3Rpb25fd3JpdGVfbWV0YWRhdGESGgoIbWV0YWRhdGEYASABKARSCG1ldGFkYXRhEiMKDW1ldGFkYXRhX21hc2sYAiABKARSDG1ldGFkYXRhTWFzayJMChdvZnBfaW5zdHJ1Y3Rpb25fYWN0aW9ucxIxCgdhY3Rpb25zGAEgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucyIyChVvZnBfaW5zdHJ1Y3Rpb25fbWV0ZXISGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQiVgocb2ZwX2luc3RydWN0aW9uX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAIgASgMUgRkYXRhItwDCgxvZnBfZmxvd19tb2QSFgoGY29va2llGAEgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYAiABKARSCmNvb2tpZU1hc2sSGQoIdGFibGVfaWQYAyABKA1SB3RhYmxlSWQSOwoHY29tbWFuZBgEIAEoDjIhLm9wZW5mbG93XzEzLm9mcF9mbG93X21vZF9jb21tYW5kUgdjb21tYW5kEiEKDGlkbGVfdGltZW91dBgFIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAYgASgNUgtoYXJkVGltZW91dBIaCghwcmlvcml0eRgHIAEoDVIIcHJpb3JpdHkSGwoJYnVmZmVyX2lkGAggASgNUghidWZmZXJJZBIZCghvdXRfcG9ydBgJIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYCiABKA1SCG91dEdyb3VwEhQKBWZsYWdzGAsgASgNUgVmbGFncxIsCgVtYXRjaBgMIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSQAoMaW5zdHJ1Y3Rpb25zGA0gAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMilwEKCm9mcF9idWNrZXQSFgoGd2VpZ2h0GAEgASgNUgZ3ZWlnaHQSHQoKd2F0Y2hfcG9ydBgCIAEoDVIJd2F0Y2hQb3J0Eh8KC3dhdGNoX2dyb3VwGAMgASgNUgp3YXRjaEdyb3VwEjEKB2FjdGlvbnMYBCADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIswBCg1vZnBfZ3JvdXBfbW9kEjwKB2NvbW1hbmQYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfbW9kX2NvbW1hbmRSB2NvbW1hbmQSLwoEdHlwZRgCIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF90eXBlUgR0eXBlEhkKCGdyb3VwX2lkGAMgASgNUgdncm91cElkEjEKB2J1Y2tldHMYBCADKAsyFy5vcGVuZmxvd18xMy5vZnBfYnVja2V0UgdidWNrZXRzIo0BCg5vZnBfcGFja2V0X291dBIbCglidWZmZXJfaWQYASABKA1SCGJ1ZmZlcklkEhcKB2luX3BvcnQYAiABKA1SBmluUG9ydBIxCgdhY3Rpb25zGAMgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucxISCgRkYXRhGAQgASgMUgRkYXRhItwBCg1vZnBfcGFja2V0X2luEhsKCWJ1ZmZlcl9pZBgBIAEoDVIIYnVmZmVySWQSOQoGcmVhc29uGAIgASgOMiEub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9pbl9yZWFzb25SBnJlYXNvbhIZCgh0YWJsZV9pZBgDIAEoDVIHdGFibGVJZBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIsCgVtYXRjaBgFIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSEgoEZGF0YRgGIAEoDFIEZGF0YSKdAwoQb2ZwX2Zsb3dfcmVtb3ZlZBIWCgZjb29raWUYASABKARSBmNvb2tpZRIaCghwcmlvcml0eRgCIAEoDVIIcHJpb3JpdHkSPAoGcmVhc29uGAMgASgOMiQub3BlbmZsb3dfMTMub2ZwX2Zsb3dfcmVtb3ZlZF9yZWFzb25SBnJlYXNvbhIZCgh0YWJsZV9pZBgEIAEoDVIHdGFibGVJZBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxIhCgxpZGxlX3RpbWVvdXQYByABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgIIAEoDVILaGFyZFRpbWVvdXQSIQoMcGFja2V0X2NvdW50GAkgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAogASgEUglieXRlQ291bnQSLAoFbWF0Y2gYeSABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoItwCChVvZnBfbWV0ZXJfYmFuZF9oZWFkZXISNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX3R5cGVSBHR5cGUSEgoEcmF0ZRgCIAEoDVIEcmF0ZRIdCgpidXJzdF9zaXplGAMgASgNUglidXJzdFNpemUSNgoEZHJvcBgEIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2Ryb3BIAFIEZHJvcBJKCgtkc2NwX3JlbWFyaxgFIAEoCzInLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2RzY3BfcmVtYXJrSABSCmRzY3BSZW1hcmsSTgoMZXhwZXJpbWVudGVyGAYgASgLMigub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIGCgRkYXRhIhUKE29mcF9tZXRlcl9iYW5kX2Ryb3AiOwoab2ZwX21ldGVyX2JhbmRfZHNjcF9yZW1hcmsSHQoKcHJlY19sZXZlbBgBIAEoDVIJcHJlY0xldmVsIkEKG29mcF9tZXRlcl9iYW5kX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlciK4AQoNb2ZwX21ldGVyX21vZBI8Cgdjb21tYW5kGAEgASgOMiIub3BlbmZsb3dfMTMub2ZwX21ldGVyX21vZF9jb21tYW5kUgdjb21tYW5kEhQKBWZsYWdzGAIgASgNUgVmbGFncxIZCghtZXRlcl9pZBgDIAEoDVIHbWV0ZXJJZBI4CgViYW5kcxgEIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2hlYWRlclIFYmFuZHMifAoNb2ZwX2Vycm9yX21zZxIvCgZoZWFkZXIYASABKAsyFy5vcGVuZmxvd18xMy5vZnBfaGVhZGVyUgZoZWFkZXISEgoEdHlwZRgCIAEoDVIEdHlwZRISCgRjb2RlGAMgASgNUgRjb2RlEhIKBGRhdGEYBCABKAxSBGRhdGEigwEKGm9mcF9lcnJvcl9leHBlcmltZW50ZXJfbXNnEhIKBHR5cGUYASABKA1SBHR5cGUSGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSIgoMZXhwZXJpbWVudGVyGAMgASgNUgxleHBlcmltZW50ZXISEgoEZGF0YRgEIAEoDFIEZGF0YSJ2ChVvZnBfbXVsdGlwYXJ0X3JlcXVlc3QSMwoEdHlwZRgBIAEoDjIfLm9wZW5mbG93XzEzLm9mcF9tdWx0aXBhcnRfdHlwZVIEdHlwZRIUCgVmbGFncxgCIAEoDVIFZmxhZ3MSEgoEYm9keRgDIAEoDFIEYm9keSJ0ChNvZnBfbXVsdGlwYXJ0X3JlcGx5EjMKBHR5cGUYASABKA4yHy5vcGVuZmxvd18xMy5vZnBfbXVsdGlwYXJ0X3R5cGVSBHR5cGUSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhIKBGJvZHkYAyABKAxSBGJvZHkijwEKCG9mcF9kZXNjEhkKCG1mcl9kZXNjGAEgASgJUgdtZnJEZXNjEhcKB2h3X2Rlc2MYAiABKAlSBmh3RGVzYxIXCgdzd19kZXNjGAMgASgJUgZzd0Rlc2MSHQoKc2VyaWFsX251bRgEIAEoCVIJc2VyaWFsTnVtEhcKB2RwX2Rlc2MYBSABKAlSBmRwRGVzYyLSAQoWb2ZwX2Zsb3dfc3RhdHNfcmVxdWVzdBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIZCghvdXRfcG9ydBgCIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYAyABKA1SCG91dEdyb3VwEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEh8KC2Nvb2tpZV9tYXNrGAUgASgEUgpjb29raWVNYXNrEiwKBW1hdGNoGAYgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaCLFAwoOb2ZwX2Zsb3dfc3RhdHMSDgoCaWQYDiABKARSAmlkEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEiEKDGR1cmF0aW9uX3NlYxgCIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgDIAEoDVIMZHVyYXRpb25Oc2VjEhoKCHByaW9yaXR5GAQgASgNUghwcmlvcml0eRIhCgxpZGxlX3RpbWVvdXQYBSABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgGIAEoDVILaGFyZFRpbWVvdXQSFAoFZmxhZ3MYByABKA1SBWZsYWdzEhYKBmNvb2tpZRgIIAEoBFIGY29va2llEiEKDHBhY2tldF9jb3VudBgJIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgKIAEoBFIJYnl0ZUNvdW50EiwKBW1hdGNoGAwgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBJACgxpbnN0cnVjdGlvbnMYDSADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyLXAQobb2ZwX2FnZ3JlZ2F0ZV9zdGF0c19yZXF1ZXN0EhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhkKCG91dF9wb3J0GAIgASgNUgdvdXRQb3J0EhsKCW91dF9ncm91cBgDIAEoDVIIb3V0R3JvdXASFgoGY29va2llGAQgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYBSABKARSCmNvb2tpZU1hc2sSLAoFbWF0Y2gYBiABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoInwKGW9mcF9hZ2dyZWdhdGVfc3RhdHNfcmVwbHkSIQoMcGFja2V0X2NvdW50GAEgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAIgASgEUglieXRlQ291bnQSHQoKZmxvd19jb3VudBgDIAEoDVIJZmxvd0NvdW50Iu0DChpvZnBfdGFibGVfZmVhdHVyZV9wcm9wZXJ0eRI8CgR0eXBlGAEgASgOMigub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF90eXBlUgR0eXBlElYKDGluc3RydWN0aW9ucxgCIAEoCzIwLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfaW5zdHJ1Y3Rpb25zSABSDGluc3RydWN0aW9ucxJSCgtuZXh0X3RhYmxlcxgDIAEoCzIvLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfbmV4dF90YWJsZXNIAFIKbmV4dFRhYmxlcxJHCgdhY3Rpb25zGAQgASgLMisub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9hY3Rpb25zSABSB2FjdGlvbnMSOwoDb3htGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9veG1IAFIDb3htElYKDGV4cGVyaW1lbnRlchgGIAEoCzIwLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIHCgV2YWx1ZSJnCiNvZnBfdGFibGVfZmVhdHVyZV9wcm9wX2luc3RydWN0aW9ucxJACgxpbnN0cnVjdGlvbnMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyJKCiJvZnBfdGFibGVfZmVhdHVyZV9wcm9wX25leHRfdGFibGVzEiQKDm5leHRfdGFibGVfaWRzGAEgAygNUgxuZXh0VGFibGVJZHMiUwoeb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9hY3Rpb25zEjEKB2FjdGlvbnMYASADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIjUKGm9mcF90YWJsZV9mZWF0dXJlX3Byb3Bfb3htEhcKB294bV9pZHMYAyADKA1SBm94bUlkcyKRAQojb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9leHBlcmltZW50ZXISIgoMZXhwZXJpbWVudGVyGAIgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAyABKA1SB2V4cFR5cGUSKwoRZXhwZXJpbWVudGVyX2RhdGEYBCADKA1SEGV4cGVyaW1lbnRlckRhdGEikwIKEm9mcF90YWJsZV9mZWF0dXJlcxIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBISCgRuYW1lGAIgASgJUgRuYW1lEiUKDm1ldGFkYXRhX21hdGNoGAMgASgEUg1tZXRhZGF0YU1hdGNoEiUKDm1ldGFkYXRhX3dyaXRlGAQgASgEUg1tZXRhZGF0YVdyaXRlEhYKBmNvbmZpZxgFIAEoDVIGY29uZmlnEh8KC21heF9lbnRyaWVzGAYgASgNUgptYXhFbnRyaWVzEkcKCnByb3BlcnRpZXMYByADKAsyJy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wZXJ0eVIKcHJvcGVydGllcyKXAQoPb2ZwX3RhYmxlX3N0YXRzEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEiEKDGFjdGl2ZV9jb3VudBgCIAEoDVILYWN0aXZlQ291bnQSIQoMbG9va3VwX2NvdW50GAMgASgEUgtsb29rdXBDb3VudBIjCg1tYXRjaGVkX2NvdW50GAQgASgEUgxtYXRjaGVkQ291bnQiMQoWb2ZwX3BvcnRfc3RhdHNfcmVxdWVzdBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8i3QMKDm9mcF9wb3J0X3N0YXRzEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIdCgpyeF9wYWNrZXRzGAIgASgEUglyeFBhY2tldHMSHQoKdHhfcGFja2V0cxgDIAEoBFIJdHhQYWNrZXRzEhkKCHJ4X2J5dGVzGAQgASgEUgdyeEJ5dGVzEhkKCHR4X2J5dGVzGAUgASgEUgd0eEJ5dGVzEh0KCnJ4X2Ryb3BwZWQYBiABKARSCXJ4RHJvcHBlZBIdCgp0eF9kcm9wcGVkGAcgASgEUgl0eERyb3BwZWQSGwoJcnhfZXJyb3JzGAggASgEUghyeEVycm9ycxIbCgl0eF9lcnJvcnMYCSABKARSCHR4RXJyb3JzEiAKDHJ4X2ZyYW1lX2VychgKIAEoBFIKcnhGcmFtZUVychIeCgtyeF9vdmVyX2VychgLIAEoBFIJcnhPdmVyRXJyEhwKCnJ4X2NyY19lcnIYDCABKARSCHJ4Q3JjRXJyEh4KCmNvbGxpc2lvbnMYDSABKARSCmNvbGxpc2lvbnMSIQoMZHVyYXRpb25fc2VjGA4gASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGA8gASgNUgxkdXJhdGlvbk5zZWMiNAoXb2ZwX2dyb3VwX3N0YXRzX3JlcXVlc3QSGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQiVgoSb2ZwX2J1Y2tldF9jb3VudGVyEiEKDHBhY2tldF9jb3VudBgBIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgCIAEoBFIJYnl0ZUNvdW50IpcCCg9vZnBfZ3JvdXBfc3RhdHMSGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQSGwoJcmVmX2NvdW50GAIgASgNUghyZWZDb3VudBIhCgxwYWNrZXRfY291bnQYAyABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYBCABKARSCWJ5dGVDb3VudBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxJCCgxidWNrZXRfc3RhdHMYByADKAsyHy5vcGVuZmxvd18xMy5vZnBfYnVja2V0X2NvdW50ZXJSC2J1Y2tldFN0YXRzIo8BCg5vZnBfZ3JvdXBfZGVzYxIvCgR0eXBlGAEgASgOMhsub3BlbmZsb3dfMTMub2ZwX2dyb3VwX3R5cGVSBHR5cGUSGQoIZ3JvdXBfaWQYAiABKA1SB2dyb3VwSWQSMQoHYnVja2V0cxgDIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9idWNrZXRSB2J1Y2tldHMidgoPb2ZwX2dyb3VwX2VudHJ5Ei8KBGRlc2MYASABKAsyGy5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfZGVzY1IEZGVzYxIyCgVzdGF0cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9ncm91cF9zdGF0c1IFc3RhdHMihwEKEm9mcF9ncm91cF9mZWF0dXJlcxIUCgV0eXBlcxgBIAEoDVIFdHlwZXMSIgoMY2FwYWJpbGl0aWVzGAIgASgNUgxjYXBhYmlsaXRpZXMSHQoKbWF4X2dyb3VwcxgDIAMoDVIJbWF4R3JvdXBzEhgKB2FjdGlvbnMYBCADKA1SB2FjdGlvbnMiOAobb2ZwX21ldGVyX211bHRpcGFydF9yZXF1ZXN0EhkKCG1ldGVyX2lkGAEgASgNUgdtZXRlcklkImoKFG9mcF9tZXRlcl9iYW5kX3N0YXRzEioKEXBhY2tldF9iYW5kX2NvdW50GAEgASgEUg9wYWNrZXRCYW5kQ291bnQSJgoPYnl0ZV9iYW5kX2NvdW50GAIgASgEUg1ieXRlQmFuZENvdW50IqECCg9vZnBfbWV0ZXJfc3RhdHMSGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQSHQoKZmxvd19jb3VudBgCIAEoDVIJZmxvd0NvdW50EiYKD3BhY2tldF9pbl9jb3VudBgDIAEoBFINcGFja2V0SW5Db3VudBIiCg1ieXRlX2luX2NvdW50GAQgASgEUgtieXRlSW5Db3VudBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxJACgpiYW5kX3N0YXRzGAcgAygLMiEub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfc3RhdHNSCWJhbmRTdGF0cyJ9ChBvZnBfbWV0ZXJfY29uZmlnEhQKBWZsYWdzGAEgASgNUgVmbGFncxIZCghtZXRlcl9pZBgCIAEoDVIHbWV0ZXJJZBI4CgViYW5kcxgDIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2hlYWRlclIFYmFuZHMirgEKEm9mcF9tZXRlcl9mZWF0dXJlcxIbCgltYXhfbWV0ZXIYASABKA1SCG1heE1ldGVyEh0KCmJhbmRfdHlwZXMYAiABKA1SCWJhbmRUeXBlcxIiCgxjYXBhYmlsaXRpZXMYAyABKA1SDGNhcGFiaWxpdGllcxIbCgltYXhfYmFuZHMYBCABKA1SCG1heEJhbmRzEhsKCW1heF9jb2xvchgFIAEoDVIIbWF4Q29sb3IifAoPb2ZwX21ldGVyX2VudHJ5EjUKBmNvbmZpZxgBIAEoCzIdLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9jb25maWdSBmNvbmZpZxIyCgVzdGF0cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9zdGF0c1IFc3RhdHMidgohb2ZwX2V4cGVyaW1lbnRlcl9tdWx0aXBhcnRfaGVhZGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEhIKBGRhdGEYAyABKAxSBGRhdGEibAoXb2ZwX2V4cGVyaW1lbnRlcl9oZWFkZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSEgoEZGF0YRgDIAEoDFIEZGF0YSJFChVvZnBfcXVldWVfcHJvcF9oZWFkZXISGgoIcHJvcGVydHkYASABKA1SCHByb3BlcnR5EhAKA2xlbhgCIAEoDVIDbGVuInIKF29mcF9xdWV1ZV9wcm9wX21pbl9yYXRlEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEhIKBHJhdGUYAiABKA1SBHJhdGUicgoXb2ZwX3F1ZXVlX3Byb3BfbWF4X3JhdGUSQwoLcHJvcF9oZWFkZXIYASABKAsyIi5vcGVuZmxvd18xMy5vZnBfcXVldWVfcHJvcF9oZWFkZXJSCnByb3BIZWFkZXISEgoEcmF0ZRgCIAEoDVIEcmF0ZSKaAQobb2ZwX3F1ZXVlX3Byb3BfZXhwZXJpbWVudGVyEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAyABKAxSBGRhdGEihQEKEG9mcF9wYWNrZXRfcXVldWUSGQoIcXVldWVfaWQYASABKA1SB3F1ZXVlSWQSEgoEcG9ydBgCIAEoDVIEcG9ydBJCCgpwcm9wZXJ0aWVzGAQgAygLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wZXJ0aWVzIjIKHG9mcF9xdWV1ZV9nZXRfY29uZmlnX3JlcXVlc3QSEgoEcG9ydBgBIAEoDVIEcG9ydCJnChpvZnBfcXVldWVfZ2V0X2NvbmZpZ19yZXBseRISCgRwb3J0GAEgASgNUgRwb3J0EjUKBnF1ZXVlcxgCIAMoCzIdLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfcXVldWVSBnF1ZXVlcyJFChRvZnBfYWN0aW9uX3NldF9xdWV1ZRISCgR0eXBlGAEgASgNUgR0eXBlEhkKCHF1ZXVlX2lkGAMgASgNUgdxdWV1ZUlkIk0KF29mcF9xdWV1ZV9zdGF0c19yZXF1ZXN0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIZCghxdWV1ZV9pZBgCIAEoDVIHcXVldWVJZCLkAQoPb2ZwX3F1ZXVlX3N0YXRzEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIZCghxdWV1ZV9pZBgCIAEoDVIHcXVldWVJZBIZCgh0eF9ieXRlcxgDIAEoBFIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAQgASgEUgl0eFBhY2tldHMSGwoJdHhfZXJyb3JzGAUgASgEUgh0eEVycm9ycxIhCgxkdXJhdGlvbl9zZWMYBiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYByABKA1SDGR1cmF0aW9uTnNlYyJtChBvZnBfcm9sZV9yZXF1ZXN0EjQKBHJvbGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfY29udHJvbGxlcl9yb2xlUgRyb2xlEiMKDWdlbmVyYXRpb25faWQYAiABKARSDGdlbmVyYXRpb25JZCKOAQoQb2ZwX2FzeW5jX2NvbmZpZxIkCg5wYWNrZXRfaW5fbWFzaxgBIAMoDVIMcGFja2V0SW5NYXNrEigKEHBvcnRfc3RhdHVzX21hc2sYAiADKA1SDnBvcnRTdGF0dXNNYXNrEioKEWZsb3dfcmVtb3ZlZF9tYXNrGAMgAygNUg9mbG93UmVtb3ZlZE1hc2siawoOTWV0ZXJNb2RVcGRhdGUSDgoCaWQYASABKAlSAmlkEjcKCW1ldGVyX21vZBgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9tb2RSCG1ldGVyTW9kEhAKA3hpZBgDIAEoDVIDeGlkIlAKD01ldGVyU3RhdHNSZXBseRI9CgttZXRlcl9zdGF0cxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9zdGF0c1IKbWV0ZXJTdGF0cyJpCg9GbG93VGFibGVVcGRhdGUSDgoCaWQYASABKAlSAmlkEjQKCGZsb3dfbW9kGAIgASgLMhkub3BlbmZsb3dfMTMub2ZwX2Zsb3dfbW9kUgdmbG93TW9kEhAKA3hpZBgDIAEoDVIDeGlkInEKFEZsb3dHcm91cFRhYmxlVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI3Cglncm91cF9tb2QYAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfbW9kUghncm91cE1vZBIQCgN4aWQYAyABKA1SA3hpZCI6CgVGbG93cxIxCgVpdGVtcxgBIAMoCzIbLm9wZW5mbG93XzEzLm9mcF9mbG93X3N0YXRzUgVpdGVtcyI8CgZNZXRlcnMSMgoFaXRlbXMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfZW50cnlSBWl0ZW1zIkAKCkZsb3dHcm91cHMSMgoFaXRlbXMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfZW50cnlSBWl0ZW1zImkKC0Zsb3dDaGFuZ2VzEikKBnRvX2FkZBgBIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzUgV0b0FkZBIvCgl0b19yZW1vdmUYAiABKAsyEi5vcGVuZmxvd18xMy5GbG93c1IIdG9SZW1vdmUirgEKEEZsb3dHcm91cENoYW5nZXMSLgoGdG9fYWRkGAEgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IFdG9BZGQSNAoJdG9fcmVtb3ZlGAIgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IIdG9SZW1vdmUSNAoJdG9fdXBkYXRlGAMgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IIdG9VcGRhdGUiUwoIUGFja2V0SW4SDgoCaWQYASABKAlSAmlkEjcKCXBhY2tldF9pbhgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfaW5SCHBhY2tldEluIlcKCVBhY2tldE91dBIOCgJpZBgBIAEoCVICaWQSOgoKcGFja2V0X291dBgCIAEoCzIbLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfb3V0UglwYWNrZXRPdXQi4gEKC0NoYW5nZUV2ZW50Eg4KAmlkGAEgASgJUgJpZBI/Cgtwb3J0X3N0YXR1cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3N0YXR1c0gAUgpwb3J0U3RhdHVzEjIKBWVycm9yGAMgASgLMhoub3BlbmZsb3dfMTMub2ZwX2Vycm9yX21zZ0gAUgVlcnJvchJFCg1kZXZpY2Vfc3RhdHVzGAQgASgLMh4ub3BlbmZsb3dfMTMub2ZwX2RldmljZV9zdGF0dXNIAFIMZGV2aWNlU3RhdHVzQgcKBWV2ZW50IkUKDEZsb3dNZXRhZGF0YRI1CgZtZXRlcnMYASADKAsyHS5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfY29uZmlnUgZtZXRlcnMq1QEKC29mcF9wb3J0X25vEhAKDE9GUFBfSU5WQUxJRBAAEhAKCE9GUFBfTUFYEID+//8HEhQKDE9GUFBfSU5fUE9SVBD4////BxISCgpPRlBQX1RBQkxFEPn///8HEhMKC09GUFBfTk9STUFMEPr///8HEhIKCk9GUFBfRkxPT0QQ+////wcSEAoIT0ZQUF9BTEwQ/P///wcSFwoPT0ZQUF9DT05UUk9MTEVSEP3///8HEhIKCk9GUFBfTE9DQUwQ/v///wcSEAoIT0ZQUF9BTlkQ/////wcqyAUKCG9mcF90eXBlEg4KCk9GUFRfSEVMTE8QABIOCgpPRlBUX0VSUk9SEAESFQoRT0ZQVF9FQ0hPX1JFUVVFU1QQAhITCg9PRlBUX0VDSE9fUkVQTFkQAxIVChFPRlBUX0VYUEVSSU1FTlRFUhAEEhkKFU9GUFRfRkVBVFVSRVNfUkVRVUVTVBAFEhcKE09GUFRfRkVBVFVSRVNfUkVQTFkQBhIbChdPRlBUX0dFVF9DT05GSUdfUkVRVUVTVBAHEhkKFU9GUFRfR0VUX0NPTkZJR19SRVBMWRAIEhMKD09GUFRfU0VUX0NPTkZJRxAJEhIKDk9GUFRfUEFDS0VUX0lOEAoSFQoRT0ZQVF9GTE9XX1JFTU9WRUQQCxIUChBPRlBUX1BPUlRfU1RBVFVTEAwSEwoPT0ZQVF9QQUNLRVRfT1VUEA0SEQoNT0ZQVF9GTE9XX01PRBAOEhIKDk9GUFRfR1JPVVBfTU9EEA8SEQoNT0ZQVF9QT1JUX01PRBAQEhIKDk9GUFRfVEFCTEVfTU9EEBESGgoWT0ZQVF9NVUxUSVBBUlRfUkVRVUVTVBASEhgKFE9GUFRfTVVMVElQQVJUX1JFUExZEBMSGAoUT0ZQVF9CQVJSSUVSX1JFUVVFU1QQFBIWChJPRlBUX0JBUlJJRVJfUkVQTFkQFRIhCh1PRlBUX1FVRVVFX0dFVF9DT05GSUdfUkVRVUVTVBAWEh8KG09GUFRfUVVFVUVfR0VUX0NPTkZJR19SRVBMWRAXEhUKEU9GUFRfUk9MRV9SRVFVRVNUEBgSEwoPT0ZQVF9ST0xFX1JFUExZEBkSGgoWT0ZQVF9HRVRfQVNZTkNfUkVRVUVTVBAaEhgKFE9GUFRfR0VUX0FTWU5DX1JFUExZEBsSEgoOT0ZQVF9TRVRfQVNZTkMQHBISCg5PRlBUX01FVEVSX01PRBAdKkMKE29mcF9oZWxsb19lbGVtX3R5cGUSEgoOT0ZQSEVUX0lOVkFMSUQQABIYChRPRlBIRVRfVkVSU0lPTkJJVE1BUBABKmUKEG9mcF9jb25maWdfZmxhZ3MSFAoQT0ZQQ19GUkFHX05PUk1BTBAAEhIKDk9GUENfRlJBR19EUk9QEAESEwoPT0ZQQ19GUkFHX1JFQVNNEAISEgoOT0ZQQ19GUkFHX01BU0sQAypAChBvZnBfdGFibGVfY29uZmlnEhEKDU9GUFRDX0lOVkFMSUQQABIZChVPRlBUQ19ERVBSRUNBVEVEX01BU0sQAyo+CglvZnBfdGFibGUSEQoNT0ZQVFRfSU5WQUxJRBAAEg4KCU9GUFRUX01BWBD+ARIOCglPRlBUVF9BTEwQ/wEquwEKEG9mcF9jYXBhYmlsaXRpZXMSEAoMT0ZQQ19JTlZBTElEEAASEwoPT0ZQQ19GTE9XX1NUQVRTEAESFAoQT0ZQQ19UQUJMRV9TVEFUUxACEhMKD09GUENfUE9SVF9TVEFUUxAEEhQKEE9GUENfR1JPVVBfU1RBVFMQCBIRCg1PRlBDX0lQX1JFQVNNECASFAoQT0ZQQ19RVUVVRV9TVEFUUxBAEhYKEU9GUENfUE9SVF9CTE9DS0VEEIACKnYKD29mcF9wb3J0X2NvbmZpZxIRCg1PRlBQQ19JTlZBTElEEAASEwoPT0ZQUENfUE9SVF9ET1dOEAESEQoNT0ZQUENfTk9fUkVDVhAEEhAKDE9GUFBDX05PX0ZXRBAgEhYKEk9GUFBDX05PX1BBQ0tFVF9JThBAKlsKDm9mcF9wb3J0X3N0YXRlEhEKDU9GUFBTX0lOVkFMSUQQABITCg9PRlBQU19MSU5LX0RPV04QARIRCg1PRlBQU19CTE9DS0VEEAISDgoKT0ZQUFNfTElWRRAEKt0CChFvZnBfcG9ydF9mZWF0dXJlcxIRCg1PRlBQRl9JTlZBTElEEAASEQoNT0ZQUEZfMTBNQl9IRBABEhEKDU9GUFBGXzEwTUJfRkQQAhISCg5PRlBQRl8xMDBNQl9IRBAEEhIKDk9GUFBGXzEwME1CX0ZEEAgSEAoMT0ZQUEZfMUdCX0hEEBASEAoMT0ZQUEZfMUdCX0ZEECASEQoNT0ZQUEZfMTBHQl9GRBBAEhIKDU9GUFBGXzQwR0JfRkQQgAESEwoOT0ZQUEZfMTAwR0JfRkQQgAISEQoMT0ZQUEZfMVRCX0ZEEIAEEhAKC09GUFBGX09USEVSEIAIEhEKDE9GUFBGX0NPUFBFUhCAEBIQCgtPRlBQRl9GSUJFUhCAIBISCg1PRlBQRl9BVVRPTkVHEIBAEhEKC09GUFBGX1BBVVNFEICAARIWChBPRlBQRl9QQVVTRV9BU1lNEICAAipECg9vZnBfcG9ydF9yZWFzb24SDQoJT0ZQUFJfQUREEAASEAoMT0ZQUFJfREVMRVRFEAESEAoMT0ZQUFJfTU9ESUZZEAIqRgoVb2ZwX2RldmljZV9jb25uZWN0aW9uEhQKEE9GUERFVl9DT05ORUNURUQQABIXChNPRlBERVZfRElTQ09OTkVDVEVEEAEqMwoOb2ZwX21hdGNoX3R5cGUSEgoOT0ZQTVRfU1RBTkRBUkQQABINCglPRlBNVF9PWE0QASprCg1vZnBfb3htX2NsYXNzEhAKDE9GUFhNQ19OWE1fMBAAEhAKDE9GUFhNQ19OWE1fMRABEhsKFU9GUFhNQ19PUEVORkxPV19CQVNJQxCAgAISGQoTT0ZQWE1DX0VYUEVSSU1FTlRFUhD//wMqkAgKE294bV9vZmJfZmllbGRfdHlwZXMSFgoST0ZQWE1UX09GQl9JTl9QT1JUEAASGgoWT0ZQWE1UX09GQl9JTl9QSFlfUE9SVBABEhcKE09GUFhNVF9PRkJfTUVUQURBVEEQAhIWChJPRlBYTVRfT0ZCX0VUSF9EU1QQAxIWChJPRlBYTVRfT0ZCX0VUSF9TUkMQBBIXChNPRlBYTVRfT0ZCX0VUSF9UWVBFEAUSFwoTT0ZQWE1UX09GQl9WTEFOX1ZJRBAGEhcKE09GUFhNVF9PRkJfVkxBTl9QQ1AQBxIWChJPRlBYTVRfT0ZCX0lQX0RTQ1AQCBIVChFPRlBYTVRfT0ZCX0lQX0VDThAJEhcKE09GUFhNVF9PRkJfSVBfUFJPVE8QChIXChNPRlBYTVRfT0ZCX0lQVjRfU1JDEAsSFwoTT0ZQWE1UX09GQl9JUFY0X0RTVBAMEhYKEk9GUFhNVF9PRkJfVENQX1NSQxANEhYKEk9GUFhNVF9PRkJfVENQX0RTVBAOEhYKEk9GUFhNVF9PRkJfVURQX1NSQxAPEhYKEk9GUFhNVF9PRkJfVURQX0RTVBAQEhcKE09GUFhNVF9PRkJfU0NUUF9TUkMQERIXChNPRlBYTVRfT0ZCX1NDVFBfRFNUEBISGgoWT0ZQWE1UX09GQl9JQ01QVjRfVFlQRRATEhoKFk9GUFhNVF9PRkJfSUNNUFY0X0NPREUQFBIVChFPRlBYTVRfT0ZCX0FSUF9PUBAVEhYKEk9GUFhNVF9PRkJfQVJQX1NQQRAWEhYKEk9GUFhNVF9PRkJfQVJQX1RQQRAXEhYKEk9GUFhNVF9PRkJfQVJQX1NIQRAYEhYKEk9GUFhNVF9PRkJfQVJQX1RIQRAZEhcKE09GUFhNVF9PRkJfSVBWNl9TUkMQGhIXChNPRlBYTVRfT0ZCX0lQVjZfRFNUEBsSGgoWT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTBAcEhoKFk9GUFhNVF9PRkJfSUNNUFY2X1RZUEUQHRIaChZPRlBYTVRfT0ZCX0lDTVBWNl9DT0RFEB4SHQoZT0ZQWE1UX09GQl9JUFY2X05EX1RBUkdFVBAfEhoKFk9GUFhNVF9PRkJfSVBWNl9ORF9TTEwQIBIaChZPRlBYTVRfT0ZCX0lQVjZfTkRfVExMECESGQoVT0ZQWE1UX09GQl9NUExTX0xBQkVMECISFgoST0ZQWE1UX09GQl9NUExTX1RDECMSFwoTT0ZQWE1UX09GQl9NUExTX0JPUxAkEhcKE09GUFhNVF9PRkJfUEJCX0lTSUQQJRIYChRPRlBYTVRfT0ZCX1RVTk5FTF9JRBAmEhoKFk9GUFhNVF9PRkJfSVBWNl9FWFRIRFIQJyozCgtvZnBfdmxhbl9pZBIPCgtPRlBWSURfTk9ORRAAEhMKDk9GUFZJRF9QUkVTRU5UEIAgKskBChRvZnBfaXB2NmV4dGhkcl9mbGFncxISCg5PRlBJRUhfSU5WQUxJRBAAEhEKDU9GUElFSF9OT05FWFQQARIOCgpPRlBJRUhfRVNQEAISDwoLT0ZQSUVIX0FVVEgQBBIPCgtPRlBJRUhfREVTVBAIEg8KC09GUElFSF9GUkFHEBASEQoNT0ZQSUVIX1JPVVRFUhAgEg4KCk9GUElFSF9IT1AQQBIRCgxPRlBJRUhfVU5SRVAQgAESEQoMT0ZQSUVIX1VOU0VREIACKvwCCg9vZnBfYWN0aW9uX3R5cGUSEAoMT0ZQQVRfT1VUUFVUEAASFgoST0ZQQVRfQ09QWV9UVExfT1VUEAsSFQoRT0ZQQVRfQ09QWV9UVExfSU4QDBIWChJPRlBBVF9TRVRfTVBMU19UVEwQDxIWChJPRlBBVF9ERUNfTVBMU19UVEwQEBITCg9PRlBBVF9QVVNIX1ZMQU4QERISCg5PRlBBVF9QT1BfVkxBThASEhMKD09GUEFUX1BVU0hfTVBMUxATEhIKDk9GUEFUX1BPUF9NUExTEBQSEwoPT0ZQQVRfU0VUX1FVRVVFEBUSDwoLT0ZQQVRfR1JPVVAQFhIUChBPRlBBVF9TRVRfTldfVFRMEBcSFAoQT0ZQQVRfREVDX05XX1RUTBAYEhMKD09GUEFUX1NFVF9GSUVMRBAZEhIKDk9GUEFUX1BVU0hfUEJCEBoSEQoNT0ZQQVRfUE9QX1BCQhAbEhgKEk9GUEFUX0VYUEVSSU1FTlRFUhD//wMqVgoWb2ZwX2NvbnRyb2xsZXJfbWF4X2xlbhISCg5PRlBDTUxfSU5WQUxJRBAAEhAKCk9GUENNTF9NQVgQ5f8DEhYKEE9GUENNTF9OT19CVUZGRVIQ//8DKs8BChRvZnBfaW5zdHJ1Y3Rpb25fdHlwZRIRCg1PRlBJVF9JTlZBTElEEAASFAoQT0ZQSVRfR09UT19UQUJMRRABEhgKFE9GUElUX1dSSVRFX01FVEFEQVRBEAISFwoTT0ZQSVRfV1JJVEVfQUNUSU9OUxADEhcKE09GUElUX0FQUExZX0FDVElPTlMQBBIXChNPRlBJVF9DTEVBUl9BQ1RJT05TEAUSDwoLT0ZQSVRfTUVURVIQBhIYChJPRlBJVF9FWFBFUklNRU5URVIQ//8DKnsKFG9mcF9mbG93X21vZF9jb21tYW5kEg0KCU9GUEZDX0FERBAAEhAKDE9GUEZDX01PRElGWRABEhcKE09GUEZDX01PRElGWV9TVFJJQ1QQAhIQCgxPRlBGQ19ERUxFVEUQAxIXChNPRlBGQ19ERUxFVEVfU1RSSUNUEAQqowEKEm9mcF9mbG93X21vZF9mbGFncxIRCg1PRlBGRl9JTlZBTElEEAASFwoTT0ZQRkZfU0VORF9GTE9XX1JFTRABEhcKE09GUEZGX0NIRUNLX09WRVJMQVAQAhIWChJPRlBGRl9SRVNFVF9DT1VOVFMQBBIXChNPRlBGRl9OT19QS1RfQ09VTlRTEAgSFwoTT0ZQRkZfTk9fQllUX0NPVU5UUxAQKlMKCW9mcF9ncm91cBIQCgxPRlBHX0lOVkFMSUQQABIQCghPRlBHX01BWBCA/v//BxIQCghPRlBHX0FMTBD8////BxIQCghPRlBHX0FOWRD/////BypKChVvZnBfZ3JvdXBfbW9kX2NvbW1hbmQSDQoJT0ZQR0NfQUREEAASEAoMT0ZQR0NfTU9ESUZZEAESEAoMT0ZQR0NfREVMRVRFEAIqUwoOb2ZwX2dyb3VwX3R5cGUSDQoJT0ZQR1RfQUxMEAASEAoMT0ZQR1RfU0VMRUNUEAESEgoOT0ZQR1RfSU5ESVJFQ1QQAhIMCghPRlBHVF9GRhADKlAKFG9mcF9wYWNrZXRfaW5fcmVhc29uEhEKDU9GUFJfTk9fTUFUQ0gQABIPCgtPRlBSX0FDVElPThABEhQKEE9GUFJfSU5WQUxJRF9UVEwQAiqLAQoXb2ZwX2Zsb3dfcmVtb3ZlZF9yZWFzb24SFgoST0ZQUlJfSURMRV9USU1FT1VUEAASFgoST0ZQUlJfSEFSRF9USU1FT1VUEAESEAoMT0ZQUlJfREVMRVRFEAISFgoST0ZQUlJfR1JPVVBfREVMRVRFEAMSFgoST0ZQUlJfTUVURVJfREVMRVRFEAQqbgoJb2ZwX21ldGVyEg0KCU9GUE1fWkVSTxAAEhAKCE9GUE1fTUFYEICA/P8HEhUKDU9GUE1fU0xPV1BBVEgQ/f///wcSFwoPT0ZQTV9DT05UUk9MTEVSEP7///8HEhAKCE9GUE1fQUxMEP////8HKm0KE29mcF9tZXRlcl9iYW5kX3R5cGUSEgoOT0ZQTUJUX0lOVkFMSUQQABIPCgtPRlBNQlRfRFJPUBABEhYKEk9GUE1CVF9EU0NQX1JFTUFSSxACEhkKE09GUE1CVF9FWFBFUklNRU5URVIQ//8DKkoKFW9mcF9tZXRlcl9tb2RfY29tbWFuZBINCglPRlBNQ19BREQQABIQCgxPRlBNQ19NT0RJRlkQARIQCgxPRlBNQ19ERUxFVEUQAipnCg9vZnBfbWV0ZXJfZmxhZ3MSEQoNT0ZQTUZfSU5WQUxJRBAAEg4KCk9GUE1GX0tCUFMQARIPCgtPRlBNRl9QS1RQUxACEg8KC09GUE1GX0JVUlNUEAQSDwoLT0ZQTUZfU1RBVFMQCCqkAwoOb2ZwX2Vycm9yX3R5cGUSFgoST0ZQRVRfSEVMTE9fRkFJTEVEEAASFQoRT0ZQRVRfQkFEX1JFUVVFU1QQARIUChBPRlBFVF9CQURfQUNUSU9OEAISGQoVT0ZQRVRfQkFEX0lOU1RSVUNUSU9OEAMSEwoPT0ZQRVRfQkFEX01BVENIEAQSGQoVT0ZQRVRfRkxPV19NT0RfRkFJTEVEEAUSGgoWT0ZQRVRfR1JPVVBfTU9EX0ZBSUxFRBAGEhkKFU9GUEVUX1BPUlRfTU9EX0ZBSUxFRBAHEhoKFk9GUEVUX1RBQkxFX01PRF9GQUlMRUQQCBIZChVPRlBFVF9RVUVVRV9PUF9GQUlMRUQQCRIeChpPRlBFVF9TV0lUQ0hfQ09ORklHX0ZBSUxFRBAKEh0KGU9GUEVUX1JPTEVfUkVRVUVTVF9GQUlMRUQQCxIaChZPRlBFVF9NRVRFUl9NT0RfRkFJTEVEEAwSHwobT0ZQRVRfVEFCTEVfRkVBVFVSRVNfRkFJTEVEEA0SGAoST0ZQRVRfRVhQRVJJTUVOVEVSEP//AypCChVvZnBfaGVsbG9fZmFpbGVkX2NvZGUSFwoTT0ZQSEZDX0lOQ09NUEFUSUJMRRAAEhAKDE9GUEhGQ19FUEVSTRABKu0CChRvZnBfYmFkX3JlcXVlc3RfY29kZRIWChJPRlBCUkNfQkFEX1ZFUlNJT04QABITCg9PRlBCUkNfQkFEX1RZUEUQARIYChRPRlBCUkNfQkFEX01VTFRJUEFSVBACEhsKF09GUEJSQ19CQURfRVhQRVJJTUVOVEVSEAMSFwoTT0ZQQlJDX0JBRF9FWFBfVFlQRRAEEhAKDE9GUEJSQ19FUEVSTRAFEhIKDk9GUEJSQ19CQURfTEVOEAYSFwoTT0ZQQlJDX0JVRkZFUl9FTVBUWRAHEhkKFU9GUEJSQ19CVUZGRVJfVU5LTk9XThAIEhcKE09GUEJSQ19CQURfVEFCTEVfSUQQCRITCg9PRlBCUkNfSVNfU0xBVkUQChITCg9PRlBCUkNfQkFEX1BPUlQQCxIVChFPRlBCUkNfQkFEX1BBQ0tFVBAMEiQKIE9GUEJSQ19NVUxUSVBBUlRfQlVGRkVSX09WRVJGTE9XEA0qnAMKE29mcF9iYWRfYWN0aW9uX2NvZGUSEwoPT0ZQQkFDX0JBRF9UWVBFEAASEgoOT0ZQQkFDX0JBRF9MRU4QARIbChdPRlBCQUNfQkFEX0VYUEVSSU1FTlRFUhACEhcKE09GUEJBQ19CQURfRVhQX1RZUEUQAxIXChNPRlBCQUNfQkFEX09VVF9QT1JUEAQSFwoTT0ZQQkFDX0JBRF9BUkdVTUVOVBAFEhAKDE9GUEJBQ19FUEVSTRAGEhMKD09GUEJBQ19UT09fTUFOWRAHEhQKEE9GUEJBQ19CQURfUVVFVUUQCBIYChRPRlBCQUNfQkFEX09VVF9HUk9VUBAJEh0KGU9GUEJBQ19NQVRDSF9JTkNPTlNJU1RFTlQQChIcChhPRlBCQUNfVU5TVVBQT1JURURfT1JERVIQCxISCg5PRlBCQUNfQkFEX1RBRxAMEhcKE09GUEJBQ19CQURfU0VUX1RZUEUQDRIWChJPRlBCQUNfQkFEX1NFVF9MRU4QDhIbChdPRlBCQUNfQkFEX1NFVF9BUkdVTUVOVBAPKvoBChhvZnBfYmFkX2luc3RydWN0aW9uX2NvZGUSFwoTT0ZQQklDX1VOS05PV05fSU5TVBAAEhUKEU9GUEJJQ19VTlNVUF9JTlNUEAESFwoTT0ZQQklDX0JBRF9UQUJMRV9JRBACEhkKFU9GUEJJQ19VTlNVUF9NRVRBREFUQRADEh4KGk9GUEJJQ19VTlNVUF9NRVRBREFUQV9NQVNLEAQSGwoXT0ZQQklDX0JBRF9FWFBFUklNRU5URVIQBRIXChNPRlBCSUNfQkFEX0VYUF9UWVBFEAYSEgoOT0ZQQklDX0JBRF9MRU4QBxIQCgxPRlBCSUNfRVBFUk0QCCqlAgoSb2ZwX2JhZF9tYXRjaF9jb2RlEhMKD09GUEJNQ19CQURfVFlQRRAAEhIKDk9GUEJNQ19CQURfTEVOEAESEgoOT0ZQQk1DX0JBRF9UQUcQAhIbChdPRlBCTUNfQkFEX0RMX0FERFJfTUFTSxADEhsKF09GUEJNQ19CQURfTldfQUREUl9NQVNLEAQSGAoUT0ZQQk1DX0JBRF9XSUxEQ0FSRFMQBRIUChBPRlBCTUNfQkFEX0ZJRUxEEAYSFAoQT0ZQQk1DX0JBRF9WQUxVRRAHEhMKD09GUEJNQ19CQURfTUFTSxAIEhUKEU9GUEJNQ19CQURfUFJFUkVREAkSFAoQT0ZQQk1DX0RVUF9GSUVMRBAKEhAKDE9GUEJNQ19FUEVSTRALKtIBChhvZnBfZmxvd19tb2RfZmFpbGVkX2NvZGUSEwoPT0ZQRk1GQ19VTktOT1dOEAASFgoST0ZQRk1GQ19UQUJMRV9GVUxMEAESGAoUT0ZQRk1GQ19CQURfVEFCTEVfSUQQAhITCg9PRlBGTUZDX09WRVJMQVAQAxIRCg1PRlBGTUZDX0VQRVJNEAQSFwoTT0ZQRk1GQ19CQURfVElNRU9VVBAFEhcKE09GUEZNRkNfQkFEX0NPTU1BTkQQBhIVChFPRlBGTUZDX0JBRF9GTEFHUxAHKqEDChlvZnBfZ3JvdXBfbW9kX2ZhaWxlZF9jb2RlEhgKFE9GUEdNRkNfR1JPVVBfRVhJU1RTEAASGQoVT0ZQR01GQ19JTlZBTElEX0dST1VQEAESHgoaT0ZQR01GQ19XRUlHSFRfVU5TVVBQT1JURUQQAhIZChVPRlBHTUZDX09VVF9PRl9HUk9VUFMQAxIaChZPRlBHTUZDX09VVF9PRl9CVUNLRVRTEAQSIAocT0ZQR01GQ19DSEFJTklOR19VTlNVUFBPUlRFRBAFEh0KGU9GUEdNRkNfV0FUQ0hfVU5TVVBQT1JURUQQBhIQCgxPRlBHTUZDX0xPT1AQBxIZChVPRlBHTUZDX1VOS05PV05fR1JPVVAQCBIZChVPRlBHTUZDX0NIQUlORURfR1JPVVAQCRIUChBPRlBHTUZDX0JBRF9UWVBFEAoSFwoTT0ZQR01GQ19CQURfQ09NTUFORBALEhYKEk9GUEdNRkNfQkFEX0JVQ0tFVBAMEhUKEU9GUEdNRkNfQkFEX1dBVENIEA0SEQoNT0ZQR01GQ19FUEVSTRAOKo8BChhvZnBfcG9ydF9tb2RfZmFpbGVkX2NvZGUSFAoQT0ZQUE1GQ19CQURfUE9SVBAAEhcKE09GUFBNRkNfQkFEX0hXX0FERFIQARIWChJPRlBQTUZDX0JBRF9DT05GSUcQAhIZChVPRlBQTUZDX0JBRF9BRFZFUlRJU0UQAxIRCg1PRlBQTUZDX0VQRVJNEAQqXQoZb2ZwX3RhYmxlX21vZF9mYWlsZWRfY29kZRIVChFPRlBUTUZDX0JBRF9UQUJMRRAAEhYKEk9GUFRNRkNfQkFEX0NPTkZJRxABEhEKDU9GUFRNRkNfRVBFUk0QAipaChhvZnBfcXVldWVfb3BfZmFpbGVkX2NvZGUSFAoQT0ZQUU9GQ19CQURfUE9SVBAAEhUKEU9GUFFPRkNfQkFEX1FVRVVFEAESEQoNT0ZQUU9GQ19FUEVSTRACKl4KHW9mcF9zd2l0Y2hfY29uZmlnX2ZhaWxlZF9jb2RlEhUKEU9GUFNDRkNfQkFEX0ZMQUdTEAASEwoPT0ZQU0NGQ19CQURfTEVOEAESEQoNT0ZQU0NGQ19FUEVSTRACKloKHG9mcF9yb2xlX3JlcXVlc3RfZmFpbGVkX2NvZGUSEQoNT0ZQUlJGQ19TVEFMRRAAEhEKDU9GUFJSRkNfVU5TVVAQARIUChBPRlBSUkZDX0JBRF9ST0xFEAIqxQIKGW9mcF9tZXRlcl9tb2RfZmFpbGVkX2NvZGUSEwoPT0ZQTU1GQ19VTktOT1dOEAASGAoUT0ZQTU1GQ19NRVRFUl9FWElTVFMQARIZChVPRlBNTUZDX0lOVkFMSURfTUVURVIQAhIZChVPRlBNTUZDX1VOS05PV05fTUVURVIQAxIXChNPRlBNTUZDX0JBRF9DT01NQU5EEAQSFQoRT0ZQTU1GQ19CQURfRkxBR1MQBRIUChBPRlBNTUZDX0JBRF9SQVRFEAYSFQoRT0ZQTU1GQ19CQURfQlVSU1QQBxIUChBPRlBNTUZDX0JBRF9CQU5EEAgSGwoXT0ZQTU1GQ19CQURfQkFORF9ERVRBSUwQCRIZChVPRlBNTUZDX09VVF9PRl9NRVRFUlMQChIYChRPRlBNTUZDX09VVF9PRl9CQU5EUxALKqkBCh5vZnBfdGFibGVfZmVhdHVyZXNfZmFpbGVkX2NvZGUSFQoRT0ZQVEZGQ19CQURfVEFCTEUQABIYChRPRlBURkZDX0JBRF9NRVRBREFUQRABEhQKEE9GUFRGRkNfQkFEX1RZUEUQAhITCg9PRlBURkZDX0JBRF9MRU4QAxIYChRPRlBURkZDX0JBRF9BUkdVTUVOVBAEEhEKDU9GUFRGRkNfRVBFUk0QBSrOAgoSb2ZwX211bHRpcGFydF90eXBlEg4KCk9GUE1QX0RFU0MQABIOCgpPRlBNUF9GTE9XEAESEwoPT0ZQTVBfQUdHUkVHQVRFEAISDwoLT0ZQTVBfVEFCTEUQAxIUChBPRlBNUF9QT1JUX1NUQVRTEAQSDwoLT0ZQTVBfUVVFVUUQBRIPCgtPRlBNUF9HUk9VUBAGEhQKEE9GUE1QX0dST1VQX0RFU0MQBxIYChRPRlBNUF9HUk9VUF9GRUFUVVJFUxAIEg8KC09GUE1QX01FVEVSEAkSFgoST0ZQTVBfTUVURVJfQ09ORklHEAoSGAoUT0ZQTVBfTUVURVJfRkVBVFVSRVMQCxIYChRPRlBNUF9UQUJMRV9GRUFUVVJFUxAMEhMKD09GUE1QX1BPUlRfREVTQxANEhgKEk9GUE1QX0VYUEVSSU1FTlRFUhD//wMqSgobb2ZwX211bHRpcGFydF9yZXF1ZXN0X2ZsYWdzEhYKEk9GUE1QRl9SRVFfSU5WQUxJRBAAEhMKD09GUE1QRl9SRVFfTU9SRRABKkwKGW9mcF9tdWx0aXBhcnRfcmVwbHlfZmxhZ3MSGAoUT0ZQTVBGX1JFUExZX0lOVkFMSUQQABIVChFPRlBNUEZfUkVQTFlfTU9SRRABKuQDChtvZnBfdGFibGVfZmVhdHVyZV9wcm9wX3R5cGUSGAoUT0ZQVEZQVF9JTlNUUlVDVElPTlMQABIdChlPRlBURlBUX0lOU1RSVUNUSU9OU19NSVNTEAESFwoTT0ZQVEZQVF9ORVhUX1RBQkxFUxACEhwKGE9GUFRGUFRfTkVYVF9UQUJMRVNfTUlTUxADEhkKFU9GUFRGUFRfV1JJVEVfQUNUSU9OUxAEEh4KGk9GUFRGUFRfV1JJVEVfQUNUSU9OU19NSVNTEAUSGQoVT0ZQVEZQVF9BUFBMWV9BQ1RJT05TEAYSHgoaT0ZQVEZQVF9BUFBMWV9BQ1RJT05TX01JU1MQBxIRCg1PRlBURlBUX01BVENIEAgSFQoRT0ZQVEZQVF9XSUxEQ0FSRFMQChIaChZPRlBURlBUX1dSSVRFX1NFVEZJRUxEEAwSHwobT0ZQVEZQVF9XUklURV9TRVRGSUVMRF9NSVNTEA0SGgoWT0ZQVEZQVF9BUFBMWV9TRVRGSUVMRBAOEh8KG09GUFRGUFRfQVBQTFlfU0VURklFTERfTUlTUxAPEhoKFE9GUFRGUFRfRVhQRVJJTUVOVEVSEP7/AxIfChlPRlBURlBUX0VYUEVSSU1FTlRFUl9NSVNTEP//AyqTAQoWb2ZwX2dyb3VwX2NhcGFiaWxpdGllcxISCg5PRlBHRkNfSU5WQUxJRBAAEhgKFE9GUEdGQ19TRUxFQ1RfV0VJR0hUEAESGgoWT0ZQR0ZDX1NFTEVDVF9MSVZFTkVTUxACEhMKD09GUEdGQ19DSEFJTklORxAEEhoKFk9GUEdGQ19DSEFJTklOR19DSEVDS1MQCCprChRvZnBfcXVldWVfcHJvcGVydGllcxIRCg1PRlBRVF9JTlZBTElEEAASEgoOT0ZQUVRfTUlOX1JBVEUQARISCg5PRlBRVF9NQVhfUkFURRACEhgKEk9GUFFUX0VYUEVSSU1FTlRFUhD//wMqcQoTb2ZwX2NvbnRyb2xsZXJfcm9sZRIXChNPRlBDUl9ST0xFX05PQ0hBTkdFEAASFAoQT0ZQQ1JfUk9MRV9FUVVBTBABEhUKEU9GUENSX1JPTEVfTUFTVEVSEAISFAoQT0ZQQ1JfUk9MRV9TTEFWRRADQlUKHm9yZy5vcGVuY29yZC52b2x0aGEub3BlbmZsb3cxM1ozZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29wZW5mbG93XzEzSpW6BgoHEgU5AJkSAQrkFAoBDBIDOQASGvkGCiBUaGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcmVuZGVyaW5nIG9mIE9wZW5GbG93IG1lc3NhZ2UKIGRlZmluaXRpb25zIGludG8gcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2VzLiBXZSBwcmVzZXJ2ZWQgdGhlIHNuYWtlCiBjYXNlIHN5bnRheCwgYW5kIG1hZGUgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgogLSBhbGwgcGFkIGZpZWxkcyBkcm9wcGVkCiAtIGZvciBlYWNoIGVudW0gdmFsdWUgYWJvdmUgMHg3ZmZmZmZmZiB0aGUgTVNCIGlzIGRyb3BwZWQuIEZvciBleGFtcGxlLAogICAweGZmZmZmZmZmIGlzIG5vdyAweDdmZmZmZmZmLgogLSAnPHR5cGU+IHRoaW5nWy4uLl0nIGlzIHJlcGxhY2VkIHdpdGggJ3JlcGVhdGVkIDx0eXBlPiB0aGluZycKIC0gJ2NoYXIgdGhpbmdbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAnc3RyaW5nIHRoaW5nJwogLSAndWludDhfdCBkYXRhWy4uLl0nIGlzIHJlcGxhY2VkIHdpdGggJ2J5dGVzIGRhdGEnCiAtIHRoZSBmb2xsb3dpbmcgc3lzdGVtYXRpYyBjaGFuZ2VzIGFyZSBkb25lIHRvIHZhcmlvdXMgaW50ZWdlciB0eXBlczoKICAgdWludDhfdCAgLT4gdWludDMyCiAgIHVpbnQxNl90IC0+IHVpbnQzMgogICB1aW50MzJfdCAtPiB1aW50MzIKICAgdWludDY0X3QgLT4gdWludDY0CiAtIHJlbW92ZWQgbW9zdCBsZW5ndGgsIGxlbiwgc2l6ZSBmaWVsZHMgd2hlcmUgdGhlc2UgdmFsdWVzIGNhbiBiZSBkZXRlcm1pbmVkCiAgIGZyb20gdGhlIGV4cGxpY2l0bHkgZW5jb2RlZCBsZW5ndGggb2YgInJlcGVhdGVkIiBwcm90b2J1ZiBmaWVsZHMuCiAtIGV4cGxpY2l0IHVzZSBvZiBlbnVtIHR5cGVzIHdoZXJlZXZlciBpdCBpcyB1bmFtYmlnb3VzIChhbmQgbm90IHVzZWQgYXMKICAgYml0bWFzay9mbGFncyB2YWx1ZS4KCjKmDSBDb3B5cmlnaHQgKGMpIDIwMDggVGhlIEJvYXJkIG9mIFRydXN0ZWVzIG9mIFRoZSBMZWxhbmQgU3RhbmZvcmQKIEp1bmlvciBVbml2ZXJzaXR5CiBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTIgT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24KCiBXZSBhcmUgbWFraW5nIHRoZSBPcGVuRmxvdyBzcGVjaWZpY2F0aW9uIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KIChTb2Z0d2FyZSkgYXZhaWxhYmxlIGZvciBwdWJsaWMgdXNlIGFuZCBiZW5lZml0IHdpdGggdGhlIGV4cGVjdGF0aW9uCiB0aGF0IG90aGVycyB3aWxsIHVzZSwgbW9kaWZ5IGFuZCBlbmhhbmNlIHRoZSBTb2Z0d2FyZSBhbmQgY29udHJpYnV0ZQogdGhvc2UgZW5oYW5jZW1lbnRzIGJhY2sgdG8gdGhlIGNvbW11bml0eS4gSG93ZXZlciwgc2luY2Ugd2Ugd291bGQKIGxpa2UgdG8gbWFrZSB0aGUgU29mdHdhcmUgYXZhaWxhYmxlIGZvciBicm9hZGVzdCB1c2UsIHdpdGggYXMgZmV3CiByZXN0cmljdGlvbnMgYXMgcG9zc2libGUgcGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZgogY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBTb2Z0d2FyZSB0byBkZWFsIGluCiB0aGUgU29mdHdhcmUgdW5kZXIgdGhlIGNvcHlyaWdodHMgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCiBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KCiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCiBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiBTT0ZUV0FSRS4KCiBUaGUgbmFtZSBhbmQgdHJhZGVtYXJrcyBvZiBjb3B5cmlnaHQgaG9sZGVyKHMpIG1heSBOT1QgYmUgdXNlZCBpbgogYWR2ZXJ0aXNpbmcgb3IgcHVibGljaXR5IHBlcnRhaW5pbmcgdG8gdGhlIFNvZnR3YXJlIG9yIGFueQogZGVyaXZhdGl2ZXMgd2l0aG91dCBzcGVjaWZpYywgd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLgoyNSBPcGVuRmxvdzogcHJvdG9jb2wgYmV0d2VlbiBjb250cm9sbGVyIGFuZCBkYXRhcGF0aC4gCggKAQgSAzsASgoJCgIICxIDOwBKCggKAQgSAzwANwoJCgIIARIDPAA3CggKAQISAz4AFAoJCgIDABIDQAAmCqYECgIFABIEVABpARo1IFBvcnQgbnVtYmVyaW5nLiBQb3J0cyBhcmUgbnVtYmVyZWQgc3RhcnRpbmcgZnJvbSAxLiAyYyBWZXJzaW9uIG51bWJlcjoKIE9wZW5GbG93IHZlcnNpb25zIHJlbGVhc2VkOiAweDAxID0gMS4wIDsgMHgwMiA9IDEuMSA7IDB4MDMgPSAxLjIKICAgICAweDA0ID0gMS4zCjJVIFRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBpbiB0aGUgdmVyc2lvbiBmaWVsZCBpcyByZXNlcnZlZCBhbmQgbXVzdAogYmUgc2V0IHRvIHplcm8uCjJ6I2RlZmluZSBPRlBfVkVSU0lPTiAgIDB4MDQKI2RlZmluZSBQSVBFTElORV9UQUJMRVMgNjQKI2RlZmluZSBPRlBfTUFYX1RBQkxFX05BTUVfTEVOIDMyCiNkZWZpbmUgT0ZQX01BWF9QT1JUX05BTUVfTEVOICAxNgoyLSBPZmZpY2lhbCBJQU5BIHJlZ2lzdGVyZWQgcG9ydCBmb3IgT3BlbkZsb3cuIDI2I2RlZmluZSBPRlBfVENQX1BPUlQgIDY2NTMKI2RlZmluZSBPRlBfU1NMX1BPUlQgIDY2NTMKMkQjZGVmaW5lIE9GUF9FVEhfQUxFTiA2ICAgICAgICAgIC8qIEJ5dGVzIGluIGFuIEV0aGVybmV0IGFkZHJlc3MuICovCgoKCgMFAAESA1QFEAoLCgQFAAIAEgNVBBgKDAoFBQACAAESA1UEEAoMCgUFAAIAAhIDVRYXCkMKBAUAAgESA1gEIRo2IE1heGltdW0gbnVtYmVyIG9mIHBoeXNpY2FsIGFuZCBsb2dpY2FsIHN3aXRjaCBwb3J0cy4gCgwKBQUAAgEBEgNYBAwKDAoFBQACAQISA1gWIAq8AQoEBQACAhIDWwQh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BA0CAgUSBPQDCA4KDQoFBA0CAgESBPQDDxMKDQoFBA0CAgMSBPQDFhcKtwcKBAQNAgMSBIsECCEaSyNkZWZpbmUgT1hNX09GX0lOX1BIWV9QT1JUIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSU5fUEhZX1BPUlQsIDQpCiIgIFVzZWQgZm9yIE9GUFhNVF9PRl9JTl9QSFlfUE9SVCAyuQYgUGh5c2ljYWwgcG9ydCBvbiB3aGljaCB0aGUgcGFja2V0IHdhcyByZWNlaXZlZC4KCiBDb25zaWRlciBhIHBhY2tldCByZWNlaXZlZCBvbiBhIHR1bm5lbCBpbnRlcmZhY2UgZGVmaW5lZCBvdmVyIGEgbGluawogYWdncmVnYXRpb24gZ3JvdXAgKExBRykgd2l0aCB0d28gcGh5c2ljYWwgcG9ydCBtZW1iZXJzLiAgSWYgdGhlIHR1bm5lbAogaW50ZXJmYWNlIGlzIHRoZSBsb2dpY2FsIHBvcnQgYm91bmQgdG8gT3BlbkZsb3cuICBJbiB0aGlzIGNhc2UsCiBPRlBYTVRfT0ZfSU5fUE9SVCBpcyB0aGUgdHVubmVsJ3MgcG9ydCBudW1iZXIgYW5kIE9GUFhNVF9PRl9JTl9QSFlfUE9SVCBpcwogdGhlIHBoeXNpY2FsIHBvcnQgbnVtYmVyIG9mIHRoZSBMQUcgb24gd2hpY2ggdGhlIHR1bm5lbCBpcyBjb25maWd1cmVkLgoKIFdoZW4gYSBwYWNrZXQgaXMgcmVjZWl2ZWQgZGlyZWN0bHkgb24gYSBwaHlzaWNhbCBwb3J0IGFuZCBub3QgcHJvY2Vzc2VkIGJ5IGEKIGxvZ2ljYWwgcG9ydCwgT0ZQWE1UX09GX0lOX1BPUlQgYW5kIE9GUFhNVF9PRl9JTl9QSFlfUE9SVCBoYXZlIHRoZSBzYW1lCiB2YWx1ZS4KCiBUaGlzIGZpZWxkIGlzIHVzdWFsbHkgbm90IGF2YWlsYWJsZSBpbiBhIHJlZ3VsYXIgbWF0Y2ggYW5kIG9ubHkgYXZhaWxhYmxlCiBpbiBvZnBfcGFja2V0X2luIG1lc3NhZ2VzIHdoZW4gaXQncyBkaWZmZXJlbnQgZnJvbSBPWE1fT0ZfSU5fUE9SVC4KCiBQcmVyZXFzOiBPWE1fT0ZfSU5fUE9SVCBtdXN0IGJlIHByZXNlbnQuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CAwUSBIsECA4KDQoFBA0CAwESBIsEDxwKDQoFBA0CAwMSBIsEHyAKrQIKBAQNAgQSBJcECCIajgEjZGVmaW5lIE9YTV9PRl9NRVRBREFUQSAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTUVUQURBVEEsIDgpCiNkZWZpbmUgT1hNX09GX01FVEFEQVRBX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9NRVRBREFUQSwgOCkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9NRVRBREFUQSAybiBUYWJsZSBtZXRhZGF0YS4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogNjQtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQNAgQFEgSXBAgOCg0KBQQNAgQBEgSXBA8dCg0KBQQNAgQDEgSXBCAhCuIDCgQEDQIFEgSkBAgaGpgCI2RlZmluZSBPWE1fT0ZfRVRIX0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9EU1QsIDYpCiNkZWZpbmUgT1hNX09GX0VUSF9EU1RfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfRFNULCA2KQojZGVmaW5lIE9YTV9PRl9FVEhfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfRVRIX1NSQywgNikKI2RlZmluZSBPWE1fT0ZfRVRIX1NSQ19XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9TUkMsIDYpCiIvIFVzZWQgZm9yIE9GUFhNVF9PRkJfRVRIX0RTVCAoZXhhY3RseSA2IGJ5dGVzKSAyhwEgU291cmNlIG9yIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gRXRoZXJuZXQgaGVhZGVyLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLiAKDQoFBA0CBQUSBKQECA0KDQoFBA0CBQESBKQEDhUKDQoFBA0CBQMSBKQEGBkKPQoEBA0CBhIEpQQIGiIvIFVzZWQgZm9yIE9GUFhNVF9PRkJfRVRIX1NSQyAoZXhhY3RseSA2IGJ5dGVzKSAKDQoFBA0CBgUSBKUECA0KDQoFBA0CBgESBKUEDhUKDQoFBA0CBgMSBKUEGBkK6QEKBAQNAgcSBK8ECBwaRiNkZWZpbmUgT1hNX09GX0VUSF9UWVBFICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfVFlQRSwyKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0VUSF9UWVBFIDJzIFBhY2tldCdzIEV0aGVybmV0IHR5cGUuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIHBRIErwQIDgoNCgUEDQIHARIErwQPFwoNCgUEDQIHAxIErwQaGwqDCwoEBA0CCBIE1QQIHBqOASNkZWZpbmUgT1hNX09GX1ZMQU5fVklEICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9WTEFOX1ZJRCwgMikKI2RlZmluZSBPWE1fT0ZfVkxBTl9WSURfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX1ZMQU5fVklELCAyKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1ZMQU5fVklEIDLDCSA4MDIuMVEgVklELgoKIEZvciBhIHBhY2tldCB3aXRoIGFuIDgwMi4xUSBoZWFkZXIsIHRoaXMgaXMgdGhlIFZMQU4tSUQgKFZJRCkgZnJvbSB0aGUKIG91dGVybW9zdCB0YWcsIHdpdGggdGhlIENGSSBiaXQgZm9yY2VkIHRvIDEuIEZvciBhIHBhY2tldCB3aXRoIG5vIDgwMi4xUQogaGVhZGVyLCB0aGlzIGhhcyB2YWx1ZSBPRlBWSURfTk9ORS4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyIHdpdGggYml0IDEzIGluZGljYXRpbmcKIHByZXNlbmNlIG9mIFZMQU4gaGVhZGVyIGFuZCAzIG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDEzIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCiBUaGlzIGZpZWxkIGNhbiBiZSB1c2VkIGluIHZhcmlvdXMgd2F5czoKCiAgIC0gSWYgaXQgaXMgbm90IGNvbnN0cmFpbmVkIGF0IGFsbCwgdGhlIG54X21hdGNoIG1hdGNoZXMgcGFja2V0cyB3aXRob3V0CiAgICAgYW4gODAyLjFRIGhlYWRlciBvciB3aXRoIGFuIDgwMi4xUSBoZWFkZXIgdGhhdCBoYXMgYW55IFZJRCB2YWx1ZS4KCiAgIC0gVGVzdGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggd2l0aCAweDAgbWF0Y2hlcyBvbmx5IHBhY2tldHMgd2l0aG91dAogICAgIGFuIDgwMi4xUSBoZWFkZXIuCgogICAtIFRlc3RpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIHdpdGggYSBWSUQgdmFsdWUgd2l0aCBDRkk9MSBtYXRjaGVzIHBhY2tldHMKICAgICB0aGF0IGhhdmUgYW4gODAyLjFRIGhlYWRlciB3aXRoIGEgc3BlY2lmaWVkIFZJRC4KCiAgIC0gVGVzdGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggd2l0aCBhIG5vbnplcm8gVklEIHZhbHVlIHdpdGggQ0ZJPTAgZG9lcwogICAgIG5vdCBtYWtlIHNlbnNlLiAgVGhlIHN3aXRjaCBtYXkgcmVqZWN0IHRoaXMgY29tYmluYXRpb24uCgogICAtIFRlc3Rpbmcgd2l0aCBueG1fdmFsdWU9MCwgbnhtX21hc2s9MHgwZmZmIG1hdGNoZXMgcGFja2V0cyB3aXRoIG5vIDgwMi4xUQogICAgIGhlYWRlciBvciB3aXRoIGFuIDgwMi4xUSBoZWFkZXIgd2l0aCBhIFZJRCBvZiAwLgoKICAgLSBUZXN0aW5nIHdpdGggbnhtX3ZhbHVlPTB4MTAwMCwgbnhtX21hc2s9MHgxMDAwIG1hdGNoZXMgcGFja2V0cyB3aXRoCiAgICAgYW4gODAyLjFRIGhlYWRlciB0aGF0IGhhcyBhbnkgVklEIHZhbHVlLgoKDQoFBA0CCAUSBNUECA4KDQoFBA0CCAESBNUEDxcKDQoFBA0CCAMSBNUEGhsK0AMKBAQNAgkSBOUECB0aRyNkZWZpbmUgT1hNX09GX1ZMQU5fUENQICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9WTEFOX1BDUCwgMSkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9WTEFOX1BDUCAy2AIgODAyLjFRIFBDUC4KCiBGb3IgYSBwYWNrZXQgd2l0aCBhbiA4MDIuMVEgaGVhZGVyLCB0aGlzIGlzIHRoZSBWTEFOLVBDUCBmcm9tIHRoZQogb3V0ZXJtb3N0IHRhZy4gIEZvciBhIHBhY2tldCB3aXRoIG5vIDgwMi4xUSBoZWFkZXIsIHRoaXMgaGFzIHZhbHVlCiAwLgoKIFByZXJlcXM6IE9YTV9PRl9WTEFOX1ZJRCBtdXN0IGJlIGRpZmZlcmVudCBmcm9tIE9GUFZJRF9OT05FLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDUgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMyBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuCgoNCgUEDQIJBRIE5QQIDgoNCgUEDQIJARIE5QQPFwoNCgUEDQIJAxIE5QQaHAqoAwoEBA0CChIE8QQIHBpHI2RlZmluZSBPWE1fT0ZfSVBfRFNDUCAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUF9EU0NQLCAxKQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQX0RTQ1AgMrECIFRoZSBEaWZmIFNlcnYgQ29kZSBQb2ludCAoRFNDUCkgYml0cyBvZiB0aGUgSVAgaGVhZGVyLgogUGFydCBvZiB0aGUgSVB2NCBUb1MgZmllbGQgb3IgdGhlIElQdjYgVHJhZmZpYyBDbGFzcyBmaWVsZC4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCAyIG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDYgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CCgUSBPEECA4KDQoFBA0CCgESBPEEDxYKDQoFBA0CCgMSBPEEGRsKjQMKBAQNAgsSBP0ECBsaRSNkZWZpbmUgT1hNX09GX0lQX0VDTiAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUF9FQ04sIDEpCiIcIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBfRUNOIDKZAiBUaGUgRUNOIGJpdHMgb2YgdGhlIElQIGhlYWRlci4KIFBhcnQgb2YgdGhlIElQdjQgVG9TIGZpZWxkIG9yIHRoZSBJUHY2IFRyYWZmaWMgQ2xhc3MgZmllbGQuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNiBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAyIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAgsFEgT9BAgOCg0KBQQNAgsBEgT9BA8VCg0KBQQNAgsDEgT9BBgaCo0CCgQEDQIMEgSHBQgdGkcjZGVmaW5lIE9YTV9PRl9JUF9QUk9UTyAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBfUFJPVE8sIDEpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBfUFJPVE8gMpUBIFRoZSAicHJvdG9jb2wiIGJ5dGUgaW4gdGhlIElQIGhlYWRlci4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CDAUSBIcFCA4KDQoFBA0CDAESBIcFDxcKDQoFBA0CDAMSBIcFGhwKjQQKBAQNAg0SBJUFCB0apAIjZGVmaW5lIE9YTV9PRl9JUFY0X1NSQyAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X1NSQywgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNF9TUkNfVyAgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9TUkMsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjRfRFNUICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfRFNULCA0KQojZGVmaW5lIE9YTV9PRl9JUFY0X0RTVF9XICAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X0RTVCwgNCkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUFY0X1NSQyAytwEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBhZGRyZXNzIGluIHRoZSBJUCBoZWFkZXIuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODAwIGV4YWN0bHkuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBA0CDQUSBJUFCA4KDQoFBA0CDQESBJUFDxcKDQoFBA0CDQMSBJUFGhwKLAoEBA0CDhIElgUIHSIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBWNF9EU1QgCg0KBQQNAg4FEgSWBQgOCg0KBQQNAg4BEgSWBQ8XCg0KBQQNAg4DEgSWBRocCqEDCgQEDQIPEgSjBQgcGowBI2RlZmluZSBPWE1fT0ZfVENQX1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1RDUF9TUkMsIDIpCiNkZWZpbmUgT1hNX09GX1RDUF9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9UQ1BfRFNULCAyKQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1RDUF9TUkMgMuQBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gcG9ydCBpbiB0aGUgVENQIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNiBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAg8FEgSjBQgOCg0KBQQNAg8BEgSjBQ8WCg0KBQQNAg8DEgSjBRkbCisKBAQNAhASBKQFCBwiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1RDUF9EU1QgCg0KBQQNAhAFEgSkBQgOCg0KBQQNAhABEgSkBQ8WCg0KBQQNAhADEgSkBRkbCqUDCgQEDQIREgSxBQgcGowBI2RlZmluZSBPWE1fT0ZfVURQX1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1VEUF9TUkMsIDIpCiNkZWZpbmUgT1hNX09GX1VEUF9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9VRFBfRFNULCAyKQoiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1VEUF9TUkMgMugBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gcG9ydCBpbiB0aGUgVURQIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggMTcgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIRBRIEsQUIDgoNCgUEDQIRARIEsQUPFgoNCgUEDQIRAxIEsQUZGworCgQEDQISEgSyBQgcIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9VRFBfRFNUIAoNCgUEDQISBRIEsgUIDgoNCgUEDQISARIEsgUPFgoNCgUEDQISAxIEsgUZGwqqAwoEBA0CExIEvwUIHRqOASNkZWZpbmUgT1hNX09GX1NDVFBfU1JDICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9TQ1RQX1NSQywgMikKI2RlZmluZSBPWE1fT0ZfU0NUUF9EU1QgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1NDVFBfRFNULCAyKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1NDVFBfU1JDIDLqASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIFNDVFAgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCAxMzIgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQITBRIEvwUIDgoNCgUEDQITARIEvwUPFwoNCgUEDQITAxIEvwUaHAosCgQEDQIUEgTABQgdIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9TQ1RQX0RTVCAKDQoFBA0CFAUSBMAFCA4KDQoFBA0CFAESBMAFDxcKDQoFBA0CFAMSBMAFGhwKhwMKBAQNAhUSBM0FCCAamAEjZGVmaW5lIE9YTV9PRl9JQ01QVjRfVFlQRSAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjRfVFlQRSwgMSkKI2RlZmluZSBPWE1fT0ZfSUNNUFY0X0NPREUgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY0X0NPREUsIDEpCiIhIFVzZWQgZm9yIE9GUFhNVF9PRkJfSUNNUFY0X1RZUEUgMroBIFRoZSB0eXBlIG9yIGNvZGUgaW4gdGhlIElDTVAgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwMCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCAxIGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAhUFEgTNBQgOCg0KBQQNAhUBEgTNBQ8aCg0KBQQNAhUDEgTNBR0fCi8KBAQNAhYSBM4FCCAiISBVc2VkIGZvciBPRlBYTVRfT0ZCX0lDTVBWNF9DT0RFIAoNCgUEDQIWBRIEzgUIDgoNCgUEDQIWARIEzgUPGgoNCgUEDQIWAxIEzgUdHwrVAgoEBA0CFxIE2wUIGxpFI2RlZmluZSBPWE1fT0ZfQVJQX09QICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9PUCwgMikKIhwgVXNlZCBmb3IgT0ZQWE1UX09GQl9BUlBfT1AgMuEBIEFSUCBvcGNvZGUuCgogRm9yIGFuIEV0aGVybmV0K0lQIEFSUCBwYWNrZXQsIHRoZSBvcGNvZGUgaW4gdGhlIEFSUCBoZWFkZXIuICBBbHdheXMgMAogb3RoZXJ3aXNlLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwNiBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAhcFEgTbBQgOCg0KBQQNAhcBEgTbBQ8VCg0KBQQNAhcDEgTbBRgaCrUECgQEDQIYEgTqBQgcGpgCI2RlZmluZSBPWE1fT0ZfQVJQX1NQQSAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TUEEsIDQpCiNkZWZpbmUgT1hNX09GX0FSUF9TUEFfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU1BBLCA0KQojZGVmaW5lIE9YTV9PRl9BUlBfVFBBICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RQQSwgNCkKI2RlZmluZSBPWE1fT0ZfQVJQX1RQQV9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9UUEEsIDQpCiIYIEZvciBPRlBYTVRfT0ZCX0FSUF9TUEEgMvEBIEZvciBhbiBFdGhlcm5ldCtJUCBBUlAgcGFja2V0LCB0aGUgc291cmNlIG9yIHRhcmdldCBwcm90b2NvbCBhZGRyZXNzCiBpbiB0aGUgQVJQIGhlYWRlci4gIEFsd2F5cyAwIG90aGVyd2lzZS4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDYgZXhhY3RseS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDQIYBRIE6gUIDgoNCgUEDQIYARIE6gUPFgoNCgUEDQIYAxIE6gUZGwomCgQEDQIZEgTrBQgcIhggRm9yIE9GUFhNVF9PRkJfQVJQX1RQQSAKDQoFBA0CGQUSBOsFCA4KDQoFBA0CGQESBOsFDxYKDQoFBA0CGQMSBOsFGRsKtwQKBAQNAhoSBPkFCBsanAIjZGVmaW5lIE9YTV9PRl9BUlBfU0hBICAgIE9YTV9IRUFERVIgICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TSEEsIDYpCiNkZWZpbmUgT1hNX09GX0FSUF9TSEFfVyAgT1hNX0hFQURFUl9XICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NIQSwgNikKI2RlZmluZSBPWE1fT0ZfQVJQX1RIQSAgICBPWE1fSEVBREVSICAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVEhBLCA2KQojZGVmaW5lIE9YTV9PRl9BUlBfVEhBX1cgIE9YTV9IRUFERVJfVyAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9USEEsIDYpCiIiIEZvciBPRlBYTVRfT0ZCX0FSUF9TSEEgKDYgYnl0ZXMpIDLlASBGb3IgYW4gRXRoZXJuZXQrSVAgQVJQIHBhY2tldCwgdGhlIHNvdXJjZSBvciB0YXJnZXQgaGFyZHdhcmUgYWRkcmVzcwogaW4gdGhlIEFSUCBoZWFkZXIuICBBbHdheXMgMCBvdGhlcndpc2UuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODA2IGV4YWN0bHkuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CGgUSBPkFCA0KDQoFBA0CGgESBPkFDhUKDQoFBA0CGgMSBPkFGBoKMAoEBA0CGxIE+gUIGyIiIEZvciBPRlBYTVRfT0ZCX0FSUF9USEEgKDYgYnl0ZXMpIAoNCgUEDQIbBRIE+gUIDQoNCgUEDQIbARIE+gUOFQoNCgUEDQIbAxIE+gUYGgr6AwoEBA0CHBIEiAYIHBqkAiNkZWZpbmUgT1hNX09GX0lQVjZfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9TUkMsIDE2KQojZGVmaW5lIE9YTV9PRl9JUFY2X1NSQ19XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfU1JDLCAxNikKI2RlZmluZSBPWE1fT0ZfSVBWNl9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0RTVCwgMTYpCiNkZWZpbmUgT1hNX09GX0lQVjZfRFNUX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9EU1QsIDE2KQoiGSBGb3IgT0ZQWE1UX09GQl9JUFY2X1NSQyAyqQEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBhZGRyZXNzIGluIHRoZSBJUHY2IGhlYWRlci4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KCiBGb3JtYXQ6IDEyOC1iaXQgSVB2NiBhZGRyZXNzLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQNAhwFEgSIBggNCg0KBQQNAhwBEgSIBg4WCg0KBQQNAhwDEgSIBhkbCicKBAQNAh0SBIkGCBwiGSBGb3IgT0ZQWE1UX09GQl9JUFY2X0RTVCAKDQoFBA0CHQUSBIkGCA0KDQoFBA0CHQESBIkGDhYKDQoFBA0CHQMSBIkGGRsKnQMKBAQNAh4SBJcGCCAamgEjZGVmaW5lIE9YTV9PRl9JUFY2X0ZMQUJFTCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9GTEFCRUwsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjZfRkxBQkVMX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTCwgNCkKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9GTEFCRUwgMtMBIFRoZSBJUHY2IEZsb3cgTGFiZWwKCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseQoKIEZvcm1hdDogMzItYml0IGludGVnZXIgd2l0aCAxMiBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAyMCBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDQIeBRIElwYIDgoNCgUEDQIeARIElwYPGgoNCgUEDQIeAxIElwYdHwqDAwoEBA0CHxIEpAYIIBqWASNkZWZpbmUgT1hNX09GX0lDTVBWNl9UWVBFIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY2X1RZUEUsIDEpCiNkZWZpbmUgT1hNX09GX0lDTVBWNl9DT0RFIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY2X0NPREUsIDEpCiIcIEZvciBPRlBYTVRfT0ZCX0lDTVBWNl9UWVBFIDK9ASBUaGUgdHlwZSBvciBjb2RlIGluIHRoZSBJQ01QdjYgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIfBRIEpAYIDgoNCgUEDQIfARIEpAYPGgoNCgUEDQIfAxIEpAYdHwoqCgQEDQIgEgSlBgggIhwgRm9yIE9GUFhNVF9PRkJfSUNNUFY2X0NPREUgCg0KBQQNAiAFEgSlBggOCg0KBQQNAiABEgSlBg8aCg0KBQQNAiADEgSlBh0fCpEDCgQEDQIhEgSzBggiGlcjZGVmaW5lIE9YTV9PRl9JUFY2X05EX1RBUkdFVCBPWE1fSEVBREVSIFwKICAgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9ORF9UQVJHRVQsIDE2KQoiHyBGb3IgT0ZQWE1UX09GQl9JUFY2X05EX1RBUkdFVCAyiAIgVGhlIHRhcmdldCBhZGRyZXNzIGluIGFuIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5IG1lc3NhZ2UuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCiAgIE9YTV9PRl9JQ01QVjZfVFlQRSBtdXN0IGJlIGVpdGhlciAxMzUgb3IgMTM2LgoKIEZvcm1hdDogMTI4LWJpdCBJUHY2IGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CIQUSBLMGCA0KDQoFBA0CIQESBLMGDhwKDQoFBA0CIQMSBLMGHyEKlwMKBAQNAiISBMEGCB8aTCNkZWZpbmUgT1hNX09GX0lQVjZfTkRfU0xMICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfTkRfU0xMLCA2KQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X05EX1NMTCAynAIgVGhlIHNvdXJjZSBsaW5rLWxheWVyIGFkZHJlc3Mgb3B0aW9uIGluIGFuIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5CiBtZXNzYWdlLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgogICBPWE1fT0ZfSUNNUFY2X1RZUEUgbXVzdCBiZSBleGFjdGx5IDEzNS4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIiBRIEwQYIDQoNCgUEDQIiARIEwQYOGQoNCgUEDQIiAxIEwQYcHgqXAwoEBA0CIxIEzwYIHxpMI2RlZmluZSBPWE1fT0ZfSVBWNl9ORF9UTEwgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9ORF9UTEwsIDYpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfTkRfVExMIDKcAiBUaGUgdGFyZ2V0IGxpbmstbGF5ZXIgYWRkcmVzcyBvcHRpb24gaW4gYW4gSVB2NiBOZWlnaGJvciBEaXNjb3ZlcnkKIG1lc3NhZ2UuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCiAgIE9YTV9PRl9JQ01QVjZfVFlQRSBtdXN0IGJlIGV4YWN0bHkgMTM2LgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiMFEgTPBggNCg0KBQQNAiMBEgTPBg4ZCg0KBQQNAiMDEgTPBhweCv4CCgQEDQIkEgTbBggfGkojZGVmaW5lIE9YTV9PRl9NUExTX0xBQkVMICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01QTFNfTEFCRUwsIDQpCiIbIEZvciBPRlBYTVRfT0ZCX01QTFNfTEFCRUwgMoYCIFRoZSBMQUJFTCBpbiB0aGUgZmlyc3QgTVBMUyBzaGltIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4NDcgb3IgMHg4ODQ4IGV4YWN0bHkuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgd2l0aCAxMiBtb3N0LXNpZ25pZmljYW50CiBiaXRzIGZvcmNlZCB0byAwLiBPbmx5IHRoZSBsb3dlciAyMCBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIkBRIE2wYIDgoNCgUEDQIkARIE2wYPGQoNCgUEDQIkAxIE2wYcHgrcAgoEBA0CJRIE5wYIHBpHI2RlZmluZSBPWE1fT0ZfTVBMU19UQyAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NUExTX1RDLCAxKQoiGCBGb3IgT0ZQWE1UX09GQl9NUExTX1RDIDLqASBUaGUgVEMgaW4gdGhlIGZpcnN0IE1QTFMgc2hpbSBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4ODQ3IG9yIDB4ODg0OCBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDUgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMyBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIlBRIE5wYIDgoNCgUEDQIlARIE5wYPFgoNCgUEDQIlAxIE5wYZGwrkAgoEBA0CJhIE8wYIHRpJI2RlZmluZSBPWE1fT0ZfTVBMU19CT1MgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTVBMU19CT1MsIDEpCiIZIEZvciBPRlBYTVRfT0ZCX01QTFNfQk9TIDLvASBUaGUgQm9TIGJpdCBpbiB0aGUgZmlyc3QgTVBMUyBzaGltIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4NDcgb3IgMHg4ODQ4IGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNyBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlc3QgYml0IGhhdmUgYSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiYFEgTzBggOCg0KBQQNAiYBEgTzBg8XCg0KBQQNAiYDEgTzBhocCqoDCgQEDQInEgSCBwgdGo4BI2RlZmluZSBPWE1fT0ZfUEJCX0lTSUQgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1BCQl9JU0lELCAzKQojZGVmaW5lIE9YTV9PRl9QQkJfSVNJRF9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfUEJCX0lTSUQsIDMpCiIZIEZvciBPRlBYTVRfT0ZCX1BCQl9JU0lEIDLvASBJRUVFIDgwMi4xYWggSS1TSUQuCgogRm9yIGEgcGFja2V0IHdpdGggYSBQQkIgaGVhZGVyLCB0aGlzIGlzIHRoZSBJLVNJRCBmcm9tIHRoZQogb3V0ZXJtb3N0IHNlcnZpY2UgdGFnLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODhFNyBleGFjdGx5LgoKIEZvcm1hdDogMjQtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4gCg0KBQQNAicFEgSCBwgOCg0KBQQNAicBEgSCBw8XCg0KBQQNAicDEgSCBxocCrwGCgQEDQIoEgSWBwgeGpQBI2RlZmluZSBPWE1fT0ZfVFVOTkVMX0lEICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVFVOTkVMX0lELCA4KQojZGVmaW5lIE9YTV9PRl9UVU5ORUxfSURfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9UVU5ORUxfSUQsIDgpCiIaIEZvciBPRlBYTVRfT0ZCX1RVTk5FTF9JRCAy+gQgTG9naWNhbCBQb3J0IE1ldGFkYXRhLgoKIE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIGxvZ2ljYWwgcG9ydC4KIElmIHRoZSBsb2dpY2FsIHBvcnQgcGVyZm9ybXMgZW5jYXBzdWxhdGlvbiBhbmQgZGVjYXBzdWxhdGlvbiwgdGhpcwogaXMgdGhlIGRlbXVsdGlwbGV4aW5nIGZpZWxkIGZyb20gdGhlIGVuY2Fwc3VsYXRpb24gaGVhZGVyLgogRm9yIGV4YW1wbGUsIGZvciBhIHBhY2tldCByZWNlaXZlZCB2aWEgR1JFIHR1bm5lbCBpbmNsdWRpbmcgYSAoMzItYml0KSBrZXksCiB0aGUga2V5IGlzIHN0b3JlZCBpbiB0aGUgbG93IDMyLWJpdHMgYW5kIHRoZSBoaWdoIGJpdHMgYXJlIHplcm9lZC4KIEZvciBhIE1QTFMgbG9naWNhbCBwb3J0LCB0aGUgbG93IDIwIGJpdHMgcmVwcmVzZW50IHRoZSBNUExTIExhYmVsLgogRm9yIGEgVnhMQU4gbG9naWNhbCBwb3J0LCB0aGUgbG93IDI0IGJpdHMgcmVwcmVzZW50IHRoZSBWTkkuCiBJZiB0aGUgcGFja2V0IGlzIG5vdCByZWNlaXZlZCB0aHJvdWdoIGEgbG9naWNhbCBwb3J0LCB0aGUgdmFsdWUgaXMgMC4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogNjQtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4gCg0KBQQNAigFEgSWBwgOCg0KBQQNAigBEgSWBw8YCg0KBQQNAigDEgSWBxsdCqgDCgQEDQIpEgSjBwggGpoBI2RlZmluZSBPWE1fT0ZfSVBWNl9FWFRIRFIgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRVhUSERSLCAyKQojZGVmaW5lIE9YTV9PRl9JUFY2X0VYVEhEUl9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9FWFRIRFIsIDIpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfRVhUSERSIDLeASBUaGUgSVB2NiBFeHRlbnNpb24gSGVhZGVyIHBzZXVkby1maWVsZC4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseQoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgd2l0aCA3IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDkgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTWFza2FibGUuIAoNCgUEDQIpBRIEowcIDgoNCgUEDQIp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BRIErg0EFBqIASBRdWV1ZSBzdGF0aXN0aWNzIGZvciBhIHBvcnQKIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9xdWV1ZV9zdGF0c19yZXF1ZXN0LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9xdWV1ZV9zdGF0cyAKDQoFBS4CBQESBK4NBA8KDQoFBS4CBQISBK4NEhMKkQEKBAUuAgYSBLMNBBQaggEgR3JvdXAgY291bnRlciBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2dyb3VwX3N0YXRzX3JlcXVlc3QuCiBUaGUgcmVwbHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9ncm91cF9zdGF0cy4gCg0KBQUuAgYBEgSzDQQPCg0KBQUuAgYCEgSzDRITCnQKBAUuAgcSBLgNBBkaZiBHcm91cCBkZXNjcmlwdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX2dyb3VwX2Rlc2MuIAoNCgUFLgIHARIEuA0EFAoNCgUFLgIHAhIEuA0XGAppCgQFLgIIEgS9DQQdGlsgR3JvdXAgZmVhdHVyZXMuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgc3RydWN0IG9mcF9ncm91cF9mZWF0dXJlcy4gCg0KBQUuAggBEgS9DQQYCg0KBQUuAggCEgS9DRscCpMBCgQFLgIJEgTCDQQUGoQBIE1ldGVyIHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfbWV0ZXJfbXVsdGlwYXJ0X3JlcXVlc3RzLgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9tZXRlcl9zdGF0cy4gCg0KBQUuAgkBEgTCDQQPCg0KBQUuAgkCEgTCDRITCpcBCgQFLgIKEgTHDQQcGogBIE1ldGVyIGNvbmZpZ3VyYXRpb24uCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfbWV0ZXJfbXVsdGlwYXJ0X3JlcXVlc3RzLgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9tZXRlcl9jb25maWcuIAoNCgUFLgIKARIExw0EFgoNCgUFLgIKAhIExw0ZGwppCgQFLgILEgTMDQQeGlsgTWV0ZXIgZmVhdHVyZXMuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9mZWF0dXJlcy4gCg0KBQUuAgsBEgTMDQQYCg0KBQUuAgsCEgTMDRsdCrECCgQFLgIMEgTUDQQeGqICIFRhYmxlIGZlYXR1cmVzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlaXRoZXIgZW1wdHkgb3IgY29udGFpbnMgYW4gYXJyYXkgb2YKIHN0cnVjdCBvZnBfdGFibGVfZmVhdHVyZXMgY29udGFpbmluZyB0aGUgY29udHJvbGxlcidzCiBkZXNpcmVkIHZpZXcgb2YgdGhlIHN3aXRjaC4gSWYgdGhlIHN3aXRjaCBpcyB1bmFibGUgdG8KIHNldCB0aGUgc3BlY2lmaWVkIHZpZXcgYW4gZXJyb3IgaXMgcmV0dXJuZWQuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3RhYmxlX2ZlYXR1cmVzLiAKDQoFBS4CDAESBNQNBBgKDQoFBS4CDAISBNQNGx0KbQoEBS4CDRIE2Q0EGRpfIFBvcnQgZGVzY3JpcHRpb24uCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9wb3J0LiAKDQoFBS4CDQESBNkNBBMKDQoFBS4CDQISBNkNFhgKvgEKBAUuAg4SBN8NBCAarwEgRXhwZXJpbWVudGVyIGV4dGVuc2lvbi4KIFRoZSByZXF1ZXN0IGFuZCByZXBseSBib2RpZXMgYmVnaW4gd2l0aAogc3RydWN0IG9mcF9leHBlcmltZW50ZXJfbXVsdGlwYXJ0X2hlYWRlci4KIFRoZSByZXF1ZXN0IGFuZCByZXBseSBib2RpZXMgYXJlIG90aGVyd2lzZSBleHBlcmltZW50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EgShERcYCjUKBARTAgUSBKIRBBwiJyBUaW1lIHF1ZXVlIGhhcyBiZWVuIGFsaXZlIGluIHNlY29uZHMuIAoPCgUEUwIFBBIGohEEoREZCg0KBQRTAgUFEgSiEQQKCg0KBQRTAgUBEgSiEQsXCg0KBQRTAgUDEgSiERobCk0KBARTAgYSBKMRBB0iPyBUaW1lIHF1ZXVlIGhhcyBiZWVuIGFsaXZlIGluIG5hbm9zZWNvbmRzCmJleW9uZCBkdXJhdGlvbl9zZWMuIAoPCgUEUwIGBBIGoxEEohEcCg0KBQRTAgYFEgSjEQQKCg0KBQRTAgYBEgSjEQsYCg0KBQRTAgYDEgSjERscCusGCgIFNBIGvBEAwREBGhMgQ29udHJvbGxlciByb2xlcy4gMscGIENvbmZpZ3VyZXMgdGhlICJyb2xlIiBvZiB0aGUgc2VuZGluZyBjb250cm9sbGVyLiAgVGhlIGRlZmF1bHQgcm9sZSBpczoKCiAgICAtIEVxdWFsIChPRlBDUl9ST0xFX0VRVUFMKSwgd2hpY2ggYWxsb3dzIHRoZSBjb250cm9sbGVyIGFjY2VzcyB0byBhbGwKICAgICAgT3BlbkZsb3cgZmVhdHVyZXMuIEFsbCBjb250cm9sbGVycyBoYXZlIGVxdWFsIHJlc3BvbnNpYmlsaXR5LgoKIFRoZSBvdGhlciBwb3NzaWJsZSByb2xlcyBhcmUgYSByZWxhdGVkIHBhaXI6CgogICAgLSBNYXN0ZXIgKE9GUENSX1JPTEVfTUFTVEVSKSBpcyBlcXVpdmFsZW50IHRvIEVxdWFsLCBleGNlcHQgdGhhdCB0aGVyZQogICAgICBtYXkgYmUgYXQgbW9zdCBvbmUgTWFzdGVyIGNvbnRyb2xsZXIgYXQgYSB0aW1lOiB3aGVuIGEgY29udHJvbGxlcgogICAgICBjb25maWd1cmVzIGl0c2VsZiBhcyBNYXN0ZXIsIGFueSBleGlzdGluZyBNYXN0ZXIgaXMgZGVtb3RlZCB0byB0aGUKICAgICAgU2xhdmUgcm9sZS4KCiAgICAtIFNsYXZlIChPRlBDUl9ST0xFX1NMQVZFKSBhbGxvd3MgdGhlIGNvbnRyb2xsZXIgcmVhZC1vbmx5IGFjY2VzcyB0bwogICAgICBPcGVuRmxvdyBmZWF0dXJl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Y2VfcG9ydF9ubxgEIAEoDVIMZGV2aWNlUG9ydE5vEhsKCXJvb3RfcG9ydBgFIAEoCFIIcm9vdFBvcnQSQQoOb2ZwX3BvcnRfc3RhdHMYBiABKAsyGy5vcGVuZmxvd18xMy5vZnBfcG9ydF9zdGF0c1IMb2ZwUG9ydFN0YXRzIkEKDExvZ2ljYWxQb3J0cxIxCgVpdGVtcxgBIAMoCzIbLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0UgVpdGVtcyLcAQoNTG9naWNhbERldmljZRIOCgJpZBgBIAEoCVICaWQSHwoLZGF0YXBhdGhfaWQYAiABKARSCmRhdGFwYXRoSWQSKQoEZGVzYxgDIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9kZXNjUgRkZXNjEkkKD3N3aXRjaF9mZWF0dXJlcxgEIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9zd2l0Y2hfZmVhdHVyZXNSDnN3aXRjaEZlYXR1cmVzEiQKDnJvb3RfZGV2aWNlX2lkGAUgASgJUgxyb290RGV2aWNlSWQiRQoOTG9naWNhbERldmljZXMSMwoFaXRlbXMYASADKAsyHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsRGV2aWNlUgVpdGVtc0JlCiJvcmcub3BlbmNvcmQudm9sdGhhLmxvZ2ljYWxfZGV2aWNlQg9PRkxvZ2ljYWxEZXZpY2VaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby92b2x0aGFKjgwKBhIEAAA0AQoICgEMEgMAABIKCAoBCBIDAgBFCgkKAggLEgMCAEUKCAoBCBIDAwA7CgkKAggBEgMDADsKCAoBCBIDBAAwCgkKAggIEgMEADAKCAoBAhIDBgAXCgkKAgMAEgMIACYKCQoCAwESAwkAKQoKCgIEABIECwARAQoKCgMEAAESAwsIFQoqCgQEAAIAEgMNBBIaHSB1bmlxdWUgaWQgb2YgbG9naWNhbCBkZXZpY2UKCg0KBQQAAgAEEgQNBAsXCgwKBQQAAgAFEgMNBAoKDAoFBAACAAESAw0LDQoMCgUEAAIAAxIDDRARCjMKBAQAAgESAxAEFxomIGlkIG9mIHRoZSBwb3J0IG9uIHRoZSBsb2dpY2FsIGRldmljZQoKDQoFBAACAQQSBBAEDRIKDAoFBAACAQUSAxAECgoMCgUEAAIBARIDEAsSCgwKBQQAAgEDEgMQFRYKCgoCBAESBBMAGgEKCgoDBAEBEgMTCBMKCwoEBAECABIDFAQSCg0KBQQBAgAEEgQUBBMVCgwKBQQBAgAFEgMUBAoKDAoFBAECAAESAxQLDQoMCgUEAQIAAxIDFBARCgsKBAQBAgESAxUEJgoNCgUEAQIBBBIEFQQUEgoMCgUEAQIBBhIDFQQYCgwKBQQBAgEBEgMVGSEKDAoFBAECAQMSAxUkJQoLCgQEAQICEgMWBBkKDQoFBAECAgQSBBYEFSYKDAoFBAECAgUSAxYECgoMCgUEAQICARIDFgsUCgwKBQQBAgIDEgMWFxgKCwoEBAECAxIDFwQeCg0KBQQBAgMEEgQXBBYZCgwKBQQBAgMFEgMXBAoKDAoFBAECAwESAxcLGQoMCgUEAQIDAxIDFxwdCgsKBAQBAgQSAxgEFwoNCgUEAQIEBBIEGAQXHgoMCgUEAQIEBRIDGAQICgwKBQQBAgQBEgMYCRIKDAoFBAECBAMSAxgVFgoLCgQEAQIFEgMZBDIKDQoFBAECBQQSBBkEGBcKDAoFBAECBQYSAxkEHgoMCgUEAQIFARIDGR8tCgwKBQQBAgUDEgMZMDEKCgoCBAISBBwAHgEKCgoDBAIBEgMcCBQKCwoEBAICABIDHQQjCgwKBQQCAgAEEgMdBAwKDAoFBAICAAYSAx0NGAoMCgUEAgIAARIDHRkeCgwKBQQCAgADEgMdISIKCgoCBAMSBCAAMAEKCgoDBAMBEgMgCBUKKgoEBAMCABIDIwQSGh0gdW5pcXVlIGlkIG9mIGxvZ2ljYWwgZGV2aWNlCgoNCgUEAwIABBIEIwQgFwoMCgUEAwIABRIDIwQKCgwKBQQDAgABEgMjCw0KDAoFBAMCAAMSAyMQEQpVCgQEAwIBEgMmBBsaSCB1bmlxdWUgZGF0YXBhdGggaWQgZm9yIHRoZSBsb2dpY2FsIGRldmljZSAodXNlZCBieSB0aGUgU0ROIGNvbnRyb2xsZXIpCgoNCgUEAwIBBBIEJgQjEgoMCgUEAwIBBRIDJgQKCgwKBQQDAgEBEgMmCxYKDAoFBAMCAQMSAyYZGgohCgQEAwICEgMpBCIaFCBkZXZpY2UgZGVzY3JpcHRpb24KCg0KBQQDAgIEEgQpBCYbCgwKBQQDAgIGEgMpBBgKDAoFBAMCAgESAykZHQoMCgUEAwICAxIDKSAhCh4KBAQDAgMSAywEOBoRIGRldmljZSBmZWF0dXJlcwoKDQoFBAMCAwQSBCwEKSIKDAoFBAMCAwYSAywEIwoMCgUEAwIDARIDLCQzCgwKBQQDAgMDEgMsNjcKPwoEBAMCBBIDLwQeGjIgbmFtZSBvZiB0aGUgcm9vdCBkZXZpY2UgYW5jaG9yaW5nIGxvZ2ljYWwgZGV2aWNlCgoNCgUEAwIEBBIELwQsOAoMCgUEAwIEBRIDLwQKCgwKBQQDAgQBEgMvCxkKDAoFBAMCBAMSAy8cHQoKCgIEBBIEMgA0AQoKCgMEBAESAzIIFgoLCgQEBAIAEgMzBCUKDAoFBAQCAAQSAzMEDAoMCgUEBAIABhIDMw0aCgwKBQQEAgABEgMzGyAKDAoFBAQCAAMSAzMjJGIGcHJvdG8zCv/YAQoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8SBmRldmljZRoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb3BlbmZsb3dfMTMucHJvdG8i4gIKCkRldmljZVR5cGUSDgoCaWQYASABKAlSAmlkEhsKCXZlbmRvcl9pZBgFIAEoCVIIdmVuZG9ySWQSHQoKdmVuZG9yX2lkcxgGIAMoCVIJdmVuZG9ySWRzEhgKB2FkYXB0ZXIYAiABKAlSB2FkYXB0ZXISNwoYYWNjZXB0c19idWxrX2Zsb3dfdXBkYXRlGAMgASgIUhVhY2NlcHRzQnVsa0Zsb3dVcGRhdGUSRAofYWNjZXB0c19hZGRfcmVtb3ZlX2Zsb3dfdXBkYXRlcxgEIAEoCFIbYWNjZXB0c0FkZFJlbW92ZUZsb3dVcGRhdGVzEkwKI2FjY2VwdHNfZGlyZWN0X2xvZ2ljYWxfZmxvd3NfdXBkYXRlGAcgASgIUh9hY2NlcHRzRGlyZWN0TG9naWNhbEZsb3dzVXBkYXRlEiEKDGFkYXB0ZXJfdHlwZRgIIAEoCVILYWRhcHRlclR5cGUiNwoLRGV2aWNlVHlwZXMSKAoFaXRlbXMYASADKAsyEi5kZXZpY2UuRGV2aWNlVHlwZVIFaXRlbXMiwAEKCFBtQ29uZmlnEhIKBG5hbWUYASABKAlSBG5hbWUSKwoEdHlwZRgCIAEoDjIXLmRldmljZS5QbUNvbmZpZy5QbVR5cGVSBHR5cGUSGAoHZW5hYmxlZBgDIAEoCFIHZW5hYmxlZBIfCgtzYW1wbGVfZnJlcRgEIAEoDVIKc2FtcGxlRnJlcSI4CgZQbVR5cGUSCwoHQ09VTlRFUhAAEgkKBUdBVUdFEAESCQoFU1RBVEUQAhILCgdDT05URVhUEAMikwEKDVBtR3JvdXBDb25maWcSHQoKZ3JvdXBfbmFtZRgBIAEoCVIJZ3JvdXBOYW1lEh0KCmdyb3VwX2ZyZXEYAiABKA1SCWdyb3VwRnJlcRIYCgdlbmFibGVkGAMgASgIUgdlbmFibGVkEioKB21ldHJpY3MYBCADKAsyEC5kZXZpY2UuUG1Db25maWdSB21ldHJpY3Mi8wEKCVBtQ29uZmlncxIOCgJpZBgBIAEoCVICaWQSIQoMZGVmYXVsdF9mcmVxGAIgASgNUgtkZWZhdWx0RnJlcRIYCgdncm91cGVkGAMgASgIUgdncm91cGVkEiMKDWZyZXFfb3ZlcnJpZGUYBCABKAhSDGZyZXFPdmVycmlkZRItCgZncm91cHMYBSADKAsyFS5kZXZpY2UuUG1Hcm91cENvbmZpZ1IGZ3JvdXBzEioKB21ldHJpY3MYBiADKAsyEC5kZXZpY2UuUG1Db25maWdSB21ldHJpY3MSGQoIbWF4X3NrZXcYByABKA1SB21heFNrZXcijwIKBUltYWdlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoCVIHdmVyc2lvbhISCgRoYXNoGAMgASgNUgRoYXNoEikKEGluc3RhbGxfZGF0ZXRpbWUYBCABKAlSD2luc3RhbGxEYXRldGltZRIbCglpc19hY3RpdmUYBSABKAhSCGlzQWN0aXZlEiEKDGlzX2NvbW1pdHRlZBgGIAEoCFILaXNDb21taXR0ZWQSGQoIaXNfdmFsaWQYByABKAhSB2lzVmFsaWQSEAoDdXJsGAggASgJUgN1cmwSFgoGdmVuZG9yGAkgASgJUgZ2ZW5kb3ISFAoFY3JjMzIYCiABKA1SBWNyYzMyIucHCg1JbWFnZURvd25sb2FkEg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1lEhAKA3VybBgDIAEoCVIDdXJsEhAKA2NyYxgEIAEoDVIDY3JjEk8KDmRvd25sb2FkX3N0YXRlGAUgASgOMiguZGV2aWNlLkltYWdlRG93bmxvYWQuSW1hZ2VEb3dubG9hZFN0YXRlUg1kb3dubG9hZFN0YXRlEiMKDWltYWdlX3ZlcnNpb24YBiABKAlSDGltYWdlVmVyc2lvbhIpChBkb3dubG9hZGVkX2J5dGVzGAcgASgNUg9kb3dubG9hZGVkQnl0ZXMSSAoGcmVhc29uGAggASgOMjAuZGV2aWNlLkltYWdlRG93bmxvYWQuSW1hZ2VEb3dubG9hZEZhaWx1cmVSZWFzb25SBnJlYXNvbhInCg9hZGRpdGlvbmFsX2luZm8YCSABKAlSDmFkZGl0aW9uYWxJbmZvEh8KC3NhdmVfY29uZmlnGAogASgIUgpzYXZlQ29uZmlnEhsKCWxvY2FsX2RpchgLIAEoCVIIbG9jYWxEaXISSQoLaW1hZ2Vfc3RhdGUYDCABKA4yKC5kZXZpY2UuSW1hZ2VEb3dubG9hZC5JbWFnZUFjdGl2YXRlU3RhdGVSCmltYWdlU3RhdGUSGwoJZmlsZV9zaXplGA0gASgNUghmaWxlU2l6ZSK3AQoSSW1hZ2VEb3dubG9hZFN0YXRlEhQKEERPV05MT0FEX1VOS05PV04QABIWChJET1dOTE9BRF9TVUNDRUVERUQQARIWChJET1dOTE9BRF9SRVFVRVNURUQQAhIUChBET1dOTE9BRF9TVEFSVEVEEAMSEwoPRE9XTkxPQURfRkFJTEVEEAQSGAoURE9XTkxPQURfVU5TVVBQT1JURUQQBRIWChJET1dOTE9BRF9DQU5DRUxMRUQQBiKGAQoaSW1hZ2VEb3dubG9hZEZhaWx1cmVSZWFzb24SDAoITk9fRVJST1IQABIPCgtJTlZBTElEX1VSTBABEg8KC0RFVklDRV9CVVNZEAISFgoSSU5TVUZGSUNJRU5UX1NQQUNFEAMSEQoNVU5LTk9XTl9FUlJPUhAEEg0KCUNBTkNFTExFRBAFIowBChJJbWFnZUFjdGl2YXRlU3RhdGUSEQoNSU1BR0VfVU5LTk9XThAAEhIKDklNQUdFX0lOQUNUSVZFEAESFAoQSU1BR0VfQUNUSVZBVElORxACEhAKDElNQUdFX0FDVElWRRADEhMKD0lNQUdFX1JFVkVSVElORxAEEhIKDklNQUdFX1JFVkVSVEVEEAU6AhgBIkEKDkltYWdlRG93bmxvYWRzEisKBWl0ZW1zGAIgAygLMhUuZGV2aWNlLkltYWdlRG93bmxvYWRSBWl0ZW1zOgIYASItCgZJbWFnZXMSIwoFaW1hZ2UYASADKAsyDS5kZXZpY2UuSW1hZ2VSBWltYWdlIrABCghPbnVJbWFnZRIYCgd2ZXJzaW9uGAEgASgJUgd2ZXJzaW9uEh4KCmlzQ29tbWl0ZWQYAiABKAhSCmlzQ29tbWl0ZWQSGgoIaXNBY3RpdmUYAyABKAhSCGlzQWN0aXZlEhgKB2lzVmFsaWQYBCABKAhSB2lzVmFsaWQSIAoLcHJvZHVjdENvZGUYBSABKAlSC3Byb2R1Y3RDb2RlEhIKBGhhc2gYBiABKAlSBGhhc2giMwoJT251SW1hZ2VzEiYKBWl0ZW1zGAEgAygLMhAuZGV2aWNlLk9udUltYWdlUgVpdGVtcyJjChBEZXZpY2VJbWFnZVN0YXRlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSMgoKaW1hZ2VTdGF0ZRgCIAEoCzISLmRldmljZS5JbWFnZVN0YXRlUgppbWFnZVN0YXRlIuMHCgpJbWFnZVN0YXRlEhgKB3ZlcnNpb24YASABKAlSB3ZlcnNpb24STAoOZG93bmxvYWRfc3RhdGUYAiABKA4yJS5kZXZpY2UuSW1hZ2VTdGF0ZS5JbWFnZURvd25sb2FkU3RhdGVSDWRvd25sb2FkU3RhdGUSPQoGcmVhc29uGAMgASgOMiUuZGV2aWNlLkltYWdlU3RhdGUuSW1hZ2VGYWlsdXJlUmVhc29uUgZyZWFzb24SSAoLaW1hZ2Vfc3RhdGUYBCABKA4yJy5kZXZpY2UuSW1hZ2VTdGF0ZS5JbWFnZUFjdGl2YXRpb25TdGF0ZVIKaW1hZ2VTdGF0ZSLQAQoSSW1hZ2VEb3dubG9hZFN0YXRlEhQKEERPV05MT0FEX1VOS05PV04QABIWChJET1dOTE9BRF9TVUNDRUVERUQQARIWChJET1dOTE9BRF9SRVFVRVNURUQQAhIUChBET1dOTE9BRF9TVEFSVEVEEAMSEwoPRE9XTkxPQURfRkFJTEVEEAQSGAoURE9XTkxPQURfVU5TVVBQT1JURUQQBRIXChNET1dOTE9BRF9DQU5DRUxMSU5HEAYSFgoSRE9XTkxPQURfQ0FOQ0VMTEVEEAci9AEKEkltYWdlRmFpbHVyZVJlYXNvbhIMCghOT19FUlJPUhAAEg8KC0lOVkFMSURfVVJMEAESDwoLREVWSUNFX0JVU1kQAhIWChJJTlNVRkZJQ0lFTlRfU1BBQ0UQAxIRCg1VTktOT1dOX0VSUk9SEAQSGAoUQ0FOQ0VMTEVEX09OX1JFUVVFU1QQBRIaChZDQU5DRUxMRURfT05fT05VX1NUQVRFEAYSGgoWVkVORE9SX0RFVklDRV9NSVNNQVRDSBAHEhcKE09NQ0lfVFJBTlNGRVJfRVJST1IQCBIYChRJTUFHRV9SRUZVU0VEX0JZX09OVRAJIpkCChRJbWFnZUFjdGl2YXRpb25TdGF0ZRIRCg1JTUFHRV9VTktOT1dOEAASEgoOSU1BR0VfSU5BQ1RJVkUQARIUChBJTUFHRV9BQ1RJVkFUSU5HEAISEAoMSU1BR0VfQUNUSVZFEAMSFAoQSU1BR0VfQ09NTUlUVElORxAEEhMKD0lNQUdFX0NPTU1JVFRFRBAFEh0KGUlNQUdFX0FDVElWQVRJT05fQUJPUlRJTkcQBhIcChhJTUFHRV9BQ1RJVkFUSU9OX0FCT1JURUQQBxIZChVJTUFHRV9DT01NSVRfQUJPUlRJTkcQCBIYChRJTUFHRV9DT01NSVRfQUJPUlRFRBAJEhUKEUlNQUdFX0RPV05MT0FESU5HEAoitwUKBFBvcnQSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhQKBWxhYmVsGAIgASgJUgVsYWJlbBIpCgR0eXBlGAMgASgOMhUuZGV2aWNlLlBvcnQuUG9ydFR5cGVSBHR5cGUSOQoLYWRtaW5fc3RhdGUYBSABKA4yGC5jb21tb24uQWRtaW5TdGF0ZS5UeXBlc1IKYWRtaW5TdGF0ZRI5CgtvcGVyX3N0YXR1cxgGIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzEhsKCWRldmljZV9pZBgHIAEoCVIIZGV2aWNlSWQSKwoFcGVlcnMYCCADKAsyFS5kZXZpY2UuUG9ydC5QZWVyUG9ydFIFcGVlcnMSHQoKcnhfcGFja2V0cxgJIAEoBlIJcnhQYWNrZXRzEhkKCHJ4X2J5dGVzGAogASgGUgdyeEJ5dGVzEhsKCXJ4X2Vycm9ycxgLIAEoBlIIcnhFcnJvcnMSHQoKdHhfcGFja2V0cxgMIAEoBlIJdHhQYWNrZXRzEhkKCHR4X2J5dGVzGA0gASgGUgd0eEJ5dGVzEhsKCXR4X2Vycm9ycxgOIAEoBlIIdHhFcnJvcnMSMAoIb2ZwX3BvcnQYDyABKAsyFS5vcGVuZmxvd18xMy5vZnBfcG9ydFIHb2ZwUG9ydBpACghQZWVyUG9ydBIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhcKB3BvcnRfbm8YAiABKA1SBnBvcnRObyJzCghQb3J0VHlwZRILCgdVTktOT1dOEAASEAoMRVRIRVJORVRfTk5JEAESEAoMRVRIRVJORVRfVU5JEAISCwoHUE9OX09MVBADEgsKB1BPTl9PTlUQBBINCglWRU5FVF9PTFQQBRINCglWRU5FVF9PTlUQBiIrCgVQb3J0cxIiCgVpdGVtcxgBIAMoCzIMLmRldmljZS5Qb3J0UgVpdGVtcyLYCgoGRGV2aWNlEg4KAmlkGAEgASgJUgJpZBISCgR0eXBlGAIgASgJUgR0eXBlEhIKBHJvb3QYAyABKAhSBHJvb3QSGwoJcGFyZW50X2lkGAQgASgJUghwYXJlbnRJZBIkCg5wYXJlbnRfcG9ydF9ubxgUIAEoDVIMcGFyZW50UG9ydE5vEhYKBnZlbmRvchgFIAEoCVIGdmVuZG9yEhQKBW1vZGVsGAYgASgJUgVtb2RlbBIpChBoYXJkd2FyZV92ZXJzaW9uGAcgASgJUg9oYXJkd2FyZVZlcnNpb24SKQoQZmlybXdhcmVfdmVyc2lvbhgIIAEoCVIPZmlybXdhcmVWZXJzaW9uEiYKBmltYWdlcxgJIAEoCzIOLmRldmljZS5JbWFnZXNSBmltYWdlcxIjCg1zZXJpYWxfbnVtYmVyGAogASgJUgxzZXJpYWxOdW1iZXISGwoJdmVuZG9yX2lkGBggASgJUgh2ZW5kb3JJZBIpChBhZGFwdGVyX2VuZHBvaW50GBkgASgJUg9hZGFwdGVyRW5kcG9pbnQSEgoEdmxhbhgMIAEoDVIEdmxhbhIfCgttYWNfYWRkcmVzcxgNIAEoCVIKbWFjQWRkcmVzcxIjCgxpcHY0X2FkZHJlc3MYDiABKAlIAFILaXB2NEFkZHJlc3MSIwoMaXB2Nl9hZGRyZXNzGA8gASgJSABSC2lwdjZBZGRyZXNzEiQKDWhvc3RfYW5kX3BvcnQYFSABKAlIAFILaG9zdEFuZFBvcnQSHQoKZXh0cmFfYXJncxgXIAEoCVIJZXh0cmFBcmdzEkAKDXByb3h5X2FkZHJlc3MYEyABKAsyGy5kZXZpY2UuRGV2aWNlLlByb3h5QWRkcmVzc1IMcHJveHlBZGRyZXNzEjkKC2FkbWluX3N0YXRlGBAgASgOMhguY29tbW9uLkFkbWluU3RhdGUuVHlwZXNSCmFkbWluU3RhdGUSOQoLb3Blcl9zdGF0dXMYESABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cxIWCgZyZWFzb24YFiABKAlSBnJlYXNvbhJCCg5jb25uZWN0X3N0YXR1cxgSIAEoDjIbLmNvbW1vbi5Db25uZWN0U3RhdHVzLlR5cGVzUg1jb25uZWN0U3RhdHVzEiwKBmN1c3RvbRhAIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBmN1c3RvbRIxCgpwbV9jb25maWdzGIMBIAEoCzIRLmRldmljZS5QbUNvbmZpZ3NSCXBtQ29uZmlncxI/Cg9pbWFnZV9kb3dubG9hZHMYhQEgAygLMhUuZGV2aWNlLkltYWdlRG93bmxvYWRSDmltYWdlRG93bmxvYWRzGq4CCgxQcm94eUFkZHJlc3MSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIfCgtkZXZpY2VfdHlwZRgCIAEoCVIKZGV2aWNlVHlwZRIdCgpjaGFubmVsX2lkGAMgASgNUgljaGFubmVsSWQSKAoQY2hhbm5lbF9ncm91cF9pZBgEIAEoDVIOY2hhbm5lbEdyb3VwSWQSLwoTY2hhbm5lbF90ZXJtaW5hdGlvbhgFIAEoCVISY2hhbm5lbFRlcm1pbmF0aW9uEhUKBm9udV9pZBgGIAEoDVIFb251SWQSJAoOb251X3Nlc3Npb25faWQYByABKA1SDG9udVNlc3Npb25JZBIpChBhZGFwdGVyX2VuZHBvaW50GAggASgJUg9hZGFwdGVyRW5kcG9pbnRCCQoHYWRkcmVzc0oECAsQDCLCAQoaRGV2aWNlSW1hZ2VEb3dubG9hZFJlcXVlc3QSJwoJZGV2aWNlX2lkGAEgAygLMgouY29tbW9uLklEUghkZXZpY2VJZBIjCgVpbWFnZRgCIAEoCzINLmRldmljZS5JbWFnZVIFaW1hZ2USLAoRYWN0aXZhdGVPblN1Y2Nlc3MYAyABKAhSEWFjdGl2YXRlT25TdWNjZXNzEigKD2NvbW1pdE9uU3VjY2VzcxgEIAEoCFIPY29tbWl0T25TdWNjZXNzIoEBChJEZXZpY2VJbWFnZVJlcXVlc3QSJwoJZGV2aWNlX2lkGAEgAygLMgouY29tbW9uLklEUghkZXZpY2VJZBIYCgd2ZXJzaW9uGAIgASgJUgd2ZXJzaW9uEigKD2NvbW1pdE9uU3VjY2VzcxgDIAEoCFIPY29tbWl0T25TdWNjZXNzIl8KE0RldmljZUltYWdlUmVzcG9uc2USSAoTZGV2aWNlX2ltYWdlX3N0YXRlcxgBIAMoCzIYLmRldmljZS5EZXZpY2VJbWFnZVN0YXRlUhFkZXZpY2VJbWFnZVN0YXRlcyKlAQoQU2VsZlRlc3RSZXNwb25zZRI/CgZyZXN1bHQYASABKA4yJy5kZXZpY2UuU2VsZlRlc3RSZXNwb25zZS5TZWxmVGVzdFJlc3VsdFIGcmVzdWx0IlAKDlNlbGZUZXN0UmVzdWx0EgsKB1NVQ0NFU1MQABILCgdGQUlMVVJFEAESEQoNTk9UX1NVUFBPUlRFRBACEhEKDVVOS05PV05fRVJST1IQAyIvCgdEZXZpY2VzEiQKBWl0ZW1zGAEgAygLMg4uZGV2aWNlLkRldmljZVIFaXRlbXMiqAMKFFNpbXVsYXRlQWxhcm1SZXF1ZXN0Eg4KAmlkGAEgASgJUgJpZBIcCglpbmRpY2F0b3IYAiABKAlSCWluZGljYXRvchIXCgdpbnRmX2lkGAMgASgJUgZpbnRmSWQSJAoOcG9ydF90eXBlX25hbWUYBCABKAlSDHBvcnRUeXBlTmFtZRIiCg1vbnVfZGV2aWNlX2lkGAUgASgJUgtvbnVEZXZpY2VJZBIzChZpbnZlcnNlX2JpdF9lcnJvcl9yYXRlGAYgASgFUhNpbnZlcnNlQml0RXJyb3JSYXRlEhQKBWRyaWZ0GAcgASgF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VwQUGlUgaGFzaCBvZiB0aGUgaW1hZ2UgdG8gYmUgdmVyaWZpZWQgYWdhaW5zdAogRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKCg0KBQQFAgIEEgRXBFMXCgwKBQQFAgIFEgNXBAoKDAoFBAUCAgESA1cLDwoMCgUEBQICAxIDVxITCmQKBAQFAgMSA1oEIBorIERlcHJlY2F0ZWQgaW4gdm9sdGhhIDIuOCwgd2lsbCBiZSByZW1vdmVkCiIqIGNvbWJpbmVkIGRhdGUgYW5kIHRpbWUgZXhwcmVzc2VkIGluIFVUQy4KCg0KBQQFAgMEEgRaBFcUCgwKBQQFAgMFEgNaBAoKDAoFBAUCAwESA1oLGwoMCgUEBQIDAxIDWh4fCpgDCgQEBQIEEgNiBBcawgIgVGhlIGFjdGl2ZSBzb2Z0d2FyZSBpbWFnZSBpcyBvbmUgdGhhdCBpcyBjdXJyZW50bHkgbG9hZGVkIGFuZCBleGVjdXRpbmcKIGluIHRoZSBPTlUgb3IgY2lyY3VpdCBwYWNrLiBVbmRlciBub3JtYWwgb3BlcmF0aW9uLCBvbmUgc29mdHdhcmUgaW1hZ2UKIGlzIGFsd2F5cyBhY3RpdmUgd2hpbGUgdGhlIG90aGVyIGlzIGluYWN0aXZlLiBVbmRlciBubyBjaXJjdW1zdGFuY2VzIGFyZQogYm90aCBzb2Z0d2FyZSBpbWFnZXMgYWxsb3dlZCB0byBiZSBhY3RpdmUgYXQgdGhlIHNhbWUgdGltZQogRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKIh0gVHJ1ZSBpZiB0aGUgaW1hZ2UgaXMgYWN0aXZlCjInIHVzZSBJU08gODYwMSBmb3JtYXQgZm9yIGRhdGUgYW5kIHRpbWUKCg0KBQQFAgQEEgRiBFogCgwKBQQFAgQFEgNiBAgKDAoFBAUCBAESA2IJEgoMCgUEBQIEAxIDYhUWCp8CCgQEBQIFEgNoBBoa7wEgVGhlIGNvbW1pdHRlZCBzb2Z0d2FyZSBpbWFnZSBpcyBsb2FkZWQgYW5kIGV4ZWN1dGVkIHVwb24gcmVib290IG9mIHRoZQogT05VIGFuZC9vciBjaXJjdWl0IHBhY2suIER1cmluZyBub3JtYWwgb3BlcmF0aW9uLCBvbmUgc29mdHdhcmUgaW1hZ2UgaXMKIGFsd2F5cyBjb21taXR0ZWQsIHdoaWxlIHRoZSBvdGhlciBpcyB1bmNvbW1pdHRlZC4KIERlcHJlY2F0ZWQgaW4gdm9sdGhhIDIuOCwgd2lsbCBiZSByZW1vdmVkCiIgIFRydWUgaWYgdGhlIGltYWdlIGlzIGNvbW1pdHRlZAoKDQoFBAUCBQQSBGgEYhcKDAoFBAUCBQUSA2gECAoMCgUEBQIFARIDaAkVCgwKBQQFAgUDEgNoGBkKzAIKBAQFAgYSA28EFhqgAiBBIHNvZnR3YXJlIGltYWdlIGlzIHZhbGlkIGlmIGl0IGhhcyBiZWVuIHZlcmlmaWVkIHRvIGJlIGFuIGV4ZWN1dGFibGUKIGNvZGUgaW1hZ2UuIFRoZSB2ZXJpZmljYXRpb24gbWVjaGFuaXNtIGlzIG5vdCBzdWJqZWN0IHRvIHN0YW5kYXJkaXphdGlvbjsKIGhvd2V2ZXIsIGl0IHNob3VsZCBpbmNsdWRlIGF0IGxlYXN0IGEgZGF0YSBpbnRlZ3JpdHkgKGUuZy4sIENSQykgY2hlY2sgb2YKIHRoZSBlbnRpcmUgY29kZSBpbWFnZS4KIERlcHJlY2F0ZWQgaW4gdm9sdGhhIDIuOCwgd2lsbCBiZSByZW1vdmVkCiIcIFRydWUgaWYgdGhlIGltYWdlIGlzIHZhbGlkCgoNCgUEBQIGBBIEbwRoGgoMCgUEBQIGBRIDbwQICgwKBQQFAgYBEgNvCREKDAoFBAUCBgMSA28UFQp4CgQEBQIHEgN0BBMaayBVUkwgd2hlcmUgdGhlIGltYWdlIGlzIGF2YWlsYWJsZQogVVJMIE1VU1QgYmUgZnVsbHkgcXVhbGlmaWVkLAogaW5jbHVkaW5nIGZpbGVuYW1lLCB1c2VybmFtZSBhbmQgcGFzc3dvcmQKCg0KBQQFAgcEEgR0BG8WCgwKBQQFAgcFEgN0BAoKDAoFBAUCBwESA3QLDgoMCgUEBQIHAxIDdBESCq0BCgQEBQIIEgN5BBYanwEgUmVwcmVzZW50cyB0aGUgdmVuZG9yL2RldmljZSBtZnIKIE5lZWRzIHRvIG1hdGNoIHRoZSB2ZW5kb3Igb2YgdGhlIGRldmljZSB0aGUgaW1hZ2Ugd2lsbCBi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AgcSBOoDBBYKDwoFBBUCBwQSBuoDBOkDFAoNCgUEFQIHBRIE6gMECQoNCgUEFQIHARIE6gMKEQoNCgUEFQIHAxIE6gMUFQoMCgQEFQIIEgTrAwQhCg8KBQQVAggEEgbrAwTqAxYKDQoFBBUCCAUSBOsDBAoKDQoFBBUCCAESBOsDCxwKDQoFBBUCCAMSBOsDHyAKDAoEBBUCCRIE7AMEIQoPCgUEFQIJBBIG7AME6wMhCg0KBQQVAgkGEgTsAwQRCg0KBQQVAgkBEgTsAxIbCg0KBQQVAgkDEgTsAx4gYgZwcm90bzMK8i8KH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiI7CglUaW1lc3RhbXASGAoHc2Vjb25kcxgBIAEoA1IHc2Vjb25kcxIUCgVuYW5vcxgCIAEoBVIFbmFub3NCfgoTY29tLmdvb2dsZS5wcm90b2J1ZkIOVGltZXN0YW1wUHJvdG9QAVorZ2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHR5cGVzL3RpbWVzdGFtcPgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0r4LQoHEgUeAIgBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAHwoJCgIIHxIDIwAfCggKAQgSAyQAQgoJCgIICxIDJABCCggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYALwoJCgIICBIDJgAvCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCvEbCgIEABIFfACIAQEa4xsgQSBUaW1lc3RhbXAgcmVwcmVzZW50cyBhIHBvaW50IGluIHRpbWUgaW5kZXBlbmRlbnQgb2YgYW55IHRpbWUgem9uZSBvciBsb2NhbAogY2FsZW5kYXIsIGVuY29kZWQgYXMgYSBjb3VudCBvZiBzZWNvbmRzIGFuZCBmcmFjdGlvbnMgb2Ygc2Vjb25kcyBhdAogbmFub3NlY29uZCByZXNvbHV0aW9uLiBUaGUgY291bnQgaXMgcmVsYXRpdmUgdG8gYW4gZXBvY2ggYXQgVVRDIG1pZG5pZ2h0IG9uCiBKYW51YXJ5IDEsIDE5NzAsIGluIHRoZSBwcm9sZXB0aWMgR3JlZ29yaWFuIGNhbGVuZGFyIHdoaWNoIGV4dGVuZHMgdGhlCiBHcmVnb3JpYW4gY2FsZW5kYXIgYmFja3dhcmRzIHRvIHllYXIgb25lLgoKIEFsbCBtaW51dGVzIGFyZSA2MCBzZWNvbmRzIGxvbmcuIExlYXAgc2Vjb25kcyBhcmUgInNtZWFyZWQiIHNvIHRoYXQgbm8gbGVhcAogc2Vjb25kIHRhYmxlIGlzIG5lZWRlZCBmb3IgaW50ZXJwcmV0YXRpb24sIHVzaW5nIGEgWzI0LWhvdXIgbGluZWFyCiBzbWVhcl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vdGltZS9zbWVhcikuCgogVGhlIHJhbmdlIGlzIGZyb20gMDAwMS0wMS0wMVQwMDowMDowMFogdG8gOTk5OS0xMi0zMVQyMzo1OTo1OS45OTk5OTk5OTlaLiBCeQogcmVzdHJpY3RpbmcgdG8gdGhhdCByYW5nZSwgd2UgZW5zdXJlIHRoYXQgd2UgY2FuIGNvbnZlcnQgdG8gYW5kIGZyb20gW1JGQwogMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBkYXRlIHN0cmluZ3MuCgogIyBFeGFtcGxlcwoKIEV4YW1wbGUgMTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgdGltZSgpYC4KCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModGltZShOVUxMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygwKTsKCiBFeGFtcGxlIDI6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYGdldHRpbWVvZmRheSgpYC4KCiAgICAgc3RydWN0IHRpbWV2YWwgdHY7CiAgICAgZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHR2LnR2X3NlYyk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcyh0di50dl91c2VjICogMTAwMCk7CgogRXhhbXBsZSAzOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFdpbjMyIGBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgpYC4KCiAgICAgRklMRVRJTUUgZnQ7CiAgICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoJmZ0KTsKICAgICBVSU5UNjQgdGlja3MgPSAoKChVSU5UNjQpZnQuZHdIaWdoRGF0ZVRpbWUpIDw8IDMyKSB8IGZ0LmR3TG93RGF0ZVRpbWU7CgogICAgIC8vIEEgV2luZG93cyB0aWNrIGlzIDEwMCBuYW5vc2Vjb25kcy4gV2luZG93cyBlcG9jaCAxNjAxLTAxLTAxVDAwOjAwOjAwWgogICAgIC8vIGlzIDExNjQ0NDczNjAwIHNlY29uZHMgYmVmb3JlIFVuaXggZXBvY2ggMTk3MC0wMS0wMVQwMDowMDowMFouCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHMoKElOVDY0KSAoKHRpY2tzIC8gMTAwMDAwMDApIC0gMTE2NDQ0NzM2MDBMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoKElOVDMyKSAoKHRpY2tzICUgMTAwMDAwMDApICogMTAwKSk7CgogRXhhbXBsZSA0OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIEphdmEgYFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpYC4KCiAgICAgbG9uZyBtaWxsaXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcCA9IFRpbWVzdGFtcC5uZXdCdWlsZGVyKCkuc2V0U2Vjb25kcyhtaWxsaXMgLyAxMDAwKQogICAgICAgICAuc2V0TmFub3MoKGludCkgKChtaWxsaXMgJSAxMDAwKSAqIDEwMDAwMDApKS5idWlsZCgpOwoKCiBFeGFtcGxlIDU6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gY3VycmVudCB0aW1lIGluIFB5dGhvbi4KCiAgICAgdGltZXN0YW1wID0gVGltZXN0YW1wKCkKICAgICB0aW1lc3RhbXAuR2V0Q3VycmVudFRpbWUoKQoKICMgSlNPTiBNYXBwaW5nCgogSW4gSlNPTiBmb3JtYXQsIHRoZSBUaW1lc3RhbXAgdHlwZSBpcyBlbmNvZGVkIGFzIGEgc3RyaW5nIGluIHRoZQogW1JGQyAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGZvcm1hdC4gVGhhdCBpcywgdGhlCiBmb3JtYXQgaXMgInt5ZWFyfS17bW9udGh9LXtkYXl9VHtob3VyfTp7bWlufTp7c2VjfVsue2ZyYWNfc2VjfV1aIgogd2hlcmUge3llYXJ9IGlzIGFsd2F5cyBleHByZXNzZWQgdXNpbmcgZm91ciBkaWdpdHMgd2hpbGUge21vbnRofSwge2RheX0sCiB7aG91cn0sIHttaW59LCBhbmQge3NlY30gYXJlIHplcm8tcGFkZGVkIHRvIHR3byBkaWdpdHMgZWFjaC4gVGhlIGZyYWN0aW9uYWwKIHNlY29uZHMsIHdoaWNoIGNhbiBnbyB1cCB0byA5IGRpZ2l0cyAoaS5lLiB1cCB0byAxIG5hbm9zZWNvbmQgcmVzb2x1dGlvbiksCiBhcmUgb3B0aW9uYWwuIFRoZSAiWiIgc3VmZml4IGluZGljYXRlcyB0aGUgdGltZXpvbmUgKCJVVEMiKTsgdGhlIHRpbWV6b25lCiBpcyByZXF1aXJlZC4gQSBwcm90bzMgSlNPTiBzZXJpYWxpemVyIHNob3VsZCBhbHdheXMgdXNlIFVUQyAoYXMgaW5kaWNhdGVkIGJ5CiAiWiIpIHdoZW4gcHJpbnRpbmcgdGhlIFRpbWVzdGFtcCB0eXBlIGFuZCBhIHByb3RvMyBKU09OIHBhcnNlciBzaG91bGQgYmUKIGFibGUgdG8gYWNjZXB0IGJvdGggVVRDIGFuZCBvdGhlciB0aW1lem9uZXMgKGFzIGluZGljYXRlZCBieSBhbiBvZmZzZXQpLgoKIEZvciBleGFtcGxlLCAiMjAxNy0wMS0xNVQwMTozMDoxNS4wMVoiIGVuY29kZXMgMTUuMDEgc2Vjb25kcyBwYXN0CiAwMTozMCBVVEMgb24gSmFudWFyeSAxNSwgMjAxNy4KCiBJbiBKYXZhU2NyaXB0LCBvbmUgY2FuIGNvbnZlcnQgYSBEYXRlIG9iamVjdCB0byB0aGlzIGZvcm1hdCB1c2luZyB0aGUKIHN0YW5kYXJkIFt0b0lTT1N0cmluZygpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlL3RvSVNPU3RyaW5nKQogbWV0aG9kLiBJbiBQeXRob24sIGEgc3RhbmRhcmQgYGRhdGV0aW1lLmRhdGV0aW1lYCBvYmplY3QgY2FuIGJlIGNvbnZlcnRlZAogdG8gdGhpcyBmb3JtYXQgdXNpbmcgW2BzdHJmdGltZWBdKGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzIvbGlicmFyeS90aW1lLmh0bWwjdGltZS5zdHJmdGltZSkKIHdpdGggdGhlIHRpbWUgZm9ybWF0IHNwZWMgJyVZLSVtLSVkVCVIOiVNOiVTLiVmWicuIExpa2V3aXNlLCBpbiBKYXZhLCBvbmUKIGNhbiB1c2UgdGhlIEpvZGEgVGltZSdzIFtgSVNPRGF0ZVRpbWVGb3JtYXQuZGF0ZVRpbWUoKWBdKAogaHR0cDovL3d3dy5qb2RhLm9yZy9qb2RhLXRpbWUvYXBpZG9jcy9vcmcvam9kYS90aW1lL2Zvcm1hdC9JU09EYXRlVGltZUZvcm1hdC5odG1sI2RhdGVUaW1lJTJEJTJECiApIHRvIG9idGFpbiBhIGZvcm1hdHRlciBjYXBhYmxlIG9mIGdlbmVyYXRpbmcgdGltZXN0YW1wcyBpbiB0aGlzIGZvcm1hdC4KCgoKCgoDBAABEgN8CBEKnQEKBAQAAgASBIEBAhQajgEgUmVwcmVzZW50cyBzZWNvbmRzIG9mIFVUQyB0aW1lIHNpbmNlIFVuaXggZXBvY2gKIDE5NzAtMDEtMDFUMDA6MDA6MDBaLiBNdXN0IGJlIGZyb20gMDAwMS0wMS0wMVQwMDowMDowMFogdG8KIDk5OTktMTItMzFUMjM6NTk6NTlaIGluY2x1c2l2ZS4KCg4KBQQAAgAEEgWBAQJ8EwoNCgUEAAIABRIEgQECBwoNCgUEAAIAARIEgQEIDwoNCgUEAAIAAxIEgQESEwrlAQoEBAACARIEhwECEhrWASBOb24tbmVnYXRpdmUgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gTmVnYXRpdmUKIHNlY29uZCB2YWx1ZXMgd2l0aCBmcmFjdGlvbnMgbXVzdCBzdGlsbCBoYXZlIG5vbi1uZWdhdGl2ZSBuYW5vcyB2YWx1ZXMKIHRoYXQgY291bnQgZm9yd2FyZCBpbiB0aW1lLiBNdXN0IGJlIGZyb20gMCB0byA5OTksOTk5LDk5OQogaW5jbHVzaXZlLgoKDwoFBAACAQQSBocBAoEBFAoNCgUEAAIBBRIEhwECBwoNCgUEAAIBARIEhwEIDQoNCgUEAAIBAxIEhwEQEWIGcHJvdG8zCqVoChp2b2x0aGFfcHJvdG9zL2V2ZW50cy5wcm90bxIFZXZlbnQaHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8aH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvIp4BChJFdmVudEZpbHRlclJ1bGVLZXkihwEKE0V2ZW50RmlsdGVyUnVsZVR5cGUSDgoKZmlsdGVyX2FsbBAAEgwKCGNhdGVnb3J5EAESEAoMc3ViX2NhdGVnb3J5EAISEgoOa3BpX2V2ZW50X3R5cGUQAxIVChFjb25maWdfZXZlbnRfdHlwZRAEEhUKEWRldmljZV9ldmVudF90eXBlEAUiaAoPRXZlbnRGaWx0ZXJSdWxlEj8KA2tleRgBIAEoDjItLmV2ZW50LkV2ZW50RmlsdGVyUnVsZUtleS5FdmVudEZpbHRlclJ1bGVUeXBlUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlIp8BCgtFdmVudEZpbHRlchIOCgJpZBgBIAEoCVICaWQSFgoGZW5hYmxlGAIgASgIUgZlbmFibGUSGwoJZGV2aWNlX2lkGAMgASgJUghkZXZpY2VJZBIdCgpldmVudF90eXBlGAQgASgJUglldmVudFR5cGUSLAoFcnVsZXMYBSADKAsyFi5ldmVudC5FdmVudEZpbHRlclJ1bGVSBXJ1bGVzIjwKDEV2ZW50RmlsdGVycxIsCgdmaWx0ZXJzGAEgAygLMhIuZXZlbnQuRXZlbnRGaWx0ZXJSB2ZpbHRlcnMiOwoPQ29uZmlnRXZlbnRUeXBlIigKBVR5cGVzEgcKA2FkZBAAEgoKBnJlbW92ZRABEgoKBnVwZGF0ZRACImcKC0NvbmZpZ0V2ZW50EjAKBHR5cGUYASABKA4yHC5ldmVudC5Db25maWdFdmVudFR5cGUuVHlwZXNSBHR5cGUSEgoEaGFzaBgCIAEoCVIEaGFzaBISCgRkYXRhGAMgASgJUgRkYXRhIioKDEtwaUV2ZW50VHlwZSIaCgVUeXBlcxIJCgVzbGljZRAAEgYKAnRzEAEiqgIKDk1ldHJpY01ldGFEYXRhEhQKBXRpdGxlGAEgASgJUgV0aXRsZRIOCgJ0cxgCIAEoAVICdHMSKgoRbG9naWNhbF9kZXZpY2VfaWQYAyABKAlSD2xvZ2ljYWxEZXZpY2VJZBIbCglzZXJpYWxfbm8YBCABKAlSCHNlcmlhbE5vEhsKCWRldmljZV9pZBgFIAEoCVIIZGV2aWNlSWQSPAoHY29udGV4dBgGIAMoCzIiLmV2ZW50Lk1ldHJpY01ldGFEYXRhLkNvbnRleHRFbnRyeVIHY29udGV4dBISCgR1dWlkGAcgASgJUgR1dWlkGjoKDENvbnRleHRFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBIo4BChBNZXRyaWNWYWx1ZVBhaXJzEj4KB21ldHJpY3MYASADKAsyJC5ldmVudC5NZXRyaWNWYWx1ZVBhaXJzLk1ldHJpY3NFbnRyeVIHbWV0cmljcxo6CgxNZXRyaWNzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ASLDAQoRTWV0cmljSW5mb3JtYXRpb24SMQoIbWV0YWRhdGEYASABKAsyFS5ldmVudC5NZXRyaWNNZXRhRGF0YVIIbWV0YWRhdGESPwoHbWV0cmljcxgCIAMoCzIlLmV2ZW50Lk1ldHJpY0luZm9ybWF0aW9uLk1ldHJpY3NFbnRyeVIHbWV0cmljcxo6CgxNZXRyaWNzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ASLaAQoIS3BpRXZlbnQSLQoEdHlwZRgBIAEoDjIZLmV2ZW50LktwaUV2ZW50VHlwZS5UeXBlc1IEdHlwZRIOCgJ0cxgCIAEoAlICdHMSOQoIcHJlZml4ZXMYAyADKAsyHS5ldmVudC5LcGlFdmVudC5QcmVmaXhlc0VudHJ5UghwcmVmaXhlcxpUCg1QcmVmaXhlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5Ei0KBXZhbHVlGAIgASgLMhcuZXZlbnQuTWV0cmljVmFsdWVQYWlyc1IFdmFsdWU6AjgBIoMBCglLcGlFdmVudDISLQoEdHlwZRgBIAEoDjIZLmV2ZW50LktwaUV2ZW50VHlwZS5UeXBlc1IEdHlwZRIOCgJ0cxgCIAEoAVICdHMSNwoKc2xpY2VfZGF0YRgDIAMoCzIYLmV2ZW50Lk1ldHJpY0luZm9ybWF0aW9uUglzbGljZURhdGEi8wEKC0RldmljZUV2ZW50Eh8KC3Jlc291cmNlX2lkGAEgASgJUgpyZXNvdXJjZUlkEioKEWRldmljZV9ldmVudF9uYW1lGAIgASgJUg9kZXZpY2VFdmVudE5hbWUSIAoLZGVzY3JpcHRpb24YAyABKAlSC2Rlc2NyaXB0aW9uEjkKB2NvbnRleHQYBCADKAsyHy5ldmVudC5EZXZpY2VFdmVudC5Db250ZXh0RW50cnlSB2NvbnRleHQaOgoMQ29udGV4dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEi2gIKCFJQQ0V2ZW50EhAKA3JwYxgBIAEoCVIDcnBjEiEKDG9wZXJhdGlvbl9pZBgCIAEoCVILb3BlcmF0aW9uSWQSGAoHc2VydmljZRgDIAEoCVIHc2VydmljZRIZCghzdGFja19pZBgEIAEoCVIHc3RhY2tJZBIfCgtyZXNvdXJjZV9pZBgFIAEoCVIKcmVzb3VyY2VJZBIgCgtkZXNjcmlwdGlvbhgGIAEoCVILZGVzY3JpcHRpb24SNgoHY29udGV4dBgHIAMoCzIcLmV2ZW50LlJQQ0V2ZW50LkNvbnRleHRFbnRyeVIHY29udGV4dBItCgZzdGF0dXMYCCABKAsyFS5jb21tb24uT3BlcmF0aW9uUmVzcFIGc3RhdHVzGjoKDENvbnRleHRFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBInYKDUV2ZW50Q2F0ZWdvcnkiZQoFVHlwZXMSEQoNQ09NTVVOSUNBVElPThAAEg8KC0VOVklST05NRU5UEAESDQoJRVFVSVBNRU5UEAISCwoHU0VSVklDRRADEg4KClBST0NFU1NJTkcQBBIMCghTRUNVUklUWRAFIlIKEEV2ZW50U3ViQ2F0ZWdvcnkiPgoFVHlwZXMSBwoDUE9OEAASBwoDT0xUEAESBwoDT05UEAISBwoDT05VEAMSBwoDTk5JEAQSCAoETk9ORRAFImYKCUV2ZW50VHlwZSJZCgVUeXBlcxIQCgxDT05GSUdfRVZFTlQQABINCglLUElfRVZFTlQQARIOCgpLUElfRVZFTlQyEAISEAoMREVWSUNFX0VWRU5UEAMSDQoJUlBDX0VWRU5UEAQi3AIKC0V2ZW50SGVhZGVyEg4KAmlkGAEgASgJUgJpZBI2CghjYXRlZ29yeRgCIAEoDjIaLmV2ZW50LkV2ZW50Q2F0ZWdvcnkuVHlwZXNSCGNhdGVnb3J5EkAKDHN1Yl9jYXRlZ29yeRgDIAEoDjIdLmV2ZW50LkV2ZW50U3ViQ2F0ZWdvcnkuVHlwZXNSC3N1YkNhdGVnb3J5EioKBHR5cGUYBCABKA4yFi5ldmVudC5FdmVudFR5cGUuVHlwZXNSBHR5cGUSIQoMdHlwZV92ZXJzaW9uGAUgASgJUgt0eXBlVmVyc2lvbhI3CglyYWlzZWRfdHMYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUghyYWlzZWRUcxI7CgtyZXBvcnRlZF90cxgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSCnJlcG9ydGVkVHMixgIKBUV2ZW50EioKBmhlYWRlchgBIAEoCzISLmV2ZW50LkV2ZW50SGVhZGVyUgZoZWFkZXISNwoMY29uZmlnX2V2ZW50GAIgASgLMhIuZXZlbnQuQ29uZmlnRXZlbnRIAFILY29uZmlnRXZlbnQSLgoJa3BpX2V2ZW50GAMgASgLMg8uZXZlbnQuS3BpRXZlbnRIAFIIa3BpRXZlbnQSMQoKa3BpX2V2ZW50MhgEIAEoCzIQLmV2ZW50LktwaUV2ZW50MkgAUglrcGlFdmVudDISNwoMZGV2aWNlX2V2ZW50GAUgASgLMhIuZXZlbnQuRGV2aWNlRXZlbnRIAFILZGV2aWNlRXZlbnQSLgoJcnBjX2V2ZW50GAYgASgLMg8uZXZlbnQuUlBDRXZlbnRIAFIIcnBjRXZlbnRCDAoKZXZlbnRfdHlwZUJMChpvcmcub3BlbmNvcmQudm9sdGhhLmV2ZW50c1ouZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL3ZvbHRoYUr7TAoHEgUAAKECAQoICgEMEgMAABIKCAoBCBIDAgBFCgkKAggLEgMCAEUKCAoB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ZxgBIAEoCzIWLmNvbmZpZy5PbnVJdHVQb25BbGFybUgAUhRvbnVJdHVQb25BbGFybUNvbmZpZ0IICgZjb25maWcivgkKDk9udUl0dVBvbkFsYXJtEhUKBnBvbl9uaRgBIAEoB1IFcG9uTmkSFQoGb251X2lkGAIgASgHUgVvbnVJZBI5CghhbGFybV9pZBgDIAEoDjIeLmNvbmZpZy5PbnVJdHVQb25BbGFybS5BbGFybUlEUgdhbGFybUlkEmoKGWFsYXJtX3JlcG9ydGluZ19jb25kaXRpb24YBCABKA4yLi5jb25maWcuT251SXR1UG9uQWxhcm0uQWxhcm1SZXBvcnRpbmdDb25kaXRpb25SF2FsYXJtUmVwb3J0aW5nQ29uZGl0aW9uEmAKFXJhdGVfdGhyZXNob2xkX2NvbmZpZxgFIAEoCzIqLmNvbmZpZy5PbnVJdHVQb25BbGFybS5SYXRlVGhyZXNob2xkQ29uZmlnSABSE3JhdGVUaHJlc2hvbGRDb25maWcSVAoRcmF0ZV9yYW5nZV9jb25maWcYBiABKAsyJi5jb25maWcuT251SXR1UG9uQWxhcm0uUmF0ZVJhbmdlQ29uZmlnSABSD3JhdGVSYW5nZUNvbmZpZxJjChZ2YWx1ZV90aHJlc2hvbGRfY29uZmlnGAcgASgLMisuY29uZmlnLk9udUl0dVBvbkFsYXJtLlZhbHVlVGhyZXNob2xkQ29uZmlnSABSFHZhbHVlVGhyZXNob2xkQ29uZmlnGlwKCFNvYWtUaW1lEigKEGFjdGl2ZV9zb2FrX3RpbWUYASABKAdSDmFjdGl2ZVNvYWtUaW1lEiYKD2NsZWFyX3NvYWtfdGltZRgCIAEoB1INY2xlYXJTb2FrVGltZRq9AQoTUmF0ZVRocmVzaG9sZENvbmZpZxIyChVyYXRlX3RocmVzaG9sZF9yaXNpbmcYASABKAZSE3JhdGVUaHJlc2hvbGRSaXNpbmcSNAoWcmF0ZV90aHJlc2hvbGRfZmFsbGluZxgCIAEoBlIUcmF0ZVRocmVzaG9sZEZhbGxpbmcSPAoJc29ha190aW1lGAMgASgLMh8uY29uZmlnLk9udUl0dVBvbkFsYXJtLlNvYWtUaW1lUghzb2FrVGltZRqjAQoPUmF0ZVJhbmdlQ29uZmlnEigKEHJhdGVfcmFuZ2VfbG93ZXIYASABKAZSDnJhdGVSYW5nZUxvd2VyEigKEHJhdGVfcmFuZ2VfdXBwZXIYAiABKAZSDnJhdGVSYW5nZVVwcGVyEjwKCXNvYWtfdGltZRgDIAEoCzIfLmNvbmZpZy5PbnVJdHVQb25BbGFybS5Tb2FrVGltZVIIc29ha1RpbWUafQoUVmFsdWVUaHJlc2hvbGRDb25maWcSJwoPdGhyZXNob2xkX2xpbWl0GAEgASgGUg50aHJlc2hvbGRMaW1pdBI8Cglzb2FrX3RpbWUYAiABKAsyHy5jb25maWcuT251SXR1UG9uQWxhcm0uU29ha1RpbWVSCHNvYWtUaW1lIhkKB0FsYXJtSUQSDgoKUkRJX0VSUk9SUxAAIlIKF0FsYXJtUmVwb3J0aW5nQ29uZGl0aW9uEhIKDlJBVEVfVEhSRVNIT0xEEAASDgoKUkFURV9SQU5HRRABEhMKD1ZBTFVFX1RIUkVTSE9MRBACQggKBmNvbmZpZ0JJChNvcmcub3BlbmNvcmQudm9sdGhhWjJnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vZXh0L2NvbmZpZ0rYFQoGEgQNAEUBCtEECgEMEgMNABIaxgQgQ29weXJpZ2h0IChjKSAyMDIwIE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdB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ASABKA1SA1NldBIgCgtVbnN1cHBvcnRlZBgCIAEoDVILVW5zdXBwb3J0ZWQSFAoFRXJyb3IYAyABKA1SBUVycm9yEhoKCERpc3RhbmNlGAQgASgNUghEaXN0YW5jZSI2ChJHZXREaXN0YW5jZVJlcXVlc3QSIAoLb251RGV2aWNlSWQYASABKAlSC29udURldmljZUlkIjEKE0dldERpc3RhbmNlUmVzcG9uc2USGgoIZGlzdGFuY2UYASABKA1SCGRpc3RhbmNlIjIKFEdldE9udVVuaUluZm9SZXF1ZXN0EhoKCHVuaUluZGV4GAEgASgNUgh1bmlJbmRleCLhBAoVR2V0T251VW5pSW5mb1Jlc3BvbnNlElAKCGFkbVN0YXRlGAEgASgOMjQuZXh0ZW5zaW9uLkdldE9udVVuaUluZm9SZXNwb25zZS5BZG1pbmlzdHJhdGl2ZVN0YXRlUghhZG1TdGF0ZRJPCglvcGVyU3RhdGUYAiABKA4yMS5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlLk9wZXJhdGlvbmFsU3RhdGVSCW9wZXJTdGF0ZRJPCgljb25maWdJbmQYAyABKA4yMS5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlLkNvbmZpZ3VyYXRpb25JbmRSCWNvbmZpZ0luZCLCAQoQQ29uZmlndXJhdGlvbkluZBIKCgZVTktPV04QABISCg5URU5fQkFTRV9UX0ZEWBABEhYKEkhVTkRSRURfQkFTRV9UX0ZEWBACEhgKFEdJR0FCSVRfRVRIRVJORVRfRkRYEAMSFgoSVEVOX0dfRVRIRVJORVRfRkRYEAQSEgoOVEVOX0JBU0VfVF9IRFgQBRIWChJIVU5EUkVEX0JBU0VfVF9IRFgQBhIYChRHSUdBQklUX0VUSEVSTkVUX0hEWBAHIkcKE0FkbWluaXN0cmF0aXZlU3RhdGUSFgoSQURNU1RBVEVfVU5ERUZJTkVEEAASCgoGTE9DS0VEEAESDAoIVU5MT0NLRUQQAiJGChBPcGVyYXRpb25hbFN0YXRlEhcKE09QRVJTVEFURV9VTkRFRklORUQQABILCgdFTkFCTEVEEAESDAoIRElTQUJMRUQQAiK3AQoSR2V0T2x0UG9ydENvdW50ZXJzEhYKBnBvcnRObxgBIAEoDVIGcG9ydE5vEkIKCHBvcnRUeXBlGAIgASgOMiYuZXh0ZW5zaW9uLkdldE9sdFBvcnRDb3VudGVycy5Qb3J0VHlwZVIIcG9ydFR5cGUiRQoIUG9ydFR5cGUSEAoMUG9ydF9VTktOT1dOEAASFQoRUG9ydF9FVEhFUk5FVF9OTkkQARIQCgxQb3J0X1BPTl9PTFQQAiLMAwoaR2V0T2x0UG9ydENvdW50ZXJzUmVzcG9uc2USGAoHdHhCeXRlcxgBIAEoBFIHdHhCeXRlcxIYCgdyeEJ5dGVzGAIgASgEUgdyeEJ5dGVzEhwKCXR4UGFja2V0cxgDIAEoBFIJdHhQYWNrZXRzEhwKCXJ4UGFja2V0cxgEIAEoBFIJcnhQYWNrZXRzEiYKDnR4RXJyb3JQYWNrZXRzGAUgASgEUg50eEVycm9yUGFja2V0cxImCg5yeEVycm9yUGFja2V0cxgGIAEoBFIOcnhFcnJvclBhY2tldHMSJgoOdHhCY2FzdFBhY2tldHMYByABKARSDnR4QmNhc3RQYWNrZXRzEiYKDnJ4QmNhc3RQYWNrZXRzGAggASgEUg5yeEJjYXN0UGFja2V0cxImCg50eFVjYXN0UGFja2V0cxgJIAEoBFIOdHhVY2FzdFBhY2tldHMSJgoOcnhVY2FzdFBhY2tldHMYCiABKARSDnJ4VWNhc3RQYWNrZXRzEiYKDnR4TWNhc3RQYWNrZXRzGAsgASgEUg50eE1jYXN0UGFja2V0cxImCg5yeE1jYXN0UGFja2V0cxgMIAEoBFIOcnhNY2FzdFBhY2tldHMiRAoUR2V0T251UG9uT3B0aWNhbEluZm8SLAoFZW1wdHkYASABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBWVtcHR5IoQCChxHZXRPbnVQb25PcHRpY2FsSW5mb1Jlc3BvbnNlEioKEHBvd2VyRmVlZFZvbHRhZ2UYASABKAJSEHBvd2VyRmVlZFZvbHRhZ2USMgoUcmVjZWl2ZWRPcHRpY2FsUG93ZXIYAiABKAJSFHJlY2VpdmVkT3B0aWNhbFBvd2VyEjYKFm1lYW5PcHRpY2FsTGF1bmNoUG93ZXIYAyABKAJSFm1lYW5PcHRpY2FsTGF1bmNoUG93ZXISKgoQbGFzZXJCaWFzQ3VycmVudBgEIAEoAlIQbGFzZXJCaWFzQ3VycmVudBIgCgt0ZW1wZXJhdHVyZRgFIAEoAlILdGVtcGVyYXR1cmUirwEKH0dldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnkSUgoJZGlyZWN0aW9uGAEgASgOMjQuZXh0ZW5zaW9uLkdldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnkuRGlyZWN0aW9uUglkaXJlY3Rpb24iOAoJRGlyZWN0aW9uEg0KCVVOREVGSU5FRBAAEgwKCFVQU1RSRUFNEAESDgoKRE9XTlNUUkVBTRACIpMFCidHZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5UmVzcG9uc2USHgoKZHJvcEV2ZW50cxgBIAEoDVIKZHJvcEV2ZW50cxIWCgZvY3RldHMYAiABKA1SBm9jdGV0cxIYCgdwYWNrZXRzGAMgASgNUgdwYWNrZXRzEioKEGJyb2FkY2FzdFBhY2tldHMYBCABKA1SEGJyb2FkY2FzdFBhY2tldHMSKgoQbXVsdGljYXN0UGFja2V0cxgFIAEoDVIQbXVsdGljYXN0UGFja2V0cxIsChFjcmNFcnJvcmVkUGFja2V0cxgGIAEoDVIRY3JjRXJyb3JlZFBhY2tldHMSKgoQdW5kZXJzaXplUGFja2V0cxgHIAEoDVIQdW5kZXJzaXplUGFja2V0cxIoCg9vdmVyc2l6ZVBhY2tldHMYCCABKA1SD292ZXJzaXplUGFja2V0cxIoCg9wYWNrZXRzNjRvY3RldHMYCSABKA1SD3BhY2tldHM2NG9jdGV0cxIyChRwYWNrZXRzNjVUbzEyN29jdGV0cxgKIAEoDVIUcGFja2V0czY1VG8xMjdvY3RldHMSNAoVcGFja2V0czEyOFRvMjU1T2N0ZXRzGAsgASgNUhVwYWNrZXRzMTI4VG8yNTVPY3RldHMSNAoVcGFja2V0czI1NlRvNTExb2N0ZXRzGAwgASgNUhVwYWNrZXRzMjU2VG81MTFvY3RldHMSNgoWcGFja2V0czUxMlRvMTAyM29jdGV0cxgNIAEoDVIWcGFja2V0czUxMlRvMTAyM29jdGV0cxI4ChdwYWNrZXRzMTAyNFRvMTUxOG9jdGV0cxgOIAEoDVIXcGFja2V0czEwMjRUbzE1MThvY3RldHMiQAoQR2V0T251RmVjSGlzdG9yeRIsCgVlbXB0eRgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIFZW1wdHki8gEKGEdldE9udUZlY0hpc3RvcnlSZXNwb25zZRImCg5jb3JyZWN0ZWRCeXRlcxgBIAEoDVIOY29ycmVjdGVkQnl0ZXMSLgoSY29ycmVjdGVkQ29kZVdvcmRzGAIgASgNUhJjb3JyZWN0ZWRDb2RlV29yZHMSHgoKZmVjU2Vjb25kcxgDIAEoDVIKZmVjU2Vjb25kcxImCg50b3RhbENvZGVXb3JkcxgEIAEoDVIOdG90YWxDb2RlV29yZHMSNgoWdW5jb3JyZWN0YWJsZUNvZGVXb3JkcxgFIAEoDVIWdW5jb3JyZWN0YWJsZUNvZGVXb3JkcyJHChVHZXRPbnVDb3VudGVyc1JlcXVlc3QSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQijQEKJUdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlcXVlc3QSIAoLb251RGV2aWNlSWQYASABKAlSC29udURldmljZUlkEhwKCHVuaUluZGV4GAIgASgNSABSCHVuaUluZGV4EhQKBXJlc2V0GAMgASgIUgVyZXNldEIOCgxpc191bmlfaW5kZXgiQwoRR2V0UnhQb3dlclJlcXVlc3QSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQiTAoUR2V0T2x0UnhQb3dlclJlcXVlc3QSHQoKcG9ydF9sYWJlbBgBIAEoCVIJcG9ydExhYmVsEhUKBm9udV9zbhgCIAEoCVIFb251U24i5AwKFkdldE9udUNvdW50ZXJzUmVzcG9uc2USGQoHaW50Zl9pZBgBIAEoB0gAUgZpbnRmSWQSFwoGb251X2lkGAIgASgHSAFSBW9udUlkEicKDnBvc2l0aXZlX2RyaWZ0GAMgASgGSAJSDXBvc2l0aXZlRHJpZnQSJwoObmVnYXRpdmVfZHJpZnQYBCABKAZIA1INbmVnYXRpdmVEcmlmdBI6ChhkZWxpbWl0ZXJfbWlzc19kZXRlY3Rpb24YBSABKAZIBFIWZGVsaW1pdGVyTWlzc0RldGVjdGlvbhIfCgpiaXBfZXJyb3JzGAYgASgGSAVSCWJpcEVycm9ycxIdCgliaXBfdW5pdHMYByABKAZIBlIIYmlwVW5pdHMSNAoVZmVjX2NvcnJlY3RlZF9zeW1ib2xzGAggASgGSAdSE2ZlY0NvcnJlY3RlZFN5bWJvbHMSOAoXZmVjX2NvZGV3b3Jkc19jb3JyZWN0ZWQYCSABKAZICFIVZmVjQ29kZXdvcmRzQ29ycmVjdGVkEkAKG2ZlY19jb2Rld29yZHNfdW5jb3JyZWN0YWJsZRgKIAEoBkgJUhlmZWNDb2Rld29yZHNVbmNvcnJlY3RhYmxlEiUKDWZlY19jb2Rld29yZHMYCyABKAZIClIMZmVjQ29kZXdvcmRzEjAKE2ZlY19jb3JyZWN0ZWRfdW5pdHMYDCABKAZIC1IRZmVjQ29ycmVjdGVkVW5pdHMSKAoPeGdlbV9rZXlfZXJyb3JzGA0gASgGSAxSDXhnZW1LZXlFcnJvcnMSHQoJeGdlbV9sb3NzGA4gASgGSA1SCHhnZW1Mb3NzEigKD3J4X3Bsb2Ftc19lcnJvchgPIAEoBkgOUg1yeFBsb2Ftc0Vycm9yEi0KEnJ4X3Bsb2Ftc19ub25faWRsZRgQIAEoBkgPUg9yeFBsb2Ftc05vbklkbGUSGQoHcnhfb21jaRgRIAEoBkgQUgZyeE9tY2kSGQoHdHhfb21jaRgSIAEoBkgRUgZ0eE9tY2kSOgoZcnhfb21jaV9wYWNrZXRzX2NyY19lcnJvchgTIAEoBkgSUhVyeE9tY2lQYWNrZXRzQ3JjRXJyb3ISGwoIcnhfYnl0ZXMYFCABKAZIE1IHcnhCeXRlcxIfCgpyeF9wYWNrZXRzGBUgASgGSBRSCXJ4UGFja2V0cxIbCgh0eF9ieXRlcxgWIAEoBkgVUgd0eEJ5dGVzEh8KCnR4X3BhY2tldHMYFyABKAZIFlIJdHhQYWNrZXRzEiMKDGJlcl9yZXBvcnRlZBgYIAEoBkgXUgtiZXJSZXBvcnRlZBIhCgtsY2RnX2Vycm9ycxgZIAEoBkgYUgpsY2RnRXJyb3JzEh8KCnJkaV9lcnJvcnMYGiABKAZIGVIJcmRpRXJyb3JzEh4KCXRpbWVzdGFtcBgbIAEoB0gaUgl0aW1lc3RhbXBCDAoKaXNfaW50Zl9pZEILCglpc19vbnVfaWRCEwoRaXNfcG9zaXRpdmVfZHJpZnRCEwoRaXNfbmVnYXRpdmVfZHJpZnRCHQobaXNfZGVsaW1pdGVyX21pc3NfZGV0ZWN0aW9uQg8KDWlzX2JpcF9lcnJvcnNCDgoMaXNfYmlwX3VuaXRzQhoKGGlzX2ZlY19jb3JyZWN0ZWRfc3ltYm9sc0IcChppc19mZWNfY29kZXdvcmRzX2NvcnJlY3RlZEIgCh5pc19mZWNfY29kZXdvcmRzX3VuY29ycmVjdGFibGVCEgoQaXNfZmVjX2NvZGV3b3Jkc0IYChZpc19mZWNfY29ycmVjdGVkX3VuaXRzQhQKEmlzX3hnZW1fa2V5X2Vycm9yc0IOCgxpc194Z2VtX2xvc3NCFAoSaXNfcnhfcGxvYW1zX2Vycm9yQhcKFWlzX3J4X3Bsb2Ftc19ub25faWRsZUIMCgppc19yeF9vbWNpQgwKCmlzX3R4X29tY2lCHgocaXNfcnhfb21jaV9wYWNrZXRzX2NyY19lcnJvckINCgtpc19yeF9ieXRlc0IPCg1pc19yeF9wYWNrZXRzQg0KC2lzX3R4X2J5dGVzQg8KDWlzX3R4X3BhY2tldHNCEQoPaXNfYmVyX3JlcG9ydGVkQhAKDmlzX2xjZGdfZXJyb3JzQg8KDWlzX3JkaV9lcnJvcnNCDgoMaXNfdGltZXN0YW1wIowFChtPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG0SHwoLZHJvcF9ldmVudHMYASABKAZSCmRyb3BFdmVudHMSFgoGb2N0ZXRzGAIgASgGUgZvY3RldHMSFgoGZnJhbWVzGAMgASgGUgZmcmFtZXMSKQoQYnJvYWRjYXN0X2ZyYW1lcxgEIAEoBlIPYnJvYWRjYXN0RnJhbWVzEikKEG11bHRpY2FzdF9mcmFtZXMYBSABKAZSD211bHRpY2FzdEZyYW1lcxIsChJjcmNfZXJyb3JlZF9mcmFtZXMYBiABKAZSEGNyY0Vycm9yZWRGcmFtZXMSKQoQdW5kZXJzaXplX2ZyYW1lcxgHIAEoBlIPdW5kZXJzaXplRnJhbWVzEicKD292ZXJzaXplX2ZyYW1lcxgIIAEoBlIOb3ZlcnNpemVGcmFtZXMSKAoQZnJhbWVzXzY0X29jdGV0cxgJIAEoBlIOZnJhbWVzNjRPY3RldHMSNAoXZnJhbWVzXzY1X3RvXzEyN19vY3RldHMYCiABKAZSE2ZyYW1lczY1VG8xMjdPY3RldHMSNgoYZnJhbWVzXzEyOF90b18yNTVfb2N0ZXRzGAsgASgGUhRmcmFtZXMxMjhUbzI1NU9jdGV0cxI2ChhmcmFtZXNfMjU2X3RvXzUxMV9vY3RldHMYDCABKAZSFGZyYW1lczI1NlRvNTExT2N0ZXRzEjgKGWZyYW1lc181MTJfdG9fMTAyM19vY3RldHMYDSABKAZSFWZyYW1lczUxMlRvMTAyM09jdGV0cxI6ChpmcmFtZXNfMTAyNF90b18xNTE4X29jdGV0cxgOIAEoBlIWZnJhbWVzMTAyNFRvMTUxOE9jdGV0cyL0AgomR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVzcG9uc2USQgoIdXBzdHJlYW0YASABKAsyJi5leHRlbnNpb24uT21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUgh1cHN0cmVhbRJGCgpkb3duc3RyZWFtGAIgASgLMiYuZXh0ZW5zaW9uLk9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVIKZG93bnN0cmVhbRKLAQomb21jaV9ldGhlcm5ldF9mcmFtZV9leHRlbmRlZF9wbV9mb3JtYXQYAyABKA4yOC5leHRlbnNpb24uR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVzcG9uc2UuRm9ybWF0UiFvbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1Gb3JtYXQiMAoGRm9ybWF0EhIKDlRISVJUWV9UV09fQklUEAASEgoOU0lYVFlfRk9VUl9CSVQQASJ0CgdSeFBvd2VyEhUKBm9udV9zbhgBIAEoCVIFb251U24SFgoGc3RhdHVzGAIgASgJUgZzdGF0dXMSHwoLZmFpbF9yZWFzb24YAyABKAlSCmZhaWxSZWFzb24SGQoIcnhfcG93ZXIYBCABKAFSB3J4UG93ZXIiZQoVR2V0T2x0UnhQb3dlclJlc3BvbnNlEh0KCnBvcnRfbGFiZWwYASABKAlSCXBvcnRMYWJlbBItCghyeF9wb3dlchgCIAMoCzISLmV4dGVuc2lvbi5SeFBvd2VyUgdyeFBvd2VyIpgBChJHZXRSeFBvd2VyUmVzcG9uc2USFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSHwoLZmFpbF9yZWFzb24YBCABKAlSCmZhaWxSZWFzb24SGQoIcnhfcG93ZXIYBSABKAFSB3J4UG93ZXIiSgoaR2V0T251T21jaVR4UnhTdGF0c1JlcXVlc3QSLAoFZW1wdHkYASABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBWVtcHR5IvEDChtHZXRPbnVPbWNpVHhSeFN0YXRzUmVzcG9uc2USKQoRYmFzZV90eF9hcl9mcmFtZXMYASABKA1SDmJhc2VUeEFyRnJhbWVzEikKEWJhc2VfcnhfYWtfZnJhbWVzGAIgASgNUg5iYXNlUnhBa0ZyYW1lcxIuChRiYXNlX3R4X25vX2FyX2ZyYW1lcxgDIAEoDVIQYmFzZVR4Tm9BckZyYW1lcxIuChRiYXNlX3J4X25vX2FrX2ZyYW1lcxgEIAEoDVIQYmFzZVJ4Tm9Ba0ZyYW1lcxInChBleHRfdHhfYXJfZnJhbWVzGAUgASgNUg1leHRUeEFyRnJhbWVzEicKEGV4dF9yeF9ha19mcmFtZXMYBiABKA1SDWV4dFJ4QWtGcmFtZXMSLAoTZXh0X3R4X25vX2FyX2ZyYW1lcxgHIAEoDVIPZXh0VHhOb0FyRnJhbWVzEiwKE2V4dF9yeF9ub19ha19mcmFtZXMYCCABKA1SD2V4dFJ4Tm9Ba0ZyYW1lcxI1Chd0eF9vbWNpX2NvdW50ZXJfcmV0cmllcxgJIAEoDVIUdHhPbWNpQ291bnRlclJldHJpZXMSNwoYdHhfb21jaV9jb3VudGVyX3RpbWVvdXRzGAogASgNUhV0eE9tY2lDb3VudGVyVGltZW91dHMikwYKD0dldFZhbHVlUmVxdWVzdBI7CghkaXN0YW5jZRgBIAEoCzIdLmV4dGVuc2lvbi5HZXREaXN0YW5jZVJlcXVlc3RIAFIIZGlzdGFuY2USOwoHdW5pSW5mbxgCIAEoCzIfLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVxdWVzdEgAUgd1bmlJbmZvEkEKC29sdFBvcnRJbmZvGAMgASgLMh0uZXh0ZW5zaW9uLkdldE9sdFBvcnRDb3VudGVyc0gAUgtvbHRQb3J0SW5mbxJJCg5vbnVPcHRpY2FsSW5mbxgEIAEoCzIfLmV4dGVuc2lvbi5HZXRPbnVQb25PcHRpY2FsSW5mb0gAUg5vbnVPcHRpY2FsSW5mbxJSCg1ldGhCcmlkZ2VQb3J0GAUgASgLMiouZXh0ZW5zaW9uLkdldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnlIAFINZXRoQnJpZGdlUG9ydBI9CgpmZWNIaXN0b3J5GAYgASgLMhsuZXh0ZW5zaW9uLkdldE9udUZlY0hpc3RvcnlIAFIKZmVjSGlzdG9yeRJCCgpvbnVQb25JbmZvGAcgASgLMiAuZXh0ZW5zaW9uLkdldE9udUNvdW50ZXJzUmVxdWVzdEgAUgpvbnVQb25JbmZvEkwKB29udUluZm8YCCABKAsyMC5leHRlbnNpb24uR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVxdWVzdEgAUgdvbnVJbmZvEjgKB3J4UG93ZXIYCSABKAsyHC5leHRlbnNpb24uR2V0UnhQb3dlclJlcXVlc3RIAFIHcnhQb3dlchJLCgxvbnVPbWNpU3RhdHMYCiABKAsyJS5leHRlbnNpb24uR2V0T251T21jaVR4UnhTdGF0c1JlcXVlc3RIAFIMb251T21jaVN0YXRzEkEKCm9sdFJ4UG93ZXIYCyABKAsyHy5leHRlbnNpb24uR2V0T2x0UnhQb3dlclJlcXVlc3RIAFIKb2x0UnhQb3dlckIJCgdyZXF1ZXN0IrwJChBHZXRWYWx1ZVJlc3BvbnNlEjoKBnN0YXR1cxgBIAEoDjIiLmV4dGVuc2lvbi5HZXRWYWx1ZVJlc3BvbnNlLlN0YXR1c1IGc3RhdHVzEkUKCWVyclJlYXNvbhgCIAEoDjInLmV4dGVuc2lvbi5HZXRWYWx1ZVJlc3BvbnNlLkVycm9yUmVhc29uUgllcnJSZWFzb24SPAoIZGlzdGFuY2UYAyABKAsyHi5leHRlbnNpb24uR2V0RGlzdGFuY2VSZXNwb25zZUgAUghkaXN0YW5jZRI8Cgd1bmlJbmZvGAQgASgLMiAuZXh0ZW5zaW9uLkdldE9udVVuaUluZm9SZXNwb25zZUgAUgd1bmlJbmZvEksKDHBvcnRDb3V0bmVycxgFIAEoCzIlLmV4dGVuc2lvbi5HZXRPbHRQb3J0Q291bnRlcnNSZXNwb25zZUgAUgxwb3J0Q291dG5lcnMSUQoOb251T3B0aWNhbEluZm8YBiABKAsyJy5leHRlbnNpb24uR2V0T251UG9uT3B0aWNhbEluZm9SZXNwb25zZUgAUg5vbnVPcHRpY2FsSW5mbxJiChFldGhCcmlkZ2VQb3J0SW5mbxgHIAEoCzIyLmV4dGVuc2lvbi5HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5UmVzcG9uc2VIAFIRZXRoQnJpZGdlUG9ydEluZm8SRQoKZmVjSGlzdG9yeRgIIAEoCzIjLmV4dGVuc2lvbi5HZXRPbnVGZWNIaXN0b3J5UmVzcG9uc2VIAFIKZmVjSGlzdG9yeRJLCg5vbnVQb25Db3VudGVycxgJIAEoCzIhLmV4dGVuc2lvbi5HZXRPbnVDb3VudGVyc1Jlc3BvbnNlSABSDm9udVBvbkNvdW50ZXJzElUKC29udUNvdW50ZXJzGAogASgLMjEuZXh0ZW5zaW9uLkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlc3BvbnNlSABSC29udUNvdW50ZXJzEjkKB3J4UG93ZXIYCyABKAsyHS5leHRlbnNpb24uR2V0UnhQb3dlclJlc3BvbnNlSABSB3J4UG93ZXISTAoMb251T21jaVN0YXRzGAwgASgLMiYuZXh0ZW5zaW9uLkdldE9udU9tY2lUeFJ4U3RhdHNSZXNwb25zZUgAUgxvbnVPbWNpU3RhdHMSQgoKb2x0UnhQb3dlchgNIAEoCzIgLmV4dGVuc2lvbi5HZXRPbHRSeFBvd2VyUmVzcG9uc2VIAFIKb2x0UnhQb3dlciIxCgZTdGF0dXMSFAoQU1RBVFVTX1VOREVGSU5FRBAAEgYKAk9LEAESCQoFRVJST1IQAiKtAQoLRXJyb3JSZWFzb24SFAoQUkVBU09OX1VOREVGSU5FRBAAEg8KC1VOU1VQUE9SVEVEEAESFQoRSU5WQUxJRF9ERVZJQ0VfSUQQAhIVChFJTlZBTElEX1BPUlRfVFlQRRADEgsKB1RJTUVPVVQQBBIUChBJTlZBTElEX1JFUV9UWVBFEAUSEgoOSU5URVJOQUxfRVJST1IQBhISCg5JTlZBTElEX0RFVklDRRAHQgoKCHJlc3BvbnNlIlYKD1NldFZhbHVlUmVxdWVzdBI4CgxhbGFybV9jb25maWcYASABKAsyEy5jb25maWcuQWxhcm1Db25maWdIAFILYWxhcm1Db25maWdCCQoHcmVxdWVzdCL+AQoQU2V0VmFsdWVSZXNwb25zZRI6CgZzdGF0dXMYASABKA4yIi5leHRlbnNpb24uU2V0VmFsdWVSZXNwb25zZS5TdGF0dXNSBnN0YXR1cxJFCgllcnJSZWFzb24YAiABKA4yJy5leHRlbnNpb24uU2V0VmFsdWVSZXNwb25zZS5FcnJvclJlYXNvblIJZXJyUmVhc29uIjEKBlN0YXR1cxIUChBTVEFUVVNfVU5ERUZJTkVEEAASBgoCT0sQARIJCgVFUlJPUhACIjQKC0Vycm9yUmVhc29uEhQKEFJFQVNPTl9VTkRFRklORUQQABIPCgtVTlNVUFBPUlRFRBABImkKFVNpbmdsZUdldFZhbHVlUmVxdWVzdBIaCgh0YXJnZXRJZBgBIAEoCVIIdGFyZ2V0SWQSNAoHcmVxdWVzdBgCIAEoCzIaLmV4dGVuc2lvbi5HZXRWYWx1ZVJlcXVlc3RSB3JlcXVlc3QiUQoWU2luZ2xlR2V0VmFsdWVSZXNwb25zZRI3CghyZXNwb25zZRgBIAEoCzIbLmV4dGVuc2lvbi5HZXRWYWx1ZVJlc3BvbnNlUghyZXNwb25zZSJpChVTaW5nbGVTZXRWYWx1ZVJlcXVlc3QSGgoIdGFyZ2V0SWQYASABKAlSCHRhcmdldElkEjQKB3JlcXVlc3QYAiABKAsyGi5leHRlbnNpb24uU2V0VmFsdWVSZXF1ZXN0UgdyZXF1ZXN0IlEKFlNpbmdsZVNldFZhbHVlUmVzcG9uc2USNwoIcmVzcG9uc2UYASABKAsyGy5leHRlbnNpb24uU2V0VmFsdWVSZXNwb25zZVIIcmVzcG9uc2UyswEKCUV4dGVuc2lvbhJSCgtHZXRFeHRWYWx1ZRIgLmV4dGVuc2lvbi5TaW5nbGVHZXRWYWx1ZVJlcXVlc3QaIS5leHRlbnNpb24uU2luZ2xlR2V0VmFsdWVSZXNwb25zZRJSCgtTZXRFeHRWYWx1ZRIgLmV4dGVuc2lvbi5TaW5nbGVTZXRWYWx1ZVJlcXVlc3QaIS5leHRlbnNpb24uU2luZ2xlU2V0VmFsdWVSZXNwb25zZUJSCh1v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c2FnZV90eXBlGAEgASgNUgttZXNzYWdlVHlwZSLQAgoNTWliRGV2aWNlRGF0YRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhgKB2NyZWF0ZWQYAiABKAlSB2NyZWF0ZWQSJAoObGFzdF9zeW5jX3RpbWUYAyABKAlSDGxhc3RTeW5jVGltZRIiCg1taWJfZGF0YV9zeW5jGAQgASgNUgttaWJEYXRhU3luYxIYCgd2ZXJzaW9uGAUgASgNUgd2ZXJzaW9uEiwKB2NsYXNzZXMYBiADKAsyEi5vbWNpLk1pYkNsYXNzRGF0YVIHY2xhc3NlcxI+ChBtYW5hZ2VkX2VudGl0aWVzGAcgAygLMhMub21jaS5NYW5hZ2VkRW50aXR5Ug9tYW5hZ2VkRW50aXRpZXMSNgoNbWVzc2FnZV90eXBlcxgIIAMoCzIRLm9tY2kuTWVzc2FnZVR5cGVSDG1lc3NhZ2VUeXBlcyIuChFPcGVuT21jaUV2ZW50VHlwZSIZCgVUeXBlcxIQCgxzdGF0ZV9jaGFuZ2UQACJWCg1PcGVuT21jaUV2ZW50EjEKBHR5cGUYASABKA4yHS5vbWNpLk9wZW5PbWNpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEhIKBGRhdGEYAiABKAlSBGRhdGFCSAoYb3JnLm9wZW5jb3JkLnZvbHRoYS5vbWNpWixnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb21jaUq3EwoGEgQPAEkBCt4ECgEMEgMPABIa0wQKIENvcHlyaWdodCAyMDE4IC0gcHJlc2VudCB0aGUgb3JpZ2luYWwgYXV0aG9yIG9yIGF1dGhvcnMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJl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dmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSGAoHY3JlYXRlZBgCIAEoCVIHY3JlYXRlZBIuChNsYXN0X2FsYXJtX3NlcXVlbmNlGAMgASgNUhFsYXN0QWxhcm1TZXF1ZW5jZRIkCg5sYXN0X3N5bmNfdGltZRgEIAEoCVIMbGFzdFN5bmNUaW1lEhgKB3ZlcnNpb24YBSABKA1SB3ZlcnNpb24SLgoHY2xhc3NlcxgGIAMoCzIULm9tY2kuQWxhcm1DbGFzc0RhdGFSB2NsYXNzZXMSQwoQbWFuYWdlZF9lbnRpdGllcxgHIAMoCzIYLm9tY2kuQWxhcm1NYW5hZ2VkRW50aXR5Ug9tYW5hZ2VkRW50aXRpZXMSOwoNbWVzc2FnZV90eXBlcxgIIAMoCzIWLm9tY2kuQWxhcm1NZXNzYWdlVHlwZVIMbWVzc2FnZVR5cGVzIj8KFkFsYXJtT3Blbk9tY2lFdmVudFR5cGUiJQoRT3Blbk9tY2lFdmVudFR5cGUSEAoMc3RhdGVfY2hhbmdlEAAibAoSQWxhcm1PcGVuT21jaUV2ZW50EkIKBHR5cGUYASABKA4yLi5vbWNpLkFsYXJtT3Blbk9tY2lFdmVudFR5cGUuT3Blbk9tY2lFdmVudFR5cGVSBHR5cGUSEgoEZGF0YRgCIAEoCVIEZGF0YUJIChhvcmcub3BlbmNvcmQudm9sdGhhLm9tY2laLGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vbWNpSrcTCgYSBA8ASwEK3gQKAQwSAw8AEhrTBAogQ29weXJpZ2h0IDIwMTggLSBwcmVzZW50IHRoZSBvcmlnaW5hbCBhdXRob3Igb3IgYXV0aG9ycy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5s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EgMKCw8KDAoFBAACAQMSAwoSEwoKCgIEARIEDQATAQoKCgMEAQESAw0IFAoMCgQEAQQAEgQOBBEFCgwKBQQBBAABEgMOCRsKDQoGBAEEAAIAEgMPCBQKDgoHBAEEAAIAARIDDwgPCg4KBwQBBAACAAISAw8SEwoNCgYEAQQAAgESAxAIFAoOCgcEAQQAAgEBEgMQCA8KDgoHBAEEAAIBAhIDEBITCgsKBAQBAgASAxIEIgoNCgUEAQIABBIEEgQRBQoMCgUEAQIABhIDEgQWCgwKBQQBAgABEgMSFx0KDAoFBAECAAMSAxIgIWIGcHJvdG8zCtydAQoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8SBnZvbHRoYRocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoadm9sdGhhX3Byb3Rvcy9oZWFsdGgucHJvdG8aInZvbHRoYV9wcm90b3MvbG9naWNhbF9kZXZpY2UucHJvdG8aGnZvbHRoYV9wcm90b3MvZGV2aWNlLnByb3RvGht2b2x0aGFfcHJvdG9zL2FkYXB0ZXIucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb3BlbmZsb3dfMTMucHJvdG8aGnZvbHRoYV9wcm90b3MvZXZlbnRzLnByb3RvGh52b2x0aGFfcHJvdG9zL2V4dGVuc2lvbnMucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb21jaV9taWJfZGIucHJvdG8aIXZvbHRoYV9wcm90b3Mvb21jaV9hbGFybV9kYi5wcm90bxoddm9sdGhhX3Byb3Rvcy9vbWNpX3Rlc3QucHJvdG8iXQoMQ29yZUluc3RhbmNlEh8KC2luc3RhbmNlX2lkGAEgASgJUgppbnN0YW5jZUlkEiwKBmhlYWx0aBgCIAEoCzIULmhlYWx0aC5IZWFsdGhTdGF0dXNSBmhlYWx0aCI7Cg1Db3JlSW5zdGFuY2VzEioKBWl0ZW1zGAEgAygLMhQudm9sdGhhLkNvcmVJbnN0YW5jZVIFaXRlbXMiwAMKBlZvbHRoYRIYCgd2ZXJzaW9uGAEgASgJUgd2ZXJzaW9uEiwKCGFkYXB0ZXJzGAIgAygLMhAuYWRhcHRlci5BZGFwdGVyUghhZGFwdGVycxJGCg9sb2dpY2FsX2RldmljZXMYAyADKAsyHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsRGV2aWNlUg5sb2dpY2FsRGV2aWNlcxIoCgdkZXZpY2VzGAQgAygLMg4uZGV2aWNlLkRldmljZVIHZGV2aWNlcxI1CgxkZXZpY2VfdHlwZXMYBSADKAsyEi5kZXZpY2UuRGV2aWNlVHlwZVILZGV2aWNlVHlwZXMSNwoNZXZlbnRfZmlsdGVycxgHIAMoCzISLmV2ZW50LkV2ZW50RmlsdGVyUgxldmVudEZpbHRlcnMSPwoRb21jaV9taWJfZGF0YWJhc2UYHCADKAsyEy5vbWNpLk1pYkRldmljZURhdGFSD29tY2lNaWJEYXRhYmFzZRJFChNvbWNpX2FsYXJtX2RhdGFiYXNlGB0gAygLMhUub21jaS5BbGFybURldmljZURhdGFSEW9tY2lBbGFybURhdGFiYXNlSgQIBhAHMsczCg1Wb2x0aGFTZXJ2aWNlEkQKCUdldFZvbHRoYRIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoOLnZvbHRoYS5Wb2x0aGEiD4LT5JMCCRIHL2FwaS92MRJdChFMaXN0Q29yZUluc3RhbmNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoVLnZvbHRoYS5Db3JlSW5zdGFuY2VzIhmC0+STAhMSES9hcGkvdjEvaW5zdGFuY2VzElMKD0dldENvcmVJbnN0YW5jZRIKLmNvbW1vbi5JRBoULnZvbHRoYS5Db3JlSW5zdGFuY2UiHoLT5JMCGBIWL2FwaS92MS9pbnN0YW5jZXMve2lkfRJTCgxMaXN0QWRhcHRlcnMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaES5hZGFwdGVyLkFkYXB0ZXJzIhiC0+STAhISEC9hcGkvdjEvYWRhcHRlcnMSbQoSTGlzdExvZ2ljYWxEZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gh4ubG9naWNhbF9kZXZpY2UuTG9naWNhbERldmljZXMiH4LT5JMCGRIXL2FwaS92MS9sb2dpY2FsX2RldmljZXMSYwoQR2V0TG9naWNhbERldmljZRIKLmNvbW1vbi5JRBodLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxEZXZpY2UiJILT5JMCHhIcL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfRJuChZMaXN0TG9naWNhbERldmljZVBvcnRzEgouY29tbW9uLklEGhwubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnRzIiqC0+STAiQSIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMSiAEKFEdldExvZ2ljYWxEZXZpY2VQb3J0Eh0ubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnRJZBobLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0IjSC0+STAi4SLC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9Eo0BChdFbmFibGVMb2dpY2FsRGV2aWNlUG9ydBIdLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0SWQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiO4LT5JMCNSIzL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0vZW5hYmxlEo8BChhEaXNhYmxlTG9naWNhbERldmljZVBvcnQSHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsUG9ydElkGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjyC0+STAjYiNC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9L2Rpc2FibGUSZAoWTGlzdExvZ2ljYWxEZXZpY2VGbG93cxIKLmNvbW1vbi5JRBoSLm9wZW5mbG93XzEzLkZsb3dzIiqC0+STAiQSIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd3MSgwEKHFVwZGF0ZUxvZ2ljYWxEZXZpY2VGbG93VGFibGUSHC5vcGVuZmxvd18xMy5GbG93VGFibGVVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLYLT5JMCJyIiL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9mbG93czoBKhKEAQodVXBkYXRlTG9naWNhbERldmljZU1ldGVyVGFibGUSGy5vcGVuZmxvd18xMy5NZXRlck1vZFVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIugtPkkwIoIiMvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L21ldGVyczoBKhJnChdMaXN0TG9naWNhbERldmljZU1ldGVycxIKLmNvbW1vbi5JRBoTLm9wZW5mbG93XzEzLk1ldGVycyIrgtPkkwIlEiMvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L21ldGVycxJ0ChtMaXN0TG9naWNhbERldmljZUZsb3dHcm91cHMSCi5jb21tb24uSUQaFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzIjCC0+STAioSKC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHMSkwEKIVVwZGF0ZUxvZ2ljYWxEZXZpY2VGbG93R3JvdXBUYWJsZRIhLm9wZW5mbG93XzEzLkZsb3dHcm91cFRhYmxlVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjOC0+STAi0iKC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHM6ASoSTwoLTGlzdERldmljZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaDy5kZXZpY2UuRGV2aWNlcyIXgtPkkwIREg8vYXBpL3YxL2RldmljZXMSTwoNTGlzdERldmljZUlkcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoLLmNvbW1vbi5JRHMiGYLT5JMCExIRL2FwaS92MS9kZXZpY2VpZHMSVQoQUmVjb25jaWxlRGV2aWNlcxILLmNvbW1vbi5JRHMaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHILT5JMCFiIRL2FwaS92MS9kZXZpY2VpZHM6ASoSRQoJR2V0RGV2aWNlEgouY29tbW9uLklEGg4uZGV2aWNlLkRldmljZSIcgtPkkwIWEhQvYXBpL3YxL2RldmljZXMve2lkfRJKCgxDcmVhdGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGg4uZGV2aWNlLkRldmljZSIagtPkkwIUIg8vYXBpL3YxL2RldmljZXM6ASoSVwoMRW5hYmxlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L2VuYWJsZRJZCg1EaXNhYmxlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh4iHC9hcGkvdjEvZGV2aWNlcy97aWR9L2Rpc2FibGUSVwoMUmVib290RGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L3JlYm9vdBJXCgxEZWxldGVEZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiI4LT5JMCHSobL2FwaS92MS9kZXZpY2VzL3tpZH0vZGVsZXRlEmIKEUZvcmNlRGVsZXRlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IimC0+STAiMqIS9hcGkvdjEvZGV2aWNlcy97aWR9L2ZvcmNlX2RlbGV0ZRJ4Cg1Eb3dubG9hZEltYWdlEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5jb21tb24uT3BlcmF0aW9uUmVzcCI5iAIBgtPkkwIwIisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9OgEqEoUBChZHZXRJbWFnZURvd25sb2FkU3RhdHVzEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCI9iAIBgtPkkwI0EjIvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L3N0YXR1cxJ4ChBHZXRJbWFnZURvd25sb2FkEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCI2iAIBgtPkkwItEisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9EmkKEkxpc3RJbWFnZURvd25sb2FkcxIKLmNvbW1vbi5JRBoWLmRldmljZS5JbWFnZURvd25sb2FkcyIviAIBgtPkkwImEiQvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMSewoTQ2FuY2VsSW1hZ2VEb3dubG9hZBIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiNogCAYLT5JMCLSorL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfRKLAQoTQWN0aXZhdGVJbWFnZVVwZGF0ZRIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiRogCAYLT5JMCPSI4L2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9pbWFnZV91cGRhdGU6ASoSiQEKEVJldmVydEltYWdlVXBkYXRlEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5jb21tb24uT3BlcmF0aW9uUmVzcCJGiAIBgtPkkwI9IjgvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L2ltYWdlX3JldmVydDoBKhKIAQoVRG93bmxvYWRJbWFnZVRvRGV2aWNlEiIuZGV2aWNlLkRldmljZUltYWdlRG93bmxvYWRSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiLoLT5JMCKBImL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9kb3dubG9hZF9pbWFnZXMSdwoOR2V0SW1hZ2VTdGF0dXMSGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiLILT5JMCJhIkL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9pbWFnZXNfc3RhdHVzEokBChlBYm9ydEltYWdlVXBncmFkZVRvRGV2aWNlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlIjOC0+STAi0SKy9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvYWJvcnRfdXBncmFkZV9pbWFnZXMSVgoMR2V0T251SW1hZ2VzEgouY29tbW9uLklEGhEuZGV2aWNlLk9udUltYWdlcyIngtPkkwIhEh8vYXBpL3YxL2RldmljZXMve2lkfS9vbnVfaW1hZ2VzEnsKDUFjdGl2YXRlSW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiMYLT5JMCKyImL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9hY3RpdmF0ZV9pbWFnZXM6ASoSdwoLQ29tbWl0SW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiL4LT5JMCKSIkL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9jb21taXRfaW1hZ2VzOgEqElAKD0xpc3REZXZpY2VQb3J0cxIKLmNvbW1vbi5JRBoNLmRldmljZS5Qb3J0cyIigtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9wb3J0cxJdChNMaXN0RGV2aWNlUG1Db25maWdzEgouY29tbW9uLklEGhEuZGV2aWNlLlBtQ29uZmlncyIngtPkkwIhEh8vYXBpL3YxL2RldmljZXMve2lkfS9wbV9jb25maWdzEm4KFVVwZGF0ZURldmljZVBtQ29uZmlncxIRLmRldmljZS5QbUNvbmZpZ3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJCIfL2FwaS92MS9kZXZpY2VzL3tpZH0vcG1fY29uZmlnczoBKhJVCg9MaXN0RGV2aWNlRmxvd3MSCi5jb21tb24uSUQaEi5vcGVuZmxvd18xMy5GbG93cyIigtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9mbG93cxJlChRMaXN0RGV2aWNlRmxvd0dyb3VwcxIKLmNvbW1vbi5JRBoXLm9wZW5mbG93XzEzLkZsb3dHcm91cHMiKILT5JMCIhIgL2FwaS92MS9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHMSXAoPTGlzdERldmljZVR5cGVzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhMuZGV2aWNlLkRldmljZVR5cGVzIhyC0+STAhYSFC9hcGkvdjEvZGV2aWNlX3R5cGVzElIKDUdldERldmljZVR5cGUSCi5jb21tb24uSUQaEi5kZXZpY2UuRGV2aWNlVHlwZSIhgtPkkwIbEhkvYXBpL3YxL2RldmljZV90eXBlcy97aWR9EkYKEFN0cmVhbVBhY2tldHNPdXQSFi5vcGVuZmxvd18xMy5QYWNrZXRPdXQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiACgBEkUKEFJlY2VpdmVQYWNrZXRzSW4SFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFS5vcGVuZmxvd18xMy5QYWNrZXRJbiIAMAESSwoTUmVjZWl2ZUNoYW5nZUV2ZW50cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoYLm9wZW5mbG93XzEzLkNoYW5nZUV2ZW50IgAwARJdChFDcmVhdGVFdmVudEZpbHRlchISLmV2ZW50LkV2ZW50RmlsdGVyGhIuZXZlbnQuRXZlbnRGaWx0ZXIiIILT5JMCGiIVL2FwaS92MS9ldmVudF9maWx0ZXJzOgEqElUKDkdldEV2ZW50RmlsdGVyEgouY29tbW9uLklEGhMuZXZlbnQuRXZlbnRGaWx0ZXJzIiKC0+STAhwSGi9hcGkvdjEvZXZlbnRfZmlsdGVycy97aWR9EmIKEVVwZGF0ZUV2ZW50RmlsdGVyEhIuZXZlbnQuRXZlbnRGaWx0ZXIaEi5ldmVudC5FdmVudEZpbHRlciIlgtPkkwIfGhovYXBpL3YxL2V2ZW50X2ZpbHRlcnMve2lkfToBKhJjChFEZWxldGVFdmVudEZpbHRlchISLmV2ZW50LkV2ZW50RmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiKC0+STAhwqGi9hcGkvdjEvZXZlbnRfZmlsdGVycy97aWR9El4KEExpc3RFdmVudEZpbHRlcnMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEy5ldmVudC5FdmVudEZpbHRlcnMiHYLT5JMCFxIVL2FwaS92MS9ldmVudF9maWx0ZXJzEkwKCUdldEltYWdlcxIKLmNvbW1vbi5JRBoOLmRldmljZS5JbWFnZXMiI4LT5JMCHRIbL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VzElgKCFNlbGZUZXN0EgouY29tbW9uLklEGhguZGV2aWNlLlNlbGZUZXN0UmVzcG9uc2UiJoLT5JMCICIeL2FwaS92MS9kZXZpY2VzL3tpZH0vc2VsZl90ZXN0ElYKEEdldE1pYkRldmljZURhdGESCi5jb21tb24uSUQaEy5vbWNpLk1pYkRldmljZURhdGEiIYLT5JMCGxIZL2FwaS92MS9vcGVub21jaS97aWR9L21pYhJcChJHZXRBbGFybURldmljZURhdGESCi5jb21tb24uSUQaFS5vbWNpLkFsYXJtRGV2aWNlRGF0YSIjgtPkkwIdEhsvYXBpL3YxL29wZW5vbWNpL3tpZH0vYWxhcm0ScwoNU2ltdWxhdGVBbGFybRIcLmRldmljZS5TaW11bGF0ZUFsYXJtUmVxdWVzdBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIi2C0+STAiciIi9hcGkvdjEvZGV2aWNlcy97aWR9L3NpbXVsYXRlX2xhcm06ASoSTQoKRW5hYmxlUG9ydBIMLmRldmljZS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhmC0+STAhMiDi92MS9FbmFibGVQb3J0OgEqEk8KC0Rpc2FibGVQb3J0EgwuZGV2aWNlLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGoLT5JMCFCIPL3YxL0Rpc2FibGVQb3J0OgEqEl4KC0dldEV4dFZhbHVlEhkuZXh0ZW5zaW9uLlZhbHVlU3BlY2lmaWVyGhcuZXh0ZW5zaW9uLlJldHVyblZhbHVlcyIbgtPkkwIVEhMvYXBpL3YxL0dldEV4dFZhbHVlElcKC1NldEV4dFZhbHVlEhMuZXh0ZW5zaW9uLlZhbHVlU2V0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhuC0+STAhUSEy9hcGkvdjEvU2V0RXh0VmFsdWUSZAoTU3RhcnRPbWNpVGVzdEFjdGlvbhIVLm9tY2kuT21jaVRlc3RSZXF1ZXN0GhIub21jaS5UZXN0UmVzcG9uc2UiIoLT5JMCHCIXL2FwaS92MS9zdGFydF9vbWNpX3Rlc3Q6ASpCbAoTb3JnLm9wZW5jb3JkLnZvbHRoYUIMVm9sdGhhUHJvdG9zWi5naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdm9sdGhhqgIWT3BlbmNvcmQuVm9sdGhhLlZvbHRoYUqEYQoHEgUGAMIEAQpcCgEMEgMGABIyUgogVG9wLWxldmVsIFZvbHRoYSBBUEkgZGVmaW5pdGlvbgoKIEZvciBkZXRhaWxzLCBzZWUgaW5kaXZpZHVhbCBkZWZpbml0aW9u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ZGFwdGVyUmVnaXN0cmF0aW9uEioKB2FkYXB0ZXIYASABKAsyEC5hZGFwdGVyLkFkYXB0ZXJSB2FkYXB0ZXISKwoGZFR5cGVzGAIgASgLMhMuZGV2aWNlLkRldmljZVR5cGVzUgZkVHlwZXMikgEKEUNoaWxkRGV2aWNlRmlsdGVyEhsKCXBhcmVudF9pZBgBIAEoCVIIcGFyZW50SWQSIwoNc2VyaWFsX251bWJlchgCIAEoCVIMc2VyaWFsTnVtYmVyEhUKBm9udV9pZBgDIAEoDVIFb251SWQSJAoOcGFyZW50X3BvcnRfbm8YBCABKA1SDHBhcmVudFBvcnRObyJxCgpQb3J0RmlsdGVyEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSEgoEcG9ydBgCIAEoDVIEcG9ydBIyCglwb3J0X3R5cGUYAyABKA4yFS5kZXZpY2UuUG9ydC5Qb3J0VHlwZVIIcG9ydFR5cGUi+AEKD0RldmljZURpc2NvdmVyeRIbCglwYXJlbnRfaWQYASABKAlSCHBhcmVudElkEiQKDnBhcmVudF9wb3J0X25vGAIgASgNUgxwYXJlbnRQb3J0Tm8SKgoRY2hpbGRfZGV2aWNlX3R5cGUYAyABKAlSD2NoaWxkRGV2aWNlVHlwZRIdCgpjaGFubmVsX2lkGAQgASgNUgljaGFubmVsSWQSGwoJdmVuZG9yX2lkGAUgASgJUgh2ZW5kb3JJZBIjCg1zZXJpYWxfbnVtYmVyGAYgASgJUgxzZXJpYWxOdW1iZXISFQoGb251X2lkGAcgASgNUgVvbnVJZCLTAQoRRGV2aWNlU3RhdGVGaWx0ZXISGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIoChBwYXJlbnRfZGV2aWNlX2lkGAIgASgJUg5wYXJlbnREZXZpY2VJZBI5CgtvcGVyX3N0YXR1cxgDIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzEjwKC2Nvbm5fc3RhdHVzGAQgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNSCmNvbm5TdGF0dXMisAEKCVBvcnRTdGF0ZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEjIKCXBvcnRfdHlwZRgCIAEoDjIVLmRldmljZS5Qb3J0LlBvcnRUeXBlUghwb3J0VHlwZRIXCgdwb3J0X25vGAMgASgNUgZwb3J0Tm8SOQoLb3Blcl9zdGF0dXMYBCABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cyKTAQoPUG9ydFN0YXRlRmlsdGVyEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSKAoQcG9ydF90eXBlX2ZpbHRlchgCIAEoDVIOcG9ydFR5cGVGaWx0ZXISOQoLb3Blcl9zdGF0dXMYBCABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cyJTCghQYWNrZXRJbhIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhIKBHBvcnQYAiABKA1SBHBvcnQSFgoGcGFja2V0GAMgASgMUgZwYWNrZXQigwEKCVBhY2tldE91dBIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEiQKDmVncmVzc19wb3J0X25vGAIgASgNUgxlZ3Jlc3NQb3J0Tm8SMwoGcGFja2V0GAMgASgLMhsub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9vdXRSBnBhY2tldCJDCgxEZXZpY2VSZWFzb24SGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIWCgZyZWFzb24YAiABKAlSBnJlYXNvbiLOAQoJQnVsa0Zsb3dzEiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRIoCgVmbG93cxgCIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzUgVmbG93cxIvCgZncm91cHMYAyABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzUgZncm91cHMSPgoNZmxvd19tZXRhZGF0YRgEIAEoCzIZLm9wZW5mbG93XzEzLkZsb3dNZXRhZGF0YVIMZmxvd01ldGFkYXRhIuEBChBJbmNyZW1lbnRhbEZsb3dzEiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRIuCgVmbG93cxgCIAEoCzIYLm9wZW5mbG93XzEzLkZsb3dDaGFuZ2VzUgVmbG93cxI1CgZncm91cHMYAyABKAsyHS5vcGVuZmxvd18xMy5GbG93R3JvdXBDaGFuZ2VzUgZncm91cHMSPgoNZmxvd19tZXRhZGF0YRgEIAEoCzIZLm9wZW5mbG93XzEzLkZsb3dNZXRhZGF0YVIMZmxvd01ldGFkYXRhIl4KDVBtQ29uZmlnc0luZm8SGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIwCgpwbV9jb25maWdzGAIgASgLMhEuZGV2aWNlLlBtQ29uZmlnc1IJcG1Db25maWdzIogBChBTd2l0Y2hDYXBhYmlsaXR5EikKBGRlc2MYASABKAsyFS5vcGVuZmxvd18xMy5vZnBfZGVzY1IEZGVzYxJJCg9zd2l0Y2hfZmVhdHVyZXMYAiABKAsyIC5vcGVuZmxvd18xMy5vZnBfc3dpdGNoX2ZlYXR1cmVzUg5zd2l0Y2hGZWF0dXJlcyJrChRJbWFnZURvd25sb2FkTWVzc2FnZRImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USKwoFaW1hZ2UYAiABKAsyFS5kZXZpY2UuSW1hZ2VEb3dubG9hZFIFaW1hZ2UiYwoIT01DSVRlc3QSJgoGZGV2aWNlGAEgASgLMg4uZGV2aWNlLkRldmljZVIGZGV2aWNlEi8KB3JlcXVlc3QYAiABKAsyFS5vbWNpLk9tY2lUZXN0UmVxdWVzdFIHcmVxdWVzdCJ2ChRTaW11bGF0ZUFsYXJtTWVzc2FnZRImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USNgoHcmVxdWVzdBgCIAEoCzIcLmRldmljZS5TaW11bGF0ZUFsYXJtUmVxdWVzdFIHcmVxdWVzdCK2AQoSR2V0RXh0VmFsdWVNZXNzYWdlEjMKDXBhcmVudF9kZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgxwYXJlbnREZXZpY2USMQoMY2hpbGRfZGV2aWNlGAIgASgLMg4uZGV2aWNlLkRldmljZVILY2hpbGREZXZpY2USOAoKdmFsdWVfdHlwZRgDIAEoDjIZLmV4dGVuc2lvbi5WYWx1ZVR5cGUuVHlwZVIJdmFsdWVUeXBlImcKElNldEV4dFZhbHVlTWVzc2FnZRImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZp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EQIAARIDehIfCgwKBQQRAgADEgN6IiMKCwoEBBECARIDewQjCg0KBQQRAgEEEgR7BHokCgwKBQQRAgEGEgN7BBEKDAoFBBECAQESA3sSHgoMCgUEEQIBAxIDeyEiCgsKBAQRAgISA3wEKgoNCgUEEQICBBIEfAR7IwoMCgUEEQICBhIDfAQcCgwKBQQRAgIBEgN8HScKDAoFBBECAgMSA3woKQoLCgIEEhIFfwCCAQEKCgoDBBIBEgN/CBoKDAoEBBICABIEgAEEHQoOCgUEEgIABBIFgAEEfxwKDQoFBBICAAYSBIABBBEKDQoFBBICAAESBIABEhgKDQoFBBICAAMSBIABGxwKDAoEBBICARIEgQEEHwoPCgUEEgIBBBIGgQEEgAEdCg0KBQQSAgEGEgSBAQQWCg0KBQQSAgEBEgSBARccCg0KBQQSAgEDEgSBAR0eYgZwcm90bzMKpysKI3ZvbHRoYV9wcm90b3MvYWRhcHRlcl9zZXJ2aWNlLnByb3RvEg9hZGFwdGVyX3NlcnZpY2UaG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aIHZvbHRoYV9wcm90b3MvY29yZV9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90bxoedm9sdGhhX3Byb3Rvcy9leHRlbnNpb25zLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8aHXZvbHRoYV9wcm90b3Mvb21jaV90ZXN0LnByb3RvGhp2b2x0aGFfcHJvdG9zL2V2ZW50cy5wcm90bzKYEwoOQWRhcHRlclNlcnZpY2USPwoPR2V0SGVhbHRoU3RhdHVzEhIuY29tbW9uLkNvbm5lY3Rpb24aFC5oZWFsdGguSGVhbHRoU3RhdHVzKAEwARI1CgtBZG9wdERldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOQoPUmVjb25jaWxlRGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI2CgxEZWxldGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjcKDURpc2FibGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjgKDlJlRW5hYmxlRGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI2CgxSZWJvb3REZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjgKDlNlbGZUZXN0RGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJCChBHZXRPZnBEZXZpY2VJbmZvEg4uZGV2aWNlLkRldmljZRoeLmNvcmVfYWRhcHRlci5Td2l0Y2hDYXBhYmlsaXR5EjkKD0NoaWxkRGV2aWNlTG9zdBIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSMgoKRW5hYmxlUG9ydBIMLmRldmljZS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjMKC0Rpc2FibGVQb3J0EgwuZGV2aWNlLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSQgoPVXBkYXRlRmxvd3NCdWxrEhcuY29yZV9hZGFwdGVyLkJ1bGtGbG93cxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJSChhVcGRhdGVGbG93c0luY3JlbWVudGFsbHkSHi5jb3JlX2FkYXB0ZXIuSW5jcmVtZW50YWxGbG93cxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJACg1TZW5kUGFja2V0T3V0EhcuY29yZV9hZGFwdGVyLlBhY2tldE91dBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJFCg5VcGRhdGVQbUNvbmZpZxIbLmNvcmVfYWRhcHRlci5QbUNvbmZpZ3NJbmZvGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElMKEERvd25sb2FkT251SW1hZ2USIi5kZXZpY2UuRGV2aWNlSW1hZ2VEb3dubG9hZFJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRJMChFHZXRPbnVJbWFnZVN0YXR1cxIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRJPChRBYm9ydE9udUltYWdlVXBncmFkZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRItCgxHZXRPbnVJbWFnZXMSCi5jb21tb24uSUQaES5kZXZpY2UuT251SW1hZ2VzEksKEEFjdGl2YXRlT251SW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2USSQoOQ29tbWl0T251SW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2USTwoNRG93bmxvYWRJbWFnZRIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESWAoWR2V0SW1hZ2VEb3dubG9hZFN0YXR1cxIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESVQoTQ2FuY2VsSW1hZ2VEb3dubG9hZBIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESVQoTQWN0aXZhdGVJbWFnZVVwZGF0ZRIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESUwoRUmV2ZXJ0SW1hZ2VVcGRhdGUSIi5jb3JlX2FkYXB0ZXIuSW1hZ2VEb3dubG9hZE1lc3NhZ2UaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCIDiAIBEjsKDVN0YXJ0T21jaVRlc3QSFi5jb3JlX2FkYXB0ZXIuT01DSVRlc3QaEi5vbWNpLlRlc3RSZXNwb25zZRJKCg1TaW11bGF0ZUFsYXJtEiIuY29yZV9hZGFwdGVyLlNpbXVsYXRlQWxhcm1NZXNzYWdlGhUuY29tbW9uLk9wZXJhdGlvblJlc3ASOwoNU3VwcHJlc3NFdmVudBISLmV2ZW50LkV2ZW50RmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ej0KD1VuU3VwcHJlc3NFdmVudBISLmV2ZW50LkV2ZW50RmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkgKC0dldEV4dFZhbHVlEiAuY29yZV9hZGFwdGVyLkdldEV4dFZhbHVlTWVzc2FnZRoXLmV4dGVuc2lvbi5SZXR1cm5WYWx1ZXMSRwoLU2V0RXh0VmFsdWUSIC5jb3JlX2FkYXB0ZXIuU2V0RXh0VmFsdWVNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElUKDkdldFNpbmdsZVZhbHVlEiAuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVxdWVzdBohLmV4dGVuc2lvbi5TaW5nbGVHZXRWYWx1ZVJlc3BvbnNlElUKDlNldFNpbmdsZVZhbHVlEiAuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVxdWVzdBohLmV4dGVuc2lvbi5TaW5nbGVTZXRWYWx1ZVJlc3BvbnNlQnQKI29yZy5vcGVuY29yZC52b2x0aGEuYWRhcHRlcl9zZXJ2aWNlQhRWb2x0aGFBZGFwdGVyU2VydmljZVo3Z2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL2FkYXB0ZXJfc2VydmljZUrLFAoGEgQAAFcBCggKAQwSAwAAEgoICgEIEgMCAE4KCQoCCAsSAwIATgoICgEIEgMDADwKCQoCCAESAwMAPAoICgEIEgMEADUKCQoCCAgSAwQANQoICgECEgMGABgKCQoCAwASAwgAJQoJCgIDARIDCQAkCgkKAgMCEgMKACoKCQoCAwMSAwsAJAoJCgIDBBIDDAAoCgkKAgMFEgMNACQKCQoCAwYSAw4AJAoJCgIDBxIDDwAnCgkKAgMIEgMQACQKVQoCBgASBBMAVwEaSSBBZGFwdGVyU2VydmljZSBpcyBhIGdSUEMgc2VydmljZSB0byBzZXJ2ZSByZXF1ZXN0cyBmcm9tIFZvbHRoYSBSV19Db3JlLgoKCgoDBgABEgMTCBYKkQEKBAYAAgASAxYEVxqDASBHZXRIZWFsdGhTdGF0dXMgaXMgdXNlZCBieSBhbiBBZGFwdGVyU2Vydmlj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HB0KCwoEBAACABIDGgQeCg0KBQQAAgAEEgQaBBkFCgwKBQQAAgAGEgMaBAkKDAoFBAACAAESAxoKGQoMCgUEAAIAAxIDGhwdYgZwcm90bzMK7RwKIXZvbHRoYV9wcm90b3MvY29yZV9zZXJ2aWNlcy5wcm90bxIMY29yZV9zZXJ2aWNlGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aIHZvbHRoYV9wcm90b3MvY29yZV9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8aGnZvbHRoYV9wcm90b3MvaGVhbHRoLnByb3RvMv0LCgtDb3JlU2VydmljZRI/Cg9HZXRIZWFsdGhTdGF0dXMSEi5jb21tb24uQ29ubmVjdGlvbhoULmhlYWx0aC5IZWFsdGhTdGF0dXMoATABEkwKD1JlZ2lzdGVyQWRhcHRlchIhLmNvcmVfYWRhcHRlci5BZGFwdGVyUmVnaXN0cmF0aW9uGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjYKDERldmljZVVwZGF0ZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSMwoLUG9ydENyZWF0ZWQSDC5kZXZpY2UuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJJChBQb3J0c1N0YXRlVXBkYXRlEh0uY29yZV9hZGFwdGVyLlBvcnRTdGF0ZUZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI0Cg5EZWxldGVBbGxQb3J0cxIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI3Cg1HZXREZXZpY2VQb3J0EhguY29yZV9hZGFwdGVyLlBvcnRGaWx0ZXIaDC5kZXZpY2UuUG9ydBIsCg9MaXN0RGV2aWNlUG9ydHMSCi5jb21tb24uSUQaDS5kZXZpY2UuUG9ydHMSTAoRRGV2aWNlU3RhdGVVcGRhdGUSHy5jb3JlX2FkYXB0ZXIuRGV2aWNlU3RhdGVGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSQQoURGV2aWNlUE1Db25maWdVcGRhdGUSES5kZXZpY2UuUG1Db25maWdzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkQKE0NoaWxkRGV2aWNlRGV0ZWN0ZWQSHS5jb3JlX2FkYXB0ZXIuRGV2aWNlRGlzY292ZXJ5Gg4uZGV2aWNlLkRldmljZRI2ChBDaGlsZERldmljZXNMb3N0EgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjoKFENoaWxkRGV2aWNlc0RldGVjdGVkEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EicKCUdldERldmljZRIKLmNvbW1vbi5JRBoOLmRldmljZS5EZXZpY2USQQoOR2V0Q2hpbGREZXZpY2USHy5jb3JlX2FkYXB0ZXIuQ2hpbGREZXZpY2VGaWx0ZXIaDi5kZXZpY2UuRGV2aWNlEi4KD0dldENoaWxkRGV2aWNlcxIKLmNvbW1vbi5JRBoPLmRldmljZS5EZXZpY2VzEj4KDFNlbmRQYWNrZXRJbhIWLmNvcmVfYWRhcHRlci5QYWNrZXRJbhoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJIChJEZXZpY2VSZWFzb25VcGRhdGUSGi5jb3JlX2FkYXB0ZXIuRGV2aWNlUmVhc29uGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkIKD1BvcnRTdGF0ZVVwZGF0ZRIXLmNvcmVfYWRhcHRlci5Qb3J0U3RhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOwoVUmVjb25jaWxlQ2hpbGREZXZpY2VzEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ek0KHkdldENoaWxkRGV2aWNlV2l0aFByb3h5QWRkcmVzcxIbLmRldmljZS5EZXZpY2UuUHJveHlBZGRyZXNzGg4uZGV2aWNlLkRldmljZRIzCghHZXRQb3J0cxIYLmNvcmVfYWRhcHRlci5Qb3J0RmlsdGVyGg0uZGV2aWNlLlBvcnRzEk4KE0NoaWxkcmVuU3RhdGVVcGRhdGUSHy5jb3JlX2FkYXB0ZXIuRGV2aWNlU3RhdGVGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRAoTVXBkYXRlSW1hZ2VEb3dubG9hZBIVLmRldmljZS5JbWFnZURvd25sb2FkGhYuZ29vZ2xl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KlFeCgsKBAYAAhUSAysIRgoMCgUGAAIVARIDKwwUCgwKBQYAAhUCEgMrFi0KDAoFBgACFQMSAys4RAoLCgQGAAIWEgMsCGEKDAoFBgACFgESAywMHwoMCgUGAAIWAhIDLCE/CgwKBQYAAhYDEgMsSl8KCwoEBgACFxIDLQhXCgwKBQYAAhcBEgMtDB8KDAoFBgACFwISAy0hNQoMCgUGAAIXAxIDLUBVYgZwcm90bzMKvBgKI3ZvbHRoYV9wcm90b3MvaWV0Zl9pbnRlcmZhY2VzLnByb3RvEgRpZXRmIkQKCkludGVyZmFjZXMSNgoOYWxsX2ludGVyZmFjZXMYASADKAsyDy5pZXRmLkludGVyZmFjZVINYWxsSW50ZXJmYWNlcyKSAgoJSW50ZXJmYWNlEhIKBG5hbWUYASABKAlSBG5hbWUSIAoLZGVzY3JpcHRpb24YAiABKAlSC2Rlc2NyaXB0aW9uEhIKBHR5cGUYAyABKAlSBHR5cGUSGAoHZW5hYmxlZBgEIAEoCFIHZW5hYmxlZBJgChhsaW5rX3VwX2Rvd25fdHJhcF9lbmFibGUYBSABKA4yKC5pZXRmLkludGVyZmFjZS5MaW5rVXBEb3duVHJhcEVuYWJsZVR5cGVSFGxpbmtVcERvd25UcmFwRW5hYmxlIj8KGExpbmtVcERvd25UcmFwRW5hYmxlVHlwZRIRCg1UUkFQX0RJU0FCTEVEEAASEAoMVFJBUF9FTkFCTEVEEAEiTAoPSW50ZXJmYWNlc1N0YXRlEjkKDWFsbF9pbnRlcmZhY3MYASADKAsyFC5pZXRmLkludGVyZmFjZVN0YXRlUgxhbGxJbnRlcmZhY3MiwAQKDkludGVyZmFjZVN0YXRlEhIKBG5hbWUYASABKAlSBG5hbWUSEgoEdHlwZRgCIAEoCVIEdHlwZRJHCgxhZG1pbl9zdGF0dXMYAyABKA4yJC5pZXRmLkludGVyZmFjZVN0YXRlLkFkbWluU3RhdHVzVHlwZVILYWRtaW5TdGF0dXMSRAoLb3Blcl9zdGF0dXMYBCABKA4yIy5pZXRmLkludGVyZmFjZVN0YXRlLk9wZXJTdGF0dXNUeXBlUgpvcGVyU3RhdHVzEh8KC2xhc3RfY2hhbmdlGAUgASgJUgpsYXN0Q2hhbmdlEhkKCGlmX2luZGV4GAYgASgF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eRgFIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UgtzY2hlZFBvbGljeSK4AQoSVHJhZmZpY1NoYXBpbmdJbmZvEhAKA2NpchgBIAEoB1IDY2lyEhAKA2NicxgCIAEoB1IDY2JzEhAKA3BpchgDIAEoB1IDcGlyEhAKA3BicxgEIAEoB1IDcGJzEhAKA2dpchgFIAEoB1IDZ2lyEkgKCmFkZF9id19pbmQYBiABKA4yKi50ZWNoX3Byb2ZpbGUuSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvblIIYWRkQndJbmQinQIKEFRyYWZmaWNTY2hlZHVsZXISNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEhkKCGFsbG9jX2lkGAIgASgHUgdhbGxvY0lkEjsKCXNjaGVkdWxlchgDIAEoCzIdLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJDb25maWdSCXNjaGVkdWxlchJSChR0cmFmZmljX3NoYXBpbmdfaW5mbxgEIAEoCzIgLnRlY2hfcHJvZmlsZS5UcmFmZmljU2hhcGluZ0luZm9SEnRyYWZmaWNTaGFwaW5nSW5mbxImCg90ZWNoX3Byb2ZpbGVfaWQYBSABKAdSDXRlY2hQcm9maWxlSWQiugEKEVRyYWZmaWNTY2hlZHVsZXJzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhUKBnVuaV9pZBgEIAEoB1IFdW5pSWQSFwoHcG9ydF9ubxgFIAEoB1IGcG9ydE5vEkUKDnRyYWZmaWNfc2NoZWRzGAMgAygLMh4udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJSDXRyYWZmaWNTY2hlZHMiNgoVVGFpbERyb3BEaXNjYXJkQ29uZmlnEh0KCnF1ZXVlX3NpemUYASABKAdSCXF1ZXVlU2l6ZSKFAQoQUmVkRGlzY2FyZENvbmZpZxIjCg1taW5fdGhyZXNob2xkGAEgASgHUgxtaW5UaHJlc2hvbGQSIwoNbWF4X3RocmVzaG9sZBgCIAEoB1IMbWF4VGhyZXNob2xkEicKD21heF9wcm9iYWJpbGl0eRgDIAEoB1IObWF4UHJvYmFiaWxpdHkiswEKEVdSZWREaXNjYXJkQ29uZmlnEjQKBWdyZWVuGAEgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSBWdyZWVuEjYKBnllbGxvdxgCIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUgZ5ZWxsb3cSMAoDcmVkGAMgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSA3JlZCLoAgoNRGlzY2FyZENvbmZpZxJCCg5kaXNjYXJkX3BvbGljeRgBIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5El4KGHRhaWxfZHJvcF9kaXNjYXJkX2NvbmZpZxgCIAEoCzIjLnRlY2hfcHJvZmlsZS5UYWlsRHJvcERpc2NhcmRDb25maWdIAFIVdGFpbERyb3BEaXNjYXJkQ29uZmlnEk4KEnJlZF9kaXNjYXJkX2NvbmZpZxgDIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnSABSEHJlZERpc2NhcmRDb25maWcSUQoTd3JlZF9kaXNjYXJkX2NvbmZpZxgEIAEoCzIfLnRlY2hfcHJvZmlsZS5XUmVkRGlzY2FyZENvbmZpZ0gAUhF3cmVkRGlzY2FyZENvbmZpZ0IQCg5kaXNjYXJkX2NvbmZpZyKlAwoMVHJhZmZpY1F1ZXVlEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhIdCgpnZW1wb3J0X2lkGAIgASgHUglnZW1wb3J0SWQSGQoIcGJpdF9tYXAYAyABKAlSB3BiaXRNYXASJQoOYWVzX2VuY3J5cHRpb24YBCABKAhSDWFlc0VuY3J5cHRpb24SQQoMc2NoZWRfcG9saWN5GAUgASgOMh4udGVjaF9wcm9maWxlLlNjaGVkdWxpbmdQb2xpY3lSC3NjaGVkUG9saWN5EhoKCHByaW9yaXR5GAYgASgHUghwcmlvcml0eRIWCgZ3ZWlnaHQYByABKAdSBndlaWdodBJCCg5kaXNjYXJkX3BvbGljeRgIIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5EkIKDmRpc2NhcmRfY29uZmlnGAkgASgLMhsudGVjaF9wcm9maWxlLkRpc2NhcmRDb25maWdSDWRpc2NhcmRDb25maWci2gEKDVRyYWZmaWNRdWV1ZXMSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFQoGdW5pX2lkGAQgASgHUgV1bmlJZBIXCgdwb3J0X25vGAUgASgHUgZwb3J0Tm8SQQoOdHJhZmZpY19xdWV1ZXMYBiADKAsyGi50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlUg10cmFmZmljUXVldWVzEiYKD3RlY2hfcHJvZmlsZV9pZBgHIAEoB1INdGVjaFByb2ZpbGVJZCJmCg9JbnN0YW5jZUNvbnRyb2wSEAoDb251GAEgASgJUgNvbnUSEAoDdW5pGAIgASgJUgN1bmkSLwoUbWF4X2dlbV9wYXlsb2FkX3NpemUYAyABKAlSEW1heEdlbVBheWxvYWRTaXplIoICCgtRVGhyZXNob2xkcxIhCgxxX3RocmVzaG9sZDEYASABKA1SC3FUaHJlc2hvbGQxEiEKDHFfdGhyZXNob2xkMhgCIAEoDVILcVRocmVzaG9sZDISIQoMcV90aHJlc2hvbGQzGAMgASgNUgtxVGhyZXNob2xkMxIhCgxxX3RocmVzaG9sZDQYBCABKA1SC3FUaHJlc2hvbGQ0EiEKDHFfdGhyZXNob2xkNRgFIAEoDVILcVRocmVzaG9sZDUSIQoMcV90aHJlc2hvbGQ2GAYgASgNUgtxVGhyZXNob2xkNhIhCgxxX3RocmVzaG9sZDcYByABKA1SC3FUaHJlc2hvbGQ3IrMFChFHZW1Qb3J0QXR0cmlidXRlcxIdCgpnZW1wb3J0X2lkGAEgASgHUglnZW1wb3J0SWQSHAoKbWF4X3Ffc2l6ZRgCIAEoCVIIbWF4UVNpemUSGQoIcGJpdF9tYXAYAyABKAlSB3BiaXRNYXASJQoOYWVzX2VuY3J5cHRpb24YBCABKAlSDWFlc0VuY3J5cHRpb24SSwoRc2NoZWR1bGluZ19wb2xpY3kYBSABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVIQc2NoZWR1bGluZ1BvbGljeRIdCgpwcmlvcml0eV9xGAYgASgHUglwcmlvcml0eVESFgoGd2VpZ2h0GAcgASgHUgZ3ZWlnaHQSQgoOZGlzY2FyZF9wb2xpY3kYCCABKA4yGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJFCg5kaXNjYXJkX2NvbmZpZxgJIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUg1kaXNjYXJkQ29uZmlnEkcKEWRpc2NhcmRfY29uZmlnX3YyGA4gASgLMhsudGVjaF9wcm9maWxlLkRpc2NhcmRDb25maWdSD2Rpc2NhcmRDb25maWdWMhIhCgxpc19tdWx0aWNhc3QYCiABKAlSC2lzTXVsdGljYXN0EigKEG11bHRpY2FzdF9nZW1faWQYCyABKAdSDm11bHRpY2FzdEdlbUlkEj0KG2R5bmFtaWNfYWNjZXNzX2NvbnRyb2xfbGlzdBgMIAEoCVIYZHluYW1pY0FjY2Vzc0NvbnRyb2xMaXN0EjsKGnN0YXRpY19hY2Nlc3NfY29udHJvbF9saXN0GA0gASgJUhdzdGF0aWNBY2Nlc3NDb250cm9sTGlzdCKiAgoTU2NoZWR1bGVyQXR0cmlidXRlcxI1CglkaXJlY3Rpb24YASABKA4yFy50ZWNoX3Byb2ZpbGUuRGlyZWN0aW9uUglkaXJlY3Rpb24SGQoIYWxsb2NfaWQYAiABKA1SB2FsbG9jSWQSPwoNYWRkaXRpb25hbF9idxgDIAEoDjIaLnRlY2hfcHJvZmlsZS5BZGRpdGlvbmFsQldSDGFkZGl0aW9uYWxCdxIaCghwcmlvcml0eRgEIAEoB1IIcHJpb3JpdHkSFgoGd2VpZ2h0GAUgASgHUgZ3ZWlnaHQSRAoOcV9zY2hlZF9wb2xpY3kYBiABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVIMcVNjaGVkUG9saWN5IsAGChNFUE9OUXVldWVBdHRyaWJ1dGVzEhwKCm1heF9xX3NpemUYASABKAlSCG1heFFTaXplEhkKCHBiaXRfbWFwGAIgASgJUgdwYml0TWFwEh0KCmdlbXBvcnRfaWQYAyABKA1SCWdlbXBvcnRJZBIlCg5hZXNfZW5jcnlwdGlvbhgEIAEoCVINYWVzRW5jcnlwdGlvbhIhCgx0cmFmZmljX3R5cGUYBSABKAlSC3RyYWZmaWNUeXBlEjQKFnVuc29saWNpdGVkX2dyYW50X3NpemUYBiABKA1SFHVuc29saWNpdGVkR3JhbnRTaXplEikKEG5vbWluYWxfaW50ZXJ2YWwYByABKA1SD25vbWluYWxJbnRlcnZhbBIyChV0b2xlcmF0ZWRfcG9sbF9qaXR0ZXIYCCABKA1SE3RvbGVyYXRlZFBvbGxKaXR0ZXISPgobcmVxdWVzdF90cmFuc21pc3Npb25fcG9saWN5GAkgASgNUhlyZXF1ZXN0VHJhbnNtaXNzaW9uUG9saWN5EhwKCm51bV9xX3NldHMYCiABKA1SCG51bVFTZXRzEjwKDHFfdGhyZXNob2xkcxgLIAEoCzIZLnRlY2hfcHJvZmlsZS5RVGhyZXNob2xkc1ILcVRocmVzaG9sZHMSSwoRc2NoZWR1bGluZ19wb2xpY3kYDCABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVIQc2NoZWR1bGluZ1BvbGljeRIdCgpwcmlvcml0eV9xGA0gASgNUglwcmlvcml0eVESFgoGd2VpZ2h0GA4gASgNUgZ3ZWlnaHQSQgoOZGlzY2FyZF9wb2xpY3kYDyABKA4yGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJFCg5kaXNjYXJkX2NvbmZpZxgQIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUg1kaXNjYXJkQ29uZmlnEkcKEWRpc2NhcmRfY29uZmlnX3YyGBEgASgLMhsudGVjaF9wcm9maWxlLkRpc2NhcmRDb25maWdSD2Rpc2NhcmRDb25maWdWMiKuBAoLVGVjaFByb2ZpbGUSEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgNUgd2ZXJzaW9uEiEKDHByb2ZpbGVfdHlwZRgDIAEoCVILcHJvZmlsZVR5cGUSIgoNbnVtX2dlbV9wb3J0cxgEIAEoDVILbnVtR2VtUG9ydHMSSAoQaW5zdGFuY2VfY29udHJvbBgFIAEoCzIdLnRlY2hfcHJvZmlsZS5JbnN0YW5jZUNvbnRyb2xSD2luc3RhbmNlQ29udHJvbBJECgx1c19zY2hlZHVsZXIYBiABKAsyIS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQXR0cmlidXRlc1ILdXNTY2hlZHVsZXISRAoMZHNfc2NoZWR1bGVyGAcgASgLMiEudGVjaF9wcm9maWxlLlNjaGVkdWxlckF0dHJpYnV0ZXNSC2RzU2NoZWR1bGVyEmcKIHVwc3RyZWFtX2dlbV9wb3J0X2F0dHJpYnV0ZV9saXN0GAggAygLMh8udGVjaF9wcm9maWxlLkdlbVBvcnRBdHRyaWJ1dGVzUhx1cHN0cmVhbUdlbVBvcnRBdHRyaWJ1dGVMaXN0EmsKImRvd25zdHJlYW1fZ2VtX3BvcnRfYXR0cmlidXRlX2xpc3QYCSADKAsyHy50ZWNoX3Byb2ZpbGUuR2VtUG9ydEF0dHJpYnV0ZXNSHmRvd25zdHJlYW1HZW1Qb3J0QXR0cmlidXRlTGlzdCLDAwoPRXBvblRlY2hQcm9maWxlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoDVIHdmVyc2lvbhIhCgxwcm9maWxlX3R5cGUYAyABKAlSC3Byb2ZpbGVUeXBlEiIKDW51bV9nZW1fcG9ydHMYBCABKA1SC251bUdlbVBvcnRzEkgKEGluc3RhbmNlX2NvbnRyb2wYBSABKAsyHS50ZWNoX3Byb2ZpbGUuSW5zdGFuY2VDb250cm9sUg9pbnN0YW5jZUNvbnRyb2wSIQoMcGFja2FnZV90eXBlGAYgASgJUgtwYWNrYWdlVHlwZRJkCh11cHN0cmVhbV9xdWV1ZV9hdHRyaWJ1dGVfbGlzdBgHIAMoCzIhLnRlY2hfcHJvZmlsZS5FUE9OUXVldWVBdHRyaWJ1dGVzUhp1cHN0cmVhbVF1ZXVlQXR0cmlidXRlTGlzdBJoCh9kb3duc3RyZWFtX3F1ZXVlX2F0dHJpYnV0ZV9saXN0GAggAygLMiEudGVjaF9wcm9maWxlLkVQT05RdWV1ZUF0dHJpYnV0ZXNSHGRvd25zdHJlYW1RdWV1ZUF0dHJpYnV0ZUxpc3Qi6wQKE1RlY2hQcm9maWxlSW5zdGFuY2USEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgNUgd2ZXJzaW9uEjMKFXN1YnNjcmliZXJfaWRlbnRpZmllchgDIAEoCVIUc3Vic2NyaWJlcklkZW50aWZpZXISIQoMcHJvZmlsZV90eXBlGAQgASgJUgtwcm9maWxlVHlwZRIiCg1udW1fZ2VtX3BvcnRzGAUgASgNUgtudW1HZW1Qb3J0cxJIChBpbnN0YW5jZV9jb250cm9sGAYgASgLMh0udGVjaF9wcm9maWxlLkluc3RhbmNlQ29udHJvbFIPaW5zdGFuY2VDb250cm9sEkQKDHVzX3NjaGVkdWxlchgHIAEoCzIhLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJBdHRyaWJ1dGVzUgt1c1NjaGVkdWxlchJECgxkc19zY2hlZHVsZXIYCCABKAsyIS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQXR0cmlidXRlc1ILZHNTY2hlZHVsZXISZwogdXBzdHJlYW1fZ2VtX3BvcnRfYXR0cmlidXRlX2xpc3QYCSADKAsyHy50ZWNoX3Byb2ZpbGUuR2VtUG9ydEF0dHJpYnV0ZXNSHHVwc3RyZWFtR2VtUG9ydEF0dHJpYnV0ZUxpc3QSawoiZG93bnN0cmVhbV9nZW1fcG9ydF9hdHRyaWJ1dGVfbGlzdBgKIAMoCzIfLnRlY2hfcHJvZmlsZS5HZW1Qb3J0QXR0cmlidXRlc1IeZG93bnN0cmVhbUdlbVBvcnRBdHRyaWJ1dGVMaXN0IpsEChdFcG9uVGVjaFByb2ZpbGVJbnN0YW5jZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKA1SB3ZlcnNpb24SMwoVc3Vic2NyaWJlcl9pZGVudGlmaWVyGAMgASgJUhRzdWJzY3JpYmVySWRlbnRpZmllchIhCgxwcm9maWxlX3R5cGUYBCABKAlSC3Byb2ZpbGVUeXBlEiIKDW51bV9nZW1fcG9ydHMYBSABKA1SC251bUdlbVBvcnRzEhkKCGFsbG9jX2lkGAYgASgNUgdhbGxvY0lkEkgKEGluc3RhbmNlX2NvbnRyb2wYByABKAsyHS50ZWNoX3Byb2ZpbGUuSW5zdGFuY2VDb250cm9sUg9pbnN0YW5jZUNvbnRyb2wSIQoMcGFja2FnZV90eXBlGAggASgJUgtwYWNrYWdlVHlwZRJkCh11cHN0cmVhbV9xdWV1ZV9hdHRyaWJ1dGVfbGlzdBgJIAMoCzIhLnRlY2hfcHJvZmlsZS5FUE9OUXVldWVBdHRyaWJ1dGVzUhp1cHN0cmVhbVF1ZXVlQXR0cmlidXRlTGlzdBJoCh9kb3duc3RyZWFtX3F1ZXVlX2F0dHJpYnV0ZV9saXN0GAogAygLMiEudGVjaF9wcm9maWxlLkVQT05RdWV1ZUF0dHJpYnV0ZXNSHGRvd25zdHJlYW1RdWV1ZUF0dHJpYnV0ZUxpc3QiuwEKEFJlc291cmNlSW5zdGFuY2USEwoFdHBfaWQYASABKA1SBHRwSWQSIQoMcHJvZmlsZV90eXBlGAIgASgJUgtwcm9maWxlVHlwZRIzChVzdWJzY3JpYmVyX2lkZW50aWZpZXIYAyABKAlSFHN1YnNjcmliZXJJZGVudGlmaWVyEhkKCGFsbG9jX2lkGAQgASgNUgdhbGxvY0lkEh8KC2dlbXBvcnRfaWRzGAUgAygNUgpnZW1wb3J0SWRzKjwKCURpcmVjdGlvbhIMCghVUFNUUkVBTRAAEg4KCkRPV05TVFJFQU0QARIRCg1CSURJUkVDVElPTkFMEAIqOwoQU2NoZWR1bGluZ1BvbGljeRIHCgNXUlIQABISCg5TdHJpY3RQcmlvcml0eRABEgoKBkh5YnJpZBACKm4KDEFkZGl0aW9uYWxCVxIVChFBZGRpdGlvbmFsQldfTm9uZRAAEhMKD0FkZGl0aW9uYWxCV19OQRABEhsKF0FkZGl0aW9uYWxCV19CZXN0RWZmb3J0EAISFQoRQWRkaXRpb25hbEJXX0F1dG8QAyo/Cg1EaXNjYXJkUG9saWN5EgwKCFRhaWxEcm9wEAASDQoJV1RhaWxEcm9wEAESBwoDUmVkEAISCAoEV1JlZBADKpwBChxJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uEiUKIUluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb25fTm9uZRAAEigKJEluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb25fQXNzdXJlZBABEisKJ0luZmVycmVkQWRkaXRpb25CV0luZGljYXRpb25fQmVzdEVmZm9ydBACQlgKIG9yZy5vcGVuY29yZC52b2x0aGEudGVjaF9wcm9maWxlWjRnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdGVjaF9wcm9m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BvsBBPoBFQoNCgUEEwIBBRIE+wEECgoNCgUEEwIBARIE+wELFwoNCgUEEwIBAxIE+wEaGwoMCgQEEwICEgT8AQQlCg8KBQQTAgIEEgb8AQT7ARwKDQoFBBMCAgUSBPwBBAoKDQoFBBMCAgESBPwBCyAKDQoFBBMCAgMSBPwBIyQKDAoEBBMCAxIE/QEEGAoPCgUEEwIDBBIG/QEE/AElCg0KBQQTAgMFEgT9AQQKCg0KBQQTAgMBEgT9AQsTCg0KBQQTAgMDEgT9ARYXCgwKBAQTAgQSBP4BBCQKDQoFBBMCBAQSBP4BBAwKDQoFBBMCBAUSBP4BDRMKDQoFBBMCBAESBP4BFB8KDQoFBBMCBAMSBP4BIiNiBnByb3RvMwrSgQMKG3ZvbHRoYV9wcm90b3Mvb3Blbm9sdC5wcm90bxIHb3Blbm9sdBocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxogdm9sdGhhX3Byb3Rvcy90ZWNoX3Byb2ZpbGUucHJvdG8aHnZvbHRoYV9wcm90b3MvZXh0X2NvbmZpZy5wcm90bxoedm9sdGhhX3Byb3Rvcy9leHRlbnNpb25zLnByb3RvIswECgpJbmRpY2F0aW9uEjEKB29sdF9pbmQYASABKAsyFi5vcGVub2x0Lk9sdEluZGljYXRpb25IAFIGb2x0SW5kEjQKCGludGZfaW5kGAIgASgLMhcub3Blbm9sdC5JbnRmSW5kaWNhdGlvbkgAUgdpbnRmSW5kEkEKDWludGZfb3Blcl9pbmQYAyABKAsyGy5vcGVub2x0LkludGZPcGVySW5kaWNhdGlvbkgAUgtpbnRmT3BlckluZBI+CgxvbnVfZGlzY19pbmQYBCABKAsyGi5vcGVub2x0Lk9udURpc2NJbmRpY2F0aW9uSABSCm9udURpc2NJbmQSMQoHb251X2luZBgFIAEoCzIWLm9wZW5vbHQuT251SW5kaWNhdGlvbkgAUgZvbnVJbmQSNAoIb21jaV9pbmQYBiABKAsyFy5vcGVub2x0Lk9tY2lJbmRpY2F0aW9uSABSB29tY2lJbmQSNAoHcGt0X2luZBgHIAEoCzIZLm9wZW5vbHQuUGFja2V0SW5kaWNhdGlvbkgAUgZwa3RJbmQSOAoKcG9ydF9zdGF0cxgIIAEoCzIXLm9wZW5vbHQuUG9ydFN0YXRpc3RpY3NIAFIJcG9ydFN0YXRzEjgKCmZsb3dfc3RhdHMYCSABKAsyFy5vcGVub2x0LkZsb3dTdGF0aXN0aWNzSABSCWZsb3dTdGF0cxI3CglhbGFybV9pbmQYCiABKAsyGC5vcGVub2x0LkFsYXJtSW5kaWNhdGlvbkgAUghhbGFybUluZEIGCgRkYXRhIusNCg9BbGFybUluZGljYXRpb24SMQoHbG9zX2luZBgBIAEoCzIWLm9wZW5vbHQuTG9zSW5kaWNhdGlvbkgAUgZsb3NJbmQSRAoOZHlpbmdfZ2FzcF9pbmQYAiABKAsyHC5vcGVub2x0LkR5aW5nR2FzcEluZGljYXRpb25IAFIMZHlpbmdHYXNwSW5kEkEKDW9udV9hbGFybV9pbmQYAyABKAsyGy5vcGVub2x0Lk9udUFsYXJtSW5kaWNhdGlvbkgAUgtvbnVBbGFybUluZBJXChRvbnVfc3RhcnR1cF9mYWlsX2luZBgEIAEoCzIkLm9wZW5vbHQuT251U3RhcnR1cEZhaWx1cmVJbmRpY2F0aW9uSABSEW9udVN0YXJ0dXBGYWlsSW5kEloKFm9udV9zaWduYWxfZGVncmFkZV9pbmQYBSABKAsyIy5vcGVub2x0Lk9udVNpZ25hbERlZ3JhZGVJbmRpY2F0aW9uSABSE29udVNpZ25hbERlZ3JhZGVJbmQSWwoXb251X2RyaWZ0X29mX3dpbmRvd19pbmQYBiABKAsyIy5vcGVub2x0Lk9udURyaWZ0T2ZXaW5kb3dJbmRpY2F0aW9uSABSE29udURyaWZ0T2ZXaW5kb3dJbmQSVAoRb251X2xvc3Nfb21jaV9pbmQYByABKAsyJy5vcGVub2x0Lk9udUxvc3NPZk9tY2lDaGFubmVsSW5kaWNhdGlvbkgAUg5vbnVMb3NzT21jaUluZBJXChRvbnVfc2lnbmFsc19mYWlsX2luZBgIIAEoCzIkLm9wZW5vbHQuT251U2lnbmFsc0ZhaWx1cmVJbmRpY2F0aW9uSABSEW9udVNpZ25hbHNGYWlsSW5kEk8KDG9udV90aXdpX2luZBgJIAEoCzIrLm9wZW5vbHQuT251VHJhbnNtaXNzaW9uSW50ZXJmZXJlbmNlV2FybmluZ0gAUgpvbnVUaXdpSW5kEmAKF29udV9hY3RpdmF0aW9uX2ZhaWxfaW5kGAogASgLMicub3Blbm9sdC5PbnVBY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb25IAFIUb251QWN0aXZhdGlvbkZhaWxJbmQSYAoYb251X3Byb2Nlc3NpbmdfZXJyb3JfaW5kGAsgASgLMiUub3Blbm9sdC5PbnVQcm9jZXNzaW5nRXJyb3JJbmRpY2F0aW9uSABSFW9udVByb2Nlc3NpbmdFcnJvckluZBJlChlvbnVfbG9zc19vZl9zeW5jX2ZhaWxfaW5kGAwgASgLMioub3Blbm9sdC5PbnVMb3NzT2ZLZXlTeW5jRmFpbHVyZUluZGljYXRpb25IAFIUb251TG9zc09mU3luY0ZhaWxJbmQSVQoVb251X2l0dV9wb25fc3RhdHNfaW5kGA0gASgLMiEub3Blbm9sdC5PbnVJdHVQb25TdGF0c0luZGljYXRpb25IAFIRb251SXR1UG9uU3RhdHNJbmQSbAocb251X2RlYWN0aXZhdGlvbl9mYWlsdXJlX2luZBgOIAEoCzIpLm9wZW5vbHQuT251RGVhY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb25IAFIZb251RGVhY3RpdmF0aW9uRmFpbHVyZUluZBJXChVvbnVfcmVtb3RlX2RlZmVjdF9pbmQYDyABKAsyIi5vcGVub2x0Lk9udVJlbW90ZURlZmVjdEluZGljYXRpb25IAFISb251UmVtb3RlRGVmZWN0SW5kEnMKHG9udV9sb3NzX2dlbV9kZWxpbmVhdGlvbl9pbmQYECABKAsyMS5vcGVub2x0Lk9udUxvc3NPZkdFTUNoYW5uZWxEZWxpbmVhdGlvbkluZGljYXRpb25IAFIYb251TG9zc0dlbURlbGluZWF0aW9uSW5kEnYKIG9udV9waHlzaWNhbF9lcXVpcG1lbnRfZXJyb3JfaW5kGBEgASgLMiwub3Blbm9sdC5PbnVQaHlzaWNhbEVxdWlwbWVudEVycm9ySW5kaWNhdGlvbkgAUhxvbnVQaHlzaWNhbEVxdWlwbWVudEVycm9ySW5kElsKE29udV9sb3NzX29mX2Fja19pbmQYEiABKAsyKy5vcGVub2x0Lk9udUxvc3NPZkFja25vd2xlZGdlbWVudEluZGljYXRpb25IAFIPb251TG9zc09mQWNrSW5kEm8KG29udV9kaWZmX3JlYWNoX2V4Y2VlZGVkX2luZBgTIAEoCzIvLm9wZW5vbHQuT251RGlmZmVyZW50aWFsUmVhY2hFeGNlZWRlZEluZGljYXRpb25IAFIXb251RGlmZlJlYWNoRXhjZWVkZWRJbmRCBgoEZGF0YSIuCg1PbHRJbmRpY2F0aW9uEh0KCm9wZXJfc3RhdGUYASABKAlSCW9wZXJTdGF0ZSJICg5JbnRmSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSHQoKb3Blcl9zdGF0ZRgCIAEoCVIJb3BlclN0YXRlImgKEU9udURpc2NJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBI6Cg1zZXJpYWxfbnVtYmVyGAIgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSDHNlcmlhbE51bWJlciKTBAoNT251SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpvcGVyX3N0YXRlGAMgASgJUglvcGVyU3RhdGUSHwoLYWRtaW5fc3RhdGUYBSABKAlSCmFkbWluU3RhdGUSOgoNc2VyaWFsX251bWJlchgEIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXISTAoLZmFpbF9yZWFzb24YBiABKA4yKy5vcGVub2x0Lk9udUluZGljYXRpb24uQWN0aXZhdGlvbkZhaWxSZWFzb25SCmZhaWxSZWFzb24ihwIKFEFjdGl2YXRpb25GYWlsUmVhc29uEiMKH09OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX05PTkUQABImCiJPTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9SQU5HSU5HEAESNgoyT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fUEFTU1dPUkRfQVVUSEVOVElDQVRJT04QAhIiCh5PTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9MT1MQAxIhCh1PTlVfQUNUSVZBVElPTl9GQUlMX09OVV9BTEFSTRAEEiMKH09OVV9BQ1RJVkFUSU9OX0ZBSUxfU1dJVENIX09WRVIQBSKCBAoSSW50Zk9wZXJJbmRpY2F0aW9uEhIKBHR5cGUYASABKAlSBHR5cGUSFwoHaW50Zl9pZBgCIAEoB1IGaW50ZklkEh0KCm9wZXJfc3RhdGUYAyABKAlSCW9wZXJTdGF0ZRIUCgVzcGVlZBgEIAEoB1IFc3BlZWQSHgoKdGVjaG5vbG9neRgFIAEoCVIKdGVjaG5vbG9neRJFCgZyYW5nZXMYBiABKAsyLS5vcGVub2x0LkludGZPcGVySW5kaWNhdGlvbi5QT05SZXNvdXJjZVJhbmdlc1IGcmFuZ2VzGqICChFQT05SZXNvdXJjZVJhbmdlcxJICgVwb29scxgDIAMoCzIyLm9wZW5vbHQuSW50Zk9wZXJJbmRpY2F0aW9uLlBPTlJlc291cmNlUmFuZ2VzLlBvb2xSBXBvb2xzGsIBCgRQb29sEk8KBHR5cGUYASABKA4yOy5vcGVub2x0LkludGZPcGVySW5kaWNhdGlvbi5QT05SZXNvdXJjZVJhbmdlcy5Qb29sLlBvb2xUeXBlUgR0eXBlEhQKBXN0YXJ0GAMgASgHUgVzdGFydBIQCgNlbmQYBCABKAdSA2VuZCJBCghQb29sVHlwZRIKCgZPTlVfSUQQABIMCghBTExPQ19JRBABEg4KCkdFTVBPUlRfSUQQAhILCgdGTE9XX0lEEAMiUgoOT21jaUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSEAoDcGt0GAMgASgMUgNwa3Qi8QEKEFBhY2tldEluZGljYXRpb24SGwoJaW50Zl90eXBlGAUgASgJUghpbnRmVHlwZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAggASgHUgVvbnVJZBIVCgZ1bmlfaWQYCSABKAdSBXVuaUlkEh0KCmdlbXBvcnRfaWQYAiABKAdSCWdlbXBvcnRJZBIXCgdmbG93X2lkGAMgASgHUgZmbG93SWQSFwoHcG9ydF9ubxgGIAEoB1IGcG9ydE5vEhYKBmNvb2tpZRgHIAEoBlIGY29va2llEhAKA3BrdBgEIAEoDFIDcGt0IiQKCUludGVyZmFjZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQiPAoJSGVhcnRiZWF0Ei8KE2hlYXJ0YmVhdF9zaWduYXR1cmUYASABKAdSEmhlYXJ0YmVhdFNpZ25hdHVyZSKsAQoDT251EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjoKDXNlcmlhbF9udW1iZXIYAyABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyEhAKA3BpchgEIAEoB1IDcGlyEicKD29tY2NfZW5jcnlwdGlvbhgFIAEoCFIOb21jY0VuY3J5cHRpb24isQEKEk9udUxvZ2ljYWxEaXN0YW5jZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBI5Chlsb2dpY2FsX29udV9kaXN0YW5jZV96ZXJvGAMgASgHUhZsb2dpY2FsT251RGlzdGFuY2VaZXJvEjAKFGxvZ2ljYWxfb251X2Rpc3RhbmNlGAQgASgHUhJsb2dpY2FsT251RGlzdGFuY2UiSwoHT21jaU1zZxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIQCgNwa3QYAyABKAxSA3BrdCKFAQoJT251UGFja2V0EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhcKB3BvcnRfbm8YBCABKAdSBnBvcnRObxIdCgpnZW1wb3J0X2lkGAUgASgHUglnZW1wb3J0SWQSEAoDcGt0GAMgASgMUgNwa3QiOQoMVXBsaW5rUGFja2V0EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIQCgNwa3QYAiABKAxSA3BrdCKbBwoKRGV2aWNlSW5mbxIWCgZ2ZW5kb3IYASABKAlSBnZlbmRvchIUCgVtb2RlbBgCIAEoCVIFbW9kZWwSKQoQaGFyZHdhcmVfdmVyc2lvbhgDIAEoCVIPaGFyZHdhcmVWZXJzaW9uEikKEGZpcm13YXJlX3ZlcnNpb24YBCABKAlSD2Zpcm13YXJlVmVyc2lvbhIbCglkZXZpY2VfaWQYECABKAlSCGRldmljZUlkEjAKFGRldmljZV9zZXJpYWxfbnVtYmVyGBEgASgJUhJkZXZpY2VTZXJpYWxOdW1iZXISMQoUcHJldmlvdXNseV9jb25uZWN0ZWQYEyABKAhSE3ByZXZpb3VzbHlDb25uZWN0ZWQSGwoJcG9uX3BvcnRzGAwgASgHUghwb25Qb3J0cxJACgZyYW5nZXMYDyADKAsyKC5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXNSBnJhbmdlcxqVBAoURGV2aWNlUmVzb3VyY2VSYW5nZXMSGQoIaW50Zl9pZHMYASADKAdSB2ludGZJZHMSHgoKdGVjaG5vbG9neRgCIAEoCVIKdGVjaG5vbG9neRJDCgVwb29scxgDIAMoCzItLm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlcy5Qb29sUgVwb29scxr8AgoEUG9vbBJKCgR0eXBlGAEgASgOMjYub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2wuUG9vbFR5cGVSBHR5cGUSUwoHc2hhcmluZxgCIAEoDjI5Lm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlcy5Qb29sLlNoYXJpbmdUeXBlUgdzaGFyaW5nEhQKBXN0YXJ0GAMgASgHUgVzdGFydBIQCgNlbmQYBCABKAdSA2VuZCJBCghQb29sVHlwZRIKCgZPTlVfSUQQABIMCghBTExPQ19JRBABEg4KCkdFTVBPUlRfSUQQAhILCgdGTE9XX0lEEAMiaAoLU2hhcmluZ1R5cGUSFgoSREVESUNBVEVEX1BFUl9JTlRGEAASHwobU0hBUkVEX0JZX0FMTF9JTlRGX0FMTF9URUNIEAESIAocU0hBUkVEX0JZX0FMTF9JTlRGX1NBTUVfVEVDSBACSgQIBRAMSgQIDRAOSgQIDhAPIoQDCgpDbGFzc2lmaWVyEhUKBm9fdHBpZBgBIAEoB1IFb1RwaWQSEwoFb192aWQYAiABKAdSBG9WaWQSFQoGaV90cGlkGAMgASgHUgVpVHBpZBITCgVpX3ZpZBgEIAEoB1IEaVZpZBIXCgdvX3BiaXRzGAUgASgHUgZvUGJpdHMSFwoHaV9wYml0cxgGIAEoB1IGaVBiaXRzEhkKCGV0aF90eXBlGAcgASgHUgdldGhUeXBlEhcKB2RzdF9tYWMYCCABKAxSBmRzdE1hYxIXCgdzcmNfbWFjGAkgASgMUgZzcmNNYWMSGQoIaXBfcHJvdG8YCiABKAdSB2lwUHJvdG8SFQoGZHN0X2lwGAsgASgHUgVkc3RJcBIVCgZzcmNfaXAYDCABKAdSBXNyY0lwEhkKCHNyY19wb3J0GA0gASgHUgdzcmNQb3J0EhkKCGRzdF9wb3J0GA4gASgHUgdkc3RQb3J0EiAKDHBrdF90YWdfdHlwZRgPIAEoCVIKcGt0VGFnVHlwZSKFAwoJQWN0aW9uQ21kEiIKDWFkZF9vdXRlcl90YWcYASABKAhSC2FkZE91dGVyVGFnEigKEHJlbW92ZV9vdXRlcl90YWcYAiABKAhSDnJlbW92ZU91dGVyVGFnEiAKDHRyYXBfdG9faG9zdBgDIAEoCFIKdHJhcFRvSG9zdBIsChJyZW1hcmtfb3V0ZXJfcGJpdHMYBCABKAhSEHJlbWFya091dGVyUGJpdHMSLAoScmVtYXJrX2lubmVyX3BiaXRzGAUgASgIUhByZW1hcmtJbm5lclBiaXRzEiIKDWFkZF9pbm5lcl90YWcYBiABKAhSC2FkZElubmVyVGFnEigKEHJlbW92ZV9pbm5lcl90YWcYByABKAhSDnJlbW92ZUlubmVyVGFnEi4KE3RyYW5zbGF0ZV9pbm5lcl90YWcYCCABKAhSEXRyYW5zbGF0ZUlubmVyVGFnEi4KE3RyYW5zbGF0ZV9vdXRlcl90YWcYCSABKAhSEXRyYW5zbGF0ZU91dGVyVGFnIrgBCgZBY3Rpb24SJAoDY21kGAEgASgLMhIub3Blbm9sdC5BY3Rpb25DbWRSA2NtZBITCgVvX3ZpZBgCIAEoB1IEb1ZpZBIXCgdvX3BiaXRzGAMgASgHUgZvUGJpdHMSFQoGb190cGlkGAQgASgHUgVvVHBpZBITCgVpX3ZpZBgFIAEoB1IEaVZpZBIXCgdpX3BiaXRzGAYgASgHUgZpUGJpdHMSFQoGaV90cGlkGAcgASgHUgVpVHBpZCLHBgoERmxvdxIkCg5hY2Nlc3NfaW50Zl9pZBgBIAEoD1IMYWNjZXNzSW50ZklkEhUKBm9udV9pZBgCIAEoD1IFb251SWQSFQoGdW5pX2lkGAsgASgPUgV1bmlJZBIXCgdmbG93X2lkGAMgASgGUgZmbG93SWQSKgoRc3ltbWV0cmljX2Zsb3dfaWQYEiABKAZSD3N5bW1ldHJpY0Zsb3dJZBIbCglmbG93X3R5cGUYBCABKAlSCGZsb3dUeXBlEhkKCGFsbG9jX2lkGAogASgPUgdhbGxvY0lkEiYKD25ldHdvcmtfaW50Zl9pZBgFIAEoD1INbmV0d29ya0ludGZJZBIdCgpnZW1wb3J0X2lkGAYgASgPUglnZW1wb3J0SWQSMwoKY2xhc3NpZmllchgHIAEoCzITLm9wZW5vbHQuQ2xhc3NpZmllclIKY2xhc3NpZmllchInCgZhY3Rpb24YCCABKAsyDy5vcGVub2x0LkFjdGlvblIGYWN0aW9uEhoKCHByaW9yaXR5GAkgASgPUghwcmlvcml0eRIWCgZjb29raWUYDCABKAZSBmNvb2tpZRIXCgdwb3J0X25vGA0gASgHUgZwb3J0Tm8SGQoIZ3JvdXBfaWQYDiABKAdSB2dyb3VwSWQSJgoPdGVjaF9wcm9maWxlX2lkGA8gASgHUg10ZWNoUHJvZmlsZUlkEiUKDnJlcGxpY2F0ZV9mbG93GBAgASgIUg1yZXBsaWNhdGVGbG93EkgKD3BiaXRfdG9fZ2VtcG9ydBgRIAMoCzIgLm9wZW5vbHQuRmxvdy5QYml0VG9HZW1wb3J0RW50cnlSDXBiaXRUb0dlbXBvcnQSRQoOZ2VtcG9ydF90b19hZXMYEyADKAsyHy5vcGVub2x0LkZsb3cuR2VtcG9ydFRvQWVzRW50cnlSDGdlbXBvcnRUb0FlcxpAChJQYml0VG9HZW1wb3J0RW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAdSBXZhbHVlOgI4ARo/ChFHZW1wb3J0VG9BZXNFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBIlQKDFNlcmlhbE51bWJlchIbCgl2ZW5kb3JfaWQYASABKAxSCHZlbmRvcklkEicKD3ZlbmRvcl9zcGVjaWZpYxgCIAEoDFIOdmVuZG9yU3BlY2lmaWMi/gsKDlBvcnRTdGF0aXN0aWNzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIZCghyeF9ieXRlcxgCIAEoBlIHcnhCeXRlcxIdCgpyeF9wYWNrZXRzGAMgASgGUglyeFBhY2tldHMSKAoQcnhfdWNhc3RfcGFja2V0cxgEIAEoBlIOcnhVY2FzdFBhY2tldHMSKAoQcnhfbWNhc3RfcGFja2V0cxgFIAEoBlIOcnhNY2FzdFBhY2tldHMSKAoQcnhfYmNhc3RfcGFja2V0cxgGIAEoBlIOcnhCY2FzdFBhY2tldHMSKAoQcnhfZXJyb3JfcGFja2V0cxgHIAEoBlIOcnhFcnJvclBhY2tldHMSGwoJcnhfZnJhbWVzGBEgASgGUghyeEZyYW1lcxIgCgxyeF9mcmFtZXNfNjQYEiABKAZSCnJ4RnJhbWVzNjQSJwoQcnhfZnJhbWVzXzY1XzEyNxgTIAEoBlINcnhGcmFtZXM2NTEyNxIpChFyeF9mcmFtZXNfMTI4XzI1NRgUIAEoBlIOcnhGcmFtZXMxMjgyNTUSKQoRcnhfZnJhbWVzXzI1Nl81MTEYFSABKAZSDnJ4RnJhbWVzMjU2NTExEisKEnJ4X2ZyYW1lc181MTJfMTAyMxgWIAEoBlIPcnhGcmFtZXM1MTIxMDIzEi0KE3J4X2ZyYW1lc18xMDI0XzE1MTgYFyABKAZSEHJ4RnJhbWVzMTAyNDE1MTgSLQoTcnhfZnJhbWVzXzE1MTlfMjA0NxgYIAEoBlIQcnhGcmFtZXMxNTE5MjA0NxItChNyeF9mcmFtZXNfMjA0OF80MDk1GBkgASgGUhByeEZyYW1lczIwNDg0MDk1Ei0KE3J4X2ZyYW1lc180MDk2XzkyMTYYGiABKAZSEHJ4RnJhbWVzNDA5NjkyMTYSLwoUcnhfZnJhbWVzXzkyMTdfMTYzODMYGyABKAZSEXJ4RnJhbWVzOTIxNzE2MzgzEiIKDXJ4X2NyY19lcnJvcnMYDiABKAZSC3J4Q3JjRXJyb3JzEhkKCHR4X2J5dGVzGAggASgGUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYCSABKAZSCXR4UGFja2V0cxIoChB0eF91Y2FzdF9wYWNrZXRzGAogASgGUg50eFVjYXN0UGFja2V0cxIoChB0eF9tY2FzdF9wYWNrZXRzGAsgASgGUg50eE1jYXN0UGFja2V0cxIoChB0eF9iY2FzdF9wYWNrZXRzGAwgASgGUg50eEJjYXN0UGFja2V0cxIoChB0eF9lcnJvcl9wYWNrZXRzGA0gASgGUg50eEVycm9yUGFja2V0cxIbCgl0eF9mcmFtZXMYHCABKAZSCHR4RnJhbWVzEiAKDHR4X2ZyYW1lc182NBgdIAEoBlIKdHhGcmFtZXM2NBInChB0eF9mcmFtZXNfNjVfMTI3GB4gASgGUg10eEZyYW1lczY1MTI3EikKEXR4X2ZyYW1lc18xMjhfMjU1GB8gASgGUg50eEZyYW1lczEyODI1NRIpChF0eF9mcmFtZXNfMjU2XzUxMRggIAEoBlIOdHhGcmFtZXMyNTY1MTESKwoSdHhfZnJhbWVzXzUxMl8xMDIzGCEgASgGUg90eEZyYW1lczUxMjEwMjMSLQoTdHhfZnJhbWVzXzEwMjRfMTUxOBgiIAEoBlIQdHhGcmFtZXMxMDI0MTUxOBItChN0eF9mcmFtZXNfMTUxOV8yMDQ3GCMgASgGUhB0eEZyYW1lczE1MTkyMDQ3Ei0KE3R4X2ZyYW1lc18yMDQ4XzQwOTUYJCABKAZSEHR4RnJhbWVzMjA0ODQwOTUSLQoTdHhfZnJhbWVzXzQwOTZfOTIxNhglIAEoBlIQdHhGcmFtZXM0MDk2OTIxNhIvChR0eF9mcmFtZXNfOTIxN18xNjM4MxgmIAEoBlIRdHhGcmFtZXM5MjE3MTYzODMSHQoKYmlwX2Vycm9ycxgPIAEoBlIJYmlwRXJyb3JzEhwKCXRpbWVzdGFtcBgQIAEoB1IJdGltZXN0YW1wIuYHCg1PbnVTdGF0aXN0aWNzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEiUKDnBvc2l0aXZlX2RyaWZ0GAMgASgGUg1wb3NpdGl2ZURyaWZ0EiUKDm5lZ2F0aXZlX2RyaWZ0GAQgASgGUg1uZWdhdGl2ZURyaWZ0EjgKGGRlbGltaXRlcl9taXNzX2RldGVjdGlvbhgFIAEoBlIWZGVsaW1pdGVyTWlzc0RldGVjdGlvbhIdCgpiaXBfZXJyb3JzGAYgASgGUgliaXBFcnJvcnMSGwoJYmlwX3VuaXRzGAcgASgGUghiaXBVbml0cxIyChVmZWNfY29ycmVjdGVkX3N5bWJvbHMYCCABKAZSE2ZlY0NvcnJlY3RlZFN5bWJvbHMSNgoXZmVjX2NvZGV3b3Jkc19jb3JyZWN0ZWQYCSABKAZSFWZlY0NvZGV3b3Jkc0NvcnJlY3RlZBI+ChtmZWNfY29kZXdvcmRzX3VuY29ycmVjdGFibGUYCiABKAZSGWZlY0NvZGV3b3Jkc1VuY29ycmVjdGFibGUSIwoNZmVjX2NvZGV3b3JkcxgLIAEoBlIMZmVjQ29kZXdvcmRzEi4KE2ZlY19jb3JyZWN0ZWRfdW5pdHMYDCABKAZSEWZlY0NvcnJlY3RlZFVuaXRzEiYKD3hnZW1fa2V5X2Vycm9ycxgNIAEoBlINeGdlbUtleUVycm9ycxIbCgl4Z2VtX2xvc3MYDiABKAZSCHhnZW1Mb3NzEiYKD3J4X3Bsb2Ftc19lcnJvchgPIAEoBlINcnhQbG9hbXNFcnJvchIrChJyeF9wbG9hbXNfbm9uX2lkbGUYECABKAZSD3J4UGxvYW1zTm9uSWRsZRIXCgdyeF9vbWNpGBEgASgGUgZyeE9tY2kSOAoZcnhfb21jaV9wYWNrZXRzX2NyY19lcnJvchgSIAEoBlIVcnhPbWNpUGFja2V0c0NyY0Vycm9yEhkKCHJ4X2J5dGVzGBMgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYFCABKAZSCXJ4UGFja2V0cxIZCgh0eF9ieXRlcxgVIAEoBlIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGBYgASgGUgl0eFBhY2tldHMSIQoMYmVyX3JlcG9ydGVkGBcgASgGUgtiZXJSZXBvcnRlZBIfCgtsY2RnX2Vycm9ycxgYIAEoBlIKbGNkZ0Vycm9ycxIdCgpyZGlfZXJyb3JzGBkgASgGUglyZGlFcnJvcnMSHAoJdGltZXN0YW1wGBogASgHUgl0aW1lc3RhbXAi3QEKEUdlbVBvcnRTdGF0aXN0aWNzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIdCgpnZW1wb3J0X2lkGAIgASgHUglnZW1wb3J0SWQSHQoKcnhfcGFja2V0cxgDIAEoBlIJcnhQYWNrZXRzEhkKCHJ4X2J5dGVzGAQgASgGUgdyeEJ5dGVzEh0KCnR4X3BhY2tldHMYBSABKAZSCXR4UGFja2V0cxIZCgh0eF9ieXRlcxgGIAEoBlIHdHhCeXRlcxIcCgl0aW1lc3RhbXAYGiABKAdSCXRpbWVzdGFtcCK7AQoORmxvd1N0YXRpc3RpY3MSFwoHZmxvd19pZBgBIAEoB1IGZmxvd0lkEhkKCHJ4X2J5dGVzGAIgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYAyABKAZSCXJ4UGFja2V0cxIZCgh0eF9ieXRlcxgIIAEoBlIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAkgASgGUgl0eFBhY2tldHMSHAoJdGltZXN0YW1wGBAgASgHUgl0aW1lc3RhbXAiQAoNTG9zSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFgoGc3RhdHVzGAIgASgJUgZzdGF0dXMiXQoTRHlpbmdHYXNwSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKjAgoST251QWxhcm1JbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCmxvc19zdGF0dXMYAyABKAlSCWxvc1N0YXR1cxIdCgpsb2Jfc3RhdHVzGAQgASgJUglsb2JTdGF0dXMSKAoQbG9wY19taXNzX3N0YXR1cxgFIAEoCVIObG9wY01pc3NTdGF0dXMSMQoVbG9wY19taWNfZXJyb3Jfc3RhdHVzGAYgASgJUhJsb3BjTWljRXJyb3JTdGF0dXMSHwoLbG9maV9zdGF0dXMYByABKAlSCmxvZmlTdGF0dXMSIQoMbG9hbWlfc3RhdHVzGAggASgJUgtsb2FtaVN0YXR1cyJlChtPbnVTdGFydHVwRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMimQEKGk9udVNpZ25hbERlZ3JhZGVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEjMKFmludmVyc2VfYml0X2Vycm9yX3JhdGUYBCABKAdSE2ludmVyc2VCaXRFcnJvclJhdGUikwEKGk9udURyaWZ0T2ZXaW5kb3dJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhQKBWRyaWZ0GAQgASgHUgVkcmlmdBIXCgduZXdfZXFkGAUgASgHUgZuZXdFcWQiaAoeT251TG9zc09mT21jaUNoYW5uZWxJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIpoBChtPbnVTaWduYWxzRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgEIAEoB1ITaW52ZXJzZUJpdEVycm9yUmF0ZSKCAQoiT251VHJhbnNtaXNzaW9uSW50ZXJmZXJlbmNlV2FybmluZxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIUCgVkcmlmdBgEIAEoB1IFZHJpZnQicQoeT251QWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh8KC2ZhaWxfcmVhc29uGAMgASgHUgpmYWlsUmVhc29uImsKIU9udUxvc3NPZktleVN5bmNGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyJUChJSZGlFcnJvckluZGljYXRpb24SJgoPcmRpX2Vycm9yX2NvdW50GAEgASgGUg1yZGlFcnJvckNvdW50EhYKBnN0YXR1cxgCIAEoCVIGc3RhdHVzIpYBChhPbnVJdHVQb25TdGF0c0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSQQoNcmRpX2Vycm9yX2luZBgDIAEoCzIbLm9wZW5vbHQuUmRpRXJyb3JJbmRpY2F0aW9uSABSC3JkaUVycm9ySW5kQgcKBXN0YXRzIk4KHE9udVByb2Nlc3NpbmdFcnJvckluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQiagogT251RGVhY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMiagoZT251UmVtb3RlRGVmZWN0SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpyZGlfZXJyb3JzGAMgASgGUglyZGlFcnJvcnMioQEKKE9udUxvc3NPZkdFTUNoYW5uZWxEZWxpbmVhdGlvbkluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSLQoSZGVsaW5lYXRpb25fZXJyb3JzGAQgASgHUhFkZWxpbmVhdGlvbkVycm9ycyJtCiNPbnVQaHlzaWNhbEVxdWlwbWVudEVycm9ySW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyJsCiJPbnVMb3NzT2ZBY2tub3dsZWRnZW1lbnRJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIowBCiZPbnVEaWZmZXJlbnRpYWxSZWFjaEV4Y2VlZGVkSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIaCghkaXN0YW5jZRgEIAEoB1IIZGlzdGFuY2Ui9gEKC0dyb3VwTWVtYmVyEiEKDGludGVyZmFjZV9pZBgBIAEoDVILaW50ZXJmYWNlSWQSSQoOaW50ZXJmYWNlX3R5cGUYAiABKA4yIi5vcGVub2x0Lkdyb3VwTWVtYmVyLkludGVyZmFjZVR5cGVSDWludGVyZmFjZVR5cGUSHgoLZ2VtX3BvcnRfaWQYAyABKA1SCWdlbVBvcnRJZBIaCghwcmlvcml0eRgEIAEoDVIIcHJpb3JpdHkiPQoNSW50ZXJmYWNlVHlwZRIHCgNQT04QABIQCgxFUE9OXzFHX1BBVEgQARIRCg1FUE9OXzEwR19QQVRIEAIihgIKBUdyb3VwEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkEjwKB2NvbW1hbmQYAiABKA4yIi5vcGVub2x0Lkdyb3VwLkdyb3VwTWVtYmVyc0NvbW1hbmRSB2NvbW1hbmQSLgoHbWVtYmVycxgDIAMoCzIULm9wZW5vbHQuR3JvdXBNZW1iZXJSB21lbWJlcnMSJwoGYWN0aW9uGAQgASgLMg8ub3Blbm9sdC5BY3Rpb25SBmFjdGlvbiJLChNHcm91cE1lbWJlcnNDb21tYW5kEg8KC0FERF9NRU1CRVJTEAASEgoOUkVNT1ZFX01FTUJFUlMQARIPCgtTRVRfTUVNQkVSUxACIl0KClZhbHVlUGFyYW0SHgoDb251GAEgASgLMgwub3Blbm9sdC5PbnVSA29udRIvCgV2YWx1ZRgCIAEoDjIZLmV4dGVuc2lvbi5WYWx1ZVR5cGUuVHlwZVIFdmFsdWUiwwIKDlBvblJ4UG93ZXJEYXRhEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzElIKC2ZhaWxfcmVhc29uGAQgASgOMjEub3Blbm9sdC5Qb25SeFBvd2VyRGF0YS5Sc3NpTWVhc3VyZW1lbnRGYWlsUmVhc29uUgpmYWlsUmVhc29uEikKEXJ4X3Bvd2VyX21lYW5fZGJtGAUgASgBUg5yeFBvd2VyTWVhbkRibSJqChlSc3NpTWVhc3VyZW1lbnRGYWlsUmVhc29uEhQKEEZBSUxfUkVBU09OX05PTkUQABIcChhGQUlMX1JFQVNPTl9OT19ERUxJTUlURVIQARIZChVGQUlMX1JFQVNPTl9OT19BQ0NFU1MQAiIHCgVFbXB0eTKfFAoHT3Blbm9sdBJECgpEaXNhYmxlT2x0Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiFoLT5JMCECILL3YxL0Rpc2FibGU6ASoSRgoLUmVlbmFibGVPbHQSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIXgtPkkwIRIgwvdjEvUmVlbmFibGU6ASoSRQoLQWN0aXZhdGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGILT5JMCEiINL3YxL0VuYWJsZU9udToBKhJICg1EZWFjdGl2YXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9EaXNhYmxlT251OgEqEkMKCURlbGV0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIYgtPkkwISIg0vdjEvRGVsZXRlT251OgEqEkkKCk9tY2lNc2dPdXQSEC5vcGVub2x0Lk9tY2lNc2caDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9PbWNpTXNnT3V0OgEqEk8KDE9udVBhY2tldE91dBISLm9wZW5vbHQuT251UGFja2V0Gg4ub3Blbm9sdC5FbXB0eSIbgtPkkwIVIhAvdjEvT251UGFja2V0T3V0OgEqElgKD1VwbGlua1BhY2tldE91dBIVLm9wZW5vbHQuVXBsaW5rUGFja2V0Gg4ub3Blbm9sdC5FbXB0eSIegtPkkwIYIhMvdjEvVXBsaW5rUGFja2V0T3V0OgEqEkAKB0Zsb3dBZGQSDS5vcGVub2x0LkZsb3caDi5vcGVub2x0LkVtcHR5IhaC0+STAhAiCy92MS9GbG93QWRkOgEqEkYKCkZsb3dSZW1vdmUSDS5vcGVub2x0LkZsb3caDi5vcGVub2x0LkVtcHR5IhmC0+STAhMiDi92MS9GbG93UmVtb3ZlOgEqElMKDkhlYXJ0YmVhdENoZWNrEg4ub3Blbm9sdC5FbXB0eRoSLm9wZW5vbHQuSGVhcnRiZWF0Ih2C0+STAhciEi92MS9IZWFydGJlYXRDaGVjazoBKhJNCgtFbmFibGVQb25JZhISLm9wZW5vbHQuSW50ZXJmYWNlGg4ub3Blbm9sdC5FbXB0eSIagtPkkwIUIg8vdjEvRW5hYmxlUG9uSWY6ASoSTwoMRGlzYWJsZVBvbklmEhIub3Blbm9sdC5JbnRlcmZhY2UaDi5vcGVub2x0LkVtcHR5IhuC0+STAhUiEC92MS9EaXNhYmxlUG9uSWY6ASoSUgoNR2V0RGV2aWNlSW5mbxIOLm9wZW5vbHQuRW1wdHkaEy5vcGVub2x0LkRldmljZUluZm8iHILT5JMCFiIRL3YxL0dldERldmljZUluZm86ASoSPwoGUmVib290Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiFYLT5JMCDyIKL3YxL1JlYm9vdDoBKhJVChFDb2xsZWN0U3RhdGlzdGljcxIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IiCC0+STAhoiFS92MS9Db2xsZWN0U3RhdGlzdGljczoBKhJZChBHZXRPbnVTdGF0aXN0aWNzEgwub3Blbm9sdC5PbnUaFi5vcGVub2x0Lk9udVN0YXRpc3RpY3MiH4LT5JMCGSIUL3YxL0dldE9udVN0YXRpc3RpY3M6ASoSawoUR2V0R2VtUG9ydFN0YXRpc3RpY3MSEi5vcGVub2x0Lk9udVBhY2tldBoaLm9wZW5vbHQuR2VtUG9ydFN0YXRpc3RpY3MiI4LT5JMCHSIYL3YxL0dldEdlbVBvcnRTdGF0aXN0aWNzOgEqEnIKF0NyZWF0ZVRyYWZmaWNTY2hlZHVsZXJzEh8udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJzGg4ub3Blbm9sdC5FbXB0eSImgtPkkwIgIhsvdjEvQ3JlYXRlVHJhZmZpY1NjaGVkdWxlcnM6ASoScgoXUmVtb3ZlVHJhZmZpY1NjaGVkdWxlcnMSHy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NjaGVkdWxlcnMaDi5vcGVub2x0LkVtcHR5IiaC0+STAiAiGy92MS9SZW1vdmVUcmFmZmljU2NoZWR1bGVyczoBKhJmChNDcmVhdGVUcmFmZmljUXVldWVzEhsudGVjaF9wcm9maWxlLlRyYWZmaWNRdWV1ZXMaDi5vcGVub2x0LkVtcHR5IiKC0+STAhwiFy92MS9DcmVhdGVUcmFmZmljUXVldWVzOgEqEmYKE1JlbW92ZVRyYWZmaWNRdWV1ZXMSGy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlcxoOLm9wZW5vbHQuRW1wdHkiIoLT5JMCHCIXL3YxL1JlbW92ZVRyYWZmaWNRdWV1ZXM6ASoSOwoQRW5hYmxlSW5kaWNhdGlvbhIOLm9wZW5vbHQuRW1wdHkaEy5vcGVub2x0LkluZGljYXRpb24iADABEl0KFVBlcmZvcm1Hcm91cE9wZXJhdGlvbhIOLm9wZW5vbHQuR3JvdXAaDi5vcGVub2x0LkVtcHR5IiSC0+STAh4iGS92MS9QZXJmb3JtR3JvdXBPcGVyYXRpb246ASoSSQoLRGVsZXRlR3JvdXASDi5vcGVub2x0Lkdyb3VwGg4ub3Blbm9sdC5FbXB0eSIagtPkkwIUIg8vdjEvRGVsZXRlR3JvdXA6ASoSVwoLR2V0RXh0VmFsdWUSEy5vcGVub2x0LlZhbHVlUGFyYW0aFy5leHRlbnNpb24uUmV0dXJuVmFsdWVzIhqC0+STAhQiDy92MS9HZXRFeHRWYWx1ZToBKhJdChFPbnVJdHVQb25BbGFybVNldBIWLmNvbmZpZy5PbnVJdHVQb25BbGFybRoOLm9wZW5vbHQuRW1wdHkiIILT5JMCGiIVL3YxL09udUl0dVBvbkFsYXJtU2V0OgEqEnAKGUdldExvZ2ljYWxPbnVEaXN0YW5jZVplcm8SDC5vcGVub2x0Lk9udRobLm9wZW5vbHQuT251TG9naWNhbERpc3RhbmNlIiiC0+STAiIiHS92MS9HZXRMb2dpY2FsT251RGlzdGFuY2VaZXJvOgEqEmgKFUdldExvZ2ljYWxPbnVEaXN0YW5jZRIMLm9wZW5vbHQuT251Ghsub3Blbm9sdC5PbnVMb2dpY2FsRGlzdGFuY2UiJILT5JMCHiIZL3YxL0dldExvZ2ljYWxPbnVEaXN0YW5jZToBKhJUCg1HZXRQb25SeFBvd2VyEgwub3Blbm9sdC5PbnUaFy5vcGVub2x0LlBvblJ4UG93ZXJEYXRhIhyC0+STAhYiES92MS9HZXRQb25SeFBvd2VyOgEqQl0KG29yZy5vcGVuY29yZC52b2x0aGEub3Blbm9sdEINVm9sdGhhT3Blbk9MVFovZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29wZW5vbHRKkf4BCgcSBQ4AnAYQCtEECgEMEgMOABIyxgQgQ29weXJpZ2h0IChjKSAyMDE4IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBCBIDEABGCgkKAggLEgMQAEYKCAoBCBIDEQA0CgkKAggBEgMRADQKCAoBCBIDEgAuCgkKAggIEgMSAC4KCAoBAhIDFAAQCgkKAgMAEgMVACYKCQoCAwESAxYAKgoJCgIDAhIDFwAoCgkKAgMDEgMYACgKCwoCBgASBRoA6AEBCgoKAwYAARIDGggPCgwKBAYAAgASBBwEIQUKDAoFBgACAAESAxwIEgoMCgUGAAIAAhIDHBMYCgwKBQYAAgADEgMcIygKDQoFBgACAAQSBB0IIAoKEQoJBgACAASwyrwiEgQdCCAKCgwKBAYAAgESBCMEKAUKDAoFBgACAQESAyMIEwoMCgUGAAIBAhIDIxQZCgwKBQYAAgEDEgMjJCkKDQoFBgACAQQSBCQIJwoKEQoJBgACAQSwyrwiEgQkCCcKCgwKBAYAAgISBCoELwUKDAoFBgACAgESAyoIEwoMCgUGAAICAhIDKhQXCgwKBQYAAgIDEgMqIicKDQoFBgACAgQSBCsILgoKEQoJBgACAgSwyrwiEgQrCC4KCgwKBAYAAgMSBDEENgUKDAoFBgACAwESAzEIFQoMCgUGAAIDAhIDMRYZCgwKBQYAAgMDEgMxJCkKDQoFBgACAwQSBDIINQoKEQoJBgACAwSwyrwiEgQyCDUKCgwKBAYAAgQSBDgEPQUKDAoFBgACBAESAzgIEQoMCgUGAAIEAhIDOBIVCgwKBQYAAgQDEgM4ICUKDQoFBgACBAQSBDkIPAoKEQoJBgACBASwyrwiEgQ5CDwKCgwKBAYAAgUSBD8ERAUKDAoFBgACBQESAz8IEgoMCgUGAAIFAhIDPxMaCgwKBQYAAgUDEgM/JSoKDQoFBgACBQQSBEAIQwoKEQoJBgACBQSwyrwiEgRACEMKCgwKBAYAAgYSBEYESwUKDAoFBgACBgESA0YIFAoMCgUGAAIGAhIDRhUeCgwKBQYAAgYDEgNGKS4KDQoFBgACBgQSBEcISgoKEQoJBgACBgSwyrwiEgRHCEoKCgwKBAYAAgcSBE0EUgUKDAoFBgACBwESA00IFwoMCgUGAAIHAhIDTRgkCgwKBQYAAgcDEgNNLzQKDQoFBgACBwQSBE4IUQoKEQoJBgACBwSwyrwiEgROCFEKCgwKBAYAAggSBFQEWQUKDAoFBgACCAESA1QIDwoMCgUGAAIIAhIDVBAUCgwKBQYAAggDEgNUHyQKDQoFBgACCAQSBFUIWAoKEQoJBgACCASwyrwiEgRVCFgKCgwKBAYAAgkSBFsEYAUKDAoFBgACCQESA1sIEgoMCgUGAAIJAhIDWxMXCgwKBQYAAgkDEgNbIicKDQoFBgACCQQSBFwIXwoKEQoJBgACCQSwyrwiEgRcCF8KCgwKBAYAAgoSBGIEZwUKDAoFBgACCgESA2IIFgoMCgUGAAIKAhIDYhccCgwKBQYAAgoDEgNiJzAKDQoFBgACCgQSBGMIZgoKEQoJBgACCgSwyrwiEgRjCGYKCgwKBAYAAgsSBGkEbgUKDAoFBgACCwESA2kIEwoMCgUGAAILAhIDaRQdCgwKBQYAAgsDEgNpKC0KDQoFBgACCwQSBGoIbQoKEQoJBgACCwSwyrwiEgRqCG0KCgwKBAYAAgwSBHAEdQUKDAoFBgACDAESA3AIFAoMCgUGAAIMAhIDcBUeCgwKBQYAAgwDEgNwKS4KDQoFBgACDAQSBHEIdAoKEQoJBgACDASwyrwiEgRxCHQKCgwKBAYAAg0SBHcEfAUKDAoFBgACDQESA3cIFQoMCgUGAAINAhIDdxYbCgwKBQYAAg0DEgN3JjAKDQoFBgACDQQSBHgIewoKEQoJBgACDQSwyrwiEgR4CHsKCg0KBAYAAg4SBX4EgwEFCgwKBQYAAg4BEgN+CA4KDAoFBgACDgISA34PFAoMCgUGAAIOAxIDfh8kCg4KBQYAAg4EEgV/CYIBCgoSCgkGAAIOBLDKvCISBX8JggEKCg4KBAYAAg8SBoUBBIoBBQoNCgUGAAIPARIEhQEIGQoNCgUGAAIPAhIEhQEaHwoNCgUGAAIPAxIEhQEqLwoPCgUGAAIPBBIGhgEIiQEKChMKCQYAAg8EsMq8IhIGhgEIiQEKCg4KBAYAAhASBowBBJEBBQoNCgUGAAIQARIEjAEIGAoNCgUGAAIQAhIEjAEZHAoNCgUGAAIQAxIEjAEnNAoPCgUGAAIQBBIGjQEIkAEKChMKCQYAAhAEsMq8IhIGjQEIkAEKCg4KBAYAAhESBpMBBJgBBQoNCgUGAAIRARIEkwEIHAoNCgUGAAIRAhIEkwEdJgoNCgUGAAIRAxIEkwExQgoPCgUGAAIRBBIGlAEIlwEKChMKCQYAAhEEsMq8IhIGlAEIlwEKCg4KBAYAAhISBpoBBJ8BBQoNCgUGAAISARIEmgEIHwoNCgUGAAISAhIEmgEgPgoNCgUGAAISAxIEmgFJTgoPCgUGAAISBBIGmwEIngEKChMKCQYAAhIEsMq8IhIGmwEIngEKCg4KBAYAAhMSBqEBBKYBBQoNCgUGAAITARIEoQEIHwoNCgUGAAITAhIEoQEgPgoNCgUGAAITAxIEoQFJTgoPCgUGAAITBBIGogEIpQEKChMKCQYAAhMEsMq8IhIGogEIpQEKCg4KBAYAAhQSBqgBBK0BBQoNCgUGAAIUARIEqAEIGwoNCgUGAAIUAhIEqAEcNgoNCgUGAAIUAxIEqAFBRgoPCgUGAAIUBBIGqQEIrAEKChMKCQYAAhQEsMq8IhIGqQEIrAEKCg4KBAYAAhUSBq8BBLQBBQoNCgUGAAIVARIErwEIGwoNCgUGAAIVAhIErwEcNgoNCgUGAAIVAxIErwFBRgoPCgUGAAIVBBIGsAEIswEKChMKCQYAAhUEsMq8IhIGsAEIswEKCgwKBAYAAhYSBLYBBD4KDQoFBgACFgESBLYBCBgKDQoFBgACFgISBLYBGR4KDQoFBgACFgYSBLYBKS8KDQoFBgACFgMSBLYBMDoKDgoEBgACFxIGuAEEvQEFCg0KBQYAAhcBEgS4AQgdCg0KBQYAAhcCEgS4AR4jCg0KBQYAAhcDEgS4AS4zCg8KBQYAAhcEEga5AQi8AQoKEwoJBgACFwSwyrwiEga5AQi8AQoKDgoEBgACGBIGvwEExAEFCg0KBQYAAhgBEgS/AQgTCg0KBQYAAhgCEgS/ARQZCg0KBQYAAhgDEgS/ASQpCg8KBQYAAhgEEgbAAQjDAQoKEwoJBgACGASwyrwiEgbAAQjDAQoKDgoEBgACGRIGxgEEywEFCg0KBQYAAhkBEgTGAQgTCg0KBQYAAhkCEgTGARQeCg0KBQYAAhkDEgTGASk/Cg8KBQYAAhkEEgbHAQjKAQoKEwoJBgACGQSwyrwiEgbHAQjKAQoKDgoEBgACGhIGzQEE0gEFCg0KBQYAAhoBEgTNAQgZCg0KBQYAAhoCEgTNARovCg0KBQYAAhoDEgTNATo/Cg8KBQYAAhoEEgbOAQjRAQoKEwoJBgACGgSwyrwiEgbOAQjRAQoKDgoEBgACGxIG1AEE2QEFCg0KBQYAAhsBEgTUAQghCg0KBQYAAhsCEgTUASIlCg0KBQYAAhsDEgTUATBCCg8KBQYAAhsEEgbVAQjYAQoKEwoJBgACGwSwyrwiEgbVAQjYAQoKDgoEBgACHBIG2wEE4AEFCg0KBQYAAhwBEgTbAQgdCg0KBQYAAhwCEgTbAR4hCg0KBQYAAhwDEgTbASw+Cg8KBQYAAhwEEgbcAQjfAQoKEwoJBgACHASwyrwiEgbcAQjfAQoKDgoEBgACHRIG4gEE5wEFCg0KBQYAAh0BEgTiAQgVCg0KBQYAAh0CEgTiARYZCg0KBQYAAh0DEgTiASQyCg8KBQYAAh0EEgbjAQjmAQoKEwoJBgACHQSwyrwiEgbjAQjmAQoKDAoCBAASBuoBAPcBAQoLCgMEAAESBOoBCBIKDgoEBAAIABIG6wEE9gEFCg0KBQQACAABEgTrAQoOCgwKBAQAAgASBOwBCCIKDQoFBAACAAYSBOwBCBUKDQoFBAACAAESBOwBFh0KDQoFBAACAAMSBOwBICEKDAoEBAACARIE7QEIJAoNCgUEAAIBBhIE7QEIFgoNCgUEAAIBARIE7QEXHwoNCgUEAAIBAxIE7QEiIwoMCgQEAAICEgTuAQgtCg0KBQQAAgIGEgTuAQgaCg0KBQQAAgIBEgTuARsoCg0KBQQAAgIDEgTuASssCgwKBAQAAgMSBO8BCCsKDQoFBAACAwYSBO8BCBkKDQoFBAACAwESBO8BGiYKDQoFBAACAwMSBO8BKSoKDAoEBAACBBIE8AEIIgoNCgUEAAIEBhIE8AEIFQoNCgUEAAIEARIE8AEWHQoNCgUEAAIEAxIE8AEgIQoMCgQEAAIFEgTxAQgkCg0KBQQAAgUGEgTxAQgWCg0KBQQAAgUBEgTxARcfCg0KBQQAAgUDEgTxASIjCgwKBAQAAgYSBPIBCCUKDQoFBAACBgYSBPIBCBgKDQoFBAACBgESBPIBGSAKDQoFBAACBgMSBPIBIyQKDAoEBAACBxIE8wEIJgoNCgUEAAIHBhIE8wEIFgoNCgUEAAIHARIE8wEXIQoNCgUEAAIHAxIE8wEkJQoMCgQEAAIIEgT0AQgmCg0KBQQAAggGEgT0AQgWCg0KBQQAAggBEgT0ARchCg0KBQQAAggDEgT0ASQlCgwKBAQAAgkSBPUBCCYKDQoFBAACCQYSBPUBCBcKDQoFBAACCQESBPUBGCEKDQoFBAACCQMSBPUBIyUKDAoCBAESBvkBAI8CAQoLCgMEAQESBPkBCBcKDgoEBAEIABIG+gEEjgIFCg0KBQQBCAABEgT6AQoOCgwKBAQBAgASBPsBCCIKDQoFBAECAAYSBPsBCBUKDQoFBAECAAESBPsBFh0KDQoFBAECAAMSBPsBICEKDAoEBAECARIE/AEILwoNCgUEAQIBBhIE/AEIGwoNCgUEAQIBARIE/AEcKgoNCgUEAQIBAxIE/AEtLgoMCgQEAQICEgT9AQgtCg0KBQQBAgIGEgT9AQgaCg0KBQQBAgIBEgT9ARsoCg0KBQQBAgIDEgT9ASssCgwKBAQBAgMSBP4BCD0KDQoFBAECAwYSBP4BCCMKDQoFBAECAwESBP4BJDgKDQoFBAECAwMSBP4BOzwKDAoEBAECBBIE/wEIPgoNCgUEAQIEBhIE/wEIIgoNCgUEAQIEARIE/wEjOQoNCgUEAQIEAxIE/wE8PQoMCgQEAQIFEgSAAgg/Cg0KBQQBAgUGEgSAAggiCg0KBQQBAgUBEgSAAiM6Cg0KBQQBAgUDEgSAAj0+CgwKBAQBAgYSBIECCD0KDQoFBAECBgYSBIECCCYKDQoFBAECBgESBIECJzgKDQoFBAECBgMSBIECOzwKDAoEBAECBxIEggIIPQoNCgUEAQIHBhIEggIIIwoNCgUEAQIHARIEggIkOAoNCgUEAQIHAxIEggI7PAoMCgQEAQIIEgSDAgg8Cg0KBQQBAggGEgSDAggqCg0KBQQBAggBEgSDAis3Cg0KBQQBAggDEgSDAjo7CgwKBAQBAgkSBIQCCEQKDQoFBAECCQYSBIQCCCYKDQoFBAECCQESBIQCJz4KDQoFBAECCQMSBIQCQUMKDAoEBAECChIEhQIIQwoNCgUEAQIKBhIEhQIIJAoNCgUEAQIKARIEhQIlPQoNCgUEAQIKAxIEhQJAQgoMCgQEAQILEgSGAghJCg0KBQQBAgsGEgSGAggpCg0KBQQBAgsBEgSGAipDCg0KBQQBAgsDEgSGAkZICgwKBAQBAgwSBIcCCDwKDQoFBAECDAYSBIcCCCAKDQoFBAECDAESBIcCITYKDQoFBAECDAMSBIcCOTsKDAoEBAECDRIEiAIISwoNCgUEAQINBhIEiAIIKAoNCgUEAQINARIEiAIpRQoNCgUEAQINAxIEiAJISgoMCgQEAQIOEgSJAgg9Cg0KBQQBAg4GEgSJAgghCg0KBQQBAg4BEgSJAiI3Cg0KBQQBAg4DEgSJAjo8CgwKBAQBAg8SBIoCCFMKDQoFBAECDwYSBIoCCDAKDQoFBAECDwESBIoCMU0KDQoFBAECDwMSBIoCUFIKDAoEBAECEBIEiwIIUgoNCgUEAQIQBhIEiwIIKwoNCgUEAQIQARIEiwIsTAoNCgUEAQIQAxIEiwJPUQoMCgQEAQIREgSMAghECg0KBQQBAhEGEgSMAggqCg0KBQQBAhEBEgSMAis+Cg0KBQQBAhEDEgSMAkFDCgwKBAQBAhISBI0CCFAKDQoFBAECEgYSBI0CCC4KDQoFBAECEgESBI0CL0oKDQoFBAECEgMSBI0CTU8KDAoCBAISBpECAJMCAQoLCgMEAgESBJECCBUKGAoEBAICABIEkgIEGiIKIHVwLCBkb3duCgoPCgUEAgIABBIGkgIEkQIXCg0KBQQCAgAFEgSSAgQKCg0KBQQCAgABEgSSAgsVCg0KBQQCAgADEgSSAhgZCgwKAgQDEgaVAgCYAgEKCwoDBAMBEgSVAggWCgwKBAQDAgASBJYCBBgKDwoFBAMCAAQSBpYCBJUCGAoNCgUEAwIABRIElgIECwoNCgUEAwIAARIElgIMEwoNCgUEAwIAAxIElgIWFwoYCgQEAwIBEgSXAgQaIgogdXAsIGRvd24KCg8KBQQDAgEEEgaXAgSWAhgKDQoFBAMCAQUSBJcCBAoKDQoFBAMCAQESBJcCCxUKDQoFBAMCAQMSBJcCGBkKDAoCBAQSBpoCAJ0CAQoLCgMEBAESBJoCCBkKDAoEBAQCABIEmwIEGAoPCgUEBAIABBIGmwIEmgIbCg0KBQQEAgAFEgSbAgQLCg0KBQQEAgABEgSbAgwTCg0KBQQEAgADEgSbAhYXCgwKBAQEAgESBJwCBCMKDwoFBAQCAQQSBpwCBJsCGAoNCgUEBAIBBhIEnAIEEAoNCgUEBAIBARIEnAIRHgoNCgUEBAIBAxIEnAIhIgoMCgIEBRIGnwIAsQIBCgsKAwQFARIEnwIIFQoMCgQEBQIAEgSgAgQYCg8KBQQFAgAEEgagAgSfAhcKDQoFBAUCAAUSBKACBAsKDQoFBAUCAAESBKACDBMKDQoFBAUCAAMSBKACFhcKDAoEBAUCARIEoQIEFwoPCgUEBQIBBBIGoQIEoAIYCg0KBQQFAgEFEgShAgQLCg0KBQQFAgEBEgShAgwSCg0KBQQFAgEDEgShAhUWChgKBAQFAgISBKICBBoiCiB1cCwgZG93bgoKDwoFBAUCAgQSBqICBKECFwoNCgUEBQICBRIEogIECgoNCgUEBQICARIEogILFQoNCgUEBQICAxIEogIYGQoYCgQEBQIDEgSjAgQbIgogdXAsIGRvd24KCg8KBQQFAgMEEgajAgSiAhoKDQoFBAUCAwUSBKMCBAoKDQoFBAUCAwESBKMCCxYKDQoFBAUCAwMSBKMCGRoKDAoEBAUCBBIEpAIEIwoPCgUEBQIEBBIGpAIEowIbCg0KBQQFAgQGEgSkAgQQCg0KBQQFAgQBEgSkAhEeCg0KBQQFAgQDEgSkAiEiCioKBAQFBAASBqYCBK4CBRoaKiBhY3RpdmF0aW9uIGZhaWwgcmVhc29uLiAKDQoFBAUEAAESBKYCCR0KDgoGBAUEAAIAEgSoAggsCg8KBwQFBAACAAESBKgCCCcKDwoHBAUEAAIAAhIEqAIqKwogCgYEBQQAAgESBKkCCC8iEFJhbmdpbmcgRmFpbHVyZQoKDwoHBAUEAAIBARIEqQIIKgoPCgcEBQQAAgECEgSpAi0uCigKBgQFBAACAhIEqgIIPyIYUGFzc3dvcmQgYXV0aGVudGljYXRpb24KCg8KBwQFBAACAgESBKoCCDoKDwoHBAUEAAICAhIEqgI9PgoUCgYEBQQAAgMSBKsCCCsiBExPUwoKDwoHBAUEAAIDARIEqwIIJgoPCgcEBQQAAgMCEgSrAikqChsKBgQFBAACBBIErAIIKiILIE9OVSBBbGFybQoKDwoHBAUEAAIEARIErAIIJQoPCgcEBQQAAgQCEgSsAigpCicKBgQFBAACBRIErQIILCIXcHJvdGVjdGlvbiBzd2l0Y2ggb3ZlcgoKDwoHBAUEAAIFARIErQIIJwoPCgcEBQQAAgUCEgStAiorCgwKBAQFAgUSBK8CBCkKDwoFBAUCBQQSBq8CBK4CBQoNCgUEBQIFBhIErwIEGAoNCgUEBQIFARIErwIZJAoNCgUEBQIFAxIErwInKAoMCgIEBhIGswIAzwIBCgsKAwQGARIEswIIGgoYCgQEBgIAEgS0AgQUIgogbm5pLCBwb24KCg8KBQQGAgAEEga0AgSzAhwKDQoFBAYCAAUSBLQCBAoKDQoFBAYCAAESBLQCCw8KDQoFBAYCAAMSBLQCEhMKDAoEBAYCARIEtQIEGAoPCgUEBgIBBBIGtQIEtAIUCg0KBQQGAgEFEgS1AgQLCg0KBQQGAgEBEgS1AgwTCg0KBQQGAgEDEgS1AhYXChgKBAQGAgISBLYCBBoiCiB1cCwgZG93bgoKDwoFBAYCAgQSBrYCBLUCGAoNCgUEBgICBRIEtgIECgoNCgUEBgICARIEtgILFQoNCgUEBgICAxIEtgIYGQogCgQEBgIDEgS3AgQWIhIgbWVhc3VyZWQgaW4gTWJwcwoKDwoFBAYCAwQSBrcCBLYCGgoNCgUEBgIDBRIEtwIECwoNCgUEBgIDARIEtwIMEQoNCgUEBgIDAxIEtwIUFQoMCgQEBgIEEgS4AgQaCg8KBQQGAgQEEga4AgS3AhYKDQoFBAYCBAUSBLgCBAoKDQoFBAYCBAESBLgCCxUKDQoFBAYCBAMSBLgCGBkKDgoEBAYDABIGugIEzAIFCg0KBQQGAwABEgS6AgwdChAKBgQGAwADABIGvAIIyQIJCg8KBwQGAwADAAESBLwCEBQKEgoIBAYDAAMABAASBr4CDMMCDQoRCgkEBgMAAwAEAAESBL4CERkKEgoKBAYDAAMABAACABIEvwIQGwoTCgsEBgMAAwAEAAIAARIEvwIQFgoTCgsEBgMAAwAEAAIAAhIEvwIZGgoSCgoEBgMAAwAEAAIBEgTAAhAdChMKCwQGAwADAAQAAgEBEgTAAhAYChMKCwQGAwADAAQAAgECEgTAAhscChIKCgQGAwADAAQAAgISBMECEB8KEwoLBAYDAAMABAACAgESBMECEBoKEwoLBAYDAAMABAACAgISBMECHR4KEgoKBAYDAAMABAACAxIEwgIQHAoTCgsEBgMAAwAEAAIDARIEwgIQFwoTCgsEBgMAAwAEAAIDAhIEwgIaGwoQCggEBgMAAwACABIExgIMHgoTCgkEBgMAAwACAAQSBsYCDMMCDQoRCgkEBgMAAwACAAYSBMYCDBQKEQoJBAYDAAMAAgABEgTGAhUZChEKCQQGAwADAAIAAxIExgIcHQo/CggEBgMAAwACARIExwIMHiItIGxvd2VyIGJvdW5kIG9uIElEcyBhbGxvY2F0ZWQgZnJvbSB0aGlzIHBvb2wKChMKCQQGAwADAAIBBBIGxwIMxgIeChEKCQQGAwADAAIBBRIExwIMEwoRCgkEBgMAAwACAQESBMcCFBkKEQoJBAYDAAMAAgEDEgTHAhwdCj8KCAQGAwADAAICEgTIAgwcIi0gdXBwZXIgYm91bmQgb24gSURzIGFsbG9jYXRlZCBmcm9tIHRoaXMgcG9vbAoKEwoJBAYDAAMAAgIEEgbIAgzHAh4KEQoJBAYDAAMAAgIFEgTIAgwTChEKCQQGAwADAAICARIEyAIUFwoRCgkEBgMAAwACAgMSBMgCGhsKDgoGBAYDAAIAEgTLAgggCg8KBwQGAwACAAQSBMsCCBAKDwoHBAYDAAIABhIEywIRFQoPCgcEBgMAAgABEgTLAhYbCg8KBwQGAwACAAMSBMsCHh8KDAoEBAYCBRIEzgIEIQoPCgUEBgIFBBIGzgIEzAIFCg0KBQQGAgUGEgTOAgQVCg0KBQQGAgUBEgTOAhYcCg0KBQQGAgUDEgTOAh8gCgwKAgQHEgbRAgDVAgEKCwoDBAcBEgTRAggWCgwKBAQHAgASBNICBBgKDwoFBAcCAAQSBtICBNECGAoNCgUEBwIABRIE0gIECwoNCgUEBwIAARIE0gIMEwoNCgUEBwIAAxIE0gIWFwoMCgQEBwIBEgTTAgQXCg8KBQQHAgEEEgbTAgTSAhgKDQoFBAcCAQUSBNMCBAsKDQoFBAcCAQESBNMCDBIKDQoFBAcCAQMSBNMCFRYKDAoEBAcCAhIE1AIEEgoPCgUEBwICBBIG1AIE0wIXCg0KBQQHAgIFEgTUAgQJCg0KBQQHAgIBEgTUAgoNCg0KBQQHAgIDEgTUAhARCgwKAgQIEgbXAgDhAgEKCwoDBAgBEgTXAggYCiEKBAQIAgASBNgCBBkiEyBubmksIHBvbiwgdW5rbm93bgoKDwoFBAgCAAQSBtgCBNcCGgoNCgUECAIABRIE2AIECgoNCgUECAIAARIE2AILFAoNCgUECAIAAxIE2AIXGAoMCgQECAIBEgTZAgQYCg8KBQQIAgEEEgbZAgTYAhkKDQoFBAgCAQUSBNkCBAsKDQoFBAgCAQESBNkCDBMKDQoFBAgCAQMSBNkCFhcKDAoEBAgCAhIE2gIEFwoPCgUECAICBBIG2gIE2QIYCg0KBQQIAgIFEgTaAgQLCg0KBQQIAgIBEgTaAgwSCg0KBQQIAgIDEgTaAhUWCgwKBAQIAgMSBNsCBBcKDwoFBAgCAwQSBtsCBNoCFwoNCgUECAIDBRIE2wIECwoNCgUECAIDARIE2wIMEgoNCgUECAIDAxIE2wIVFgoMCgQECAIEEgTcAgQbCg8KBQQIAgQEEgbcAgTbAhcKDQoFBAgCBAUSBNwCBAsKDQoFBAgCBAESBNwCDBYKDQoFBAgCBAMSBNwCGRoKDAoEBAgCBRIE3QIEGAoPCgUECAIFBBIG3QIE3AIbCg0KBQQIAgUFEgTdAgQLCg0KBQQIAgUBEgTdAgwTCg0KBQQIAgUDEgTdAhYXCgwKBAQIAgYSBN4CBBgKDwoFBAgCBgQSBt4CBN0CGAoNCgUECAIGBRIE3gIECwoNCgUECAIGARIE3gIMEwoNCgUECAIGAxIE3gIWFwoMCgQECAIHEgTfAgQXCg8KBQQIAgcEEgbfAgTeAhgKDQoFBAgCBwUSBN8CBAsKDQoFBAgCBwESBN8CDBIKDQoFBAgCBwMSBN8CFRYKDAoEBAgCCBIE4AIEEgoPCgUECAIIBBIG4AIE3wIXCg0KBQQIAggFEgTgAgQJCg0KBQQIAggBEgTgAgoNCg0KBQQIAggDEgTgAhARCgwKAgQJEgbjAgDlAgEKCwoDBAkBEgTjAggRCgwKBAQJAgASBOQCBBgKDwoFBAkCAAQSBuQCBOMCEwoNCgUECQIABRIE5AIECwoNCgUECQIAARIE5AIMEwoNCgUECQIAAxIE5AIWFwoMCgIEChIG5wIA6QIBCgsKAwQKARIE5wIIEQoMCgQECgIAEgToAgQkCg8KBQQKAgAEEgboAgTnAhMKDQoFBAoCAAUSBOgCBAsKDQoFBAoCAAESBOgCDB8KDQoFBAoCAAMSBOgCIiMKDAoCBAsSBusCAPECAQoLCgMECwESBOsCCAsKDAoEBAsCABIE7AIEGAoPCgUECwIABBIG7AIE6wINCg0KBQQLAgAFEgTsAgQLCg0KBQQLAgABEgTsAgwTCg0KBQQLAgADEgTsAhYXCgwKBAQLAgESBO0CBBcKDwoFBAsCAQQSBu0CBOwCGAoNCgUECwIBBRIE7QIECwoNCgUECwIBARIE7QIMEgoNCgUECwIBAxIE7QIVFgoMCgQECwICEgTuAgQjCg8KBQQLAgIEEgbuAgTtAhcKDQoFBAsCAgYSBO4CBBAKDQoFBAsCAgESBO4CER4KDQoFBAsCAgMSBO4CISIKNQoEBAsCAxIE7wIEFCInIHBlYWsgaW5mb3JtYXRpb24gcmF0ZSBhc3NpZ25lZCB0byBvbnUKCg8KBQQLAgMEEgbvAgTuAiMKDQoFBAsCAwUSBO8CBAsKDQoFBAsCAwESBO8CDA8KDQoFBAsCAwMSBO8CEhMKDAoEBAsCBBIE8AIEHQoPCgUECwIEBBIG8AIE7wIUCg0KBQQLAgQFEgTwAgQICg0KBQQLAgQBEgTwAgkYCg0KBQQLAgQDEgTwAhscCgwKAgQMEgbzAgD4AgEKCwoDBAwBEgTzAggaCgwKBAQMAgASBPQCBBgKDwoFBAwCAAQSBvQCBPMCHAoNCgUEDAIABRIE9AIECwoNCgUEDAIAARIE9AIMEwoNCgUEDAIAAxIE9AIWFwoMCgQEDAIBEgT1AgQXCg8KBQQMAgEEEgb1AgT0AhgKDQoFBAwCAQUSBPUCBAsKDQoFBAwCAQESBPUCDBIKDQoFBAwCAQMSBPUCFRYKIwoEBAwCAhIE9gIEKiIVMGttIGxvZ2ljYWwgZGlzdGFuY2UKCg8KBQQMAgIEEgb2AgT1AhcKDQoFBAwCAgUSBPYCBAsKDQoFBAwCAgESBPYCDCUKDQoFBAwCAgMSBPYCKCkKDAoEBAwCAxIE9wIEJQoPCgUEDAIDBBIG9wIE9gIqCg0KBQQMAgMFEgT3AgQLCg0KBQQMAgMBEgT3AgwgCg0KBQQMAgMDEgT3AiMkCgwKAgQNEgb6AgD+AgEKCwoDBA0BEgT6AggPCgwKBAQNAgASBPsCBBgKDwoFBA0CAAQSBvsCBPoCEQoNCgUEDQIABRIE+wIECwoNCgUEDQIAARIE+wIMEwoNCgUEDQIAAxIE+wIWFwoMCgQEDQIBEgT8AgQXCg8KBQQNAgEEEgb8AgT7AhgKDQoFBA0CAQUSBPwCBAsKDQoFBA0CAQESBPwCDBIKDQoFBA0CAQMSBPwCFRYKDAoEBA0CAhIE/QIEEgoPCgUEDQICBBIG/QIE/AIXCg0KBQQNAgIFEgT9AgQJCg0KBQQNAgIBEgT9AgoNCg0KBQQNAgIDEgT9AhARCgwKAgQOEgaAAwCGAwEKCwoDBA4BEgSAAwgRCgwKBAQOAgASBIEDBBgKDwoFBA4CAAQSBoEDBIADEwoNCgUEDgIABRIEgQMECwoNCgUEDgIAARIEgQMMEwoNCgUEDgIAAxIEgQMWFwoMCgQEDgIBEgSCAwQXCg8KBQQOAgEEEgaCAwSBAxgKDQoFBA4CAQUSBIIDBAsKDQoFBA4CAQESBIIDDBIKDQoFBA4CAQMSBIIDFRYKDAoEBA4CAhIEgwMEGAoPCgUEDgICBBIGgwMEggMXCg0KBQQOAgIFEgSDAwQLCg0KBQQOAgIBEgSDAwwTCg0KBQQOAgIDEgSDAxYXCgwKBAQOAgMSBIQDBBsKDwoFBA4CAwQSBoQDBIMDGAoNCgUEDgIDBRIEhAMECwoNCgUEDgIDARIEhAMMFgoNCgUEDgIDAxIEhAMZGgoMCgQEDgIEEgSFAwQSCg8KBQQOAgQEEgaFAwSEAxsKDQoFBA4CBAUSBIUDBAkKDQoFBA4CBAESBIUDCg0KDQoFBA4CBAMSBIUDEBEKDAoCBA8SBogDAIsDAQoLCgMEDwESBIgDCBQKDAoEBA8CABIEiQMEGAoPCgUEDwIABBIGiQMEiAMWCg0KBQQPAgAFEgSJAwQLCg0KBQQPAgABEgSJAwwTCg0KBQQPAgADEgSJAxYXCgwKBAQPAgESBIoDBBIKDwoFBA8CAQQSBooDBIkDGAoNCgUEDwIBBRIEigMECQoNCgUEDwIBARIEigMKDQoNCgUEDwIBAxIEigMQEQoMCgIEEBIGjQMAxgMBCgsKAwQQARIEjQMIEgoMCgQEEAIAEgSOAwQWCg8KBQQQAgAEEgaOAwSNAxQKDQoFBBACAAUSBI4DBAoKDQoFBBACAAESBI4DCxEKDQoFBBACAAMSBI4DFBUKDAoEBBACARIEjwMEFQoPCgUEEAIBBBIGjwMEjgMWCg0KBQQQAgEFEgSPAwQKCg0KBQQQAgEBEgSPAwsQCg0KBQQQAgEDEgSPAxMUCgwKBAQQAgISBJADBCAKDwoFBBACAgQSBpADBI8DFQoNCgUEEAICBRIEkAMECgoNCgUEEAICARIEkAMLGwoNCgUEEAICAxIEkAMeHwoMCgQEEAIDEgSRAwQgCg8KBQQQAgMEEgaRAwSQAyAKDQoFBBACAwUSBJEDBAoKDQoFBBACAwESBJEDCxsKDQoFBBACAwMSBJEDHh8KDAoEBBACBBIEkgMEGgoPCgUEEAIEBBIGkgMEkQMgCg0KBQQQAgQFEgSSAwQKCg0KBQQQAgQBEgSSAwsUCg0KBQQQAgQDEgSSAxcZCgwKBAQQAgUSBJMDBCUKDwoFBBACBQQSBpMDBJIDGgoNCgUEEAIFBRIEkwMECgoNCgUEEAIFARIEkwMLHwoNCgUEEAIFAxIEkwMiJAo3CgQEEAIGEgSUAwQjIikgdXNlZCB0byBpbmRpY2F0ZSBhZ2VudCByZWNvbmNpbGUgc3RhdHVzCgoPCgUEEAIGBBIGlAMEkwMlCg0KBQQQAgYFEgSUAwQICg0KBQQQAgYBEgSUAwkdCg0KBQQQAgYDEgSUAyAiCjwKBAQQAgcSBJcDBBsaLiBUb3RhbCBudW1iZXIgb2YgcG9uIGludGYgcG9ydHMgb24gdGhlIGRldmljZQoKDwoFBBACBwQSBpcDBJQDIwoNCgUEEAIHBRIElwMECwoNCgUEEAIHARIElwMMFQoNCgUEEAIHAxIElwMYGgr2AgoDBBAJEgSZAwQdIugCIE5vdCB1c2VkIGFueW1vcmUsIHRoaXMgaW5mb3JtYXRpb24gaXMgZGVmaW5lZCBwZXItcmFuZ2Ugb25seQogYW5kIGlzIGZ1bGx5IHByb3ZpZGVkIGJ5IERldmljZVJlc291cmNlUmFuZ2VzCgogc3RyaW5nIHRlY2hub2xvZ3kgPSA1OwogZml4ZWQzMiBvbnVfaWRfc3RhcnQgPSA2OwogZml4ZWQzMiBvbnVfaWRfZW5kID0gNzsKIGZpeGVkMzIgYWxsb2NfaWRfc3RhcnQgPSA4OwogZml4ZWQzMiBhbGxvY19pZF9lbmQgPSA5OwogZml4ZWQzMiBnZW1wb3J0X2lkX3N0YXJ0ID0gMTA7CiBmaXhlZDMyIGdlbXBvcnRfaWRfZW5kID0gMTE7CiBmaXhlZDMyIGZsb3dfaWRfc3RhcnQgPSAxMzsKIGZpeGVkMzIgZmxvd19pZF9lbmQgPSAxNDsKCgwKBAQQCQASBJkDDRQKDQoFBBAJAAESBJkDDQ4KDQoFBBAJAAISBJkDEhQKDAoEBBAJARIEmQMWGAoNCgUEEAkBARIEmQMWGAoNCgUEEAkBAhIEmQMWGAoMCgQEEAkCEgSZAxocCg0KBQQQCQIBEgSZAxocCg0KBQQQCQICEgSZAxocCg4KBAQQAwASBqcDBMQDBQoNCgUEEAMAARIEpwMMIAqHAQoGBBADAAIAEgSrAwgmGncgTGlzdCBvZiAwIG9yIG1vcmUgaW50Zl9pZHMgdGhhdCB1c2UgdGhlIHNhbWUgdGVjaG5vbG9neSBhbmQgcG9vbHMuCiBJZiAwIGludGZfaWRzIHN1cHBsaWVkLCBpdCBpbXBsaWVzIEFMTCBpbnRlcmZhY2VzCgoPCgcEEAMAAgAEEgSrAwgQCg8KBwQQAwACAAUSBKsDERgKDwoHBBADAAIAARIEqwMZIQoPCgcEEAMAAgADEgSrAyQlCjIKBgQQAwACARIErgMIHhoiIFRlY2hub2xvZ3kgcHJvZmlsZSBmb3IgdGhpcyBwb29sCgoRCgcEEAMAAgEEEgauAwirAyYKDwoHBBADAAIBBRIErgMIDgoPCgcEEAMAAgEBEgSuAw8ZCg8KBwQQAwACAQMSBK4DHB0KEAoGBBADAAMAEgawAwjCAwkKDwoHBBADAAMAARIEsAMQFAoSCggEEAMAAwAEABIGsQMMtgMNChEKCQQQAwADAAQAARIEsQMRGQoSCgoEEAMAAwAEAAIAEgSyAxAbChMKCwQQAwADAAQAAgABEgSyAxAWChMKCwQQAwADAAQAAgACEgSyAxkaChIKCgQQAwADAAQAAgESBLMDEB0KEwoLBBADAAMABAACAQESBLMDEBgKEwoLBBADAAMABAACAQISBLMDGxwKEgoKBBADAAMABAACAhIEtAMQHwoTCgsEEAMAAwAEAAICARIEtAMQGgoTCgsEEAMAAwAEAAICAhIEtAMdHgoSCgoEEAMAAwAEAAIDEgS1AxAcChMKCwQQAwADAAQAAgMBEgS1AxAXChMKCwQQAwADAAQAAgMCEgS1AxobChIKCAQQAwADAAQBEga4Awy8Aw0KEQoJBBADAAMABAEBEgS4AxEcChIKCgQQAwADAAQBAgASBLkDECcKEwoLBBADAAMABAECAAESBLkDECIKEwoLBBADAAMABAECAAISBLkDJSYKVAoKBBADAAMABAECARIEugMQMCJAIFNoYXJlZCBhY3Jvc3MgYWxsIGludGVyZmFjZXMgaW4gYWxsIHRlY2hub2xvZ2llcyBpbiBhbGwgcmFuZ2VzCgoTCgsEEAMAAwAEAQIBARIEugMQKwoTCgsEEAMAAwAEAQIBAhIEugMuLwpcCgoEEAMAAwAEAQICEgS7AxAxIkggU2hhcmVkIGFjcm9zcyBhbGwgaW50ZXJmYWNlcyBvZiB0aGUgc2FtZSB0ZWNobm9sb2d5IHVzZWQgaW4gdGhpcyByYW5nZQoKEwoLBBADAAMABAECAgESBLsDECwKEwoLBBADAAMABAECAgISBLsDLzAKEAoIBBADAAMAAgASBL4DDB4KEwoJBBADAAMAAgAEEga+Awy8Aw0KEQoJBBADAAMAAgAGEgS+AwwUChEKCQQQAwADAAIAARIEvgMVGQoRCgkEEAMAAwACAAMSBL4DHB0KEAoIBBADAAMAAgESBL8DDCQKEwoJBBADAAMAAgEEEga/Awy+Ax4KEQoJBBADAAMAAgEGEgS/AwwXChEKCQQQAwADAAIBARIEvwMYHwoRCgkEEAMAAwACAQMSBL8DIiMKPwoIBBADAAMAAgISBMADDB4iLSBsb3dlciBib3VuZCBvbiBJRHMgYWxsb2NhdGVkIGZyb20gdGhpcyBwb29sCgoTCgkEEAMAAwACAgQSBsADDL8DJAoRCgkEEAMAAwACAgUSBMADDBMKEQoJBBADAAMAAgIBEgTAAxQZChEKCQQQAwADAAICAxIEwAMcHQo/CggEEAMAAwACAxIEwQMMHCItIHVwcGVyIGJvdW5kIG9uIElEcyBhbGxvY2F0ZWQgZnJvbSB0aGlzIHBvb2wKChMKCQQQAwADAAIDBBIGwQMMwAMeChEKCQQQAwADAAIDBRIEwQMMEwoRCgkEEAMAAwACAwESBMEDFBcKEQoJBBADAAMAAgMDEgTBAxobCg4KBgQQAwACAhIEwwMIIAoPCgcEEAMAAgIEEgTDAwgQCg8KBwQQAwACAgYSBMMDERUKDwoHBBADAAICARIEwwMWGwoPCgcEEAMAAgIDEgTDAx4fCgwKBAQQAggSBMUDBC4KDQoFBBACCAQSBMUDBAwKDQoFBBACCAYSBMUDDSEKDQoFBBACCAESBMUDIigKDQoFBBACCAMSBMUDKy0KDAoCBBESBsgDANgDAQoLCgMEEQESBMgDCBIKDAoEBBECABIEyQMEFwoPCgUEEQIABBIGyQMEyAMUCg0KBQQRAgAFEgTJAwQLCg0KBQQRAgABEgTJAwwSCg0KBQQRAgADEgTJAxUWCgwKBAQRAgESBMoDBBYKDwoFBBECAQQSBsoDBMkDFwoNCgUEEQIBBRIEygMECwoNCgUEEQIBARIEygMMEQoNCgUEEQIBAxIEygMUFQoMCgQEEQICEgTLAwQXCg8KBQQRAgIEEgbLAwTKAxYKDQoFBBECAgUSBMsDBAsKDQoFBBECAgESBMsDDBIKDQoFBBECAgMSBMsDFRYKDAoEBBECAxIEzAMEFgoPCgUEEQIDBBIGzAMEywMXCg0KBQQRAgMFEgTMAwQLCg0KBQQRAgMBEgTMAwwRCg0KBQQRAgMDEgTMAxQVCgwKBAQRAgQSBM0DBBgKDwoFBBECBAQSBs0DBMwDFgoNCgUEEQIEBRIEzQMECwoNCgUEEQIEARIEzQMMEwoNCgUEEQIEAxIEzQMWFwoMCgQEEQIFEgTOAwQYCg8KBQQRAgUEEgbOAwTNAxgKDQoFBBECBQUSBM4DBAsKDQoFBBECBQESBM4DDBMKDQoFBBECBQMSBM4DFhcKDAoEBBECBhIEzwMEGQoPCgUEEQIGBBIGzwMEzgMYCg0KBQQRAgYFEgTPAwQLCg0KBQQRAgYBEgTPAwwUCg0KBQQRAgYDEgTPAxcYCgwKBAQRAgcSBNADBBYKDwoFBBECBwQSBtADBM8DGQoNCgUEEQIHBRIE0AMECQoNCgUEEQIHARIE0AMKEQoNCgUEEQIHAxIE0AMUFQoMCgQEEQIIEgTRAwQWCg8KBQQRAggEEgbRAwTQAxYKDQoFBBECCAUSBNEDBAkKDQoFBBECCAESBNEDChEKDQoFBBECCAMSBNEDFBUKDAoEBBECCRIE0gMEGgoPCgUEEQIJBBIG0gME0QMWCg0KBQQRAgkFEgTSAwQLCg0KBQQRAgkBEgTSAwwUCg0KBQQRAgkDEgTSAxcZCgwKBAQRAgoSBNMDBBgKDwoFBBECCgQSBtMDBNIDGgoNCgUEEQIKBRIE0wMECwoNCgUEEQIKARIE0wMMEgoNCgUEEQIKAxIE0wMVFwoMCgQEEQILEgTUAwQYCg8KBQQRAgsEEgbUAwTTAxgKDQoFBBECCwUSBNQDBAsKDQoFBBECCwESBNQDDBIKDQoFBBECCwMSBNQDFRcKDAoEBBECDBIE1QMEGgoPCgUEEQIMBBIG1QME1AMYCg0KBQQRAgwFEgTVAwQLCg0KBQQRAgwBEgTVAwwUCg0KBQQRAgwDEgTVAxcZCgwKBAQRAg0SBNYDBBoKDwoFBBECDQQSBtYDBNUDGgoNCgUEEQINBRIE1gMECwoNCgUEEQINARIE1gMMFAoNCgUEEQINAxIE1gMXGQowCgQEEQIOEgTXAwQdIiIgdW50YWdnZWQsIHNpbmdsZV90YWcsIGRvdWJsZV90YWcKCg8KBQQRAg4EEgbXAwTWAxoKDQoFBBECDgUSBNcDBAoKDQoFBBECDgESBNcDCxcKDQoFBBECDgMSBNcDGhwKDAoCBBISBtoDAOQDAQoLCgMEEgESBNoDCBEKDAoEBBICABIE2wMEGwoPCgUEEgIABBIG2wME2gMTCg0KBQQSAgAFEgTbAwQICg0KBQQSAgABEgTbAwkWCg0KBQQSAgADEgTbAxkaCgwKBAQSAgESBNwDBB4KDwoFBBICAQQSBtwDBNsDGwoNCgUEEgIBBRIE3AMECAoNCgUEEgIBARIE3AMJGQoNCgUEEgIBAxIE3AMcHQoMCgQEEgICEgTdAwQaCg8KBQQSAgIEEgbdAwTcAx4KDQoFBBICAgUSBN0DBAgKDQoFBBICAgESBN0DCRUKDQoFBBICAgMSBN0DGBkKDAoEBBICAxIE3gMEIAoPCgUEEgIDBBIG3gME3QMaCg0KBQQSAgMFEgTeAwQICg0KBQQSAgMBEgTeAwkbCg0KBQQSAgMDEgTeAx4fCgwKBAQSAgQSBN8DBCAKDwoFBBICBAQSBt8DBN4DIAoNCgUEEgIEBRIE3wMECAoNCgUEEgIEARIE3wMJGwoNCgUEEgIEAxIE3wMeHwoMCgQEEgIFEgTgAwQbCg8KBQQSAgUEEgbgAwTfAyAKDQoFBBICBQUSBOADBAgKDQoFBBICBQESBOADCRYKDQoFBBICBQMSBOADGRoKDAoEBBICBhIE4QMEHgoPCgUEEgIGBBIG4QME4AMbCg0KBQQSAgYFEgThAwQICg0KBQQSAgYBEgThAwkZCg0KBQQSAgYDEgThAxwdCgwKBAQSAgcSBOIDBCEKDwoFBBICBwQSBuIDBOEDHgoNCgUEEgIHBRIE4gMECAoNCgUEEgIHARIE4gMJHAoNCgUEEgIHAxIE4gMfIAoMCgQEEgIIEgTjAwQhCg8KBQQSAggEEgbjAwTiAyEKDQoFBBICCAUSBOMDBAgKDQoFBBICCAESBOMDCRwKDQoFBBICCAMSBOMDHyAKDAoCBBMSBuYDAO4DAQoLCgMEEwESBOYDCA4KDAoEBBMCABIE5wMEFgoPCgUEEwIABBIG5wME5gMQCg0KBQQTAgAGEgTnAwQNCg0KBQQTAgABEgTnAw4RCg0KBQQTAgADEgTnAxQVCgwKBAQTAgESBOgDBBYKDwoFBBMCAQQSBugDBOcDFgoNCgUEEwIBBRIE6AMECwoNCgUEEwIBARIE6AMMEQoNCgUEEwIBAxIE6AMUFQoMCgQEEwICEgTpAwQYCg8KBQQTAgIEEgbpAwToAxYKDQoFBBMCAgUSBOkDBAsKDQoFBBMCAgESBOkDDBMKDQoFBBMCAgMSBOkDFhcKDAoEBBMCAxIE6gMEFwoPCgUEEwIDBBIG6gME6QMYCg0KBQQTAgMFEgTqAwQLCg0KBQQTAgMBEgTqAwwSCg0KBQQTAgMDEgTqAxUWCgwKBAQTAgQSBOsDBBYKDwoFBBMCBAQSBusDBOoDFwoNCgUEEwIEBRIE6wMECwoNCgUEEwIEARIE6wMMEQoNCgUEEwIEAxIE6wMUFQoMCgQEEwIFEgTsAwQYCg8KBQQTAgUEEgbsAwTrAxYKDQoFBBMCBQUSBOwDBAsKDQoFBBMCBQESBOwDDBMKDQoFBBMCBQMSBOwDFhcKDAoEBBMCBhIE7QMEFwoPCgUEEwIGBBIG7QME7AMYCg0KBQQTAgYFEgTtAwQLCg0KBQQTAgYBEgTtAwwSCg0KBQQTAgYDEgTtAxUWCgwKAgQUEgbwAwCJBAEKCwoDBBQBEgTwAwgMCgwKBAQUAgASBPEDBCAKDwoFBBQCAAQSBvEDBPADDgoNCgUEFAIABRIE8QMEDAoNCgUEFAIAARIE8QMNGwoNCgUEFAIAAxIE8QMeHwoMCgQEFAIBEgTyAwQYCg8KBQQUAgEEEgbyAwTxAyAKDQoFBBQCAQUSBPIDBAwKDQoFBBQCAQESBPIDDRMKDQoFBBQCAQMSBPIDFhcKDAoEBBQCAhIE8wMEGQoPCgUEFAICBBIG8wME8gMYCg0KBQQUAgIFEgTzAwQMCg0KBQQUAgIBEgTzAw0TCg0KBQQUAgIDEgTzAxYYCjgKBAQUAgMSBPUDBBgiKiB2b2x0aGEgZmxvdy1pZC4gMCBpcyBub3QgYSB2YWxpZCBmbG93X2lkCgoPCgUEFAIDBBIG9QME8wMZCg0KBQQUAgMFEgT1AwQLCg0KBQQUAgMBEgT1AwwTCg0KBQQUAgMDEgT1AxYXCm0KBAQUAgQSBPYDBCMiXyBzeW1tZXRyaWMgdm9sdGhhIGZsb3ctaWQsIGlmIGFwcGxpY2FibGUuIEFsbCBkYXRhIHBhdGggZmxvd3MgZ2VuZXJhbGx5IGhhdmUgYSBzeW1tZXRyaWMgZmxvdywKCg8KBQQUAgQEEgb2AwT1AxgKDQoFBBQCBAUSBPYDBAsKDQoFBBQCBAESBPYDDB0KDQoFBBQCBAMSBPYDICIKvQEKBAQUAgUSBPoDBBkiLCB1cHN0cmVhbSwgZG93bnN0cmVhbSwgYnJvYWRjYXN0LCBtdWx0aWNhc3QKMoABIGJ1dCB0cmFwLXRvLWNvbnRyb2xsZXIgZmxvd3MgZG8gbm90IGhhdmUgYSBzeW1tZXRyaWMgZmxvdwogQnJvYWRjb20gQkFMIHJlcXVpcmVzIHRoYXQgc3ltbWV0cmljIGZsb3dzIHVzZSB0aGUgc2FtZSBCQUwgZmxvdy1pZAoKDwoFBBQCBQQSBvoDBPYDIwoNCgUEFAIFBRIE+gMECgoNCgUEFAIFARIE+gMLFAoNCgUEFAIFAxIE+gMXGAoMCgQEFAIGEgT7AwQbCg8KBQQUAgYEEgb7AwT6AxkKDQoFBBQCBgUSBPsDBAwKDQoFBBQCBgESBPsDDRUKDQoFBBQCBgMSBPsDGBoKDAoEBBQCBxIE/AMEIQoPCgUEFAIHBBIG/AME+wMbCg0KBQQUAgcFEgT8AwQMCg0KBQQUAgcBEgT8Aw0cCg0KBQQUAgcDEgT8Ax8gCkwKBAQUAggSBP0DBBwiPiBXaGVuICdyZXBsaWNhdGVfZmxvdycgZmllbGQgaXMgdHJ1ZSwgdGhpcyBmaWVsZCBpcyBvYnNvbGV0ZS4KCg8KBQQUAggEEgb9AwT8AyEKDQoFBBQCCAUSBP0DBAwKDQoFBBQCCAESBP0DDRcKDQoFBBQCCAMSBP0DGhsKDAoEBBQCCRIE/gMEHgoPCgUEFAIJBBIG/gME/QMcCg0KBQQUAgkGEgT+AwQOCg0KBQQUAgkBEgT+Aw8ZCg0KBQQUAgkDEgT+AxwdCgwKBAQUAgoSBP8DBBYKDwoFBBQCCgQSBv8DBP4DHgoNCgUEFAIKBhIE/wMECgoNCgUEFAIKARIE/wMLEQoNCgUEFAIKAxIE/wMUFQoMCgQEFAILEgSABAQaCg8KBQQUAgsEEgaABAT/AxYKDQoFBBQCCwUSBIAEBAwKDQoFBBQCCwESBIAEDRUKDQoFBBQCCwMSBIAEGBkKZAoEBBQCDBIEgQQEGCJWIG11c3QgYmUgcHJvdmlkZWQgZm9yIGFueSBmbG93IHdpdGggdHJhcF90b19ob3N0IGFjdGlvbi4gUmV0dXJuZWQgaW4gUGFja2V0SW5kaWNhdGlvbgoKDwoFBBQCDAQSBoEEBIAEGgoNCgUEFAIMBRIEgQQECwoNCgUEFAIMARIEgQQMEgoNCgUEFAIMAxIEgQQVFwpkCgQEFAINEgSCBAQZIlYgbXVzdCBiZSBwcm92aWRlZCBmb3IgYW55IGZsb3cgd2l0aCB0cmFwX3RvX2hvc3QgYWN0aW9uLiBSZXR1cm5lZCBpbiBQYWNrZXRJbmRpY2F0aW9uCgoPCgUEFAINBBIGggQEgQQYCg0KBQQUAg0FEgSCBAQLCg0KBQQUAg0BEgSCBAwTCg0KBQQUAg0DEgSCBBYYCgwKBAQUAg4SBIMEBBoKDwoFBBQCDgQSBoMEBIIEGQoNCgUEFAIOBRIEgwQECwoNCgUEFAIOARIEgwQMFAoNCgUEFAIOAxIEgwQXGQoMCgQEFAIPEgSEBAQhCg8KBQQUAg8EEgaEBASDBBoKDQoFBBQCDwUSBIQEBAsKDQoFBBQCDwESBIQEDBsKDQoFBBQCDwMSBIQEHiAKeQoEBBQCEBIEhgQEHSJrIFdoZW4gdGhpcyBmaWVsZCBpcyB0cnVlLCB1c2UgcGJpdFRvR2VtUG9ydElEIHRvIGtub3cgd2hpY2ggcC1iaXQgbmVlZHMgdG8gYmUgY2xhc3NmaWVkIHRvIHdoaWNoIGdlbSBwb3J0LgoKDwoFBBQCEAQSBoYEBIQEIQoNCgUEFAIQBRIEhgQECAoNCgUEFAIQARIEhgQJFwoNCgUEFAIQAxIEhgQaHAorCgQEFAIREgSHBAQvIh0gTWFwIG9mIHAtYml0IHRvIGdlbSBwb3J0IElECgoPCgUEFAIRBBIGhwQEhgQdCg0KBQQUAhEGEgSHBAQZCg0KBQQUAhEBEgSHBBopCg0KBQQUAhEDEgSHBCwuCjQKBAQUAhISBIgEBCsiJiBNYXAgb2YgZ2VtIHBvcnQgSUQgdG8gYWVzIGVuY3J5cHRpb24KCg8KBQQUAhIEEgaIBASHBC8KDQoFBBQCEgYSBIgEBBYKDQoFBBQCEgESBIgEFyUKDQoFBBQCEgMSBIgEKCoKDAoCBBUSBosEAI4EAQoLCgMEFQESBIsECBQKDAoEBBUCABIEjAQEGAoPCgUEFQIABBIGjAQEiwQWCg0KBQQVAgAFEgSMBAQJCg0KBQQVAgABEgSMBAoTCg0KBQQVAgADEgSMBBYXCgwKBAQVAgESBI0EBB4KDwoFBBUCAQQSBo0EBIwEGAoNCgUEFQIBBRIEjQQECQoNCgUEFQIBARIEjQQKGQoNCgUEFQIBAxIEjQQcHQoMCgIEFhIGkAQAuQQBCgsKAwQWARIEkAQIFgoMCgQEFgIAEgSRBAQYCg8KBQQWAgAEEgaRBASQBBgKDQoFBBYCAAUSBJEEBAsKDQoFBBYCAAESBJEEDBMKDQoFBBYCAAMSBJEEFhcKDAoEBBYCARIEkgQEGQoPCgUEFgIBBBIGkgQEkQQYCg0KBQQWAgEFEgSSBAQLCg0KBQQWAgEBEgSSBAwUCg0KBQQWAgEDEgSSBBcYCgwKBAQWAgISBJMEBBsKDwoFBBYCAgQSBpMEBJIEGQoNCgUEFgICBRIEkwQECwoNCgUEFgICARIEkwQMFgoNCgUEFgICAxIEkwQZGgoMCgQEFgIDEgSUBAQhCg8KBQQWAgMEEgaUBASTBBsKDQoFBBYCAwUSBJQEBAsKDQoFBBYCAwESBJQEDBwKDQoFBBYCAwMSBJQEHyAKDAoEBBYCBBIElQQEIQoPCgUEFgIEBBIGlQQElAQhCg0KBQQWAgQFEgSVBAQLCg0KBQQWAgQBEgSVBAwcCg0KBQQWAgQDEgSVBB8gCgwKBAQWAgUSBJYEBCEKDwoFBBYCBQQSBpYEBJUEIQoNCgUEFgIFBRIElgQECwoNCgUEFgIFARIElgQMHAoNCgUEFgIFAxIElgQfIAoMCgQEFgIGEgSXBAQhCg8KBQQWAgYEEgaXBASWBCEKDQoFBBYCBgUSBJcEBAsKDQoFBBYCBgESBJcEDBwKDQoFBBYCBgMSBJcEHyAKDAoEBBYCBxIEmAQEGwoPCgUEFgIHBBIGmAQElwQhCg0KBQQWAgcFEgSYBAQLCg0KBQQWAgcBEgSYBAwVCg0KBQQWAgcDEgSYBBgaCgwKBAQWAggSBJkEBB4KDwoFBBYCCAQSBpkEBJgEGwoNCgUEFgIIBRIEmQQECwoNCgUEFgIIARIEmQQMGAoNCgUEFgIIAxIEmQQbHQoMCgQEFgIJEgSaBAQiCg8KBQQWAgkEEgaaBASZBB4KDQoFBBYCCQUSBJoEBAsKDQoFBBYCCQESBJoEDBwKDQoFBBYCCQMSBJoEHyEKDAoEBBYCChIEmwQEIwoPCgUEFgIKBBIGmwQEmgQiCg0KBQQWAgoFEgSbBAQLCg0KBQQWAgoBEgSbBAwdCg0KBQQWAgoDEgSbBCAiCgwKBAQWAgsSBJwEBCMKDwoFBBYCCwQSBpwEBJsEIwoNCgUEFgILBRIEnAQECwoNCgUEFgILARIEnAQMHQoNCgUEFgILAxIEnAQgIgoMCgQEFgIMEgSdBAQkCg8KBQQWAgwEEgadBAScBCMKDQoFBBYCDAUSBJ0EBAsKDQoFBBYCDAESBJ0EDB4KDQoFBBYCDAMSBJ0EISMKDAoEBBYCDRIEngQEJQoPCgUEFgINBBIGngQEnQQkCg0KBQQWAg0FEgSeBAQLCg0KBQQWAg0BEgSeBAwfCg0KBQQWAg0DEgSeBCIkCgwKBAQWAg4SBJ8EBCUKDwoFBBYCDgQSBp8EBJ4EJQoNCgUEFgIOBRIEnwQECwoNCgUEFgIOARIEnwQMHwoNCgUEFgIOAxIEnwQiJAoMCgQEFgIPEgSgBAQlCg8KBQQWAg8EEgagBASfBCUKDQoFBBYCDwUSBKAEBAsKDQoFBBYCDwESBKAEDB8KDQoFBBYCDwMSBKAEIiQKDAoEBBYCEBIEoQQEJQoPCgUEFgIQBBIGoQQEoAQlCg0KBQQWAhAFEgShBAQLCg0KBQQWAhABEgShBAwfCg0KBQQWAhADEgShBCIkCgwKBAQWAhESBKIEBCYKDwoFBBYCEQQSBqIEBKEEJQoNCgUEFgIRBRIEogQECwoNCgUEFgIRARIEogQMIAoNCgUEFgIRAxIEogQjJQoMCgQEFgISEgSjBAQfCg8KBQQWAhIEEgajBASiBCYKDQoFBBYCEgUSBKMEBAsKDQoFBBYCEgESBKMEDBkKDQoFBBYCEgMSBKMEHB4KDAoEBBYCExIEpQQEGQoPCgUEFgITBBIGpQQEowQfCg0KBQQWAhMFEgSlBAQLCg0KBQQWAhMBEgSlBAwUCg0KBQQWAhMDEgSlBBcYCgwKBAQWAhQSBKYEBBsKDwoFBBYCFAQSBqYEBKUEGQoNCgUEFgIUBRIEpgQECwoNCgUEFgIUARIEpgQMFgoNCgUEFgIUAxIEpgQZGgoMCgQEFgIVEgSnBAQiCg8KBQQWAhUEEganBASmBBsKDQoFBBYCFQUSBKcEBAsKDQoFBBYCFQESBKcEDBwKDQoFBBYCFQMSBKcEHyEKDAoEBBYCFhIEqAQEIgoPCgUEFgIWBBIGqAQEpwQiCg0KBQQWAhYFEgSoBAQLCg0KBQQWAhYBEgSoBAwcCg0KBQQWAhYDEgSoBB8hCgwKBAQWAhcSBKkEBCIKDwoFBBYCFwQSBqkEBKgEIgoNCgUEFgIXBRIEqQQECwoNCgUEFgIXARIEqQQMHAoNCgUEFgIXAxIEqQQfIQoMCgQEFgIYEgSqBAQiCg8KBQQWAhgEEgaqBASpBCIKDQoFBBYCGAUSBKoEBAsKDQoFBBYCGAESBKoEDBwKDQoFBBYCGAMSBKoEHyEKDAoEBBYCGRIEqwQEGwoPCgUEFgIZBBIGqwQEqgQiCg0KBQQWAhkFEgSrBAQLCg0KBQQWAhkBEgSrBAwVCg0KBQQWAhkDEgSrBBgaCgwKBAQWAhoSBKwEBB4KDwoFBBYCGgQSBqwEBKsEGwoNCgUEFgIaBRIErAQECwoNCgUEFgIaARIErAQMGAoNCgUEFgIaAxIErAQbHQoMCgQEFgIbEgStBAQiCg8KBQQWAhsEEgatBASsBB4KDQoFBBYCGwUSBK0EBAsKDQoFBBYCGwESBK0EDBwKDQoFBBYCGwMSBK0EHyEKDAoEBBYCHBIErgQEIwoPCgUEFgIcBBIGrgQErQQiCg0KBQQWAhwFEgSuBAQLCg0KBQQWAhwBEgSuBAwdCg0KBQQWAhwDEgSuBCAiCgwKBAQWAh0SBK8EBCMKDwoFBBYCHQQSBq8EBK4EIwoNCgUEFgIdBRIErwQECwoNCgUEFgIdARIErwQMHQoNCgUEFgIdAxIErwQgIgoMCgQEFgIeEgSwBAQkCg8KBQQWAh4EEgawBASvBCMKDQoFBBYCHgUSBLAEBAsKDQoFBBYCHgESBLAEDB4KDQoFBBYCHgMSBLAEISMKDAoEBBYCHxIEsQQEJQoPCgUEFgIfBBIGsQQEsAQkCg0KBQQWAh8FEgSxBAQLCg0KBQQWAh8BEgSxBAwfCg0KBQQWAh8DEgSxBCIkCgwKBAQWAiASBLIEBCUKDwoFBBYCIAQSBrIEBLEEJQoNCgUEFgIgBRIEsgQECwoNCgUEFgIgARIEsgQMHwoNCgUEFgIgAxIEsgQiJAoMCgQEFgIhEgSzBAQlCg8KBQQWAiEEEgazBASyBCUKDQoFBBYCIQUSBLMEBAsKDQoFBBYCIQESBLMEDB8KDQoFBBYCIQMSBLMEIiQKDAoEBBYCIhIEtAQEJQoPCgUEFgIiBBIGtAQEswQlCg0KBQQWAiIFEgS0BAQLCg0KBQQWAiIBEgS0BAwfCg0KBQQWAiIDEgS0BCIkCgwKBAQWAiMSBLUEBCYKDwoFBBYCIwQSBrUEBLQEJQoNCgUEFgIjBRIEtQQECwoNCgUEFgIjARIEtQQMIAoNCgUEFgIjAxIEtQQjJQoMCgQEFgIkEgS3BAQcCg8KBQQWAiQEEga3BAS1BCYKDQoFBBYCJAUSBLcEBAsKDQoFBBYCJAESBLcEDBYKDQoFBBYCJAMSBLcEGRsKDAoEBBYCJRIEuAQEGwoPCgUEFgIlBBIGuAQEtwQcCg0KBQQWAiUFEgS4BAQLCg0KBQQWAiUBEgS4BAwVCg0KBQQWAiUDEgS4BBgaCgwKAgQXEga7BADWBAEKCwoDBBcBEgS7BAgVCgwKBAQXAgASBLwEBBgKDwoFBBcCAAQSBrwEBLsEFwoNCgUEFwIABRIEvAQECwoNCgUEFwIAARIEvAQMEwoNCgUEFwIAAxIEvAQWFwoMCgQEFwIBEgS9BAQXCg8KBQQXAgEEEga9BAS8BBgKDQoFBBcCAQUSBL0EBAsKDQoFBBcCAQESBL0EDBIKDQoFBBcCAQMSBL0EFRYKDAoEBBcCAhIEvgQEHwoPCgUEFwICBBIGvgQEvQQXCg0KBQQXAgIFEgS+BAQLCg0KBQQXAgIBEgS+BAwaCg0KBQQXAgIDEgS+BB0eCgwKBAQXAgMSBL8EBB8KDwoFBBcCAwQSBr8EBL4EHwoNCgUEFwIDBRIEvwQECwoNCgUEFwIDARIEvwQMGgoNCgUEFwIDAxIEvwQdHgoMCgQEFwIEEgTABAQpCg8KBQQXAgQEEgbABAS/BB8KDQoFBBcCBAUSBMAEBAsKDQoFBBcCBAESBMAEDCQKDQoFBBcCBAMSBMAEJygKDAoEBBcCBRIEwQQEGwoPCgUEFwIFBBIGwQQEwAQpCg0KBQQXAgUFEgTBBAQLCg0KBQQXAgUBEgTBBAwWCg0KBQQXAgUDEgTBBBkaCgwKBAQXAgYSBMIEBBoKDwoFBBcCBgQSBsIEBMEEGwoNCgUEFwIGBRIEwgQECwoNCgUEFwIGARIEwgQMFQoNCgUEFwIGAxIEwgQYGQoMCgQEFwIHEgTDBAQmCg8KBQQXAgcEEgbDBATCBBoKDQoFBBcCBwUSBMMEBAsKDQoFBBcCBwESBMMEDCEKDQoFBBcCBwMSBMMEJCUKDAoEBBcCCBIExAQEKAoPCgUEFwIIBBIGxAQEwwQmCg0KBQQXAggFEgTEBAQLCg0KBQQXAggBEgTEBAwjCg0KBQQXAggDEgTEBCYnCgwKBAQXAgkSBMUEBC0KDwoFBBcCCQQSBsUEBMQEKAoNCgUEFwIJBRIExQQECwoNCgUEFwIJARIExQQMJwoNCgUEFwIJAxIExQQqLAoMCgQEFwIKEgTGBAQfCg8KBQQXAgoEEgbGBATFBC0KDQoFBBcCCgUSBMYEBAsKDQoFBBcCCgESBMYEDBkKDQoFBBcCCgMSBMYEHB4KDAoEBBcCCxIExwQEJQoPCgUEFwILBBIGxwQExgQfCg0KBQQXAgsFEgTHBAQLCg0KBQQXAgsBEgTHBAwfCg0KBQQXAgsDEgTHBCIkCgwKBAQXAgwSBMgEBCEKDwoFBBcCDAQSBsgEBMcEJQoNCgUEFwIMBRIEyAQECwoNCgUEFwIMARIEyAQMGwoNCgUEFwIMAxIEyAQeIAoMCgQEFwINEgTJBAQbCg8KBQQXAg0EEgbJBATIBCEKDQoFBBcCDQUSBMkEBAsKDQoFBBcCDQESBMkEDBUKDQoFBBcCDQMSBMkEGBoKDAoEBBcCDhIEygQEIQoPCgUEFwIOBBIGygQEyQQbCg0KBQQXAg4FEgTKBAQLCg0KBQQXAg4BEgTKBAwbCg0KBQQXAg4DEgTKBB4gCgwKBAQXAg8SBMsEBCQKDwoFBBcCDwQSBssEBMoEIQoNCgUEFwIPBRIEywQECwoNCgUEFwIPARIEywQMHgoNCgUEFwIPAxIEywQhIwoMCgQEFwIQEgTMBAQZCg8KBQQXAhAEEgbMBATLBCQKDQoFBBcCEAUSBMwEBAsKDQoFBBcCEAESBMwEDBMKDQoFBBcCEAMSBMwEFhgKDAoEBBcCERIEzQQEKwoPCgUEFwIRBBIGzQQEzAQZCg0KBQQXAhEFEgTNBAQLCg0KBQQXAhEBEgTNBAwlCg0KBQQXAhEDEgTNBCgqCgwKBAQXAhISBM4EBBoKDwoFBBcCEgQSBs4EBM0EKwoNCgUEFwISBRIEzgQECwoNCgUEFwISARIEzgQMFAoNCgUEFwISAxIEzgQXGQoMCgQEFwITEgTPBAQcCg8KBQQXAhMEEgbPBATOBBoKDQoFBBcCEwUSBM8EBAsKDQoFBBcCEwESBM8EDBYKDQoFBBcCEwMSBM8EGRsKDAoEBBcCFBIE0AQEGgoPCgUEFwIUBBIG0AQEzwQcCg0KBQQXAhQFEgTQBAQLCg0KBQQXAhQBEgTQBAwUCg0KBQQXAhQDEgTQBBcZCgwKBAQXAhUSBNEEBBwKDwoFBBcCFQQSBtEEBNAEGgoNCgUEFwIVBRIE0QQECwoNCgUEFwIVARIE0QQMFgoNCgUEFwIVAxIE0QQZGwoMCgQEFwIWEgTSBAQeCg8KBQQXAhYEEgbSBATRBBwKDQoFBBcCFgUSBNIEBAsKDQoFBBcCFgESBNIEDBgKDQoFBBcCFgMSBNIEGx0KDAoEBBcCFxIE0wQEHQoPCgUEFwIXBBIG0wQE0gQeCg0KBQQXAhcFEgTTBAQLCg0KBQQXAhcBEgTTBAwXCg0KBQQXAhcDEgTTBBocCgwKBAQXAhgSBNQEBBwKDwoFBBcCGAQSBtQEBNMEHQoNCgUEFwIYBRIE1AQECwoNCgUEFwIYARIE1AQMFgoNCgUEFwIYAxIE1AQZGwoMCgQEFwIZEgTVBAQbCg8KBQQXAhkEEgbVBATUBBwKDQoFBBcCGQUSBNUEBAsKDQoFBBcCGQESBNUEDBUKDQoFBBcCGQMSBNUEGBoKDAoCBBgSBtgEAOAEAQoLCgMEGAESBNgECBkKDAoEBBgCABIE2QQEGAoPCgUEGAIABBIG2QQE2AQbCg0KBQQYAgAFEgTZBAQLCg0KBQQYAgABEgTZBAwTCg0KBQQYAgADEgTZBBYXCgwKBAQYAgESBNoEBBsKDwoFBBgCAQQSBtoEBNkEGAoNCgUEGAIBBRIE2gQECwoNCgUEGAIBARIE2gQMFgoNCgUEGAIBAxIE2gQZGgoMCgQEGAICEgTbBAQbCg8KBQQYAgIEEgbbBATaBBsKDQoFBBgCAgUSBNsEBAsKDQoFBBgCAgESBNsEDBYKDQoFBBgCAgMSBNsEGRoKDAoEBBgCAxIE3AQEGQoPCgUEGAIDBBIG3AQE2wQbCg0KBQQYAgMFEgTcBAQLCg0KBQQYAgMBEgTcBAwUCg0KBQQYAgMDEgTcBBcYCgwKBAQYAgQSBN0EBBsKDwoFBBgCBAQSBt0EBNwEGQoNCgUEGAIEBRIE3QQECwoNCgUEGAIEARIE3QQMFgoNCgUEGAIEAxIE3QQZGgoMCgQEGAIFEgTeBAQZCg8KBQQYAgUEEgbeBATdBBsKDQoFBBgCBQUSBN4EBAsKDQoFBBgCBQESBN4EDBQKDQoFBBgCBQMSBN4EFxgKDAoEBBgCBhIE3wQEGwoPCgUEGAIGBBIG3wQE3gQZCg0KBQQYAgYFEgTfBAQLCg0KBQQYAgYBEgTfBAwVCg0KBQQYAgYDEgTfBBgaCgwKAgQZEgbiBADpBAEKCwoDBBkBEgTiBAgWCgwKBAQZAgASBOMEBBgKDwoFBBkCAAQSBuMEBOIEGAoNCgUEGQIABRIE4wQECwoNCgUEGQIAARIE4wQMEwoNCgUEGQIAAxIE4wQWFwoMCgQEGQIBEgTkBAQZCg8KBQQZAgEEEgbkBATjBBgKDQoFBBkCAQUSBOQEBAsKDQoFBBkCAQESBOQEDBQKDQoFBBkCAQMSBOQEFxgKDAoEBBkCAhIE5QQEGwoPCgUEGQICBBIG5QQE5AQZCg0KBQQZAgIFEgTlBAQLCg0KBQQZAgIBEgTlBAwWCg0KBQQZAgIDEgTlBBkaCgwKBAQZAgMSBOYEBBkKDwoFBBkCAwQSBuYEBOUEGwoNCgUEGQIDBRIE5gQECwoNCgUEGQIDARIE5gQMFAoNCgUEGQIDAxIE5gQXGAoMCgQEGQIEEgTnBAQbCg8KBQQZAgQEEgbnBATmBBkKDQoFBBkCBAUSBOcEBAsKDQoFBBkCBAESBOcEDBYKDQoFBBkCBAMSBOcEGRoKDAoEBBkCBRIE6AQEGwoPCgUEGQIFBBIG6AQE5wQbCg0KBQQZAgUFEgToBAQLCg0KBQQZAgUBEgToBAwVCg0KBQQZAgUDEgToBBgaCgwKAgQaEgbrBADuBAEKCwoDBBoBEgTrBAgVCgwKBAQaAgASBOwEBBgKDwoFBBoCAAQSBuwEBOsEFwoNCgUEGgIABRIE7AQECwoNCgUEGgIAARIE7AQMEwoNCgUEGgIAAxIE7AQWFwoMCgQEGgIBEgTtBAQWCg8KBQQaAgEEEgbtBATsBBgKDQoFBBoCAQUSBO0EBAoKDQoFBBoCAQESBO0ECxEKDQoFBBoCAQMSBO0EFBUKDAoCBBsSBvAEAPQEAQoLCgMEGwESBPAECBsKDAoEBBsCABIE8QQEGAoPCgUEGwIABBIG8QQE8AQdCg0KBQQbAgAFEgTxBAQLCg0KBQQbAgABEgTxBAwTCg0KBQQbAgADEgTxBBYXCgwKBAQbAgESBPIEBBcKDwoFBBsCAQQSBvIEBPEEGAoNCgUEGwIBBRIE8gQECwoNCgUEGwIBARIE8gQMEgoNCgUEGwIBAxIE8gQVFgoMCgQEGwICEgTzBAQWCg8KBQQbAgIEEgbzBATyBBcKDQoFBBsCAgUSBPMEBAoKDQoFBBsCAgESBPMECxEKDQoFBBsCAgMSBPMEFBUKDAoCBBwSBvYEAP8EAQoLCgMEHAESBPYECBoKDAoEBBwCABIE9wQEGAoPCgUEHAIABBIG9wQE9gQcCg0KBQQcAgAFEgT3BAQLCg0KBQQcAgABEgT3BAwTCg0KBQQcAgADEgT3BBYXCgwKBAQcAgESBPgEBBcKDwoFBBwCAQQSBvgEBPcEGAoNCgUEHAIBBRIE+AQECwoNCgUEHAIBARIE+AQMEgoNCgUEHAIBAxIE+AQVFgoMCgQEHAICEgT5BAQaCg8KBQQcAgIEEgb5BAT4BBcKDQoFBBwCAgUSBPkEBAoKDQoFBBwCAgESBPkECxUKDQoFBBwCAgMSBPkEGBkKDAoEBBwCAxIE+gQEGgoPCgUEHAIDBBIG+gQE+QQaCg0KBQQcAgMFEgT6BAQKCg0KBQQcAgMBEgT6BAsVCg0KBQQcAgMDEgT6BBgZCgwKBAQcAgQSBPsEBCAKDwoFBBwCBAQSBvsEBPoEGgoNCgUEHAIEBRIE+wQECgoNCgUEHAIEARIE+wQLGwoNCgUEHAIEAxIE+wQeHwoMCgQEHAIFEgT8BAQlCg8KBQQcAgUEEgb8BAT7BCAKDQoFBBwCBQUSBPwEBAoKDQoFBBwCBQESBPwECyAKDQoFBBwCBQMSBPwEIyQKDAoEBBwCBhIE/QQEGwoPCgUEHAIGBBIG/QQE/AQlCg0KBQQcAgYFEgT9BAQKCg0KBQQcAgYBEgT9BAsWCg0KBQQcAgYDEgT9BBkaCgwKBAQcAgcSBP4EBBwKDwoFBBwCBwQSBv4EBP0EGwoNCgUEHAIHBRIE/gQECgoNCgUEHAIHARIE/gQLFwoNCgUEHAIHAxIE/gQaGwoMCgIEHRIGgQUAhQUBCgsKAwQdARIEgQUIIwoMCgQEHQIAEgSCBQQYCg8KBQQdAgAEEgaCBQSBBSUKDQoFBB0CAAUSBIIFBAsKDQoFBB0CAAESBIIFDBMKDQoFBB0CAAMSBIIFFhcKDAoEBB0CARIEgwUEFwoPCgUEHQIBBBIGgwUEggUYCg0KBQQdAgEFEgSDBQQLCg0KBQQdAgEBEgSDBQwSCg0KBQQdAgEDEgSDBRUWCgwKBAQdAgISBIQFBBYKDwoFBB0CAgQSBoQFBIMFFwoNCgUEHQICBRIEhAUECgoNCgUEHQICARIEhAULEQoNCgUEHQICAxIEhAUUFQoMCgIEHhIGhwUAjAUBCgsKAwQeARIEhwUIIgoMCgQEHgIAEgSIBQQYCg8KBQQeAgAEEgaIBQSHBSQKDQoFBB4CAAUSBIgFBAsKDQoFBB4CAAESBIgFDBMKDQoFBB4CAAMSBIgFFhcKDAoEBB4CARIEiQUEFwoPCgUEHgIBBBIGiQUEiAUYCg0KBQQeAgEFEgSJBQQLCg0KBQQeAgEBEgSJBQwSCg0KBQQeAgEDEgSJBRUWCgwKBAQeAgISBIoFBBYKDwoFBB4CAgQSBooFBIkFFwoNCgUEHgICBRIEigUECgoNCgUEHgICARIEigULEQoNCgUEHgICAxIEigUUFQoMCgQEHgIDEgSLBQQnCg8KBQQeAgMEEgaLBQSKBRYKDQoFBB4CAwUSBIsFBAsKDQoFBB4CAwESBIsFDCIKDQoFBB4CAwMSBIsFJSYKDAoCBB8SBo4FAJQFAQoLCgMEHwESBI4FCCIKDAoEBB8CABIEjwUEGAoPCgUEHwIABBIGjwUEjgUkCg0KBQQfAgAFEgSPBQQLCg0KBQQfAgABEgSPBQwTCg0KBQQfAgADEgSPBRYXCgwKBAQfAgESBJAFBBcKDwoFBB8CAQQSBpAFBI8FGAoNCgUEHwIBBRIEkAUECwoNCgUEHwIBARIEkAUMEgoNCgUEHwIBAxIEkAUVFgoMCgQEHwICEgSRBQQWCg8KBQQfAgIEEgaRBQSQBRcKDQoFBB8CAgUSBJEFBAoKDQoFBB8CAgESBJEFCxEKDQoFBB8CAgMSBJEFFBUKDAoEBB8CAxIEkgUEFgoPCgUEHwIDBBIGkgUEkQUWCg0KBQQfAgMFEgSSBQQLCg0KBQQfAgMBEgSSBQwRCg0KBQQfAgMDEgSSBRQVCgwKBAQfAgQSBJMFBBgKDwoFBB8CBAQSBpMFBJIFFgoNCgUEHwIEBRIEkwUECwoNCgUEHwIEARIEkwUMEwoNCgUEHwIEAxIEkwUWFwoMCgIEIBIGlgUAmgUBCgsKAwQgARIElgUIJgoMCgQEIAIAEgSXBQQYCg8KBQQgAgAEEgaXBQSWBSgKDQoFBCACAAUSBJcFBAsKDQoFBCACAAESBJcFDBMKDQoFBCACAAMSBJcFFhcKDAoEBCACARIEmAUEFwoPCgUEIAIBBBIGmAUElwUYCg0KBQQgAgEFEgSYBQQLCg0KBQQgAgEBEgSYBQwSCg0KBQQgAgEDEgSYBRUWCgwKBAQgAgISBJkFBBYKDwoFBCACAgQSBpkFBJgFFwoNCgUEIAICBRIEmQUECgoNCgUEIAICARIEmQULEQoNCgUEIAICAxIEmQUUFQoMCgIEIRIGnAUAoQUBCgsKAwQhARIEnAUIIwoMCgQEIQIAEgSdBQQYCg8KBQQhAgAEEgadBQScBSUKDQoFBCECAAUSBJ0FBAsKDQoFBCECAAESBJ0FDBMKDQoFBCECAAMSBJ0FFhcKDAoEBCECARIEngUEFwoPCgUEIQIBBBIGngUEnQUYCg0KBQQhAgEFEgSeBQQLCg0KBQQhAgEBEgSeBQwSCg0KBQQhAgEDEgSeBRUWCgwKBAQhAgISBJ8FBBYKDwoFBCECAgQSBp8FBJ4FFwoNCgUEIQICBRIEnwUECgoNCgUEIQICARIEnwULEQoNCgUEIQICAxIEnwUUFQoMCgQEIQIDEgSgBQQnCg8KBQQhAgMEEgagBQSfBRYKDQoFBCECAwUSBKAFBAsKDQoFBCECAwESBKAFDCIKDQoFBCECAwMSBKAFJSYKDAoCBCISBqMFAKgFAQoLCgMEIgESBKMFCCoKDAoEBCICABIEpAUEGAoPCgUEIgIABBIGpAUEowUsCg0KBQQiAgAFEgSkBQQLCg0KBQQiAgABEgSkBQwTCg0KBQQiAgADEgSkBRYXCgwKBAQiAgESBKUFBBcKDwoFBCICAQQSBqUFBKQFGAoNCgUEIgIBBRIEpQUECwoNCgUEIgIBARIEpQUMEgoNCgUEIgIBAxIEpQUVFgoMCgQEIgICEgSmBQQWCg8KBQQiAgIEEgamBQSlBRcKDQoFBCICAgUSBKYFBAoKDQoFBCICAgESBKYFCxEKDQoFBCICAgMSBKYFFBUKDAoEBCICAxIEpwUEFgoPCgUEIgIDBBIGpwUEpgUWCg0KBQQiAgMFEgSnBQQLCg0KBQQiAgMBEgSnBQwRCg0KBQQiAgMDEgSnBRQVCgwKAgQjEgaqBQCuBQEKCwoDBCMBEgSqBQgmCgwKBAQjAgASBKsFBBgKDwoFBCMCAAQSBqsFBKoFKAoNCgUEIwIABRIEqwUECwoNCgUEIwIAARIEqwUMEwoNCgUEIwIAAxIEqwUWFwoMCgQEIwIBEgSsBQQXCg8KBQQjAgEEEgasBQSrBRgKDQoFBCMCAQUSBKwFBAsKDQoFBCMCAQESBKwFDBIKDQoFBCMCAQMSBKwFFRYKDAoEBCMCAhIErQUEHAoPCgUEIwICBBIGrQUErAUXCg0KBQQjAgIFEgStBQQLCg0KBQQjAgIBEgStBQwXCg0KBQQjAgIDEgStBRobCgwKAgQkEgawBQC0BQEKCwoDBCQBEgSwBQgpCgwKBAQkAgASBLEFBBgKDwoFBCQCAAQSBrEFBLAFKwoNCgUEJAIABRIEsQUECwoNCgUEJAIAARIEsQUMEwoNCgUEJAIAAxIEsQUWFwoMCgQEJAIBEgSyBQQXCg8KBQQkAgEEEgayBQSxBRgKDQoFBCQCAQUSBLIFBAsKDQoFBCQCAQESBLIFDBIKDQoFBCQCAQMSBLIFFRYKDAoEBCQCAhIEswUEFgoPCgUEJAICBBIGswUEsgUXCg0KBQQkAgIFEgSzBQQKCg0KBQQkAgIBEgSzBQsRCg0KBQQkAgIDEgSzBRQVCgwKAgQlEga2BQC5BQEKCwoDBCUBEgS2BQgaCh8KBAQlAgASBLcFBCAiESBSREkgRXJyb3IgY291bnQKCg8KBQQlAgAEEga3BQS2BRwKDQoFBCUCAAUSBLcFBAsKDQoFBCUCAAESBLcFDBsKDQoFBCUCAAMSBLcFHh8KPgoEBCUCARIEuAUEFiIwIG9uL29mZiBiYXNlZCBvbiBjb25maWd1cmVkIHJlcG9ydGluZyBjb25kaXRpb24KCg8KBQQlAgEEEga4BQS3BSAKDQoFBCUCAQUSBLgFBAoKDQoFBCUCAQESBLgFCxEKDQoFBCUCAQMSBLgFFBUKDAoCBCYSBrsFAMIFAQoLCgMEJgESBLsFCCAKDAoEBCYCABIEvAUEGAoPCgUEJgIABBIGvAUEuwUhCg0KBQQmAgAFEgS8BQQLCg0KBQQmAgABEgS8BQwTCg0KBQQmAgADEgS8BRYXCgwKBAQmAgESBL0FBBcKDwoFBCYCAQQSBr0FBLwFGAoNCgUEJgIBBRIEvQUECwoNCgUEJgIBARIEvQUMEgoNCgUEJgIBAxIEvQUVFgoOCgQEJggAEga+BQTBBQUKDQoFBCYIAAESBL4FCg8KHQoEBCYCAhIEvwUILSIPIGFkZCBtb3JlIGhlcmUKCg0KBQQmAgIGEgS/BQgaCg0KBQQmAgIBEgS/BRsoCg0KBQQmAgIDEgS/BSssCgwKAgQnEgbEBQDHBQEKCwoDBCcBEgTEBQgkCgwKBAQnAgASBMUFBBgKDwoFBCcCAAQSBsUFBMQFJgoNCgUEJwIABRIExQUECwoNCgUEJwIAARIExQUMEwoNCgUEJwIAAxIExQUWFwoMCgQEJwIBEgTGBQQXCg8KBQQnAgEEEgbGBQTFBRgKDQoFBCcCAQUSBMYFBAsKDQoFBCcCAQESBMYFDBIKDQoFBCcCAQMSBMYFFRYKDAoCBCgSBskFAM0FAQoLCgMEKAESBMkFCCgKDAoEBCgCABIEygUEGAoPCgUEKAIABBIGygUEyQUqCg0KBQQoAgAFEgTKBQQLCg0KBQQoAgABEgTKBQwTCg0KBQQoAgADEgTKBRYXCgwKBAQoAgESBMsFBBcKDwoFBCgCAQQSBssFBMoFGAoNCgUEKAIBBRIEywUECwoNCgUEKAIBARIEywUMEgoNCgUEKAIBAxIEywUVFgoMCgQEKAICEgTMBQQWCg8KBQQoAgIEEgbMBQTLBRcKDQoFBCgCAgUSBMwFBAoKDQoFBCgCAgESBMwFCxEKDQoFBCgCAgMSBMwFFBUKDAoCBCkSBs8FANMFAQoLCgMEKQESBM8FCCEKDAoEBCkCABIE0AUEGAoPCgUEKQIABBIG0AUEzwUjCg0KBQQpAgAFEgTQBQQLCg0KBQQpAgABEgTQBQwTCg0KBQQpAgADEgTQBRYXCgwKBAQpAgESBNEFBBcKDwoFBCkCAQQSBtEFBNAFGAoNCgUEKQIBBRIE0QUECwoNCgUEKQIBARIE0QUMEgoNCgUEKQIBAxIE0QUVFgoMCgQEKQICEgTSBQQbCg8KBQQpAgIEEgbSBQTRBRcKDQoFBCkCAgUSBNIFBAsKDQoFBCkCAgESBNIFDBYKDQoFBCkCAgMSBNIFGRoKDAoCBCoSBtUFANoFAQoLCgMEKgESBNUFCDAKDAoEBCoCABIE1gUEGAoPCgUEKgIABBIG1gUE1QUyCg0KBQQqAgAFEgTWBQQLCg0KBQQqAgABEgTWBQwTCg0KBQQqAgADEgTWBRYXCgwKBAQqAgESBNcFBBcKDwoFBCoCAQQSBtcFBNYFGAoNCgUEKgIBBRIE1wUECwoNCgUEKgIBARIE1wUMEgoNCgUEKgIBAxIE1wUVFgoMCgQEKgICEgTYBQQWCg8KBQQqAgIEEgbYBQTXBRcKDQoFBCoCAgUSBNgFBAoKDQoFBCoCAgESBNgFCxEKDQoFBCoCAgMSBNgFFBUKDAoEBCoCAxIE2QUEIwoPCgUEKgIDBBIG2QUE2AUWCg0KBQQqAgMFEgTZBQQLCg0KBQQqAgMBEgTZBQweCg0KBQQqAgMDEgTZBSEiCgwKAgQrEgbcBQDgBQEKCwoDBCsBEgTcBQgrCgwKBAQrAgASBN0FBBgKDwoFBCsCAAQSBt0FBNwFLQoNCgUEKwIABRIE3QUECwoNCgUEKwIAARIE3QUMEwoNCgUEKwIAAxIE3QUWFwoMCgQEKwIBEgTeBQQXCg8KBQQrAgEEEgbeBQTdBRgKDQoFBCsCAQUSBN4FBAsKDQoFBCsCAQESBN4FDBIKDQoFBCsCAQMSBN4FFRYKDAoEBCsCAhIE3wUEFgoPCgUEKwICBBIG3wUE3gUXCg0KBQQrAgIFEgTfBQQKCg0KBQQrAgIBEgTfBQsRCg0KBQQrAgIDEgTfBRQVCgwKAgQsEgbiBQDmBQEKCwoDBCwBEgTiBQgqCgwKBAQsAgASBOMFBBgKDwoFBCwCAAQSBuMFBOIFLAoNCgUELAIABRIE4wUECwoNCgUELAIAARIE4wUMEwoNCgUELAIAAxIE4wUWFwoMCgQELAIBEgTkBQQXCg8KBQQsAgEEEgbkBQTjBRgKDQoFBCwCAQUSBOQFBAsKDQoFBCwCAQESBOQFDBIKDQoFBCwCAQMSBOQFFRYKDAoEBCwCAhIE5QUEFgoPCgUELAICBBIG5QUE5AUXCg0KBQQsAgIFEgTlBQQKCg0KBQQsAgIBEgTlBQsRCg0KBQQsAgIDEgTlBRQVCgwKAgQtEgboBQDtBQEKCwoDBC0BEgToBQguCgwKBAQtAgASBOkFCBwKDwoFBC0CAAQSBukFCOgFMAoNCgUELQIABRIE6QUIDwoNCgUELQIAARIE6QUQFwoNCgUELQIAAxIE6QUaGwoMCgQELQIBEgTqBQgbCg8KBQQtAgEEEgbqBQjpBRwKDQoFBC0CAQUSBOoFCA8KDQoFBC0CAQESBOoFEBYKDQoFBC0CAQMSBOoFGRoKDAoEBC0CAhIE6wUIGgoPCgUELQICBBIG6wUI6gUbCg0KBQQtAgIFEgTrBQgOCg0KBQQtAgIBEgTrBQ8VCg0KBQQtAgIDEgTrBRgZCgwKBAQtAgMSBOwFCB0KDwoFBC0CAwQSBuwFCOsFGgoNCgUELQIDBRIE7AUIDwoNCgUELQIDARIE7AUQGAoNCgUELQIDAxIE7AUbHAoMCgIELhIG7wUA+gUBCgsKAwQuARIE7wUIEwoOCgQELgQAEgbwBQT0BQUKDQoFBC4EAAESBPAFCRYKDgoGBC4EAAIAEgTxBQgQCg8KBwQuBAACAAESBPEFCAsKDwoHBC4EAAIAAhIE8QUODwoOCgYELgQAAgESBPIFCBkKDwoHBC4EAAIBARIE8gUIFAoPCgcELgQAAgECEgTyBRcYCg4KBgQuBAACAhIE8wUIGgoPCgcELgQAAgIBEgTzBQgVCg8KBwQuBAACAgISBPMFGBkKDAoEBC4CABIE9QUEHAoPCgUELgIABBIG9QUE9AUFCg0KBQQuAgAFEgT1BQQKCg0KBQQuAgABEgT1BQsXCg0KBQQuAgADEgT1BRobCgwKBAQuAgESBPYFBCUKDwoFBC4CAQQSBvYFBPUFHAoNCgUELgIBBhIE9gUEEQoNCgUELgIBARIE9gUSIAoNCgUELgIBAxIE9gUjJAoMCgQELgICEgT3BQQbCg8KBQQuAgIEEgb3BQT2BSUKDQoFBC4CAgUSBPcFBAoKDQoFBC4CAgESBPcFCxYKDQoFBC4CAgMSBPcFGRoKYAoEBC4CAxIE+AUEGCJSIFByaW9yaXR5IChhbmQgYWxzbyB0aGUgSUQpIG9mIHRoZSBkZWZhdWx0IGZpeGVkIHF1ZXVlIGZvciB0aGUgbXVsdGljYXN0IHRyYWZmaWMuCgoPCgUELgIDBBIG+AUE9wUbCg0KBQQuAgMFEgT4BQQKCg0KBQQuAgMBEgT4BQsTCg0KBQQuAgMDEgT4BRYXCgwKAgQvEgb8BQCHBgEKCwoDBC8BEgT8BQgNCg4KBAQvBAASBv0FBIEGBQoNCgUELwQAARIE/QUJHAoOCgYELwQAAgASBP4FCBgKDwoHBC8EAAIAARIE/gUIEwoPCgcELwQAAgACEgT+BRYXCg4KBgQvBAACARIE/wUIGwoPCgcELwQAAgEBEgT/BQgWCg8KBwQvBAACAQISBP8FGRoKDgoGBC8EAAICEgSABggYCg8KBwQvBAACAgESBIAGCBMKDwoHBC8EAAICAhIEgAYWFwoMCgQELwIAEgSDBgQYCg8KBQQvAgAEEgaDBgSBBgUKDQoFBC8CAAUSBIMGBAoKDQoFBC8CAAESBIMGCxMKDQoFBC8CAAMSBIMGFhcKDAoEBC8CARIEhAYEJAoPCgUELwIBBBIGhAYEgwYYCg0KBQQvAgEGEgSEBgQXCg0KBQQvAgEBEgSEBhgfCg0KBQQvAgEDEgSEBiIjCgwKBAQvAgISBIUGBCUKDQoFBC8CAgQSBIUGBAwKDQoFBC8CAgYSBIUGDRgKDQoFBC8CAgESBIUGGSAKDQoFBC8CAgMSBIUGIyQKDAoEBC8CAxIEhgYEFgoPCgUELwIDBBIGhgYEhQYlCg0KBQQvAgMGEgSGBgQKCg0KBQQvAgMBEgSGBgsRCg0KBQQvAgMDEgSGBhQVCgwKAgQwEgaJBgCMBgEKCwoDBDABEgSJBggSCgwKBAQwAgASBIoGCBQKDwoFBDACAAQSBooGCIkGFAoNCgUEMAIABhIEigYICwoNCgUEMAIAARIEigYMDwoNCgUEMAIAAxIEigYSEwoMCgQEMAIBEgSLBggrCg8KBQQwAgEEEgaLBgiKBhQKDQoFBDACAQYSBIsGCCAKDQoFBDACAQESBIsGISYKDQoFBDACAQMSBIsGKSoKDAoCBDESBo4GAJoGAQoLCgMEMQESBI4GCBYKDgoEBDEEABIGjwYEkwYFCg0KBQQxBAABEgSPBgkiCg4KBgQxBAACABIEkAYIHQoPCgcEMQQAAgABEgSQBggYCg8KBwQxBAACAAISBJAGGxwKDgoGBDEEAAIBEgSRBgglCg8KBwQxBAACAQESBJEGCCAKDwoHBDEEAAIBAhIEkQYjJAoOCgYEMQQAAgISBJIGCCIKDwoHBDEEAAICARIEkgYIHQoPCgcEMQQAAgICEgSSBiAhCgwKBAQxAgASBJUGBBgKDwoFBDECAAQSBpUGBJMGBQoNCgUEMQIABRIElQYECwoNCgUEMQIAARIElQYMEwoNCgUEMQIAAxIElQYWFwoMCgQEMQIBEgSWBgQXCg8KBQQxAgEEEgaWBgSVBhgKDQoFBDECAQUSBJYGBAsKDQoFBDECAQESBJYGDBIKDQoFBDECAQMSBJYGFRYKDAoEBDECAhIElwYEFgoPCgUEMQICBBIGlwYElgYXCg0KBQQxAgIFEgSXBgQKCg0KBQQxAgIBEgSXBgsRCg0KBQQxAgIDEgSXBhQVCgwKBAQxAgMSBJgGBC4KDwoFBDECAwQSBpgGBJcGFgoNCgUEMQIDBhIEmAYEHQoNCgUEMQIDARIEmAYeKQoNCgUEMQIDAxIEmAYsLQoMCgQEMQIEEgSZBgQhCg8KBQQxAgQEEgaZBgSYBi4KDQoFBDECBAUSBJkGBAoKDQoFBDECBAESBJkGCxwKDQoFBDECBAMSBJkGHyAKCgoCBDISBJwGABAKCwoDBDIBEgScBggNYgZwcm90bzMKlCIKIXZvbHRoYV9wcm90b3MvaW50ZXJfYWRhcHRlci5wcm90bxINaW50ZXJfYWRhcHRlchoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aGnZvbHRoYV9wcm90b3Mvdm9sdGhhLnByb3RvGiB2b2x0aGFfcHJvdG9zL3RlY2hfcHJvZmlsZS5wcm90bxobdm9sdGhhX3Byb3Rvcy9vcGVub2x0LnByb3RvGhp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90byL/AQoLT21jaU1lc3NhZ2USGAoHbWVzc2FnZRgBIAEoDFIHbWVzc2FnZRJCCg5jb25uZWN0X3N0YXR1cxgCIAEoDjIbLmNvbW1vbi5Db25uZWN0U3RhdHVzLlR5cGVzUg1jb25uZWN0U3RhdHVzEkAKDXByb3h5X2FkZHJlc3MYAyABKAsyGy5kZXZpY2UuRGV2aWNlLlByb3h5QWRkcmVzc1IMcHJveHlBZGRyZXNzEigKEHBhcmVudF9kZXZpY2VfaWQYBCABKAlSDnBhcmVudERldmljZUlkEiYKD2NoaWxkX2RldmljZV9pZBgFIAEoCVINY2hpbGREZXZpY2VJZCKCAgoMT21jaU1lc3NhZ2VzEhoKCG1lc3NhZ2VzGAEgAygMUghtZXNzYWdlcxJCCg5jb25uZWN0X3N0YXR1cxgCIAEoDjIbLmNvbW1vbi5Db25uZWN0U3RhdHVzLlR5cGVzUg1jb25uZWN0U3RhdHVzEkAKDXByb3h5X2FkZHJlc3MYAyABKAsyGy5kZXZpY2UuRGV2aWNlLlByb3h5QWRkcmVzc1IMcHJveHlBZGRyZXNzEigKEHBhcmVudF9kZXZpY2VfaWQYBCABKAlSDnBhcmVudERldmljZUlkEiYKD2NoaWxkX2RldmljZV9pZBgFIAEoCVINY2hpbGREZXZpY2VJZCKnAgoaVGVjaFByb2ZpbGVEb3dubG9hZE1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIVCgZ1bmlfaWQYAiABKA1SBXVuaUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAyABKAlSDnRwSW5zdGFuY2VQYXRoEkQKC3RwX2luc3RhbmNlGAQgASgLMiEudGVjaF9wcm9maWxlLlRlY2hQcm9maWxlSW5zdGFuY2VIAFIKdHBJbnN0YW5jZRJRChBlcG9uX3RwX2luc3RhbmNlGAUgASgLMiUudGVjaF9wcm9maWxlLkVwb25UZWNoUHJvZmlsZUluc3RhbmNlSABSDmVwb25UcEluc3RhbmNlQhIKEHRlY2hfdHBfaW5zdGFuY2UilAEKFERlbGV0ZUdlbVBvcnRNZXNzYWdlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSFQoGdW5pX2lkGAIgASgNUgV1bmlJZBIoChB0cF9pbnN0YW5jZV9wYXRoGAMgASgJUg50cEluc3RhbmNlUGF0aBIeCgtnZW1fcG9ydF9pZBgEIAEoDVIJZ2VtUG9ydElkIo0BChJEZWxldGVUY29udE1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIVCgZ1bmlfaWQYAiABKA1SBXVuaUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAyABKAlSDnRwSW5zdGFuY2VQYXRoEhkKCGFsbG9jX2lkGAQgASgNUgdhbGxvY0lkInIKFE9udUluZGljYXRpb25NZXNzYWdlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSPQoOb251X2luZGljYXRpb24YAiABKAsyFi5vcGVub2x0Lk9udUluZGljYXRpb25SDW9udUluZGljYXRpb24i6gEKIVRlY2hQcm9maWxlSW5zdGFuY2VSZXF1ZXN0TWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAiABKAlSDnRwSW5zdGFuY2VQYXRoEigKEHBhcmVudF9kZXZpY2VfaWQYAyABKAlSDnBhcmVudERldmljZUlkEiYKD3BhcmVudF9wb25fcG9ydBgEIAEoDVINcGFyZW50UG9uUG9ydBIVCgZvbnVfaWQYBSABKA1SBW9udUlkEhUKBnVu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EgNDCxEKDAoFBAYCBQMSA0MUFWIGcHJvdG8zCvsJCi12b2x0aGFfcHJvdG9zL29sdF9pbnRlcl9hZGFwdGVyX3NlcnZpY2UucHJvdG8SGW9sdF9pbnRlcl9hZGFwdGVyX3NlcnZpY2UaGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aIXZvbHRoYV9wcm90b3MvaW50ZXJfYWRhcHRlci5wcm90bxoadm9sdGhhX3Byb3Rvcy9oZWFsdGgucHJvdG8y4gIKFk9sdEludGVyQWRhcHRlclNlcnZpY2USPwoPR2V0SGVhbHRoU3RhdHVzEhIuY29tbW9uLkNvbm5lY3Rpb24aFC5oZWFsdGguSGVhbHRoU3RhdHVzKAEwARJGChBQcm94eU9tY2lSZXF1ZXN0EhouaW50ZXJfYWRhcHRlci5PbWNpTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJIChFQcm94eU9tY2lSZXF1ZXN0cxIbLmludGVyX2FkYXB0ZXIuT21jaU1lc3NhZ2VzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EnUKFkdldFRlY2hQcm9maWxlSW5zdGFuY2USMC5pbnRlcl9hZGFwdGVyLlRlY2hQcm9maWxlSW5zdGFuY2VSZXF1ZXN0TWVzc2FnZRopLmludGVyX2FkYXB0ZXIuVGVjaFByb2ZpbGVEb3dubG9hZE1lc3NhZ2VCkAEKLW9yZy5vcGVuY29yZC52b2x0aGEub2x0X2ludGVyX2FkYXB0ZXJfc2VydmljZUIcVm9sdGhhT2x0SW50ZXJBZGFwdGVyU2VydmljZVpBZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29sdF9pbnRlcl9hZGFwdGVyX3NlcnZpY2VKtgQKBhIEAAAWAQoICgEMEgMAABIKCAoBCBIDAgBYCgkKAggLEgMCAFgKCAoBCBIDAwBGCgkKAggBEgMDAEYKCAoBCBIDBAA9CgkKAggIEgMEAD0KCAoBAhIDBgAiCgkKAgMAEgMIACQKCQoCAwESAwkAJQoJCgIDAhIDCgArCgkKAgMDEgMLACQKCgoCBgASBA0AFgEKCgoDBgABEgMNCB4KpwEKBAYAAgASAxAEVxqZASBHZXRIZWFsdGhTdGF0dXMgaXMgdXNlZCBieSBhIE9sdEludGVyQWRhcHRlclNlcnZpY2UgY2xpZW50IHRvIGRldGVjdCBhIGNvbm5lY3Rpb24KIGxvc3Qgd2l0aCB0aGUgZ1JQQyBzZXJ2ZXIgaG9zdGluZyB0aGUgT2x0SW50ZXJBZGFwdGVyU2VydmljZSBzZXJ2aWNlCgoMCgUGAAIAARIDEAgXCgwKBQYAAgAFEgMQGB4KDAoFBgACAAISAxAfMAoMCgUGAAIABhIDEDtBCgwKBQYAAgADEgMQQlUKCwoEBgACARIDEwRUCgwKBQYAAgEBEgMTCBgKDAoFBgACAQISAxMZMgoMCgUGAAIBAxIDEz1SCgsKBAYAAgISAxQEVgoMCgUGAAICARIDFAgZCgwKBQYAAgICEgMUGjQKDAoFBgACAgMSAxQ/VAoMCgQGAAIDEgQVBIMBCgwKBQYAAgMBEgMVCB4KDAoFBgACAwISAxUfTgoNCgUGAAIDAxIEFVmBAWIGcHJvdG8zCuQLCi12b2x0aGFfcHJvdG9zL29udV9pbnRlcl9hZGFwdGVyX3NlcnZpY2UucHJvdG8SGW9udV9pbnRlcl9hZGFwdGVyX3NlcnZpY2UaGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aIXZvbHRoYV9wcm90b3MvaW50ZXJfYWRhcHRlci5wcm90bxoadm9sdGhhX3Byb3Rvcy9oZWFsdGgucHJvdG8y3wMKFk9udUludGVyQWRhcHRlclNlcnZpY2USPwoPR2V0SGVhbHRoU3RhdHVzEhIuY29tbW9uLkNvbm5lY3Rpb24aFC5oZWFsdGguSGVhbHRoU3RhdHVzKAEwARJMCg1PbnVJbmRpY2F0aW9uEiMuaW50ZXJfYWRhcHRlci5PbnVJbmRpY2F0aW9uTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJECg5PbWNpSW5kaWNhdGlvbhIaLmludGVyX2FkYXB0ZXIuT21jaU1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSWAoTRG93bmxvYWRUZWNoUHJvZmlsZRIpLmludGVyX2FkYXB0ZXIuVGVjaFByb2ZpbGVEb3dubG9hZE1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSTAoNRGVsZXRlR2VtUG9ydBIjLmludGVyX2FkYXB0ZXIuRGVsZXRlR2VtUG9ydE1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSSAoLRGVsZXRlVENvbnQSIS5pbnRlcl9hZGFwdGVyLkRlbGV0ZVRjb250TWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eUKQAQotb3JnLm9wZW5jb3JkLnZvbHRoYS5vbnVfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlQhxWb2x0aGFPbnVJbnRlckFkYXB0ZXJTZXJ2aWNlWkFnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb251X2ludGVyX2FkYXB0ZXJfc2VydmljZUqiBQoGEgQAABcBCggKAQwSAwAAEgoICgEIEgMCAFgKCQoCCAsSAwIAWAoICgEIEgMDAEYKCQoCCAESAwMARgoICgEIEgMEAD0KCQoCCAgSAwQAPQoICgECEgMGACIKCQoCAwASAwgAJAoJCgIDARIDCQAlCgkKAgMCEgMKACsKCQoCAwMSAwsAJAoKCgIGABIEDQAXAQoKCgMGAAESAw0IHgqnAQoEBgACABIDEARXGpkBIEdldEhlYWx0aFN0YXR1cyBpcyB1c2VkIGJ5IGEgT251SW50ZXJBZGFwdGVyU2VydmljZSBjbGllbnQgdG8gZGV0ZWN0IGEgY29ubmVjdGlvbgogbG9zdCB3aXRoIHRoZSBnUlBDIHNlcnZlciBob3N0aW5nIHRoZSBPbnVJbnRlckFkYXB0ZXJTZXJ2aWNlIHNlcnZpY2UKCgwKBQYAAgABEgMQCBcKDAoFBgACAAUSAxAYHgoMCgUGAAIAAhIDEB8wCgwKBQYAAgAGEgMQO0EKDAoFBgACAAMSAxBCVQoLCgQGAAIBEgMSBFoKDAoFBgACAQESAxIIFQoMCgUGAAIBAhIDEhY4CgwKBQYAAgEDEgMSQ1gKCwoEBgACAhIDEwRSCgwKBQYAAgIBEgMTCBYKDAoFBgACAgISAxMXMAoMCgUGAAICAxIDEztQCgsKBAYAAgMSAxQEZgoMCgUGAAIDARIDFAgbCgwKBQYAAgMCEgMUHEQKDAoFBgACAwMSAxRPZAoLCgQGAAIEEgMVBFoKDAoFBgACBAESAxUIFQoMCgUGAAIEAhIDFRY4CgwKBQYAAgQDEgMVQ1gKCwoEBgACBRIDFgRWCgwKBQYAAgUBEgMWCBMKDAoFBgACBQISAxYUNAoMCgUGAAIFAxIDFj9UYgZwcm90bzM=