Csv5AgogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiJNChFGaWxlRGVzY3JpcHRvclNldBI4CgRmaWxlGAEgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkZpbGVEZXNjcmlwdG9yUHJvdG9SBGZpbGUi5AQKE0ZpbGVEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgdwYWNrYWdlGAIgASgJUgdwYWNrYWdlEh4KCmRlcGVuZGVuY3kYAyADKAlSCmRlcGVuZGVuY3kSKwoRcHVibGljX2RlcGVuZGVuY3kYCiADKAVSEHB1YmxpY0RlcGVuZGVuY3kSJwoPd2Vha19kZXBlbmRlbmN5GAsgAygFUg53ZWFrRGVwZW5kZW5jeRJDCgxtZXNzYWdlX3R5cGUYBCADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvUgttZXNzYWdlVHlwZRJBCgllbnVtX3R5cGUYBSADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSQQoHc2VydmljZRgGIAMoCzInLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlRGVzY3JpcHRvclByb3RvUgdzZXJ2aWNlEkMKCWV4dGVuc2lvbhgHIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEjYKB29wdGlvbnMYCCABKAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnNSB29wdGlvbnMSSQoQc291cmNlX2NvZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mb1IOc291cmNlQ29kZUluZm8SFgoGc3ludGF4GAwgASgJUgZzeW50YXgiuQYKD0Rlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjsKBWZpZWxkGAIgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUgVmaWVsZBJDCglleHRlbnNpb24YBiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhJBCgtuZXN0ZWRfdHlwZRgDIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SCm5lc3RlZFR5cGUSQQoJZW51bV90eXBlGAQgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlElgKD2V4dGVuc2lvbl9yYW5nZRgFIAMoCzIvLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uRXh0ZW5zaW9uUmFuZ2VSDmV4dGVuc2lvblJhbmdlEkQKCm9uZW9mX2RlY2wYCCADKAsyJS5nb29nbGUucHJvdG9idWYuT25lb2ZEZXNjcmlwdG9yUHJvdG9SCW9uZW9mRGVjbBI5CgdvcHRpb25zGAcgASgLMh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zUgdvcHRpb25zElUKDnJlc2VydmVkX3JhbmdlGAkgAygLMi4uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYCiADKAlSDHJlc2VydmVkTmFtZRp6Cg5FeHRlbnNpb25SYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQSQAoHb3B0aW9ucxgDIAEoCzImLmdvb2dsZS5wcm90b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnNSB29wdGlvbnMaNwoNUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQifAoVRXh0ZW5zaW9uUmFuZ2VPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIimAYKFEZpZWxkRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISQQoFbGFiZWwYBCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWxSBWxhYmVsEj4KBHR5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZVIEdHlwZRIbCgl0eXBlX25hbWUYBiABKAlSCHR5cGVOYW1lEhoKCGV4dGVuZGVlGAIgASgJUghleHRlbmRlZRIjCg1kZWZhdWx0X3ZhbHVlGAcgASgJUgxkZWZhdWx0VmFsdWUSHwoLb25lb2ZfaW5kZXgYCSABKAVSCm9uZW9mSW5kZXgSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRI3CgdvcHRpb25zGAggASgLMh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9uc1IHb3B0aW9ucyK2AgoEVHlwZRIPCgtUWVBFX0RPVUJMRRABEg4KClRZUEVfRkxPQVQQAhIOCgpUWVBFX0lOVDY0EAMSDwoLVFlQRV9VSU5UNjQQBBIOCgpUWVBFX0lOVDMyEAUSEAoMVFlQRV9GSVhFRDY0EAYSEAoMVFlQRV9GSVhFRDMyEAcSDQoJVFlQRV9CT09MEAgSDwoLVFlQRV9TVFJJTkcQCRIOCgpUWVBFX0dST1VQEAoSEAoMVFlQRV9NRVNTQUdFEAsSDgoKVFlQRV9CWVRFUxAMEg8KC1RZUEVfVUlOVDMyEA0SDQoJVFlQRV9FTlVNEA4SEQoNVFlQRV9TRklYRUQzMhAPEhEKDVRZUEVfU0ZJWEVENjQQEBIPCgtUWVBFX1NJTlQzMhAREg8KC1RZUEVfU0lOVDY0EBIiQwoFTGFiZWwSEgoOTEFCRUxfT1BUSU9OQUwQARISCg5MQUJFTF9SRVFVSVJFRBACEhIKDkxBQkVMX1JFUEVBVEVEEAMiYwoUT25lb2ZEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI3CgdvcHRpb25zGAIgASgLMh0uZ29vZ2xlLnByb3RvYnVmLk9uZW9mT3B0aW9uc1IHb3B0aW9ucyLjAgoTRW51bURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj8KBXZhbHVlGAIgAygLMikuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZURlc2NyaXB0b3JQcm90b1IFdmFsdWUSNgoHb3B0aW9ucxgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9uc1IHb3B0aW9ucxJdCg5yZXNlcnZlZF9yYW5nZRgEIAMoCzI2Lmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvLkVudW1SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYBSADKAlSDHJlc2VydmVkTmFtZRo7ChFFbnVtUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQigwEKGEVudW1WYWx1ZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgCIAEoBVIGbnVtYmVyEjsKB29wdGlvbnMYAyABKAsyIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9uc1IHb3B0aW9ucyKnAQoWU2VydmljZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj4KBm1ldGhvZBgCIAMoCzImLmdvb2dsZS5wcm90b2J1Zi5NZXRob2REZXNjcmlwdG9yUHJvdG9SBm1ldGhvZBI5CgdvcHRpb25zGAMgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zUgdvcHRpb25zIokCChVNZXRob2REZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIdCgppbnB1dF90eXBlGAIgASgJUglpbnB1dFR5cGUSHwoLb3V0cHV0X3R5cGUYAyABKAlSCm91dHB1dFR5cGUSOAoHb3B0aW9ucxgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zUgdvcHRpb25zEjAKEGNsaWVudF9zdHJlYW1pbmcYBSABKAg6BWZhbHNlUg9jbGllbnRTdHJlYW1pbmcSMAoQc2VydmVyX3N0cmVhbWluZxgGIAEoCDoFZmFsc2VSD3NlcnZlclN0cmVhbWluZyKSCQoLRmlsZU9wdGlvbnMSIQoMamF2YV9wYWNrYWdlGAEgASgJUgtqYXZhUGFja2FnZRIwChRqYXZhX291dGVyX2NsYXNzbmFtZRgIIAEoCVISamF2YU91dGVyQ2xhc3NuYW1lEjUKE2phdmFfbXVsdGlwbGVfZmlsZXMYCiABKAg6BWZhbHNlUhFqYXZhTXVsdGlwbGVGaWxlcxJECh1qYXZhX2dlbmVyYXRlX2VxdWFsc19hbmRfaGFzaBgUIAEoCEICGAFSGWphdmFHZW5lcmF0ZUVxdWFsc0FuZEhhc2gSOgoWamF2YV9zdHJpbmdfY2hlY2tfdXRmOBgbIAEoCDoFZmFsc2VSE2phdmFTdHJpbmdDaGVja1V0ZjgSUwoMb3B0aW1pemVfZm9yGAkgASgOMikuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zLk9wdGltaXplTW9kZToFU1BFRURSC29wdGltaXplRm9yEh0KCmdvX3BhY2thZ2UYCyABKAlSCWdvUGFja2FnZRI1ChNjY19nZW5lcmljX3NlcnZpY2VzGBAgASgIOgVmYWxzZVIRY2NHZW5lcmljU2VydmljZXMSOQoVamF2YV9nZW5lcmljX3NlcnZpY2VzGBEgASgIOgVmYWxzZVITamF2YUdlbmVyaWNTZXJ2aWNlcxI1ChNweV9nZW5lcmljX3NlcnZpY2VzGBIgASgIOgVmYWxzZVIRcHlHZW5lcmljU2VydmljZXMSNwoUcGhwX2dlbmVyaWNfc2VydmljZXMYKiABKAg6BWZhbHNlUhJwaHBHZW5lcmljU2VydmljZXMSJQoKZGVwcmVjYXRlZBgXIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSLwoQY2NfZW5hYmxlX2FyZW5hcxgfIAEoCDoFZmFsc2VSDmNjRW5hYmxlQXJlbmFzEioKEW9iamNfY2xhc3NfcHJlZml4GCQgASgJUg9vYmpjQ2xhc3NQcmVmaXgSKQoQY3NoYXJwX25hbWVzcGFjZRglIAEoCVIPY3NoYXJwTmFtZXNwYWNlEiEKDHN3aWZ0X3ByZWZpeBgnIAEoCVILc3dpZnRQcmVmaXgSKAoQcGhwX2NsYXNzX3ByZWZpeBgoIAEoCVIOcGhwQ2xhc3NQcmVmaXgSIwoNcGhwX25hbWVzcGFjZRgpIAEoCVIMcGhwTmFtZXNwYWNlEjQKFnBocF9tZXRhZGF0YV9uYW1lc3BhY2UYLCABKAlSFHBocE1ldGFkYXRhTmFtZXNwYWNlEiEKDHJ1YnlfcGFja2FnZRgtIAEoCVILcnVieVBhY2thZ2USWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iOgoMT3B0aW1pemVNb2RlEgkKBVNQRUVEEAESDQoJQ09ERV9TSVpFEAISEAoMTElURV9SVU5USU1FEAMqCQjoBxCAgICAAkoECCYQJyLRAgoOTWVzc2FnZU9wdGlvbnMSPAoXbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQYASABKAg6BWZhbHNlUhRtZXNzYWdlU2V0V2lyZUZvcm1hdBJMCh9ub19zdGFuZGFyZF9kZXNjcmlwdG9yX2FjY2Vzc29yGAIgASgIOgVmYWxzZVIcbm9TdGFuZGFyZERlc2NyaXB0b3JBY2Nlc3NvchIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIbCgltYXBfZW50cnkYByABKAhSCG1hcEVudHJ5ElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgIEAlKBAgJEAoi4gMKDEZpZWxkT3B0aW9ucxJBCgVjdHlwZRgBIAEoDjIjLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuQ1R5cGU6BlNUUklOR1IFY3R5cGUSFgoGcGFja2VkGAIgASgIUgZwYWNrZWQSRwoGanN0eXBlGAYgASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5KU1R5cGU6CUpTX05PUk1BTFIGanN0eXBlEhkKBGxhenkYBSABKAg6BWZhbHNlUgRsYXp5EiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhkKBHdlYWsYCiABKAg6BWZhbHNlUgR3ZWFrElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIi8KBUNUeXBlEgoKBlNUUklORxAAEggKBENPUkQQARIQCgxTVFJJTkdfUElFQ0UQAiI1CgZKU1R5cGUSDQoJSlNfTk9STUFMEAASDQoJSlNfU1RSSU5HEAESDQoJSlNfTlVNQkVSEAIqCQjoBxCAgICAAkoECAQQBSJzCgxPbmVvZk9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLAAQoLRW51bU9wdGlvbnMSHwoLYWxsb3dfYWxpYXMYAiABKAhSCmFsbG93QWxpYXMSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAUQBiKeAQoQRW51bVZhbHVlT3B0aW9ucxIlCgpkZXByZWNhdGVkGAEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIpwBCg5TZXJ2aWNlT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIuACCg1NZXRob2RPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkEnEKEWlkZW1wb3RlbmN5X2xldmVsGCIgASgOMi8uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMuSWRlbXBvdGVuY3lMZXZlbDoTSURFTVBPVEVOQ1lfVU5LTk9XTlIQaWRlbXBvdGVuY3lMZXZlbBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiJQChBJZGVtcG90ZW5jeUxldmVsEhcKE0lERU1QT1RFTkNZX1VOS05PV04QABITCg9OT19TSURFX0VGRkVDVFMQARIOCgpJREVNUE9URU5UEAIqCQjoBxCAgICAAiKaAwoTVW5pbnRlcnByZXRlZE9wdGlvbhJBCgRuYW1lGAIgAygLMi0uZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24uTmFtZVBhcnRSBG5hbWUSKQoQaWRlbnRpZmllcl92YWx1ZRgDIAEoCVIPaWRlbnRpZmllclZhbHVlEiwKEnBvc2l0aXZlX2ludF92YWx1ZRgEIAEoBFIQcG9zaXRpdmVJbnRWYWx1ZRIsChJuZWdhdGl2ZV9pbnRfdmFsdWUYBSABKANSEG5lZ2F0aXZlSW50VmFsdWUSIQoMZG91YmxlX3ZhbHVlGAYgASgBUgtkb3VibGVWYWx1ZRIhCgxzdHJpbmdfdmFsdWUYByABKAxSC3N0cmluZ1ZhbHVlEicKD2FnZ3JlZ2F0ZV92YWx1ZRgIIAEoCVIOYWdncmVnYXRlVmFsdWUaSgoITmFtZVBhcnQSGwoJbmFtZV9wYXJ0GAEgAigJUghuYW1lUGFydBIhCgxpc19leHRlbnNpb24YAiACKAhSC2lzRXh0ZW5zaW9uIqcCCg5Tb3VyY2VDb2RlSW5mbxJECghsb2NhdGlvbhgBIAMoCzIoLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvblIIbG9jYXRpb24azgEKCExvY2F0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEhYKBHNwYW4YAiADKAVCAhABUgRzcGFuEikKEGxlYWRpbmdfY29tbWVudHMYAyABKAlSD2xlYWRpbmdDb21tZW50cxIrChF0cmFpbGluZ19jb21tZW50cxgEIAEoCVIQdHJhaWxpbmdDb21tZW50cxI6ChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJUhdsZWFkaW5nRGV0YWNoZWRDb21tZW50cyLRAQoRR2VuZXJhdGVkQ29kZUluZm8STQoKYW5ub3RhdGlvbhgBIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uUgphbm5vdGF0aW9uGm0KCkFubm90YXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSHwoLc291cmNlX2ZpbGUYAiABKAlSCnNvdXJjZUZpbGUSFAoFYmVnaW4YAyABKAVSBWJlZ2luEhAKA2VuZBgEIAEoBVIDZW5kQo8BChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9zSAFaPmdpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3Byb3RvYy1nZW4tZ28vZGVzY3JpcHRvcjtkZXNjcmlwdG9y+AEBogIDR1BCqgIaR29vZ2xlLlByb3RvYnVmLlJlZmxlY3Rpb25KrL4CCgcSBScA8gYBCqoPCgEMEgMnABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLbAiBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBUaGUgbWVzc2FnZXMgaW4gdGhpcyBmaWxlIGRlc2NyaWJlIHRoZSBkZWZpbml0aW9ucyBmb3VuZCBpbiAucHJvdG8gZmlsZXMuCiBBIHZhbGlkIC5wcm90byBmaWxlIGNhbiBiZSB0cmFuc2xhdGVkIGRpcmVjdGx5IHRvIGEgRmlsZURlc2NyaXB0b3JQcm90bwogd2l0aG91dCBhbnkgb3RoZXIgaW5mb3JtYXRpb24gKGUuZy4gd2l0aG91dCByZWFkaW5nIGl0cyBpbXBvcnRzKS4KCggKAQISAykAGAoICgEIEgMqAFUKCQoCCAsSAyoAVQoICgEIEgMrACwKCQoCCAESAysALAoICgEIEgMsADEKCQoCCAgSAywAMQoICgEIEgMtADcKCQoCCCUSAy0ANwoICgEIEgMuACEKCQoCCCQSAy4AIQoICgEIEgMvAB8KCQoCCB8SAy8AHwoICgEIEgMzABwKfwoCCAkSAzMAHBp0IGRlc2NyaXB0b3IucHJvdG8gbXVzdCBiZSBvcHRpbWl6ZWQgZm9yIHNwZWVkIGJlY2F1c2UgcmVmbGVjdGlvbi1iYXNlZAogYWxnb3JpdGhtcyBkb24ndCB3b3JrIGR1cmluZyBib290c3RyYXBwaW5nLgoKagoCBAASBDcAOQEaXiBUaGUgcHJvdG9jb2wgY29tcGlsZXIgY2FuIG91dHB1dCBhIEZpbGVEZXNjcmlwdG9y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ciBtZXNzYWdlcwoKDQoFBAkCBQQSBJgCAgoKDQoFBAkCBQUSBJgCCw8KDQoFBAkCBQESBJgCECAKDQoFBAkCBQMSBJgCIyQKDQoFBAkCBQgSBJgCJTQKDQoFBAkCBQcSBJgCLjMKrw4KAgQKEga9AgC3AwEyTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBPcHRpb25zCjLQDSBFYWNoIG9mIHRoZSBkZWZpbml0aW9ucyBhYm92ZSBtYXkgaGF2ZSAib3B0aW9ucyIgYXR0YWNoZWQuICBUaGVzZSBhcmUKIGp1c3QgYW5ub3RhdGlvbnMgd2hpY2ggbWF5IGNhdXNlIGNvZGUgdG8gYmUgZ2VuZXJhdGVkIHNsaWdodGx5IGRpZmZlcmVudGx5CiBvciBtYXkgY29udGFpbiBoaW50cyBmb3IgY29kZSB0aGF0IG1hbmlwdWxhdGVzIHByb3RvY29sIG1lc3NhZ2VzLgoKIENsaWVudHMgbWF5IGRlZmluZSBjdXN0b20gb3B0aW9ucyBhcyBleHRlbnNpb25zIG9mIHRoZSAqT3B0aW9ucyBtZXNzYWdlcy4KIFRoZXNlIGV4dGVuc2lvbnMgbWF5IG5vdCB5ZXQgYmUga25vd24gYXQgcGFyc2luZyB0aW1lLCBzbyB0aGUgcGFyc2VyIGNhbm5vdAogc3RvcmUgdGhlIHZhbHVlcyBpbiB0aGVtLiAgSW5zdGVhZCBpdCBzdG9yZXMgdGhlbSBpbiBhIGZpZWxkIGluIHRoZSAqT3B0aW9ucwogbWVzc2FnZSBjYWxsZWQgdW5pbnRlcnByZXRlZF9vcHRpb24uIFRoaXMgZmllbGQgbXVzdCBoYXZlIHRoZSBzYW1lIG5hbWUKIGFjcm9zcyBhbGwgKk9wdGlvbnMgbWVzc2FnZXMuIFdlIHRoZW4gdXNlIHRoaXMgZmllbGQgdG8gcG9wdWxhdGUgdGhlCiBleHRlbnNpb25zIHdoZW4gd2UgYnVpbGQgYSBkZXNjcmlwdG9yLCBhdCB3aGljaCBwb2ludCBhbGwgcHJvdG9zIGhhdmUgYmVlbgogcGFyc2VkIGFuZCBzbyBhbGwgZXh0ZW5zaW9ucyBhcmUga25vd24uCgogRXh0ZW5zaW9uIG51bWJlcnMgZm9yIGN1c3RvbSBvcHRpb25zIG1heSBiZSBjaG9zZW4gYXMgZm9sbG93czoKICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBvbmx5IGJlIHVzZWQgd2l0aGluIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yCiAgIG9yZ2FuaXphdGlvbiwgb3IgZm9yIGV4cGVyaW1lbnRhbCBvcHRpb25zLCB1c2UgZmllbGQgbnVtYmVycyA1MDAwMAogICB0aHJvdWdoIDk5OTk5LiAgSXQgaXMgdXAgdG8geW91IHRvIGVuc3VyZSB0aGF0IHlvdSBkbyBub3QgdXNlIHRoZQogICBzYW1lIG51bWJlciBmb3IgbXVsdGlwbGUgb3B0aW9ucy4KICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBiZSBwdWJsaXNoZWQgYW5kIHVzZWQgcHVibGljbHkgYnkgbXVsdGlwbGUKICAgaW5kZXBlbmRlbnQgZW50aXRpZXMsIGUtbWFpbCBwcm90b2J1Zi1nbG9iYWwtZXh0ZW5zaW9uLXJlZ2lzdHJ5QGdvb2dsZS5jb20KICAgdG8gcmVzZXJ2ZSBleHRlbnNpb24gbnVtYmVycy4gU2ltcGx5IHByb3ZpZGUgeW91ciBwcm9qZWN0IG5hbWUgKGUuZy4KICAgT2JqZWN0aXZlLUMgcGx1Z2luKSBhbmQgeW91ciBwcm9qZWN0IHdlYnNpdGUgKGlmIGF2YWlsYWJsZSkgLS0gdGhlcmUncyBubwogICBuZWVkIHRvIGV4cGxhaW4gaG93IHlvdSBpbnRlbmQgdG8gdXNlIHRoZW0uIFVzdWFsbHkgeW91IG9ubHkgbmVlZCBvbmUKICAgZXh0ZW5zaW9uIG51bWJlci4gWW91IGNhbiBkZWNsYXJlIG11bHRpcGxlIG9wdGlvbnMgd2l0aCBvbmx5IG9uZSBleHRlbnNpb24KICAgbnVtYmVyIGJ5IHB1dHRpbmcgdGhlbSBpbiBhIHN1Yi1tZXNzYWdlLiBTZWUgdGhlIEN1c3RvbSBPcHRpb25zIHNlY3Rpb24gb2YKICAgdGhlIGRvY3MgZm9yIGV4YW1wbGVzOgogICBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8jb3B0aW9ucwogICBJZiB0aGlzIHR1cm5zIG91dCB0byBiZSBwb3B1bGFyLCBhIHdlYiBzZXJ2aWNlIHdpbGwgYmUgc2V0IHVwCiAgIHRvIGF1dG9tYXRpY2FsbHkgYXNzaWduIG9wdGlvbiBudW1iZXJzLgoKCwoDBAoBEgS9AggTCvQBCgQECgIAEgTDAgIjGuUBIFNldHMgdGhlIEphdmEgcGFja2FnZSB3aGVyZSBjbGFzc2VzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gIEJ5IGRlZmF1bHQsIHRoZSBwcm90byBwYWNrYWdlIGlzIHVzZWQsIGJ1dCB0aGlzIGlzIG9mdGVuCiBpbmFwcHJvcHJpYXRlIGJlY2F1c2UgcHJvdG8gcGFja2FnZXMgZG8gbm90IG5vcm1hbGx5IHN0YXJ0IHdpdGggYmFja3dhcmRzCiBkb21haW4gbmFtZXMuCgoNCgUECgIABBIEwwICCgoNCgUECgIABRIEwwILEQoNCgUECgIAARIEwwISHgoNCgUECgIAAxIEwwIhIgq/AgoEBAoCARIEywICKxqwAiBJZiBzZXQsIGFsbCB0aGUgY2xhc3NlcyBmcm9tIHRoZSAucHJvdG8gZmlsZSBhcmUgd3JhcHBlZCBpbiBhIHNpbmdsZQogb3V0ZXIgY2xhc3Mgd2l0aCB0aGUgZ2l2ZW4gbmFtZS4gIFRoaXMgYXBwbGllcyB0byBib3RoIFByb3RvMQogKGVxdWl2YWxlbnQgdG8gdGhlIG9sZCAiLS1vbmVfamF2YV9maWxlIiBvcHRpb24pIGFuZCBQcm90bzIgKHdoZXJlCiBhIC5wcm90byBhbHdheXMgdHJhbnNsYXRlcyB0byBhIHNpbmdsZSBjbGFzcywgYnV0IHlvdSBtYXkgd2FudCB0bwogZXhwbGljaXRseSBjaG9vc2UgdGhlIGNsYXNzIG5hbWUpLgoKDQoFBAoCAQQSBMsCAgoKDQoFBAoCAQUSBMsCCxEKDQoFBAoCAQESBMsCEiYKDQoFBAoCAQMSBMsCKSoKowMKBAQKAgISBNMCAjkalAMgSWYgc2V0IHRydWUsIHRoZW4gdGhlIEphdmEgY29kZSBnZW5lcmF0b3Igd2lsbCBnZW5lcmF0ZSBhIHNlcGFyYXRlIC5qYXZhCiBmaWxlIGZvciBlYWNoIHRvcC1sZXZlbCBtZXNzYWdlLCBlbnVtLCBhbmQgc2VydmljZSBkZWZpbmVkIGluIHRoZSAucHJvdG8KIGZpbGUuICBUaHVzLCB0aGVzZSB0eXBlcyB3aWxsICpub3QqIGJlIG5lc3RlZCBpbnNpZGUgdGhlIG91dGVyIGNsYXNzCiBuYW1lZCBieSBqYXZhX291dGVyX2NsYXNzbmFtZS4gIEhvd2V2ZXIsIHRoZSBvdXRlciBjbGFzcyB3aWxsIHN0aWxsIGJlCiBnZW5lcmF0ZWQgdG8gY29udGFpbiB0aGUgZmlsZSdzIGdldERlc2NyaXB0b3IoKSBtZXRob2QgYXMgd2VsbCBhcyBhbnkKIHRvcC1sZXZlbCBleHRlbnNpb25zIGRlZmluZWQgaW4gdGhlIGZpbGUuCgoNCgUECgICBBIE0wICCgoNCgUECgICBRIE0wILDwoNCgUECgICARIE0wIQIwoNCgUECgICAxIE0wImKAoNCgUECgICCBIE0wIpOAoNCgUECgICBxIE0wIyNwopCgQECgIDEgTWAgJFGhsgVGhpcyBvcHRpb24gZG9lcyBub3RoaW5nLgoKDQoFBAoCAwQSBNYCAgoKDQoFBAoCAwUSBNYCCw8KDQoFBAoCAwESBNYCEC0KDQoFBAoCAwMSBNYCMDIKDQoFBAoCAwgSBNYCM0QKDgoGBAoCAwgDEgTWAjRDCuYCCgQECgIEEgTeAgI8GtcCIElmIHNldCB0cnVlLCB0aGVuIHRoZSBKYXZhMiBjb2RlIGdlbmVyYXRvciB3aWxsIGdlbmVyYXRlIGNvZGUgdGhhdAogdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVuZXZlciBhbiBhdHRlbXB0IGlzIG1hZGUgdG8gYXNzaWduIGEgbm9uLVVURi04CiBieXRlIHNlcXVlbmNlIHRvIGEgc3RyaW5nIGZpZWxkLgogTWVzc2FnZSByZWZsZWN0aW9uIHdpbGwgZG8gdGhlIHNhbWUuCiBIb3dldmVyLCBhbiBleHRlbnNpb24gZmllbGQgc3RpbGwgYWNjZXB0cyBub24tVVRGLTggYnl0ZSBzZXF1ZW5jZXMuCiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHdoZW4gdXNlZCB3aXRoIHRoZSBsaXRlIHJ1bnRpbWUuCgoNCgUECgIEBBIE3gICCgoNCgUECgIEBRIE3gILDwoNCgUECgIEARIE3gIQJgoNCgUECgIEAxIE3gIpKwoNCgUECgIECBIE3gIsOwoNCgUECgIEBxIE3gI1OgpMCgQECgQAEgbiAgLnAgMaPCBHZW5lcmF0ZWQgY2xhc3NlcyBjYW4gYmUgb3B0aW1pemVkIGZvciBzcGVlZCBvciBjb2RlIHNpemUuCgoNCgUECgQAARIE4gIHEwpECgYECgQAAgASBOMCBA4iNCBHZW5lcmF0ZSBjb21wbGV0ZSBjb2RlIGZvciBwYXJzaW5nLCBzZXJpYWxpemF0aW9uLAoKDwoHBAoEAAIAARIE4wIECQoPCgcECgQAAgACEgTjAgwNCkcKBgQKBAACARIE5QIEEhoGIGV0Yy4KIi8gVXNlIFJlZmxlY3Rpb25PcHMgdG8gaW1wbGVtZW50IHRoZXNlIG1ldGhvZHMuCgoPCgcECgQAAgEBEgTlAgQNCg8KBwQKBAACAQISBOUCEBEKRwoGBAoEAAICEgTmAgQVIjcgR2VuZXJhdGUgY29kZSB1c2luZyBNZXNzYWdlTGl0ZSBhbmQgdGhlIGxpdGUgcnVudGltZS4KCg8KBwQKBAACAgESBOYCBBAKDwoHBAoEAAICAhIE5gITFAoMCgQECgIFEgToAgI5Cg0KBQQKAgUEEgToAgIKCg0KBQQKAgUGEgToAgsXCg0KBQQKAgUBEgToAhgkCg0KBQQKAgUDEgToAicoCg0KBQQKAgUIEgToAik4Cg0KBQQKAgUHEgToAjI3CuICCgQECgIGEgTvAgIiGtMCIFNldHMgdGhlIEdvIHBhY2thZ2Ugd2hlcmUgc3RydWN0cyBnZW5lcmF0ZWQgZnJvbSB0aGlzIC5wcm90byB3aWxsIGJlCiBwbGFjZWQuIElmIG9taXR0ZWQsIHRoZSBHbyBwYWNrYWdlIHdpbGwgYmUgZGVyaXZlZCBmcm9tIHRoZSBmb2xsb3dpbmc6CiAgIC0gVGhlIGJhc2VuYW1lIG9mIHRoZSBwYWNrYWdlIGltcG9ydCBwYXRoLCBpZiBwcm92aWRlZC4KICAgLSBPdGhlcndpc2UsIHRoZSBwYWNrYWdlIHN0YXRlbWVudCBpbiB0aGUgLnByb3RvIGZpbGUsIGlmIHByZXNlbnQuCiAgIC0gT3RoZXJ3aXNlLCB0aGUgYmFzZW5hbWUgb2YgdGhlIC5wcm90byBmaWxlLCB3aXRob3V0IGV4dGVuc2lvbi4KCg0KBQQKAgYEEgTvAgIKCg0KBQQKAgYFEgTvAgsRCg0KBQQKAgYBEgTvAhIcCg0KBQQKAgYDEgTvAh8hCtQECgQECgIHEgT9AgI5GsUEIFNob3VsZCBnZW5lcmljIHNlcnZpY2VzIGJlIGdlbmVyYXRlZCBpbiBlYWNoIGxhbmd1YWdlPyAgIkdlbmVyaWMiIHNlcnZpY2VzCiBhcmUgbm90IHNwZWNpZmljIHRvIGFueSBwYXJ0aWN1bGFyIFJQQyBzeXN0ZW0uICBUaGV5IGFyZSBnZW5lcmF0ZWQgYnkgdGhlCiBtYWluIGNvZGUgZ2VuZXJhdG9ycyBpbiBlYWNoIGxhbmd1YWdlICh3aXRob3V0IGFkZGl0aW9uYWwgcGx1Z2lucykuCiBHZW5lcmljIHNlcnZpY2VzIHdlcmUgdGhlIG9ubHkga2luZCBvZiBzZXJ2aWNlIGdlbmVyYXRpb24gc3VwcG9ydGVkIGJ5CiBlYXJseSB2ZXJzaW9ucyBvZiBnb29nbGUucHJvdG9idWYuCgogR2VuZXJpYyBzZXJ2aWNlcyBhcmUgbm93IGNvbnNpZGVyZWQgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB1c2luZyBwbHVnaW5zCiB0aGF0IGdlbmVyYXRlIGNvZGUgc3BlY2lmaWMgdG8geW91ciBwYXJ0aWN1bGFyIFJQQyBzeXN0ZW0uICBUaGVyZWZvcmUsCiB0aGVzZSBkZWZhdWx0IHRvIGZhbHNlLiAgT2xkIGNvZGUgd2hpY2ggZGVwZW5kcyBvbiBnZW5lcmljIHNlcnZpY2VzIHNob3VsZAogZXhwbGljaXRseSBzZXQgdGhlbSB0byB0cnVlLgoKDQoFBAoCBwQSBP0CAgoKDQoFBAoCBwUSBP0CCw8KDQoFBAoCBwESBP0CECMKDQoFBAoCBwMSBP0CJigKDQoFBAoCBwgSBP0CKTgKDQoFBAoCBwcSBP0CMjcKDAoEBAoCCBIE/gICOwoNCgUECgIIBBIE/gICCgoNCgUECgIIBRIE/gILDwoNCgUECgIIARIE/gIQJQoNCgUECgIIAxIE/gIoKgoNCgUECgIICBIE/gIrOgoNCgUECgIIBxIE/gI0OQoMCgQECgIJEgT/AgI5Cg0KBQQKAgkEEgT/AgIKCg0KBQQKAgkFEgT/AgsPCg0KBQQKAgkBEgT/AhAjCg0KBQQKAgkDEgT/AiYoCg0KBQQKAgkIEgT/Aik4Cg0KBQQKAgkHEgT/AjI3CgwKBAQKAgoSBIADAjoKDQoFBAoCCgQSBIADAgoKDQoFBAoCCgUSBIADCw8KDQoFBAoCCgESBIADECQKDQoFBAoCCgMSBIADJykKDQoFBAoCCggSBIADKjkKDQoFBAoCCgcSBIADMzgK8wEKBAQKAgsSBIYDAjAa5AEgSXMgdGhpcyBmaWxlIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgZXZlcnl0aGluZyBpbiB0aGUgZmlsZSwgb3IgaXQgd2lsbCBiZSBjb21wbGV0ZWx5IGlnbm9yZWQ7IGluIHRoZSB2ZXJ5CiBsZWFzdCwgdGhpcyBpcyBhIGZvcm1hbGl6YXRpb24gZm9yIGRlcHJlY2F0aW5nIGZpbGVzLgoKDQoFBAoCCwQSBIYDAgoKDQoFBAoCCwUSBIYDCw8KDQoFBAoCCwESBIYDEBoKDQoFBAoCCwMSBIYDHR8KDQoFBAoCCwgSBIYDIC8KDQoFBAoCCwcSBIYDKS4KfwoEBAoCDBIEigMCNhpxIEVuYWJsZXMgdGhlIHVzZSBvZiBhcmVuYXMgZm9yIHRoZSBwcm90byBtZXNzYWdlcyBpbiB0aGlzIGZpbGUuIFRoaXMgYXBwbGllcwogb25seSB0byBnZW5lcmF0ZWQgY2xhc3NlcyBmb3IgQysrLgoKDQoFBAoCDAQSBIoDAgoKDQoFBAoCDAUSBIoDCw8KDQoFBAoCDAESBIoDECAKDQoFBAoCDAMSBIoDIyUKDQoFBAoCDAgSBIoDJjUKDQoFBAoCDAcSBIoDLzQKkgEKBAQKAg0SBI8DAikagwEgU2V0cyB0aGUgb2JqZWN0aXZlIGMgY2xhc3MgcHJlZml4IHdoaWNoIGlzIHByZXBlbmRlZCB0byBhbGwgb2JqZWN0aXZlIGMKIGdlbmVyYXRlZCBjbGFzc2VzIGZyb20gdGhpcyAucHJvdG8uIFRoZXJlIGlzIG5vIGRlZmF1bHQuCgoNCgUECgINBBIEjwMCCgoNCgUECgINBRIEjwMLEQoNCgUECgINARIEjwMSIwoNCgUECgINAxIEjwMmKApJCgQECgIOEgSSAwIoGjsgTmFtZXNwYWNlIGZvciBnZW5lcmF0ZWQgY2xhc3NlczsgZGVmYXVsdHMgdG8gdGhlIHBhY2thZ2UuCgoNCgUECgIOBBIEkgMCCgoNCgUECgIOBRIEkgMLEQoNCgUECgIOARIEkgMSIgoNCgUECgIOAxIEkgMlJwqRAgoEBAoCDxIEmAMCJBqCAiBCeSBkZWZhdWx0IFN3aWZ0IGdlbmVyYXRvcnMgd2lsbCB0YWtlIHRoZSBwcm90byBwYWNrYWdlIGFuZCBDYW1lbENhc2UgaXQKIHJlcGxhY2luZyAnLicgd2l0aCB1bmRlcnNjb3JlIGFuZCB1c2UgdGhhdCB0byBwcmVmaXggdGhlIHR5cGVzL3N5bWJvbHMKIGRlZmluZWQuIFdoZW4gdGhpcyBvcHRpb25zIGlzIHByb3ZpZGVkLCB0aGV5IHdpbGwgdXNlIHRoaXMgdmFsdWUgaW5zdGVhZAogdG8gcHJlZml4IHRoZSB0eXBlcy9zeW1ib2xzIGRlZmluZWQuCgoNCgUECgIPBBIEmAMCCgoNCgUECgIPBRIEmAMLEQoNCgUECgIPARIEmAMSHgoNCgUECgIPAxIEmAMhIwp+CgQECgIQEgScAwIoGnAgU2V0cyB0aGUgcGhwIGNsYXNzIHByZWZpeCB3aGljaCBpcyBwcmVwZW5kZWQgdG8gYWxsIHBocCBnZW5lcmF0ZWQgY2xhc3NlcwogZnJvbSB0aGlzIC5wcm90by4gRGVmYXVsdCBpcyBlbXB0eS4KCg0KBQQKAhAEEgScAwIKCg0KBQQKAhAFEgScAwsRCg0KBQQKAhABEgScAxIiCg0KBQQKAhADEgScAyUnCr4BCgQECgIREgShAwIlGq8BIFVzZSB0aGlzIG9wdGlvbiB0byBjaGFuZ2UgdGhlIG5hbWVzcGFjZSBvZiBwaHAgZ2VuZXJhdGVkIGNsYXNzZXMuIERlZmF1bHQKIGlzIGVtcHR5LiBXaGVuIHRoaXMgb3B0aW9uIGlzIGVtcHR5LCB0aGUgcGFja2FnZSBuYW1lIHdpbGwgYmUgdXNlZCBmb3IKIGRldGVybWluaW5nIHRoZSBuYW1lc3BhY2UuCgoNCgUECgIRBBIEoQMCCgoNCgUECgIRBRIEoQMLEQoNCgUECgIRARIEoQMSHwoNCgUECgIRAxIEoQMiJArKAQoEBAoCEhIEpwMCLhq7ASBVc2UgdGhpcyBvcHRpb24gdG8gY2hhbmdlIHRoZSBuYW1lc3BhY2Ugb2YgcGhwIGdlbmVyYXRlZCBtZXRhZGF0YSBjbGFzc2VzLgogRGVmYXVsdCBpcyBlbXB0eS4gV2hlbiB0aGlzIG9wdGlvbiBpcyBlbXB0eSwgdGhlIHByb3RvIGZpbGUgbmFtZSB3aWxsIGJlIHVzZWQKIGZvciBkZXRlcm1pbmluZyB0aGUgbmFtZXNwYWNlLgoKDQoFBAoCEgQSBKcDAgoKDQoFBAoCEgUSBKcDCxEKDQoFBAoCEgESBKcDEigKDQoFBAoCEgMSBKcDKy0KwgEKBAQKAhMSBKwDAiQaswEgVXNlIHRoaXMgb3B0aW9uIHRvIGNoYW5nZSB0aGUgcGFja2FnZSBvZiBydWJ5IGdlbmVyYXRlZCBjbGFzc2VzLiBEZWZhdWx0CiBpcyBlbXB0eS4gV2hlbiB0aGlzIG9wdGlvbiBpcyBub3Qgc2V0LCB0aGUgcGFja2FnZSBuYW1lIHdpbGwgYmUgdXNlZCBmb3IKIGRldGVybWluaW5nIHRoZSBydWJ5IHBhY2thZ2UuCgoNCgUECgITBBIErAMCCgoNCgUECgITBRIErAMLEQoNCgUECgITARIErAMSHgoNCgUECgITAxIErAMhIwp8CgQECgIUEgSwAwI6Gm4gVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLgogU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgIk9wdGlvbnMiIHNlY3Rpb24gYWJvdmUuCgoNCgUECgIUBBIEsAMCCgoNCgUECgIUBhIEsAMLHgoNCgUECgIUARIEsAMfMwoNCgUECgIUAxIEsAM2OQqHAQoDBAoFEgS0AwIZGnogQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLgogU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgIk9wdGlvbnMiIHNlY3Rpb24gYWJvdmUuCgoMCgQECgUAEgS0Aw0YCg0KBQQKBQABEgS0Aw0RCg0KBQQKBQACEgS0AxUYCgsKAwQKCRIEtgMCDgoMCgQECgkAEgS2AwsNCg0KBQQKCQABEgS2AwsNCg0KBQQKCQACEgS2AwsNCgwKAgQLEga5AwD4AwEKCwoDBAsBEgS5AwgWCtgFCgQECwIAEgTMAwI8GskFIFNldCB0cnVlIHRvIHVzZSB0aGUgb2xkIHByb3RvMSBNZXNzYWdlU2V0IHdpcmUgZm9ybWF0IGZvciBleHRlbnNpb25zLgogVGhpcyBpcyBwcm92aWRlZCBmb3IgYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgd2l0aCB0aGUgTWVzc2FnZVNldCB3aXJlCiBmb3JtYXQuICBZb3Ugc2hvdWxkIG5vdCB1c2UgdGhpcyBmb3IgYW55IG90aGVyIHJlYXNvbjogIEl0J3MgbGVzcwogZWZmaWNpZW50LCBoYXMgZmV3ZXIgZmVhdHVyZXMsIGFuZCBpcyBtb3JlIGNvbXBsaWNhdGVkLgoKIFRoZSBtZXNzYWdlIG11c3QgYmUgZGVmaW5lZCBleGFjdGx5IGFzIGZvbGxvd3M6CiAgIG1lc3NhZ2UgRm9vIHsKICAgICBvcHRpb24gbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQgPSB0cnVlOwogICAgIGV4dGVuc2lvbnMgNCB0byBtYXg7CiAgIH0KIE5vdGUgdGhhdCB0aGUgbWVzc2FnZSBjYW5ub3QgaGF2ZSBhbnkgZGVmaW5lZCBmaWVsZHM7IE1lc3NhZ2VTZXRzIG9ubHkKIGhhdmUgZXh0ZW5zaW9ucy4KCiBBbGwgZXh0ZW5zaW9ucyBvZiB5b3VyIHR5cGUgbXVzdCBiZSBzaW5ndWxhciBtZXNzYWdlczsgZS5nLiB0aGV5IGNhbm5vdAogYmUgaW50MzJzLCBlbnVtcywgb3IgcmVwZWF0ZWQgbWVzc2FnZXMuCgogQmVjYXVzZSB0aGlzIGlzIGFuIG9wdGlvbiwgdGhlIGFib3ZlIHR3byByZXN0cmljdGlvbnMgYXJlIG5vdCBlbmZvcmNlZCBieQogdGhlIHByb3RvY29sIGNvbXBpbGVyLgoKDQoFBAsCAAQSBMwDAgoKDQoFBAsCAAUSBMwDCw8KDQoFBAsCAAESBMwDECcKDQoFBAsCAAMSBMwDKisKDQoFBAsCAAgSBMwDLDsKDQoFBAsCAAcSBMwDNToK6wEKBAQLAgESBNEDAkQa3AEgRGlzYWJsZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHN0YW5kYXJkICJkZXNjcmlwdG9yKCkiIGFjY2Vzc29yLCB3aGljaCBjYW4KIGNvbmZsaWN0IHdpdGggYSBmaWVsZCBvZiB0aGUgc2FtZSBuYW1lLiAgVGhpcyBpcyBtZWFudCB0byBtYWtlIG1pZ3JhdGlvbgogZnJvbSBwcm90bzEgZWFzaWVyOyBuZXcgY29kZSBzaG91bGQgYXZvaWQgZmllbGRzIG5hbWVkICJkZXNjcmlwdG9yIi4KCg0KBQQLAgEEEgTRAwIKCg0KBQQLAgEFEgTRAwsPCg0KBQQLAgEBEgTRAxAvCg0KBQQLAgEDEgTRAzIzCg0KBQQLAgEIEgTRAzRDCg0KBQQLAgEHEgTRAz1CCu4BCgQECwICEgTXAwIvGt8BIElzIHRoaXMgbWVzc2FnZSBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIHRoZSBtZXNzYWdlLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsCiB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgbWVzc2FnZXMuCgoNCgUECwICBBIE1wMCCgoNCgUECwICBRIE1wMLDwoNCgUECwICARIE1wMQGgoNCgUECwICAxIE1wMdHgoNCgUECwICCBIE1wMfLgoNCgUECwICBxIE1wMoLQqeBgoEBAsCAxIE7gMCHhqPBiBXaGV0aGVyIHRoZSBtZXNzYWdlIGlzIGFuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1hcCBlbnRyeSB0eXBlIGZvciB0aGUKIG1hcHMgZmllbGQuCgogRm9yIG1hcHMgZmllbGRzOgogICAgIG1hcDxLZXlUeXBlLCBWYWx1ZVR5cGU+IG1hcF9maWVsZCA9IDE7CiBUaGUgcGFyc2VkIGRlc2NyaXB0b3IgbG9va3MgbGlrZToKICAgICBtZXNzYWdlIE1hcEZpZWxkRW50cnkgewogICAgICAgICBvcHRpb24gbWFwX2VudHJ5ID0gdHJ1ZTsKICAgICAgICAgb3B0aW9uYWwgS2V5VHlwZSBrZXkgPSAxOwogICAgICAgICBvcHRpb25hbCBWYWx1ZVR5cGUgdmFsdWUgPSAyOwogICAgIH0KICAgICByZXBlYXRlZCBNYXBGaWVsZEVudHJ5IG1hcF9maWVsZCA9IDE7CgogSW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGdlbmVyYXRlIHRoZSBtYXBfZW50cnk9dHJ1ZSBtZXNzYWdlLCBidXQKIHVzZSBhIG5hdGl2ZSBtYXAgaW4gdGhlIHRhcmdldCBsYW5ndWFnZSB0byBob2xkIHRoZSBrZXlzIGFuZCB2YWx1ZXMuCiBUaGUgcmVmbGVjdGlvbiBBUElzIGluIHN1Y2ggaW1wbGVtZW50aW9ucyBzdGlsbCBuZWVkIHRvIHdvcmsgYXMKIGlmIHRoZSBmaWVsZCBpcyBhIHJlcGVhdGVkIG1lc3NhZ2UgZmllbGQuCgogTk9URTogRG8gbm90IHNldCB0aGUgb3B0aW9uIGluIC5wcm90byBmaWxlcy4gQWx3YXlzIHVzZSB0aGUgbWFwcyBzeW50YXgKIGluc3RlYWQuIFRoZSBvcHRpb24gc2hvdWxkIG9ubHkgYmUgaW1wbGljaXRseSBzZXQgYnkgdGhlIHByb3RvIGNvbXBpbGVyCiBwYXJzZXIuCgoNCgUECwIDBBIE7gMCCgoNCgUECwIDBRIE7gMLDwoNCgUECwIDARIE7gMQGQoNCgUECwIDAxIE7gMcHQokCgMECwkSBPADAg0iFyBqYXZhbGl0ZV9zZXJpYWxpemFibGUKCgwKBAQLCQASBPADCwwKDQoFBAsJAAESBPADCwwKDQoFBAsJAAISBPADCwwKHwoDBAsJEgTxAwINIhIgamF2YW5hbm9fYXNfbGl0ZQoKDAoEBAsJARIE8QMLDAoNCgUECwkBARIE8QMLDAoNCgUECwkBAhIE8QMLDApPCgQECwIEEgT0AwI6GkEgVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUECwIEBBIE9AMCCgoNCgUECwIEBhIE9AMLHgoNCgUECwIEARIE9AMfMwoNCgUECwIEAxIE9AM2OQpaCgMECwUSBPcDAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQLBQASBPcDDRgKDQoFBAsFAAESBPcDDREKDQoFBAsFAAISBPcDFRgKDAoCBAwSBvoDANUEAQoLCgMEDAESBPoDCBQKowIKBAQMAgASBP8DAi4alAIgVGhlIGN0eXBlIG9wdGlvbiBpbnN0cnVjdHMgdGhlIEMrKyBjb2RlIGdlbmVyYXRvciB0byB1c2UgYSBkaWZmZXJlbnQKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBmaWVsZCB0aGFuIGl0IG5vcm1hbGx5IHdvdWxkLiAgU2VlIHRoZSBzcGVjaWZpYwogb3B0aW9ucyBiZWxvdy4gIFRoaXMgb3B0aW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4gdGhlIG9wZW4gc291cmNlCiByZWxlYXNlIC0tIHNvcnJ5LCB3ZSdsbCB0cnkgdG8gaW5jbHVkZSBpdCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIQoKDQoFBAwCAAQSBP8DAgoKDQoFBAwCAAYSBP8DCxAKDQoFBAwCAAESBP8DERYKDQoFBAwCAAMSBP8DGRoKDQoFBAwCAAgSBP8DGy0KDQoFBAwCAAcSBP8DJiwKDgoEBAwEABIGgAQChwQDCg0KBQQMBAABEgSABAcMCh8KBgQMBAACABIEggQEDxoPIERlZmF1bHQgbW9kZS4KCg8KBwQMBAACAAESBIIEBAoKDwoHBAwEAAIAAhIEggQNDgoOCgYEDAQAAgESBIQEBA0KDwoHBAwEAAIBARIEhAQECAoPCgcEDAQAAgECEgSEBAsMCg4KBgQMBAACAhIEhgQEFQoPCgcEDAQAAgIBEgSGBAQQCg8KBwQMBAACAgISBIYEExQK2gIKBAQMAgESBI0EAhsaywIgVGhlIHBhY2tlZCBvcHRpb24gY2FuIGJlIGVuYWJsZWQgZm9yIHJlcGVhdGVkIHByaW1pdGl2ZSBmaWVsZHMgdG8gZW5hYmxlCiBhIG1vcmUgZWZmaWNpZW50IHJlcHJlc2VudGF0aW9uIG9uIHRoZSB3aXJlLiBSYXRoZXIgdGhhbiByZXBlYXRlZGx5CiB3cml0aW5nIHRoZSB0YWcgYW5kIHR5cGUgZm9yIGVhY2ggZWxlbWVudCwgdGhlIGVudGlyZSBhcnJheSBpcyBlbmNvZGVkIGFzCiBhIHNpbmdsZSBsZW5ndGgtZGVsaW1pdGVkIGJsb2IuIEluIHByb3RvMywgb25seSBleHBsaWNpdCBzZXR0aW5nIGl0IHRvCiBmYWxzZSB3aWxsIGF2b2lkIHVzaW5nIHBhY2tlZCBlbmNvZGluZy4KCg0KBQQMAgEEEgSNBAIKCg0KBQQMAgEFEgSNBAsPCg0KBQQMAgEBEgSNBBAWCg0KBQQMAgEDEgSNBBkaCpoFCgQEDAICEgSaBAIzGosFIFRoZSBqc3R5cGUgb3B0aW9uIGRldGVybWluZXMgdGhlIEphdmFTY3JpcHQgdHlwZSB1c2VkIGZvciB2YWx1ZXMgb2YgdGhlCiBmaWVsZC4gIFRoZSBvcHRpb24gaXMgcGVybWl0dGVkIG9ubHkgZm9yIDY0IGJpdCBpbnRlZ3JhbCBhbmQgZml4ZWQgdHlwZXMKIChpbnQ2NCwgdWludDY0LCBzaW50NjQsIGZpeGVkNjQsIHNmaXhlZDY0KS4gIEEgZmllbGQgd2l0aCBqc3R5cGUgSlNfU1RSSU5HCiBpcyByZXByZXNlbnRlZCBhcyBKYXZhU2NyaXB0IHN0cmluZywgd2hpY2ggYXZvaWRzIGxvc3Mgb2YgcHJlY2lzaW9uIHRoYXQKIGNhbiBoYXBwZW4gd2hlbiBhIGxhcmdlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBhIGZsb2F0aW5nIHBvaW50IEphdmFTY3JpcHQuCiBTcGVjaWZ5aW5nIEpTX05VTUJFUiBmb3IgdGhlIGpzdHlwZSBjYXVzZXMgdGhlIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGNvZGUgdG8KIHVzZSB0aGUgSmF2YVNjcmlwdCAibnVtYmVyIiB0eXBlLiAgVGhlIGJlaGF2aW9yIG9mIHRoZSBkZWZhdWx0IG9wdGlvbgogSlNfTk9STUFMIGlzIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudC4KCiBUaGlzIG9wdGlvbiBpcyBhbiBlbnVtIHRvIHBlcm1pdCBhZGRpdGlvbmFsIHR5cGVzIHRvIGJlIGFkZGVkLCBlLmcuCiBnb29nLm1hdGguSW50ZWdlci4KCg0KBQQMAgIEEgSaBAIKCg0KBQQMAgIGEgSaBAsRCg0KBQQMAgIBEgSaBBIYCg0KBQQMAgIDEgSaBBscCg0KBQQMAgIIEgSaBB0yCg0KBQQMAgIHEgSaBCgxCg4KBAQMBAESBpsEAqQEAwoNCgUEDAQBARIEmwQHDQonCgYEDAQBAgASBJ0EBBIaFyBVc2UgdGhlIGRlZmF1bHQgdHlwZS4KCg8KBwQMBAECAAESBJ0EBA0KDwoHBAwEAQIAAhIEnQQQEQopCgYEDAQBAgESBKAEBBIaGSBVc2UgSmF2YVNjcmlwdCBzdHJpbmdzLgoKDwoHBAwEAQIBARIEoAQEDQoPCgcEDAQBAgECEgSgBBARCikKBgQMBAECAhIEowQEEhoZIFVzZSBKYXZhU2NyaXB0IG51bWJlcnMuCgoPCgcEDAQBAgIBEgSjBAQNCg8KBwQMBAECAgISBKMEEBEK7wwKBAQMAgMSBMIEAika4AwgU2hvdWxkIHRoaXMgZmllbGQgYmUgcGFyc2VkIGxhemlseT8gIExhenkgYXBwbGllcyBvbmx5IHRvIG1lc3NhZ2UtdHlwZQogZmllbGRzLiAgSXQgbWVhbnMgdGhhdCB3aGVuIHRoZSBvdXRlciBtZXNzYWdlIGlzIGluaXRpYWxseSBwYXJzZWQsIHRoZQogaW5uZXIgbWVzc2FnZSdzIGNvbnRlbnRzIHdpbGwgbm90IGJlIHBhcnNlZCBidXQgaW5zdGVhZCBzdG9yZWQgaW4gZW5jb2RlZAogZm9ybS4gIFRoZSBpbm5lciBtZXNzYWdlIHdpbGwgYWN0dWFsbHkgYmUgcGFyc2VkIHdoZW4gaXQgaXMgZmlyc3QgYWNjZXNzZWQuCgogVGhpcyBpcyBvbmx5IGEgaGludC4gIEltcGxlbWVudGF0aW9ucyBhcmUgZnJlZSB0byBjaG9vc2Ugd2hldGhlciB0byB1c2UKIGVhZ2VyIG9yIGxhenkgcGFyc2luZyByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbi4gIEhvd2V2ZXIsCiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRydWUgc3VnZ2VzdHMgdGhhdCB0aGUgcHJvdG9jb2wgYXV0aG9yIGJlbGlldmVzIHRoYXQKIHVzaW5nIGxhenkgcGFyc2luZyBvbiB0aGlzIGZpZWxkIGlzIHdvcnRoIHRoZSBhZGRpdGlvbmFsIGJvb2trZWVwaW5nCiBvdmVyaGVhZCB0eXBpY2FsbHkgbmVlZGVkIHRvIGltcGxlbWVudCBpdC4KCiBUaGlzIG9wdGlvbiBkb2VzIG5vdCBhZmZlY3QgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgYW55IGdlbmVyYXRlZCBjb2RlOwogYWxsIG1ldGhvZCBzaWduYXR1cmVzIHJlbWFpbiB0aGUgc2FtZS4gIEZ1cnRoZXJtb3JlLCB0aHJlYWQtc2FmZXR5IG9mIHRoZQogaW50ZXJmYWNlIGlzIG5vdCBhZmZlY3RlZCBieSB0aGlzIG9wdGlvbjsgY29uc3QgbWV0aG9kcyByZW1haW4gc2FmZSB0bwogY2FsbCBmcm9tIG11bHRpcGxlIHRocmVhZHMgY29uY3VycmVudGx5LCB3aGlsZSBub24tY29uc3QgbWV0aG9kcyBjb250aW51ZQogdG8gcmVxdWlyZSBleGNsdXNpdmUgYWNjZXNzLgoKCiBOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcyB3aXRoaW4KIGEgbGF6eSBzdWItbWVzc2FnZS4gIFRoYXQgaXMsIGNhbGxpbmcgSXNJbml0aWFsaXplZCgpIG9uIHRoZSBvdXRlciBtZXNzYWdlCiBtYXkgcmV0dXJuIHRydWUgZXZlbiBpZiB0aGUgaW5uZXIgbWVzc2FnZSBoYXMgbWlzc2luZyByZXF1aXJlZCBmaWVsZHMuCiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgaW5uZXIgbWVzc2FnZSB3b3VsZCBoYXZlIHRvIGJlCiBwYXJzZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgY2hlY2ssIGRlZmVhdGluZyB0aGUgcHVycG9zZSBvZiBsYXp5CiBwYXJzaW5nLiAgQW4gaW1wbGVtZW50YXRpb24gd2hpY2ggY2hvb3NlcyBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzCiBtdXN0IGJlIGNvbnNpc3RlbnQgYWJvdXQgaXQuICBUaGF0IGlzLCBmb3IgYW55IHBhcnRpY3VsYXIgc3ViLW1lc3NhZ2UsIHRoZQogaW1wbGVtZW50YXRpb24gbXVzdCBlaXRoZXIgKmFsd2F5cyogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgb3IgKm5ldmVyKgogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgbWVzc2FnZSBoYXMKIGJlZW4gcGFyc2VkLgoKDQoFBAwCAwQSBMIEAgoKDQoFBAwCAwUSBMIECw8KDQoFBAwCAwESBMIEEBQKDQoFBAwCAwMSBMIEFxgKDQoFBAwCAwgSBMIEGSgKDQoFBAwCAwcSBMIEIicK6AEKBAQMAgQSBMgEAi8a2QEgSXMgdGhpcyBmaWVsZCBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIGFjY2Vzc29ycywgb3IgaXQgd2lsbCBiZSBjb21wbGV0ZWx5IGlnbm9yZWQ7IGluIHRoZSB2ZXJ5IGxlYXN0LCB0aGlzCiBpcyBhIGZvcm1hbGl6YXRpb24gZm9yIGRlcHJlY2F0aW5nIGZpZWxkcy4KCg0KBQQMAgQEEgTIBAIKCg0KBQQMAgQFEgTIBAsPCg0KBQQMAgQBEgTIBBAaCg0KBQQMAgQDEgTIBB0eCg0KBQQMAgQIEgTIBB8uCg0KBQQMAgQHEgTIBCgtCj8KBAQMAgUSBMsEAioaMSBGb3IgR29vZ2xlLWludGVybmFsIG1pZ3JhdGlvbiBvbmx5LiBEbyBub3QgdXNlLgoKDQoFBAwCBQQSBMsEAgoKDQoFBAwCBQUSBMsECw8KDQoFBAwCBQESBMsEEBQKDQoFBAwCBQMSBMsEFxkKDQoFBAwCBQgSBMsEGikKDQoFBAwCBQcSBMsEIygKTwoEBAwCBhIEzwQCOhpBIFRoZSBwYXJzZXIgc3RvcmVzIG9wdGlvbnMgaXQgZG9lc24ndCByZWNvZ25pemUgaGVyZS4gU2VlIGFib3ZlLgoKDQoFBAwCBgQSBM8EAgoKDQoFBAwCBgYSBM8ECx4KDQoFBAwCBgESBM8EHzMKDQoFBAwCBgMSBM8ENjkKWgoDBAwFEgTSBAIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEDAUAEgTSBA0YCg0KBQQMBQABEgTSBA0RCg0KBQQMBQACEgTSBBUYChwKAwQMCRIE1AQCDSIPIHJlbW92ZWQganR5cGUKCgwKBAQMCQASBNQECwwKDQoFBAwJAAESBNQECwwKDQoFBAwJAAISBNQECwwKDAoCBA0SBtcEAN0EAQoLCgMEDQESBNcECBQKTwoEBA0CABIE2QQCOhpBIFRoZSBwYXJzZXIgc3RvcmVzIG9wdGlvbnMgaXQgZG9lc24ndCByZWNvZ25pemUgaGVyZS4gU2VlIGFib3ZlLgoKDQoFBA0CAAQSBNkEAgoKDQoFBA0CAAYSBNkECx4KDQoFBA0CAAESBNkEHzMKDQoFBA0CAAMSBNkENjkKWgoDBA0FEgTcBAIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEDQUAEgTcBA0YCg0KBQQNBQABEgTcBA0RCg0KBQQNBQACEgTcBBUYCgwKAgQOEgbfBADyBAEKCwoDBA4BEgTfBAgTCmAKBAQOAgASBOMEAiAaUiBTZXQgdGhpcyBvcHRpb24gdG8gdHJ1ZSB0byBhbGxvdyBtYXBwaW5nIGRpZmZlcmVudCB0YWcgbmFtZXMgdG8gdGhlIHNhbWUKIHZhbHVlLgoKDQoFBA4CAAQSBOMEAgoKDQoFBA4CAAUSBOMECw8KDQoFBA4CAAESBOMEEBsKDQoFBA4CAAMSBOMEHh8K5QEKBAQOAgESBOkEAi8a1gEgSXMgdGhpcyBlbnVtIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIGVudW0sIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwgdGhpcwogaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBlbnVtcy4KCg0KBQQOAgEEEgTpBAIKCg0KBQQOAgEFEgTpBAsPCg0KBQQOAgEBEgTpBBAaCg0KBQQOAgEDEgTpBB0eCg0KBQQOAgEIEgTpBB8uCg0KBQQOAgEHEgTpBCgtCh8KAwQOCRIE6wQCDSISIGphdmFuYW5vX2FzX2xpdGUKCgwKBAQOCQASBOsECwwKDQoFBA4JAAESBOsECwwKDQoFBA4JAAISBOsECwwKTwoEBA4CAhIE7gQCOhpBIFRoZSBwYXJzZXIgc3RvcmVzIG9wdGlvbnMgaXQgZG9lc24ndCByZWNvZ25pemUgaGVyZS4gU2VlIGFib3ZlLgoKDQoFBA4CAgQSBO4EAgoKDQoFBA4CAgYSBO4ECx4KDQoFBA4CAgESBO4EHzMKDQoFBA4CAgMSBO4ENjkKWgoDBA4FEgTxBAIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEDgUAEgTxBA0YCg0KBQQOBQABEgTxBA0RCg0KBQQOBQACEgTxBBUYCgwKAgQPEgb0BACABQEKCwoDBA8BEgT0BAgYCvcBCgQEDwIAEgT5BAIvGugBIElzIHRoaXMgZW51bSB2YWx1ZSBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIHRoZSBlbnVtIHZhbHVlLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsCiB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgZW51bSB2YWx1ZXMuCgoNCgUEDwIABBIE+QQCCgoNCgUEDwIABRIE+QQLDwoNCgUEDwIAARIE+QQQGgoNCgUEDwIAAxIE+QQdHgoNCgUEDwIACBIE+QQfLgoNCgUEDwIABxIE+QQoLQpPCgQEDwIBEgT8BAI6GkEgVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUEDwIBBBIE/AQCCgoNCgUEDwIBBhIE/AQLHgoNCgUEDwIBARIE/AQfMwoNCgUEDwIBAxIE/AQ2OQpaCgMEDwUSBP8EAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQPBQASBP8EDRgKDQoFBA8FAAESBP8EDREKDQoFBA8FAAISBP8EFRgKDAoCBBASBoIFAJQFAQoLCgMEEAESBIIFCBYK2QMKBAQQAgASBI0FAjAa3wEgSXMgdGhpcyBzZXJ2aWNlIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIHNlcnZpY2UsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwKIHRoaXMgaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBzZXJ2aWNlcy4KMugBIE5vdGU6ICBGaWVsZCBudW1iZXJzIDEgdGhyb3VnaCAzMiBhcmUgcmVzZXJ2ZWQgZm9yIEdvb2dsZSdzIGludGVybmFsIFJQQwogICBmcmFtZXdvcmsuICBXZSBhcG9sb2dpemUgZm9yIGhvYXJkaW5nIHRoZXNlIG51bWJlcnMgdG8gb3Vyc2VsdmVzLCBidXQKICAgd2Ugd2VyZSBhbHJlYWR5IHVzaW5nIHRoZW0gbG9uZyBiZWZvcmUgd2UgZGVjaWRlZCB0byByZWxlYXNlIFByb3RvY29sCiAgIEJ1ZmZlcnMuCgoNCgUEEAIABBIEjQUCCgoNCgUEEAIABRIEjQULDwoNCgUEEAIAARIEjQUQGgoNCgUEEAIAAxIEjQUdHwoNCgUEEAIACBIEjQUgLwoNCgUEEAIABxIEjQUpLgpPCgQEEAIBEgSQBQI6GkEgVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUEEAIBBBIEkAUCCgoNCgUEEAIBBhIEkAULHgoNCgUEEAIBARIEkAUfMwoNCgUEEAIBAxIEkAU2OQpaCgMEEAUSBJMFAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQQBQASBJMFDRgKDQoFBBAFAAESBJMFDREKDQoFBBAFAAISBJMFFRgKDAoCBBESBpYFALMFAQoLCgMEEQESBJYFCBUK1gMKBAQRAgASBKEFAjAa3AEgSXMgdGhpcyBtZXRob2QgZGVwcmVjYXRlZD8KIERlcGVuZGluZyBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLCB0aGlzIGNhbiBlbWl0IERlcHJlY2F0ZWQgYW5ub3RhdGlvbnMKIGZvciB0aGUgbWV0aG9kLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsCiB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgbWV0aG9kcy4KMugBIE5vdGU6ICBGaWVsZCBudW1iZXJzIDEgdGhyb3VnaCAzMiBhcmUgcmVzZXJ2ZWQgZm9yIEdvb2dsZSdzIGludGVybmFsIFJQQwogICBmcmFtZXdvcmsuICBXZSBhcG9sb2dpemUgZm9yIGhvYXJkaW5nIHRoZXNlIG51bWJlcnMgdG8gb3Vyc2VsdmVzLCBidXQKICAgd2Ugd2VyZSBhbHJlYWR5IHVzaW5nIHRoZW0gbG9uZyBiZWZvcmUgd2UgZGVjaWRlZCB0byByZWxlYXNlIFByb3RvY29sCiAgIEJ1ZmZlcnMuCgoNCgUEEQIABBIEoQUCCgoNCgUEEQIABRIEoQULDwoNCgUEEQIAARIEoQUQGgoNCgUEEQIAAxIEoQUdHwoNCgUEEQIACBIEoQUgLwoNCgUEEQIABxIEoQUpLgrwAQoEBBEEABIGpgUCqgUDGt8BIElzIHRoaXMgbWV0aG9kIHNpZGUtZWZmZWN0LWZyZWUgKG9yIHNhZmUgaW4gSFRUUCBwYXJsYW5jZSksIG9yIGlkZW1wb3RlbnQsCiBvciBuZWl0aGVyPyBIVFRQIGJhc2VkIFJQQyBpbXBsZW1lbnRhdGlvbiBtYXkgY2hvb3NlIEdFVCB2ZXJiIGZvciBzYWZlCiBtZXRob2RzLCBhbmQgUFVUIHZlcmIgZm9yIGlkZW1wb3RlbnQgbWV0aG9kcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IFBPU1QuCgoNCgUEEQQAARIEpgUHFwoOCgYEEQQAAgASBKcFBBwKDwoHBBEEAAIAARIEpwUEFwoPCgcEEQQAAgACEgSnBRobCiQKBgQRBAACARIEqAUEHCIUIGltcGxpZXMgaWRlbXBvdGVudAoKDwoHBBEEAAIBARIEqAUEEwoPCgcEEQQAAgECEgSoBRobCjcKBgQRBAACAhIEqQUEHCInIGlkZW1wb3RlbnQsIGJ1dCBtYXkgaGF2ZSBzaWRlIGVmZmVjdHMKCg8KBwQRBAACAgESBKkFBA4KDwoHBBEEAAICAhIEqQUaGwoOCgQEEQIBEgarBQKsBScKDQoFBBECAQQSBKsFAgoKDQoFBBECAQYSBKsFCxsKDQoFBBECAQESBKsFHC0KDQoFBBECAQMSBKwFBggKDQoFBBECAQgSBKwFCSYKDQoFBBECAQcSBKwFEiUKTwoEBBECAhIErwUCOhpBIFRoZSBwYXJzZXIgc3RvcmVzIG9wdGlvbnMgaXQgZG9lc24ndCByZWNvZ25pemUgaGVyZS4gU2VlIGFib3ZlLgoKDQoFBBECAgQSBK8FAgoKDQoFBBECAgYSBK8FCx4KDQoFBBECAgESBK8FHzMKDQoFBBECAgMSBK8FNjkKWgoDBBEFEgSyBQIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEEQUAEgSyBQ0YCg0KBQQRBQABEgSyBQ0RCg0KBQQRBQACEgSyBRUYCosDCgIEEhIGvAUA0AUBGvwCIEEgbWVzc2FnZSByZXByZXNlbnRpbmcgYSBvcHRpb24gdGhlIHBhcnNlciBkb2VzIG5vdCByZWNvZ25pemUuIFRoaXMgb25seQogYXBwZWFycyBpbiBvcHRpb25zIHByb3RvcyBjcmVhdGVkIGJ5IHRoZSBjb21waWxlcjo6UGFyc2VyIGNsYXNzLgogRGVzY3JpcHRvclBvb2wgcmVzb2x2ZXMgdGhlc2Ugd2hlbiBidWlsZGluZyBEZXNjcmlwdG9yIG9iamVjdHMuIFRoZXJlZm9yZSwKIG9wdGlvbnMgcHJvdG9zIGluIGRlc2NyaXB0b3Igb2JqZWN0cyAoZS5nLiByZXR1cm5lZCBieSBEZXNjcmlwdG9yOjpvcHRpb25zKCksCiBvciBwcm9kdWNlZCBieSBEZXNjcmlwdG9yOjpDb3B5VG8oKSkgd2lsbCBuZXZlciBoYXZlIFVuaW50ZXJwcmV0ZWRPcHRpb25zCiBpbiB0aGVtLgoKCwoDBBIBEgS8BQgbCssCCgQEEgMAEgbCBQLFBQMaugIgVGhlIG5hbWUgb2YgdGhlIHVuaW50ZXJwcmV0ZWQgb3B0aW9uLiAgRWFjaCBzdHJpbmcgcmVwcmVzZW50cyBhIHNlZ21lbnQgaW4KIGEgZG90LXNlcGFyYXRlZCBuYW1lLiAgaXNfZXh0ZW5zaW9uIGlzIHRydWUgaWZmIGEgc2VnbWVudCByZXByZXNlbnRzIGFuCiBleHRlbnNpb24gKGRlbm90ZWQgd2l0aCBwYXJlbnRoZXNlcyBpbiBvcHRpb25zIHNwZWNzIGluIC5wcm90byBmaWxlcykuCiBFLmcuLHsgWyJmb28iLCBmYWxzZV0sIFsiYmFyLmJheiIsIHRydWVdLCBbInF1eCIsIGZhbHNlXSB9IHJlcHJlc2VudHMKICJmb28uKGJhci5iYXopLnF1eCIuCgoNCgUEEgMAARIEwgUKEgoOCgYEEgMAAgASBMMFBCIKDwoHBBIDAAIABBIEwwUEDAoPCgcEEgMAAgAFEgTDBQ0TCg8KBwQSAwACAAESBMMFFB0KDwoHBBIDAAIAAxIEwwUgIQoOCgYEEgMAAgESBMQFBCMKDwoHBBID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KGkuZS4gbm90IHRvIGFueQogICBwYXJ0aWN1bGFyIGluZGV4IHdpdGhpbiBpdCkuICBUaGlzIGlzIHVzZWQgd2hlbmV2ZXIgYSBzZXQgb2YgZWxlbWVudHMgYXJlCiAgIGxvZ2ljYWxseSBlbmNsb3NlZCBpbiBhIHNpbmdsZSBjb2RlIHNlZ21lbnQuICBGb3IgZXhhbXBsZSwgYW4gZW50aXJlCiAgIGV4dGVuZCBibG9jayAocG9zc2libHkgY29udGFpbmluZyBtdWx0aXBsZSBleHRlbnNpb24gZGVmaW5pdGlvbnMpIHdpbGwKICAgaGF2ZSBhbiBvdXRlciBsb2NhdGlvbiB3aG9zZSBwYXRoIHJlZmVycyB0byB0aGUgImV4dGVuc2lvbnMiIHJlcGVhdGVkCiAgIGZpZWxkIHdpdGhvdXQgYW4gaW5kZXguCiAtIE11bHRpcGxlIGxvY2F0aW9ucyBtYXkgaGF2ZSB0aGUgc2FtZSBwYXRoLiAgVGhpcyBoYXBwZW5zIHdoZW4gYSBzaW5nbGUKICAgbG9naWNhbCBkZWNsYXJhdGlvbiBpcyBzcHJlYWQgb3V0IGFjcm9zcyBtdWx0aXBsZSBwbGFjZXMuICBUaGUgbW9zdAogICBvYnZpb3VzIGV4YW1wbGUgaXMgdGhlICJleHRlbmQiIGJsb2NrIGFnYWluIC0tIHRoZXJlIG1heSBiZSBtdWx0aXBsZQogICBleHRlbmQgYmxvY2tzIGluIHRoZSBzYW1lIHNjb3BlLCBlYWNoIG9mIHdoaWNoIHdpbGwgaGF2ZSB0aGUgc2FtZSBwYXRoLgogLSBBIGxvY2F0aW9uJ3Mgc3BhbiBpcyBub3QgYWx3YXlzIGEgc3Vic2V0IG9mIGl0cyBwYXJlbnQncyBzcGFuLiAgRm9yCiAgIGV4YW1wbGUsIHRoZSAiZXh0ZW5kZWUiIG9mIGFuIGV4dGVuc2lvbiBkZWNsYXJhdGlvbiBhcHBlYXJzIGF0IHRoZQogICBiZWdpbm5pbmcgb2YgdGhlICJleHRlbmQiIGJsb2NrIGFuZCBpcyBzaGFyZWQgYnkgYWxsIGV4dGVuc2lvbnMgd2l0aGluCiAgIHRoZSBibG9jay4KIC0gSnVzdCBiZWNhdXNlIGEgbG9jYXRpb24ncyBzcGFuIGlzIGEgc3Vic2V0IG9mIHNvbWUgb3RoZXIgbG9jYXRpb24ncyBzcGFuCiAgIGRvZXMgbm90IG1lYW4gdGhhdCBpdCBpcyBhIGRlc2NlbmRlbnQuICBGb3IgZXhhbXBsZSwgYSAiZ3JvdXAiIGRlZmluZXMKICAgYm90aCBhIHR5cGUgYW5kIGEgZmllbGQgaW4gYSBzaW5nbGUgZGVjbGFyYXRpb24uICBUaHVzLCB0aGUgbG9jYXRpb25zCiAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR5cGUgYW5kIGZpZWxkIGFuZCB0aGVpciBjb21wb25lbnRzIHdpbGwgb3ZlcmxhcC4KIC0gQ29kZSB3aGljaCB0cmllcyB0byBpbnRlcnByZXQgbG9jYXRpb25zIHNob3VsZCBwcm9iYWJseSBiZSBkZXNpZ25lZCB0bwogICBpZ25vcmUgdGhvc2UgdGhhdCBpdCBkb2Vzbid0IHVuZGVyc3RhbmQsIGFzIG1vcmUgdHlwZXMgb2YgbG9jYXRpb25zIGNvdWxkCiAgIGJlIHJlY29yZGVkIGluIHRoZSBmdXR1cmUuCgoNCgUEEwIABBIEgwYCCgoNCgUEEwIABhIEgwYLEwoNCgUEEwIAARIEgwYUHAoNCgUEEwIAAxIEgwYfIAoOCgQEEwMAEgaEBgLXBgMKDQoFBBMDAAESBIQGChIKgwcKBgQTAwACABIEnAYEKhryBiBJZGVudGlmaWVzIHdoaWNoIHBhcnQgb2YgdGhlIEZpbGVEZXNjcmlwdG9yUHJvdG8gd2FzIGRlZmluZWQgYXQgdGhpcwogbG9jYXRpb24uCgogRWFjaCBlbGVtZW50IGlzIGEgZmllbGQgbnVtYmVyIG9yIGFuIGluZGV4LiAgVGhleSBmb3JtIGEgcGF0aCBmcm9tCiB0aGUgcm9vdCBGaWxlRGVzY3JpcHRvclByb3RvIHRvIHRoZSBwbGFjZSB3aGVyZSB0aGUgZGVmaW5pdGlvbi4gIEZvcgogZXhhbXBsZSwgdGhpcyBwYXRoOgogICBbIDQsIDMsIDIsIDcsIDEgXQogcmVmZXJzIHRvOgogICBmaWxlLm1lc3NhZ2VfdHlwZSgzKSAgLy8gNCwgMwogICAgICAgLmZpZWxkKDcpICAgICAgICAgLy8gMiwgNwogICAgICAgLm5hbWUoKSAgICAgICAgICAgLy8gMQogVGhpcyBpcyBiZWNhdXNlIEZpbGVEZXNjcmlwdG9yUHJvdG8ubWVzc2FnZV90eXBlIGhhcyBmaWVsZCBudW1iZXIgNDoKICAgcmVwZWF0ZWQgRGVzY3JpcHRvclByb3RvIG1lc3NhZ2VfdHlwZSA9IDQ7CiBhbmQgRGVzY3JpcHRvclByb3RvLmZpZWxkIGhhcyBmaWVsZCBudW1iZXIgMjoKICAgcmVwZWF0ZWQgRmllbGREZXNjcmlwdG9yUHJvdG8gZmllbGQgPSAyOwogYW5kIEZpZWxkRGVzY3JpcHRvclByb3RvLm5hbWUgaGFzIGZpZWxkIG51bWJlciAxOgogICBvcHRpb25hbCBzdHJpbmcgbmFtZSA9IDE7CgogVGh1cywgdGhlIGFib3ZlIHBhdGggZ2l2ZXMgdGhlIGxvY2F0aW9uIG9mIGEgZmllbGQgbmFtZS4gIElmIHdlIHJlbW92ZWQKIHRoZSBsYXN0IGVsZW1lbnQ6CiAgIFsgNCwgMywgMiwgNyBdCiB0aGlzIHBhdGggcmVmZXJzIHRvIHRoZSB3aG9sZSBmaWVsZCBkZWNsYXJhdGlvbiAoZnJvbSB0aGUgYmVnaW5uaW5nCiBvZiB0aGUgbGFiZWwgdG8gdGhlIHRlcm1pbmF0aW5nIHNlbWljb2xvbikuCgoPCgcEEwMAAgAEEgScBgQMCg8KBwQTAwACAAUSBJwGDRIKDwoHBBMDAAIAARIEnAYTFwoPCgcEEwMAAgADEgScBhobCg8KBwQTAwACAAgSBJwGHCkKEAoIBBMDAAIACAISBJwGHSgK0gIKBgQTAwACARIEowYEKhrBAiBBbHdheXMgaGFzIGV4YWN0bHkgdGhyZWUgb3IgZm91ciBlbGVtZW50czogc3RhcnQgbGluZSwgc3RhcnQgY29sdW1uLAogZW5kIGxpbmUgKG9wdGlvbmFsLCBvdGhlcndpc2UgYXNzdW1lZCBzYW1lIGFzIHN0YXJ0IGxpbmUpLCBlbmQgY29sdW1uLgogVGhlc2UgYXJlIHBhY2tlZCBpbnRvIGEgc2luZ2xlIGZpZWxkIGZvciBlZmZpY2llbmN5LiAgTm90ZSB0aGF0IGxpbmUKIGFuZCBjb2x1bW4gbnVtYmVycyBhcmUgemVyby1iYXNlZCAtLSB0eXBpY2FsbHkgeW91IHdpbGwgd2FudCB0byBhZGQKIDEgdG8gZWFjaCBiZWZvcmUgZGlzcGxheWluZyB0byBhIHVzZXIuCgoPCgcEEwMAAgEEEgSjBgQMCg8KBwQTAwACAQUSBKMGDRIKDwoHBBMDAAIBARIEowYTFwoPCgcEEwMAAgEDEgSjBhobCg8KBwQTAwACAQgSBKMGHCkKEAoIBBMDAAIBCAISBKMGHSgKpQwKBgQTAwACAhIE1AYEKRqUDCBJZiB0aGlzIFNvdXJjZUNvZGVJbmZvIHJlcHJlc2VudHMgYSBjb21wbGV0ZSBkZWNsYXJhdGlvbiwgdGhlc2UgYXJlIGFueQogY29tbWVudHMgYXBwZWFyaW5nIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGRlY2xhcmF0aW9uIHdoaWNoIGFwcGVhciB0byBiZQogYXR0YWNoZWQgdG8gdGhlIGRlY2xhcmF0aW9uLgoKIEEgc2VyaWVzIG9mIGxpbmUgY29tbWVudHMgYXBwZWFyaW5nIG9uIGNvbnNlY3V0aXZlIGxpbmVzLCB3aXRoIG5vIG90aGVyCiB0b2tlbnMgYXBwZWFyaW5nIG9uIHRob3NlIGxpbmVzLCB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGUgY29tbWVudC4KCiBsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzIHdpbGwga2VlcCBwYXJhZ3JhcGhzIG9mIGNvbW1lbnRzIHRoYXQgYXBwZWFyCiBiZWZvcmUgKGJ1dCBub3QgY29ubmVjdGVkIHRvKSB0aGUgY3VycmVudCBlbGVtZW50LiBFYWNoIHBhcmFncmFwaCwKIHNlcGFyYXRlZCBieSBlbXB0eSBsaW5lcywgd2lsbCBiZSBvbmUgY29tbWVudCBlbGVtZW50IGluIHRoZSByZXBlYXRlZAogZmllbGQuCgogT25seSB0aGUgY29tbWVudCBjb250ZW50IGlzIHByb3ZpZGVkOyBjb21tZW50IG1hcmtlcnMgKGUuZy4gLy8pIGFyZQogc3RyaXBwZWQgb3V0LiAgRm9yIGJsb2NrIGNvbW1lbnRzLCBsZWFkaW5nIHdoaXRlc3BhY2UgYW5kIGFuIGFzdGVyaXNrCiB3aWxsIGJlIHN0cmlwcGVkIGZyb20gdGhlIGJlZ2lubmluZyBvZiBlYWNoIGxpbmUgb3RoZXIgdGhhbiB0aGUgZmlyc3QuCiBOZXdsaW5lcyBhcmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4KCiBFeGFtcGxlczoKCiAgIG9wdGlvbmFsIGludDMyIGZvbyA9IDE7ICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGZvby4KICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBiYXIuCiAgIG9wdGlvbmFsIGludDMyIGJhciA9IDI7CgogICBvcHRpb25hbCBzdHJpbmcgYmF6ID0gMzsKICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBiYXouCiAgIC8vIEFub3RoZXIgbGluZSBhdHRhY2hlZCB0byBiYXouCgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIHF1eC4KICAgLy8KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIHF1eC4KICAgb3B0aW9uYWwgZG91YmxlIHF1eCA9IDQ7CgogICAvLyBEZXRhY2hlZCBjb21tZW50IGZvciBjb3JnZS4gVGhpcyBpcyBub3QgbGVhZGluZyBvciB0cmFpbGluZyBjb21tZW50cwogICAvLyB0byBxdXggb3IgY29yZ2UgYmVjYXVzZSB0aGVyZSBhcmUgYmxhbmsgbGluZXMgc2VwYXJhdGluZyBpdCBmcm9tCiAgIC8vIGJvdGguCgogICAvLyBEZXRhY2hlZCBjb21tZW50IGZvciBjb3JnZSBwYXJhZ3JhcGggMi4KCiAgIG9wdGlvbmFsIHN0cmluZyBjb3JnZSA9IDU7CiAgIC8qIEJsb2NrIGNvbW1lbnQgYXR0YWNoZWQKICAgICogdG8gY29yZ2UuICBMZWFkaW5nIGFzdGVyaXNrcwogICAgKiB3aWxsIGJlIHJlbW92ZWQuICovCiAgIC8qIEJsb2NrIGNvbW1lbnQgYXR0YWNoZWQgdG8KICAgICogZ3JhdWx0LiAqLwogICBvcHRpb25hbCBpbnQzMiBncmF1bHQgPSA2OwoKICAgLy8gaWdub3JlZCBkZXRhY2hlZCBjb21tZW50cy4KCg8KBwQTAwACAgQSBNQGBAwKDwoHBBMDAAICBRIE1AYNEwoPCgcEEwMAAgIB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Zi5GaWVsZE9wdGlvbnMY7d7ZAyABKA4yDi52b2x0aGEuQWNjZXNzUgZhY2Nlc3NCTAoab3JnLm9wZW5jb3JkLnZvbHRoYS5jb21tb25aLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9jb21tb25K9w4KBhIEEQA5AQqjBQoBDBIDEQASMrcEIENvcHlyaWdodCAoYykgMjAxNSwgR29vZ2xlIEluYy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KMl8gVGhpcyBmaWxlIGNvbnRhaW5zIGFubm90YXRpb24gZGVmaW5pdGlvbnMgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZQogYSBjb25maWd1cmF0aW9uIHRyZWUuCgoICgEIEgMTAEUKCQoCCAsSAxMARQoICgEIEgMUADMKCQoCCAESAxQAMwoICgECEgMWAA8KCQoCAwASAxgAKgoKCgIEABIEGgAcAQoKCgMEAAESAxoIEQoLCgQEAAIAEgMbBBMKDQoFBAACAAQSBBsEGhMKDAoFBAACAAUSAxsECgoMCgUEAAIAARIDGwsOCgwKBQQAAgADEgMbERIKCgoCBQASBB4AKgEKCgoDBQABEgMeBQsKKwoEBQACABIDIQQPGh4gcmVhZC13cml0ZSwgc3RvcmVkIGF0dHJpYnV0ZQoKDAoFBQACAAESAyEECgoMCgUFAAIAAhIDIQ0OCkoKBAUAAgESAyQEEho9IHJlYWQtb25seSBmaWVsZCwgc3RvcmVkIHdpdGggdGhlIG1vZGVsLCBjb3ZlcmVkIGJ5IGl0cyBoYXNoCgoMCgUFAAIBARIDJAQNCgwKBQUAAgECEgMkEBEKkQEKBAUAAgISAygEEhqDASBBIHJlYWQtb25seSBhdHRyaWJ1dGUgdGhhdCBpcyBub3Qgc3RvcmVkIGluIHRoZSBtb2RlbCwgbm90IGNvdmVyZWQKIGJ5IGl0cyBoYXNoLCBpdHMgdmFsdWUgaXMgZmlsbGVkIHJlYWwtdGltZSB1cG9uIGVhY2ggcmVxdWVzdC4KCgwKBQUAAgIBEgMoBA0KDAoFBQACAgISAygQEQoJCgEHEgQsADkBCowCCgIHABIDMgQjGoACIElmIHByZXNlbnQsIGl0IGluZGljYXRlcyB0aGF0IHRoaXMgZmllbGQgaXMgc3RvcmVkIGFzIGV4dGVybmFsIGNoaWxkIG5vZGUKIG9yIGNoaWxkcmVuIG5vZGVzIGluIFZvbHRoYSdzIGludGVybmFsIGNvbmZpZ3VyYXRpb24gdHJlZS4KIElmIHRoZSBmaWVsZCBpcyBhIGNvbnRhaW5lciBmaWVsZCBhbmQgaWYgdGhlIG9wdGlvbiBzcGVjaWZpZXMgYSBrZXkKIHRoZSBjaGlsZCBvYmplY3RzIHdpbGwgYmUgYWRkcmVzc2libGUgYnkgdGhhdCBrZXkuCgoKCgMHAAISAywHIwoLCgMHAAQSBDIELCUKCgoDBwAGEgMyBA0KCgoDBwABEgMyDhgKCgoDBwADEgMyGyIKnAIKAgcBEgM4BBwakAIgVGhpcyBhbm5vdGF0aW9uIGNhbiBiZSB1c2VkIHRvIGluZGljYXRlIHRoYXQgYSBmaWVsZCBpcyByZWFkLW9ubHksCiBmcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiBOQkkgYWNjZXNzLiBCYWNrZW5kIHBsdWdpbnMgYW5kIHN5c3RlbQogaW50ZXJuYWxzIGNhbiB1cGRhdGUgdGhlIGZpZWxkIGJ1dCB0aGUgdXBkYXRlIHJlcXVlc3RzIHRocm91Z2ggdGhlCiBOQkkgd2lsbCBpZ25vcmUgZm9yIGluc3RhbmNlIGEgZmllbGQgdGhhdCBpcyBtYXJrZWQgYXMgcmVhZC1vbmx5IChSTykuCgoKCgMHAQISAywHIwoLCgMHAQQSBDgEMiMKCgoDBwEGEgM4BAoKCgoDBwEBEgM4CxEKCgoDBwEDEgM4FBtiBnByb3RvMwrhLAoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjYKA0FueRIZCgh0eXBlX3VybBgBIAEoCVIHdHlwZVVybBIUCgV2YWx1ZRgCIAEoDFIFdmFsdWVCbwoTY29tLmdvb2dsZS5wcm90b2J1ZkIIQW55UHJvdG9QAVolZ2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHR5cGVzL2FueaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0qBKwoHEgUeAJoBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAPAoJCgIICxIDIwA8CggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUAKQoJCgIICBIDJQApCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCuQQCgIEABIFeQCaAQEa1hAgYEFueWAgY29udGFpbnMgYW4gYXJiaXRyYXJ5IHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UgYWxvbmcgd2l0aCBhCiBVUkwgdGhhdCBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQgbWVzc2FnZS4KCiBQcm90b2J1ZiBsaWJyYXJ5IHByb3ZpZGVzIHN1cHBvcnQgdG8gcGFjay91bnBhY2sgQW55IHZhbHVlcyBpbiB0aGUgZm9ybQogb2YgdXRpbGl0eSBmdW5jdGlvbnMgb3IgYWRkaXRpb25hbCBnZW5lcmF0ZWQgbWV0aG9kcyBvZiB0aGUgQW55IHR5cGUuCgogRXhhbXBsZSAxOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEMrKy4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55OwogICAgIGFueS5QYWNrRnJvbShmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuVW5wYWNrVG8oJmZvbykpIHsKICAgICAgIC4uLgogICAgIH0KCiBFeGFtcGxlIDI6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gSmF2YS4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55ID0gQW55LnBhY2soZm9vKTsKICAgICAuLi4KICAgICBpZiAoYW55LmlzKEZvby5jbGFzcykpIHsKICAgICAgIGZvbyA9IGFueS51bnBhY2soRm9vLmNsYXNzKTsKICAgICB9CgogIEV4YW1wbGUgMzogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBQeXRob24uCgogICAgIGZvbyA9IEZvbyguLi4pCiAgICAgYW55ID0gQW55KCkKICAgICBhbnkuUGFjayhmb28pCiAgICAgLi4uCiAgICAgaWYgYW55LklzKEZvby5ERVNDUklQVE9SKToKICAgICAgIGFueS5VbnBhY2soZm9vKQogICAgICAgLi4uCgogIEV4YW1wbGUgNDogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBHbwoKICAgICAgZm9vIDo9ICZwYi5Gb297Li4ufQogICAgICBhbnksIGVyciA6PSBwdHlwZXMuTWFyc2hhbEFueShmb28pCiAgICAgIC4uLgogICAgICBmb28gOj0gJnBiLkZvb3t9CiAgICAgIGlmIGVyciA6PSBwdHlwZXMuVW5tYXJzaGFsQW55KGFueSwgZm9vKTsgZXJyICE9IG5pbCB7CiAgICAgICAgLi4uCiAgICAgIH0KCiBUaGUgcGFjayBtZXRob2RzIHByb3ZpZGVkIGJ5IHByb3RvYnVmIGxpYnJhcnkgd2lsbCBieSBkZWZhdWx0IHVzZQogJ3R5cGUuZ29vZ2xlYXBpcy5jb20vZnVsbC50eXBlLm5hbWUnIGFzIHRoZSB0eXBlIFVSTCBhbmQgdGhlIHVucGFjawogbWV0aG9kcyBvbmx5IHVzZSB0aGUgZnVsbHkgcXVhbGlmaWVkIHR5cGUgbmFtZSBhZnRlciB0aGUgbGFzdCAnLycKIGluIHRoZSB0eXBlIFVSTCwgZm9yIGV4YW1wbGUgImZvby5iYXIuY29tL3gveS56IiB3aWxsIHlpZWxkIHR5cGUKIG5hbWUgInkueiIuCgoKIEpTT04KID09PT0KIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIGFuIGBBbnlgIHZhbHVlIHVzZXMgdGhlIHJlZ3VsYXIKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXNlcmlhbGl6ZWQsIGVtYmVkZGVkIG1lc3NhZ2UsIHdpdGggYW4KIGFkZGl0aW9uYWwgZmllbGQgYEB0eXBlYCB3aGljaCBjb250YWlucyB0aGUgdHlwZSBVUkwuIEV4YW1wbGU6CgogICAgIHBhY2thZ2UgZ29vZ2xlLnByb2ZpbGU7CiAgICAgbWVzc2FnZSBQZXJzb24gewogICAgICAgc3RyaW5nIGZpcnN0X25hbWUgPSAxOwogICAgICAgc3RyaW5nIGxhc3RfbmFtZSA9IDI7CiAgICAgfQoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvZmlsZS5QZXJzb24iLAogICAgICAgImZpcnN0TmFtZSI6IDxzdHJpbmc+LAogICAgICAgImxhc3ROYW1lIjogPHN0cmluZz4KICAgICB9CgogSWYgdGhlIGVtYmVkZGVkIG1lc3NhZ2UgdHlwZSBpcyB3ZWxsLWtub3duIGFuZCBoYXMgYSBjdXN0b20gSlNPTgogcmVwcmVzZW50YXRpb24sIHRoYXQgcmVwcmVzZW50YXRpb24gd2lsbCBiZSBlbWJlZGRlZCBhZGRpbmcgYSBmaWVsZAogYHZhbHVlYCB3aGljaCBob2xkcyB0aGUgY3VzdG9tIEpTT04gaW4gYWRkaXRpb24gdG8gdGhlIGBAdHlwZWAKIGZpZWxkLiBFeGFtcGxlIChmb3IgbWVzc2FnZSBbZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uXVtdKToKCiAgICAgewogICAgICAgIkB0eXBlIjogInR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uIiwKICAgICAgICJ2YWx1ZSI6ICIxLjIxMnMiCiAgICAgfQoKCgoKAwQAARIDeQgLCtcKCgQEAAIAEgSWAQIWGsgKIEEgVVJML3Jlc291cmNlIG5hbWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkCiBwcm90b2NvbCBidWZmZXIgbWVzc2FnZS4gVGhpcyBzdHJpbmcgbXVzdCBjb250YWluIGF0IGxlYXN0CiBvbmUgIi8iIGNoYXJhY3Rlci4gVGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgVVJMJ3MgcGF0aCBtdXN0IHJlcHJlc2VudAogdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZSB0eXBlIChhcyBpbgogYHBhdGgvZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uYCkuIFRoZSBuYW1lIHNob3VsZCBiZSBpbiBhIGNhbm9uaWNhbCBmb3JtCiAoZS5nLiwgbGVhZGluZyAiLiIgaXMgbm90IGFjY2VwdGVkKS4KCiBJbiBwcmFjdGljZSwgdGVhbXMgdXN1YWxseSBwcmVjb21waWxlIGludG8gdGhlIGJpbmFyeSBhbGwgdHlwZXMgdGhhdCB0aGV5CiBleHBlY3QgaXQgdG8gdXNlIGluIHRoZSBjb250ZXh0IG9mIEFueS4gSG93ZXZlciwgZm9yIFVSTHMgd2hpY2ggdXNlIHRoZQogc2NoZW1lIGBodHRwYCwgYGh0dHBzYCwgb3Igbm8gc2NoZW1lLCBvbmUgY2FuIG9wdGlvbmFsbHkgc2V0IHVwIGEgdHlwZQogc2VydmVyIHRoYXQgbWFwcyB0eXBlIFVSTHMgdG8gbWVzc2FnZSBkZWZpbml0aW9ucyBhcyBmb2xsb3dzOgoKICogSWYgbm8gc2NoZW1lIGlzIHByb3ZpZGVkLCBgaHR0cHNgIGlzIGFzc3VtZWQuCiAqIEFuIEhUVFAgR0VUIG9uIHRoZSBVUkwgbXVzdCB5aWVsZCBhIFtnb29nbGUucHJvdG9idWYuVHlwZV1bXQogICB2YWx1ZSBpbiBiaW5hcnkgZm9ybWF0LCBvciBwcm9kdWNlIGFuIGVycm9yLgogKiBBcHBsaWNhdGlvbnMgYXJlIGFsbG93ZWQgdG8gY2FjaGUgbG9va3VwIHJlc3VsdHMgYmFzZWQgb24gdGhlCiAgIFVSTCwgb3IgaGF2ZSB0aGVtIHByZWNvbXBpbGVkIGludG8gYSBiaW5hcnkgdG8gYXZvaWQgYW55CiAgIGxvb2t1cC4gVGhlcmVmb3JlLCBiaW5hcnkgY29tcGF0aWJpbGl0eSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQKICAgb24gY2hhbmdlcyB0byB0eXBlcy4gKFVzZSB2ZXJzaW9uZWQgdHlwZSBuYW1lcyB0byBtYW5hZ2UKICAgYnJlYWtpbmcgY2hhbmdlcy4pCgogTm90ZTogdGhpcyBmdW5jdGlvbmFsaXR5IGlzIG5vdCBjdXJyZW50bHkgYXZhaWxhYmxlIGluIHRoZSBvZmZpY2lhbAogcHJvdG9idWYgcmVsZWFzZSwgYW5kIGl0IGlzIG5vdCB1c2VkIGZvciB0eXBlIFVSTHMgYmVnaW5uaW5nIHdpdGgKIHR5cGUuZ29vZ2xlYXBpcy5jb20uCgogU2NoZW1lcyBvdGhlciB0aGFuIGBodHRwYCwgYGh0dHBzYCAob3IgdGhlIGVtcHR5IHNjaGVtZSkgbWlnaHQgYmUKIHVzZWQgd2l0aCBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBzZW1hbnRpY3MuCgoKDgoFBAACAAQSBZYBAnkNCg0KBQQAAgAFEgSWAQIICg0KBQQAAgABEgSWAQkRCg0KBQQAAgADEgSWARQVClcKBAQAAgESBJkBAhIaSSBNdXN0IGJlIGEgdmFsaWQgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgb2YgdGhlIGFib3ZlIHNwZWNpZmllZCB0eXBlLgoKDwoFBAACAQQSBpkBApYBFgoNCgUEAAIBBRIEmQECBwoNCgUEAAIBARIEmQEIDQoNCgUEAAIBAxIEmQEQEWIGcHJvdG8zCvoSCht2b2x0aGFfcHJvdG9zL2FkYXB0ZXIucHJvdG8SBnZvbHRoYRoYdm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvIlIKDUFkYXB0ZXJDb25maWcSQQoRYWRkaXRpb25hbF9jb25maWcYQCABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UhBhZGRpdGlvbmFsQ29uZmlnIr4DCgdBZGFwdGVyEhUKAmlkGAEgASgJQgXo9s0dAVICaWQSHQoGdmVuZG9yGAIgASgJQgXo9s0dAVIGdmVuZG9yEh8KB3ZlcnNpb24YAyABKAlCBej2zR0BUgd2ZXJzaW9uEi0KBmNvbmZpZxgQIAEoCzIVLnZvbHRoYS5BZGFwdGVyQ29uZmlnUgZjb25m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CgoMCgUEAQIJARIDKQsTCgwKBQQBAgkDEgMpFhcKdwoEBAECChIDLAQUGmogYWxsIHJlcGxpY2FzIG9mIHRoZSBzYW1lIGFkYXB0ZXIgd2lsbCBoYXZlIHRoZSBzYW1lIHR5cGUKIGl0IGlzIHVzZWQgdG8gYXNzb2NpYXRlIGEgZGV2aWNlIHRvIGFuIGFkYXB0ZXIKCg0KBQQBAgoEEgQsBCkYCgwKBQQBAgoFEgMsBAoKDAoFBAECCgESAywLDwoMCgUEAQIKAxIDLBITCgoKAgQCEgQwADIBCgoKAwQCARIDMAgQCgsKBAQCAgASAzEEHwoMCgUEAgIABBIDMQQMCgwKBQQCAgAGEgMxDRQKDAoFBAICAAESAzEVGgoMCgUEAgIAAxIDMR0eYgZwcm90bzMKuBIKG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIgcKBUVtcHR5QnYKE2NvbS5nb29nbGUucHJvdG9idWZCCkVtcHR5UHJvdG9QAVonZ2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHR5cGVzL2VtcHR5+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSv4QCgYSBB4AMxAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAD4KCQoCCAsSAyMAPgoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlACsKCQoCCAgSAyUAKwoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQoICgEIEgMoAB8KCQoCCB8SAygAHwr7AgoCBAASAzMAEBrvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEVtcHR5YCBpcyBlbXB0eSBKU09OIG9iamVjdCBge31gLgoKCgoDBAABEgMzCA1iBnByb3RvMwqaIwoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8SBmNvbW1vbiIUCgJJRBIOCgJpZBgBIAEoCVICaWQiJwoDSURzEiAKBWl0ZW1zGAEgAygLMgouY29tbW9uLklEUgVpdGVtcyJoCgpBZG1pblN0YXRlIloKBVR5cGVzEgsKB1VOS05PV04QABISCg5QUkVQUk9WSVNJT05FRBABEgsKB0VOQUJMRUQQAhIMCghESVNBQkxFRBADEhUKEURPV05MT0FESU5HX0lNQUdFEAQikQEKCk9wZXJTdGF0dXMiggEKBVR5cGVzEgsKB1VOS05PV04QABIOCgpESVNDT1ZFUkVEEAESDgoKQUNUSVZBVElORxACEgsKB1RFU1RJTkcQAxIKCgZBQ1RJVkUQBBIKCgZGQUlMRUQQBRIPCgtSRUNPTkNJTElORxAGEhYKElJFQ09OQ0lMSU5HX0ZBSUxFRBAHIkUKDUNvbm5lY3RTdGF0dXMiNAoFVHlwZXMSCwoHVU5LTk9XThAAEg8KC1VOUkVBQ0hBQkxFEAESDQoJUkVBQ0hBQkxFEAIi8gEKDU9wZXJhdGlvblJlc3ASPQoEY29kZRgBIAEoDjIpLmNvbW1vbi5PcGVyYXRpb25SZXNwLk9wZXJhdGlvblJldHVybkNvZGVSBGNvZGUSJwoPYWRkaXRpb25hbF9pbmZvGAIgASgJUg5hZGRpdGlvbmFsSW5mbyJ5ChNPcGVyYXRpb25SZXR1cm5Db2RlEhUKEU9QRVJBVElPTl9TVUNDRVNTEAASFQoRT1BFUkFUSU9OX0ZBSUxVUkUQARIZChVPUEVSQVRJT05fVU5TVVBQT1JURUQQAhIZChVPUEVSQVRJT05fSU5fUFJPR1JFU1MQAyIsCglWYWx1ZVR5cGUiHwoEVHlwZRIJCgVFTVBUWRAAEgwKCERJU1RBTkNFEAEiTgoOVmFsdWVTcGVjaWZpZXISDgoCaWQYASABKAlSAmlkEiwKBXZhbHVlGAIgASgOMhYuY29tbW9uLlZhbHVlVHlwZS5UeXBlUgV2YWx1ZSJ0CgxSZXR1cm5WYWx1ZXMSEAoDU2V0GAEgASgNUgNTZXQSIAoLVW5zdXBwb3J0ZWQYAiABKA1SC1Vuc3VwcG9ydGVkEhQKBUVycm9yGAMgASgNUgVFcnJvchIaCghEaXN0YW5jZRgEIAEoDVIIRGlzdGFuY2UqHAoMVGVzdE1vZGVL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LnByb3RvEgpnb29nbGUuYXBpInkKBEh0dHASKgoFcnVsZXMYASADKAsyFC5nb29nbGUuYXBpLkh0dHBSdWxlUgVydWxlcxJFCh9mdWxseV9kZWNvZGVfcmVzZXJ2ZWRfZXhwYW5zaW9uGAIgASgIUhxmdWxseURlY29kZVJlc2VydmVkRXhwYW5zaW9uItoCCghIdHRwUnVsZRIaCghzZWxlY3RvchgBIAEoCVIIc2VsZWN0b3ISEgoDZ2V0GAIgASgJSABSA2dldBISCgNwdXQYAyABKAlIAFIDcHV0EhQKBHBvc3QYBCABKAlIAFIEcG9zdBIYCgZkZWxldGUYBSABKAlIAFIGZGVsZXRlEhYKBXBhdGNoGAYgASgJSABSBXBhdGNoEjcKBmN1c3RvbRgIIAEoCzIdLmdvb2dsZS5hcGkuQ3VzdG9tSHR0cFBhdHRlcm5IAFIGY3VzdG9tEhIKBGJvZHkYByABKAlSBGJvZHkSIwoNcmVzcG9uc2VfYm9keRgMIAEoCVIMcmVzcG9uc2VCb2R5EkUKE2FkZGl0aW9uYWxfYmluZGluZ3MYCyADKAsyFC5nb29nbGUuYXBpLkh0dHBSdWxlUhJhZGRpdGlvbmFsQmluZGluZ3NCCQoHcGF0dGVybiI7ChFDdXN0b21IdHRwUGF0dGVybhISCgRraW5kGAEgASgJUgRraW5kEhIKBHBhdGgYAiABKAlSBHBhdGhCagoOY29tLmdvb2dsZS5hcGlCCUh0dHBQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5vdGF0aW9uczthbm5vdGF0aW9uc/gBAaICBEdBUElKl3QKBxIFDwD7AgEKvgQKAQwSAw8AEjKzBCBDb3B5cmlnaHQgMjAxOCBHb29nbGUgTExDLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCggKAQISAxEAEwoICgEIEgMTAB8KCQoCCB8SAxMAHwoICgEIEgMUAFgKCQoCCAsSAxQAWAoICgEIEgMVACIKCQoCCAoSAxUAIgoICgEIEgMWACoKCQoCCAgSAxYAKgoICgEIEgMXACcKCQoCCAESAxcAJwoICgEIEgMYACIKCQoCCCQSAxgAIgrNAQoCBAASBB0AKgEawAEgRGVmaW5lcyB0aGUgSFRUUCBjb25maWd1cmF0aW9uIGZvciBhbiBBUEkgc2VydmljZS4gSXQgY29udGFpbnMgYSBsaXN0IG9mCiBbSHR0cFJ1bGVdW2dvb2dsZS5hcGkuSHR0cFJ1bGVdLCBlYWNoIHNwZWNpZnlpbmcgdGhlIG1hcHBpbmcgb2YgYW4gUlBDIG1ldGhvZAogdG8gb25lIG9yIG1vcmUgSFRUUCBSRVNUIEFQSSBtZXRob2RzLgoKCgoDBAABEgMdCAwKogEKBAQAAgASAyECHhqUASBBIGxpc3Qgb2YgSFRUUCBjb25maWd1cmF0aW9uIHJ1bGVzIHRoYXQgYXBwbHkgdG8gaW5kaXZpZHVhbCBBUEkgbWV0aG9kcy4KCiAqKk5PVEU6KiogQWxsIHNlcnZpY2UgY29uZmlndXJhdGlvbiBydWxlcyBmb2xsb3cgImxhc3Qgb25lIHdpbnMiIG9yZGVyLgoKDAoFBAACAAQSAyECCgoMCgUEAAIABhIDIQsTCgwKBQQAAgABEgMhFBkKDAoFBAACAAMSAyEcHQqTAgoEBAACARIDKQIrGoUCIFdoZW4gc2V0IHRvIHRydWUsIFVSTCBwYXRoIHBhcm1ldGVycyB3aWxsIGJlIGZ1bGx5IFVSSS1kZWNvZGVkIGV4Y2VwdCBpbgogY2FzZXMgb2Ygc2luZ2xlIHNlZ21lbnQgbWF0Y2hlcyBpbiByZXNlcnZlZCBleHBhbnNpb24sIHdoZXJlICIlMkYiIHdpbGwgYmUKIGxlZnQgZW5jb2RlZC4KCiBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBub3QgZGVjb2RlIFJGQyA2NTcwIHJlc2VydmVkIGNoYXJhY3RlcnMgaW4gbXVsdGkKIHNlZ21lbnQgbWF0Y2hlcy4KCg0KBQQAAgEEEgQpAiEeCgwKBQQAAgEFEgMpAgYKDAoFBAACAQESAykHJgoMCgUEAAIBAxIDKSkqCrtTCgIEARIGvAIA8gIBGqxTICMgZ1JQQyBUcmFuc2NvZGluZwoKIGdSUEMgVHJhbnNjb2RpbmcgaXMgYSBmZWF0dXJlIGZvciBtYXBwaW5nIGJldHdlZW4gYSBnUlBDIG1ldGhvZCBhbmQgb25lIG9yCiBtb3JlIEhUVFAgUkVTVCBlbmRwb2ludHMuIEl0IGFsbG93cyBkZXZlbG9wZXJzIHRvIGJ1aWxkIGEgc2luZ2xlIEFQSSBzZXJ2aWNlCiB0aGF0IHN1cHBvcnRzIGJvdGggZ1JQQyBBUElzIGFuZCBSRVNUIEFQSXMuIE1hbnkgc3lzdGVtcywgaW5jbHVkaW5nIFtHb29nbGUKIEFQSXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGVhcGlzL2dvb2dsZWFwaXMpLAogW0Nsb3VkIEVuZHBvaW50c10oaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2VuZHBvaW50cyksIFtnUlBDCiBHYXRld2F5XShodHRwczovL2dpdGh1Yi5jb20vZ3JwYy1lY29zeXN0ZW0vZ3JwYy1nYXRld2F5KSwKIGFuZCBbRW52b3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9lbnZveXByb3h5L2Vudm95KSBwcm94eSBzdXBwb3J0IHRoaXMgZmVhdHVyZQogYW5kIHVzZSBpdCBmb3IgbGFyZ2Ugc2NhbGUgcHJvZHVjdGlvbiBzZXJ2aWNlcy4KCiBgSHR0cFJ1bGVgIGRlZmluZXMgdGhlIHNjaGVtYSBvZiB0aGUgZ1JQQy9SRVNUIG1hcHBpbmcuIFRoZSBtYXBwaW5nIHNwZWNpZmllcwogaG93IGRpZmZlcmVudCBwb3J0aW9ucyBvZiB0aGUgZ1JQQyByZXF1ZXN0IG1lc3NhZ2UgYXJlIG1hcHBlZCB0byB0aGUgVVJMCiBwYXRoLCBVUkwgcXVlcnkgcGFyYW1ldGVycywgYW5kIEhUVFAgcmVxdWVzdCBib2R5LiBJdCBhbHNvIGNvbnRyb2xzIGhvdyB0aGUKIGdSUEMgcmVzcG9uc2UgbWVzc2FnZSBpcyBtYXBwZWQgdG8gdGhlIEhUVFAgcmVzcG9uc2UgYm9keS4gYEh0dHBSdWxlYCBpcwogdHlwaWNhbGx5IHNwZWNpZmllZCBhcyBhbiBgZ29vZ2xlLmFwaS5odHRwYCBhbm5vdGF0aW9uIG9uIHRoZSBnUlBDIG1ldGhvZC4KCiBFYWNoIG1hcHBpbmcgc3BlY2lmaWVzIGEgVVJMIHBhdGggdGVtcGxhdGUgYW5kIGFuIEhUVFAgbWV0aG9kLiBUaGUgcGF0aAogdGVtcGxhdGUgbWF5IHJlZmVyIHRvIG9uZSBvciBtb3JlIGZpZWxkcyBpbiB0aGUgZ1JQQyByZXF1ZXN0IG1lc3NhZ2UsIGFzIGxvbmcKIGFzIGVhY2ggZmllbGQgaXMgYSBub24tcmVwZWF0ZWQgZmllbGQgd2l0aCBhIHByaW1pdGl2ZSAobm9uLW1lc3NhZ2UpIHR5cGUuCiBUaGUgcGF0aCB0ZW1wbGF0ZSBjb250cm9scyBob3cgZmllbGRzIG9mIHRoZSByZXF1ZXN0IG1lc3NhZ2UgYXJlIG1hcHBlZCB0bwogdGhlIFVSTCBwYXRoLgoKIEV4YW1wbGU6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBHZXRNZXNzYWdlKEdldE1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICAgIGdldDogIi92MS97bmFtZT1tZXNzYWdlcy8qfSIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBHZXRNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBzdHJpbmcgbmFtZSA9IDE7IC8vIE1hcHBlZCB0byBVUkwgcGF0aC4KICAgICB9CiAgICAgbWVzc2FnZSBNZXNzYWdlIHsKICAgICAgIHN0cmluZyB0ZXh0ID0gMTsgLy8gVGhlIHJlc291cmNlIGNvbnRlbnQuCiAgICAgfQoKIFRoaXMgZW5hYmxlcyBhbiBIVFRQIFJFU1QgdG8gZ1JQQyBtYXBwaW5nIGFzIGJlbG93OgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYEdFVCAvdjEvbWVzc2FnZXMvMTIzNDU2YCAgfCBgR2V0TWVzc2FnZShuYW1lOiAibWVzc2FnZXMvMTIzNDU2IilgCgogQW55IGZpZWxkcyBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlIHdoaWNoIGFyZSBub3QgYm91bmQgYnkgdGhlIHBhdGggdGVtcGxhdGUKIGF1dG9tYXRpY2FsbHkgYmVjb21lIEhUVFAgcXVlcnkgcGFyYW1ldGVycyBpZiB0aGVyZSBpcyBubyBIVFRQIHJlcXVlc3QgYm9keS4KIEZvciBleGFtcGxlOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgR2V0TWVzc2FnZShHZXRNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgICBnZXQ6Ii92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgbWVzc2FnZSBTdWJNZXNzYWdlIHsKICAgICAgICAgc3RyaW5nIHN1YmZpZWxkID0gMTsKICAgICAgIH0KICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsgLy8gTWFwcGVkIHRvIFVSTCBwYXRoLgogICAgICAgaW50NjQgcmV2aXNpb24gPSAyOyAgICAvLyBNYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlciBgcmV2aXNpb25gLgogICAgICAgU3ViTWVzc2FnZSBzdWIgPSAzOyAgICAvLyBNYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlciBgc3ViLnN1YmZpZWxkYC4KICAgICB9CgogVGhpcyBlbmFibGVzIGEgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nIGFzIGJlbG93OgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYEdFVCAvdjEvbWVzc2FnZXMvMTIzNDU2P3JldmlzaW9uPTImc3ViLnN1YmZpZWxkPWZvb2AgfAogYEdldE1lc3NhZ2UobWVzc2FnZV9pZDogIjEyMzQ1NiIgcmV2aXNpb246IDIgc3ViOiBTdWJNZXNzYWdlKHN1YmZpZWxkOgogImZvbyIpKWAKCiBOb3RlIHRoYXQgZmllbGRzIHdoaWNoIGFyZSBtYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlcnMgbXVzdCBoYXZlIGEKIHByaW1pdGl2ZSB0eXBlIG9yIGEgcmVwZWF0ZWQgcHJpbWl0aXZlIHR5cGUgb3IgYSBub24tcmVwZWF0ZWQgbWVzc2FnZSB0eXBlLgogSW4gdGhlIGNhc2Ugb2YgYSByZXBlYXRlZCB0eXBlLCB0aGUgcGFyYW1ldGVyIGNhbiBiZSByZXBlYXRlZCBpbiB0aGUgVVJMCiBhcyBgLi4uP3BhcmFtPUEmcGFyYW09QmAuIEluIHRoZSBjYXNlIG9mIGEgbWVzc2FnZSB0eXBlLCBlYWNoIGZpZWxkIG9mIHRoZQogbWVzc2FnZSBpcyBtYXBwZWQgdG8gYSBzZXBhcmF0ZSBwYXJhbWV0ZXIsIHN1Y2ggYXMKIGAuLi4/Zm9vLmE9QSZmb28uYj1CJmZvby5jPUNgLgoKIEZvciBIVFRQIG1ldGhvZHMgdGhhdCBhbGxvdyBhIHJlcXVlc3QgYm9keSwgdGhlIGBib2R5YCBmaWVsZAogc3BlY2lmaWVzIHRoZSBtYXBwaW5nLiBDb25zaWRlciBhIFJFU1QgdXBkYXRlIG1ldGhvZCBvbiB0aGUKIG1lc3NhZ2UgcmVzb3VyY2UgY29sbGVjdGlvbjoKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIFVwZGF0ZU1lc3NhZ2UoVXBkYXRlTWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgIHBhdGNoOiAiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICBib2R5OiAibWVzc2FnZSIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBVcGRhdGVNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7IC8vIG1hcHBlZCB0byB0aGUgVVJMCiAgICAgICBNZXNzYWdlIG1lc3NhZ2UgPSAyOyAgIC8vIG1hcHBlZCB0byB0aGUgYm9keQogICAgIH0KCiBUaGUgZm9sbG93aW5nIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBpcyBlbmFibGVkLCB3aGVyZSB0aGUKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBKU09OIGluIHRoZSByZXF1ZXN0IGJvZHkgaXMgZGV0ZXJtaW5lZCBieQogcHJvdG9zIEpTT04gZW5jb2Rpbmc6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgUEFUQ0ggL3YxL21lc3NhZ2VzLzEyMzQ1NiB7ICJ0ZXh0IjogIkhpISIgfWAgfCBgVXBkYXRlTWVzc2FnZShtZXNzYWdlX2lkOgogIjEyMzQ1NiIgbWVzc2FnZSB7IHRleHQ6ICJIaSEiIH0pYAoKIFRoZSBzcGVjaWFsIG5hbWUgYCpgIGNhbiBiZSB1c2VkIGluIHRoZSBib2R5IG1hcHBpbmcgdG8gZGVmaW5lIHRoYXQKIGV2ZXJ5IGZpZWxkIG5vdCBib3VuZCBieSB0aGUgcGF0aCB0ZW1wbGF0ZSBzaG91bGQgYmUgbWFwcGVkIHRvIHRoZQogcmVxdWVzdCBib2R5LiAgVGhpcyBlbmFibGVzIHRoZSBmb2xsb3dpbmcgYWx0ZXJuYXRpdmUgZGVmaW5pdGlvbiBvZgogdGhlIHVwZGF0ZSBtZXRob2Q6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBVcGRhdGVNZXNzYWdlKE1lc3NhZ2UpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgIHBhdGNoOiAiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICBib2R5OiAiKiIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBNZXNzYWdlIHsKICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsKICAgICAgIHN0cmluZyB0ZXh0ID0gMjsKICAgICB9CgoKIFRoZSBmb2xsb3dpbmcgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nIGlzIGVuYWJsZWQ6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgUEFUQ0ggL3YxL21lc3NhZ2VzLzEyMzQ1NiB7ICJ0ZXh0IjogIkhpISIgfWAgfCBgVXBkYXRlTWVzc2FnZShtZXNzYWdlX2lkOgogIjEyMzQ1NiIgdGV4dDogIkhpISIpYAoKIE5vdGUgdGhhdCB3aGVuIHVzaW5nIGAqYCBpbiB0aGUgYm9keSBtYXBwaW5nLCBpdCBpcyBub3QgcG9zc2libGUgdG8KIGhhdmUgSFRUUCBwYXJhbWV0ZXJzLCBhcyBhbGwgZmllbGRzIG5vdCBib3VuZCBieSB0aGUgcGF0aCBlbmQgaW4KIHRoZSBib2R5LiBUaGlzIG1ha2VzIHRoaXMgb3B0aW9uIG1vcmUgcmFyZWx5IHVzZWQgaW4gcHJhY3RpY2Ugd2hlbgogZGVmaW5pbmcgUkVTVCBBUElzLiBUaGUgY29tbW9uIHVzYWdlIG9mIGAqYCBpcyBpbiBjdXN0b20gbWV0aG9kcwogd2hpY2ggZG9uJ3QgdXNlIHRoZSBVUkwgYXQgYWxsIGZvciB0cmFuc2ZlcnJpbmcgZGF0YS4KCiBJdCBpcyBwb3NzaWJsZSB0byBkZWZpbmUgbXVsdGlwbGUgSFRUUCBtZXRob2RzIGZvciBvbmUgUlBDIGJ5IHVzaW5nCiB0aGUgYGFkZGl0aW9uYWxfYmluZGluZ3NgIG9wdGlvbi4gRXhhbXBsZToKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIEdldE1lc3NhZ2UoR2V0TWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgIGdldDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYWRkaXRpb25hbF9iaW5kaW5ncyB7CiAgICAgICAgICAgICBnZXQ6ICIvdjEvdXNlcnMve3VzZXJfaWR9L21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICB9CiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOwogICAgICAgc3RyaW5nIHVzZXJfaWQgPSAyOwogICAgIH0KCiBUaGlzIGVuYWJsZXMgdGhlIGZvbGxvd2luZyB0d28gYWx0ZXJuYXRpdmUgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nczoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1NmAgfCBgR2V0TWVzc2FnZShtZXNzYWdlX2lkOiAiMTIzNDU2IilgCiBgR0VUIC92MS91c2Vycy9tZS9tZXNzYWdlcy8xMjM0NTZgIHwgYEdldE1lc3NhZ2UodXNlcl9pZDogIm1lIiBtZXNzYWdlX2lkOgogIjEyMzQ1NiIpYAoKICMjIFJ1bGVzIGZvciBIVFRQIG1hcHBpbmcKCiAxLiBMZWFmIHJlcXVlc3QgZmllbGRzIChyZWN1cnNpdmUgZXhwYW5zaW9uIG5lc3RlZCBtZXNzYWdlcyBpbiB0aGUgcmVxdWVzdAogICAgbWVzc2FnZSkgYXJlIGNsYXNzaWZpZWQgaW50byB0aHJlZSBjYXRlZ29yaWVzOgogICAgLSBGaWVsZHMgcmVmZXJyZWQgYnkgdGhlIHBhdGggdGVtcGxhdGUuIFRoZXkgYXJlIHBhc3NlZCB2aWEgdGhlIFVSTCBwYXRoLgogICAgLSBGaWVsZHMgcmVmZXJyZWQgYnkgdGhlIFtIdHRwUnVsZS5ib2R5XVtnb29nbGUuYXBpLkh0dHBSdWxlLmJvZHldLiBUaGV5CiAgICBhcmUgcGFzc2VkIHZpYSB0aGUgSFRUUAogICAgICByZXF1ZXN0IGJvZHkuCiAgICAtIEFsbCBvdGhlciBmaWVsZHMgYXJlIHBhc3NlZCB2aWEgdGhlIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLCBhbmQgdGhlCiAgICAgIHBhcmFtZXRlciBuYW1lIGlzIHRoZSBmaWVsZCBwYXRoIGluIHRoZSByZXF1ZXN0IG1lc3NhZ2UuIEEgcmVwZWF0ZWQKICAgICAgZmllbGQgY2FuIGJlIHJlcHJlc2VudGVkIGFzIG11bHRpcGxlIHF1ZXJ5IHBhcmFtZXRlcnMgdW5kZXIgdGhlIHNhbWUKICAgICAgbmFtZS4KICAyLiBJZiBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XSBpcyAiKiIsIHRoZXJlIGlzIG5vIFVSTAogIHF1ZXJ5IHBhcmFtZXRlciwgYWxsIGZpZWxkcwogICAgIGFyZSBwYXNzZWQgdmlhIFVSTCBwYXRoIGFuZCBIVFRQIHJlcXVlc3QgYm9keS4KICAzLiBJZiBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XSBpcyBvbWl0dGVkLCB0aGVyZSBpcyBubyBIVFRQCiAgcmVxdWVzdCBib2R5LCBhbGwKICAgICBmaWVsZHMgYXJlIHBhc3NlZCB2aWEgVVJMIHBhdGggYW5kIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLgoKICMjIyBQYXRoIHRlbXBsYXRlIHN5bnRheAoKICAgICBUZW1wbGF0ZSA9ICIvIiBTZWdtZW50cyBbIFZlcmIgXSA7CiAgICAgU2VnbWVudHMgPSBTZWdtZW50IHsgIi8iIFNlZ21lbnQgfSA7CiAgICAgU2VnbWVudCAgPSAiKiIgfCAiKioiIHwgTElURVJBTCB8IFZhcmlhYmxlIDsKICAgICBWYXJpYWJsZSA9ICJ7IiBGaWVsZFBhdGggWyAiPSIgU2VnbWVudHMgXSAifSIgOwogICAgIEZpZWxkUGF0aCA9IElERU5UIHsgIi4iIElERU5UIH0gOwogICAgIFZlcmIgICAgID0gIjoiIExJVEVSQUwgOwoKIFRoZSBzeW50YXggYCpgIG1hdGNoZXMgYSBzaW5nbGUgVVJMIHBhdGggc2VnbWVudC4gVGhlIHN5bnRheCBgKipgIG1hdGNoZXMKIHplcm8gb3IgbW9yZSBVUkwgcGF0aCBzZWdtZW50cywgd2hpY2ggbXVzdCBiZSB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBVUkwgcGF0aAogZXhjZXB0IHRoZSBgVmVyYmAuCgogVGhlIHN5bnRheCBgVmFyaWFibGVgIG1hdGNoZXMgcGFydCBvZiB0aGUgVVJMIHBhdGggYXMgc3BlY2lmaWVkIGJ5IGl0cwogdGVtcGxhdGUuIEEgdmFyaWFibGUgdGVtcGxhdGUgbXVzdCBub3QgY29udGFpbiBvdGhlciB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUKIG1hdGNoZXMgYSBzaW5nbGUgcGF0aCBzZWdtZW50LCBpdHMgdGVtcGxhdGUgbWF5IGJlIG9taXR0ZWQsIGUuZy4gYHt2YXJ9YAogaXMgZXF1aXZhbGVudCB0byBge3Zhcj0qfWAuCgogVGhlIHN5bnRheCBgTElURVJBTGAgbWF0Y2hlcyBsaXRlcmFsIHRleHQgaW4gdGhlIFVSTCBwYXRoLiBJZiB0aGUgYExJVEVSQUxgCiBjb250YWlucyBhbnkgcmVzZXJ2ZWQgY2hhcmFjdGVyLCBzdWNoIGNoYXJhY3RlcnMgc2hvdWxkIGJlIHBlcmNlbnQtZW5jb2RlZAogYmVmb3JlIHRoZSBtYXRjaGluZy4KCiBJZiBhIHZhcmlhYmxlIGNvbnRhaW5zIGV4YWN0bHkgb25lIHBhdGggc2VnbWVudCwgc3VjaCBhcyBgInt2YXJ9ImAgb3IKIGAie3Zhcj0qfSJgLCB3aGVuIHN1Y2ggYSB2YXJpYWJsZSBpcyBleHBhbmRlZCBpbnRvIGEgVVJMIHBhdGggb24gdGhlIGNsaWVudAogc2lkZSwgYWxsIGNoYXJhY3RlcnMgZXhjZXB0IGBbLV8ufjAtOWEtekEtWl1gIGFyZSBwZXJjZW50LWVuY29kZWQuIFRoZQogc2VydmVyIHNpZGUgZG9lcyB0aGUgcmV2ZXJzZSBkZWNvZGluZy4gU3VjaCB2YXJpYWJsZXMgc2hvdyB1cCBpbiB0aGUKIFtEaXNjb3ZlcnkKIERvY3VtZW50XShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9kaXNjb3ZlcnkvdjEvcmVmZXJlbmNlL2FwaXMpIGFzCiBge3Zhcn1gLgoKIElmIGEgdmFyaWFibGUgY29udGFpbnMgbXVsdGlwbGUgcGF0aCBzZWdtZW50cywgc3VjaCBhcyBgInt2YXI9Zm9vLyp9ImAKIG9yIGAie3Zhcj0qKn0iYCwgd2hlbiBzdWNoIGEgdmFyaWFibGUgaXMgZXhwYW5kZWQgaW50byBhIFVSTCBwYXRoIG9uIHRoZQogY2xpZW50IHNpZGUsIGFsbCBjaGFyYWN0ZXJzIGV4Y2VwdCBgWy1fLn4vMC05YS16QS1aXWAgYXJlIHBlcmNlbnQtZW5jb2RlZC4KIFRoZSBzZXJ2ZXIgc2lkZSBkb2VzIHRoZSByZXZlcnNlIGRlY29kaW5nLCBleGNlcHQgIiUyRiIgYW5kICIlMmYiIGFyZSBsZWZ0CiB1bmNoYW5nZWQuIFN1Y2ggdmFyaWFibGVzIHNob3cgdXAgaW4gdGhlCiBbRGlzY292ZXJ5CiBEb2N1bWVudF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vZGlzY292ZXJ5L3YxL3JlZmVyZW5jZS9hcGlzKSBhcwogYHsrdmFyfWAuCgogIyMgVXNpbmcgZ1JQQyBBUEkgU2VydmljZSBDb25maWd1cmF0aW9uCgogZ1JQQyBBUEkgU2VydmljZSBDb25maWd1cmF0aW9uIChzZXJ2aWNlIGNvbmZpZykgaXMgYSBjb25maWd1cmF0aW9uIGxhbmd1YWdlCiBmb3IgY29uZmlndXJpbmcgYSBnUlBDIHNlcnZpY2UgdG8gYmVjb21lIGEgdXNlci1mYWNpbmcgcHJvZHVjdC4gVGhlCiBzZXJ2aWNlIGNvbmZpZyBpcyBzaW1wbHkgdGhlIFlBTUwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGBnb29nbGUuYXBpLlNlcnZpY2VgCiBwcm90byBtZXNzYWdlLgoKIEFzIGFuIGFsdGVybmF0aXZlIHRvIGFubm90YXRpbmcgeW91ciBwcm90byBmaWxlLCB5b3UgY2FuIGNvbmZpZ3VyZSBnUlBDCiB0cmFuc2NvZGluZyBpbiB5b3VyIHNlcnZpY2UgY29uZmlnIFlBTUwgZmlsZXMuIFlvdSBkbyB0aGlzIGJ5IHNwZWNpZnlpbmcgYQogYEh0dHBSdWxlYCB0aGF0IG1hcHMgdGhlIGdSUEMgbWV0aG9kIHRvIGEgUkVTVCBlbmRwb2ludCwgYWNoaWV2aW5nIHRoZSBzYW1lCiBlZmZlY3QgYXMgdGhlIHByb3RvIGFubm90YXRpb24uIFRoaXMgY2FuIGJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaWYgeW91CiBoYXZlIGEgcHJvdG8gdGhhdCBpcyByZXVzZWQgaW4gbXVsdGlwbGUgc2VydmljZXMuIE5vdGUgdGhhdCBhbnkgdHJhbnNjb2RpbmcKIHNwZWNpZmllZCBpbiB0aGUgc2VydmljZSBjb25maWcgd2lsbCBvdmVycmlkZSBhbnkgbWF0Y2hpbmcgdHJhbnNjb2RpbmcKIGNvbmZpZ3VyYXRpb24gaW4gdGhlIHByb3RvLgoKIEV4YW1wbGU6CgogICAgIGh0dHA6CiAgICAgICBydWxlczoKICAgICAgICAgIyBTZWxlY3RzIGEgZ1JQQyBtZXRob2QgYW5kIGFwcGxpZXMgSHR0cFJ1bGUgdG8gaXQuCiAgICAgICAgIC0gc2VsZWN0b3I6IGV4YW1wbGUudjEuTWVzc2FnaW5nLkdldE1lc3NhZ2UKICAgICAgICAgICBnZXQ6IC92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0ve3N1Yi5zdWJmaWVsZH0KCiAjIyBTcGVjaWFsIG5vdGVzCgogV2hlbiBnUlBDIFRyYW5zY29kaW5nIGlzIHVzZWQgdG8gbWFwIGEgZ1JQQyB0byBKU09OIFJFU1QgZW5kcG9pbnRzLCB0aGUKIHByb3RvIHRvIEpTT04gY29udmVyc2lvbiBtdXN0IGZvbGxvdyB0aGUgW3Byb3RvMwogc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvMyNqc29uKS4KCiBXaGlsZSB0aGUgc2luZ2xlIHNlZ21lbnQgdmFyaWFibGUgZm9sbG93cyB0aGUgc2VtYW50aWNzIG9mCiBbUkZDIDY1NzBdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTcwKSBTZWN0aW9uIDMuMi4yIFNpbXBsZSBTdHJpbmcKIEV4cGFuc2lvbiwgdGhlIG11bHRpIHNlZ21lbnQgdmFyaWFibGUgKipkb2VzIG5vdCoqIGZvbGxvdyBSRkMgNjU3MCBTZWN0aW9uCiAzLjIuMyBSZXNlcnZlZCBFeHBhbnNpb24uIFRoZSByZWFzb24gaXMgdGhhdCB0aGUgUmVzZXJ2ZWQgRXhwYW5zaW9uCiBkb2VzIG5vdCBleHBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzIGxpa2UgYD9gIGFuZCBgI2AsIHdoaWNoIHdvdWxkIGxlYWQKIHRvIGludmFsaWQgVVJMcy4gQXMgdGhlIHJlc3VsdCwgZ1JQQyBUcmFuc2NvZGluZyB1c2VzIGEgY3VzdG9tIGVuY29kaW5nCiBmb3IgbXVsdGkgc2VnbWVudCB2YXJpYWJsZXMuCgogVGhlIHBhdGggdmFyaWFibGVzICoqbXVzdCBub3QqKiByZWZlciB0byBhbnkgcmVwZWF0ZWQgb3IgbWFwcGVkIGZpZWxkLAogYmVjYXVzZSBjbGllbnQgbGlicmFyaWVzIGFyZSBub3QgY2FwYWJsZSBvZiBoYW5kbGluZyBzdWNoIHZhcmlhYmxlIGV4cGFuc2lvbi4KCiBUaGUgcGF0aCB2YXJpYWJsZXMgKiptdXN0IG5vdCoqIGNhcHR1cmUgdGhlIGxlYWRpbmcgIi8iIGNoYXJhY3Rlci4gVGhlIHJlYXNvbgogaXMgdGhhdCB0aGUgbW9zdCBjb21tb24gdXNlIGNhc2UgInt2YXJ9IiBkb2VzIG5vdCBjYXB0dXJlIHRoZSBsZWFkaW5nICIvIgogY2hhcmFjdGVyLiBGb3IgY29uc2lzdGVuY3ksIGFsbCBwYXRoIHZhcmlhYmxlcyBtdXN0IHNoYXJlIHRoZSBzYW1lIGJlaGF2aW9yLgoKIFJlcGVhdGVkIG1lc3NhZ2UgZmllbGRzIG11c3Qgbm90IGJlIG1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVycywgYmVjYXVzZQogbm8gY2xpZW50IGxpYnJhcnkgY2FuIHN1cHBvcnQgc3VjaCBjb21wbGljYXRlZCBtYXBwaW5nLgoKIElmIGFuIEFQSSBuZWVkcyB0byB1c2UgYSBKU09OIGFycmF5IGZvciByZXF1ZXN0IG9yIHJlc3BvbnNlIGJvZHksIGl0IGNhbiBtYXAKIHRoZSByZXF1ZXN0IG9yIHJlc3BvbnNlIGJvZHkgdG8gYSByZXBlYXRlZCBmaWVsZC4gSG93ZXZlciwgc29tZSBnUlBDCiBUcmFuc2NvZGluZyBpbXBsZW1lbnRhdGlvbnMgbWF5IG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS4KCgsKAwQBARIEvAIIEAqPAQoEBAECABIEwQICFhqAASBTZWxlY3RzIGEgbWV0aG9kIHRvIHdoaWNoIHRoaXMgcnVsZSBhcHBsaWVzLgoKIFJlZmVyIHRvIFtzZWxlY3Rvcl1bZ29vZ2xlLmFwaS5Eb2N1bWVudGF0aW9uUnVsZS5zZWxlY3Rvcl0gZm9yIHN5bnRheAogZGV0YWlscy4KCg8KBQQBAgAEEgbBAgK8AhIKDQoFBAECAAUSBMECAggKDQoFBAECAAESBMECCREKDQoFBAECAAMSBMECFBUK0AEKBAQBCAASBsYCAtwCAxq/ASBEZXRlcm1pbmVzIHRoZSBVUkwgcGF0dGVybiBpcyBtYXRjaGVkIGJ5IHRoaXMgcnVsZXMuIFRoaXMgcGF0dGVybiBjYW4gYmUKIHVzZWQgd2l0aCBhbnkgb2YgdGhlIHtnZXR8cHV0fHBvc3R8ZGVsZXRlfHBhdGNofSBtZXRob2RzLiBBIGN1c3RvbSBtZXRob2QKIGNhbiBiZSBkZWZpbmVkIHVzaW5nIHRoZSAnY3VzdG9tJyBmaWVsZC4KCg0KBQQBCAABEgTGAggPClwKBAQBAgESBMkCBBMaTiBNYXBzIHRvIEhUVFAgR0VULiBVc2VkIGZvciBsaXN0aW5nIGFuZCBnZXR0aW5nIGluZm9ybWF0aW9uIGFib3V0CiByZXNvdXJjZXMuCgoNCgUEAQIBBRIEyQIECgoNCgUEAQIBARIEyQILDgoNCgUEAQIBAxIEyQIREgpACgQEAQICEgTMAgQTGjIgTWFwcyB0byBIVFRQIFBVVC4gVXNlZCBmb3IgcmVwbGFjaW5nIGEgcmVzb3VyY2UuCgoN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CBkKMgoEBAICABIE9wICEhokIFRoZSBuYW1lIG9mIHRoaXMgY3VzdG9tIEhUVFAgdmVyYi4KCg8KBQQCAgAEEgb3AgL1AhsKDQoFBAICAAUSBPcCAggKDQoFBAICAAESBPcCCQ0KDQoFBAICAAMSBPcCEBEKNQoEBAICARIE+gICEhonIFRoZSBwYXRoIG1hdGNoZWQgYnkgdGhpcyBjdXN0b20gdmVyYi4KCg8KBQQCAgEEEgb6AgL3AhIKDQoFBAICAQUSBPoCAggKDQoFBAICAQESBPoCCQ0KDQoFBAICAQMSBPoCEBFiBnByb3RvMwrnCAocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxIKZ29vZ2xlLmFwaRoVZ29vZ2xlL2FwaS9odHRwLnByb3RvGiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bzpLCgRodHRwEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYsMq8IiABKAsyFC5nb29nbGUuYXBpLkh0dHBSdWxlUgRodHRwQm4KDmNvbS5nb29nbGUuYXBpQhBBbm5vdGF0aW9uc1Byb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25zogIER0FQSUq8BgoGEgQOAB4BCsIECgEMEgMOABIytwQgQ29weXJpZ2h0IChjKSAyMDE1LCBHb29nbGUgSW5jLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBAhIDEAATCgkKAgMAEgMSAB8KCQoCAwESAxMAKgoICgEIEgMVAFgKCQoCCAsSAxUAWAoICgEIEgMWACIKCQoCCAoSAxYAIgoICgEIEgMXADEKCQoCCAgSAxcAMQoICgEIEgMYACcKCQoCCAESAxgAJwoICgEIEgMZACIKCQoCCCQSAxkAIgoJCgEHEgQbAB4BChwKAgcAEgMdAhsaESBTZWUgYEh0dHBSdWxlYC4KCgoKAwcAAhIDGwckCgsKAwcABBIEHQIbJgoKCgMHAAYSAx0CCgoKCgMHAAESAx0LDwoKCgMHAAMSAx0SGmIGcHJvdG8zCv4JChp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxIGdm9sdGhhGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aGHZvbHRoYV9wcm90b3MvbWV0YS5wcm90byKEAQoMSGVhbHRoU3RhdHVzEj0KBXN0YXRlGAEgASgOMiAudm9sdGhhLkhlYWx0aFN0YXR1cy5IZWFsdGhTdGF0ZUIF6PbNHQFSBXN0YXRlIjUKC0hlYWx0aFN0YXRlEgsKB0hFQUxUSFkQABIOCgpPVkVSTE9BREVEEAESCQoFRFlJTkcQAjJhCg1IZWFsdGhTZXJ2aWNlElAKD0dldEhlYWx0aFN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoULnZvbHRoYS5IZWFsdGhTdGF0dXMiD4LT5JMCCRIHL2hlYWx0aEJFChNvcmcub3BlbmNvcmQudm9sdGhhWi5naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdm9sdGhhSskGCgYSBAAAIwEKCAoBDBIDAAASCggKAQgSAwIARQoJCgIICxIDAgBFCggKAQgSAwMALAoJCgIIARIDAwAsCggKAQISAwUADwoJCgIDABIDBwAmCgkKAgMBEgMIACUKCQoCAwISAwkAIgo3CgIEABIEDAAXARorIEVuY29kZSBoZWFsdGggc3RhdHVzIG9mIGEgVm9sdGhhIGluc3RhbmNlCgoKCgMEAAESAwwIFAodCgQEAAQAEgQPBBMFGg8gSGVhbHRoIHN0YXRlcwoKDAoFBAAEAAESAw8JFAooCgYEAAQAAgASAxAIFCIZIFRoZSBpbnN0YW5jZSBpcyBoZWFsdGh5CgoOCgcEAAQAAgABEgMQCA8KDgoHBAAEAAIAAhIDEBITCkAKBgQABAACARIDEQgXIjEgVGhlIGluc3RhbmNlIGlzIG92ZXJsb2FkZWQsIGRlY3JlYXNlIHF1ZXJ5IHJhdGUKCg4KBwQABAACAQESAxEIEgoOCgcEAAQAAgECEgMRFRYKRwoGBAAEAAICEgMSCBIiOCBUaGUgaW5zdGFuY2UgaXMgaW4gYSBjcml0aWNhbCBjb25kaXRpb24sIGRvIG5vdCB1c2UgaXQKCg4KBwQABAACAgESAxIIDQoOCgcEAAQAAgICEgMSEBEKPgoEBAACABIDFgQxGjEgQ3VycmVudCBzdGF0ZSBvZiBoZWFsdGggb2YgdGhpcyBWb2x0aGEgaW5zdGFuY2UKCg0KBQQAAgAEEgQWBBMFCgwKBQQAAgAGEgMWBA8KDAoFBAACAAESAxYQFQoMCgUEAAIAAxIDFhgZCgwKBQQAAgAIEgMWGjAKEAoJBAACAAjt3tkDEgMWGy8KJQoCBgASBBoAIwEaGSBIZWFsdGggcmVsYXRlZCBzZXJ2aWNlcwoKCgoDBgABEgMaCBUKQQoEBgACABIEHQQhBRozIFJldHVybiBjdXJyZW50IGhlYWx0aCBzdGF0dXMgb2YgYSBWb2x0aGEgaW5zdGFuY2UKCgwKBQYAAgABEgMdCBcKDAoFBgACAAISAx0YLQoMCgUGAAIAAxIDHThECg0KBQYAAgAEEgQeCCAKChEKCQYAAgAEsMq8IhIEHgggCmIGcHJvdG8zCoWCCAofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxILb3BlbmZsb3dfMTMaHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8iYwoKb2ZwX2hlYWRlchIYCgd2ZXJzaW9uGAEgASgNUgd2ZXJzaW9uEikKBHR5cGUYAiABKA4yFS5vcGVuZmxvd18xMy5vZnBfdHlwZVIEdHlwZRIQCgN4aWQYAyABKA1SA3hpZCKrAQoVb2ZwX2hlbGxvX2VsZW1faGVhZGVyEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV90eXBlUgR0eXBlElEKDXZlcnNpb25iaXRtYXAYAiABKAsyKS5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV92ZXJzaW9uYml0bWFwSABSDXZlcnNpb25iaXRtYXBCCQoHZWxlbWVudCI4ChxvZnBfaGVsbG9fZWxlbV92ZXJzaW9uYml0bWFwEhgKB2JpdG1hcHMYAiADKA1SB2JpdG1hcHMiSwoJb2ZwX2hlbGxvEj4KCGVsZW1lbnRzGAEgAygLMiIub3BlbmZsb3dfMTMub2ZwX2hlbGxvX2VsZW1faGVhZGVyUghlbGVtZW50cyJNChFvZnBfc3dpdGNoX2NvbmZpZxIUCgVmbGFncxgBIAEoDVIFZmxhZ3MSIgoNbWlzc19zZW5kX2xlbhgCIAEoDVILbWlzc1NlbmRMZW4iQgoNb2ZwX3RhYmxlX21vZBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIWCgZjb25maWcYAiABKA1SBmNvbmZpZyKgAgoIb2ZwX3BvcnQSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhcKB2h3X2FkZHIYAiADKA1SBmh3QWRkchISCgRuYW1lGAMgASgJUgRuYW1lEhYKBmNvbmZpZxgEIAEoDVIGY29uZmlnEhQKBXN0YXRlGAUgASgNUgVzdGF0ZRISCgRjdXJyGAYgASgNUgRjdXJyEh4KCmFkdmVydGlzZWQYByABKA1SCmFkdmVydGlzZWQSHAoJc3VwcG9ydGVkGAggASgNUglzdXBwb3J0ZWQSEgoEcGVlchgJIAEoDVIEcGVlchIdCgpjdXJyX3NwZWVkGAogASgNUgljdXJyU3BlZWQSGwoJbWF4X3NwZWVkGAsgASgNUghtYXhTcGVlZCK1AQoTb2ZwX3N3aXRjaF9mZWF0dXJlcxIfCgtkYXRhcGF0aF9pZBgBIAEoBFIKZGF0YXBhdGhJZBIbCgluX2J1ZmZlcnMYAiABKA1SCG5CdWZmZXJzEhkKCG5fdGFibGVzGAMgASgNUgduVGFibGVzEiEKDGF1eGlsaWFyeV9pZBgEIAEoDVILYXV4aWxpYXJ5SWQSIgoMY2FwYWJpbGl0aWVzGAUgASgNUgxjYXBhYmlsaXRpZXMicgoPb2ZwX3BvcnRfc3RhdHVzEjQKBnJlYXNvbhgBIAEoDjIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3JlYXNvblIGcmVhc29uEikKBGRlc2MYAiABKAsyFS5vcGVuZmxvd18xMy5vZnBfcG9ydFIEZGVzYyKKAQoMb2ZwX3BvcnRfbW9kEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIXCgdod19hZGRyGAIgAygNUgZod0FkZHISFgoGY29uZmlnGAMgASgNUgZjb25maWcSEgoEbWFzaxgEIAEoDVIEbWFzaxIcCglhZHZlcnRpc2UYBSABKA1SCWFkdmVydGlzZSJ3CglvZnBfbWF0Y2gSLwoEdHlwZRgBIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9tYXRjaF90eXBlUgR0eXBlEjkKCm94bV9maWVsZHMYAiADKAsyGi5vcGVuZmxvd18xMy5vZnBfb3htX2ZpZWxkUglveG1GaWVsZHMi6gEKDW9mcF9veG1fZmllbGQSNwoJb3htX2NsYXNzGAEgASgOMhoub3BlbmZsb3dfMTMub2ZwX294bV9jbGFzc1IIb3htQ2xhc3MSPQoJb2ZiX2ZpZWxkGAQgASgLMh4ub3BlbmZsb3dfMTMub2ZwX294bV9vZmJfZmllbGRIAFIIb2ZiRmllbGQSWAoSZXhwZXJpbWVudGVyX2ZpZWxkGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX294bV9leHBlcmltZW50ZXJfZmllbGRIAFIRZXhwZXJpbWVudGVyRmllbGRCBwoFZmllbGQi1w4KEW9mcF9veG1fb2ZiX2ZpZWxkEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5veG1fb2ZiX2ZpZWxkX3R5cGVzUgR0eXBlEhkKCGhhc19tYXNrGAIgASgIUgdoYXNNYXNrEhQKBHBvcnQYAyABKA1IAFIEcG9ydBIlCg1waHlzaWNhbF9wb3J0GAQgASgNSABSDHBoeXNpY2FsUG9ydBInCg50YWJsZV9tZXRhZGF0YRgFIAEoBEgAUg10YWJsZU1ldGFkYXRhEhkKB2V0aF9kc3QYBiABKAxIAFIGZXRoRHN0EhkKB2V0aF9zcmMYByABKAxIAFIGZXRoU3JjEhsKCGV0aF90eXBlGAggASgNSABSB2V0aFR5cGUSGwoIdmxhbl92aWQYCSABKA1IAFIHdmxhblZpZBIbCgh2bGFuX3BjcBgKIAEoDUgAUgd2bGFuUGNwEhkKB2lwX2RzY3AYCyABKA1IAFIGaXBEc2NwEhcKBmlwX2VjbhgMIAEoDUgAUgVpcEVjbhIbCghpcF9wcm90bxgNIAEoDUgAUgdpcFByb3RvEhsKCGlwdjRfc3JjGA4gASgNSABSB2lwdjRTcmMSGwoIaXB2NF9kc3QYDyABKA1IAFIHaXB2NERzdBIZCgd0Y3Bfc3JjGBAgASgNSABSBnRjcFNyYxIZCgd0Y3BfZHN0GBEgASgNSABSBnRjcERzdBIZCgd1ZHBfc3JjGBIgASgNSABSBnVkcFNyYxIZCgd1ZHBfZHN0GBMgASgNSABSBnVkcERzdBIbCghzY3RwX3NyYxgUIAEoDUgAUgdzY3RwU3JjEhsKCHNjdHBfZHN0GBUgASgNSABSB3NjdHBEc3QSIQoLaWNtcHY0X3R5cGUYFiABKA1IAFIKaWNtcHY0VHlwZRIhCgtpY21wdjRfY29kZRgXIAEoDUgAUgppY21wdjRDb2RlEhcKBmFycF9vcBgYIAEoDUgAUgVhcnBPcBIZCgdhcnBfc3BhGBkgASgNSABSBmFycFNwYRIZCgdhcnBfdHBhGBogASgNSABSBmFycFRwYRIZCgdhcnBfc2hhGBsgASgMSABSBmFycFNoYRIZCgdhcnBfdGhhGBwgASgMSABSBmFycFRoYRIbCghpcHY2X3NyYxgdIAEoDEgAUgdpcHY2U3JjEhsKCGlwdjZfZHN0GB4gASgMSABSB2lwdjZEc3QSIQoLaXB2Nl9mbGFiZWwYHyABKA1IAFIKaXB2NkZsYWJlbBIhCgtpY21wdjZfdHlwZRggIAEoDUgAUgppY21wdjZUeXBlEiEKC2ljbXB2Nl9jb2RlGCEgASgNSABSCmljbXB2NkNvZGUSJgoOaXB2Nl9uZF90YXJnZXQYIiABKAxIAFIMaXB2Nk5kVGFyZ2V0EiAKC2lwdjZfbmRfc3NsGCMgASgMSABSCWlwdjZOZFNzbBIgCgtpcHY2X25kX3RsbBgkIAEoDEgAUglpcHY2TmRUbGwSHwoKbXBsc19sYWJlbBglIAEoDUgAUgltcGxzTGFiZWwSGQoHbXBsc190YxgmIAEoDUgAUgZtcGxzVGMSGwoIbXBsc19ib3MYJyABKA1IAFIHbXBsc0JvcxIbCghwYmJfaXNpZBgoIAEoDUgAUgdwYmJJc2lkEh0KCXR1bm5lbF9pZBgpIAEoBEgAUgh0dW5uZWxJZBIhCgtpcHY2X2V4dGhkchgqIAEoDUgAUgppcHY2RXh0aGRyEjAKE3RhYmxlX21ldGFkYXRhX21hc2sYaSABKARIAVIRdGFibGVNZXRhZGF0YU1hc2sSIgoMZXRoX2RzdF9tYXNrGGogASgMSAFSCmV0aERzdE1hc2sSIgoMZXRoX3NyY19tYXNrGGsgASgMSAFSCmV0aFNyY01hc2sSJAoNdmxhbl92aWRfbWFzaxhtIAEoDUgBUgt2bGFuVmlkTWFzaxIkCg1pcHY0X3NyY19tYXNrGHIgASgNSAFSC2lwdjRTcmNNYXNrEiQKDWlwdjRfZHN0X21hc2sYcyABKA1IAVILaXB2NERzdE1hc2sSIgoMYXJwX3NwYV9tYXNrGH0gASgNSAFSCmFycFNwYU1hc2sSIgoMYXJwX3RwYV9tYXNrGH4gASgNSAFSCmFycFRwYU1hc2sSJQoNaXB2Nl9zcmNfbWFzaxiBASABKAxIAVILaXB2NlNyY01hc2sSJQoNaXB2Nl9kc3RfbWFzaxiCASABKAxIAVILaXB2NkRzdE1hc2sSKwoQaXB2Nl9mbGFiZWxfbWFzaxiDASABKA1IAVIOaXB2NkZsYWJlbE1hc2sSJQoNcGJiX2lzaWRfbWFzaxiMASABKA1IAVILcGJiSXNpZE1hc2sSJwoOdHVubmVsX2lkX21hc2sYjQEgASgESAFSDHR1bm5lbElkTWFzaxIrChBpcHY2X2V4dGhkcl9tYXNrGI4BIAEoDUgBUg5pcHY2RXh0aGRyTWFza0IHCgV2YWx1ZUIGCgRtYXNrIl8KGm9mcF9veG1fZXhwZXJpbWVudGVyX2ZpZWxkEh0KCm94bV9oZWFkZXIYASABKA1SCW94bUhlYWRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlciKyBAoKb2ZwX2FjdGlvbhIwCgR0eXBlGAEgASgOMhwub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl90eXBlUgR0eXBlEjgKBm91dHB1dBgCIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fb3V0cHV0SABSBm91dHB1dBI9CghtcGxzX3R0bBgDIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fbXBsc190dGxIAFIHbXBsc1R0bBIyCgRwdXNoGAQgASgLMhwub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9wdXNoSABSBHB1c2gSPQoIcG9wX21wbHMYBSABKAsyIC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3BvcF9tcGxzSABSB3BvcE1wbHMSNQoFZ3JvdXAYBiABKAsyHS5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX2dyb3VwSABSBWdyb3VwEjcKBm53X3R0bBgHIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fbndfdHRsSABSBW53VHRsEkAKCXNldF9maWVsZBgIIAEoCzIhLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fc2V0X2ZpZWxkSABSCHNldEZpZWxkEkoKDGV4cGVyaW1lbnRlchgJIAEoCzIkLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIICgZhY3Rpb24iQAoRb2ZwX2FjdGlvbl9vdXRwdXQSEgoEcG9ydBgBIAEoDVIEcG9ydBIXCgdtYXhfbGVuGAIgASgNUgZtYXhMZW4iMAoTb2ZwX2FjdGlvbl9tcGxzX3R0bBIZCghtcGxzX3R0bBgBIAEoDVIHbXBsc1R0bCIvCg9vZnBfYWN0aW9uX3B1c2gSHAoJZXRoZXJ0eXBlGAEgASgNUglldGhlcnR5cGUiMwoTb2ZwX2FjdGlvbl9wb3BfbXBscxIcCglldGhlcnR5cGUYASABKA1SCWV0aGVydHlwZSItChBvZnBfYWN0aW9uX2dyb3VwEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkIioKEW9mcF9hY3Rpb25fbndfdHRsEhUKBm53X3R0bBgBIAEoDVIFbndUdGwiSAoUb2ZwX2FjdGlvbl9zZXRfZmllbGQSMAoFZmllbGQYASABKAsyGi5vcGVuZmxvd18xMy5vZnBfb3htX2ZpZWxkUgVmaWVsZCJRChdvZnBfYWN0aW9uX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAIgASgMUgRkYXRhIpwDCg9vZnBfaW5zdHJ1Y3Rpb24SEgoEdHlwZRgBIAEoDVIEdHlwZRJICgpnb3RvX3RhYmxlGAIgASgLMicub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2dvdG9fdGFibGVIAFIJZ290b1RhYmxlElQKDndyaXRlX21ldGFkYXRhGAMgASgLMisub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX3dyaXRlX21ldGFkYXRhSABSDXdyaXRlTWV0YWRhdGESQAoHYWN0aW9ucxgEIAEoCzIkLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9hY3Rpb25zSABSB2FjdGlvbnMSOgoFbWV0ZXIYBSABKAsyIi5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fbWV0ZXJIAFIFbWV0ZXISTwoMZXhwZXJpbWVudGVyGAYgASgLMikub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCBgoEZGF0YSI3ChpvZnBfaW5zdHJ1Y3Rpb25fZ290b190YWJsZRIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZCJhCh5vZnBfaW5zdHJ1Y3Rpb25fd3JpdGVfbWV0YWRhdGESGgoIbWV0YWRhdGEYASABKARSCG1ldGFkYXRhEiMKDW1ldGFkYXRhX21hc2sYAiABKARSDG1ldGFkYXRhTWFzayJMChdvZnBfaW5zdHJ1Y3Rpb25fYWN0aW9ucxIxCgdhY3Rpb25zGAEgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucyIyChVvZnBfaW5zdHJ1Y3Rpb25fbWV0ZXISGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQiVgocb2ZwX2luc3RydWN0aW9uX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAIgASgMUgRkYXRhItwDCgxvZnBfZmxvd19tb2QSFgoGY29va2llGAEgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYAiABKARSCmNvb2tpZU1hc2sSGQoIdGFibGVfaWQYAyABKA1SB3RhYmxlSWQSOwoHY29tbWFuZBgEIAEoDjIhLm9wZW5mbG93XzEzLm9mcF9mbG93X21vZF9jb21tYW5kUgdjb21tYW5kEiEKDGlkbGVfdGltZW91dBgFIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAYgASgNUgtoYXJkVGltZW91dBIaCghwcmlvcml0eRgHIAEoDVIIcHJpb3JpdHkSGwoJYnVmZmVyX2lkGAggASgNUghidWZmZXJJZBIZCghvdXRfcG9ydBgJIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYCiABKA1SCG91dEdyb3VwEhQKBWZsYWdzGAsgASgNUgVmbGFncxIsCgVtYXRjaBgMIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSQAoMaW5zdHJ1Y3Rpb25zGA0gAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMilwEKCm9mcF9idWNrZXQSFgoGd2VpZ2h0GAEgASgNUgZ3ZWlnaHQSHQoKd2F0Y2hfcG9ydBgCIAEoDVIJd2F0Y2hQb3J0Eh8KC3dhdGNoX2dyb3VwGAMgASgNUgp3YXRjaEdyb3VwEjEKB2FjdGlvbnMYBCADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIswBCg1vZnBfZ3JvdXBfbW9kEjwKB2NvbW1hbmQYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfbW9kX2NvbW1hbmRSB2NvbW1hbmQSLwoEdHlwZRgCIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF90eXBlUgR0eXBlEhkKCGdyb3VwX2lkGAMgASgNUgdncm91cElkEjEKB2J1Y2tldHMYBCADKAsyFy5vcGVuZmxvd18xMy5vZnBfYnVja2V0UgdidWNrZXRzIo0BCg5vZnBfcGFja2V0X291dBIbCglidWZmZXJfaWQYASABKA1SCGJ1ZmZlcklkEhcKB2luX3BvcnQYAiABKA1SBmluUG9ydBIxCgdhY3Rpb25zGAMgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucxISCgRkYXRhGAQgASgMUgRkYXRhItwBCg1vZnBfcGFja2V0X2luEhsKCWJ1ZmZlcl9pZBgBIAEoDVIIYnVmZmVySWQSOQoGcmVhc29uGAIgASgOMiEub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9pbl9yZWFzb25SBnJlYXNvbhIZCgh0YWJsZV9pZBgDIAEoDVIHdGFibGVJZBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIsCgVtYXRjaBgFIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSEgoEZGF0YRgGIAEoDFIEZGF0YSKdAwoQb2ZwX2Zsb3dfcmVtb3ZlZBIWCgZjb29raWUYASABKARSBmNvb2tpZRIaCghwcmlvcml0eRgCIAEoDVIIcHJpb3JpdHkSPAoGcmVhc29uGAMgASgOMiQub3BlbmZsb3dfMTMub2ZwX2Zsb3dfcmVtb3ZlZF9yZWFzb25SBnJlYXNvbhIZCgh0YWJsZV9pZBgEIAEoDVIHdGFibGVJZBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxIhCgxpZGxlX3RpbWVvdXQYByABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgIIAEoDVILaGFyZFRpbWVvdXQSIQoMcGFja2V0X2NvdW50GAkgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAogASgEUglieXRlQ291bnQSLAoFbWF0Y2gYeSABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoItwCChVvZnBfbWV0ZXJfYmFuZF9oZWFkZXISNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX3R5cGVSBHR5cGUSEgoEcmF0ZRgCIAEoDVIEcmF0ZRIdCgpidXJzdF9zaXplGAMgASgNUglidXJzdFNpemUSNgoEZHJvcBgEIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2Ryb3BIAFIEZHJvcBJKCgtkc2NwX3JlbWFyaxgFIAEoCzInLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2RzY3BfcmVtYXJrSABSCmRzY3BSZW1hcmsSTgoMZXhwZXJpbWVudGVyGAYgASgLMigub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIGCgRkYXRhIhUKE29mcF9tZXRlcl9iYW5kX2Ryb3AiOwoab2ZwX21ldGVyX2JhbmRfZHNjcF9yZW1hcmsSHQoKcHJlY19sZXZlbBgBIAEoDVIJcHJlY0xldmVsIkEKG29mcF9tZXRlcl9iYW5kX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlciK4AQoNb2ZwX21ldGVyX21vZBI8Cgdjb21tYW5kGAEgASgOMiIub3BlbmZsb3dfMTMub2ZwX21ldGVyX21vZF9jb21tYW5kUgdjb21tYW5kEhQKBWZsYWdzGAIgASgNUgVmbGFncxIZCghtZXRlcl9pZBgDIAEoDVIHbWV0ZXJJZBI4CgViYW5kcxgEIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2hlYWRlclIFYmFuZHMifAoNb2ZwX2Vycm9yX21zZxIvCgZoZWFkZXIYASABKAsyFy5vcGVuZmxvd18xMy5vZnBfaGVhZGVyUgZoZWFkZXISEgoEdHlwZRgCIAEoDVIEdHlwZRISCgRjb2RlGAMgASgNUgRjb2RlEhIKBGRhdGEYBCABKAxSBGRhdGEigwEKGm9mcF9lcnJvcl9leHBlcmltZW50ZXJfbXNnEhIKBHR5cGUYASABKA1SBHR5cGUSGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSIgoMZXhwZXJpbWVudGVyGAMgASgNUgxleHBlcmltZW50ZXISEgoEZGF0YRgEIAEoDFIEZGF0YSJ2ChVvZnBfbXVsdGlwYXJ0X3JlcXVlc3QSMwoEdHlwZRgBIAEoDjIfLm9wZW5mbG93XzEzLm9mcF9tdWx0aXBhcnRfdHlwZVIEdHlwZRIUCgVmbGFncxgCIAEoDVIFZmxhZ3MSEgoEYm9keRgDIAEoDFIEYm9keSJ0ChNvZnBfbXVsdGlwYXJ0X3JlcGx5EjMKBHR5cGUYASABKA4yHy5vcGVuZmxvd18xMy5vZnBfbXVsdGlwYXJ0X3R5cGVSBHR5cGUSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhIKBGJvZHkYAyABKAxSBGJvZHkijwEKCG9mcF9kZXNjEhkKCG1mcl9kZXNjGAEgASgJUgdtZnJEZXNjEhcKB2h3X2Rlc2MYAiABKAlSBmh3RGVzYxIXCgdzd19kZXNjGAMgASgJUgZzd0Rlc2MSHQoKc2VyaWFsX251bRgEIAEoCVIJc2VyaWFsTnVtEhcKB2RwX2Rlc2MYBSABKAlSBmRwRGVzYyLSAQoWb2ZwX2Zsb3dfc3RhdHNfcmVxdWVzdBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIZCghvdXRfcG9ydBgCIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYAyABKA1SCG91dEdyb3VwEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEh8KC2Nvb2tpZV9tYXNrGAUgASgEUgpjb29raWVNYXNrEiwKBW1hdGNoGAYgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaCLFAwoOb2ZwX2Zsb3dfc3RhdHMSDgoCaWQYDiABKARSAmlkEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEiEKDGR1cmF0aW9uX3NlYxgCIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgDIAEoDVIMZHVyYXRpb25Oc2VjEhoKCHByaW9yaXR5GAQgASgNUghwcmlvcml0eRIhCgxpZGxlX3RpbWVvdXQYBSABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgGIAEoDVILaGFyZFRpbWVvdXQSFAoFZmxhZ3MYByABKA1SBWZsYWdzEhYKBmNvb2tpZRgIIAEoBFIGY29va2llEiEKDHBhY2tldF9jb3VudBgJIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgKIAEoBFIJYnl0ZUNvdW50EiwKBW1hdGNoGAwgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBJACgxpbnN0cnVjdGlvbnMYDSADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyLXAQobb2ZwX2FnZ3JlZ2F0ZV9zdGF0c19yZXF1ZXN0EhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhkKCG91dF9wb3J0GAIgASgNUgdvdXRQb3J0EhsKCW91dF9ncm91cBgDIAEoDVIIb3V0R3JvdXASFgoGY29va2llGAQgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYBSABKARSCmNvb2tpZU1hc2sSLAoFbWF0Y2gYBiABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoInwKGW9mcF9hZ2dyZWdhdGVfc3RhdHNfcmVwbHkSIQoMcGFja2V0X2NvdW50GAEgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAIgASgEUglieXRlQ291bnQSHQoKZmxvd19jb3VudBgDIAEoDVIJZmxvd0NvdW50Iu0DChpvZnBfdGFibGVfZmVhdHVyZV9wcm9wZXJ0eRI8CgR0eXBlGAEgASgOMigub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF90eXBlUgR0eXBlElYKDGluc3RydWN0aW9ucxgCIAEoCzIwLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfaW5zdHJ1Y3Rpb25zSABSDGluc3RydWN0aW9ucxJSCgtuZXh0X3RhYmxlcxgDIAEoCzIvLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfbmV4dF90YWJsZXNIAFIKbmV4dFRhYmxlcxJHCgdhY3Rpb25zGAQgASgLMisub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9hY3Rpb25zSABSB2FjdGlvbnMSOwoDb3htGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9veG1IAFIDb3htElYKDGV4cGVyaW1lbnRlchgGIAEoCzIwLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIHCgV2YWx1ZSJnCiNvZnBfdGFibGVfZmVhdHVyZV9wcm9wX2luc3RydWN0aW9ucxJACgxpbnN0cnVjdGlvbnMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyJKCiJvZnBfdGFibGVfZmVhdHVyZV9wcm9wX25leHRfdGFibGVzEiQKDm5leHRfdGFibGVfaWRzGAEgAygNUgxuZXh0VGFibGVJZHMiUwoeb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9hY3Rpb25zEjEKB2FjdGlvbnMYASADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIjUKGm9mcF90YWJsZV9mZWF0dXJlX3Byb3Bfb3htEhcKB294bV9pZHMYAyADKA1SBm94bUlkcyKRAQojb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9leHBlcmltZW50ZXISIgoMZXhwZXJpbWVudGVyGAIgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAyABKA1SB2V4cFR5cGUSKwoRZXhwZXJpbWVudGVyX2RhdGEYBCADKA1SEGV4cGVyaW1lbnRlckRhdGEikwIKEm9mcF90YWJsZV9mZWF0dXJlcxIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBISCgRuYW1lGAIgASgJUgRuYW1lEiUKDm1ldGFkYXRhX21hdGNoGAMgASgEUg1tZXRhZGF0YU1hdGNoEiUKDm1ldGFkYXRhX3dyaXRlGAQgASgEUg1tZXRhZGF0YVdyaXRlEhYKBmNvbmZpZxgFIAEoDVIGY29uZmlnEh8KC21heF9lbnRyaWVzGAYgASgNUgptYXhFbnRyaWVzEkcKCnByb3BlcnRpZXMYByADKAsyJy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wZXJ0eVIKcHJvcGVydGllcyKXAQoPb2ZwX3RhYmxlX3N0YXRzEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEiEKDGFjdGl2ZV9jb3VudBgCIAEoDVILYWN0aXZlQ291bnQSIQoMbG9va3VwX2NvdW50GAMgASgEUgtsb29rdXBDb3VudBIjCg1tYXRjaGVkX2NvdW50GAQgASgEUgxtYXRjaGVkQ291bnQiMQoWb2ZwX3BvcnRfc3RhdHNfcmVxdWVzdBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8i3QMKDm9mcF9wb3J0X3N0YXRzEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIdCgpyeF9wYWNrZXRzGAIgASgEUglyeFBhY2tldHMSHQoKdHhfcGFja2V0cxgDIAEoBFIJdHhQYWNrZXRzEhkKCHJ4X2J5dGVzGAQgASgEUgdyeEJ5dGVzEhkKCHR4X2J5dGVzGAUgASgEUgd0eEJ5dGVzEh0KCnJ4X2Ryb3BwZWQYBiABKARSCXJ4RHJvcHBlZBIdCgp0eF9kcm9wcGVkGAcgASgEUgl0eERyb3BwZWQSGwoJcnhfZXJyb3JzGAggASgEUghyeEVycm9ycxIbCgl0eF9lcnJvcnMYCSABKARSCHR4RXJyb3JzEiAKDHJ4X2ZyYW1lX2VychgKIAEoBFIKcnhGcmFtZUVychIeCgtyeF9vdmVyX2VychgLIAEoBFIJcnhPdmVyRXJyEhwKCnJ4X2NyY19lcnIYDCABKARSCHJ4Q3JjRXJyEh4KCmNvbGxpc2lvbnMYDSABKARSCmNvbGxpc2lvbnMSIQoMZHVyYXRpb25fc2VjGA4gASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGA8gASgNUgxkdXJhdGlvbk5zZWMiNAoXb2ZwX2dyb3VwX3N0YXRzX3JlcXVlc3QSGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQiVgoSb2ZwX2J1Y2tldF9jb3VudGVyEiEKDHBhY2tldF9jb3VudBgBIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgCIAEoBFIJYnl0ZUNvdW50IpcCCg9vZnBfZ3JvdXBfc3RhdHMSGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQSGwoJcmVmX2NvdW50GAIgASgNUghyZWZDb3VudBIhCgxwYWNrZXRfY291bnQYAyABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYBCABKARSCWJ5dGVDb3VudBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxJCCgxidWNrZXRfc3RhdHMYByADKAsyHy5vcGVuZmxvd18xMy5vZnBfYnVja2V0X2NvdW50ZXJSC2J1Y2tldFN0YXRzIo8BCg5vZnBfZ3JvdXBfZGVzYxIvCgR0eXBlGAEgASgOMhsub3BlbmZsb3dfMTMub2ZwX2dyb3VwX3R5cGVSBHR5cGUSGQoIZ3JvdXBfaWQYAiABKA1SB2dyb3VwSWQSMQoHYnVja2V0cxgDIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9idWNrZXRSB2J1Y2tldHMidgoPb2ZwX2dyb3VwX2VudHJ5Ei8KBGRlc2MYASABKAsyGy5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfZGVzY1IEZGVzYxIyCgVzdGF0cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9ncm91cF9zdGF0c1IFc3RhdHMihwEKEm9mcF9ncm91cF9mZWF0dXJlcxIUCgV0eXBlcxgBIAEoDVIFdHlwZXMSIgoMY2FwYWJpbGl0aWVzGAIgASgNUgxjYXBhYmlsaXRpZXMSHQoKbWF4X2dyb3VwcxgDIAMoDVIJbWF4R3JvdXBzEhgKB2FjdGlvbnMYBCADKA1SB2FjdGlvbnMiOAobb2ZwX21ldGVyX211bHRpcGFydF9yZXF1ZXN0EhkKCG1ldGVyX2lkGAEgASgNUgdtZXRlcklkImoKFG9mcF9tZXRlcl9iYW5kX3N0YXRzEioKEXBhY2tldF9iYW5kX2NvdW50GAEgASgEUg9wYWNrZXRCYW5kQ291bnQSJgoPYnl0ZV9iYW5kX2NvdW50GAIgASgEUg1ieXRlQmFuZENvdW50IqECCg9vZnBfbWV0ZXJfc3RhdHMSGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQSHQoKZmxvd19jb3VudBgCIAEoDVIJZmxvd0NvdW50EiYKD3BhY2tldF9pbl9jb3VudBgDIAEoBFINcGFja2V0SW5Db3VudBIiCg1ieXRlX2luX2NvdW50GAQgASgEUgtieXRlSW5Db3VudBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxJACgpiYW5kX3N0YXRzGAcgAygLMiEub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfc3RhdHNSCWJhbmRTdGF0cyJ9ChBvZnBfbWV0ZXJfY29uZmlnEhQKBWZsYWdzGAEgASgNUgVmbGFncxIZCghtZXRlcl9pZBgCIAEoDVIHbWV0ZXJJZBI4CgViYW5kcxgDIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2hlYWRlclIFYmFuZHMirgEKEm9mcF9tZXRlcl9mZWF0dXJlcxIbCgltYXhfbWV0ZXIYASABKA1SCG1heE1ldGVyEh0KCmJhbmRfdHlwZXMYAiABKA1SCWJhbmRUeXBlcxIiCgxjYXBhYmlsaXRpZXMYAyABKA1SDGNhcGFiaWxpdGllcxIbCgltYXhfYmFuZHMYBCABKA1SCG1heEJhbmRzEhsKCW1heF9jb2xvchgFIAEoDVIIbWF4Q29sb3IifAoPb2ZwX21ldGVyX2VudHJ5EjUKBmNvbmZpZxgBIAEoCzIdLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9jb25maWdSBmNvbmZpZxIyCgVzdGF0cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9zdGF0c1IFc3RhdHMidgohb2ZwX2V4cGVyaW1lbnRlcl9tdWx0aXBhcnRfaGVhZGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEhIKBGRhdGEYAyABKAxSBGRhdGEibAoXb2ZwX2V4cGVyaW1lbnRlcl9oZWFkZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSEgoEZGF0YRgDIAEoDFIEZGF0YSJFChVvZnBfcXVldWVfcHJvcF9oZWFkZXISGgoIcHJvcGVydHkYASABKA1SCHByb3BlcnR5EhAKA2xlbhgCIAEoDVIDbGVuInIKF29mcF9xdWV1ZV9wcm9wX21pbl9yYXRlEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEhIKBHJhdGUYAiABKA1SBHJhdGUicgoXb2ZwX3F1ZXVlX3Byb3BfbWF4X3JhdGUSQwoLcHJvcF9oZWFkZXIYASABKAsyIi5vcGVuZmxvd18xMy5vZnBfcXVldWVfcHJvcF9oZWFkZXJSCnByb3BIZWFkZXISEgoEcmF0ZRgCIAEoDVIEcmF0ZSKaAQobb2ZwX3F1ZXVlX3Byb3BfZXhwZXJpbWVudGVyEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAyABKAxSBGRhdGEihQEKEG9mcF9wYWNrZXRfcXVldWUSGQoIcXVldWVfaWQYASABKA1SB3F1ZXVlSWQSEgoEcG9ydBgCIAEoDVIEcG9ydBJCCgpwcm9wZXJ0aWVzGAQgAygLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wZXJ0aWVzIjIKHG9mcF9xdWV1ZV9nZXRfY29uZmlnX3JlcXVlc3QSEgoEcG9ydBgBIAEoDVIEcG9ydCJnChpvZnBfcXVldWVfZ2V0X2NvbmZpZ19yZXBseRISCgRwb3J0GAEgASgNUgRwb3J0EjUKBnF1ZXVlcxgCIAMoCzIdLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfcXVldWVSBnF1ZXVlcyJFChRvZnBfYWN0aW9uX3NldF9xdWV1ZRISCgR0eXBlGAEgASgNUgR0eXBlEhkKCHF1ZXVlX2lkGAMgASgNUgdxdWV1ZUlkIk0KF29mcF9xdWV1ZV9zdGF0c19yZXF1ZXN0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIZCghxdWV1ZV9pZBgCIAEoDVIHcXVldWVJZCLkAQoPb2ZwX3F1ZXVlX3N0YXRzEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIZCghxdWV1ZV9pZBgCIAEoDVIHcXVldWVJZBIZCgh0eF9ieXRlcxgDIAEoBFIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAQgASgEUgl0eFBhY2tldHMSGwoJdHhfZXJyb3JzGAUgASgEUgh0eEVycm9ycxIhCgxkdXJhdGlvbl9zZWMYBiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYByABKA1SDGR1cmF0aW9uTnNlYyJtChBvZnBfcm9sZV9yZXF1ZXN0EjQKBHJvbGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfY29udHJvbGxlcl9yb2xlUgRyb2xlEiMKDWdlbmVyYXRpb25faWQYAiABKARSDGdlbmVyYXRpb25JZCKOAQoQb2ZwX2FzeW5jX2NvbmZpZxIkCg5wYWNrZXRfaW5fbWFzaxgBIAMoDVIMcGFja2V0SW5NYXNrEigKEHBvcnRfc3RhdHVzX21hc2sYAiADKA1SDnBvcnRTdGF0dXNNYXNrEioKEWZsb3dfcmVtb3ZlZF9tYXNrGAMgAygNUg9mbG93UmVtb3ZlZE1hc2siawoOTWV0ZXJNb2RVcGRhdGUSDgoCaWQYASABKAlSAmlkEjcKCW1ldGVyX21vZBgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9tb2RSCG1ldGVyTW9kEhAKA3hpZBgDIAEoDVIDeGlkIlAKD01ldGVyU3RhdHNSZXBseRI9CgttZXRlcl9zdGF0cxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9zdGF0c1IKbWV0ZXJTdGF0cyJpCg9GbG93VGFibGVVcGRhdGUSDgoCaWQYASABKAlSAmlkEjQKCGZsb3dfbW9kGAIgASgLMhkub3BlbmZsb3dfMTMub2ZwX2Zsb3dfbW9kUgdmbG93TW9kEhAKA3hpZBgDIAEoDVIDeGlkInEKFEZsb3dHcm91cFRhYmxlVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI3Cglncm91cF9tb2QYAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfbW9kUghncm91cE1vZBIQCgN4aWQYAyABKA1SA3hpZCI6CgVGbG93cxIxCgVpdGVtcxgBIAMoCzIbLm9wZW5mbG93XzEzLm9mcF9mbG93X3N0YXRzUgVpdGVtcyI8CgZNZXRlcnMSMgoFaXRlbXMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfZW50cnlSBWl0ZW1zIkAKCkZsb3dHcm91cHMSMgoFaXRlbXMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfZW50cnlSBWl0ZW1zImkKC0Zsb3dDaGFuZ2VzEikKBnRvX2FkZBgBIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzUgV0b0FkZBIvCgl0b19yZW1vdmUYAiABKAsyEi5vcGVuZmxvd18xMy5GbG93c1IIdG9SZW1vdmUirgEKEEZsb3dHcm91cENoYW5nZXMSLgoGdG9fYWRkGAEgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IFdG9BZGQSNAoJdG9fcmVtb3ZlGAIgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IIdG9SZW1vdmUSNAoJdG9fdXBkYXRlGAMgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IIdG9VcGRhdGUiUwoIUGFja2V0SW4SDgoCaWQYASABKAlSAmlkEjcKCXBhY2tldF9pbhgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfaW5SCHBhY2tldEluIlcKCVBhY2tldE91dBIOCgJpZBgBIAEoCVICaWQSOgoKcGFja2V0X291dBgCIAEoCzIbLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfb3V0UglwYWNrZXRPdXQimwEKC0NoYW5nZUV2ZW50Eg4KAmlkGAEgASgJUgJpZBI/Cgtwb3J0X3N0YXR1cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3N0YXR1c0gAUgpwb3J0U3RhdHVzEjIKBWVycm9yGAMgASgLMhoub3BlbmZsb3dfMTMub2ZwX2Vycm9yX21zZ0gAUgVlcnJvckIHCgVldmVudCrVAQoLb2ZwX3BvcnRfbm8SEAoMT0ZQUF9JTlZBTElEEAASEAoIT0ZQUF9NQVgQgP7//wcSFAoMT0ZQUF9JTl9QT1JUEPj///8HEhIKCk9GUFBfVEFCTEUQ+f///wcSEwoLT0ZQUF9OT1JNQUwQ+v///wcSEgoKT0ZQUF9GTE9PRBD7////BxIQCghPRlBQX0FMTBD8////BxIXCg9PRlBQX0NPTlRST0xMRVIQ/f///wcSEgoKT0ZQUF9MT0NBTBD+////BxIQCghPRlBQX0FOWRD/////ByrIBQoIb2ZwX3R5cGUSDgoKT0ZQVF9IRUxMTxAAEg4KCk9GUFRfRVJST1IQARIVChFPRlBUX0VDSE9fUkVRVUVTVBACEhMKD09GUFRfRUNIT19SRVBMWRADEhUKEU9GUFRfRVhQRVJJTUVOVEVSEAQSGQoVT0ZQVF9GRUFUVVJFU19SRVFVRVNUEAUSFwoTT0ZQVF9GRUFUVVJFU19SRVBMWRAGEhsKF09GUFRfR0VUX0NPTkZJR19SRVFVRVNUEAcSGQoVT0ZQVF9HRVRfQ09ORklHX1JFUExZEAgSEwoPT0ZQVF9TRVRfQ09ORklHEAkSEgoOT0ZQVF9QQUNLRVRfSU4QChIVChFPRlBUX0ZMT1dfUkVNT1ZFRBALEhQKEE9GUFRfUE9SVF9TVEFUVVMQDBITCg9PRlBUX1BBQ0tFVF9PVVQQDRIRCg1PRlBUX0ZMT1dfTU9EEA4SEgoOT0ZQVF9HUk9VUF9NT0QQDxIRCg1PRlBUX1BPUlRfTU9EEBASEgoOT0ZQVF9UQUJMRV9NT0QQERIaChZPRlBUX01VTFRJUEFSVF9SRVFVRVNUEBISGAoUT0ZQVF9NVUxUSVBBUlRfUkVQTFkQExIYChRPRlBUX0JBUlJJRVJfUkVRVUVTVBAUEhYKEk9GUFRfQkFSUklFUl9SRVBMWRAVEiEKHU9GUFRfUVVFVUVfR0VUX0NPTkZJR19SRVFVRVNUEBYSHwobT0ZQVF9RVUVVRV9HRVRfQ09ORklHX1JFUExZEBcSFQoRT0ZQVF9ST0xFX1JFUVVFU1QQGBITCg9PRlBUX1JPTEVfUkVQTFkQGRIaChZPRlBUX0dFVF9BU1lOQ19SRVFVRVNUEBoSGAoUT0ZQVF9HRVRfQVNZTkNfUkVQTFkQGxISCg5PRlBUX1NFVF9BU1lOQxAcEhIKDk9GUFRfTUVURVJfTU9EEB0qQwoTb2ZwX2hlbGxvX2VsZW1fdHlwZRISCg5PRlBIRVRfSU5WQUxJRBAAEhgKFE9GUEhFVF9WRVJTSU9OQklUTUFQEAEqZQoQb2ZwX2NvbmZpZ19mbGFncxIUChBPRlBDX0ZSQUdfTk9STUFMEAASEgoOT0ZQQ19GUkFHX0RST1AQARITCg9PRlBDX0ZSQUdfUkVBU00QAhISCg5PRlBDX0ZSQUdfTUFTSxADKkAKEG9mcF90YWJsZV9jb25maWcSEQoNT0ZQVENfSU5WQUxJRBAAEhkKFU9GUFRDX0RFUFJFQ0FURURfTUFTSxADKj4KCW9mcF90YWJsZRIRCg1PRlBUVF9JTlZBTElEEAASDgoJT0ZQVFRfTUFYEP4BEg4KCU9GUFRUX0FMTBD/ASq7AQoQb2ZwX2NhcGFiaWxpdGllcxIQCgxPRlBDX0lOVkFMSUQQABITCg9PRlBDX0ZMT1dfU1RBVFMQARIUChBPRlBDX1RBQkxFX1NUQVRTEAISEwoPT0ZQQ19QT1JUX1NUQVRTEAQSFAoQT0ZQQ19HUk9VUF9TVEFUUxAIEhEKDU9GUENfSVBfUkVBU00QIBIUChBPRlBDX1FVRVVFX1NUQVRTEEASFgoRT0ZQQ19QT1JUX0JMT0NLRUQQgAIqdgoPb2ZwX3BvcnRfY29uZmlnEhEKDU9GUFBDX0lOVkFMSUQQABITCg9PRlBQQ19QT1JUX0RPV04QARIRCg1PRlBQQ19OT19SRUNWEAQSEAoMT0ZQUENfTk9fRldEECASFgoST0ZQUENfTk9fUEFDS0VUX0lOEEAqWwoOb2ZwX3BvcnRfc3RhdGUSEQoNT0ZQUFNfSU5WQUxJRBAAEhMKD09GUFBTX0xJTktfRE9XThABEhEKDU9GUFBTX0JMT0NLRUQQAhIOCgpPRlBQU19MSVZFEAQq3QIKEW9mcF9wb3J0X2ZlYXR1cmVzEhEKDU9GUFBGX0lOVkFMSUQQABIRCg1PRlBQRl8xME1CX0hEEAESEQoNT0ZQUEZfMTBNQl9GRBACEhIKDk9GUFBGXzEwME1CX0hEEAQSEgoOT0ZQUEZfMTAwTUJfRkQQCBIQCgxPRlBQRl8xR0JfSEQQEBIQCgxPRlBQRl8xR0JfRkQQIBIRCg1PRlBQRl8xMEdCX0ZEEEASEgoNT0ZQUEZfNDBHQl9GRBCAARITCg5PRlBQRl8xMDBHQl9GRBCAAhIRCgxPRlBQRl8xVEJfRkQQgAQSEAoLT0ZQUEZfT1RIRVIQgAgSEQoMT0ZQUEZfQ09QUEVSEIAQEhAKC09GUFBGX0ZJQkVSEIAgEhIKDU9GUFBGX0FVVE9ORUcQgEASEQoLT0ZQUEZfUEFVU0UQgIABEhYKEE9GUFBGX1BBVVNFX0FTWU0QgIACKkQKD29mcF9wb3J0X3JlYXNvbhINCglPRlBQUl9BREQQABIQCgxPRlBQUl9ERUxFVEUQARIQCgxPRlBQUl9NT0RJRlkQAiozCg5vZnBfbWF0Y2hfdHlwZRISCg5PRlBNVF9TVEFOREFSRBAAEg0KCU9GUE1UX09YTRABKmsKDW9mcF9veG1fY2xhc3MSEAoMT0ZQWE1DX05YTV8wEAASEAoMT0ZQWE1DX05YTV8xEAESGwoVT0ZQWE1DX09QRU5GTE9XX0JBU0lDEICAAhIZChNPRlBYTUNfRVhQRVJJTUVOVEVSEP//AyqQCAoTb3htX29mYl9maWVsZF90eXBlcxIWChJPRlBYTVRfT0ZCX0lOX1BPUlQQABIaChZPRlBYTVRfT0ZCX0lOX1BIWV9QT1JUEAESFwoTT0ZQWE1UX09GQl9NRVRBREFUQRACEhYKEk9GUFhNVF9PRkJfRVRIX0RTVBADEhYKEk9GUFhNVF9PRkJfRVRIX1NSQxAEEhcKE09GUFhNVF9PRkJfRVRIX1RZUEUQBRIXChNPRlBYTVRfT0ZCX1ZMQU5fVklEEAYSFwoTT0ZQWE1UX09GQl9WTEFOX1BDUBAHEhYKEk9GUFhNVF9PRkJfSVBfRFNDUBAIEhUKEU9GUFhNVF9PRkJfSVBfRUNOEAkSFwoTT0ZQWE1UX09GQl9JUF9QUk9UTxAKEhcKE09GUFhNVF9PRkJfSVBWNF9TUkMQCxIXChNPRlBYTVRfT0ZCX0lQVjRfRFNUEAwSFgoST0ZQWE1UX09GQl9UQ1BfU1JDEA0SFgoST0ZQWE1UX09GQl9UQ1BfRFNUEA4SFgoST0ZQWE1UX09GQl9VRFBfU1JDEA8SFgoST0ZQWE1UX09GQl9VRFBfRFNUEBASFwoTT0ZQWE1UX09GQl9TQ1RQX1NSQxAREhcKE09GUFhNVF9PRkJfU0NUUF9EU1QQEhIaChZPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFEBMSGgoWT0ZQWE1UX09GQl9JQ01QVjRfQ09ERRAUEhUKEU9GUFhNVF9PRkJfQVJQX09QEBUSFgoST0ZQWE1UX09GQl9BUlBfU1BBEBYSFgoST0ZQWE1UX09GQl9BUlBfVFBBEBcSFgoST0ZQWE1UX09GQl9BUlBfU0hBEBgSFgoST0ZQWE1UX09GQl9BUlBfVEhBEBkSFwoTT0ZQWE1UX09GQl9JUFY2X1NSQxAaEhcKE09GUFhNVF9PRkJfSVBWNl9EU1QQGxIaChZPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMEBwSGgoWT0ZQWE1UX09GQl9JQ01QVjZfVFlQRRAdEhoKFk9GUFhNVF9PRkJfSUNNUFY2X0NPREUQHhIdChlPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VUEB8SGgoWT0ZQWE1UX09GQl9JUFY2X05EX1NMTBAgEhoKFk9GUFhNVF9PRkJfSVBWNl9ORF9UTEwQIRIZChVPRlBYTVRfT0ZCX01QTFNfTEFCRUwQIhIWChJPRlBYTVRfT0ZCX01QTFNfVEMQIxIXChNPRlBYTVRfT0ZCX01QTFNfQk9TECQSFwoTT0ZQWE1UX09GQl9QQkJfSVNJRBAlEhgKFE9GUFhNVF9PRkJfVFVOTkVMX0lEECYSGgoWT0ZQWE1UX09GQl9JUFY2X0VYVEhEUhAnKjMKC29mcF92bGFuX2lkEg8KC09GUFZJRF9OT05FEAASEwoOT0ZQVklEX1BSRVNFTlQQgCAqyQEKFG9mcF9pcHY2ZXh0aGRyX2ZsYWdzEhIKDk9GUElFSF9JTlZBTElEEAASEQoNT0ZQSUVIX05PTkVYVBABEg4KCk9GUElFSF9FU1AQAhIPCgtPRlBJRUhfQVVUSBAEEg8KC09GUElFSF9ERVNUEAgSDwoLT0ZQSUVIX0ZSQUcQEBIRCg1PRlBJRUhfUk9VVEVSECASDgoKT0ZQSUVIX0hPUBBAEhEKDE9GUElFSF9VTlJFUBCAARIRCgxPRlBJRUhfVU5TRVEQgAIq/AIKD29mcF9hY3Rpb25fdHlwZRIQCgxPRlBBVF9PVVRQVVQQABIWChJPRlBBVF9DT1BZX1RUTF9PVVQQCxIVChFPRlBBVF9DT1BZX1RUTF9JThAMEhYKEk9GUEFUX1NFVF9NUExTX1RUTBAPEhYKEk9GUEFUX0RFQ19NUExTX1RUTBAQEhMKD09GUEFUX1BVU0hfVkxBThAREhIKDk9GUEFUX1BPUF9WTEFOEBISEwoPT0ZQQVRfUFVTSF9NUExTEBMSEgoOT0ZQQVRfUE9QX01QTFMQFBITCg9PRlBBVF9TRVRfUVVFVUUQFRIPCgtPRlBBVF9HUk9VUBAWEhQKEE9GUEFUX1NFVF9OV19UVEwQFxIUChBPRlBBVF9ERUNfTldfVFRMEBgSEwoPT0ZQQVRfU0VUX0ZJRUxEEBkSEgoOT0ZQQVRfUFVTSF9QQkIQGhIRCg1PRlBBVF9QT1BfUEJCEBsSGAoST0ZQQVRfRVhQRVJJTUVOVEVSEP//AypWChZvZnBfY29udHJvbGxlcl9tYXhfbGVuEhIKDk9GUENNTF9JTlZBTElEEAASEAoKT0ZQQ01MX01BWBDl/wMSFgoQT0ZQQ01MX05PX0JVRkZFUhD//wMqzwEKFG9mcF9pbnN0cnVjdGlvbl90eXBlEhEKDU9GUElUX0lOVkFMSUQQABIUChBPRlBJVF9HT1RPX1RBQkxFEAESGAoUT0ZQSVRfV1JJVEVfTUVUQURBVEEQAhIXChNPRlBJVF9XUklURV9BQ1RJT05TEAMSFwoTT0ZQSVRfQVBQTFlfQUNUSU9OUxAEEhcKE09GUElUX0NMRUFSX0FDVElPTlMQBRIPCgtPRlBJVF9NRVRFUhAGEhgKEk9GUElUX0VYUEVSSU1FTlRFUhD//wMqewoUb2ZwX2Zsb3dfbW9kX2NvbW1hbmQSDQoJT0ZQRkNfQUREEAASEAoMT0ZQRkNfTU9ESUZZEAESFwoTT0ZQRkNfTU9ESUZZX1NUUklDVBACEhAKDE9GUEZDX0RFTEVURRADEhcKE09GUEZDX0RFTEVURV9TVFJJQ1QQBCqjAQoSb2ZwX2Zsb3dfbW9kX2ZsYWdzEhEKDU9GUEZGX0lOVkFMSUQQABIXChNPRlBGRl9TRU5EX0ZMT1dfUkVNEAESFwoTT0ZQRkZfQ0hFQ0tfT1ZFUkxBUBACEhYKEk9GUEZGX1JFU0VUX0NPVU5UUxAEEhcKE09GUEZGX05PX1BLVF9DT1VOVFMQCBIXChNPRlBGRl9OT19CWVRfQ09VTlRTEBAqUwoJb2ZwX2dyb3VwEhAKDE9GUEdfSU5WQUxJRBAAEhAKCE9GUEdfTUFYEID+//8HEhAKCE9GUEdfQUxMEPz///8HEhAKCE9GUEdfQU5ZEP////8HKkoKFW9mcF9ncm91cF9tb2RfY29tbWFuZBINCglPRlBHQ19BREQQABIQCgxPRlBHQ19NT0RJRlkQARIQCgxPRlBHQ19ERUxFVEUQAipTCg5vZnBfZ3JvdXBfdHlwZRINCglPRlBHVF9BTEwQABIQCgxPRlBHVF9TRUxFQ1QQARISCg5PRlBHVF9JTkRJUkVDVBACEgwKCE9GUEdUX0ZGEAMqUAoUb2ZwX3BhY2tldF9pbl9yZWFzb24SEQoNT0ZQUl9OT19NQVRDSBAAEg8KC09GUFJfQUNUSU9OEAESFAoQT0ZQUl9JTlZBTElEX1RUTBACKosBChdvZnBfZmxvd19yZW1vdmVkX3JlYXNvbhIWChJPRlBSUl9JRExFX1RJTUVPVVQQABIWChJPRlBSUl9IQVJEX1RJTUVPVVQQARIQCgxPRlBSUl9ERUxFVEUQAhIWChJPRlBSUl9HUk9VUF9ERUxFVEUQAxIWChJPRlBSUl9NRVRFUl9ERUxFVEUQBCpuCglvZnBfbWV0ZXISDQoJT0ZQTV9aRVJPEAASEAoIT0ZQTV9NQVgQgID8/wcSFQoNT0ZQTV9TTE9XUEFUSBD9////BxIXCg9PRlBNX0NPTlRST0xMRVIQ/v///wcSEAoIT0ZQTV9BTEwQ/////wcqbQoTb2ZwX21ldGVyX2JhbmRfdHlwZRISCg5PRlBNQlRfSU5WQUxJRBAAEg8KC09GUE1CVF9EUk9QEAESFgoST0ZQTUJUX0RTQ1BfUkVNQVJLEAISGQoTT0ZQTUJUX0VYUEVSSU1FTlRFUhD//wMqSgoVb2ZwX21ldGVyX21vZF9jb21tYW5kEg0KCU9GUE1DX0FERBAAEhAKDE9GUE1DX01PRElGWRABEhAKDE9GUE1DX0RFTEVURRACKmcKD29mcF9tZXRlcl9mbGFncxIRCg1PRlBNRl9JTlZBTElEEAASDgoKT0ZQTUZfS0JQUxABEg8KC09GUE1GX1BLVFBTEAISDwoLT0ZQTUZfQlVSU1QQBBIPCgtPRlBNRl9TVEFUUxAIKqQDCg5vZnBfZXJyb3JfdHlwZRIWChJPRlBFVF9IRUxMT19GQUlMRUQQABIVChFPRlBFVF9CQURfUkVRVUVTVBABEhQKEE9GUEVUX0JBRF9BQ1RJT04QAhIZChVPRlBFVF9CQURfSU5TVFJVQ1RJT04QAxITCg9PRlBFVF9CQURfTUFUQ0gQBBIZChVPRlBFVF9GTE9XX01PRF9GQUlMRUQQBRIaChZPRlBFVF9HUk9VUF9NT0RfRkFJTEVEEAYSGQoVT0ZQRVRfUE9SVF9NT0RfRkFJTEVEEAcSGgoWT0ZQRVRfVEFCTEVfTU9EX0ZBSUxFRBAIEhkKFU9GUEVUX1FVRVVFX09QX0ZBSUxFRBAJEh4KGk9GUEVUX1NXSVRDSF9DT05GSUdfRkFJTEVEEAoSHQoZT0ZQRVRfUk9MRV9SRVFVRVNUX0ZBSUxFRBALEhoKFk9GUEVUX01FVEVSX01PRF9GQUlMRUQQDBIfChtPRlBFVF9UQUJMRV9GRUFUVVJFU19GQUlMRUQQDRIYChJPRlBFVF9FWFBFUklNRU5URVIQ//8DKkIKFW9mcF9oZWxsb19mYWlsZWRfY29kZRIXChNPRlBIRkNfSU5DT01QQVRJQkxFEAASEAoMT0ZQSEZDX0VQRVJNEAEq7QIKFG9mcF9iYWRfcmVxdWVzdF9jb2RlEhYKEk9GUEJSQ19CQURfVkVSU0lPThAAEhMKD09GUEJSQ19CQURfVFlQRRABEhgKFE9GUEJSQ19CQURfTVVMVElQQVJUEAISGwoXT0ZQQlJDX0JBRF9FWFBFUklNRU5URVIQAxIXChNPRlBCUkNfQkFEX0VYUF9UWVBFEAQSEAoMT0ZQQlJDX0VQRVJNEAUSEgoOT0ZQQlJDX0JBRF9MRU4QBhIXChNPRlBCUkNfQlVGRkVSX0VNUFRZEAcSGQoVT0ZQQlJDX0JVRkZFUl9VTktOT1dOEAgSFwoTT0ZQQlJDX0JBRF9UQUJMRV9JRBAJEhMKD09GUEJSQ19JU19TTEFWRRAKEhMKD09GUEJSQ19CQURfUE9SVBALEhUKEU9GUEJSQ19CQURfUEFDS0VUEAwSJAogT0ZQQlJDX01VTFRJUEFSVF9CVUZGRVJfT1ZFUkZMT1cQDSqcAwoTb2ZwX2JhZF9hY3Rpb25fY29kZRITCg9PRlBCQUNfQkFEX1RZUEUQABISCg5PRlBCQUNfQkFEX0xFThABEhsKF09GUEJBQ19CQURfRVhQRVJJTUVOVEVSEAISFwoTT0ZQQkFDX0JBRF9FWFBfVFlQRRADEhcKE09GUEJBQ19CQURfT1VUX1BPUlQQBBIXChNPRlBCQUNfQkFEX0FSR1VNRU5UEAUSEAoMT0ZQQkFDX0VQRVJNEAYSEwoPT0ZQQkFDX1RPT19NQU5ZEAcSFAoQT0ZQQkFDX0JBRF9RVUVVRRAIEhgKFE9GUEJBQ19CQURfT1VUX0dST1VQEAkSHQoZT0ZQQkFDX01BVENIX0lOQ09OU0lTVEVOVBAKEhwKGE9GUEJBQ19VTlNVUFBPUlRFRF9PUkRFUhALEhIKDk9GUEJBQ19CQURfVEFHEAwSFwoTT0ZQQkFDX0JBRF9TRVRfVFlQRRANEhYKEk9GUEJBQ19CQURfU0VUX0xFThAOEhsKF09GUEJBQ19CQURfU0VUX0FSR1VNRU5UEA8q+gEKGG9mcF9iYWRfaW5zdHJ1Y3Rpb25fY29kZRIXChNPRlBCSUNfVU5LTk9XTl9JTlNUEAASFQoRT0ZQQklDX1VOU1VQX0lOU1QQARIXChNPRlBCSUNfQkFEX1RBQkxFX0lEEAISGQoVT0ZQQklDX1VOU1VQX01FVEFEQVRBEAMSHgoaT0ZQQklDX1VOU1VQX01FVEFEQVRBX01BU0sQBBIbChdPRlBCSUNfQkFEX0VYUEVSSU1FTlRFUhAFEhcKE09GUEJJQ19CQURfRVhQX1RZUEUQBhISCg5PRlBCSUNfQkFEX0xFThAHEhAKDE9GUEJJQ19FUEVSTRAIKqUCChJvZnBfYmFkX21hdGNoX2NvZGUSEwoPT0ZQQk1DX0JBRF9UWVBFEAASEgoOT0ZQQk1DX0JBRF9MRU4QARISCg5PRlBCTUNfQkFEX1RBRxACEhsKF09GUEJNQ19CQURfRExfQUREUl9NQVNLEAMSGwoXT0ZQQk1DX0JBRF9OV19BRERSX01BU0sQBBIYChRPRlBCTUNfQkFEX1dJTERDQVJEUxAFEhQKEE9GUEJNQ19CQURfRklFTEQQBhIUChBPRlBCTUNfQkFEX1ZBTFVFEAcSEwoPT0ZQQk1DX0JBRF9NQVNLEAgSFQoRT0ZQQk1DX0JBRF9QUkVSRVEQCRIUChBPRlBCTUNfRFVQX0ZJRUxEEAoSEAoMT0ZQQk1DX0VQRVJNEAsq0gEKGG9mcF9mbG93X21vZF9mYWlsZWRfY29kZRITCg9PRlBGTUZDX1VOS05PV04QABIWChJPRlBGTUZDX1RBQkxFX0ZVTEwQARIYChRPRlBGTUZDX0JBRF9UQUJMRV9JRBACEhMKD09GUEZNRkNfT1ZFUkxBUBADEhEKDU9GUEZNRkNfRVBFUk0QBBIXChNPRlBGTUZDX0JBRF9USU1FT1VUEAUSFwoTT0ZQRk1GQ19CQURfQ09NTUFORBAGEhUKEU9GUEZNRkNfQkFEX0ZMQUdTEAcqoQMKGW9mcF9ncm91cF9tb2RfZmFpbGVkX2NvZGUSGAoUT0ZQR01GQ19HUk9VUF9FWElTVFMQABIZChVPRlBHTUZDX0lOVkFMSURfR1JPVVAQARIeChpPRlBHTUZDX1dFSUdIVF9VTlNVUFBPUlRFRBACEhkKFU9GUEdNRkNfT1VUX09GX0dST1VQUxADEhoKFk9GUEdNRkNfT1VUX09GX0JVQ0tFVFMQBBIgChxPRlBHTUZDX0NIQUlOSU5HX1VOU1VQUE9SVEVEEAUSHQoZT0ZQR01GQ19XQVRDSF9VTlNVUFBPUlRFRBAGEhAKDE9GUEdNRkNfTE9PUBAHEhkKFU9GUEdNRkNfVU5LTk9XTl9HUk9VUBAIEhkKFU9GUEdNRkNfQ0hBSU5FRF9HUk9VUBAJEhQKEE9GUEdNRkNfQkFEX1RZUEUQChIXChNPRlBHTUZDX0JBRF9DT01NQU5EEAsSFgoST0ZQR01GQ19CQURfQlVDS0VUEAwSFQoRT0ZQR01GQ19CQURfV0FUQ0gQDRIRCg1PRlBHTUZDX0VQRVJNEA4qjwEKGG9mcF9wb3J0X21vZF9mYWlsZWRfY29kZRIUChBPRlBQTUZDX0JBRF9QT1JUEAASFwoTT0ZQUE1GQ19CQURfSFdfQUREUhABEhYKEk9GUFBNRkNfQkFEX0NPTkZJRxACEhkKFU9GUFBNRkNfQkFEX0FEVkVSVElTRRADEhEKDU9GUFBNRkNfRVBFUk0QBCpdChlvZnBfdGFibGVfbW9kX2ZhaWxlZF9jb2RlEhUKEU9GUFRNRkNfQkFEX1RBQkxFEAASFgoST0ZQVE1GQ19CQURfQ09ORklHEAESEQoNT0ZQVE1GQ19FUEVSTRACKloKGG9mcF9xdWV1ZV9vcF9mYWlsZWRfY29kZRIUChBPRlBRT0ZDX0JBRF9QT1JUEAASFQoRT0ZQUU9GQ19CQURfUVVFVUUQARIRCg1PRlBRT0ZDX0VQRVJNEAIqXgodb2ZwX3N3aXRjaF9jb25maWdfZmFpbGVkX2NvZGUSFQoRT0ZQU0NGQ19CQURfRkxBR1MQABITCg9PRlBTQ0ZDX0JBRF9MRU4QARIRCg1PRlBTQ0ZDX0VQRVJNEAIqWgocb2ZwX3JvbGVfcmVxdWVzdF9mYWlsZWRfY29kZRIRCg1PRlBSUkZDX1NUQUxFEAASEQoNT0ZQUlJGQ19VTlNVUBABEhQKEE9GUFJSRkNfQkFEX1JPTEUQAirFAgoZb2ZwX21ldGVyX21vZF9mYWlsZWRfY29kZRITCg9PRlBNTUZDX1VOS05PV04QABIYChRPRlBNTUZDX01FVEVSX0VYSVNUUxABEhkKFU9GUE1NRkNfSU5WQUxJRF9NRVRFUhACEhkKFU9GUE1NRkNfVU5LTk9XTl9NRVRFUhADEhcKE09GUE1NRkNfQkFEX0NPTU1BTkQQBBIVChFPRlBNTUZDX0JBRF9GTEFHUxAFEhQKEE9GUE1NRkNfQkFEX1JBVEUQBhIVChFPRlBNTUZDX0JBRF9CVVJTVBAHEhQKEE9GUE1NRkNfQkFEX0JBTkQQCBIbChdPRlBNTUZDX0JBRF9CQU5EX0RFVEFJTBAJEhkKFU9GUE1NRkNfT1VUX09GX01FVEVSUxAKEhgKFE9GUE1NRkNfT1VUX09GX0JBTkRTEAsqqQEKHm9mcF90YWJsZV9mZWF0dXJlc19mYWlsZWRfY29kZRIVChFPRlBURkZDX0JBRF9UQUJMRRAAEhgKFE9GUFRGRkNfQkFEX01FVEFEQVRBEAESFAoQT0ZQVEZGQ19CQURfVFlQRRACEhMKD09GUFRGRkNfQkFEX0xFThADEhgKFE9GUFRGRkNfQkFEX0FSR1VNRU5UEAQSEQoNT0ZQVEZGQ19FUEVSTRAFKs4CChJvZnBfbXVsdGlwYXJ0X3R5cGUSDgoKT0ZQTVBfREVTQxAAEg4KCk9GUE1QX0ZMT1cQARITCg9PRlBNUF9BR0dSRUdBVEUQAhIPCgtPRlBNUF9UQUJMRRADEhQKEE9GUE1QX1BPUlRfU1RBVFMQBBIPCgtPRlBNUF9RVUVVRRAFEg8KC09GUE1QX0dST1VQEAYSFAoQT0ZQTVBfR1JPVVBfREVTQxAHEhgKFE9GUE1QX0dST1VQX0ZFQVRVUkVTEAgSDwoLT0ZQTVBfTUVURVIQCRIWChJPRlBNUF9NRVRFUl9DT05GSUcQChIYChRPRlBNUF9NRVRFUl9GRUFUVVJFUxALEhgKFE9GUE1QX1RBQkxFX0ZFQVRVUkVTEAwSEwoPT0ZQTVBfUE9SVF9ERVNDEA0SGAoST0ZQTVBfRVhQRVJJTUVOVEVSEP//AypKChtvZnBfbXVsdGlwYXJ0X3JlcXVlc3RfZmxhZ3MSFgoST0ZQTVBGX1JFUV9JTlZBTElEEAASEwoPT0ZQTVBGX1JFUV9NT1JFEAEqTAoZb2ZwX211bHRpcGFydF9yZXBseV9mbGFncxIYChRPRlBNUEZfUkVQTFlfSU5WQUxJRBAAEhUKEU9GUE1QRl9SRVBMWV9NT1JFEAEq5AMKG29mcF90YWJsZV9mZWF0dXJlX3Byb3BfdHlwZRIYChRPRlBURlBUX0lOU1RSVUNUSU9OUxAAEh0KGU9GUFRGUFRfSU5TVFJVQ1RJT05TX01JU1MQARIXChNPRlBURlBUX05FWFRfVEFCTEVTEAISHAoYT0ZQVEZQVF9ORVhUX1RBQkxFU19NSVNTEAMSGQoVT0ZQVEZQVF9XUklURV9BQ1RJT05TEAQSHgoaT0ZQVEZQVF9XUklURV9BQ1RJT05TX01JU1MQBRIZChVPRlBURlBUX0FQUExZX0FDVElPTlMQBhIeChpPRlBURlBUX0FQUExZX0FDVElPTlNfTUlTUxAHEhEKDU9GUFRGUFRfTUFUQ0gQCBIVChFPRlBURlBUX1dJTERDQVJEUxAKEhoKFk9GUFRGUFRfV1JJVEVfU0VURklFTEQQDBIfChtPRlBURlBUX1dSSVRFX1NFVEZJRUxEX01JU1MQDRIaChZPRlBURlBUX0FQUExZX1NFVEZJRUxEEA4SHwobT0ZQVEZQVF9BUFBMWV9TRVRGSUVMRF9NSVNTEA8SGgoUT0ZQVEZQVF9FWFBFUklNRU5URVIQ/v8DEh8KGU9GUFRGUFRfRVhQRVJJTUVOVEVSX01JU1MQ//8DKpMBChZvZnBfZ3JvdXBfY2FwYWJpbGl0aWVzEhIKDk9GUEdGQ19JTlZBTElEEAASGAoUT0ZQR0ZDX1NFTEVDVF9XRUlHSFQQARIaChZPRlBHRkNfU0VMRUNUX0xJVkVORVNTEAISEwoPT0ZQR0ZDX0NIQUlOSU5HEAQSGgoWT0ZQR0ZDX0NIQUlOSU5HX0NIRUNLUxAIKmsKFG9mcF9xdWV1ZV9wcm9wZXJ0aWVzEhEKDU9GUFFUX0lOVkFMSUQQABISCg5PRlBRVF9NSU5fUkFURRABEhIKDk9GUFFUX01BWF9SQVRFEAISGAoST0ZQUVRfRVhQRVJJTUVOVEVSEP//AypxChNvZnBfY29udHJvbGxlcl9yb2xlEhcKE09GUENSX1JPTEVfTk9DSEFOR0UQABIUChBPRlBDUl9ST0xFX0VRVUFMEAESFQoRT0ZQQ1JfUk9MRV9NQVNURVIQAhIUChBPRlBDUl9ST0xFX1NMQVZFEANCVQoeb3JnLm9wZW5jb3JkLnZvbHRoYS5vcGVuZmxvdzEzWjNnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb3BlbmZsb3dfMTNK67QGCgcSBTkAhhIBCuQUCgEMEgM5ABIa+QYKIFRoaXMgaXMgYSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZCByZW5kZXJpbmcgb2YgT3BlbkZsb3cgbWVzc2FnZQogZGVmaW5pdGlvbnMgaW50byBwcm90b2NvbCBidWZmZXIgbWVzc2FnZXMuIFdlIHByZXNlcnZlZCB0aGUgc25ha2UKIGNhc2Ugc3ludGF4LCBhbmQgbWFkZSB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CiAtIGFsbCBwYWQgZmllbGRzIGRyb3BwZWQKIC0gZm9yIGVhY2ggZW51bSB2YWx1ZSBhYm92ZSAweDdmZmZmZmZmIHRoZSBNU0IgaXMgZHJvcHBlZC4gRm9yIGV4YW1wbGUsCiAgIDB4ZmZmZmZmZmYgaXMgbm93IDB4N2ZmZmZmZmYuCiAtICc8dHlwZT4gdGhpbmdbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAncmVwZWF0ZWQgPHR5cGU+IHRoaW5nJwogLSAnY2hhciB0aGluZ1suLi5dJyBpcyByZXBsYWNlZCB3aXRoICdzdHJpbmcgdGhpbmcnCiAtICd1aW50OF90IGRhdGFbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAnYnl0ZXMgZGF0YScKIC0gdGhlIGZvbGxvd2luZyBzeXN0ZW1hdGljIGNoYW5nZXMgYXJlIGRvbmUgdG8gdmFyaW91cyBpbnRlZ2VyIHR5cGVzOgogICB1aW50OF90ICAtPiB1aW50MzIKICAgdWludDE2X3QgLT4gdWludDMyCiAgIHVpbnQzMl90IC0+IHVpbnQzMgogICB1aW50NjRfdCAtPiB1aW50NjQKIC0gcmVtb3ZlZCBtb3N0IGxlbmd0aCwgbGVuLCBzaXplIGZpZWxkcyB3aGVyZSB0aGVzZSB2YWx1ZXMgY2FuIGJlIGRldGVybWluZWQKICAgZnJvbSB0aGUgZXhwbGljaXRseSBlbmNvZGVkIGxlbmd0aCBvZiAicmVwZWF0ZWQiIHByb3RvYnVmIGZpZWxkcy4KIC0gZXhwbGljaXQgdXNlIG9mIGVudW0gdHlwZXMgd2hlcmVldmVyIGl0IGlzIHVuYW1iaWdvdXMgKGFuZCBub3QgdXNlZCBhcwogICBiaXRtYXNrL2ZsYWdzIHZhbHVlLgoKMqYNIENvcHlyaWdodCAoYykgMjAwOCBUaGUgQm9hcmQgb2YgVHJ1c3RlZXMgb2YgVGhlIExlbGFuZCBTdGFuZm9yZAogSnVuaW9yIFVuaXZlcnNpdHkKIENvcHlyaWdodCAoYykgMjAxMSwgMjAxMiBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIFdlIGFyZSBtYWtpbmcgdGhlIE9wZW5GbG93IHNwZWNpZmljYXRpb24gYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgogKFNvZnR3YXJlKSBhdmFpbGFibGUgZm9yIHB1YmxpYyB1c2UgYW5kIGJlbmVmaXQgd2l0aCB0aGUgZXhwZWN0YXRpb24KIHRoYXQgb3RoZXJzIHdpbGwgdXNlLCBtb2RpZnkgYW5kIGVuaGFuY2UgdGhlIFNvZnR3YXJlIGFuZCBjb250cmlidXRlCiB0aG9zZSBlbmhhbmNlbWVudHMgYmFjayB0byB0aGUgY29tbXVuaXR5LiBIb3dldmVyLCBzaW5jZSB3ZSB3b3VsZAogbGlrZSB0byBtYWtlIHRoZSBTb2Z0d2FyZSBhdmFpbGFibGUgZm9yIGJyb2FkZXN0IHVzZSwgd2l0aCBhcyBmZXcKIHJlc3RyaWN0aW9ucyBhcyBwb3NzaWJsZSBwZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mCiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIFNvZnR3YXJlIHRvIGRlYWwgaW4KIHRoZSBTb2Z0d2FyZSB1bmRlciB0aGUgY29weXJpZ2h0cyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAogTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKIFNPRlRXQVJFLgoKIFRoZSBuYW1lIGFuZCB0cmFkZW1hcmtzIG9mIGNvcHlyaWdodCBob2xkZXIocykgbWF5IE5PVCBiZSB1c2VkIGluCiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byB0aGUgU29mdHdhcmUgb3IgYW55CiBkZXJpdmF0aXZlcyB3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uCjI1IE9wZW5GbG93OiBwcm90b2NvbCBiZXR3ZWVuIGNvbnRyb2xsZXIgYW5kIGRhdGFwYXRoLiAKCAoBCBIDOwBKCgkKAggLEgM7AEoKCAoBCBIDPAA3CgkKAggBEgM8ADcKCAoBAhIDPgAUCgkKAgMAEgNAACYKpgQKAgUAEgRUAGkBGjUgUG9ydCBudW1iZXJpbmcuIFBvcnRzIGFyZSBudW1iZXJlZCBzdGFydGluZyBmcm9tIDEuIDJjIFZlcnNpb24gbnVtYmVyOgogT3BlbkZsb3cgdmVyc2lvbnMgcmVsZWFzZWQ6IDB4MDEgPSAxLjAgOyAweDAyID0gMS4xIDsgMHgwMyA9IDEuMgogICAgIDB4MDQgPSAxLjMKMlUgVGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IGluIHRoZSB2ZXJzaW9uIGZpZWxkIGlzIHJlc2VydmVkIGFuZCBtdXN0CiBiZSBzZXQgdG8gemVyby4KMnojZGVmaW5lIE9GUF9WRVJTSU9OICAgMHgwNAojZGVmaW5lIFBJUEVMSU5FX1RBQkxFUyA2NAojZGVmaW5lIE9GUF9NQVhfVEFCTEVfTkFNRV9MRU4gMzIKI2RlZmluZSBPRlBfTUFYX1BPUlRfTkFNRV9MRU4gIDE2CjItIE9mZmljaWFsIElBTkEgcmVnaXN0ZXJlZCBwb3J0IGZvciBPcGVuRmxvdy4gMjYjZGVmaW5lIE9GUF9UQ1BfUE9SVCAgNjY1MwojZGVmaW5lIE9GUF9TU0xfUE9SVCAgNjY1MwoyRCNkZWZpbmUgT0ZQX0VUSF9BTEVOIDYgICAgICAgICAgLyogQnl0ZXMgaW4gYW4gRXRoZXJuZXQgYWRkcmVzcy4gKi8KCgoKAwUAARIDVAUQCgsKBAUAAgASA1UEGAoMCgUFAAIAARIDVQQQCgwKBQUAAgACEgNVFhcKQwoEBQACARIDWAQhGjYgTWF4aW11bSBudW1iZXIgb2YgcGh5c2ljYWwgYW5kIGxvZ2ljYWwgc3dpdGNoIHBvcnRzLiAKDAoFBQACAQESA1gEDAoMCgUFAAIBAhIDWBYgCrwBCgQFAAICEgNbBCEaLyBSZXNlcnZlZCBPcGVuRmxvdyBQb3J0IChmYWtlIG91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IDB4N0ZGRiBhcmUgbWVtYmVyIGNsYXNzZXMsIGFsbG9jYXRlZCBieSBPTkYuCiBDbGFzc2VzIDB4ODAwMCB0byAweEZGRkUgYXJlIHJlc2VydmVkIGNsYXNzZXMsIHJlc2VydmVkIGZvciBzdGFuZGFyZGlzYXRpb24uCjKpASBDb21wb25lbnRzIG9mIGEgT1hNIFRMViBoZWFkZXIuCiBUaG9zZSBtYWNyb3MgYXJlIG5vdCB2YWxpZCBmb3IgdGhlIGV4cGVyaW1lbnRlciBjbGFzcywgbWFjcm9zIGZvciB0aGUKIGV4cGVyaW1lbnRlciBjbGFzcyB3aWxsIGRlcGVuZCBvbiB0aGUgZXhwZXJpbWVudGVyIGhlYWRlciB1c2VkLiAykwUjZGVmaW5lIE9YTV9IRUFERVJfXyhDTEFTUywgRklFTEQsIEhBU01BU0ssIExFTkdUSCkgXAogICAgKCgoQ0xBU1MpIDw8IDE2KSB8ICgoRklFTEQpIDw8IDkpIHwgKChIQVNNQVNLKSA8PCA4KSB8IChMRU5HVEgpKQojZGVmaW5lIE9YTV9IRUFERVIoQ0xBU1MsIEZJRUxELCBMRU5HVEgpIFwKICAgIE9YTV9IRUFERVJfXyhDTEFTUywgRklFTEQsIDAsIExFTkdUSCkKI2RlZmluZSBPWE1fSEVBREVSX1coQ0xBU1MsIEZJRUxELCBMRU5HVEgpIFwKICAgIE9YTV9IRUFERVJfXyhDTEFTUywgRklFTEQsIDEsIChMRU5HVEgpICogMikKI2RlZmluZSBPWE1fQ0xBU1MoSEVBREVSKSAoKEhFQURFUikgPj4gMTYpCiNkZWZpbmUgT1hNX0ZJRUxEKEhFQURFUikgKCgoSEVBREVSKSA+PiA5KSAmIDB4N2YpCiNkZWZpbmUgT1hNX1RZUEUoSEVBREVSKSAoKChIRUFERVIpID4+IDkpICYgMHg3ZmZmZmYpCiNkZWZpbmUgT1hNX0hBU01BU0soSEVBREVSKSAoKChIRUFERVIpID4+IDgpICYgMSkKI2RlZmluZSBPWE1fTEVOR1RIKEhFQURFUikgKChIRUFERVIpICYgMHhmZikKCiNkZWZpbmUgT1hNX01BS0VfV0lMRF9IRUFERVIoSEVBREVSKSBcCiAgICBPWE1fSEVBREVSX1co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2wMYHAoNCgUEDAIAAxIE2wMfIAoMCgQEDAIBEgTcAwQWCg8KBQQMAgEEEgbcAwTbAyEKDQoFBAwCAQUSBNwDBAgKDQoFBAwCAQESBNwDCREKDQoFBAwCAQMSBNwDFBUKDgoEBAwIABIG3QMEmQcFCg0KBQQMCAABEgTdAwoPCsoCCgQEDAICEgToAwgYGkYjZGVmaW5lIE9YTV9PRl9JTl9QT1JUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSU5fUE9SVCwgNCkKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9JTl9QT1JUIDLUASBPcGVuRmxvdyBwb3J0IG9uIHdoaWNoIHRoZSBwYWNrZXQgd2FzIHJlY2VpdmVkLgogTWF5IGJlIGEgcGh5c2ljYWwgcG9ydCwgYSBsb2dpY2FsIHBvcnQsIG9yIHRoZSByZXNlcnZlZCBwb3J0IE9GUFBfTE9DQUwKCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgIFEgToAwgOCg0KBQQMAgIBEgToAw8TCg0KBQQMAgIDEgToAxYXCrcHCgQEDAIDEgT/AwghGksjZGVmaW5lIE9YTV9PRl9JTl9QSFlfUE9SVCBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lOX1BIWV9QT1JULCA0KQoiICBVc2VkIGZvciBPRlBYTVRfT0ZfSU5fUEhZX1BPUlQgMrkGIFBoeXNpY2FsIHBvcnQgb24gd2hpY2ggdGhlIHBhY2tldCB3YXMgcmVjZWl2ZWQuCgogQ29uc2lkZXIgYSBwYWNrZXQgcmVjZWl2ZWQgb24gYSB0dW5uZWwgaW50ZXJmYWNlIGRlZmluZWQgb3ZlciBhIGxpbmsKIGFnZ3JlZ2F0aW9uIGdyb3VwIChMQUcpIHdpdGggdHdvIHBoeXNpY2FsIHBvcnQgbWVtYmVycy4gIElmIHRoZSB0dW5uZWwKIGludGVyZmFjZSBpcyB0aGUgbG9naWNhbCBwb3J0IGJvdW5kIHRvIE9wZW5GbG93LiAgSW4gdGhpcyBjYXNlLAogT0ZQWE1UX09GX0lOX1BPUlQgaXMgdGhlIHR1bm5lbCdzIHBvcnQgbnVtYmVyIGFuZCBPRlBYTVRfT0ZfSU5fUEhZX1BPUlQgaXMKIHRoZSBwaHlzaWNhbCBwb3J0IG51bWJlciBvZiB0aGUgTEFHIG9uIHdoaWNoIHRoZSB0dW5uZWwgaXMgY29uZmlndXJlZC4KCiBXaGVuIGEgcGFja2V0IGlzIHJlY2VpdmVkIGRpcmVjdGx5IG9uIGEgcGh5c2ljYWwgcG9ydCBhbmQgbm90IHByb2Nlc3NlZCBieSBhCiBsb2dpY2FsIHBvcnQsIE9GUFhNVF9PRl9JTl9QT1JUIGFuZCBPRlBYTVRfT0ZfSU5fUEhZX1BPUlQgaGF2ZSB0aGUgc2FtZQogdmFsdWUuCgogVGhpcyBmaWVsZCBpcyB1c3VhbGx5IG5vdCBhdmFpbGFibGUgaW4gYSByZWd1bGFyIG1hdGNoIGFuZCBvbmx5IGF2YWlsYWJsZQogaW4gb2ZwX3BhY2tldF9pbiBtZXNzYWdlcyB3aGVuIGl0J3MgZGlmZmVyZW50IGZyb20gT1hNX09GX0lOX1BPUlQuCgogUHJlcmVxczogT1hNX09GX0lOX1BPUlQgbXVzdCBiZSBwcmVzZW50LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgMFEgT/AwgOCg0KBQQMAgMBEgT/Aw8cCg0KBQQMAgMDEgT/Ax8gCq0CCgQEDAIEEgSLBAgiGo4BI2RlZmluZSBPWE1fT0ZfTUVUQURBVEEgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01FVEFEQVRBLCA4KQojZGVmaW5lIE9YTV9PRl9NRVRBREFUQV9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfTUVUQURBVEEsIDgpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfTUVUQURBVEEgMm4gVGFibGUgbWV0YWRhdGEuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDY0LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDAIEBRIEiwQIDgoNCgUEDAIEARIEiwQPHQoNCgUEDAIEAxIEiwQgIQriAwoEBAwCBRIEmAQIGhqYAiNkZWZpbmUgT1hNX09GX0VUSF9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfRFNULCA2KQojZGVmaW5lIE9YTV9PRl9FVEhfRFNUX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfRVRIX0RTVCwgNikKI2RlZmluZSBPWE1fT0ZfRVRIX1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9TUkMsIDYpCiNkZWZpbmUgT1hNX09GX0VUSF9TUkNfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfU1JDLCA2KQoiLyBVc2VkIGZvciBPRlBYTVRfT0ZCX0VUSF9EU1QgKGV4YWN0bHkgNiBieXRlcykgMocBIFNvdXJjZSBvciBkZXN0aW5hdGlvbiBhZGRyZXNzIGluIEV0aGVybmV0IGhlYWRlci4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4gCg0KBQQMAgUFEgSYBAgNCg0KBQQMAgUBEgSYBA4VCg0KBQQMAgUDEgSYBBgZCj0KBAQMAgYSBJkECBoiLyBVc2VkIGZvciBPRlBYTVRfT0ZCX0VUSF9TUkMgKGV4YWN0bHkgNiBieXRlcykgCg0KBQQMAgYFEgSZBAgNCg0KBQQMAgYBEgSZBA4VCg0KBQQMAgYDEgSZBBgZCukBCgQEDAIHEgSjBAgcGkYjZGVmaW5lIE9YTV9PRl9FVEhfVFlQRSAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfRVRIX1RZUEUsMikKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9FVEhfVFlQRSAycyBQYWNrZXQncyBFdGhlcm5ldCB0eXBlLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCBwUSBKMECA4KDQoFBAwCBwESBKMEDxcKDQoFBAwCBwMSBKMEGhsKgwsKBAQMAggSBMkECBwajgEjZGVmaW5lIE9YTV9PRl9WTEFOX1ZJRCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVkxBTl9WSUQsIDIpCiNkZWZpbmUgT1hNX09GX1ZMQU5fVklEX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9WTEFOX1ZJRCwgMikKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9WTEFOX1ZJRCAywwkgODAyLjFRIFZJRC4KCiBGb3IgYSBwYWNrZXQgd2l0aCBhbiA4MDIuMVEgaGVhZGVyLCB0aGlzIGlzIHRoZSBWTEFOLUlEIChWSUQpIGZyb20gdGhlCiBvdXRlcm1vc3QgdGFnLCB3aXRoIHRoZSBDRkkgYml0IGZvcmNlZCB0byAxLiBGb3IgYSBwYWNrZXQgd2l0aCBubyA4MDIuMVEKIGhlYWRlciwgdGhpcyBoYXMgdmFsdWUgT0ZQVklEX05PTkUuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlciB3aXRoIGJpdCAxMyBpbmRpY2F0aW5nCiBwcmVzZW5jZSBvZiBWTEFOIGhlYWRlciBhbmQgMyBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAxMyBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgogVGhpcyBmaWVsZCBjYW4gYmUgdXNlZCBpbiB2YXJpb3VzIHdheXM6CgogICAtIElmIGl0IGlzIG5vdCBjb25zdHJhaW5lZCBhdCBhbGwsIHRoZSBueF9tYXRjaCBtYXRjaGVzIHBhY2tldHMgd2l0aG91dAogICAgIGFuIDgwMi4xUSBoZWFkZXIgb3Igd2l0aCBhbiA4MDIuMVEgaGVhZGVyIHRoYXQgaGFzIGFueSBWSUQgdmFsdWUuCgogICAtIFRlc3RpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIHdpdGggMHgwIG1hdGNoZXMgb25seSBwYWNrZXRzIHdpdGhvdXQKICAgICBhbiA4MDIuMVEgaGVhZGVyLgoKICAgLSBUZXN0aW5nIGZvciBhbiBleGFjdCBtYXRjaCB3aXRoIGEgVklEIHZhbHVlIHdpdGggQ0ZJPTEgbWF0Y2hlcyBwYWNrZXRzCiAgICAgdGhhdCBoYXZlIGFuIDgwMi4xUSBoZWFkZXIgd2l0aCBhIHNwZWNpZmllZCBWSUQuCgogICAtIFRlc3RpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIHdpdGggYSBub256ZXJvIFZJRCB2YWx1ZSB3aXRoIENGST0wIGRvZXMKICAgICBub3QgbWFrZSBzZW5zZS4gIFRoZSBzd2l0Y2ggbWF5IHJlamVjdCB0aGlzIGNvbWJpbmF0aW9uLgoKICAgLSBUZXN0aW5nIHdpdGggbnhtX3ZhbHVlPTAsIG54bV9tYXNrPTB4MGZmZiBtYXRjaGVzIHBhY2tldHMgd2l0aCBubyA4MDIuMVEKICAgICBoZWFkZXIgb3Igd2l0aCBhbiA4MDIuMVEgaGVhZGVyIHdpdGggYSBWSUQgb2YgMC4KCiAgIC0gVGVzdGluZyB3aXRoIG54bV92YWx1ZT0weDEwMDAsIG54bV9tYXNrPTB4MTAwMCBtYXRjaGVzIHBhY2tldHMgd2l0aAogICAgIGFuIDgwMi4xUSBoZWFkZXIgdGhhdCBoYXMgYW55IFZJRCB2YWx1ZS4KCg0KBQQMAggFEgTJBAgOCg0KBQQMAggBEgTJBA8XCg0KBQQMAggDEgTJBBobCtADCgQEDAIJEgTZBAgdGkcjZGVmaW5lIE9YTV9PRl9WTEFOX1BDUCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVkxBTl9QQ1AsIDEpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfVkxBTl9QQ1AgMtgCIDgwMi4xUSBQQ1AuCgogRm9yIGEgcGFja2V0IHdpdGggYW4gODAyLjFRIGhlYWRlciwgdGhpcyBpcyB0aGUgVkxBTi1QQ1AgZnJvbSB0aGUKIG91dGVybW9zdCB0YWcuICBGb3IgYSBwYWNrZXQgd2l0aCBubyA4MDIuMVEgaGVhZGVyLCB0aGlzIGhhcyB2YWx1ZQogMC4KCiBQcmVyZXFzOiBPWE1fT0ZfVkxBTl9WSUQgbXVzdCBiZSBkaWZmZXJlbnQgZnJvbSBPRlBWSURfTk9ORS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA1IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDMgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLgoKDQoFBAwCCQUSBNkECA4KDQoFBAwCCQESBNkEDxcKDQoFBAwCCQMSBNkEGhwKqAMKBAQMAgoSBOUECBwaRyNkZWZpbmUgT1hNX09GX0lQX0RTQ1AgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBfRFNDUCwgMSkKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUF9EU0NQIDKxAiBUaGUgRGlmZiBTZXJ2IENvZGUgUG9pbnQgKERTQ1ApIGJpdHMgb2YgdGhlIElQIGhlYWRlci4KIFBhcnQgb2YgdGhlIElQdjQgVG9TIGZpZWxkIG9yIHRoZSBJUHY2IFRyYWZmaWMgQ2xhc3MgZmllbGQuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggMiBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciA2IGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgoFEgTlBAgOCg0KBQQMAgoBEgTlBA8WCg0KBQQMAgoDEgTlBBkbCo0DCgQEDAILEgTxBAgbGkUjZGVmaW5lIE9YTV9PRl9JUF9FQ04gICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBfRUNOLCAxKQoiHCBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQX0VDTiAymQIgVGhlIEVDTiBiaXRzIG9mIHRoZSBJUCBoZWFkZXIuCiBQYXJ0IG9mIHRoZSBJUHY0IFRvUyBmaWVsZCBvciB0aGUgSVB2NiBUcmFmZmljIENsYXNzIGZpZWxkLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDYgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMiBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAILBRIE8QQIDgoNCgUEDAILARIE8QQPFQoNCgUEDAILAxIE8QQYGgqNAgoEBAwCDBIE+wQIHRpHI2RlZmluZSBPWE1fT0ZfSVBfUFJPVE8gICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQX1BST1RPLCAxKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQX1BST1RPIDKVASBUaGUgInByb3RvY29sIiBieXRlIGluIHRoZSBJUCBoZWFkZXIuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgwFEgT7BAgOCg0KBQQMAgwBEgT7BA8XCg0KBQQMAgwDEgT7BBocCo0ECgQEDAINEgSJBQgdGqQCI2RlZmluZSBPWE1fT0ZfSVBWNF9TUkMgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9TUkMsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjRfU1JDX1cgICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfU1JDLCA0KQojZGVmaW5lIE9YTV9PRl9JUFY0X0RTVCAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X0RTVCwgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNF9EU1RfVyAgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9EU1QsIDQpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBWNF9TUkMgMrcBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRkcmVzcyBpbiB0aGUgSVAgaGVhZGVyLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwMCBleGFjdGx5LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQMAg0FEgSJBQgOCg0KBQQMAg0BEgSJBQ8XCg0KBQQMAg0DEgSJBRocCiwKBAQMAg4SBIoFCB0iHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQVjRfRFNUIAoNCgUEDAIOBRIEigUIDgoNCgUEDAIOARIEigUPFwoNCgUEDAIOAxIEigUaHAqhAwoEBAwCDxIElwUIHBqMASNkZWZpbmUgT1hNX09GX1RDUF9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9UQ1BfU1JDLCAyKQojZGVmaW5lIE9YTV9PRl9UQ1BfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVENQX0RTVCwgMikKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9UQ1BfU1JDIDLkASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIFRDUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDYgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIPBRIElwUIDgoNCgUEDAIPARIElwUPFgoNCgUEDAIPAxIElwUZGworCgQEDAIQEgSYBQgcIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9UQ1BfRFNUIAoNCgUEDAIQBRIEmAUIDgoNCgUEDAIQARIEmAUPFgoNCgUEDAIQAxIEmAUZGwqlAwoEBAwCERIEpQUIHBqMASNkZWZpbmUgT1hNX09GX1VEUF9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9VRFBfU1JDLCAyKQojZGVmaW5lIE9YTV9PRl9VRFBfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVURQX0RTVCwgMikKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9VRFBfU1JDIDLoASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIFVEUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDE3IGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCEQUSBKUFCA4KDQoFBAwCEQESBKUFDxYKDQoFBAwCEQMSBKUFGRsKKwoEBAwCEhIEpgUIHCIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVURQX0RTVCAKDQoFBAwCEgUSBKYFCA4KDQoFBAwCEgESBKYFDxYKDQoFBAwCEgMSBKYFGRsKqgMKBAQMAhMSBLMFCB0ajgEjZGVmaW5lIE9YTV9PRl9TQ1RQX1NSQyAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfU0NUUF9TUkMsIDIpCiNkZWZpbmUgT1hNX09GX1NDVFBfRFNUICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9TQ1RQX0RTVCwgMikKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9TQ1RQX1NSQyAy6gEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwb3J0IGluIHRoZSBTQ1RQIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggMTMyIGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCEwUSBLMFCA4KDQoFBAwCEwESBLMFDxcKDQoFBAwCEwMSBLMFGhwKLAoEBAwCFBIEtAUIHSIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfU0NUUF9EU1QgCg0KBQQMAhQFEgS0BQgOCg0KBQQMAhQBEgS0BQ8XCg0KBQQMAhQDEgS0BRocCocDCgQEDAIVEgTBBQggGpgBI2RlZmluZSBPWE1fT0ZfSUNNUFY0X1RZUEUgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY0X1RZUEUsIDEpCiNkZWZpbmUgT1hNX09GX0lDTVBWNF9DT0RFICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNF9DT0RFLCAxKQoiISBVc2VkIGZvciBPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFIDK6ASBUaGUgdHlwZSBvciBjb2RlIGluIHRoZSBJQ01QIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDAgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggMSBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIVBRIEwQUIDgoNCgUEDAIVARIEwQUPGgoNCgUEDAIVAxIEwQUdHwovCgQEDAIWEgTCBQggIiEgVXNlZCBmb3IgT0ZQWE1UX09GQl9JQ01QVjRfQ09ERSAKDQoFBAwCFgUSBMIFCA4KDQoFBAwCFgESBMIFDxoKDQoFBAwCFgMSBMIFHR8K1QIKBAQMAhcSBM8FCBsaRSNkZWZpbmUgT1hNX09GX0FSUF9PUCAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfT1AsIDIpCiIcIFVzZWQgZm9yIE9GUFhNVF9PRkJfQVJQX09QIDLhASBBUlAgb3Bjb2RlLgoKIEZvciBhbiBFdGhlcm5ldCtJUCBBUlAgcGFja2V0LCB0aGUgb3Bjb2RlIGluIHRoZSBBUlAgaGVhZGVyLiAgQWx3YXlzIDAKIG90aGVyd2lzZS4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDYgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIXBRIEzwUIDgoNCgUEDAIXARIEzwUPFQoNCgUEDAIXAxIEzwUYGgq1BAoEBAwCGBIE3gUIHBqYAiNkZWZpbmUgT1hNX09GX0FSUF9TUEEgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU1BBLCA0KQojZGVmaW5lIE9YTV9PRl9BUlBfU1BBX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NQQSwgNCkKI2RlZmluZSBPWE1fT0ZfQVJQX1RQQSAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9UUEEsIDQpCiNkZWZpbmUgT1hNX09GX0FSUF9UUEFfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVFBBLCA0KQoiGCBGb3IgT0ZQWE1UX09GQl9BUlBfU1BBIDLxASBGb3IgYW4gRXRoZXJuZXQrSVAgQVJQIHBhY2tldCwgdGhlIHNvdXJjZSBvciB0YXJnZXQgcHJvdG9jb2wgYWRkcmVzcwogaW4gdGhlIEFSUCBoZWFkZXIuICBBbHdheXMgMCBvdGhlcndpc2UuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODA2IGV4YWN0bHkuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBAwCGAUSBN4FCA4KDQoFBAwCGAESBN4FDxYKDQoFBAwCGAMSBN4FGRsKJgoEBAwCGRIE3wUIHCIYIEZvciBPRlBYTVRfT0ZCX0FSUF9UUEEgCg0KBQQMAhkFEgTfBQgOCg0KBQQMAhkBEgTfBQ8WCg0KBQQMAhkDEgTfBRkbCrcECgQEDAIaEgTtBQgbGpwCI2RlZmluZSBPWE1fT0ZfQVJQX1NIQSAgICBPWE1fSEVBREVSICAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU0hBLCA2KQojZGVmaW5lIE9YTV9PRl9BUlBfU0hBX1cgIE9YTV9IRUFERVJfVyAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TSEEsIDYpCiNkZWZpbmUgT1hNX09GX0FSUF9USEEgICAgT1hNX0hFQURFUiAgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RIQSwgNikKI2RlZmluZSBPWE1fT0ZfQVJQX1RIQV9XICBPWE1fSEVBREVSX1cgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVEhBLCA2KQoiIiBGb3IgT0ZQWE1UX09GQl9BUlBfU0hBICg2IGJ5dGVzKSAy5QEgRm9yIGFuIEV0aGVybmV0K0lQIEFSUCBwYWNrZXQsIHRoZSBzb3VyY2Ugb3IgdGFyZ2V0IGhhcmR3YXJlIGFkZHJlc3MKIGluIHRoZSBBUlAgaGVhZGVyLiAgQWx3YXlzIDAgb3RoZXJ3aXNlLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwNiBleGFjdGx5LgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAhoFEgTtBQgNCg0KBQQMAhoBEgTtBQ4VCg0KBQQMAhoDEgTtBRgaCjAKBAQMAhsSBO4FCBsiIiBGb3IgT0ZQWE1UX09GQl9BUlBfVEhBICg2IGJ5dGVzKSAKDQoFBAwCGwUSBO4FCA0KDQoFBAwCGwESBO4FDhUKDQoFBAwCGwMSBO4FGBoK+gMKBAQMAhwSBPwFCBwapAIjZGVmaW5lIE9YTV9PRl9JUFY2X1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfU1JDLCAxNikKI2RlZmluZSBPWE1fT0ZfSVBWNl9TUkNfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X1NSQywgMTYpCiNkZWZpbmUgT1hNX09GX0lQVjZfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9EU1QsIDE2KQojZGVmaW5lIE9YTV9PRl9JUFY2X0RTVF9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRFNULCAxNikKIhkgRm9yIE9GUFhNVF9PRkJfSVBWNl9TUkMgMqkBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRkcmVzcyBpbiB0aGUgSVB2NiBoZWFkZXIuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCgogRm9ybWF0OiAxMjgtYml0IElQdjYgYWRkcmVzcy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDAIcBRIE/AUIDQoNCgUEDAIcARIE/AUOFgoNCgUEDAIcAxIE/AUZGwonCgQEDAIdEgT9BQgcIhkgRm9yIE9GUFhNVF9PRkJfSVBWNl9EU1QgCg0KBQQMAh0FEgT9BQgNCg0KBQQMAh0BEgT9BQ4WCg0KBQQMAh0DEgT9BRkbCp0DCgQEDAIeEgSLBgggGpoBI2RlZmluZSBPWE1fT0ZfSVBWNl9GTEFCRUwgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMLCA0KQojZGVmaW5lIE9YTV9PRl9JUFY2X0ZMQUJFTF9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9GTEFCRUwsIDQpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMIDLTASBUaGUgSVB2NiBGbG93IExhYmVsCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkKCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIHdpdGggMTIgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMjAgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBAwCHgUSBIsGCA4KDQoFBAwCHgESBIsGDxoKDQoFBAwCHgMSBIsGHR8KgwMKBAQMAh8SBJgGCCAalgEjZGVmaW5lIE9YTV9PRl9JQ01QVjZfVFlQRSBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNl9UWVBFLCAxKQojZGVmaW5lIE9YTV9PRl9JQ01QVjZfQ09ERSBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNl9DT0RFLCAxKQoiHCBGb3IgT0ZQWE1UX09GQl9JQ01QVjZfVFlQRSAyvQEgVGhlIHR5cGUgb3IgY29kZSBpbiB0aGUgSUNNUHY2IGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCHwUSBJgGCA4KDQoFBAwCHwESBJgGDxoKDQoFBAwCHwMSBJgGHR8KKgoEBAwCIBIEmQYIICIcIEZvciBPRlBYTVRfT0ZCX0lDTVBWNl9DT0RFIAoNCgUEDAIgBRIEmQYIDgoNCgUEDAIgARIEmQYPGgoNCgUEDAIgAxIEmQYdHwqRAwoEBAwCIRIEpwYIIhpXI2RlZmluZSBPWE1fT0ZfSVBWNl9ORF9UQVJHRVQgT1hNX0hFQURFUiBcCiAgICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VULCAxNikKIh8gRm9yIE9GUFhNVF9PRkJfSVBWNl9ORF9UQVJHRVQgMogCIFRoZSB0YXJnZXQgYWRkcmVzcyBpbiBhbiBJUHY2IE5laWdoYm9yIERpc2NvdmVyeSBtZXNzYWdlLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgogICBPWE1fT0ZfSUNNUFY2X1RZUEUgbXVzdCBiZSBlaXRoZXIgMTM1IG9yIDEzNi4KCiBGb3JtYXQ6IDEyOC1iaXQgSVB2NiBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAiEFEgSnBggNCg0KBQQMAiEBEgSnBg4cCg0KBQQMAiEDEgSnBh8hCpcDCgQEDAIiEgS1BggfGkwjZGVmaW5lIE9YTV9PRl9JUFY2X05EX1NMTCAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X05EX1NMTCwgNikKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9ORF9TTEwgMpwCIFRoZSBzb3VyY2UgbGluay1sYXllciBhZGRyZXNzIG9wdGlvbiBpbiBhbiBJUHY2IE5laWdoYm9yIERpc2NvdmVyeQogbWVzc2FnZS4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KICAgT1hNX09GX0lDTVBWNl9UWVBFIG11c3QgYmUgZXhhY3RseSAxMzUuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCIgUSBLUGCA0KDQoFBAwCIgESBLUGDhkKDQoFBAwCIgMSBLUGHB4KlwMKBAQMAiMSBMMGCB8aTCNkZWZpbmUgT1hNX09GX0lQVjZfTkRfVExMICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfTkRfVExMLCA2KQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X05EX1RMTCAynAIgVGhlIHRhcmdldCBsaW5rLWxheWVyIGFkZHJlc3Mgb3B0aW9uIGluIGFuIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5CiBtZXNzYWdlLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgogICBPWE1fT0ZfSUNNUFY2X1RZUEUgbXVzdCBiZSBleGFjdGx5IDEzNi4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIjBRIEwwYIDQoNCgUEDAIjARIEwwYOGQoNCgUEDAIjAxIEwwYcHgr+AgoEBAwCJBIEzwYIHxpKI2RlZmluZSBPWE1fT0ZfTVBMU19MQUJFTCAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NUExTX0xBQkVMLCA0KQoiGyBGb3IgT0ZQWE1UX09GQl9NUExTX0xBQkVMIDKGAiBUaGUgTEFCRUwgaW4gdGhlIGZpcnN0IE1QTFMgc2hpbSBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4ODQ3IG9yIDB4ODg0OCBleGFjdGx5LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyIHdpdGggMTIgbW9zdC1zaWduaWZpY2FudAogYml0cyBmb3JjZWQgdG8gMC4gT25seSB0aGUgbG93ZXIgMjAgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCJAUSBM8GCA4KDQoFBAwCJAESBM8GDxkKDQoFBAwCJAMSBM8GHB4K3AIKBAQMAiUSBNsGCBwaRyNkZWZpbmUgT1hNX09GX01QTFNfVEMgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTVBMU19UQywgMSkKIhggRm9yIE9GUFhNVF9PRkJfTVBMU19UQyAy6gEgVGhlIFRDIGluIHRoZSBmaXJzdCBNUExTIHNoaW0gaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODg0NyBvciAweDg4NDggZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA1IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDMgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCJQUSBNsGCA4KDQoFBAwCJQESBNsGDxYKDQoFBAwCJQMSBNsGGRsK5AIKBAQMAiYSBOcGCB0aSSNkZWZpbmUgT1hNX09GX01QTFNfQk9TICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01QTFNfQk9TLCAxKQoiGSBGb3IgT0ZQWE1UX09GQl9NUExTX0JPUyAy7wEgVGhlIEJvUyBiaXQgaW4gdGhlIGZpcnN0IE1QTFMgc2hpbSBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4ODQ3IG9yIDB4ODg0OCBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDcgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXN0IGJpdCBoYXZlIGEgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAImBRIE5wYIDgoNCgUEDAImARIE5wYPFwoNCgUEDAImAxIE5wYaHAqqAwoEBAwCJxIE9gYIHRqOASNkZWZpbmUgT1hNX09GX1BCQl9JU0lEICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9QQkJfSVNJRCwgMykKI2RlZmluZSBPWE1fT0ZfUEJCX0lTSURfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX1BCQl9JU0lELCAzKQoiGSBGb3IgT0ZQWE1UX09GQl9QQkJfSVNJRCAy7wEgSUVFRSA4MDIuMWFoIEktU0lELgoKIEZvciBhIHBhY2tldCB3aXRoIGEgUEJCIGhlYWRlciwgdGhpcyBpcyB0aGUgSS1TSUQgZnJvbSB0aGUKIG91dGVybW9zdCBzZXJ2aWNlIHRhZy4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4RTcgZXhhY3RseS4KCiBGb3JtYXQ6IDI0LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuIAoNCgUEDAInBRIE9gYIDgoNCgUEDAInARIE9gYPFwoNCgUEDAInAxIE9gYaHAq8BgoEBAwCKBIEigcIHhqUASNkZWZpbmUgT1hNX09GX1RVTk5FTF9JRCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1RVTk5FTF9JRCwgOCkKI2RlZmluZSBPWE1fT0ZfVFVOTkVMX0lEX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfVFVOTkVMX0lELCA4KQoiGiBGb3IgT0ZQWE1UX09GQl9UVU5ORUxfSUQgMvoEIExvZ2ljYWwgUG9ydCBNZXRhZGF0YS4KCiBNZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBsb2dpY2FsIHBvcnQuCiBJZiB0aGUgbG9naWNhbCBwb3J0IHBlcmZvcm1zIGVuY2Fwc3VsYXRpb24gYW5kIGRlY2Fwc3VsYXRpb24sIHRoaXMKIGlzIHRoZSBkZW11bHRpcGxleGluZyBmaWVsZCBmcm9tIHRoZSBlbmNhcHN1bGF0aW9uIGhlYWRlci4KIEZvciBleGFtcGxlLCBmb3IgYSBwYWNrZXQgcmVjZWl2ZWQgdmlhIEdSRSB0dW5uZWwgaW5jbHVkaW5nIGEgKDMyLWJpdCkga2V5LAogdGhlIGtleSBpcyBzdG9yZWQgaW4gdGhlIGxvdyAzMi1iaXRzIGFuZCB0aGUgaGlnaCBiaXRzIGFyZSB6ZXJvZWQuCiBGb3IgYSBNUExTIGxvZ2ljYWwgcG9ydCwgdGhlIGxvdyAyMCBiaXRzIHJlcHJlc2VudCB0aGUgTVBMUyBMYWJlbC4KIEZvciBhIFZ4TEFOIGxvZ2ljYWwgcG9ydCwgdGhlIGxvdyAyNCBiaXRzIHJlcHJlc2VudCB0aGUgVk5JLgogSWYgdGhlIHBhY2tldCBpcyBub3QgcmVjZWl2ZWQgdGhyb3VnaCBhIGxvZ2ljYWwgcG9ydCwgdGhlIHZhbHVlIGlzIDAuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDY0LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuIAoNCgUEDAIoBRIEigcIDgoNCgUEDAIoARIEigcPGAoN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ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9hZ2dyZWdhdGVfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIHN0cnVjdCBvZnBfYWdncmVnYXRlX3N0YXRzX3JlcGx5LiAKDQoFBS0CAgESBJMNBBMKDQoFBS0CAgISBJMNFhcKeQoEBS0CAxIEmA0EFBprIEZsb3cgdGFibGUgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3RhYmxlX3N0YXRzLiAKDQoFBS0CAwESBJgNBA8KDQoFBS0CAwISBJgNEhMKigEKBAUtAgQSBJ0NBBkafCBQb3J0IHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfcG9ydF9zdGF0c19yZXF1ZXN0LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9wb3J0X3N0YXRzLiAKDQoFBS0CBAESBJ0NBBQKDQoFBS0CBAISBJ0NFxgKlwEKBAUtAgUSBKINBBQaiAEgUXVldWUgc3RhdGlzdGljcyBmb3IgYSBwb3J0CiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfcXVldWVfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfcXVldWVfc3RhdHMgCg0KBQUtAgUBEgSiDQQPCg0KBQUtAgUCEgSiDRITCpEBCgQFLQIGEgSnDQQUGoIBIEdyb3VwIGNvdW50ZXIgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9ncm91cF9zdGF0c19yZXF1ZXN0LgogVGhlIHJlcGx5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfZ3JvdXBfc3RhdHMuIAoNCgUFLQIGARIEpw0EDwoNCgUFLQIGAhIEpw0SEwp0CgQFLQIHEgSsDQQZGmYgR3JvdXAgZGVzY3JpcHRpb24uCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9ncm91cF9kZXNjLiAKDQoFBS0CBwESBKwNBBQKDQoFBS0CBwISBKwNFxgKaQoEBS0CCBIEsQ0EHRpbIEdyb3VwIGZlYXR1cmVzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIHN0cnVjdCBvZnBfZ3JvdXBfZmVhdHVyZXMuIAoNCgUFLQIIARIEsQ0EGAoNCgUFLQIIAhIEsQ0bHAqTAQoEBS0CCRIEtg0EFBqEASBNZXRlciBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX211bHRpcGFydF9yZXF1ZXN0cy4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfbWV0ZXJfc3RhdHMuIAoNCgUFLQIJARIEtg0EDwoNCgUFLQIJAhIEtg0SEwqXAQoEBS0CChIEuw0EHBqIASBNZXRlciBjb25maWd1cmF0aW9uLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX211bHRpcGFydF9yZXF1ZXN0cy4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfbWV0ZXJfY29uZmlnLiAKDQoFBS0CCgESBLsNBBYKDQoFBS0CCgISBLsNGRsKaQoEBS0CCxIEwA0EHhpbIE1ldGVyIGZlYXR1cmVzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIHN0cnVjdCBvZnBfbWV0ZXJfZmVhdHVyZXMuIAoNCgUFLQILARIEwA0EGAoNCgUFLQILAhIEwA0bHQqxAgoEBS0CDBIEyA0EHhqiAiBUYWJsZSBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZWl0aGVyIGVtcHR5IG9yIGNvbnRhaW5zIGFuIGFycmF5IG9mCiBzdHJ1Y3Qgb2ZwX3RhYmxlX2ZlYXR1cmVzIGNvbnRhaW5pbmcgdGhlIGNvbnRyb2xsZXIncwogZGVzaXJlZCB2aWV3IG9mIHRoZSBzd2l0Y2guIElmIHRoZSBzd2l0Y2ggaXMgdW5h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Y2Nlc3MgdG8gYWxsCiAgICAgIE9wZW5GbG93IGZlYXR1cmVzLiBBbGwgY29udHJvbGxlcnMgaGF2ZSBlcXVhbCByZXNwb25zaWJpbGl0eS4KCiBUaGUgb3RoZXIgcG9zc2libGUgcm9sZXMgYXJlIGEgcmVsYXRlZCBwYWlyOgoKICAgIC0gTWFzdGVyIChPRlBDUl9ST0xFX01BU1RFUikgaXMgZXF1aXZhbGVudCB0byBFcXVhbCwgZXhjZXB0IHRoYXQgdGhlcmUKICAgICAgbWF5IGJlIGF0IG1vc3Qgb25lIE1hc3RlciBjb250cm9sbGVyIGF0IGEgdGltZTogd2hlbiBhIGNvbnRyb2xsZXIKICAgICAgY29uZmlndXJlcyBpdHNlbGYgYXMgTWFzdGVyLCBhbnkgZXhpc3RpbmcgTWFzdGVyIGlzIGRlbW90ZWQgdG8gdGhlCiAgICAgIFNsYXZlIHJvbGUuCgogICAgLSBTbGF2ZSAoT0ZQQ1JfUk9MRV9TTEFWRSkgYWxsb3dzIHRoZSBjb250cm9sbGVyIHJlYWQtb25seSBhY2Nlc3MgdG8KICAgICAgT3BlbkZsb3cgZmVhdHVyZXMuICBJbiBwYXJ0aWN1bGFyIGF0dGVtcHRzIHRvIG1vZGlmeSB0aGUgZmxvdyB0YWJsZQogICAgICB3aWxsIGJlIHJlamVjdGVkIHdpdGggYW4gT0ZQQlJDX0VQRVJNIGVycm9yLgoKICAgICAgU2xhdmUgY29udHJvbGxlcnMgZG8gbm90IHJlY2VpdmUgT0ZQVF9QQUNLRVRfSU4gb3IgT0ZQVF9GTE9XX1JFTU9WRUQKICAgICAgbWVzc2FnZXMsIGJ1dCB0aGV5IGRvIHJlY2VpdmUgT0ZQVF9QT1JUX1NUQVRVUyBtZXNzYWdlcy4KCgsKAwUzARIEsBEFGAoqCgQFMwIAEgSxEQQcIhwgRG9uJ3QgY2hhbmdlIGN1cnJlbnQgcm9sZS4gCg0KBQUzAgABEgSxEQQXCg0KBQUzAgACEgSxERobCioKBAUzAgESBLIRBBwiHCBEZWZhdWx0IHJvbGUsIGZ1bGwgYWNjZXNzLiAKDQoFBTMCAQESBLIRBBQKDQoFBTMCAQISBLIRGhsKMAoEBTMCAhIEsxEEHCIiIEZ1bGwgYWNjZXNzLCBhdCBt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X3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90byI4Cg1Mb2dpY2FsUG9ydElkEg4KAmlkGAEgASgJUgJpZBIXCgdwb3J0X2lkGAIgASgJUgZwb3J0SWQi8gEKC0xvZ2ljYWxQb3J0Eg4KAmlkGAEgASgJUgJpZBIwCghvZnBfcG9ydBgCIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9wb3J0UgdvZnBQb3J0EhsKCWRldmljZV9pZBgDIAEoCVIIZGV2aWNlSWQSJAoOZGV2aWNlX3BvcnRfbm8YBCABKA1SDGRldmljZVBvcnRObxIbCglyb290X3BvcnQYBSABKAhSCHJvb3RQb3J0EkEKDm9mcF9wb3J0X3N0YXRzGAYgASgLMhsub3BlbmZsb3dfMTMub2ZwX3BvcnRfc3RhdHNSDG9mcFBvcnRTdGF0cyI5CgxMb2dpY2FsUG9ydHMSKQoFaXRlbXMYASADKAsyEy52b2x0aGEuTG9naWNhbFBvcnRSBWl0ZW1zItwBCg1Mb2dpY2FsRGV2aWNlEg4KAmlkGAEgASgJUgJpZBIfCgtkYXRhcGF0aF9pZBgCIAEoBFIKZGF0YXBhdGhJZBIpCgRkZXNjGAMgASgLMhUub3BlbmZsb3dfMTMub2ZwX2Rlc2NSBGRlc2MSSQoPc3dpdGNoX2ZlYXR1cmVzGAQgASgLMiAub3BlbmZsb3dfMTMub2ZwX3N3aXRjaF9mZWF0dXJlc1IOc3dpdGNoRmVhdHVyZXMSJAoOcm9vdF9kZXZpY2VfaWQYBSABKAlSDHJvb3REZXZpY2VJZCI9Cg5Mb2dpY2FsRGV2aWNlcxIrCgVpdGVtcxgBIAMoCzIVLnZvbHRoYS5Mb2dpY2FsRGV2aWNlUgVpdGVtc0JWChNvcmcub3BlbmNvcmQudm9sdGhhQg9PRkxvZ2ljYWxEZXZpY2VaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby92b2x0aGFKmQwKBhIEAAA1AQoICgEMEgMAABIKCAoBCBIDAgBFCgkKAggLEgMCAEUKCAoBCBIDAwAsCgkKAggBEgMDACwKCAoBCBIDBAAwCgkKAggIEgMEADAKCAoBAhIDBgAPCgkKAgMAEgMIACYKCQoCAwESAwkAIgoJCgIDAhIDCgApCgoKAgQAEgQMABIB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KAhSG2FjY2VwdHNBZGRSZW1vdmVGbG93VXBkYXRlcxJMCiNhY2NlcHRzX2RpcmVjdF9sb2dpY2FsX2Zsb3dzX3VwZGF0ZRgHIAEoCFIfYWNjZXB0c0RpcmVjdExvZ2ljYWxGbG93c1VwZGF0ZRIhCgxhZGFwdGVyX3R5cGUYCCABKAlSC2FkYXB0ZXJUeXBlIjcKC0RldmljZVR5cGVzEigKBWl0ZW1zGAEgAygLMhIudm9sdGhhLkRldmljZVR5cGVSBWl0ZW1zIsABCghQbUNvbmZpZxISCgRuYW1lGAEgASgJUgRuYW1lEisKBHR5cGUYAiABKA4yFy52b2x0aGEuUG1Db25maWcuUG1UeXBlUgR0eXBlEhgKB2VuYWJsZWQYAyABKAhSB2VuYWJsZWQSHwoLc2FtcGxlX2ZyZXEYBCABKA1SCnNhbXBsZUZyZXEiOAoGUG1UeXBlEgsKB0NPVU5URVIQABIJCgVHQVVHRRABEgkKBVNUQVRFEAISCwoHQ09OVEVYVBADIpMBCg1QbUdyb3VwQ29uZmlnEh0KCmdyb3VwX25hbWUYASABKAlSCWdyb3VwTmFtZRIdCgpncm91cF9mcmVxGAIgASgNUglncm91cEZyZXESGAoHZW5hYmxlZBgDIAEoCFIHZW5hYmxlZBIqCgdtZXRyaWNzGAQgAygLMhAudm9sdGhhLlBtQ29uZmlnUgdtZXRyaWNzIoECCglQbUNvbmZpZ3MSDgoCaWQYASABKAlSAmlkEiEKDGRlZmF1bHRfZnJlcRgCIAEoDVILZGVmYXVsdEZyZXESHwoHZ3JvdXBlZBgDIAEoCEIF6PbNHQFSB2dyb3VwZWQSKgoNZnJlcV9vdmVycmlkZRgEIAEoCEIF6PbNHQFSDGZyZXFPdmVycmlkZRItCgZncm91cHMYBSADKAsyFS52b2x0aGEuUG1Hcm91cENvbmZpZ1IGZ3JvdXBzEioKB21ldHJpY3MYBiADKAsyEC52b2x0aGEuUG1Db25maWdSB21ldHJpY3MSGQoIbWF4X3NrZXcYByABKA1SB21heFNrZXcijwIKBUltYWdlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoCVIHdmVyc2lvbhISCgRoYXNoGAMgASgNUgRoYXNoEikKEGluc3RhbGxfZGF0ZXRpbWUYBCABKAlSD2luc3RhbGxEYXRldGltZRIbCglpc19hY3RpdmUYBSABKAhSCGlzQWN0aXZlEiEKDGlzX2NvbW1pdHRlZBgGIAEoCFILaXNDb21taXR0ZWQSGQoIaXNfdmFsaWQYByABKAhSB2lzVmFsaWQSEAoDdXJsGAggASgJUgN1cmwSFgoGdmVuZG9yGAkgASgJUgZ2ZW5kb3ISFAoFY3JjMzIYCiABKA1SBWNyYzMyIuMHCg1JbWFnZURvd25sb2FkEg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1lEhAKA3VybBgDIAEoCVIDdXJsEhAKA2NyYxgEIAEoDVIDY3JjEk8KDmRvd25sb2FkX3N0YXRlGAUgASgOMigudm9sdGhhLkltYWdlRG93bmxvYWQuSW1hZ2VEb3dubG9hZFN0YXRlUg1kb3dubG9hZFN0YXRlEiMKDWltYWdlX3ZlcnNpb24YBiABKAlSDGltYWdlVmVyc2lvbhIpChBkb3dubG9hZGVkX2J5dGVzGAcgASgNUg9kb3dubG9hZGVkQnl0ZXMSSAoGcmVhc29uGAggASgOMjAudm9sdGhhLkltYWdlRG93bmxvYWQuSW1hZ2VEb3dubG9hZEZhaWx1cmVSZWFzb25SBnJlYXNvbhInCg9hZGRpdGlvbmFsX2luZm8YCSABKAlSDmFkZGl0aW9uYWxJbmZvEh8KC3NhdmVfY29uZmlnGAogASgIUgpzYXZlQ29uZmlnEhsKCWxvY2FsX2RpchgLIAEoCVIIbG9jYWxEaXISSQoLaW1hZ2Vfc3RhdGUYDCABKA4yKC52b2x0aGEuSW1hZ2VEb3dubG9hZC5JbWFnZUFjdGl2YXRlU3RhdGVSCmltYWdlU3RhdGUSGwoJZmlsZV9zaXplGA0gASgNUghmaWxlU2l6ZSK3AQoSSW1hZ2VEb3dubG9hZFN0YXRlEhQKEERPV05MT0FEX1VOS05PV04QABIWChJET1dOTE9BRF9TVUNDRUVERUQQARIWChJET1dOTE9BRF9SRVFVRVNURUQQAhIUChBET1dOTE9BRF9TVEFSVEVEEAMSEwoPRE9XTkxPQURfRkFJTEVEEAQSGAoURE9XTkxPQURfVU5TVVBQT1JURUQQBRIWChJET1dOTE9BRF9DQU5DRUxMRUQQBiKGAQoaSW1hZ2VEb3dubG9hZEZhaWx1cmVSZWFzb24SDAoITk9fRVJST1IQABIPCgtJTlZBTElEX1VSTBABEg8KC0RFVklDRV9CVVNZEAISFgoSSU5TVUZGSUNJRU5UX1NQQUNFEAMSEQoNVU5LTk9XTl9FUlJPUhAEEg0KCUNBTkNFTExFRBAFIowBChJJbWFnZUFjdGl2YXRlU3RhdGUSEQoNSU1BR0VfVU5LTk9XThAAEhIKDklNQUdFX0lOQUNUSVZFEAESFAoQSU1BR0VfQUNUSVZBVElORxACEhAKDElNQUdFX0FDVElWRRADEhMKD0lNQUdFX1JFVkVSVElORxAEEhIKDklNQUdFX1JFVkVSVEVEEAUiPQoOSW1hZ2VEb3dubG9hZHMSKwoFaXRlbXMYAiADKAsyFS52b2x0aGEuSW1hZ2VEb3dubG9hZFIFaXRlbXMiLQoGSW1hZ2VzEiMKBWltYWdlGAEgAygLMg0udm9sdGhhLkltYWdlUgVpbWFnZSKwAQoIT251SW1hZ2USGAoHdmVyc2lvbhgBIAEoCVIHdmVyc2lvbhIeCgppc0NvbW1pdGVkGAIgASgIUgppc0NvbW1pdGVkEhoKCGlzQWN0aXZlGAMgASgIUghpc0FjdGl2ZRIYCgdpc1ZhbGlkGAQgASgIUgdpc1ZhbGlkEiAKC3Byb2R1Y3RDb2RlGAUgASgJUgtwcm9kdWN0Q29kZRISCgRoYXNoGAYgASgJUgRoYXNoIjMKCU9udUltYWdlcxImCgVpdGVtcxgBIAMoCzIQLnZvbHRoYS5PbnVJbWFnZVIFaXRlbXMiYwoQRGV2aWNlSW1hZ2VTdGF0ZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEjIKCmltYWdlU3RhdGUYAiABKAsyEi52b2x0aGEuSW1hZ2VTdGF0ZVIKaW1hZ2VTdGF0ZSLjBwoKSW1hZ2VTdGF0ZRIYCgd2ZXJzaW9uGAEgASgJUgd2ZXJzaW9uEkwKDmRvd25sb2FkX3N0YXRlGAIgASgOMiUudm9sdGhhLkltYWdlU3RhdGUuSW1hZ2VEb3dubG9hZFN0YXRlUg1kb3dubG9hZFN0YXRlEj0KBnJlYXNvbhgDIAEoDjIlLnZvbHRoYS5JbWFnZVN0YXRlLkltYWdlRmFpbHVyZVJlYXNvblIGcmVhc29uEkgKC2ltYWdlX3N0YXRlGAQgASgOMicudm9sdGhhLkltYWdlU3RhdGUuSW1hZ2VBY3RpdmF0aW9uU3RhdGVSCmltYWdlU3RhdGUi0AEKEkltYWdlRG93bmxvYWRTdGF0ZRIUChBET1dOTE9BRF9VTktOT1dOEAASFgoSRE9XTkxPQURfU1VDQ0VFREVEEAESFgoSRE9XTkxPQURfUkVRVUVTVEVEEAISFAoQRE9XTkxPQURfU1RBUlRFRBADEhMKD0RPV05MT0FEX0ZBSUxFRBAEEhgKFERPV05MT0FEX1VOU1VQUE9SVEVEEAUSFwoTRE9XTkxPQURfQ0FOQ0VMTElORxAGEhYKEkRPV05MT0FEX0NBTkNFTExFRBAHIvQBChJJbWFnZUZhaWx1cmVSZWFzb24SDAoITk9fRVJST1IQABIPCgtJTlZBTElEX1VSTBABEg8KC0RFVklDRV9CVVNZEAISFgoSSU5TVUZGSUNJRU5UX1NQQUNFEAMSEQoNVU5LTk9XTl9FUlJPUhAEEhgKFENBTkNFTExFRF9PTl9SRVFVRVNUEAUSGgoWQ0FOQ0VMTEVEX09OX09OVV9TVEFURRAGEhoKFlZFTkRPUl9ERVZJQ0VfTUlTTUFUQ0gQBxIXChNPTUNJX1RSQU5TRkVSX0VSUk9SEAgSGAoUSU1BR0VfUkVGVVNFRF9CWV9PTlUQCSKZAgoUSW1hZ2VBY3RpdmF0aW9uU3RhdGUSEQoNSU1BR0VfVU5LTk9XThAAEhIKDklNQUdFX0lOQUNUSVZFEAESFAoQSU1BR0VfQUNUSVZBVElORxACEhAKDElNQUdFX0FDVElWRRADEhQKEElNQUdFX0NPTU1JVFRJTkcQBBITCg9JTUFHRV9DT01NSVRURUQQBRIdChlJTUFHRV9BQ1RJVkFUSU9OX0FCT1JUSU5HEAYSHAoYSU1BR0VfQUNUSVZBVElPTl9BQk9SVEVEEAcSGQoVSU1BR0VfQ09NTUlUX0FCT1JUSU5HEAgSGAoUSU1BR0VfQ09NTUlUX0FCT1JURUQQCRIVChFJTUFHRV9ET1dOTE9BRElORxAKIrcFCgRQb3J0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIUCgVsYWJlbBgCIAEoCVIFbGFiZWwSKQoEdHlwZRgDIAEoDjIVLnZvbHRoYS5Qb3J0LlBvcnRUeXBlUgR0eXBlEjkKC2FkbWluX3N0YXRlGAUgASgOMhguY29tbW9uLkFkbWluU3RhdGUuVHlwZXNSCmFkbWluU3RhdGUSOQoLb3Blcl9zdGF0dXMYBiABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cxIbCglkZXZpY2VfaWQYByABKAlSCGRldmljZUlkEisKBXBlZXJzGAggAygLMhUudm9sdGhhLlBvcnQuUGVlclBvcnRSBXBlZXJzEh0KCnJ4X3BhY2tldHMYCSABKAZSCXJ4UGFja2V0cxIZCghyeF9ieXRlcxgKIAEoBlIHcnhCeXRlcxIbCglyeF9lcnJvcnMYCyABKAZSCHJ4RXJyb3JzEh0KCnR4X3BhY2tldHMYDCABKAZSCXR4UGFja2V0cxIZCgh0eF9ieXRlcxgNIAEoBlIHdHhCeXRlcxIbCgl0eF9lcnJvcnMYDiABKAZSCHR4RXJyb3JzEjAKCG9mcF9wb3J0GA8gASgLMhUub3BlbmZsb3dfMTMub2ZwX3BvcnRSB29mcFBvcnQaQAoIUGVlclBvcnQSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIXCgdwb3J0X25vGAIgASgNUgZwb3J0Tm8icwoIUG9ydFR5cGUSCwoHVU5LTk9XThAAEhAKDEVUSEVSTkVUX05OSRABEhAKDEVUSEVSTkVUX1VOSRACEgsKB1BPTl9PTFQQAxILCgdQT05fT05VEAQSDQoJVkVORVRfT0xUEAUSDQoJVkVORVRfT05VEAYiKwoFUG9ydHMSIgoFaXRlbXMYASADKAsyDC52b2x0aGEuUG9ydFIFaXRlbXMi8AsKBkRldmljZRIVCgJpZBgBIAEoCUIF6PbNHQFSAmlkEhkKBHR5cGUYAiABKAlCBej2zR0BUgR0eXBlEhkKBHJvb3QYAyABKAhCBej2zR0BUgRyb290EiIKCXBhcmVudF9pZBgEIAEoCUIF6PbNHQFSCHBhcmVudElkEisKDnBhcmVudF9wb3J0X25vGBQgASgNQgXo9s0dAVIMcGFyZW50UG9ydE5vEh0KBnZlbmRvchgFIAEoCUIF6PbNHQFSBnZlbmRvchIbCgVtb2RlbBgGIAEoCUIF6PbNHQFSBW1vZGVsEjAKEGhhcmR3YXJlX3ZlcnNpb24YByABKAlCBej2zR0BUg9oYXJkd2FyZVZlcnNpb24SMAoQZmlybXdhcmVfdmVyc2lvbhgIIAEoCUIF6PbNHQFSD2Zpcm13YXJlVmVyc2lvbhItCgZpbWFnZXMYCSABKAsyDi52b2x0aGEuSW1hZ2VzQgXo9s0dAVIGaW1hZ2VzEioKDXNlcmlhbF9udW1iZXIYCiABKAlCBej2zR0BUgxzZXJpYWxOdW1iZXISIgoJdmVuZG9yX2lkGBggASgJQgXo9s0dAVIIdmVuZG9ySWQSHwoHYWRhcHRlchgLIAEoCUIF6PbNHQFSB2FkYXB0ZXISKQoQYWRhcHRlcl9lbmRwb2ludBgZIAEoCVIPYWRhcHRlckVuZHBvaW50EhIKBHZsYW4YDCABKA1SBHZsYW4SHwoLbWFjX2FkZHJlc3MYDSABKAlSCm1hY0FkZHJlc3MSIwoMaXB2NF9hZGRyZXNzGA4gASgJSABSC2lwdjRBZGRyZXNzEiMKDGlwdjZfYWRkcmVzcxgPIAEoCUgAUgtpcHY2QWRkcmVzcxIkCg1ob3N0X2FuZF9wb3J0GBUgASgJSABSC2hvc3RBbmRQb3J0Eh0KCmV4dHJhX2FyZ3MYFyABKAlSCWV4dHJhQXJncxJACg1wcm94eV9hZGRyZXNzGBMgASgLMhsudm9sdGhhLkRldmljZS5Qcm94eUFkZHJlc3NSDHByb3h5QWRkcmVzcxI5CgthZG1pbl9zdGF0ZRgQIAEoDjIYLmNvbW1vbi5BZG1pblN0YXRlLlR5cGVzUgphZG1pblN0YXRlEkAKC29wZXJfc3RhdHVzGBEgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNCBej2zR0BUgpvcGVyU3RhdHVzEh0KBnJlYXNvbhgWIAEoCUIF6PbNHQFSBnJlYXNvbhJJCg5jb25uZWN0X3N0YXR1cxgSIAEoDjIbLmNvbW1vbi5Db25uZWN0U3RhdHVzLlR5cGVzQgXo9s0dAVINY29ubmVjdFN0YXR1cxIsCgZjdXN0b20YQCABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgZjdXN0b20SOAoKcG1fY29uZmlncxiDASABKAsyES52b2x0aGEuUG1Db25maWdzQgXi9s0dAFIJcG1Db25maWdzEkwKD2ltYWdlX2Rvd25sb2FkcxiFASADKAsyFS52b2x0aGEuSW1hZ2VEb3dubG9hZEIL4vbNHQYKBG5hbWVSDmltYWdlRG93bmxvYWRzGq4CCgxQcm94eUFkZHJlc3MSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIfCgtkZXZpY2VfdHlwZRgCIAEoCVIKZGV2aWNlVHlwZRIdCgpjaGFubmVsX2lkGAMgASgNUgljaGFubmVsSWQSKAoQY2hhbm5lbF9ncm91cF9pZBgEIAEoDVIOY2hhbm5lbEdyb3VwSWQSLwoTY2hhbm5lbF90ZXJtaW5hdGlvbhgFIAEoCVISY2hhbm5lbFRlcm1pbmF0aW9uEhUKBm9udV9pZBgGIAEoDVIFb251SWQSJAoOb251X3Nlc3Npb25faWQYByABKA1SDG9udVNlc3Npb25JZBIpChBhZGFwdGVyX2VuZHBvaW50GAggASgJUg9hZGFwdGVyRW5kcG9pbnRCCQoHYWRkcmVzcyIvCgdEZXZpY2VzEiQKBWl0ZW1zGAEgAygLMg4udm9sdGhhLkRldmljZVIFaXRlbXMiqAMKFFNpbXVsYXRlQWxhcm1SZXF1ZXN0Eg4KAmlkGAEgASgJUgJpZBIcCglpbmRpY2F0b3IYAiABKAlSCWluZGljYXRvchIXCgdpbnRmX2lkGAMgASgJUgZpbnRmSWQSJAoOcG9ydF90eXBlX25hbWUYBCABKAlSDHBvcnRUeXBlTmFtZRIiCg1vbnVfZGV2aWNlX2lkGAUgASgJUgtvbnVEZXZpY2VJZBIzChZpbnZlcnNlX2JpdF9lcnJvcl9yYXRlGAYgASgFUhNpbnZlcnNlQml0RXJyb3JSYXRlEhQKBWRyaWZ0GAcgASgFUgVkcmlmdBIXCgduZXdfZXFkGAggASgFUgZuZXdFcWQSKgoRb251X3NlcmlhbF9udW1iZXIYCSABKAlSD29udVNlcmlhbE51bWJlchJICglvcGVyYXRpb24YCiABKA4yKi52b2x0aGEuU2ltdWxhdGVBbGFybVJlcXVlc3QuT3BlcmF0aW9uVHlwZVIJb3BlcmF0aW9uIiUKDU9wZXJhdGlvblR5cGUSCQoFUkFJU0UQABIJCgVDTEVBUhABQlMKE29yZy5vcGVuY29yZC52b2x0aGFCDFZvbHRoYURldmljZVou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GisgRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKIiogY29tYmluZWQgZGF0ZSBhbmQgdGltZSBleHByZXNzZWQgaW4gVVRDLgoKDQoFBAUCAwQSBFsEWBQKDAoFBAUCAwUSA1sECgoMCgUEBQIDARIDWwsbCgwKBQQFAgMDEgNbHh8KmAMKBAQFAgQSA2MEFxrCAiBUaGUgYWN0aXZlIHNvZnR3YXJlIGltYWdlIGlzIG9uZSB0aGF0IGlzIGN1cnJlbnRseSBsb2FkZWQgYW5kIGV4ZWN1dGluZwogaW4gdGhlIE9OVSBvciBjaXJjdWl0IHBhY2suIFVuZGVyIG5vcm1hbCBvcGVyYXRpb24sIG9uZSBzb2Z0d2FyZSBpbWFnZQogaXMgYWx3YXlzIGFjdGl2ZSB3aGlsZSB0aGUgb3RoZXIgaXMgaW5hY3RpdmUuIFVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYXJlCiBib3RoIHNvZnR3YXJlIGltYWdlcyBhbGxvd2VkIHRvIGJlIGFjdGl2ZSBhdCB0aGUgc2FtZSB0aW1lCiBEZXByZWNhdGVkIGluIHZvbHRoYSAyLjgsIHdpbGwgYmUgcmVtb3ZlZAoiHSBUcnVlIGlmIHRoZSBpbWFnZSBpcyBhY3RpdmUKMicgdXNlIElTTyA4NjAxIGZvcm1hdCBmb3IgZGF0ZSBhbmQgdGltZQoKDQoFBAUCBAQSBGMEWyAKDAoFBAUCBAUSA2MECAoMCgUEBQIEARIDYwkSCgwKBQQFAgQDEgNjFRYKnwIKBAQFAgUSA2kEGhrvASBUaGUgY29tbWl0dGVkIHNvZnR3YXJlIGltYWdlIGlzIGxvYWRlZCBhbmQgZXhlY3V0ZWQgdXBvbiByZWJvb3Qgb2YgdGhlCiBPTlUgYW5kL29yIGNpcmN1aXQgcGFjay4gRHVyaW5nIG5vcm1hbCBvcGVyYXRpb24sIG9uZSBzb2Z0d2FyZSBpbWFnZSBpcwogYWx3YXlzIGNvbW1pdHRlZCwgd2hpbGUgdGhlIG90aGVyIGlzIHVuY29tbWl0dGVkLgogRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKIiAgVHJ1ZSBpZiB0aGUgaW1hZ2UgaXMgY29tbWl0dGVkCgoNCgUEBQIFBBIEaQRjFwoMCgUEBQIFBRIDaQQICgwKBQQFAgUBEgNpCRUKDAoFBAUCBQMSA2kYGQrMAgoEBAUCBhIDcAQWGqACIEEgc29mdHdhcmUgaW1hZ2UgaXMgdmFsaWQgaWYgaXQgaGFzIGJlZW4gdmVyaWZpZWQgdG8gYmUgYW4gZXhlY3V0YWJsZQogY29kZSBpbWFnZS4gVGhlIHZlcmlmaWNhdGlvbiBtZWNoYW5pc20gaXMgbm90IHN1YmplY3QgdG8gc3RhbmRhcmRpemF0aW9uOwogaG93ZXZlciwgaXQgc2hvdWxkIGluY2x1ZGUgYXQgbGVhc3QgYSBkYXRhIGludGVncml0eSAoZS5nLiwgQ1JDKSBjaGVjayBvZgogdGhlIGVudGlyZSBjb2RlIGltYWdlLgogRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKIhwgVHJ1ZSBpZiB0aGUgaW1hZ2UgaXMgdmFsaWQKCg0KBQQFAgYEEgRwBGkaCgwKBQQFAgYFEgNwBAgKDAoFBAUCBgESA3AJEQoMCgUEBQIGAxIDcBQVCngKBAQFAgcSA3UEExprIFVSTCB3aGVyZSB0aGUgaW1hZ2UgaXMgYXZhaWxhYmxlCiBVUkwgTVVTVCBiZSBmdWxseSBxdWFsaWZpZWQsCiBpbmNsdWRpbmcgZmlsZW5hbWUsIHVzZXJuYW1lIGFuZCBwYXNzd29yZAoKDQoFBAUCBwQSBHUEcBYKDAoFBAUCBwUSA3UECgoMCgUEBQIHARIDdQsOCgwKBQQFAgcDEgN1ERIKrQEKBAQFAggSA3oEFhqfASBSZXByZXNlbnRzIHRoZSB2ZW5kb3IvZGV2aWNlIG1mcgogTmVlZHMgdG8gbWF0Y2ggdGhlIHZlbmRvciBvZiB0aGUgZGV2aWNlIHRoZSBpbWFnZSB3aWxsIGJlIGluc3RhbGxlZCBvbgogb3B0aW9uYWwsIGlmIG5vdCBtYXRjaGVkIG5vIGNoZWNrIHdpbGwgYmUgcGVyZm9ybWVkCgoNCgUEBQIIBBIEegR1EwoMCgUEBQIIBRIDegQKCgwKBQQFAggBEgN6CxEKDAoFBAUCCAMSA3oUFQqlAgoEBAUCCRIEgAEEFhqWAiBSZXByZXNlbnRzIHRoZSBPTlUgSW1hZ2UgQ1JDIHZhbHVlLgogRGVmYXVsdCB0byB2YWx1ZSAwIGlmIG5vdCBzcGVjaWZpZWQuCiBJZiBkaWZmZXJlbnQgdGhlbiAwIGl0J3MgdXNlZCB0byB2ZXJpZnkgdGhlIGltYWdlIHJldHJpZXZlZCBmcm9tIG91dHNpZGUgYmVmb3JlIHNlbmRpbmcgaXQgdG8gdGhlIE9OVS4KIENhbGN1bGF0aW9uIG9mIHRoaXMgbmVlZHMgdG8gYmUgZG9uZSBhY2NvcmRpbmcgdG8gSVRVLVQgSS4zNjMuNSBhcyBwZXIgT01DSSBzcGVjIChzZWN0aW9uIEEuMi4yNykKCg4KBQQFAgkEEgWAAQR6FgoNCgUEBQIJBRIEgAEECgoNCgUEBQIJARIEgAELEAoNCgUEBQIJAxIEgAETFQp5CgIEBhIGiAEAzAEBGmsgT2xkZXIgdmVyc2lvbiBvZiB0aGUgQVBJIHBsZWFzZSBzZWUgRGV2aWNlSW1hZ2VEb3dubG9hZFJlcXVlc3QKIERlcHJlY2F0ZWQgaW4gdm9sdGhhIDIuOCwgd2lsbCBiZSByZW1vdmVkCgoLCgMEBgESBIgBCBUKDgoEBAYEABIGiQEEkQEFCg0KBQQGBAABEgSJAQkbCg4KBgQGBAACABIEigEIHQoPCgcEBgQAAgABEgSKAQgYCg8KBwQGBAACAAISBIoBGxwKDgoGBAYEAAIBEgSLAQgfCg8KBwQGBAACAQESBIsBCBoKDwoHBAYEAAIBAhIEiwEdHgoOCgYEBgQAAgISBIwBCB8KDwoHBAYEAAICARIEjAEIGgoPCgcEBgQAAgICEgSMAR0eCg4KBgQGBAACAxIEjQEIHQoPCgcEBgQAAgMBEgSNAQgYCg8KBwQGBAACAwISBI0BGxwKDgoGBAYEAAIEEgSOAQgcCg8KBwQGBAACBAESBI4BCBcKDwoHBAYEAAIEAhIEjgEaGwoOCgYEBgQAAgUSBI8BCCEKDwoHBAYEAAIFARIEjwEIHAoPCgcEBgQAAgUCEgSPAR8gCg4KBgQGBAACBhIEkAEIHwoPCgcEBgQAAgYBEgSQAQgaCg8KBwQGBAACBgISBJABHR4KDgoEBAYEARIGkwEEmgEFCg0KBQQGBAEBEgSTAQkjCg4KBgQGBAECABIElAEIFQoPCgcEBgQBAgABEgSUAQgQCg8KBwQGBAECAAISBJQBExQKDgoGBAYEAQIBEgSVAQgYCg8KBwQGBAECAQESBJUBCBMKDwoHBAYEAQIBAhIElQEWFwoOCgYEBgQBAgISBJYBCBgKDwoHBAYEAQICARIElgEIEwoPCgcEBgQBAgICEgSWARYXCg4KBgQGBAECAxIElwEIHwoPCgcEBgQBAgMBEgSXAQgaCg8KBwQGBAECAwISBJcBHR4KDgoGBAYEAQIEEgSYAQgaCg8KBwQGBAECBAESBJgBCBUKDwoHBAYEAQIEAhIEmAEYGQoOCgYEBgQBAgUSBJkBCBYKDwoHBAYEAQIFARIEmQEIEQoPCgcEBgQBAgUCEgSZARQVCg4KBAQGBAISBpwBBKMBBQoNCgUEBgQCARIEnAEJGwoOCgYEBgQCAgASBJ0BCBoKDwoHBAYEAgIAARIEnQEIFQoPCgcEBgQCAgACEgSdARgZCg4KBgQGBAICARIEngEIGwoPCgcEBgQCAgEBEgSeAQgWCg8KBwQGBAICAQISBJ4BGRoKDgoGBAYEAgICEgSfAQgdCg8KBwQGBAICAgESBJ8BCBgKDwoHBAYEAgICAhIEnwEbHAoOCgYEBgQCAgMSBKABCBkKDwoHBAYEAgIDARIEoAEIFAoPCgcEBgQCAgMCEgSgARcYCg4KBgQGBAICBBIEoQEIHAoPCgcEBgQCAgQBEgShAQgXCg8KBwQGBAICBAISBKEBGhsKDgoGBAYEAgIFEgSiAQgbCg8KBwQGBAICBQESBKIBCBYKDwoHBAYEAgIFAhIEogEZGgohCgQEBgIAEgSmAQQSGhMgRGV2aWNlIElkZW50aWZpZXIKCg8KBQQGAgAEEgamAQSjAQUKDQoFBAYCAAUSBKYBBAoKDQoFBAYCAAESBKYBCw0KDQoFBAYCAAMSBKYBEBEKJwoEBAYCARIEqQEEFBoZIEltYWdlIHVuaXF1ZSBpZGVudGlmaWVyCgoPCgUEBgIBBBIGqQEEpgESCg0KBQQGAgEFEgSpAQQKCg0KBQQGAgEBEgSpAQsPCg0KBQQGAgEDEgSpARITClIKBAQGAgISBK0BBBMaRCBVUkwgd2hlcmUgdGhlIGltYWdlIGlzIGF2YWlsYWJsZQogc2hvdWxkIGluY2x1ZGUgdXNlcm5hbWUgcGFzc3dvcmQKCg8KBQQGAgIEEgatAQSpARQKDQoFBAYCAgUSBK0BBAoKDQoFBAYCAgESBK0BCw4KDQoFBAYCAgMSBK0BERIKNgoEBAYCAxIEsAEEExooIENSQyBvZiB0aGUgaW1hZ2UgdG8gYmUgdmVyaWZpZWQgYWdpbnN0CgoPCgUEBgIDBBIGsAEErQETCg0KBQQGAgMFEgSwAQQKCg0KBQQGAgMBEgSwAQsOCg0KBQQGAgMDEgSwARESCh4KBAQGAgQSBLMBBCoaECBEb3dubG9hZCBzdGF0ZQoKDwoFBAYCBAQSBrMBBLABEwoNCgUEBgIEBhIEswEEFgoNCgUEBgIEARIEswEXJQoNCgUEBgIEAxIEswEoKQoiCgQEBgIFEgS2AQQdGhQgRG93bmxvYWRlZCB2ZXJzaW9uCgoPCgUEBgIFBBIGtgEEswEqCg0KBQQGAgUFEgS2AQQKCg0KBQQGAgUBEgS2AQsYCg0KBQQGAgUDEgS2ARscCiAKBAQGAgYSBLkBBCAaEiBCeXRlcyBkb3dubG9hZGVkCgoPCgUEBgIGBBIGuQEEtgEdCg0KBQQGAgYFEgS5AQQKCg0KBQQGAgYBEgS5AQsbCg0KBQQGAgYDEgS5AR4fCicKBAQGAgcSBLwBBCkaGSBEb3dubG9hZCBmYWlsdXJlIHJlYXNvbgoKDwoFBAYCBwQSBrwBBLkBIAoNCgUEBgIHBhIEvAEEHgoNCgUEBgIHARIEvAEfJQoNCgUEBgIHAxIEvAEnKAofCgQEBgIIEgS/AQQfGhEgQWRkaXRpb25hbCBpbmZvCgoPCgUEBgIIBBIGvwEEvAEpCg0KBQQGAggFEgS/AQQKCg0KBQQGAggBEgS/AQsaCg0KBQQGAggDEgS/AR0eCioKBAQGAgkSBMIBBBoaHCBTYXZlIGN1cnJlbnQgY29uZmlndXJhdGlvbgoKDwoFBAYCCQQSBsIBBL8BHwoNCgUEBgIJBRIEwgEECAoNCgUEBgIJARIEwgEJFAoNCgUEBgIJAxIEwgEXGQokCgQEBgIKEgTFAQQaGhYgSW1hZ2UgbG9jYWwgbG9jYXRpb24KCg8KBQQGAgoEEgbFAQTCARoKDQoFBAYCCgUSBMUBBAoKDQoFBAYCCgESBMUBCxQKDQoFBAYCCgMSBMUBFxkKJgoEBAYCCxIEyAEEKBoYIEltYWdlIGFjdGl2YXRpb24gc3RhdGUKCg8KBQQGAgsEEgbIAQTFARoKDQoFBAYCCwYSBMgBBBYKDQoFBAYCCwESBMgBFyIKDQoFBAYCCwMSBMgBJScKHwoEBAYCDBIEywEEGhoRIEltYWdlIGZpbGUgc2l6ZQoKDwoFBAYCDAQSBssBBMgBKAoNCgUEBgIMBRIEywEECgoNCgUEBgIMARIEywELFAoNCgUEBgIMAxIEywEXGQo5CgIEBxIGzwEA0QEBGisgRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKCgsKAwQHARIEzwEIFgoMCgQEBwIAEgTQAQQlCg0KBQQHAgAEEgTQAQQMCg0KBQQHAgAGEgTQAQ0aCg0KBQQHAgABEgTQARsgCg0KBQQHAgADEgTQASMkCgwKAgQIEgbTAQDVAQEKCwoDBAgBEgTTAQgOCgwKBAQIAgASBNQBBB0KDQoFBAgCAAQSBNQBBAwKDQoFBAgCAAYSBNQBDRIKDQoFBAgCAAESBNQBExgKDQoFBAgCAAMSBNQBGxwKkwEKAgQJEgbZAQDjAQEahAEgT251SW1hZ2UgcmVwcmVzZW50cyB0aGUgT01DSSBpbmZvcm1hdGlvbiBhcyBwZXIgT01DSSBzcGVjCiB0aGUgaW5mb3JtYXRpb24gd2lsbCBiZSBwb3B1bGF0ZXMgZXhhY3RseSBhcyBleHRyYWN0ZWQgZnJvbSB0aGUgZGV2aWNlLgoKCwoDBAkBEgTZAQgQChwKBAQJAgASBNsBBBcaDmltYWdlIHZlcnNpb24KCg8KBQQJAgAEEgbbAQTZARIKDQoFBAkCAAUSBNsBBAoKDQoFBAkCAAESBNsBCxIKDQoFBAkCAAMSBNsBFRYKDAoEBAkCARIE3AEEGAoPCgUECQIBBBIG3AEE2wEXCg0KBQQJAgEFEgTcAQQICg0KBQQJAgEBEgTcAQkTCg0KBQQJAgEDEgTcARYXCgwKBAQJAgISBN0BBBYKDwoFBAkCAgQSBt0BBNwBGAoNCgUECQICBRIE3QEECAoNCgUECQICARIE3QEJEQoNCgUECQICAxIE3QEUFQoMCgQECQIDEgTeAQQVCg8KBQQJAgMEEgbeAQTdARYKDQoFBAkCAwUSBN4BBAgKDQoFBAkCAwESBN4BCRAKDQoFBAkCAwMSBN4BExQKDAoEBAkCBBIE3wEEGwoPCgUECQIEBBIG3wEE3gEVCg0KBQQJAgQFEgTfAQQKCg0KBQQJAgQBEgTfAQsWCg0KBQQJAgQDEgTfARkaCq0BCgQECQIFEgTiAQQUGp4BIEhhc2ggaXMgY29tcHV0ZWQgYnkgdGhlIE9OVSBhbmQgaXMgb3B0aW9uYWwgYXMgcGVyIE9NQ0kgc3BlYyAocGFyYWdyYXBoIDkuMS40KQogTm8gYXNzdW1wdGlvbiBzaG91bGQgYmUgbWFkZSBvbiB0aGUgZXhpc3RlbmNlIG9mIHRoaXMgYXR0cmlidXRlIGF0IGFueSB0aW1lLgoKDwoFBAkCBQQSBuIBBN8BGwoNCgUECQIFBRIE4gEECgoNCgUECQIFARIE4gELDwoNCgUECQIFAxIE4gESEwoMCgIEChIG5QEA5wEBCgsKAwQKARIE5QEIEQoMCgQECgIAEgTmAQQgCg0KBQQKAgAEEgTmAQQMCg0KBQQKAgAGEgTmAQ0VCg0KBQQKAgABEgTmARYbCg0KBQQKAgADEgTmAR4fCgwKAgQLEgbpAQDsAQEKCwoDBAsBEgTpAQgYCgwKBAQLAgASBOoBBBkKDwoFBAsCAAQSBuoBBOkBGgoNCgUECwIABRIE6gEECgoNCgUECwIAARIE6gELFAoNCgUECwIAAxIE6gEXGAoMCgQECwIBEgTrAQQeCg8KBQQLAgEEEgbrAQTqARkKDQoFBAsCAQYSBOsBBA4KDQoFBAsCAQESBOsBDxkKDQoFBAsCAQMSBOsBHB0KDAoCBAwSBu4BAKECAQoLCgMEDAESBO4BCBIKDgoEBAwEABIG7wEE+AEFCg0KBQQMBAABEgTvAQkbCg4KBgQMBAACABIE8AEIHQoPCgcEDAQAAgABEgTwAQgYCg8KBwQMBAACAAISBPABGxwKDgoGBAwEAAIBEgTxAQgfCg8KBwQMBAACAQESBPEBCBoKDwoHBAwEAAIBAhIE8QEdHgoOCgYEDAQAAgISBPIBCB8KDwoHBAwEAAICARIE8gEIGgoPCgcEDAQAAgICEgTyAR0eCg4KBgQMBAACAxIE8wEIHQoPCgcEDAQAAgMBEgTzAQgYCg8KBwQMBAACAwISBPMBGxwKDgoGBAwEAAIEEgT0AQgcCg8KBwQMBAACBAESBPQBCBcKDwoHBAwEAAIEAhIE9AEaGwoOCgYEDAQAAgUSBPUBCCEKDwoHBAwEAAIFARIE9QEIHAoPCgcEDAQAAgUCEgT1AR8gCg4KBgQMBAACBhIE9gEIIAoPCgcEDAQAAgYBEgT2AQgbCg8KBwQMBAACBgISBPYBHh8KDgoGBAwEAAIHEgT3AQgfCg8KBwQMBAACBwESBPcBCBoKDwoHBAwEAAIHAhIE9wEdHgoOCgQEDAQBEgb6AQSFAgUKDQoFBAwEAQESBPoBCRsKDgoGBAwEAQIAEgT7AQgVCg8KBwQMBAECAAESBPsBCBAKDwoHBAwEAQIAAhIE+wETFAoOCgYEDAQBAgESBPwBCBgKDwoHBAwEAQIBARIE/AEIEwoPCgcEDAQBAgECEgT8ARYXCg4KBgQMBAECAhIE/QEIGAoPCgcEDAQBAgIBEgT9AQgTCg8KBwQMBAECAgISBP0BFhcKRgoGBAwEAQIDEgT+AQgfIjYgVk9MVEhBIE9OVSBBREFQVEVSIGhhcyBubyBtb3JlIHNwYWNlIHRvIHN0b3JlIGltYWdlcwoKDwoHBAwEAQIDARIE/gEIGgoPCgcEDAQBAgMCEgT+AR0eCjcKBgQMBAECBBIE/wEIGiInIFVzZWQgYWxzbyBmb3IgQ2hlY2tzdW0gZmFpbHVyZSBvbiBPTlUKCg8KBwQMBAECBAESBP8BCBUKDwoHBAwEAQIEAhIE/wEYGQoOCgYEDAQBAgUSBIACCCEKDwoHBAwEAQIFARIEgAIIHAoPCgcEDAQBAgUCEgSAAh8gCg4KBgQMBAECBhIEgQIIIwoPCgcEDAQBAgYBEgSBAggeCg8KBwQMBAECBgISBIECISIKDgoGBAwEAQIHEgSCAggjCg8KBwQMBAECBwESBIICCB4KDwoHBAwEAQIHAhIEggIhIgoOCgYEDAQBAggSBIMCCCAKDwoHBAwEAQIIARIEgwIIGwoPCgcEDAQBAggCEgSDAh4fCg4KBgQMBAECCRIEhAIIIQoPCgcEDAQBAgkBEgSEAggcCg8KBwQMBAECCQISBIQCHyAKDgoEBAwEAhIGhwIEkwIFCg0KBQQMBAIBEgSHAgkdCg4KBgQMBAICABIEiAIIGgoPCgcEDAQCAgABEgSIAggVCg8KBwQMBAICAAISBIgCGBkKDgoGBAwEAgIBEgSJAggbCg8KBwQMBAICAQESBIkCCBYKDwoHBAwEAgIBAhIEiQIZGgpHCgYEDAQCAgISBIoCCB0iNyBIYXBwZW5zIGR1cmluZyBSZWJvb3Qgb2YgdGhlIE9OVSBhZnRlciBhY3RpdmF0ZSBjYWxsLgoKDwoHBAwEAgICARIEigIIGAoPCgcEDAQCAgICEgSKAhscCg4KBgQMBAICAxIEiwIIGQoPCgcEDAQCAgMBEgSLAggUCg8KBwQMBAICAwISBIsCFxgKDgoGBAwEAgIEEgSMAggdCg8KBwQMBAICBAESBIwCCBgKDwoHBAwEAgIEAhIEjAIbHAoOCgYEDAQCAgUSBI0CCBwKDwoHBAwEAgIFARIEjQIIFwoPCgcEDAQCAgUCEgSNAhobCg4KBgQMBAICBhIEjgIIJgoPCgcEDAQCAgYBEgSOAgghCg8KBwQMBAICBgISBI4CJCUKDgoGBAwEAgIHEgSPAgglCg8KBwQMBAICBwESBI8CCCAKDwoHBAwEAgIHAhIEjwIjJAoOCgYEDAQCAggSBJACCCIKDwoHBAwEAgIIARIEkAIIHQoPCgcEDAQCAggCEgSQAiAhCg4KBgQMBAICCRIEkQIIIQoPCgcEDAQCAgkBEgSRAggcCg8KBwQMBAICCQISBJECHyAKDgoGBAwEAgIKEgSSAggfCg8KBwQMBAICCgESBJICCBkKDwoHBAwEAgIKAhIEkgIcHgodCgQEDAIAEgSWAgQXGg8gaW1hZ2UgdmVyc2lvbgoKDwoFBAwCAAQSBpYCBJMCBQoNCgUEDAIABRIElgIECgoNCgUEDAIAARIElgILEgoNCgUEDAIAAxIElgIVFgoeCgQEDAIBEgSZAgQqGhAgRG93bmxvYWQgc3RhdGUKCg8KBQQMAgEEEgaZAgSWAhcKDQoFBAwCAQYSBJkCBBYKDQoFBAwCAQESBJkCFyUKDQoFBAwCAQMSBJkCKCkKUwoEBAwCAhIEnAIEIRpFIEltYWdlIE9wZXJhdGlvbiBGYWlsdXJlIHJlYXNvbiAodXNlIGZvciBib3RoIERvd25sb2FkIGFuZCBBY3RpdmF0ZSkKCg8KBQQMAgIEEgacAgSZAioKDQoFBAwCAgYSBJwCBBYKDQoFBAwCAgESBJwCFx0KDQoFBAwCAgMSBJwCHyAKJgoEBAwCAxIEnwIEKRoYIEltYWdlIGFjdGl2YXRpb24gc3RhdGUKCg8KBQQMAgMEEgafAgScAiEKDQoFBAwCAwYSBJ8CBBgKDQoFBAwCAwESBJ8CGSQKDQoFBAwCAwMSBJ8CJygKDAoCBA0SBqMCAMsCAQoLCgMEDQESBKMCCAwKDgoEBA0EABIGpAIErAIFCg0KBQQNBAABEgSkAgkRCg4KBgQNBAACABIEpQIIFAoPCgcEDQQAAgABEgSlAggPCg8KBwQNBAACAAISBKUCEhMKDgoGBA0EAAIBEgSmAggZCg8KBwQNBAACAQESBKYCCBQKDwoHBA0EAAIBAhIEpgIXGAoOCgYEDQQAAgISBKcCCBkKDwoHBA0EAAICARIEpwIIFAoPCgcEDQQAAgICEgSnAhcYCg4KBgQNBAACAxIEqAIIFAoPCgcEDQQAAgMBEgSoAggPCg8KBwQNBAACAwISBKgCEhMKDgoGBA0EAAIEEgSpAggUCg8KBwQNBAACBAESBKkCCA8KDwoHBA0EAAIEAhIEqQISEwoOCgYEDQQAAgUSBKoCCBYKDwoHBA0EAAIFARIEqgIIEQoPCgcEDQQAAgUCEgSqAhQVCg4KBgQNBAACBhIEqwIIFgoPCgcEDQQAAgYBEgSrAggRCg8KBwQNBAACBgISBKsCFBUKKQoEBA0CABIErgIEFyIbIERldmljZS11bmlxdWUgcG9ydCBudW1iZXIKCg8KBQQNAgAEEgauAgSsAgUKDQoFBA0CAAUSBK4CBAoKDQoFBA0CAAESBK4CCxIKDQoFBA0CAAMSBK4CFRYKJAoEBA0CARIEsAIEFSIWIEFyYml0cmFyeSBwb3J0IGxhYmVsCgoPCgUEDQIBBBIGsAIErgIXCg0KBQQNAgEFEgSwAgQKCg0KBQQNAgEBEgSwAgsQCg0KBQQNAgEDEgSwAhMUCh0KBAQNAgISBLICBBYiDyAgVHlwZSBvZiBwb3J0CgoPCgUEDQICBBIGsgIEsAIVCg0KBQQNAgIGEgSyAgQMCg0KBQQNAgIBEgSyAg0RCg0KBQQNAgIDEgSyAhQVCgwKBAQNAgMSBLQCBCwKDwoFBA0CAwQSBrQCBLICFgoNCgUEDQIDBhIEtAIEGwoNCgUEDQIDARIEtAIcJwoNCgUEDQIDAxIEtAIqKwoMCgQEDQIEEgS2AgQsCg8KBQQNAgQEEga2AgS0AiwKDQoFBA0CBAYSBLYCBBsKDQoFBA0CBAESBLYCHCcKDQoFBA0CBAMSBLYCKisKOAoEBA0CBRIEuAIEGSIqIFVuaXF1ZSAuaWQgb2YgZGV2aWNlIHRoYXQgb3ducyB0aGlzIHBvcnQKCg8KBQQNAgUEEga4AgS2AiwKDQoFBA0CBQUSBLgCBAoKDQoFBA0CBQESBLgCCxQKDQoFBA0CBQMSBLgCFxgKDgoEBA0DABIGugIEvQIFCg0KBQQNAwABEgS6AgwUCg4KBgQNAwACABIEuwIIHQoRCgcEDQMAAgAEEga7Agi6AhYKDwoHBA0DAAIABRIEuwIIDgoPCgcEDQMAAgABEgS7Ag8YCg8KBwQNAwACAAMSBLsCGxwKDgoGBA0DAAIBEgS8AggbChEKBwQNAwACAQQSBrwCCLsCHQoPCgcEDQMAAgEFEgS8AggOCg8KBwQNAwACAQESBLwCDxYKDwoHBA0DAAIBAxIEvAIZGgoMCgQEDQIGEgS+AgQgCg0KBQQNAgYEEgS+AgQMCg0KBQQNAgYGEgS+Ag0VCg0KBQQNAgYBEgS+AhYbCg0KBQQNAgYDEgS+Ah4fCgwKBAQNAgcSBMACBBsKDwoFBA0CBwQSBsACBL4CIAoNCgUEDQIHBRIEwAIECwoNCgUEDQIHARIEwAIMFgoNCgUEDQIHAxIEwAIZGgoMCgQEDQIIEgTBAgQaCg8KBQQNAggEEgbBAgTAAhsKDQoFBA0CCAUSBMECBAsKDQoFBA0CCAESBMECDBQKDQoFBA0CCAMSBMECFxkKDAoEBA0CCRIEwgIEGwoPCgUEDQIJBBIGwgIEwQIaCg0KBQQNAgkFEgTCAgQLCg0KBQQNAgkBEgTCAgwVCg0KBQQNAgkDEgTCAhgaCgwKBAQNAgoSBMMCBBwKDwoFBA0CCgQSBsMCBMICGwoNCgUEDQIKBRIEwwIECwoNCgUEDQIKARIEwwIMFgoNCgUEDQIKAxIEwwIZGwoMCgQEDQILEgTEAgQaCg8KBQQNAgsEEgbEAgTDAhwKDQoFBA0CCwUSBMQCBAsKDQoFBA0CCwESBMQCDBQKDQoFBA0CCwMSBMQCFxkKDAoEBA0CDBIExQIEGwoPCgUEDQIMBBIGxQIExAIaCg0KBQQNAgwFEgTFAgQLCg0KBQQNAgwBEgTFAgwVCg0KBQQNAgwDEgTFAhgaCs4BCgQEDQINEgTKAgQnGr8BIG9mcF9wb3J0IHJlcHJlc2VudHMgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiBhIHBvcnQsIGUuZy4gaGFyZHdhcmUKIGFkZHJlc3MgYW5kIHN1cHBvcnRlZCBmZWF0dXJlcy4gIFRoaXMgZmllbGQgaXMgcmVsZXZhbnQgb25seSBmb3IKIFVOSSBhbmQgTk5JIHBvcnRzLiAgIEZvciBQT04gcG9ydHMsIGl0IGNhbiBiZSBsZWZ0IGVtcHR5LgoKDwoFBA0CDQQSBsoCBMUCGwoNCgUEDQINBhIEygIEGAoNCgUEDQINARIEygIZIQoNCgUEDQINAxIEygIkJgoMCgIEDhIGzQIAzwIBCgsKAwQOARIEzQIIDQoMCgQEDgIAEgTOAgQcCg0KBQQOAgAEEgTOAgQMCg0KBQQOAgAGEgTOAg0RCg0KBQQOAgABEgTOAhIXCg0KBQQOAgADEgTOAhobCioKAgQPEgbSAgCnAwEaHCBBIFBoeXNpY2FsIERldmljZSBpbnN0YW5jZQoKCwoDBA8BEgTSAggOCioKBAQPAgASBNQCBCkaHCBWb2x0aGEncyBkZXZpY2UgaWRlbnRpZmllcgoKDwoFBA8CAAQSBtQCBNICEAoNCgUEDwIABRIE1AIECgoNCgUEDwIAARIE1AILDQoNCgUEDwIAAxIE1AIQEQoNCgUEDwIACBIE1AISKAoRCgkEDwIACO3e2QMSBNQCEycKSQoEBA8CARIE1wIEKxo7IERldmljZSB0eXBlLCByZWZlcnMgdG8gb25lIG9mIHRoZSByZWdpc3RlcmVkIGRldmljZSB0eXBlcwoKDwoFBA8CAQQSBtcCBNQCKQoNCgUEDwIBBRIE1wIECgoNCgUEDwIBARIE1wILDwoNCgUEDwIBAxIE1wISEwoNCgUEDwIBCBIE1wIUKgoRCgkEDwIBCO3e2QMSBNcCFSkKhwEKBAQPAgISBNsCBCkaeSBJcyB0aGlzIGRldmljZSBhIHJvb3QgZGV2aWNlLiBFYWNoIGxvZ2ljYWwgc3dpdGNoIGhhcyBvbmUgcm9vdAogZGV2aWNlIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBsb2dpY2FsIGZsb3cgc3dpdGNoLgoKDwoFBA8CAgQSBtsCBNcCKwoNCgUEDwICBRIE2wIECAoNCgUEDwICARIE2wIJDQoNCgUEDwICAxIE2wIQEQoNCgUEDwICCBIE2wISKAoRCgkEDwICCO3e2QMSBNsCEycKcQoEBA8CAxIE3wIEMBpjIFBhcmVudCBkZXZpY2UgaWQsIGluIHRoZSBkZXZpY2UgdHJlZSAoZm9yIGEgcm9vdCBkZXZpY2UsIHRoZSBwYXJlbnRfaWQKIGlzIHRoZSBsb2dpY2FsX2RldmljZS5pZCkKCg8KBQQPAgMEEgbfAgTbAikKDQoFBA8CAwUSBN8CBAoKDQoFBA8CAwESBN8CCxQKDQoFBA8CAwMSBN8CFxgKDQoFBA8CAwgSBN8CGS8KEQoJBA8CAwjt3tkDEgTfAhouCgwKBAQPAgQSBOACBDYKDwoFBA8CBAQSBuACBN8CMAoNCgUEDwIEBRIE4AIECgoNCgUEDwIEARIE4AILGQoNCgUEDwIEAxIE4AIcHgoNCgUEDwIECBIE4AIfNQoRCgkEDwIECO3e2QMSBOACIDQKNAoEBA8CBRIE4wIELRomIFZlbmRvciwgdmVyc2lvbiwgc2VyaWFsIG51bWJlciwgZXRjLgoKDwoFBA8CBQQSBuMCBOACNgoNCgUEDwIFBRIE4wIECgoNCgUEDwIFARIE4wILEQoNCgUEDwIFAxIE4wIUFQoNCgUEDwIFCBIE4wIWLAoRCgkEDwIFCO3e2QMSBOMCFysKDAoEBA8CBhIE5AIELAoPCgUEDwIGBBIG5AIE4wItCg0KBQQPAgYFEgTkAgQKCg0KBQQPAgYBEgTkAgsQCg0KBQQPAgYDEgTkAhMUCg0KBQQPAgYIEgTkAhUrChEKCQQPAgYI7d7ZAxIE5AIWKgoMCgQEDwIHEgTlAgQ3Cg8KBQQPAgcEEgblAgTkAiwKDQoFBA8CBwUSBOUCBAoKDQoFBA8CBwESBOUCCxsKDQoFBA8CBwMSBOUCHh8KDQoFBA8CBwgSBOUCIDYKEQoJBA8CBwjt3tkDEgTlAiE1CgwKBAQPAggSBOYCBDcKDwoFBA8CCAQSBuYCBOUCNwoNCgUEDwIIBRIE5gIECgoNCgUEDwIIARIE5gILGwoNCgUEDwIIAxIE5gIeHwoNCgUEDwIICBIE5gIgNgoRCgkEDwIICO3e2QMSBOYCITUKLgoEBA8CCRIE6AIELRogIExpc3Qgb2Ygc29mdHdhcmUgb24gdGhlIGRldmljZQoKDwoFBA8CCQQSBugCBOYCNwoNCgUEDwIJBhIE6AIECgoNCgUEDwIJARIE6AILEQoNCgUEDwIJAxIE6AIUFQoNCgUEDwIJCBIE6AIWLAoRCgkEDwIJCO3e2QMSBOgCFysKDAoEBA8CChIE6QIENQoPCgUEDwIKBBIG6QIE6AItCg0KBQQPAgoFEgTpAgQKCg0KBQQPAgoBEgTpAgsYCg0KBQQPAgoDEgTpAhsdCg0KBQQPAgoIEgTpAh40ChEKCQQPAgoI7d7ZAxIE6QIfMwoMCgQEDwILEgTqAgQxCg8KBQQPAgsEEgbqAgTpAjUKDQoFBA8CCwUSBOoCBAoKDQoFBA8CCwESBOoCCxQKDQoFBA8CCwMSBOoCFxkKDQoFBA8CCwgSBOoCGjAKEQoJBA8CCwjt3tkDEgTqAhsvCl4KBAQPAgwSBO4CBC8aUCBBZGFwdGVyIHRoYXQgdGFrZXMgY2FyZSBvZiBkZXZpY2UKIERlcHJlY2F0ZWQgYW5kIHJlcGxhY2VkIGJ5IGFkYXB0ZXJfZW5kcG9pbnQKCg8KBQQPAgwEEgbuAgTqAjEKDQoFBA8CDAUSBO4CBAoKDQoFBA8CDAESBO4CCxIKDQoFBA8CDAMSBO4CFRcKDQoFBA8CDAgSBO4CGC4KEQoJBA8CDAjt3tkDEgTuAhktClQKBAQPAg0SBPECBCEaRiBJbmRpY2F0ZXMgaG93IHRvIHJlYWNoIHRoZSBhZGFwdGVyIGluc3RhbmNlIHRoYXQgbWFuYWdlcyB0aGlzIGRldmljZQoKDwoFBA8CDQQSBvECBO4CLwoNCgUEDwINBRIE8QIECgoNCgUEDwINARIE8QILGwoNCgUEDwINAxIE8QIeIAo2CgQEDwIOEgT0AgQVGiggRGV2aWNlIGNvbnRhY3Qgb24gdmxhbiAoaWYgMCwgbm8gdmxhbikKCg8KBQQPAg4EEgb0AgTxAiEKDQoFBA8CDgUSBPQCBAoKDQoFBA8CDgESBPQCCw8KDQoFBA8CDgMSBPQCEhQKDgoEBA8DABIG9gIE/wIFCg0KBQQPAwABEgT2AgwYCj0KBgQPAwACABIE9wIIHSItIFdoaWNoIGRldmljZSB0byB1c2UgYXMgcHJveHkgdG8gdGhpcyBkZXZpY2UKChEKBwQPAwACAAQSBvcCCPYCGgoPCgcEDwMAAgAFEgT3AggOCg8KBwQPAwACAAESBPcCDxgKDwoHBA8DAAIAAxIE9wIbHApQCgYEDwMAAgESBPgCCB8iQCBUaGUgZGV2aWNlIHR5cGUgb2YgdGhlIHByb3h5IGRldmljZSB0byB1c2UgYXMgdGhlIGFkYXB0ZXIgbmFtZQoKEQoHBA8DAAIBBBIG+AII9wIdCg8KBwQPAwACAQUSBPgCCA4KDwoHBA8DAAIBARIE+AIPGgoPCgcEDwMAAgEDEgT4Ah0eCioKBgQPAwACAhIE+QIIHiIaIFN1Yi1hZGRyZXNzIHdpdGhpbiBwcm94eQoKEQoHBA8DAAICBBIG+QII+AIfCg8KBwQPAwACAgUSBPkCCA4KDwoHBA8DAAICARIE+QIPGQoPCgcEDwMAAgIDEgT5AhwdCiUKBgQPAwACAxIE+gIIJCIVIENoYW5uZWwgR3JvdXAgaW5kZXgKChEKBwQPAwACAwQSBvoCCPkCHgoPCgcEDwMAAgMFEgT6AggOCg8KBwQPAwACAwESBPoCDx8KDwoHBA8DAAIDAxIE+gIiIwoqCgYEDwMAAgQSBPsCCCciGiBDaGFubmVsIFRlcm1pbmF0aW9uIG5hbWUKChEKBwQPAwACBAQSBvsCCPoCJAoPCgcEDwMAAgQFEgT7AggOCg8KBwQPAwACBAESBPsCDyIKDwoHBA8DAAIEAxIE+wIlJgoqCgYEDwMAAgUSBPwCCBoiGiBvbnUgaWRlbnRpZmllcjsgb3B0aW9uYWwKChEKBwQPAwACBQQSBvwCCPsCJwoPCgcEDwMAAgUFEgT8AggOCg8KBwQPAwACBQESBPwCDxUKDwoHBA8DAAIFAxIE/AIYGQo6CgYEDwMAAgYSBP0CCCIiKiBzZXNzaW9uIGlkZW50aWZpZXIgZm9yIHRoZSBPTlU7IG9wdGlvbmFsCgoRCgcEDwMAAgYEEgb9Agj8AhoKDwoHBA8DAAIGBRIE/QIIDgoPCgcEDwMAAgYBEgT9Ag8dCg8KBwQPAwACBgMSBP0CICEKRwoGBA8DAAIHEgT+AggkIjcgZW5kcG9pbnQgb2YgdGhlIGFkYXB0ZXIgdGhhdCBoYW5kbGVzIHRoZSBwcm94eSBkZXZpY2UKChEKBwQPAwACBwQSBv4CCP0CIgoPCgcEDwMAAgcFEgT+AggOCg8KBwQPAwACBwESBP4CDx8KDwoHBA8DAAIHAxIE/gIiIwpICgQEDwIPEgSCAwQcGjogRGV2aWNlIGNvbnRhY3QgTUFDIGFkZHJlc3MgKGZvcm1hdDogInh4Onh4Onh4Onh4Onh4Onh4IikKCg8KBQQPAg8EEgaCAwT/AgYKDQoFBA8CDwUSBIIDBAoKDQoFBA8CDwESBIIDCxYKDQoFBA8CDwMSBIIDGRsKDgoEBA8IABIGhAMEjwMFCg0KBQQPCAABEgSEAwoRClcKBAQPAhASBIcDCCEaSSBEZXZpY2UgY29udGFjdCBJUHY0IGFkZHJlc3MgKGZvcm1hdDogImEuYi5jLmQiIG9yIGNhbiB1c2UgaG9zdG5hbWUgdG9vKQoKDQoFBA8CEAUSBIcDCA4KDQoFBA8CEAESBIcDDxsKDQoFBA8CEAMSBIcDHiAKeAoEBA8CERIEiwMIIRpqIERldmljZSBjb250YWN0IElQdjYgYWRkcmVzcyB1c2luZyB0aGUgY2Fub25pY2FsIHN0cmluZyBmb3JtCiAoInh4eHg6eHh4eDp4eHh4Onh4eHg6eHh4eDp4eHh4Onh4eHg6eHh4eCIpCgoNCgUEDwIRBRIEiwMIDgoNCgUEDwIRARIEiwMPGwoNCgUEDwIRAxIEiwMeIAoMCgQEDwISEgSNAwgiCg0KBQQPAhIFEgSNAwgOCg0KBQQPAhIBEgSNAw8cCg0KBQQPAhIDEgSNAx8hCkEKBAQPAhMSBJADBBsiMyBVc2VkIHRvIHBhc3MgYWRkaXRpb25hbCBkZXZpY2Ugc3BlY2lmaWMgYXJndW1lbnRzCgoPCgUEDwITBBIGkAMEjwMGCg0KBQQPAhMFEgSQAwQKCg0KBQQPAhMBEgSQAwsVCg0KBQQPAhMDEgSQAxgaCgwKBAQPAhQSBJIDBCQKDwoFBA8CFAQSBpIDBJADGwoNCgUEDwIUBhIEkgMEEAoNCgUEDwIUARIEkgMRHgoNCgUEDwIUAxIEkgMhIwoMCgQEDwIVEgSUAwQtCg8KBQQPAhUEEgaUAwSSAyQKDQoFBA8CFQYSBJQDBBsKDQoFBA8CFQESBJQDHCcKDQoFBA8CFQMSBJQDKiwKDAoEBA8CFhIElgMERAoPCgUEDwIWBBIGlgMElAMtCg0KBQQPAhYGEgSWAwQbCg0KBQQPAhYBEgSWAxwnCg0KBQQPAhYDEgSWAyosCg0KBQQPAhYIEgSWAy1DChEKCQQPAhYI7d7ZAxIElgMuQgolCgQEDwIXEgSYAwQuIhcgIFVzZWQgaW4gRkFJTEVEIHN0YXRlCgoPCgUEDwIXBBIGmAMElgNECg0KBQQPAhcFEgSYAwQKCg0KBQQPAhcBEgSYAwsRCg0KBQQPAhcDEgSYAxQWCg0KBQQPAhcIEgSYAxctChEKCQQPAhcI7d7ZAxIEmAMYLAoMCgQEDwIYEgSaAwRKCg8KBQQPAhgEEgaaAwSYAy4KDQoFBA8CGAYSBJoDBB4KDQoFBA8CGAESBJoDHy0KDQoFBA8CGAMSBJoDMDIKDQoFBA8CGAgSBJoDM0kKEQoJBA8CGAjt3tkDEgSaAzRIClgKBAQPAhkSBJ8DBCQaISBEZXZpY2UgdHlwZSBzcGVjaWZpYyBhdHRyaWJ1dGVzCjInIFRPRE8gYWRkaXRpb25hbCBjb21tb24gYXR0cmlidXRlIGhlcmUKCg8KBQQPAhkEEgafAwSaA0oKDQoFBA8CGQYSBJ8DBBcKDQoFBA8CGQESBJ8DGB4KDQoFBA8CGQMSBJ8DISMKiAEKBAQPAhoSBKMDBDMaeiBQbUNvbmZpZ3Mgd2lsbCBldmVudHVhbGx5IGNvbnZlcnRlZCB0byBhIGNoaWxkIG5vZGUgb2YgdGhlCiBkZXZpY2UgdG8gZmFsaWNpdGF0YSBjYWxsYmFja3MgYW5kIHRvIHNpbXBsaWZ5IG1hbmlwdWxhdGlvbi4KCg8KBQQPAhoEEgajAwSfAyQKDQoFBA8CGgYSBKMDBA0KDQoFBA8CGgESBKMDDhgKDQoFBA8CGgMSBKMDGx4KDQoFBA8CGggSBKMDHzIKEQoJBA8CGgjs3tkDEgSjAyAxCgwKBAQPAhsSBKUDBFAKDQoFBA8CGwQSBKUDBAwKDQoFBA8CGwYSBKUDDRoKDQoFBA8CGwESBKUDGyoKDQoFBA8CGwMSBKUDLTAKDQoFBA8CGwgSBKUDMU8KEQoJBA8CGwjs3tkDEgSlAzJOCgwKAgQQEgapAwCrAwEKCwoDBBABEgSpAwgPCgwKBAQQAgASBKoDBB4KDQoFBBACAAQSBKoDBAwKDQoFBBACAAYSBKoDDRMKDQoFBBACAAESBKoDFBkKDQoFBBACAAMSBKoDHB0KDAoCBBESBq0DAL0DAQoLCgMEEQESBK0DCBwKDgoEBBEEABIGrgMEsQMFCg0KBQQRBAABEgSuAwkWCg4KBgQRBAACABIErwMIEgoPCgcEEQQAAgABEgSvAwgNCg8KBwQRBAACAAISBK8DEBEKDgoGBBEEAAIBEgSwAwgSCg8KBwQRBAACAQESBLADCA0KDwoHBBEEAAIBAhIEsAMQEQohCgQEEQIAEgSzAwQSGhMgRGV2aWNlIElkZW50aWZpZXIKCg8KBQQRAgAEEgazAwSxAwUKDQoFBBECAAUSBLMDBAoKDQoFBBECAAESBLMDCw0KDQoFBBECAAMSBLMDEBEKDAoEBBECARIEtAMEGQoPCgUEEQIBBBIGtAMEswMSCg0KBQQRAgEFEgS0AwQKCg0KBQQRAgEBEgS0AwsUCg0KBQQRAgEDEgS0AxcYCgwKBAQRAgISBLUDBBcKDwoFBBECAgQSBrUDBLQDGQoNCgUEEQICBRIEtQMECgoNCgUEEQICARIEtQMLEgoNCgUEEQICAxIEtQMVFgoMCgQEEQIDEgS2AwQeCg8KBQQRAgMEEga2AwS1AxcKDQoFBBECAwUSBLYDBAoKDQoFBBECAwESBLYDCxkKDQoFBBECAwMSBLYDHB0KDAoEBBECBBIEtwMEHQoPCgUEEQIEBBIGtwMEtgMeCg0KBQQRAgQFEgS3AwQKCg0KBQQRAgQBEgS3AwsYCg0KBQQRAgQDEgS3AxscCgwKBAQRAgUSBLgDBCUKDwoFBBECBQQSBrgDBLcDHQoNCgUEEQIFBRIEuAMECQoNCgUEEQIFARIEuAMKIAoNCgUEEQIFAxIEuAMjJAoMCgQEEQIGEgS5AwQUCg8KBQQRAgYEEga5AwS4AyUKDQoFBBECBgUSBLkDBAkKDQoFBBECBgESBLkDCg8KDQoFBBECBgMSBLkDEhMKDAoEBBECBxIEugMEFgoPCgUEEQIHBBIGugMEuQMUCg0KBQQRAgcFEgS6AwQJCg0KBQQRAgcBEgS6AwoRCg0KBQQRAgcDEgS6AxQVCgwKBAQRAggSBLsDBCEKDwoFBBECCAQSBrsDBLoDFgoNCgUEEQIIBRIEuwMECgoNCgUEEQIIARIEuwMLHAoNCgUEEQIIAxIEuwMfIAoMCgQEEQIJEgS8AwQhCg8KBQQRAgkEEga8AwS7AyEKDQoFBBECCQYSBLwDBBEKDQoFBBECCQESBLwDEhsKDQoFBBECCQMSBLwDHiBiBnByb3RvMwqMHwofdm9sdGhhX3Byb3Rvcy9vbWNpX21pYl9kYi5wcm90bxIEb21jaRoYdm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvIkMKEE1pYkF0dHJpYnV0ZURhdGESGQoEbmFtZRgBIAEoCUIF6PbNHQFSBG5hbWUSFAoFdmFsdWUYAiABKAlSBXZhbHVlIrQBCg9NaWJJbnN0YW5jZURhdGESJgoLaW5zdGFuY2VfaWQYASABKA1CBej2zR0BUgppbnN0YW5jZUlkEhgKB2NyZWF0ZWQYAiABKAlSB2NyZWF0ZWQSGgoIbW9kaWZpZWQYAyABKAlSCG1vZGlmaWVkEkMKCmF0dHJpYnV0ZXMYBCADKAsyFi5vbWNpLk1pYkF0dHJpYnV0ZURhdGFCC+L2zR0GCgRuYW1lUgphdHRyaWJ1dGVzInkKDE1pYkNsYXNzRGF0YRIgCghjbGFzc19pZBgBIAEoDUIF6PbNHQFSB2NsYXNzSWQSRwoJaW5zdGFuY2VzGAIgAygLMhUub21jaS5NaWJJbnN0YW5jZURhdGFCEuL2zR0NCgtpbnN0YW5jZV9pZFIJaW5zdGFuY2VzIkwKDU1hbmFnZWRFbnRpdHkSIAoIY2xhc3NfaWQYASABKA1CBej2zR0BUgdjbGFzc0lkEhkKBG5hbWUYAiABKAlCBej2zR0BUgRuYW1lIjcKC01lc3NhZ2VUeXBlEigKDG1lc3NhZ2VfdHlwZRgBIAEoDUIF6PbNHQFSC21lc3NhZ2VUeXBlIugCCg1NaWJEZXZpY2VEYXRhEiIKCWRldmljZV9pZBgBIAEoCUIF6PbNHQFSCGRldmljZUlkEhgKB2NyZWF0ZWQYAiABKAlSB2NyZWF0ZWQSJAoObGFzdF9zeW5jX3RpbWUYAyABKAlSDGxhc3RTeW5jVGltZRIiCg1taWJfZGF0YV9zeW5jGAQgASgNUgttaWJEYXRhU3luYxIYCgd2ZXJzaW9uGAUgASgNUgd2ZXJzaW9uEj0KB2NsYXNzZXMYBiADKAsyEi5vbWNpLk1pYkNsYXNzRGF0YUIP4vbNHQoKCGNsYXNzX2lkUgdjbGFzc2VzEj4KEG1hbmFnZWRfZW50aXRpZXMYByADKAsyEy5vbWNpLk1hbmFnZWRFbnRpdHlSD21hbmFnZWRFbnRpdGllcxI2Cg1tZXNzYWdlX3R5cGVzGAggAygLMhEub21jaS5NZXNzYWdlVHlwZVIMbWVzc2FnZVR5cGVzIi4KEU9wZW5PbWNpRXZlbnRUeXBlIhkKBVR5cGVzEhAKDHN0YXRlX2NoYW5nZRAAIlYKDU9wZW5PbWNpRXZlbnQSMQoEdHlwZRgBIAEoDjIdLm9tY2kuT3Blbk9tY2lFdmVudFR5cGUuVHlwZXNSBHR5cGUSEgoEZGF0YRgCIAEoCVIEZGF0YUJIChhvcmcub3BlbmNvcmQudm9sdGhhLm9tY2laLGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vbWNpSoUWCgYSBA8ATwEK3gQKAQwSAw8AEhrTBAogQ29weXJpZ2h0IDIwMTggLSBwcmVzZW50IHRoZSBvcmlnaW5hbCBhdXRob3Igb3IgYXV0aG9ycy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoKCAoBCBIDEQBDCgkKAggLEgMRAEMKCAoBCBIDEgAxCgkKAggB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QgXo9s0dAVIEbmFtZSI8ChBBbGFybU1lc3NhZ2VUeXBlEigKDG1lc3NhZ2VfdHlwZRgBIAEoDUIF6PbNHQFSC21lc3NhZ2VUeXBlIoIDCg9BbGFybURldmljZURhdGESIgoJZGV2aWNlX2lkGAEgASgJQgXo9s0dAVIIZGV2aWNlSWQSGAoHY3JlYXRlZBgCIAEoCVIHY3JlYXRlZBIuChNsYXN0X2FsYXJtX3NlcXVlbmNlGAMgASgNUhFsYXN0QWxhcm1TZXF1ZW5jZRIkCg5sYXN0X3N5bmNfdGltZRgEIAEoCVIMbGFzdFN5bmNUaW1lEhgKB3ZlcnNpb24YBSABKA1SB3ZlcnNpb24SPwoHY2xhc3NlcxgGIAMoCzIULm9tY2kuQWxhcm1DbGFzc0RhdGFCD+L2zR0KCghjbGFzc19pZFIHY2xhc3NlcxJDChBtYW5hZ2VkX2VudGl0aWVzGAcgAygLMhgub21jaS5BbGFybU1hbmFnZWRFbnRpdHlSD21hbmFnZWRFbnRpdGllcxI7Cg1tZXNzYWdlX3R5cGVzGAggAygLMhYub21jaS5BbGFybU1lc3NhZ2VUeXBlUgxtZXNzYWdlVHlwZXMiPwoWQWxhcm1PcGVuT21jaUV2ZW50VHlwZSIlChFPcGVuT21jaUV2ZW50VHlwZRIQCgxzdGF0ZV9jaGFuZ2UQACJsChJBbGFybU9wZW5PbWNpRXZlbnQSQgoEdHlwZRgBIAEoDjIuLm9tY2kuQWxhcm1PcGVuT21jaUV2ZW50VHlwZS5PcGVuT21jaUV2ZW50VHlwZVIEdHlwZRISCgRkYXRhGAIgASgJUgRkYXRhQkgKGG9yZy5vcGVuY29yZC52b2x0aGEub21jaVosZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29tY2lKhRYKBhIEDwBQAQreBAoBDBIDDwASGtMECiBDb3B5cmlnaHQgMjAxOCAtIHByZXNlbnQgdGhlIG9yaWdpbmFsIGF1dGhvciBvciBhdXRob3JzLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4g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ZmlnElAKGG9udV9pdHVfcG9uX2FsYXJtX2NvbmZpZxgBIAEoCzIWLmNvbmZpZy5PbnVJdHVQb25BbGFybUgAUhRvbnVJdHVQb25BbGFybUNvbmZpZ0IICgZjb25maWcivgkKDk9udUl0dVBvbkFsYXJtEhUKBnBvbl9uaRgBIAEoB1IFcG9uTmkSFQoGb251X2lkGAIgASgHUgVvbnVJZBI5CghhbGFybV9pZBgDIAEoDjIeLmNvbmZpZy5PbnVJdHVQb25BbGFybS5BbGFybUlEUgdhbGFybUlkEmoKGWFsYXJtX3JlcG9ydGluZ19jb25kaXRpb24YBCABKA4yLi5jb25maWcuT251SXR1UG9uQWxhcm0uQWxhcm1SZXBvcnRpbmdDb25kaXRpb25SF2FsYXJtUmVwb3J0aW5nQ29uZGl0aW9uEmAKFXJhdGVfdGhyZXNob2xkX2NvbmZpZxgFIAEoCzIqLmNvbmZpZy5PbnVJdHVQb25BbGFybS5SYXRlVGhyZXNob2xkQ29uZmlnSABSE3JhdGVUaHJlc2hvbGRDb25maWcSVAoRcmF0ZV9yYW5nZV9jb25maWcYBiABKAsyJi5jb25maWcuT251SXR1UG9uQWxhcm0uUmF0ZVJhbmdlQ29uZmlnSABSD3JhdGVSYW5nZUNvbmZpZxJjChZ2YWx1ZV90aHJlc2hvbGRfY29uZmlnGAcgASgLMisuY29uZmlnLk9udUl0dVBvbkFsYXJtLlZhbHVlVGhyZXNob2xkQ29uZmlnSABSFHZhbHVlVGhyZXNob2xkQ29uZmlnGlwKCFNvYWtUaW1lEigKEGFjdGl2ZV9zb2FrX3RpbWUYASABKAdSDmFjdGl2ZVNvYWtUaW1lEiYKD2NsZWFyX3NvYWtfdGltZRgCIAEoB1INY2xlYXJTb2FrVGltZRq9AQoTUmF0ZVRocmVzaG9sZENvbmZpZxIyChVyYXRlX3RocmVzaG9sZF9yaXNpbmcYASABKAZSE3JhdGVUaHJlc2hvbGRSaXNpbmcSNAoWcmF0ZV90aHJlc2hvbGRfZmFsbGluZxgCIAEoBlIUcmF0ZVRocmVzaG9sZEZhbGxpbmcSPAoJc29ha190aW1lGAMgASgLMh8uY29uZmlnLk9udUl0dVBvbkFsYXJtLlNvYWtUaW1lUghzb2FrVGltZRqjAQoPUmF0ZVJhbmdlQ29uZmlnEigKEHJhdGVfcmFuZ2VfbG93ZXIYASABKAZSDnJhdGVSYW5nZUxvd2VyEigKEHJhdGVfcmFuZ2VfdXBwZXIYAiABKAZSDnJhdGVSYW5nZVVwcGVyEjwKCXNvYWtfdGltZRgDIAEoCzIfLmNvbmZpZy5PbnVJdHVQb25BbGFybS5Tb2FrVGltZVIIc29ha1RpbWUafQoUVmFsdWVUaHJlc2hvbGRDb25maWcSJwoPdGhyZXNob2xkX2xpbWl0GAEgASgGUg50aHJlc2hvbGRMaW1pdBI8Cglzb2FrX3RpbWUYAiABKAsyHy5jb25maWcuT251SXR1UG9uQWxhcm0uU29ha1RpbWVSCHNvYWtUaW1lIhkKB0FsYXJtSUQSDgoKUkRJX0VSUk9SUxAAIlIKF0FsYXJtUmVwb3J0aW5nQ29uZGl0aW9uEhIKDlJBVEVfVEhSRVNIT0xEEAASDgoKUkFURV9SQU5HRRABEhMKD1ZBTFVFX1RIUkVTSE9MRBACQggKBmNvbmZpZ0JJChNvcmcub3BlbmNvcmQudm9sdGhhWjJnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vZXh0L2NvbmZpZ0rYFQoGEgQNAEUBCtEECgEMEgMNABIaxgQgQ29weXJpZ2h0IChjKSAyMDIwIE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBCBIDDwBJCgkKAggLEgMPAEkKCAoBAhIDEQAPCggKAQgSAxMALAoJCgIIARIDEwAsCgoKAgQAEgQVABkBCgoKAwQAARIDFQgTCgwKBAQACAASBBYEGAUKDAoFBAAIAAESAxYKEAoLCgQEAAIAEgMXBzMKDAoFBAACAAYSAxcHFQoMCgUEAAIAARIDFxYuCgwKBQQAAgADEgMXMTIKCgoCBAESBBsARQEKCgoDBAEBEgMbCBYKDAoEBAEEABIEHAMeBAoMCgUEAQQAARIDHAgPChsKBgQBBAACABIDHQcWIgwgUkRJIGVycm9ycwoKDgoHBAEEAAIAARIDHQcRCg4KBwQBBAACAAISAx0UFQoMCgQEAQQBEgQgAyQECgwKBQQBBAEBEgMgCB8KegoGBAEEAQIAEgMhBxoiayBUaGUgYWxhcm0gaXMgdHJpZ2dlcmVkIGlmIHRoZSBzdGF0cyBkZWx0YSB2YWx1ZSBiZXR3ZWVuIHNhbXBsZXMgY3Jvc3NlcyB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQgYm91bmRhcnkKCg4KBwQBBAECAAESAyEHFQoOCgcEAQQBAgACEgMhGBkKcwoGBAEEAQIBEgMiBxYiZCBUaGUgYWxhcm0gaXMgdHJpZ2dlcmVkIGlmIHRoZSBzdGF0cyBkZWx0YSB2YWx1ZSBiZXR3ZWVuIHNhbXBsZXMgZGV2aWF0ZXMgZnJvbSB0aGUgY29uZmlndXJlZCByYW5nZQoKDgoHBAEEAQIBARIDIgcRCg4KBwQBBAECAQISAyIUFQqTAQoGBAEEAQICEgMjBxsigwEgVGhlIGFsYXJtIGlzIHJhaXNlZCBpZiB0aGUgc3RhdHMgc2FtcGxlIHZhbHVlIGJlY29tZXMgZ3JlYXRlciB0aGFuIHRoaXMgbGV2ZWwuICBUaGUgYWxhcm0gaXMgY2xlYXJlZCB3aGVuIHRoZSBob3N0IHJlYWQgdGhlIHN0YXRzCgoOCgcEAQQBAgIBEgMjBxYKDgoHBAEEAQICAhIDIxkaCgwKBAQBAwASBCYDKQQKDAoFBAEDAAESAyYLEwoNCgYEAQMAAgASAycHJAoPCgcEAQMAAgAEEgQnByYVCg4KBwQBAwACAAUSAycHDgoOCgcEAQMAAgABEgMnDx8KDgoHBAEDAAIAAxIDJyIjCg0KBgQBAwACARIDKAcjCg8KBwQBAwACAQQSBCgHJyQKDgoHBAEDAAIBBRIDKAcOCg4KBwQBAwACAQESAygPHgoOCgcEAQMAAgEDEgMoISIKDAoEBAEDARIEKwMvBAoMCgUEAQMBARIDKwseCg0KBgQBAwECABIDLAcpCg8KBwQBAwECAAQSBCwHKyAKDgoHBAEDAQIABRIDLAcOCg4KBwQBAwECAAESAywPJAoOCgcEAQMBAgADEgMsJygKDQoGBAEDAQIBEgMtByoKDwoHBAEDAQIBBBIELQcsKQoOCgcEAQMBAgEFEgMtBw4KDgoHBAEDAQIBARIDLQ8lCg4KBwQBAwECAQMSAy0oKQoNCgYEAQMBAgISAy4HHgoPCgcEAQMBAgIEEgQuBy0qCg4KBwQBAwECAgYSAy4HDwoOCgcEAQMBAgIBEgMuEBkKDgoHBAEDAQICAxIDLhwdCgwKBAQBAwISBDEDNQQKDAoFBAEDAgESAzELGgoNCgYEAQMCAgASAzIHJAoPCgcEAQMCAgAEEgQyBzEcCg4KBwQBAwICAAUSAzIHDgoOCgcEAQMCAgABEgMyDx8KDgoHBAEDAgIAAxIDMiIjCg0KBgQBAwICARIDMwckCg8KBwQBAwICAQQSBDMHMiQKDgoHBAEDAgIBBRIDMwcOCg4KBwQBAwICAQESAzMPHwoOCgcEAQMCAgEDEgMzIiMKDQoGBAEDAgICEgM0Bx4KDwoHBAEDAgICBBIENAczJAoOCgcEAQMCAgIGEgM0Bw8KDgoHBAEDAgICARIDNBAZCg4KBwQBAwICAgMSAzQcHQoMCgQEAQMDEgQ3AzoECgwKBQQBAwMBEgM3Cx8KDQoGBAEDAwIAEgM4ByMKDwoHBAEDAwIABBIEOAc3IQoOCgcEAQMDAgAFEgM4Bw4KDgoHBAEDAwIAARIDOA8eCg4KBwQBAwMCAAMSAzghIgoNCgYEAQMDAgESAzkHHgoPCgcEAQMDAgEEEgQ5BzgjCg4KBwQBAwMCAQYSAzkHDwoOCgcEAQMDAgEBEgM5EBkKDgoHBAEDAwIBAxIDORwdCgsKBAQBAgASAzwDFgoNCgUEAQIABBIEPAM6BAoMCgUEAQIABRIDPAMKCgwKBQQBAgABEgM8CxEKDAoFBAECAAMSAzwUFQoLCgQEAQIBEgM9AxYKDQoFBAECAQQSBD0DPBYKDAoFBAECAQUSAz0DCgoMCgUEAQIBARIDPQsRCgwKBQQBAgEDEgM9FBUKCwoEBAECAhIDPgMYCg0KBQQBAgIEEgQ+Az0WCgwKBQQBAgIGEgM+AwoKDAoFBAECAgESAz4LEwoMCgUEAQICAxIDPhYXCgsKBAQBAgMSAz8DOQoNCgUEAQIDBBIEPwM+GAoMCgUEAQIDBhIDPwMaCgwKBQQBAgMBEgM/GzQKDAoFBAECAwMSAz83OAoMCgQEAQgAEgRAA0QECgwKBQQBCAABEgNACQ8KCwoEBAECBBIDQQc1CgwKBQQBAgQGEgNBBxoKDAoFBAECBAESA0EbMAoMCgUEAQIEAxIDQTM0CgsKBAQBAgUSA0IHLQoMCgUEAQIFBhIDQgcWCgwKBQQBAgUBEgNCFygKDAoFBAECBQMSA0IrLAoLCgQEAQIGEgNDBzcKDAoFBAECBgYSA0MHGwoMCgUEAQIGARIDQxwyCgwKBQQBAgYDEgNDNTZiBnByb3RvMwr42AEKGnZvbHRoYV9wcm90b3Mvdm9sdGhhLnByb3RvEgZ2b2x0aGEaHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxoYdm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoadm9sdGhhX3Byb3Rvcy9oZWFsdGgucHJvdG8aInZvbHRoYV9wcm90b3MvbG9naWNhbF9kZXZpY2UucHJvdG8aGnZvbHRoYV9wcm90b3MvZGV2aWNlLnByb3RvGht2b2x0aGFfcHJvdG9zL2FkYXB0ZXIucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb3BlbmZsb3dfMTMucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb21jaV9taWJfZGIucHJvdG8aIXZvbHRoYV9wcm90b3Mvb21jaV9hbGFybV9kYi5wcm90bxoedm9sdGhhX3Byb3Rvcy9leHRfY29uZmlnLnByb3RvIqQBCgtEZXZpY2VHcm91cBIVCgJpZBgBIAEoCUIF6PbNHQFSAmlkEkkKD2xvZ2ljYWxfZGV2aWNlcxgCIAMoCzIVLnZvbHRoYS5Mb2dpY2FsRGV2aWNlQgni9s0dBAoCaWRSDmxvZ2ljYWxEZXZpY2VzEjMKB2RldmljZXMYAyADKAsyDi52b2x0aGEuRGV2aWNlQgni9s0dBAoCaWRSB2RldmljZXMiOQoMRGV2aWNlR3JvdXBzEikKBWl0ZW1zGAEgAygLMhMudm9sdGhhLkRldmljZUdyb3VwUgVpdGVtcyKeAQoSRXZlbnRGaWx0ZXJSdWxlS2V5IocBChNFdmVudEZpbHRlclJ1bGVUeXBlEg4KCmZpbHRlcl9hbGwQABIMCghjYXRlZ29yeRABEhAKDHN1Yl9jYXRlZ29yeRACEhIKDmtwaV9ldmVudF90eXBlEAMSFQoRY29uZmlnX2V2ZW50X3R5cGUQBBIVChFkZXZpY2VfZXZlbnRfdHlwZRAFImkKD0V2ZW50RmlsdGVyUnVsZRJACgNrZXkYASABKA4yLi52b2x0aGEuRXZlbnRGaWx0ZXJSdWxlS2V5LkV2ZW50RmlsdGVyUnVsZVR5cGVSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWUipwEKC0V2ZW50RmlsdGVyEhUKAmlkGAEgASgJQgXo9s0dAVICaWQSFgoGZW5hYmxlGAIgASgIUgZlbmFibGUSGwoJZGV2aWNlX2lkGAMgASgJUghkZXZpY2VJZBIdCgpldmVudF90eXBlGAQgASgJUglldmVudFR5cGUSLQoFcnVsZXMYBSADKAsyFy52b2x0aGEuRXZlbnRGaWx0ZXJSdWxlUgVydWxlcyI9CgxFdmVudEZpbHRlcnMSLQoHZmlsdGVycxgBIAMoCzITLnZvbHRoYS5FdmVudEZpbHRlclIHZmlsdGVycyJrCgxDb3JlSW5zdGFuY2USJgoLaW5zdGFuY2VfaWQYASABKAlCBej2zR0BUgppbnN0YW5jZUlkEjMKBmhlYWx0aBgCIAEoCzIULnZvbHRoYS5IZWFsdGhTdGF0dXNCBeL2zR0AUgZoZWFsdGgiOwoNQ29yZUluc3RhbmNlcxIqCgVpdGVtcxgBIAMoCzIULnZvbHRoYS5Db3JlSW5zdGFuY2VSBWl0ZW1zIjUKD09tY2lUZXN0UmVxdWVzdBIOCgJpZBgBIAEoCVICaWQSEgoEdXVpZBgCIAEoCVIEdXVpZCJ/CgxUZXN0UmVzcG9uc2USPwoGcmVzdWx0GAEgASgOMicudm9sdGhhLlRlc3RSZXNwb25zZS5UZXN0UmVzcG9uc2VSZXN1bHRSBnJlc3VsdCIuChJUZXN0UmVzcG9uc2VSZXN1bHQSCwoHU1VDQ0VTUxAAEgsKB0ZBSUxVUkUQASJdCghWYWx1ZVNldBIOCgJpZBgBIAEoCVICaWQSOAoMYWxhcm1fY29uZmlnGAIgASgLMhMuY29uZmlnLkFsYXJtQ29uZmlnSABSC2FsYXJtQ29uZmlnQgcKBXZhbHVlItkECgZWb2x0aGESHwoHdmVyc2lvbhgBIAEoCUIF6PbNHQFSB3ZlcnNpb24SNgoIYWRhcHRlcnMYAiADKAsyDy52b2x0aGEuQWRhcHRlckIJ4vbNHQQKAmlkUghhZGFwdGVycxJJCg9sb2dpY2FsX2RldmljZXMYAyADKAsyFS52b2x0aGEuTG9naWNhbERldmljZUIJ4vbNHQQKAmlkUg5sb2dpY2FsRGV2aWNlcxIzCgdkZXZpY2VzGAQgAygLMg4udm9sdGhhLkRldmljZUIJ4vbNHQQKAmlkUgdkZXZpY2VzEkAKDGRldmljZV90eXBlcxgFIAMoCzISLnZvbHRoYS5EZXZpY2VUeXBlQgni9s0dBAoCaWRSC2RldmljZVR5cGVzEkMKDWRldmljZV9ncm91cHMYBiADKAsyEy52b2x0aGEuRGV2aWNlR3JvdXBCCeL2zR0ECgJpZFIMZGV2aWNlR3JvdXBzEkMKDWV2ZW50X2ZpbHRlcnMYByADKAsyEy52b2x0aGEuRXZlbnRGaWx0ZXJCCeL2zR0ECgJpZFIMZXZlbnRGaWx0ZXJzElEKEW9tY2lfbWliX2RhdGFiYXNlGBwgAygLMhMub21jaS5NaWJEZXZpY2VEYXRhQhDi9s0dCwoJZGV2aWNlX2lkUg9vbWNpTWliRGF0YWJhc2USVwoTb21jaV9hbGFybV9kYXRhYmFzZRgdIAMoCzIVLm9tY2kuQWxhcm1EZXZpY2VEYXRhQhDi9s0dCwoJZGV2aWNlX2lkUhFvbWNpQWxhcm1EYXRhYmFzZSKlAQoQU2VsZlRlc3RSZXNwb25zZRI/CgZyZXN1bHQYASABKA4yJy52b2x0aGEuU2VsZlRlc3RSZXNwb25zZS5TZWxmVGVzdFJlc3VsdFIGcmVzdWx0IlAKDlNlbGZUZXN0UmVzdWx0EgsKB1NVQ0NFU1MQABILCgdGQUlMVVJFEAESEQoNTk9UX1NVUFBPUlRFRBACEhEKDVVOS05PV05fRVJST1IQAyJPChFPZkFnZW50U3Vic2NyaWJlchIdCgpvZmFnZW50X2lkGAEgASgJUglvZmFnZW50SWQSGwoJdm9sdGhhX2lkGAIgASgJUgh2b2x0aGFJZCI7CgpNZW1iZXJzaGlwEh0KCmdyb3VwX25hbWUYASABKAlSCWdyb3VwTmFtZRIOCgJpZBgCIAEoCVICaWQiwgEKGkRldmljZUltYWdlRG93bmxvYWRSZXF1ZXN0EicKCWRldmljZV9pZBgBIAMoCzIKLmNvbW1vbi5JRFIIZGV2aWNlSWQSIwoFaW1hZ2UYAiABKAsyDS52b2x0aGEuSW1hZ2VSBWltYWdlEiwKEWFjdGl2YXRlT25TdWNjZXNzGAMgASgIUhFhY3RpdmF0ZU9uU3VjY2VzcxIoCg9jb21taXRPblN1Y2Nlc3MYBCABKAhSD2NvbW1pdE9uU3VjY2VzcyKBAQoSRGV2aWNlSW1hZ2VSZXF1ZXN0EicKCWRldmljZV9pZBgBIAMoCzIKLmNvbW1vbi5JRFIIZGV2aWNlSWQSGAoHdmVyc2lvbhgCIAEoCVIHdmVyc2lvbhIoCg9jb21taXRPblN1Y2Nlc3MYAyABKAhSD2NvbW1pdE9uU3VjY2VzcyJfChNEZXZpY2VJbWFnZVJlc3BvbnNlEkgKE2RldmljZV9pbWFnZV9zdGF0ZXMYASADKAsyGC52b2x0aGEuRGV2aWNlSW1hZ2VTdGF0ZVIRZGV2aWNlSW1hZ2VTdGF0ZXMiRQoMRmxvd01ldGFkYXRhEjUKBm1ldGVycxgBIAMoCzIdLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9jb25maWdSBm1ldGVyczKvNgoNVm9sdGhhU2VydmljZRJXCg1HZXRNZW1iZXJzaGlwEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhIudm9sdGhhLk1lbWJlcnNoaXAiGoLT5JMCFBISL2FwaS92MS9tZW1iZXJzaGlwEl0KEFVwZGF0ZU1lbWJlcnNoaXASEi52b2x0aGEuTWVtYmVyc2hpcBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIdgtPkkwIXIhIvYXBpL3YxL21lbWJlcnNoaXA6ASoSRAoJR2V0Vm9sdGhhEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gg4udm9sdGhhLlZvbHRoYSIPgtPkkwIJEgcvYXBpL3YxEl0KEUxpc3RDb3JlSW5zdGFuY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhUudm9sdGhhLkNvcmVJbnN0YW5jZXMiGYLT5JMCExIRL2FwaS92MS9pbnN0YW5jZXMSUwoPR2V0Q29yZUluc3RhbmNlEgouY29tbW9uLklEGhQudm9sdGhhLkNvcmVJbnN0YW5jZSIegtPkkwIYEhYvYXBpL3YxL2luc3RhbmNlcy97aWR9ElIKDExpc3RBZGFwdGVycxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoQLnZvbHRoYS5BZGFwdGVycyIYgtPkkwISEhAvYXBpL3YxL2FkYXB0ZXJzEmUKEkxpc3RMb2dpY2FsRGV2aWNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoWLnZvbHRoYS5Mb2dpY2FsRGV2aWNlcyIfgtPkkwIZEhcvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcxJbChBHZXRMb2dpY2FsRGV2aWNlEgouY29tbW9uLklEGhUudm9sdGhhLkxvZ2ljYWxEZXZpY2UiJILT5JMCHhIcL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfRJmChZMaXN0TG9naWNhbERldmljZVBvcnRzEgouY29tbW9uLklEGhQudm9sdGhhLkxvZ2ljYWxQb3J0cyIqgtPkkwIkEiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzEngKFEdldExvZ2ljYWxEZXZpY2VQb3J0EhUudm9sdGhhLkxvZ2ljYWxQb3J0SWQaEy52b2x0aGEuTG9naWNhbFBvcnQiNILT5JMCLhIsL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0ShQEKF0VuYWJsZUxvZ2ljYWxEZXZpY2VQb3J0EhUudm9sdGhhLkxvZ2ljYWxQb3J0SWQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiO4LT5JMCNSIzL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0vZW5hYmxlEocBChhEaXNhYmxlTG9naWNhbERldmljZVBvcnQSFS52b2x0aGEuTG9naWNhbFBvcnRJZBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI8gtPkkwI2IjQvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzL3twb3J0X2lkfS9kaXNhYmxlEmQKFkxpc3RMb2dpY2FsRGV2aWNlRmxvd3MSCi5jb21tb24uSUQaEi5vcGVuZmxvd18xMy5GbG93cyIqgtPkkwIkEiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dzEoMBChxVcGRhdGVMb2dpY2FsRGV2aWNlRmxvd1RhYmxlEhwub3BlbmZsb3dfMTMuRmxvd1RhYmxlVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii2C0+STAiciIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd3M6ASoShAEKHVVwZGF0ZUxvZ2ljYWxEZXZpY2VNZXRlclRhYmxlEhsub3BlbmZsb3dfMTMuTWV0ZXJNb2RVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLoLT5JMCKCIjL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9tZXRlcnM6ASoSZwoXTGlzdExvZ2ljYWxEZXZpY2VNZXRlcnMSCi5jb21tb24uSUQaEy5vcGVuZmxvd18xMy5NZXRlcnMiK4LT5JMCJRIjL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9tZXRlcnMSdAobTGlzdExvZ2ljYWxEZXZpY2VGbG93R3JvdXBzEgouY29tbW9uLklEGhcub3BlbmZsb3dfMTMuRmxvd0dyb3VwcyIwgtPkkwIqEigvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzEpMBCiFVcGRhdGVMb2dpY2FsRGV2aWNlRmxvd0dyb3VwVGFibGUSIS5vcGVuZmxvd18xMy5GbG93R3JvdXBUYWJsZVVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIzgtPkkwItIigvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzOgEqEk8KC0xpc3REZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gg8udm9sdGhhLkRldmljZXMiF4LT5JMCERIPL2FwaS92MS9kZXZpY2VzEk8KDUxpc3REZXZpY2VJZHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaCy5jb21tb24uSURzIhmC0+STAhMSES9hcGkvdjEvZGV2aWNlaWRzElUKEFJlY29uY2lsZURldmljZXMSCy5jb21tb24uSURzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhyC0+STAhYiES9hcGkvdjEvZGV2aWNlaWRzOgEqEkUKCUdldERldmljZRIKLmNvbW1vbi5JRBoOLnZvbHRoYS5EZXZpY2UiHILT5JMCFhIUL2FwaS92MS9kZXZpY2VzL3tpZH0SSgoMQ3JlYXRlRGV2aWNlEg4udm9sdGhhLkRldmljZRoOLnZvbHRoYS5EZXZpY2UiGoLT5JMCFCIPL2FwaS92MS9kZXZpY2VzOgEqElcKDEVuYWJsZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIjgtPkkwIdIhsvYXBpL3YxL2RldmljZXMve2lkfS9lbmFibGUSWQoNRGlzYWJsZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIkgtPkkwIeIhwvYXBpL3YxL2RldmljZXMve2lkfS9kaXNhYmxlElcKDFJlYm9vdERldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIjgtPkkwIdIhsvYXBpL3YxL2RldmljZXMve2lkfS9yZWJvb3QSVwoMRGVsZXRlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0qGy9hcGkvdjEvZGV2aWNlcy97aWR9L2RlbGV0ZRJiChFGb3JjZURlbGV0ZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIpgtPkkwIjKiEvYXBpL3YxL2RldmljZXMve2lkfS9mb3JjZV9kZWxldGUSdQoNRG93bmxvYWRJbWFnZRIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiNoLT5JMCMCIrL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfToBKhKCAQoWR2V0SW1hZ2VEb3dubG9hZFN0YXR1cxIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUudm9sdGhhLkltYWdlRG93bmxvYWQiOoLT5JMCNBIyL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9zdGF0dXMSdQoQR2V0SW1hZ2VEb3dubG9hZBIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUudm9sdGhhLkltYWdlRG93bmxvYWQiM4LT5JMCLRIrL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfRJmChJMaXN0SW1hZ2VEb3dubG9hZHMSCi5jb21tb24uSUQaFi52b2x0aGEuSW1hZ2VEb3dubG9hZHMiLILT5JMCJhIkL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzEngKE0NhbmNlbEltYWdlRG93bmxvYWQSFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIjOC0+STAi0qKy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0SiAEKE0FjdGl2YXRlSW1hZ2VVcGRhdGUSFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIkOC0+STAj0iOC9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0vaW1hZ2VfdXBkYXRlOgEqEoYBChFSZXZlcnRJbWFnZVVwZGF0ZRIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiQ4LT5JMCPSI4L2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9pbWFnZV9yZXZlcnQ6ASoSiAEKFURvd25sb2FkSW1hZ2VUb0RldmljZRIiLnZvbHRoYS5EZXZpY2VJbWFnZURvd25sb2FkUmVxdWVzdBobLnZvbHRoYS5EZXZpY2VJbWFnZVJlc3BvbnNlIi6C0+STAigSJi9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvZG93bmxvYWRfaW1hZ2VzEncKDkdldEltYWdlU3RhdHVzEhoudm9sdGhhLkRldmljZUltYWdlUmVxdWVzdBobLnZvbHRoYS5EZXZpY2VJbWFnZVJlc3BvbnNlIiyC0+STAiYSJC9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvaW1hZ2VzX3N0YXR1cxKJAQoZQWJvcnRJbWFnZVVwZ3JhZGVUb0RldmljZRIaLnZvbHRoYS5EZXZpY2VJbWFnZVJlcXVlc3QaGy52b2x0aGEuRGV2aWNlSW1hZ2VSZXNwb25zZSIzgtPkkwItEisvYXBpL3YxL2RldmljZXMvaW1hZ2VzL2Fib3J0X3VwZ3JhZGVfaW1hZ2VzElYKDEdldE9udUltYWdlcxIKLmNvbW1vbi5JRBoRLnZvbHRoYS5PbnVJbWFnZXMiJ4LT5JMCIRIfL2FwaS92MS9kZXZpY2VzL3tpZH0vb251X2ltYWdlcxJ7Cg1BY3RpdmF0ZUltYWdlEhoudm9sdGhhLkRldmljZUltYWdlUmVxdWVzdBobLnZvbHRoYS5EZXZpY2VJbWFnZVJlc3BvbnNlIjGC0+STAisiJi9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvYWN0aXZhdGVfaW1hZ2VzOgEqEncKC0NvbW1pdEltYWdlEhoudm9sdGhhLkRldmljZUltYWdlUmVxdWVzdBobLnZvbHRoYS5EZXZpY2VJbWFnZVJlc3BvbnNlIi+C0+STAikiJC9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvY29tbWl0X2ltYWdlczoBKhJQCg9MaXN0RGV2aWNlUG9ydHMSCi5jb21tb24uSUQaDS52b2x0aGEuUG9ydHMiIoLT5JMCHBIaL2FwaS92MS9kZXZpY2VzL3tpZH0vcG9ydHMSXQoTTGlzdERldmljZVBtQ29uZmlncxIKLmNvbW1vbi5JRBoRLnZvbHRoYS5QbUNvbmZpZ3MiJ4LT5JMCIRIfL2FwaS92MS9kZXZpY2VzL3tpZH0vcG1fY29uZmlncxJuChVVcGRhdGVEZXZpY2VQbUNvbmZpZ3MSES52b2x0aGEuUG1Db25maWdzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiqC0+STAiQiHy9hcGkvdjEvZGV2aWNlcy97aWR9L3BtX2NvbmZpZ3M6ASoSVQoPTGlzdERldmljZUZsb3dzEgouY29tbW9uLklEGhIub3BlbmZsb3dfMTMuRmxvd3MiIoLT5JMCHBIaL2FwaS92MS9kZXZpY2VzL3tpZH0vZmxvd3MSZQoUTGlzdERldmljZUZsb3dHcm91cHMSCi5jb21tb24uSUQaFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzIiiC0+STAiISIC9hcGkvdjEvZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzElwKD0xpc3REZXZpY2VUeXBlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoTLnZvbHRoYS5EZXZpY2VUeXBlcyIcgtPkkwIWEhQvYXBpL3YxL2RldmljZV90eXBlcxJSCg1HZXREZXZpY2VUeXBlEgouY29tbW9uLklEGhIudm9sdGhhLkRldmljZVR5cGUiIYLT5JMCGxIZL2FwaS92MS9kZXZpY2VfdHlwZXMve2lkfRJfChBMaXN0RGV2aWNlR3JvdXBzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhQudm9sdGhhLkRldmljZUdyb3VwcyIdgtPkkwIXEhUvYXBpL3YxL2RldmljZV9ncm91cHMSRgoQU3RyZWFtUGFja2V0c091dBIWLm9wZW5mbG93XzEzLlBhY2tldE91dBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAKAESRQoQUmVjZWl2ZVBhY2tldHNJbhIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoVLm9wZW5mbG93XzEzLlBhY2tldEluIgAwARJLChNSZWNlaXZlQ2hhbmdlRXZlbnRzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ghgub3BlbmZsb3dfMTMuQ2hhbmdlRXZlbnQiADABElUKDkdldERldmljZUdyb3VwEgouY29tbW9uLklEGhMudm9sdGhhLkRldmljZUdyb3VwIiKC0+STAhwSGi9hcGkvdjEvZGV2aWNlX2dyb3Vwcy97aWR9El8KEUNyZWF0ZUV2ZW50RmlsdGVyEhMudm9sdGhhLkV2ZW50RmlsdGVyGhMudm9sdGhhLkV2ZW50RmlsdGVyIiCC0+STAhoiFS9hcGkvdjEvZXZlbnRfZmlsdGVyczoBKhJWCg5HZXRFdmVudEZpbHRlchIKLmNvbW1vbi5JRBoULnZvbHRoYS5FdmVudEZpbHRlcnMiIoLT5JMCHBIaL2FwaS92MS9ldmVudF9maWx0ZXJzL3tpZH0SZAoRVXBkYXRlRXZlbnRGaWx0ZXISEy52b2x0aGEuRXZlbnRGaWx0ZXIaEy52b2x0aGEuRXZlbnRGaWx0ZXIiJYLT5JMCHxoaL2FwaS92MS9ldmVudF9maWx0ZXJzL3tpZH06ASoSZAoRRGVsZXRlRXZlbnRGaWx0ZXISEy52b2x0aGEuRXZlbnRGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIoLT5JMCHCoaL2FwaS92MS9ldmVudF9maWx0ZXJzL3tpZH0SXwoQTGlzdEV2ZW50RmlsdGVycxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoULnZvbHRoYS5FdmVudEZpbHRlcnMiHYLT5JMCFxIVL2FwaS92MS9ldmVudF9maWx0ZXJzEkwKCUdldEltYWdlcxIKLmNvbW1vbi5JRBoOLnZvbHRoYS5JbWFnZXMiI4LT5JMCHRIbL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VzElgKCFNlbGZUZXN0EgouY29tbW9uLklEGhgudm9sdGhhLlNlbGZUZXN0UmVzcG9uc2UiJoLT5JMCICIeL2FwaS92MS9kZXZpY2VzL3tpZH0vc2VsZl90ZXN0ElYKEEdldE1pYkRldmljZURhdGESCi5jb21tb24uSUQaEy5vbWNpLk1pYkRldmljZURhdGEiIYLT5JMCGxIZL2FwaS92MS9vcGVub21jaS97aWR9L21pYhJcChJHZXRBbGFybURldmljZURhdGESCi5jb21tb24uSUQaFS5vbWNpLkFsYXJtRGV2aWNlRGF0YSIjgtPkkwIdEhsvYXBpL3YxL29wZW5vbWNpL3tpZH0vYWxhcm0ScwoNU2ltdWxhdGVBbGFybRIcLnZvbHRoYS5TaW11bGF0ZUFsYXJtUmVxdWVzdBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIi2C0+STAiciIi9hcGkvdjEvZGV2aWNlcy97aWR9L3NpbXVsYXRlX2xhcm06ASoSQwoJU3Vic2NyaWJlEhkudm9sdGhhLk9mQWdlbnRTdWJzY3JpYmVyGhkudm9sdGhhLk9mQWdlbnRTdWJzY3JpYmVyIgASTQoKRW5hYmxlUG9ydBIMLnZvbHRoYS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhmC0+STAhMiDi92MS9FbmFibGVQb3J0OgEqEk8KC0Rpc2FibGVQb3J0Egwudm9sdGhhLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGoLT5JMCFCIPL3YxL0Rpc2FibGVQb3J0OgEqElgKC0dldEV4dFZhbHVlEhYuY29tbW9uLlZhbHVlU3BlY2lmaWVyGhQuY29tbW9uLlJldHVyblZhbHVlcyIbgtPkkwIVEhMvYXBpL3YxL0dldEV4dFZhbHVlElQKC1NldEV4dFZhbHVlEhAudm9sdGhhLlZhbHVlU2V0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhuC0+STAhUSEy9hcGkvdjEvU2V0RXh0VmFsdWUSaAoTU3RhcnRPbWNpVGVzdEFjdGlvbhIXLnZvbHRoYS5PbWNpVGVzdFJlcXVlc3QaFC52b2x0aGEuVGVzdFJlc3BvbnNlIiKC0+STAhwiFy9hcGkvdjEvc3RhcnRfb21jaV90ZXN0OgEqQmwKE29yZy5vcGVuY29yZC52b2x0aGFCDFZvbHRoYVByb3Rvc1ouZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL3ZvbHRoYaoCFk9wZW5jb3JkLlZvbHRoYS5Wb2x0aGFKkIoBCgcSBQYA3gUBClwKAQwSAwYAEjJSCiBUb3AtbGV2ZWwgVm9sdGhhIEFQSSBkZWZpbml0aW9uCgogRm9yIGRldGFpbHMsIHNlZSBpbmRpdmlkdWFsIGRlZmluaXRpb24gZmlsZXMuCgoICgEIEgMIAEUKCQoCCAsSAwgARQoICgECEgMKAA8KCQoCAwASAwwAJgoJCgIDARIDDQAl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EkgKCmFkZF9id19pbmQYBiABKA4yKi50ZWNoX3Byb2ZpbGUuSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvblIIYWRkQndJbmQinQIKEFRyYWZmaWNTY2hlZHVsZXISNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEhkKCGFsbG9jX2lkGAIgASgHUgdhbGxvY0lkEjsKCXNjaGVkdWxlchgDIAEoCzIdLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJDb25maWdSCXNjaGVkdWxlchJSChR0cmFmZmljX3NoYXBpbmdfaW5mbxgEIAEoCzIgLnRlY2hfcHJvZmlsZS5UcmFmZmljU2hhcGluZ0luZm9SEnRyYWZmaWNTaGFwaW5nSW5mbxImCg90ZWNoX3Byb2ZpbGVfaWQYBSABKAdSDXRlY2hQcm9maWxlSWQiugEKEVRyYWZmaWNTY2hlZHVsZXJzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhUKBnVuaV9pZBgEIAEoB1IFdW5pSWQSFwoHcG9ydF9ubxgFIAEoB1IGcG9ydE5vEkUKDnRyYWZmaWNfc2NoZWRzGAMgAygLMh4udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJSDXRyYWZmaWNTY2hlZHMiNgoVVGFpbERyb3BEaXNjYXJkQ29uZmlnEh0KCnF1ZXVlX3NpemUYASABKAdSCXF1ZXVlU2l6ZSKFAQoQUmVkRGlzY2FyZENvbmZpZxIjCg1taW5fdGhyZXNob2xkGAEgASgHUgxtaW5UaHJlc2hvbGQSIwoNbWF4X3RocmVzaG9sZBgCIAEoB1IMbWF4VGhyZXNob2xkEicKD21heF9wcm9iYWJpbGl0eRgDIAEoB1IObWF4UHJvYmFiaWxpdHkiswEKEVdSZWREaXNjYXJkQ29uZmlnEjQKBWdyZWVuGAEgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSBWdyZWVuEjYKBnllbGxvdxgCIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUgZ5ZWxsb3cSMAoDcmVkGAMgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSA3JlZCLoAgoNRGlzY2FyZENvbmZpZxJCCg5kaXNjYXJkX3BvbGljeRgBIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5El4KGHRhaWxfZHJvcF9kaXNjYXJkX2NvbmZpZxgCIAEoCzIjLnRlY2hfcHJvZmlsZS5UYWlsRHJvcERpc2NhcmRDb25maWdIAFIVdGFpbERyb3BEaXNjYXJkQ29uZmlnEk4KEnJlZF9kaXNjYXJkX2NvbmZpZxgDIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnSABSEHJlZERpc2NhcmRDb25maWcSUQoTd3JlZF9kaXNjYXJkX2NvbmZpZxgEIAEoCzIfLnRlY2hfcHJvZmlsZS5XUmVkRGlzY2FyZENvbmZpZ0gAUhF3cmVkRGlzY2FyZENvbmZpZ0IQCg5kaXNjYXJkX2NvbmZpZyKlAwoMVHJhZmZpY1F1ZXVlEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhIdCgpnZW1wb3J0X2lkGAIgASgHUglnZW1wb3J0SWQSGQoIcGJpdF9tYXAYAyABKAlSB3BiaXRNYXASJQoOYWVzX2VuY3J5cHRpb24YBCABKAhSDWFlc0VuY3J5cHRpb24SQQoMc2NoZWRfcG9saWN5GAUgASgOMh4udGVjaF9wcm9maWxlLlNjaGVkdWxpbmdQb2xpY3lSC3NjaGVkUG9saWN5EhoKCHByaW9yaXR5GAYgASgHUghwcmlvcml0eRIWCgZ3ZWlnaHQYByABKAdSBndlaWdodBJCCg5kaXNjYXJkX3BvbGljeRgIIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5EkIKDmRpc2NhcmRfY29uZmlnGAkgASgLMhsudGVjaF9wcm9maWxlLkRpc2NhcmRDb25maWdSDWRpc2NhcmRDb25maWci2gEKDVRyYWZmaWNRdWV1ZXMSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFQoGdW5pX2lkGAQgASgHUgV1bmlJZBIXCgdwb3J0X25vGAUgASgHUgZwb3J0Tm8SQQoOdHJhZmZpY19xdWV1ZXMYBiADKAsyGi50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlUg10cmFmZmljUXVldWVzEiYKD3RlY2hfcHJvZmlsZV9pZBgHIAEoB1INdGVjaFByb2ZpbGVJZCJmCg9JbnN0YW5jZUNvbnRyb2wSEAoDb251GAEgASgJUgNvbnUSEAoDdW5pGAIgASgJUgN1bmkSLwoUbWF4X2dlbV9wYXlsb2FkX3NpemUYAyABKAlSEW1heEdlbVBheWxvYWRTaXplIoICCgtRVGhyZXNob2xkcxIhCgxxX3RocmVzaG9sZDEYASABKA1SC3FUaHJlc2hvbGQxEiEKDHFfdGhyZXNob2xkMhgCIAEoDVILcVRocmVzaG9sZDISIQoMcV90aHJlc2hvbGQzGAMgASgNUgtxVGhyZXNob2xkMxIhCgxxX3RocmVzaG9sZDQYBCABKA1SC3FUaHJlc2hvbGQ0EiEKDHFfdGhyZXNob2xkNRgFIAEoDVILcVRocmVzaG9sZDUSIQoMcV90aHJlc2hvbGQ2GAYgASgNUgtxVGhyZXNob2xkNhIhCgxxX3RocmVzaG9sZDcYByABKA1SC3FUaHJlc2hvbGQ3IrMFChFHZW1Qb3J0QXR0cmlidXRlcxIdCgpnZW1wb3J0X2lkGAEgASgHUglnZW1wb3J0SWQSHAoKbWF4X3Ffc2l6ZRgCIAEoCVIIbWF4UVNpemUSGQoIcGJpdF9tYXAYAyABKAlSB3BiaXRNYXASJQoOYWVzX2VuY3J5cHRpb24YBCABKAlSDWFlc0VuY3J5cHRpb24SSwoRc2NoZWR1bGluZ19wb2xpY3kYBSABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVIQc2NoZWR1bGluZ1BvbGljeRIdCgpwcmlvcml0eV9xGAYgASgHUglwcmlvcml0eVESFgoGd2VpZ2h0GAcgASgHUgZ3ZWlnaHQSQgoOZGlzY2FyZF9wb2xpY3kYCCABKA4yGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJFCg5kaXNjYXJkX2NvbmZpZxgJIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUg1kaXNjYXJkQ29uZmlnEkcKEWRpc2NhcmRfY29uZmlnX3YyGA4gASgLMhsudGVjaF9wcm9maWxlLkRpc2NhcmRDb25maWdSD2Rpc2NhcmRDb25maWdWMhIhCgxpc19tdWx0aWNhc3QYCiABKAlSC2lzTXVsdGljYXN0EigKEG11bHRpY2FzdF9nZW1faWQYCyABKAdSDm11bHRpY2FzdEdlbUlkEj0KG2R5bmFtaWNfYWNjZXNzX2NvbnRyb2xfbGlzdBgMIAEoCVIYZHluYW1pY0FjY2Vzc0NvbnRyb2xMaXN0EjsKGnN0YXRpY19hY2Nlc3NfY29udHJvbF9saXN0GA0gASgJUhdzdGF0aWNBY2Nlc3NDb250cm9sTGlzdCKiAgoTU2NoZWR1bGVyQXR0cmlidXRlcxI1CglkaXJlY3Rpb24YASABKA4yFy50ZWNoX3Byb2ZpbGUuRGlyZWN0aW9uUglkaXJlY3Rpb24SGQoIYWxsb2NfaWQYAiABKA1SB2FsbG9jSWQSPwoNYWRkaXRpb25hbF9idxgDIAEoDjIaLnRlY2hfcHJvZmlsZS5BZGRpdGlvbmFsQldSDGFkZGl0aW9uYWxCdxIaCghwcmlvcml0eRgEIAEoB1IIcHJpb3JpdHkSFgoGd2VpZ2h0GAUgASgHUgZ3ZWlnaHQSRAoOcV9zY2hlZF9wb2xpY3kYBiABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVIMcVNjaGVkUG9saWN5IsAGChNFUE9OUXVldWVBdHRyaWJ1dGVzEhwKCm1heF9xX3NpemUYASABKAlSCG1heFFTaXplEhkKCHBiaXRfbWFwGAIgASgJUgdwYml0TWFwEh0KCmdlbXBvcnRfaWQYAyABKA1SCWdlbXBvcnRJZBIlCg5hZXNfZW5jcnlwdGlvbhgEIAEoCVINYWVzRW5jcnlwdGlvbhIhCgx0cmFmZmljX3R5cGUYBSABKAlSC3RyYWZmaWNUeXBlEjQKFnVuc29saWNpdGVkX2dyYW50X3NpemUYBiABKA1SFHVuc29saWNpdGVkR3JhbnRTaXplEikKEG5vbWluYWxfaW50ZXJ2YWwYByABKA1SD25vbWluYWxJbnRlcnZhbBIyChV0b2xlcmF0ZWRfcG9sbF9qaXR0ZXIYCCABKA1SE3RvbGVyYXRlZFBvbGxKaXR0ZXISPgobcmVxdWVzdF90cmFuc21pc3Npb25fcG9saWN5GAkgASgNUhlyZXF1ZXN0VHJhbnNtaXNzaW9uUG9saWN5EhwKCm51bV9xX3NldHMYCiABKA1SCG51bVFTZXRzEjwKDHFfdGhyZXNob2xkcxgLIAEoCzIZLnRlY2hfcHJvZmlsZS5RVGhyZXNob2xkc1ILcVRocmVzaG9sZHMSSwoRc2NoZWR1bGluZ19wb2xpY3kYDCABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVIQc2NoZWR1bGluZ1BvbGljeRIdCgpwcmlvcml0eV9xGA0gASgNUglwcmlvcml0eVESFgoGd2VpZ2h0GA4gASgNUgZ3ZWlnaHQSQgoOZGlzY2FyZF9wb2xpY3kYDyABKA4yGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJFCg5kaXNjYXJkX2NvbmZpZxgQIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUg1kaXNjYXJkQ29uZmlnEkcKEWRpc2NhcmRfY29uZmlnX3YyGBEgASgLMhsudGVjaF9wcm9maWxlLkRpc2NhcmRDb25maWdSD2Rpc2NhcmRDb25maWdWMiKuBAoLVGVjaFByb2ZpbGUSEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgNUgd2ZXJzaW9uEiEKDHByb2ZpbGVfdHlwZRgDIAEoCVILcHJvZmlsZVR5cGUSIgoNbnVtX2dlbV9wb3J0cxgEIAEoDVILbnVtR2VtUG9ydHMSSAoQaW5zdGFuY2VfY29udHJvbBgFIAEoCzIdLnRlY2hfcHJvZmlsZS5JbnN0YW5jZUNvbnRyb2xSD2luc3RhbmNlQ29udHJvbBJECgx1c19zY2hlZHVsZXIYBiABKAsyIS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQXR0cmlidXRlc1ILdXNTY2hlZHVsZXISRAoMZHNfc2NoZWR1bGVyGAcgASgLMiEudGVjaF9wcm9maWxlLlNjaGVkdWxlckF0dHJpYnV0ZXNSC2RzU2NoZWR1bGVyEmcKIHVwc3RyZWFtX2dlbV9wb3J0X2F0dHJpYnV0ZV9saXN0GAggAygLMh8udGVjaF9wcm9maWxlLkdlbVBvcnRBdHRyaWJ1dGVzUhx1cHN0cmVhbUdlbVBvcnRBdHRyaWJ1dGVMaXN0EmsKImRvd25zdHJlYW1fZ2VtX3BvcnRfYXR0cmlidXRlX2xpc3QYCSADKAsyHy50ZWNoX3Byb2ZpbGUuR2VtUG9ydEF0dHJpYnV0ZXNSHmRvd25zdHJlYW1HZW1Qb3J0QXR0cmlidXRlTGlzdCLDAwoPRXBvblRlY2hQcm9maWxlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoDVIHdmVyc2lvbhIhCgxwcm9maWxlX3R5cGUYAyABKAlSC3Byb2ZpbGVUeXBlEiIKDW51bV9nZW1fcG9ydHMYBCABKA1SC251bUdlbVBvcnRzEkgKEGluc3RhbmNlX2NvbnRyb2wYBSABKAsyHS50ZWNoX3Byb2ZpbGUuSW5zdGFuY2VDb250cm9sUg9pbnN0YW5jZUNvbnRyb2wSIQoMcGFja2FnZV90eXBlGAYgASgJUgtwYWNrYWdlVHlwZRJkCh11cHN0cmVhbV9xdWV1ZV9hdHRyaWJ1dGVfbGlzdBgHIAMoCzIhLnRlY2hfcHJvZmlsZS5FUE9OUXVldWVBdHRyaWJ1dGVzUhp1cHN0cmVhbVF1ZXVlQXR0cmlidXRlTGlzdBJoCh9kb3duc3RyZWFtX3F1ZXVlX2F0dHJpYnV0ZV9saXN0GAggAygLMiEudGVjaF9wcm9maWxlLkVQT05RdWV1ZUF0dHJpYnV0ZXNSHGRvd25zdHJlYW1RdWV1ZUF0dHJpYnV0ZUxpc3Qi6wQKE1RlY2hQcm9maWxlSW5zdGFuY2USEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgNUgd2ZXJzaW9uEjMKFXN1YnNjcmliZXJfaWRlbnRpZmllchgDIAEoCVIUc3Vic2NyaWJlcklkZW50aWZpZXISIQoMcHJvZmlsZV90eXBlGAQgASgJUgtwcm9maWxlVHlwZRIiCg1udW1fZ2VtX3BvcnRzGAUgASgNUgtudW1HZW1Qb3J0cxJIChBpbnN0YW5jZV9jb250cm9sGAYgASgLMh0udGVjaF9wcm9maWxlLkluc3RhbmNlQ29udHJvbFIPaW5zdGFuY2VDb250cm9sEkQKDHVzX3NjaGVkdWxlchgHIAEoCzIhLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJBdHRyaWJ1dGVzUgt1c1NjaGVkdWxlchJECgxkc19zY2hlZHVsZXIYCCABKAsyIS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQXR0cmlidXRlc1ILZHNTY2hlZHVsZXISZwogdXBzdHJlYW1fZ2VtX3BvcnRfYXR0cmlidXRlX2xpc3QYCSADKAsyHy50ZWNoX3Byb2ZpbGUuR2VtUG9ydEF0dHJpYnV0ZXNSHHVwc3RyZWFtR2VtUG9ydEF0dHJpYnV0ZUxpc3QSawoiZG93bnN0cmVhbV9nZW1fcG9ydF9hdHRyaWJ1dGVfbGlzdBgKIAMoCzIfLnRlY2hfcHJvZmlsZS5HZW1Qb3J0QXR0cmlidXRlc1IeZG93bnN0cmVhbUdlbVBvcnRBdHRyaWJ1dGVMaXN0IpsEChdFcG9uVGVjaFByb2ZpbGVJbnN0YW5jZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKA1SB3ZlcnNpb24SMwoVc3Vic2NyaWJlcl9pZGVudGlmaWVyGAMgASgJUhRzdWJzY3JpYmVySWRlbnRpZmllchIhCgxwcm9maWxlX3R5cGUYBCABKAlSC3Byb2ZpbGVUeXBlEiIKDW51bV9nZW1fcG9ydHMYBSABKA1SC251bUdlbVBvcnRzEhkKCGFsbG9jX2lkGAYgASgNUgdhbGxvY0lkEkgKEGluc3RhbmNlX2NvbnRyb2wYByABKAsyHS50ZWNoX3Byb2ZpbGUuSW5zdGFuY2VDb250cm9sUg9pbnN0YW5jZUNvbnRyb2wSIQoMcGFja2FnZV90eXBlGAggASgJUgtwYWNrYWdlVHlwZRJkCh11cHN0cmVhbV9xdWV1ZV9hdHRyaWJ1dGVfbGlzdBgJIAMoCzIhLnRlY2hfcHJvZmlsZS5FUE9OUXVldWVBdHRyaWJ1dGVzUhp1cHN0cmVhbVF1ZXVlQXR0cmlidXRlTGlzdBJoCh9kb3duc3RyZWFtX3F1ZXVlX2F0dHJpYnV0ZV9saXN0GAogAygLMiEudGVjaF9wcm9maWxlLkVQT05RdWV1ZUF0dHJpYnV0ZXNSHGRvd25zdHJlYW1RdWV1ZUF0dHJpYnV0ZUxpc3QiuwEKEFJlc291cmNlSW5zdGFuY2USEwoFdHBfaWQYASABKA1SBHRwSWQSIQoMcHJvZmlsZV90eXBlGAIgASgJUgtwcm9maWxlVHlwZRIzChVzdWJzY3JpYmVyX2lkZW50aWZpZXIYAyABKAlSFHN1YnNjcmliZXJJZGVudGlmaWVyEhkKCGFsbG9jX2lkGAQgASgNUgdhbGxvY0lkEh8KC2dlbXBvcnRfaWRzGAUgAygNUgpnZW1wb3J0SWRzKjwKCURpcmVjdGlvbhIMCghVUFNUUkVBTRAAEg4KCkRPV05TVFJFQU0QARIRCg1CSURJUkVDVElPTkFMEAIqOwoQU2NoZWR1bGluZ1BvbGljeRIHCgNXUlIQABISCg5TdHJpY3RQcmlvcml0eRABEgoKBkh5YnJpZBACKm4KDEFkZGl0aW9uYWxCVxIVChFBZGRpdGlvbmFsQldfTm9uZRAAEhMKD0FkZGl0aW9uYWxCV19OQRABEhsKF0FkZGl0aW9uYWxCV19CZXN0RWZmb3J0EAISFQoRQWRkaXRpb25hbEJXX0F1dG8QAyo/Cg1EaXNjYXJkUG9saWN5EgwKCFRhaWxEcm9wEAASDQoJV1RhaWxEcm9wEAESBwoDUmVkEAISCAoEV1JlZBADKpwBChxJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uEiUKIUluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb25fTm9uZRAAEigKJEluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb25fQXNzdXJlZBABEisKJ0luZmVycmVkQWRkaXRpb25CV0luZGljYXRpb25fQmVzdEVmZm9ydBACQlgKIG9yZy5vcGVuY29yZC52b2x0aGEudGVjaF9wcm9maWxlWjRnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdGVjaF9wcm9maWxlSshkCgcSBQ4A/wEBCtEECgEMEgMOABIyxgQgQ29weXJpZ2h0IChjKSAyMDE4IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBCBIDEABLCgkKAggLEgMQAEsKCAoBCBIDEQA5CgkKAggBEgMRADkKCAoBAhIDEwAVCgkKAgMAEgMUACYKCgoCBQASBBYAGgEKCgoDBQABEgMWBQ4KCwoEBQACABIDFwQRCgwKBQUAAgABEgMXBAwKDAoFBQACAAISAxcPEAoLCgQFAAIBEgMYBBMKDAoFBQACAQESAxgEDgoMCgUFAAIBAhIDGBESCgsKBAUAAgISAxkEFgoMCgUFAAICARIDGQQRCgwKBQUAAgICEgMZFBUKCgoCBQESBBwAIAEKCgoDBQEBEgMcBRUKCwoEBQECABIDHQQMCgwKBQUBAgABEgMdBAcKDAoFBQECAAISAx0KCwoLCgQFAQIBEgMeBBcKDAoFBQECAQESAx4EEgoMCgUFAQIBAhIDHhUWCgsKBAUBAgISAx8EDwoMCgUFAQICARIDHwQKCgwKBQUBAgICEgMfDQ4KCgoCBQISBCIAJwEKCgoDBQIBEgMiBREKCwoEBQICABIDIwQaCgwKBQUCAgABEgMjBBUKDAoFBQICAAISAyMYGQoLCgQFAgIBEgMkBBgKDAoFBQICAQESAyQEEwoMCgUFAgIBAhIDJBYXCgsKBAUCAgISAyUEIAoMCgUFAgICARIDJQQbCgwKBQUCAgICEgMlHh8KCwoEBQICAxIDJgQaCgwKBQUCAgMBEgMmBBUKDAoFBQICAwISAyYYGQoKCgIFAxIEKQAuAQoKCgMFAwESAykFEgoLCgQFAwIAEgMqBBEKDAoFBQMCAAESAyoEDAoMCgUFAwIAAhIDKg8QCgsKBAUDAgESAysEEgoMCgUFAwIBARIDKwQNCgwKBQUDAgECEgMrEBEKCwoEBQMCAhIDLAQMCgwKBQUDAgIBEgMsBAcKDAoFBQMCAgISAywKCwoLCgQFAwIDEgMtBA0KDAoFBQMCAwESAy0ECAoMCgUFAwIDAhIDLQsMCgoKAgUEEgQwADQBCgoKAwUEARIDMAUhCgsKBAUEAgASAzEEKgoMCgUFBAIAARIDMQQlCgwKBQUEAgACEgMxKCkKCwoEBQQCARIDMgQtCgwKBQUEAgEBEgMyBCgKDAoFBQQCAQISAzIrLAoLCgQFBAICEgMzBDAKDAoFBQQCAgESAzMEKwoMCgUFBAICAhIDMy4vCgoKAgQAEgQ2ADwBCgoKAwQAARIDNggXCgsKBAQAAgASAzcEHAoNCgUEAAIABBIENwQ2GQoMCgUEAAIABhIDNwQNCgwKBQQAAgABEgM3DhcKDAoFBAACAAMSAzcaGwo4CgQEAAIBEgM4BCMiKyBWYWxpZCBvbiBmb3Ig4oCcZGlyZWN0aW9uID09IFVwc3RyZWFt4oCdLgoKDQoFBAACAQQSBDgENxwKDAoFBAACAQYSAzgEEAoMCgUEAAIBARIDOBEeCgwKBQQAAgEDEgM4ISIKCwoEBAACAhIDOQQZCg0KBQQAAgIEEgQ5BDgjCgwKBQQAAgIFEgM5BAsKDAoFBAACAgESAzkMFAoMCgUEAAICAxIDORcYCgsKBAQAAgMSAzoEFwoNCgUEAAIDBBIEOgQ5GQoMCgUEAAIDBRIDOgQLCgwKBQQAAgMBEgM6DBIKDAoFBAACAwMSAzoVFgoLCgQEAAIEEgM7BCYKDQoFBAACBAQSBDsEOhcKDAoFBAACBAYSAzsEFAoMCgUEAAIEARIDOxUhCgwKBQQAAgQDEgM7JCUKCgoCBAESBD4ARQEKCgoDBAEBEgM+CBoKCwoEBAECABIDPwQUCg0KBQQBAgAEEgQ/BD4cCgwKBQQBAgAFEgM/BAsKDAoFBAECAAESAz8MDwoMCgUEAQIAAxIDPxITCgsKBAQBAgESA0AEFAoNCgUEAQIBBBIEQAQ/FAoMCgUEAQIBBRIDQAQLCgwKBQQBAgEBEgNADA8KDAoFBAECAQMSA0ASEwoLCgQEAQICEgNBBBQKDQoFBAECAgQSBEEEQBQKDAoFBAECAgUSA0EECwoMCgUEAQICARIDQQwPCgwKBQQBAgIDEgNBEhMKCwoEBAECAxIDQgQUCg0KBQQBAgMEEgRCBEEUCgwKBQQBAgMFEgNCBAsKDAoFBAECAwESA0IMDwoMCgUEAQIDAxIDQhITCjMKBAQBAgQSA0MEFCImIG9ubHkgaWYg4oCcZGlyZWN0aW9uID09IFVwc3RyZWFtIOKAnQoKDQoFBAECBAQSBEMEQhQKDAoFBAECBAUSA0MECwoMCgUEAQIEARIDQwwPCgwKBQQBAgQDEgNDEhMKMgoEBAECBRIDRAQwIiUgb25seSBpZiDigJxkaXJlY3Rpb24gPT0gVXBzdHJlYW3igJ0KCg0KBQQBAgUEEgREBEMUCgwKBQQBAgUGEgNEBCAKDAoFBAECBQESA0QhKwoMCgUEAQIFAxIDRC4vCgoKAgQCEgRHAE0BCgoKAwQCARIDRwgYCgsKBAQCAgASA0gEHAoNCgUEAgIABBIESARHGgoMCgUEAgIABhIDSAQNCgwKBQQCAgABEgNIDhcKDAoFBAICAAMSA0gaGwo5CgQEAgIBEgNJBBkiLCB2YWxpZCBvbmx5IGlmIOKAnGRpcmVjdGlvbiA9PSBVcHN0cmVhbSDigJ0KCg0KBQQCAgEEEgRJBEgcCgwKBQQCAgEFEgNJBAsKDAoFBAICAQESA0kMFAoMCgUEAgIBAxIDSRcYCgsKBAQCAgISA0oEIgoNCgUEAgICBBIESgRJGQoMCgUEAgICBhIDSgQTCgwKBQQCAgIBEgNKFB0KDAoFBAICAgMSA0ogIQoLCgQEAgIDEgNLBDAKDQoFBAICAwQSBEsESiIKDAoFBAICAwYSA0sEFgoMCgUEAgIDARIDSxcrCgwKBQQCAgMDEgNLLi8KCwoEBAICBBIDTAQgCg0KBQQCAgQEEgRMBEswCgwKBQQCAgQFEgNMBAsKDAoFBAICBAESA0wMGwoMCgUEAgIEAxIDTB4fCgoKAgQDEgRPAFUBCgoKAwQDARIDTwgZCgsKBAQDAgASA1AEGAoNCgUEAwIABBIEUARPGwoMCgUEAwIABRIDUAQLCgwKBQQDAgABEgNQDBMKDAoFBAMCAAMSA1AWFwoLCgQEAwIBEgNRBBcKDQoFBAMCAQQSBFEEUBgKDAoFBAMCAQUSA1EECwoMCgUEAwIBARIDUQwSCgwKBQQDAgEDEgNRFRYKCwoEBAMCAhIDUgQXCg0KBQQDAgIEEgRSBFEXCgwKBQQDAgIFEgNSBAsKDAoFBAMCAgESA1IMEgoMCgUEAwICAxIDUhUWCgsKBAQDAgMSA1MEGAoNCgUEAwIDBBIEUwRSFwoMCgUEAwIDBRIDUwQLCgwKBQQDAgMBEgNTDBMKDAoFBAMCAwMSA1MWFwoLCgQEAwIEEgNUBDEKDAoFBAMCBAQSA1QEDAoMCgUEAwIEBhIDVA0dCgwKBQQDAgQBEgNUHiwKDAoFBAMCBAMSA1QvMAoKCgIEBBIEVwBZAQoKCgMEBAESA1cIHQoLCgQEBAIAEgNYBBsKDQoFBAQCAAQSBFgEVx8KDAoFBAQCAAUSA1gECwoMCgUEBAIAARIDWAwWCgwKBQQEAgADEgNYGRoKCgoCBAUSBFsAXwEKCgoDBAUBEgNbCBgKCwoEBAUCABIDXAQeCg0KBQQFAgAEEgRcBFsaCgwKBQQFAgAFEgNcBAsKDAoFBAUCAAESA1wMGQoMCgUEBQIAAxIDXBwdCgsKBAQFAgESA10EHgoNCgUEBQIBBBIEXQRcHgoMCgUEBQIBBRIDXQQLCgwKBQQFAgEBEgNdDBkKDAoFBAUCAQMSA10cHQoLCgQEBQICEgNeBCAKDQoFBAUCAgQSBF4EXR4KDAoFBAUCAgUSA14ECwoMCgUEBQICARIDXgwbCgwKBQQFAgIDEgNeHh8KCgoCBAYSBGEAZQEKCgoDBAYBEgNhCBkKCwoEBAYCABIDYgQfCg0KBQQGAgAEEgRiBGEbCgwKBQQGAgAGEgNiBBQKDAoFBAYCAAESA2IVGgoMCgUEBgIAAxIDYh0eCgsKBAQGAgESA2MEIAoNCgUEBgIBBBIEYwRiHwoMCgUEBgIBBhIDYwQUCgwKBQQGAgEBEgNjFRsKDAoFBAYCAQMSA2MeHwoLCgQEBgICEgNkBB0KDQoFBAYCAgQSBGQEYyAKDAoFBAYCAgYSA2QEFAoMCgUEBgICARIDZBUYCgwKBQQGAgIDEgNkGxwKCgoCBAcSBGcAbgEKCgoDBAcBEgNnCBUKCwoEBAcCABIDaAQlCg0KBQQHAgAEEgRoBGcXCgwKBQQHAgAGEgNoBBEKDAoFBAcCAAESA2gSIAoMCgUEBwIAAxIDaCMkCgwKBAQHCAASBGkEbQUKDAoFBAcIAAESA2kKGAoLCgQEBwIBEgNqCDsKDAoFBAcCAQYSA2oIHQoMCgUEBwIBARIDah42CgwKBQQHAgEDEgNqOToKCwoEBAcCAhIDawgwCgwKBQQHAgIGEgNrCBgKDAoFBAcCAgESA2sZKwoMCgUEBwICAxIDay4vCgsKBAQHAgMSA2wIMgoMCgUEBwIDBhIDbAgZCgwKBQQHAgMBEgNsGi0KDAoFBAcCAwMSA2wwMQoKCgIECBIEcAB6AQoKCgMECAESA3AIFAoLCgQECAIAEgNxBBwKDQoFBAgCAAQSBHEEcBYKDAoFBAgCAAYSA3EEDQoMCgUECAIAARIDcQ4XCgwKBQQIAgADEgNxGhsKCwoEBAgCARIDcgQbCg0KBQQIAgEEEgRyBHEcCgwKBQQIAgEFEgNyBAsKDAoFBAgCAQESA3IMFgoMCgUECAIBAxIDchkaCgsKBAQIAgISA3MEGAoNCgUECAICBBIEcwRyGwoMCgUECAICBRIDcwQKCgwKBQQIAgIBEgNzCxMKDAoFBAgCAgMSA3MWFwoLCgQECAIDEgN0BBwKDQoFBAgCAwQSBHQEcxgKDAoFBAgCAwUSA3QECAoMCgUECAIDARIDdAkXCgwKBQQIAgMDEgN0GhsKJAoEBAgCBBIDdQQmIhcgVGhpcyBjYW4gYmUgU1Agb3IgV1JSCgoNCgUECAIEBBIEdQR0HAoMCgUECAIEBhIDdQQUCgwKBQQIAgQBEgN1FSEKDAoFBAgCBAMSA3UkJQoLCgQECAIFEgN2BBkKDQoFBAgCBQQSBHYEdSYKDAoFBAgCBQUSA3YECwoMCgUECAIFARIDdgwUCgwKBQQIAgUDEgN2FxgKCwoEBAgCBhIDdwQXCg0KBQQIAgYEEgR3BHYZCgwKBQQIAgYFEgN3BAsKDAoFBAgCBgESA3cMEgoMCgUECAIGAxIDdxUWCgsKBAQIAgcSA3gEJQoNCgUECAIHBBIEeAR3FwoMCgUECAIHBhIDeAQRCgwKBQQIAgcBEgN4EiAKDAoFBAgCBwMSA3gjJAoLCgQECAIIEgN5BCUKDQoFBAgCCAQSBHkEeCUKDAoFBAgCCAYSA3kEEQoMCgUECAIIARIDeRIgCgwKBQQIAggDEgN5IyQKCwoCBAkSBXwAgwEBCgoKAwQJARIDfAgVCgsKBAQJAgASA30EGAoNCgUECQIABBIEfQR8FwoMCgUECQIABRIDfQQLCgwKBQQJAgABEgN9DBMKDAoFBAkCAAMSA30WFwoLCgQECQIBEgN+BBcKDQoFBAkCAQQSBH4EfRgKDAoFBAkCAQUSA34ECwoMCgUECQIBARIDfgwSCgwKBQQJAgEDEgN+FRYKCwoEBAkCAhIDfwQXCg0KBQQJAgIEEgR/BH4XCgwKBQQJAgIFEgN/BAsKDAoFBAkCAgESA38MEgoMCgUECQICAxIDfxUWCgwKBAQJAgMSBIABBBgKDgoFBAkCAwQSBYABBH8XCg0KBQQJAgMFEgSAAQQLCg0KBQQJAgMBEgSAAQwTCg0KBQQJAgMDEgSAARYXCgwKBAQJAgQSBIEBBC0KDQoFBAkCBAQSBIEBBAwKDQoFBAkCBAYSBIEBDRkKDQoFBAkCBAESBIEBGigKDQoFBAkCBAMSBIEBKywKDAoEBAkCBRIEggEEIAoPCgUECQIFBBIGggEEgQEtCg0KBQQJAgUFEgSCAQQLCg0KBQQJAgUBEgSCAQwbCg0KBQQJAgUDEgSCAR4fCgwKAgQKEgaFAQCJAQEKCwoDBAoBEgSFAQgXCgwKBAQKAgASBIYBBBMKDwoFBAoCAAQSBoYBBIUBGQoNCgUECgIABRIEhgEECgoNCgUECgIAARIEhgELDgoNCgUECgIAAxIEhgEREgoMCgQECgIBEgSHAQQTCg8KBQQKAgEEEgaHAQSGARMKDQoFBAoCAQUSBIcBBAoKDQoFBAoCAQESBIcBCw4KDQoFBAoCAQMSBIcBERIKDAoEBAoCAhIEiAEEJAoPCgUECgICBBIGiAEEhwETCg0KBQQKAgIFEgSIAQQKCg0KBQQKAgIBEgSIAQsfCg0KBQQKAgIDEgSIASIjCgwKAgQLEgaLAQCTAQEKCwoDBAsBEgSLAQgTCgwKBAQLAgASBIwBAxsKDwoFBAsCAAQSBowBA4sBFQoNCgUECwIABRIEjAEDCQoNCgUECwIAARIEjAEKFgoNCgUECwIAAxIEjAEZGgoMCgQECwIBEgSNAQMbCg8KBQQLAgEEEgaNAQOMARsKDQoFBAsCAQUSBI0BAwkKDQoFBAsCAQESBI0BChYKDQoFBAsCAQMSBI0BGRoKDAoEBAsCAhIEjgEDGwoPCgUECwICBBIGjgEDjQEbCg0KBQQLAgIFEgSOAQMJCg0KBQQLAgIBEgSOAQoWCg0KBQQLAgIDEgSOARkaCgwKBAQLAgMSBI8BAxsKDwoFBAsCAwQSBo8BA44BGwoNCgUECwIDBRIEjwEDCQoNCgUECwIDARIEjwEKFgoNCgUECwIDAxIEjwEZGgoMCgQECwIEEgSQAQMbCg8KBQQLAgQEEgaQAQOPARsKDQoFBAsCBAUSBJABAwkKDQoFBAsCBAESBJABChYKDQoFBAsCBAMSBJABGRoKDAoEBAsCBRIEkQEDGwoPCgUECwIFBBIGkQEDkAEbCg0KBQQLAgUFEgSRAQMJCg0KBQQLAgUBEgSRAQoWCg0KBQQLAgUDEgSRARkaCgwKBAQLAgYSBJIBAxsKDwoFBAsCBgQSBpIBA5EBGwoNCgUECwIGBRIEkgEDCQoNCgUECwIGARIEkgEKFgoNCgUECwIGAxIEkgEZGgoMCgIEDBIGlQEApAEBCgsKAwQMARIElQEIGQpHCgQEDAIAEgSWAQQbIjkgdmFsaWQgb25seSB3aGVuIHJlZmVyZW5jZWQgaW4gdGhlIHRlY2ggcHJvZmlsZSBpbnN0YW5jZQoKDwoFBAwCAAQSBpYBBJUBGwoNCgUEDAIABRIElgEECwoNCgUEDAIAARIElgEMFgoNCgUEDAIAAxIElgEZGgoMCgQEDAIBEgSXAQQaCg8KBQQMAgEEEgaXAQSWARsKDQoFBAwCAQUSBJcBBAoKDQoFBAwCAQESBJcBCxUKDQoFBAwCAQMSBJcBGBkKDAoEBAwCAhIEmAEEGAoPCgUEDAICBBIGmAEElwEaCg0KBQQMAgIFEgSYAQQKCg0KBQQMAgIBEgSYAQsTCg0KBQQMAgIDEgSYARYXCgwKBAQMAgMSBJkBBB4KDwoFBAwCAwQSBpkBBJgBGAoNCgUEDAIDBRIEmQEECgoNCgUEDAIDARIEmQELGQoNCgUEDAIDAxIEmQEcHQolCgQEDAIEEgSaAQQrIhcgVGhpcyBjYW4gYmUgU1Agb3IgV1JSCgoPCgUEDAIEBBIGmgEEmQEeCg0KBQQMAgQGEgSaAQQUCg0KBQQMAgQBEgSaARUmCg0KBQQMAgQDEgSaASkqCgwKBAQMAgUSBJsBBBsKDwoFBAwCBQQSBpsBBJoBKwoNCgUEDAIFBRIEmwEECwoNCgUEDAIFARIEmwEMFgoNCgUEDAIFAxIEmwEZGgoMCgQEDAIGEgScAQQXCg8KBQQMAgYEEgacAQSbARsKDQoFBAwCBgUSBJwBBAsKDQoFBAwCBgESBJwBDBIKDQoFBAwCBgMSBJwBFRYKDAoEBAwCBxIEnQEEJQoPCgUEDAIHBBIGnQEEnAEXCg0KBQQMAgcGEgSdAQQRCg0KBQQMAgcBEgSdARIgCg0KBQQMAgcDEgSdASMkCjMKBAQMAggSBJ4BBCgiJSB1c2VkIHdpdGggdmVyc2lvbiAxIG9mIHRlY2ggcHJvZmlsZQoKDwoFBAwCCAQSBp4BBJ0BJQoNCgUEDAIIBhIEngEEFAoNCgUEDAIIARIEngEVIwoNCgUEDAIIAxIEngEmJwozCgQEDAIJEgSfAQQpIiUgdXNlZCB3aXRoIHZlcnNpb24gMiBvZiB0ZWNoIHByb2ZpbGUKCg8KBQQMAgkEEgafAQSeASgKDQoFBAwCCQYSBJ8BBBEKDQoFBAwCCQESBJ8BEiMKDQoFBAwCCQMSBJ8BJigKDAoEBAwCChIEoAEEHQoPCgUEDAIKBBIGoAEEnwEpCg0KBQQMAgoFEgSgAQQKCg0KBQQMAgoBEgSgAQsXCg0KBQQMAgoDEgSgARocCgwKBAQMAgsSBKEBBCIKDwoFBAwCCwQSBqEBBKABHQoNCgUEDAILBRIEoQEECwoNCgUEDAILARIEoQEMHAoNCgUEDAILAxIEoQEfIQoMCgQEDAIMEgSiAQQsCg8KBQQMAgwEEgaiAQShASIKDQoFBAwCDAUSBKIBBAoKDQoFBAwCDAESBKIBCyYKDQoFBAwCDAMSBKIBKSsKDAoEBAwCDRIEowEEKwoPCgUEDAINBBIGowEEogEsCg0KBQQMAg0FEgSjAQQKCg0KBQQMAg0BEgSjAQslCg0KBQQMAg0DEgSjASgqCgwKAgQNEgamAQCtAQEKCwoDBA0BEgSmAQgbCgwKBAQNAgASBKcBBBwKDwoFBA0CAAQSBqcBBKYBHQoNCgUEDQIABhIEpwEEDQoNCgUEDQIAARIEpwEOFwoNCgUEDQIAAxIEpwEaGwpqCgQEDQIBEgSoAQQYIlwgIFZhbGlkIG9uIGZvciDigJxkaXJlY3Rpb24gPT0gVXBzdHJlYW3igJ0gYW5kIHdoZW4gcmVmZXJlbmNlZCBpbiB0aGUgdGVjaCBwcm9maWxlIGluc3RhbmNlCgoPCgUEDQIBBBIGqAEEpwEcCg0KBQQNAgEFEgSoAQQKCg0KBQQNAgEBEgSoAQsTCg0KBQQNAgEDEgSoARYXCjkKBAQNAgISBKkBBCMiKyBWYWxpZCBvbiBmb3Ig4oCcZGlyZWN0aW9uID09IFVwc3RyZWFt4oCdLgoKDwoFBA0CAgQSBqkBBKgBGAoNCgUEDQICBhIEqQEEEAoNCgUEDQICARIEqQERHgoNCgUEDQICAxIEqQEhIgoMCgQEDQIDEgSqAQQZCg8KBQQNAgMEEgaqAQSpASMKDQoFBA0CAwUSBKoBBAsKDQoFBA0CAwESBKoBDBQKDQoFBA0CAwMSBKoBFxgKDAoEBA0CBBIEqwEEFwoPCgUEDQIEBBIGqwEEqgEZCg0KBQQNAgQFEgSrAQQLCg0KBQQNAgQBEgSrAQwSCg0KBQQNAgQDEgSrARUWCgwKBAQNAgUSBKwBBCgKDwoFBA0CBQQSBqwBBKsBFwoNCgUEDQIFBhIErAEEFAoNCgUEDQIFARIErAEVIwoNCgUEDQIFAxIErAEmJwoMCgIEDhIGrwEAwQEBCgsKAwQOARIErwEIGwoMCgQEDgIAEgSwAQQaCg8KBQQOAgAEEgawAQSvAR0KDQoFBA4CAAUSBLABBAoKDQoFBA4CAAESBLABCxUKDQoFBA4CAAMSBLABGBkKDAoEBA4CARIEsQEEGAoPCgUEDgIBBBIGsQEEsAEaCg0KBQQOAgEFEgSxAQQKCg0KBQQOAgEBEgSxAQsTCg0KBQQOAgEDEgSxARYXCgwKBAQOAgISBLIBBBoKDwoFBA4CAgQSBrIBBLEBGAoNCgUEDgICBRIEsgEECgoNCgUEDgICARIEsgELFQoNCgUEDgICAxIEsgEYGQoMCgQEDgIDEgSzAQQeCg8KBQQOAgMEEgazAQSyARoKDQoFBA4CAwUSBLMBBAoKDQoFBA4CAwESBLMBCxkKDQoFBA4CAwMSBLMBHB0KDAoEBA4CBBIEtAEEHAoPCgUEDgIEBBIGtAEEswEeCg0KBQQOAgQFEgS0AQQKCg0KBQQOAgQBEgS0AQsXCg0KBQQOAgQDEgS0ARobCgwKBAQOAgUSBLUBBCYKDwoFBA4CBQQSBrUBBLQBHAoNCgUEDgIFBRIEtQEECgoNCgUEDgIFARIEtQELIQoNCgUEDgIFAxIEtQEkJQoMCgQEDgIGEgS2AQQgCg8KBQQOAgYEEga2AQS1ASYKDQoFBA4CBgUSBLYBBAoKDQoFBA4CBgESBLYBCxsKDQoFBA4CBgMSBLYBHh8KDAoEBA4CBxIEtwEEJQoPCgUEDgIHBBIGtwEEtgEgCg0KBQQOAgcFEgS3AQQKCg0KBQQOAgcBEgS3AQsgCg0KBQQOAgcDEgS3ASMkCgwKBAQOAggSBLgBBCsKDwoFBA4CCAQSBrgBBLcBJQoNCgUEDgIIBRIEuAEECgoNCgUEDgIIARIEuAELJgoNCgUEDgIIAxIEuAEpKgoMCgQEDgIJEgS5AQQbCg8KBQQOAgkEEga5AQS4ASsKDQoFBA4CCQUSBLkBBAoKDQoFBA4CCQESBLkBCxUKDQoFBA4CCQMSBLkBGBoKDAoEBA4CChIEugEEIgoPCgUEDgIKBBIGugEEuQEbCg0KBQQOAgoGEgS6AQQPCg0KBQQOAgoBEgS6ARAcCg0KBQQOAgoDEgS6AR8hCgwKBAQOAgsSBLsBBCwKDwoFBA4CCwQSBrsBBLoBIgoNCgUEDgILBhIEuwEEFAoNCgUEDgILARIEuwEVJgoNCgUEDgILAxIEuwEpKwoMCgQEDgIMEgS8AQQbCg8KBQQOAgwEEga8AQS7ASwKDQoFBA4CDAUSBLwBBAoKDQoFBA4CDAESBLwBCxUKDQoFBA4CDAMSBLwBGBoKDAoEBA4CDRIEvQEEFwoPCgUEDgINBBIGvQEEvAEbCg0KBQQOAg0FEgS9AQQKCg0KBQQOAg0BEgS9AQsRCg0KBQQOAg0DEgS9ARQWCgwKBAQOAg4SBL4BBCYKDwoFBA4CDgQSBr4BBL0BFwoNCgUEDgIOBhIEvgEEEQoNCgUEDgIOARIEvgESIAoNCgUEDgIOAxIEvgEjJQozCgQEDgIPEgS/AQQpIiUgdXNlZCB3aXRoIHZlcnNpb24gMSBvZiB0ZWNoIHByb2ZpbGUKCg8KBQQOAg8EEga/AQS+ASYKDQoFBA4CDwYSBL8BBBQKDQoFBA4CDwESBL8BFSMKDQoFBA4CDwMSBL8BJigKMwoEBA4CEBIEwAEEKSIlIHVzZWQgd2l0aCB2ZXJzaW9uIDIgb2YgdGVjaCBwcm9maWxlCgoPCgUEDgIQBBIGwAEEvwEpCg0KBQQOAhAGEgTAAQQRCg0KBQQOAhABEgTAARIjCg0KBQQOAhADEgTAASYoCloKAgQPEgbEAQDOAQEaTCBUZWNoUHJvZmlsZSBkZWZpbml0aW9uIChyZWxldmFudCBmb3IgR1BPTiwgWEdQT04gYW5kIFhHUy1QT04gdGVjaG5vbG9naWVzKQoKCwoDBA8BEgTEAQgTCgwKBAQPAgASBMUBBBQKDwoFBA8CAAQSBsUBBMQBFQoNCgUEDwIABRIExQEECgoNCgUEDwIAARIExQELDwoNCgUEDwIAAxIExQESEwoMCgQEDwIBEgTGAQQXCg8KBQQPAgEEEgbGAQTFARQKDQoFBA8CAQUSBMYBBAoKDQoFBA8CAQESBMYBCxIKDQoFBA8CAQMSBMYBFRYKDAoEBA8CAhIExwEEHAoPCgUEDwICBBIGxwEExgEXCg0KBQQPAgIFEgTHAQQKCg0KBQQPAgIBEgTHAQsXCg0KBQQPAgIDEgTHARobCgwKBAQPAgMSBMgBBB0KDwoFBA8CAwQSBsgBBMcBHAoNCgUEDwIDBRIEyAEECgoNCgUEDwIDARIEyAELGAoNCgUEDwIDAxIEyAEbHAoMCgQEDwIEEgTJAQQpCg8KBQQPAgQEEgbJAQTIAR0KDQoFBA8CBAYSBMkBBBMKDQoFBA8CBAESBMkBFCQKDQoFBA8CBAMSBMkBJygKDAoEBA8CBRIEygEEKQoPCgUEDwIFBBIGygEEyQEpCg0KBQQPAgUGEgTKAQQXCg0KBQQPAgUBEgTKARgkCg0KBQQPAgUDEgTKAScoCgwKBAQPAgYSBMsBBCkKDwoFBA8CBgQSBssBBMoBKQoNCgUEDwIGBhIEywEEFwoNCgUEDwIGARIEywEYJAoNCgUEDwIGAxIEywEnKAoMCgQEDwIHEgTMAQRECg0KBQQPAgcEEgTMAQQMCg0KBQQPAgcGEgTMAQ0eCg0KBQQPAgcBEgTMAR8/Cg0KBQQPAgcDEgTMAUJDCgwKBAQPAggSBM0BBEYKDQoFBA8CCAQSBM0BBAwKDQoFBA8CCAYSBM0BDR4KDQoFBA8CCAESBM0BH0EKDQoFBA8CCAMSBM0BREUKKwoCBBASBtEBANoBARodIEVQT04gVGVjaFByb2ZpbGUgZGVmaW5pdGlvbgoKCwoDBBABEgTRAQgXCgwKBAQQAgASBNIBBBQKDwoFBBACAAQSBtIBBNEBGQoNCgUEEAIABRIE0gEECgoNCgUEEAIAARIE0gELDwoNCgUEEAIAAxIE0gESEwoMCgQEEAIBEgTTAQQXCg8KBQQQAgEEEgbTAQTSARQKDQoFBBACAQUSBNMBBAoKDQoFBBACAQESBNMBCxIKDQoFBBACAQMSBNMBFRYKDAoEBBACAhIE1AEEHAoPCgUEEAICBBIG1AEE0wEXCg0KBQQQAgIFEgTUAQQKCg0KBQQQAgIBEgTUAQsXCg0KBQQQAgIDEgTUARobCgwKBAQQAgMSBNUBBB0KDwoFBBACAwQSBtUBBNQBHAoNCgUEEAIDBRIE1QEECgoNCgUEEAIDARIE1QELGAoNCgUEEAIDAxIE1QEbHAoMCgQEEAIEEgTWAQQpCg8KBQQQAgQEEgbWAQTVAR0KDQoFBBACBAYSBNYBBBMKDQoFBBACBAESBNYBFCQKDQoFBBACBAMSBNYBJygKDAoEBBACBRIE1wEEHAoPCgUEEAIFBBIG1wEE1gEpCg0KBQQQAgUFEgTXAQQKCg0KBQQQAgUBEgTXAQsXCg0KBQQQAgUDEgTXARobCgwKBAQQAgYSBNgBBEIKDQoFBBACBgQSBNgBBAwKDQoFBBACBgYSBNgBDSAKDQoFBBACBgESBNgBIT4KDQoFBBACBgMSBNgBQEEKDAoEBBACBxIE2QEERQoNCgUEEAIHBBIE2QEEDAoNCgUEEAIHBhIE2QENIAoNCgUEEAIHARIE2QEhQAoNCgUEEAIHAxIE2QFDRApjCgIEERIG3QEA6AEBGlUgVGVjaFByb2ZpbGUgSW5zdGFuY2UgZGVmaW5pdGlvbiAocmVsZXZhbnQgZm9yIEdQT04sIFhHUE9OIGFuZCBYR1MtUE9OIHRlY2hub2xvZ2llcykKCgsKAwQRARIE3QEIGwoMCgQEEQIAEgTeAQQUCg8KBQQRAgAEEgbeAQTdAR0KDQoFBBECAAUSBN4BBAoKDQoFBBECAAESBN4BCw8KDQoFBBECAAMSBN4BEhMKDAoEBBECARIE3wEEFwoPCgUEEQIBBBIG3wEE3gEUCg0KBQQRAgEFEgTfAQQKCg0KBQQRAgEBEgTfAQsSCg0KBQQRAgEDEgTfARUWCgwKBAQRAgISBOABBCUKDwoFBBECAgQSBuABBN8BFwoNCgUEEQICBRIE4AEECgoNCgUEEQICARIE4AELIAoNCgUEEQICAxIE4AEjJAoMCgQEEQIDEgThAQQcCg8KBQQRAgMEEgbhAQTgASUKDQoFBBECAwUSBOEBBAoKDQoFBBECAwESBOEBCxcKDQoFBBECAwMSBOEBGhsKDAoEBBECBBIE4gEEHQoPCgUEEQIEBBIG4gEE4QEcCg0KBQQRAgQFEgTiAQQKCg0KBQQRAgQBEgTiAQsYCg0KBQQRAgQDEgTiARscCgwKBAQRAgUSBOMBBCkKDwoFBBECBQQSBuMBBOIBHQoNCgUEEQIFBhIE4wEEEwoNCgUEEQIFARIE4wEUJAoNCgUEEQIFAxIE4wEnKAoMCgQEEQIGEgTkAQQpCg8KBQQRAgYEEgbkAQTjASkKDQoFBBECBgYSBOQBBBcKDQoFBBECBgESBOQBGCQKDQoFBBECBgMSBOQBJygKDAoEBBECBxIE5QEEKQoPCgUEEQIHBBIG5QEE5AEpCg0KBQQRAgcGEgTlAQQXCg0KBQQRAgcBEgTlARgkCg0KBQQRAgcDEgTlAScoCgwKBAQRAggSBOYBBEQKDQoFBBECCAQSBOYBBAwKDQoFBBECCAYSBOYBDR4KDQoFBBECCAESBOYBHz8KDQoFBBECCAMSBOYBQkMKDAoEBBECCRIE5wEERwoNCgUEEQIJBBIE5wEEDAoNCgUEEQIJBhIE5wENHgoNCgUEEQIJARIE5wEfQQoNCgUEEQIJAxIE5wFERgo1CgIEEhIG6wEA9gEBGicgRVBPTiBUZWNoUHJvZmlsZSBJbnN0YW5jZSBkZWZpbml0aW9uLgoKCwoDBBIBEgTrAQgfCgwKBAQSAgASBOwBBBQKDwoFBBICAAQSBuwBBOsBIQoNCgUEEgIABRIE7AEECgoNCgUEEgIAARIE7AELDwoNCgUEEgIAAxIE7AESEwoMCgQEEgIBEgTtAQQXCg8KBQQSAgEEEgbtAQTsARQKDQoFBBICAQUSBO0BBAoKDQoFBBICAQESBO0BCxIKDQoFBBICAQMSBO0BFRYKDAoEBBICAhIE7gEEJQoPCgUEEgICBBIG7gEE7QEXCg0KBQQSAgIFEgTuAQQKCg0KBQQSAgIBEgTuAQsgCg0KBQQSAgIDEgTuASMkCgwKBAQSAgMSBO8BBBwKDwoFBBICAwQSBu8BBO4BJQoNCgUEEgIDBRIE7wEECgoNCgUEEgIDARIE7wELFwoNCgUEEgIDAxIE7wEaGwoMCgQEEgIEEgTwAQQdCg8KBQQSAgQEEgbwAQTvARwKDQoFBBICBAUSBPABBAoKDQoFBBICBAESBPABCxgKDQoFBBICBAMSBPABGxwKDAoEBBICBRIE8QEEGAoPCgUEEgIFBBIG8QEE8AEdCg0KBQQSAgUFEgTxAQQKCg0KBQQSAgUBEgTxAQsTCg0KBQQSAgUDEgTxARYXCgwKBAQSAgYSBPIBBCkKDwoFBBICBgQSBvIBBPEBGAoNCgUEEgIGBhIE8gEEEwoNCgUEEgIGARIE8gEUJAoNCgUEEgIGAxIE8gEnKAoMCgQEEgIHEgTzAQQcCg8KBQQSAgcEEgbzAQTyASkKDQoFBBICBwUSBPMBBAoKDQoFBBICBwESBPMBCxcKDQoFBBICBwMSBPMBGhsKDAoEBBICCBIE9AEEQgoNCgUEEgIIBBIE9AEEDAoNCgUEEgIIBhIE9AENIAoNCgUEEgIIARIE9AEhPgoNCgUEEgIIAxIE9AFAQQoMCgQEEgIJEgT1AQRGCg0KBQQSAgkEEgT1AQQMCg0KBQQSAgkGEgT1AQ0gCg0KBQQSAgkBEgT1ASFACg0KBQQSAgkDEgT1AUNFCiwKAgQTEgb5AQD/AQEaHiBSZXNvdXJjZSBJbnN0YW5jZSBkZWZpbml0aW9uCgoLCgMEEwESBPkBCBgKDAoEBBMCABIE+gEEFQoPCgUEEwIABBIG+gEE+QEaCg0KBQQTAgAFEgT6AQQKCg0KBQQTAgABEgT6AQsQCg0KBQQTAgADEgT6ARMUCgwKBAQTAgESBPsBBBwKDwoFBBMCAQQSBvsBBPoBFQoNCgUEEwIBBRIE+wEECgoNCgUEEwIBARIE+wELFwoNCgUEEwIBAxIE+wEaGwoMCgQEEwICEgT8AQQlCg8KBQQTAgIEEgb8AQT7ARwKDQoFBBMCAgUSBPwBBAoKDQoFBBMCAgESBPwBCyAKDQoFBBMCAgMSBPwBIyQKDAoEBBMCAxIE/QEEGAoPCgUEEwIDBBIG/QEE/AElCg0KBQQTAgMFEgT9AQQKCg0KBQQTAgMBEgT9AQsTCg0KBQQTAgMDEgT9ARYXCgwKBAQTAgQSBP4BBCQKDQoFBBMCBAQSBP4BBAwKDQoFBBMCBAUSBP4BDRMKDQoFBBMCBAESBP4BFB8KDQoFBBMCBAMSBP4BIiNiBnByb3RvMwqw+gIKG3ZvbHRoYV9wcm90b3Mvb3Blbm9sdC5wcm90bxIHb3Blbm9sdBocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxogdm9sdGhhX3Byb3Rvcy90ZWNoX3Byb2ZpbGUucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGh52b2x0aGFfcHJvdG9zL2V4dF9jb25maWcucHJvdG8izAQKCkluZGljYXRpb24SMQoHb2x0X2luZBgBIAEoCzIWLm9wZW5vbHQuT2x0SW5kaWNhdGlvbkgAUgZvbHRJbmQSNAoIaW50Zl9pbmQYAiABKAsyFy5vcGVub2x0LkludGZJbmRpY2F0aW9uSABSB2ludGZJbmQSQQoNaW50Zl9vcGVyX2luZBgDIAEoCzIbLm9wZW5vbHQuSW50Zk9wZXJJbmRpY2F0aW9uSABSC2ludGZPcGVySW5kEj4KDG9udV9kaXNjX2luZBgEIAEoCzIaLm9wZW5vbHQuT251RGlzY0luZGljYXRpb25IAFIKb251RGlzY0luZBIxCgdvbnVfaW5kGAUgASgLMhYub3Blbm9sdC5PbnVJbmRpY2F0aW9uSABSBm9udUluZBI0CghvbWNpX2luZBgGIAEoCzIXLm9wZW5vbHQuT21jaUluZGljYXRpb25IAFIHb21jaUluZBI0Cgdwa3RfaW5kGAcgASgLMhkub3Blbm9sdC5QYWNrZXRJbmRpY2F0aW9uSABSBnBrdEluZBI4Cgpwb3J0X3N0YXRzGAggASgLMhcub3Blbm9sdC5Qb3J0U3RhdGlzdGljc0gAUglwb3J0U3RhdHMSOAoKZmxvd19zdGF0cxgJIAEoCzIXLm9wZW5vbHQuRmxvd1N0YXRpc3RpY3NIAFIJZmxvd1N0YXRzEjcKCWFsYXJtX2luZBgKIAEoCzIYLm9wZW5vbHQuQWxhcm1JbmRpY2F0aW9uSABSCGFsYXJtSW5kQgYKBGRhdGEi6w0KD0FsYXJtSW5kaWNhdGlvbhIxCgdsb3NfaW5kGAEgASgLMhYub3Blbm9sdC5Mb3NJbmRpY2F0aW9uSABSBmxvc0luZBJECg5keWluZ19nYXNwX2luZBgCIAEoCzIcLm9wZW5vbHQuRHlpbmdHYXNwSW5kaWNhdGlvbkgAUgxkeWluZ0dhc3BJbmQSQQoNb251X2FsYXJtX2luZBgDIAEoCzIbLm9wZW5vbHQuT251QWxhcm1JbmRpY2F0aW9uSABSC29udUFsYXJtSW5kElcKFG9udV9zdGFydHVwX2ZhaWxfaW5kGAQgASgLMiQub3Blbm9sdC5PbnVTdGFydHVwRmFpbHVyZUluZGljYXRpb25IAFIRb251U3RhcnR1cEZhaWxJbmQSWgoWb251X3NpZ25hbF9kZWdyYWRlX2luZBgFIAEoCzIjLm9wZW5vbHQuT251U2lnbmFsRGVncmFkZUluZGljYXRpb25IAFITb251U2lnbmFsRGVncmFkZUluZBJbChdvbnVfZHJpZnRfb2Zfd2luZG93X2luZBgGIAEoCzIjLm9wZW5vbHQuT251RHJpZnRPZldpbmRvd0luZGljYXRpb25IAFITb251RHJpZnRPZldpbmRvd0luZBJUChFvbnVfbG9zc19vbWNpX2luZBgHIAEoCzInLm9wZW5vbHQuT251TG9zc09mT21jaUNoYW5uZWxJbmRpY2F0aW9uSABSDm9udUxvc3NPbWNpSW5kElcKFG9udV9zaWduYWxzX2ZhaWxfaW5kGAggASgLMiQub3Blbm9sdC5PbnVTaWduYWxzRmFpbHVyZUluZGljYXRpb25IAFIRb251U2lnbmFsc0ZhaWxJbmQSTwoMb251X3Rpd2lfaW5kGAkgASgLMisub3Blbm9sdC5PbnVUcmFuc21pc3Npb25JbnRlcmZlcmVuY2VXYXJuaW5nSABSCm9udVRpd2lJbmQSYAoXb251X2FjdGl2YXRpb25fZmFpbF9pbmQYCiABKAsyJy5vcGVub2x0Lk9udUFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbkgAUhRvbnVBY3RpdmF0aW9uRmFpbEluZBJgChhvbnVfcHJvY2Vzc2luZ19lcnJvcl9pbmQYCyABKAsyJS5vcGVub2x0Lk9udVByb2Nlc3NpbmdFcnJvckluZGljYXRpb25IAFIVb251UHJvY2Vzc2luZ0Vycm9ySW5kEmUKGW9udV9sb3NzX29mX3N5bmNfZmFpbF9pbmQYDCABKAsyKi5vcGVub2x0Lk9udUxvc3NPZktleVN5bmNGYWlsdXJlSW5kaWNhdGlvbkgAUhRvbnVMb3NzT2ZTeW5jRmFpbEluZBJVChVvbnVfaXR1X3Bvbl9zdGF0c19pbmQYDSABKAsyIS5vcGVub2x0Lk9udUl0dVBvblN0YXRzSW5kaWNhdGlvbkgAUhFvbnVJdHVQb25TdGF0c0luZBJsChxvbnVfZGVhY3RpdmF0aW9uX2ZhaWx1cmVfaW5kGA4gASgLMikub3Blbm9sdC5PbnVEZWFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbkgAUhlvbnVEZWFjdGl2YXRpb25GYWlsdXJlSW5kElcKFW9udV9yZW1vdGVfZGVmZWN0X2luZBgPIAEoCzIiLm9wZW5vbHQuT251UmVtb3RlRGVmZWN0SW5kaWNhdGlvbkgAUhJvbnVSZW1vdGVEZWZlY3RJbmQScwocb251X2xvc3NfZ2VtX2RlbGluZWF0aW9uX2luZBgQIAEoCzIxLm9wZW5vbHQuT251TG9zc09mR0VNQ2hhbm5lbERlbGluZWF0aW9uSW5kaWNhdGlvbkgAUhhvbnVMb3NzR2VtRGVsaW5lYXRpb25JbmQSdgogb251X3BoeXNpY2FsX2VxdWlwbWVudF9lcnJvcl9pbmQYESABKAsyLC5vcGVub2x0Lk9udVBoeXNpY2FsRXF1aXBtZW50RXJyb3JJbmRpY2F0aW9uSABSHG9udVBoeXNpY2FsRXF1aXBtZW50RXJyb3JJbmQSWwoTb251X2xvc3Nfb2ZfYWNrX2luZBgSIAEoCzIrLm9wZW5vbHQuT251TG9zc09mQWNrbm93bGVkZ2VtZW50SW5kaWNhdGlvbkgAUg9vbnVMb3NzT2ZBY2tJbmQSbwobb251X2RpZmZfcmVhY2hfZXhjZWVkZWRfaW5kGBMgASgLMi8ub3Blbm9sdC5PbnVEaWZmZXJlbnRpYWxSZWFjaEV4Y2VlZGVkSW5kaWNhdGlvbkgAUhdvbnVEaWZmUmVhY2hFeGNlZWRlZEluZEIGCgRkYXRhIi4KDU9sdEluZGljYXRpb24SHQoKb3Blcl9zdGF0ZRgBIAEoCVIJb3BlclN0YXRlIkgKDkludGZJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIdCgpvcGVyX3N0YXRlGAIgASgJUglvcGVyU3RhdGUiaAoRT251RGlzY0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEjoKDXNlcmlhbF9udW1iZXIYAiABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyIpMECg1PbnVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCm9wZXJfc3RhdGUYAyABKAlSCW9wZXJTdGF0ZRIfCgthZG1pbl9zdGF0ZRgFIAEoCVIKYWRtaW5TdGF0ZRI6Cg1zZXJpYWxfbnVtYmVyGAQgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSDHNlcmlhbE51bWJlchJMCgtmYWlsX3JlYXNvbhgGIAEoDjIrLm9wZW5vbHQuT251SW5kaWNhdGlvbi5BY3RpdmF0aW9uRmFpbFJlYXNvblIKZmFpbFJlYXNvbiKHAgoUQWN0aXZhdGlvbkZhaWxSZWFzb24SIwofT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fTk9ORRAAEiYKIk9OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX1JBTkdJTkcQARI2CjJPTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9QQVNTV09SRF9BVVRIRU5USUNBVElPThACEiIKHk9OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX0xPUxADEiEKHU9OVV9BQ1RJVkFUSU9OX0ZBSUxfT05VX0FMQVJNEAQSIwofT05VX0FDVElWQVRJT05fRkFJTF9TV0lUQ0hfT1ZFUhAFImAKEkludGZPcGVySW5kaWNhdGlvbhISCgR0eXBlGAEgASgJUgR0eXBlEhcKB2ludGZfaWQYAiABKAdSBmludGZJZBIdCgpvcGVyX3N0YXRlGAMgASgJUglvcGVyU3RhdGUiUgoOT21jaUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSEAoDcGt0GAMgASgMUgNwa3Qi8QEKEFBhY2tldEluZGljYXRpb24SGwoJaW50Zl90eXBlGAUgASgJUghpbnRmVHlwZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAggASgHUgVvbnVJZBIVCgZ1bmlfaWQYCSABKAdSBXVuaUlkEh0KCmdlbXBvcnRfaWQYAiABKAdSCWdlbXBvcnRJZBIXCgdmbG93X2lkGAMgASgHUgZmbG93SWQSFwoHcG9ydF9ubxgGIAEoB1IGcG9ydE5vEhYKBmNvb2tpZRgHIAEoBlIGY29va2llEhAKA3BrdBgEIAEoDFIDcGt0IiQKCUludGVyZmFjZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQiPAoJSGVhcnRiZWF0Ei8KE2hlYXJ0YmVhdF9zaWduYXR1cmUYASABKAdSEmhlYXJ0YmVhdFNpZ25hdHVyZSKsAQoDT251EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjoKDXNlcmlhbF9udW1iZXIYAyABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyEhAKA3BpchgEIAEoB1IDcGlyEicKD29tY2NfZW5jcnlwdGlvbhgFIAEoCFIOb21jY0VuY3J5cHRpb24isQEKEk9udUxvZ2ljYWxEaXN0YW5jZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBI5Chlsb2dpY2FsX29udV9kaXN0YW5jZV96ZXJvGAMgASgHUhZsb2dpY2FsT251RGlzdGFuY2VaZXJvEjAKFGxvZ2ljYWxfb251X2Rpc3RhbmNlGAQgASgHUhJsb2dpY2FsT251RGlzdGFuY2UiSwoHT21jaU1zZxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIQCgNwa3QYAyABKAxSA3BrdCKFAQoJT251UGFja2V0EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhcKB3BvcnRfbm8YBCABKAdSBnBvcnRObxIdCgpnZW1wb3J0X2lkGAUgASgHUglnZW1wb3J0SWQSEAoDcGt0GAMgASgMUgNwa3QiOQoMVXBsaW5rUGFja2V0EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIQCgNwa3QYAiABKAxSA3BrdCLFCQoKRGV2aWNlSW5mbxIWCgZ2ZW5kb3IYASABKAlSBnZlbmRvchIUCgVtb2RlbBgCIAEoCVIFbW9kZWwSKQoQaGFyZHdhcmVfdmVyc2lvbhgDIAEoCVIPaGFyZHdhcmVWZXJzaW9uEikKEGZpcm13YXJlX3ZlcnNpb24YBCABKAlSD2Zpcm13YXJlVmVyc2lvbhIbCglkZXZpY2VfaWQYECABKAlSCGRldmljZUlkEjAKFGRldmljZV9zZXJpYWxfbnVtYmVyGBEgASgJUhJkZXZpY2VTZXJpYWxOdW1iZXISMQoUcHJldmlvdXNseV9jb25uZWN0ZWQYEyABKAhSE3ByZXZpb3VzbHlDb25uZWN0ZWQSGwoJcG9uX3BvcnRzGAwgASgHUghwb25Qb3J0cxIeCgp0ZWNobm9sb2d5GAUgASgJUgp0ZWNobm9sb2d5EiAKDG9udV9pZF9zdGFydBgGIAEoB1IKb251SWRTdGFydBIcCgpvbnVfaWRfZW5kGAcgASgHUghvbnVJZEVuZBIkCg5hbGxvY19pZF9zdGFydBgIIAEoB1IMYWxsb2NJZFN0YXJ0EiAKDGFsbG9jX2lkX2VuZBgJIAEoB1IKYWxsb2NJZEVuZBIoChBnZW1wb3J0X2lkX3N0YXJ0GAogASgHUg5nZW1wb3J0SWRTdGFydBIkCg5nZW1wb3J0X2lkX2VuZBgLIAEoB1IMZ2VtcG9ydElkRW5kEiIKDWZsb3dfaWRfc3RhcnQYDSABKAdSC2Zsb3dJZFN0YXJ0Eh4KC2Zsb3dfaWRfZW5kGA4gASgHUglmbG93SWRFbmQSQAoGcmFuZ2VzGA8gAygLMigub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzUgZyYW5nZXMalQQKFERldmljZVJlc291cmNlUmFuZ2VzEhkKCGludGZfaWRzGAEgAygHUgdpbnRmSWRzEh4KCnRlY2hub2xvZ3kYAiABKAlSCnRlY2hub2xvZ3kSQwoFcG9vbHMYAyADKAsyLS5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbFIFcG9vbHMa/AIKBFBvb2wSSgoEdHlwZRgBIAEoDjI2Lm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlcy5Qb29sLlBvb2xUeXBlUgR0eXBlElMKB3NoYXJpbmcYAiABKA4yOS5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbC5TaGFyaW5nVHlwZVIHc2hhcmluZxIUCgVzdGFydBgDIAEoB1IFc3RhcnQSEAoDZW5kGAQgASgHUgNlbmQiQQoIUG9vbFR5cGUSCgoGT05VX0lEEAASDAoIQUxMT0NfSUQQARIOCgpHRU1QT1JUX0lEEAISCwoHRkxPV19JRBADImgKC1NoYXJpbmdUeXBlEhYKEkRFRElDQVRFRF9QRVJfSU5URhAAEh8KG1NIQVJFRF9CWV9BTExfSU5URl9BTExfVEVDSBABEiAKHFNIQVJFRF9CWV9BTExfSU5URl9TQU1FX1RFQ0gQAiKEAwoKQ2xhc3NpZmllchIVCgZvX3RwaWQYASABKAdSBW9UcGlkEhMKBW9fdmlkGAIgASgHUgRvVmlkEhUKBmlfdHBpZBgDIAEoB1IFaVRwaWQSEwoFaV92aWQYBCABKAdSBGlWaWQSFwoHb19wYml0cxgFIAEoB1IGb1BiaXRzEhcKB2lfcGJpdHMYBiABKAdSBmlQYml0cxIZCghldGhfdHlwZRgHIAEoB1IHZXRoVHlwZRIXCgdkc3RfbWFjGAggASgMUgZkc3RNYWMSFwoHc3JjX21hYxgJIAEoDFIGc3JjTWFjEhkKCGlwX3Byb3RvGAogASgHUgdpcFByb3RvEhUKBmRzdF9pcBgLIAEoB1IFZHN0SXASFQoGc3JjX2lwGAwgASgHUgVzcmNJcBIZCghzcmNfcG9ydBgNIAEoB1IHc3JjUG9ydBIZCghkc3RfcG9ydBgOIAEoB1IHZHN0UG9ydBIgCgxwa3RfdGFnX3R5cGUYDyABKAlSCnBrdFRhZ1R5cGUihQMKCUFjdGlvbkNtZBIiCg1hZGRfb3V0ZXJfdGFnGAEgASgIUgthZGRPdXRlclRhZxIoChByZW1vdmVfb3V0ZXJfdGFnGAIgASgIUg5yZW1vdmVPdXRlclRhZxIgCgx0cmFwX3RvX2hvc3QYAyABKAhSCnRyYXBUb0hvc3QSLAoScmVtYXJrX291dGVyX3BiaXRzGAQgASgIUhByZW1hcmtPdXRlclBiaXRzEiwKEnJlbWFya19pbm5lcl9wYml0cxgFIAEoCFIQcmVtYXJrSW5uZXJQYml0cxIiCg1hZGRfaW5uZXJfdGFnGAYgASgIUgthZGRJbm5lclRhZxIoChByZW1vdmVfaW5uZXJfdGFnGAcgASgIUg5yZW1vdmVJbm5lclRhZxIuChN0cmFuc2xhdGVfaW5uZXJfdGFnGAggASgIUhF0cmFuc2xhdGVJbm5lclRhZxIuChN0cmFuc2xhdGVfb3V0ZXJfdGFnGAkgASgIUhF0cmFuc2xhdGVPdXRlclRhZyK4AQoGQWN0aW9uEiQKA2NtZBgBIAEoCzISLm9wZW5vbHQuQWN0aW9uQ21kUgNjbWQSEwoFb192aWQYAiABKAdSBG9WaWQSFwoHb19wYml0cxgDIAEoB1IGb1BiaXRzEhUKBm9fdHBpZBgEIAEoB1IFb1RwaWQSEwoFaV92aWQYBSABKAdSBGlWaWQSFwoHaV9wYml0cxgGIAEoB1IGaVBiaXRzEhUKBmlfdHBpZBgHIAEoB1IFaVRwaWQixwYKBEZsb3cSJAoOYWNjZXNzX2ludGZfaWQYASABKA9SDGFjY2Vzc0ludGZJZBIVCgZvbnVfaWQYAiABKA9SBW9udUlkEhUKBnVuaV9pZBgLIAEoD1IFdW5pSWQSFwoHZmxvd19pZBgDIAEoBlIGZmxvd0lkEioKEXN5bW1ldHJpY19mbG93X2lkGBIgASgGUg9zeW1tZXRyaWNGbG93SWQSGwoJZmxvd190eXBlGAQgASgJUghmbG93VHlwZRIZCghhbGxvY19pZBgKIAEoD1IHYWxsb2NJZBImCg9uZXR3b3JrX2ludGZfaWQYBSABKA9SDW5ldHdvcmtJbnRmSWQSHQoKZ2VtcG9ydF9pZBgGIAEoD1IJZ2VtcG9ydElkEjMKCmNsYXNzaWZpZXIYByABKAsyEy5vcGVub2x0LkNsYXNzaWZpZXJSCmNsYXNzaWZpZXISJwoGYWN0aW9uGAggASgLMg8ub3Blbm9sdC5BY3Rpb25SBmFjdGlvbhIaCghwcmlvcml0eRgJIAEoD1IIcHJpb3JpdHkSFgoGY29va2llGAwgASgGUgZjb29raWUSFwoHcG9ydF9ubxgNIAEoB1IGcG9ydE5vEhkKCGdyb3VwX2lkGA4gASgHUgdncm91cElkEiYKD3RlY2hfcHJvZmlsZV9pZBgPIAEoB1INdGVjaFByb2ZpbGVJZBIlCg5yZXBsaWNhdGVfZmxvdxgQIAEoCFINcmVwbGljYXRlRmxvdxJICg9wYml0X3RvX2dlbXBvcnQYESADKAsyIC5vcGVub2x0LkZsb3cuUGJpdFRvR2VtcG9ydEVudHJ5Ug1wYml0VG9HZW1wb3J0EkUKDmdlbXBvcnRfdG9fYWVzGBMgAygLMh8ub3Blbm9sdC5GbG93LkdlbXBvcnRUb0Flc0VudHJ5UgxnZW1wb3J0VG9BZXMaQAoSUGJpdFRvR2VtcG9ydEVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaPwoRR2VtcG9ydFRvQWVzRW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAhSBXZhbHVlOgI4ASJUCgxTZXJpYWxOdW1iZXISGwoJdmVuZG9yX2lkGAEgASgMUgh2ZW5kb3JJZBInCg92ZW5kb3Jfc3BlY2lmaWMYAiABKAxSDnZlbmRvclNwZWNpZmljIv4LCg5Qb3J0U3RhdGlzdGljcxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSGQoIcnhfYnl0ZXMYAiABKAZSB3J4Qnl0ZXMSHQoKcnhfcGFja2V0cxgDIAEoBlIJcnhQYWNrZXRzEigKEHJ4X3VjYXN0X3BhY2tldHMYBCABKAZSDnJ4VWNhc3RQYWNrZXRzEigKEHJ4X21jYXN0X3BhY2tldHMYBSABKAZSDnJ4TWNhc3RQYWNrZXRzEigKEHJ4X2JjYXN0X3BhY2tldHMYBiABKAZSDnJ4QmNhc3RQYWNrZXRzEigKEHJ4X2Vycm9yX3BhY2tldHMYByABKAZSDnJ4RXJyb3JQYWNrZXRzEhsKCXJ4X2ZyYW1lcxgRIAEoBlIIcnhGcmFtZXMSIAoMcnhfZnJhbWVzXzY0GBIgASgGUgpyeEZyYW1lczY0EicKEHJ4X2ZyYW1lc182NV8xMjcYEyABKAZSDXJ4RnJhbWVzNjUxMjcSKQoRcnhfZnJhbWVzXzEyOF8yNTUYFCABKAZSDnJ4RnJhbWVzMTI4MjU1EikKEXJ4X2ZyYW1lc18yNTZfNTExGBUgASgGUg5yeEZyYW1lczI1NjUxMRIrChJyeF9mcmFtZXNfNTEyXzEwMjMYFiABKAZSD3J4RnJhbWVzNTEyMTAyMxItChNyeF9mcmFtZXNfMTAyNF8xNTE4GBcgASgGUhByeEZyYW1lczEwMjQxNTE4Ei0KE3J4X2ZyYW1lc18xNTE5XzIwNDcYGCABKAZSEHJ4RnJhbWVzMTUxOTIwNDcSLQoTcnhfZnJhbWVzXzIwNDhfNDA5NRgZIAEoBlIQcnhGcmFtZXMyMDQ4NDA5NRItChNyeF9mcmFtZXNfNDA5Nl85MjE2GBogASgGUhByeEZyYW1lczQwOTY5MjE2Ei8KFHJ4X2ZyYW1lc185MjE3XzE2MzgzGBsgASgGUhFyeEZyYW1lczkyMTcxNjM4MxIiCg1yeF9jcmNfZXJyb3JzGA4gASgGUgtyeENyY0Vycm9ycxIZCgh0eF9ieXRlcxgIIAEoBlIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAkgASgGUgl0eFBhY2tldHMSKAoQdHhfdWNhc3RfcGFja2V0cxgKIAEoBlIOdHhVY2FzdFBhY2tldHMSKAoQdHhfbWNhc3RfcGFja2V0cxgLIAEoBlIOdHhNY2FzdFBhY2tldHMSKAoQdHhfYmNhc3RfcGFja2V0cxgMIAEoBlIOdHhCY2FzdFBhY2tldHMSKAoQdHhfZXJyb3JfcGFja2V0cxgNIAEoBlIOdHhFcnJvclBhY2tldHMSGwoJdHhfZnJhbWVzGBwgASgGUgh0eEZyYW1lcxIgCgx0eF9mcmFtZXNfNjQYHSABKAZSCnR4RnJhbWVzNjQSJwoQdHhfZnJhbWVzXzY1XzEyNxgeIAEoBlINdHhGcmFtZXM2NTEyNxIpChF0eF9mcmFtZXNfMTI4XzI1NRgfIAEoBlIOdHhGcmFtZXMxMjgyNTUSKQoRdHhfZnJhbWVzXzI1Nl81MTEYICABKAZSDnR4RnJhbWVzMjU2NTExEisKEnR4X2ZyYW1lc181MTJfMTAyMxghIAEoBlIPdHhGcmFtZXM1MTIxMDIzEi0KE3R4X2ZyYW1lc18xMDI0XzE1MTgYIiABKAZSEHR4RnJhbWVzMTAyNDE1MTgSLQoTdHhfZnJhbWVzXzE1MTlfMjA0NxgjIAEoBlIQdHhGcmFtZXMxNTE5MjA0NxItChN0eF9mcmFtZXNfMjA0OF80MDk1GCQgASgGUhB0eEZyYW1lczIwNDg0MDk1Ei0KE3R4X2ZyYW1lc180MDk2XzkyMTYYJSABKAZSEHR4RnJhbWVzNDA5NjkyMTYSLwoUdHhfZnJhbWVzXzkyMTdfMTYzODMYJiABKAZSEXR4RnJhbWVzOTIxNzE2MzgzEh0KCmJpcF9lcnJvcnMYDyABKAZSCWJpcEVycm9ycxIcCgl0aW1lc3RhbXAYECABKAdSCXRpbWVzdGFtcCLmBwoNT251U3RhdGlzdGljcxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIlCg5wb3NpdGl2ZV9kcmlmdBgDIAEoBlINcG9zaXRpdmVEcmlmdBIlCg5uZWdhdGl2ZV9kcmlmdBgEIAEoBlINbmVnYXRpdmVEcmlmdBI4ChhkZWxpbWl0ZXJfbWlzc19kZXRlY3Rpb24YBSABKAZSFmRlbGltaXRlck1pc3NEZXRlY3Rpb24SHQoKYmlwX2Vycm9ycxgGIAEoBlIJYmlwRXJyb3JzEhsKCWJpcF91bml0cxgHIAEoBlIIYmlwVW5pdHMSMgoVZmVjX2NvcnJlY3RlZF9zeW1ib2xzGAggASgGUhNmZWNDb3JyZWN0ZWRTeW1ib2xzEjYKF2ZlY19jb2Rld29yZHNfY29ycmVjdGVkGAkgASgGUhVmZWNDb2Rld29yZHNDb3JyZWN0ZWQSPgobZmVjX2NvZGV3b3Jkc191bmNvcnJlY3RhYmxlGAogASgGUhlmZWNDb2Rld29yZHNVbmNvcnJlY3RhYmxlEiMKDWZlY19jb2Rld29yZHMYCyABKAZSDGZlY0NvZGV3b3JkcxIuChNmZWNfY29ycmVjdGVkX3VuaXRzGAwgASgGUhFmZWNDb3JyZWN0ZWRVbml0cxImCg94Z2VtX2tleV9lcnJvcnMYDSABKAZSDXhnZW1LZXlFcnJvcnMSGwoJeGdlbV9sb3NzGA4gASgGUgh4Z2VtTG9zcxImCg9yeF9wbG9hbXNfZXJyb3IYDyABKAZSDXJ4UGxvYW1zRXJyb3ISKwoScnhfcGxvYW1zX25vbl9pZGxlGBAgASgGUg9yeFBsb2Ftc05vbklkbGUSFwoHcnhfb21jaRgRIAEoBlIGcnhPbWNpEjgKGXJ4X29tY2lfcGFja2V0c19jcmNfZXJyb3IYEiABKAZSFXJ4T21jaVBhY2tldHNDcmNFcnJvchIZCghyeF9ieXRlcxgTIAEoBlIHcnhCeXRlcxIdCgpyeF9wYWNrZXRzGBQgASgGUglyeFBhY2tldHMSGQoIdHhfYnl0ZXMYFSABKAZSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgWIAEoBlIJdHhQYWNrZXRzEiEKDGJlcl9yZXBvcnRlZBgXIAEoBlILYmVyUmVwb3J0ZWQSHwoLbGNkZ19lcnJvcnMYGCABKAZSCmxjZGdFcnJvcnMSHQoKcmRpX2Vycm9ycxgZIAEoBlIJcmRpRXJyb3JzEhwKCXRpbWVzdGFtcBgaIAEoB1IJdGltZXN0YW1wIt0BChFHZW1Qb3J0U3RhdGlzdGljcxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSHQoKZ2VtcG9ydF9pZBgCIAEoB1IJZ2VtcG9ydElkEh0KCnJ4X3BhY2tldHMYAyABKAZSCXJ4UGFja2V0cxIZCghyeF9ieXRlcxgEIAEoBlIHcnhCeXRlcxIdCgp0eF9wYWNrZXRzGAUgASgGUgl0eFBhY2tldHMSGQoIdHhfYnl0ZXMYBiABKAZSB3R4Qnl0ZXMSHAoJdGltZXN0YW1wGBogASgHUgl0aW1lc3RhbXAiuwEKDkZsb3dTdGF0aXN0aWNzEhcKB2Zsb3dfaWQYASABKAdSBmZsb3dJZBIZCghyeF9ieXRlcxgCIAEoBlIHcnhCeXRlcxIdCgpyeF9wYWNrZXRzGAMgASgGUglyeFBhY2tldHMSGQoIdHhfYnl0ZXMYCCABKAZSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgJIAEoBlIJdHhQYWNrZXRzEhwKCXRpbWVzdGFtcBgQIAEoB1IJdGltZXN0YW1wIkAKDUxvc0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhYKBnN0YXR1cxgCIAEoCVIGc3RhdHVzIl0KE0R5aW5nR2FzcEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMiowIKEk9udUFsYXJtSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpsb3Nfc3RhdHVzGAMgASgJUglsb3NTdGF0dXMSHQoKbG9iX3N0YXR1cxgEIAEoCVIJbG9iU3RhdHVzEigKEGxvcGNfbWlzc19zdGF0dXMYBSABKAlSDmxvcGNNaXNzU3RhdHVzEjEKFWxvcGNfbWljX2Vycm9yX3N0YXR1cxgGIAEoCVISbG9wY01pY0Vycm9yU3RhdHVzEh8KC2xvZmlfc3RhdHVzGAcgASgJUgpsb2ZpU3RhdHVzEiEKDGxvYW1pX3N0YXR1cxgIIAEoCVILbG9hbWlTdGF0dXMiZQobT251U3RhcnR1cEZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIpkBChpPbnVTaWduYWxEZWdyYWRlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIzChZpbnZlcnNlX2JpdF9lcnJvcl9yYXRlGAQgASgHUhNpbnZlcnNlQml0RXJyb3JSYXRlIpMBChpPbnVEcmlmdE9mV2luZG93SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIUCgVkcmlmdBgEIAEoB1IFZHJpZnQSFwoHbmV3X2VxZBgFIAEoB1IGbmV3RXFkImgKHk9udUxvc3NPZk9tY2lDaGFubmVsSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKaAQobT251U2lnbmFsc0ZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEjMKFmludmVyc2VfYml0X2Vycm9yX3JhdGUYBCABKAdSE2ludmVyc2VCaXRFcnJvclJhdGUiggEKIk9udVRyYW5zbWlzc2lvbkludGVyZmVyZW5jZVdhcm5pbmcSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSFAoFZHJpZnQYBCABKAdSBWRyaWZ0InEKHk9udUFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIfCgtmYWlsX3JlYXNvbhgDIAEoB1IKZmFpbFJlYXNvbiJrCiFPbnVMb3NzT2ZLZXlTeW5jRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMiVAoSUmRpRXJyb3JJbmRpY2F0aW9uEiYKD3JkaV9lcnJvcl9jb3VudBgBIAEoBlINcmRpRXJyb3JDb3VudBIWCgZzdGF0dXMYAiABKAlSBnN0YXR1cyKWAQoYT251SXR1UG9uU3RhdHNJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEkEKDXJkaV9lcnJvcl9pbmQYAyABKAsyGy5vcGVub2x0LlJkaUVycm9ySW5kaWNhdGlvbkgAUgtyZGlFcnJvckluZEIHCgVzdGF0cyJOChxPbnVQcm9jZXNzaW5nRXJyb3JJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkImoKIE9udURlYWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzImoKGU9udVJlbW90ZURlZmVjdEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHQoKcmRpX2Vycm9ycxgDIAEoBlIJcmRpRXJyb3JzIqEBCihPbnVMb3NzT2ZHRU1DaGFubmVsRGVsaW5lYXRpb25JbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEi0KEmRlbGluZWF0aW9uX2Vycm9ycxgEIAEoB1IRZGVsaW5lYXRpb25FcnJvcnMibQojT251UGh5c2ljYWxFcXVpcG1lbnRFcnJvckluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMibAoiT251TG9zc09mQWNrbm93bGVkZ2VtZW50SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKMAQomT251RGlmZmVyZW50aWFsUmVhY2hFeGNlZWRlZEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSGgoIZGlzdGFuY2UYBCABKAdSCGRpc3RhbmNlIvYBCgtHcm91cE1lbWJlchIhCgxpbnRlcmZhY2VfaWQYASABKA1SC2ludGVyZmFjZUlkEkkKDmludGVyZmFjZV90eXBlGAIgASgOMiIub3Blbm9sdC5Hcm91cE1lbWJlci5JbnRlcmZhY2VUeXBlUg1pbnRlcmZhY2VUeXBlEh4KC2dlbV9wb3J0X2lkGAMgASgNUglnZW1Qb3J0SWQSGgoIcHJpb3JpdHkYBCABKA1SCHByaW9yaXR5Ij0KDUludGVyZmFjZVR5cGUSBwoDUE9OEAASEAoMRVBPTl8xR19QQVRIEAESEQoNRVBPTl8xMEdfUEFUSBACIoYCCgVHcm91cBIZCghncm91cF9pZBgBIAEoDVIHZ3JvdXBJZBI8Cgdjb21tYW5kGAIgASgOMiIub3Blbm9sdC5Hcm91cC5Hcm91cE1lbWJlcnNDb21tYW5kUgdjb21tYW5kEi4KB21lbWJlcnMYAyADKAsyFC5vcGVub2x0Lkdyb3VwTWVtYmVyUgdtZW1iZXJzEicKBmFjdGlvbhgEIAEoCzIPLm9wZW5vbHQuQWN0aW9uUgZhY3Rpb24iSwoTR3JvdXBNZW1iZXJzQ29tbWFuZBIPCgtBRERfTUVNQkVSUxAAEhIKDlJFTU9WRV9NRU1CRVJTEAESDwoLU0VUX01FTUJFUlMQAiJaCgpWYWx1ZVBhcmFtEh4KA29udRgBIAEoCzIMLm9wZW5vbHQuT251UgNvbnUSLAoFdmFsdWUYAiABKA4yFi5jb21tb24uVmFsdWVUeXBlLlR5cGVSBXZhbHVlIsMCCg5Qb25SeFBvd2VyRGF0YRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxJSCgtmYWlsX3JlYXNvbhgEIAEoDjIxLm9wZW5vbHQuUG9uUnhQb3dlckRhdGEuUnNzaU1lYXN1cmVtZW50RmFpbFJlYXNvblIKZmFpbFJlYXNvbhIpChFyeF9wb3dlcl9tZWFuX2RibRgFIAEoAVIOcnhQb3dlck1lYW5EYm0iagoZUnNzaU1lYXN1cmVtZW50RmFpbFJlYXNvbhIUChBGQUlMX1JFQVNPTl9OT05FEAASHAoYRkFJTF9SRUFTT05fTk9fREVMSU1JVEVSEAESGQoVRkFJTF9SRUFTT05fTk9fQUNDRVNTEAIiBwoFRW1wdHkynBQKB09wZW5vbHQSRAoKRGlzYWJsZU9sdBIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IhaC0+STAhAiCy92MS9EaXNhYmxlOgEqEkYKC1JlZW5hYmxlT2x0Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiF4LT5JMCESIML3YxL1JlZW5hYmxlOgEqEkUKC0FjdGl2YXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhiC0+STAhIiDS92MS9FbmFibGVPbnU6ASoSSAoNRGVhY3RpdmF0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIZgtPkkwITIg4vdjEvRGlzYWJsZU9udToBKhJDCglEZWxldGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGILT5JMCEiINL3YxL0RlbGV0ZU9udToBKhJJCgpPbWNpTXNnT3V0EhAub3Blbm9sdC5PbWNpTXNnGg4ub3Blbm9sdC5FbXB0eSIZgtPkkwITIg4vdjEvT21jaU1zZ091dDoBKhJPCgxPbnVQYWNrZXRPdXQSEi5vcGVub2x0Lk9udVBhY2tldBoOLm9wZW5vbHQuRW1wdHkiG4LT5JMCFSIQL3YxL09udVBhY2tldE91dDoBKhJYCg9VcGxpbmtQYWNrZXRPdXQSFS5vcGVub2x0LlVwbGlua1BhY2tldBoOLm9wZW5vbHQuRW1wdHkiHoLT5JMCGCITL3YxL1VwbGlua1BhY2tldE91dDoBKhJACgdGbG93QWRkEg0ub3Blbm9sdC5GbG93Gg4ub3Blbm9sdC5FbXB0eSIWgtPkkwIQIgsvdjEvRmxvd0FkZDoBKhJGCgpGbG93UmVtb3ZlEg0ub3Blbm9sdC5GbG93Gg4ub3Blbm9sdC5FbXB0eSIZgtPkkwITIg4vdjEvRmxvd1JlbW92ZToBKhJTCg5IZWFydGJlYXRDaGVjaxIOLm9wZW5vbHQuRW1wdHkaEi5vcGVub2x0LkhlYXJ0YmVhdCIdgtPkkwIXIhIvdjEvSGVhcnRiZWF0Q2hlY2s6ASoSTQoLRW5hYmxlUG9uSWYSEi5vcGVub2x0LkludGVyZmFjZRoOLm9wZW5vbHQuRW1wdHkiGoLT5JMCFCIPL3YxL0VuYWJsZVBvbklmOgEqEk8KDERpc2FibGVQb25JZhISLm9wZW5vbHQuSW50ZXJmYWNlGg4ub3Blbm9sdC5FbXB0eSIbgtPkkwIVIhAvdjEvRGlzYWJsZVBvbklmOgEqElIKDUdldERldmljZUluZm8SDi5vcGVub2x0LkVtcHR5GhMub3Blbm9sdC5EZXZpY2VJbmZvIhyC0+STAhYiES92MS9HZXREZXZpY2VJbmZvOgEqEj8KBlJlYm9vdBIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IhWC0+STAg8iCi92MS9SZWJvb3Q6ASoSVQoRQ29sbGVjdFN0YXRpc3RpY3MSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIggtPkkwIaIhUvdjEvQ29sbGVjdFN0YXRpc3RpY3M6ASoSWQoQR2V0T251U3RhdGlzdGljcxIMLm9wZW5vbHQuT251GhYub3Blbm9sdC5PbnVTdGF0aXN0aWNzIh+C0+STAhkiFC92MS9HZXRPbnVTdGF0aXN0aWNzOgEqEmsKFEdldEdlbVBvcnRTdGF0aXN0aWNzEhIub3Blbm9sdC5PbnVQYWNrZXQaGi5vcGVub2x0LkdlbVBvcnRTdGF0aXN0aWNzIiOC0+STAh0iGC92MS9HZXRHZW1Qb3J0U3RhdGlzdGljczoBKhJyChdDcmVhdGVUcmFmZmljU2NoZWR1bGVycxIfLnRlY2hfcHJvZmlsZS5UcmFmZmljU2NoZWR1bGVycxoOLm9wZW5vbHQuRW1wdHkiJoLT5JMCICIbL3YxL0NyZWF0ZVRyYWZmaWNTY2hlZHVsZXJzOgEqEnIKF1JlbW92ZVRyYWZmaWNTY2hlZHVsZXJzEh8udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJzGg4ub3Blbm9sdC5FbXB0eSImgtPkkwIgIhsvdjEvUmVtb3ZlVHJhZmZpY1NjaGVkdWxlcnM6ASoSZgoTQ3JlYXRlVHJhZmZpY1F1ZXVlcxIbLnRlY2hfcHJvZmlsZS5UcmFmZmljUXVldWVzGg4ub3Blbm9sdC5FbXB0eSIigtPkkwIcIhcvdjEvQ3JlYXRlVHJhZmZpY1F1ZXVlczoBKhJmChNSZW1vdmVUcmFmZmljUXVldWVzEhsudGVjaF9wcm9maWxlLlRyYWZmaWNRdWV1ZXMaDi5vcGVub2x0LkVtcHR5IiKC0+STAhwiFy92MS9SZW1vdmVUcmFmZmljUXVldWVzOgEqEjsKEEVuYWJsZUluZGljYXRpb24SDi5vcGVub2x0LkVtcHR5GhMub3Blbm9sdC5JbmRpY2F0aW9uIgAwARJdChVQZXJmb3JtR3JvdXBPcGVyYXRpb24SDi5vcGVub2x0Lkdyb3VwGg4ub3Blbm9sdC5FbXB0eSIkgtPkkwIeIhkvdjEvUGVyZm9ybUdyb3VwT3BlcmF0aW9uOgEqEkkKC0RlbGV0ZUdyb3VwEg4ub3Blbm9sdC5Hcm91cBoOLm9wZW5vbHQuRW1wdHkiGoLT5JMCFCIPL3YxL0RlbGV0ZUdyb3VwOgEqElQKC0dldEV4dFZhbHVlEhMub3Blbm9sdC5WYWx1ZVBhcmFtGhQuY29tbW9uLlJldHVyblZhbHVlcyIagtPkkwIUIg8vdjEvR2V0RXh0VmFsdWU6ASoSXQoRT251SXR1UG9uQWxhcm1TZXQSFi5jb25maWcuT251SXR1UG9uQWxhcm0aDi5vcGVub2x0LkVtcHR5IiCC0+STAhoiFS92MS9PbnVJdHVQb25BbGFybVNldDoBKhJwChlHZXRMb2dpY2FsT251RGlzdGFuY2VaZXJvEgwub3Blbm9sdC5PbnUaGy5vcGVub2x0Lk9udUxvZ2ljYWxEaXN0YW5jZSIogtPkkwIiIh0vdjEvR2V0TG9naWNhbE9udURpc3RhbmNlWmVybzoBKhJoChVHZXRMb2dpY2FsT251RGlzdGFuY2USDC5vcGVub2x0Lk9udRobLm9wZW5vbHQuT251TG9naWNhbERpc3RhbmNlIiSC0+STAh4iGS92MS9HZXRMb2dpY2FsT251RGlzdGFuY2U6ASoSVAoNR2V0UG9uUnhQb3dlchIMLm9wZW5vbHQuT251Ghcub3Blbm9sdC5Qb25SeFBvd2VyRGF0YSIcgtPkkwIWIhEvdjEvR2V0UG9uUnhQb3dlcjoBKkJdChtvcmcub3BlbmNvcmQudm9sdGhhLm9wZW5vbHRCDVZvbHRoYU9wZW5PTFRaL2dpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vcGVub2x0Su73AQoHEgUOAIEGEArRBAoBDBIDDgASMsYEIENvcHlyaWdodCAoYykgMjAxOCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMv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BQQhAgEEEgaDBQSCBRgKDQoFBCECAQUSBIMFBAsKDQoFBCECAQESBIMFDBIKDQoFBCECAQMSBIMFFRYKDAoEBCECAhIEhAUEFgoPCgUEIQICBBIGhAUEgwUXCg0KBQQhAgIFEgSEBQQKCg0KBQQhAgIBEgSEBQsRCg0KBQQhAgIDEgSEBRQVCgwKBAQhAgMSBIUFBCcKDwoFBCECAwQSBoUFBIQFFgoNCgUEIQIDBRIEhQUECwoNCgUEIQIDARIEhQUMIgoNCgUEIQIDAxIEhQUlJgoMCgIEIhIGiAUAjQUBCgsKAwQiARIEiAUIKgoMCgQEIgIAEgSJBQQYCg8KBQQiAgAEEgaJBQSIBSwKDQoFBCICAAUSBIkFBAsKDQoFBCICAAESBIkFDBMKDQoFBCICAAMSBIkFFhcKDAoEBCICARIEigUEFwoPCgUEIgIBBBIGigUEiQUYCg0KBQQiAgEFEgSKBQQLCg0KBQQiAgEBEgSKBQwSCg0KBQQiAgEDEgSKBRUWCgwKBAQiAgISBIsFBBYKDwoFBCICAgQSBosFBIoFFwoNCgUEIgICBRIEiwUECgoNCgUEIgICARIEiwULEQoNCgUEIgICAxIEiwUUFQoMCgQEIgIDEgSMBQQWCg8KBQQiAgMEEgaMBQSLBRYKDQoFBCICAwUSBIwFBAsKDQoFBCICAwESBIwFDBEKDQoFBCICAwMSBIwFFBUKDAoCBCMSBo8FAJMFAQoLCgMEIwESBI8FCCYKDAoEBCMCABIEkAUEGAoPCgUEIwIABBIGkAUEjwUoCg0KBQQjAgAFEgSQBQQLCg0KBQQjAgABEgSQBQwTCg0KBQQjAgADEgSQBRYXCgwKBAQjAgESBJEFBBcKDwoFBCMCAQQSBpEFBJAFGAoNCgUEIwIBBRIEkQUECwoNCgUEIwIBARIEkQUMEgoNCgUEIwIBAxIEkQUVFgoMCgQEIwICEgSSBQQcCg8KBQQjAgIEEgaSBQSRBRcKDQoFBCMCAgUSBJIFBAsKDQoFBCMCAgESBJIFDBcKDQoFBCMCAgMSBJIFGhsKDAoCBCQSBpUFAJkFAQoLCgMEJAESBJUFCCkKDAoEBCQCABIElgUEGAoPCgUEJAIABBIGlgUElQUrCg0KBQQkAgAFEgSWBQQLCg0KBQQkAgABEgSWBQwTCg0KBQQkAgADEgSWBRYX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b2x0aGEaGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhp2b2x0aGFfcHJvdG9zL3ZvbHRoYS5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxogdm9sdGhhX3Byb3Rvcy90ZWNoX3Byb2ZpbGUucHJvdG8aG3ZvbHRoYV9wcm90b3Mvb3Blbm9sdC5wcm90bxobdm9sdGhhX3Byb3Rvcy9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90byJtChNBZGFwdGVyUmVnaXN0cmF0aW9uEikKB2FkYXB0ZXIYASABKAsyDy52b2x0aGEuQWRhcHRlclIHYWRhcHRlchIrCgZkVHlwZXMYAiABKAsyEy52b2x0aGEuRGV2aWNlVHlwZXNSBmRUeXBlcyKSAQoRQ2hpbGREZXZpY2VGaWx0ZXISGwoJcGFyZW50X2lkGAEgASgJUghwYXJlbnRJZBIjCg1zZXJpYWxfbnVtYmVyGAIgASgJUgxzZXJpYWxOdW1iZXISFQoGb251X2lkGAMgASgNUgVvbnVJZBIkCg5wYXJlbnRfcG9ydF9ubxgEIAEoDVIMcGFyZW50UG9ydE5vInEKClBvcnRGaWx0ZXISGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBISCgRwb3J0GAIgASgNUgRwb3J0EjIKCXBvcnRfdHlwZRgDIAEoDjIVLnZvbHRoYS5Qb3J0LlBvcnRUeXBlUghwb3J0VHlwZSL4AQoPRGV2aWNlRGlzY292ZXJ5EhsKCXBhcmVudF9pZBgBIAEoCVIIcGFyZW50SWQSJAoOcGFyZW50X3BvcnRfbm8YAiABKA1SDHBhcmVudFBvcnRObxIqChFjaGlsZF9kZXZpY2VfdHlwZRgDIAEoCVIPY2hpbGREZXZpY2VUeXBlEh0KCmNoYW5uZWxfaWQYBCABKA1SCWNoYW5uZWxJZBIbCgl2ZW5kb3JfaWQYBSABKAlSCHZlbmRvcklkEiMKDXNlcmlhbF9udW1iZXIYBiABKAlSDHNlcmlhbE51bWJlchIVCgZvbnVfaWQYByABKA1SBW9udUlkItMBChFEZXZpY2VTdGF0ZUZpbHRlchIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEigKEHBhcmVudF9kZXZpY2VfaWQYAiABKAlSDnBhcmVudERldmljZUlkEjkKC29wZXJfc3RhdHVzGAMgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNSCm9wZXJTdGF0dXMSPAoLY29ubl9zdGF0dXMYBCABKA4yGy5jb21tb24uQ29ubmVjdFN0YXR1cy5UeXBlc1IKY29ublN0YXR1cyKwAQoJUG9ydFN0YXRlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSMgoJcG9ydF90eXBlGAIgASgOMhUudm9sdGhhLlBvcnQuUG9ydFR5cGVSCHBvcnRUeXBlEhcKB3BvcnRfbm8YAyABKA1SBnBvcnRObxI5CgtvcGVyX3N0YXR1cxgEIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzIpMBCg9Qb3J0U3RhdGVGaWx0ZXISGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIoChBwb3J0X3R5cGVfZmlsdGVyGAIgASgNUg5wb3J0VHlwZUZpbHRlchI5CgtvcGVyX3N0YXR1cxgEIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzIlMKCFBhY2tldEluEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSEgoEcG9ydBgCIAEoDVIEcG9ydBIWCgZwYWNrZXQYAyABKAxSBnBhY2tldCKDAQoJUGFja2V0T3V0EhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSJAoOZWdyZXNzX3BvcnRfbm8YAiABKA1SDGVncmVzc1BvcnRObxIzCgZwYWNrZXQYAyABKAsyGy5vcGVuZmxvd18xMy5vZnBfcGFja2V0X291dFIGcGFja2V0IkMKDERldmljZVJlYXNvbhIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhYKBnJlYXNvbhgCIAEoCVIGcmVhc29uIskBCglCdWxrRmxvd3MSJgoGZGV2aWNlGAEgASgLMg4udm9sdGhhLkRldmljZVIGZGV2aWNlEigKBWZsb3dzGAIgASgLMhIub3BlbmZsb3dfMTMuRmxvd3NSBWZsb3dzEi8KBmdyb3VwcxgDIAEoCzIXLm9wZW5mbG93XzEzLkZsb3dHcm91cHNSBmdyb3VwcxI5Cg1mbG93X21ldGFkYXRhGAQgASgLMhQudm9sdGhhLkZsb3dNZXRhZGF0YVIMZmxvd01ldGFkYXRhItwBChBJbmNyZW1lbnRhbEZsb3dzEiYKBmRldmljZRgBIAEoCzIOLnZvbHRoYS5EZXZpY2VSBmRldmljZRIuCgVmbG93cxgCIAEoCzIYLm9wZW5mbG93XzEzLkZsb3dDaGFuZ2VzUgVmbG93cxI1CgZncm91cHMYAyABKAsyHS5vcGVuZmxvd18xMy5GbG93R3JvdXBDaGFuZ2VzUgZncm91cHMSOQoNZmxvd19tZXRhZGF0YRgEIAEoCzIULnZvbHRoYS5GbG93TWV0YWRhdGFSDGZsb3dNZXRhZGF0YSJeCg1QbUNvbmZpZ3NJbmZvEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSMAoKcG1fY29uZmlncxgCIAEoCzIRLnZvbHRoYS5QbUNvbmZpZ3NSCXBtQ29uZmlncyKIAQoQU3dpdGNoQ2FwYWJpbGl0eRIpCgRkZXNjGAEgASgLMhUub3BlbmZsb3dfMTMub2ZwX2Rlc2NSBGRlc2MSSQoPc3dpdGNoX2ZlYXR1cmVzGAIgASgLMiAub3BlbmZsb3dfMTMub2ZwX3N3aXRjaF9mZWF0dXJlc1IOc3dpdGNoRmVhdHVyZXMiawoUSW1hZ2VEb3dubG9hZE1lc3NhZ2USJgoGZGV2aWNlGAEgASgLMg4udm9sdGhhLkRldmljZVIGZGV2aWNlEisKBWltYWdlGAIgASgLMhUudm9sdGhhLkltYWdlRG93bmxvYWRSBWltYWdlImUKCE9NQ0lUZXN0EiYKBmRldmljZRgBIAEoCzIOLnZvbHRoYS5EZXZpY2VSBmRldmljZRIxCgdyZXF1ZXN0GAIgASgLMhcudm9sdGhhLk9tY2lUZXN0UmVxdWVzdFIHcmVxdWVzdCJ2ChRTaW11bGF0ZUFsYXJtTWVzc2FnZRImCgZkZXZpY2UYASABKAsyDi52b2x0aGEuRGV2aWNlUgZkZXZpY2USNgoHcmVxdWVzdBgCIAEoCzIcLnZvbHRoYS5TaW11bGF0ZUFsYXJtUmVxdWVzdFIHcmVxdWVzdCKzAQoSR2V0RXh0VmFsdWVNZXNzYWdlEjMKDXBhcmVudF9kZXZpY2UYASABKAsyDi52b2x0aGEuRGV2aWNlUgxwYXJlbnREZXZpY2USMQoMY2hpbGRfZGV2aWNlGAIgASgLMg4udm9sdGhhLkRldmljZVILY2hpbGREZXZpY2USNQoKdmFsdWVfdHlwZRgDIAEoDjIWLmNvbW1vbi5WYWx1ZVR5cGUuVHlwZVIJdmFsdWVUeXBlImQKElNldEV4dFZhbHVlTWVzc2FnZRImCgZkZXZpY2UYASABKAsyDi52b2x0aGEuRGV2aWNlUgZkZXZpY2USJgoFdmFsdWUYAyABKAsyEC52b2x0aGEuVmFsdWVTZXRSBXZhbHVlIv8BCgtPbWNpTWVzc2FnZRIYCgdtZXNzYWdlGAEgASgMUgdtZXNzYWdlEkIKDmNvbm5lY3Rfc3RhdHVzGAIgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNSDWNvbm5lY3RTdGF0dXMSQAoNcHJveHlfYWRkcmVzcxgDIAEoCzIbLnZvbHRoYS5EZXZpY2UuUHJveHlBZGRyZXNzUgxwcm94eUFkZHJlc3MSKAoQcGFyZW50X2RldmljZV9pZBgEIAEoCVIOcGFyZW50RGV2aWNlSWQSJgoPY2hpbGRfZGV2aWNlX2lkGAUgASgJUg1jaGlsZERldmljZUlkIqcCChpUZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhUKBnVuaV9pZBgCIAEoDVIFdW5pSWQSKAoQdHBfaW5zdGFuY2VfcGF0aBgDIAEoCVIOdHBJbnN0YW5jZVBhdGgSRAoLdHBfaW5zdGFuY2UYBCABKAsyIS50ZWNoX3Byb2ZpbGUuVGVjaFByb2ZpbGVJbnN0YW5jZUgAUgp0cEluc3RhbmNlElEKEGVwb25fdHBfaW5zdGFuY2UYBSABKAsyJS50ZWNoX3Byb2ZpbGUuRXBvblRlY2hQcm9maWxlSW5zdGFuY2VIAFIOZXBvblRwSW5zdGFuY2VCEgoQdGVjaF90cF9pbnN0YW5jZSKUAQoURGVsZXRlR2VtUG9ydE1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIVCgZ1bmlfaWQYAiABKA1SBXVuaUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAyABKAlSDnRwSW5zdGFuY2VQYXRoEh4KC2dlbV9wb3J0X2lkGAQgASgNUglnZW1Qb3J0SWQijQEKEkRlbGV0ZVRjb250TWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhUKBnVuaV9pZBgCIAEoDVIFdW5pSWQSKAoQdHBfaW5zdGFuY2VfcGF0aBgDIAEoCVIOdHBJbnN0YW5jZVBhdGgSGQoIYWxsb2NfaWQYBCABKA1SB2FsbG9jSWQicgoUT251SW5kaWNhdGlvbk1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBI9Cg5vbnVfaW5kaWNhdGlvbhgCIAEoCzIWLm9wZW5vbHQuT251SW5kaWNhdGlvblINb251SW5kaWNhdGlvbiLqAQohVGVjaFByb2ZpbGVJbnN0YW5jZVJlcXVlc3RNZXNzYWdlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSKAoQdHBfaW5zdGFuY2VfcGF0aBgCIAEoCVIOdHBJbnN0YW5jZVBhdGgSKAoQcGFyZW50X2RldmljZV9pZBgDIAEoCVIOcGFyZW50RGV2aWNlSWQSJgoPcGFyZW50X3Bvbl9wb3J0GAQgASgNUg1wYXJlbnRQb25Qb3J0EhUKBm9udV9pZBgFIAEoDVIFb251SWQSFQoGdW5pX2lkGAYgASgNUgV1bmlJZEJOChNvcmcub3BlbmNvcmQudm9sdGhhWjdnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vaW50ZXJfY29udGFpbmVySvE2CgcSBQAAuQEBCggKAQwSAwAAEgoICgEIEgMCAE4KCQoCCAsSAwIATgoICgEIEgMDACwKCQoCCAESAwMALAoJCgIDABIDBQAkCgkKAgMBEgMGACQKCQoCAwISAwcAKQoJCgIDAxIDCAAqCgkKAgMEEgMJACUKCQoCAwUSAwoAJQoJCgIDBhIDCwAkCggKAQISAw0ADwo2CgIEABIEFAAXARoqCiBDb3JlLUFkYXB0ZXIgbWVzc2FnZXMKICoqKioKICoqKioKICoqKioKCgoKAwQAARIDFAgbCgsKBAQAAgASAxUEGQoNCgUEAAIABBIEFQQUHQoMCgUEAAIABhIDFQQLCgwKBQQA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ZXJhdGlvbmFsU3RhdGVSCW9wZXJTdGF0ZRJPCgljb25maWdJbmQYAyABKA4yMS5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlLkNvbmZpZ3VyYXRpb25JbmRSCWNvbmZpZ0luZCLCAQoQQ29uZmlndXJhdGlvbkluZBIKCgZVTktPV04QABISCg5URU5fQkFTRV9UX0ZEWBABEhYKEkhVTkRSRURfQkFTRV9UX0ZEWBACEhgKFEdJR0FCSVRfRVRIRVJORVRfRkRYEAMSFgoSVEVOX0dfRVRIRVJORVRfRkRYEAQSEgoOVEVOX0JBU0VfVF9IRFgQBRIWChJIVU5EUkVEX0JBU0VfVF9IRFgQBhIYChRHSUdBQklUX0VUSEVSTkVUX0hEWBAHIkcKE0FkbWluaXN0cmF0aXZlU3RhdGUSFgoSQURNU1RBVEVfVU5ERUZJTkVEEAASCgoGTE9DS0VEEAESDAoIVU5MT0NLRUQQAiJGChBPcGVyYXRpb25hbFN0YXRlEhcKE09QRVJTVEFURV9VTkRFRklORUQQABILCgdFTkFCTEVEEAESDAoIRElTQUJMRUQQAiK3AQoSR2V0T2x0UG9ydENvdW50ZXJzEhYKBnBvcnRObxgBIAEoDVIGcG9ydE5vEkIKCHBvcnRUeXBlGAIgASgOMiYuZXh0ZW5zaW9uLkdldE9sdFBvcnRDb3VudGVycy5Qb3J0VHlwZVIIcG9ydFR5cGUiRQoIUG9ydFR5cGUSEAoMUG9ydF9VTktOT1dOEAASFQoRUG9ydF9FVEhFUk5FVF9OTkkQARIQCgxQb3J0X1BPTl9PTFQQAiLMAwoaR2V0T2x0UG9ydENvdW50ZXJzUmVzcG9uc2USGAoHdHhCeXRlcxgBIAEoBFIHdHhCeXRlcxIYCgdyeEJ5dGVzGAIgASgEUgdyeEJ5dGVzEhwKCXR4UGFja2V0cxgDIAEoBFIJdHhQYWNrZXRzEhwKCXJ4UGFja2V0cxgEIAEoBFIJcnhQYWNrZXRzEiYKDnR4RXJyb3JQYWNrZXRzGAUgASgEUg50eEVycm9yUGFja2V0cxImCg5yeEVycm9yUGFja2V0cxgGIAEoBFIOcnhFcnJvclBhY2tldHMSJgoOdHhCY2FzdFBhY2tldHMYByABKARSDnR4QmNhc3RQYWNrZXRzEiYKDnJ4QmNhc3RQYWNrZXRzGAggASgEUg5yeEJjYXN0UGFja2V0cxImCg50eFVjYXN0UGFja2V0cxgJIAEoBFIOdHhVY2FzdFBhY2tldHMSJgoOcnhVY2FzdFBhY2tldHMYCiABKARSDnJ4VWNhc3RQYWNrZXRzEiYKDnR4TWNhc3RQYWNrZXRzGAsgASgEUg50eE1jYXN0UGFja2V0cxImCg5yeE1jYXN0UGFja2V0cxgMIAEoBFIOcnhNY2FzdFBhY2tldHMiRAoUR2V0T251UG9uT3B0aWNhbEluZm8SLAoFZW1wdHkYASABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBWVtcHR5IoQCChxHZXRPbnVQb25PcHRpY2FsSW5mb1Jlc3BvbnNlEioKEHBvd2VyRmVlZFZvbHRhZ2UYASABKAJSEHBvd2VyRmVlZFZvbHRhZ2USMgoUcmVjZWl2ZWRPcHRpY2FsUG93ZXIYAiABKAJSFHJlY2VpdmVkT3B0aWNhbFBvd2VyEjYKFm1lYW5PcHRpY2FsTGF1bmNoUG93ZXIYAyABKAJSFm1lYW5PcHRpY2FsTGF1bmNoUG93ZXISKgoQbGFzZXJCaWFzQ3VycmVudBgEIAEoAlIQbGFzZXJCaWFzQ3VycmVudBIgCgt0ZW1wZXJhdHVyZRgFIAEoAlILdGVtcGVyYXR1cmUirwEKH0dldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnkSUgoJZGlyZWN0aW9uGAEgASgOMjQuZXh0ZW5zaW9uLkdldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnkuRGlyZWN0aW9uUglkaXJlY3Rpb24iOAoJRGlyZWN0aW9uEg0KCVVOREVGSU5FRBAAEgwKCFVQU1RSRUFNEAESDgoKRE9XTlNUUkVBTRACIpMFCidHZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5UmVzcG9uc2USHgoKZHJvcEV2ZW50cxgBIAEoDVIKZHJvcEV2ZW50cxIWCgZvY3RldHMYAiABKA1SBm9jdGV0cxIYCgdwYWNrZXRzGAMgASgNUgdwYWNrZXRzEioKEGJyb2FkY2FzdFBhY2tldHMYBCABKA1SEGJyb2FkY2FzdFBhY2tldHMSKgoQbXVsdGljYXN0UGFja2V0cxgFIAEoDVIQbXVsdGljYXN0UGFja2V0cxIsChFjcmNFcnJvcmVkUGFja2V0cxgGIAEoDVIRY3JjRXJyb3JlZFBhY2tldHMSKgoQdW5kZXJzaXplUGFja2V0cxgHIAEoDVIQdW5kZXJzaXplUGFja2V0cxIoCg9vdmVyc2l6ZVBhY2tldHMYCCABKA1SD292ZXJzaXplUGFja2V0cxIoCg9wYWNrZXRzNjRvY3RldHMYCSABKA1SD3BhY2tldHM2NG9jdGV0cxIyChRwYWNrZXRzNjVUbzEyN29jdGV0cxgKIAEoDVIUcGFja2V0czY1VG8xMjdvY3RldHMSNAoVcGFja2V0czEyOFRvMjU1T2N0ZXRzGAsgASgNUhVwYWNrZXRzMTI4VG8yNTVPY3RldHMSNAoVcGFja2V0czI1NlRvNTExb2N0ZXRzGAwgASgNUhVwYWNrZXRzMjU2VG81MTFvY3RldHMSNgoWcGFja2V0czUxMlRvMTAyM29jdGV0cxgNIAEoDVIWcGFja2V0czUxMlRvMTAyM29jdGV0cxI4ChdwYWNrZXRzMTAyNFRvMTUxOG9jdGV0cxgOIAEoDVIXcGFja2V0czEwMjRUbzE1MThvY3RldHMiQAoQR2V0T251RmVjSGlzdG9yeRIsCgVlbXB0eRgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIFZW1wdHki8gEKGEdldE9udUZlY0hpc3RvcnlSZXNwb25zZRImCg5jb3JyZWN0ZWRCeXRlcxgBIAEoDVIOY29ycmVjdGVkQnl0ZXMSLgoSY29ycmVjdGVkQ29kZVdvcmRzGAIgASgNUhJjb3JyZWN0ZWRDb2RlV29yZHMSHgoKZmVjU2Vjb25kcxgDIAEoDVIKZmVjU2Vjb25kcxImCg50b3RhbENvZGVXb3JkcxgEIAEoDVIOdG90YWxDb2RlV29yZHMSNgoWdW5jb3JyZWN0YWJsZUNvZGVXb3JkcxgFIAEoDVIWdW5jb3JyZWN0YWJsZUNvZGVXb3JkcyJHChVHZXRPbnVDb3VudGVyc1JlcXVlc3QSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQiSQolR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVxdWVzdBIgCgtvbnVEZXZpY2VJZBgBIAEoCVILb251RGV2aWNlSWQiQwoRR2V0UnhQb3dlclJlcXVlc3QSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQi5AwKFkdldE9udUNvdW50ZXJzUmVzcG9uc2USGQoHaW50Zl9pZBgBIAEoB0gAUgZpbnRmSWQSFwoGb251X2lkGAIgASgHSAFSBW9udUlkEicKDnBvc2l0aXZlX2RyaWZ0GAMgASgGSAJSDXBvc2l0aXZlRHJpZnQSJwoObmVnYXRpdmVfZHJpZnQYBCABKAZIA1INbmVnYXRpdmVEcmlmdBI6ChhkZWxpbWl0ZXJfbWlzc19kZXRlY3Rpb24YBSABKAZIBFIWZGVsaW1pdGVyTWlzc0RldGVjdGlvbhIfCgpiaXBfZXJyb3JzGAYgASgGSAVSCWJpcEVycm9ycxIdCgliaXBfdW5pdHMYByABKAZIBlIIYmlwVW5pdHMSNAoVZmVjX2NvcnJlY3RlZF9zeW1ib2xzGAggASgGSAdSE2ZlY0NvcnJlY3RlZFN5bWJvbHMSOAoXZmVjX2NvZGV3b3Jkc19jb3JyZWN0ZWQYCSABKAZICFIVZmVjQ29kZXdvcmRzQ29ycmVjdGVkEkAKG2ZlY19jb2Rld29yZHNfdW5jb3JyZWN0YWJsZRgKIAEoBkgJUhlmZWNDb2Rld29yZHNVbmNvcnJlY3RhYmxlEiUKDWZlY19jb2Rld29yZHMYCyABKAZIClIMZmVjQ29kZXdvcmRzEjAKE2ZlY19jb3JyZWN0ZWRfdW5pdHMYDCABKAZIC1IRZmVjQ29ycmVjdGVkVW5pdHMSKAoPeGdlbV9rZXlfZXJyb3JzGA0gASgGSAxSDXhnZW1LZXlFcnJvcnMSHQoJeGdlbV9sb3NzGA4gASgGSA1SCHhnZW1Mb3NzEigKD3J4X3Bsb2Ftc19lcnJvchgPIAEoBkgOUg1yeFBsb2Ftc0Vycm9yEi0KEnJ4X3Bsb2Ftc19ub25faWRsZRgQIAEoBkgPUg9yeFBsb2Ftc05vbklkbGUSGQoHcnhfb21jaRgRIAEoBkgQUgZyeE9tY2kSGQoHdHhfb21jaRgSIAEoBkgRUgZ0eE9tY2kSOgoZcnhfb21jaV9wYWNrZXRzX2NyY19lcnJvchgTIAEoBkgSUhVyeE9tY2lQYWNrZXRzQ3JjRXJyb3ISGwoIcnhfYnl0ZXMYFCABKAZIE1IHcnhCeXRlcxIfCgpyeF9wYWNrZXRzGBUgASgGSBRSCXJ4UGFja2V0cxIbCgh0eF9ieXRlcxgWIAEoBkgVUgd0eEJ5dGVzEh8KCnR4X3BhY2tldHMYFyABKAZIFlIJdHhQYWNrZXRzEiMKDGJlcl9yZXBvcnRlZBgYIAEoBkgXUgtiZXJSZXBvcnRlZBIhCgtsY2RnX2Vycm9ycxgZIAEoBkgYUgpsY2RnRXJyb3JzEh8KCnJkaV9lcnJvcnMYGiABKAZIGVIJcmRpRXJyb3JzEh4KCXRpbWVzdGFtcBgbIAEoB0gaUgl0aW1lc3RhbXBCDAoKaXNfaW50Zl9pZEILCglpc19vbnVfaWRCEwoRaXNfcG9zaXRpdmVfZHJpZnRCEwoRaXNfbmVnYXRpdmVfZHJpZnRCHQobaXNfZGVsaW1pdGVyX21pc3NfZGV0ZWN0aW9uQg8KDWlzX2JpcF9lcnJvcnNCDgoMaXNfYmlwX3VuaXRzQhoKGGlzX2ZlY19jb3JyZWN0ZWRfc3ltYm9sc0IcChppc19mZWNfY29kZXdvcmRzX2NvcnJlY3RlZEIgCh5pc19mZWNfY29kZXdvcmRzX3VuY29ycmVjdGFibGVCEgoQaXNfZmVjX2NvZGV3b3Jkc0IYChZpc19mZWNfY29ycmVjdGVkX3VuaXRzQhQKEmlzX3hnZW1fa2V5X2Vycm9yc0IOCgxpc194Z2VtX2xvc3NCFAoSaXNfcnhfcGxvYW1zX2Vycm9yQhcKFWlzX3J4X3Bsb2Ftc19ub25faWRsZUIMCgppc19yeF9vbWNpQgwKCmlzX3R4X29tY2lCHgocaXNfcnhfb21jaV9wYWNrZXRzX2NyY19lcnJvckINCgtpc19yeF9ieXRlc0IPCg1pc19yeF9wYWNrZXRzQg0KC2lzX3R4X2J5dGVzQg8KDWlzX3R4X3BhY2tldHNCEQoPaXNfYmVyX3JlcG9ydGVkQhAKDmlzX2xjZGdfZXJyb3JzQg8KDWlzX3JkaV9lcnJvcnNCDgoMaXNfdGltZXN0YW1wIowFChtPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG0SHwoLZHJvcF9ldmVudHMYASABKAZSCmRyb3BFdmVudHMSFgoGb2N0ZXRzGAIgASgGUgZvY3RldHMSFgoGZnJhbWVzGAMgASgGUgZmcmFtZXMSKQoQYnJvYWRjYXN0X2ZyYW1lcxgEIAEoBlIPYnJvYWRjYXN0RnJhbWVzEikKEG11bHRpY2FzdF9mcmFtZXMYBSABKAZSD211bHRpY2FzdEZyYW1lcxIsChJjcmNfZXJyb3JlZF9mcmFtZXMYBiABKAZSEGNyY0Vycm9yZWRGcmFtZXMSKQoQdW5kZXJzaXplX2ZyYW1lcxgHIAEoBlIPdW5kZXJzaXplRnJhbWVzEicKD292ZXJzaXplX2ZyYW1lcxgIIAEoBlIOb3ZlcnNpemVGcmFtZXMSKAoQZnJhbWVzXzY0X29jdGV0cxgJIAEoBlIOZnJhbWVzNjRPY3RldHMSNAoXZnJhbWVzXzY1X3RvXzEyN19vY3RldHMYCiABKAZSE2ZyYW1lczY1VG8xMjdPY3RldHMSNgoYZnJhbWVzXzEyOF90b18yNTVfb2N0ZXRzGAsgASgGUhRmcmFtZXMxMjhUbzI1NU9jdGV0cxI2ChhmcmFtZXNfMjU2X3RvXzUxMV9vY3RldHMYDCABKAZSFGZyYW1lczI1NlRvNTExT2N0ZXRzEjgKGWZyYW1lc181MTJfdG9fMTAyM19vY3RldHMYDSABKAZSFWZyYW1lczUxMlRvMTAyM09jdGV0cxI6ChpmcmFtZXNfMTAyNF90b18xNTE4X29jdGV0cxgOIAEoBlIWZnJhbWVzMTAyNFRvMTUxOE9jdGV0cyK0AQomR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVzcG9uc2USQgoIdXBzdHJlYW0YASABKAsyJi5leHRlbnNpb24uT21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUgh1cHN0cmVhbRJGCgpkb3duc3RyZWFtGAIgASgLMiYuZXh0ZW5zaW9uLk9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVIKZG93bnN0cmVhbSKYAQoSR2V0UnhQb3dlclJlc3BvbnNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEh8KC2ZhaWxfcmVhc29uGAQgASgJUgpmYWlsUmVhc29uEhkKCHJ4X3Bvd2VyGAUgASgBUgdyeFBvd2VyIoMFCg9HZXRWYWx1ZVJlcXVlc3QSOwoIZGlzdGFuY2UYASABKAsyHS5leHRlbnNpb24uR2V0RGlzdGFuY2VSZXF1ZXN0SABSCGRpc3RhbmNlEjsKB3VuaUluZm8YAiABKAsyHy5leHRlbnNpb24uR2V0T251VW5pSW5mb1JlcXVlc3RIAFIHdW5pSW5mbxJBCgtvbHRQb3J0SW5mbxgDIAEoCzIdLmV4dGVuc2lvbi5HZXRPbHRQb3J0Q291bnRlcnNIAFILb2x0UG9ydEluZm8SSQoOb251T3B0aWNhbEluZm8YBCABKAsyHy5leHRlbnNpb24uR2V0T251UG9uT3B0aWNhbEluZm9IAFIOb251T3B0aWNhbEluZm8SUgoNZXRoQnJpZGdlUG9ydBgFIAEoCzIqLmV4dGVuc2lvbi5HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5SABSDWV0aEJyaWRnZVBvcnQSPQoKZmVjSGlzdG9yeRgGIAEoCzIbLmV4dGVuc2lvbi5HZXRPbnVGZWNIaXN0b3J5SABSCmZlY0hpc3RvcnkSQgoKb251UG9uSW5mbxgHIAEoCzIgLmV4dGVuc2lvbi5HZXRPbnVDb3VudGVyc1JlcXVlc3RIAFIKb251UG9uSW5mbxJMCgdvbnVJbmZvGAggASgLMjAuZXh0ZW5zaW9uLkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlcXVlc3RIAFIHb251SW5mbxI4CgdyeFBvd2VyGAkgASgLMhwuZXh0ZW5zaW9uLkdldFJ4UG93ZXJSZXF1ZXN0SABSB3J4UG93ZXJCCQoHcmVxdWVzdCKqCAoQR2V0VmFsdWVSZXNwb25zZRI6CgZzdGF0dXMYASABKA4yIi5leHRlbnNpb24uR2V0VmFsdWVSZXNwb25zZS5TdGF0dXNSBnN0YXR1cxJFCgllcnJSZWFzb24YAiABKA4yJy5leHRlbnNpb24uR2V0VmFsdWVSZXNwb25zZS5FcnJvclJlYXNvblIJZXJyUmVhc29uEjwKCGRpc3RhbmNlGAMgASgLMh4uZXh0ZW5zaW9uLkdldERpc3RhbmNlUmVzcG9uc2VIAFIIZGlzdGFuY2USPAoHdW5pSW5mbxgEIAEoCzIgLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2VIAFIHdW5pSW5mbxJLCgxwb3J0Q291dG5lcnMYBSABKAsyJS5leHRlbnNpb24uR2V0T2x0UG9ydENvdW50ZXJzUmVzcG9uc2VIAFIMcG9ydENvdXRuZXJzElEKDm9udU9wdGljYWxJbmZvGAYgASgLMicuZXh0ZW5zaW9uLkdldE9udVBvbk9wdGljYWxJbmZvUmVzcG9uc2VIAFIOb251T3B0aWNhbEluZm8SYgoRZXRoQnJpZGdlUG9ydEluZm8YByABKAsyMi5leHRlbnNpb24uR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeVJlc3BvbnNlSABSEWV0aEJyaWRnZVBvcnRJbmZvEkUKCmZlY0hpc3RvcnkYCCABKAsyIy5leHRlbnNpb24uR2V0T251RmVjSGlzdG9yeVJlc3BvbnNlSABSCmZlY0hpc3RvcnkSSwoOb251UG9uQ291bnRlcnMYCSABKAsyIS5leHRlbnNpb24uR2V0T251Q291bnRlcnNSZXNwb25zZUgAUg5vbnVQb25Db3VudGVycxJVCgtvbnVDb3VudGVycxgKIAEoCzIxLmV4dGVuc2lvbi5HZXRPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SZXNwb25zZUgAUgtvbnVDb3VudGVycxI5CgdyeFBvd2VyGAsgASgLMh0uZXh0ZW5zaW9uLkdldFJ4UG93ZXJSZXNwb25zZUgAUgdyeFBvd2VyIjEKBlN0YXR1cxIUChBTVEFUVVNfVU5ERUZJTkVEEAASBgoCT0sQARIJCgVFUlJPUhACIq0BCgtFcnJvclJlYXNvbhIUChBSRUFTT05fVU5ERUZJTkVEEAASDwoLVU5TVVBQT1JURUQQARIVChFJTlZBTElEX0RFVklDRV9JRBACEhUKEUlOVkFMSURfUE9SVF9UWVBFEAMSCwoHVElNRU9VVBAEEhQKEElOVkFMSURfUkVRX1RZUEUQBRISCg5JTlRFUk5BTF9FUlJPUhAGEhIKDklOVkFMSURfREVWSUNFEAdCCgoIcmVzcG9uc2UiVgoPU2V0VmFsdWVSZXF1ZXN0EjgKDGFsYXJtX2NvbmZpZxgBIAEoCzITLmNvbmZpZy5BbGFybUNvbmZpZ0gAUgthbGFybUNvbmZpZ0IJCgdyZXF1ZXN0Iv4BChBTZXRWYWx1ZVJlc3BvbnNlEjoKBnN0YXR1cxgBIAEoDjIiLmV4dGVuc2lvbi5TZXRWYWx1ZVJlc3BvbnNlLlN0YXR1c1IGc3RhdHVzEkUKCWVyclJlYXNvbhgCIAEoDjInLmV4dGVuc2lvbi5TZXRWYWx1ZVJlc3BvbnNlLkVycm9yUmVhc29uUgllcnJSZWFzb24iMQoGU3RhdHVzEhQKEFNUQVRVU19VTkRFRklORUQQABIGCgJPSxABEgkKBUVSUk9SEAIiNAoLRXJyb3JSZWFzb24SFAoQUkVBU09OX1VOREVGSU5FRBAAEg8KC1VOU1VQUE9SVEVEEAEiaQoVU2luZ2xlR2V0VmFsdWVSZXF1ZXN0EhoKCHRhcmdldElkGAEgASgJUgh0YXJnZXRJZBI0CgdyZXF1ZXN0GAIgASgLMhouZXh0ZW5zaW9uLkdldFZhbHVlUmVxdWVzdFIHcmVxdWVzdCJRChZTaW5nbGVHZXRWYWx1ZVJlc3BvbnNlEjcKCHJlc3BvbnNlGAEgASgLMhsuZXh0ZW5zaW9uLkdldFZhbHVlUmVzcG9uc2VSCHJlc3BvbnNlImkKFVNpbmdsZVNldFZhbHVlUmVxdWVzdBIaCgh0YXJnZXRJZBgBIAEoCVIIdGFyZ2V0SWQSNAoHcmVxdWVzdBgCIAEoCzIaLmV4dGVuc2lvbi5TZXRWYWx1ZVJlcXVlc3RSB3JlcXVlc3QiUQoWU2luZ2xlU2V0VmFsdWVSZXNwb25zZRI3CghyZXNwb25zZRgBIAEoCzIbLmV4dGVuc2lvbi5TZXRWYWx1ZVJlc3BvbnNlUghyZXNwb25zZTKzAQoJRXh0ZW5zaW9uElIKC0dldEV4dFZhbHVlEiAuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVxdWVzdBohLmV4dGVuc2lvbi5TaW5nbGVHZXRWYWx1ZVJlc3BvbnNlElIKC1NldEV4dFZhbHVlEiAuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVxdWVzdBohLmV4dGVuc2lvbi5TaW5nbGVTZXRWYWx1ZVJlc3BvbnNlQlIKHW9yZy5vcGVuY29yZC52b2x0aGEuZXh0ZW5zaW9uWjFnaXRodWIuY29tL29w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eRoULnZvbHRoYS5IZWFsdGhTdGF0dXMSNQoLQWRvcHREZXZpY2USDi52b2x0aGEuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjkKD1JlY29uY2lsZURldmljZRIOLnZvbHRoYS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSNgoMRGVsZXRlRGV2aWNlEg4udm9sdGhhLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI3Cg1EaXNhYmxlRGV2aWNlEg4udm9sdGhhLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI4Cg5SZUVuYWJsZURldmljZRIOLnZvbHRoYS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSNgoMUmVib290RGV2aWNlEg4udm9sdGhhLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI4Cg5TZWxmVGVzdERldmljZRIOLnZvbHRoYS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSPAoQR2V0T2ZwRGV2aWNlSW5mbxIOLnZvbHRoYS5EZXZpY2UaGC52b2x0aGEuU3dpdGNoQ2FwYWJpbGl0eRI5Cg9DaGlsZERldmljZUxvc3QSDi52b2x0aGEuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjIKCkVuYWJsZVBvcnQSDC52b2x0aGEuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRIzCgtEaXNhYmxlUG9ydBIMLnZvbHRoYS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjwKD1VwZGF0ZUZsb3dzQnVsaxIRLnZvbHRoYS5CdWxrRmxvd3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSTAoYVXBkYXRlRmxvd3NJbmNyZW1lbnRhbGx5Ehgudm9sdGhhLkluY3JlbWVudGFsRmxvd3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOgoNU2VuZFBhY2tldE91dBIRLnZvbHRoYS5QYWNrZXRPdXQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSPwoOVXBkYXRlUG1Db25maWcSFS52b2x0aGEuUG1Db25maWdzSW5mbxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJTChBEb3dubG9hZE9udUltYWdlEiIudm9sdGhhLkRldmljZUltYWdlRG93bmxvYWRSZXF1ZXN0Ghsudm9sdGhhLkRldmljZUltYWdlUmVzcG9uc2USTAoRR2V0T251SW1hZ2VTdGF0dXMSGi52b2x0aGEuRGV2aWNlSW1hZ2VSZXF1ZXN0Ghsudm9sdGhhLkRldmljZUltYWdlUmVzcG9uc2USTwoUQWJvcnRPbnVJbWFnZVVwZ3JhZGUSGi52b2x0aGEuRGV2aWNlSW1hZ2VSZXF1ZXN0Ghsudm9sdGhhLkRldmljZUltYWdlUmVzcG9uc2USLQoMR2V0T251SW1hZ2VzEgouY29tbW9uLklEGhEudm9sdGhhLk9udUltYWdlcxJLChBBY3RpdmF0ZU9udUltYWdlEhoudm9sdGhhLkRldmljZUltYWdlUmVxdWVzdBobLnZvbHRoYS5EZXZpY2VJbWFnZVJlc3BvbnNlEkkKDkNvbW1pdE9udUltYWdlEhoudm9sdGhhLkRldmljZUltYWdlUmVxdWVzdBobLnZvbHRoYS5EZXZpY2VJbWFnZVJlc3BvbnNlEkQKDURvd25sb2FkSW1hZ2USHC52b2x0aGEuSW1hZ2VEb3dubG9hZE1lc3NhZ2UaFS52b2x0aGEuSW1hZ2VEb3dubG9hZBJNChZHZXRJbWFnZURvd25sb2FkU3RhdHVzEhwudm9sdGhhLkltYWdlRG93bmxvYWRNZXNzYWdlGhUudm9sdGhhLkltYWdlRG93bmxvYWQSSgoTQ2FuY2VsSW1hZ2VEb3dubG9hZBIcLnZvbHRoYS5JbWFnZURvd25sb2FkTWVzc2FnZRoVLnZvbHRoYS5JbWFnZURvd25sb2FkEkoKE0FjdGl2YXRlSW1hZ2VVcGRhdGUSHC52b2x0aGEuSW1hZ2VEb3dubG9hZE1lc3NhZ2UaFS52b2x0aGEuSW1hZ2VEb3dubG9hZBJIChFSZXZlcnRJbWFnZVVwZGF0ZRIcLnZvbHRoYS5JbWFnZURvd25sb2FkTWVzc2FnZRoVLnZvbHRoYS5JbWFnZURvd25sb2FkEjcKDVN0YXJ0T21jaVRlc3QSEC52b2x0aGEuT01DSVRlc3QaFC52b2x0aGEuVGVzdFJlc3BvbnNlEkQKDVNpbXVsYXRlQWxhcm0SHC52b2x0aGEuU2ltdWxhdGVBbGFybU1lc3NhZ2UaFS5jb21tb24uT3BlcmF0aW9uUmVzcBI8Cg1TdXBwcmVzc0V2ZW50EhMudm9sdGhhLkV2ZW50RmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ej4KD1VuU3VwcHJlc3NFdmVudBITLnZvbHRoYS5FdmVudEZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI/CgtHZXRFeHRWYWx1ZRIaLnZvbHRoYS5HZXRFeHRWYWx1ZU1lc3NhZ2UaFC5jb21tb24uUmV0dXJuVmFsdWVzEkEKC1NldEV4dFZhbHVlEhoudm9sdGhhLlNldEV4dFZhbHVlTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJVCg5HZXRTaW5nbGVWYWx1ZRIgLmV4dGVuc2lvbi5TaW5nbGVHZXRWYWx1ZVJlcXVlc3QaIS5leHRlbnNpb24uU2luZ2xlR2V0VmFsdWVSZXNwb25zZRJVCg5TZXRTaW5nbGVWYWx1ZRIgLmV4dGVuc2lvbi5TaW5nbGVTZXRWYWx1ZVJlcXVlc3QaIS5leHRlbnNpb24uU2luZ2xlU2V0VmFsdWVSZXNwb25zZTK8AwoWT251SW50ZXJBZGFwdGVyU2VydmljZRI/Cg9HZXRIZWFsdGhTdGF0dXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFC52b2x0aGEuSGVhbHRoU3RhdHVzEkUKDU9udUluZGljYXRpb24SHC52b2x0aGEuT251SW5kaWNhdGlvbk1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSPQoOT21jaUluZGljYXRpb24SEy52b2x0aGEuT21jaU1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSUQoTRG93bmxvYWRUZWNoUHJvZmlsZRIiLnZvbHRoYS5UZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJFCg1EZWxldGVHZW1Qb3J0Ehwudm9sdGhhLkRlbGV0ZUdlbVBvcnRNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkEKC0RlbGV0ZVRDb250Ehoudm9sdGhhLkRlbGV0ZVRjb250TWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eTKDAgoWT2x0SW50ZXJBZGFwdGVyU2VydmljZRI/Cg9HZXRIZWFsdGhTdGF0dXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFC52b2x0aGEuSGVhbHRoU3RhdHVzEj8KEFByb3h5T21jaVJlcXVlc3QSEy52b2x0aGEuT21jaU1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSZwoWR2V0VGVjaFByb2ZpbGVJbnN0YW5jZRIpLnZvbHRoYS5UZWNoUHJvZmlsZUluc3RhbmNlUmVxdWVzdE1lc3NhZ2UaIi52b2x0aGEuVGVjaFByb2ZpbGVEb3dubG9hZE1lc3NhZ2VCcAodb3JnLm9wZW5jb3JkLmFkYXB0ZXJfc2VydmljZXNCFVZvbHRoYUFkYXB0ZXJTZXJ2aWNlc1o4Z2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL2FkYXB0ZXJfc2VydmljZXNKtRkKBhIEAABiAQoICgEMEgMAABIKCAoBCBIDAgBPCgkKAggLEgMCAE8KCAoBCBIDAwA2CgkKAggBEgMDADYKCAoBCBIDBAA2CgkKAggIEgMEADYKCAoBAhIDBgAPCgkKAgMAEgMIACUKCQoCAwESAwkAJQoJCgIDAhIDCgAuCgkKAgMDEgMLACQKCQoCAwQSAwwAKAoJCgIDBRIDDQAlCgkKAgMGEgMOACQKCQoCAwcSAw8AJAovCgIGABIEEgBMARojIFNlcnZpY2Ugd2FpdGluZyBmb3IgQ29yZSByZXF1ZXN0cwoKCgoDBgABEgMSCBYKkQEKBAYAAgASAxUERhqDASBHZXRIZWFsdGhTdGF0dXMgaXMgdXNlZCBieSBhbiBBZGFwdGVyU2VydmljZSBjbGllbnQgdG8gdmVyaWZ5IGNvbm5lY3Rpdml0eQogdG8gdGhlIGdSUEMgc2VydmVyIGhvc3RpbmcgdGhlIEFkYXB0ZXJTZXJ2aWNlIHNlcnZpY2UKCgwKBQYAAgABEgMVCBcKDAoFBgACAAISAxUYLQoMCgUGAAIAAxIDFThEChUKBAYAAgESAxgEOxoIIERldmljZQoKDAoFBgACAQESAxgIEwoMCgUGAAIBAhIDGBQaCgwK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CgwKBQYCAgEDEgNgL0QKCwoEBgICAhIDYQRnCgwKBQYCAgIBEgNhCB4KDAoFBgICAgISA2EfQAoMCgUGAgICAxIDYUtlYgZwcm90bzMKgCMKGHZvbHRoYV9wcm90b3MvY29yZS5wcm90bxIGdm9sdGhhGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aI3ZvbHRoYV9wcm90b3MvaW50ZXJfY29udGFpbmVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8aGnZvbHRoYV9wcm90b3MvaGVhbHRoLnByb3RvIoECChREZXZpY2VUcmFuc2llbnRTdGF0ZRJLCg90cmFuc2llbnRfc3RhdGUYASABKA4yIi52b2x0aGEuRGV2aWNlVHJhbnNpZW50U3RhdGUuVHlwZXNSDnRyYW5zaWVudFN0YXRlIpsBCgVUeXBlcxIICgROT05FEAASBwoDQU5ZEAESEgoORk9SQ0VfREVMRVRJTkcQAhIZChVERUxFVElOR19GUk9NX0FEQVBURVIQAxIiCh5ERUxFVElOR19QT1NUX0FEQVBURVJfUkVTUE9OU0UQBBIRCg1ERUxFVEVfRkFJTEVEEAUSGQoVUkVDT05DSUxFX0lOX1BST0dSRVNTEAYyuwsKC0NvcmVTZXJ2aWNlEj8KD0dldEhlYWx0aFN0YXR1cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoULnZvbHRoYS5IZWFsdGhTdGF0dXMSRgoPUmVnaXN0ZXJBZGFwdGVyEhsudm9sdGhhLkFkYXB0ZXJSZWdpc3RyYXRpb24aFi5nb29nbGUucHJvdG9idWYuRW1wdHkSNgoMRGV2aWNlVXBkYXRlEg4udm9sdGhhLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRIzCgtQb3J0Q3JlYXRlZBIMLnZvbHRoYS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkMKEFBvcnRzU3RhdGVVcGRhdGUSFy52b2x0aGEuUG9ydFN0YXRlRmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjQKDkRlbGV0ZUFsbFBvcnRzEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjEKDUdldERldmljZVBvcnQSEi52b2x0aGEuUG9ydEZpbHRlchoMLnZvbHRoYS5Qb3J0EiwKD0xpc3REZXZpY2VQb3J0cxIKLmNvbW1vbi5JRBoNLnZvbHRoYS5Qb3J0cxJGChFEZXZpY2VTdGF0ZVVwZGF0ZRIZLnZvbHRoYS5EZXZpY2VTdGF0ZUZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJBChREZXZpY2VQTUNvbmZpZ1VwZGF0ZRIRLnZvbHRoYS5QbUNvbmZpZ3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSPgoTQ2hpbGREZXZpY2VEZXRlY3RlZBIXLnZvbHRoYS5EZXZpY2VEaXNjb3ZlcnkaDi52b2x0aGEuRGV2aWNlEjYKEENoaWxkRGV2aWNlc0xvc3QSCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOgoUQ2hpbGREZXZpY2VzRGV0ZWN0ZWQSCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSJwoJR2V0RGV2aWNlEgouY29tbW9uLklEGg4udm9sdGhhLkRldmljZRI7Cg5HZXRDaGlsZERldmljZRIZLnZvbHRoYS5DaGlsZERldmljZUZpbHRlchoOLnZvbHRoYS5EZXZpY2USLgoPR2V0Q2hpbGREZXZpY2VzEgouY29tbW9uLklEGg8udm9sdGhhLkRldmljZXMSOAoMU2VuZFBhY2tldEluEhAudm9sdGhhLlBhY2tldEluGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkIKEkRldmljZVJlYXNvblVwZGF0ZRIULnZvbHRoYS5EZXZpY2VSZWFzb24aFi5nb29nbGUucHJvdG9idWYuRW1wdHkSPAoPUG9ydFN0YXRlVXBkYXRlEhEudm9sdGhhLlBvcnRTdGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI7ChVSZWNvbmNpbGVDaGlsZERldmljZXMSCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSTQoeR2V0Q2hpbGREZXZpY2VXaXRoUHJveHlBZGRyZXNzEhsudm9sdGhhLkRldmljZS5Qcm94eUFkZHJlc3MaDi52b2x0aGEuRGV2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BAYAAhcSAz4IUAoMCgUGAAIXARIDPgwfCgwKBQYAAhcCEgM+IS4KDAoFBgACFwMSAz45TmIGcHJvdG8zCvIvCh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiOwoJVGltZXN0YW1wEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQn4KE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaK2dpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3B0eXBlcy90aW1lc3RhbXD4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK+C0KBxIFHgCIAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAB8KCQoCCB8SAyMAHwoICgEIEgMkAEIKCQoCCAsSAyQAQgoICgEIEgMlACwKCQoCCAESAyUALAoICgEIEgMmAC8KCQoCCAgSAyYALwoICgEIEgMnACIKCQoCCAoSAycAIgoICgEIEgMoACEKCQoCCCQSAygAIQrxGwoCBAASBXwAiAEBGuMbIEEgVGltZXN0YW1wIHJlcHJlc2VudHMgYSBwb2ludCBpbiB0aW1lIGluZGVwZW5kZW50IG9mIGFueSB0aW1lIHpvbmUgb3IgbG9jYWwKIGNhbGVuZGFyLCBlbmNvZGVkIGFzIGEgY291bnQgb2Ygc2Vjb25kcyBhbmQgZnJhY3Rpb25zIG9mIHNlY29uZHMgYXQKIG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gVGhlIGNvdW50IGlzIHJlbGF0aXZlIHRvIGFuIGVwb2NoIGF0IFVUQyBtaWRuaWdodCBvbgogSmFudWFyeSAxLCAxOTcwLCBpbiB0aGUgcHJvbGVwdGljIEdyZWdvcmlhbiBjYWxlbmRhciB3aGljaCBleHRlbmRzIHRoZQogR3JlZ29yaWFuIGNhbGVuZGFyIGJhY2t3YXJkcyB0byB5ZWFyIG9uZS4KCiBBbGwgbWludXRlcyBhcmUgNjAgc2Vjb25kcyBsb25nLiBMZWFwIHNlY29uZHMgYXJlICJzbWVhcmVkIiBzbyB0aGF0IG5vIGxlYXAKIHNlY29uZCB0YWJsZSBpcyBuZWVkZWQgZm9yIGludGVycHJldGF0aW9uLCB1c2luZyBhIFsyNC1ob3VyIGxpbmVhcgogc21lYXJdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3RpbWUvc21lYXIpLgoKIFRoZSByYW5nZSBpcyBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvIDk5OTktMTItMzFUMjM6NTk6NTkuOTk5OTk5OTk5Wi4gQnkKIHJlc3RyaWN0aW5nIHRvIHRoYXQgcmFuZ2UsIHdlIGVuc3VyZSB0aGF0IHdlIGNhbiBjb252ZXJ0IHRvIGFuZCBmcm9tIFtSRkMKIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZGF0ZSBzdHJpbmdzLgoKICMgRXhhbXBsZXMKCiBFeGFtcGxlIDE6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYHRpbWUoKWAuCgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHRpbWUoTlVMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoMCk7CgogRXhhbXBsZSAyOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGBnZXR0aW1lb2ZkYXkoKWAuCgogICAgIHN0cnVjdCB0aW1ldmFsIHR2OwogICAgIGdldHRpbWVvZmRheSgmdHYsIE5VTEwpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0di50dl9zZWMpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3ModHYudHZfdXNlYyAqIDEwMDApOwoKIEV4YW1wbGUgMzogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBXaW4zMiBgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoKWAuCgogICAgIEZJTEVUSU1FIGZ0OwogICAgIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCZmdCk7CiAgICAgVUlOVDY0IHRpY2tzID0gKCgoVUlOVDY0KWZ0LmR3SGlnaERhdGVUaW1lKSA8PCAzMikgfCBmdC5kd0xvd0RhdGVUaW1lOwoKICAgICAvLyBBIFdpbmRvd3MgdGljayBpcyAxMDAgbmFub3NlY29uZHMuIFdpbmRvd3MgZXBvY2ggMTYwMS0wMS0wMVQwMDowMDowMFoKICAgICAvLyBpcyAxMTY0NDQ3MzYwMCBzZWNvbmRzIGJlZm9yZSBVbml4IGVwb2NoIDE5NzAtMDEtMDFUMDA6MDA6MDBaLgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKChJTlQ2NCkgKCh0aWNrcyAvIDEwMDAwMDAwKSAtIDExNjQ0NDczNjAwTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKChJTlQzMikgKCh0aWNrcyAlIDEwMDAwMDAwKSAqIDEwMCkpOwoKIEV4YW1wbGUgNDogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBKYXZhIGBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKWAuCgogICAgIGxvbmcgbWlsbGlzID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXAgPSBUaW1lc3RhbXAubmV3QnVpbGRlcigpLnNldFNlY29uZHMobWlsbGlzIC8gMTAwMCkKICAgICAgICAgLnNldE5hbm9zKChpbnQpICgobWlsbGlzICUgMTAwMCkgKiAxMDAwMDAwKSkuYnVpbGQoKTsKCgogRXhhbXBsZSA1OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIGN1cnJlbnQgdGltZSBpbiBQeXRob24uCgogICAgIHRpbWVzdGFtcCA9IFRpbWVzdGFtcCgpCiAgICAgdGltZXN0YW1wLkdldEN1cnJlbnRUaW1lKCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgVGltZXN0YW1wIHR5cGUgaXMgZW5jb2RlZCBhcyBhIHN0cmluZyBpbiB0aGUKIFtSRkMgMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBmb3JtYXQuIFRoYXQgaXMsIHRoZQogZm9ybWF0IGlzICJ7eWVhcn0te21vbnRofS17ZGF5fVR7aG91cn06e21pbn06e3NlY31bLntmcmFjX3NlY31dWiIKIHdoZXJlIHt5ZWFyfSBpcyBhbHdheXMgZXhwcmVzc2VkIHVzaW5nIGZvdXIgZGlnaXRzIHdoaWxlIHttb250aH0sIHtkYXl9LAoge2hvdXJ9LCB7bWlufSwgYW5kIHtzZWN9IGFyZSB6ZXJvLXBhZGRlZCB0byB0d28gZGlnaXRzIGVhY2guIFRoZSBmcmFjdGlvbmFsCiBzZWNvbmRzLCB3aGljaCBjYW4gZ28gdXAgdG8gOSBkaWdpdHMgKGkuZS4gdXAgdG8gMSBuYW5vc2Vjb25kIHJlc29sdXRpb24pLAogYXJlIG9wdGlvbmFsLiBUaGUgIloiIHN1ZmZpeCBpbmRpY2F0ZXMgdGhlIHRpbWV6b25lICgiVVRDIik7IHRoZSB0aW1lem9uZQogaXMgcmVxdWlyZWQuIEEgcHJvdG8zIEpTT04gc2VyaWFsaXplciBzaG91bGQgYWx3YXlzIHVzZSBVVEMgKGFzIGluZGljYXRlZCBieQogIloiKSB3aGVuIHByaW50aW5nIHRoZSBUaW1lc3RhbXAgdHlwZSBhbmQgYSBwcm90bzMgSlNPTiBwYXJzZXIgc2hvdWxkIGJlCiBhYmxlIHRvIGFjY2VwdCBib3RoIFVUQyBhbmQgb3RoZXIgdGltZXpvbmVzIChhcyBpbmRpY2F0ZWQgYnkgYW4gb2Zmc2V0KS4KCiBGb3IgZXhhbXBsZSwgIjIwMTctMDEtMTVUMDE6MzA6MTUuMDFaIiBlbmNvZGVzIDE1LjAxIHNlY29uZHMgcGFzdAogMDE6MzAgVVRDIG9uIEphbnVhcnkgMTUsIDIwMTcuCgogSW4gSmF2YVNjcmlwdCwgb25lIGNhbiBjb252ZXJ0IGEgRGF0ZSBvYmplY3QgdG8gdGhpcyBmb3JtYXQgdXNpbmcgdGhlCiBzdGFuZGFyZCBbdG9JU09TdHJpbmcoKV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS90b0lTT1N0cmluZykKIG1ldGhvZC4gSW4gUHl0aG9uLCBhIHN0YW5kYXJkIGBkYXRldGltZS5kYXRldGltZWAgb2JqZWN0IGNhbiBiZSBjb252ZXJ0ZWQKIHRvIHRoaXMgZm9ybWF0IHVzaW5nIFtgc3RyZnRpbWVgXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvdGltZS5odG1sI3RpbWUuc3RyZnRpbWUpCiB3aXRoIHRoZSB0aW1lIGZvcm1hdCBzcGVjICclWS0lbS0lZFQlSDolTTolUy4lZlonLiBMaWtld2lzZSwgaW4gSmF2YSwgb25lCiBjYW4gdXNlIHRoZSBKb2RhIFRpbWUncyBbYElTT0RhdGVUaW1lRm9ybWF0LmRhdGVUaW1lKClgXSgKIGh0dHA6Ly93d3cuam9kYS5vcmcvam9kYS10aW1lL2FwaWRvY3Mvb3JnL2pvZGEvdGltZS9mb3JtYXQvSVNPRGF0ZVRpbWVGb3JtYXQuaHRtbCNkYXRlVGltZSUyRCUyRAogKSB0byBvYnRhaW4gYSBmb3JtYXR0ZXIgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgaW4gdGhpcyBmb3JtYXQuCgoKCgoKAwQAARIDfAgRCp0BCgQEAAIAEgSBAQIUGo4BIFJlcHJlc2VudHMgc2Vjb25kcyBvZiBVVEMgdGltZSBzaW5jZSBVbml4IGVwb2NoCiAxOTcwLTAxLTAxVDAwOjAwOjAwWi4gTXVzdCBiZSBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvCiA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmUuCgoOCgUEAAIABBIFgQECfBMKDQoFBAACAAUSBIEBAgcKDQoFBAACAAESBIEBCA8KDQoFBAACAAMSBIEBEhMK5QEKBAQAAgESBIcBAhIa1gEgTm9uLW5lZ2F0aXZlIGZyYWN0aW9ucyBvZiBhIHNlY29uZCBhdCBuYW5vc2Vjb25kIHJlc29sdXRpb24uIE5lZ2F0aXZlCiBzZWNvbmQgdmFsdWVzIHdpdGggZnJhY3Rpb25zIG11c3Qgc3RpbGwgaGF2ZSBub24tbmVnYXRpdmUgbmFub3MgdmFsdWVzCiB0aGF0IGNvdW50IGZvcndhcmQgaW4gdGltZS4gTXVzdCBiZSBmcm9tIDAgdG8gOTk5LDk5OSw5OTkKIGluY2x1c2l2ZS4KCg8KBQQAAgEEEgaHAQKBARQKDQoFBAACAQUSBIcBAgcKDQoFBAACAQESBIcBCA0KDQoFBAACAQMSBIcBEBFiBnByb3RvMwqEXQoadm9sdGhhX3Byb3Rvcy9ldmVudHMucHJvdG8SBnZvbHRoYRoYdm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90byI7Cg9Db25maWdFdmVudFR5cGUiKAoFVHlwZXMSBwoDYWRkEAASCgoGcmVtb3ZlEAESCgoGdXBkYXRlEAIiaAoLQ29uZmlnRXZlbnQSMQoEdHlwZRgBIAEoDjIdLnZvbHRoYS5Db25maWdFdmVudFR5cGUuVHlwZXNSBHR5cGUSEgoEaGFzaBgCIAEoCVIEaGFzaBISCgRkYXRhGAMgASgJUgRkYXRhIioKDEtwaUV2ZW50VHlwZSIaCgVUeXBlcxIJCgVzbGljZRAAEgYKAnRzEAEiqwIKDk1ldHJpY01ldGFEYXRhEhQKBXRpdGxlGAEgASgJUgV0aXRsZRIOCgJ0cxgCIAEoAVICdHMSKgoRbG9naWNhbF9kZXZpY2VfaWQYAyABKAlSD2xvZ2ljYWxEZXZpY2VJZBIbCglzZXJpYWxfbm8YBCABKAlSCHNlcmlhbE5vEhsKCWRldmljZV9pZBgFIAEoCVIIZGV2aWNlSWQSPQoHY29udGV4dBgGIAMoCzIjLnZvbHRoYS5NZXRyaWNNZXRhRGF0YS5Db250ZXh0RW50cnlSB2NvbnRleHQSEgoEdXVpZBgHIAEoCVIEdXVpZBo6CgxDb250ZXh0RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASKPAQoQTWV0cmljVmFsdWVQYWlycxI/CgdtZXRyaWNzGAEgAygLMiUudm9sdGhhLk1ldHJpY1ZhbHVlUGFpcnMuTWV0cmljc0VudHJ5UgdtZXRyaWNzGjoKDE1ldHJpY3NFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBIsUBChFNZXRyaWNJbmZvcm1hdGlvbhIyCghtZXRhZGF0YRgBIAEoCzIWLnZvbHRoYS5NZXRyaWNNZXRhRGF0YVIIbWV0YWRhdGESQAoHbWV0cmljcxgCIAMoCzImLnZvbHRoYS5NZXRyaWNJbmZvcm1hdGlvbi5NZXRyaWNzRW50cnlSB21ldHJpY3MaOgoMTWV0cmljc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEi3QEKCEtwaUV2ZW50Ei4KBHR5cGUYASABKA4yGi52b2x0aGEuS3BpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEg4KAnRzGAIgASgCUgJ0cxI6CghwcmVmaXhlcxgDIAMoCzIeLnZvbHRoYS5LcGlFdmVudC5QcmVmaXhlc0VudHJ5UghwcmVmaXhlcxpVCg1QcmVmaXhlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5Ei4KBXZhbHVlGAIgASgLMhgudm9sdGhhLk1ldHJpY1ZhbHVlUGFpcnNSBXZhbHVlOgI4ASKFAQoJS3BpRXZlbnQyEi4KBHR5cGUYASABKA4yGi52b2x0aGEuS3BpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEg4KAnRzGAIgASgBUgJ0cxI4CgpzbGljZV9kYXRhGAMgAygLMhkudm9sdGhhLk1ldHJpY0luZm9ybWF0aW9uUglzbGljZURhdGEi9AEKC0RldmljZUV2ZW50Eh8KC3Jlc291cmNlX2lkGAEgASgJUgpyZXNvdXJjZUlkEioKEWRldmljZV9ldmVudF9uYW1lGAIgASgJUg9kZXZpY2VFdmVudE5hbWUSIAoLZGVzY3JpcHRpb24YAyABKAlSC2Rlc2NyaXB0aW9uEjoKB2NvbnRleHQYBCADKAsyIC52b2x0aGEuRGV2aWNlRXZlbnQuQ29udGV4dEVudHJ5Ugdjb250ZXh0GjoKDENvbnRleHRFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBItsCCghSUENFdmVudBIQCgNycGMYASABKAlSA3JwYxIhCgxvcGVyYXRpb25faWQYAiABKAlSC29wZXJhdGlvbklkEhgKB3NlcnZpY2UYAyABKAlSB3NlcnZpY2USGQoIc3RhY2tfaWQYBCABKAlSB3N0YWNrSWQSHwoLcmVzb3VyY2VfaWQYBSABKAlSCnJlc291cmNlSWQSIAoLZGVzY3JpcHRpb24YBiABKAlSC2Rlc2NyaXB0aW9uEjcKB2NvbnRleHQYByADKAsyHS52b2x0aGEuUlBDRXZlbnQuQ29udGV4dEVudHJ5Ugdjb250ZXh0Ei0KBnN0YXR1cxgIIAEoCzIVLmNvbW1vbi5PcGVyYXRpb25SZXNwUgZzdGF0dXMaOgoMQ29udGV4dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEidgoNRXZlbnRDYXRlZ29yeSJlCgVUeXBlcxIRCg1DT01NVU5JQ0FUSU9OEAASDwoLRU5WSVJPTk1FTlQQARINCglFUVVJUE1FTlQQAhILCgdTRVJWSUNFEAMSDgoKUFJPQ0VTU0lORxAEEgwKCFNFQ1VSSVRZEAUiUgoQRXZlbnRTdWJDYXRlZ29yeSI+CgVUeXBlcxIHCgNQT04QABIHCgNPTFQQARIHCgNPTlQQAhIHCgNPTlUQAxIHCgNOTkkQBBIICgROT05FEAUiZgoJRXZlbnRUeXBlIlkKBVR5cGVzEhAKDENPTkZJR19FVkVOVBAAEg0KCUtQSV9FVkVOVBABEg4KCktQSV9FVkVOVDIQAhIQCgxERVZJQ0VfRVZFTlQQAxINCglSUENfRVZFTlQQBCLfAgoLRXZlbnRIZWFkZXISDgoCaWQYASABKAlSAmlkEjcKCGNhdGVnb3J5GAIgASgOMhsudm9sdGhhLkV2ZW50Q2F0ZWdvcnkuVHlwZXNSCGNhdGVnb3J5EkEKDHN1Yl9jYXRlZ29yeRgDIAEoDjIeLnZvbHRoYS5FdmVudFN1YkNhdGVnb3J5LlR5cGVzUgtzdWJDYXRlZ29yeRIrCgR0eXBlGAQgASgOMhcudm9sdGhhLkV2ZW50VHlwZS5UeXBlc1IEdHlwZRIhCgx0eXBlX3ZlcnNpb24YBSABKAlSC3R5cGVWZXJzaW9uEjcKCXJhaXNlZF90cxgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSCHJhaXNlZFRzEjsKC3JlcG9ydGVkX3RzGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIKcmVwb3J0ZWRUcyLMAgoFRXZlbnQSKwoGaGVhZGVyGAEgASgLMhMudm9sdGhhLkV2ZW50SGVhZGVyUgZoZWFkZXISOAoMY29uZmlnX2V2ZW50GAIgASgLMhMudm9sdGhhLkNvbmZpZ0V2ZW50SABSC2NvbmZpZ0V2ZW50Ei8KCWtwaV9ldmVudBgDIAEoCzIQLnZvbHRoYS5LcGlFdmVudEgAUghrcGlFdmVudBIyCgprcGlfZXZl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BA4CBAMSBP0BIyQKJgoEBA4CBRIEgAIIHxoYIFJlZmVycyB0byBhbiBSUEMgRXZlbnQKCg0KBQQOAgUGEgSAAggQCg0KBQQOAgUBEgSAAhEaCg0KBQQOAgUDEgSAAh0eYgZwcm90bzMKtxgKI3ZvbHRoYV9wcm90b3MvaWV0Zl9pbnRlcmZhY2VzLnByb3RvEgRpZXRmIkQKCkludGVyZmFjZXMSNgoOYWxsX2ludGVyZmFjZXMYASADKAsyDy5pZXRmLkludGVyZmFjZVINYWxsSW50ZXJmYWNlcyKSAgoJSW50ZXJmYWNlEhIKBG5hbWUYASABKAlSBG5hbWUSIAoLZGVzY3JpcHRpb24YAiABKAlSC2Rlc2NyaXB0aW9uEhIKBHR5cGUYAyABKAlSBHR5cGUSGAoHZW5hYmxlZBgEIAEoCFIHZW5hYmxlZBJgChhsaW5rX3VwX2Rvd25fdHJhcF9lbmFibGUYBSABKA4yKC5pZXRmLkludGVyZmFjZS5MaW5rVXBEb3duVHJhcEVuYWJsZVR5cGVSFGxpbmtVcERvd25UcmFwRW5hYmxlIj8KGExpbmtVcERvd25UcmFwRW5hYmxlVHlwZRIRCg1UUkFQX0RJU0FCTEVEEAASEAoMVFJBUF9FTkFCTEVEEAEiTAoPSW50ZXJmYWNlc1N0YXRlEjkKDWFsbF9pbnRlcmZhY3MYASADKAsyFC5pZXRmLkludGVyZmFjZVN0YXRlUgxhbGxJbnRlcmZhY3MiwAQKDkludGVyZmFjZVN0YXRlEhIKBG5hbWUYASABKAlSBG5hbWUSEgoEdHlwZRgCIAEoCVIEdHlwZRJHCgxhZG1pbl9zdGF0dXMYAyABKA4yJC5pZXRmLkludGVyZmFjZVN0YXRlLkFkbWluU3RhdHVzVHlwZVILYWRtaW5TdGF0dXMSRAoLb3Blcl9zdGF0dXMYBCABKA4yIy5pZXRmLkludGVyZmFjZVN0YXRlLk9wZXJTdGF0dXNUeXBlUgpvcGVyU3RhdHVzEh8KC2xhc3RfY2hhbmdlGAUgASgJUgpsYXN0Q2hhbmdlEhkKCGlmX2luZGV4GAYgASgFUgdpZkluZGV4EiEKDHBoeXNfYWRkcmVzcxgHIAEoCVILcGh5c0FkZHJlc3MSJgoPaGlnaGVyX2xheWVyX2lmGAggAygJUg1o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