@openkaiden/opnshll-sdk 0.0.110 → 0.0.113

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@ import { file_sandbox } from "./sandbox_pb.js";
8
8
  /**
9
9
  * Describes the file openshell.proto.
10
10
  */
11
- export const file_openshell = /*@__PURE__*/ fileDesc("Cg9vcGVuc2hlbGwucHJvdG8SDG9wZW5zaGVsbC52MSIaChhJc3N1ZVNhbmRib3hUb2tlblJlcXVlc3QiRwoZSXNzdWVTYW5kYm94VG9rZW5SZXNwb25zZRITCgV0b2tlbhgBIAEoCUIEiLUYARIVCg1leHBpcmVzX2F0X21zGAIgASgDIj0KGlJlZnJlc2hTYW5kYm94VG9rZW5SZXF1ZXN0Eh8KF2V4dGVuc2lvbl9zZXJ2aWNlX25hbWVzGAEgAygJIpIBChtSZWZyZXNoU2FuZGJveFRva2VuUmVzcG9uc2USEwoFdG9rZW4YASABKAlCBIi1GAESFQoNZXhwaXJlc19hdF9tcxgCIAEoAxJHChVleHRlbnNpb25fY3JlZGVudGlhbHMYAyADKAsyKC5vcGVuc2hlbGwudjEuRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwiDwoNSGVhbHRoUmVxdWVzdCJOCg5IZWFsdGhSZXNwb25zZRIrCgZzdGF0dXMYASABKA4yGy5vcGVuc2hlbGwudjEuU2VydmljZVN0YXR1cxIPCgd2ZXJzaW9uGAIgASgJIhcKFUdldEN1cnJlbnRVc2VyUmVxdWVzdCJ5ChZHZXRDdXJyZW50VXNlclJlc3BvbnNlEg8KB3N1YmplY3QYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg0KBXJvbGVzGAMgAygJEg4KBnNjb3BlcxgEIAMoCRIZChFpZGVudGl0eV9wcm92aWRlchgFIAEoCSIXChVHZXRHYXRld2F5SW5mb1JlcXVlc3QimAEKFkdldEdhdGV3YXlJbmZvUmVzcG9uc2USKwoGc3RhdHVzGAEgASgOMhsub3BlbnNoZWxsLnYxLlNlcnZpY2VTdGF0dXMSFwoPZ2F0ZXdheV92ZXJzaW9uGAIgASgJEjgKD2NvbXB1dGVfZHJpdmVycxgDIAMoCzIfLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVySW5mbyJgChFDb21wdXRlRHJpdmVySW5mbxIMCgRuYW1lGAEgASgJEj0KDGNhcGFiaWxpdGllcxgCIAEoCzInLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzIkgKGUNvbXB1dGVEcml2ZXJDYXBhYmlsaXRpZXMSEwoLZHJpdmVyX25hbWUYASABKAkSFgoOZHJpdmVyX3ZlcnNpb24YAiABKAkiwAEKB1NhbmRib3gSNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESJwoEc3BlYxgCIAEoCzIZLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYxIrCgZzdGF0dXMYAyABKAsyGy5vcGVuc2hlbGwudjEuU2FuZGJveFN0YXR1c0oECAQQBUoECAUQBlIFcGhhc2VSFmN1cnJlbnRfcG9saWN5X3ZlcnNpb24igQMKC1NhbmRib3hTcGVjEhEKCWxvZ19sZXZlbBgBIAEoCRI/CgtlbnZpcm9ubWVudBgFIAMoCzIqLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYy5FbnZpcm9ubWVudEVudHJ5Ei8KCHRlbXBsYXRlGAYgASgLMh0ub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZRIzCgZwb2xpY3kYByABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EhEKCXByb3ZpZGVycxgIIAMoCRJBChVyZXNvdXJjZV9yZXF1aXJlbWVudHMYCSABKAsyIi5vcGVuc2hlbGwudjEuUmVzb3VyY2VSZXF1aXJlbWVudHMaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIChALSgQICxAMUgpncHVfZGV2aWNlUhZwcm9wb3NhbF9hcHByb3ZhbF9tb2RlIkoKFFJlc291cmNlUmVxdWlyZW1lbnRzEjIKA2dwdRgBIAEoCzIlLm9wZW5zaGVsbC52MS5HcHVSZXNvdXJjZVJlcXVpcmVtZW50cyI3ChdHcHVSZXNvdXJjZVJlcXVpcmVtZW50cxISCgVjb3VudBgBIAEoDUgAiAEBQggKBl9jb3VudCLaBAoPU2FuZGJveFRlbXBsYXRlEg0KBWltYWdlGAEgASgJEhoKEnJ1bnRpbWVfY2xhc3NfbmFtZRgCIAEoCRIUCgxhZ2VudF9zb2NrZXQYAyABKAkSOQoGbGFiZWxzGAQgAygLMikub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZS5MYWJlbHNFbnRyeRJDCgthbm5vdGF0aW9ucxgFIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuQW5ub3RhdGlvbnNFbnRyeRJDCgtlbnZpcm9ubWVudBgGIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuRW52aXJvbm1lbnRFbnRyeRIqCglyZXNvdXJjZXMYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhwKD3VzZXJfbmFtZXNwYWNlcxgKIAEoCEgAiAEBEi4KDWRyaXZlcl9jb25maWcYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Gi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUISChBfdXNlcl9uYW1lc3BhY2VzSgQICRAKUhZ2b2x1bWVfY2xhaW1fdGVtcGxhdGVzIt0BCg1TYW5kYm94U3RhdHVzEhQKDHNhbmRib3hfbmFtZRgBIAEoCRIRCglhZ2VudF9wb2QYAiABKAkSEAoIYWdlbnRfZmQYAyABKAkSEgoKc2FuZGJveF9mZBgEIAEoCRIyCgpjb25kaXRpb25zGAUgAygLMh4ub3BlbnNoZWxsLnYxLlNhbmRib3hDb25kaXRpb24SKQoFcGhhc2UYBiABKA4yGi5vcGVuc2hlbGwudjEuU2FuZGJveFBoYXNlEh4KFmN1cnJlbnRfcG9saWN5X3ZlcnNpb24YByABKA0ibwoQU2FuZGJveENvbmRpdGlvbhIMCgR0eXBlGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIOCgZyZWFzb24YAyABKAkSDwoHbWVzc2FnZRgEIAEoCRIcChRsYXN0X3RyYW5zaXRpb25fdGltZRgFIAEoCSLSAQoNUGxhdGZvcm1FdmVudBIUCgx0aW1lc3RhbXBfbXMYASABKAMSDgoGc291cmNlGAIgASgJEgwKBHR5cGUYAyABKAkSDgoGcmVhc29uGAQgASgJEg8KB21lc3NhZ2UYBSABKAkSOwoIbWV0YWRhdGEYBiADKAsyKS5vcGVuc2hlbGwudjEuUGxhdGZvcm1FdmVudC5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASLNAgoUQ3JlYXRlU2FuZGJveFJlcXVlc3QSJwoEc3BlYxgBIAEoCzIZLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYxIMCgRuYW1lGAIgASgJEj4KBmxhYmVscxgDIAMoCzIuLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdC5MYWJlbHNFbnRyeRJICgthbm5vdGF0aW9ucxgEIAMoCzIzLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdC5Bbm5vdGF0aW9uc0VudHJ5EhEKCXdvcmtzcGFjZRgFIAEoCRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0ChFHZXRTYW5kYm94UmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJ4ChRMaXN0U2FuZGJveGVzUmVxdWVzdBINCgVsaW1pdBgBIAEoDRIOCgZvZmZzZXQYAiABKA0SFgoObGFiZWxfc2VsZWN0b3IYAyABKAkSEQoJd29ya3NwYWNlGAQgASgJEhYKDmFsbF93b3Jrc3BhY2VzGAUgASgIIkYKG0xpc3RTYW5kYm94UHJvdmlkZXJzUmVxdWVzdBIUCgxzYW5kYm94X25hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIoEBChxBdHRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0EhQKDHNhbmRib3hfbmFtZRgBIAEoCRIVCg1wcm92aWRlcl9uYW1lGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEQoJd29ya3NwYWNlGAQgASgJIoEBChxEZXRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0EhQKDHNhbmRib3hfbmFtZRgBIAEoCRIVCg1wcm92aWRlcl9uYW1lGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEQoJd29ya3NwYWNlGAQgASgJIjcKFERlbGV0ZVNhbmRib3hSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjUKElN0b3BTYW5kYm94UmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSI2ChNTdGFydFNhbmRib3hSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjkKD1NhbmRib3hSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3giQQoVTGlzdFNhbmRib3hlc1Jlc3BvbnNlEigKCXNhbmRib3hlcxgBIAMoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94IlMKHExpc3RTYW5kYm94UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJZCh1BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSEAoIYXR0YWNoZWQYAiABKAgiWQodRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVzcG9uc2USJgoHc2FuZGJveBgBIAEoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EhAKCGRldGFjaGVkGAIgASgIIigKFURlbGV0ZVNhbmRib3hSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIi0KF0NyZWF0ZVNzaFNlc3Npb25SZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkivAEKGENyZWF0ZVNzaFNlc3Npb25SZXNwb25zZRISCgpzYW5kYm94X2lkGAEgASgJEhMKBXRva2VuGAIgASgJQgSItRgBEhQKDGdhdGV3YXlfaG9zdBgDIAEoCRIUCgxnYXRld2F5X3BvcnQYBCABKA0SFgoOZ2F0ZXdheV9zY2hlbWUYBSABKAkSHAoUaG9zdF9rZXlfZmluZ2VycHJpbnQYByABKAkSFQoNZXhwaXJlc19hdF9tcxgIIAEoAyJwChRFeHBvc2VTZXJ2aWNlUmVxdWVzdBIPCgdzYW5kYm94GAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEwoLdGFyZ2V0X3BvcnQYAyABKA0SDgoGZG9tYWluGAQgASgIEhEKCXdvcmtzcGFjZRgFIAEoCSJIChFHZXRTZXJ2aWNlUmVxdWVzdBIPCgdzYW5kYm94GAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJInAKE0xpc3RTZXJ2aWNlc1JlcXVlc3QSDwoHc2FuZGJveBgBIAEoCRINCgVsaW1pdBgCIAEoDRIOCgZvZmZzZXQYAyABKA0SEQoJd29ya3NwYWNlGAQgASgJEhYKDmFsbF93b3Jrc3BhY2VzGAUgASgIIk8KFExpc3RTZXJ2aWNlc1Jlc3BvbnNlEjcKCHNlcnZpY2VzGAEgAygLMiUub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludFJlc3BvbnNlIksKFERlbGV0ZVNlcnZpY2VSZXF1ZXN0Eg8KB3NhbmRib3gYASABKAkSDwoHc2VydmljZRgCIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkiKAoVRGVsZXRlU2VydmljZVJlc3BvbnNlEg8KB2RlbGV0ZWQYASABKAgirAEKD1NlcnZpY2VFbmRwb2ludBI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRISCgpzYW5kYm94X2lkGAIgASgJEhQKDHNhbmRib3hfbmFtZRgDIAEoCRIUCgxzZXJ2aWNlX25hbWUYBCABKAkSEwoLdGFyZ2V0X3BvcnQYBSABKA0SDgoGZG9tYWluGAYgASgIIlcKF1NlcnZpY2VFbmRwb2ludFJlc3BvbnNlEi8KCGVuZHBvaW50GAEgASgLMh0ub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludBILCgN1cmwYAiABKAkiLgoXUmV2b2tlU3NoU2Vzc2lvblJlcXVlc3QSEwoFdG9rZW4YASABKAlCBIi1GAEiKwoYUmV2b2tlU3NoU2Vzc2lvblJlc3BvbnNlEg8KB3Jldm9rZWQYASABKAgilwIKEkV4ZWNTYW5kYm94UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEg8KB2NvbW1hbmQYAiADKAkSDwoHd29ya2RpchgDIAEoCRJGCgtlbnZpcm9ubWVudBgEIAMoCzIxLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3QuRW52aXJvbm1lbnRFbnRyeRIXCg90aW1lb3V0X3NlY29uZHMYBSABKA0SDQoFc3RkaW4YBiABKAwSCwoDdHR5GAcgASgIEgwKBGNvbHMYCCABKA0SDAoEcm93cxgJIAEoDRoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiIQoRRXhlY1NhbmRib3hTdGRvdXQSDAoEZGF0YRgBIAEoDCIhChFFeGVjU2FuZGJveFN0ZGVychIMCgRkYXRhGAEgASgMIiQKD0V4ZWNTYW5kYm94RXhpdBIRCglleGl0X2NvZGUYASABKAUisgEKEEV4ZWNTYW5kYm94RXZlbnQSMQoGc3Rkb3V0GAEgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3Rkb3V0SAASMQoGc3RkZXJyGAIgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3RkZXJySAASLQoEZXhpdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV4aXRIAEIJCgdwYXlsb2FkIr8BCg5UY3BGb3J3YXJkSW5pdBISCgpzYW5kYm94X2lkGAEgASgJEhIKCnNlcnZpY2VfaWQYBCABKAkSKwoDc3NoGAUgASgLMhwub3BlbnNoZWxsLnYxLlNzaFJlbGF5VGFyZ2V0SAASKwoDdGNwGAYgASgLMhwub3BlbnNoZWxsLnYxLlRjcFJlbGF5VGFyZ2V0SAASIQoTYXV0aG9yaXphdGlvbl90b2tlbhgHIAEoCUIEiLUYAUIICgZ0YXJnZXQiWgoPVGNwRm9yd2FyZEZyYW1lEiwKBGluaXQYASABKAsyHC5vcGVuc2hlbGwudjEuVGNwRm9yd2FyZEluaXRIABIOCgRkYXRhGAIgASgMSABCCQoHcGF5bG9hZCKaAQoQRXhlY1NhbmRib3hJbnB1dBIxCgVzdGFydBgBIAEoCzIgLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3RIABIPCgVzdGRpbhgCIAEoDEgAEjcKBnJlc2l6ZRgDIAEoCzIlLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFdpbmRvd1Jlc2l6ZUgAQgkKB3BheWxvYWQiNQoXRXhlY1NhbmRib3hXaW5kb3dSZXNpemUSDAoEY29scxgBIAEoDRIMCgRyb3dzGAIgASgNIpMBCgpTc2hTZXNzaW9uEjQKCG1ldGFkYXRhGAEgASgLMiIub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5PYmplY3RNZXRhEhIKCnNhbmRib3hfaWQYAiABKAkSEwoFdG9rZW4YAyABKAlCBIi1GAESFQoNZXhwaXJlc19hdF9tcxgEIAEoAxIPCgdyZXZva2VkGAUgASgIIuwBChNXYXRjaFNhbmRib3hSZXF1ZXN0EgoKAmlkGAEgASgJEhUKDWZvbGxvd19zdGF0dXMYAiABKAgSEwoLZm9sbG93X2xvZ3MYAyABKAgSFQoNZm9sbG93X2V2ZW50cxgEIAEoCBIWCg5sb2dfdGFpbF9saW5lcxgFIAEoDRISCgpldmVudF90YWlsGAYgASgNEhgKEHN0b3Bfb25fdGVybWluYWwYByABKAgSFAoMbG9nX3NpbmNlX21zGAggASgDEhMKC2xvZ19zb3VyY2VzGAkgAygJEhUKDWxvZ19taW5fbGV2ZWwYCiABKAkimwIKElNhbmRib3hTdHJlYW1FdmVudBIoCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3hIABIrCgNsb2cYAiABKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmVIABIsCgVldmVudBgDIAEoCzIbLm9wZW5zaGVsbC52MS5QbGF0Zm9ybUV2ZW50SAASNQoHd2FybmluZxgEIAEoCzIiLm9wZW5zaGVsbC52MS5TYW5kYm94U3RyZWFtV2FybmluZ0gAEj4KE2RyYWZ0X3BvbGljeV91cGRhdGUYBSABKAsyHy5vcGVuc2hlbGwudjEuRHJhZnRQb2xpY3lVcGRhdGVIAEIJCgdwYXlsb2FkIuMBCg5TYW5kYm94TG9nTGluZRISCgpzYW5kYm94X2lkGAEgASgJEhQKDHRpbWVzdGFtcF9tcxgCIAEoAxINCgVsZXZlbBgDIAEoCRIOCgZ0YXJnZXQYBCABKAkSDwoHbWVzc2FnZRgFIAEoCRIOCgZzb3VyY2UYBiABKAkSOAoGZmllbGRzGAcgAygLMigub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lLkZpZWxkc0VudHJ5Gi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiJwoUU2FuZGJveFN0cmVhbVdhcm5pbmcSDwoHbWVzc2FnZRgBIAEoCSJeChVDcmVhdGVQcm92aWRlclJlcXVlc3QSMgoIcHJvdmlkZXIYASABKAsyIC5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLlByb3ZpZGVyEhEKCXdvcmtzcGFjZRgCIAEoCSI1ChJHZXRQcm92aWRlclJlcXVlc3QSDAoEbmFtZRgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkiYAoUTGlzdFByb3ZpZGVyc1JlcXVlc3QSDQoFbGltaXQYASABKA0SDgoGb2Zmc2V0GAIgASgNEhEKCXdvcmtzcGFjZRgDIAEoCRIWCg5hbGxfd29ya3NwYWNlcxgEIAEoCCL+AQoVVXBkYXRlUHJvdmlkZXJSZXF1ZXN0EjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchJgChhjcmVkZW50aWFsX2V4cGlyZXNfYXRfbXMYAiADKAsyPi5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJSZXF1ZXN0LkNyZWRlbnRpYWxFeHBpcmVzQXRNc0VudHJ5EhEKCXdvcmtzcGFjZRgDIAEoCRo8ChpDcmVkZW50aWFsRXhwaXJlc0F0TXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBIjgKFURlbGV0ZVByb3ZpZGVyUmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJGChBQcm92aWRlclJlc3BvbnNlEjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJMChVMaXN0UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJPChtMaXN0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSDQoFbGltaXQYASABKA0SDgoGb2Zmc2V0GAIgASgNEhEKCXdvcmtzcGFjZRgDIAEoCSI6ChlHZXRQcm92aWRlclByb2ZpbGVSZXF1ZXN0EgoKAmlkGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJbChlQcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEi4KB3Byb2ZpbGUYASABKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEg4KBnNvdXJjZRgCIAEoCSJxChlQcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEg4KBnNvdXJjZRgBIAEoCRISCgpwcm9maWxlX2lkGAIgASgJEg0KBWZpZWxkGAMgASgJEg8KB21lc3NhZ2UYBCABKAkSEAoIc2V2ZXJpdHkYBSABKAkiegosUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNEgwKBHBhdGgYAyABKAkSEAoIYXVkaWVuY2UYBCABKAkSDgoGc2NvcGVzGAUgAygJIoUCChxQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50EhYKDnRva2VuX2VuZHBvaW50GAEgASgJEhAKCGF1ZGllbmNlGAIgASgJEhkKEWp3dF9zdmlkX2F1ZGllbmNlGAYgASgJEg4KBnNjb3BlcxgDIAMoCRIZChFjYWNoZV90dGxfc2Vjb25kcxgEIAEoAxJWChJhdWRpZW5jZV9vdmVycmlkZXMYBSADKAsyOi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSHQoVY2xpZW50X2Fzc2VydGlvbl90eXBlGAcgASgJIrICChlQcm92aWRlclByb2ZpbGVDcmVkZW50aWFsEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIZW52X3ZhcnMYAyADKAkSEAoIcmVxdWlyZWQYBCABKAgSEgoKYXV0aF9zdHlsZRgFIAEoCRITCgtoZWFkZXJfbmFtZRgGIAEoCRITCgtxdWVyeV9wYXJhbRgHIAEoCRI4CgdyZWZyZXNoGAggASgLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2gSFQoNcGF0aF90ZW1wbGF0ZRgJIAEoCRI/Cgt0b2tlbl9ncmFudBgKIAEoCzIqLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50ImgKIVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hNYXRlcmlhbBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCHJlcXVpcmVkGAMgASgIEg4KBnNlY3JldBgEIAEoCCJFCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0Eg4KBm91dHB1dBgBIAEoCRISCgpjcmVkZW50aWFsGAIgASgJIs0CChlQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoEkEKCHN0cmF0ZWd5GAEgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRIRCgl0b2tlbl91cmwYAiABKAkSDgoGc2NvcGVzGAMgAygJEh4KFnJlZnJlc2hfYmVmb3JlX3NlY29uZHMYBCABKAMSHAoUbWF4X2xpZmV0aW1lX3NlY29uZHMYBSABKAMSQQoIbWF0ZXJpYWwYBiADKAsyLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaE1hdGVyaWFsEkkKEmFkZGl0aW9uYWxfb3V0cHV0cxgHIAMoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0IpsCCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzEhUKDXByb3ZpZGVyX25hbWUYASABKAkSEwoLcHJvdmlkZXJfaWQYAiABKAkSFgoOY3JlZGVudGlhbF9rZXkYAyABKAkSQQoIc3RyYXRlZ3kYBCABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5Eg4KBnN0YXR1cxgFIAEoCRIVCg1leHBpcmVzX2F0X21zGAYgASgDEhoKEm5leHRfcmVmcmVzaF9hdF9tcxgHIAEoAxIaChJsYXN0X3JlZnJlc2hfYXRfbXMYCCABKAMSEgoKbGFzdF9lcnJvchgJIAEoCSIvChhQcm92aWRlclByb2ZpbGVEaXNjb3ZlcnkSEwoLY3JlZGVudGlhbHMYASADKAkizwgKJFN0b3JlZFByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0ZRI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRITCgtwcm92aWRlcl9pZBgCIAEoCRIVCg1wcm92aWRlcl9uYW1lGAMgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAQgASgJEkEKCHN0cmF0ZWd5GAUgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRJYCghtYXRlcmlhbBgGIAMoCzJALm9wZW5zaGVsbC52MS5TdG9yZWRQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdGUuTWF0ZXJpYWxFbnRyeUIEiLUYARIcChRzZWNyZXRfbWF0ZXJpYWxfa2V5cxgHIAMoCRIVCg1leHBpcmVzX2F0X21zGAggASgDEhoKEm5leHRfcmVmcmVzaF9hdF9tcxgJIAEoAxIaChJsYXN0X3JlZnJlc2hfYXRfbXMYCiABKAMSDgoGc3RhdHVzGAsgASgJEhIKCmxhc3RfZXJyb3IYDCABKAkSEQoJdG9rZW5fdXJsGA0gASgJEg4KBnNjb3BlcxgOIAMoCRIeChZyZWZyZXNoX2JlZm9yZV9zZWNvbmRzGA8gASgDEhwKFG1heF9saWZldGltZV9zZWNvbmRzGBAgASgDEmwKFmFkZGl0aW9uYWxfb3V0cHV0X2tleXMYESADKAsyTC5vcGVuc2hlbGwudjEuU3RvcmVkUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXRlLkFkZGl0aW9uYWxPdXRwdXRLZXlzRW50cnkSGwoTYXV0aG9yaXphdGlvbl9lcG9jaBgSIAEoCRJuChdzZWNyZXRfbWF0ZXJpYWxfaGFuZGxlcxgTIAMoCzJNLm9wZW5zaGVsbC52MS5TdG9yZWRQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdGUuU2VjcmV0TWF0ZXJpYWxIYW5kbGVzRW50cnkSTQoYcGVuZGluZ19zZWNyZXRfZGVsZXRpb25zGBQgAygLMisub3BlbnNoZWxsLnYxLlN0b3JlZFJlZnJlc2hNYXRlcmlhbERlbGV0aW9uGi8KDU1hdGVyaWFsRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo7ChlBZGRpdGlvbmFsT3V0cHV0S2V5c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaZgoaU2VjcmV0TWF0ZXJpYWxIYW5kbGVzRW50cnkSCwoDa2V5GAEgASgJEjcKBXZhbHVlGAIgASgLMigub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5DcmVkZW50aWFsSGFuZGxlOgI4ASJvCh1TdG9yZWRSZWZyZXNoTWF0ZXJpYWxEZWxldGlvbhIUCgxtYXRlcmlhbF9rZXkYASABKAkSOAoGaGFuZGxlGAIgASgLMigub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5DcmVkZW50aWFsSGFuZGxlIl4KH0dldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1JlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJImYKIEdldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1Jlc3BvbnNlEkIKC2NyZWRlbnRpYWxzGAEgAygLMi0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0dXMi8wIKH0NvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSQQoIc3RyYXRlZ3kYAyABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5ElMKCG1hdGVyaWFsGAQgAygLMjsub3BlbnNoZWxsLnYxLkNvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QuTWF0ZXJpYWxFbnRyeUIEiLUYARIcChRzZWNyZXRfbWF0ZXJpYWxfa2V5cxgFIAMoCRIaCg1leHBpcmVzX2F0X21zGAYgASgDSACIAQESEQoJd29ya3NwYWNlGAcgASgJGi8KDU1hdGVyaWFsRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIQCg5fZXhwaXJlc19hdF9tcyJhCiBDb25maWd1cmVQcm92aWRlclJlZnJlc2hSZXNwb25zZRI9CgZzdGF0dXMYASABKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyJeCh9Sb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXF1ZXN0EhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSJhCiBSb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXNwb25zZRI9CgZzdGF0dXMYASABKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyJbChxEZWxldGVQcm92aWRlclJlZnJlc2hSZXF1ZXN0EhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSIwCh1EZWxldGVQcm92aWRlclJlZnJlc2hSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIrgECg9Qcm92aWRlclByb2ZpbGUSCgoCaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEjcKCGNhdGVnb3J5GAQgASgOMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUNhdGVnb3J5EjwKC2NyZWRlbnRpYWxzGAUgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUNyZWRlbnRpYWwSOAoJZW5kcG9pbnRzGAYgAygLMiUub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0VuZHBvaW50EjUKCGJpbmFyaWVzGAcgAygLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0JpbmFyeRIZChFpbmZlcmVuY2VfY2FwYWJsZRgIIAEoCBI5CglkaXNjb3ZlcnkYCSABKAsyJi5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlzY292ZXJ5EhgKEHJlc291cmNlX3ZlcnNpb24YCiABKAQSQwoLYW5ub3RhdGlvbnMYCyADKAsyLi5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlLkFubm90YXRpb25zRW50cnkSDgoGc291cmNlGAwgASgJEg0KBXNjb3BlGA0gASgJGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJ9ChVTdG9yZWRQcm92aWRlclByb2ZpbGUSNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESLgoHcHJvZmlsZRgCIAEoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUiSQoXUHJvdmlkZXJQcm9maWxlUmVzcG9uc2USLgoHcHJvZmlsZRgBIAEoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUiTwocTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRIvCghwcm9maWxlcxgBIAMoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUibQodSW1wb3J0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSOQoIcHJvZmlsZXMYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlSW1wb3J0SXRlbRIRCgl3b3Jrc3BhY2UYAiABKAkioQEKHkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRI8CgtkaWFnbm9zdGljcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEi8KCHByb2ZpbGVzGAIgAygLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIQCghpbXBvcnRlZBgDIAEoCCKbAQodVXBkYXRlUHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSOAoHcHJvZmlsZRgBIAEoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAiABKAQSCgoCaWQYAyABKAkSEQoJd29ya3NwYWNlGAQgASgJIp8BCh5VcGRhdGVQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USPAoLZGlhZ25vc3RpY3MYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxIuCgdwcm9maWxlGAIgASgLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIPCgd1cGRhdGVkGAMgASgIImsKG0xpbnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBI5Cghwcm9maWxlcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEhEKCXdvcmtzcGFjZRgCIAEoCSJrChxMaW50UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlEjwKC2RpYWdub3N0aWNzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZURpYWdub3N0aWMSDQoFdmFsaWQYAiABKAgiKQoWRGVsZXRlUHJvdmlkZXJSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIj0KHERlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlcXVlc3QSCgoCaWQYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjAKHURlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlc3BvbnNlEg8KB2RlbGV0ZWQYASABKAgiZwokR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSKwojc3VwcG9ydHNfc3RhdGljX2NyZWRlbnRpYWxfYmluZGluZ3MYAiABKAgiSwofU3RhdGljQ3JlZGVudGlhbEVuZHBvaW50QmluZGluZxIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0SDAoEcGF0aBgDIAEoCSKcAQoXU3RhdGljQ3JlZGVudGlhbEJpbmRpbmcSQAoJZW5kcG9pbnRzGAEgAygLMi0ub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxFbmRwb2ludEJpbmRpbmcSGwoTY3JlZGVudGlhbF9pZGVudGl0eRgCIAEoCRIiChp3b3JrbG9hZF9jcmVkZW50aWFsX2hhbmRsZRgDIAEoCSLdBgolR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZRJfCgtlbnZpcm9ubWVudBgBIAMoCzJELm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkVudmlyb25tZW50RW50cnlCBIi1GAESHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAIgASgEEnAKGGNyZWRlbnRpYWxfZXhwaXJlc19hdF9tcxgDIAMoCzJOLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkNyZWRlbnRpYWxFeHBpcmVzQXRNc0VudHJ5EmgKE2R5bmFtaWNfY3JlZGVudGlhbHMYBCADKAsySy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZS5EeW5hbWljQ3JlZGVudGlhbHNFbnRyeRJ1ChpzdGF0aWNfY3JlZGVudGlhbF9iaW5kaW5ncxgFIAMoCzJRLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLlN0YXRpY0NyZWRlbnRpYWxCaW5kaW5nc0VudHJ5EiMKG25vbl9zZWNyZXRfZW52aXJvbm1lbnRfa2V5cxgGIAMoCRoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaPAoaQ3JlZGVudGlhbEV4cGlyZXNBdE1zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgDOgI4ARpiChdEeW5hbWljQ3JlZGVudGlhbHNFbnRyeRILCgNrZXkYASABKAkSNgoFdmFsdWUYAiABKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlQ3JlZGVudGlhbDoCOAEaZgodU3RhdGljQ3JlZGVudGlhbEJpbmRpbmdzRW50cnkSCwoDa2V5GAEgASgJEjQKBXZhbHVlGAIgASgLMiUub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxCaW5kaW5nOgI4ASLBAwoTVXBkYXRlQ29uZmlnUmVxdWVzdBIMCgRuYW1lGAEgASgJEjMKBnBvbGljeRgCIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSEwoLc2V0dGluZ19rZXkYAyABKAkSOQoNc2V0dGluZ192YWx1ZRgEIAEoCzIiLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNldHRpbmdWYWx1ZRIWCg5kZWxldGVfc2V0dGluZxgFIAEoCBIOCgZnbG9iYWwYBiABKAgSPAoQbWVyZ2Vfb3BlcmF0aW9ucxgHIAMoCzIiLm9wZW5zaGVsbC52MS5Qb2xpY3lNZXJnZU9wZXJhdGlvbhIhChlleHBlY3RlZF9yZXNvdXJjZV92ZXJzaW9uGAggASgEEkcKC2Fubm90YXRpb25zGAkgAygLMjIub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1JlcXVlc3QuQW5ub3RhdGlvbnNFbnRyeRIRCgl3b3Jrc3BhY2UYCiABKAkaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIvcCChRQb2xpY3lNZXJnZU9wZXJhdGlvbhIwCghhZGRfcnVsZRgBIAEoCzIcLm9wZW5zaGVsbC52MS5BZGROZXR3b3JrUnVsZUgAEj4KD3JlbW92ZV9lbmRwb2ludBgCIAEoCzIjLm9wZW5zaGVsbC52MS5SZW1vdmVOZXR3b3JrRW5kcG9pbnRIABI2CgtyZW1vdmVfcnVsZRgDIAEoCzIfLm9wZW5zaGVsbC52MS5SZW1vdmVOZXR3b3JrUnVsZUgAEjQKDmFkZF9kZW55X3J1bGVzGAQgASgLMhoub3BlbnNoZWxsLnYxLkFkZERlbnlSdWxlc0gAEjYKD2FkZF9hbGxvd19ydWxlcxgFIAEoCzIbLm9wZW5zaGVsbC52MS5BZGRBbGxvd1J1bGVzSAASOgoNcmVtb3ZlX2JpbmFyeRgGIAEoCzIhLm9wZW5zaGVsbC52MS5SZW1vdmVOZXR3b3JrQmluYXJ5SABCCwoJb3BlcmF0aW9uIloKDkFkZE5ldHdvcmtSdWxlEhEKCXJ1bGVfbmFtZRgBIAEoCRI1CgRydWxlGAIgASgLMicub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya1BvbGljeVJ1bGUiRgoVUmVtb3ZlTmV0d29ya0VuZHBvaW50EhEKCXJ1bGVfbmFtZRgBIAEoCRIMCgRob3N0GAIgASgJEgwKBHBvcnQYAyABKA0iJgoRUmVtb3ZlTmV0d29ya1J1bGUSEQoJcnVsZV9uYW1lGAEgASgJImAKDEFkZERlbnlSdWxlcxIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0SNAoKZGVueV9ydWxlcxgDIAMoCzIgLm9wZW5zaGVsbC5zYW5kYm94LnYxLkw3RGVueVJ1bGUiWAoNQWRkQWxsb3dSdWxlcxIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0SKwoFcnVsZXMYAyADKAsyHC5vcGVuc2hlbGwuc2FuZGJveC52MS5MN1J1bGUiPQoTUmVtb3ZlTmV0d29ya0JpbmFyeRIRCglydWxlX25hbWUYASABKAkSEwoLYmluYXJ5X3BhdGgYAiABKAki5gEKFFVwZGF0ZUNvbmZpZ1Jlc3BvbnNlEg8KB3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkSGQoRc2V0dGluZ3NfcmV2aXNpb24YAyABKAQSDwoHZGVsZXRlZBgEIAEoCBJICgthbm5vdGF0aW9ucxgFIAMoCzIzLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXNwb25zZS5Bbm5vdGF0aW9uc0VudHJ5GjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJhCh1HZXRTYW5kYm94UG9saWN5U3RhdHVzUmVxdWVzdBIMCgRuYW1lGAEgASgJEg8KB3ZlcnNpb24YAiABKA0SDgoGZ2xvYmFsGAMgASgIEhEKCXdvcmtzcGFjZRgEIAEoCSJvCh5HZXRTYW5kYm94UG9saWN5U3RhdHVzUmVzcG9uc2USNQoIcmV2aXNpb24YASABKAsyIy5vcGVuc2hlbGwudjEuU2FuZGJveFBvbGljeVJldmlzaW9uEhYKDmFjdGl2ZV92ZXJzaW9uGAIgASgNImwKGkxpc3RTYW5kYm94UG9saWNpZXNSZXF1ZXN0EgwKBG5hbWUYASABKAkSDQoFbGltaXQYAiABKA0SDgoGb2Zmc2V0GAMgASgNEg4KBmdsb2JhbBgEIAEoCBIRCgl3b3Jrc3BhY2UYBSABKAkiVQobTGlzdFNhbmRib3hQb2xpY2llc1Jlc3BvbnNlEjYKCXJldmlzaW9ucxgBIAMoCzIjLm9wZW5zaGVsbC52MS5TYW5kYm94UG9saWN5UmV2aXNpb24igAEKGVJlcG9ydFBvbGljeVN0YXR1c1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRIPCgd2ZXJzaW9uGAIgASgNEioKBnN0YXR1cxgDIAEoDjIaLm9wZW5zaGVsbC52MS5Qb2xpY3lTdGF0dXMSEgoKbG9hZF9lcnJvchgEIAEoCSIcChpSZXBvcnRQb2xpY3lTdGF0dXNSZXNwb25zZSLbAgoVU2FuZGJveFBvbGljeVJldmlzaW9uEg8KB3ZlcnNpb24YASABKA0SEwoLcG9saWN5X2hhc2gYAiABKAkSKgoGc3RhdHVzGAMgASgOMhoub3BlbnNoZWxsLnYxLlBvbGljeVN0YXR1cxISCgpsb2FkX2Vycm9yGAQgASgJEhUKDWNyZWF0ZWRfYXRfbXMYBSABKAMSFAoMbG9hZGVkX2F0X21zGAYgASgDEjMKBnBvbGljeRgHIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSRwoKcHJvdmVuYW5jZRgIIAMoCzIzLm9wZW5zaGVsbC52MS5TYW5kYm94UG9saWN5UmV2aXNpb24uUHJvdmVuYW5jZUVudHJ5GjEKD1Byb3ZlbmFuY2VFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIoMBChVHZXRTYW5kYm94TG9nc1JlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRINCgVsaW5lcxgCIAEoDRIQCghzaW5jZV9tcxgDIAEoAxIPCgdzb3VyY2VzGAQgAygJEhEKCW1pbl9sZXZlbBgFIAEoCRIRCgl3b3Jrc3BhY2UYBiABKAkiWAoWUHVzaFNhbmRib3hMb2dzUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEioKBGxvZ3MYAiADKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmUiGQoXUHVzaFNhbmRib3hMb2dzUmVzcG9uc2UiWgoWR2V0U2FuZGJveExvZ3NSZXNwb25zZRIqCgRsb2dzGAEgAygLMhwub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lEhQKDGJ1ZmZlcl90b3RhbBgCIAEoDSLzAQoRU3VwZXJ2aXNvck1lc3NhZ2USLgoFaGVsbG8YASABKAsyHS5vcGVuc2hlbGwudjEuU3VwZXJ2aXNvckhlbGxvSAASNgoJaGVhcnRiZWF0GAIgASgLMiEub3BlbnNoZWxsLnYxLlN1cGVydmlzb3JIZWFydGJlYXRIABI6ChFyZWxheV9vcGVuX3Jlc3VsdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5SZWxheU9wZW5SZXN1bHRIABIvCgtyZWxheV9jbG9zZRgEIAEoCzIYLm9wZW5zaGVsbC52MS5SZWxheUNsb3NlSABCCQoHcGF5bG9hZCKmAgoOR2F0ZXdheU1lc3NhZ2USOQoQc2Vzc2lvbl9hY2NlcHRlZBgBIAEoCzIdLm9wZW5zaGVsbC52MS5TZXNzaW9uQWNjZXB0ZWRIABI5ChBzZXNzaW9uX3JlamVjdGVkGAIgASgLMh0ub3BlbnNoZWxsLnYxLlNlc3Npb25SZWplY3RlZEgAEjMKCWhlYXJ0YmVhdBgDIAEoCzIeLm9wZW5zaGVsbC52MS5HYXRld2F5SGVhcnRiZWF0SAASLQoKcmVsYXlfb3BlbhgEIAEoCzIXLm9wZW5zaGVsbC52MS5SZWxheU9wZW5IABIvCgtyZWxheV9jbG9zZRgFIAEoCzIYLm9wZW5zaGVsbC52MS5SZWxheUNsb3NlSABCCQoHcGF5bG9hZCI6Cg9TdXBlcnZpc29ySGVsbG8SEgoKc2FuZGJveF9pZBgBIAEoCRITCgtpbnN0YW5jZV9pZBgCIAEoCSJGCg9TZXNzaW9uQWNjZXB0ZWQSEgoKc2Vzc2lvbl9pZBgBIAEoCRIfChdoZWFydGJlYXRfaW50ZXJ2YWxfc2VjcxgCIAEoDSIhCg9TZXNzaW9uUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIhUKE1N1cGVydmlzb3JIZWFydGJlYXQiEgoQR2F0ZXdheUhlYXJ0YmVhdCKXAQoJUmVsYXlPcGVuEhIKCmNoYW5uZWxfaWQYASABKAkSKwoDc3NoGAIgASgLMhwub3BlbnNoZWxsLnYxLlNzaFJlbGF5VGFyZ2V0SAASKwoDdGNwGAMgASgLMhwub3BlbnNoZWxsLnYxLlRjcFJlbGF5VGFyZ2V0SAASEgoKc2VydmljZV9pZBgFIAEoCUIICgZ0YXJnZXQiEAoOU3NoUmVsYXlUYXJnZXQiLAoOVGNwUmVsYXlUYXJnZXQSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNIh8KCVJlbGF5SW5pdBISCgpjaGFubmVsX2lkGAEgASgJIlAKClJlbGF5RnJhbWUSJwoEaW5pdBgBIAEoCzIXLm9wZW5zaGVsbC52MS5SZWxheUluaXRIABIOCgRkYXRhGAIgASgMSABCCQoHcGF5bG9hZCJFCg9SZWxheU9wZW5SZXN1bHQSEgoKY2hhbm5lbF9pZBgBIAEoCRIPCgdzdWNjZXNzGAIgASgIEg0KBWVycm9yGAMgASgJIjAKClJlbGF5Q2xvc2USEgoKY2hhbm5lbF9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkiUAoPTDdSZXF1ZXN0U2FtcGxlEg4KBm1ldGhvZBgBIAEoCRIMCgRwYXRoGAIgASgJEhAKCGRlY2lzaW9uGAMgASgJEg0KBWNvdW50GAQgASgNIpUDCg1EZW5pYWxTdW1tYXJ5EhIKCnNhbmRib3hfaWQYASABKAkSDAoEaG9zdBgCIAEoCRIMCgRwb3J0GAMgASgNEg4KBmJpbmFyeRgEIAEoCRIRCglhbmNlc3RvcnMYBSADKAkSEwoLZGVueV9yZWFzb24YBiABKAkSFQoNZmlyc3Rfc2Vlbl9tcxgHIAEoAxIUCgxsYXN0X3NlZW5fbXMYCCABKAMSDQoFY291bnQYCSABKA0SGAoQc3VwcHJlc3NlZF9jb3VudBgKIAEoDRITCgt0b3RhbF9jb3VudBgLIAEoDRIXCg9zYW1wbGVfY21kbGluZXMYDCADKAkSFQoNYmluYXJ5X3NoYTI1NhgNIAEoCRISCgpwZXJzaXN0ZW50GA4gASgIEhQKDGRlbmlhbF9zdGFnZRgPIAEoCRI5ChJsN19yZXF1ZXN0X3NhbXBsZXMYECADKAsyHS5vcGVuc2hlbGwudjEuTDdSZXF1ZXN0U2FtcGxlEhwKFGw3X2luc3BlY3Rpb25fYWN0aXZlGBEgASgIIjwKEERlbmlhbEdyb3VwQ291bnQSEgoKZGVueV9ncm91cBgBIAEoCRIUCgxkZW5pZWRfY291bnQYAiABKA0ijwEKFk5ldHdvcmtBY3Rpdml0eVN1bW1hcnkSHgoWbmV0d29ya19hY3Rpdml0eV9jb3VudBgBIAEoDRIbChNkZW5pZWRfYWN0aW9uX2NvdW50GAIgASgNEjgKEGRlbmlhbHNfYnlfZ3JvdXAYAyADKAsyHi5vcGVuc2hlbGwudjEuRGVuaWFsR3JvdXBDb3VudCK2AwoLUG9saWN5Q2h1bmsSCgoCaWQYASABKAkSDgoGc3RhdHVzGAIgASgJEhEKCXJ1bGVfbmFtZRgDIAEoCRI+Cg1wcm9wb3NlZF9ydWxlGAQgASgLMicub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya1BvbGljeVJ1bGUSEQoJcmF0aW9uYWxlGAUgASgJEhYKDnNlY3VyaXR5X25vdGVzGAYgASgJEhIKCmNvbmZpZGVuY2UYByABKAISGgoSZGVuaWFsX3N1bW1hcnlfaWRzGAggAygJEhUKDWNyZWF0ZWRfYXRfbXMYCSABKAMSFQoNZGVjaWRlZF9hdF9tcxgKIAEoAxINCgVzdGFnZRgLIAEoCRIbChNzdXBlcnNlZGVzX2NodW5rX2lkGAwgASgJEhEKCWhpdF9jb3VudBgNIAEoBRIVCg1maXJzdF9zZWVuX21zGA4gASgDEhQKDGxhc3Rfc2Vlbl9tcxgPIAEoAxIOCgZiaW5hcnkYECABKAkSGQoRdmFsaWRhdGlvbl9yZXN1bHQYESABKAkSGAoQcmVqZWN0aW9uX3JlYXNvbhgSIAEoCSJmChFEcmFmdFBvbGljeVVwZGF0ZRIVCg1kcmFmdF92ZXJzaW9uGAEgASgEEhIKCm5ld19jaHVua3MYAiABKA0SFQoNdG90YWxfcGVuZGluZxgDIAEoDRIPCgdzdW1tYXJ5GAQgASgJIoMCChtTdWJtaXRQb2xpY3lBbmFseXNpc1JlcXVlc3QSLgoJc3VtbWFyaWVzGAEgAygLMhsub3BlbnNoZWxsLnYxLkRlbmlhbFN1bW1hcnkSMgoPcHJvcG9zZWRfY2h1bmtzGAIgAygLMhkub3BlbnNoZWxsLnYxLlBvbGljeUNodW5rEhUKDWFuYWx5c2lzX21vZGUYAyABKAkSDAoEbmFtZRgEIAEoCRJIChpuZXR3b3JrX2FjdGl2aXR5X3N1bW1hcmllcxgFIAMoCzIkLm9wZW5zaGVsbC52MS5OZXR3b3JrQWN0aXZpdHlTdW1tYXJ5EhEKCXdvcmtzcGFjZRgGIAEoCSKHAQocU3VibWl0UG9saWN5QW5hbHlzaXNSZXNwb25zZRIXCg9hY2NlcHRlZF9jaHVua3MYASABKA0SFwoPcmVqZWN0ZWRfY2h1bmtzGAIgASgNEhkKEXJlamVjdGlvbl9yZWFzb25zGAMgAygJEhoKEmFjY2VwdGVkX2NodW5rX2lkcxgEIAMoCSJPChVHZXREcmFmdFBvbGljeVJlcXVlc3QSDAoEbmFtZRgBIAEoCRIVCg1zdGF0dXNfZmlsdGVyGAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSKQAQoWR2V0RHJhZnRQb2xpY3lSZXNwb25zZRIpCgZjaHVua3MYASADKAsyGS5vcGVuc2hlbGwudjEuUG9saWN5Q2h1bmsSFwoPcm9sbGluZ19zdW1tYXJ5GAIgASgJEhUKDWRyYWZ0X3ZlcnNpb24YAyABKAQSGwoTbGFzdF9hbmFseXplZF9hdF9tcxgEIAEoAyJNChhBcHByb3ZlRHJhZnRDaHVua1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIQCghjaHVua19pZBgCIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkiSAoZQXBwcm92ZURyYWZ0Q2h1bmtSZXNwb25zZRIWCg5wb2xpY3lfdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCSJcChdSZWplY3REcmFmdENodW5rUmVxdWVzdBIMCgRuYW1lGAEgASgJEhAKCGNodW5rX2lkGAIgASgJEg4KBnJlYXNvbhgDIAEoCRIRCgl3b3Jrc3BhY2UYBCABKAkiGgoYUmVqZWN0RHJhZnRDaHVua1Jlc3BvbnNlImEKHEFwcHJvdmVBbGxEcmFmdENodW5rc1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIgChhpbmNsdWRlX3NlY3VyaXR5X2ZsYWdnZWQYAiABKAgSEQoJd29ya3NwYWNlGAMgASgJIn0KHUFwcHJvdmVBbGxEcmFmdENodW5rc1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJEhcKD2NodW5rc19hcHByb3ZlZBgDIAEoDRIWCg5jaHVua3Nfc2tpcHBlZBgEIAEoDSKKAQoVRWRpdERyYWZ0Q2h1bmtSZXF1ZXN0EgwKBG5hbWUYASABKAkSEAoIY2h1bmtfaWQYAiABKAkSPgoNcHJvcG9zZWRfcnVsZRgDIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlEhEKCXdvcmtzcGFjZRgEIAEoCSIYChZFZGl0RHJhZnRDaHVua1Jlc3BvbnNlIkoKFVVuZG9EcmFmdENodW5rUmVxdWVzdBIMCgRuYW1lGAEgASgJEhAKCGNodW5rX2lkGAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSJFChZVbmRvRHJhZnRDaHVua1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJIjoKF0NsZWFyRHJhZnRDaHVua3NSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjIKGENsZWFyRHJhZnRDaHVua3NSZXNwb25zZRIWCg5jaHVua3NfY2xlYXJlZBgBIAEoDSI5ChZHZXREcmFmdEhpc3RvcnlSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJImQKEURyYWZ0SGlzdG9yeUVudHJ5EhQKDHRpbWVzdGFtcF9tcxgBIAEoAxISCgpldmVudF90eXBlGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhAKCGNodW5rX2lkGAQgASgJIksKF0dldERyYWZ0SGlzdG9yeVJlc3BvbnNlEjAKB2VudHJpZXMYASADKAsyHy5vcGVuc2hlbGwudjEuRHJhZnRIaXN0b3J5RW50cnkigAIKFVBvbGljeVJldmlzaW9uUGF5bG9hZBIzCgZwb2xpY3kYASABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EgwKBGhhc2gYAiABKAkSEgoKbG9hZF9lcnJvchgDIAEoCRIUCgxsb2FkZWRfYXRfbXMYBCABKAMSRwoKcHJvdmVuYW5jZRgFIAMoCzIzLm9wZW5zaGVsbC52MS5Qb2xpY3lSZXZpc2lvblBheWxvYWQuUHJvdmVuYW5jZUVudHJ5GjEKD1Byb3ZlbmFuY2VFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIrQCChFEcmFmdENodW5rUGF5bG9hZBIRCglydWxlX25hbWUYASABKAkSPgoNcHJvcG9zZWRfcnVsZRgCIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlEhEKCXJhdGlvbmFsZRgDIAEoCRIWCg5zZWN1cml0eV9ub3RlcxgEIAEoCRISCgpjb25maWRlbmNlGAUgASgCEhUKDWRlY2lkZWRfYXRfbXMYBiABKAMSDAoEaG9zdBgHIAEoCRIMCgRwb3J0GAggASgFEg4KBmJpbmFyeRgJIAEoCRIVCg1kcmFmdF92ZXJzaW9uGAogASgDEhkKEXZhbGlkYXRpb25fcmVzdWx0GAsgASgJEhgKEHJlamVjdGlvbl9yZWFzb24YDCABKAki6gIKFFN0b3JlZFBvbGljeVJldmlzaW9uEgoKAmlkGAEgASgJEhIKCnNhbmRib3hfaWQYAiABKAkSDwoHdmVyc2lvbhgDIAEoAxIWCg5wb2xpY3lfcGF5bG9hZBgEIAEoDBITCgtwb2xpY3lfaGFzaBgFIAEoCRIOCgZzdGF0dXMYBiABKAkSFwoKbG9hZF9lcnJvchgHIAEoCUgAiAEBEhUKDWNyZWF0ZWRfYXRfbXMYCCABKAMSGQoMbG9hZGVkX2F0X21zGAkgASgDSAGIAQESRgoKcHJvdmVuYW5jZRgKIAMoCzIyLm9wZW5zaGVsbC52MS5TdG9yZWRQb2xpY3lSZXZpc2lvbi5Qcm92ZW5hbmNlRW50cnkaMQoPUHJvdmVuYW5jZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCDQoLX2xvYWRfZXJyb3JCDwoNX2xvYWRlZF9hdF9tcyKoAwoQU3RvcmVkRHJhZnRDaHVuaxIKCgJpZBgBIAEoCRISCgpzYW5kYm94X2lkGAIgASgJEhUKDWRyYWZ0X3ZlcnNpb24YAyABKAMSDgoGc3RhdHVzGAQgASgJEhEKCXJ1bGVfbmFtZRgFIAEoCRIVCg1wcm9wb3NlZF9ydWxlGAYgASgMEhEKCXJhdGlvbmFsZRgHIAEoCRIWCg5zZWN1cml0eV9ub3RlcxgIIAEoCRISCgpjb25maWRlbmNlGAkgASgBEhUKDWNyZWF0ZWRfYXRfbXMYCiABKAMSGgoNZGVjaWRlZF9hdF9tcxgLIAEoA0gAiAEBEgwKBGhvc3QYDCABKAkSDAoEcG9ydBgNIAEoBRIOCgZiaW5hcnkYDiABKAkSEQoJaGl0X2NvdW50GA8gASgFEhUKDWZpcnN0X3NlZW5fbXMYECABKAMSFAoMbGFzdF9zZWVuX21zGBEgASgDEhkKEXZhbGlkYXRpb25fcmVzdWx0GBIgASgJEhgKEHJlamVjdGlvbl9yZWFzb24YEyABKAlCEAoOX2RlY2lkZWRfYXRfbXMilwEKFkNyZWF0ZVdvcmtzcGFjZVJlcXVlc3QSDAoEbmFtZRgBIAEoCRJACgZsYWJlbHMYAiADKAsyMC5vcGVuc2hlbGwudjEuQ3JlYXRlV29ya3NwYWNlUmVxdWVzdC5MYWJlbHNFbnRyeRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIk8KF0NyZWF0ZVdvcmtzcGFjZVJlc3BvbnNlEjQKCXdvcmtzcGFjZRgBIAEoCzIhLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlIiMKE0dldFdvcmtzcGFjZVJlcXVlc3QSDAoEbmFtZRgBIAEoCSJMChRHZXRXb3Jrc3BhY2VSZXNwb25zZRI0Cgl3b3Jrc3BhY2UYASABKAsyIS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZSJOChVMaXN0V29ya3NwYWNlc1JlcXVlc3QSDQoFbGltaXQYASABKA0SDgoGb2Zmc2V0GAIgASgNEhYKDmxhYmVsX3NlbGVjdG9yGAMgASgJIk8KFkxpc3RXb3Jrc3BhY2VzUmVzcG9uc2USNQoKd29ya3NwYWNlcxgBIAMoCzIhLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuV29ya3NwYWNlIiYKFkRlbGV0ZVdvcmtzcGFjZVJlcXVlc3QSDAoEbmFtZRgBIAEoCSIqChdEZWxldGVXb3Jrc3BhY2VSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIo0BCg9Xb3Jrc3BhY2VNZW1iZXISNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESGQoRcHJpbmNpcGFsX3N1YmplY3QYAiABKAkSKQoEcm9sZRgDIAEoDjIbLm9wZW5zaGVsbC52MS5Xb3Jrc3BhY2VSb2xlInQKGUFkZFdvcmtzcGFjZU1lbWJlclJlcXVlc3QSEQoJd29ya3NwYWNlGAEgASgJEhkKEXByaW5jaXBhbF9zdWJqZWN0GAIgASgJEikKBHJvbGUYAyABKA4yGy5vcGVuc2hlbGwudjEuV29ya3NwYWNlUm9sZSJLChpBZGRXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZRItCgZtZW1iZXIYASABKAsyHS5vcGVuc2hlbGwudjEuV29ya3NwYWNlTWVtYmVyIkwKHFJlbW92ZVdvcmtzcGFjZU1lbWJlclJlcXVlc3QSEQoJd29ya3NwYWNlGAEgASgJEhkKEXByaW5jaXBhbF9zdWJqZWN0GAIgASgJIjAKHVJlbW92ZVdvcmtzcGFjZU1lbWJlclJlc3BvbnNlEg8KB3JlbW92ZWQYASABKAgiTwobTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXF1ZXN0EhEKCXdvcmtzcGFjZRgBIAEoCRINCgVsaW1pdBgCIAEoDRIOCgZvZmZzZXQYAyABKA0iTgocTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXNwb25zZRIuCgdtZW1iZXJzGAEgAygLMh0ub3BlbnNoZWxsLnYxLldvcmtzcGFjZU1lbWJlciJeChpFeHRlbnNpb25TZXJ2aWNlQ3JlZGVudGlhbBIUCgxzZXJ2aWNlX25hbWUYASABKAkSEwoFdG9rZW4YAiABKAlCBIi1GAESFQoNZXhwaXJlc19hdF9tcxgDIAEoAyqJAgoMU2FuZGJveFBoYXNlEh0KGVNBTkRCT1hfUEhBU0VfVU5TUEVDSUZJRUQQABIeChpTQU5EQk9YX1BIQVNFX1BST1ZJU0lPTklORxABEhcKE1NBTkRCT1hfUEhBU0VfUkVBRFkQAhIXChNTQU5EQk9YX1BIQVNFX0VSUk9SEAMSGgoWU0FOREJPWF9QSEFTRV9ERUxFVElORxAEEhkKFVNBTkRCT1hfUEhBU0VfVU5LTk9XThAFEhoKFlNBTkRCT1hfUEhBU0VfU1RPUFBJTkcQBhIZChVTQU5EQk9YX1BIQVNFX1NUT1BQRUQQBxIaChZTQU5EQk9YX1BIQVNFX1NUQVJUSU5HEAgqwwMKIVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRI0CjBQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfVU5TUEVDSUZJRUQQABIvCitQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfU1RBVElDEAESMQotUFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX0VYVEVSTkFMEAISPQo5UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX09BVVRIMl9SRUZSRVNIX1RPS0VOEAMSQgo+UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX09BVVRIMl9DTElFTlRfQ1JFREVOVElBTFMQBBJDCj9QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfR09PR0xFX1NFUlZJQ0VfQUNDT1VOVF9KV1QQBRI8CjhQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfQVdTX1NUU19BU1NVTUVfUk9MRRAGKtsCChdQcm92aWRlclByb2ZpbGVDYXRlZ29yeRIpCiVQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASIwofUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9PVEhFUhABEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfSU5GRVJFTkNFEAISIwofUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9BR0VOVBADEiwKKFBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfU09VUkNFX0NPTlRST0wQBBInCiNQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX01FU1NBR0lORxAFEiIKHlBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfREFUQRAGEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfS05PV0xFREdFEAcqmgEKDFBvbGljeVN0YXR1cxIdChlQT0xJQ1lfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGQoVUE9MSUNZX1NUQVRVU19QRU5ESU5HEAESGAoUUE9MSUNZX1NUQVRVU19MT0FERUQQAhIYChRQT0xJQ1lfU1RBVFVTX0ZBSUxFRBADEhwKGFBPTElDWV9TVEFUVVNfU1VQRVJTRURFRBAEKoYBCg1TZXJ2aWNlU3RhdHVzEh4KGlNFUlZJQ0VfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGgoWU0VSVklDRV9TVEFUVVNfSEVBTFRIWRABEhsKF1NFUlZJQ0VfU1RBVFVTX0RFR1JBREVEEAISHAoYU0VSVklDRV9TVEFUVVNfVU5IRUFMVEhZEAMqYgoNV29ya3NwYWNlUm9sZRIeChpXT1JLU1BBQ0VfUk9MRV9VTlNQRUNJRklFRBAAEhcKE1dPUktTUEFDRV9ST0xFX1VTRVIQARIYChRXT1JLU1BBQ0VfUk9MRV9BRE1JThACMpRECglPcGVuU2hlbGwSWgoGSGVhbHRoEhsub3BlbnNoZWxsLnYxLkhlYWx0aFJlcXVlc3QaHC5vcGVuc2hlbGwudjEuSGVhbHRoUmVzcG9uc2UiFYK1GBEKD3VuYXV0aGVudGljYXRlZBJpCg5HZXRDdXJyZW50VXNlchIjLm9wZW5zaGVsbC52MS5HZXRDdXJyZW50VXNlclJlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0Q3VycmVudFVzZXJSZXNwb25zZSIMgrUYCAoGYmVhcmVyEoYBCg5HZXRHYXRld2F5SW5mbxIjLm9wZW5zaGVsbC52MS5HZXRHYXRld2F5SW5mb1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0R2F0ZXdheUluZm9SZXNwb25zZSIpgrUYJQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiILY29uZmlnOnJlYWQSdQoNQ3JlYXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJuCgpHZXRTYW5kYm94Eh8ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hSZXF1ZXN0Gh0ub3BlbnNoZWxsLnYxLlNhbmRib3hSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSegoNTGlzdFNhbmRib3hlcxIiLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveGVzUmVxdWVzdBojLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveGVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEo8BChRMaXN0U2FuZGJveFByb3ZpZGVycxIpLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFByb3ZpZGVyc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQcm92aWRlcnNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSkwEKFUF0dGFjaFNhbmRib3hQcm92aWRlchIqLm9wZW5zaGVsbC52MS5BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkF0dGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSkwEKFURldGFjaFNhbmRib3hQcm92aWRlchIqLm9wZW5zaGVsbC52MS5EZXRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRldGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSewoNRGVsZXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVxdWVzdBojLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJxCgtTdG9wU2FuZGJveBIgLm9wZW5zaGVsbC52MS5TdG9wU2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUScwoMU3RhcnRTYW5kYm94EiEub3BlbnNoZWxsLnYxLlN0YXJ0U2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUShAEKEENyZWF0ZVNzaFNlc3Npb24SJS5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlcXVlc3QaJi5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSfQoNRXhwb3NlU2VydmljZRIiLm9wZW5zaGVsbC52MS5FeHBvc2VTZXJ2aWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnRSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnYKCkdldFNlcnZpY2USHy5vcGVuc2hlbGwudjEuR2V0U2VydmljZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuU2VydmljZUVuZHBvaW50UmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEncKDExpc3RTZXJ2aWNlcxIhLm9wZW5zaGVsbC52MS5MaXN0U2VydmljZXNSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLkxpc3RTZXJ2aWNlc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ7Cg1EZWxldGVTZXJ2aWNlEiIub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEoQBChBSZXZva2VTc2hTZXNzaW9uEiUub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXF1ZXN0GiYub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnQKC0V4ZWNTYW5kYm94EiAub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94UmVxdWVzdBoeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV2ZW50IiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUwARJxCgpGb3J3YXJkVGNwEh0ub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRGcmFtZRodLm9wZW5zaGVsbC52MS5UY3BGb3J3YXJkRnJhbWUiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESfwoWRXhlY1NhbmRib3hJbnRlcmFjdGl2ZRIeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveElucHV0Gh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94RXZlbnQiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESegoOQ3JlYXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuQ3JlYXRlUHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEnIKC0dldFByb3ZpZGVyEiAub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUmVxdWVzdBoeLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSewoNTGlzdFByb3ZpZGVycxIiLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJzUmVxdWVzdBojLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKQAQoUTGlzdFByb3ZpZGVyUHJvZmlsZXMSKS5vcGVuc2hlbGwudjEuTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKHAQoSR2V0UHJvdmlkZXJQcm9maWxlEicub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUHJvZmlsZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKYAQoWSW1wb3J0UHJvdmlkZXJQcm9maWxlcxIrLm9wZW5zaGVsbC52MS5JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBosLm9wZW5zaGVsbC52MS5JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpgBChZVcGRhdGVQcm92aWRlclByb2ZpbGVzEisub3BlbnNoZWxsLnYxLlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSkAEKFExpbnRQcm92aWRlclByb2ZpbGVzEikub3BlbnNoZWxsLnYxLkxpbnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5MaW50UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSegoOVXBkYXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpwBChhHZXRQcm92aWRlclJlZnJlc2hTdGF0dXMSLS5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJSZWZyZXNoU3RhdHVzUmVxdWVzdBouLm9wZW5zaGVsbC52MS5HZXRQcm92aWRlclJlZnJlc2hTdGF0dXNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEp4BChhDb25maWd1cmVQcm92aWRlclJlZnJlc2gSLS5vcGVuc2hlbGwudjEuQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBouLm9wZW5zaGVsbC52MS5Db25maWd1cmVQcm92aWRlclJlZnJlc2hSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSngEKGFJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbBItLm9wZW5zaGVsbC52MS5Sb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLlJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKVAQoVRGVsZXRlUHJvdmlkZXJSZWZyZXNoEioub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QaKy5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZWZyZXNoUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEoABCg5EZWxldGVQcm92aWRlchIjLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlcXVlc3QaJC5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSlQEKFURlbGV0ZVByb3ZpZGVyUHJvZmlsZRIqLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclByb2ZpbGVSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKQAQoQR2V0U2FuZGJveENvbmZpZxItLm9wZW5zaGVsbC5zYW5kYm94LnYxLkdldFNhbmRib3hDb25maWdSZXF1ZXN0Gi4ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0U2FuZGJveENvbmZpZ1Jlc3BvbnNlIh2CtRgZCgRkdWFsEgR1c2VyIgtjb25maWc6cmVhZBKMAQoQR2V0R2F0ZXdheUNvbmZpZxItLm9wZW5zaGVsbC5zYW5kYm94LnYxLkdldEdhdGV3YXlDb25maWdSZXF1ZXN0Gi4ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0R2F0ZXdheUNvbmZpZ1Jlc3BvbnNlIhmCtRgVCgZiZWFyZXIiC2NvbmZpZzpyZWFkEnYKDFVwZGF0ZUNvbmZpZxIhLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1Jlc3BvbnNlIh+CtRgbCgRkdWFsEgVhZG1pbiIMY29uZmlnOndyaXRlEpUBChZHZXRTYW5kYm94UG9saWN5U3RhdHVzEisub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSjAEKE0xpc3RTYW5kYm94UG9saWNpZXMSKC5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQb2xpY2llc1JlcXVlc3QaKS5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQb2xpY2llc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ2ChJSZXBvcnRQb2xpY3lTdGF0dXMSJy5vcGVuc2hlbGwudjEuUmVwb3J0UG9saWN5U3RhdHVzUmVxdWVzdBooLm9wZW5zaGVsbC52MS5SZXBvcnRQb2xpY3lTdGF0dXNSZXNwb25zZSINgrUYCQoHc2FuZGJveBKXAQodR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnQSMi5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXF1ZXN0GjMub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSfQoOR2V0U2FuZGJveExvZ3MSIy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveExvZ3NSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkdldFNhbmRib3hMb2dzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEm8KD1B1c2hTYW5kYm94TG9ncxIkLm9wZW5zaGVsbC52MS5QdXNoU2FuZGJveExvZ3NSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLlB1c2hTYW5kYm94TG9nc1Jlc3BvbnNlIg2CtRgJCgdzYW5kYm94KAESZQoRQ29ubmVjdFN1cGVydmlzb3ISHy5vcGVuc2hlbGwudjEuU3VwZXJ2aXNvck1lc3NhZ2UaHC5vcGVuc2hlbGwudjEuR2F0ZXdheU1lc3NhZ2UiDYK1GAkKB3NhbmRib3goATABElQKC1JlbGF5U3RyZWFtEhgub3BlbnNoZWxsLnYxLlJlbGF5RnJhbWUaGC5vcGVuc2hlbGwudjEuUmVsYXlGcmFtZSINgrUYCQoHc2FuZGJveCgBMAESdwoMV2F0Y2hTYW5kYm94EiEub3BlbnNoZWxsLnYxLldhdGNoU2FuZGJveFJlcXVlc3QaIC5vcGVuc2hlbGwudjEuU2FuZGJveFN0cmVhbUV2ZW50IiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZDABEnwKFFN1Ym1pdFBvbGljeUFuYWx5c2lzEikub3BlbnNoZWxsLnYxLlN1Ym1pdFBvbGljeUFuYWx5c2lzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5TdWJtaXRQb2xpY3lBbmFseXNpc1Jlc3BvbnNlIg2CtRgJCgdzYW5kYm94EnoKDkdldERyYWZ0UG9saWN5EiMub3BlbnNoZWxsLnYxLkdldERyYWZ0UG9saWN5UmVxdWVzdBokLm9wZW5zaGVsbC52MS5HZXREcmFmdFBvbGljeVJlc3BvbnNlIh2CtRgZCgRkdWFsEgR1c2VyIgtjb25maWc6cmVhZBKHAQoRQXBwcm92ZURyYWZ0Q2h1bmsSJi5vcGVuc2hlbGwudjEuQXBwcm92ZURyYWZ0Q2h1bmtSZXF1ZXN0Gicub3BlbnNoZWxsLnYxLkFwcHJvdmVEcmFmdENodW5rUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRKEAQoQUmVqZWN0RHJhZnRDaHVuaxIlLm9wZW5zaGVsbC52MS5SZWplY3REcmFmdENodW5rUmVxdWVzdBomLm9wZW5zaGVsbC52MS5SZWplY3REcmFmdENodW5rUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRKTAQoVQXBwcm92ZUFsbERyYWZ0Q2h1bmtzEioub3BlbnNoZWxsLnYxLkFwcHJvdmVBbGxEcmFmdENodW5rc1JlcXVlc3QaKy5vcGVuc2hlbGwudjEuQXBwcm92ZUFsbERyYWZ0Q2h1bmtzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRJ+Cg5FZGl0RHJhZnRDaHVuaxIjLm9wZW5zaGVsbC52MS5FZGl0RHJhZnRDaHVua1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuRWRpdERyYWZ0Q2h1bmtSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEn4KDlVuZG9EcmFmdENodW5rEiMub3BlbnNoZWxsLnYxLlVuZG9EcmFmdENodW5rUmVxdWVzdBokLm9wZW5zaGVsbC52MS5VbmRvRHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUShAEKEENsZWFyRHJhZnRDaHVua3MSJS5vcGVuc2hlbGwudjEuQ2xlYXJEcmFmdENodW5rc1JlcXVlc3QaJi5vcGVuc2hlbGwudjEuQ2xlYXJEcmFmdENodW5rc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSfwoPR2V0RHJhZnRIaXN0b3J5EiQub3BlbnNoZWxsLnYxLkdldERyYWZ0SGlzdG9yeVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuR2V0RHJhZnRIaXN0b3J5UmVzcG9uc2UiH4K1GBsKBmJlYXJlchIEdXNlciILY29uZmlnOnJlYWQScwoRSXNzdWVTYW5kYm94VG9rZW4SJi5vcGVuc2hlbGwudjEuSXNzdWVTYW5kYm94VG9rZW5SZXF1ZXN0Gicub3BlbnNoZWxsLnYxLklzc3VlU2FuZGJveFRva2VuUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSeQoTUmVmcmVzaFNhbmRib3hUb2tlbhIoLm9wZW5zaGVsbC52MS5SZWZyZXNoU2FuZGJveFRva2VuUmVxdWVzdBopLm9wZW5zaGVsbC52MS5SZWZyZXNoU2FuZGJveFRva2VuUmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSjQEKD0NyZWF0ZVdvcmtzcGFjZRIkLm9wZW5zaGVsbC52MS5DcmVhdGVXb3Jrc3BhY2VSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLkNyZWF0ZVdvcmtzcGFjZVJlc3BvbnNlIi2CtRgpCgZiZWFyZXIaDnBsYXRmb3JtX2FkbWluIg93b3Jrc3BhY2U6d3JpdGUSeQoMR2V0V29ya3NwYWNlEiEub3BlbnNoZWxsLnYxLkdldFdvcmtzcGFjZVJlcXVlc3QaIi5vcGVuc2hlbGwudjEuR2V0V29ya3NwYWNlUmVzcG9uc2UiIoK1GB4KBmJlYXJlchIEdXNlciIOd29ya3NwYWNlOnJlYWQSfwoOTGlzdFdvcmtzcGFjZXMSIy5vcGVuc2hlbGwudjEuTGlzdFdvcmtzcGFjZXNSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkxpc3RXb3Jrc3BhY2VzUmVzcG9uc2UiIoK1GB4KBmJlYXJlchIEdXNlciIOd29ya3NwYWNlOnJlYWQSjQEKD0RlbGV0ZVdvcmtzcGFjZRIkLm9wZW5zaGVsbC52MS5EZWxldGVXb3Jrc3BhY2VSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLkRlbGV0ZVdvcmtzcGFjZVJlc3BvbnNlIi2CtRgpCgZiZWFyZXIaDnBsYXRmb3JtX2FkbWluIg93b3Jrc3BhY2U6d3JpdGUSjQEKEkFkZFdvcmtzcGFjZU1lbWJlchInLm9wZW5zaGVsbC52MS5BZGRXb3Jrc3BhY2VNZW1iZXJSZXF1ZXN0Gigub3BlbnNoZWxsLnYxLkFkZFdvcmtzcGFjZU1lbWJlclJlc3BvbnNlIiSCtRggCgZiZWFyZXISBWFkbWluIg93b3Jrc3BhY2U6d3JpdGUSlgEKFVJlbW92ZVdvcmtzcGFjZU1lbWJlchIqLm9wZW5zaGVsbC52MS5SZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLlJlbW92ZVdvcmtzcGFjZU1lbWJlclJlc3BvbnNlIiSCtRggCgZiZWFyZXISBWFkbWluIg93b3Jrc3BhY2U6d3JpdGUSkQEKFExpc3RXb3Jrc3BhY2VNZW1iZXJzEikub3BlbnNoZWxsLnYxLkxpc3RXb3Jrc3BhY2VNZW1iZXJzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlTWVtYmVyc1Jlc3BvbnNlIiKCtRgeCgZiZWFyZXISBHVzZXIiDndvcmtzcGFjZTpyZWFkYgZwcm90bzM", [file_datamodel, file_google_protobuf_struct, file_options, file_sandbox]);
11
+ export const file_openshell = /*@__PURE__*/ fileDesc("Cg9vcGVuc2hlbGwucHJvdG8SDG9wZW5zaGVsbC52MSIaChhJc3N1ZVNhbmRib3hUb2tlblJlcXVlc3QiRwoZSXNzdWVTYW5kYm94VG9rZW5SZXNwb25zZRITCgV0b2tlbhgBIAEoCUIEiLUYARIVCg1leHBpcmVzX2F0X21zGAIgASgDIj0KGlJlZnJlc2hTYW5kYm94VG9rZW5SZXF1ZXN0Eh8KF2V4dGVuc2lvbl9zZXJ2aWNlX25hbWVzGAEgAygJIpIBChtSZWZyZXNoU2FuZGJveFRva2VuUmVzcG9uc2USEwoFdG9rZW4YASABKAlCBIi1GAESFQoNZXhwaXJlc19hdF9tcxgCIAEoAxJHChVleHRlbnNpb25fY3JlZGVudGlhbHMYAyADKAsyKC5vcGVuc2hlbGwudjEuRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwiDwoNSGVhbHRoUmVxdWVzdCJOCg5IZWFsdGhSZXNwb25zZRIrCgZzdGF0dXMYASABKA4yGy5vcGVuc2hlbGwudjEuU2VydmljZVN0YXR1cxIPCgd2ZXJzaW9uGAIgASgJIhcKFUdldEN1cnJlbnRVc2VyUmVxdWVzdCJ5ChZHZXRDdXJyZW50VXNlclJlc3BvbnNlEg8KB3N1YmplY3QYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEg0KBXJvbGVzGAMgAygJEg4KBnNjb3BlcxgEIAMoCRIZChFpZGVudGl0eV9wcm92aWRlchgFIAEoCSIXChVHZXRHYXRld2F5SW5mb1JlcXVlc3QimAEKFkdldEdhdGV3YXlJbmZvUmVzcG9uc2USKwoGc3RhdHVzGAEgASgOMhsub3BlbnNoZWxsLnYxLlNlcnZpY2VTdGF0dXMSFwoPZ2F0ZXdheV92ZXJzaW9uGAIgASgJEjgKD2NvbXB1dGVfZHJpdmVycxgDIAMoCzIfLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVySW5mbyJgChFDb21wdXRlRHJpdmVySW5mbxIMCgRuYW1lGAEgASgJEj0KDGNhcGFiaWxpdGllcxgCIAEoCzInLm9wZW5zaGVsbC52MS5Db21wdXRlRHJpdmVyQ2FwYWJpbGl0aWVzIkgKGUNvbXB1dGVEcml2ZXJDYXBhYmlsaXRpZXMSEwoLZHJpdmVyX25hbWUYASABKAkSFgoOZHJpdmVyX3ZlcnNpb24YAiABKAkiwAEKB1NhbmRib3gSNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESJwoEc3BlYxgCIAEoCzIZLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYxIrCgZzdGF0dXMYAyABKAsyGy5vcGVuc2hlbGwudjEuU2FuZGJveFN0YXR1c0oECAQQBUoECAUQBlIFcGhhc2VSFmN1cnJlbnRfcG9saWN5X3ZlcnNpb24inwMKC1NhbmRib3hTcGVjEhEKCWxvZ19sZXZlbBgBIAEoCRI/CgtlbnZpcm9ubWVudBgFIAMoCzIqLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYy5FbnZpcm9ubWVudEVudHJ5Ei8KCHRlbXBsYXRlGAYgASgLMh0ub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZRIzCgZwb2xpY3kYByABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5EhEKCXByb3ZpZGVycxgIIAMoCRJBChVyZXNvdXJjZV9yZXF1aXJlbWVudHMYCSABKAsyIi5vcGVuc2hlbGwudjEuUmVzb3VyY2VSZXF1aXJlbWVudHMSDwoHY29tbWFuZBgMIAMoCRILCgN0dHkYDSABKAgaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIChALSgQICxAMUgpncHVfZGV2aWNlUhZwcm9wb3NhbF9hcHByb3ZhbF9tb2RlIkoKFFJlc291cmNlUmVxdWlyZW1lbnRzEjIKA2dwdRgBIAEoCzIlLm9wZW5zaGVsbC52MS5HcHVSZXNvdXJjZVJlcXVpcmVtZW50cyI3ChdHcHVSZXNvdXJjZVJlcXVpcmVtZW50cxISCgVjb3VudBgBIAEoDUgAiAEBQggKBl9jb3VudCLaBAoPU2FuZGJveFRlbXBsYXRlEg0KBWltYWdlGAEgASgJEhoKEnJ1bnRpbWVfY2xhc3NfbmFtZRgCIAEoCRIUCgxhZ2VudF9zb2NrZXQYAyABKAkSOQoGbGFiZWxzGAQgAygLMikub3BlbnNoZWxsLnYxLlNhbmRib3hUZW1wbGF0ZS5MYWJlbHNFbnRyeRJDCgthbm5vdGF0aW9ucxgFIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuQW5ub3RhdGlvbnNFbnRyeRJDCgtlbnZpcm9ubWVudBgGIAMoCzIuLm9wZW5zaGVsbC52MS5TYW5kYm94VGVtcGxhdGUuRW52aXJvbm1lbnRFbnRyeRIqCglyZXNvdXJjZXMYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhwKD3VzZXJfbmFtZXNwYWNlcxgKIAEoCEgAiAEBEi4KDWRyaXZlcl9jb25maWcYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Gi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEVudmlyb25tZW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUISChBfdXNlcl9uYW1lc3BhY2VzSgQICRAKUhZ2b2x1bWVfY2xhaW1fdGVtcGxhdGVzIqUCCg1TYW5kYm94U3RhdHVzEhQKDHNhbmRib3hfbmFtZRgBIAEoCRIRCglhZ2VudF9wb2QYAiABKAkSEAoIYWdlbnRfZmQYAyABKAkSEgoKc2FuZGJveF9mZBgEIAEoCRIyCgpjb25kaXRpb25zGAUgAygLMh4ub3BlbnNoZWxsLnYxLlNhbmRib3hDb25kaXRpb24SKQoFcGhhc2UYBiABKA4yGi5vcGVuc2hlbGwudjEuU2FuZGJveFBoYXNlEh4KFmN1cnJlbnRfcG9saWN5X3ZlcnNpb24YByABKA0SIAoYbWFpbl9wcm9jZXNzX2luc3RhbmNlX2lkGAggASgJEhYKCWV4aXRfY29kZRgJIAEoBUgAiAEBQgwKCl9leGl0X2NvZGUibwoQU2FuZGJveENvbmRpdGlvbhIMCgR0eXBlGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIOCgZyZWFzb24YAyABKAkSDwoHbWVzc2FnZRgEIAEoCRIcChRsYXN0X3RyYW5zaXRpb25fdGltZRgFIAEoCSLSAQoNUGxhdGZvcm1FdmVudBIUCgx0aW1lc3RhbXBfbXMYASABKAMSDgoGc291cmNlGAIgASgJEgwKBHR5cGUYAyABKAkSDgoGcmVhc29uGAQgASgJEg8KB21lc3NhZ2UYBSABKAkSOwoIbWV0YWRhdGEYBiADKAsyKS5vcGVuc2hlbGwudjEuUGxhdGZvcm1FdmVudC5NZXRhZGF0YUVudHJ5Gi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASLNAgoUQ3JlYXRlU2FuZGJveFJlcXVlc3QSJwoEc3BlYxgBIAEoCzIZLm9wZW5zaGVsbC52MS5TYW5kYm94U3BlYxIMCgRuYW1lGAIgASgJEj4KBmxhYmVscxgDIAMoCzIuLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdC5MYWJlbHNFbnRyeRJICgthbm5vdGF0aW9ucxgEIAMoCzIzLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdC5Bbm5vdGF0aW9uc0VudHJ5EhEKCXdvcmtzcGFjZRgFIAEoCRotCgtMYWJlbHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0ChFHZXRTYW5kYm94UmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJ4ChRMaXN0U2FuZGJveGVzUmVxdWVzdBINCgVsaW1pdBgBIAEoDRIOCgZvZmZzZXQYAiABKA0SFgoObGFiZWxfc2VsZWN0b3IYAyABKAkSEQoJd29ya3NwYWNlGAQgASgJEhYKDmFsbF93b3Jrc3BhY2VzGAUgASgIIkYKG0xpc3RTYW5kYm94UHJvdmlkZXJzUmVxdWVzdBIUCgxzYW5kYm94X25hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIoEBChxBdHRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0EhQKDHNhbmRib3hfbmFtZRgBIAEoCRIVCg1wcm92aWRlcl9uYW1lGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEQoJd29ya3NwYWNlGAQgASgJIoEBChxEZXRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0EhQKDHNhbmRib3hfbmFtZRgBIAEoCRIVCg1wcm92aWRlcl9uYW1lGAIgASgJEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAyABKAQSEQoJd29ya3NwYWNlGAQgASgJIjcKFERlbGV0ZVNhbmRib3hSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjUKElN0b3BTYW5kYm94UmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSI2ChNTdGFydFNhbmRib3hSZXF1ZXN0EgwKBG5hbWUYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjkKD1NhbmRib3hSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3giQQoVTGlzdFNhbmRib3hlc1Jlc3BvbnNlEigKCXNhbmRib3hlcxgBIAMoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94IlMKHExpc3RTYW5kYm94UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJZCh1BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXNwb25zZRImCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3gSEAoIYXR0YWNoZWQYAiABKAgiWQodRGV0YWNoU2FuZGJveFByb3ZpZGVyUmVzcG9uc2USJgoHc2FuZGJveBgBIAEoCzIVLm9wZW5zaGVsbC52MS5TYW5kYm94EhAKCGRldGFjaGVkGAIgASgIIigKFURlbGV0ZVNhbmRib3hSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIi0KF0NyZWF0ZVNzaFNlc3Npb25SZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkivAEKGENyZWF0ZVNzaFNlc3Npb25SZXNwb25zZRISCgpzYW5kYm94X2lkGAEgASgJEhMKBXRva2VuGAIgASgJQgSItRgBEhQKDGdhdGV3YXlfaG9zdBgDIAEoCRIUCgxnYXRld2F5X3BvcnQYBCABKA0SFgoOZ2F0ZXdheV9zY2hlbWUYBSABKAkSHAoUaG9zdF9rZXlfZmluZ2VycHJpbnQYByABKAkSFQoNZXhwaXJlc19hdF9tcxgIIAEoAyJwChRFeHBvc2VTZXJ2aWNlUmVxdWVzdBIPCgdzYW5kYm94GAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEwoLdGFyZ2V0X3BvcnQYAyABKA0SDgoGZG9tYWluGAQgASgIEhEKCXdvcmtzcGFjZRgFIAEoCSJIChFHZXRTZXJ2aWNlUmVxdWVzdBIPCgdzYW5kYm94GAEgASgJEg8KB3NlcnZpY2UYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJInAKE0xpc3RTZXJ2aWNlc1JlcXVlc3QSDwoHc2FuZGJveBgBIAEoCRINCgVsaW1pdBgCIAEoDRIOCgZvZmZzZXQYAyABKA0SEQoJd29ya3NwYWNlGAQgASgJEhYKDmFsbF93b3Jrc3BhY2VzGAUgASgIIk8KFExpc3RTZXJ2aWNlc1Jlc3BvbnNlEjcKCHNlcnZpY2VzGAEgAygLMiUub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludFJlc3BvbnNlIksKFERlbGV0ZVNlcnZpY2VSZXF1ZXN0Eg8KB3NhbmRib3gYASABKAkSDwoHc2VydmljZRgCIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkiKAoVRGVsZXRlU2VydmljZVJlc3BvbnNlEg8KB2RlbGV0ZWQYASABKAgirAEKD1NlcnZpY2VFbmRwb2ludBI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRISCgpzYW5kYm94X2lkGAIgASgJEhQKDHNhbmRib3hfbmFtZRgDIAEoCRIUCgxzZXJ2aWNlX25hbWUYBCABKAkSEwoLdGFyZ2V0X3BvcnQYBSABKA0SDgoGZG9tYWluGAYgASgIIlcKF1NlcnZpY2VFbmRwb2ludFJlc3BvbnNlEi8KCGVuZHBvaW50GAEgASgLMh0ub3BlbnNoZWxsLnYxLlNlcnZpY2VFbmRwb2ludBILCgN1cmwYAiABKAkiLgoXUmV2b2tlU3NoU2Vzc2lvblJlcXVlc3QSEwoFdG9rZW4YASABKAlCBIi1GAEiKwoYUmV2b2tlU3NoU2Vzc2lvblJlc3BvbnNlEg8KB3Jldm9rZWQYASABKAgilwIKEkV4ZWNTYW5kYm94UmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEg8KB2NvbW1hbmQYAiADKAkSDwoHd29ya2RpchgDIAEoCRJGCgtlbnZpcm9ubWVudBgEIAMoCzIxLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3QuRW52aXJvbm1lbnRFbnRyeRIXCg90aW1lb3V0X3NlY29uZHMYBSABKA0SDQoFc3RkaW4YBiABKAwSCwoDdHR5GAcgASgIEgwKBGNvbHMYCCABKA0SDAoEcm93cxgJIAEoDRoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiIQoRRXhlY1NhbmRib3hTdGRvdXQSDAoEZGF0YRgBIAEoDCIhChFFeGVjU2FuZGJveFN0ZGVychIMCgRkYXRhGAEgASgMIiQKD0V4ZWNTYW5kYm94RXhpdBIRCglleGl0X2NvZGUYASABKAUisgEKEEV4ZWNTYW5kYm94RXZlbnQSMQoGc3Rkb3V0GAEgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3Rkb3V0SAASMQoGc3RkZXJyGAIgASgLMh8ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94U3RkZXJySAASLQoEZXhpdBgDIAEoCzIdLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV4aXRIAEIJCgdwYXlsb2FkIr8BCg5UY3BGb3J3YXJkSW5pdBISCgpzYW5kYm94X2lkGAEgASgJEhIKCnNlcnZpY2VfaWQYBCABKAkSKwoDc3NoGAUgASgLMhwub3BlbnNoZWxsLnYxLlNzaFJlbGF5VGFyZ2V0SAASKwoDdGNwGAYgASgLMhwub3BlbnNoZWxsLnYxLlRjcFJlbGF5VGFyZ2V0SAASIQoTYXV0aG9yaXphdGlvbl90b2tlbhgHIAEoCUIEiLUYAUIICgZ0YXJnZXQiWgoPVGNwRm9yd2FyZEZyYW1lEiwKBGluaXQYASABKAsyHC5vcGVuc2hlbGwudjEuVGNwRm9yd2FyZEluaXRIABIOCgRkYXRhGAIgASgMSABCCQoHcGF5bG9hZCKaAQoQRXhlY1NhbmRib3hJbnB1dBIxCgVzdGFydBgBIAEoCzIgLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFJlcXVlc3RIABIPCgVzdGRpbhgCIAEoDEgAEjcKBnJlc2l6ZRgDIAEoCzIlLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveFdpbmRvd1Jlc2l6ZUgAQgkKB3BheWxvYWQiNQoXRXhlY1NhbmRib3hXaW5kb3dSZXNpemUSDAoEY29scxgBIAEoDRIMCgRyb3dzGAIgASgNIpMBCgpTc2hTZXNzaW9uEjQKCG1ldGFkYXRhGAEgASgLMiIub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5PYmplY3RNZXRhEhIKCnNhbmRib3hfaWQYAiABKAkSEwoFdG9rZW4YAyABKAlCBIi1GAESFQoNZXhwaXJlc19hdF9tcxgEIAEoAxIPCgdyZXZva2VkGAUgASgIIuwBChNXYXRjaFNhbmRib3hSZXF1ZXN0EgoKAmlkGAEgASgJEhUKDWZvbGxvd19zdGF0dXMYAiABKAgSEwoLZm9sbG93X2xvZ3MYAyABKAgSFQoNZm9sbG93X2V2ZW50cxgEIAEoCBIWCg5sb2dfdGFpbF9saW5lcxgFIAEoDRISCgpldmVudF90YWlsGAYgASgNEhgKEHN0b3Bfb25fdGVybWluYWwYByABKAgSFAoMbG9nX3NpbmNlX21zGAggASgDEhMKC2xvZ19zb3VyY2VzGAkgAygJEhUKDWxvZ19taW5fbGV2ZWwYCiABKAkimwIKElNhbmRib3hTdHJlYW1FdmVudBIoCgdzYW5kYm94GAEgASgLMhUub3BlbnNoZWxsLnYxLlNhbmRib3hIABIrCgNsb2cYAiABKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmVIABIsCgVldmVudBgDIAEoCzIbLm9wZW5zaGVsbC52MS5QbGF0Zm9ybUV2ZW50SAASNQoHd2FybmluZxgEIAEoCzIiLm9wZW5zaGVsbC52MS5TYW5kYm94U3RyZWFtV2FybmluZ0gAEj4KE2RyYWZ0X3BvbGljeV91cGRhdGUYBSABKAsyHy5vcGVuc2hlbGwudjEuRHJhZnRQb2xpY3lVcGRhdGVIAEIJCgdwYXlsb2FkIuMBCg5TYW5kYm94TG9nTGluZRISCgpzYW5kYm94X2lkGAEgASgJEhQKDHRpbWVzdGFtcF9tcxgCIAEoAxINCgVsZXZlbBgDIAEoCRIOCgZ0YXJnZXQYBCABKAkSDwoHbWVzc2FnZRgFIAEoCRIOCgZzb3VyY2UYBiABKAkSOAoGZmllbGRzGAcgAygLMigub3BlbnNoZWxsLnYxLlNhbmRib3hMb2dMaW5lLkZpZWxkc0VudHJ5Gi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiJwoUU2FuZGJveFN0cmVhbVdhcm5pbmcSDwoHbWVzc2FnZRgBIAEoCSJeChVDcmVhdGVQcm92aWRlclJlcXVlc3QSMgoIcHJvdmlkZXIYASABKAsyIC5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLlByb3ZpZGVyEhEKCXdvcmtzcGFjZRgCIAEoCSI1ChJHZXRQcm92aWRlclJlcXVlc3QSDAoEbmFtZRgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkiYAoUTGlzdFByb3ZpZGVyc1JlcXVlc3QSDQoFbGltaXQYASABKA0SDgoGb2Zmc2V0GAIgASgNEhEKCXdvcmtzcGFjZRgDIAEoCRIWCg5hbGxfd29ya3NwYWNlcxgEIAEoCCL+AQoVVXBkYXRlUHJvdmlkZXJSZXF1ZXN0EjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlchJgChhjcmVkZW50aWFsX2V4cGlyZXNfYXRfbXMYAiADKAsyPi5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJSZXF1ZXN0LkNyZWRlbnRpYWxFeHBpcmVzQXRNc0VudHJ5EhEKCXdvcmtzcGFjZRgDIAEoCRo8ChpDcmVkZW50aWFsRXhwaXJlc0F0TXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAM6AjgBIjgKFURlbGV0ZVByb3ZpZGVyUmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJGChBQcm92aWRlclJlc3BvbnNlEjIKCHByb3ZpZGVyGAEgASgLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJMChVMaXN0UHJvdmlkZXJzUmVzcG9uc2USMwoJcHJvdmlkZXJzGAEgAygLMiAub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Qcm92aWRlciJPChtMaXN0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSDQoFbGltaXQYASABKA0SDgoGb2Zmc2V0GAIgASgNEhEKCXdvcmtzcGFjZRgDIAEoCSI6ChlHZXRQcm92aWRlclByb2ZpbGVSZXF1ZXN0EgoKAmlkGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJbChlQcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEi4KB3Byb2ZpbGUYASABKAsyHS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlEg4KBnNvdXJjZRgCIAEoCSJxChlQcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEg4KBnNvdXJjZRgBIAEoCRISCgpwcm9maWxlX2lkGAIgASgJEg0KBWZpZWxkGAMgASgJEg8KB21lc3NhZ2UYBCABKAkSEAoIc2V2ZXJpdHkYBSABKAkiegosUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSDAoEaG9zdBgBIAEoCRIMCgRwb3J0GAIgASgNEgwKBHBhdGgYAyABKAkSEAoIYXVkaWVuY2UYBCABKAkSDgoGc2NvcGVzGAUgAygJImoKKFByb3ZpZGVyQ3JlZGVudGlhbFRva2VuR3JhbnRTdWJqZWN0VG9rZW4SDgoGc291cmNlGAEgASgJEhIKCmNyZWRlbnRpYWwYAiABKAkSGgoSc3ViamVjdF90b2tlbl90eXBlGAMgASgJIrYDChxQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50EhYKDnRva2VuX2VuZHBvaW50GAEgASgJEhAKCGF1ZGllbmNlGAIgASgJEhkKEWp3dF9zdmlkX2F1ZGllbmNlGAYgASgJEg4KBnNjb3BlcxgDIAMoCRIZChFjYWNoZV90dGxfc2Vjb25kcxgEIAEoAxJWChJhdWRpZW5jZV9vdmVycmlkZXMYBSADKAsyOi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudEF1ZGllbmNlT3ZlcnJpZGUSHQoVY2xpZW50X2Fzc2VydGlvbl90eXBlGAcgASgJEkIKCmdyYW50X3R5cGUYCCABKA4yLi5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsVG9rZW5HcmFudFR5cGUSTQoNc3ViamVjdF90b2tlbhgJIAEoCzI2Lm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50U3ViamVjdFRva2VuEhwKFHJlcXVlc3RlZF90b2tlbl90eXBlGAogASgJIrICChlQcm92aWRlclByb2ZpbGVDcmVkZW50aWFsEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEAoIZW52X3ZhcnMYAyADKAkSEAoIcmVxdWlyZWQYBCABKAgSEgoKYXV0aF9zdHlsZRgFIAEoCRITCgtoZWFkZXJfbmFtZRgGIAEoCRITCgtxdWVyeV9wYXJhbRgHIAEoCRI4CgdyZWZyZXNoGAggASgLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2gSFQoNcGF0aF90ZW1wbGF0ZRgJIAEoCRI/Cgt0b2tlbl9ncmFudBgKIAEoCzIqLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50ImgKIVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hNYXRlcmlhbBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhAKCHJlcXVpcmVkGAMgASgIEg4KBnNlY3JldBgEIAEoCCJFCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0Eg4KBm91dHB1dBgBIAEoCRISCgpjcmVkZW50aWFsGAIgASgJIs0CChlQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoEkEKCHN0cmF0ZWd5GAEgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRIRCgl0b2tlbl91cmwYAiABKAkSDgoGc2NvcGVzGAMgAygJEh4KFnJlZnJlc2hfYmVmb3JlX3NlY29uZHMYBCABKAMSHAoUbWF4X2xpZmV0aW1lX3NlY29uZHMYBSABKAMSQQoIbWF0ZXJpYWwYBiADKAsyLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaE1hdGVyaWFsEkkKEmFkZGl0aW9uYWxfb3V0cHV0cxgHIAMoCzItLm9wZW5zaGVsbC52MS5Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoT3V0cHV0IpsCCh9Qcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdHVzEhUKDXByb3ZpZGVyX25hbWUYASABKAkSEwoLcHJvdmlkZXJfaWQYAiABKAkSFgoOY3JlZGVudGlhbF9rZXkYAyABKAkSQQoIc3RyYXRlZ3kYBCABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5Eg4KBnN0YXR1cxgFIAEoCRIVCg1leHBpcmVzX2F0X21zGAYgASgDEhoKEm5leHRfcmVmcmVzaF9hdF9tcxgHIAEoAxIaChJsYXN0X3JlZnJlc2hfYXRfbXMYCCABKAMSEgoKbGFzdF9lcnJvchgJIAEoCSIvChhQcm92aWRlclByb2ZpbGVEaXNjb3ZlcnkSEwoLY3JlZGVudGlhbHMYASADKAkizwgKJFN0b3JlZFByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0ZRI0CghtZXRhZGF0YRgBIAEoCzIiLm9wZW5zaGVsbC5kYXRhbW9kZWwudjEuT2JqZWN0TWV0YRITCgtwcm92aWRlcl9pZBgCIAEoCRIVCg1wcm92aWRlcl9uYW1lGAMgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAQgASgJEkEKCHN0cmF0ZWd5GAUgASgOMi8ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRJYCghtYXRlcmlhbBgGIAMoCzJALm9wZW5zaGVsbC52MS5TdG9yZWRQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdGUuTWF0ZXJpYWxFbnRyeUIEiLUYARIcChRzZWNyZXRfbWF0ZXJpYWxfa2V5cxgHIAMoCRIVCg1leHBpcmVzX2F0X21zGAggASgDEhoKEm5leHRfcmVmcmVzaF9hdF9tcxgJIAEoAxIaChJsYXN0X3JlZnJlc2hfYXRfbXMYCiABKAMSDgoGc3RhdHVzGAsgASgJEhIKCmxhc3RfZXJyb3IYDCABKAkSEQoJdG9rZW5fdXJsGA0gASgJEg4KBnNjb3BlcxgOIAMoCRIeChZyZWZyZXNoX2JlZm9yZV9zZWNvbmRzGA8gASgDEhwKFG1heF9saWZldGltZV9zZWNvbmRzGBAgASgDEmwKFmFkZGl0aW9uYWxfb3V0cHV0X2tleXMYESADKAsyTC5vcGVuc2hlbGwudjEuU3RvcmVkUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXRlLkFkZGl0aW9uYWxPdXRwdXRLZXlzRW50cnkSGwoTYXV0aG9yaXphdGlvbl9lcG9jaBgSIAEoCRJuChdzZWNyZXRfbWF0ZXJpYWxfaGFuZGxlcxgTIAMoCzJNLm9wZW5zaGVsbC52MS5TdG9yZWRQcm92aWRlckNyZWRlbnRpYWxSZWZyZXNoU3RhdGUuU2VjcmV0TWF0ZXJpYWxIYW5kbGVzRW50cnkSTQoYcGVuZGluZ19zZWNyZXRfZGVsZXRpb25zGBQgAygLMisub3BlbnNoZWxsLnYxLlN0b3JlZFJlZnJlc2hNYXRlcmlhbERlbGV0aW9uGi8KDU1hdGVyaWFsRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo7ChlBZGRpdGlvbmFsT3V0cHV0S2V5c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaZgoaU2VjcmV0TWF0ZXJpYWxIYW5kbGVzRW50cnkSCwoDa2V5GAEgASgJEjcKBXZhbHVlGAIgASgLMigub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5DcmVkZW50aWFsSGFuZGxlOgI4ASJvCh1TdG9yZWRSZWZyZXNoTWF0ZXJpYWxEZWxldGlvbhIUCgxtYXRlcmlhbF9rZXkYASABKAkSOAoGaGFuZGxlGAIgASgLMigub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5DcmVkZW50aWFsSGFuZGxlIl4KH0dldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1JlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJImYKIEdldFByb3ZpZGVyUmVmcmVzaFN0YXR1c1Jlc3BvbnNlEkIKC2NyZWRlbnRpYWxzGAEgAygLMi0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdGF0dXMi8wIKH0NvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkSFgoOY3JlZGVudGlhbF9rZXkYAiABKAkSQQoIc3RyYXRlZ3kYAyABKA4yLy5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0cmF0ZWd5ElMKCG1hdGVyaWFsGAQgAygLMjsub3BlbnNoZWxsLnYxLkNvbmZpZ3VyZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QuTWF0ZXJpYWxFbnRyeUIEiLUYARIcChRzZWNyZXRfbWF0ZXJpYWxfa2V5cxgFIAMoCRIaCg1leHBpcmVzX2F0X21zGAYgASgDSACIAQESEQoJd29ya3NwYWNlGAcgASgJGi8KDU1hdGVyaWFsRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIQCg5fZXhwaXJlc19hdF9tcyJhCiBDb25maWd1cmVQcm92aWRlclJlZnJlc2hSZXNwb25zZRI9CgZzdGF0dXMYASABKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyJeCh9Sb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXF1ZXN0EhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSJhCiBSb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXNwb25zZRI9CgZzdGF0dXMYASABKAsyLS5vcGVuc2hlbGwudjEuUHJvdmlkZXJDcmVkZW50aWFsUmVmcmVzaFN0YXR1cyJbChxEZWxldGVQcm92aWRlclJlZnJlc2hSZXF1ZXN0EhAKCHByb3ZpZGVyGAEgASgJEhYKDmNyZWRlbnRpYWxfa2V5GAIgASgJEhEKCXdvcmtzcGFjZRgDIAEoCSIwCh1EZWxldGVQcm92aWRlclJlZnJlc2hSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIrgECg9Qcm92aWRlclByb2ZpbGUSCgoCaWQYASABKAkSFAoMZGlzcGxheV9uYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEjcKCGNhdGVnb3J5GAQgASgOMiUub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUNhdGVnb3J5EjwKC2NyZWRlbnRpYWxzGAUgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZUNyZWRlbnRpYWwSOAoJZW5kcG9pbnRzGAYgAygLMiUub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0VuZHBvaW50EjUKCGJpbmFyaWVzGAcgAygLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuTmV0d29ya0JpbmFyeRIZChFpbmZlcmVuY2VfY2FwYWJsZRgIIAEoCBI5CglkaXNjb3ZlcnkYCSABKAsyJi5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlzY292ZXJ5EhgKEHJlc291cmNlX3ZlcnNpb24YCiABKAQSQwoLYW5ub3RhdGlvbnMYCyADKAsyLi5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlLkFubm90YXRpb25zRW50cnkSDgoGc291cmNlGAwgASgJEg0KBXNjb3BlGA0gASgJGjIKEEFubm90YXRpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJ9ChVTdG9yZWRQcm92aWRlclByb2ZpbGUSNAoIbWV0YWRhdGEYASABKAsyIi5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLk9iamVjdE1ldGESLgoHcHJvZmlsZRgCIAEoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUiSQoXUHJvdmlkZXJQcm9maWxlUmVzcG9uc2USLgoHcHJvZmlsZRgBIAEoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUiTwocTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRIvCghwcm9maWxlcxgBIAMoCzIdLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGUibQodSW1wb3J0UHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSOQoIcHJvZmlsZXMYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlSW1wb3J0SXRlbRIRCgl3b3Jrc3BhY2UYAiABKAkioQEKHkltcG9ydFByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZRI8CgtkaWFnbm9zdGljcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVEaWFnbm9zdGljEi8KCHByb2ZpbGVzGAIgAygLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIQCghpbXBvcnRlZBgDIAEoCCKbAQodVXBkYXRlUHJvdmlkZXJQcm9maWxlc1JlcXVlc3QSOAoHcHJvZmlsZRgBIAEoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YAiABKAQSCgoCaWQYAyABKAkSEQoJd29ya3NwYWNlGAQgASgJIp8BCh5VcGRhdGVQcm92aWRlclByb2ZpbGVzUmVzcG9uc2USPAoLZGlhZ25vc3RpY3MYASADKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlRGlhZ25vc3RpYxIuCgdwcm9maWxlGAIgASgLMh0ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZRIPCgd1cGRhdGVkGAMgASgIImsKG0xpbnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBI5Cghwcm9maWxlcxgBIAMoCzInLm9wZW5zaGVsbC52MS5Qcm92aWRlclByb2ZpbGVJbXBvcnRJdGVtEhEKCXdvcmtzcGFjZRgCIAEoCSJrChxMaW50UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlEjwKC2RpYWdub3N0aWNzGAEgAygLMicub3BlbnNoZWxsLnYxLlByb3ZpZGVyUHJvZmlsZURpYWdub3N0aWMSDQoFdmFsaWQYAiABKAgiKQoWRGVsZXRlUHJvdmlkZXJSZXNwb25zZRIPCgdkZWxldGVkGAEgASgIIj0KHERlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlcXVlc3QSCgoCaWQYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIjAKHURlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlc3BvbnNlEg8KB2RlbGV0ZWQYASABKAgiZwokR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSKwojc3VwcG9ydHNfc3RhdGljX2NyZWRlbnRpYWxfYmluZGluZ3MYAiABKAgiSwofU3RhdGljQ3JlZGVudGlhbEVuZHBvaW50QmluZGluZxIMCgRob3N0GAEgASgJEgwKBHBvcnQYAiABKA0SDAoEcGF0aBgDIAEoCSKcAQoXU3RhdGljQ3JlZGVudGlhbEJpbmRpbmcSQAoJZW5kcG9pbnRzGAEgAygLMi0ub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxFbmRwb2ludEJpbmRpbmcSGwoTY3JlZGVudGlhbF9pZGVudGl0eRgCIAEoCRIiChp3b3JrbG9hZF9jcmVkZW50aWFsX2hhbmRsZRgDIAEoCSLdBgolR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZRJfCgtlbnZpcm9ubWVudBgBIAMoCzJELm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkVudmlyb25tZW50RW50cnlCBIi1GAESHQoVcHJvdmlkZXJfZW52X3JldmlzaW9uGAIgASgEEnAKGGNyZWRlbnRpYWxfZXhwaXJlc19hdF9tcxgDIAMoCzJOLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLkNyZWRlbnRpYWxFeHBpcmVzQXRNc0VudHJ5EmgKE2R5bmFtaWNfY3JlZGVudGlhbHMYBCADKAsySy5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXNwb25zZS5EeW5hbWljQ3JlZGVudGlhbHNFbnRyeRJ1ChpzdGF0aWNfY3JlZGVudGlhbF9iaW5kaW5ncxgFIAMoCzJRLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94UHJvdmlkZXJFbnZpcm9ubWVudFJlc3BvbnNlLlN0YXRpY0NyZWRlbnRpYWxCaW5kaW5nc0VudHJ5EiMKG25vbl9zZWNyZXRfZW52aXJvbm1lbnRfa2V5cxgGIAMoCRoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaPAoaQ3JlZGVudGlhbEV4cGlyZXNBdE1zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgDOgI4ARpiChdEeW5hbWljQ3JlZGVudGlhbHNFbnRyeRILCgNrZXkYASABKAkSNgoFdmFsdWUYAiABKAsyJy5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlQ3JlZGVudGlhbDoCOAEaZgodU3RhdGljQ3JlZGVudGlhbEJpbmRpbmdzRW50cnkSCwoDa2V5GAEgASgJEjQKBXZhbHVlGAIgASgLMiUub3BlbnNoZWxsLnYxLlN0YXRpY0NyZWRlbnRpYWxCaW5kaW5nOgI4ASKGAQojRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRIQCghwcm92aWRlchgCIAEoCRIWCg5jcmVkZW50aWFsX2tleRgDIAEoCRIhChNzdXBlcnZpc29yX2p3dF9zdmlkGAQgASgJQgSItRgBImoKJEV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW5SZXNwb25zZRIaCgxhY2Nlc3NfdG9rZW4YASABKAlCBIi1GAESEgoKZXhwaXJlc19pbhgCIAEoAxISCgp0b2tlbl90eXBlGAMgASgJIsEDChNVcGRhdGVDb25maWdSZXF1ZXN0EgwKBG5hbWUYASABKAkSMwoGcG9saWN5GAIgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRITCgtzZXR0aW5nX2tleRgDIAEoCRI5Cg1zZXR0aW5nX3ZhbHVlGAQgASgLMiIub3BlbnNoZWxsLnNhbmRib3gudjEuU2V0dGluZ1ZhbHVlEhYKDmRlbGV0ZV9zZXR0aW5nGAUgASgIEg4KBmdsb2JhbBgGIAEoCBI8ChBtZXJnZV9vcGVyYXRpb25zGAcgAygLMiIub3BlbnNoZWxsLnYxLlBvbGljeU1lcmdlT3BlcmF0aW9uEiEKGWV4cGVjdGVkX3Jlc291cmNlX3ZlcnNpb24YCCABKAQSRwoLYW5ub3RhdGlvbnMYCSADKAsyMi5vcGVuc2hlbGwudjEuVXBkYXRlQ29uZmlnUmVxdWVzdC5Bbm5vdGF0aW9uc0VudHJ5EhEKCXdvcmtzcGFjZRgKIAEoCRoyChBBbm5vdGF0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEi9wIKFFBvbGljeU1lcmdlT3BlcmF0aW9uEjAKCGFkZF9ydWxlGAEgASgLMhwub3BlbnNoZWxsLnYxLkFkZE5ldHdvcmtSdWxlSAASPgoPcmVtb3ZlX2VuZHBvaW50GAIgASgLMiMub3BlbnNoZWxsLnYxLlJlbW92ZU5ldHdvcmtFbmRwb2ludEgAEjYKC3JlbW92ZV9ydWxlGAMgASgLMh8ub3BlbnNoZWxsLnYxLlJlbW92ZU5ldHdvcmtSdWxlSAASNAoOYWRkX2RlbnlfcnVsZXMYBCABKAsyGi5vcGVuc2hlbGwudjEuQWRkRGVueVJ1bGVzSAASNgoPYWRkX2FsbG93X3J1bGVzGAUgASgLMhsub3BlbnNoZWxsLnYxLkFkZEFsbG93UnVsZXNIABI6Cg1yZW1vdmVfYmluYXJ5GAYgASgLMiEub3BlbnNoZWxsLnYxLlJlbW92ZU5ldHdvcmtCaW5hcnlIAEILCglvcGVyYXRpb24iWgoOQWRkTmV0d29ya1J1bGUSEQoJcnVsZV9uYW1lGAEgASgJEjUKBHJ1bGUYAiABKAsyJy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrUG9saWN5UnVsZSJGChVSZW1vdmVOZXR3b3JrRW5kcG9pbnQSEQoJcnVsZV9uYW1lGAEgASgJEgwKBGhvc3QYAiABKAkSDAoEcG9ydBgDIAEoDSImChFSZW1vdmVOZXR3b3JrUnVsZRIRCglydWxlX25hbWUYASABKAkiYAoMQWRkRGVueVJ1bGVzEgwKBGhvc3QYASABKAkSDAoEcG9ydBgCIAEoDRI0CgpkZW55X3J1bGVzGAMgAygLMiAub3BlbnNoZWxsLnNhbmRib3gudjEuTDdEZW55UnVsZSJYCg1BZGRBbGxvd1J1bGVzEgwKBGhvc3QYASABKAkSDAoEcG9ydBgCIAEoDRIrCgVydWxlcxgDIAMoCzIcLm9wZW5zaGVsbC5zYW5kYm94LnYxLkw3UnVsZSI9ChNSZW1vdmVOZXR3b3JrQmluYXJ5EhEKCXJ1bGVfbmFtZRgBIAEoCRITCgtiaW5hcnlfcGF0aBgCIAEoCSLmAQoUVXBkYXRlQ29uZmlnUmVzcG9uc2USDwoHdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIZChFzZXR0aW5nc19yZXZpc2lvbhgDIAEoBBIPCgdkZWxldGVkGAQgASgIEkgKC2Fubm90YXRpb25zGAUgAygLMjMub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1Jlc3BvbnNlLkFubm90YXRpb25zRW50cnkaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBImEKHUdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXF1ZXN0EgwKBG5hbWUYASABKAkSDwoHdmVyc2lvbhgCIAEoDRIOCgZnbG9iYWwYAyABKAgSEQoJd29ya3NwYWNlGAQgASgJIm8KHkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXNwb25zZRI1CghyZXZpc2lvbhgBIAEoCzIjLm9wZW5zaGVsbC52MS5TYW5kYm94UG9saWN5UmV2aXNpb24SFgoOYWN0aXZlX3ZlcnNpb24YAiABKA0ibAoaTGlzdFNhbmRib3hQb2xpY2llc1JlcXVlc3QSDAoEbmFtZRgBIAEoCRINCgVsaW1pdBgCIAEoDRIOCgZvZmZzZXQYAyABKA0SDgoGZ2xvYmFsGAQgASgIEhEKCXdvcmtzcGFjZRgFIAEoCSJVChtMaXN0U2FuZGJveFBvbGljaWVzUmVzcG9uc2USNgoJcmV2aXNpb25zGAEgAygLMiMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbiKAAQoZUmVwb3J0UG9saWN5U3RhdHVzUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEg8KB3ZlcnNpb24YAiABKA0SKgoGc3RhdHVzGAMgASgOMhoub3BlbnNoZWxsLnYxLlBvbGljeVN0YXR1cxISCgpsb2FkX2Vycm9yGAQgASgJIhwKGlJlcG9ydFBvbGljeVN0YXR1c1Jlc3BvbnNlItsCChVTYW5kYm94UG9saWN5UmV2aXNpb24SDwoHdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIqCgZzdGF0dXMYAyABKA4yGi5vcGVuc2hlbGwudjEuUG9saWN5U3RhdHVzEhIKCmxvYWRfZXJyb3IYBCABKAkSFQoNY3JlYXRlZF9hdF9tcxgFIAEoAxIUCgxsb2FkZWRfYXRfbXMYBiABKAMSMwoGcG9saWN5GAcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRJHCgpwcm92ZW5hbmNlGAggAygLMjMub3BlbnNoZWxsLnYxLlNhbmRib3hQb2xpY3lSZXZpc2lvbi5Qcm92ZW5hbmNlRW50cnkaMQoPUHJvdmVuYW5jZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEigwEKFUdldFNhbmRib3hMb2dzUmVxdWVzdBISCgpzYW5kYm94X2lkGAEgASgJEg0KBWxpbmVzGAIgASgNEhAKCHNpbmNlX21zGAMgASgDEg8KB3NvdXJjZXMYBCADKAkSEQoJbWluX2xldmVsGAUgASgJEhEKCXdvcmtzcGFjZRgGIAEoCSJYChZQdXNoU2FuZGJveExvZ3NSZXF1ZXN0EhIKCnNhbmRib3hfaWQYASABKAkSKgoEbG9ncxgCIAMoCzIcLm9wZW5zaGVsbC52MS5TYW5kYm94TG9nTGluZSIZChdQdXNoU2FuZGJveExvZ3NSZXNwb25zZSJaChZHZXRTYW5kYm94TG9nc1Jlc3BvbnNlEioKBGxvZ3MYASADKAsyHC5vcGVuc2hlbGwudjEuU2FuZGJveExvZ0xpbmUSFAoMYnVmZmVyX3RvdGFsGAIgASgNIvMBChFTdXBlcnZpc29yTWVzc2FnZRIuCgVoZWxsbxgBIAEoCzIdLm9wZW5zaGVsbC52MS5TdXBlcnZpc29ySGVsbG9IABI2CgloZWFydGJlYXQYAiABKAsyIS5vcGVuc2hlbGwudjEuU3VwZXJ2aXNvckhlYXJ0YmVhdEgAEjoKEXJlbGF5X29wZW5fcmVzdWx0GAMgASgLMh0ub3BlbnNoZWxsLnYxLlJlbGF5T3BlblJlc3VsdEgAEi8KC3JlbGF5X2Nsb3NlGAQgASgLMhgub3BlbnNoZWxsLnYxLlJlbGF5Q2xvc2VIAEIJCgdwYXlsb2FkIqYCCg5HYXRld2F5TWVzc2FnZRI5ChBzZXNzaW9uX2FjY2VwdGVkGAEgASgLMh0ub3BlbnNoZWxsLnYxLlNlc3Npb25BY2NlcHRlZEgAEjkKEHNlc3Npb25fcmVqZWN0ZWQYAiABKAsyHS5vcGVuc2hlbGwudjEuU2Vzc2lvblJlamVjdGVkSAASMwoJaGVhcnRiZWF0GAMgASgLMh4ub3BlbnNoZWxsLnYxLkdhdGV3YXlIZWFydGJlYXRIABItCgpyZWxheV9vcGVuGAQgASgLMhcub3BlbnNoZWxsLnYxLlJlbGF5T3BlbkgAEi8KC3JlbGF5X2Nsb3NlGAUgASgLMhgub3BlbnNoZWxsLnYxLlJlbGF5Q2xvc2VIAEIJCgdwYXlsb2FkIjoKD1N1cGVydmlzb3JIZWxsbxISCgpzYW5kYm94X2lkGAEgASgJEhMKC2luc3RhbmNlX2lkGAIgASgJIkYKD1Nlc3Npb25BY2NlcHRlZBISCgpzZXNzaW9uX2lkGAEgASgJEh8KF2hlYXJ0YmVhdF9pbnRlcnZhbF9zZWNzGAIgASgNIiEKD1Nlc3Npb25SZWplY3RlZBIOCgZyZWFzb24YASABKAkiFQoTU3VwZXJ2aXNvckhlYXJ0YmVhdCISChBHYXRld2F5SGVhcnRiZWF0IloKHFJlcG9ydE1haW5Qcm9jZXNzRXhpdFJlcXVlc3QSEgoKc2FuZGJveF9pZBgBIAEoCRITCgtpbnN0YW5jZV9pZBgCIAEoCRIRCglleGl0X2NvZGUYAyABKAUiHwodUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVzcG9uc2UilwEKCVJlbGF5T3BlbhISCgpjaGFubmVsX2lkGAEgASgJEisKA3NzaBgCIAEoCzIcLm9wZW5zaGVsbC52MS5Tc2hSZWxheVRhcmdldEgAEisKA3RjcBgDIAEoCzIcLm9wZW5zaGVsbC52MS5UY3BSZWxheVRhcmdldEgAEhIKCnNlcnZpY2VfaWQYBSABKAlCCAoGdGFyZ2V0IhAKDlNzaFJlbGF5VGFyZ2V0IiwKDlRjcFJlbGF5VGFyZ2V0EgwKBGhvc3QYASABKAkSDAoEcG9ydBgCIAEoDSIfCglSZWxheUluaXQSEgoKY2hhbm5lbF9pZBgBIAEoCSJQCgpSZWxheUZyYW1lEicKBGluaXQYASABKAsyFy5vcGVuc2hlbGwudjEuUmVsYXlJbml0SAASDgoEZGF0YRgCIAEoDEgAQgkKB3BheWxvYWQiRQoPUmVsYXlPcGVuUmVzdWx0EhIKCmNoYW5uZWxfaWQYASABKAkSDwoHc3VjY2VzcxgCIAEoCBINCgVlcnJvchgDIAEoCSIwCgpSZWxheUNsb3NlEhIKCmNoYW5uZWxfaWQYASABKAkSDgoGcmVhc29uGAIgASgJIlAKD0w3UmVxdWVzdFNhbXBsZRIOCgZtZXRob2QYASABKAkSDAoEcGF0aBgCIAEoCRIQCghkZWNpc2lvbhgDIAEoCRINCgVjb3VudBgEIAEoDSKVAwoNRGVuaWFsU3VtbWFyeRISCgpzYW5kYm94X2lkGAEgASgJEgwKBGhvc3QYAiABKAkSDAoEcG9ydBgDIAEoDRIOCgZiaW5hcnkYBCABKAkSEQoJYW5jZXN0b3JzGAUgAygJEhMKC2RlbnlfcmVhc29uGAYgASgJEhUKDWZpcnN0X3NlZW5fbXMYByABKAMSFAoMbGFzdF9zZWVuX21zGAggASgDEg0KBWNvdW50GAkgASgNEhgKEHN1cHByZXNzZWRfY291bnQYCiABKA0SEwoLdG90YWxfY291bnQYCyABKA0SFwoPc2FtcGxlX2NtZGxpbmVzGAwgAygJEhUKDWJpbmFyeV9zaGEyNTYYDSABKAkSEgoKcGVyc2lzdGVudBgOIAEoCBIUCgxkZW5pYWxfc3RhZ2UYDyABKAkSOQoSbDdfcmVxdWVzdF9zYW1wbGVzGBAgAygLMh0ub3BlbnNoZWxsLnYxLkw3UmVxdWVzdFNhbXBsZRIcChRsN19pbnNwZWN0aW9uX2FjdGl2ZRgRIAEoCCI8ChBEZW5pYWxHcm91cENvdW50EhIKCmRlbnlfZ3JvdXAYASABKAkSFAoMZGVuaWVkX2NvdW50GAIgASgNIo8BChZOZXR3b3JrQWN0aXZpdHlTdW1tYXJ5Eh4KFm5ldHdvcmtfYWN0aXZpdHlfY291bnQYASABKA0SGwoTZGVuaWVkX2FjdGlvbl9jb3VudBgCIAEoDRI4ChBkZW5pYWxzX2J5X2dyb3VwGAMgAygLMh4ub3BlbnNoZWxsLnYxLkRlbmlhbEdyb3VwQ291bnQixwUKC1BvbGljeUNodW5rEgoKAmlkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIRCglydWxlX25hbWUYAyABKAkSPgoNcHJvcG9zZWRfcnVsZRgEIAEoCzInLm9wZW5zaGVsbC5zYW5kYm94LnYxLk5ldHdvcmtQb2xpY3lSdWxlEhEKCXJhdGlvbmFsZRgFIAEoCRIWCg5zZWN1cml0eV9ub3RlcxgGIAEoCRISCgpjb25maWRlbmNlGAcgASgCEhoKEmRlbmlhbF9zdW1tYXJ5X2lkcxgIIAMoCRIVCg1jcmVhdGVkX2F0X21zGAkgASgDEhUKDWRlY2lkZWRfYXRfbXMYCiABKAMSDQoFc3RhZ2UYCyABKAkSGwoTc3VwZXJzZWRlc19jaHVua19pZBgMIAEoCRIRCgloaXRfY291bnQYDSABKAUSFQoNZmlyc3Rfc2Vlbl9tcxgOIAEoAxIUCgxsYXN0X3NlZW5fbXMYDyABKAMSDgoGYmluYXJ5GBAgASgJEhkKEXZhbGlkYXRpb25fcmVzdWx0GBEgASgJEhgKEHJlamVjdGlvbl9yZWFzb24YEiABKAkSGQoRYXBwbGljYXRpb25fZXJyb3IYEyABKAkSFAoMcmV2aWV3X3Rva2VuGBQgASgJEiUKHWN1cnJlbnRfZWZmZWN0aXZlX3BvbGljeV9oYXNoGBUgASgJEicKH2NhbmRpZGF0ZV9lZmZlY3RpdmVfcG9saWN5X2hhc2gYFiABKAkSRQoYY3VycmVudF9lZmZlY3RpdmVfcG9saWN5GBcgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRJHChpjYW5kaWRhdGVfZWZmZWN0aXZlX3BvbGljeRgYIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kiZgoRRHJhZnRQb2xpY3lVcGRhdGUSFQoNZHJhZnRfdmVyc2lvbhgBIAEoBBISCgpuZXdfY2h1bmtzGAIgASgNEhUKDXRvdGFsX3BlbmRpbmcYAyABKA0SDwoHc3VtbWFyeRgEIAEoCSKDAgobU3VibWl0UG9saWN5QW5hbHlzaXNSZXF1ZXN0Ei4KCXN1bW1hcmllcxgBIAMoCzIbLm9wZW5zaGVsbC52MS5EZW5pYWxTdW1tYXJ5EjIKD3Byb3Bvc2VkX2NodW5rcxgCIAMoCzIZLm9wZW5zaGVsbC52MS5Qb2xpY3lDaHVuaxIVCg1hbmFseXNpc19tb2RlGAMgASgJEgwKBG5hbWUYBCABKAkSSAoabmV0d29ya19hY3Rpdml0eV9zdW1tYXJpZXMYBSADKAsyJC5vcGVuc2hlbGwudjEuTmV0d29ya0FjdGl2aXR5U3VtbWFyeRIRCgl3b3Jrc3BhY2UYBiABKAkihwEKHFN1Ym1pdFBvbGljeUFuYWx5c2lzUmVzcG9uc2USFwoPYWNjZXB0ZWRfY2h1bmtzGAEgASgNEhcKD3JlamVjdGVkX2NodW5rcxgCIAEoDRIZChFyZWplY3Rpb25fcmVhc29ucxgDIAMoCRIaChJhY2NlcHRlZF9jaHVua19pZHMYBCADKAkiTwoVR2V0RHJhZnRQb2xpY3lSZXF1ZXN0EgwKBG5hbWUYASABKAkSFQoNc3RhdHVzX2ZpbHRlchgCIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkikAEKFkdldERyYWZ0UG9saWN5UmVzcG9uc2USKQoGY2h1bmtzGAEgAygLMhkub3BlbnNoZWxsLnYxLlBvbGljeUNodW5rEhcKD3JvbGxpbmdfc3VtbWFyeRgCIAEoCRIVCg1kcmFmdF92ZXJzaW9uGAMgASgEEhsKE2xhc3RfYW5hbHl6ZWRfYXRfbXMYBCABKAMiYwoYQXBwcm92ZURyYWZ0Q2h1bmtSZXF1ZXN0EgwKBG5hbWUYASABKAkSEAoIY2h1bmtfaWQYAiABKAkSEQoJd29ya3NwYWNlGAMgASgJEhQKDHJldmlld190b2tlbhgEIAEoCSJIChlBcHByb3ZlRHJhZnRDaHVua1Jlc3BvbnNlEhYKDnBvbGljeV92ZXJzaW9uGAEgASgNEhMKC3BvbGljeV9oYXNoGAIgASgJIlwKF1JlamVjdERyYWZ0Q2h1bmtSZXF1ZXN0EgwKBG5hbWUYASABKAkSEAoIY2h1bmtfaWQYAiABKAkSDgoGcmVhc29uGAMgASgJEhEKCXdvcmtzcGFjZRgEIAEoCSIaChhSZWplY3REcmFmdENodW5rUmVzcG9uc2UiPAoSRHJhZnRDaHVua0FwcHJvdmFsEhAKCGNodW5rX2lkGAEgASgJEhQKDHJldmlld190b2tlbhgCIAEoCSKWAQocQXBwcm92ZUFsbERyYWZ0Q2h1bmtzUmVxdWVzdBIMCgRuYW1lGAEgASgJEiAKGGluY2x1ZGVfc2VjdXJpdHlfZmxhZ2dlZBgCIAEoCBIRCgl3b3Jrc3BhY2UYAyABKAkSMwoJYXBwcm92YWxzGAQgAygLMiAub3BlbnNoZWxsLnYxLkRyYWZ0Q2h1bmtBcHByb3ZhbCJ9Ch1BcHByb3ZlQWxsRHJhZnRDaHVua3NSZXNwb25zZRIWCg5wb2xpY3lfdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCRIXCg9jaHVua3NfYXBwcm92ZWQYAyABKA0SFgoOY2h1bmtzX3NraXBwZWQYBCABKA0iigEKFUVkaXREcmFmdENodW5rUmVxdWVzdBIMCgRuYW1lGAEgASgJEhAKCGNodW5rX2lkGAIgASgJEj4KDXByb3Bvc2VkX3J1bGUYAyABKAsyJy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrUG9saWN5UnVsZRIRCgl3b3Jrc3BhY2UYBCABKAkiGAoWRWRpdERyYWZ0Q2h1bmtSZXNwb25zZSJKChVVbmRvRHJhZnRDaHVua1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIQCghjaHVua19pZBgCIAEoCRIRCgl3b3Jrc3BhY2UYAyABKAkiRQoWVW5kb0RyYWZ0Q2h1bmtSZXNwb25zZRIWCg5wb2xpY3lfdmVyc2lvbhgBIAEoDRITCgtwb2xpY3lfaGFzaBgCIAEoCSI6ChdDbGVhckRyYWZ0Q2h1bmtzUmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSIyChhDbGVhckRyYWZ0Q2h1bmtzUmVzcG9uc2USFgoOY2h1bmtzX2NsZWFyZWQYASABKA0iOQoWR2V0RHJhZnRIaXN0b3J5UmVxdWVzdBIMCgRuYW1lGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSJkChFEcmFmdEhpc3RvcnlFbnRyeRIUCgx0aW1lc3RhbXBfbXMYASABKAMSEgoKZXZlbnRfdHlwZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIQCghjaHVua19pZBgEIAEoCSJLChdHZXREcmFmdEhpc3RvcnlSZXNwb25zZRIwCgdlbnRyaWVzGAEgAygLMh8ub3BlbnNoZWxsLnYxLkRyYWZ0SGlzdG9yeUVudHJ5IoACChVQb2xpY3lSZXZpc2lvblBheWxvYWQSMwoGcG9saWN5GAEgASgLMiMub3BlbnNoZWxsLnNhbmRib3gudjEuU2FuZGJveFBvbGljeRIMCgRoYXNoGAIgASgJEhIKCmxvYWRfZXJyb3IYAyABKAkSFAoMbG9hZGVkX2F0X21zGAQgASgDEkcKCnByb3ZlbmFuY2UYBSADKAsyMy5vcGVuc2hlbGwudjEuUG9saWN5UmV2aXNpb25QYXlsb2FkLlByb3ZlbmFuY2VFbnRyeRoxCg9Qcm92ZW5hbmNlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASLFBAoRRHJhZnRDaHVua1BheWxvYWQSEQoJcnVsZV9uYW1lGAEgASgJEj4KDXByb3Bvc2VkX3J1bGUYAiABKAsyJy5vcGVuc2hlbGwuc2FuZGJveC52MS5OZXR3b3JrUG9saWN5UnVsZRIRCglyYXRpb25hbGUYAyABKAkSFgoOc2VjdXJpdHlfbm90ZXMYBCABKAkSEgoKY29uZmlkZW5jZRgFIAEoAhIVCg1kZWNpZGVkX2F0X21zGAYgASgDEgwKBGhvc3QYByABKAkSDAoEcG9ydBgIIAEoBRIOCgZiaW5hcnkYCSABKAkSFQoNZHJhZnRfdmVyc2lvbhgKIAEoAxIZChF2YWxpZGF0aW9uX3Jlc3VsdBgLIAEoCRIYChByZWplY3Rpb25fcmVhc29uGAwgASgJEhkKEWFwcGxpY2F0aW9uX2Vycm9yGA0gASgJEhQKDHJldmlld190b2tlbhgOIAEoCRIlCh1jdXJyZW50X2VmZmVjdGl2ZV9wb2xpY3lfaGFzaBgPIAEoCRInCh9jYW5kaWRhdGVfZWZmZWN0aXZlX3BvbGljeV9oYXNoGBAgASgJEkUKGGN1cnJlbnRfZWZmZWN0aXZlX3BvbGljeRgRIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSRwoaY2FuZGlkYXRlX2VmZmVjdGl2ZV9wb2xpY3kYEiABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5IuoCChRTdG9yZWRQb2xpY3lSZXZpc2lvbhIKCgJpZBgBIAEoCRISCgpzYW5kYm94X2lkGAIgASgJEg8KB3ZlcnNpb24YAyABKAMSFgoOcG9saWN5X3BheWxvYWQYBCABKAwSEwoLcG9saWN5X2hhc2gYBSABKAkSDgoGc3RhdHVzGAYgASgJEhcKCmxvYWRfZXJyb3IYByABKAlIAIgBARIVCg1jcmVhdGVkX2F0X21zGAggASgDEhkKDGxvYWRlZF9hdF9tcxgJIAEoA0gBiAEBEkYKCnByb3ZlbmFuY2UYCiADKAsyMi5vcGVuc2hlbGwudjEuU3RvcmVkUG9saWN5UmV2aXNpb24uUHJvdmVuYW5jZUVudHJ5GjEKD1Byb3ZlbmFuY2VFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19sb2FkX2Vycm9yQg8KDV9sb2FkZWRfYXRfbXMiuQUKEFN0b3JlZERyYWZ0Q2h1bmsSCgoCaWQYASABKAkSEgoKc2FuZGJveF9pZBgCIAEoCRIVCg1kcmFmdF92ZXJzaW9uGAMgASgDEg4KBnN0YXR1cxgEIAEoCRIRCglydWxlX25hbWUYBSABKAkSFQoNcHJvcG9zZWRfcnVsZRgGIAEoDBIRCglyYXRpb25hbGUYByABKAkSFgoOc2VjdXJpdHlfbm90ZXMYCCABKAkSEgoKY29uZmlkZW5jZRgJIAEoARIVCg1jcmVhdGVkX2F0X21zGAogASgDEhoKDWRlY2lkZWRfYXRfbXMYCyABKANIAIgBARIMCgRob3N0GAwgASgJEgwKBHBvcnQYDSABKAUSDgoGYmluYXJ5GA4gASgJEhEKCWhpdF9jb3VudBgPIAEoBRIVCg1maXJzdF9zZWVuX21zGBAgASgDEhQKDGxhc3Rfc2Vlbl9tcxgRIAEoAxIZChF2YWxpZGF0aW9uX3Jlc3VsdBgSIAEoCRIYChByZWplY3Rpb25fcmVhc29uGBMgASgJEhkKEWFwcGxpY2F0aW9uX2Vycm9yGBQgASgJEhQKDHJldmlld190b2tlbhgVIAEoCRIlCh1jdXJyZW50X2VmZmVjdGl2ZV9wb2xpY3lfaGFzaBgWIAEoCRInCh9jYW5kaWRhdGVfZWZmZWN0aXZlX3BvbGljeV9oYXNoGBcgASgJEkUKGGN1cnJlbnRfZWZmZWN0aXZlX3BvbGljeRgYIAEoCzIjLm9wZW5zaGVsbC5zYW5kYm94LnYxLlNhbmRib3hQb2xpY3kSRwoaY2FuZGlkYXRlX2VmZmVjdGl2ZV9wb2xpY3kYGSABKAsyIy5vcGVuc2hlbGwuc2FuZGJveC52MS5TYW5kYm94UG9saWN5QhAKDl9kZWNpZGVkX2F0X21zIpcBChZDcmVhdGVXb3Jrc3BhY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkSQAoGbGFiZWxzGAIgAygLMjAub3BlbnNoZWxsLnYxLkNyZWF0ZVdvcmtzcGFjZVJlcXVlc3QuTGFiZWxzRW50cnkaLQoLTGFiZWxzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJPChdDcmVhdGVXb3Jrc3BhY2VSZXNwb25zZRI0Cgl3b3Jrc3BhY2UYASABKAsyIS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZSIjChNHZXRXb3Jrc3BhY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkiTAoUR2V0V29ya3NwYWNlUmVzcG9uc2USNAoJd29ya3NwYWNlGAEgASgLMiEub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5Xb3Jrc3BhY2UiTgoVTGlzdFdvcmtzcGFjZXNSZXF1ZXN0Eg0KBWxpbWl0GAEgASgNEg4KBm9mZnNldBgCIAEoDRIWCg5sYWJlbF9zZWxlY3RvchgDIAEoCSJPChZMaXN0V29ya3NwYWNlc1Jlc3BvbnNlEjUKCndvcmtzcGFjZXMYASADKAsyIS5vcGVuc2hlbGwuZGF0YW1vZGVsLnYxLldvcmtzcGFjZSImChZEZWxldGVXb3Jrc3BhY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkiKgoXRGVsZXRlV29ya3NwYWNlUmVzcG9uc2USDwoHZGVsZXRlZBgBIAEoCCKNAQoPV29ya3NwYWNlTWVtYmVyEjQKCG1ldGFkYXRhGAEgASgLMiIub3BlbnNoZWxsLmRhdGFtb2RlbC52MS5PYmplY3RNZXRhEhkKEXByaW5jaXBhbF9zdWJqZWN0GAIgASgJEikKBHJvbGUYAyABKA4yGy5vcGVuc2hlbGwudjEuV29ya3NwYWNlUm9sZSJ0ChlBZGRXb3Jrc3BhY2VNZW1iZXJSZXF1ZXN0EhEKCXdvcmtzcGFjZRgBIAEoCRIZChFwcmluY2lwYWxfc3ViamVjdBgCIAEoCRIpCgRyb2xlGAMgASgOMhsub3BlbnNoZWxsLnYxLldvcmtzcGFjZVJvbGUiSwoaQWRkV29ya3NwYWNlTWVtYmVyUmVzcG9uc2USLQoGbWVtYmVyGAEgASgLMh0ub3BlbnNoZWxsLnYxLldvcmtzcGFjZU1lbWJlciJMChxSZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXF1ZXN0EhEKCXdvcmtzcGFjZRgBIAEoCRIZChFwcmluY2lwYWxfc3ViamVjdBgCIAEoCSIwCh1SZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZRIPCgdyZW1vdmVkGAEgASgIIk8KG0xpc3RXb3Jrc3BhY2VNZW1iZXJzUmVxdWVzdBIRCgl3b3Jrc3BhY2UYASABKAkSDQoFbGltaXQYAiABKA0SDgoGb2Zmc2V0GAMgASgNIk4KHExpc3RXb3Jrc3BhY2VNZW1iZXJzUmVzcG9uc2USLgoHbWVtYmVycxgBIAMoCzIdLm9wZW5zaGVsbC52MS5Xb3Jrc3BhY2VNZW1iZXIiXgoaRXh0ZW5zaW9uU2VydmljZUNyZWRlbnRpYWwSFAoMc2VydmljZV9uYW1lGAEgASgJEhMKBXRva2VuGAIgASgJQgSItRgBEhUKDWV4cGlyZXNfYXRfbXMYAyABKAMqiQIKDFNhbmRib3hQaGFzZRIdChlTQU5EQk9YX1BIQVNFX1VOU1BFQ0lGSUVEEAASHgoaU0FOREJPWF9QSEFTRV9QUk9WSVNJT05JTkcQARIXChNTQU5EQk9YX1BIQVNFX1JFQURZEAISFwoTU0FOREJPWF9QSEFTRV9FUlJPUhADEhoKFlNBTkRCT1hfUEhBU0VfREVMRVRJTkcQBBIZChVTQU5EQk9YX1BIQVNFX1VOS05PV04QBRIaChZTQU5EQk9YX1BIQVNFX1NUT1BQSU5HEAYSGQoVU0FOREJPWF9QSEFTRV9TVE9QUEVEEAcSGgoWU0FOREJPWF9QSEFTRV9TVEFSVElORxAIKs4BCiBQcm92aWRlckNyZWRlbnRpYWxUb2tlbkdyYW50VHlwZRI0CjBQUk9WSURFUl9DUkVERU5USUFMX1RPS0VOX0dSQU5UX1RZUEVfVU5TUEVDSUZJRUQQABI7CjdQUk9WSURFUl9DUkVERU5USUFMX1RPS0VOX0dSQU5UX1RZUEVfQ0xJRU5UX0NSRURFTlRJQUxTEAESNwozUFJPVklERVJfQ1JFREVOVElBTF9UT0tFTl9HUkFOVF9UWVBFX1RPS0VOX0VYQ0hBTkdFEAIqwwMKIVByb3ZpZGVyQ3JlZGVudGlhbFJlZnJlc2hTdHJhdGVneRI0CjBQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfVU5TUEVDSUZJRUQQABIvCitQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfU1RBVElDEAESMQotUFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX0VYVEVSTkFMEAISPQo5UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX09BVVRIMl9SRUZSRVNIX1RPS0VOEAMSQgo+UFJPVklERVJfQ1JFREVOVElBTF9SRUZSRVNIX1NUUkFURUdZX09BVVRIMl9DTElFTlRfQ1JFREVOVElBTFMQBBJDCj9QUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfR09PR0xFX1NFUlZJQ0VfQUNDT1VOVF9KV1QQBRI8CjhQUk9WSURFUl9DUkVERU5USUFMX1JFRlJFU0hfU1RSQVRFR1lfQVdTX1NUU19BU1NVTUVfUk9MRRAGKtsCChdQcm92aWRlclByb2ZpbGVDYXRlZ29yeRIpCiVQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASIwofUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9PVEhFUhABEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfSU5GRVJFTkNFEAISIwofUFJPVklERVJfUFJPRklMRV9DQVRFR09SWV9BR0VOVBADEiwKKFBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfU09VUkNFX0NPTlRST0wQBBInCiNQUk9WSURFUl9QUk9GSUxFX0NBVEVHT1JZX01FU1NBR0lORxAFEiIKHlBST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfREFUQRAGEicKI1BST1ZJREVSX1BST0ZJTEVfQ0FURUdPUllfS05PV0xFREdFEAcqmgEKDFBvbGljeVN0YXR1cxIdChlQT0xJQ1lfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGQoVUE9MSUNZX1NUQVRVU19QRU5ESU5HEAESGAoUUE9MSUNZX1NUQVRVU19MT0FERUQQAhIYChRQT0xJQ1lfU1RBVFVTX0ZBSUxFRBADEhwKGFBPTElDWV9TVEFUVVNfU1VQRVJTRURFRBAEKoYBCg1TZXJ2aWNlU3RhdHVzEh4KGlNFUlZJQ0VfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGgoWU0VSVklDRV9TVEFUVVNfSEVBTFRIWRABEhsKF1NFUlZJQ0VfU1RBVFVTX0RFR1JBREVEEAISHAoYU0VSVklDRV9TVEFUVVNfVU5IRUFMVEhZEAMqYgoNV29ya3NwYWNlUm9sZRIeChpXT1JLU1BBQ0VfUk9MRV9VTlNQRUNJRklFRBAAEhcKE1dPUktTUEFDRV9ST0xFX1VTRVIQARIYChRXT1JLU1BBQ0VfUk9MRV9BRE1JThACMqxGCglPcGVuU2hlbGwSWgoGSGVhbHRoEhsub3BlbnNoZWxsLnYxLkhlYWx0aFJlcXVlc3QaHC5vcGVuc2hlbGwudjEuSGVhbHRoUmVzcG9uc2UiFYK1GBEKD3VuYXV0aGVudGljYXRlZBJpCg5HZXRDdXJyZW50VXNlchIjLm9wZW5zaGVsbC52MS5HZXRDdXJyZW50VXNlclJlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0Q3VycmVudFVzZXJSZXNwb25zZSIMgrUYCAoGYmVhcmVyEoYBCg5HZXRHYXRld2F5SW5mbxIjLm9wZW5zaGVsbC52MS5HZXRHYXRld2F5SW5mb1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0R2F0ZXdheUluZm9SZXNwb25zZSIpgrUYJQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiILY29uZmlnOnJlYWQSdQoNQ3JlYXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5DcmVhdGVTYW5kYm94UmVxdWVzdBodLm9wZW5zaGVsbC52MS5TYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJuCgpHZXRTYW5kYm94Eh8ub3BlbnNoZWxsLnYxLkdldFNhbmRib3hSZXF1ZXN0Gh0ub3BlbnNoZWxsLnYxLlNhbmRib3hSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSegoNTGlzdFNhbmRib3hlcxIiLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveGVzUmVxdWVzdBojLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveGVzUmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEo8BChRMaXN0U2FuZGJveFByb3ZpZGVycxIpLm9wZW5zaGVsbC52MS5MaXN0U2FuZGJveFByb3ZpZGVyc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQcm92aWRlcnNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSkwEKFUF0dGFjaFNhbmRib3hQcm92aWRlchIqLm9wZW5zaGVsbC52MS5BdHRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkF0dGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSkwEKFURldGFjaFNhbmRib3hQcm92aWRlchIqLm9wZW5zaGVsbC52MS5EZXRhY2hTYW5kYm94UHJvdmlkZXJSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRldGFjaFNhbmRib3hQcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSewoNRGVsZXRlU2FuZGJveBIiLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVxdWVzdBojLm9wZW5zaGVsbC52MS5EZWxldGVTYW5kYm94UmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZRJxCgtTdG9wU2FuZGJveBIgLm9wZW5zaGVsbC52MS5TdG9wU2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUScwoMU3RhcnRTYW5kYm94EiEub3BlbnNoZWxsLnYxLlN0YXJ0U2FuZGJveFJlcXVlc3QaHS5vcGVuc2hlbGwudjEuU2FuZGJveFJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUShAEKEENyZWF0ZVNzaFNlc3Npb24SJS5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlcXVlc3QaJi5vcGVuc2hlbGwudjEuQ3JlYXRlU3NoU2Vzc2lvblJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUSfQoNRXhwb3NlU2VydmljZRIiLm9wZW5zaGVsbC52MS5FeHBvc2VTZXJ2aWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5TZXJ2aWNlRW5kcG9pbnRSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnYKCkdldFNlcnZpY2USHy5vcGVuc2hlbGwudjEuR2V0U2VydmljZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuU2VydmljZUVuZHBvaW50UmVzcG9uc2UiIIK1GBwKBmJlYXJlchIEdXNlciIMc2FuZGJveDpyZWFkEncKDExpc3RTZXJ2aWNlcxIhLm9wZW5zaGVsbC52MS5MaXN0U2VydmljZXNSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLkxpc3RTZXJ2aWNlc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ7Cg1EZWxldGVTZXJ2aWNlEiIub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXF1ZXN0GiMub3BlbnNoZWxsLnYxLkRlbGV0ZVNlcnZpY2VSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEoQBChBSZXZva2VTc2hTZXNzaW9uEiUub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXF1ZXN0GiYub3BlbnNoZWxsLnYxLlJldm9rZVNzaFNlc3Npb25SZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1zYW5kYm94OndyaXRlEnQKC0V4ZWNTYW5kYm94EiAub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94UmVxdWVzdBoeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveEV2ZW50IiGCtRgdCgZiZWFyZXISBHVzZXIiDXNhbmRib3g6d3JpdGUwARJxCgpGb3J3YXJkVGNwEh0ub3BlbnNoZWxsLnYxLlRjcEZvcndhcmRGcmFtZRodLm9wZW5zaGVsbC52MS5UY3BGb3J3YXJkRnJhbWUiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESfwoWRXhlY1NhbmRib3hJbnRlcmFjdGl2ZRIeLm9wZW5zaGVsbC52MS5FeGVjU2FuZGJveElucHV0Gh4ub3BlbnNoZWxsLnYxLkV4ZWNTYW5kYm94RXZlbnQiIYK1GB0KBmJlYXJlchIEdXNlciINc2FuZGJveDp3cml0ZSgBMAESegoOQ3JlYXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuQ3JlYXRlUHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEnIKC0dldFByb3ZpZGVyEiAub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUmVxdWVzdBoeLm9wZW5zaGVsbC52MS5Qcm92aWRlclJlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSewoNTGlzdFByb3ZpZGVycxIiLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJzUmVxdWVzdBojLm9wZW5zaGVsbC52MS5MaXN0UHJvdmlkZXJzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKQAQoUTGlzdFByb3ZpZGVyUHJvZmlsZXMSKS5vcGVuc2hlbGwudjEuTGlzdFByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Gioub3BlbnNoZWxsLnYxLkxpc3RQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKHAQoSR2V0UHJvdmlkZXJQcm9maWxlEicub3BlbnNoZWxsLnYxLkdldFByb3ZpZGVyUHJvZmlsZVJlcXVlc3QaJS5vcGVuc2hlbGwudjEuUHJvdmlkZXJQcm9maWxlUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIEdXNlciINcHJvdmlkZXI6cmVhZBKYAQoWSW1wb3J0UHJvdmlkZXJQcm9maWxlcxIrLm9wZW5zaGVsbC52MS5JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBosLm9wZW5zaGVsbC52MS5JbXBvcnRQcm92aWRlclByb2ZpbGVzUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpgBChZVcGRhdGVQcm92aWRlclByb2ZpbGVzEisub3BlbnNoZWxsLnYxLlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLlVwZGF0ZVByb3ZpZGVyUHJvZmlsZXNSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSkAEKFExpbnRQcm92aWRlclByb2ZpbGVzEikub3BlbnNoZWxsLnYxLkxpbnRQcm92aWRlclByb2ZpbGVzUmVxdWVzdBoqLm9wZW5zaGVsbC52MS5MaW50UHJvdmlkZXJQcm9maWxlc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBHVzZXIiDXByb3ZpZGVyOnJlYWQSegoOVXBkYXRlUHJvdmlkZXISIy5vcGVuc2hlbGwudjEuVXBkYXRlUHJvdmlkZXJSZXF1ZXN0Gh4ub3BlbnNoZWxsLnYxLlByb3ZpZGVyUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEpwBChhHZXRQcm92aWRlclJlZnJlc2hTdGF0dXMSLS5vcGVuc2hlbGwudjEuR2V0UHJvdmlkZXJSZWZyZXNoU3RhdHVzUmVxdWVzdBouLm9wZW5zaGVsbC52MS5HZXRQcm92aWRlclJlZnJlc2hTdGF0dXNSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgR1c2VyIg1wcm92aWRlcjpyZWFkEp4BChhDb25maWd1cmVQcm92aWRlclJlZnJlc2gSLS5vcGVuc2hlbGwudjEuQ29uZmlndXJlUHJvdmlkZXJSZWZyZXNoUmVxdWVzdBouLm9wZW5zaGVsbC52MS5Db25maWd1cmVQcm92aWRlclJlZnJlc2hSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSngEKGFJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbBItLm9wZW5zaGVsbC52MS5Sb3RhdGVQcm92aWRlckNyZWRlbnRpYWxSZXF1ZXN0Gi4ub3BlbnNoZWxsLnYxLlJvdGF0ZVByb3ZpZGVyQ3JlZGVudGlhbFJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKVAQoVRGVsZXRlUHJvdmlkZXJSZWZyZXNoEioub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUmVmcmVzaFJlcXVlc3QaKy5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZWZyZXNoUmVzcG9uc2UiI4K1GB8KBmJlYXJlchIFYWRtaW4iDnByb3ZpZGVyOndyaXRlEoABCg5EZWxldGVQcm92aWRlchIjLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclJlcXVlc3QaJC5vcGVuc2hlbGwudjEuRGVsZXRlUHJvdmlkZXJSZXNwb25zZSIjgrUYHwoGYmVhcmVyEgVhZG1pbiIOcHJvdmlkZXI6d3JpdGUSlQEKFURlbGV0ZVByb3ZpZGVyUHJvZmlsZRIqLm9wZW5zaGVsbC52MS5EZWxldGVQcm92aWRlclByb2ZpbGVSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkRlbGV0ZVByb3ZpZGVyUHJvZmlsZVJlc3BvbnNlIiOCtRgfCgZiZWFyZXISBWFkbWluIg5wcm92aWRlcjp3cml0ZRKQAQoQR2V0U2FuZGJveENvbmZpZxItLm9wZW5zaGVsbC5zYW5kYm94LnYxLkdldFNhbmRib3hDb25maWdSZXF1ZXN0Gi4ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0U2FuZGJveENvbmZpZ1Jlc3BvbnNlIh2CtRgZCgRkdWFsEgR1c2VyIgtjb25maWc6cmVhZBKMAQoQR2V0R2F0ZXdheUNvbmZpZxItLm9wZW5zaGVsbC5zYW5kYm94LnYxLkdldEdhdGV3YXlDb25maWdSZXF1ZXN0Gi4ub3BlbnNoZWxsLnNhbmRib3gudjEuR2V0R2F0ZXdheUNvbmZpZ1Jlc3BvbnNlIhmCtRgVCgZiZWFyZXIiC2NvbmZpZzpyZWFkEnYKDFVwZGF0ZUNvbmZpZxIhLm9wZW5zaGVsbC52MS5VcGRhdGVDb25maWdSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLlVwZGF0ZUNvbmZpZ1Jlc3BvbnNlIh+CtRgbCgRkdWFsEgVhZG1pbiIMY29uZmlnOndyaXRlEpUBChZHZXRTYW5kYm94UG9saWN5U3RhdHVzEisub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXF1ZXN0Giwub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQb2xpY3lTdGF0dXNSZXNwb25zZSIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQSjAEKE0xpc3RTYW5kYm94UG9saWNpZXMSKC5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQb2xpY2llc1JlcXVlc3QaKS5vcGVuc2hlbGwudjEuTGlzdFNhbmRib3hQb2xpY2llc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJ2ChJSZXBvcnRQb2xpY3lTdGF0dXMSJy5vcGVuc2hlbGwudjEuUmVwb3J0UG9saWN5U3RhdHVzUmVxdWVzdBooLm9wZW5zaGVsbC52MS5SZXBvcnRQb2xpY3lTdGF0dXNSZXNwb25zZSINgrUYCQoHc2FuZGJveBKXAQodR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnQSMi5vcGVuc2hlbGwudjEuR2V0U2FuZGJveFByb3ZpZGVyRW52aXJvbm1lbnRSZXF1ZXN0GjMub3BlbnNoZWxsLnYxLkdldFNhbmRib3hQcm92aWRlckVudmlyb25tZW50UmVzcG9uc2UiDYK1GAkKB3NhbmRib3gSlAEKHEV4Y2hhbmdlUHJvdmlkZXJTdWJqZWN0VG9rZW4SMS5vcGVuc2hlbGwudjEuRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlcXVlc3QaMi5vcGVuc2hlbGwudjEuRXhjaGFuZ2VQcm92aWRlclN1YmplY3RUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94En0KDkdldFNhbmRib3hMb2dzEiMub3BlbnNoZWxsLnYxLkdldFNhbmRib3hMb2dzUmVxdWVzdBokLm9wZW5zaGVsbC52MS5HZXRTYW5kYm94TG9nc1Jlc3BvbnNlIiCCtRgcCgZiZWFyZXISBHVzZXIiDHNhbmRib3g6cmVhZBJvCg9QdXNoU2FuZGJveExvZ3MSJC5vcGVuc2hlbGwudjEuUHVzaFNhbmRib3hMb2dzUmVxdWVzdBolLm9wZW5zaGVsbC52MS5QdXNoU2FuZGJveExvZ3NSZXNwb25zZSINgrUYCQoHc2FuZGJveCgBEmUKEUNvbm5lY3RTdXBlcnZpc29yEh8ub3BlbnNoZWxsLnYxLlN1cGVydmlzb3JNZXNzYWdlGhwub3BlbnNoZWxsLnYxLkdhdGV3YXlNZXNzYWdlIg2CtRgJCgdzYW5kYm94KAEwARJ/ChVSZXBvcnRNYWluUHJvY2Vzc0V4aXQSKi5vcGVuc2hlbGwudjEuUmVwb3J0TWFpblByb2Nlc3NFeGl0UmVxdWVzdBorLm9wZW5zaGVsbC52MS5SZXBvcnRNYWluUHJvY2Vzc0V4aXRSZXNwb25zZSINgrUYCQoHc2FuZGJveBJUCgtSZWxheVN0cmVhbRIYLm9wZW5zaGVsbC52MS5SZWxheUZyYW1lGhgub3BlbnNoZWxsLnYxLlJlbGF5RnJhbWUiDYK1GAkKB3NhbmRib3goATABEncKDFdhdGNoU2FuZGJveBIhLm9wZW5zaGVsbC52MS5XYXRjaFNhbmRib3hSZXF1ZXN0GiAub3BlbnNoZWxsLnYxLlNhbmRib3hTdHJlYW1FdmVudCIggrUYHAoGYmVhcmVyEgR1c2VyIgxzYW5kYm94OnJlYWQwARJ8ChRTdWJtaXRQb2xpY3lBbmFseXNpcxIpLm9wZW5zaGVsbC52MS5TdWJtaXRQb2xpY3lBbmFseXNpc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuU3VibWl0UG9saWN5QW5hbHlzaXNSZXNwb25zZSINgrUYCQoHc2FuZGJveBJ6Cg5HZXREcmFmdFBvbGljeRIjLm9wZW5zaGVsbC52MS5HZXREcmFmdFBvbGljeVJlcXVlc3QaJC5vcGVuc2hlbGwudjEuR2V0RHJhZnRQb2xpY3lSZXNwb25zZSIdgrUYGQoEZHVhbBIEdXNlciILY29uZmlnOnJlYWQShwEKEUFwcHJvdmVEcmFmdENodW5rEiYub3BlbnNoZWxsLnYxLkFwcHJvdmVEcmFmdENodW5rUmVxdWVzdBonLm9wZW5zaGVsbC52MS5BcHByb3ZlRHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUShAEKEFJlamVjdERyYWZ0Q2h1bmsSJS5vcGVuc2hlbGwudjEuUmVqZWN0RHJhZnRDaHVua1JlcXVlc3QaJi5vcGVuc2hlbGwudjEuUmVqZWN0RHJhZnRDaHVua1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSkwEKFUFwcHJvdmVBbGxEcmFmdENodW5rcxIqLm9wZW5zaGVsbC52MS5BcHByb3ZlQWxsRHJhZnRDaHVua3NSZXF1ZXN0Gisub3BlbnNoZWxsLnYxLkFwcHJvdmVBbGxEcmFmdENodW5rc1Jlc3BvbnNlIiGCtRgdCgZiZWFyZXISBWFkbWluIgxjb25maWc6d3JpdGUSfgoORWRpdERyYWZ0Q2h1bmsSIy5vcGVuc2hlbGwudjEuRWRpdERyYWZ0Q2h1bmtSZXF1ZXN0GiQub3BlbnNoZWxsLnYxLkVkaXREcmFmdENodW5rUmVzcG9uc2UiIYK1GB0KBmJlYXJlchIFYWRtaW4iDGNvbmZpZzp3cml0ZRJ+Cg5VbmRvRHJhZnRDaHVuaxIjLm9wZW5zaGVsbC52MS5VbmRvRHJhZnRDaHVua1JlcXVlc3QaJC5vcGVuc2hlbGwudjEuVW5kb0RyYWZ0Q2h1bmtSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEoQBChBDbGVhckRyYWZ0Q2h1bmtzEiUub3BlbnNoZWxsLnYxLkNsZWFyRHJhZnRDaHVua3NSZXF1ZXN0GiYub3BlbnNoZWxsLnYxLkNsZWFyRHJhZnRDaHVua3NSZXNwb25zZSIhgrUYHQoGYmVhcmVyEgVhZG1pbiIMY29uZmlnOndyaXRlEn8KD0dldERyYWZ0SGlzdG9yeRIkLm9wZW5zaGVsbC52MS5HZXREcmFmdEhpc3RvcnlSZXF1ZXN0GiUub3BlbnNoZWxsLnYxLkdldERyYWZ0SGlzdG9yeVJlc3BvbnNlIh+CtRgbCgZiZWFyZXISBHVzZXIiC2NvbmZpZzpyZWFkEnMKEUlzc3VlU2FuZGJveFRva2VuEiYub3BlbnNoZWxsLnYxLklzc3VlU2FuZGJveFRva2VuUmVxdWVzdBonLm9wZW5zaGVsbC52MS5Jc3N1ZVNhbmRib3hUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94EnkKE1JlZnJlc2hTYW5kYm94VG9rZW4SKC5vcGVuc2hlbGwudjEuUmVmcmVzaFNhbmRib3hUb2tlblJlcXVlc3QaKS5vcGVuc2hlbGwudjEuUmVmcmVzaFNhbmRib3hUb2tlblJlc3BvbnNlIg2CtRgJCgdzYW5kYm94Eo0BCg9DcmVhdGVXb3Jrc3BhY2USJC5vcGVuc2hlbGwudjEuQ3JlYXRlV29ya3NwYWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5DcmVhdGVXb3Jrc3BhY2VSZXNwb25zZSItgrUYKQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiIPd29ya3NwYWNlOndyaXRlEnkKDEdldFdvcmtzcGFjZRIhLm9wZW5zaGVsbC52MS5HZXRXb3Jrc3BhY2VSZXF1ZXN0GiIub3BlbnNoZWxsLnYxLkdldFdvcmtzcGFjZVJlc3BvbnNlIiKCtRgeCgZiZWFyZXISBHVzZXIiDndvcmtzcGFjZTpyZWFkEn8KDkxpc3RXb3Jrc3BhY2VzEiMub3BlbnNoZWxsLnYxLkxpc3RXb3Jrc3BhY2VzUmVxdWVzdBokLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlc1Jlc3BvbnNlIiKCtRgeCgZiZWFyZXISBHVzZXIiDndvcmtzcGFjZTpyZWFkEo0BCg9EZWxldGVXb3Jrc3BhY2USJC5vcGVuc2hlbGwudjEuRGVsZXRlV29ya3NwYWNlUmVxdWVzdBolLm9wZW5zaGVsbC52MS5EZWxldGVXb3Jrc3BhY2VSZXNwb25zZSItgrUYKQoGYmVhcmVyGg5wbGF0Zm9ybV9hZG1pbiIPd29ya3NwYWNlOndyaXRlEo0BChJBZGRXb3Jrc3BhY2VNZW1iZXISJy5vcGVuc2hlbGwudjEuQWRkV29ya3NwYWNlTWVtYmVyUmVxdWVzdBooLm9wZW5zaGVsbC52MS5BZGRXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZSIkgrUYIAoGYmVhcmVyEgVhZG1pbiIPd29ya3NwYWNlOndyaXRlEpYBChVSZW1vdmVXb3Jrc3BhY2VNZW1iZXISKi5vcGVuc2hlbGwudjEuUmVtb3ZlV29ya3NwYWNlTWVtYmVyUmVxdWVzdBorLm9wZW5zaGVsbC52MS5SZW1vdmVXb3Jrc3BhY2VNZW1iZXJSZXNwb25zZSIkgrUYIAoGYmVhcmVyEgVhZG1pbiIPd29ya3NwYWNlOndyaXRlEpEBChRMaXN0V29ya3NwYWNlTWVtYmVycxIpLm9wZW5zaGVsbC52MS5MaXN0V29ya3NwYWNlTWVtYmVyc1JlcXVlc3QaKi5vcGVuc2hlbGwudjEuTGlzdFdvcmtzcGFjZU1lbWJlcnNSZXNwb25zZSIigrUYHgoGYmVhcmVyEgR1c2VyIg53b3Jrc3BhY2U6cmVhZGIGcHJvdG8z", [file_datamodel, file_google_protobuf_struct, file_options, file_sandbox]);
12
12
  /**
13
13
  * Describes the message openshell.v1.IssueSandboxTokenRequest.
14
14
  * Use `create(IssueSandboxTokenRequestSchema)` to create a new message.
@@ -374,571 +374,601 @@ export const ProviderProfileDiagnosticSchema = /*@__PURE__*/ messageDesc(file_op
374
374
  * Use `create(ProviderCredentialTokenGrantAudienceOverrideSchema)` to create a new message.
375
375
  */
376
376
  export const ProviderCredentialTokenGrantAudienceOverrideSchema = /*@__PURE__*/ messageDesc(file_openshell, 72);
377
+ /**
378
+ * Describes the message openshell.v1.ProviderCredentialTokenGrantSubjectToken.
379
+ * Use `create(ProviderCredentialTokenGrantSubjectTokenSchema)` to create a new message.
380
+ */
381
+ export const ProviderCredentialTokenGrantSubjectTokenSchema = /*@__PURE__*/ messageDesc(file_openshell, 73);
377
382
  /**
378
383
  * Describes the message openshell.v1.ProviderCredentialTokenGrant.
379
384
  * Use `create(ProviderCredentialTokenGrantSchema)` to create a new message.
380
385
  */
381
- export const ProviderCredentialTokenGrantSchema = /*@__PURE__*/ messageDesc(file_openshell, 73);
386
+ export const ProviderCredentialTokenGrantSchema = /*@__PURE__*/ messageDesc(file_openshell, 74);
382
387
  /**
383
388
  * Describes the message openshell.v1.ProviderProfileCredential.
384
389
  * Use `create(ProviderProfileCredentialSchema)` to create a new message.
385
390
  */
386
- export const ProviderProfileCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 74);
391
+ export const ProviderProfileCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 75);
387
392
  /**
388
393
  * Describes the message openshell.v1.ProviderCredentialRefreshMaterial.
389
394
  * Use `create(ProviderCredentialRefreshMaterialSchema)` to create a new message.
390
395
  */
391
- export const ProviderCredentialRefreshMaterialSchema = /*@__PURE__*/ messageDesc(file_openshell, 75);
396
+ export const ProviderCredentialRefreshMaterialSchema = /*@__PURE__*/ messageDesc(file_openshell, 76);
392
397
  /**
393
398
  * Describes the message openshell.v1.ProviderCredentialRefreshOutput.
394
399
  * Use `create(ProviderCredentialRefreshOutputSchema)` to create a new message.
395
400
  */
396
- export const ProviderCredentialRefreshOutputSchema = /*@__PURE__*/ messageDesc(file_openshell, 76);
401
+ export const ProviderCredentialRefreshOutputSchema = /*@__PURE__*/ messageDesc(file_openshell, 77);
397
402
  /**
398
403
  * Describes the message openshell.v1.ProviderCredentialRefresh.
399
404
  * Use `create(ProviderCredentialRefreshSchema)` to create a new message.
400
405
  */
401
- export const ProviderCredentialRefreshSchema = /*@__PURE__*/ messageDesc(file_openshell, 77);
406
+ export const ProviderCredentialRefreshSchema = /*@__PURE__*/ messageDesc(file_openshell, 78);
402
407
  /**
403
408
  * Describes the message openshell.v1.ProviderCredentialRefreshStatus.
404
409
  * Use `create(ProviderCredentialRefreshStatusSchema)` to create a new message.
405
410
  */
406
- export const ProviderCredentialRefreshStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 78);
411
+ export const ProviderCredentialRefreshStatusSchema = /*@__PURE__*/ messageDesc(file_openshell, 79);
407
412
  /**
408
413
  * Describes the message openshell.v1.ProviderProfileDiscovery.
409
414
  * Use `create(ProviderProfileDiscoverySchema)` to create a new message.
410
415
  */
411
- export const ProviderProfileDiscoverySchema = /*@__PURE__*/ messageDesc(file_openshell, 79);
416
+ export const ProviderProfileDiscoverySchema = /*@__PURE__*/ messageDesc(file_openshell, 80);
412
417
  /**
413
418
  * Describes the message openshell.v1.StoredProviderCredentialRefreshState.
414
419
  * Use `create(StoredProviderCredentialRefreshStateSchema)` to create a new message.
415
420
  */
416
- export const StoredProviderCredentialRefreshStateSchema = /*@__PURE__*/ messageDesc(file_openshell, 80);
421
+ export const StoredProviderCredentialRefreshStateSchema = /*@__PURE__*/ messageDesc(file_openshell, 81);
417
422
  /**
418
423
  * Describes the message openshell.v1.StoredRefreshMaterialDeletion.
419
424
  * Use `create(StoredRefreshMaterialDeletionSchema)` to create a new message.
420
425
  */
421
- export const StoredRefreshMaterialDeletionSchema = /*@__PURE__*/ messageDesc(file_openshell, 81);
426
+ export const StoredRefreshMaterialDeletionSchema = /*@__PURE__*/ messageDesc(file_openshell, 82);
422
427
  /**
423
428
  * Describes the message openshell.v1.GetProviderRefreshStatusRequest.
424
429
  * Use `create(GetProviderRefreshStatusRequestSchema)` to create a new message.
425
430
  */
426
- export const GetProviderRefreshStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 82);
431
+ export const GetProviderRefreshStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 83);
427
432
  /**
428
433
  * Describes the message openshell.v1.GetProviderRefreshStatusResponse.
429
434
  * Use `create(GetProviderRefreshStatusResponseSchema)` to create a new message.
430
435
  */
431
- export const GetProviderRefreshStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 83);
436
+ export const GetProviderRefreshStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 84);
432
437
  /**
433
438
  * Describes the message openshell.v1.ConfigureProviderRefreshRequest.
434
439
  * Use `create(ConfigureProviderRefreshRequestSchema)` to create a new message.
435
440
  */
436
- export const ConfigureProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 84);
441
+ export const ConfigureProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 85);
437
442
  /**
438
443
  * Describes the message openshell.v1.ConfigureProviderRefreshResponse.
439
444
  * Use `create(ConfigureProviderRefreshResponseSchema)` to create a new message.
440
445
  */
441
- export const ConfigureProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 85);
446
+ export const ConfigureProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 86);
442
447
  /**
443
448
  * Describes the message openshell.v1.RotateProviderCredentialRequest.
444
449
  * Use `create(RotateProviderCredentialRequestSchema)` to create a new message.
445
450
  */
446
- export const RotateProviderCredentialRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 86);
451
+ export const RotateProviderCredentialRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 87);
447
452
  /**
448
453
  * Describes the message openshell.v1.RotateProviderCredentialResponse.
449
454
  * Use `create(RotateProviderCredentialResponseSchema)` to create a new message.
450
455
  */
451
- export const RotateProviderCredentialResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 87);
456
+ export const RotateProviderCredentialResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 88);
452
457
  /**
453
458
  * Describes the message openshell.v1.DeleteProviderRefreshRequest.
454
459
  * Use `create(DeleteProviderRefreshRequestSchema)` to create a new message.
455
460
  */
456
- export const DeleteProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 88);
461
+ export const DeleteProviderRefreshRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 89);
457
462
  /**
458
463
  * Describes the message openshell.v1.DeleteProviderRefreshResponse.
459
464
  * Use `create(DeleteProviderRefreshResponseSchema)` to create a new message.
460
465
  */
461
- export const DeleteProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 89);
466
+ export const DeleteProviderRefreshResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 90);
462
467
  /**
463
468
  * Describes the message openshell.v1.ProviderProfile.
464
469
  * Use `create(ProviderProfileSchema)` to create a new message.
465
470
  */
466
- export const ProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 90);
471
+ export const ProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 91);
467
472
  /**
468
473
  * Describes the message openshell.v1.StoredProviderProfile.
469
474
  * Use `create(StoredProviderProfileSchema)` to create a new message.
470
475
  */
471
- export const StoredProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 91);
476
+ export const StoredProviderProfileSchema = /*@__PURE__*/ messageDesc(file_openshell, 92);
472
477
  /**
473
478
  * Describes the message openshell.v1.ProviderProfileResponse.
474
479
  * Use `create(ProviderProfileResponseSchema)` to create a new message.
475
480
  */
476
- export const ProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 92);
481
+ export const ProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 93);
477
482
  /**
478
483
  * Describes the message openshell.v1.ListProviderProfilesResponse.
479
484
  * Use `create(ListProviderProfilesResponseSchema)` to create a new message.
480
485
  */
481
- export const ListProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 93);
486
+ export const ListProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 94);
482
487
  /**
483
488
  * Describes the message openshell.v1.ImportProviderProfilesRequest.
484
489
  * Use `create(ImportProviderProfilesRequestSchema)` to create a new message.
485
490
  */
486
- export const ImportProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 94);
491
+ export const ImportProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 95);
487
492
  /**
488
493
  * Describes the message openshell.v1.ImportProviderProfilesResponse.
489
494
  * Use `create(ImportProviderProfilesResponseSchema)` to create a new message.
490
495
  */
491
- export const ImportProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 95);
496
+ export const ImportProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 96);
492
497
  /**
493
498
  * Describes the message openshell.v1.UpdateProviderProfilesRequest.
494
499
  * Use `create(UpdateProviderProfilesRequestSchema)` to create a new message.
495
500
  */
496
- export const UpdateProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 96);
501
+ export const UpdateProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 97);
497
502
  /**
498
503
  * Describes the message openshell.v1.UpdateProviderProfilesResponse.
499
504
  * Use `create(UpdateProviderProfilesResponseSchema)` to create a new message.
500
505
  */
501
- export const UpdateProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 97);
506
+ export const UpdateProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 98);
502
507
  /**
503
508
  * Describes the message openshell.v1.LintProviderProfilesRequest.
504
509
  * Use `create(LintProviderProfilesRequestSchema)` to create a new message.
505
510
  */
506
- export const LintProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 98);
511
+ export const LintProviderProfilesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 99);
507
512
  /**
508
513
  * Describes the message openshell.v1.LintProviderProfilesResponse.
509
514
  * Use `create(LintProviderProfilesResponseSchema)` to create a new message.
510
515
  */
511
- export const LintProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 99);
516
+ export const LintProviderProfilesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 100);
512
517
  /**
513
518
  * Describes the message openshell.v1.DeleteProviderResponse.
514
519
  * Use `create(DeleteProviderResponseSchema)` to create a new message.
515
520
  */
516
- export const DeleteProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 100);
521
+ export const DeleteProviderResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 101);
517
522
  /**
518
523
  * Describes the message openshell.v1.DeleteProviderProfileRequest.
519
524
  * Use `create(DeleteProviderProfileRequestSchema)` to create a new message.
520
525
  */
521
- export const DeleteProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 101);
526
+ export const DeleteProviderProfileRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 102);
522
527
  /**
523
528
  * Describes the message openshell.v1.DeleteProviderProfileResponse.
524
529
  * Use `create(DeleteProviderProfileResponseSchema)` to create a new message.
525
530
  */
526
- export const DeleteProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 102);
531
+ export const DeleteProviderProfileResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 103);
527
532
  /**
528
533
  * Describes the message openshell.v1.GetSandboxProviderEnvironmentRequest.
529
534
  * Use `create(GetSandboxProviderEnvironmentRequestSchema)` to create a new message.
530
535
  */
531
- export const GetSandboxProviderEnvironmentRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 103);
536
+ export const GetSandboxProviderEnvironmentRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 104);
532
537
  /**
533
538
  * Describes the message openshell.v1.StaticCredentialEndpointBinding.
534
539
  * Use `create(StaticCredentialEndpointBindingSchema)` to create a new message.
535
540
  */
536
- export const StaticCredentialEndpointBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 104);
541
+ export const StaticCredentialEndpointBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 105);
537
542
  /**
538
543
  * Describes the message openshell.v1.StaticCredentialBinding.
539
544
  * Use `create(StaticCredentialBindingSchema)` to create a new message.
540
545
  */
541
- export const StaticCredentialBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 105);
546
+ export const StaticCredentialBindingSchema = /*@__PURE__*/ messageDesc(file_openshell, 106);
542
547
  /**
543
548
  * Describes the message openshell.v1.GetSandboxProviderEnvironmentResponse.
544
549
  * Use `create(GetSandboxProviderEnvironmentResponseSchema)` to create a new message.
545
550
  */
546
- export const GetSandboxProviderEnvironmentResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 106);
551
+ export const GetSandboxProviderEnvironmentResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 107);
552
+ /**
553
+ * Describes the message openshell.v1.ExchangeProviderSubjectTokenRequest.
554
+ * Use `create(ExchangeProviderSubjectTokenRequestSchema)` to create a new message.
555
+ */
556
+ export const ExchangeProviderSubjectTokenRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 108);
557
+ /**
558
+ * Describes the message openshell.v1.ExchangeProviderSubjectTokenResponse.
559
+ * Use `create(ExchangeProviderSubjectTokenResponseSchema)` to create a new message.
560
+ */
561
+ export const ExchangeProviderSubjectTokenResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 109);
547
562
  /**
548
563
  * Describes the message openshell.v1.UpdateConfigRequest.
549
564
  * Use `create(UpdateConfigRequestSchema)` to create a new message.
550
565
  */
551
- export const UpdateConfigRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 107);
566
+ export const UpdateConfigRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 110);
552
567
  /**
553
568
  * Describes the message openshell.v1.PolicyMergeOperation.
554
569
  * Use `create(PolicyMergeOperationSchema)` to create a new message.
555
570
  */
556
- export const PolicyMergeOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 108);
571
+ export const PolicyMergeOperationSchema = /*@__PURE__*/ messageDesc(file_openshell, 111);
557
572
  /**
558
573
  * Describes the message openshell.v1.AddNetworkRule.
559
574
  * Use `create(AddNetworkRuleSchema)` to create a new message.
560
575
  */
561
- export const AddNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 109);
576
+ export const AddNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 112);
562
577
  /**
563
578
  * Describes the message openshell.v1.RemoveNetworkEndpoint.
564
579
  * Use `create(RemoveNetworkEndpointSchema)` to create a new message.
565
580
  */
566
- export const RemoveNetworkEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 110);
581
+ export const RemoveNetworkEndpointSchema = /*@__PURE__*/ messageDesc(file_openshell, 113);
567
582
  /**
568
583
  * Describes the message openshell.v1.RemoveNetworkRule.
569
584
  * Use `create(RemoveNetworkRuleSchema)` to create a new message.
570
585
  */
571
- export const RemoveNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 111);
586
+ export const RemoveNetworkRuleSchema = /*@__PURE__*/ messageDesc(file_openshell, 114);
572
587
  /**
573
588
  * Describes the message openshell.v1.AddDenyRules.
574
589
  * Use `create(AddDenyRulesSchema)` to create a new message.
575
590
  */
576
- export const AddDenyRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 112);
591
+ export const AddDenyRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 115);
577
592
  /**
578
593
  * Describes the message openshell.v1.AddAllowRules.
579
594
  * Use `create(AddAllowRulesSchema)` to create a new message.
580
595
  */
581
- export const AddAllowRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 113);
596
+ export const AddAllowRulesSchema = /*@__PURE__*/ messageDesc(file_openshell, 116);
582
597
  /**
583
598
  * Describes the message openshell.v1.RemoveNetworkBinary.
584
599
  * Use `create(RemoveNetworkBinarySchema)` to create a new message.
585
600
  */
586
- export const RemoveNetworkBinarySchema = /*@__PURE__*/ messageDesc(file_openshell, 114);
601
+ export const RemoveNetworkBinarySchema = /*@__PURE__*/ messageDesc(file_openshell, 117);
587
602
  /**
588
603
  * Describes the message openshell.v1.UpdateConfigResponse.
589
604
  * Use `create(UpdateConfigResponseSchema)` to create a new message.
590
605
  */
591
- export const UpdateConfigResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 115);
606
+ export const UpdateConfigResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 118);
592
607
  /**
593
608
  * Describes the message openshell.v1.GetSandboxPolicyStatusRequest.
594
609
  * Use `create(GetSandboxPolicyStatusRequestSchema)` to create a new message.
595
610
  */
596
- export const GetSandboxPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 116);
611
+ export const GetSandboxPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 119);
597
612
  /**
598
613
  * Describes the message openshell.v1.GetSandboxPolicyStatusResponse.
599
614
  * Use `create(GetSandboxPolicyStatusResponseSchema)` to create a new message.
600
615
  */
601
- export const GetSandboxPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 117);
616
+ export const GetSandboxPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 120);
602
617
  /**
603
618
  * Describes the message openshell.v1.ListSandboxPoliciesRequest.
604
619
  * Use `create(ListSandboxPoliciesRequestSchema)` to create a new message.
605
620
  */
606
- export const ListSandboxPoliciesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 118);
621
+ export const ListSandboxPoliciesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 121);
607
622
  /**
608
623
  * Describes the message openshell.v1.ListSandboxPoliciesResponse.
609
624
  * Use `create(ListSandboxPoliciesResponseSchema)` to create a new message.
610
625
  */
611
- export const ListSandboxPoliciesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 119);
626
+ export const ListSandboxPoliciesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 122);
612
627
  /**
613
628
  * Describes the message openshell.v1.ReportPolicyStatusRequest.
614
629
  * Use `create(ReportPolicyStatusRequestSchema)` to create a new message.
615
630
  */
616
- export const ReportPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 120);
631
+ export const ReportPolicyStatusRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 123);
617
632
  /**
618
633
  * Describes the message openshell.v1.ReportPolicyStatusResponse.
619
634
  * Use `create(ReportPolicyStatusResponseSchema)` to create a new message.
620
635
  */
621
- export const ReportPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 121);
636
+ export const ReportPolicyStatusResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 124);
622
637
  /**
623
638
  * Describes the message openshell.v1.SandboxPolicyRevision.
624
639
  * Use `create(SandboxPolicyRevisionSchema)` to create a new message.
625
640
  */
626
- export const SandboxPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 122);
641
+ export const SandboxPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 125);
627
642
  /**
628
643
  * Describes the message openshell.v1.GetSandboxLogsRequest.
629
644
  * Use `create(GetSandboxLogsRequestSchema)` to create a new message.
630
645
  */
631
- export const GetSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 123);
646
+ export const GetSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 126);
632
647
  /**
633
648
  * Describes the message openshell.v1.PushSandboxLogsRequest.
634
649
  * Use `create(PushSandboxLogsRequestSchema)` to create a new message.
635
650
  */
636
- export const PushSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 124);
651
+ export const PushSandboxLogsRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 127);
637
652
  /**
638
653
  * Describes the message openshell.v1.PushSandboxLogsResponse.
639
654
  * Use `create(PushSandboxLogsResponseSchema)` to create a new message.
640
655
  */
641
- export const PushSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 125);
656
+ export const PushSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 128);
642
657
  /**
643
658
  * Describes the message openshell.v1.GetSandboxLogsResponse.
644
659
  * Use `create(GetSandboxLogsResponseSchema)` to create a new message.
645
660
  */
646
- export const GetSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 126);
661
+ export const GetSandboxLogsResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 129);
647
662
  /**
648
663
  * Describes the message openshell.v1.SupervisorMessage.
649
664
  * Use `create(SupervisorMessageSchema)` to create a new message.
650
665
  */
651
- export const SupervisorMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 127);
666
+ export const SupervisorMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 130);
652
667
  /**
653
668
  * Describes the message openshell.v1.GatewayMessage.
654
669
  * Use `create(GatewayMessageSchema)` to create a new message.
655
670
  */
656
- export const GatewayMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 128);
671
+ export const GatewayMessageSchema = /*@__PURE__*/ messageDesc(file_openshell, 131);
657
672
  /**
658
673
  * Describes the message openshell.v1.SupervisorHello.
659
674
  * Use `create(SupervisorHelloSchema)` to create a new message.
660
675
  */
661
- export const SupervisorHelloSchema = /*@__PURE__*/ messageDesc(file_openshell, 129);
676
+ export const SupervisorHelloSchema = /*@__PURE__*/ messageDesc(file_openshell, 132);
662
677
  /**
663
678
  * Describes the message openshell.v1.SessionAccepted.
664
679
  * Use `create(SessionAcceptedSchema)` to create a new message.
665
680
  */
666
- export const SessionAcceptedSchema = /*@__PURE__*/ messageDesc(file_openshell, 130);
681
+ export const SessionAcceptedSchema = /*@__PURE__*/ messageDesc(file_openshell, 133);
667
682
  /**
668
683
  * Describes the message openshell.v1.SessionRejected.
669
684
  * Use `create(SessionRejectedSchema)` to create a new message.
670
685
  */
671
- export const SessionRejectedSchema = /*@__PURE__*/ messageDesc(file_openshell, 131);
686
+ export const SessionRejectedSchema = /*@__PURE__*/ messageDesc(file_openshell, 134);
672
687
  /**
673
688
  * Describes the message openshell.v1.SupervisorHeartbeat.
674
689
  * Use `create(SupervisorHeartbeatSchema)` to create a new message.
675
690
  */
676
- export const SupervisorHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 132);
691
+ export const SupervisorHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 135);
677
692
  /**
678
693
  * Describes the message openshell.v1.GatewayHeartbeat.
679
694
  * Use `create(GatewayHeartbeatSchema)` to create a new message.
680
695
  */
681
- export const GatewayHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 133);
696
+ export const GatewayHeartbeatSchema = /*@__PURE__*/ messageDesc(file_openshell, 136);
697
+ /**
698
+ * Describes the message openshell.v1.ReportMainProcessExitRequest.
699
+ * Use `create(ReportMainProcessExitRequestSchema)` to create a new message.
700
+ */
701
+ export const ReportMainProcessExitRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 137);
702
+ /**
703
+ * Describes the message openshell.v1.ReportMainProcessExitResponse.
704
+ * Use `create(ReportMainProcessExitResponseSchema)` to create a new message.
705
+ */
706
+ export const ReportMainProcessExitResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 138);
682
707
  /**
683
708
  * Describes the message openshell.v1.RelayOpen.
684
709
  * Use `create(RelayOpenSchema)` to create a new message.
685
710
  */
686
- export const RelayOpenSchema = /*@__PURE__*/ messageDesc(file_openshell, 134);
711
+ export const RelayOpenSchema = /*@__PURE__*/ messageDesc(file_openshell, 139);
687
712
  /**
688
713
  * Describes the message openshell.v1.SshRelayTarget.
689
714
  * Use `create(SshRelayTargetSchema)` to create a new message.
690
715
  */
691
- export const SshRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 135);
716
+ export const SshRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 140);
692
717
  /**
693
718
  * Describes the message openshell.v1.TcpRelayTarget.
694
719
  * Use `create(TcpRelayTargetSchema)` to create a new message.
695
720
  */
696
- export const TcpRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 136);
721
+ export const TcpRelayTargetSchema = /*@__PURE__*/ messageDesc(file_openshell, 141);
697
722
  /**
698
723
  * Describes the message openshell.v1.RelayInit.
699
724
  * Use `create(RelayInitSchema)` to create a new message.
700
725
  */
701
- export const RelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 137);
726
+ export const RelayInitSchema = /*@__PURE__*/ messageDesc(file_openshell, 142);
702
727
  /**
703
728
  * Describes the message openshell.v1.RelayFrame.
704
729
  * Use `create(RelayFrameSchema)` to create a new message.
705
730
  */
706
- export const RelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 138);
731
+ export const RelayFrameSchema = /*@__PURE__*/ messageDesc(file_openshell, 143);
707
732
  /**
708
733
  * Describes the message openshell.v1.RelayOpenResult.
709
734
  * Use `create(RelayOpenResultSchema)` to create a new message.
710
735
  */
711
- export const RelayOpenResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 139);
736
+ export const RelayOpenResultSchema = /*@__PURE__*/ messageDesc(file_openshell, 144);
712
737
  /**
713
738
  * Describes the message openshell.v1.RelayClose.
714
739
  * Use `create(RelayCloseSchema)` to create a new message.
715
740
  */
716
- export const RelayCloseSchema = /*@__PURE__*/ messageDesc(file_openshell, 140);
741
+ export const RelayCloseSchema = /*@__PURE__*/ messageDesc(file_openshell, 145);
717
742
  /**
718
743
  * Describes the message openshell.v1.L7RequestSample.
719
744
  * Use `create(L7RequestSampleSchema)` to create a new message.
720
745
  */
721
- export const L7RequestSampleSchema = /*@__PURE__*/ messageDesc(file_openshell, 141);
746
+ export const L7RequestSampleSchema = /*@__PURE__*/ messageDesc(file_openshell, 146);
722
747
  /**
723
748
  * Describes the message openshell.v1.DenialSummary.
724
749
  * Use `create(DenialSummarySchema)` to create a new message.
725
750
  */
726
- export const DenialSummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 142);
751
+ export const DenialSummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 147);
727
752
  /**
728
753
  * Describes the message openshell.v1.DenialGroupCount.
729
754
  * Use `create(DenialGroupCountSchema)` to create a new message.
730
755
  */
731
- export const DenialGroupCountSchema = /*@__PURE__*/ messageDesc(file_openshell, 143);
756
+ export const DenialGroupCountSchema = /*@__PURE__*/ messageDesc(file_openshell, 148);
732
757
  /**
733
758
  * Describes the message openshell.v1.NetworkActivitySummary.
734
759
  * Use `create(NetworkActivitySummarySchema)` to create a new message.
735
760
  */
736
- export const NetworkActivitySummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 144);
761
+ export const NetworkActivitySummarySchema = /*@__PURE__*/ messageDesc(file_openshell, 149);
737
762
  /**
738
763
  * Describes the message openshell.v1.PolicyChunk.
739
764
  * Use `create(PolicyChunkSchema)` to create a new message.
740
765
  */
741
- export const PolicyChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 145);
766
+ export const PolicyChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 150);
742
767
  /**
743
768
  * Describes the message openshell.v1.DraftPolicyUpdate.
744
769
  * Use `create(DraftPolicyUpdateSchema)` to create a new message.
745
770
  */
746
- export const DraftPolicyUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 146);
771
+ export const DraftPolicyUpdateSchema = /*@__PURE__*/ messageDesc(file_openshell, 151);
747
772
  /**
748
773
  * Describes the message openshell.v1.SubmitPolicyAnalysisRequest.
749
774
  * Use `create(SubmitPolicyAnalysisRequestSchema)` to create a new message.
750
775
  */
751
- export const SubmitPolicyAnalysisRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 147);
776
+ export const SubmitPolicyAnalysisRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 152);
752
777
  /**
753
778
  * Describes the message openshell.v1.SubmitPolicyAnalysisResponse.
754
779
  * Use `create(SubmitPolicyAnalysisResponseSchema)` to create a new message.
755
780
  */
756
- export const SubmitPolicyAnalysisResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 148);
781
+ export const SubmitPolicyAnalysisResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 153);
757
782
  /**
758
783
  * Describes the message openshell.v1.GetDraftPolicyRequest.
759
784
  * Use `create(GetDraftPolicyRequestSchema)` to create a new message.
760
785
  */
761
- export const GetDraftPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 149);
786
+ export const GetDraftPolicyRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 154);
762
787
  /**
763
788
  * Describes the message openshell.v1.GetDraftPolicyResponse.
764
789
  * Use `create(GetDraftPolicyResponseSchema)` to create a new message.
765
790
  */
766
- export const GetDraftPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 150);
791
+ export const GetDraftPolicyResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 155);
767
792
  /**
768
793
  * Describes the message openshell.v1.ApproveDraftChunkRequest.
769
794
  * Use `create(ApproveDraftChunkRequestSchema)` to create a new message.
770
795
  */
771
- export const ApproveDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 151);
796
+ export const ApproveDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 156);
772
797
  /**
773
798
  * Describes the message openshell.v1.ApproveDraftChunkResponse.
774
799
  * Use `create(ApproveDraftChunkResponseSchema)` to create a new message.
775
800
  */
776
- export const ApproveDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 152);
801
+ export const ApproveDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 157);
777
802
  /**
778
803
  * Describes the message openshell.v1.RejectDraftChunkRequest.
779
804
  * Use `create(RejectDraftChunkRequestSchema)` to create a new message.
780
805
  */
781
- export const RejectDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 153);
806
+ export const RejectDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 158);
782
807
  /**
783
808
  * Describes the message openshell.v1.RejectDraftChunkResponse.
784
809
  * Use `create(RejectDraftChunkResponseSchema)` to create a new message.
785
810
  */
786
- export const RejectDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 154);
811
+ export const RejectDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 159);
812
+ /**
813
+ * Describes the message openshell.v1.DraftChunkApproval.
814
+ * Use `create(DraftChunkApprovalSchema)` to create a new message.
815
+ */
816
+ export const DraftChunkApprovalSchema = /*@__PURE__*/ messageDesc(file_openshell, 160);
787
817
  /**
788
818
  * Describes the message openshell.v1.ApproveAllDraftChunksRequest.
789
819
  * Use `create(ApproveAllDraftChunksRequestSchema)` to create a new message.
790
820
  */
791
- export const ApproveAllDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 155);
821
+ export const ApproveAllDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 161);
792
822
  /**
793
823
  * Describes the message openshell.v1.ApproveAllDraftChunksResponse.
794
824
  * Use `create(ApproveAllDraftChunksResponseSchema)` to create a new message.
795
825
  */
796
- export const ApproveAllDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 156);
826
+ export const ApproveAllDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 162);
797
827
  /**
798
828
  * Describes the message openshell.v1.EditDraftChunkRequest.
799
829
  * Use `create(EditDraftChunkRequestSchema)` to create a new message.
800
830
  */
801
- export const EditDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 157);
831
+ export const EditDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 163);
802
832
  /**
803
833
  * Describes the message openshell.v1.EditDraftChunkResponse.
804
834
  * Use `create(EditDraftChunkResponseSchema)` to create a new message.
805
835
  */
806
- export const EditDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 158);
836
+ export const EditDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 164);
807
837
  /**
808
838
  * Describes the message openshell.v1.UndoDraftChunkRequest.
809
839
  * Use `create(UndoDraftChunkRequestSchema)` to create a new message.
810
840
  */
811
- export const UndoDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 159);
841
+ export const UndoDraftChunkRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 165);
812
842
  /**
813
843
  * Describes the message openshell.v1.UndoDraftChunkResponse.
814
844
  * Use `create(UndoDraftChunkResponseSchema)` to create a new message.
815
845
  */
816
- export const UndoDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 160);
846
+ export const UndoDraftChunkResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 166);
817
847
  /**
818
848
  * Describes the message openshell.v1.ClearDraftChunksRequest.
819
849
  * Use `create(ClearDraftChunksRequestSchema)` to create a new message.
820
850
  */
821
- export const ClearDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 161);
851
+ export const ClearDraftChunksRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 167);
822
852
  /**
823
853
  * Describes the message openshell.v1.ClearDraftChunksResponse.
824
854
  * Use `create(ClearDraftChunksResponseSchema)` to create a new message.
825
855
  */
826
- export const ClearDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 162);
856
+ export const ClearDraftChunksResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 168);
827
857
  /**
828
858
  * Describes the message openshell.v1.GetDraftHistoryRequest.
829
859
  * Use `create(GetDraftHistoryRequestSchema)` to create a new message.
830
860
  */
831
- export const GetDraftHistoryRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 163);
861
+ export const GetDraftHistoryRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 169);
832
862
  /**
833
863
  * Describes the message openshell.v1.DraftHistoryEntry.
834
864
  * Use `create(DraftHistoryEntrySchema)` to create a new message.
835
865
  */
836
- export const DraftHistoryEntrySchema = /*@__PURE__*/ messageDesc(file_openshell, 164);
866
+ export const DraftHistoryEntrySchema = /*@__PURE__*/ messageDesc(file_openshell, 170);
837
867
  /**
838
868
  * Describes the message openshell.v1.GetDraftHistoryResponse.
839
869
  * Use `create(GetDraftHistoryResponseSchema)` to create a new message.
840
870
  */
841
- export const GetDraftHistoryResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 165);
871
+ export const GetDraftHistoryResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 171);
842
872
  /**
843
873
  * Describes the message openshell.v1.PolicyRevisionPayload.
844
874
  * Use `create(PolicyRevisionPayloadSchema)` to create a new message.
845
875
  */
846
- export const PolicyRevisionPayloadSchema = /*@__PURE__*/ messageDesc(file_openshell, 166);
876
+ export const PolicyRevisionPayloadSchema = /*@__PURE__*/ messageDesc(file_openshell, 172);
847
877
  /**
848
878
  * Describes the message openshell.v1.DraftChunkPayload.
849
879
  * Use `create(DraftChunkPayloadSchema)` to create a new message.
850
880
  */
851
- export const DraftChunkPayloadSchema = /*@__PURE__*/ messageDesc(file_openshell, 167);
881
+ export const DraftChunkPayloadSchema = /*@__PURE__*/ messageDesc(file_openshell, 173);
852
882
  /**
853
883
  * Describes the message openshell.v1.StoredPolicyRevision.
854
884
  * Use `create(StoredPolicyRevisionSchema)` to create a new message.
855
885
  */
856
- export const StoredPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 168);
886
+ export const StoredPolicyRevisionSchema = /*@__PURE__*/ messageDesc(file_openshell, 174);
857
887
  /**
858
888
  * Describes the message openshell.v1.StoredDraftChunk.
859
889
  * Use `create(StoredDraftChunkSchema)` to create a new message.
860
890
  */
861
- export const StoredDraftChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 169);
891
+ export const StoredDraftChunkSchema = /*@__PURE__*/ messageDesc(file_openshell, 175);
862
892
  /**
863
893
  * Describes the message openshell.v1.CreateWorkspaceRequest.
864
894
  * Use `create(CreateWorkspaceRequestSchema)` to create a new message.
865
895
  */
866
- export const CreateWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 170);
896
+ export const CreateWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 176);
867
897
  /**
868
898
  * Describes the message openshell.v1.CreateWorkspaceResponse.
869
899
  * Use `create(CreateWorkspaceResponseSchema)` to create a new message.
870
900
  */
871
- export const CreateWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 171);
901
+ export const CreateWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 177);
872
902
  /**
873
903
  * Describes the message openshell.v1.GetWorkspaceRequest.
874
904
  * Use `create(GetWorkspaceRequestSchema)` to create a new message.
875
905
  */
876
- export const GetWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 172);
906
+ export const GetWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 178);
877
907
  /**
878
908
  * Describes the message openshell.v1.GetWorkspaceResponse.
879
909
  * Use `create(GetWorkspaceResponseSchema)` to create a new message.
880
910
  */
881
- export const GetWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 173);
911
+ export const GetWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 179);
882
912
  /**
883
913
  * Describes the message openshell.v1.ListWorkspacesRequest.
884
914
  * Use `create(ListWorkspacesRequestSchema)` to create a new message.
885
915
  */
886
- export const ListWorkspacesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 174);
916
+ export const ListWorkspacesRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 180);
887
917
  /**
888
918
  * Describes the message openshell.v1.ListWorkspacesResponse.
889
919
  * Use `create(ListWorkspacesResponseSchema)` to create a new message.
890
920
  */
891
- export const ListWorkspacesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 175);
921
+ export const ListWorkspacesResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 181);
892
922
  /**
893
923
  * Describes the message openshell.v1.DeleteWorkspaceRequest.
894
924
  * Use `create(DeleteWorkspaceRequestSchema)` to create a new message.
895
925
  */
896
- export const DeleteWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 176);
926
+ export const DeleteWorkspaceRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 182);
897
927
  /**
898
928
  * Describes the message openshell.v1.DeleteWorkspaceResponse.
899
929
  * Use `create(DeleteWorkspaceResponseSchema)` to create a new message.
900
930
  */
901
- export const DeleteWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 177);
931
+ export const DeleteWorkspaceResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 183);
902
932
  /**
903
933
  * Describes the message openshell.v1.WorkspaceMember.
904
934
  * Use `create(WorkspaceMemberSchema)` to create a new message.
905
935
  */
906
- export const WorkspaceMemberSchema = /*@__PURE__*/ messageDesc(file_openshell, 178);
936
+ export const WorkspaceMemberSchema = /*@__PURE__*/ messageDesc(file_openshell, 184);
907
937
  /**
908
938
  * Describes the message openshell.v1.AddWorkspaceMemberRequest.
909
939
  * Use `create(AddWorkspaceMemberRequestSchema)` to create a new message.
910
940
  */
911
- export const AddWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 179);
941
+ export const AddWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 185);
912
942
  /**
913
943
  * Describes the message openshell.v1.AddWorkspaceMemberResponse.
914
944
  * Use `create(AddWorkspaceMemberResponseSchema)` to create a new message.
915
945
  */
916
- export const AddWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 180);
946
+ export const AddWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 186);
917
947
  /**
918
948
  * Describes the message openshell.v1.RemoveWorkspaceMemberRequest.
919
949
  * Use `create(RemoveWorkspaceMemberRequestSchema)` to create a new message.
920
950
  */
921
- export const RemoveWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 181);
951
+ export const RemoveWorkspaceMemberRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 187);
922
952
  /**
923
953
  * Describes the message openshell.v1.RemoveWorkspaceMemberResponse.
924
954
  * Use `create(RemoveWorkspaceMemberResponseSchema)` to create a new message.
925
955
  */
926
- export const RemoveWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 182);
956
+ export const RemoveWorkspaceMemberResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 188);
927
957
  /**
928
958
  * Describes the message openshell.v1.ListWorkspaceMembersRequest.
929
959
  * Use `create(ListWorkspaceMembersRequestSchema)` to create a new message.
930
960
  */
931
- export const ListWorkspaceMembersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 183);
961
+ export const ListWorkspaceMembersRequestSchema = /*@__PURE__*/ messageDesc(file_openshell, 189);
932
962
  /**
933
963
  * Describes the message openshell.v1.ListWorkspaceMembersResponse.
934
964
  * Use `create(ListWorkspaceMembersResponseSchema)` to create a new message.
935
965
  */
936
- export const ListWorkspaceMembersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 184);
966
+ export const ListWorkspaceMembersResponseSchema = /*@__PURE__*/ messageDesc(file_openshell, 190);
937
967
  /**
938
968
  * Describes the message openshell.v1.ExtensionServiceCredential.
939
969
  * Use `create(ExtensionServiceCredentialSchema)` to create a new message.
940
970
  */
941
- export const ExtensionServiceCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 185);
971
+ export const ExtensionServiceCredentialSchema = /*@__PURE__*/ messageDesc(file_openshell, 191);
942
972
  /**
943
973
  * High-level sandbox lifecycle phase derived by the gateway.
944
974
  *
@@ -990,6 +1020,31 @@ export var SandboxPhase;
990
1020
  * Describes the enum openshell.v1.SandboxPhase.
991
1021
  */
992
1022
  export const SandboxPhaseSchema = /*@__PURE__*/ enumDesc(file_openshell, 0);
1023
+ /**
1024
+ * Provider credential token grant configuration.
1025
+ * When present, the credential is obtained dynamically via OAuth2 grant when needed.
1026
+ *
1027
+ * @generated from enum openshell.v1.ProviderCredentialTokenGrantType
1028
+ */
1029
+ export var ProviderCredentialTokenGrantType;
1030
+ (function (ProviderCredentialTokenGrantType) {
1031
+ /**
1032
+ * @generated from enum value: PROVIDER_CREDENTIAL_TOKEN_GRANT_TYPE_UNSPECIFIED = 0;
1033
+ */
1034
+ ProviderCredentialTokenGrantType[ProviderCredentialTokenGrantType["UNSPECIFIED"] = 0] = "UNSPECIFIED";
1035
+ /**
1036
+ * @generated from enum value: PROVIDER_CREDENTIAL_TOKEN_GRANT_TYPE_CLIENT_CREDENTIALS = 1;
1037
+ */
1038
+ ProviderCredentialTokenGrantType[ProviderCredentialTokenGrantType["CLIENT_CREDENTIALS"] = 1] = "CLIENT_CREDENTIALS";
1039
+ /**
1040
+ * @generated from enum value: PROVIDER_CREDENTIAL_TOKEN_GRANT_TYPE_TOKEN_EXCHANGE = 2;
1041
+ */
1042
+ ProviderCredentialTokenGrantType[ProviderCredentialTokenGrantType["TOKEN_EXCHANGE"] = 2] = "TOKEN_EXCHANGE";
1043
+ })(ProviderCredentialTokenGrantType || (ProviderCredentialTokenGrantType = {}));
1044
+ /**
1045
+ * Describes the enum openshell.v1.ProviderCredentialTokenGrantType.
1046
+ */
1047
+ export const ProviderCredentialTokenGrantTypeSchema = /*@__PURE__*/ enumDesc(file_openshell, 1);
993
1048
  /**
994
1049
  * @generated from enum openshell.v1.ProviderCredentialRefreshStrategy
995
1050
  */
@@ -1027,7 +1082,7 @@ export var ProviderCredentialRefreshStrategy;
1027
1082
  /**
1028
1083
  * Describes the enum openshell.v1.ProviderCredentialRefreshStrategy.
1029
1084
  */
1030
- export const ProviderCredentialRefreshStrategySchema = /*@__PURE__*/ enumDesc(file_openshell, 1);
1085
+ export const ProviderCredentialRefreshStrategySchema = /*@__PURE__*/ enumDesc(file_openshell, 2);
1031
1086
  /**
1032
1087
  * Stable provider profile categories used by clients for grouping and filtering.
1033
1088
  *
@@ -1071,7 +1126,7 @@ export var ProviderProfileCategory;
1071
1126
  /**
1072
1127
  * Describes the enum openshell.v1.ProviderProfileCategory.
1073
1128
  */
1074
- export const ProviderProfileCategorySchema = /*@__PURE__*/ enumDesc(file_openshell, 2);
1129
+ export const ProviderProfileCategorySchema = /*@__PURE__*/ enumDesc(file_openshell, 3);
1075
1130
  /**
1076
1131
  * Policy load status.
1077
1132
  *
@@ -1111,7 +1166,7 @@ export var PolicyStatus;
1111
1166
  /**
1112
1167
  * Describes the enum openshell.v1.PolicyStatus.
1113
1168
  */
1114
- export const PolicyStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 3);
1169
+ export const PolicyStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 4);
1115
1170
  /**
1116
1171
  * Service status enum.
1117
1172
  *
@@ -1139,7 +1194,7 @@ export var ServiceStatus;
1139
1194
  /**
1140
1195
  * Describes the enum openshell.v1.ServiceStatus.
1141
1196
  */
1142
- export const ServiceStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 4);
1197
+ export const ServiceStatusSchema = /*@__PURE__*/ enumDesc(file_openshell, 5);
1143
1198
  /**
1144
1199
  * Workspace-scoped role for members.
1145
1200
  *
@@ -1163,7 +1218,7 @@ export var WorkspaceRole;
1163
1218
  /**
1164
1219
  * Describes the enum openshell.v1.WorkspaceRole.
1165
1220
  */
1166
- export const WorkspaceRoleSchema = /*@__PURE__*/ enumDesc(file_openshell, 5);
1221
+ export const WorkspaceRoleSchema = /*@__PURE__*/ enumDesc(file_openshell, 6);
1167
1222
  /**
1168
1223
  * OpenShell service provides sandbox, provider, and runtime management capabilities.
1169
1224
  *