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+AEBogIDR1BCqgIaR29vZ2xlLlByb3RvYnVmLlJlZmxlY3Rpb25KrL4CCgcSBScA8gYBCqoPCgEMEgMnABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLbAiBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBUaGUgbWVzc2FnZXMgaW4gdGhpcyBmaWxlIGRlc2NyaWJlIHRoZSBkZWZpbml0aW9ucyBmb3VuZCBpbiAucHJvdG8gZmlsZXMuCiBBIHZhbGlkIC5wcm90byBmaWxlIGNhbiBiZSB0cmFuc2xhdGVkIGRpcmVjdGx5IHRvIGEgRmlsZURlc2NyaXB0b3JQcm90bwogd2l0aG91dCBhbnkgb3RoZXIgaW5mb3JtYXRpb24gKGUuZy4gd2l0aG91dCByZWFkaW5nIGl0cyBpbXBvcnRzKS4KCggKAQISAykAGAoICgEIEgMqAFUKCQoCCAsSAyoAVQoICgEIEgMrACwKCQoCCAESAysALAoICgEIEgMsADEKCQoCCAgSAywAMQoICgEIEgMtADcKCQoCCCUSAy0ANwoICgEIEgMuACEKCQoCCCQSAy4AIQoICgEIEgMvAB8KCQoCCB8SAy8AHwoICgEIEgMzABwKfwoCCAkSAzMAHBp0IGRlc2NyaXB0b3IucHJvdG8gbXVzdCBiZSBvcHRpbWl6ZWQgZm9yIHNwZWVkIGJlY2F1c2UgcmVmbGVjdGlvbi1iYXNlZAogYWxnb3JpdGhtcyBkb24ndCB3b3JrIGR1cmluZyBib290c3RyYXBwaW5nLgoKagoCBAASBDcAOQEaXiBUaGUgcHJvdG9jb2wgY29tcGlsZXIgY2FuIG91dHB1dCBhIEZpbGVEZXNjcmlwdG9yU2V0IGNvbnRhaW5pbmcgdGhlIC5wcm90bwogZmlsZXMgaXQgcGFyc2VzLgoKCgoDBAABEgM3CBkKCwoEBAACABIDOAIoCgwKBQQAAgAEEgM4AgoKDAoFBAACAAYSAzgLHgoMCgUEAAIAARIDOB8jCgwKBQQAAgADEgM4JicKLwoCBAESBDwAWQEaIyBEZXNjcmliZXMgYSBjb21wbGV0ZSAucHJvdG8gZmlsZS4KCgoKAwQBARIDPAgbCjkKBAQBAgASAz0CGyIsIGZpbGUgbmFtZSwgcmVsYXRpdmUgdG8gcm9vdCBvZiBzb3VyY2UgdHJlZQoKDAoFBAECAAQSAz0CCgoMCgUEAQIABRIDPQsRCgwKBQQBAgABEgM9EhYKDAoFBAECAAMSAz0ZGgoqCgQEAQIBEgM+Ah4iHSBlLmcuICJmb28iLCAiZm9vLmJhciIsIGV0Yy4KCgwKBQQBAgEEEgM+AgoKDAoFBAECAQUSAz4LEQoMCgUEAQIBARIDPhIZCgwKBQQBAgEDEgM+HB0KNAoEBAECAhIDQQIhGicgTmFtZXMgb2YgZmlsZXMgaW1wb3J0ZWQgYnkgdGhpcyBmaWxlLgoKDAoFBAECAgQSA0ECCgoMCgUEAQICBRIDQQsRCgwKBQQBAgIBEgNBEhwKDAoFBAECAgMSA0EfIApRCgQEAQIDEgNDAigaRCBJbmRleGVzIG9mIHRoZSBwdWJsaWMgaW1wb3J0ZWQgZmlsZXMgaW4gdGhlIGRlcGVuZGVuY3kgbGlzdCBhYm92ZS4KCgwKBQQBAgMEEgNDAgoKDAoFBAECAwUSA0MLEAoMCgUEAQIDARIDQxEiCgwKBQQBAgMDEgNDJScKegoEBAECBBIDRgImGm0gSW5kZXhlcyBvZiB0aGUgd2VhayBpbXBvcnRlZCBmaWxlcyBpbiB0aGUgZGVwZW5kZW5jeSBsaXN0LgogRm9yIEdvb2dsZS1pbnRlcm5hbCBtaWdyYXRpb24gb25seS4gRG8gbm90IHVzZS4KCgwKBQQBAgQEEgNGAgoKDAoFBAECBAUSA0YLEAoMCgUEAQIEARIDRhEgCgwKBQQBAgQDEgNGIyUKNgoEBAECBRIDSQIsGikgQWxsIHRvcC1sZXZlbCBkZWZpbml0aW9ucyBpbiB0aGlzIGZpbGUuCgoMCgUEAQIFBBIDSQIKCgwKBQQBAgUGEgNJCxoKDAoFBAECBQESA0kbJwoMCgUEAQIFAxIDSSorCgsKBAQBAgYSA0oCLQoMCgUEAQIGBBIDSgIKCgwKBQQBAgYGEgNKCx4KDAoFBAECBgESA0ofKAoMCgUEAQIGAxIDSissCgsKBAQBAgcSA0sCLgoMCgUEAQIHBBIDSwIKCgwKBQQBAgcGEgNLCyEKDAoFBAECBwESA0siKQoMCgUEAQIHAxIDSywtCgsKBAQBAggSA0wCLgoMCgUEAQIIBBIDTAIKCgwKBQQBAggGEgNMCx8KDAoFBAECCAESA0wgKQoMCgUEAQIIAxIDTCwtCgsKBAQBAgkSA04CIwoMCgUEAQIJBBIDTgIKCgwKBQQBAgkGEgNOCxYKDAoFBAECCQESA04XHgoMCgUEAQIJAxIDTiEiCvQBCgQEAQIKEgNUAi8a5gEgVGhpcyBmaWVsZCBjb250YWlucyBvcHRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JpZ2luYWwgc291cmNlIGNvZGUuCiBZb3UgbWF5IHNhZmVseSByZW1vdmUgdGhpcyBlbnRpcmUgZmllbGQgd2l0aG91dCBoYXJtaW5nIHJ1bnRpbWUKIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGRlc2NyaXB0b3JzIC0tIHRoZSBpbmZvcm1hdGlvbiBpcyBuZWVkZWQgb25seSBieQogZGV2ZWxvcG1lbnQgdG9vbHMuCgoMCgUEAQIKBBIDVAIKCgwKBQQBAgoGEgNUCxkKDAoFBAECCgESA1QaKgoMCgUEAQIKAxIDVC0uCl0KBAQBAgsSA1gCHhpQIFRoZSBzeW50YXggb2YgdGhlIHByb3RvIGZpbGUuCiBUaGUgc3VwcG9ydGVkIHZhbHVlcyBhcmUgInByb3RvMiIgYW5kICJwcm90bzMiLgoKDAoFBAECCwQSA1gCCgoMCgUEAQILBRIDWAsRCgwKBQQBAgsBEgNYEhgKDAoFBAECCwMSA1gbHQonCgIEAhIEXAB8ARobIERlc2NyaWJlcyBhIG1lc3NhZ2UgdHlwZS4KCgoKAwQCARIDXAgXCgsKBAQCAgASA10CGwoMCgUEAgIABBIDXQIKCgwKBQQCAgAFEgNdCxEKDAoFBAICAAESA10SFgoMCgUEAgIAAxIDXRkaCgsKBAQCAgESA18CKgoMCgUEAgIBBBIDXwIKCgwKBQQCAgEGEgNfCx8KDAoFBAICAQESA18gJQoMCgUEAgIBAxIDXygpCgsKBAQCAgISA2ACLgoMCgUEAgICBBIDYAIKCgwKBQQCAgIGEgNgCx8KDAoFBAICAgESA2AgKQoMCgUEAgICAxIDYCwtCgsKBAQCAgMSA2ICKwoMCgUEAgIDBBIDYgIKCgwKBQQCAgMGEgNiCxoKDAoFBAICAwESA2IbJgoMCgUEAgIDAxIDYikqCgsKBAQCAgQSA2MCLQoMCgUEAgIEBBIDYwIKCgwKBQQCAgQGEgNjCx4KDAoFBAICBAESA2MfKAoMCgUEAgIEAxIDYyssCgwKBAQCAwASBGUCagMKDAoFBAIDAAESA2UKGAoNCgYEAgMAAgASA2YEHQoOCgcEAgMAAgAEEgNmBAwKDgoHBAIDAAIABRIDZg0SCg4KBwQCAwACAAESA2YTGAoOCgcEAgMAAgADEgNmGxwKDQoGBAIDAAIBEgNnBBsKDgoHBAIDAAIBBBIDZwQMCg4KBwQCAwACAQUSA2cNEgoOCgcEAgMAAgEBEgNnExYKDgoHBAIDAAIBAxIDZxkaCg0KBgQCAwACAhIDaQQvCg4KBwQCAwACAgQSA2kEDAoOCgcEAgMAAgIGEgNpDSIKDgoHBAIDAAICARIDaSMqCg4KBwQCAwACAgMSA2ktLgoLCgQEAgIFEgNrAi4KDAoFBAICBQQSA2sCCgoMCgUEAgIFBhIDawsZCgwKBQQCAgUBEgNrGikKDAoFBAICBQMSA2ssLQoLCgQEAgIGEgNtAi8KDAoFBAICBgQSA20CCgoMCgUEAgIGBhIDbQsfCgwKBQQCAgYBEgNtICoKDAoFBAICBgMSA20tLgoLCgQEAgIHEgNvAiYKDAoFBAICBwQSA28CCgoMCgUEAgIHBhIDbwsZCgwKBQQCAgcBEgNvGiEKDAoFBAICBwMSA28kJQqqAQoEBAIDARIEdAJ3AxqbASBSYW5nZSBvZiByZXNlcnZlZCB0YWcgbnVtYmVycy4gUmVzZXJ2ZWQgdGFnIG51bWJlcnMgbWF5IG5vdCBiZSB1c2VkIGJ5CiBmaWVsZHMgb3IgZXh0ZW5zaW9uIHJhbmdlcyBpbiB0aGUgc2FtZSBtZXNzYWdlLiBSZXNlcnZlZCByYW5nZXMgbWF5CiBub3Qgb3ZlcmxhcC4KCgwKBQQCAwEBEgN0ChcKGwoGBAIDAQIAEgN1BB0iDCBJbmNsdXNpdmUuCgoOCgcEAgMBAgAEEgN1BAwKDgoHBAIDAQIABRIDdQ0SCg4KBwQCAwECAAESA3UTGAoOCgcEAgMBAgADEgN1GxwKGwoGBAIDAQIBEgN2BBsiDCBFeGNsdXNpdmUuCgoOCgcEAgMBAgEEEgN2BAwKDgoHBAIDAQIBBRIDdg0SCg4KBwQCAwECAQESA3YTFgoOCgcEAgMBAgEDEgN2GRoKCwoEBAICCBIDeAIsCgwKBQQCAggEEgN4AgoKDAoFBAICCAYSA3gLGAoMCgUEAgIIARIDeBknCgwKBQQCAggDEgN4KisKggEKBAQCAgkSA3sCJRp1IFJlc2VydmVkIGZpZWxkIG5hbWVzLCB3aGljaCBtYXkgbm90IGJlIHVzZWQgYnkgZmllbGRzIGluIHRoZSBzYW1lIG1lc3NhZ2UuCiBBIGdpdmVuIG5hbWUgbWF5IG9ubHkgYmUgcmVzZXJ2ZWQgb25jZS4KCgwKBQQCAgkEEgN7AgoKDAoFBAICCQUSA3sLEQoMCgUEAgIJARIDexIfCgwKBQQCAgkDEgN7IiQKCwoCBAMSBX4AhAEBCgoKAwQDARIDfggdCk8KBAQDAgASBIABAjoaQSBUaGUgcGFyc2VyIHN0b3JlcyBvcHRpb25zIGl0IGRvZXNuJ3QgcmVjb2duaXplIGhlcmUuIFNlZSBhYm92ZS4KCg0KBQQDAgAEEgSAAQIKCg0KBQQDAgAGEgSAAQseCg0KBQQDAgABEgSAAR8zCg0KBQQDAgADEgSAATY5CloKAwQDBRIEgwECGRpNIENsaWVudHMgY2FuIGRlZmluZSBjdXN0b20gb3B0aW9ucyBpbiBleHRlbnNpb25zIG9mIHRoaXMgbWVzc2FnZS4gU2VlIGFib3ZlLgoKDAoEBAMFABIEgwENGAoNCgUEAwUAARIEgwENEQoNCgUEAwUAAhIEgwEVGAozCgIEBBIGhwEA1QEBGiUgRGVzY3JpYmVzIGEgZmllbGQgd2l0aGluIGEgbWVzc2FnZS4KCgsKAwQEARIEhwEIHAoOCgQEBAQAEgaIAQKnAQMKDQoFBAQEAAESBIgBBwsKUwoGBAQEAAIAEgSLAQQcGkMgMCBpcyByZXNlcnZlZCBmb3IgZXJyb3JzLgogT3JkZXIgaXMgd2VpcmQgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4KCg8KBwQEBAACAAESBIsBBA8KDwoHBAQEAAIAAhIEiwEaGwoOCgYEBAQAAgESBIwBBBwKDwoHBAQEAAIBARIEjAEEDgoPCgcEBAQAAgECEgSMARobCncKBgQEBAACAhIEjwEEHBpnIE5vdCBaaWdaYWcgZW5jb2RlZC4gIE5lZ2F0aXZlIG51bWJlcnMgdGFrZSAxMCBieXRlcy4gIFVzZSBUWVBFX1NJTlQ2NCBpZgogbmVnYXRpdmUgdmFsdWVzIGFyZSBsaWtlbHkuCgoPCgcEBAQAAgIBEgSPAQQOCg8KBwQEBAACAgISBI8BGhsKDgoGBAQEAAIDEgSQAQQcCg8KBwQEBAACAwESBJABBA8KDwoHBAQEAAIDAhIEkAEaGwp3CgYEBAQAAgQSBJMBBBwaZyBOb3QgWmlnWmFnIGVuY29kZWQuICBOZWdhdGl2ZSBudW1iZXJzIHRha2UgMTAgYnl0ZXMuICBVc2UgVFlQRV9TSU5UMzIgaWYKIG5lZ2F0aXZlIHZhbHVlcyBhcmUgbGlrZWx5LgoKDwoHBAQEAAIEARIEkwEEDgoPCgcEBAQAAgQCEgSTARobCg4KBgQEBAACBRIElAEEHAoPCgcEBAQAAgUBEgSUAQQQCg8KBwQEBAACBQISBJQBGhsKDgoGBAQEAAIGEgSVAQQcCg8KBwQEBAACBgESBJUBBBAKDwoHBAQEAAIGAhIElQEaGwoOCgYEBAQAAgcSBJYBBBwKDwoHBAQEAAIHARIElgEEDQoPCgcEBAQAAgcCEgSWARobCg4KBgQEBAACCBIElwEEHAoPCgcEBAQAAggBEgSXAQQPCg8KBwQEBAACCAISBJcBGhsK4gEKBgQEBAACCRIEnAEEHRrRASBUYWctZGVsaW1pdGVkIGFnZ3JlZ2F0ZS4KIEdyb3VwIHR5cGUgaXMgZGVwcmVjYXRlZCBhbmQgbm90IHN1cHBvcnRlZCBpbiBwcm90bzMuIEhvd2V2ZXIsIFByb3RvMwogaW1wbGVtZW50YXRpb25zIHNob3VsZCBzdGlsbCBiZSBhYmxlIHRvIHBhcnNlIHRoZSBncm91cCB3aXJlIGZvcm1hdCBhbmQKIHRyZWF0IGdyb3VwIGZpZWxkcyBhcyB1bmtub3duIGZpZWxkcy4KCg8KBwQEBAACCQESBJwBBA4KDwoHBAQEAAIJAhIEnAEaHAotCgYEBAQAAgoSBJ0BBB0iHSBMZW5ndGgtZGVsaW1pdGVkIGFnZ3JlZ2F0ZS4KCg8KBwQEBAACCgESBJ0BBBAKDwoHBAQEAAIKAhIEnQEaHAojCgYEBAQAAgsSBKABBB0aEyBOZXcgaW4gdmVyc2lvbiAyLgoKDwoHBAQEAAILARIEoAEEDgoPCgcEBAQAAgsCEgSgARocCg4KBgQEBAACDBIEoQEEHQoPCgcEBAQAAgwBEgShAQQPCg8KBwQEBAACDAISBKEBGhwKDgoGBAQEAAINEgSiAQQdCg8KBwQEBAACDQESBKIBBA0KDwoHBAQEAAINAhIEogEaHAoOCgYEBAQAAg4SBKMBBB0KDwoHBAQEAAIOARIEowEEEQoPCgcEBAQAAg4CEgSjARocCg4KBgQEBAACDxIEpAEEHQoPCgcEBAQAAg8BEgSkAQQRCg8KBwQEBAACDwISBKQBGhwKJwoGBAQEAAIQEgSlAQQdIhcgVXNlcyBaaWdaYWcgZW5jb2RpbmcuCgoPCgcEBAQAAhABEgSlAQQPCg8KBwQEBAACEAISBKUBGhwKJwoGBAQEAAIREgSmAQQdIhcgVXNlcyBaaWdaYWcgZW5jb2RpbmcuCgoPCgcEBAQAAhEBEgSmAQQPCg8KBwQEBAACEQISBKYBGhwKDgoEBAQEARIGqQECrgEDCg0KBQQEBAEBEgSpAQcMCioKBgQEBAECABIEqwEEHBoaIDAgaXMgcmVzZXJ2ZWQgZm9yIGVycm9ycwoKDwoHBAQEAQIAARIEqwEEEgoPCgcEBAQBAgACEgSrARobCg4KBgQEBAECARIErAEEHAoPCgcEBAQBAgEBEgSsAQQSCg8KBwQEBAECAQISBKwBGhsKDgoGBAQEAQICEgStAQQcCg8KBwQEBAECAgESBK0BBBIKDwoHBAQEAQICAhIErQEaGwoMCgQEBAIAEgSwAQIbCg0KBQQEAgAEEgSwAQIKCg0KBQQEAgAFEgSwAQsRCg0KBQQEAgABEgSwARIWCg0KBQQEAgADEgSwARkaCgwKBAQEAgESBLEBAhwKDQoFBAQCAQQSBLEBAgoKDQoFBAQCAQUSBLEBCxAKDQoFBAQCAQESBLEBERcKDQoFBAQCAQMSBLEBGhsKDAoEBAQCAhIEsgECGwoNCgUEBAICBBIEsgECCgoNCgUEBAICBhIEsgELEAoNCgUEBAICARIEsgERFgoNCgUEBAICAxIEsgEZGgqcAQoEBAQCAxIEtgECGRqNASBJZiB0eXBlX25hbWUgaXMgc2V0LCB0aGlzIG5lZWQgbm90IGJlIHNldC4gIElmIGJvdGggdGhpcyBhbmQgdHlwZV9uYW1lCiBhcmUgc2V0LCB0aGlzIG11c3QgYmUgb25lIG9mIFRZUEVfRU5VTSwgVFlQRV9NRVNTQUdFIG9yIFRZUEVfR1JPVVAuCgoNCgUEBAIDBBIEtgECCgoNCgUEBAIDBhIEtgELDwoNCgUEBAIDARIEtgEQFAoNCgUEBAIDAxIEtgEXGAq3AgoEBAQCBBIEvQECIBqoAiBGb3IgbWVzc2FnZSBhbmQgZW51bSB0eXBlcywgdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgdHlwZS4gIElmIHRoZSBuYW1lCiBzdGFydHMgd2l0aCBhICcuJywgaXQgaXMgZnVsbHktcXVhbGlmaWVkLiAgT3RoZXJ3aXNlLCBDKystbGlrZSBzY29waW5nCiBydWxlcyBhcmUgdXNlZCB0byBmaW5kIHRoZSB0eXBlIChpLmUuIGZpcnN0IHRoZSBuZXN0ZWQgdHlwZXMgd2l0aGluIHRoaXMKIG1lc3NhZ2UgYXJlIHNlYXJjaGVkLCB0aGVuIHdpdGhpbiB0aGUgcGFyZW50LCBvbiB1cCB0byB0aGUgcm9vdAogbmFtZXNwYWNlKS4KCg0KBQQEAgQEEgS9AQIKCg0KBQQEAgQFEgS9AQsRCg0KBQQEAgQBEgS9ARIbCg0KBQQEAgQDEgS9AR4fCn4KBAQEAgUSBMEBAh8acCBGb3IgZXh0ZW5zaW9ucywgdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgdHlwZSBiZWluZyBleHRlbmRlZC4gIEl0IGlzCiByZXNvbHZlZCBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgdHlwZV9uYW1lLgoKDQoFBAQCBQQSBMEBAgoKDQoFBAQCBQUSBMEBCxEKDQoFBAQCBQESBMEBEhoKDQoFBAQCBQMSBMEBHR4KsQIKBAQEAgYSBMgBAiQaogIgRm9yIG51bWVyaWMgdHlwZXMsIGNvbnRhaW5zIHRoZSBvcmlnaW5hbCB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZS4KIEZvciBib29sZWFucywgInRydWUiIG9yICJmYWxzZSIuCiBGb3Igc3RyaW5ncywgY29udGFpbnMgdGhlIGRlZmF1bHQgdGV4dCBjb250ZW50cyAobm90IGVzY2FwZWQgaW4gYW55IHdheSkuCiBGb3IgYnl0ZXMsIGNvbnRhaW5zIHRoZSBDIGVzY2FwZWQgdmFsdWUuICBBbGwgYnl0ZXMgPj0gMTI4IGFyZSBlc2NhcGVkLgogVE9ETyhrZW50b24pOiAgQmFzZS02NCBlbmNvZGU/CgoNCgUEBAIGBBIEyAECCgoNCgUEBAIGBRIEyAELEQoNCgUEBAIGARIEyAESHwoNCgUEBAIGAxIEyAEiIwqEAQoEBAQCBxIEzAECIRp2IElmIHNldCwgZ2l2ZXMgdGhlIGluZGV4IG9mIGEgb25lb2YgaW4gdGhlIGNvbnRhaW5pbmcgdHlwZSdzIG9uZW9mX2RlY2wKIGxpc3QuICBUaGlzIGZpZWxkIGlzIGEgbWVtYmVyIG9mIHRoYXQgb25lb2YuCgoNCgUEBAIHBBIEzAECCgoNCgUEBAIHBRIEzAELEAoNCgUEBAIHARIEzAERHAoNCgUEBAIHAxIEzAEfIAr6AQoEBAQCCBIE0gECIRrrASBKU09OIG5hbWUgb2YgdGhpcyBmaWVsZC4gVGhlIHZhbHVlIGlzIHNldCBieSBwcm90b2NvbCBjb21waWxlci4gSWYgdGhlCiB1c2VyIGhhcyBzZXQgYSAianNvbl9uYW1lIiBvcHRpb24gb24gdGhpcyBmaWVsZCwgdGhhdCBvcHRpb24ncyB2YWx1ZQogd2lsbCBiZSB1c2VkLiBPdGhlcndpc2UsIGl0J3MgZGVkdWNlZCBmcm9tIHRoZSBmaWVsZCdzIG5hbWUgYnkgY29udmVydGluZwogaXQgdG8gY2FtZWxDYXNlLgoKDQoFBAQCCAQSBNIBAgoKDQoFBAQCCAUSBNIBCxEKDQoFBAQCCAESBNIBEhsKDQoFBAQCCAMSBNIBHiAKDAoEBAQCCRIE1AECJAoNCgUEBAIJBBIE1AECCgoNCgUEBAIJBhIE1AELFwoNCgUEBAIJARIE1AEYHwoNCgUEBAIJAxIE1AEiIwoiCgIEBRIG2AEA2wEBGhQgRGVzY3JpYmVzIGEgb25lb2YuCgoLCgMEBQESBNgBCBwKDAoEBAUCABIE2QECGwoNCgUEBQIABBIE2QECCgoNCgUEBQIABRIE2QELEQoNCgUEBQIAARIE2QESFgoNCgUEBQIAAxIE2QEZGgoMCgQEBQIBEgTaAQIkCg0KBQQFAgEEEgTaAQIKCg0KBQQFAgEGEgTaAQsXCg0KBQQFAgEBEgTaARgfCg0KBQQFAgEDEgTaASIjCicKAgQGEgbeAQD4AQEaGSBEZXNjcmliZXMgYW4gZW51bSB0eXBlLgoKCwoDBAYBEgTeAQgbCgwKBAQGAgASBN8BAhsKDQoFBAYCAAQSBN8BAgoKDQoFBAYCAAUSBN8BCxEKDQoFBAYCAAESBN8BEhYKDQoFBAYCAAMSBN8BGRoKDAoEBAYCARIE4QECLgoNCgUEBgIBBBIE4QECCgoNCgUEBgIBBhIE4QELIwoNCgUEBgIBARIE4QEkKQoNCgUEBgIBAxIE4QEsLQoMCgQEBgICEgTjAQIjCg0KBQQGAgIEEgTjAQIKCg0KBQQGAgIGEgTjAQsWCg0KBQQGAgIBEgTjARceCg0KBQQGAgIDEgTjASEiCq8CCgQEBgMAEgbrAQLuAQMangIgUmFuZ2Ugb2YgcmVzZXJ2ZWQgbnVtZXJpYyB2YWx1ZXMuIFJlc2VydmVkIHZhbHVlcyBtYXkgbm90IGJlIHVzZWQgYnkKIGVudHJpZXMgaW4gdGhlIHNhbWUgZW51bS4gUmVzZXJ2ZWQgcmFuZ2VzIG1heSBub3Qgb3ZlcmxhcC4KCiBOb3RlIHRoYXQgdGhpcyBpcyBkaXN0aW5jdCBmcm9tIERlc2NyaXB0b3JQcm90by5SZXNlcnZlZFJhbmdlIGluIHRoYXQgaXQKIGlzIGluY2x1c2l2ZSBzdWNoIHRoYXQgaXQgY2FuIGFwcHJvcHJpYXRlbHkgcmVwcmVzZW50IHRoZSBlbnRpcmUgaW50MzIKIGRvbWFpbi4KCg0KBQQGAwABEgTrAQobChwKBgQGAwACABIE7AEEHSIMIEluY2x1c2l2ZS4KCg8KBwQGAwACAAQSBOwBBAwKDwoHBAYDAAIABRIE7AENEgoPCgcEBgMAAgABEgTsARMYCg8KBwQGAwACAAMSBOwBGxwKHAoGBAYDAAIBEgTtAQQbIgwgSW5jbHVzaXZlLgoKDwoHBAYDAAIBBBIE7QEEDAoPCgcEBgMAAgEFEgTtAQ0SCg8KBwQGAwACAQESBO0BExYKDwoHBAYDAAIBAxIE7QEZGgqqAQoEBAYCAxIE8wECMBqbASBSYW5nZSBvZiByZXNlcnZlZCBudW1lcmljIHZhbHVlcy4gUmVzZXJ2ZWQgbnVtZXJpYyB2YWx1ZXMgbWF5IG5vdCBiZSB1c2VkCiBieSBlbnVtIHZhbHVlcyBpbiB0aGUgc2FtZSBlbnVtIGRlY2xhcmF0aW9uLiBSZXNlcnZlZCByYW5nZXMgbWF5IG5vdAogb3ZlcmxhcC4KCg0KBQQGAgMEEgTzAQIKCg0KBQQGAgMGEgTzAQscCg0KBQQGAgMBEgTzAR0rCg0KBQQGAgMDEgTzAS4vCmwKBAQGAgQSBPcBAiQaXiBSZXNlcnZlZCBlbnVtIHZhbHVlIG5hbWVzLCB3aGljaCBtYXkgbm90IGJlIHJldXNlZC4gQSBnaXZlbiBuYW1lIG1heSBvbmx5CiBiZSByZXNlcnZlZCBvbmNlLgoKDQoFBAYCBAQSBPcBAgoKDQoFBAYCBAUSBPcBCxEKDQoFBAYCBAESBPcBEh8KDQoFBAYCBAMSBPcBIiMKMQoCBAcSBvsBAIACARojIERlc2NyaWJlcyBhIHZhbHVlIHdpdGhpbiBhbiBlbnVtLgoKCwoDBAcBEgT7AQggCgwKBAQHAgASBPwBAhsKDQoFBAcCAAQSBPwBAgoKDQoFBAcCAAUSBPwBCxEKDQoFBAcCAAESBPwBEhYKDQoFBAcCAAMSBPwBGRoKDAoEBAcCARIE/QECHAoNCgUEBwIBBBIE/QECCgoNCgUEBwIBBRIE/QELEAoNCgUEBwIBARIE/QERFwoNCgUEBwIBAxIE/QEaGwoMCgQEBwICEgT/AQIoCg0KBQQHAgIEEgT/AQIKCg0KBQQHAgIGEgT/AQsbCg0KBQQHAgIBEgT/ARwjCg0KBQQHAgIDEgT/ASYnCiQKAgQIEgaDAgCIAgEaFiBEZXNjcmliZXMgYSBzZXJ2aWNlLgoKCwoDBAgBEgSDAggeCgwKBAQIAgASBIQCAhsKDQoFBAgCAAQSBIQCAgoKDQoFBAgCAAUSBIQCCxEKDQoFBAgCAAESBIQCEhYKDQoFBAgCAAMSBIQCGRoKDAoEBAgCARIEhQICLAoNCgUECAIBBBIEhQICCgoNCgUECAIBBhIEhQILIAoNCgUECAIBARIEhQIhJwoNCgUECAIBAxIEhQIqKwoMCgQECAICEgSHAgImCg0KBQQIAgIEEgSHAgIKCg0KBQQIAgIGEgSHAgsZCg0KBQQIAgIBEgSHAhohCg0KBQQIAgIDEgSHAiQlCjAKAgQJEgaLAgCZAgEaIiBEZXNjcmliZXMgYSBtZXRob2Qgb2YgYSBzZXJ2aWNlLgoKCwoDBAkBEgSLAggdCgwKBAQJAgASBIwCAhsKDQoFBAkCAAQSBIwCAgoKDQoFBAkCAAUSBIwCCxEKDQoFBAkCAAESBIwCEhYKDQoFBAkCAAMSBIwCGRoKlwEKBAQJAgESBJACAiEaiAEgSW5wdXQgYW5kIG91dHB1dCB0eXBlIG5hbWVzLiAgVGhlc2UgYXJlIHJlc29sdmVkIGluIHRoZSBzYW1lIHdheSBhcwogRmllbGREZXNjcmlwdG9yUHJvdG8udHlwZV9uYW1lLCBidXQgbXVzdCByZWZlciB0byBhIG1lc3NhZ2UgdHlwZS4KCg0KBQQJAgEEEgSQAgIKCg0KBQQJAgEFEgSQAgsRCg0KBQQJAgEBEgSQAhIcCg0KBQQJAgEDEgSQAh8gCgwKBAQJAgISBJECAiIKDQoFBAkCAgQSBJECAgoKDQoFBAkCAgUSBJECCxEKDQoFBAkCAgESBJECEh0KDQoFBAkCAgMSBJECICEKDAoEBAkCAxIEkwICJQoNCgUECQIDBBIEkwICCgoNCgUECQIDBhIEkwILGAoNCgUECQIDARIEkwIZIAoNCgUECQIDAxIEkwIjJApFCgQECQIEEgSWAgI1GjcgSWRlbnRpZmllcyBpZiBjbGllbnQgc3RyZWFtcyBtdWx0aXBsZSBjbGllbnQgbWVzc2FnZXMKCg0KBQQJAgQEEgSWAgIKCg0KBQQJAgQFEgSWAgsPCg0KBQQJAgQBEgSWAhAgCg0KBQQJAgQDEgSWAiMkCg0KBQQJAgQIEgSWAiU0Cg0KBQQJAgQHEgSWAi4zCkUKBAQJAgUSBJgCAjUaNyBJZGVudGlmaWVzIGlmIHNlcnZlciBzdHJlYW1zIG11bHRpcGxlIHNlcnZlciBtZXNzYWdlcwoKDQoFBAkCBQQSBJgCAgoKDQoFBAkCBQUSBJgCCw8KDQoFBAkCBQESBJgCECAKDQoFBAkCBQMSBJgCIyQKDQoFBAkCBQgSBJgCJTQKDQoFBAkCBQcSBJgCLjMKrw4KAgQKEga9AgC3AwEyTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBPcHRpb25zCjLQDSBFYWNoIG9mIHRoZSBkZWZpbml0aW9ucyBhYm92ZSBtYXkgaGF2ZSAib3B0aW9ucyIgYXR0YWNoZWQuICBUaGVzZSBhcmUKIGp1c3QgYW5ub3RhdGlvbnMgd2hpY2ggbWF5IGNhdXNlIGNvZGUgdG8gYmUgZ2VuZXJhdGVkIHNsaWdodGx5IGRpZmZlcmVudGx5CiBvciBtYXkgY29udGFpbiBoaW50cyBmb3IgY29kZSB0aGF0IG1hbmlwdWxhdGVzIHByb3RvY29sIG1lc3NhZ2VzLgoKIENsaWVudHMgbWF5IGRlZmluZSBjdXN0b20gb3B0aW9ucyBhcyBleHRlbnNpb25zIG9mIHRoZSAqT3B0aW9ucyBtZXNzYWdlcy4KIFRoZXNlIGV4dGVuc2lvbnMgbWF5IG5vdCB5ZXQgYmUga25vd24gYXQgcGFyc2luZyB0aW1lLCBzbyB0aGUgcGFyc2VyIGNhbm5vdAogc3RvcmUgdGhlIHZhbHVlcyBpbiB0aGVtLiAgSW5zdGVhZCBpdCBzdG9yZXMgdGhlbSBpbiBhIGZpZWxkIGluIHRoZSAqT3B0aW9ucwogbWVzc2FnZSBjYWxsZWQgdW5pbnRlcnByZXRlZF9vcHRpb24uIFRoaXMgZmllbGQgbXVzdCBoYXZlIHRoZSBzYW1lIG5hbWUKIGFjcm9zcyBhbGwgKk9wdGlvbnMgbWVzc2FnZXMuIFdlIHRoZW4gdXNlIHRoaXMgZmllbGQgdG8gcG9wdWxhdGUgdGhlCiBleHRlbnNpb25zIHdoZW4gd2UgYnVpbGQgYSBkZXNjcmlwdG9yLCBhdCB3aGljaCBwb2ludCBhbGwgcHJvdG9zIGhhdmUgYmVlbgogcGFyc2VkIGFuZCBzbyBhbGwgZXh0ZW5zaW9ucyBhcmUga25vd24uCgogRXh0ZW5zaW9uIG51bWJlcnMgZm9yIGN1c3RvbSBvcHRpb25zIG1heSBiZSBjaG9zZW4gYXMgZm9sbG93czoKICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBvbmx5IGJlIHVzZWQgd2l0aGluIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yCiAgIG9yZ2FuaXphdGlvbiwgb3IgZm9yIGV4cGVyaW1lbnRhbCBvcHRpb25zLCB1c2UgZmllbGQgbnVtYmVycyA1MDAwMAogICB0aHJvdWdoIDk5OTk5LiAgSXQgaXMgdXAgdG8geW91IHRvIGVuc3VyZSB0aGF0IHlvdSBkbyBub3QgdXNlIHRoZQogICBzYW1lIG51bWJlciBmb3IgbXVsdGlwbGUgb3B0aW9ucy4KICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBiZSBwdWJsaXNoZWQgYW5kIHVzZWQgcHVibGljbHkgYnkgbXVsdGlwbGUKICAgaW5kZXBlbmRlbnQgZW50aXRpZXMsIGUtbWFpbCBwcm90b2J1Zi1nbG9iYWwtZXh0ZW5zaW9uLXJlZ2lzdHJ5QGdvb2dsZS5jb20KICAgdG8gcmVzZXJ2ZSBleHRlbnNpb24gbnVtYmVycy4gU2ltcGx5IHByb3ZpZGUgeW91ciBwcm9qZWN0IG5hbWUgKGUuZy4KICAgT2JqZWN0aXZlLUMgcGx1Z2luKSBhbmQgeW91ciBwcm9qZWN0IHdlYnNpdGUgKGlmIGF2YWlsYWJsZSkgLS0gdGhlcmUncyBubwogICBuZWVkIHRvIGV4cGxhaW4gaG93IHlvdSBpbnRlbmQgdG8gdXNlIHRoZW0uIFVzdWFsbHkgeW91IG9ubHkgbmVlZCBvbmUKICAgZXh0ZW5zaW9uIG51bWJlci4gWW91IGNhbiBkZWNsYXJlIG11bHRpcGxlIG9wdGlvbnMgd2l0aCBvbmx5IG9uZSBleHRlbnNpb24KICAgbnVtYmVyIGJ5IHB1dHRpbmcgdGhlbSBpbiBhIHN1Yi1tZXNzYWdlLiBTZWUgdGhlIEN1c3RvbSBPcHRpb25zIHNlY3Rpb24gb2YKICAgdGhlIGRvY3MgZm9yIGV4YW1wbGVzOgogICBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8jb3B0aW9ucwogICBJZiB0aGlzIHR1cm5zIG91dCB0byBiZSBwb3B1bGFyLCBhIHdlYiBzZXJ2aWNlIHdpbGwgYmUgc2V0IHVwCiAgIHRvIGF1dG9tYXRpY2FsbHkgYXNzaWduIG9wdGlvbiBudW1iZXJzLgoKCwoDBAoBEgS9AggTCvQBCgQECgIAEgTDAgIjGuUBIFNldHMgdGhlIEphdmEgcGFja2FnZSB3aGVyZSBjbGFzc2VzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gIEJ5IGRlZmF1bHQsIHRoZSBwcm90byBwYWNrYWdlIGlzIHVzZWQsIGJ1dCB0aGlzIGlzIG9mdGVuCiBpbmFwcHJvcHJpYXRlIGJlY2F1c2UgcHJvdG8gcGFja2FnZXMgZG8gbm90IG5vcm1hbGx5IHN0YXJ0IHdpdGggYmFja3dhcmRzCiBkb21haW4gbmFtZXMuCgoNCgUECgIABBIEwwICCgoNCgUECgIABRIEwwILEQoNCgUECgIAARIEwwISHgoNCgUECgIAAxIEwwIhIgq/AgoEBAoCARIEywICKxqwAiBJZiBzZXQsIGFsbCB0aGUgY2xhc3NlcyBmcm9tIHRoZSAucHJvdG8gZmlsZSBhcmUgd3JhcHBlZCBpbiBhIHNpbmdsZQogb3V0ZXIgY2xhc3Mgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4g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BQQKAgUGEgToAgsXCg0KBQQKAgUBEgToAhgkCg0KBQQKAgUDEgToAicoCg0KBQQKAgUIEgToAik4Cg0KBQQKAgUHEgToAjI3CuICCgQECgIGEgTvAgIiGtMCIFNldHMgdGhlIEdvIHBhY2thZ2Ugd2hlcmUgc3RydWN0cyBnZW5lcmF0ZWQgZnJvbSB0aGlzIC5wcm90byB3aWxsIGJlCiBwbGFjZWQuIElmIG9taXR0ZWQsIHRoZSBHbyBwYWNrYWdlIHdpbGwgYmUgZGVyaXZlZCBmcm9tIHRoZSBmb2xsb3dpbmc6CiAgIC0gVGhlIGJhc2VuYW1lIG9mIHRoZSBwYWNrYWdlIGltcG9ydCBwYXRoLCBpZiBwcm92aWRlZC4KICAgLSBPdGhlcndpc2UsIHRoZSBwYWNrYWdlIHN0YXRlbWVudCBpbiB0aGUgLnByb3RvIGZpbGUsIGlmIHByZXNlbnQuCiAgIC0gT3RoZXJ3aXNlLCB0aGUgYmFzZW5hbWUgb2YgdGhlIC5wcm90byBmaWxlLCB3aXRob3V0IGV4dGVuc2lvbi4KCg0KBQQKAgYEEgTvAgIKCg0KBQQKAgYFEgTvAgsRCg0KBQQKAgYBEgTvAhIcCg0KBQQKAgYDEgTvAh8hCtQECgQECgIHEgT9AgI5GsUEIFNob3VsZCBnZW5lcmljIHNlcnZpY2VzIGJlIGdlbmVyYXRlZCBpbiBlYWNoIGxhbmd1YWdlPyAgIkdlbmVyaWMiIHNlcnZpY2VzCiBhcmUgbm90IHNwZWNpZmljIHRvIGFueSBwYXJ0aWN1bGFyIFJQQyBzeXN0ZW0uICBUaGV5IGFyZSBnZW5lcmF0ZWQgYnkgdGhlCiBtYWluIGNvZGUgZ2VuZXJhdG9ycyBpbiBlYWNoIGxhbmd1YWdlICh3aXRob3V0IGFkZGl0aW9uYWwgcGx1Z2lucykuCiBHZW5lcmljIHNlcnZpY2VzIHdlcmUgdGhlIG9ubHkga2luZCBvZiBzZXJ2aWNlIGdlbmVyYXRpb24gc3VwcG9ydGVkIGJ5CiBlYXJseSB2ZXJzaW9ucyBvZiBnb29nbGUucHJvdG9idWYuCgogR2VuZXJpYyBzZXJ2aWNlcyBhcmUgbm93IGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB1c2lu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b24gbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQgPSB0cnVlOwogICAgIGV4dGVuc2lvbnMgNCB0byBtYXg7CiAgIH0KIE5vdGUgdGhhdCB0aGUgbWVzc2FnZSBjYW5ub3QgaGF2ZSBhbnkgZGVmaW5lZCBmaWVsZHM7IE1lc3NhZ2VTZXRzIG9ubHkKIGhhdmUgZXh0ZW5zaW9ucy4KCiBBbGwgZXh0ZW5zaW9ucyBvZiB5b3VyIHR5cGUgbXVzdCBiZSBzaW5ndWxhciBtZXNzYWdlczsgZS5nLiB0aGV5IGNhbm5vdAogYmUgaW50MzJzLCBlbnVtcywgb3IgcmVwZWF0ZWQgbWVzc2FnZXMuCgogQmVjYXVzZSB0aGlzIGlzIGFuIG9wdGlvbiwgdGhlIGFib3ZlIHR3byByZXN0cmljdGlvbnMgYXJlIG5vdCBlbmZvcmNlZCBieQogdGhlIHByb3RvY29sIGNvbXBpbGVyLgoKDQoFBAsCAAQSBMwDAgoKDQoFBAsCAAUSBMwDCw8KDQoFBAsCAAESBMwDECcKDQoFBAsCAAMSBMwDKisKDQoFBAsCAAgSBMwDLDsKDQoFBAsCAAcSBMwDNToK6wEKBAQLAgESBNEDAkQa3AEgRGlzYWJsZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHN0YW5kYXJkICJkZXNjcmlwdG9yKCkiIGFjY2Vzc29yLCB3aGljaCBjYW4KIGNvbmZsaWN0IHdpdGggYSBmaWVsZCBvZiB0aGUgc2FtZSBuYW1lLiAgVGhpcyBpcyBtZWFudCB0byBtYWtlIG1pZ3JhdGlvbgogZnJvbSBwcm90bzEgZWFzaWVyOyBuZXcgY29kZSBzaG91bGQgYXZvaWQgZmllbGRzIG5hbWVkICJkZXNjcmlwdG9yIi4KCg0KBQQLAgEEEgTRAwIKCg0KBQQLAgEFEgTRAwsPCg0KBQQLAgEBEgTRAxAvCg0KBQQLAgEDEgTRAzIzCg0KBQQLAgEIEgTRAzRDCg0KBQQLAgEHEgTRAz1CCu4BCgQECwICEgTXAwIvGt8BIElzIHRoaXMgbWVzc2FnZSBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIHRoZSBtZXNzYWdlLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsCiB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgbWVzc2FnZXMuCgoNCgUECwICBBIE1wMCCgoNCgUECwICBRIE1wMLDwoNCgUECwICARIE1wMQGgoNCgUECwICAxIE1wMdHgoNCgUECwICCBIE1wMfLgoNCgUECwICBxIE1wMoLQqeBgoEBAsCAxIE7gMCHhqPBiBXaGV0aGVyIHRoZSBtZXNzYWdlIGlzIGFuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1hcCBlbnRyeSB0eXBlIGZvciB0aGUKIG1hcHMgZmllbGQuCgogRm9yIG1hcHMgZmllbGRzOgogICAgIG1hcDxLZXlUeXBlLCBWYWx1ZVR5cGU+IG1hcF9maWVsZCA9IDE7CiBUaGUgcGFyc2VkIGRlc2NyaXB0b3IgbG9va3MgbGlrZToKICAgICBtZXNzYWdlIE1hcEZpZWxkRW50cnkgewogICAgICAgICBvcHRpb24gbWFwX2VudHJ5ID0gdHJ1ZTsKICAgICAgICAgb3B0aW9uYWwgS2V5VHlwZSBrZXkgPSAxOwogICAgICAgICBvcHRpb25hbCBWYWx1ZVR5cGUgdmFsdWUgPSAyOwogICAgIH0KICAgICByZXBlYXRlZCBNYXBGaWVsZEVudHJ5IG1hcF9maWVsZCA9IDE7CgogSW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGdlbmVyYXRlIHRoZSBtYXBfZW50cnk9dHJ1ZSBtZXNzYWdlLCBidXQKIHVzZSBhIG5hdGl2ZSBtYXAgaW4gdGhlIHRhcmdldCBsYW5ndWFnZSB0byBob2xkIHRoZSBrZXlzIGFuZCB2YWx1ZXMuCiBUaGUgcmVmbGVjdGlvbiBBUElzIGluIHN1Y2ggaW1wbGVtZW50aW9ucyBzdGlsbCBuZWVkIHRvIHdvcmsgYXMKIGlmIHRoZSBmaWVsZCBpcyBhIHJlcGVhdGVkIG1lc3NhZ2UgZmllbGQuCgogTk9URTogRG8gbm90IHNldCB0aGUgb3B0aW9uIGluIC5w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IGxhemlseT8gIExhenkgYXBwbGllcyBvbmx5IHRvIG1lc3NhZ2UtdHlwZQogZmllbGRzLiAgSXQgbWVhbnMgdGhhdCB3aGVuIHRoZSBvdXRlciBtZXNzYWdlIGlzIGluaXRpYWxseSBwYXJzZWQsIHRoZQogaW5uZXIgbWVzc2FnZSdzIGNvbnRlbnRzIHdpbGwgbm90IGJlIHBhcnNlZCBidXQgaW5zdGVhZCBzdG9yZWQgaW4gZW5jb2RlZAogZm9ybS4gIFRoZSBpbm5lciBtZXNzYWdlIHdpbGwgYWN0dWFsbHkgYmUgcGFyc2VkIHdoZW4gaXQgaXMgZmlyc3QgYWNjZXNzZWQuCgogVGhpcyBpcyBvbmx5IGEgaGludC4gIEltcGxlbWVudGF0aW9ucyBhcmUgZnJlZSB0byBjaG9vc2Ugd2hldGhlciB0byB1c2UKIGVhZ2VyIG9yIGxhenkgcGFyc2luZyByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbi4gIEhvd2V2ZXIsCiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRydWUgc3VnZ2VzdHMgdGhhdCB0aGUgcHJvdG9jb2wgYXV0aG9yIGJlbGlldmVzIHRoYXQKIHVzaW5nIGxhenkgcGFyc2luZyBvbiB0aGlzIGZpZWxkIGlzIHdvcnRoIHRoZSBhZGRpdGlvbmFsIGJvb2trZWVwaW5nCiBvdmVyaGVhZCB0eXBpY2FsbHkgbmVlZGVkIHRvIGltcGxlbWVudCBpdC4KCiBUaGlzIG9wdGlvbiBkb2VzIG5vdCBhZmZlY3QgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgYW55IGdlbmVyYXRlZCBjb2RlOwogYWxsIG1ldGhvZCBzaWduYXR1cmVzIHJlbWFpbiB0aGUgc2FtZS4gIEZ1cnRoZXJtb3JlLCB0aHJlYWQtc2FmZXR5IG9mIHRoZQogaW50ZXJmYWNlIGlzIG5vdCBhZmZlY3RlZCBieSB0aGlzIG9wdGlvbjsgY29uc3QgbWV0aG9kcyByZW1haW4gc2FmZSB0bwogY2FsbCBmcm9tIG11bHRpcGxlIHRocmVhZHMgY29uY3VycmVudGx5LCB3aGlsZSBub24tY29uc3QgbWV0aG9kcyBjb250aW51ZQogdG8gcmVxdWlyZSBleGNsdXNpdmUgYWNjZXNzLgoKCiBOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcyB3aXRoaW4KIGEgbGF6eSBzdWItbWVzc2FnZS4gIFRoYXQgaXMsIGNhbGxpbmcgSXNJbml0aWFsaXplZCgpIG9uIHRoZSBvdXRlciBtZXNzYWdlCiBtYXkgcmV0dXJuIHRydWUgZXZlbiBpZiB0aGUgaW5uZXIgbWVzc2FnZSBoYXMgbWlzc2luZyByZXF1aXJlZCBmaWVsZHMuCiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgaW5uZXIgbWVzc2FnZSB3b3VsZCBoYXZlIHRvIGJlCiBwYXJzZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgY2hlY2ssIGRlZmVhdGluZyB0aGUgcHVycG9zZSBvZiBsYXp5CiBwYXJzaW5nLiAgQW4gaW1wbGVtZW50YXRpb24gd2hpY2ggY2hvb3NlcyBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzCiBtdXN0IGJlIGNvbnNpc3RlbnQgYWJvdXQgaXQuICBUaGF0IGlzLCBmb3IgYW55IHBhcnRpY3VsYXIgc3ViLW1lc3NhZ2UsIHRoZQogaW1wbGVtZW50YXRpb24gbXVzdCBlaXRoZXIgKmFsd2F5cyogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgb3IgKm5ldmVyKgogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgbWVzc2FnZSBoYXMKIGJlZW4gcGFyc2VkLgoKDQoFBAwCAwQSBMIEAgoKDQoFBAwCAwUSBMIECw8KDQoFBAwCAwESBMIEEBQKDQoFBAwCAwMSBMIEFxgKDQoFBAwCAwgSBMIEGSgKDQoFBAwCAwcSBMIEIicK6AEKBAQMAgQSBMgEAi8a2QEgSXMgdGhpcyBmaWVsZCBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBh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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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ASABKA1SA1NldBIgCgtVbnN1cHBvcnRlZBgCIAEoDVILVW5zdXBwb3J0ZWQSFAoFRXJyb3IYAyABKA1SBUVycm9yEhoKCERpc3RhbmNlGAQgASgNUghEaXN0YW5jZSI2ChJHZXREaXN0YW5jZVJlcXVlc3QSIAoLb251RGV2aWNlSWQYASABKAlSC29udURldmljZUlkIjEKE0dldERpc3RhbmNlUmVzcG9uc2USGgoIZGlzdGFuY2UYASABKA1SCGRpc3RhbmNlIjIKFEdldE9udVVuaUluZm9SZXF1ZXN0EhoKCHVuaUluZGV4GAEgASgNUgh1bmlJbmRleCLhBAoVR2V0T251VW5pSW5mb1Jlc3BvbnNlElAKCGFkbVN0YXRlGAEgASgOMjQuZXh0ZW5zaW9uLkdldE9udVVuaUluZm9SZXNwb25zZS5BZG1pbmlzdHJhdGl2ZVN0YXRlUghhZG1TdGF0ZRJPCglvcGVyU3RhdGUYAiABKA4yMS5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlLk9wZXJhdGlvbmFsU3RhdGVSCW9wZXJTdGF0ZRJPCgljb25maWdJbmQYAyABKA4yMS5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlLkNvbmZpZ3VyYXRpb25JbmRSCWNvbmZpZ0luZCLCAQoQQ29uZmlndXJhdGlvbkluZBIKCgZVTktPV04QABISCg5URU5fQkFTRV9UX0ZEWBABEhYKEkhVTkRSRURfQkFTRV9UX0ZEWBACEhgKFEdJR0FCSVRfRVRIRVJORVRfRkRYEAMSFgoSVEVOX0dfRVRIRVJORVRfRkRYEAQSEgoOVEVOX0JBU0VfVF9IRFgQBRIWChJIVU5EUkVEX0JBU0VfVF9IRFgQBhIYChRHSUdBQklUX0VUSEVSTkVUX0hEWBAHIkcKE0FkbWluaXN0cmF0aXZlU3RhdGUSFgoSQURNU1RBVEVfVU5ERUZJTkVEEAASCgoGTE9DS0VEEAESDAoIVU5MT0NLRUQQAiJGChBPcGVyYXRpb25hbFN0YXRlEhcKE09QRVJTVEFURV9VTkRFRklORUQQABILCgdFTkFCTEVEEAESDAoIRElTQUJMRUQQAiK3AQoSR2V0T2x0UG9ydENvdW50ZXJzEhYKBnBvcnRObxgBIAEoDVIGcG9ydE5vEkIKCHBvcnRUeXBlGAIgASgOMiYuZXh0ZW5zaW9uLkdldE9sdFBvcnRDb3VudGVycy5Qb3J0VHlwZVIIcG9ydFR5cGUiRQoIUG9ydFR5cGUSEAoMUG9ydF9VTktOT1dOEAASFQoRUG9ydF9FVEhFUk5FVF9OTkkQARIQCgxQb3J0X1BPTl9PTFQQAiLMAwoaR2V0T2x0UG9ydENvdW50ZXJzUmVzcG9uc2USGAoHdHhCeXRlcxgBIAEoBFIHdHhCeXRlcxIYCgdyeEJ5dGVzGAIgASgEUgdyeEJ5dGVzEhwKCXR4UGFja2V0cxgDIAEoBFIJdHhQYWNrZXRzEhwKCXJ4UGFja2V0cxgEIAEoBFIJcnhQYWNrZXRzEiYKDnR4RXJyb3JQYWNrZXRzGAUgASgEUg50eEVycm9yUGFja2V0cxImCg5yeEVycm9yUGFja2V0cxgGIAEoBFIOcnhFcnJvclBhY2tldHMSJgoOdHhCY2FzdFBhY2tldHMYByABKARSDnR4QmNhc3RQYWNrZXRzEiYKDnJ4QmNhc3RQYWNrZXRzGAggASgEUg5yeEJjYXN0UGFja2V0cxImCg50eFVjYXN0UGFja2V0cxgJIAEoBFIOdHhVY2FzdFBhY2tldHMSJgoOcnhVY2FzdFBhY2tldHMYCiABKARSDnJ4VWNhc3RQYWNrZXRzEiYKDnR4TWNhc3RQYWNrZXRzGAsgASgEUg50eE1jYXN0UGFja2V0cxImCg5yeE1jYXN0UGFja2V0cxgMIAEoBFIOcnhNY2FzdFBhY2tldHMiRAoUR2V0T251UG9uT3B0aWNhbEluZm8SLAoFZW1wdHkYASABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBWVtcHR5IoQCChxHZXRPbnVQb25PcHRpY2FsSW5mb1Jlc3BvbnNlEioKEHBvd2VyRmVlZFZvbHRhZ2UYASABKAJSEHBvd2VyRmVlZFZvbHRhZ2USMgoUcmVjZWl2ZWRPcHRpY2FsUG93ZXIYAiABKAJSFHJlY2VpdmVkT3B0aWNhbFBvd2VyEjYKFm1lYW5PcHRpY2FsTGF1bmNoUG93ZXIYAyABKAJSFm1lYW5PcHRpY2FsTGF1bmNoUG93ZXISKgoQbGFzZXJCaWFzQ3VycmVudBgEIAEoAlIQbGFzZXJCaWFzQ3VycmVudBIgCgt0ZW1wZXJhdHVyZRgFIAEoAlILdGVtcGVyYXR1cmUirwEKH0dldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnkSUgoJZGlyZWN0aW9uGAEgASgOMjQuZXh0ZW5zaW9uLkdldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnkuRGlyZWN0aW9uUglkaXJlY3Rpb24iOAoJRGlyZWN0aW9uEg0KCVVOREVGSU5FRBAAEgwKCFVQU1RSRUFNEAESDgoKRE9XTlNUUkVBTRACIpMFCidHZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5UmVzcG9uc2USHgoKZHJvcEV2ZW50cxgBIAEoDVIKZHJvcEV2ZW50cxIWCgZvY3RldHMYAiABKA1SBm9jdGV0cxIYCgdwYWNrZXRzGAMgASgNUgdwYWNrZXRzEioKEGJyb2FkY2FzdFBhY2tldHMYBCABKA1SEGJyb2FkY2FzdFBhY2tldHMSKgoQbXVsdGljYXN0UGFja2V0cxgFIAEoDVIQbXVsdGljYXN0UGFja2V0cxIsChFjcmNFcnJvcmVkUGFja2V0cxgGIAEoDVIRY3JjRXJyb3JlZFBhY2tldHMSKgoQdW5kZXJzaXplUGFja2V0cxgHIAEoDVIQdW5kZXJzaXplUGFja2V0cxIoCg9vdmVyc2l6ZVBhY2tldHMYCCABKA1SD292ZXJzaXplUGFja2V0cxIoCg9wYWNrZXRzNjRvY3RldHMYCSABKA1SD3BhY2tldHM2NG9jdGV0cxIyChRwYWNrZXRzNjVUbzEyN29jdGV0cxgKIAEoDVIUcGFja2V0czY1VG8xMjdvY3RldHMSNAoVcGFja2V0czEyOFRvMjU1T2N0ZXRzGAsgASgNUhVwYWNrZXRzMTI4VG8yNTVPY3RldHMSNAoVcGFja2V0czI1NlRvNTExb2N0ZXRzGAwgASgNUhVwYWNrZXRzMjU2VG81MTFvY3RldHMSNgoWcGFja2V0czUxMlRvMTAyM29jdGV0cxgNIAEoDVIWcGFja2V0czUxMlRvMTAyM29jdGV0cxI4ChdwYWNrZXRzMTAyNFRvMTUxOG9jdGV0cxgOIAEoDVIXcGFja2V0czEwMjRUbzE1MThvY3RldHMiQAoQR2V0T251RmVjSGlzdG9yeRIsCgVlbXB0eRgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIFZW1wdHki8gEKGEdldE9udUZlY0hpc3RvcnlSZXNwb25zZRImCg5jb3JyZWN0ZWRCeXRlcxgBIAEoDVIOY29ycmVjdGVkQnl0ZXMSLgoSY29ycmVjdGVkQ29kZVdvcmRzGAIgASgNUhJjb3JyZWN0ZWRDb2RlV29yZHMSHgoKZmVjU2Vjb25kcxgDIAEoDVIKZmVjU2Vjb25kcxImCg50b3RhbENvZGVXb3JkcxgEIAEoDVIOdG90YWxDb2RlV29yZHMSNgoWdW5jb3JyZWN0YWJsZUNvZGVXb3JkcxgFIAEoDVIWdW5jb3JyZWN0YWJsZUNvZGVXb3JkcyJHChVHZXRPbnVDb3VudGVyc1JlcXVlc3QSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQijQEKJUdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlcXVlc3QSIAoLb251RGV2aWNlSWQYASABKAlSC29udURldmljZUlkEhwKCHVuaUluZGV4GAIgASgNSABSCHVuaUluZGV4EhQKBXJlc2V0GAMgASgIUgVyZXNldEIOCgxpc191bmlfaW5kZXgiQwoRR2V0UnhQb3dlclJlcXVlc3QSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQi5AwKFkdldE9udUNvdW50ZXJzUmVzcG9uc2USGQoHaW50Zl9pZBgBIAEoB0gAUgZpbnRmSWQSFwoGb251X2lkGAIgASgHSAFSBW9udUlkEicKDnBvc2l0aXZlX2RyaWZ0GAMgASgGSAJSDXBvc2l0aXZlRHJpZnQSJwoObmVnYXRpdmVfZHJpZnQYBCABKAZIA1INbmVnYXRpdmVEcmlmdBI6ChhkZWxpbWl0ZXJfbWlzc19kZXRlY3Rpb24YBSABKAZIBFIWZGVsaW1pdGVyTWlzc0RldGVjdGlvbhIfCgpiaXBfZXJyb3JzGAYgASgGSAVSCWJpcEVycm9ycxIdCgliaXBfdW5pdHMYByABKAZIBlIIYmlwVW5pdHMSNAoVZmVjX2NvcnJlY3RlZF9zeW1ib2xzGAggASgGSAdSE2ZlY0NvcnJlY3RlZFN5bWJvbHMSOAoXZmVjX2NvZGV3b3Jkc19jb3JyZWN0ZWQYCSABKAZICFIVZmVjQ29kZXdvcmRzQ29ycmVjdGVkEkAKG2ZlY19jb2Rld29yZHNfdW5jb3JyZWN0YWJsZRgKIAEoBkgJUhlmZWNDb2Rld29yZHNVbmNvcnJlY3RhYmxlEiUKDWZlY19jb2Rld29yZHMYCyABKAZIClIMZmVjQ29kZXdvcmRzEjAKE2ZlY19jb3JyZWN0ZWRfdW5pdHMYDCABKAZIC1IRZmVjQ29ycmVjdGVkVW5pdHMSKAoPeGdlbV9rZXlfZXJyb3JzGA0gASgGSAxSDXhnZW1LZXlFcnJvcnMSHQoJeGdlbV9sb3NzGA4gASgGSA1SCHhnZW1Mb3NzEigKD3J4X3Bsb2Ftc19lcnJvchgPIAEoBkgOUg1yeFBsb2Ftc0Vycm9yEi0KEnJ4X3Bsb2Ftc19ub25faWRsZRgQIAEoBkgPUg9yeFBsb2Ftc05vbklkbGUSGQoHcnhfb21jaRgRIAEoBkgQUgZyeE9tY2kSGQoHdHhfb21jaRgSIAEoBkgRUgZ0eE9tY2kSOgoZcnhfb21jaV9wYWNrZXRzX2NyY19lcnJvchgTIAEoBkgSUhVyeE9tY2lQYWNrZXRzQ3JjRXJyb3ISGwoIcnhfYnl0ZXMYFCABKAZIE1IHcnhCeXRlcxIfCgpyeF9wYWNrZXRzGBUgASgGSBRSCXJ4UGFja2V0cxIbCgh0eF9ieXRlcxgWIAEoBkgVUgd0eEJ5dGVzEh8KCnR4X3BhY2tldHMYFyABKAZIFlIJdHhQYWNrZXRzEiMKDGJlcl9yZXBvcnRlZBgYIAEoBkgXUgtiZXJSZXBvcnRlZBIhCgtsY2RnX2Vycm9ycxgZIAEoBkgYUgpsY2RnRXJyb3JzEh8KCnJkaV9lcnJvcnMYGiABKAZIGVIJcmRpRXJyb3JzEh4KCXRpbWVzdGFtcBgbIAEoB0gaUgl0aW1lc3RhbXBCDAoKaXNfaW50Zl9pZEILCglpc19vbnVfaWRCEwoRaXNfcG9zaXRpdmVfZHJpZnRCEwoRaXNfbmVnYXRpdmVfZHJpZnRCHQobaXNfZGVsaW1pdGVyX21pc3NfZGV0ZWN0aW9uQg8KDWlzX2JpcF9lcnJvcnNCDgoMaXNfYmlwX3VuaXRzQhoKGGlzX2ZlY19jb3JyZWN0ZWRfc3ltYm9sc0IcChppc19mZWNfY29kZXdvcmRzX2NvcnJlY3RlZEIgCh5pc19mZWNfY29kZXdvcmRzX3VuY29ycmVjdGFibGVCEgoQaXNfZmVjX2NvZGV3b3Jkc0IYChZpc19mZWNfY29ycmVjdGVkX3VuaXRzQhQKEmlzX3hnZW1fa2V5X2Vycm9yc0IOCgxpc194Z2VtX2xvc3NCFAoSaXNfcnhfcGxvYW1zX2Vycm9yQhcKFWlzX3J4X3Bsb2Ftc19ub25faWRsZUIMCgppc19yeF9vbWNpQgwKCmlzX3R4X29tY2lCHgocaXNfcnhfb21jaV9wYWNrZXRzX2NyY19lcnJvckINCgtpc19yeF9ieXRlc0IPCg1pc19yeF9wYWNrZXRzQg0KC2lzX3R4X2J5dGVzQg8KDWlzX3R4X3BhY2tldHNCEQoPaXNfYmVyX3JlcG9ydGVkQhAKDmlzX2xjZGdfZXJyb3JzQg8KDWlzX3JkaV9lcnJvcnNCDgoMaXNfdGltZXN0YW1wIowFChtPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG0SHwoLZHJvcF9ldmVudHMYASABKAZSCmRyb3BFdmVudHMSFgoGb2N0ZXRzGAIgASgGUgZvY3RldHMSFgoGZnJhbWVzGAMgASgGUgZmcmFtZXMSKQoQYnJvYWRjYXN0X2ZyYW1lcxgEIAEoBlIPYnJvYWRjYXN0RnJhbWVzEikKEG11bHRpY2FzdF9mcmFtZXMYBSABKAZSD211bHRpY2FzdEZyYW1lcxIsChJjcmNfZXJyb3JlZF9mcmFtZXMYBiABKAZSEGNyY0Vycm9yZWRGcmFtZXMSKQoQdW5kZXJzaXplX2ZyYW1lcxgHIAEoBlIPdW5kZXJzaXplRnJhbWVzEicKD292ZXJzaXplX2ZyYW1lcxgIIAEoBlIOb3ZlcnNpemVGcmFtZXMSKAoQZnJhbWVzXzY0X29jdGV0cxgJIAEoBlIOZnJhbWVzNjRPY3RldHMSNAoXZnJhbWVzXzY1X3RvXzEyN19vY3RldHMYCiABKAZSE2ZyYW1lczY1VG8xMjdPY3RldHMSNgoYZnJhbWVzXzEyOF90b18yNTVfb2N0ZXRzGAsgASgGUhRmcmFtZXMxMjhUbzI1NU9jdGV0cxI2ChhmcmFtZXNfMjU2X3RvXzUxMV9vY3RldHMYDCABKAZSFGZyYW1lczI1NlRvNTExT2N0ZXRzEjgKGWZyYW1lc181MTJfdG9fMTAyM19vY3RldHMYDSABKAZSFWZyYW1lczUxMlRvMTAyM09jdGV0cxI6ChpmcmFtZXNfMTAyNF90b18xNTE4X29jdGV0cxgOIAEoBlIWZnJhbWVzMTAyNFRvMTUxOE9jdGV0cyL0AgomR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVzcG9uc2USQgoIdXBzdHJlYW0YASABKAsyJi5leHRlbnNpb24uT21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUgh1cHN0cmVhbRJGCgpkb3duc3RyZWFtGAIgASgLMiYuZXh0ZW5zaW9uLk9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVIKZG93bnN0cmVhbRKLAQomb21jaV9ldGhlcm5ldF9mcmFtZV9leHRlbmRlZF9wbV9mb3JtYXQYAyABKA4yOC5leHRlbnNpb24uR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVzcG9uc2UuRm9ybWF0UiFvbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1Gb3JtYXQiMAoGRm9ybWF0EhIKDlRISVJUWV9UV09fQklUEAASEgoOU0lYVFlfRk9VUl9CSVQQASKYAQoSR2V0UnhQb3dlclJlc3BvbnNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEh8KC2ZhaWxfcmVhc29uGAQgASgJUgpmYWlsUmVhc29uEhkKCHJ4X3Bvd2VyGAUgASgBUgdyeFBvd2VyIkoKGkdldE9udU9tY2lUeFJ4U3RhdHNSZXF1ZXN0EiwKBWVtcHR5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgVlbXB0eSLxAwobR2V0T251T21jaVR4UnhTdGF0c1Jlc3BvbnNlEikKEWJhc2VfdHhfYXJfZnJhbWVzGAEgASgNUg5iYXNlVHhBckZyYW1lcxIpChFiYXNlX3J4X2FrX2ZyYW1lcxgCIAEoDVIOYmFzZVJ4QWtGcmFtZXMSLgoUYmFzZV90eF9ub19hcl9mcmFtZXMYAyABKA1SEGJhc2VUeE5vQXJGcmFtZXMSLgoUYmFzZV9yeF9ub19ha19mcmFtZXMYBCABKA1SEGJhc2VSeE5vQWtGcmFtZXMSJwoQZXh0X3R4X2FyX2ZyYW1lcxgFIAEoDVINZXh0VHhBckZyYW1lcxInChBleHRfcnhfYWtfZnJhbWVzGAYgASgNUg1leHRSeEFrRnJhbWVzEiwKE2V4dF90eF9ub19hcl9mcmFtZXMYByABKA1SD2V4dFR4Tm9BckZyYW1lcxIsChNleHRfcnhfbm9fYWtfZnJhbWVzGAggASgNUg9leHRSeE5vQWtGcmFtZXMSNQoXdHhfb21jaV9jb3VudGVyX3JldHJpZXMYCSABKA1SFHR4T21jaUNvdW50ZXJSZXRyaWVzEjcKGHR4X29tY2lfY291bnRlcl90aW1lb3V0cxgKIAEoDVIVdHhPbWNpQ291bnRlclRpbWVvdXRzItAFCg9HZXRWYWx1ZVJlcXVlc3QSOwoIZGlzdGFuY2UYASABKAsyHS5leHRlbnNpb24uR2V0RGlzdGFuY2VSZXF1ZXN0SABSCGRpc3RhbmNlEjsKB3VuaUluZm8YAiABKAsyHy5leHRlbnNpb24uR2V0T251VW5pSW5mb1JlcXVlc3RIAFIHdW5pSW5mbxJBCgtvbHRQb3J0SW5mbxgDIAEoCzIdLmV4dGVuc2lvbi5HZXRPbHRQb3J0Q291bnRlcnNIAFILb2x0UG9ydEluZm8SSQoOb251T3B0aWNhbEluZm8YBCABKAsyHy5leHRlbnNpb24uR2V0T251UG9uT3B0aWNhbEluZm9IAFIOb251T3B0aWNhbEluZm8SUgoNZXRoQnJpZGdlUG9ydBgFIAEoCzIqLmV4dGVuc2lvbi5HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5SABSDWV0aEJyaWRnZVBvcnQSPQoKZmVjSGlzdG9yeRgGIAEoCzIbLmV4dGVuc2lvbi5HZXRPbnVGZWNIaXN0b3J5SABSCmZlY0hpc3RvcnkSQgoKb251UG9uSW5mbxgHIAEoCzIgLmV4dGVuc2lvbi5HZXRPbnVDb3VudGVyc1JlcXVlc3RIAFIKb251UG9uSW5mbxJMCgdvbnVJbmZvGAggASgLMjAuZXh0ZW5zaW9uLkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlcXVlc3RIAFIHb251SW5mbxI4CgdyeFBvd2VyGAkgASgLMhwuZXh0ZW5zaW9uLkdldFJ4UG93ZXJSZXF1ZXN0SABSB3J4UG93ZXISSwoMb251T21jaVN0YXRzGAogASgLMiUuZXh0ZW5zaW9uLkdldE9udU9tY2lUeFJ4U3RhdHNSZXF1ZXN0SABSDG9udU9tY2lTdGF0c0IJCgdyZXF1ZXN0IvgIChBHZXRWYWx1ZVJlc3BvbnNlEjoKBnN0YXR1cxgBIAEoDjIiLmV4dGVuc2lvbi5HZXRWYWx1ZVJlc3BvbnNlLlN0YXR1c1IGc3RhdHVzEkUKCWVyclJlYXNvbhgCIAEoDjInLmV4dGVuc2lvbi5HZXRWYWx1ZVJlc3BvbnNlLkVycm9yUmVhc29uUgllcnJSZWFzb24SPAoIZGlzdGFuY2UYAyABKAsyHi5leHRlbnNpb24uR2V0RGlzdGFuY2VSZXNwb25zZUgAUghkaXN0YW5jZRI8Cgd1bmlJbmZvGAQgASgLMiAuZXh0ZW5zaW9uLkdldE9udVVuaUluZm9SZXNwb25zZUgAUgd1bmlJbmZvEksKDHBvcnRDb3V0bmVycxgFIAEoCzIlLmV4dGVuc2lvbi5HZXRPbHRQb3J0Q291bnRlcnNSZXNwb25zZUgAUgxwb3J0Q291dG5lcnMSUQoOb251T3B0aWNhbEluZm8YBiABKAsyJy5leHRlbnNpb24uR2V0T251UG9uT3B0aWNhbEluZm9SZXNwb25zZUgAUg5vbnVPcHRpY2FsSW5mbxJiChFldGhCcmlkZ2VQb3J0SW5mbxgHIAEoCzIyLmV4dGVuc2lvbi5HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5UmVzcG9uc2VIAFIRZXRoQnJpZGdlUG9ydEluZm8SRQoKZmVjSGlzdG9yeRgIIAEoCzIjLmV4dGVuc2lvbi5HZXRPbnVGZWNIaXN0b3J5UmVzcG9uc2VIAFIKZmVjSGlzdG9yeRJLCg5vbnVQb25Db3VudGVycxgJIAEoCzIhLmV4dGVuc2lvbi5HZXRPbnVDb3VudGVyc1Jlc3BvbnNlSABSDm9udVBvbkNvdW50ZXJzElUKC29udUNvdW50ZXJzGAogASgLMjEuZXh0ZW5zaW9uLkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlc3BvbnNlSABSC29udUNvdW50ZXJzEjkKB3J4UG93ZXIYCyABKAsyHS5leHRlbnNpb24uR2V0UnhQb3dlclJlc3BvbnNlSABSB3J4UG93ZXISTAoMb251T21jaVN0YXRzGAwgASgLMiYuZXh0ZW5zaW9uLkdldE9udU9tY2lUeFJ4U3RhdHNSZXNwb25zZUgAUgxvbnVPbWNpU3RhdHMiMQoGU3RhdHVzEhQKEFNUQVRVU19VTkRFRklORUQQABIGCgJPSxABEgkKBUVSUk9SEAIirQEKC0Vycm9yUmVhc29uEhQKEFJFQVNPTl9VTkRFRklORUQQABIPCgtVTlNVUFBPUlRFRBABEhUKEUlOVkFMSURfREVWSUNFX0lEEAISFQoRSU5WQUxJRF9QT1JUX1RZUEUQAxILCgdUSU1FT1VUEAQSFAoQSU5WQUxJRF9SRVFfVFlQRRAFEhIKDklOVEVSTkFMX0VSUk9SEAYSEgoOSU5WQUxJRF9ERVZJQ0UQB0IKCghyZXNwb25zZSJWCg9TZXRWYWx1ZVJlcXVlc3QSOAoMYWxhcm1fY29uZmlnGAEgASgLMhMuY29uZmlnLkFsYXJtQ29uZmlnSABSC2FsYXJtQ29uZmlnQgkKB3JlcXVlc3Qi/gEKEFNldFZhbHVlUmVzcG9uc2USOgoGc3RhdHVzGAEgASgOMiIuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2UuU3RhdHVzUgZzdGF0dXMSRQoJZXJyUmVhc29uGAIgASgOMicuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2UuRXJyb3JSZWFzb25SCWVyclJlYXNvbiIxCgZTdGF0dXMSFAoQU1RBVFVTX1VOREVGSU5FRBAAEgYKAk9LEAESCQoFRVJST1IQAiI0CgtFcnJvclJlYXNvbhIUChBSRUFTT05fVU5ERUZJTkVEEAASDwoLVU5TVVBQT1JURUQQASJpChVTaW5nbGVHZXRWYWx1ZVJlcXVlc3QSGgoIdGFyZ2V0SWQYASABKAlSCHRhcmdldElkEjQKB3JlcXVlc3QYAiABKAsyGi5leHRlbnNpb24uR2V0VmFsdWVSZXF1ZXN0UgdyZXF1ZXN0IlEKFlNpbmdsZUdldFZhbHVlUmVzcG9uc2USNwoIcmVzcG9uc2UYASABKAsyGy5leHRlbnNpb24uR2V0VmFsdWVSZXNwb25zZVIIcmVzcG9uc2UiaQoVU2luZ2xlU2V0VmFsdWVSZXF1ZXN0EhoKCHRhcmdldElkGAEgASgJUgh0YXJnZXRJZBI0CgdyZXF1ZXN0GAIgASgLMhouZXh0ZW5zaW9uLlNldFZhbHVlUmVxdWVzdFIHcmVxdWVzdCJRChZTaW5nbGVTZXRWYWx1ZVJlc3BvbnNlEjcKCHJlc3BvbnNlGAEgASgLMhsuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2VSCHJlc3BvbnNlMrMBCglFeHRlbnNpb24SUgoLR2V0RXh0VmFsdWUSIC5leHRlbnNpb24uU2luZ2xlR2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVzcG9uc2USUgoLU2V0RXh0VmFsdWUSIC5leHRlbnNpb24uU2luZ2xlU2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVzcG9uc2VCUgodb3JnLm9wZW5jb3JkLnZvbHRoYS5leHRlbnNpb25aMWdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9leHRlbnNpb25K3IUBCgcSBQ4AvQMBCtEECgEMEgMOABIyxgQgQ29weXJpZ2h0IChjKSAyMDE4IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGlu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KAsyFS5vbWNpLk1pYkluc3RhbmNlRGF0YVIJaW5zdGFuY2VzIj4KDU1hbmFnZWRFbnRpdHkSGQoIY2xhc3NfaWQYASABKA1SB2NsYXNzSWQSEgoEbmFtZRgCIAEoCVIEbmFtZSIwCgtNZXNzYWdlVHlwZRIhCgxtZXNzYWdlX3R5cGUYASABKA1SC21lc3NhZ2VUeXBlItACCg1NaWJEZXZpY2VEYXRhEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSGAoHY3JlYXRlZBgCIAEoCVIHY3JlYXRlZBIkCg5sYXN0X3N5bmNfdGltZRgDIAEoCVIMbGFzdFN5bmNUaW1lEiIKDW1pYl9kYXRhX3N5bmMYBCABKA1SC21pYkRhdGFTeW5jEhgKB3ZlcnNpb24YBSABKA1SB3ZlcnNpb24SLAoHY2xhc3NlcxgGIAMoCzISLm9tY2kuTWliQ2xhc3NEYXRhUgdjbGFzc2VzEj4KEG1hbmFnZWRfZW50aXRpZXMYByADKAsyEy5vbWNpLk1hbmFnZWRFbnRpdHlSD21hbmFnZWRFbnRpdGllcxI2Cg1tZXNzYWdlX3R5cGVzGAggAygLMhEub21jaS5NZXNzYWdlVHlwZVIMbWVzc2FnZVR5cGVzIi4KEU9wZW5PbWNpRXZlbnRUeXBlIhkKBVR5cGVzEhAKDHN0YXRlX2NoYW5nZRAAIlYKDU9wZW5PbWNpRXZlbnQSMQoEdHlwZRgBIAEoDjIdLm9tY2kuT3Blbk9tY2lFdmVudFR5cGUuVHlwZXNSBHR5cGUSEgoEZGF0YRgCIAEoCVIEZGF0YUJIChhvcmcub3BlbmNvcmQudm9sdGhhLm9tY2laLGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vbWNpSrcTCgYSBA8ASQEK3gQKAQwSAw8AEhrTBAogQ29weXJpZ2h0IDIwMTggLSBwcmVzZW50IHRoZSBvcmlnaW5hbCBhdXRob3Igb3IgYXV0aG9ycy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0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YXNzX2lkGAEgASgNUgdjbGFzc0lkEhIKBG5hbWUYAiABKAlSBG5hbWUiNQoQQWxhcm1NZXNzYWdlVHlwZRIhCgxtZXNzYWdlX3R5cGUYASABKA1SC21lc3NhZ2VUeXBlIuoCCg9BbGFybURldmljZURhdGESGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEi4KE2xhc3RfYWxhcm1fc2VxdWVuY2UYAyABKA1SEWxhc3RBbGFybVNlcXVlbmNlEiQKDmxhc3Rfc3luY190aW1lGAQgASgJUgxsYXN0U3luY1RpbWUSGAoHdmVyc2lvbhgFIAEoDVIHdmVyc2lvbhIuCgdjbGFzc2VzGAYgAygLMhQub21jaS5BbGFybUNsYXNzRGF0YVIHY2xhc3NlcxJDChBtYW5hZ2VkX2VudGl0aWVzGAcgAygLMhgub21jaS5BbGFybU1hbmFnZWRFbnRpdHlSD21hbmFnZWRFbnRpdGllcxI7Cg1tZXNzYWdlX3R5cGVzGAggAygLMhYub21jaS5BbGFybU1lc3NhZ2VUeXBlUgxtZXNzYWdlVHlwZXMiPwoWQWxhcm1PcGVuT21jaUV2ZW50VHlwZSIlChFPcGVuT21jaUV2ZW50VHlwZRIQCgxzdGF0ZV9jaGFuZ2UQACJsChJBbGFybU9wZW5PbWNpRXZlbnQSQgoEdHlwZRgBIAEoDjIuLm9tY2kuQWxhcm1PcGVuT21jaUV2ZW50VHlwZS5PcGVuT21jaUV2ZW50VHlwZVIEdHlwZRISCgRkYXRhGAIgASgJUgRkYXRhQkgKGG9yZy5vcGVuY29yZC52b2x0aGEub21jaVosZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29tY2lKtxMKBhIEDwBLAQreBAoBDBIDDwASGtMECiBDb3B5cmlnaHQgMjAxOCAtIHByZXNlbnQgdGhlIG9yaWdpbmFsIGF1dGhvciBvciBhdXRob3JzLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t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FwoLCgQEAAIAEgMJBBIKDQoFBAACAAQSBAkECBkKDAoFBAACAAUSAwkECgoMCgUEAAIAARIDCQsNCgwKBQQAAgADEgMJEBEKCwoEBAACARIDCgQUCg0KBQQAAgEEEgQKBAkSCgwKBQQAAgEFEgMKBAoKDAoFBAACAQESAwoLDwoMCgUEAAIBAxIDChITCgoKAgQBEgQNABMBCgoKAwQBARIDDQgUCgwKBAQBBAASBA4EEQUKDAoFBAEEAAESAw4JGwoNCgYEAQQAAgASAw8IFAoOCgcEAQQAAgABEgMPCA8KDgoHBAEEAAIAAhIDDxITCg0KBgQBBAACARIDEAgUCg4KBwQBBAACAQESAxAIDwoOCgcEAQQAAgECEgMQEhMKCwoEBAECABIDEgQiCg0KBQQBAgAEEgQSBBEFCgwKBQQBAgAGEgMSBBYKDAoFBAECAAESAxIXHQoMCgUEAQIAAxIDEiAhYgZwcm90bzMK3J0BChp2b2x0aGFfcHJvdG9zL3ZvbHRoYS5wcm90bxIGdm9sdGhhGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxoidm9sdGhhX3Byb3Rvcy9sb2dpY2FsX2RldmljZS5wcm90bxoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8aG3ZvbHRoYV9wcm90b3MvYWRhcHRlci5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxoadm9sdGhhX3Byb3Rvcy9ldmVudHMucHJvdG8aHnZvbHRoYV9wcm90b3MvZXh0ZW5zaW9ucy5wcm90bxofdm9sdGhhX3Byb3Rvcy9vbWNpX21pYl9kYi5wcm90bxohdm9sdGhhX3Byb3Rvcy9vbWNpX2FsYXJtX2RiLnByb3RvGh12b2x0aGFfcHJvdG9zL29tY2lfdGVzdC5wcm90byJdCgxDb3JlSW5zdGFuY2USHwoLaW5zdGFuY2VfaWQYASABKAlSCmluc3RhbmNlSWQSLAoGaGVhbHRoGAIgASgLMhQuaGVhbHRoLkhlYWx0aFN0YXR1c1IGaGVhbHRoIjsKDUNvcmVJbnN0YW5jZXMSKgoFaXRlbXMYASADKAsyFC52b2x0aGEuQ29yZUluc3RhbmNlUgVpdGVtcyLAAwoGVm9sdGhhEhgKB3ZlcnNpb24YASABKAlSB3ZlcnNpb24SLAoIYWRhcHRlcnMYAiADKAsyEC5hZGFwdGVyLkFkYXB0ZXJSCGFkYXB0ZXJzEkYKD2xvZ2ljYWxfZGV2aWNlcxgDIAMoCzIdLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxEZXZpY2VSDmxvZ2ljYWxEZXZpY2VzEigKB2RldmljZXMYBCADKAsyDi5kZXZpY2UuRGV2aWNlUgdkZXZpY2VzEjUKDGRldmljZV90eXBlcxgFIAMoCzISLmRldmljZS5EZXZpY2VUeXBlUgtkZXZpY2VUeXBlcxI3Cg1ldmVudF9maWx0ZXJzGAcgAygLMhIuZXZlbnQuRXZlbnRGaWx0ZXJSDGV2ZW50RmlsdGVycxI/ChFvbWNpX21pYl9kYXRhYmFzZRgcIAMoCzITLm9tY2kuTWliRGV2aWNlRGF0YVIPb21jaU1pYkRhdGFiYXNlEkUKE29tY2lfYWxhcm1fZGF0YWJhc2UYHSADKAsyFS5vbWNpLkFsYXJtRGV2aWNlRGF0YVIRb21jaUFsYXJtRGF0YWJhc2VKBAgGEAcyxzMKDVZvbHRoYVNlcnZpY2USRAoJR2V0Vm9sdGhhEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gg4udm9sdGhhLlZvbHRoYSIPgtPkkwIJEgcvYXBpL3YxEl0KEUxpc3RDb3JlSW5zdGFuY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhUudm9sdGhhLkNvcmVJbnN0YW5jZXMiGYLT5JMCExIRL2FwaS92MS9pbnN0YW5jZXMSUwoPR2V0Q29yZUluc3RhbmNlEgouY29tbW9uLklEGhQudm9sdGhhLkNvcmVJbnN0YW5jZSIegtPkkwIYEhYvYXBpL3YxL2luc3RhbmNlcy97aWR9ElMKDExpc3RBZGFwdGVycxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoRLmFkYXB0ZXIuQWRhcHRlcnMiGILT5JMCEhIQL2FwaS92MS9hZGFwdGVycxJtChJMaXN0TG9naWNhbERldmljZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaHi5sb2dpY2FsX2RldmljZS5Mb2dpY2FsRGV2aWNlcyIfgtPkkwIZEhcvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcxJjChBHZXRMb2dpY2FsRGV2aWNlEgouY29tbW9uLklEGh0ubG9naWNhbF9kZXZpY2UuTG9naWNhbERldmljZSIkgtPkkwIeEhwvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9Em4KFkxpc3RMb2dpY2FsRGV2aWNlUG9ydHMSCi5jb21tb24uSUQaHC5sb2dpY2FsX2RldmljZS5Mb2dpY2FsUG9ydHMiKoLT5JMCJBIiL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cxKIAQoUR2V0TG9naWNhbERldmljZVBvcnQSHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsUG9ydElkGhsubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnQiNILT5JMCLhIsL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0SjQEKF0VuYWJsZUxvZ2ljYWxEZXZpY2VQb3J0Eh0ubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnRJZBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI7gtPkkwI1IjMvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzL3twb3J0X2lkfS9lbmFibGUSjwEKGERpc2FibGVMb2dpY2FsRGV2aWNlUG9ydBIdLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0SWQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiPILT5JMCNiI0L2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0vZGlzYWJsZRJkChZMaXN0TG9naWNhbERldmljZUZsb3dzEgouY29tbW9uLklEGhIub3BlbmZsb3dfMTMuRmxvd3MiKoLT5JMCJBIiL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9mbG93cxKDAQocVXBkYXRlTG9naWNhbERldmljZUZsb3dUYWJsZRIcLm9wZW5mbG93XzEzLkZsb3dUYWJsZVVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSItgtPkkwInIiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dzOgEqEoQBCh1VcGRhdGVMb2dpY2FsRGV2aWNlTWV0ZXJUYWJsZRIbLm9wZW5mbG93XzEzLk1ldGVyTW9kVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii6C0+STAigiIy9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vbWV0ZXJzOgEqEmcKF0xpc3RMb2dpY2FsRGV2aWNlTWV0ZXJzEgouY29tbW9uLklEGhMub3BlbmZsb3dfMTMuTWV0ZXJzIiuC0+STAiUSIy9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vbWV0ZXJzEnQKG0xpc3RMb2dpY2FsRGV2aWNlRmxvd0dyb3VwcxIKLmNvbW1vbi5JRBoXLm9wZW5mbG93XzEzLkZsb3dHcm91cHMiMILT5JMCKhIoL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9mbG93X2dyb3VwcxKTAQohVXBkYXRlTG9naWNhbERldmljZUZsb3dHcm91cFRhYmxlEiEub3BlbmZsb3dfMTMuRmxvd0dyb3VwVGFibGVVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiM4LT5JMCLSIoL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9mbG93X2dyb3VwczoBKhJPCgtMaXN0RGV2aWNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoPLmRldmljZS5EZXZpY2VzIheC0+STAhESDy9hcGkvdjEvZGV2aWNlcxJPCg1MaXN0RGV2aWNlSWRzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GgsuY29tbW9uLklEcyIZgtPkkwITEhEvYXBpL3YxL2RldmljZWlkcxJVChBSZWNvbmNpbGVEZXZpY2VzEgsuY29tbW9uLklEcxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIcgtPkkwIWIhEvYXBpL3YxL2RldmljZWlkczoBKhJFCglHZXREZXZpY2USCi5jb21tb24uSUQaDi5kZXZpY2UuRGV2aWNlIhyC0+STAhYSFC9hcGkvdjEvZGV2aWNlcy97aWR9EkoKDENyZWF0ZURldmljZRIOLmRldmljZS5EZXZpY2UaDi5kZXZpY2UuRGV2aWNlIhqC0+STAhQiDy9hcGkvdjEvZGV2aWNlczoBKhJXCgxFbmFibGVEZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiI4LT5JMCHSIbL2FwaS92MS9kZXZpY2VzL3tpZH0vZW5hYmxlElkKDURpc2FibGVEZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJILT5JMCHiIcL2FwaS92MS9kZXZpY2VzL3tpZH0vZGlzYWJsZRJXCgxSZWJvb3REZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiI4LT5JMCHSIbL2FwaS92MS9kZXZpY2VzL3tpZH0vcmVib290ElcKDERlbGV0ZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIjgtPkkwIdKhsvYXBpL3YxL2RldmljZXMve2lkfS9kZWxldGUSYgoRRm9yY2VEZWxldGVEZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKYLT5JMCIyohL2FwaS92MS9kZXZpY2VzL3tpZH0vZm9yY2VfZGVsZXRlEngKDURvd25sb2FkSW1hZ2USFS5kZXZpY2UuSW1hZ2VEb3dubG9hZBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIjmIAgGC0+STAjAiKy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX06ASoShQEKFkdldEltYWdlRG93bmxvYWRTdGF0dXMSFS5kZXZpY2UuSW1hZ2VEb3dubG9hZBoVLmRldmljZS5JbWFnZURvd25sb2FkIj2IAgGC0+STAjQSMi9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0vc3RhdHVzEngKEEdldEltYWdlRG93bmxvYWQSFS5kZXZpY2UuSW1hZ2VEb3dubG9hZBoVLmRldmljZS5JbWFnZURvd25sb2FkIjaIAgGC0+STAi0SKy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0SaQoSTGlzdEltYWdlRG93bmxvYWRzEgouY29tbW9uLklEGhYuZGV2aWNlLkltYWdlRG93bmxvYWRzIi+IAgGC0+STAiYSJC9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2FkcxJ7ChNDYW5jZWxJbWFnZURvd25sb2FkEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5jb21tb24uT3BlcmF0aW9uUmVzcCI2iAIBgtPkkwItKisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9EosBChNBY3RpdmF0ZUltYWdlVXBkYXRlEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5jb21tb24uT3BlcmF0aW9uUmVzcCJGiAIBgtPkkwI9IjgvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L2ltYWdlX3VwZGF0ZToBKhKJAQoRUmV2ZXJ0SW1hZ2VVcGRhdGUSFS5kZXZpY2UuSW1hZ2VEb3dubG9hZBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIkaIAgGC0+STAj0iOC9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0vaW1hZ2VfcmV2ZXJ0OgEqEogBChVEb3dubG9hZEltYWdlVG9EZXZpY2USIi5kZXZpY2UuRGV2aWNlSW1hZ2VEb3dubG9hZFJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZSIugtPkkwIoEiYvYXBpL3YxL2RldmljZXMvaW1hZ2VzL2Rvd25sb2FkX2ltYWdlcxJ3Cg5HZXRJbWFnZVN0YXR1cxIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZSIsgtPkkwImEiQvYXBpL3YxL2RldmljZXMvaW1hZ2VzL2ltYWdlc19zdGF0dXMSiQEKGUFib3J0SW1hZ2VVcGdyYWRlVG9EZXZpY2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiM4LT5JMCLRIrL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9hYm9ydF91cGdyYWRlX2ltYWdlcxJWCgxHZXRPbnVJbWFnZXMSCi5jb21tb24uSUQaES5kZXZpY2UuT251SW1hZ2VzIieC0+STAiESHy9hcGkvdjEvZGV2aWNlcy97aWR9L29udV9pbWFnZXMSewoNQWN0aXZhdGVJbWFnZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZSIxgtPkkwIrIiYvYXBpL3YxL2RldmljZXMvaW1hZ2VzL2FjdGl2YXRlX2ltYWdlczoBKhJ3CgtDb21taXRJbWFnZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZSIvgtPkkwIpIiQvYXBpL3YxL2RldmljZXMvaW1hZ2VzL2NvbW1pdF9pbWFnZXM6ASoSUAoPTGlzdERldmljZVBvcnRzEgouY29tbW9uLklEGg0uZGV2aWNlLlBvcnRzIiKC0+STAhwSGi9hcGkvdjEvZGV2aWNlcy97aWR9L3BvcnRzEl0KE0xpc3REZXZpY2VQbUNvbmZpZ3MSCi5jb21tb24uSUQaES5kZXZpY2UuUG1Db25maWdzIieC0+STAiESHy9hcGkvdjEvZGV2aWNlcy97aWR9L3BtX2NvbmZpZ3MSbgoVVXBkYXRlRGV2aWNlUG1Db25maWdzEhEuZGV2aWNlLlBtQ29uZmlncxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIqgtPkkwIkIh8vYXBpL3YxL2RldmljZXMve2lkfS9wbV9jb25maWdzOgEqElUKD0xpc3REZXZpY2VGbG93cxIKLmNvbW1vbi5JRBoSLm9wZW5mbG93XzEzLkZsb3dzIiKC0+STAhwSGi9hcGkvdjEvZGV2aWNlcy97aWR9L2Zsb3dzEmUKFExpc3REZXZpY2VGbG93R3JvdXBzEgouY29tbW9uLklEGhcub3BlbmZsb3dfMTMuRmxvd0dyb3VwcyIogtPkkwIiEiAvYXBpL3YxL2RldmljZXMve2lkfS9mbG93X2dyb3VwcxJcCg9MaXN0RGV2aWNlVHlwZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEy5kZXZpY2UuRGV2aWNlVHlwZXMiHILT5JMCFhIUL2FwaS92MS9kZXZpY2VfdHlwZXMSUgoNR2V0RGV2aWNlVHlwZRIKLmNvbW1vbi5JRBoSLmRldmljZS5EZXZpY2VUeXBlIiGC0+STAhsSGS9hcGkvdjEvZGV2aWNlX3R5cGVzL3tpZH0SRgoQU3RyZWFtUGFja2V0c091dBIWLm9wZW5mbG93XzEzLlBhY2tldE91dBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAKAESRQoQUmVjZWl2ZVBhY2tldHNJbhIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoVLm9wZW5mbG93XzEzLlBhY2tldEluIgAwARJLChNSZWNlaXZlQ2hhbmdlRXZlbnRzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ghgub3BlbmZsb3dfMTMuQ2hhbmdlRXZlbnQiADABEl0KEUNyZWF0ZUV2ZW50RmlsdGVyEhIuZXZlbnQuRXZlbnRGaWx0ZXIaEi5ldmVudC5FdmVudEZpbHRlciIggtPkkwIaIhUvYXBpL3YxL2V2ZW50X2ZpbHRlcnM6ASoSVQoOR2V0RXZlbnRGaWx0ZXISCi5jb21tb24uSUQaEy5ldmVudC5FdmVudEZpbHRlcnMiIoLT5JMCHBIaL2FwaS92MS9ldmVudF9maWx0ZXJzL3tpZH0SYgoRVXBkYXRlRXZlbnRGaWx0ZXISEi5ldmVudC5FdmVudEZpbHRlchoSLmV2ZW50LkV2ZW50RmlsdGVyIiWC0+STAh8aGi9hcGkvdjEvZXZlbnRfZmlsdGVycy97aWR9OgEqEmMKEURlbGV0ZUV2ZW50RmlsdGVyEhIuZXZlbnQuRXZlbnRGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIoLT5JMCHCoaL2FwaS92MS9ldmVudF9maWx0ZXJzL3tpZH0SXgoQTGlzdEV2ZW50RmlsdGVycxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoTLmV2ZW50LkV2ZW50RmlsdGVycyIdgtPkkwIXEhUvYXBpL3YxL2V2ZW50X2ZpbHRlcnMSTAoJR2V0SW1hZ2VzEgouY29tbW9uLklEGg4uZGV2aWNlLkltYWdlcyIjgtPkkwIdEhsvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZXMSWAoIU2VsZlRlc3QSCi5jb21tb24uSUQaGC5kZXZpY2UuU2VsZlRlc3RSZXNwb25zZSImgtPkkwIgIh4vYXBpL3YxL2RldmljZXMve2lkfS9zZWxmX3Rlc3QSVgoQR2V0TWliRGV2aWNlRGF0YRIKLmNvbW1vbi5JRBoTLm9tY2kuTWliRGV2aWNlRGF0YSIhgtPkkwIbEhkvYXBpL3YxL29wZW5vbWNpL3tpZH0vbWliElwKEkdldEFsYXJtRGV2aWNlRGF0YRIKLmNvbW1vbi5JRBoVLm9tY2kuQWxhcm1EZXZpY2VEYXRhIiOC0+STAh0SGy9hcGkvdjEvb3Blbm9tY2kve2lkfS9hbGFybRJzCg1TaW11bGF0ZUFsYXJtEhwuZGV2aWNlLlNpbXVsYXRlQWxhcm1SZXF1ZXN0GhUuY29tbW9uLk9wZXJhdGlvblJlc3AiLYLT5JMCJyIiL2FwaS92MS9kZXZpY2VzL3tpZH0vc2ltdWxhdGVfbGFybToBKhJNCgpFbmFibGVQb3J0EgwuZGV2aWNlLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGYLT5JMCEyIOL3YxL0VuYWJsZVBvcnQ6ASoSTwoLRGlzYWJsZVBvcnQSDC5kZXZpY2UuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIagtPkkwIUIg8vdjEvRGlzYWJsZVBvcnQ6ASoSXgoLR2V0RXh0VmFsdWUSGS5leHRlbnNpb24uVmFsdWVTcGVjaWZpZXIaFy5leHRlbnNpb24uUmV0dXJuVmFsdWVzIhuC0+STAhUSEy9hcGkvdjEvR2V0RXh0VmFsdWUSVwoLU2V0RXh0VmFsdWUSEy5leHRlbnNpb24uVmFsdWVTZXQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiG4LT5JMCFRITL2FwaS92MS9TZXRFeHRWYWx1ZRJkChNTdGFydE9tY2lUZXN0QWN0aW9uEhUub21jaS5PbWNpVGVzdFJlcXVlc3QaEi5vbWNpLlRlc3RSZXNwb25zZSIigtPkkwIcIhcvYXBpL3YxL3N0YXJ0X29tY2lfdGVzdDoBKkJsChNvcmcub3BlbmNvcmQudm9sdGhhQgxWb2x0aGFQcm90b3NaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby92b2x0aGGq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b2x0aGFfcHJvdG9zL2FkYXB0ZXIucHJvdG8aGnZvbHRoYV9wcm90b3MvZGV2aWNlLnByb3RvGh52b2x0aGFfcHJvdG9zL2V4dGVuc2lvbnMucHJvdG8aHXZvbHRoYV9wcm90b3Mvb21jaV90ZXN0LnByb3RvIm4KE0FkYXB0ZXJSZWdpc3RyYXRpb24SKgoHYWRhcHRlchgBIAEoCzIQLmFkYXB0ZXIuQWRhcHRlclIHYWRhcHRlchIrCgZkVHlwZXMYAiABKAsyEy5kZXZpY2UuRGV2aWNlVHlwZXNSBmRUeXBlcyKSAQoRQ2hpbGREZXZpY2VGaWx0ZXISGwoJcGFyZW50X2lkGAEgASgJUghwYXJlbnRJZBIjCg1zZXJpYWxfbnVtYmVyGAIgASgJUgxzZXJpYWxOdW1iZXISFQoGb251X2lkGAMgASgNUgVvbnVJZBIkCg5wYXJlbnRfcG9ydF9ubxgEIAEoDVIMcGFyZW50UG9ydE5vInEKClBvcnRGaWx0ZXISGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBISCgRwb3J0GAIgASgNUgRwb3J0EjIKCXBvcnRfdHlwZRgDIAEoDjIVLmRldmljZS5Qb3J0LlBvcnRUeXBlUghwb3J0VHlwZSL4AQoPRGV2aWNlRGlzY292ZXJ5EhsKCXBhcmVudF9pZBgBIAEoCVIIcGFyZW50SWQSJAoOcGFyZW50X3BvcnRfbm8YAiABKA1SDHBhcmVudFBvcnRObxIqChFjaGlsZF9kZXZpY2VfdHlwZRgDIAEoCVIPY2hpbGREZXZpY2VUeXBlEh0KCmNoYW5uZWxfaWQYBCABKA1SCWNoYW5uZWxJZBIbCgl2ZW5kb3JfaWQYBSABKAlSCHZlbmRvcklkEiMKDXNlcmlhbF9udW1iZXIYBiABKAlSDHNlcmlhbE51bWJlchIVCgZvbnVfaWQYByABKA1SBW9udUlkItMBChFEZXZpY2VTdGF0ZUZpbHRlchIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEigKEHBhcmVudF9kZXZpY2VfaWQYAiABKAlSDnBhcmVudERldmljZUlkEjkKC29wZXJfc3RhdHVzGAMgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNSCm9wZXJTdGF0dXMSPAoLY29ubl9zdGF0dXMYBCABKA4yGy5jb21tb24uQ29ubmVjdFN0YXR1cy5UeXBlc1IKY29ublN0YXR1cyKwAQoJUG9ydFN0YXRlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSMgoJcG9ydF90eXBlGAIgASgOMhUuZGV2aWNlLlBvcnQuUG9ydFR5cGVSCHBvcnRUeXBlEhcKB3BvcnRfbm8YAyABKA1SBnBvcnRObxI5CgtvcGVyX3N0YXR1cxgEIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzIpMBCg9Qb3J0U3RhdGVGaWx0ZXISGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIoChBwb3J0X3R5cGVfZmlsdGVyGAIgASgNUg5wb3J0VHlwZUZpbHRlchI5CgtvcGVyX3N0YXR1cxgEIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzIlMKCFBhY2tldEluEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSEgoEcG9ydBgCIAEoDVIEcG9ydBIWCgZwYWNrZXQYAyABKAxSBnBhY2tldCKDAQoJUGFja2V0T3V0EhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSJAoOZWdyZXNzX3BvcnRfbm8YAiABKA1SDGVncmVzc1BvcnRObxIzCgZwYWNrZXQYAyABKAsyGy5vcGVuZmxvd18xMy5vZnBfcGFja2V0X291dFIGcGFja2V0IkMKDERldmljZVJlYXNvbhIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhYKBnJlYXNvbhgCIAEoCVIGcmVhc29uIs4BCglCdWxrRmxvd3MSJgoGZGV2aWNlGAEgASgLMg4uZGV2aWNlLkRldmljZVIGZGV2aWNlEigKBWZsb3dzGAIgASgLMhIub3BlbmZsb3dfMTMuRmxvd3NSBWZsb3dzEi8KBmdyb3VwcxgDIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSBmdyb3VwcxI+Cg1mbG93X21ldGFkYXRhGAQgASgLMhkub3BlbmZsb3dfMTMuRmxvd01ldGFkYXRhUgxmbG93TWV0YWRhdGEi4QEKEEluY3JlbWVudGFsRmxvd3MSJgoGZGV2aWNlGAEgASgLMg4uZGV2aWNlLkRldmljZVIGZGV2aWNlEi4KBWZsb3dzGAIgASgLMhgub3BlbmZsb3dfMTMuRmxvd0NoYW5nZXNSBWZsb3dzEjUKBmdyb3VwcxgDIAEoCzIdLm9wZW5mbG93XzEzLkZsb3dHcm91cENoYW5nZXNSBmdyb3VwcxI+Cg1mbG93X21ldGFkYXRhGAQgASgLMhkub3BlbmZsb3dfMTMuRmxvd01ldGFkYXRhUgxmbG93TWV0YWRhdGEiXgoNUG1Db25maWdzSW5mbxIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEjAKCnBtX2NvbmZpZ3MYAiABKAsyES5kZXZpY2UuUG1Db25maWdzUglwbUNvbmZpZ3MiiAEKEFN3aXRjaENhcGFiaWxpdHkSKQoEZGVzYxgBIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9kZXNjUgRkZXNjEkkKD3N3aXRjaF9mZWF0dXJlcxgCIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9zd2l0Y2hfZmVhdHVyZXNSDnN3aXRjaEZlYXR1cmVzImsKFEltYWdlRG93bmxvYWRNZXNzYWdlEiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRIrCgVpbWFnZRgCIAEoCzIVLmRldmljZS5JbWFnZURvd25sb2FkUgVpbWFnZSJjCghPTUNJVGVzdBImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USLwoHcmVxdWVzdBgCIAEoCzIVLm9tY2kuT21jaVRlc3RSZXF1ZXN0UgdyZXF1ZXN0InYKFFNpbXVsYXRlQWxhcm1NZXNzYWdlEiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRI2CgdyZXF1ZXN0GAIgASgLMhwuZGV2aWNlLlNpbXVsYXRlQWxhcm1SZXF1ZXN0UgdyZXF1ZXN0IrYBChJHZXRFeHRWYWx1ZU1lc3NhZ2USMwoNcGFyZW50X2RldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSDHBhcmVudERldmljZRIxCgxjaGlsZF9kZXZpY2UYAiABKAsyDi5kZXZpY2UuRGV2aWNlUgtjaGlsZERl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LkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI5Cg9SZWNvbmNpbGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjYKDERlbGV0ZURldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSNwoNRGlzYWJsZURldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOAoOUmVFbmFibGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjYKDFJlYm9vdERldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOAoOU2VsZlRlc3REZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkIKEEdldE9mcERldmljZUluZm8SDi5kZXZpY2UuRGV2aWNlGh4uY29yZV9hZGFwdGVyLlN3aXRjaENhcGFiaWxpdHkSOQoPQ2hpbGREZXZpY2VMb3N0Eg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRIyCgpFbmFibGVQb3J0EgwuZGV2aWNlLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSMwoLRGlzYWJsZVBvcnQSDC5kZXZpY2UuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJCCg9VcGRhdGVGbG93c0J1bGsSFy5jb3JlX2FkYXB0ZXIuQnVsa0Zsb3dzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElIKGFVwZGF0ZUZsb3dzSW5jcmVtZW50YWxseRIeLmNvcmVfYWRhcHRlci5JbmNyZW1lbnRhbEZsb3dzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkAKDVNlbmRQYWNrZXRPdXQSFy5jb3JlX2FkYXB0ZXIuUGFja2V0T3V0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkUKDlVwZGF0ZVBtQ29uZmlnEhsuY29yZV9hZGFwdGVyLlBtQ29uZmlnc0luZm8aFi5nb29nbGUucHJvdG9idWYuRW1wdHkSUwoQRG93bmxvYWRPbnVJbWFnZRIiLmRldmljZS5EZXZpY2VJbWFnZURvd25sb2FkUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlEkwKEUdldE9udUltYWdlU3RhdHVzEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlEk8KFEFib3J0T251SW1hZ2VVcGdyYWRlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlEi0KDEdldE9udUltYWdlcxIKLmNvbW1vbi5JRBoRLmRldmljZS5PbnVJbWFnZXMSSwoQQWN0aXZhdGVPbnVJbWFnZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRJJCg5Db21taXRPbnVJbWFnZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRJPCg1Eb3dubG9hZEltYWdlEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARJYChZHZXRJbWFnZURvd25sb2FkU3RhdHVzEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARJVChNDYW5jZWxJbWFnZURvd25sb2FkEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARJVChNBY3RpdmF0ZUltYWdlVXBkYXRlEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARJTChFSZXZlcnRJbWFnZVVwZGF0ZRIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESOwoNU3RhcnRPbWNpVGVzdBIWLmNvcmVfYWRhcHRlci5PTUNJVGVzdBoSLm9tY2kuVGVzdFJlc3BvbnNlEkoKDVNpbXVsYXRlQWxhcm0SIi5jb3JlX2FkYXB0ZXIuU2ltdWxhdGVBbGFybU1lc3NhZ2UaFS5jb21tb24uT3BlcmF0aW9uUmVzcBI7Cg1TdXBwcmVzc0V2ZW50EhIuZXZlbnQuRXZlbnRGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSPQoPVW5TdXBwcmVzc0V2ZW50EhIuZXZlbnQuRXZlbnRGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSSAoLR2V0RXh0VmFsdWUSIC5jb3JlX2FkYXB0ZXIuR2V0RXh0VmFsdWVNZXNzYWdlGhcuZXh0ZW5zaW9uLlJldHVyblZhbHVlcxJHCgtTZXRFeHRWYWx1ZRIgLmNvcmVfYWRhcHRlci5TZXRFeHRWYWx1ZU1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSVQoOR2V0U2luZ2xlVmFsdWUSIC5leHRlbnNpb24uU2luZ2xlR2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVzcG9uc2USVQoOU2V0U2luZ2xlVmFsdWUSIC5leHRlbnNpb24uU2luZ2xlU2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVzcG9uc2VCdAojb3JnLm9wZW5jb3JkLnZvbHRoYS5hZGFwdGVyX3NlcnZpY2VCFFZvbHRoYUFkYXB0ZXJTZXJ2aWNlWjdnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vYWRhcHRlcl9zZXJ2aWNlSssUCgYSBAAAVwEKCAoBDBIDAAASCggKAQgSAwIATgoJCgIICxIDAgBOCggKAQgSAwMAPAoJCgIIARIDAwA8CggKAQgSAwQANQoJCgIICBIDBAA1CggKAQISAwYAGAoJCgIDABIDCAAlCgkKAgMBEgMJACQKCQoCAwISAwoAKgoJCgIDAxIDCwAkCgkKAgMEEgMMACgKCQoCAwUSAw0AJAoJCgIDBhIDDgAkCgkKAgMHEgMPACcKCQoCAwgSAxAAJApVCgIGABIEEwBXARpJIEFkYXB0ZXJTZXJ2aWNlIGlzIGEgZ1JQ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AAIFARIDFggVCg4KBwQABAACBQISAxYYGQpBCgYEAAQAAgYSAxgEHhoyIFN0YXRlIHRvIHJlcHJlc2VudCB0aGF0IHJlY29uY2lsZSBpcyBpbiBwcm9ncmVzcwoKDgoHBAAEAAIGARIDGAQZCg4KBwQABAACBgISAxgcHQoLCgQEAAIAEgMaBB4KDQoFBAACAAQSBBoEGQUKDAoFBAACAAYSAxoECQoMCgUEAAIAARIDGgoZCgwKBQQAAgADEgMaHB1iBnByb3RvMwrtHAohdm9sdGhhX3Byb3Rvcy9jb3JlX3NlcnZpY2VzLnByb3RvEgxjb3JlX3NlcnZpY2UaG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxogdm9sdGhhX3Byb3Rvcy9jb3JlX2FkYXB0ZXIucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90bxoadm9sdGhhX3Byb3Rvcy9oZWFsdGgucHJvdG8y/QsKC0NvcmVTZXJ2aWNlEj8KD0dldEhlYWx0aFN0YXR1cxISLmNvbW1vbi5Db25uZWN0aW9uGhQuaGVhbHRoLkhlYWx0aFN0YXR1cygBMAESTAoPUmVnaXN0ZXJBZGFwdGVyEiEuY29yZV9hZGFwdGVyLkFkYXB0ZXJSZWdpc3RyYXRpb24aFi5nb29nbGUucHJvdG9idWYuRW1wdHkSNgoMRGV2aWNlVXBkYXRlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRIzCgtQb3J0Q3JlYXRlZBIMLmRldmljZS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkkKEFBvcnRzU3RhdGVVcGRhdGUSHS5jb3JlX2FkYXB0ZXIuUG9ydFN0YXRlRmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjQKDkRlbGV0ZUFsbFBvcnRzEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjcKDUdldERldmljZVBvcnQSGC5jb3JlX2FkYXB0ZXIuUG9ydEZpbHRlchoMLmRldmljZS5Qb3J0EiwKD0xpc3REZXZpY2VQb3J0cxIKLmNvbW1vbi5JRBoNLmRldmljZS5Qb3J0cxJMChFEZXZpY2VTdGF0ZVVwZGF0ZRIfLmNvcmVfYWRhcHRlci5EZXZpY2VTdGF0ZUZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJBChREZXZpY2VQTUNvbmZpZ1VwZGF0ZRIRLmRldmljZS5QbUNvbmZpZ3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRAoTQ2hpbGREZXZpY2VEZXRlY3RlZBIdLmNvcmVfYWRhcHRlci5EZXZpY2VEaXNjb3ZlcnkaDi5kZXZpY2UuRGV2aWNlEjYKEENoaWxkRGV2aWNlc0xvc3QSCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOgoUQ2hpbGREZXZpY2VzRGV0ZWN0ZWQSCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSJwoJR2V0RGV2aWNlEgouY29tbW9uLklEGg4uZGV2aWNlLkRldmljZRJBCg5HZXRDaGlsZERldmljZRIfLmNvcmVfYWRhcHRlci5DaGlsZERldmljZUZpbHRlchoOLmRldmljZS5EZXZpY2USLgoPR2V0Q2hpbGREZXZpY2VzEgouY29tbW9uLklEGg8uZGV2aWNlLkRldmljZXMSPgoMU2VuZFBhY2tldEluEhYuY29yZV9hZGFwdGVyLlBhY2tldEluGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkgKEkRldmljZVJlYXNvblVwZGF0ZRIaLmNvcmVfYWRhcHRlci5EZXZpY2VSZWFzb24aFi5nb29nbGUucHJvdG9idWYuRW1wdHkSQgoPUG9ydFN0YXRlVXBkYXRlEhcuY29yZV9hZGFwdGVyLlBvcnRTdGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI7ChVSZWNvbmNpbGVDaGlsZERldmljZXMSCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSTQoeR2V0Q2hpbGREZXZpY2VXaXRoUHJveHlBZGRyZXNzEhsuZGV2aWNlLkRldmljZS5Qcm94eUFkZHJlc3MaDi5kZXZpY2UuRGV2aWNlEjMKCEdldFBvcnRzEhguY29yZV9hZGFwdGVyLlBvcnRGaWx0ZXIaDS5kZXZpY2UuUG9ydHMSTgoTQ2hpbGRyZW5T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Zm91bmQgaW4gdGhlIENvcmUgLSB1bnVzZWQ/CgoMCgUGAAITARIDKQwhCgwKBQYAAhMCEgMpIywKDAoFBgACEwMSAyk3TAoLCgQGAAIUEgMqCGAKDAoFBgACFAESAyoMKgoMCgUGAAIUAhIDKixGCgwKBQYAAhQDEgMqUV4KCwoEBgACFRIDKwhGCgwKBQYAAhUBEgMrDBQKDAoFBgACFQISAysWLQoMCgUGAAIVAxIDKzhECgsKBAYAAhYSAywIYQoMCgUGAAIWARIDLAwfCgwKBQYAAhYCEgMsIT8KDAoFBgACFgMSAyxKXwoLCgQGAAIXEgMtCFcKDAoFBgACFwESAy0MHwoMCgUGAAIXAhIDLSE1CgwKBQYAAhcDEgMtQFViBnByb3RvMwq8GAojdm9sdGhhX3Byb3Rvcy9pZXRmX2ludGVyZmFjZXMucHJvdG8SBGlldGYiRAoKSW50ZXJmYWNlcxI2Cg5hbGxfaW50ZXJmYWNlcxgBIAMoCzIPLmlldGYuSW50ZXJmYWNlUg1hbGxJbnRlcmZhY2VzIpICCglJbnRlcmZhY2USEgoEbmFtZRgBIAEoCVIEbmFtZRIgCgtkZXNjcmlwdGlvbhgCIAEoCVILZGVzY3JpcHRpb24SEgoEdHlwZRgDIAEoCVIEdHlwZRIYCgdlbmFibGVkGAQgASgIUgdlbmFibGVkEmAKGGxpbmtfdXBfZG93bl90cmFwX2VuYWJsZRgFIAEoDjIoLmlldGYuSW50ZXJmYWNlLkxpbmtVcERvd25UcmFwRW5hYmxlVHlwZVIUbGlua1VwRG93blRyYXBFbmFibGUiPwoYTGlua1VwRG93blRyYXBFbmFibGVUeXBlEhEKDVRSQVBfRElTQUJMRUQQABIQCgxUUkFQX0VOQUJMRUQQASJMCg9JbnRlcmZhY2VzU3RhdGUSOQoNYWxsX2ludGVyZmFjcxgBIAMoCzIULmlldGYuSW50ZXJmYWNlU3RhdGVSDGFsbEludGVyZmFjcyLABAoOSW50ZXJmYWNlU3RhdGUSEgoEbmFtZRgBIAEoCVIEbmFtZRISCgR0eXBlGAIgASgJUgR0eXBlEkcKDGFkbWluX3N0YXR1cxgDIAEoDjIkLmlldGYuSW50ZXJmYWNlU3RhdGUuQWRtaW5TdGF0dXNUeXBlUgthZG1pblN0YXR1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b25hbF9idxgCIAEoDjIaLnRlY2hfcHJvZmlsZS5BZGRpdGlvbmFsQldSDGFkZGl0aW9uYWxCdxIaCghwcmlvcml0eRgDIAEoB1IIcHJpb3JpdHkSFgoGd2VpZ2h0GAQgASgHUgZ3ZWlnaHQSQQoMc2NoZWRfcG9saWN5GAUgASgOMh4udGVjaF9wcm9maWxlLlNjaGVkdWxpbmdQb2xpY3lSC3NjaGVkUG9saWN5IrgBChJUcmFmZmljU2hhcGluZ0luZm8SEAoDY2lyGAEgASgHUgNjaXISEAoDY2JzGAIgASgHUgNjYnMSEAoDcGlyGAMgASgHUgNwaXISEAoDcGJzGAQgASgHUgNwYnMSEAoDZ2lyGAUgASgHUgNnaXISSAoKYWRkX2J3X2luZBgGIAEoDjIqLnRlY2hfcHJvZmlsZS5JbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uUghhZGRCd0luZCKdAgoQVHJhZmZpY1NjaGVkdWxlchI1CglkaXJlY3Rpb24YASABKA4yFy50ZWNoX3Byb2ZpbGUuRGlyZWN0aW9uUglkaXJlY3Rpb24SGQoIYWxsb2NfaWQYAiABKAdSB2FsbG9jSWQSOwoJc2NoZWR1bGVyGAMgASgLMh0udGVjaF9wcm9maWxlLlNjaGVkdWxlckNvbmZpZ1IJc2NoZWR1bGVyElIKFHRyYWZmaWNfc2hhcGluZ19pbmZvGAQgASgLMiAudGVjaF9wcm9maWxlLlRyYWZmaWNTaGFwaW5nSW5mb1ISdHJhZmZpY1NoYXBpbmdJbmZvEiYKD3RlY2hfcHJvZmlsZV9pZBgFIAEoB1INdGVjaFByb2ZpbGVJZCK6AQoRVHJhZmZpY1NjaGVkdWxlcnMSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFQoGdW5pX2lkGAQgASgHUgV1bmlJZBIXCgdwb3J0X25vGAUgASgHUgZwb3J0Tm8SRQoOdHJhZmZpY19zY2hlZHMYAyADKAsyHi50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NjaGVkdWxlclINdHJhZmZpY1NjaGVkcyI2ChVUYWlsRHJvcERpc2NhcmRDb25maWcSHQoKcXVldWVfc2l6ZRgBIAEoB1IJcXVldWVTaXplIoUBChBSZWREaXNjYXJkQ29uZmlnEiMKDW1pbl90aHJlc2hvbGQYASABKAdSDG1pblRocmVzaG9sZBIjCg1tYXhfdGhyZXNob2xkGAIgASgHUgxtYXhUaHJlc2hvbGQSJwoPbWF4X3Byb2JhYmlsaXR5GAMgASgHUg5tYXhQcm9iYWJpbGl0eSKzAQoRV1JlZERpc2NhcmRDb25maWcSNAoFZ3JlZW4YASABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1IFZ3JlZW4SNgoGeWVsbG93GAIgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSBnllbGxvdxIwCgNyZWQYAyABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1IDcmVkIugCCg1EaXNjYXJkQ29uZmlnEkIKDmRpc2NhcmRfcG9saWN5GAEgASgOMhsudGVjaF9wcm9maWxlLkRpc2NhcmRQb2xpY3lSDWRpc2NhcmRQb2xpY3kSXgoYdGFpbF9kcm9wX2Rpc2NhcmRfY29uZmlnGAIgASgLMiMudGVjaF9wcm9maWxlLlRhaWxEcm9wRGlzY2FyZENvbmZpZ0gAUhV0YWlsRHJvcERpc2NhcmRDb25maWcSTgoScmVkX2Rpc2NhcmRfY29uZmlnGAMgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdIAFIQcmVkRGlzY2FyZENvbmZpZxJRChN3cmVkX2Rpc2NhcmRfY29uZmlnGAQgASgLMh8udGVjaF9wcm9maWxlLldSZWREaXNjYXJkQ29uZmlnSABSEXdyZWREaXNjYXJkQ29uZmlnQhAKDmRpc2NhcmRfY29uZmlnIqUDCgxUcmFmZmljUXVldWUSNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEh0KCmdlbXBvcnRfaWQYAiABKAdSCWdlbXBvcnRJZBIZCghwYml0X21hcBgDIAEoCVIHcGJpdE1hcBIlCg5hZXNfZW5jcnlwdGlvbhgEIAEoCFINYWVzRW5jcnlwdGlvbhJBCgxzY2hlZF9wb2xpY3kYBSABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVILc2NoZWRQb2xpY3kSGgoIcHJpb3JpdHkYBiABKAdSCHByaW9yaXR5EhYKBndlaWdodBgHIAEoB1IGd2VpZ2h0EkIKDmRpc2NhcmRfcG9saWN5GAggASgOMhsudGVjaF9wcm9maWxlLkRpc2NhcmRQb2xpY3lSDWRpc2NhcmRQb2xpY3kSQgoOZGlzY2FyZF9jb25maWcYCSABKAsyGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZENvbmZpZ1INZGlzY2FyZENvbmZpZyLaAQoNVHJhZmZpY1F1ZXVlcxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIVCgZ1bmlfaWQYBCABKAdSBXVuaUlkEhcKB3BvcnRfbm8YBSABKAdSBnBvcnRObxJBCg50cmFmZmljX3F1ZXVlcxgGIAMoCzIaLnRlY2hfcHJvZmlsZS5UcmFmZmljUXVldWVSDXRyYWZmaWNRdWV1ZXMSJgoPdGVjaF9wcm9maWxlX2lkGAcgASgHUg10ZWNoUHJvZmlsZUlkImYKD0luc3RhbmNlQ29udHJvbBIQCgNvbnUYASABKAlSA29udRIQCgN1bmkYAiABKAlSA3VuaRIvChRtYXhfZ2VtX3BheWxvYWRfc2l6ZRgDIAEoCVIRbWF4R2VtUGF5bG9hZFNpemUiggIKC1FUaHJlc2hvbGRzEiEKDHFfdGhyZXNob2xkMRgBIAEoDVILcVRocmVzaG9sZDESIQoMcV90aHJlc2hvbGQyGAIgASgNUgtxVGhyZXNob2xkMhIhCgxxX3RocmVzaG9sZDMYAyABKA1SC3FUaHJlc2hvbGQzEiEKDHFfdGhyZXNob2xkNBgEIAEoDVILcVRocmVzaG9sZDQSIQoMcV90aHJlc2hvbGQ1GAUgASgNUgtxVGhyZXNob2xkNRIhCgxxX3RocmVzaG9sZDYYBiABKA1SC3FUaHJlc2hvbGQ2EiEKDHFfdGhyZXNob2xkNxgHIAEoDVILcVRocmVzaG9sZDciswUKEUdlbVBvcnRBdHRyaWJ1dGVzEh0KCmdlbXBvcnRfaWQYASABKAdSCWdlbXBvcnRJZBIcCgptYXhfcV9zaXplGAIgASgJUghtYXhRU2l6ZRIZCghwYml0X21hcBgDIAEoCVIHcGJpdE1hcBIlCg5hZXNfZW5jcnlwdGlvbhgEIAEoCVINYWVzRW5jcnlwdGlvbhJLChFzY2hlZHVsaW5nX3BvbGljeRgFIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UhBzY2hlZHVsaW5nUG9saWN5Eh0KCnByaW9yaXR5X3EYBiABKAdSCXByaW9yaXR5URIWCgZ3ZWlnaHQYByABKAdSBndlaWdodBJCCg5kaXNjYXJkX3BvbGljeRgIIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5EkUKDmRpc2NhcmRfY29uZmlnGAkgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSDWRpc2NhcmRDb25maWcSRwoRZGlzY2FyZF9jb25maWdfdjIYDiABKAsyGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZENvbmZpZ1IPZGlzY2FyZENvbmZpZ1YyEiEKDGlzX211bHRpY2FzdBgKIAEoCVILaXNNdWx0aWNhc3QSKAoQbXVsdGljYXN0X2dlbV9pZBgLIAEoB1IObXVsdGljYXN0R2VtSWQSPQobZHluYW1pY19hY2Nlc3NfY29udHJvbF9saXN0GAwgASgJUhhkeW5hbWljQWNjZXNzQ29udHJvbExpc3QSOwoac3RhdGljX2FjY2Vzc19jb250cm9sX2xpc3QYDSABKAlSF3N0YXRpY0FjY2Vzc0NvbnRyb2xMaXN0IqICChNTY2hlZHVsZXJBdHRyaWJ1dGVzEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhIZCghhbGxvY19pZBgCIAEoDVIHYWxsb2NJZBI/Cg1hZGRpdGlvbmFsX2J3GAMgASgOMhoudGVjaF9wcm9maWxlLkFkZGl0aW9uYWxCV1IMYWRkaXRpb25hbEJ3EhoKCHByaW9yaXR5GAQgASgHUghwcmlvcml0eRIWCgZ3ZWlnaHQYBSABKAdSBndlaWdodBJECg5xX3NjaGVkX3BvbGljeRgGIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UgxxU2NoZWRQb2xpY3kiwAYKE0VQT05RdWV1ZUF0dHJpYnV0ZXMSHAoKbWF4X3Ffc2l6ZRgBIAEoCVIIbWF4UVNpemUSGQoIcGJpdF9tYXAYAiABKAlSB3BiaXRNYXASHQoKZ2VtcG9ydF9pZBgDIAEoDVIJZ2VtcG9ydElkEiUKDmFlc19lbmNyeXB0aW9uGAQgASgJUg1hZXNFbmNyeXB0aW9uEiEKDHRyYWZmaWNfdHlwZRgFIAEoCVILdHJhZmZpY1R5cGUSNAoWdW5zb2xpY2l0ZWRfZ3JhbnRfc2l6ZRgGIAEoDVIUdW5zb2xpY2l0ZWRHcmFudFNpemUSKQoQbm9taW5hbF9pbnRlcnZhbBgHIAEoDVIPbm9taW5hbEludGVydmFsEjIKFXRvbGVyYXRlZF9wb2xsX2ppdHRlchgIIAEoDVITdG9sZXJhdGVkUG9sbEppdHRlchI+ChtyZXF1ZXN0X3RyYW5zbWlzc2lvbl9wb2xpY3kYCSABKA1SGXJlcXVlc3RUcmFuc21pc3Npb25Qb2xpY3kSHAoKbnVtX3Ffc2V0cxgKIAEoDVIIbnVtUVNldHMSPAoMcV90aHJlc2hvbGRzGAsgASgLMhkudGVjaF9wcm9maWxlLlFUaHJlc2hvbGRzUgtxVGhyZXNob2xkcxJLChFzY2hlZHVsaW5nX3BvbGljeRgMIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UhBzY2hlZHVsaW5nUG9saWN5Eh0KCnByaW9yaXR5X3EYDSABKA1SCXByaW9yaXR5URIWCgZ3ZWlnaHQYDiABKA1SBndlaWdodBJCCg5kaXNjYXJkX3BvbGljeRgPIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5EkUKDmRpc2NhcmRfY29uZmlnGBAgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSDWRpc2NhcmRDb25maWcSRwoRZGlzY2FyZF9jb25maWdfdjIYESABKAsyGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZENvbmZpZ1IPZGlzY2FyZENvbmZpZ1YyIq4ECgtUZWNoUHJvZmlsZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKA1SB3ZlcnNpb24SIQoMcHJvZmlsZV90eXBlGAMgASgJUgtwcm9maWxlVHlwZRIiCg1udW1fZ2VtX3BvcnRzGAQgASgNUgtudW1HZW1Qb3J0cxJIChBpbnN0YW5jZV9jb250cm9sGAUgASgLMh0udGVjaF9wcm9maWxlLkluc3RhbmNlQ29udHJvbFIPaW5zdGFuY2VDb250cm9sEkQKDHVzX3NjaGVkdWxlchgGIAEoCzIhLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJBdHRyaWJ1dGVzUgt1c1NjaGVkdWxlchJECgxkc19zY2hlZHVsZXIYByABKAsyIS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQXR0cmlidXRlc1ILZHNTY2hlZHVsZXISZwogdXBzdHJlYW1fZ2VtX3BvcnRfYXR0cmlidXRlX2xpc3QYCCADKAsyHy50ZWNoX3Byb2ZpbGUuR2VtUG9ydEF0dHJpYnV0ZXNSHHVwc3RyZWFtR2VtUG9ydEF0dHJpYnV0ZUxpc3QSawoiZG93bnN0cmVhbV9nZW1fcG9ydF9hdHRyaWJ1dGVfbGlzdBgJIAMoCzIfLnRlY2hfcHJvZmlsZS5HZW1Qb3J0QXR0cmlidXRlc1IeZG93bnN0cmVhbUdlbVBvcnRBdHRyaWJ1dGVMaXN0IsMDCg9FcG9uVGVjaFByb2ZpbGUSEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgNUgd2ZXJzaW9uEiEKDHByb2ZpbGVfdHlwZRgDIAEoCVILcHJvZmlsZVR5cGUSIgoNbnVtX2dlbV9wb3J0cxgEIAEoDVILbnVtR2VtUG9ydHMSSAoQaW5zdGFuY2VfY29udHJvbBgFIAEoCzIdLnRlY2hfcHJvZmlsZS5JbnN0YW5jZUNvbnRyb2xSD2luc3RhbmNlQ29udHJvbBIhCgxwYWNrYWdlX3R5cGUYBiABKAlSC3BhY2thZ2VUeXBlEmQKHXVwc3RyZWFtX3F1ZXVlX2F0dHJpYnV0ZV9saXN0GAcgAygLMiEudGVjaF9wcm9maWxlLkVQT05RdWV1ZUF0dHJpYnV0ZXNSGnVwc3RyZWFtUXVldWVBdHRyaWJ1dGVMaXN0EmgKH2Rvd25zdHJlYW1fcXVldWVfYXR0cmlidXRlX2xpc3QYCCADKAsyIS50ZWNoX3Byb2ZpbGUuRVBPTlF1ZXVlQXR0cmlidXRlc1IcZG93bnN0cmVhbVF1ZXVlQXR0cmlidXRlTGlzdCLrBAoTVGVjaFByb2ZpbGVJbnN0YW5jZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKA1SB3ZlcnNpb24SMwoVc3Vic2NyaWJlcl9pZGVudGlmaWVyGAMgASgJUhRzdWJzY3JpYmVySWRlbnRpZmllchIhCgxwcm9maWxlX3R5cGUYBCABKAlSC3Byb2ZpbGVUeXBlEiIKDW51bV9nZW1fcG9ydHMYBSABKA1SC251bUdlbVBvcnRzEkgKEGluc3RhbmNlX2NvbnRyb2wYBiABKAsyHS50ZWNoX3Byb2ZpbGUuSW5zdGFuY2VDb250cm9sUg9pbnN0YW5jZUNvbnRyb2wSRAoMdXNfc2NoZWR1bGVyGAcgASgLMiEudGVjaF9wcm9maWxlLlNjaGVkdWxlckF0dHJpYnV0ZXNSC3VzU2NoZWR1bGVyEkQKDGRzX3NjaGVkdWxlchgIIAEoCzIhLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJBdHRyaWJ1dGVzUgtkc1NjaGVkdWxlchJnCiB1cHN0cmVhbV9nZW1fcG9ydF9hdHRyaWJ1dGVfbGlzdBgJIAMoCzIfLnRlY2hfcHJvZmlsZS5HZW1Qb3J0QXR0cmlidXRlc1IcdXBzdHJlYW1HZW1Qb3J0QXR0cmlidXRlTGlzdBJrCiJkb3duc3RyZWFtX2dlbV9wb3J0X2F0dHJpYnV0ZV9saXN0GAogAygLMh8udGVjaF9wcm9maWxlLkdlbVBvcnRBdHRyaWJ1dGVzUh5kb3duc3RyZWFtR2VtUG9ydEF0dHJpYnV0ZUxpc3QimwQKF0Vwb25UZWNoUHJvZmlsZUluc3RhbmNlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoDVIHdmVyc2lvbhIzChVzdWJzY3JpYmVyX2lkZW50aWZpZXIYAyABKAlSFHN1YnNjcmliZXJJZGVudGlmaWVyEiEKDHByb2ZpbGVfdHlwZRgEIAEoCVILcHJvZmlsZVR5cGUSIgoNbnVtX2dlbV9wb3J0cxgFIAEoDVILbnVtR2VtUG9ydHMSGQoIYWxsb2NfaWQYBiABKA1SB2FsbG9jSWQSSAoQaW5zdGFuY2VfY29udHJvbBgHIAEoCzIdLnRlY2hfcHJvZmlsZS5JbnN0YW5jZUNvbnRyb2xSD2luc3RhbmNlQ29udHJvbBIhCgxwYWNrYWdlX3R5cGUYCCABKAlSC3BhY2thZ2VUeXBlEmQKHXVwc3RyZWFtX3F1ZXVlX2F0dHJpYnV0ZV9saXN0GAkgAygLMiEudGVjaF9wcm9maWxlLkVQT05RdWV1ZUF0dHJpYnV0ZXNSGnVwc3RyZWFtUXVldWVBdHRyaWJ1dGVMaXN0EmgKH2Rvd25zdHJlYW1fcXVldWVfYXR0cmlidXRlX2xpc3QYCiADKAsyIS50ZWNoX3Byb2ZpbGUuRVBPTlF1ZXVlQXR0cmlidXRlc1IcZG93bnN0cmVhbVF1ZXVlQXR0cmlidXRlTGlzdCK7AQoQUmVzb3VyY2VJbnN0YW5jZRITCgV0cF9pZBgBIAEoDVIEdHBJZBIhCgxwcm9maWxlX3R5cGUYAiABKAlSC3Byb2ZpbGVUeXBlEjMKFXN1YnNjcmliZXJfaWRlbnRpZmllchgDIAEoCVIUc3Vic2NyaWJlcklkZW50aWZpZXISGQoIYWxsb2NfaWQYBCABKA1SB2FsbG9jSWQSHwoLZ2VtcG9ydF9pZHMYBSADKA1SCmdlbXBvcnRJZHMqPAoJRGlyZWN0aW9uEgwKCFVQU1RSRUFNEAASDgoKRE9XTlNUUkVBTRABEhEKDUJJRElSRUNUSU9OQUwQAio7ChBTY2hlZHVsaW5nUG9saWN5EgcKA1dSUhAAEhIKDlN0cmljdFByaW9yaXR5EAESCgoGSHlicmlkEAIqbgoMQWRkaXRpb25hbEJXEhUKEUFkZGl0aW9uYWxCV19Ob25lEAASEwoPQWRkaXRpb25hbEJXX05BEAESGwoXQWRkaXRpb25hbEJXX0Jlc3RFZmZvcnQQAhIVChFBZGRpdGlvbmFsQldfQXV0bxADKj8KDURpc2NhcmRQb2xpY3kSDAoIVGFpbERyb3AQABINCglXVGFpbERyb3AQARIHCgNSZWQQAhIICgRXUmVkEAMqnAEKHEluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb24SJQohSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9Ob25lEAASKAokSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9Bc3N1cmVkEAESKwonSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9CZXN0RWZmb3J0EAJCWAogb3JnLm9wZW5jb3JkLnZvbHRoYS50ZWNoX3Byb2ZpbGVaNGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby90ZWNoX3Byb2ZpbGVKyGQKBxIFDgD/AQEK0QQKAQwSAw4AEjLGBCBDb3B5cmlnaHQgKGMpIDIwMTggT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoICgEIEgMQAEsKCQoCCAsSAxAASwoICgEIEgMRADkKCQoCCAESAxEAOQoICgECEgMTABUKCQoCAwASAxQAJgoKCgIFABIEFgAaAQoKCgMFAAESAxYFDgoLCgQFAAIAEgMXBBEKDAoFBQACAAESAxcEDAoMCgUFAAIAAhIDFw8QCgsKBAUAAgESAxgEEwoMCgUFAAIBARIDGAQOCgwKBQUAAgECEgMYERIKCwoEBQACAhIDGQQWCgwKBQUAAgIBEgMZBBEKDAoFBQACAgISAxkUFQoKCgIFARIEHAAgAQoKCgMFAQESAxwFFQoLCgQFAQIAEgMdBAwKDAoFBQECAAESAx0EBwoMCgUFAQIAAhIDHQoLCgsKBAUBAgESAx4EFwoMCgUFAQIBARIDHgQSCgwKBQUBAgECEgMeFRYKCwoEBQECAhIDHwQPCgwKBQUBAgIBEgMfBAoKDAoFBQECAgISAx8NDgoKCgIFAhIEIgAnAQoKCgMFAgESAyIFEQoLCgQFAgIAEgMjBBoKDAoFBQICAAESAyMEFQoMCgUFAgIAAhIDIxgZCgsKBAUCAgESAyQEGAoMCgUFAgIBARIDJAQTCgwKBQUCAgECEgMkFhcKCwoEBQICAhIDJQQgCgwKBQUCAgIBEgMlBBsKDAoFBQICAgISAyUeHwoLCgQFAgIDEgMmBBoKDAoFBQICAwESAyYEFQoMCgUFAgIDAhIDJhgZCgoKAgUDEgQpAC4BCgoKAwUDARIDKQUSCgsKBAUDAgASAyoEEQoMCgUFAwIAARIDKgQMCgwKBQUDAgACEgMqDxAKCwoEBQMCARIDKwQSCgwKBQUDAgEBEgMrBA0KDAoFBQMCAQISAysQEQoLCgQFAwICEgMsBAwKDAoFBQMCAgESAywEBwoMCgUFAwICAhIDLAoLCgsKBAUDAgMSAy0EDQoMCgUFAwIDARIDLQQICgwKBQUDAgMCEgMtCwwKCgoCBQQSBDAANAEKCgoDBQQBEgMwBSEKCwoEBQQCABIDMQQqCgwKBQUEAgABEgMxBCUKDAoFBQQCAAISAzEoKQoLCgQFBAIBEgMyBC0KDAoFBQQCAQESAzIEKAoMCgUFBAIBAhIDMissCgsKBAUEAgISAzMEMAoMCgUFBAICARIDMwQrCgwKBQUEAgICEgMzLi8KCgoCBAASBDYAPAEKCgoDBAABEgM2CBcKCwoEBAACABIDNwQcCg0KBQQAAgAEEgQ3BDYZCgwKBQQAAgAGEgM3BA0KDAoFBAACAAESAzcOFwoMCgUEAAIAAxIDNxobCjgKBAQAAgESAzgEIyIrIFZhbGlkIG9uIGZvciDigJxkaXJlY3Rpb24gPT0gVXBzdHJlYW3igJ0uCgoNCgUEAAIBBBIEOAQ3HAoMCgUEAAIBBhIDOAQQCgwKBQQAAgEBEgM4ER4KDAoFBAACAQMSAzghIgoLCgQEAAICEgM5BBkKDQoFBAACAgQSBDkEOCMKDAoFBAACAgUSAzkECwoMCgUEAAICARIDOQwUCgwKBQQAAgIDEgM5FxgKCwoEBAACAxIDOgQXCg0KBQQAAgMEEgQ6BDkZCgwKBQQAAgMFEgM6BAsKDAoFBAACAwESAzoMEgoMCgUEAAIDAxIDOhUWCgsKBAQAAgQSAzsEJgoNCgUEAAIEBBIEOwQ6FwoMCgUEAAIEBhIDOwQUCgwKBQQAAgQBEgM7FSEKDAoFBAACBAMSAzskJQoKCgIEARIEPgBFAQoKCgMEAQESAz4IGgoLCgQEAQIAEgM/BBQKDQoFBAECAAQSBD8EPhwKDAoFBAECAAUSAz8ECwoMCgUEAQIAARIDPwwPCgwKBQQBAgADEgM/EhMKCwoEBAECARIDQAQUCg0KBQQBAgEEEgRABD8UCgwKBQQBAgEFEgNABAsKDAoFBAECAQESA0AMDwoMCgUEAQIBAxIDQBITCgsKBAQBAgISA0EEFAoNCgUEAQICBBIEQQRAFAoMCgUEAQICBRIDQQQLCgwKBQQBAgIBEgNBDA8KDAoFBAECAgMSA0ESEwoLCgQEAQIDEgNCBBQKDQoFBAECAwQSBEIEQRQKDAoFBAECAwUSA0IECwoMCgUEAQIDARIDQgwPCgwKBQQBAgMDEgNCEhMKMwoEBAECBBIDQwQUIiYgb25seSBpZiDigJxkaXJlY3Rpb24gPT0gVXBzdHJlYW0g4oCdCgoNCgUEAQIEBBIEQwRCFAoMCgUEAQIEBRIDQwQLCgwKBQQBAgQBEgNDDA8KDAoFBAECBAMSA0MSEwoyCgQEAQIFEgNEBDAiJSBvbmx5IGlmIOKAnGRpcmVjdGlvbiA9PSBVcHN0cmVhbeKAnQoKDQoFBAECBQQSBEQEQxQKDAoFBAECBQYSA0QEIAoMCgUEAQIFARIDRCErCgwKBQQBAgUDEgNELi8KCgoCBAISBEcATQEKCgoDBAIBEgNHCBgKCwoEBAICABIDSAQcCg0KBQQCAgAEEgRIBEcaCgwKBQQCAgAGEgNIBA0KDAoFBAICAAESA0gOFwoMCgUEAgIAAxIDSBobCjkKBAQCAgESA0kEGSIsIHZhbGlkIG9ubHkgaWYg4oCcZGlyZWN0aW9uID09IFVwc3RyZWFtIOKAnQoKDQoFBAICAQQSBEkESBwKDAoFBAICAQUSA0kECwoMCgUEAgIBARIDSQwUCgwKBQQCAgEDEgNJFxgKCwoEBAICAhIDSgQiCg0KBQQCAgIEEgRKBEkZCgwKBQQCAgIGEgNKBBMKDAoFBAICAgESA0oUHQoMCgUEAgICAxIDSiAhCgsKBAQCAgMSA0sEMAoNCgUEAgIDBBIESwRKIgoMCgUEAgIDBhIDSwQWCgwKBQQCAgMBEgNLFysKDAoFBAICAwMSA0suLwoLCgQEAgIEEgNMBCAKDQoFBAICBAQSBEwESzAKDAoFBAICBAUSA0wECwoMCgUEAgIEARIDTAwbCgwKBQQCAgQDEgNMHh8KCgoCBAMSBE8AVQEKCgoDBAMBEgNPCBkKCwoEBAMCABIDUAQYCg0KBQQDAgAEEgRQBE8bCgwKBQQDAgAFEgNQBAsKDAoFBAMCAAESA1AMEwoMCgUEAwIAAxIDUBYXCgsKBAQDAgESA1EEFwoNCgUEAwIBBBIEUQRQGAoMCgUEAwIBBRIDUQQLCgwKBQQDAgEBEgNRDBIKDAoFBAMCAQMSA1EVFgoLCgQEAwICEgNSBBcKDQoFBAMCAgQSBFIEURcKDAoFBAMCAgUSA1IECwoMCgUEAwICARIDUgwSCgwKBQQDAgIDEgNSFRYKCwoEBAMCAxIDUwQYCg0KBQQDAgMEEgRTBFIXCgwKBQQDAgMFEgNTBAsKDAoFBAMCAwESA1MMEwoMCgUEAwIDAxIDUxYXCgsKBAQDAgQSA1QEMQoMCgUEAwIEBBIDVAQMCgwKBQQDAgQGEgNUDR0KDAoFBAMCBAESA1QeLAoMCgUEAwIEAxIDVC8wCgoKAgQEEgRXAFkBCgoKAwQEARIDVwgdCgsKBAQEAgASA1gEGwoNCgUEBAIABBIEWARXHwoMCgUEBAIABRIDWAQLCgwKBQQEAgABEgNYDBYKDAoFBAQCAAMSA1gZGgoKCgIEBRIEWwBfAQoKCgMEBQESA1sIGAoLCgQEBQIAEgNcBB4KDQoFBAUCAAQSBFwEWxoKDAoFBAUCAAUSA1wECwoMCgUEBQIAARIDXAwZCgwKBQQFAgADEgNcHB0KCwoEBAUCARIDXQQeCg0KBQQFAgEEEgRdBFweCgwKBQQFAgEFEgNdBAsKDAoFBAUCAQESA10MGQoMCgUEBQIBAxIDXRwdCgsKBAQFAgISA14EIAoNCgUEBQICBBIEXgRdHgoMCgUEBQICBRIDXgQLCgwKBQQFAgIBEgNeDBsKDAoFBAUCAgMSA14eHwoKCgIEBhIEYQBlAQoKCgMEBgESA2EIGQoLCgQEBgIAEgNiBB8KDQoFBAYCAAQSBGIEYRsKDAoFBAYCAAYSA2IEFAoMCgUEBgIAARIDYhUaCgwKBQQGAgADEgNiHR4KCwoEBAYCARIDYwQgCg0KBQQGAgEEEgRjBGIfCgwKBQQGAgEGEgNjBBQKDAoFBAYCAQESA2MVGwoMCgUEBgIBAxIDYx4fCgsKBAQGAgISA2QEHQoNCgUEBgICBBIEZARjIAoMCgUEBgICBhIDZAQUCgwKBQQGAgIBEgNkFRgKDAoFBAYCAgMSA2QbHAoKCgIEBxIEZwBuAQoKCgMEBwESA2cIFQoLCgQEBwIAEgNoBCUKDQoFBAcCAAQSBGgEZxcKDAoFBAcCAAYSA2gEEQoMCgUEBwIAARIDaBIgCgwKBQQHAgADEgNoIyQKDAoEBAcIABIEaQRtBQoMCgUEBwgAARIDaQoYCgsKBAQHAgESA2oIOwoMCgUEBwIBBhIDaggdCgwKBQQHAgEBEgNqHjYKDAoFBAcCAQMSA2o5OgoLCgQEBwICEgNrCDAKDAoFBAcCAgYSA2sIGAoMCgUEBwICARIDaxkrCgwKBQQHAgIDEgNrLi8KCwoEBAcCAxIDbAgyCgwKBQQHAgMGEgNsCBkKDAoFBAcCAwESA2waLQoMCgUEBwIDAxIDbDAxCgoKAgQIEgRwAHoBCgoKAwQIARIDcAgUCgsKBAQIAgASA3EEHAoNCgUECAIABBIEcQRwFgoMCgUECAIABhIDcQQNCgwKBQQIAgABEgNxDhcKDAoFBAgCAAMSA3EaGwoLCgQECAIBEgNyBBsKDQoFBAgCAQQSBHIEcRwKDAoFBAgCAQUSA3IECwoMCgUECAIBARIDcgwWCgwKBQQIAgEDEgNyGRoKCwoEBAgCAhIDcwQYCg0KBQQIAgIEEgRzBHIbCgwKBQQIAgIFEgNzBAoKDAoFBAgCAgESA3MLEwoMCgUECAICAxIDcxYXCgsKBAQIAgMSA3QEHAoNCgUECAIDBBIEdARzGAoMCgUECAIDBRIDdAQICgwKBQQIAgMBEgN0CRcKDAoFBAgCAwMSA3QaGwokCgQECAIEEgN1BCYiFyBUaGlzIGNhbiBiZSBTUCBvciBXUlIKCg0KBQQIAgQEEgR1BHQcCgwKBQQIAgQGEgN1BBQKDAoFBAgCBAESA3UVIQoMCgUECAIEAxIDdSQlCgsKBAQIAgUSA3YEGQoNCgUECAIFBBIEdgR1JgoMCgUECAIFBRIDdgQLCgwKBQQIAgUBEgN2DBQKDAoFBAgCBQMSA3YXGAoLCgQECAIGEgN3BBcKDQoFBAgCBgQSBHcEdhkKDAoFBAgCBgUSA3cECwoMCgUECAIGARIDdwwSCgwKBQQIAgYDEgN3FRYKCwoEBAgCBxIDeAQlCg0KBQQIAgcEEgR4BHcXCgwKBQQIAgcGEgN4BBEKDAoFBAgCBwESA3gSIAoMCgUECAIHAxIDeCMkCgsKBAQIAggSA3kEJQoNCgUECAIIBBIEeQR4JQoMCgUECAIIBhIDeQQRCgwKBQQIAggBEgN5EiAKDAoFBAgCCAMSA3kjJAoLCgIECRIFfACDAQEKCgoDBAkBEgN8CBUKCwoEBAkCABIDfQQYCg0KBQQJAgAEEgR9BHwXCgwKBQQJAgAFEgN9BAsKDAoFBAkCAAESA30MEwoMCgUECQIAAxIDfRYXCgsKBAQJAgESA34EFwoNCgUECQIBBBIEfgR9GAoMCgUECQIBBRIDfgQLCgwKBQQJAgEBEgN+DBIKDAoFBAkCAQMSA34VFgoLCgQECQICEgN/BBcKDQoFBAkCAgQSBH8EfhcKDAoFBAkCAgUSA38ECwoMCgUECQICARIDfwwSCgwKBQQJAgIDEgN/FRYKDAoEBAkCAxIEgAEEGAoOCgUECQIDBBIFgAEEfxcKDQoFBAkCAwUSBIABBAsKDQoFBAkCAwESBIABDBMKDQoFBAkCAwMSBIABFhcKDAoEBAkCBBIEgQEELQoNCgUECQIEBBIEgQEEDAoNCgUECQIEBhIEgQENGQoNCgUECQIEARIEgQEaKAoNCgUECQIEAxIEgQErLAoMCgQECQIFEgSCAQQgCg8KBQQJAgUEEgaCAQSBAS0KDQoFBAkCBQUSBIIBBAsKDQoFBAkCBQESBIIBDBsKDQoFBAkCBQMSBIIBHh8KDAoCBAoSBoUBAIkBAQoLCgMECgESBIUBCBcKDAoEBAoCABIEhgEEEwoPCgUECgIABBIGhgEEhQEZCg0KBQQKAgAFEgSGAQQKCg0KBQQKAgABEgSGAQsOCg0KBQQKAgADEgSGARESCgwKBAQKAgESBIcBBBMKDwoFBAoCAQQSBocBBIYBEwoNCgUECgIBBRIEhwEECgoNCgUECgIBARIEhwELDgoNCgUECgIBAxIEhwEREgoMCgQECgICEgSIAQQkCg8KBQQKAgIEEgaIAQSHARMKDQoFBAoCAgUSBIgBBAoKDQoFBAoCAgESBIgBCx8KDQoFBAoCAgMSBIgBIiMKDAoCBAsSBosBAJMBAQoLCgMECwESBIsBCBMKDAoEBAsCABIEjAEDGwoPCgUECwIABBIGjAEDiwEVCg0KBQQLAgAFEgSMAQMJCg0KBQQLAgABEgSMAQoWCg0KBQQLAgADEgSMARkaCgwKBAQLAgESBI0BAxsKDwoFBAsCAQQSBo0BA4wBGwoNCgUECwIBBRIEjQEDCQoNCgUECwIBARIEjQEKFgoNCgUECwIBAxIEjQEZGgoMCgQECwICEgSOAQMbCg8KBQQLAgIEEgaOAQONARsKDQoFBAsCAgUSBI4BAwkKDQoFBAsCAgESBI4BChYKDQoFBAsCAgMSBI4BGRoKDAoEBAsCAxIEjwEDGwoPCgUECwIDBBIGjwEDjgEbCg0KBQQLAgMFEgSPAQMJCg0KBQQLAgMBEgSPAQoWCg0KBQQLAgMDEgSPARkaCgwKBAQLAgQSBJABAxsKDwoFBAsCBAQSBpABA48BGwoNCgUECwIEBRIEkAEDCQoNCgUECwIEARIEkAEKFgoNCgUECwIEAxIEkAEZGgoMCgQECwIFEgSRAQMbCg8KBQQLAgUEEgaRAQOQARsKDQoFBAsCBQUSBJEBAwkKDQoFBAsCBQESBJEBChYKDQoFBAsCBQMSBJEBGRoKDAoEBAsCBhIEkgEDGwoPCgUECwIGBBIGkgEDkQEbCg0KBQQLAgYFEgSSAQMJCg0KBQQLAgYBEgSSAQoWCg0KBQQLAgYDEgSSARkaCgwKAgQMEgaVAQCkAQEKCwoDBAwBEgSVAQgZCkcKBAQMAgASBJYBBBsiOSB2YWxpZCBvbmx5IHdoZW4gcmVmZXJlbmNlZCBpbiB0aGUgdGVjaCBwcm9maWxlIGluc3RhbmNlCgoPCgUEDAIABBIGlgEElQEbCg0KBQQMAgAFEgSWAQQLCg0KBQQMAgABEgSWAQwWCg0KBQQMAgADEgSWARkaCgwKBAQMAgESBJcBBBoKDwoFBAwCAQQSBpcBBJYBGwoNCgUEDAIBBRIElwEECgoNCgUEDAIBARIElwELFQoNCgUEDAIBAxIElwEYGQoMCgQEDAICEgSYAQQYCg8KBQQMAgIEEgaYAQSXARoKDQoFBAwCAgUSBJgBBAoKDQoFBAwCAgESBJgBCxMKDQoFBAwCAgMSBJgBFhcKDAoEBAwCAxIEmQEEHgoPCgUEDAIDBBIGmQEEmAEYCg0KBQQMAgMFEgSZAQQKCg0KBQQMAgMBEgSZAQsZCg0KBQQMAgMDEgSZARwdCiUKBAQMAgQSBJoBBCsiFyBUaGlzIGNhbiBiZSBTUCBvciBXUlIKCg8KBQQMAgQEEgaaAQSZAR4KDQoFBAwCBAYSBJoBBBQKDQoFBAwCBAESBJoBFSYKDQoFBAwCBAMSBJoBKSoKDAoEBAwCBRIEmwEEGwoPCgUEDAIFBBIGmwEEmgErCg0KBQQMAgUFEgSbAQQLCg0KBQQMAgUBEgSbAQwWCg0KBQQMAgUDEgSbARkaCgwKBAQMAgYSBJwBBBcKDwoFBAwCBgQSBpwBBJsBGwoNCgUEDAIGBRIEnAEECwoNCgUEDAIGARIEnAEMEgoNCgUEDAIGAxIEnAEVFgoMCgQEDAIHEgSdAQQlCg8KBQQMAgcEEgadAQScARcKDQoFBAwCBwYSBJ0BBBEKDQoFBAwCBwESBJ0BEiAKDQoFBAwCBwMSBJ0BIyQKMwoEBAwCCBIEngEEKCIlIHVzZWQgd2l0aCB2ZXJzaW9uIDEgb2YgdGVjaCBwcm9maWxlCgoPCgUEDAIIBBIGngEEnQElCg0KBQQMAggGEgSeAQQUCg0KBQQMAggBEgSeARUjCg0KBQQMAggDEgSeASYnCjMKBAQMAgkSBJ8BBCkiJSB1c2VkIHdpdGggdmVyc2lvbiAyIG9mIHRlY2ggcHJvZmlsZQoKDwoFBAwCCQQSBp8BBJ4BKAoNCgUEDAIJBhIEnwEEEQoNCgUEDAIJARIEnwESIwoNCgUEDAIJAxIEnwEmKAoMCgQEDAIKEgSgAQQdCg8KBQQMAgoEEgagAQSfASkKDQoFBAwCCgUSBKABBAoKDQoFBAwCCgESBKABCxcKDQoFBAwCCgMSBKABGhwKDAoEBAwCCxIEoQEEIgoPCgUEDAILBBIGoQEEoAEdCg0KBQQMAgsFEgShAQQLCg0KBQQMAgsBEgShAQwcCg0KBQQMAgsDEgShAR8hCgwKBAQMAgwSBKIBBCwKDwoFBAwCDAQSBqIBBKEBIgoNCgUEDAIMBRIEogEECgoNCgUEDAIMARIEogELJgoNCgUEDAIMAxIEogEpKwoMCgQEDAINEgSjAQQrCg8KBQQMAg0EEgajAQSiASwKDQoFBAwCDQUSBKMBBAoKDQoFBAwCDQESBKMBCyUKDQoFBAwCDQMSBKMBKCoKDAoCBA0SBqYBAK0BAQoLCgMEDQESBKYBCBsKDAoEBA0CABIEpwEEHAoPCgUEDQIABBIGpwEEpgEdCg0KBQQNAgAGEgSnAQQNCg0KBQQNAgABEgSnAQ4XCg0KBQQNAgADEgSnARobCmoKBAQNAgESBKgBBBgiXCAgVmFsaWQgb24gZm9yIOKAnGRpcmVjdGlvbiA9PSBVcHN0cmVhbeKAnSBhbmQgd2hlbiByZWZlcmVuY2VkIGluIHRoZSB0ZWNoIHByb2ZpbGUgaW5zdGFuY2UKCg8KBQQNAgEEEgaoAQSnARwKDQoFBA0CAQUSBKgBBAoKDQoFBA0CAQESBKgBCxMKDQoFBA0CAQMSBKgBFhcKOQoEBA0CAhIEqQEEIyIrIFZhbGlkIG9uIGZvciDigJxkaXJlY3Rpb24gPT0gVXBzdHJlYW3igJ0uCgoPCgUEDQICBBIGqQEEqAEYCg0KBQQNAgIGEgSpAQQQCg0KBQQNAgIBEgSpAREeCg0KBQQNAgIDEgSpASEiCgwKBAQNAgMSBKoBBBkKDwoFBA0CAwQSBqoBBKkBIwoNCgUEDQIDBRIEqgEECwoNCgUEDQIDARIEqgEMFAoNCgUEDQIDAxIEqgEXGAoMCgQEDQIEEgSrAQQXCg8KBQQNAgQEEgarAQSqARkKDQoFBA0CBAUSBKsBBAsKDQoFBA0CBAESBKsBDBIKDQoFBA0CBAMSBKsBFRYKDAoEBA0CBRIErAEEKAoPCgUEDQIFBBIGrAEEqwEXCg0KBQQNAgUGEgSsAQQUCg0KBQQNAgUBEgSsARUjCg0KBQQNAgUDEgSsASYnCgwKAgQOEgavAQDBAQEKCwoDBA4BEgSvAQgbCgwKBAQOAgASBLABBBoKDwoFBA4CAAQSBrABBK8BHQoNCgUEDgIABRIEsAEECgoNCgUEDgIAARIEsAELFQoNCgUEDgIAAxIEsAEYGQoMCgQEDgIBEgSxAQQYCg8KBQQOAgEEEgaxAQSwARoKDQoFBA4CAQUSBLEBBAoKDQoFBA4CAQESBLEBCxMKDQoFBA4CAQMSBLEBFhcKDAoEBA4CAhIEsgEEGgoPCgUEDgICBBIGsgEEsQEYCg0KBQQOAgIFEgSyAQQKCg0KBQQOAgIBEgSyAQsVCg0KBQQOAgIDEgSyARgZCgwKBAQOAgMSBLMBBB4KDwoFBA4CAwQSBrMBBLIBGgoNCgUEDgIDBRIEswEECgoNCgUEDgIDARIEswELGQoNCgUEDgIDAxIEswEcHQoMCgQEDgIEEgS0AQQcCg8KBQQOAgQEEga0AQSzAR4KDQoFBA4CBAUSBLQBBAoKDQoFBA4CBAESBLQBCxcKDQoFBA4CBAMSBLQBGhsKDAoEBA4CBRIEtQEEJgoPCgUEDgIFBBIGtQEEtAEcCg0KBQQOAgUFEgS1AQQKCg0KBQQOAgUBEgS1AQshCg0KBQQOAgUDEgS1ASQlCgwKBAQOAgYSBLYBBCAKDwoFBA4CBgQSBrYBBLUBJgoNCgUEDgIGBRIEtgEECgoNCgUEDgIGARIEtgELGwoNCgUEDgIGAxIEtgEeHwoMCgQEDgIHEgS3AQQlCg8KBQQOAgcEEga3AQS2ASAKDQoFBA4CBwUSBLcBBAoKDQoFBA4CBwESBLcBCyAKDQoFBA4CBwMSBLcBIyQKDAoEBA4CCBIEuAEEKwoPCgUEDgIIBBIGuAEEtwElCg0KBQQOAggFEgS4AQQKCg0KBQQOAggBEgS4AQsmCg0KBQQOAggDEgS4ASkqCgwKBAQOAgkSBLkBBBsKDwoFBA4CCQQSBrkBBLgBKwoNCgUEDgIJBRIEuQEECgoNCgUEDgIJARIEuQELFQoNCgUEDgIJAxIEuQEYGgoMCgQEDgIKEgS6AQQiCg8KBQQOAgoEEga6AQS5ARsKDQoFBA4CCgYSBLoBBA8KDQoFBA4CCgESBLoBEBwKDQoFBA4CCgMSBLoBHyEKDAoEBA4CCxIEuwEELAoPCgUEDgILBBIGuwEEugEiCg0KBQQOAgsGEgS7AQQUCg0KBQQOAgsBEgS7ARUmCg0KBQQOAgsDEgS7ASkrCgwKBAQOAgwSBLwBBBsKDwoFBA4CDAQSBrwBBLsBLAoNCgUEDgIMBRIEvAEECgoNCgUEDgIMARIEvAELFQoNCgUEDgIMAxIEvAEYGgoMCgQEDgINEgS9AQQXCg8KBQQOAg0EEga9AQS8ARsKDQoFBA4CDQUSBL0BBAoKDQoFBA4CDQESBL0BCxEKDQoFBA4CDQMSBL0BFBYKDAoEBA4CDhIEvgEEJgoPCgUEDgIOBBIGvgEEvQEXCg0KBQQOAg4GEgS+AQQRCg0KBQQOAg4BEgS+ARIgCg0KBQQOAg4DEgS+ASMlCjMKBAQOAg8SBL8BBCkiJSB1c2VkIHdpdGggdmVyc2lvbiAxIG9mIHRlY2ggcHJvZmlsZQoKDwoFBA4CDwQSBr8BBL4BJgoNCgUEDgIPBhIEvwEEFAoNCgUEDgIPARIEvwEVIwoNCgUEDgIPAxIEvwEmKAozCgQEDgIQEgTAAQQpIiUgdXNlZCB3aXRoIHZlcnNpb24gMiBvZiB0ZWNoIHByb2ZpbGUKCg8KBQQOAhAEEgbAAQS/ASkKDQoFBA4CEAYSBMABBBEKDQoFBA4CEAESBMABEiMKDQoFBA4CEAMSBMABJigKWgoCBA8SBsQBAM4BARpMIFRlY2hQcm9maWxlIGRlZmluaXRpb24gKHJlbGV2YW50IGZvciBHUE9OLCBYR1BPTiBhbmQgWEdTLVBPTiB0ZWNobm9sb2dpZXMpCgoLCgMEDwESBMQBCBMKDAoEBA8CABIExQEEFAoPCgUEDwIABBIGxQEExAEVCg0KBQQPAgAFEgTFAQQKCg0KBQQPAgABEgTFAQsPCg0KBQQPAgADEgTFARITCgwKBAQPAgESBMYBBBcKDwoFBA8CAQQSBsYBBMUBFAoNCgUEDwIBBRIExgEECgoNCgUEDwIBARIExgELEgoNCgUEDwIBAxIExgEVFgoMCgQEDwICEgTHAQQcCg8KBQQPAgIEEgbHAQTGARcKDQoFBA8CAgUSBMcBBAoKDQoFBA8CAgESBMcBCxcKDQoFBA8CAgMSBMcBGhsKDAoEBA8CAxIEyAEEHQoPCgUEDwIDBBIGyAEExwEcCg0KBQQPAgMFEgTIAQQKCg0KBQQPAgMBEgTIAQsYCg0KBQQPAgMDEgTIARscCgwKBAQPAgQSBMkBBCkKDwoFBA8CBAQSBskBBMgBHQoNCgUEDwIEBhIEyQEEEwoNCgUEDwIEARIEyQEUJAoNCgUEDwIEAxIEyQEnKAoMCgQEDwIFEgTKAQQpCg8KBQQPAgUEEgbKAQTJASkKDQoFBA8CBQYSBMoBBBcKDQoFBA8CBQESBMoBGCQKDQoFBA8CBQMSBMoBJygKDAoEBA8CBhIEywEEKQoPCgUEDwIGBBIGywEEygEpCg0KBQQPAgYGEgTLAQQXCg0KBQQPAgYBEgTLARgkCg0KBQQPAgYDEgTLAScoCgwKBAQPAgcSBMwBBEQKDQoFBA8CBwQSBMwBBAwKDQoFBA8CBwYSBMwBDR4KDQoFBA8CBwESBMwBHz8KDQoFBA8CBwMSBMwBQkMKDAoEBA8CCBIEzQEERgoNCgUEDwIIBBIEzQEEDAoNCgUEDwIIBhIEzQENHgoNCgUEDwIIARIEzQEfQQoNCgUEDwIIAxIEzQFERQorCgIEEBIG0QEA2gEBGh0gRVBPTiBUZWNoUHJvZmlsZSBkZWZpbml0aW9uCgoLCgMEEAESBNEBCBcKDAoEBBACABIE0gEEFAoPCgUEEAIABBIG0gEE0QEZCg0KBQQQAgAFEgTSAQQKCg0KBQQQAgABEgTSAQsPCg0KBQQQAgADEgTSARITCgwKBAQQAgESBNMBBBcKDwoFBBACAQQSBtMBBNIBFAoNCgUEEAIBBRIE0wEECgoNCgUEEAIBARIE0wELEgoNCgUEEAIBAxIE0wEVFgoMCgQEEAICEgTUAQQcCg8KBQQQAgIEEgbUAQTTARcKDQoFBBACAgUSBNQBBAoKDQoFBBACAgESBNQBCxcKDQoFBBACAgMSBNQBGhsKDAoEBBACAxIE1QEEHQoPCgUEEAIDBBIG1QEE1AEcCg0KBQQQAgMFEgTVAQQKCg0KBQQQAgMBEgTVAQsYCg0KBQQQAgMDEgTVARscCgwKBAQQAgQSBNYBBCkKDwoFBBACBAQSBtYBBNUBHQoNCgUEEAIEBhIE1gEEEwoNCgUEEAIEARIE1gEUJAoNCgUEEAIEAxIE1gEnKAoMCgQEEAIFEgTXAQQcCg8KBQQQAgUEEgbXAQTWASkKDQoFBBACBQUSBNcBBAoKDQoFBBACBQESBNcBCxcKDQoFBBACBQMSBNcBGhsKDAoEBBACBhIE2AEEQgoNCgUEEAIGBBIE2AEEDAoNCgUEEAIGBhIE2AENIAoNCgUEEAIGARIE2AEhPgoNCgUEEAIGAxIE2AFAQQoMCgQEEAIHEgTZAQRFCg0KBQQQAgcEEgTZAQQMCg0KBQQQAgcGEgTZAQ0gCg0KBQQQAgcBEgTZASFACg0KBQQQAgcDEgTZAUNECmMKAgQREgbdAQDoAQEaVSBUZWNoUHJvZmlsZSBJbnN0YW5jZSBkZWZpbml0aW9uIChyZWxldmFudCBmb3IgR1BPTiwgWEdQT04gYW5kIFhHUy1QT04gdGVjaG5vbG9naWVzKQoKCwoDBBEBEgTdAQgbCgwKBAQRAgASBN4BBBQKDwoFBBECAAQSBt4BBN0BHQoNCgUEEQIABRIE3gEECgoNCgUEEQIAARIE3gELDwoNCgUEEQIAAxIE3gESEwoMCgQEEQIBEgTfAQQXCg8KBQQRAgEEEgbfAQTeARQKDQoFBBECAQUSBN8BBAoKDQoFBBECAQESBN8BCxIKDQoFBBECAQMSBN8BFRYKDAoEBBECAhIE4AEEJQoPCgUEEQICBBIG4AEE3wEXCg0KBQQRAgIFEgTgAQQKCg0KBQQRAgIBEgTgAQsgCg0KBQQRAgIDEgTgASMkCgwKBAQRAgMSBOEBBBwKDwoFBBECAwQSBuEBBOABJQoNCgUEEQIDBRIE4QEECgoNCgUEEQIDARIE4QELFwoNCgUEEQIDAxIE4QEaGwoMCgQEEQIEEgTiAQQdCg8KBQQRAgQEEgbiAQThARwKDQoFBBECBAUSBOIBBAoKDQoFBBECBAESBOIBCxgKDQoFBBECBAMSBOIBGxwKDAoEBBECBRIE4wEEKQoPCgUEEQIFBBIG4wEE4gEdCg0KBQQRAgUGEgTjAQQTCg0KBQQRAgUBEgTjARQkCg0KBQQRAgUDEgTjAScoCgwKBAQRAgYSBOQBBCkKDwoFBBECBgQSBuQBBOMBKQoNCgUEEQIGBhIE5AEEFwoNCgUEEQIGARIE5AEYJAoNCgUEEQIGAxIE5AEnKAoMCgQEEQIHEgTlAQQpCg8KBQQRAgcEEgblAQTkASkKDQoFBBECBwYSBOUBBBcKDQoFBBECBwESBOUBGCQKDQoFBBECBwMSBOUBJygKDAoEBBECCBIE5gEERAoNCgUEEQIIBBIE5gEEDAoNCgUEEQIIBhIE5gENHgoNCgUEEQIIARIE5gEfPwoNCgUEEQIIAxIE5gFCQwoMCgQEEQIJEgTnAQRHCg0KBQQRAgkEEgTnAQQMCg0KBQQRAgkGEgTnAQ0eCg0KBQQRAgkBEgTnAR9BCg0KBQQRAgkDEgTnAURGCjUKAgQSEgbrAQD2AQEaJyBFUE9OIFRlY2hQcm9maWxlIEluc3RhbmNlIGRlZmluaXRpb24uCgoLCgMEEgESBOsBCB8KDAoEBBICABIE7AEEFAoPCgUEEgIABBIG7AEE6wEhCg0KBQQSAgAFEgTsAQQKCg0KBQQSAgABEgTsAQsPCg0KBQQSAgADEgTsARITCgwKBAQSAgESBO0BBBcKDwoFBBICAQQSBu0BBOwBFAoNCgUEEgIBBRIE7QEECgoNCgUEEgIBARIE7QELEgoNCgUEEgIBAxIE7QEVFgoMCgQEEgICEgTuAQQlCg8KBQQSAgIEEgbuAQTtARcKDQoFBBICAgUSBO4BBAoKDQoFBBICAgESBO4BCyAKDQoFBBICAgMSBO4BIyQKDAoEBBICAxIE7wEEHAoPCgUEEgIDBBIG7wEE7gElCg0KBQQSAgMFEgTvAQQKCg0KBQQSAgMBEgTvAQsXCg0KBQQSAgMDEgTvARobCgwKBAQSAgQSBPABBB0KDwoFBBICBAQSBvABBO8BHAoNCgUEEgIEBRIE8AEECgoNCgUEEgIEARIE8AELGAoNCgUEEgIEAxIE8AEbHAoMCgQEEgIFEgTxAQQYCg8KBQQSAgUEEgbxAQTwAR0KDQoFBBICBQUSBPEBBAoKDQoFBBICBQESBPEBCxMKDQoFBBICBQMSBPEBFhcKDAoEBBICBhIE8gEEKQoPCgUEEgIGBBIG8gEE8QEYCg0KBQQSAgYGEgTyAQQTCg0KBQQSAgYBEgTyARQkCg0KBQQSAgYDEgTyAScoCgwKBAQSAgcSBPMBBBwKDwoFBBICBwQSBvMBBPIBKQoNCgUEEgIHBRIE8wEECgoNCgUEEgIHARIE8wELFwoNCgUEEgIHAxIE8wEaGwoMCgQEEgIIEgT0AQRCCg0KBQQSAggEEgT0AQQMCg0KBQQSAggGEgT0AQ0gCg0KBQQSAggBEgT0ASE+Cg0KBQQSAggDEgT0AUBBCgwKBAQSAgkSBPUBBEYKDQoFBBICCQQSBPUBBAwKDQoFBBICCQYSBPUBDSAKDQoFBBICCQESBPUBIUAKDQoFBBICCQMSBPUBQ0UKLAoCBBMSBvkBAP8BARoeIFJlc291cmNlIEluc3RhbmNlIGRlZmluaXRpb24KCgsKAwQTARIE+QEIGAoMCgQEEwIAEgT6AQQVCg8KBQQTAgAEEgb6AQT5ARoKDQoFBBMCAAUSBPoBBAoKDQoFBBMCAAESBPoBCxAKDQoFBBMCAAMSBPoBExQKDAoEBBMCARIE+wEEHAoPCgUEEwIBBBIG+wEE+gEVCg0KBQQTAgEFEgT7AQQKCg0KBQQTAgEBEgT7AQsXCg0KBQQTAgEDEgT7ARobCgwKBAQTAgISBPwBBCUKDwoFBBMCAgQSBvwBBPsBHAoNCgUEEwICBRIE/AEECgoNCgUEEwICARIE/AELIAoNCgUEEwICAxIE/AEjJAoMCgQEEwIDEgT9AQQYCg8KBQQTAgMEEgb9AQT8ASUKDQoFBBMCAwUSBP0BBAoKDQoFBBMCAwESBP0BCxMKDQoFBBMCAwMSBP0BFhcKDAoEBBMCBBIE/gEEJAoNCgUEEwIEBBIE/gEEDAoNCgUEEwIEBRIE/gENEwoNCgUEEwIEARIE/gEUHwoNCgUEEwIEAxIE/gEiI2IGcHJvdG8zCtKBAwobdm9sdGhhX3Byb3Rvcy9vcGVub2x0LnByb3RvEgdvcGVub2x0Ghxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGiB2b2x0aGFfcHJvdG9zL3RlY2hfcHJvZmlsZS5wcm90bxoedm9sdGhhX3Byb3Rvcy9leHRfY29uZmlnLnByb3RvGh52b2x0aGFfcHJvdG9zL2V4dGVuc2lvbnMucHJvdG8izAQKCkluZGljYXRpb24SMQoHb2x0X2luZBgBIAEoCzIWLm9wZW5vbHQuT2x0SW5kaWNhdGlvbkgAUgZvbHRJbmQSNAoIaW50Zl9pbmQYAiABKAsyFy5vcGVub2x0LkludGZJbmRpY2F0aW9uSABSB2ludGZJbmQSQQoNaW50Zl9vcGVyX2luZBgDIAEoCzIbLm9wZW5vbHQuSW50Zk9wZXJJbmRpY2F0aW9uSABSC2ludGZPcGVySW5kEj4KDG9udV9kaXNjX2luZBgEIAEoCzIaLm9wZW5vbHQuT251RGlzY0luZGljYXRpb25IAFIKb251RGlzY0luZBIxCgdvbnVfaW5kGAUgASgLMhYub3Blbm9sdC5PbnVJbmRpY2F0aW9uSABSBm9udUluZBI0CghvbWNpX2luZBgGIAEoCzIXLm9wZW5vbHQuT21jaUluZGljYXRpb25IAFIHb21jaUluZBI0Cgdwa3RfaW5kGAcgASgLMhkub3Blbm9sdC5QYWNrZXRJbmRpY2F0aW9uSABSBnBrdEluZBI4Cgpwb3J0X3N0YXRzGAggASgLMhcub3Blbm9sdC5Qb3J0U3RhdGlzdGljc0gAUglwb3J0U3RhdHMSOAoKZmxvd19zdGF0cxgJIAEoCzIXLm9wZW5vbHQuRmxvd1N0YXRpc3RpY3NIAFIJZmxvd1N0YXRzEjcKCWFsYXJtX2luZBgKIAEoCzIYLm9wZW5vbHQuQWxhcm1JbmRpY2F0aW9uSABSCGFsYXJtSW5kQgYKBGRhdGEi6w0KD0FsYXJtSW5kaWNhdGlvbhIxCgdsb3NfaW5kGAEgASgLMhYub3Blbm9sdC5Mb3NJbmRpY2F0aW9uSABSBmxvc0luZBJECg5keWluZ19nYXNwX2luZBgCIAEoCzIcLm9wZW5vbHQuRHlpbmdHYXNwSW5kaWNhdGlvbkgAUgxkeWluZ0dhc3BJbmQSQQoNb251X2FsYXJtX2luZBgDIAEoCzIbLm9wZW5vbHQuT251QWxhcm1JbmRpY2F0aW9uSABSC29udUFsYXJtSW5kElcKFG9udV9zdGFydHVwX2ZhaWxfaW5kGAQgASgLMiQub3Blbm9sdC5PbnVTdGFydHVwRmFpbHVyZUluZGljYXRpb25IAFIRb251U3RhcnR1cEZhaWxJbmQSWgoWb251X3NpZ25hbF9kZWdyYWRlX2luZBgFIAEoCzIjLm9wZW5vbHQuT251U2lnbmFsRGVncmFkZUluZGljYXRpb25IAFITb251U2lnbmFsRGVncmFkZUluZBJbChdvbnVfZHJpZnRfb2Zfd2luZG93X2luZBgGIAEoCzIjLm9wZW5vbHQuT251RHJpZnRPZldpbmRvd0luZGljYXRpb25IAFITb251RHJpZnRPZldpbmRvd0luZBJUChFvbnVfbG9zc19vbWNpX2luZBgHIAEoCzInLm9wZW5vbHQuT251TG9zc09mT21jaUNoYW5uZWxJbmRpY2F0aW9uSABSDm9udUxvc3NPbWNpSW5kElcKFG9udV9zaWduYWxzX2ZhaWxfaW5kGAggASgLMiQub3Blbm9sdC5PbnVTaWduYWxzRmFpbHVyZUluZGljYXRpb25IAFIRb251U2lnbmFsc0ZhaWxJbmQSTwoMb251X3Rpd2lfaW5kGAkgASgLMisub3Blbm9sdC5PbnVUcmFuc21pc3Npb25JbnRlcmZlcmVuY2VXYXJuaW5nSABSCm9udVRpd2lJbmQSYAoXb251X2FjdGl2YXRpb25fZmFpbF9pbmQYCiABKAsyJy5vcGVub2x0Lk9udUFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbkgAUhRvbnVBY3RpdmF0aW9uRmFpbEluZBJgChhvbnVfcHJvY2Vzc2luZ19lcnJvcl9pbmQYCyABKAsyJS5vcGVub2x0Lk9udVByb2Nlc3NpbmdFcnJvckluZGljYXRpb25IAFIVb251UHJvY2Vzc2luZ0Vycm9ySW5kEmUKGW9udV9sb3NzX29mX3N5bmNfZmFpbF9pbmQYDCABKAsyKi5vcGVub2x0Lk9udUxvc3NPZktleVN5bmNGYWlsdXJlSW5kaWNhdGlvbkgAUhRvbnVMb3NzT2ZTeW5jRmFpbEluZBJVChVvbnVfaXR1X3Bvbl9zdGF0c19pbmQYDSABKAsyIS5vcGVub2x0Lk9udUl0dVBvblN0YXRzSW5kaWNhdGlvbkgAUhFvbnVJdHVQb25TdGF0c0luZBJsChxvbnVfZGVhY3RpdmF0aW9uX2ZhaWx1cmVfaW5kGA4gASgLMikub3Blbm9sdC5PbnVEZWFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbkgAUhlvbnVEZWFjdGl2YXRpb25GYWlsdXJlSW5kElcKFW9udV9yZW1vdGVfZGVmZWN0X2luZBgPIAEoCzIiLm9wZW5vbHQuT251UmVtb3RlRGVmZWN0SW5kaWNhdGlvbkgAUhJvbnVSZW1vdGVEZWZlY3RJbmQScwocb251X2xvc3NfZ2VtX2RlbGluZWF0aW9uX2luZBgQIAEoCzIxLm9wZW5vbHQuT251TG9zc09mR0VNQ2hhbm5lbERlbGluZWF0aW9uSW5kaWNhdGlvbkgAUhhvbnVMb3NzR2VtRGVsaW5lYXRpb25JbmQSdgogb251X3BoeXNpY2FsX2VxdWlwbWVudF9lcnJvcl9pbmQYESABKAsyLC5vcGVub2x0Lk9udVBoeXNpY2FsRXF1aXBtZW50RXJyb3JJbmRpY2F0aW9uSABSHG9udVBoeXNpY2FsRXF1aXBtZW50RXJyb3JJbmQSWwoTb251X2xvc3Nfb2ZfYWNrX2luZBgSIAEoCzIrLm9wZW5vbHQuT251TG9zc09mQWNrbm93bGVkZ2VtZW50SW5kaWNhdGlvbkgAUg9vbnVMb3NzT2ZBY2tJbmQSbwobb251X2RpZmZfcmVhY2hfZXhjZWVkZWRfaW5kGBMgASgLMi8ub3Blbm9sdC5PbnVEaWZmZXJlbnRpYWxSZWFjaEV4Y2VlZGVkSW5kaWNhdGlvbkgAUhdvbnVEaWZmUmVhY2hFeGNlZWRlZEluZEIGCgRkYXRhIi4KDU9sdEluZGljYXRpb24SHQoKb3Blcl9zdGF0ZRgBIAEoCVIJb3BlclN0YXRlIkgKDkludGZJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIdCgpvcGVyX3N0YXRlGAIgASgJUglvcGVyU3RhdGUiaAoRT251RGlzY0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEjoKDXNlcmlhbF9udW1iZXIYAiABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyIpMECg1PbnVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCm9wZXJfc3RhdGUYAyABKAlSCW9wZXJTdGF0ZRIfCgthZG1pbl9zdGF0ZRgFIAEoCVIKYWRtaW5TdGF0ZRI6Cg1zZXJpYWxfbnVtYmVyGAQgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSDHNlcmlhbE51bWJlchJMCgtmYWlsX3JlYXNvbhgGIAEoDjIrLm9wZW5vbHQuT251SW5kaWNhdGlvbi5BY3RpdmF0aW9uRmFpbFJlYXNvblIKZmFpbFJlYXNvbiKHAgoUQWN0aXZhdGlvbkZhaWxSZWFzb24SIwofT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fTk9ORRAAEiYKIk9OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX1JBTkdJTkcQARI2CjJPTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9QQVNTV09SRF9BVVRIRU5USUNBVElPThACEiIKHk9OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX0xPUxADEiEKHU9OVV9BQ1RJVkFUSU9OX0ZBSUxfT05VX0FMQVJNEAQSIwofT05VX0FDVElWQVRJT05fRkFJTF9TV0lUQ0hfT1ZFUhAFIoIEChJJbnRmT3BlckluZGljYXRpb24SEgoEdHlwZRgBIAEoCVIEdHlwZRIXCgdpbnRmX2lkGAIgASgHUgZpbnRmSWQSHQoKb3Blcl9zdGF0ZRgDIAEoCVIJb3BlclN0YXRlEhQKBXNwZWVkGAQgASgHUgVzcGVlZBIeCgp0ZWNobm9sb2d5GAUgASgJUgp0ZWNobm9sb2d5EkUKBnJhbmdlcxgGIAEoCzItLm9wZW5vbHQuSW50Zk9wZXJJbmRpY2F0aW9uLlBPTlJlc291cmNlUmFuZ2VzUgZyYW5nZXMaogIKEVBPTlJlc291cmNlUmFuZ2VzEkgKBXBvb2xzGAMgAygLMjIub3Blbm9sdC5JbnRmT3BlckluZGljYXRpb24uUE9OUmVzb3VyY2VSYW5nZXMuUG9vbFIFcG9vbHMawgEKBFBvb2wSTwoEdHlwZRgBIAEoDjI7Lm9wZW5vbHQuSW50Zk9wZXJJbmRpY2F0aW9uLlBPTlJlc291cmNlUmFuZ2VzLlBvb2wuUG9vbFR5cGVSBHR5cGUSFAoFc3RhcnQYAyABKAdSBXN0YXJ0EhAKA2VuZBgEIAEoB1IDZW5kIkEKCFBvb2xUeXBlEgoKBk9OVV9JRBAAEgwKCEFMTE9DX0lEEAESDgoKR0VNUE9SVF9JRBACEgsKB0ZMT1dfSUQQAyJSCg5PbWNpSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIQCgNwa3QYAyABKAxSA3BrdCLxAQoQUGFja2V0SW5kaWNhdGlvbhIbCglpbnRmX3R5cGUYBSABKAlSCGludGZUeXBlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYCCABKAdSBW9udUlkEhUKBnVuaV9pZBgJIAEoB1IFdW5pSWQSHQoKZ2VtcG9ydF9pZBgCIAEoB1IJZ2VtcG9ydElkEhcKB2Zsb3dfaWQYAyABKAdSBmZsb3dJZBIXCgdwb3J0X25vGAYgASgHUgZwb3J0Tm8SFgoGY29va2llGAcgASgGUgZjb29raWUSEAoDcGt0GAQgASgMUgNwa3QiJAoJSW50ZXJmYWNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZCI8CglIZWFydGJlYXQSLwoTaGVhcnRiZWF0X3NpZ25hdHVyZRgBIAEoB1ISaGVhcnRiZWF0U2lnbmF0dXJlIqwBCgNPbnUSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSOgoNc2VyaWFsX251bWJlchgDIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXISEAoDcGlyGAQgASgHUgNwaXISJwoPb21jY19lbmNyeXB0aW9uGAUgASgIUg5vbWNjRW5jcnlwdGlvbiKxAQoST251TG9naWNhbERpc3RhbmNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjkKGWxvZ2ljYWxfb251X2Rpc3RhbmNlX3plcm8YAyABKAdSFmxvZ2ljYWxPbnVEaXN0YW5jZVplcm8SMAoUbG9naWNhbF9vbnVfZGlzdGFuY2UYBCABKAdSEmxvZ2ljYWxPbnVEaXN0YW5jZSJLCgdPbWNpTXNnEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhAKA3BrdBgDIAEoDFIDcGt0IoUBCglPbnVQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFwoHcG9ydF9ubxgEIAEoB1IGcG9ydE5vEh0KCmdlbXBvcnRfaWQYBSABKAdSCWdlbXBvcnRJZBIQCgNwa3QYAyABKAxSA3BrdCI5CgxVcGxpbmtQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhAKA3BrdBgCIAEoDFIDcGt0IpsHCgpEZXZpY2VJbmZvEhYKBnZlbmRvchgBIAEoCVIGdmVuZG9yEhQKBW1vZGVsGAIgASgJUgVtb2RlbBIpChBoYXJkd2FyZV92ZXJzaW9uGAMgASgJUg9oYXJkd2FyZVZlcnNpb24SKQoQZmlybXdhcmVfdmVyc2lvbhgEIAEoCVIPZmlybXdhcmVWZXJzaW9uEhsKCWRldmljZV9pZBgQIAEoCVIIZGV2aWNlSWQSMAoUZGV2aWNlX3NlcmlhbF9udW1iZXIYESABKAlSEmRldmljZVNlcmlhbE51bWJlchIxChRwcmV2aW91c2x5X2Nvbm5lY3RlZBgTIAEoCFITcHJldmlvdXNseUNvbm5lY3RlZBIbCglwb25fcG9ydHMYDCABKAdSCHBvblBvcnRzEkAKBnJhbmdlcxgPIAMoCzIoLm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlc1IGcmFuZ2VzGpUEChREZXZpY2VSZXNvdXJjZVJhbmdlcxIZCghpbnRmX2lkcxgBIAMoB1IHaW50ZklkcxIeCgp0ZWNobm9sb2d5GAIgASgJUgp0ZWNobm9sb2d5EkMKBXBvb2xzGAMgAygLMi0ub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2xSBXBvb2xzGvwCCgRQb29sEkoKBHR5cGUYASABKA4yNi5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbC5Qb29sVHlwZVIEdHlwZRJTCgdzaGFyaW5nGAIgASgOMjkub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2wuU2hhcmluZ1R5cGVSB3NoYXJpbmcSFAoFc3RhcnQYAyABKAdSBXN0YXJ0EhAKA2VuZBgEIAEoB1IDZW5kIkEKCFBvb2xUeXBlEgoKBk9OVV9JRBAAEgwKCEFMTE9DX0lEEAESDgoKR0VNUE9SVF9JRBACEgsKB0ZMT1dfSUQQAyJoCgtTaGFyaW5nVHlwZRIWChJERURJQ0FURURfUEVSX0lOVEYQABIfChtTSEFSRURfQllfQUxMX0lOVEZfQUxMX1RFQ0gQARIgChxTSEFSRURfQllfQUxMX0lOVEZfU0FNRV9URUNIEAJKBAgFEAxKBAgNEA5KBAgOEA8ihAMKCkNsYXNzaWZpZXISFQoGb190cGlkGAEgASgHUgVvVHBpZBITCgVvX3ZpZBgCIAEoB1IEb1ZpZBIVCgZpX3RwaWQYAyABKAdSBWlUcGlkEhMKBWlfdmlkGAQgASgHUgRpVmlkEhcKB29fcGJpdHMYBSABKAdSBm9QYml0cxIXCgdpX3BiaXRzGAYgASgHUgZpUGJpdHMSGQoIZXRoX3R5cGUYByABKAdSB2V0aFR5cGUSFwoHZHN0X21hYxgIIAEoDFIGZHN0TWFjEhcKB3NyY19tYWMYCSABKAxSBnNyY01hYxIZCghpcF9wcm90bxgKIAEoB1IHaXBQcm90bxIVCgZkc3RfaXAYCyABKAdSBWRzdElwEhUKBnNyY19pcBgMIAEoB1IFc3JjSXASGQoIc3JjX3BvcnQYDSABKAdSB3NyY1BvcnQSGQoIZHN0X3BvcnQYDiABKAdSB2RzdFBvcnQSIAoMcGt0X3RhZ190eXBlGA8gASgJUgpwa3RUYWdUeXBlIoUDCglBY3Rpb25DbWQSIgoNYWRkX291dGVyX3RhZxgBIAEoCFILYWRkT3V0ZXJUYWcSKAoQcmVtb3ZlX291dGVyX3RhZxgCIAEoCFIOcmVtb3ZlT3V0ZXJUYWcSIAoMdHJhcF90b19ob3N0GAMgASgIUgp0cmFwVG9Ib3N0EiwKEnJlbWFya19vdXRlcl9wYml0cxgEIAEoCFIQcmVtYXJrT3V0ZXJQYml0cxIsChJyZW1hcmtfaW5uZXJfcGJpdHMYBSABKAhSEHJlbWFya0lubmVyUGJpdHMSIgoNYWRkX2lubmVyX3RhZxgGIAEoCFILYWRkSW5uZXJUYWcSKAoQcmVtb3ZlX2lubmVyX3RhZxgHIAEoCFIOcmVtb3ZlSW5uZXJUYWcSLgoTdHJhbnNsYXRlX2lubmVyX3RhZxgIIAEoCFIRdHJhbnNsYXRlSW5uZXJUYWcSLgoTdHJhbnNsYXRlX291dGVyX3RhZxgJIAEoCFIRdHJhbnNsYXRlT3V0ZXJUYWciuAEKBkFjdGlvbhIkCgNjbWQYASABKAsyEi5vcGVub2x0LkFjdGlvbkNtZFIDY21kEhMKBW9fdmlkGAIgASgHUgRvVmlkEhcKB29fcGJpdHMYAyABKAdSBm9QYml0cxIVCgZvX3RwaWQYBCABKAdSBW9UcGlkEhMKBWlfdmlkGAUgASgHUgRpVmlkEhcKB2lfcGJpdHMYBiABKAdSBmlQYml0cxIVCgZpX3RwaWQYByABKAdSBWlUcGlkIscGCgRGbG93EiQKDmFjY2Vzc19pbnRmX2lkGAEgASgPUgxhY2Nlc3NJbnRmSWQSFQoGb251X2lkGAIgASgPUgVvbnVJZBIVCgZ1bmlfaWQYCyABKA9SBXVuaUlkEhcKB2Zsb3dfaWQYAyABKAZSBmZsb3dJZBIqChFzeW1tZXRyaWNfZmxvd19pZBgSIAEoBlIPc3ltbWV0cmljRmxvd0lkEhsKCWZsb3dfdHlwZRgEIAEoCVIIZmxvd1R5cGUSGQoIYWxsb2NfaWQYCiABKA9SB2FsbG9jSWQSJgoPbmV0d29ya19pbnRmX2lkGAUgASgPUg1uZXR3b3JrSW50ZklkEh0KCmdlbXBvcnRfaWQYBiABKA9SCWdlbXBvcnRJZBIzCgpjbGFzc2lmaWVyGAcgASgLMhMub3Blbm9sdC5DbGFzc2lmaWVyUgpjbGFzc2lmaWVyEicKBmFjdGlvbhgIIAEoCzIPLm9wZW5vbHQuQWN0aW9uUgZhY3Rpb24SGgoIcHJpb3JpdHkYCSABKA9SCHByaW9yaXR5EhYKBmNvb2tpZRgMIAEoBlIGY29va2llEhcKB3BvcnRfbm8YDSABKAdSBnBvcnRObxIZCghncm91cF9pZBgOIAEoB1IHZ3JvdXBJZBImCg90ZWNoX3Byb2ZpbGVfaWQYDyABKAdSDXRlY2hQcm9maWxlSWQSJQoOcmVwbGljYXRlX2Zsb3cYECABKAhSDXJlcGxpY2F0ZUZsb3cSSAoPcGJpdF90b19nZW1wb3J0GBEgAygLMiAub3Blbm9sdC5GbG93LlBiaXRUb0dlbXBvcnRFbnRyeVINcGJpdFRvR2VtcG9ydBJFCg5nZW1wb3J0X3RvX2FlcxgTIAMoCzIfLm9wZW5vbHQuRmxvdy5HZW1wb3J0VG9BZXNFbnRyeVIMZ2VtcG9ydFRvQWVzGkAKElBiaXRUb0dlbXBvcnRFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGj8KEUdlbXBvcnRUb0Flc0VudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEiVAoMU2VyaWFsTnVtYmVyEhsKCXZlbmRvcl9pZBgBIAEoDFIIdmVuZG9ySWQSJwoPdmVuZG9yX3NwZWNpZmljGAIgASgMUg52ZW5kb3JTcGVjaWZpYyL+CwoOUG9ydFN0YXRpc3RpY3MSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhkKCHJ4X2J5dGVzGAIgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYAyABKAZSCXJ4UGFja2V0cxIoChByeF91Y2FzdF9wYWNrZXRzGAQgASgGUg5yeFVjYXN0UGFja2V0cxIoChByeF9tY2FzdF9wYWNrZXRzGAUgASgGUg5yeE1jYXN0UGFja2V0cxIoChByeF9iY2FzdF9wYWNrZXRzGAYgASgGUg5yeEJjYXN0UGFja2V0cxIoChByeF9lcnJvcl9wYWNrZXRzGAcgASgGUg5yeEVycm9yUGFja2V0cxIbCglyeF9mcmFtZXMYESABKAZSCHJ4RnJhbWVzEiAKDHJ4X2ZyYW1lc182NBgSIAEoBlIKcnhGcmFtZXM2NBInChByeF9mcmFtZXNfNjVfMTI3GBMgASgGUg1yeEZyYW1lczY1MTI3EikKEXJ4X2ZyYW1lc18xMjhfMjU1GBQgASgGUg5yeEZyYW1lczEyODI1NRIpChFyeF9mcmFtZXNfMjU2XzUxMRgVIAEoBlIOcnhGcmFtZXMyNTY1MTESKwoScnhfZnJhbWVzXzUxMl8xMDIzGBYgASgGUg9yeEZyYW1lczUxMjEwMjMSLQoTcnhfZnJhbWVzXzEwMjRfMTUxOBgXIAEoBlIQcnhGcmFtZXMxMDI0MTUxOBItChNyeF9mcmFtZXNfMTUxOV8yMDQ3GBggASgGUhByeEZyYW1lczE1MTkyMDQ3Ei0KE3J4X2ZyYW1lc18yMDQ4XzQwOTUYGSABKAZSEHJ4RnJhbWVzMjA0ODQwOTUSLQoTcnhfZnJhbWVzXzQwOTZfOTIxNhgaIAEoBlIQcnhGcmFtZXM0MDk2OTIxNhIvChRyeF9mcmFtZXNfOTIxN18xNjM4MxgbIAEoBlIRcnhGcmFtZXM5MjE3MTYzODMSIgoNcnhfY3JjX2Vycm9ycxgOIAEoBlILcnhDcmNFcnJvcnMSGQoIdHhfYnl0ZXMYCCABKAZSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgJIAEoBlIJdHhQYWNrZXRzEigKEHR4X3VjYXN0X3BhY2tldHMYCiABKAZSDnR4VWNhc3RQYWNrZXRzEigKEHR4X21jYXN0X3BhY2tldHMYCyABKAZSDnR4TWNhc3RQYWNrZXRzEigKEHR4X2JjYXN0X3BhY2tldHMYDCABKAZSDnR4QmNhc3RQYWNrZXRzEigKEHR4X2Vycm9yX3BhY2tldHMYDSABKAZSDnR4RXJyb3JQYWNrZXRzEhsKCXR4X2ZyYW1lcxgcIAEoBlIIdHhGcmFtZXMSIAoMdHhfZnJhbWVzXzY0GB0gASgGUgp0eEZyYW1lczY0EicKEHR4X2ZyYW1lc182NV8xMjcYHiABKAZSDXR4RnJhbWVzNjUxMjcSKQoRdHhfZnJhbWVzXzEyOF8yNTUYHyABKAZSDnR4RnJhbWVzMTI4MjU1EikKEXR4X2ZyYW1lc18yNTZfNTExGCAgASgGUg50eEZyYW1lczI1NjUxMRIrChJ0eF9mcmFtZXNfNTEyXzEwMjMYISABKAZSD3R4RnJhbWVzNTEyMTAyMxItChN0eF9mcmFtZXNfMTAyNF8xNTE4GCIgASgGUhB0eEZyYW1lczEwMjQxNTE4Ei0KE3R4X2ZyYW1lc18xNTE5XzIwNDcYIyABKAZSEHR4RnJhbWVzMTUxOTIwNDcSLQoTdHhfZnJhbWVzXzIwNDhfNDA5NRgkIAEoBlIQdHhGcmFtZXMyMDQ4NDA5NRItChN0eF9mcmFtZXNfNDA5Nl85MjE2GCUgASgGUhB0eEZyYW1lczQwOTY5MjE2Ei8KFHR4X2ZyYW1lc185MjE3XzE2MzgzGCYgASgGUhF0eEZyYW1lczkyMTcxNjM4MxIdCgpiaXBfZXJyb3JzGA8gASgGUgliaXBFcnJvcnMSHAoJdGltZXN0YW1wGBAgASgHUgl0aW1lc3RhbXAi5gcKDU9udVN0YXRpc3RpY3MSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSJQoOcG9zaXRpdmVfZHJpZnQYAyABKAZSDXBvc2l0aXZlRHJpZnQSJQoObmVnYXRpdmVfZHJpZnQYBCABKAZSDW5lZ2F0aXZlRHJpZnQSOAoYZGVsaW1pdGVyX21pc3NfZGV0ZWN0aW9uGAUgASgGUhZkZWxpbWl0ZXJNaXNzRGV0ZWN0aW9uEh0KCmJpcF9lcnJvcnMYBiABKAZSCWJpcEVycm9ycxIbCgliaXBfdW5pdHMYByABKAZSCGJpcFVuaXRzEjIKFWZlY19jb3JyZWN0ZWRfc3ltYm9scxgIIAEoBlITZmVjQ29ycmVjdGVkU3ltYm9scxI2ChdmZWNfY29kZXdvcmRzX2NvcnJlY3RlZBgJIAEoBlIVZmVjQ29kZXdvcmRzQ29ycmVjdGVkEj4KG2ZlY19jb2Rld29yZHNfdW5jb3JyZWN0YWJsZRgKIAEoBlIZZmVjQ29kZXdvcmRzVW5jb3JyZWN0YWJsZRIjCg1mZWNfY29kZXdvcmRzGAsgASgGUgxmZWNDb2Rld29yZHMSLgoTZmVjX2NvcnJlY3RlZF91bml0cxgMIAEoBlIRZmVjQ29ycmVjdGVkVW5pdHMSJgoPeGdlbV9rZXlfZXJyb3JzGA0gASgGUg14Z2VtS2V5RXJyb3JzEhsKCXhnZW1fbG9zcxgOIAEoBlIIeGdlbUxvc3MSJgoPcnhfcGxvYW1zX2Vycm9yGA8gASgGUg1yeFBsb2Ftc0Vycm9yEisKEnJ4X3Bsb2Ftc19ub25faWRsZRgQIAEoBlIPcnhQbG9hbXNOb25JZGxlEhcKB3J4X29tY2kYESABKAZSBnJ4T21jaRI4ChlyeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yGBIgASgGUhVyeE9tY2lQYWNrZXRzQ3JjRXJyb3ISGQoIcnhfYnl0ZXMYEyABKAZSB3J4Qnl0ZXMSHQoKcnhfcGFja2V0cxgUIAEoBlIJcnhQYWNrZXRzEhkKCHR4X2J5dGVzGBUgASgGUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYFiABKAZSCXR4UGFja2V0cxIhCgxiZXJfcmVwb3J0ZWQYFyABKAZSC2JlclJlcG9ydGVkEh8KC2xjZGdfZXJyb3JzGBggASgGUgpsY2RnRXJyb3JzEh0KCnJkaV9lcnJvcnMYGSABKAZSCXJkaUVycm9ycxIcCgl0aW1lc3RhbXAYGiABKAdSCXRpbWVzdGFtcCLdAQoRR2VtUG9ydFN0YXRpc3RpY3MSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEh0KCmdlbXBvcnRfaWQYAiABKAdSCWdlbXBvcnRJZBIdCgpyeF9wYWNrZXRzGAMgASgGUglyeFBhY2tldHMSGQoIcnhfYnl0ZXMYBCABKAZSB3J4Qnl0ZXMSHQoKdHhfcGFja2V0cxgFIAEoBlIJdHhQYWNrZXRzEhkKCHR4X2J5dGVzGAYgASgGUgd0eEJ5dGVzEhwKCXRpbWVzdGFtcBgaIAEoB1IJdGltZXN0YW1wIrsBCg5GbG93U3RhdGlzdGljcxIXCgdmbG93X2lkGAEgASgHUgZmbG93SWQSGQoIcnhfYnl0ZXMYAiABKAZSB3J4Qnl0ZXMSHQoKcnhfcGFja2V0cxgDIAEoBlIJcnhQYWNrZXRzEhkKCHR4X2J5dGVzGAggASgGUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYCSABKAZSCXR4UGFja2V0cxIcCgl0aW1lc3RhbXAYECABKAdSCXRpbWVzdGFtcCJACg1Mb3NJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIWCgZzdGF0dXMYAiABKAlSBnN0YXR1cyJdChNEeWluZ0dhc3BJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIqMCChJPbnVBbGFybUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHQoKbG9zX3N0YXR1cxgDIAEoCVIJbG9zU3RhdHVzEh0KCmxvYl9zdGF0dXMYBCABKAlSCWxvYlN0YXR1cxIoChBsb3BjX21pc3Nfc3RhdHVzGAUgASgJUg5sb3BjTWlzc1N0YXR1cxIxChVsb3BjX21pY19lcnJvcl9zdGF0dXMYBiABKAlSEmxvcGNNaWNFcnJvclN0YXR1cxIfCgtsb2ZpX3N0YXR1cxgHIAEoCVIKbG9maVN0YXR1cxIhCgxsb2FtaV9zdGF0dXMYCCABKAlSC2xvYW1pU3RhdHVzImUKG09udVN0YXJ0dXBGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKZAQoaT251U2lnbmFsRGVncmFkZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgEIAEoB1ITaW52ZXJzZUJpdEVycm9yUmF0ZSKTAQoaT251RHJpZnRPZldpbmRvd0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSFAoFZHJpZnQYBCABKAdSBWRyaWZ0EhcKB25ld19lcWQYBSABKAdSBm5ld0VxZCJoCh5PbnVMb3NzT2ZPbWNpQ2hhbm5lbEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMimgEKG09udVNpZ25hbHNGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIzChZpbnZlcnNlX2JpdF9lcnJvcl9yYXRlGAQgASgHUhNpbnZlcnNlQml0RXJyb3JSYXRlIoIBCiJPbnVUcmFuc21pc3Npb25JbnRlcmZlcmVuY2VXYXJuaW5nEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhQKBWRyaWZ0GAQgASgHUgVkcmlmdCJxCh5PbnVBY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHwoLZmFpbF9yZWFzb24YAyABKAdSCmZhaWxSZWFzb24iawohT251TG9zc09mS2V5U3luY0ZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIlQKElJkaUVycm9ySW5kaWNhdGlvbhImCg9yZGlfZXJyb3JfY291bnQYASABKAZSDXJkaUVycm9yQ291bnQSFgoGc3RhdHVzGAIgASgJUgZzdGF0dXMilgEKGE9udUl0dVBvblN0YXRzSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBJBCg1yZGlfZXJyb3JfaW5kGAMgASgLMhsub3Blbm9sdC5SZGlFcnJvckluZGljYXRpb25IAFILcmRpRXJyb3JJbmRCBwoFc3RhdHMiTgocT251UHJvY2Vzc2luZ0Vycm9ySW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCJqCiBPbnVEZWFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyJqChlPbnVSZW1vdGVEZWZlY3RJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCnJkaV9lcnJvcnMYAyABKAZSCXJkaUVycm9ycyKhAQooT251TG9zc09mR0VNQ2hhbm5lbERlbGluZWF0aW9uSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxItChJkZWxpbmVhdGlvbl9lcnJvcnMYBCABKAdSEWRlbGluZWF0aW9uRXJyb3JzIm0KI09udVBoeXNpY2FsRXF1aXBtZW50RXJyb3JJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzImwKIk9udUxvc3NPZkFja25vd2xlZGdlbWVudEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMijAEKJk9udURpZmZlcmVudGlhbFJlYWNoRXhjZWVkZWRJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhoKCGRpc3RhbmNlGAQgASgHUghkaXN0YW5jZSL2AQoLR3JvdXBNZW1iZXISIQoMaW50ZXJmYWNlX2lkGAEgASgNUgtpbnRlcmZhY2VJZBJJCg5pbnRlcmZhY2VfdHlwZRgCIAEoDjIiLm9wZW5vbHQuR3JvdXBNZW1iZXIuSW50ZXJmYWNlVHlwZVINaW50ZXJmYWNlVHlwZRIeCgtnZW1fcG9ydF9pZBgDIAEoDVIJZ2VtUG9ydElkEhoKCHByaW9yaXR5GAQgASgNUghwcmlvcml0eSI9Cg1JbnRlcmZhY2VUeXBlEgcKA1BPThAAEhAKDEVQT05fMUdfUEFUSBABEhEKDUVQT05fMTBHX1BBVEgQAiKGAgoFR3JvdXASGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQSPAoHY29tbWFuZBgCIAEoDjIiLm9wZW5vbHQuR3JvdXAuR3JvdXBNZW1iZXJzQ29tbWFuZFIHY29tbWFuZBIuCgdtZW1iZXJzGAMgAygLMhQub3Blbm9sdC5Hcm91cE1lbWJlclIHbWVtYmVycxInCgZhY3Rpb24YBCABKAsyDy5vcGVub2x0LkFjdGlvblIGYWN0aW9uIksKE0dyb3VwTWVtYmVyc0NvbW1hbmQSDwoLQUREX01FTUJFUlMQABISCg5SRU1PVkVfTUVNQkVSUxABEg8KC1NFVF9NRU1CRVJTEAIiXQoKVmFsdWVQYXJhbRIeCgNvbnUYASABKAsyDC5vcGVub2x0Lk9udVIDb251Ei8KBXZhbHVlGAIgASgOMhkuZXh0ZW5zaW9uLlZhbHVlVHlwZS5UeXBlUgV2YWx1ZSLDAgoOUG9uUnhQb3dlckRhdGESFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSUgoLZmFpbF9yZWFzb24YBCABKA4yMS5vcGVub2x0LlBvblJ4UG93ZXJEYXRhLlJzc2lNZWFzdXJlbWVudEZhaWxSZWFzb25SCmZhaWxSZWFzb24SKQoRcnhfcG93ZXJfbWVhbl9kYm0YBSABKAFSDnJ4UG93ZXJNZWFuRGJtImoKGVJzc2lNZWFzdXJlbWVudEZhaWxSZWFzb24SFAoQRkFJTF9SRUFTT05fTk9ORRAAEhwKGEZBSUxfUkVBU09OX05PX0RFTElNSVRFUhABEhkKFUZBSUxfUkVBU09OX05PX0FDQ0VTUxACIgcKBUVtcHR5Mp8UCgdPcGVub2x0EkQKCkRpc2FibGVPbHQSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIWgtPkkwIQIgsvdjEvRGlzYWJsZToBKhJGCgtSZWVuYWJsZU9sdBIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IheC0+STAhEiDC92MS9SZWVuYWJsZToBKhJFCgtBY3RpdmF0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIYgtPkkwISIg0vdjEvRW5hYmxlT251OgEqEkgKDURlYWN0aXZhdGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGYLT5JMCEyIOL3YxL0Rpc2FibGVPbnU6ASoSQwoJRGVsZXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhiC0+STAhIiDS92MS9EZWxldGVPbnU6ASoSSQoKT21jaU1zZ091dBIQLm9wZW5vbHQuT21jaU1zZxoOLm9wZW5vbHQuRW1wdHkiGYLT5JMCEyIOL3YxL09tY2lNc2dPdXQ6ASoSTwoMT251UGFja2V0T3V0EhIub3Blbm9sdC5PbnVQYWNrZXQaDi5vcGVub2x0LkVtcHR5IhuC0+STAhUiEC92MS9PbnVQYWNrZXRPdXQ6ASoSWAoPVXBsaW5rUGFja2V0T3V0EhUub3Blbm9sdC5VcGxpbmtQYWNrZXQaDi5vcGVub2x0LkVtcHR5Ih6C0+STAhgiEy92MS9VcGxpbmtQYWNrZXRPdXQ6ASoSQAoHRmxvd0FkZBINLm9wZW5vbHQuRmxvdxoOLm9wZW5vbHQuRW1wdHkiFoLT5JMCECILL3YxL0Zsb3dBZGQ6ASoSRgoKRmxvd1JlbW92ZRINLm9wZW5vbHQuRmxvdxoOLm9wZW5vbHQuRW1wdHkiGYLT5JMCEyIOL3YxL0Zsb3dSZW1vdmU6ASoSUwoOSGVhcnRiZWF0Q2hlY2sSDi5vcGVub2x0LkVtcHR5GhIub3Blbm9sdC5IZWFydGJlYXQiHYLT5JMCFyISL3YxL0hlYXJ0YmVhdENoZWNrOgEqEk0KC0VuYWJsZVBvbklmEhIub3Blbm9sdC5JbnRlcmZhY2UaDi5vcGVub2x0LkVtcHR5IhqC0+STAhQiDy92MS9FbmFibGVQb25JZjoBKhJPCgxEaXNhYmxlUG9uSWYSEi5vcGVub2x0LkludGVyZmFjZRoOLm9wZW5vbHQuRW1wdHkiG4LT5JMCFSIQL3YxL0Rpc2FibGVQb25JZjoBKhJSCg1HZXREZXZpY2VJbmZvEg4ub3Blbm9sdC5FbXB0eRoTLm9wZW5vbHQuRGV2aWNlSW5mbyIcgtPkkwIWIhEvdjEvR2V0RGV2aWNlSW5mbzoBKhI/CgZSZWJvb3QSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIVgtPkkwIPIgovdjEvUmVib290OgEqElUKEUNvbGxlY3RTdGF0aXN0aWNzEg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiIILT5JMCGiIVL3YxL0NvbGxlY3RTdGF0aXN0aWNzOgEqElkKEEdldE9udVN0YXRpc3RpY3MSDC5vcGVub2x0Lk9udRoWLm9wZW5vbHQuT251U3RhdGlzdGljcyIfgtPkkwIZIhQvdjEvR2V0T251U3RhdGlzdGljczoBKhJrChRHZXRHZW1Qb3J0U3RhdGlzdGljcxISLm9wZW5vbHQuT251UGFja2V0Ghoub3Blbm9sdC5HZW1Qb3J0U3RhdGlzdGljcyIjgtPkkwIdIhgvdjEvR2V0R2VtUG9ydFN0YXRpc3RpY3M6ASoScgoXQ3JlYXRlVHJhZmZpY1NjaGVkdWxlcnMSHy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NjaGVkdWxlcnMaDi5vcGVub2x0LkVtcHR5IiaC0+STAiAiGy92MS9DcmVhdGVUcmFmZmljU2NoZWR1bGVyczoBKhJyChdSZW1vdmVUcmFmZmljU2NoZWR1bGVycxIfLnRlY2hfcHJvZmlsZS5UcmFmZmljU2NoZWR1bGVycxoOLm9wZW5vbHQuRW1wdHkiJoLT5JMCICIbL3YxL1JlbW92ZVRyYWZmaWNTY2hlZHVsZXJzOgEqEmYKE0NyZWF0ZVRyYWZmaWNRdWV1ZXMSGy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlcxoOLm9wZW5vbHQuRW1wdHkiIoLT5JMCHCIXL3YxL0NyZWF0ZVRyYWZmaWNRdWV1ZXM6ASoSZgoTUmVtb3ZlVHJhZmZpY1F1ZXVlcxIbLnRlY2hfcHJvZmlsZS5UcmFmZmljUXVldWVzGg4ub3Blbm9sdC5FbXB0eSIigtPkkwIcIhcvdjEvUmVtb3ZlVHJhZmZpY1F1ZXVlczoBKhI7ChBFbmFibGVJbmRpY2F0aW9uEg4ub3Blbm9sdC5FbXB0eRoTLm9wZW5vbHQuSW5kaWNhdGlvbiIAMAESXQoVUGVyZm9ybUdyb3VwT3BlcmF0aW9uEg4ub3Blbm9sdC5Hcm91cBoOLm9wZW5vbHQuRW1wdHkiJILT5JMCHiIZL3YxL1BlcmZvcm1Hcm91cE9wZXJhdGlvbjoBKhJJCgtEZWxldGVHcm91cBIOLm9wZW5vbHQuR3JvdXAaDi5vcGVub2x0LkVtcHR5IhqC0+STAhQiDy92MS9EZWxldGVHcm91cDoBKhJXCgtHZXRFeHRWYWx1ZRITLm9wZW5vbHQuVmFsdWVQYXJhbRoXLmV4dGVuc2lvbi5SZXR1cm5WYWx1ZXMiGoLT5JMCFCIPL3YxL0dldEV4dFZhbHVlOgEqEl0KEU9udUl0dVBvbkFsYXJtU2V0EhYuY29uZmlnLk9udUl0dVBvbkFsYXJtGg4ub3Blbm9sdC5FbXB0eSIggtPkkwIaIhUvdjEvT251SXR1UG9uQWxhcm1TZXQ6ASoScAoZR2V0TG9naWNhbE9udURpc3RhbmNlWmVybxIMLm9wZW5vbHQuT251Ghsub3Blbm9sdC5PbnVMb2dpY2FsRGlzdGFuY2UiKILT5JMCIiIdL3YxL0dldExvZ2ljYWxPbnVEaXN0YW5jZVplcm86ASoSaAoVR2V0TG9naWNhbE9udURpc3RhbmNlEgwub3Blbm9sdC5PbnUaGy5vcGVub2x0Lk9udUxvZ2ljYWxEaXN0YW5jZSIkgtPkkwIeIhkvdjEvR2V0TG9naWNhbE9udURpc3RhbmNlOgEqElQKDUdldFBvblJ4UG93ZXISDC5vcGVub2x0Lk9udRoXLm9wZW5vbHQuUG9uUnhQb3dlckRhdGEiHILT5JMCFiIRL3YxL0dldFBvblJ4UG93ZXI6ASpCXQobb3JnLm9wZW5jb3JkLnZvbHRoYS5vcGVub2x0Qg1Wb2x0aGFPcGVuT0xUWi9naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb3Blbm9sdEqR/gEKBxIFDgCcBhAK0QQKAQwSAw4AEjLGBCBDb3B5cmlnaHQgKGMpIDIwMTggT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoICgEIEgMQAEYKCQoCCAsSAxAARgoICgEIEgMRADQKCQoCCAESAxEANAoICgEIEgMSAC4KCQoCCAgSAxIALgoICgECEgMUABAKCQoCAwASAxUAJgoJCgIDARIDFgAqCgkKAgMCEgMXACgKCQoCAwMSAxgAKAoLCgIGABIFGgDoAQEKCgoDBgABEgMaCA8KDAoEBgACABIEHAQhBQoM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CgUEMQIBAxIElgYVFgoMCgQEMQICEgSXBgQWCg8KBQQxAgIEEgaXBgSWBhcKDQoFBDECAgUSBJcGBAoKDQoFBDECAgESBJcGCxEKDQoFBDECAgMSBJcGFBUKDAoEBDECAxIEmAYELgoPCgUEMQIDBBIGmAYElwYWCg0KBQQxAgMGEgSYBgQdCg0KBQQxAgMBEgSYBh4pCg0KBQQxAgMDEgSYBiwtCgwKBAQxAgQSBJkGBCEKDwoFBDECBAQSBpkGBJgGLgoNCgUEMQIEBRIEmQYECgoNCgUEMQIEARIEmQYLHAoNCgUEMQIEAxIEmQYfIAoKCgIEMhIEnAYAEAoLCgMEMgESBJwGCA1iBnByb3RvMwqUIgohdm9sdGhhX3Byb3Rvcy9pbnRlcl9hZGFwdGVyLnByb3RvEg1pbnRlcl9hZGFwdGVyGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8aIHZvbHRoYV9wcm90b3MvdGVjaF9wcm9maWxlLnByb3RvGht2b2x0aGFfcHJvdG9zL29wZW5vbHQucHJvdG8aGnZvbHRoYV9wcm90b3MvZGV2aWNlLnByb3RvIv8BCgtPbWNpTWVzc2FnZRIYCgdtZXNzYWdlGAEgASgMUgdtZXNzYWdlEkIKDmNvbm5lY3Rfc3RhdHVzGAIgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNSDWNvbm5lY3RTdGF0dXMSQAoNcHJveHlfYWRkcmVzcxgDIAEoCzIbLmRldmljZS5EZXZpY2UuUHJveHlBZGRyZXNzUgxwcm94eUFkZHJlc3MSKAoQcGFyZW50X2RldmljZV9pZBgEIAEoCVIOcGFyZW50RGV2aWNlSWQSJgoPY2hpbGRfZGV2aWNlX2lkGAUgASgJUg1jaGlsZERldmljZUlkIoICCgxPbWNpTWVzc2FnZXMSGgoIbWVzc2FnZXMYASADKAxSCG1lc3NhZ2VzEkIKDmNvbm5lY3Rfc3RhdHVzGAIgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNSDWNvbm5lY3RTdGF0dXMSQAoNcHJveHlfYWRkcmVzcxgDIAEoCzIbLmRldmljZS5EZXZpY2UuUHJveHlBZGRyZXNzUgxwcm94eUFkZHJlc3MSKAoQcGFyZW50X2RldmljZV9pZBgEIAEoCVIOcGFyZW50RGV2aWNlSWQSJgoPY2hpbGRfZGV2aWNlX2lkGAUgASgJUg1jaGlsZERldmljZUlkIqcCChpUZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhUKBnVuaV9pZBgCIAEoDVIFdW5pSWQSKAoQdHBfaW5zdGFuY2VfcGF0aBgDIAEoCVIOdHBJbnN0YW5jZVBhdGgSRAoLdHBfaW5zdGFuY2UYBCABKAsyIS50ZWNoX3Byb2ZpbGUuVGVjaFByb2ZpbGVJbnN0YW5jZUgAUgp0cEluc3RhbmNlElEKEGVwb25fdHBfaW5zdGFuY2UYBSABKAsyJS50ZWNoX3Byb2ZpbGUuRXBvblRlY2hQcm9maWxlSW5zdGFuY2VIAFIOZXBvblRwSW5zdGFuY2VCEgoQdGVjaF90cF9pbnN0YW5jZSKUAQoURGVsZXRlR2VtUG9ydE1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIVCgZ1bmlfaWQYAiABKA1SBXVuaUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAyABKAlSDnRwSW5zdGFuY2VQYXRoEh4KC2dlbV9wb3J0X2lkGAQgASgNUglnZW1Qb3J0SWQijQEKEkRlbGV0ZVRjb250TWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhUKBnVuaV9pZBgCIAEoDVIFdW5pSWQSKAoQdHBfaW5zdGFuY2VfcGF0aBgDIAEoCVIOdHBJbnN0YW5jZVBhdGgSGQoIYWxsb2NfaWQYBCABKA1SB2FsbG9jSWQicgoUT251SW5kaWNhdGlvbk1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBI9Cg5vbnVfaW5kaWNhdGlvbhgCIAEoCzIWLm9wZW5vbHQuT251SW5kaWNhdGlvblINb251SW5kaWNhdGlvbiLqAQohVGVjaFByb2ZpbGVJbnN0YW5jZVJlcXVlc3RNZXNzYWdlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSKAoQdHBfaW5zdGFuY2VfcGF0aBgCIAEoCVIOdHBJ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HgoLCgQEBgIEEgNCBBYKDQoFBAYCBAQSBEIEQR8KDAoFBAYCBAUSA0IECgoMCgUEBgIEARIDQgsRCgwKBQQGAgQDEgNCFBUKCwoEBAYCBRIDQwQWCg0KBQQGAgUEEgRDBEIWCgwKBQQGAgUFEgNDBAoKDAoFBAYCBQESA0MLEQoMCgUEBgIFAxIDQxQVYgZwcm90bzMK+wkKLXZvbHRoYV9wcm90b3Mvb2x0X2ludGVyX2FkYXB0ZXJfc2VydmljZS5wcm90bxIZb2x0X2ludGVyX2FkYXB0ZXJfc2VydmljZRoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxohdm9sdGhhX3Byb3Rvcy9pbnRlcl9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bzLiAgoWT2x0SW50ZXJBZGFwdGVyU2VydmljZRI/Cg9HZXRIZWFsdGhTdGF0dXMSEi5jb21tb24uQ29ubmVjdGlvbhoULmhlYWx0aC5IZWFsdGhTdGF0dXMoATABEkYKEFByb3h5T21jaVJlcXVlc3QSGi5pbnRlcl9hZGFwdGVyLk9tY2lNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkgKEVByb3h5T21jaVJlcXVlc3RzEhsuaW50ZXJfYWRhcHRlci5PbWNpTWVzc2FnZXMaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSdQoWR2V0VGVjaFByb2ZpbGVJbnN0YW5jZRIwLmludGVyX2FkYXB0ZXIuVGVjaFByb2ZpbGVJbnN0YW5jZVJlcXVlc3RNZXNzYWdlGikuaW50ZXJfYWRhcHRlci5UZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZUKQAQotb3JnLm9wZW5jb3JkLnZvbHRoYS5vbHRfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlQhxWb2x0aGFPbHRJbnRlckFkYXB0ZXJTZXJ2aWNlWkFnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb2x0X2ludGVyX2FkYXB0ZXJfc2VydmljZUq2BAoGEgQAABYBCggKAQwSAwAAEgoICgEIEgMCAFgKCQoCCAsSAwIAWAoICgEIEgMDAEYKCQoCCAESAwMARgoICgEIEgMEAD0KCQoCCAgSAwQAPQoICgECEgMGACIKCQoCAwASAwgAJAoJCgIDARIDCQAlCgkKAgMCEgMKACsKCQoCAwMSAwsAJAoKCgIGABIEDQAWAQoKCgMGAAESAw0IHgqnAQoEBgACABIDEARXGpkBIEdldEhlYWx0aFN0YXR1cyBpcyB1c2VkIGJ5IGEgT2x0SW50ZXJBZGFwdGVyU2VydmljZSBjbGllbnQgdG8gZGV0ZWN0IGEgY29ubmVjdGlvbgogbG9zdCB3aXRoIHRoZSBnUlBDIHNlcnZlciBob3N0aW5nIHRoZSBPbHRJbnRlckFkYXB0ZXJTZXJ2aWNlIHNlcnZpY2UKCgwKBQYAAgABEgMQCBcKDAoFBgACAAUSAxAYHgoMCgUGAAIAAhIDEB8wCgwKBQYAAgAGEgMQO0EKDAoFBgACAAMSAxBCVQoLCgQGAAIBEgMTBFQKDAoFBgACAQESAxMIGAoMCgUGAAIBAhIDExkyCgwKBQYAAgEDEgMTPVIKCwoEBgACAhIDFARWCgwKBQYAAgIBEgMUCBkKDAoFBgACAgISAxQaNAoMCgUGAAICAxIDFD9UCgwKBAYAAgMSBBUEgwEKDAoFBgACAwESAxUIHgoMCgUGAAIDAhIDFR9OCg0KBQYAAgMDEgQVWYEBYgZwcm90bzMK5AsKLXZvbHRoYV9wcm90b3Mvb251X2ludGVyX2FkYXB0ZXJfc2VydmljZS5wcm90bxIZb251X2ludGVyX2FkYXB0ZXJfc2VydmljZRoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxohdm9sdGhhX3Byb3Rvcy9pbnRlcl9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bzLfAwoWT251SW50ZXJBZGFwdGVyU2VydmljZRI/Cg9HZXRIZWFsdGhTdGF0dXMSEi5jb21tb24uQ29ubmVjdGlvbhoULmhlYWx0aC5IZWFsdGhTdGF0dXMoATABEkwKDU9udUluZGljYXRpb24SIy5pbnRlcl9hZGFwdGVyLk9udUluZGljYXRpb25NZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkQKDk9tY2lJbmRpY2F0aW9uEhouaW50ZXJfYWRhcHRlci5PbWNpTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJYChNEb3dubG9hZFRlY2hQcm9maWxlEikuaW50ZXJfYWRhcHRlci5UZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJMCg1EZWxldGVHZW1Qb3J0EiMuaW50ZXJfYWRhcHRlci5EZWxldGVHZW1Qb3J0TWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJICgtEZWxldGVUQ29udBIhLmludGVyX2FkYXB0ZXIuRGVsZXRlVGNvbnRNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5QpABCi1vcmcub3BlbmNvcmQudm9sdGhhLm9udV9pbnRlcl9hZGFwdGVyX3NlcnZpY2VCHFZvbHRoYU9udUludGVyQWRhcHRlclNlcnZpY2VaQWdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vbnVfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlSqIFCgYSBAAAFwEKCAoBDBIDAAASCggKAQgSAwIAWAoJCgIICxIDAgBYCggKAQgSAwMARgoJCgIIARIDAwBGCggKAQgSAwQAPQoJCgIICBIDBAA9CggKAQISAwYAIgoJCgIDABIDCAAkCgkKAgMBEgMJACUKCQoCAwISAwoAKwoJCgIDAxIDCwAkCgoKAgYAEgQNABcBCgoKAwYAARIDDQgeCqcBCgQGAAIAEgMQBFcamQEgR2V0SGVhbHRoU3RhdHVzIGlzIHVzZWQgYnkgYSBPbnVJbnRlckFkYXB0ZXJTZXJ2aWNlIGNsaWVudCB0byBkZXRlY3QgYSBjb25uZWN0aW9uCiBsb3N0IHdpdGggdGhlIGdSUEMgc2VydmVyIGhvc3RpbmcgdGhlIE9udUludGVyQWRhcHRlclNlcnZpY2Ugc2VydmljZQoKDAoFBgACAAESAxAIFwoMCgUGAAIABRIDEBgeCgwKBQYAAgACEgMQHzAKDAoFBgACAAYSAxA7QQoMCgUGAAIAAxIDEEJVCgsKBAYAAgESAxIEWgoMCgUGAAIBARIDEggVCgwKBQYAAgECEgMSFjgKDAoFBgACAQMSAxJDWAoLCgQGAAICEgMTBFIKDAoFBgACAgESAxMIFgoMCgUGAAICAhIDExcwCgwKBQYAAgIDEgMTO1AKCwoEBgACAxIDFARmCgwKBQYAAgMBEgMUCBsKDAoFBgACAwISAxQcRAoMCgUGAAIDAxIDFE9kCgsKBAYAAgQSAxUEWgoMCgUGAAIEARIDFQgVCgwKBQYAAgQCEgMVFjgKDAoFBgACBAMSAxVDWAoLCgQGAAIFEgMWBFYKDAoFBgACBQESAxYIEwoMCgUGAAIFAhIDFhQ0CgwKBQYAAgUDEgMWP1RiBnByb3RvMw==