@eide/foir-cli 0.53.0 → 0.55.0

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.
package/dist/cli.js CHANGED
@@ -305,7 +305,7 @@ async function findAvailablePort(start, end) {
305
305
  for (let port = start; port <= end; port++) {
306
306
  const available = await new Promise((resolve9) => {
307
307
  const server = http.createServer();
308
- server.listen(port, () => {
308
+ server.listen(port, "127.0.0.1", () => {
309
309
  server.close();
310
310
  resolve9(true);
311
311
  });
@@ -365,6 +365,15 @@ async function loginAction(globalOpts) {
365
365
  reject(new Error(`Authentication failed: ${error}`));
366
366
  return;
367
367
  }
368
+ if (!code) {
369
+ res.writeHead(400, { "Content-Type": "text/html" });
370
+ res.end(
371
+ `<html><body style="font-family:system-ui;text-align:center;padding:50px"><h1>Authentication failed</h1><p>No authorization code returned. Please try again.</p></body></html>`
372
+ );
373
+ server.close();
374
+ reject(new Error("No authorization code in callback"));
375
+ return;
376
+ }
368
377
  if (returnedState !== state) {
369
378
  res.writeHead(400, { "Content-Type": "text/html" });
370
379
  res.end(
@@ -389,7 +398,7 @@ async function loginAction(globalOpts) {
389
398
  resolve9(code);
390
399
  }
391
400
  });
392
- server.listen(port);
401
+ server.listen(port, "127.0.0.1");
393
402
  timeoutId = setTimeout(
394
403
  () => {
395
404
  server.close();
@@ -568,6 +577,16 @@ var ListCustomDomainsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_
568
577
  var ListRelyingPartyGrantsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 268);
569
578
  var GrantRelyingPartyRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 270);
570
579
  var RevokeRelyingPartyGrantRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 272);
580
+ var CustomerRoleSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 274);
581
+ var ListCustomerRolesRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 275);
582
+ var GetCustomerRoleRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 277);
583
+ var CreateCustomerRoleRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 279);
584
+ var UpdateCustomerRoleRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 281);
585
+ var DisableCustomerRoleRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 283);
586
+ var CustomerRoleAssignmentSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 285);
587
+ var AssignCustomerRoleRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 286);
588
+ var RevokeCustomerRoleAssignmentRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 288);
589
+ var ListCustomerRoleAssignmentsRequestSchema = /* @__PURE__ */ messageDesc3(file_identity_v1_identity, 290);
571
590
  var IdentityService = /* @__PURE__ */ serviceDesc(file_identity_v1_identity, 0);
572
591
 
573
592
  // ../../packages/proto-ts/src/models/v1/models_pb.js
@@ -652,260 +671,268 @@ var DeleteEmbeddingsRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1
652
671
  var SearchEmbeddingsRequestSchema = /* @__PURE__ */ messageDesc7(file_records_v1_records, 89);
653
672
  var RecordsService = /* @__PURE__ */ serviceDesc3(file_records_v1_records, 0);
654
673
 
655
- // ../../packages/proto-ts/src/configs/v1/configs_pb.js
674
+ // ../../packages/proto-ts/src/realtime/v1/realtime_pb.js
656
675
  import { enumDesc as enumDesc5, fileDesc as fileDesc8, messageDesc as messageDesc8, serviceDesc as serviceDesc4, tsEnum as tsEnum5 } from "@bufbuild/protobuf/codegenv2";
676
+ var file_realtime_v1_realtime = /* @__PURE__ */ fileDesc8("ChpyZWFsdGltZS92MS9yZWFsdGltZS5wcm90bxILcmVhbHRpbWUudjEirAEKGEF1dGhvcml6ZVJvb21Kb2luUmVxdWVzdBIWCg5wcmluY2lwYWxfa2luZBgBIAEoCRIUCgxwcmluY2lwYWxfaWQYAiABKAkSEQoJdGVuYW50X2lkGAMgASgJEhIKCnByb2plY3RfaWQYBCABKAkSFgoOcm9vbV9uYW1lc3BhY2UYBSABKAkSDwoHcm9vbV9pZBgGIAEoCRISCgpjYXBhYmlsaXR5GAcgASgJIokBChlBdXRob3JpemVSb29tSm9pblJlc3BvbnNlEg8KB2FsbG93ZWQYASABKAgSDgoGcmVhc29uGAIgASgJEjoKEnBlcnNpc3RlbmNlX3BvbGljeRgDIAEoDjIeLnJlYWx0aW1lLnYxLlBlcnNpc3RlbmNlUG9saWN5Eg8KB3NpbmtfaWQYBCABKAkquQEKEVBlcnNpc3RlbmNlUG9saWN5EiIKHlBFUlNJU1RFTkNFX1BPTElDWV9VTlNQRUNJRklFRBAAEiAKHFBFUlNJU1RFTkNFX1BPTElDWV9FUEhFTUVSQUwQARIfChtQRVJTSVNURU5DRV9QT0xJQ1lfU05BUFNIT1QQAhIgChxQRVJTSVNURU5DRV9QT0xJQ1lfVkVSU0lPTkVEEAMSGwoXUEVSU0lTVEVOQ0VfUE9MSUNZX1NJTksQBDJ1Cg9SZWFsdGltZVNlcnZpY2USYgoRQXV0aG9yaXplUm9vbUpvaW4SJS5yZWFsdGltZS52MS5BdXRob3JpemVSb29tSm9pblJlcXVlc3QaJi5yZWFsdGltZS52MS5BdXRob3JpemVSb29tSm9pblJlc3BvbnNlQj1aO2dpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9yZWFsdGltZS92MTtyZWFsdGltZXYxYgZwcm90bzM");
677
+ var AuthorizeRoomJoinRequestSchema = /* @__PURE__ */ messageDesc8(file_realtime_v1_realtime, 0);
678
+ var PersistencePolicySchema = /* @__PURE__ */ enumDesc5(file_realtime_v1_realtime, 0);
679
+ var PersistencePolicy = /* @__PURE__ */ tsEnum5(PersistencePolicySchema);
680
+ var RealtimeService = /* @__PURE__ */ serviceDesc4(file_realtime_v1_realtime, 0);
681
+
682
+ // ../../packages/proto-ts/src/configs/v1/configs_pb.js
683
+ import { enumDesc as enumDesc6, fileDesc as fileDesc9, messageDesc as messageDesc9, serviceDesc as serviceDesc5, tsEnum as tsEnum6 } from "@bufbuild/protobuf/codegenv2";
657
684
  import { file_google_protobuf_struct as file_google_protobuf_struct4, file_google_protobuf_timestamp as file_google_protobuf_timestamp5 } from "@bufbuild/protobuf/wkt";
658
- var file_configs_v1_configs = /* @__PURE__ */ fileDesc8("Chhjb25maWdzL3YxL2NvbmZpZ3MucHJvdG8SCmNvbmZpZ3MudjEivwcKBkNvbmZpZxIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSEwoLY29uZmlnX3R5cGUYAyABKAkSLgoJZGlyZWN0aW9uGAQgASgOMhsuY29uZmlncy52MS5Db25maWdEaXJlY3Rpb24SDAoEbmFtZRgFIAEoCRIYCgtkZXNjcmlwdGlvbhgGIAEoCUgAiAEBEh4KEWNvbm5lY3Rpb25fZG9tYWluGAogASgJSAGIAQESGgoNY29ubmVjdGlvbl9pZBgLIAEoCUgCiAEBEg8KB2VuYWJsZWQYFCABKAgSEwoLZW52aXJvbm1lbnQYFSABKAkSEwoLc3luY19zdGF0dXMYFiABKAkSMwoNc3luY19tZXRhZGF0YRgXIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIxCgtjcmVkZW50aWFscxgeIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIrCgVvYXV0aBgfIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIuCghmZWF0dXJlcxggIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBARIuCgh3ZWJob29rcxghIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIsCgZjb25maWcYIiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAiIAQESKwoFaG9va3MYIyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAmIAQESEQoJdGVuYW50X2lkGCggASgJEhIKCnByb2plY3RfaWQYKSABKAkSFwoKY3JlYXRlZF9ieRgtIAEoCUgKiAEBEhcKCnVwZGF0ZWRfYnkYLiABKAlIC4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CFAoSX2Nvbm5lY3Rpb25fZG9tYWluQhAKDl9jb25uZWN0aW9uX2lkQhAKDl9zeW5jX21ldGFkYXRhQg4KDF9jcmVkZW50aWFsc0IICgZfb2F1dGhCCwoJX2ZlYXR1cmVzQgsKCV93ZWJob29rc0IJCgdfY29uZmlnQggKBl9ob29rc0INCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSLKAgoJT3BlcmF0aW9uEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEQoEaWNvbhgFIAEoCUgBiAEBEhUKCGNhdGVnb3J5GAYgASgJSAKIAQESEQoJaXNfYWN0aXZlGAcgASgIEhEKCXRlbmFudF9pZBgUIAEoCRIXCgpwcm9qZWN0X2lkGBUgASgJSAOIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQgsKCV9jYXRlZ29yeUINCgtfcHJvamVjdF9pZCLGAQoVTGlzdE9wZXJhdGlvbnNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKeAQoWTGlzdE9wZXJhdGlvbnNSZXNwb25zZRIpCgpvcGVyYXRpb25zGAEgAygLMhUuY29uZmlncy52MS5PcGVyYXRpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIh4KEEdldENvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkiNwoRR2V0Q29uZmlnUmVzcG9uc2USIgoGY29uZmlnGAEgASgLMhIuY29uZmlncy52MS5Db25maWciJAoVR2V0Q29uZmlnQnlLZXlSZXF1ZXN0EgsKA2tleRgBIAEoCSI8ChZHZXRDb25maWdCeUtleVJlc3BvbnNlEiIKBmNvbmZpZxgBIAEoCzISLmNvbmZpZ3MudjEuQ29uZmlnIsMBChJMaXN0Q29uZmlnc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpUBChNMaXN0Q29uZmlnc1Jlc3BvbnNlEiMKB2NvbmZpZ3MYASADKAsyEi5jb25maWdzLnYxLkNvbmZpZxINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8i7AEKEkNvbmZpZ0hpc3RvcnlFbnRyeRIKCgJpZBgBIAEoCRIWCgljb25maWdfaWQYAiABKAlIAIgBARISCgpjb25maWdfa2V5GAMgASgJEi0KCXB1c2hlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoJcHVzaGVkX2J5GAUgASgJEg4KBnNvdXJjZRgGIAEoCRIKCgJvaxgHIAEoCBIWCg5yZXN1bHRfc3VtbWFyeRgIIAEoCRIaChJkaWZmX2Zyb21fcHJldmlvdXMYCSABKAlCDAoKX2NvbmZpZ19pZCJpChhMaXN0Q29uZmlnSGlzdG9yeVJlcXVlc3QSEQoJY29uZmlnX2lkGAEgASgJEhIKBWFmdGVyGAIgASgJSACIAQESEgoFZmlyc3QYAyABKAVIAYgBAUIICgZfYWZ0ZXJCCAoGX2ZpcnN0IocBChlMaXN0Q29uZmlnSGlzdG9yeVJlc3BvbnNlEi8KB2VudHJpZXMYASADKAsyHi5jb25maWdzLnYxLkNvbmZpZ0hpc3RvcnlFbnRyeRIrCglwYWdlX2luZm8YAiABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBAUIMCgpfcGFnZV9pbmZvIvoBChNDcmVhdGVDb25maWdSZXF1ZXN0EgsKA2tleRgBIAEoCRITCgtjb25maWdfdHlwZRgCIAEoCRIuCglkaXJlY3Rpb24YAyABKA4yGy5jb25maWdzLnYxLkNvbmZpZ0RpcmVjdGlvbhIMCgRuYW1lGAQgASgJEhgKC2Rlc2NyaXB0aW9uGAUgASgJSACIAQESLAoGY29uZmlnGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEhQKB2VuYWJsZWQYByABKAhIAogBAUIOCgxfZGVzY3JpcHRpb25CCQoHX2NvbmZpZ0IKCghfZW5hYmxlZCI6ChRDcmVhdGVDb25maWdSZXNwb25zZRIiCgZjb25maWcYASABKAsyEi5jb25maWdzLnYxLkNvbmZpZyK2AgoTVXBkYXRlQ29uZmlnUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESGAoLZGVzY3JpcHRpb24YAyABKAlIAYgBARIsCgZjb25maWcYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESFAoHZW5hYmxlZBgFIAEoCEgDiAEBEi4KCHdlYmhvb2tzGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEisKBWhvb2tzGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfY29uZmlnQgoKCF9lbmFibGVkQgsKCV93ZWJob29rc0IICgZfaG9va3MiOgoUVXBkYXRlQ29uZmlnUmVzcG9uc2USIgoGY29uZmlnGAEgASgLMhIuY29uZmlncy52MS5Db25maWciIQoTRGVsZXRlQ29uZmlnUmVxdWVzdBIKCgJpZBgBIAEoCSInChREZWxldGVDb25maWdSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIsACChVFZGl0b3JDb25maWdQbGFjZW1lbnQSEQoJY29uZmlnX2lkGAEgASgJEhIKCmNvbmZpZ19rZXkYAiABKAkSEAoDdXJsGAMgASgJSACIAQESGwoOYWxsb3dlZF9vcmlnaW4YBCABKAlIAYgBARITCgZoZWlnaHQYBSABKAVIAogBARISCgVsYWJlbBgGIAEoCUgDiAEBEhQKB2FwaV9rZXkYByABKAlIBIgBARIUCgdhcGlfdXJsGAggASgJSAWIAQESHgoRY29ubmVjdGlvbl9kb21haW4YCSABKAlIBogBAUIGCgRfdXJsQhEKD19hbGxvd2VkX29yaWdpbkIJCgdfaGVpZ2h0QggKBl9sYWJlbEIKCghfYXBpX2tleUIKCghfYXBpX3VybEIUChJfY29ubmVjdGlvbl9kb21haW4iLAoXR2V0RWRpdG9yQ29uZmlnc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJIlEKGEdldEVkaXRvckNvbmZpZ3NSZXNwb25zZRI1CgpwbGFjZW1lbnRzGAEgAygLMiEuY29uZmlncy52MS5FZGl0b3JDb25maWdQbGFjZW1lbnQiLQoYVHJpZ2dlckNvbmZpZ1N5bmNSZXF1ZXN0EhEKCWNvbmZpZ19pZBgBIAEoCSIsChlUcmlnZ2VyQ29uZmlnU3luY1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiVgoSQXBwbHlDb25maWdSZXF1ZXN0EhIKCmNvbmZpZ19rZXkYASABKAkSLAoLY29uZmlnX2RhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0ItcBChNBcHBseUNvbmZpZ1Jlc3BvbnNlEiIKBmNvbmZpZxgBIAEoCzISLmNvbmZpZ3MudjEuQ29uZmlnEi8KB3N1bW1hcnkYAiABKAsyHi5jb25maWdzLnYxLkFwcGx5Q29uZmlnU3VtbWFyeRI7ChRwcm92aXNpb25lZF9hcGlfa2V5cxgDIAMoCzIdLmNvbmZpZ3MudjEuUHJvdmlzaW9uZWRBcGlLZXkSGwoOd2ViaG9va19zZWNyZXQYBCABKAlIAIgBAUIRCg9fd2ViaG9va19zZWNyZXQiVQoRUHJvdmlzaW9uZWRBcGlLZXkSDAoEbmFtZRgBIAEoCRIQCghrZXlfdHlwZRgCIAEoCRIPCgdlbnZfdmFyGAMgASgJEg8KB3Jhd19rZXkYBCABKAki7wIKEkFwcGx5Q29uZmlnU3VtbWFyeRIWCg5tb2RlbHNfY3JlYXRlZBgBIAEoBRIWCg5tb2RlbHNfdXBkYXRlZBgCIAEoBRIaChJvcGVyYXRpb25zX2NyZWF0ZWQYAyABKAUSGgoSb3BlcmF0aW9uc191cGRhdGVkGAQgASgFEhUKDWhvb2tzX2NyZWF0ZWQYBSABKAUSFQoNaG9va3NfdXBkYXRlZBgGIAEoBRIYChBzZWdtZW50c19jcmVhdGVkGAcgASgFEhgKEHNlZ21lbnRzX3VwZGF0ZWQYCCABKAUSGQoRc2NoZWR1bGVzX2NyZWF0ZWQYCSABKAUSGQoRc2NoZWR1bGVzX3VwZGF0ZWQYCiABKAUSHgoWYXV0aF9wcm92aWRlcnNfY3JlYXRlZBgLIAEoBRIeChZhdXRoX3Byb3ZpZGVyc191cGRhdGVkGAwgASgFEhkKEXJlc291cmNlc19kZWxldGVkGA0gASgFIkEKHFdyaXRlQ29uZmlnQ3JlZGVudGlhbFJlcXVlc3QSEgoKY29uZmlnX2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDCJvCh1Xcml0ZUNvbmZpZ0NyZWRlbnRpYWxSZXNwb25zZRIZChFlbmNyeXB0aW9uX2tleV9pZBgBIAEoCRIzCg9sYXN0X3dyaXR0ZW5fYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKo4BCg9Db25maWdEaXJlY3Rpb24SIAocQ09ORklHX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEhkKFUNPTkZJR19ESVJFQ1RJT05fUkVBRBABEhoKFkNPTkZJR19ESVJFQ1RJT05fV1JJVEUQAhIiCh5DT05GSUdfRElSRUNUSU9OX0JJRElSRUNUSU9OQUwQAzK2CAoOQ29uZmlnc1NlcnZpY2USSAoJR2V0Q29uZmlnEhwuY29uZmlncy52MS5HZXRDb25maWdSZXF1ZXN0Gh0uY29uZmlncy52MS5HZXRDb25maWdSZXNwb25zZRJXCg5HZXRDb25maWdCeUtleRIhLmNvbmZpZ3MudjEuR2V0Q29uZmlnQnlLZXlSZXF1ZXN0GiIuY29uZmlncy52MS5HZXRDb25maWdCeUtleVJlc3BvbnNlEk4KC0xpc3RDb25maWdzEh4uY29uZmlncy52MS5MaXN0Q29uZmlnc1JlcXVlc3QaHy5jb25maWdzLnYxLkxpc3RDb25maWdzUmVzcG9uc2USYAoRTGlzdENvbmZpZ0hpc3RvcnkSJC5jb25maWdzLnYxLkxpc3RDb25maWdIaXN0b3J5UmVxdWVzdBolLmNvbmZpZ3MudjEuTGlzdENvbmZpZ0hpc3RvcnlSZXNwb25zZRJXCg5MaXN0T3BlcmF0aW9ucxIhLmNvbmZpZ3MudjEuTGlzdE9wZXJhdGlvbnNSZXF1ZXN0GiIuY29uZmlncy52MS5MaXN0T3BlcmF0aW9uc1Jlc3BvbnNlEl0KEEdldEVkaXRvckNvbmZpZ3MSIy5jb25maWdzLnYxLkdldEVkaXRvckNvbmZpZ3NSZXF1ZXN0GiQuY29uZmlncy52MS5HZXRFZGl0b3JDb25maWdzUmVzcG9uc2USUQoMQ3JlYXRlQ29uZmlnEh8uY29uZmlncy52MS5DcmVhdGVDb25maWdSZXF1ZXN0GiAuY29uZmlncy52MS5DcmVhdGVDb25maWdSZXNwb25zZRJRCgxVcGRhdGVDb25maWcSHy5jb25maWdzLnYxLlVwZGF0ZUNvbmZpZ1JlcXVlc3QaIC5jb25maWdzLnYxLlVwZGF0ZUNvbmZpZ1Jlc3BvbnNlElEKDERlbGV0ZUNvbmZpZxIfLmNvbmZpZ3MudjEuRGVsZXRlQ29uZmlnUmVxdWVzdBogLmNvbmZpZ3MudjEuRGVsZXRlQ29uZmlnUmVzcG9uc2USYAoRVHJpZ2dlckNvbmZpZ1N5bmMSJC5jb25maWdzLnYxLlRyaWdnZXJDb25maWdTeW5jUmVxdWVzdBolLmNvbmZpZ3MudjEuVHJpZ2dlckNvbmZpZ1N5bmNSZXNwb25zZRJOCgtBcHBseUNvbmZpZxIeLmNvbmZpZ3MudjEuQXBwbHlDb25maWdSZXF1ZXN0Gh8uY29uZmlncy52MS5BcHBseUNvbmZpZ1Jlc3BvbnNlEmwKFVdyaXRlQ29uZmlnQ3JlZGVudGlhbBIoLmNvbmZpZ3MudjEuV3JpdGVDb25maWdDcmVkZW50aWFsUmVxdWVzdBopLmNvbmZpZ3MudjEuV3JpdGVDb25maWdDcmVkZW50aWFsUmVzcG9uc2VCO1o5Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL2NvbmZpZ3MvdjE7Y29uZmlnc3YxYgZwcm90bzM", [file_google_protobuf_struct4, file_google_protobuf_timestamp5, file_common_v1_pagination]);
659
- var ConfigSchema = /* @__PURE__ */ messageDesc8(file_configs_v1_configs, 0);
660
- var ListOperationsRequestSchema = /* @__PURE__ */ messageDesc8(file_configs_v1_configs, 2);
661
- var GetConfigRequestSchema = /* @__PURE__ */ messageDesc8(file_configs_v1_configs, 4);
662
- var GetConfigByKeyRequestSchema = /* @__PURE__ */ messageDesc8(file_configs_v1_configs, 6);
663
- var ListConfigsRequestSchema = /* @__PURE__ */ messageDesc8(file_configs_v1_configs, 8);
664
- var CreateConfigRequestSchema = /* @__PURE__ */ messageDesc8(file_configs_v1_configs, 13);
665
- var UpdateConfigRequestSchema = /* @__PURE__ */ messageDesc8(file_configs_v1_configs, 15);
666
- var DeleteConfigRequestSchema = /* @__PURE__ */ messageDesc8(file_configs_v1_configs, 17);
667
- var TriggerConfigSyncRequestSchema = /* @__PURE__ */ messageDesc8(file_configs_v1_configs, 22);
668
- var ApplyConfigRequestSchema = /* @__PURE__ */ messageDesc8(file_configs_v1_configs, 24);
669
- var WriteConfigCredentialRequestSchema = /* @__PURE__ */ messageDesc8(file_configs_v1_configs, 28);
670
- var ConfigDirectionSchema = /* @__PURE__ */ enumDesc5(file_configs_v1_configs, 0);
671
- var ConfigDirection = /* @__PURE__ */ tsEnum5(ConfigDirectionSchema);
672
- var ConfigsService = /* @__PURE__ */ serviceDesc4(file_configs_v1_configs, 0);
685
+ var file_configs_v1_configs = /* @__PURE__ */ fileDesc9("Chhjb25maWdzL3YxL2NvbmZpZ3MucHJvdG8SCmNvbmZpZ3MudjEivwcKBkNvbmZpZxIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSEwoLY29uZmlnX3R5cGUYAyABKAkSLgoJZGlyZWN0aW9uGAQgASgOMhsuY29uZmlncy52MS5Db25maWdEaXJlY3Rpb24SDAoEbmFtZRgFIAEoCRIYCgtkZXNjcmlwdGlvbhgGIAEoCUgAiAEBEh4KEWNvbm5lY3Rpb25fZG9tYWluGAogASgJSAGIAQESGgoNY29ubmVjdGlvbl9pZBgLIAEoCUgCiAEBEg8KB2VuYWJsZWQYFCABKAgSEwoLZW52aXJvbm1lbnQYFSABKAkSEwoLc3luY19zdGF0dXMYFiABKAkSMwoNc3luY19tZXRhZGF0YRgXIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIxCgtjcmVkZW50aWFscxgeIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIrCgVvYXV0aBgfIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIuCghmZWF0dXJlcxggIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBARIuCgh3ZWJob29rcxghIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIsCgZjb25maWcYIiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAiIAQESKwoFaG9va3MYIyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAmIAQESEQoJdGVuYW50X2lkGCggASgJEhIKCnByb2plY3RfaWQYKSABKAkSFwoKY3JlYXRlZF9ieRgtIAEoCUgKiAEBEhcKCnVwZGF0ZWRfYnkYLiABKAlIC4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CFAoSX2Nvbm5lY3Rpb25fZG9tYWluQhAKDl9jb25uZWN0aW9uX2lkQhAKDl9zeW5jX21ldGFkYXRhQg4KDF9jcmVkZW50aWFsc0IICgZfb2F1dGhCCwoJX2ZlYXR1cmVzQgsKCV93ZWJob29rc0IJCgdfY29uZmlnQggKBl9ob29rc0INCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSLKAgoJT3BlcmF0aW9uEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEQoEaWNvbhgFIAEoCUgBiAEBEhUKCGNhdGVnb3J5GAYgASgJSAKIAQESEQoJaXNfYWN0aXZlGAcgASgIEhEKCXRlbmFudF9pZBgUIAEoCRIXCgpwcm9qZWN0X2lkGBUgASgJSAOIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQgsKCV9jYXRlZ29yeUINCgtfcHJvamVjdF9pZCLGAQoVTGlzdE9wZXJhdGlvbnNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKeAQoWTGlzdE9wZXJhdGlvbnNSZXNwb25zZRIpCgpvcGVyYXRpb25zGAEgAygLMhUuY29uZmlncy52MS5PcGVyYXRpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIh4KEEdldENvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkiNwoRR2V0Q29uZmlnUmVzcG9uc2USIgoGY29uZmlnGAEgASgLMhIuY29uZmlncy52MS5Db25maWciJAoVR2V0Q29uZmlnQnlLZXlSZXF1ZXN0EgsKA2tleRgBIAEoCSI8ChZHZXRDb25maWdCeUtleVJlc3BvbnNlEiIKBmNvbmZpZxgBIAEoCzISLmNvbmZpZ3MudjEuQ29uZmlnIsMBChJMaXN0Q29uZmlnc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpUBChNMaXN0Q29uZmlnc1Jlc3BvbnNlEiMKB2NvbmZpZ3MYASADKAsyEi5jb25maWdzLnYxLkNvbmZpZxINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8i7AEKEkNvbmZpZ0hpc3RvcnlFbnRyeRIKCgJpZBgBIAEoCRIWCgljb25maWdfaWQYAiABKAlIAIgBARISCgpjb25maWdfa2V5GAMgASgJEi0KCXB1c2hlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoJcHVzaGVkX2J5GAUgASgJEg4KBnNvdXJjZRgGIAEoCRIKCgJvaxgHIAEoCBIWCg5yZXN1bHRfc3VtbWFyeRgIIAEoCRIaChJkaWZmX2Zyb21fcHJldmlvdXMYCSABKAlCDAoKX2NvbmZpZ19pZCJpChhMaXN0Q29uZmlnSGlzdG9yeVJlcXVlc3QSEQoJY29uZmlnX2lkGAEgASgJEhIKBWFmdGVyGAIgASgJSACIAQESEgoFZmlyc3QYAyABKAVIAYgBAUIICgZfYWZ0ZXJCCAoGX2ZpcnN0IocBChlMaXN0Q29uZmlnSGlzdG9yeVJlc3BvbnNlEi8KB2VudHJpZXMYASADKAsyHi5jb25maWdzLnYxLkNvbmZpZ0hpc3RvcnlFbnRyeRIrCglwYWdlX2luZm8YAiABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBAUIMCgpfcGFnZV9pbmZvIvoBChNDcmVhdGVDb25maWdSZXF1ZXN0EgsKA2tleRgBIAEoCRITCgtjb25maWdfdHlwZRgCIAEoCRIuCglkaXJlY3Rpb24YAyABKA4yGy5jb25maWdzLnYxLkNvbmZpZ0RpcmVjdGlvbhIMCgRuYW1lGAQgASgJEhgKC2Rlc2NyaXB0aW9uGAUgASgJSACIAQESLAoGY29uZmlnGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEhQKB2VuYWJsZWQYByABKAhIAogBAUIOCgxfZGVzY3JpcHRpb25CCQoHX2NvbmZpZ0IKCghfZW5hYmxlZCI6ChRDcmVhdGVDb25maWdSZXNwb25zZRIiCgZjb25maWcYASABKAsyEi5jb25maWdzLnYxLkNvbmZpZyK2AgoTVXBkYXRlQ29uZmlnUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESGAoLZGVzY3JpcHRpb24YAyABKAlIAYgBARIsCgZjb25maWcYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESFAoHZW5hYmxlZBgFIAEoCEgDiAEBEi4KCHdlYmhvb2tzGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEisKBWhvb2tzGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIJCgdfY29uZmlnQgoKCF9lbmFibGVkQgsKCV93ZWJob29rc0IICgZfaG9va3MiOgoUVXBkYXRlQ29uZmlnUmVzcG9uc2USIgoGY29uZmlnGAEgASgLMhIuY29uZmlncy52MS5Db25maWciIQoTRGVsZXRlQ29uZmlnUmVxdWVzdBIKCgJpZBgBIAEoCSInChREZWxldGVDb25maWdSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIsACChVFZGl0b3JDb25maWdQbGFjZW1lbnQSEQoJY29uZmlnX2lkGAEgASgJEhIKCmNvbmZpZ19rZXkYAiABKAkSEAoDdXJsGAMgASgJSACIAQESGwoOYWxsb3dlZF9vcmlnaW4YBCABKAlIAYgBARITCgZoZWlnaHQYBSABKAVIAogBARISCgVsYWJlbBgGIAEoCUgDiAEBEhQKB2FwaV9rZXkYByABKAlIBIgBARIUCgdhcGlfdXJsGAggASgJSAWIAQESHgoRY29ubmVjdGlvbl9kb21haW4YCSABKAlIBogBAUIGCgRfdXJsQhEKD19hbGxvd2VkX29yaWdpbkIJCgdfaGVpZ2h0QggKBl9sYWJlbEIKCghfYXBpX2tleUIKCghfYXBpX3VybEIUChJfY29ubmVjdGlvbl9kb21haW4iLAoXR2V0RWRpdG9yQ29uZmlnc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJIlEKGEdldEVkaXRvckNvbmZpZ3NSZXNwb25zZRI1CgpwbGFjZW1lbnRzGAEgAygLMiEuY29uZmlncy52MS5FZGl0b3JDb25maWdQbGFjZW1lbnQiLQoYVHJpZ2dlckNvbmZpZ1N5bmNSZXF1ZXN0EhEKCWNvbmZpZ19pZBgBIAEoCSIsChlUcmlnZ2VyQ29uZmlnU3luY1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiVgoSQXBwbHlDb25maWdSZXF1ZXN0EhIKCmNvbmZpZ19rZXkYASABKAkSLAoLY29uZmlnX2RhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0ItcBChNBcHBseUNvbmZpZ1Jlc3BvbnNlEiIKBmNvbmZpZxgBIAEoCzISLmNvbmZpZ3MudjEuQ29uZmlnEi8KB3N1bW1hcnkYAiABKAsyHi5jb25maWdzLnYxLkFwcGx5Q29uZmlnU3VtbWFyeRI7ChRwcm92aXNpb25lZF9hcGlfa2V5cxgDIAMoCzIdLmNvbmZpZ3MudjEuUHJvdmlzaW9uZWRBcGlLZXkSGwoOd2ViaG9va19zZWNyZXQYBCABKAlIAIgBAUIRCg9fd2ViaG9va19zZWNyZXQiVQoRUHJvdmlzaW9uZWRBcGlLZXkSDAoEbmFtZRgBIAEoCRIQCghrZXlfdHlwZRgCIAEoCRIPCgdlbnZfdmFyGAMgASgJEg8KB3Jhd19rZXkYBCABKAki7wIKEkFwcGx5Q29uZmlnU3VtbWFyeRIWCg5tb2RlbHNfY3JlYXRlZBgBIAEoBRIWCg5tb2RlbHNfdXBkYXRlZBgCIAEoBRIaChJvcGVyYXRpb25zX2NyZWF0ZWQYAyABKAUSGgoSb3BlcmF0aW9uc191cGRhdGVkGAQgASgFEhUKDWhvb2tzX2NyZWF0ZWQYBSABKAUSFQoNaG9va3NfdXBkYXRlZBgGIAEoBRIYChBzZWdtZW50c19jcmVhdGVkGAcgASgFEhgKEHNlZ21lbnRzX3VwZGF0ZWQYCCABKAUSGQoRc2NoZWR1bGVzX2NyZWF0ZWQYCSABKAUSGQoRc2NoZWR1bGVzX3VwZGF0ZWQYCiABKAUSHgoWYXV0aF9wcm92aWRlcnNfY3JlYXRlZBgLIAEoBRIeChZhdXRoX3Byb3ZpZGVyc191cGRhdGVkGAwgASgFEhkKEXJlc291cmNlc19kZWxldGVkGA0gASgFIkEKHFdyaXRlQ29uZmlnQ3JlZGVudGlhbFJlcXVlc3QSEgoKY29uZmlnX2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDCJvCh1Xcml0ZUNvbmZpZ0NyZWRlbnRpYWxSZXNwb25zZRIZChFlbmNyeXB0aW9uX2tleV9pZBgBIAEoCRIzCg9sYXN0X3dyaXR0ZW5fYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wKo4BCg9Db25maWdEaXJlY3Rpb24SIAocQ09ORklHX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEhkKFUNPTkZJR19ESVJFQ1RJT05fUkVBRBABEhoKFkNPTkZJR19ESVJFQ1RJT05fV1JJVEUQAhIiCh5DT05GSUdfRElSRUNUSU9OX0JJRElSRUNUSU9OQUwQAzK2CAoOQ29uZmlnc1NlcnZpY2USSAoJR2V0Q29uZmlnEhwuY29uZmlncy52MS5HZXRDb25maWdSZXF1ZXN0Gh0uY29uZmlncy52MS5HZXRDb25maWdSZXNwb25zZRJXCg5HZXRDb25maWdCeUtleRIhLmNvbmZpZ3MudjEuR2V0Q29uZmlnQnlLZXlSZXF1ZXN0GiIuY29uZmlncy52MS5HZXRDb25maWdCeUtleVJlc3BvbnNlEk4KC0xpc3RDb25maWdzEh4uY29uZmlncy52MS5MaXN0Q29uZmlnc1JlcXVlc3QaHy5jb25maWdzLnYxLkxpc3RDb25maWdzUmVzcG9uc2USYAoRTGlzdENvbmZpZ0hpc3RvcnkSJC5jb25maWdzLnYxLkxpc3RDb25maWdIaXN0b3J5UmVxdWVzdBolLmNvbmZpZ3MudjEuTGlzdENvbmZpZ0hpc3RvcnlSZXNwb25zZRJXCg5MaXN0T3BlcmF0aW9ucxIhLmNvbmZpZ3MudjEuTGlzdE9wZXJhdGlvbnNSZXF1ZXN0GiIuY29uZmlncy52MS5MaXN0T3BlcmF0aW9uc1Jlc3BvbnNlEl0KEEdldEVkaXRvckNvbmZpZ3MSIy5jb25maWdzLnYxLkdldEVkaXRvckNvbmZpZ3NSZXF1ZXN0GiQuY29uZmlncy52MS5HZXRFZGl0b3JDb25maWdzUmVzcG9uc2USUQoMQ3JlYXRlQ29uZmlnEh8uY29uZmlncy52MS5DcmVhdGVDb25maWdSZXF1ZXN0GiAuY29uZmlncy52MS5DcmVhdGVDb25maWdSZXNwb25zZRJRCgxVcGRhdGVDb25maWcSHy5jb25maWdzLnYxLlVwZGF0ZUNvbmZpZ1JlcXVlc3QaIC5jb25maWdzLnYxLlVwZGF0ZUNvbmZpZ1Jlc3BvbnNlElEKDERlbGV0ZUNvbmZpZxIfLmNvbmZpZ3MudjEuRGVsZXRlQ29uZmlnUmVxdWVzdBogLmNvbmZpZ3MudjEuRGVsZXRlQ29uZmlnUmVzcG9uc2USYAoRVHJpZ2dlckNvbmZpZ1N5bmMSJC5jb25maWdzLnYxLlRyaWdnZXJDb25maWdTeW5jUmVxdWVzdBolLmNvbmZpZ3MudjEuVHJpZ2dlckNvbmZpZ1N5bmNSZXNwb25zZRJOCgtBcHBseUNvbmZpZxIeLmNvbmZpZ3MudjEuQXBwbHlDb25maWdSZXF1ZXN0Gh8uY29uZmlncy52MS5BcHBseUNvbmZpZ1Jlc3BvbnNlEmwKFVdyaXRlQ29uZmlnQ3JlZGVudGlhbBIoLmNvbmZpZ3MudjEuV3JpdGVDb25maWdDcmVkZW50aWFsUmVxdWVzdBopLmNvbmZpZ3MudjEuV3JpdGVDb25maWdDcmVkZW50aWFsUmVzcG9uc2VCO1o5Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL2NvbmZpZ3MvdjE7Y29uZmlnc3YxYgZwcm90bzM", [file_google_protobuf_struct4, file_google_protobuf_timestamp5, file_common_v1_pagination]);
686
+ var ConfigSchema = /* @__PURE__ */ messageDesc9(file_configs_v1_configs, 0);
687
+ var ListOperationsRequestSchema = /* @__PURE__ */ messageDesc9(file_configs_v1_configs, 2);
688
+ var GetConfigRequestSchema = /* @__PURE__ */ messageDesc9(file_configs_v1_configs, 4);
689
+ var GetConfigByKeyRequestSchema = /* @__PURE__ */ messageDesc9(file_configs_v1_configs, 6);
690
+ var ListConfigsRequestSchema = /* @__PURE__ */ messageDesc9(file_configs_v1_configs, 8);
691
+ var CreateConfigRequestSchema = /* @__PURE__ */ messageDesc9(file_configs_v1_configs, 13);
692
+ var UpdateConfigRequestSchema = /* @__PURE__ */ messageDesc9(file_configs_v1_configs, 15);
693
+ var DeleteConfigRequestSchema = /* @__PURE__ */ messageDesc9(file_configs_v1_configs, 17);
694
+ var TriggerConfigSyncRequestSchema = /* @__PURE__ */ messageDesc9(file_configs_v1_configs, 22);
695
+ var ApplyConfigRequestSchema = /* @__PURE__ */ messageDesc9(file_configs_v1_configs, 24);
696
+ var WriteConfigCredentialRequestSchema = /* @__PURE__ */ messageDesc9(file_configs_v1_configs, 28);
697
+ var ConfigDirectionSchema = /* @__PURE__ */ enumDesc6(file_configs_v1_configs, 0);
698
+ var ConfigDirection = /* @__PURE__ */ tsEnum6(ConfigDirectionSchema);
699
+ var ConfigsService = /* @__PURE__ */ serviceDesc5(file_configs_v1_configs, 0);
673
700
 
674
701
  // ../../packages/proto-ts/src/segments/v1/segments_pb.js
675
- import { fileDesc as fileDesc9, messageDesc as messageDesc9, serviceDesc as serviceDesc5 } from "@bufbuild/protobuf/codegenv2";
702
+ import { fileDesc as fileDesc10, messageDesc as messageDesc10, serviceDesc as serviceDesc6 } from "@bufbuild/protobuf/codegenv2";
676
703
  import { file_google_protobuf_struct as file_google_protobuf_struct5, file_google_protobuf_timestamp as file_google_protobuf_timestamp6 } from "@bufbuild/protobuf/wkt";
677
- var file_segments_v1_segments = /* @__PURE__ */ fileDesc9("ChpzZWdtZW50cy92MS9zZWdtZW50cy5wcm90bxILc2VnbWVudHMudjEi/gMKB1NlZ21lbnQSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARIyCgVydWxlcxgFIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESFwoPZXZhbHVhdGlvbl9tb2RlGAYgASgJEhkKEW1hbnVhbF9tZW1iZXJfaWRzGAcgAygJEhoKEm1hbnVhbF9tZW1iZXJfbW9kZRgIIAEoCRIRCglpc19hY3RpdmUYCSABKAgSGQoMbWVtYmVyX2NvdW50GAogASgFSAKIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgDiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIBIgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CCAoGX3J1bGVzQg8KDV9tZW1iZXJfY291bnRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnkivQIKEVNlZ21lbnRNZW1iZXJzaGlwEhIKCnNlZ21lbnRfaWQYASABKAkSEwoLc2VnbWVudF9rZXkYAiABKAkSFAoMc2VnbWVudF9uYW1lGAMgASgJEhEKCWlzX21lbWJlchgEIAEoCBIzCgplbnRlcmVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjIKCWV4aXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI6ChFsYXN0X2V2YWx1YXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBAUINCgtfZW50ZXJlZF9hdEIMCgpfZXhpdGVkX2F0QhQKEl9sYXN0X2V2YWx1YXRlZF9hdCJECg5TZWdtZW50UHJldmlldxIVCg1tYXRjaGVkX2NvdW50GAEgASgFEhsKE3NhbXBsZV9jdXN0b21lcl9pZHMYAiADKAkiYQoXU2VnbWVudEV2YWx1YXRpb25SZXN1bHQSEQoJaXNfbWVtYmVyGAEgASgIEjMKEmV2YWx1YXRpb25fZGV0YWlscxgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi2wIKFENyZWF0ZVNlZ21lbnRSZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESLQoFcnVsZXMYBCABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbhIcCg9ldmFsdWF0aW9uX21vZGUYBSABKAlIAYgBARIWCglpc19hY3RpdmUYBiABKAhIAogBARIWCgljb25maWdfaWQYByABKAlIA4gBARIZChFtYW51YWxfbWVtYmVyX2lkcxgIIAMoCRIfChJtYW51YWxfbWVtYmVyX21vZGUYCSABKAlIBIgBAUIOCgxfZGVzY3JpcHRpb25CEgoQX2V2YWx1YXRpb25fbW9kZUIMCgpfaXNfYWN0aXZlQgwKCl9jb25maWdfaWRCFQoTX21hbnVhbF9tZW1iZXJfbW9kZSI+ChVDcmVhdGVTZWdtZW50UmVzcG9uc2USJQoHc2VnbWVudBgBIAEoCzIULnNlZ21lbnRzLnYxLlNlZ21lbnQiHwoRR2V0U2VnbWVudFJlcXVlc3QSCgoCaWQYASABKAkiOwoSR2V0U2VnbWVudFJlc3BvbnNlEiUKB3NlZ21lbnQYASABKAsyFC5zZWdtZW50cy52MS5TZWdtZW50IiUKFkdldFNlZ21lbnRCeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIkAKF0dldFNlZ21lbnRCeUtleVJlc3BvbnNlEiUKB3NlZ21lbnQYASABKAsyFC5zZWdtZW50cy52MS5TZWdtZW50IsQBChNMaXN0U2VnbWVudHNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKZAQoUTGlzdFNlZ21lbnRzUmVzcG9uc2USJgoIc2VnbWVudHMYASADKAsyFC5zZWdtZW50cy52MS5TZWdtZW50Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyLRAgoUVXBkYXRlU2VnbWVudFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESMgoFcnVsZXMYBCABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbkgCiAEBEhwKD2V2YWx1YXRpb25fbW9kZRgFIAEoCUgDiAEBEhYKCWlzX2FjdGl2ZRgGIAEoCEgEiAEBEhkKEW1hbnVhbF9tZW1iZXJfaWRzGAcgAygJEh8KEm1hbnVhbF9tZW1iZXJfbW9kZRgIIAEoCUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIICgZfcnVsZXNCEgoQX2V2YWx1YXRpb25fbW9kZUIMCgpfaXNfYWN0aXZlQhUKE19tYW51YWxfbWVtYmVyX21vZGUiPgoVVXBkYXRlU2VnbWVudFJlc3BvbnNlEiUKB3NlZ21lbnQYASABKAsyFC5zZWdtZW50cy52MS5TZWdtZW50IiIKFERlbGV0ZVNlZ21lbnRSZXF1ZXN0EgoKAmlkGAEgASgJIigKFURlbGV0ZVNlZ21lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIjQKHUdldEN1c3RvbWVyTWVtYmVyc2hpcHNSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJIuYBCh5HZXRDdXN0b21lck1lbWJlcnNoaXBzUmVzcG9uc2USMwoLbWVtYmVyc2hpcHMYASADKAsyHi5zZWdtZW50cy52MS5TZWdtZW50TWVtYmVyc2hpcBIbChNhY3RpdmVfc2VnbWVudF9rZXlzGAIgAygJEhQKDHRvdGFsX2FjdGl2ZRgDIAEoBRJAChdsYXN0X2Z1bGxfZXZhbHVhdGlvbl9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIaChhfbGFzdF9mdWxsX2V2YWx1YXRpb25fYXQidQoaUHJldmlld1NlZ21lbnRSdWxlc1JlcXVlc3QSLQoFcnVsZXMYASABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbhIYCgtzYW1wbGVfc2l6ZRgCIAEoBUgAiAEBQg4KDF9zYW1wbGVfc2l6ZSJLChtQcmV2aWV3U2VnbWVudFJ1bGVzUmVzcG9uc2USLAoHcHJldmlldxgBIAEoCzIbLnNlZ21lbnRzLnYxLlNlZ21lbnRQcmV2aWV3IkcKHFRlc3RTZWdtZW50RXZhbHVhdGlvblJlcXVlc3QSEgoKc2VnbWVudF9pZBgBIAEoCRITCgtjdXN0b21lcl9pZBgCIAEoCSJVCh1UZXN0U2VnbWVudEV2YWx1YXRpb25SZXNwb25zZRI0CgZyZXN1bHQYASABKAsyJC5zZWdtZW50cy52MS5TZWdtZW50RXZhbHVhdGlvblJlc3VsdCJAChZTZXRHbG9iYWxPcHRPdXRSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEhEKCW9wdGVkX291dBgCIAEoCCIqChdTZXRHbG9iYWxPcHRPdXRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkEKFk9wdE91dE9mU2VnbWVudFJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSEgoKc2VnbWVudF9pZBgCIAEoCSIqChdPcHRPdXRPZlNlZ21lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkQKGU9wdEJhY2tJbnRvU2VnbWVudFJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSEgoKc2VnbWVudF9pZBgCIAEoCSItChpPcHRCYWNrSW50b1NlZ21lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIMosJCg9TZWdtZW50c1NlcnZpY2USTQoKR2V0U2VnbWVudBIeLnNlZ21lbnRzLnYxLkdldFNlZ21lbnRSZXF1ZXN0Gh8uc2VnbWVudHMudjEuR2V0U2VnbWVudFJlc3BvbnNlElwKD0dldFNlZ21lbnRCeUtleRIjLnNlZ21lbnRzLnYxLkdldFNlZ21lbnRCeUtleVJlcXVlc3QaJC5zZWdtZW50cy52MS5HZXRTZWdtZW50QnlLZXlSZXNwb25zZRJTCgxMaXN0U2VnbWVudHMSIC5zZWdtZW50cy52MS5MaXN0U2VnbWVudHNSZXF1ZXN0GiEuc2VnbWVudHMudjEuTGlzdFNlZ21lbnRzUmVzcG9uc2USVgoNQ3JlYXRlU2VnbWVudBIhLnNlZ21lbnRzLnYxLkNyZWF0ZVNlZ21lbnRSZXF1ZXN0GiIuc2VnbWVudHMudjEuQ3JlYXRlU2VnbWVudFJlc3BvbnNlElYKDVVwZGF0ZVNlZ21lbnQSIS5zZWdtZW50cy52MS5VcGRhdGVTZWdtZW50UmVxdWVzdBoiLnNlZ21lbnRzLnYxLlVwZGF0ZVNlZ21lbnRSZXNwb25zZRJWCg1EZWxldGVTZWdtZW50EiEuc2VnbWVudHMudjEuRGVsZXRlU2VnbWVudFJlcXVlc3QaIi5zZWdtZW50cy52MS5EZWxldGVTZWdtZW50UmVzcG9uc2UScQoWR2V0Q3VzdG9tZXJNZW1iZXJzaGlwcxIqLnNlZ21lbnRzLnYxLkdldEN1c3RvbWVyTWVtYmVyc2hpcHNSZXF1ZXN0Gisuc2VnbWVudHMudjEuR2V0Q3VzdG9tZXJNZW1iZXJzaGlwc1Jlc3BvbnNlEmgKE1ByZXZpZXdTZWdtZW50UnVsZXMSJy5zZWdtZW50cy52MS5QcmV2aWV3U2VnbWVudFJ1bGVzUmVxdWVzdBooLnNlZ21lbnRzLnYxLlByZXZpZXdTZWdtZW50UnVsZXNSZXNwb25zZRJuChVUZXN0U2VnbWVudEV2YWx1YXRpb24SKS5zZWdtZW50cy52MS5UZXN0U2VnbWVudEV2YWx1YXRpb25SZXF1ZXN0Giouc2VnbWVudHMudjEuVGVzdFNlZ21lbnRFdmFsdWF0aW9uUmVzcG9uc2USXAoPU2V0R2xvYmFsT3B0T3V0EiMuc2VnbWVudHMudjEuU2V0R2xvYmFsT3B0T3V0UmVxdWVzdBokLnNlZ21lbnRzLnYxLlNldEdsb2JhbE9wdE91dFJlc3BvbnNlElwKD09wdE91dE9mU2VnbWVudBIjLnNlZ21lbnRzLnYxLk9wdE91dE9mU2VnbWVudFJlcXVlc3QaJC5zZWdtZW50cy52MS5PcHRPdXRPZlNlZ21lbnRSZXNwb25zZRJlChJPcHRCYWNrSW50b1NlZ21lbnQSJi5zZWdtZW50cy52MS5PcHRCYWNrSW50b1NlZ21lbnRSZXF1ZXN0Gicuc2VnbWVudHMudjEuT3B0QmFja0ludG9TZWdtZW50UmVzcG9uc2VCPVo7Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL3NlZ21lbnRzL3YxO3NlZ21lbnRzdjFiBnByb3RvMw", [file_google_protobuf_struct5, file_google_protobuf_timestamp6, file_expressions_v1_expressions, file_common_v1_pagination]);
678
- var SegmentSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 0);
679
- var SegmentPreviewSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 2);
680
- var SegmentEvaluationResultSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 3);
681
- var CreateSegmentRequestSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 4);
682
- var GetSegmentRequestSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 6);
683
- var GetSegmentByKeyRequestSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 8);
684
- var ListSegmentsRequestSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 10);
685
- var UpdateSegmentRequestSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 12);
686
- var DeleteSegmentRequestSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 14);
687
- var GetCustomerMembershipsRequestSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 16);
688
- var PreviewSegmentRulesRequestSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 18);
689
- var TestSegmentEvaluationRequestSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 20);
690
- var SetGlobalOptOutRequestSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 22);
691
- var OptOutOfSegmentRequestSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 24);
692
- var OptBackIntoSegmentRequestSchema = /* @__PURE__ */ messageDesc9(file_segments_v1_segments, 26);
693
- var SegmentsService = /* @__PURE__ */ serviceDesc5(file_segments_v1_segments, 0);
704
+ var file_segments_v1_segments = /* @__PURE__ */ fileDesc10("ChpzZWdtZW50cy92MS9zZWdtZW50cy5wcm90bxILc2VnbWVudHMudjEi/gMKB1NlZ21lbnQSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARIyCgVydWxlcxgFIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESFwoPZXZhbHVhdGlvbl9tb2RlGAYgASgJEhkKEW1hbnVhbF9tZW1iZXJfaWRzGAcgAygJEhoKEm1hbnVhbF9tZW1iZXJfbW9kZRgIIAEoCRIRCglpc19hY3RpdmUYCSABKAgSGQoMbWVtYmVyX2NvdW50GAogASgFSAKIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgDiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIBIgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CCAoGX3J1bGVzQg8KDV9tZW1iZXJfY291bnRCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnkivQIKEVNlZ21lbnRNZW1iZXJzaGlwEhIKCnNlZ21lbnRfaWQYASABKAkSEwoLc2VnbWVudF9rZXkYAiABKAkSFAoMc2VnbWVudF9uYW1lGAMgASgJEhEKCWlzX21lbWJlchgEIAEoCBIzCgplbnRlcmVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjIKCWV4aXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI6ChFsYXN0X2V2YWx1YXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBAUINCgtfZW50ZXJlZF9hdEIMCgpfZXhpdGVkX2F0QhQKEl9sYXN0X2V2YWx1YXRlZF9hdCJECg5TZWdtZW50UHJldmlldxIVCg1tYXRjaGVkX2NvdW50GAEgASgFEhsKE3NhbXBsZV9jdXN0b21lcl9pZHMYAiADKAkiYQoXU2VnbWVudEV2YWx1YXRpb25SZXN1bHQSEQoJaXNfbWVtYmVyGAEgASgIEjMKEmV2YWx1YXRpb25fZGV0YWlscxgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi2wIKFENyZWF0ZVNlZ21lbnRSZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESLQoFcnVsZXMYBCABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbhIcCg9ldmFsdWF0aW9uX21vZGUYBSABKAlIAYgBARIWCglpc19hY3RpdmUYBiABKAhIAogBARIWCgljb25maWdfaWQYByABKAlIA4gBARIZChFtYW51YWxfbWVtYmVyX2lkcxgIIAMoCRIfChJtYW51YWxfbWVtYmVyX21vZGUYCSABKAlIBIgBAUIOCgxfZGVzY3JpcHRpb25CEgoQX2V2YWx1YXRpb25fbW9kZUIMCgpfaXNfYWN0aXZlQgwKCl9jb25maWdfaWRCFQoTX21hbnVhbF9tZW1iZXJfbW9kZSI+ChVDcmVhdGVTZWdtZW50UmVzcG9uc2USJQoHc2VnbWVudBgBIAEoCzIULnNlZ21lbnRzLnYxLlNlZ21lbnQiHwoRR2V0U2VnbWVudFJlcXVlc3QSCgoCaWQYASABKAkiOwoSR2V0U2VnbWVudFJlc3BvbnNlEiUKB3NlZ21lbnQYASABKAsyFC5zZWdtZW50cy52MS5TZWdtZW50IiUKFkdldFNlZ21lbnRCeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIkAKF0dldFNlZ21lbnRCeUtleVJlc3BvbnNlEiUKB3NlZ21lbnQYASABKAsyFC5zZWdtZW50cy52MS5TZWdtZW50IsQBChNMaXN0U2VnbWVudHNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKZAQoUTGlzdFNlZ21lbnRzUmVzcG9uc2USJgoIc2VnbWVudHMYASADKAsyFC5zZWdtZW50cy52MS5TZWdtZW50Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyLRAgoUVXBkYXRlU2VnbWVudFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESMgoFcnVsZXMYBCABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbkgCiAEBEhwKD2V2YWx1YXRpb25fbW9kZRgFIAEoCUgDiAEBEhYKCWlzX2FjdGl2ZRgGIAEoCEgEiAEBEhkKEW1hbnVhbF9tZW1iZXJfaWRzGAcgAygJEh8KEm1hbnVhbF9tZW1iZXJfbW9kZRgIIAEoCUgFiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIICgZfcnVsZXNCEgoQX2V2YWx1YXRpb25fbW9kZUIMCgpfaXNfYWN0aXZlQhUKE19tYW51YWxfbWVtYmVyX21vZGUiPgoVVXBkYXRlU2VnbWVudFJlc3BvbnNlEiUKB3NlZ21lbnQYASABKAsyFC5zZWdtZW50cy52MS5TZWdtZW50IiIKFERlbGV0ZVNlZ21lbnRSZXF1ZXN0EgoKAmlkGAEgASgJIigKFURlbGV0ZVNlZ21lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIjQKHUdldEN1c3RvbWVyTWVtYmVyc2hpcHNSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJIuYBCh5HZXRDdXN0b21lck1lbWJlcnNoaXBzUmVzcG9uc2USMwoLbWVtYmVyc2hpcHMYASADKAsyHi5zZWdtZW50cy52MS5TZWdtZW50TWVtYmVyc2hpcBIbChNhY3RpdmVfc2VnbWVudF9rZXlzGAIgAygJEhQKDHRvdGFsX2FjdGl2ZRgDIAEoBRJAChdsYXN0X2Z1bGxfZXZhbHVhdGlvbl9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIaChhfbGFzdF9mdWxsX2V2YWx1YXRpb25fYXQidQoaUHJldmlld1NlZ21lbnRSdWxlc1JlcXVlc3QSLQoFcnVsZXMYASABKAsyHi5leHByZXNzaW9ucy52MS5SdWxlRXhwcmVzc2lvbhIYCgtzYW1wbGVfc2l6ZRgCIAEoBUgAiAEBQg4KDF9zYW1wbGVfc2l6ZSJLChtQcmV2aWV3U2VnbWVudFJ1bGVzUmVzcG9uc2USLAoHcHJldmlldxgBIAEoCzIbLnNlZ21lbnRzLnYxLlNlZ21lbnRQcmV2aWV3IkcKHFRlc3RTZWdtZW50RXZhbHVhdGlvblJlcXVlc3QSEgoKc2VnbWVudF9pZBgBIAEoCRITCgtjdXN0b21lcl9pZBgCIAEoCSJVCh1UZXN0U2VnbWVudEV2YWx1YXRpb25SZXNwb25zZRI0CgZyZXN1bHQYASABKAsyJC5zZWdtZW50cy52MS5TZWdtZW50RXZhbHVhdGlvblJlc3VsdCJAChZTZXRHbG9iYWxPcHRPdXRSZXF1ZXN0EhMKC2N1c3RvbWVyX2lkGAEgASgJEhEKCW9wdGVkX291dBgCIAEoCCIqChdTZXRHbG9iYWxPcHRPdXRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkEKFk9wdE91dE9mU2VnbWVudFJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSEgoKc2VnbWVudF9pZBgCIAEoCSIqChdPcHRPdXRPZlNlZ21lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIkQKGU9wdEJhY2tJbnRvU2VnbWVudFJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSEgoKc2VnbWVudF9pZBgCIAEoCSItChpPcHRCYWNrSW50b1NlZ21lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIMosJCg9TZWdtZW50c1NlcnZpY2USTQoKR2V0U2VnbWVudBIeLnNlZ21lbnRzLnYxLkdldFNlZ21lbnRSZXF1ZXN0Gh8uc2VnbWVudHMudjEuR2V0U2VnbWVudFJlc3BvbnNlElwKD0dldFNlZ21lbnRCeUtleRIjLnNlZ21lbnRzLnYxLkdldFNlZ21lbnRCeUtleVJlcXVlc3QaJC5zZWdtZW50cy52MS5HZXRTZWdtZW50QnlLZXlSZXNwb25zZRJTCgxMaXN0U2VnbWVudHMSIC5zZWdtZW50cy52MS5MaXN0U2VnbWVudHNSZXF1ZXN0GiEuc2VnbWVudHMudjEuTGlzdFNlZ21lbnRzUmVzcG9uc2USVgoNQ3JlYXRlU2VnbWVudBIhLnNlZ21lbnRzLnYxLkNyZWF0ZVNlZ21lbnRSZXF1ZXN0GiIuc2VnbWVudHMudjEuQ3JlYXRlU2VnbWVudFJlc3BvbnNlElYKDVVwZGF0ZVNlZ21lbnQSIS5zZWdtZW50cy52MS5VcGRhdGVTZWdtZW50UmVxdWVzdBoiLnNlZ21lbnRzLnYxLlVwZGF0ZVNlZ21lbnRSZXNwb25zZRJWCg1EZWxldGVTZWdtZW50EiEuc2VnbWVudHMudjEuRGVsZXRlU2VnbWVudFJlcXVlc3QaIi5zZWdtZW50cy52MS5EZWxldGVTZWdtZW50UmVzcG9uc2UScQoWR2V0Q3VzdG9tZXJNZW1iZXJzaGlwcxIqLnNlZ21lbnRzLnYxLkdldEN1c3RvbWVyTWVtYmVyc2hpcHNSZXF1ZXN0Gisuc2VnbWVudHMudjEuR2V0Q3VzdG9tZXJNZW1iZXJzaGlwc1Jlc3BvbnNlEmgKE1ByZXZpZXdTZWdtZW50UnVsZXMSJy5zZWdtZW50cy52MS5QcmV2aWV3U2VnbWVudFJ1bGVzUmVxdWVzdBooLnNlZ21lbnRzLnYxLlByZXZpZXdTZWdtZW50UnVsZXNSZXNwb25zZRJuChVUZXN0U2VnbWVudEV2YWx1YXRpb24SKS5zZWdtZW50cy52MS5UZXN0U2VnbWVudEV2YWx1YXRpb25SZXF1ZXN0Giouc2VnbWVudHMudjEuVGVzdFNlZ21lbnRFdmFsdWF0aW9uUmVzcG9uc2USXAoPU2V0R2xvYmFsT3B0T3V0EiMuc2VnbWVudHMudjEuU2V0R2xvYmFsT3B0T3V0UmVxdWVzdBokLnNlZ21lbnRzLnYxLlNldEdsb2JhbE9wdE91dFJlc3BvbnNlElwKD09wdE91dE9mU2VnbWVudBIjLnNlZ21lbnRzLnYxLk9wdE91dE9mU2VnbWVudFJlcXVlc3QaJC5zZWdtZW50cy52MS5PcHRPdXRPZlNlZ21lbnRSZXNwb25zZRJlChJPcHRCYWNrSW50b1NlZ21lbnQSJi5zZWdtZW50cy52MS5PcHRCYWNrSW50b1NlZ21lbnRSZXF1ZXN0Gicuc2VnbWVudHMudjEuT3B0QmFja0ludG9TZWdtZW50UmVzcG9uc2VCPVo7Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL3NlZ21lbnRzL3YxO3NlZ21lbnRzdjFiBnByb3RvMw", [file_google_protobuf_struct5, file_google_protobuf_timestamp6, file_expressions_v1_expressions, file_common_v1_pagination]);
705
+ var SegmentSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 0);
706
+ var SegmentPreviewSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 2);
707
+ var SegmentEvaluationResultSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 3);
708
+ var CreateSegmentRequestSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 4);
709
+ var GetSegmentRequestSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 6);
710
+ var GetSegmentByKeyRequestSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 8);
711
+ var ListSegmentsRequestSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 10);
712
+ var UpdateSegmentRequestSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 12);
713
+ var DeleteSegmentRequestSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 14);
714
+ var GetCustomerMembershipsRequestSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 16);
715
+ var PreviewSegmentRulesRequestSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 18);
716
+ var TestSegmentEvaluationRequestSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 20);
717
+ var SetGlobalOptOutRequestSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 22);
718
+ var OptOutOfSegmentRequestSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 24);
719
+ var OptBackIntoSegmentRequestSchema = /* @__PURE__ */ messageDesc10(file_segments_v1_segments, 26);
720
+ var SegmentsService = /* @__PURE__ */ serviceDesc6(file_segments_v1_segments, 0);
694
721
 
695
722
  // ../../packages/proto-ts/src/settings/v1/settings_pb.js
696
- import { enumDesc as enumDesc6, fileDesc as fileDesc10, messageDesc as messageDesc10, serviceDesc as serviceDesc6, tsEnum as tsEnum6 } from "@bufbuild/protobuf/codegenv2";
723
+ import { enumDesc as enumDesc7, fileDesc as fileDesc11, messageDesc as messageDesc11, serviceDesc as serviceDesc7, tsEnum as tsEnum7 } from "@bufbuild/protobuf/codegenv2";
697
724
  import { file_google_protobuf_struct as file_google_protobuf_struct6, file_google_protobuf_timestamp as file_google_protobuf_timestamp7 } from "@bufbuild/protobuf/wkt";
698
- var file_settings_v1_settings = /* @__PURE__ */ fileDesc10("ChpzZXR0aW5ncy92MS9zZXR0aW5ncy5wcm90bxILc2V0dGluZ3MudjEiggMKB1NldHRpbmcSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEhAKCGNhdGVnb3J5GAMgASgJEisKBXZhbHVlGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhkKDGRpc3BsYXlfbmFtZRgFIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAYgASgJSAKIAQESEQoJZGF0YV90eXBlGAcgASgJEhEKCWlzX3B1YmxpYxgIIAEoCBIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQggKBl92YWx1ZUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfcHJvamVjdF9pZCKrBAoIQXVkaXRMb2cSCgoCaWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgd1c2VyX2lkGAMgASgJSACIAQESFgoJdGVuYW50X2lkGAQgASgJSAGIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgCiAEBEg4KBmFjdGlvbhgGIAEoCRIVCg1yZXNvdXJjZV90eXBlGAcgASgJEhgKC3Jlc291cmNlX2lkGAggASgJSAOIAQESLAoGYmVmb3JlGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEisKBWFmdGVyGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEhcKCmlwX2FkZHJlc3MYDCABKAlIB4gBARIXCgp1c2VyX2FnZW50GA0gASgJSAiIAQESFwoKcmVxdWVzdF9pZBgOIAEoCUgJiAEBQgoKCF91c2VyX2lkQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCDgoMX3Jlc291cmNlX2lkQgkKB19iZWZvcmVCCAoGX2FmdGVyQgsKCV9tZXRhZGF0YUINCgtfaXBfYWRkcmVzc0INCgtfdXNlcl9hZ2VudEINCgtfcmVxdWVzdF9pZCKdBQoETm90ZRIKCgJpZBgBIAEoCRITCgtlbnRpdHlfdHlwZRgCIAEoCRIRCgllbnRpdHlfaWQYAyABKAkSHwoSZW50aXR5X25hdHVyYWxfa2V5GAQgASgJSACIAQESFwoKdmVyc2lvbl9pZBgFIAEoCUgBiAEBEigKB2NvbnRlbnQYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eh8KEmNvbnRlbnRfcGxhaW5fdGV4dBgHIAEoCUgCiAEBEhsKDnBhcmVudF9ub3RlX2lkGAogASgJSAOIAQESGwoOdGhyZWFkX3Jvb3RfaWQYCyABKAlIBIgBARITCgtpc19yZXNvbHZlZBgPIAEoCBI0CgtyZXNvbHZlZF9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIYCgtyZXNvbHZlZF9ieRgRIAEoCUgGiAEBEi4KCG1ldGFkYXRhGBQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhEKCXRlbmFudF9pZBgeIAEoCRIXCgpwcm9qZWN0X2lkGB8gASgJSAiIAQESEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIVChNfZW50aXR5X25hdHVyYWxfa2V5Qg0KC192ZXJzaW9uX2lkQhUKE19jb250ZW50X3BsYWluX3RleHRCEQoPX3BhcmVudF9ub3RlX2lkQhEKD190aHJlYWRfcm9vdF9pZEIOCgxfcmVzb2x2ZWRfYXRCDgoMX3Jlc29sdmVkX2J5QgsKCV9tZXRhZGF0YUINCgtfcHJvamVjdF9pZCLkBQoFU2hhcmUSCgoCaWQYASABKAkSNQoNcmVzb3VyY2VfdHlwZRgCIAEoDjIeLnNldHRpbmdzLnYxLlNoYXJlUmVzb3VyY2VUeXBlEhYKCXJlY29yZF9pZBgDIAEoCUgAiAEBEhQKB2ZpbGVfaWQYBCABKAlIAYgBARIWCgltb2RlbF9rZXkYBSABKAlIAogBARIfChdzaGFyZWRfd2l0aF9jdXN0b21lcl9pZBgGIAEoCRIwCgpwZXJtaXNzaW9uGAcgASgOMhwuc2V0dGluZ3MudjEuU2hhcmVQZXJtaXNzaW9uEiAKE3Byb2ZpbGVfY3VzdG9tZXJfaWQYCCABKAlIA4gBARIoCgZzdGF0dXMYCiABKA4yGC5zZXR0aW5ncy52MS5TaGFyZVN0YXR1cxI0CgthY2NlcHRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIzCgpleHBpcmVzX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEhcKCmNyZWF0ZWRfYnkYHiABKAlIBogBARIXCgpyZXZva2VkX2J5GB8gASgJSAeIAQESMwoKcmV2b2tlZF9hdBggIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBICIgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIMCgpfcmVjb3JkX2lkQgoKCF9maWxlX2lkQgwKCl9tb2RlbF9rZXlCFgoUX3Byb2ZpbGVfY3VzdG9tZXJfaWRCDgoMX2FjY2VwdGVkX2F0Qg0KC19leHBpcmVzX2F0Qg0KC19jcmVhdGVkX2J5Qg0KC19yZXZva2VkX2J5Qg0KC19yZXZva2VkX2F0IlIKEkdldFNldHRpbmdzUmVxdWVzdBIVCghjYXRlZ29yeRgBIAEoCUgAiAEBEhAKA2tleRgCIAEoCUgBiAEBQgsKCV9jYXRlZ29yeUIGCgRfa2V5Ij0KE0dldFNldHRpbmdzUmVzcG9uc2USJgoIc2V0dGluZ3MYASADKAsyFC5zZXR0aW5ncy52MS5TZXR0aW5nIksKFFVwZGF0ZVNldHRpbmdSZXF1ZXN0EgsKA2tleRgBIAEoCRImCgV2YWx1ZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiPgoVVXBkYXRlU2V0dGluZ1Jlc3BvbnNlEiUKB3NldHRpbmcYASABKAsyFC5zZXR0aW5ncy52MS5TZXR0aW5nIsUBChRMaXN0QXVkaXRMb2dzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QilwEKFUxpc3RBdWRpdExvZ3NSZXNwb25zZRIjCgRsb2dzGAEgAygLMhUuc2V0dGluZ3MudjEuQXVkaXRMb2cSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIpUBChFDcmVhdGVOb3RlUmVxdWVzdBITCgtlbnRpdHlfdHlwZRgBIAEoCRIRCgllbnRpdHlfaWQYAiABKAkSKAoHY29udGVudBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGwoOcGFyZW50X25vdGVfaWQYBCABKAlIAIgBAUIRCg9fcGFyZW50X25vdGVfaWQiNQoSQ3JlYXRlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIhwKDkdldE5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIjIKD0dldE5vdGVSZXNwb25zZRIfCgRub3RlGAEgASgLMhEuc2V0dGluZ3MudjEuTm90ZSLBAQoQTGlzdE5vdGVzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgEIAEoCUgBiAEBEhMKBmJlZm9yZRgFIAEoCUgCiAEBEhIKBWZpcnN0GAYgASgFSAOIAQESEQoEbGFzdBgHIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QikAEKEUxpc3ROb3Rlc1Jlc3BvbnNlEiAKBW5vdGVzGAEgAygLMhEuc2V0dGluZ3MudjEuTm90ZRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ihAEKEVVwZGF0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJEi0KB2NvbnRlbnQYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESGAoLaXNfcmVzb2x2ZWQYAyABKAhIAYgBAUIKCghfY29udGVudEIOCgxfaXNfcmVzb2x2ZWQiNQoSVXBkYXRlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIh8KEURlbGV0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIiUKEkRlbGV0ZU5vdGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIqwFCgtOb3RlTWVudGlvbhIKCgJpZBgBIAEoCRIPCgdub3RlX2lkGAIgASgJEhkKEW1lbnRpb25lZF91c2VyX2lkGAMgASgJEg4KBnN0YXR1cxgEIAEoCRIwCgdzZWVuX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjgKD2Fja25vd2xlZGdlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI1Cgxjb21wbGV0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGwoOY29tcGxldGVkX25vdGUYCCABKAlIA4gBARI1CgxkaXNtaXNzZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESGwoOZGlzbWlzc19yZWFzb24YCiABKAlIBYgBARIxCghkdWVfZGF0ZRgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBARIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9zZWVuX2F0QhIKEF9hY2tub3dsZWRnZWRfYXRCDwoNX2NvbXBsZXRlZF9hdEIRCg9fY29tcGxldGVkX25vdGVCDwoNX2Rpc21pc3NlZF9hdEIRCg9fZGlzbWlzc19yZWFzb25CCwoJX2R1ZV9kYXRlQg0KC19wcm9qZWN0X2lkItoBChJNZW50aW9uV2l0aENvbnRleHQSKQoHbWVudGlvbhgBIAEoCzIYLnNldHRpbmdzLnYxLk5vdGVNZW50aW9uEh8KBG5vdGUYAiABKAsyES5zZXR0aW5ncy52MS5Ob3RlEhgKC2F1dGhvcl9uYW1lGAMgASgJSACIAQESGAoLZW50aXR5X3R5cGUYBCABKAlIAYgBARIWCgllbnRpdHlfaWQYBSABKAlIAogBAUIOCgxfYXV0aG9yX25hbWVCDgoMX2VudGl0eV90eXBlQgwKCl9lbnRpdHlfaWQiTwoNTWVudGlvbkNvdW50cxIPCgdwZW5kaW5nGAEgASgFEhAKCHBhc3RfZHVlGAIgASgFEhsKE2NvbXBsZXRlZF90aGlzX3dlZWsYAyABKAUixgEKFUxpc3RNeU1lbnRpb25zUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QizwEKFkxpc3RNeU1lbnRpb25zUmVzcG9uc2USLgoFaXRlbXMYASADKAsyHy5zZXR0aW5ncy52MS5NZW50aW9uV2l0aENvbnRleHQSDQoFdG90YWwYAiABKAUSKgoGY291bnRzGAMgASgLMhouc2V0dGluZ3MudjEuTWVudGlvbkNvdW50cxIrCglwYWdlX2luZm8YBCABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAUgAygJQgwKCl9wYWdlX2luZm8ioAEKGlVwZGF0ZU1lbnRpb25TdGF0dXNSZXF1ZXN0EhIKCm1lbnRpb25faWQYASABKAkSDgoGc3RhdHVzGAIgASgJEhsKDmNvbXBsZXRlZF9ub3RlGAMgASgJSACIAQESGwoOZGlzbWlzc19yZWFzb24YBCABKAlIAYgBAUIRCg9fY29tcGxldGVkX25vdGVCEQoPX2Rpc21pc3NfcmVhc29uIkgKG1VwZGF0ZU1lbnRpb25TdGF0dXNSZXNwb25zZRIpCgdtZW50aW9uGAEgASgLMhguc2V0dGluZ3MudjEuTm90ZU1lbnRpb24ilAIKEkNyZWF0ZVNoYXJlUmVxdWVzdBI1Cg1yZXNvdXJjZV90eXBlGAEgASgOMh4uc2V0dGluZ3MudjEuU2hhcmVSZXNvdXJjZVR5cGUSFgoJcmVjb3JkX2lkGAIgASgJSACIAQESFAoHZmlsZV9pZBgDIAEoCUgBiAEBEhMKC2N1c3RvbWVyX2lkGAQgASgJEjAKCnBlcm1pc3Npb24YBSABKA4yHC5zZXR0aW5ncy52MS5TaGFyZVBlcm1pc3Npb24SIAoTcHJvZmlsZV9jdXN0b21lcl9pZBgGIAEoCUgCiAEBQgwKCl9yZWNvcmRfaWRCCgoIX2ZpbGVfaWRCFgoUX3Byb2ZpbGVfY3VzdG9tZXJfaWQiOAoTQ3JlYXRlU2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIh0KD0dldFNoYXJlUmVxdWVzdBIKCgJpZBgBIAEoCSI1ChBHZXRTaGFyZVJlc3BvbnNlEiEKBXNoYXJlGAEgASgLMhIuc2V0dGluZ3MudjEuU2hhcmUiwgEKEUxpc3RTaGFyZXNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAQgASgJSAGIAQESEwoGYmVmb3JlGAUgASgJSAKIAQESEgoFZmlyc3QYBiABKAVIA4gBARIRCgRsYXN0GAcgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKTAQoSTGlzdFNoYXJlc1Jlc3BvbnNlEiIKBnNoYXJlcxgBIAMoCzISLnNldHRpbmdzLnYxLlNoYXJlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKgAQoSVXBkYXRlU2hhcmVSZXF1ZXN0EgoKAmlkGAEgASgJEjUKCnBlcm1pc3Npb24YAiABKA4yHC5zZXR0aW5ncy52MS5TaGFyZVBlcm1pc3Npb25IAIgBARItCgZzdGF0dXMYAyABKA4yGC5zZXR0aW5ncy52MS5TaGFyZVN0YXR1c0gBiAEBQg0KC19wZXJtaXNzaW9uQgkKB19zdGF0dXMiOAoTVXBkYXRlU2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIiAKElJldm9rZVNoYXJlUmVxdWVzdBIKCgJpZBgBIAEoCSImChNSZXZva2VTaGFyZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiIAoSQWNjZXB0U2hhcmVSZXF1ZXN0EgoKAmlkGAEgASgJIjgKE0FjY2VwdFNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSIhChNEZWNsaW5lU2hhcmVSZXF1ZXN0EgoKAmlkGAEgASgJIjkKFERlY2xpbmVTaGFyZVJlc3BvbnNlEiEKBXNoYXJlGAEgASgLMhIuc2V0dGluZ3MudjEuU2hhcmUivwMKBkxvY2FsZRIKCgJpZBgBIAEoCRIOCgZsb2NhbGUYAiABKAkSFAoMZGlzcGxheV9uYW1lGAMgASgJEhgKC25hdGl2ZV9uYW1lGAQgASgJSACIAQESEgoKaXNfZGVmYXVsdBgFIAEoCBIRCglpc19hY3RpdmUYBiABKAgSDgoGaXNfcnRsGAcgASgIEhwKD2ZhbGxiYWNrX2xvY2FsZRgIIAEoCUgBiAEBEhkKEWZhbGxiYWNrX3ByaW9yaXR5GAkgASgFEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEhcKCmNyZWF0ZWRfYnkYHiABKAlIAogBARIXCgp1cGRhdGVkX2J5GB8gASgJSAOIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX25hdGl2ZV9uYW1lQhIKEF9mYWxsYmFja19sb2NhbGVCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnkiwwEKEkxpc3RMb2NhbGVzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QilgEKE0xpc3RMb2NhbGVzUmVzcG9uc2USJAoHbG9jYWxlcxgBIAMoCzITLnNldHRpbmdzLnYxLkxvY2FsZRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iHgoQR2V0TG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSI4ChFHZXRMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUi3wEKE0NyZWF0ZUxvY2FsZVJlcXVlc3QSDgoGbG9jYWxlGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtuYXRpdmVfbmFtZRgDIAEoCUgAiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAYgBARITCgZpc19ydGwYBSABKAhIAogBARIcCg9mYWxsYmFja19sb2NhbGUYBiABKAlIA4gBAUIOCgxfbmF0aXZlX25hbWVCDQoLX2lzX2RlZmF1bHRCCQoHX2lzX3J0bEISChBfZmFsbGJhY2tfbG9jYWxlIjsKFENyZWF0ZUxvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSKXAgoTVXBkYXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCRIZCgxkaXNwbGF5X25hbWUYAiABKAlIAIgBARIYCgtuYXRpdmVfbmFtZRgDIAEoCUgBiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAogBARIWCglpc19hY3RpdmUYBSABKAhIA4gBARITCgZpc19ydGwYBiABKAhIBIgBARIcCg9mYWxsYmFja19sb2NhbGUYByABKAlIBYgBAUIPCg1fZGlzcGxheV9uYW1lQg4KDF9uYXRpdmVfbmFtZUINCgtfaXNfZGVmYXVsdEIMCgpfaXNfYWN0aXZlQgkKB19pc19ydGxCEgoQX2ZhbGxiYWNrX2xvY2FsZSI7ChRVcGRhdGVMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUiIQoTRGVsZXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSInChREZWxldGVMb2NhbGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIpQBCg5OYXZQcmVmZXJlbmNlcxIZChFmYXZvcml0ZV9wcm9qZWN0cxgBIAMoCRIaChJmYXZvcml0ZV9uYXZfaXRlbXMYAiADKAkSGgoSY29sbGFwc2VkX3NlY3Rpb25zGAMgAygJEi8KDm5hdl9pdGVtX29yZGVyGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCIaChhHZXROYXZQcmVmZXJlbmNlc1JlcXVlc3QiTQoZR2V0TmF2UHJlZmVyZW5jZXNSZXNwb25zZRIwCgtwcmVmZXJlbmNlcxgBIAEoCzIbLnNldHRpbmdzLnYxLk5hdlByZWZlcmVuY2VzIvwBChtVcGRhdGVOYXZQcmVmZXJlbmNlc1JlcXVlc3QSNQoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlc0gAiAEBEh4KEXRvZ2dsZV9wcm9qZWN0X2lkGAIgASgJSAGIAQESHAoPdG9nZ2xlX25hdl9pdGVtGAMgASgJSAKIAQESGwoOdG9nZ2xlX3NlY3Rpb24YBCABKAlIA4gBAUIOCgxfcHJlZmVyZW5jZXNCFAoSX3RvZ2dsZV9wcm9qZWN0X2lkQhIKEF90b2dnbGVfbmF2X2l0ZW1CEQoPX3RvZ2dsZV9zZWN0aW9uIlAKHFVwZGF0ZU5hdlByZWZlcmVuY2VzUmVzcG9uc2USMAoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlcyJeChJSZWNlbnRseU9wZW5lZEl0ZW0SDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCRINCgVsYWJlbBgDIAEoCRIMCgRwYXRoGAQgASgJEhEKCXRpbWVzdGFtcBgFIAEoAyKTAQoZTGlzdFJlY2VudGx5T3BlbmVkUmVxdWVzdBISCgVhZnRlchgBIAEoCUgAiAEBEhMKBmJlZm9yZRgCIAEoCUgBiAEBEhIKBWZpcnN0GAMgASgFSAKIAQESEQoEbGFzdBgEIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKYAQoaTGlzdFJlY2VudGx5T3BlbmVkUmVzcG9uc2USLgoFaXRlbXMYASADKAsyHy5zZXR0aW5ncy52MS5SZWNlbnRseU9wZW5lZEl0ZW0SKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIlMKGlRyYWNrUmVjZW50bHlPcGVuZWRSZXF1ZXN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSDAoEcGF0aBgEIAEoCSIuChtUcmFja1JlY2VudGx5T3BlbmVkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI3ChtSZW1vdmVSZWNlbnRseU9wZW5lZFJlcXVlc3QSDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCSIvChxSZW1vdmVSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiHAoaQ2xlYXJSZWNlbnRseU9wZW5lZFJlcXVlc3QiLgobQ2xlYXJSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgizwUKEENvbnRleHREaW1lbnNpb24SCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARITCgtzb3VyY2VfdHlwZRgFIAEoCRIYChBzb3VyY2VfbW9kZWxfa2V5GAYgASgJEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgHIAEoCUgBiAEBEhEKCWlzX3N5c3RlbRgIIAEoCBIXCg9idWlsdF9pbl92YWx1ZXMYCSADKAkSEQoJZGF0YV90eXBlGAogASgJEhAKCGNhdGVnb3J5GAsgASgJEhMKC2lzX3JlcXVpcmVkGAwgASgIEhIKCnNvcnRfb3JkZXIYDSABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgCiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBg8IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GD0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBQg4KDF9kZXNjcmlwdGlvbkIVChNfZGVmYXVsdF9yZWNvcmRfa2V5Qg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5QhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdCIzChVDb250ZXh0RGltZW5zaW9uVmFsdWUSCwoDa2V5GAEgASgJEg0KBWxhYmVsGAIgASgJIrYBChxMaXN0Q29udGV4dERpbWVuc2lvbnNSZXF1ZXN0EhMKBnNlYXJjaBgBIAEoCUgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCQoHX3NlYXJjaEIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QirQEKHUxpc3RDb250ZXh0RGltZW5zaW9uc1Jlc3BvbnNlEjEKCmRpbWVuc2lvbnMYASADKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIoChpHZXRDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJPChtHZXRDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiLLAQodQ3JlYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARITCgtzb3VyY2VfdHlwZRgEIAEoCRIYChBzb3VyY2VfbW9kZWxfa2V5GAUgASgJEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgGIAEoCUgBiAEBQg4KDF9kZXNjcmlwdGlvbkIVChNfZGVmYXVsdF9yZWNvcmRfa2V5IlIKHkNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIv8BCh1VcGRhdGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESGAoLZGVzY3JpcHRpb24YAyABKAlIAYgBARIdChBzb3VyY2VfbW9kZWxfa2V5GAQgASgJSAKIAQESHwoSZGVmYXVsdF9yZWNvcmRfa2V5GAUgASgJSAOIAQESFAoHcHVibGlzaBgGIAEoCEgEiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkITChFfc291cmNlX21vZGVsX2tleUIVChNfZGVmYXVsdF9yZWNvcmRfa2V5QgoKCF9wdWJsaXNoIlIKHlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIisKHURlbGV0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjEKHkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIItEBCiBHZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVxdWVzdBIVCg1kaW1lbnNpb25fa2V5GAEgASgJEhMKBnNlYXJjaBgCIAEoCUgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQFCCQoHX3NlYXJjaEIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QisgEKIUdldENvbnRleHREaW1lbnNpb25WYWx1ZXNSZXNwb25zZRIyCgZ2YWx1ZXMYASADKAsyIi5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uVmFsdWUSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIqICChRDdXN0b21lclByb2ZpbGVGaWVsZBIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEdHlwZRgDIAEoCRINCgVsYWJlbBgEIAEoCRIQCghyZXF1aXJlZBgFIAEoCBIWCgloZWxwX3RleHQYBiABKAlIAIgBARIYCgtwbGFjZWhvbGRlchgHIAEoCUgBiAEBEiwKBmNvbmZpZxgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARImCgZhY2Nlc3MYCSABKAsyFi5jb21tb24udjEuRmllbGRBY2Nlc3MSEQoJcXVlcnlhYmxlGAogASgIQgwKCl9oZWxwX3RleHRCDgoMX3BsYWNlaG9sZGVyQgkKB19jb25maWcigQEKFUN1c3RvbWVyUHJvZmlsZUxvb2t1cBIOCgZrZXlfYnkYASADKAkSEQoEbmFtZRgCIAEoCUgAiAEBEjwKCGF1ZGllbmNlGAMgASgOMiouc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlTG9va3VwQXVkaWVuY2VCBwoFX25hbWUixwMKFUN1c3RvbWVyUHJvZmlsZVNjaGVtYRIKCgJpZBgBIAEoCRIxCgZmaWVsZHMYAiADKAsyIS5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVGaWVsZBIVCg1wdWJsaWNfZmllbGRzGAMgAygJEg8KB3ZlcnNpb24YBCABKAUSMwoHbG9va3VwcxgFIAMoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZUxvb2t1cBIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBg8IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GD0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBQhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdCIhCh9HZXRDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0IlYKIEdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEjIKBnNjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSLyAwoTVmFyaWFudENhdGFsb2dFbnRyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgFIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESEAoIcHJpb3JpdHkYBiABKAUSEgoKaXNfZGVmYXVsdBgHIAEoCBIRCglpc19hY3RpdmUYCCABKAgSGAoLZmFsbGJhY2tfaWQYCiABKAlIAogBARIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIXCgpjcmVhdGVkX2J5GB4gASgJSAOIAQESFwoKdXBkYXRlZF9ieRgfIAEoCUgEiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkISChBfdGFyZ2V0aW5nX3J1bGVzQg4KDF9mYWxsYmFja19pZEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSLKAQoZTGlzdFZhcmlhbnRDYXRhbG9nUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhMKBmJlZm9yZRgEIAEoCUgCiAEBEhIKBWZpcnN0GAUgASgFSAOIAQESEQoEbGFzdBgGIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QiqgEKGkxpc3RWYXJpYW50Q2F0YWxvZ1Jlc3BvbnNlEjEKB2VudHJpZXMYASADKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIrCh1HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSJRCh5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IqsCCiBDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgEIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESFQoIcHJpb3JpdHkYBSABKAVIAogBARIXCgppc19kZWZhdWx0GAYgASgISAOIAQESFgoJaXNfYWN0aXZlGAcgASgISASIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF90YXJnZXRpbmdfcnVsZXNCCwoJX3ByaW9yaXR5Qg0KC19pc19kZWZhdWx0QgwKCl9pc19hY3RpdmUiVAohQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSK4AgogVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGAQgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IAogBARIVCghwcmlvcml0eRgFIAEoBUgDiAEBEhcKCmlzX2RlZmF1bHQYBiABKAhIBIgBARIWCglpc19hY3RpdmUYByABKAhIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0ILCglfcHJpb3JpdHlCDQoLX2lzX2RlZmF1bHRCDAoKX2lzX2FjdGl2ZSJUCiFVcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Ii4KIERlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIjQKIURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIjAKGUdldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiQwoaR2V0Q3VzdG9tZXJQcm9maWxlUmVzcG9uc2USJQoEZGF0YRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiXAocQ3JlYXRlQ3VzdG9tZXJQcm9maWxlUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRInCgZjcmVhdGUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkYKHUNyZWF0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEiUKBGRhdGEYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IlwKHFVwZGF0ZUN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSJwoGdXBkYXRlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJGCh1VcGRhdGVDdXN0b21lclByb2ZpbGVSZXNwb25zZRIlCgRkYXRhGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKjAQoiVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hUmVxdWVzdBIxCgZmaWVsZHMYASADKAsyIS5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVGaWVsZBIVCg1wdWJsaWNfZmllbGRzGAIgAygJEjMKB2xvb2t1cHMYAyADKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVMb29rdXAiWQojVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hUmVzcG9uc2USMgoGc2NoZW1hGAEgASgLMiIuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlU2NoZW1hIkUKHExvb2t1cEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLbG9va3VwX25hbWUYASABKAkSEAoIa2V5X2hhc2gYAiABKAwiSQodTG9va3VwQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USGAoLY3VzdG9tZXJfaWQYASABKAlIAIgBAUIOCgxfY3VzdG9tZXJfaWQiUwoVQ3VzdG9tZXJQcm9maWxlUmVzdWx0EhMKC2N1c3RvbWVyX2lkGAEgASgJEiUKBGRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IjgKE0N1c3RvbWVyUHJvZmlsZVNvcnQSDQoFZmllbGQYASABKAkSEgoKZGVzY2VuZGluZxgCIAEoCCKCAgodU2VhcmNoQ3VzdG9tZXJQcm9maWxlc1JlcXVlc3QSEgoFYWZ0ZXIYASABKAlIAIgBARITCgZiZWZvcmUYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBARIrCgV3aGVyZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIyCghvcmRlcl9ieRgGIAMoCzIgLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNvcnRCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QggKBl93aGVyZSKwAQoeU2VhcmNoQ3VzdG9tZXJQcm9maWxlc1Jlc3BvbnNlEjMKB3Jlc3VsdHMYASADKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVSZXN1bHQSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIjMKHERlbGV0ZUN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiMAodRGVsZXRlQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI9CiZHZXRDdXN0b21lclJlc29sdXRpb25BdHRyaWJ1dGVzUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCSJZChNSZXNvbHV0aW9uQXR0cmlidXRlEgsKA2tleRgBIAEoCRI1CgZ2YWx1ZXMYAiADKAsyJS5zZXR0aW5ncy52MS5SZXNvbHV0aW9uQXR0cmlidXRlVmFsdWUigAEKGFJlc29sdXRpb25BdHRyaWJ1dGVWYWx1ZRINCgV2YWx1ZRgBIAEoCRINCgVjb3VudBgCIAEoBRI1CgxsYXN0X3NlZW5fYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX2xhc3Rfc2Vlbl9hdCKMAgonR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlc1Jlc3BvbnNlEhkKEXRvdGFsX3Jlc29sdXRpb25zGAEgASgFEjQKCmF0dHJpYnV0ZXMYAiADKAsyIC5zZXR0aW5ncy52MS5SZXNvbHV0aW9uQXR0cmlidXRlEjYKDWZpcnN0X3NlZW5fYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESNQoMbGFzdF9zZWVuX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBQhAKDl9maXJzdF9zZWVuX2F0Qg8KDV9sYXN0X3NlZW5fYXQiLAoXR2V0RWRpdG9yQ29uZmlnc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJIsACChVFZGl0b3JDb25maWdQbGFjZW1lbnQSEQoJY29uZmlnX2lkGAEgASgJEhIKCmNvbmZpZ19rZXkYAiABKAkSEAoDdXJsGAMgASgJSACIAQESGwoOYWxsb3dlZF9vcmlnaW4YBCABKAlIAYgBARITCgZoZWlnaHQYBSABKAVIAogBARISCgVsYWJlbBgGIAEoCUgDiAEBEhQKB2FwaV9rZXkYByABKAlIBIgBARIUCgdhcGlfdXJsGAggASgJSAWIAQESHgoRY29ubmVjdGlvbl9kb21haW4YCSABKAlIBogBAUIGCgRfdXJsQhEKD19hbGxvd2VkX29yaWdpbkIJCgdfaGVpZ2h0QggKBl9sYWJlbEIKCghfYXBpX2tleUIKCghfYXBpX3VybEIUChJfY29ubmVjdGlvbl9kb21haW4iUgoYR2V0RWRpdG9yQ29uZmlnc1Jlc3BvbnNlEjYKCnBsYWNlbWVudHMYASADKAsyIi5zZXR0aW5ncy52MS5FZGl0b3JDb25maWdQbGFjZW1lbnQiIAoSUmVzb2x2ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIjYKE1Jlc29sdmVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiIgoUVW5yZXNvbHZlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkiOAoVVW5yZXNvbHZlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIsUBChJTZWFyY2hOb3Rlc1JlcXVlc3QSDQoFcXVlcnkYASABKAkSGAoLZW50aXR5X3R5cGUYAiABKAlIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhMKBmJlZm9yZRgEIAEoCUgCiAEBEhIKBWZpcnN0GAUgASgFSAOIAQESEQoEbGFzdBgGIAEoBUgEiAEBQg4KDF9lbnRpdHlfdHlwZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QikgEKE1NlYXJjaE5vdGVzUmVzcG9uc2USIAoFbm90ZXMYASADKAsyES5zZXR0aW5ncy52MS5Ob3RlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIZChdNYXJrTWVudGlvbnNTZWVuUmVxdWVzdCIpChhNYXJrTWVudGlvbnNTZWVuUmVzcG9uc2USDQoFY291bnQYASABKAUiLgofR2V0Q29udGV4dERpbWVuc2lvbkJ5S2V5UmVxdWVzdBILCgNrZXkYASABKAkiVAogR2V0Q29udGV4dERpbWVuc2lvbkJ5S2V5UmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiIZChdHZXREZWZhdWx0TG9jYWxlUmVxdWVzdCI/ChhHZXREZWZhdWx0TG9jYWxlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIiYKFkdldExvY2FsZUJ5Q29kZVJlcXVlc3QSDAoEY29kZRgBIAEoCSI+ChdHZXRMb2NhbGVCeUNvZGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUiJgokR2V0RGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0IlgKJUdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IiMKFERlbGV0ZVNldHRpbmdSZXF1ZXN0EgsKA2tleRgBIAEoCSIoChVEZWxldGVTZXR0aW5nUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIzCh9EZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnlSZXF1ZXN0EhAKCGNhdGVnb3J5GAEgASgJIjEKIERlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeVJlc3BvbnNlEg0KBWNvdW50GAEgASgFIk0KFkJ1bGtTZXRTZXR0aW5nc1JlcXVlc3QSMwoIc2V0dGluZ3MYASADKAsyIS5zZXR0aW5ncy52MS5VcGRhdGVTZXR0aW5nUmVxdWVzdCIoChdCdWxrU2V0U2V0dGluZ3NSZXNwb25zZRINCgVjb3VudBgBIAEoBSIpCidFbnN1cmVEZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QiWwooRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIvCgVlbnRyeRgBIAEoCzIgLnNldHRpbmdzLnYxLlZhcmlhbnRDYXRhbG9nRW50cnki8AMKDERlc2lnblRva2VucxIpCghkb2N1bWVudBgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSMwoIcmVzb2x2ZWQYAiABKAsyIS5zZXR0aW5ncy52MS5SZXNvbHZlZERlc2lnblRva2VucxIPCgd2ZXJzaW9uGAogASgFEh4KEXB1Ymxpc2hlZF92ZXJzaW9uGAsgASgFSACIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPQoUc2NoZWR1bGVkX3B1Ymxpc2hfYXQYPCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESPwoWc2NoZWR1bGVkX3VucHVibGlzaF9hdBg9IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBAUIUChJfcHVibGlzaGVkX3ZlcnNpb25CFwoVX3NjaGVkdWxlZF9wdWJsaXNoX2F0QhkKF19zY2hlZHVsZWRfdW5wdWJsaXNoX2F0IvoEChRSZXNvbHZlZERlc2lnblRva2VucxIvCgZjb2xvcnMYASADKAsyHy5zZXR0aW5ncy52MS5SZXNvbHZlZENvbG9yVG9rZW4SOwoNZm9udF9mYW1pbGllcxgCIAMoCzIkLnNldHRpbmdzLnYxLlJlc29sdmVkRm9udEZhbWlseVRva2VuEjoKDGZvbnRfd2VpZ2h0cxgDIAMoCzIkLnNldHRpbmdzLnYxLlJlc29sdmVkRm9udFdlaWdodFRva2VuEjcKCmZvbnRfc2l6ZXMYBCADKAsyIy5zZXR0aW5ncy52MS5SZXNvbHZlZERpbWVuc2lvblRva2VuEjYKDGxpbmVfaGVpZ2h0cxgFIAMoCzIgLnNldHRpbmdzLnYxLlJlc29sdmVkTnVtYmVyVG9rZW4SPAoPbGV0dGVyX3NwYWNpbmdzGAYgAygLMiMuc2V0dGluZ3MudjEuUmVzb2x2ZWREaW1lbnNpb25Ub2tlbhI4Cgp0eXBvZ3JhcGh5GAcgAygLMiQuc2V0dGluZ3MudjEuUmVzb2x2ZWRUeXBvZ3JhcGh5VG9rZW4SNQoIc3BhY2luZ3MYCCADKAsyIy5zZXR0aW5ncy52MS5SZXNvbHZlZERpbWVuc2lvblRva2VuEjIKBXJhZGlpGAkgAygLMiMuc2V0dGluZ3MudjEuUmVzb2x2ZWREaW1lbnNpb25Ub2tlbhIxCgdzaGFkb3dzGAogAygLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWRTaGFkb3dUb2tlbhIxCgdib3JkZXJzGAsgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWRCb3JkZXJUb2tlbiJpChJSZXNvbHZlZENvbG9yVG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESDQoFdmFsdWUYBCABKAlCDgoMX2Rlc2NyaXB0aW9uIm4KF1Jlc29sdmVkRm9udEZhbWlseVRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg0KBXZhbHVlGAQgAygJQg4KDF9kZXNjcmlwdGlvbiJuChdSZXNvbHZlZEZvbnRXZWlnaHRUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgV2YWx1ZRgEIAEoBUIOCgxfZGVzY3JpcHRpb24ibQoWUmVzb2x2ZWREaW1lbnNpb25Ub2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgV2YWx1ZRgEIAEoCUIOCgxfZGVzY3JpcHRpb24iagoTUmVzb2x2ZWROdW1iZXJUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgV2YWx1ZRgEIAEoAUIOCgxfZGVzY3JpcHRpb24izAEKF1Jlc29sdmVkVHlwb2dyYXBoeVRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjMKBXZhbHVlGAQgASgLMiQuc2V0dGluZ3MudjEuUmVzb2x2ZWRUeXBvZ3JhcGh5VmFsdWUSEgoFbGFiZWwYBSABKAlIAYgBARIQCgN0YWcYBiABKAlIAogBAUIOCgxfZGVzY3JpcHRpb25CCAoGX2xhYmVsQgYKBF90YWcijQEKE1Jlc29sdmVkU2hhZG93VG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESMAoGbGF5ZXJzGAQgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWRTaGFkb3dMYXllckIOCgxfZGVzY3JpcHRpb24idQoTUmVzb2x2ZWRTaGFkb3dMYXllchIQCghvZmZzZXRfeBgBIAEoCRIQCghvZmZzZXRfeRgCIAEoCRIMCgRibHVyGAMgASgJEg4KBnNwcmVhZBgEIAEoCRINCgVjb2xvchgFIAEoCRINCgVpbnNldBgGIAEoCCKMAQoTUmVzb2x2ZWRCb3JkZXJUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARIvCgV2YWx1ZRgEIAEoCzIgLnNldHRpbmdzLnYxLlJlc29sdmVkQm9yZGVyVmFsdWVCDgoMX2Rlc2NyaXB0aW9uIkIKE1Jlc29sdmVkQm9yZGVyVmFsdWUSDQoFY29sb3IYASABKAkSDQoFd2lkdGgYAiABKAkSDQoFc3R5bGUYAyABKAkimwEKF1Jlc29sdmVkVHlwb2dyYXBoeVZhbHVlEhMKC2ZvbnRfZmFtaWx5GAEgAygJEhEKCWZvbnRfc2l6ZRgCIAEoCRITCgtmb250X3dlaWdodBgDIAEoBRITCgtsaW5lX2hlaWdodBgEIAEoARIWCg5sZXR0ZXJfc3BhY2luZxgFIAEoCRIWCg50ZXh0X3RyYW5zZm9ybRgGIAEoCSJEChZHZXREZXNpZ25Ub2tlbnNSZXF1ZXN0EioKB2NoYW5uZWwYASABKA4yGS5wdWJsaXNoLnYxLlNjaGVtYUNoYW5uZWwiRAoXR2V0RGVzaWduVG9rZW5zUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zIkYKGVVwZGF0ZURlc2lnblRva2Vuc1JlcXVlc3QSKQoIZG9jdW1lbnQYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkcKGlVwZGF0ZURlc2lnblRva2Vuc1Jlc3BvbnNlEikKBnRva2VucxgBIAEoCzIZLnNldHRpbmdzLnYxLkRlc2lnblRva2VucyIcChpQdWJsaXNoRGVzaWduVG9rZW5zUmVxdWVzdCJ+ChtQdWJsaXNoRGVzaWduVG9rZW5zUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIh4KHFVucHVibGlzaERlc2lnblRva2Vuc1JlcXVlc3QiSgodVW5wdWJsaXNoRGVzaWduVG9rZW5zUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zIiUKI0dldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXNSZXF1ZXN0IlEKJEdldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXNSZXNwb25zZRIpCgZzdGF0dXMYASABKAsyGS5wdWJsaXNoLnYxLlB1Ymxpc2hTdGF0dXMinAEKIlNjaGVkdWxlRGVzaWduVG9rZW5zUHVibGlzaFJlcXVlc3QSLgoKcHVibGlzaF9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV91bnB1Ymxpc2hfYXQiUAojU2NoZWR1bGVEZXNpZ25Ub2tlbnNQdWJsaXNoUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zIisKKUNhbmNlbFNjaGVkdWxlZERlc2lnblRva2Vuc1B1Ymxpc2hSZXF1ZXN0IlcKKkNhbmNlbFNjaGVkdWxlZERlc2lnblRva2Vuc1B1Ymxpc2hSZXNwb25zZRIpCgZ0b2tlbnMYASABKAsyGS5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlbnMiNwohQ291bnREZXNpZ25Ub2tlblJlZmVyZW5jZXNSZXF1ZXN0EhIKCnRva2VuX3BhdGgYASABKAkiUwoiQ291bnREZXNpZ25Ub2tlblJlZmVyZW5jZXNSZXNwb25zZRIXCg9wYXJhZ3JhcGhfY291bnQYASABKAUSFAoMcmVjb3JkX2NvdW50GAIgASgFItkCChJEZXNpZ25Ub2tlblZlcnNpb24SCgoCaWQYASABKAkSGAoQZGVzaWduX3Rva2Vuc19pZBgCIAEoCRIWCg52ZXJzaW9uX251bWJlchgDIAEoBRIpCghzbmFwc2hvdBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFAoMY29udGVudF9oYXNoGAUgASgJEh4KEXNvdXJjZV92ZXJzaW9uX2lkGAYgASgJSACIAQESHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAcgASgJSAGIAQESLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKY3JlYXRlZF9ieRgJIAEoCUgCiAEBQhQKEl9zb3VyY2VfdmVyc2lvbl9pZEIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQg0KC19jcmVhdGVkX2J5IioKHEdldERlc2lnblRva2VuVmVyc2lvblJlcXVlc3QSCgoCaWQYASABKAkiUQodR2V0RGVzaWduVG9rZW5WZXJzaW9uUmVzcG9uc2USMAoHdmVyc2lvbhgBIAEoCzIfLnNldHRpbmdzLnYxLkRlc2lnblRva2VuVmVyc2lvbiKYAQoeTGlzdERlc2lnblRva2VuVmVyc2lvbnNSZXF1ZXN0EhIKBWFmdGVyGAEgASgJSACIAQESEwoGYmVmb3JlGAIgASgJSAGIAQESEgoFZmlyc3QYAyABKAVIAogBARIRCgRsYXN0GAQgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Iq8BCh9MaXN0RGVzaWduVG9rZW5WZXJzaW9uc1Jlc3BvbnNlEjEKCHZlcnNpb25zGAEgAygLMh8uc2V0dGluZ3MudjEuRGVzaWduVG9rZW5WZXJzaW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJuCiBSZXN0b3JlRGVzaWduVG9rZW5WZXJzaW9uUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgCIAEoCUgAiAEBQhUKE19jaGFuZ2VfZGVzY3JpcHRpb24ihAEKIVJlc3RvcmVEZXNpZ25Ub2tlblZlcnNpb25SZXNwb25zZRIpCgZ0b2tlbnMYASABKAsyGS5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlbnMSNAoLbmV3X3ZlcnNpb24YAiABKAsyHy5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlblZlcnNpb24iRQoXR2V0UHJvamVjdFNjaGVtYVJlcXVlc3QSKgoHY2hhbm5lbBgBIAEoDjIZLnB1Ymxpc2gudjEuU2NoZW1hQ2hhbm5lbCJlChJQcm9qZWN0U2NoZW1hTW9kZWwSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSEwoLZmllbGRzX2pzb24YBCABKAkSEwoLY29uZmlnX2pzb24YBSABKAkiwgEKHVByb2plY3RTY2hlbWFDb250ZXh0RGltZW5zaW9uEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEh0KEHNvdXJjZV9tb2RlbF9rZXkYBCABKAlIAIgBARIfChJkZWZhdWx0X3JlY29yZF9rZXkYBSABKAlIAYgBARIOCgZ2YWx1ZXMYBiADKAlCEwoRX3NvdXJjZV9tb2RlbF9rZXlCFQoTX2RlZmF1bHRfcmVjb3JkX2tleSKOAQoZUHJvamVjdFNjaGVtYUF1dGhQcm92aWRlchILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEg8KB2VuYWJsZWQYBCABKAgSLAoGY29uZmlnGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgkKB19jb25maWcinwMKFlByb2plY3RTY2hlbWFPcGVyYXRpb24SCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSEAoIZW5kcG9pbnQYAyABKAkSEgoKdGltZW91dF9tcxgEIAEoBRIyCgxpbnB1dF9zY2hlbWEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESMwoNb3V0cHV0X3NjaGVtYRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIWCg5zdXBwb3J0c19hc3luYxgHIAEoCBIMCgRraW5kGAggASgJEh4KEWF0dGFjaGVkX3RvX21vZGVsGAkgASgJSAKIAQESFQoNcGFyZW50X2ZpZWxkcxgKIAMoCRIzCg1jYWNoZV9jb250cm9sGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBQg8KDV9pbnB1dF9zY2hlbWFCEAoOX291dHB1dF9zY2hlbWFCFAoSX2F0dGFjaGVkX3RvX21vZGVsQhAKDl9jYWNoZV9jb250cm9sIkQKFFByb2plY3RTY2hlbWFTZWdtZW50EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhEKCWlzX2FjdGl2ZRgDIAEoCCJvChpQcm9qZWN0U2NoZW1hUHJvZmlsZVNjaGVtYRITCgtmaWVsZHNfanNvbhgBIAEoCRIVCg1wdWJsaWNfZmllbGRzGAIgAygJEg8KB3ZlcnNpb24YAyABKAUSFAoMbG9va3Vwc19qc29uGAQgASgJIpQEChhHZXRQcm9qZWN0U2NoZW1hUmVzcG9uc2USLwoGbW9kZWxzGAEgAygLMh8uc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYU1vZGVsEj4KCmRpbWVuc2lvbnMYAiADKAsyKi5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hQ29udGV4dERpbWVuc2lvbhI+Cg5hdXRoX3Byb3ZpZGVycxgDIAMoCzImLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFBdXRoUHJvdmlkZXISNwoKb3BlcmF0aW9ucxgEIAMoCzIjLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFPcGVyYXRpb24SMwoIc2VnbWVudHMYBSADKAsyIS5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hU2VnbWVudBJECg5wcm9maWxlX3NjaGVtYRgHIAEoCzInLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFQcm9maWxlU2NoZW1hSACIAQESJgoZY3VzdG9tZXJfcGFzc3dvcmRfZW5hYmxlZBgIIAEoCEgBiAEBEiEKFGN1c3RvbWVyX290cF9lbmFibGVkGAkgASgISAKIAQFCEQoPX3Byb2ZpbGVfc2NoZW1hQhwKGl9jdXN0b21lcl9wYXNzd29yZF9lbmFibGVkQhcKFV9jdXN0b21lcl9vdHBfZW5hYmxlZCIsCh5QdWJsaXNoQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkiiQEKH1B1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbhI0ChBicmVha2luZ19jaGFuZ2VzGAIgAygLMhoucHVibGlzaC52MS5CcmVha2luZ0NoYW5nZSIuCiBVbnB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJVCiFVbnB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiI1CidHZXRDb250ZXh0RGltZW5zaW9uUHVibGlzaFN0YXR1c1JlcXVlc3QSCgoCaWQYASABKAkiVQooR2V0Q29udGV4dERpbWVuc2lvblB1Ymxpc2hTdGF0dXNSZXNwb25zZRIpCgZzdGF0dXMYASABKAsyGS5wdWJsaXNoLnYxLlB1Ymxpc2hTdGF0dXMi4gIKF0NvbnRleHREaW1lbnNpb25WZXJzaW9uEgoKAmlkGAEgASgJEhwKFGNvbnRleHRfZGltZW5zaW9uX2lkGAIgASgJEhYKDnZlcnNpb25fbnVtYmVyGAMgASgFEikKCHNuYXBzaG90GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgxjb250ZW50X2hhc2gYBSABKAkSHgoRc291cmNlX3ZlcnNpb25faWQYBiABKAlIAIgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YByABKAlIAYgBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAkgASgJSAKIAQFCFAoSX3NvdXJjZV92ZXJzaW9uX2lkQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CDQoLX2NyZWF0ZWRfYnkiLwohR2V0Q29udGV4dERpbWVuc2lvblZlcnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIlsKIkdldENvbnRleHREaW1lbnNpb25WZXJzaW9uUmVzcG9uc2USNQoHdmVyc2lvbhgBIAEoCzIkLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb25WZXJzaW9uIrsBCiNMaXN0Q29udGV4dERpbWVuc2lvblZlcnNpb25zUmVxdWVzdBIcChRjb250ZXh0X2RpbWVuc2lvbl9pZBgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhMKBmJlZm9yZRgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQESEQoEbGFzdBgFIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCK5AQokTGlzdENvbnRleHREaW1lbnNpb25WZXJzaW9uc1Jlc3BvbnNlEjYKCHZlcnNpb25zGAEgAygLMiQuc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvblZlcnNpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvInMKJVJlc3RvcmVDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIfChJjaGFuZ2VfZGVzY3JpcHRpb24YAiABKAlIAIgBAUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIpUBCiZSZXN0b3JlQ29udGV4dERpbWVuc2lvblZlcnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uEjkKC25ld192ZXJzaW9uGAIgASgLMiQuc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvblZlcnNpb24iHQobUHVibGlzaFByb2ZpbGVTY2hlbWFSZXF1ZXN0IpABChxQdWJsaXNoUHJvZmlsZVNjaGVtYVJlc3BvbnNlEjoKDnByb2ZpbGVfc2NoZW1hGAEgASgLMiIuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlU2NoZW1hEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIh8KHVVucHVibGlzaFByb2ZpbGVTY2hlbWFSZXF1ZXN0IlwKHlVucHVibGlzaFByb2ZpbGVTY2hlbWFSZXNwb25zZRI6Cg5wcm9maWxlX3NjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSImCiRHZXRQcm9maWxlU2NoZW1hUHVibGlzaFN0YXR1c1JlcXVlc3QiUgolR2V0UHJvZmlsZVNjaGVtYVB1Ymxpc2hTdGF0dXNSZXNwb25zZRIpCgZzdGF0dXMYASABKAsyGS5wdWJsaXNoLnYxLlB1Ymxpc2hTdGF0dXMi3AIKFFByb2ZpbGVTY2hlbWFWZXJzaW9uEgoKAmlkGAEgASgJEhkKEXByb2ZpbGVfc2NoZW1hX2lkGAIgASgJEhYKDnZlcnNpb25fbnVtYmVyGAMgASgFEikKCHNuYXBzaG90GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgxjb250ZW50X2hhc2gYBSABKAkSHgoRc291cmNlX3ZlcnNpb25faWQYBiABKAlIAIgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YByABKAlIAYgBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAkgASgJSAKIAQFCFAoSX3NvdXJjZV92ZXJzaW9uX2lkQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CDQoLX2NyZWF0ZWRfYnkiLAoeR2V0UHJvZmlsZVNjaGVtYVZlcnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIlUKH0dldFByb2ZpbGVTY2hlbWFWZXJzaW9uUmVzcG9uc2USMgoHdmVyc2lvbhgBIAEoCzIhLnNldHRpbmdzLnYxLlByb2ZpbGVTY2hlbWFWZXJzaW9uIpoBCiBMaXN0UHJvZmlsZVNjaGVtYVZlcnNpb25zUmVxdWVzdBISCgVhZnRlchgBIAEoCUgAiAEBEhMKBmJlZm9yZRgCIAEoCUgBiAEBEhIKBWZpcnN0GAMgASgFSAKIAQESEQoEbGFzdBgEIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKzAQohTGlzdFByb2ZpbGVTY2hlbWFWZXJzaW9uc1Jlc3BvbnNlEjMKCHZlcnNpb25zGAEgAygLMiEuc2V0dGluZ3MudjEuUHJvZmlsZVNjaGVtYVZlcnNpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvInAKIlJlc3RvcmVQcm9maWxlU2NoZW1hVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIfChJjaGFuZ2VfZGVzY3JpcHRpb24YAiABKAlIAIgBAUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIpEBCiNSZXN0b3JlUHJvZmlsZVNjaGVtYVZlcnNpb25SZXNwb25zZRIyCgZzY2hlbWEYASABKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVTY2hlbWESNgoLbmV3X3ZlcnNpb24YAiABKAsyIS5zZXR0aW5ncy52MS5Qcm9maWxlU2NoZW1hVmVyc2lvbiIdChtQdWJsaXNoUHJvamVjdFNjaGVtYVJlcXVlc3Qi9gEKHFB1Ymxpc2hQcm9qZWN0U2NoZW1hUmVzcG9uc2USGAoQbW9kZWxzX3B1Ymxpc2hlZBgBIAEoBRIcChRvcGVyYXRpb25zX3B1Ymxpc2hlZBgCIAEoBRIkChxjb250ZXh0X2RpbWVuc2lvbnNfcHVibGlzaGVkGAMgASgFEiAKGGF1dGhfcHJvdmlkZXJzX3B1Ymxpc2hlZBgEIAEoBRIgChhwcm9maWxlX3NjaGVtYV9wdWJsaXNoZWQYBSABKAgSNAoQYnJlYWtpbmdfY2hhbmdlcxgGIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UiIAoeR2V0UHJvamVjdFB1Ymxpc2hTdGF0dXNSZXF1ZXN0IoMBCh9HZXRQcm9qZWN0UHVibGlzaFN0YXR1c1Jlc3BvbnNlEioKB3BlbmRpbmcYASADKAsyGS5wdWJsaXNoLnYxLlBlbmRpbmdFbnRpdHkSNAoQYnJlYWtpbmdfY2hhbmdlcxgCIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UirAEKJlNjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXF1ZXN0EgoKAmlkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fdW5wdWJsaXNoX2F0IlsKJ1NjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIjsKLUNhbmNlbFNjaGVkdWxlZENvbnRleHREaW1lbnNpb25QdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCSJiCi5DYW5jZWxTY2hlZHVsZWRDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24inQEKI1NjaGVkdWxlUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXF1ZXN0Ei4KCnB1Ymxpc2hfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fdW5wdWJsaXNoX2F0ImIKJFNjaGVkdWxlUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXNwb25zZRI6Cg5wcm9maWxlX3NjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSIsCipDYW5jZWxTY2hlZHVsZWRQcm9maWxlU2NoZW1hUHVibGlzaFJlcXVlc3QiaQorQ2FuY2VsU2NoZWR1bGVkUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXNwb25zZRI6Cg5wcm9maWxlX3NjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSqXAQoRU2hhcmVSZXNvdXJjZVR5cGUSIwofU0hBUkVfUkVTT1VSQ0VfVFlQRV9VTlNQRUNJRklFRBAAEh4KGlNIQVJFX1JFU09VUkNFX1RZUEVfUkVDT1JEEAESHAoYU0hBUkVfUkVTT1VSQ0VfVFlQRV9GSUxFEAISHwobU0hBUkVfUkVTT1VSQ0VfVFlQRV9QUk9GSUxFEAMqhQEKD1NoYXJlUGVybWlzc2lvbhIgChxTSEFSRV9QRVJNSVNTSU9OX1VOU1BFQ0lGSUVEEAASGQoVU0hBUkVfUEVSTUlTU0lPTl9WSUVXEAESGQoVU0hBUkVfUEVSTUlTU0lPTl9FRElUEAISGgoWU0hBUkVfUEVSTUlTU0lPTl9BRE1JThADKnsKC1NoYXJlU3RhdHVzEhwKGFNIQVJFX1NUQVRVU19VTlNQRUNJRklFRBAAEhgKFFNIQVJFX1NUQVRVU19QRU5ESU5HEAESGQoVU0hBUkVfU1RBVFVTX0FDQ0VQVEVEEAISGQoVU0hBUkVfU1RBVFVTX0RFQ0xJTkVEEAMqrQEKHUN1c3RvbWVyUHJvZmlsZUxvb2t1cEF1ZGllbmNlEjAKLENVU1RPTUVSX1BST0ZJTEVfTE9PS1VQX0FVRElFTkNFX1VOU1BFQ0lGSUVEEAASLQopQ1VTVE9NRVJfUFJPRklMRV9MT09LVVBfQVVESUVOQ0VfT1BFUkFUT1IQARIrCidDVVNUT01FUl9QUk9GSUxFX0xPT0tVUF9BVURJRU5DRV9QVUJMSUMQAjKwTQoPU2V0dGluZ3NTZXJ2aWNlElAKC0dldFNldHRpbmdzEh8uc2V0dGluZ3MudjEuR2V0U2V0dGluZ3NSZXF1ZXN0GiAuc2V0dGluZ3MudjEuR2V0U2V0dGluZ3NSZXNwb25zZRJWCg1VcGRhdGVTZXR0aW5nEiEuc2V0dGluZ3MudjEuVXBkYXRlU2V0dGluZ1JlcXVlc3QaIi5zZXR0aW5ncy52MS5VcGRhdGVTZXR0aW5nUmVzcG9uc2USVgoNRGVsZXRlU2V0dGluZxIhLnNldHRpbmdzLnYxLkRlbGV0ZVNldHRpbmdSZXF1ZXN0GiIuc2V0dGluZ3MudjEuRGVsZXRlU2V0dGluZ1Jlc3BvbnNlEncKGERlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeRIsLnNldHRpbmdzLnYxLkRlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeVJlcXVlc3QaLS5zZXR0aW5ncy52MS5EZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnlSZXNwb25zZRJcCg9CdWxrU2V0U2V0dGluZ3MSIy5zZXR0aW5ncy52MS5CdWxrU2V0U2V0dGluZ3NSZXF1ZXN0GiQuc2V0dGluZ3MudjEuQnVsa1NldFNldHRpbmdzUmVzcG9uc2USVgoNTGlzdEF1ZGl0TG9ncxIhLnNldHRpbmdzLnYxLkxpc3RBdWRpdExvZ3NSZXF1ZXN0GiIuc2V0dGluZ3MudjEuTGlzdEF1ZGl0TG9nc1Jlc3BvbnNlEk0KCkNyZWF0ZU5vdGUSHi5zZXR0aW5ncy52MS5DcmVhdGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLkNyZWF0ZU5vdGVSZXNwb25zZRJECgdHZXROb3RlEhsuc2V0dGluZ3MudjEuR2V0Tm90ZVJlcXVlc3QaHC5zZXR0aW5ncy52MS5HZXROb3RlUmVzcG9uc2USSgoJTGlzdE5vdGVzEh0uc2V0dGluZ3MudjEuTGlzdE5vdGVzUmVxdWVzdBoeLnNldHRpbmdzLnYxLkxpc3ROb3Rlc1Jlc3BvbnNlEk0KClVwZGF0ZU5vdGUSHi5zZXR0aW5ncy52MS5VcGRhdGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLlVwZGF0ZU5vdGVSZXNwb25zZRJNCgpEZWxldGVOb3RlEh4uc2V0dGluZ3MudjEuRGVsZXRlTm90ZVJlcXVlc3QaHy5zZXR0aW5ncy52MS5EZWxldGVOb3RlUmVzcG9uc2USUAoLUmVzb2x2ZU5vdGUSHy5zZXR0aW5ncy52MS5SZXNvbHZlTm90ZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5SZXNvbHZlTm90ZVJlc3BvbnNlElYKDVVucmVzb2x2ZU5vdGUSIS5zZXR0aW5ncy52MS5VbnJlc29sdmVOb3RlUmVxdWVzdBoiLnNldHRpbmdzLnYxLlVucmVzb2x2ZU5vdGVSZXNwb25zZRJQCgtTZWFyY2hOb3RlcxIfLnNldHRpbmdzLnYxLlNlYXJjaE5vdGVzUmVxdWVzdBogLnNldHRpbmdzLnYxLlNlYXJjaE5vdGVzUmVzcG9uc2USWQoOTGlzdE15TWVudGlvbnMSIi5zZXR0aW5ncy52MS5MaXN0TXlNZW50aW9uc1JlcXVlc3QaIy5zZXR0aW5ncy52MS5MaXN0TXlNZW50aW9uc1Jlc3BvbnNlEmgKE1VwZGF0ZU1lbnRpb25TdGF0dXMSJy5zZXR0aW5ncy52MS5VcGRhdGVNZW50aW9uU3RhdHVzUmVxdWVzdBooLnNldHRpbmdzLnYxLlVwZGF0ZU1lbnRpb25TdGF0dXNSZXNwb25zZRJfChBNYXJrTWVudGlvbnNTZWVuEiQuc2V0dGluZ3MudjEuTWFya01lbnRpb25zU2VlblJlcXVlc3QaJS5zZXR0aW5ncy52MS5NYXJrTWVudGlvbnNTZWVuUmVzcG9uc2USUAoLTGlzdExvY2FsZXMSHy5zZXR0aW5ncy52MS5MaXN0TG9jYWxlc1JlcXVlc3QaIC5zZXR0aW5ncy52MS5MaXN0TG9jYWxlc1Jlc3BvbnNlEkoKCUdldExvY2FsZRIdLnNldHRpbmdzLnYxLkdldExvY2FsZVJlcXVlc3QaHi5zZXR0aW5ncy52MS5HZXRMb2NhbGVSZXNwb25zZRJfChBHZXREZWZhdWx0TG9jYWxlEiQuc2V0dGluZ3MudjEuR2V0RGVmYXVsdExvY2FsZVJlcXVlc3QaJS5zZXR0aW5ncy52MS5HZXREZWZhdWx0TG9jYWxlUmVzcG9uc2USXAoPR2V0TG9jYWxlQnlDb2RlEiMuc2V0dGluZ3MudjEuR2V0TG9jYWxlQnlDb2RlUmVxdWVzdBokLnNldHRpbmdzLnYxLkdldExvY2FsZUJ5Q29kZVJlc3BvbnNlElMKDENyZWF0ZUxvY2FsZRIgLnNldHRpbmdzLnYxLkNyZWF0ZUxvY2FsZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5DcmVhdGVMb2NhbGVSZXNwb25zZRJTCgxVcGRhdGVMb2NhbGUSIC5zZXR0aW5ncy52MS5VcGRhdGVMb2NhbGVSZXF1ZXN0GiEuc2V0dGluZ3MudjEuVXBkYXRlTG9jYWxlUmVzcG9uc2USUwoMRGVsZXRlTG9jYWxlEiAuc2V0dGluZ3MudjEuRGVsZXRlTG9jYWxlUmVxdWVzdBohLnNldHRpbmdzLnYxLkRlbGV0ZUxvY2FsZVJlc3BvbnNlEmIKEUdldE5hdlByZWZlcmVuY2VzEiUuc2V0dGluZ3MudjEuR2V0TmF2UHJlZmVyZW5jZXNSZXF1ZXN0GiYuc2V0dGluZ3MudjEuR2V0TmF2UHJlZmVyZW5jZXNSZXNwb25zZRJrChRVcGRhdGVOYXZQcmVmZXJlbmNlcxIoLnNldHRpbmdzLnYxLlVwZGF0ZU5hdlByZWZlcmVuY2VzUmVxdWVzdBopLnNldHRpbmdzLnYxLlVwZGF0ZU5hdlByZWZlcmVuY2VzUmVzcG9uc2USZQoSTGlzdFJlY2VudGx5T3BlbmVkEiYuc2V0dGluZ3MudjEuTGlzdFJlY2VudGx5T3BlbmVkUmVxdWVzdBonLnNldHRpbmdzLnYxLkxpc3RSZWNlbnRseU9wZW5lZFJlc3BvbnNlEmgKE1RyYWNrUmVjZW50bHlPcGVuZWQSJy5zZXR0aW5ncy52MS5UcmFja1JlY2VudGx5T3BlbmVkUmVxdWVzdBooLnNldHRpbmdzLnYxLlRyYWNrUmVjZW50bHlPcGVuZWRSZXNwb25zZRJrChRSZW1vdmVSZWNlbnRseU9wZW5lZBIoLnNldHRpbmdzLnYxLlJlbW92ZVJlY2VudGx5T3BlbmVkUmVxdWVzdBopLnNldHRpbmdzLnYxLlJlbW92ZVJlY2VudGx5T3BlbmVkUmVzcG9uc2USaAoTQ2xlYXJSZWNlbnRseU9wZW5lZBInLnNldHRpbmdzLnYxLkNsZWFyUmVjZW50bHlPcGVuZWRSZXF1ZXN0Giguc2V0dGluZ3MudjEuQ2xlYXJSZWNlbnRseU9wZW5lZFJlc3BvbnNlElAKC0NyZWF0ZVNoYXJlEh8uc2V0dGluZ3MudjEuQ3JlYXRlU2hhcmVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuQ3JlYXRlU2hhcmVSZXNwb25zZRJHCghHZXRTaGFyZRIcLnNldHRpbmdzLnYxLkdldFNoYXJlUmVxdWVzdBodLnNldHRpbmdzLnYxLkdldFNoYXJlUmVzcG9uc2USTQoKTGlzdFNoYXJlcxIeLnNldHRpbmdzLnYxLkxpc3RTaGFyZXNSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuTGlzdFNoYXJlc1Jlc3BvbnNlElAKC1VwZGF0ZVNoYXJlEh8uc2V0dGluZ3MudjEuVXBkYXRlU2hhcmVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuVXBkYXRlU2hhcmVSZXNwb25zZRJQCgtSZXZva2VTaGFyZRIfLnNldHRpbmdzLnYxLlJldm9rZVNoYXJlUmVxdWVzdBogLnNldHRpbmdzLnYxLlJldm9rZVNoYXJlUmVzcG9uc2USUAoLQWNjZXB0U2hhcmUSHy5zZXR0aW5ncy52MS5BY2NlcHRTaGFyZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5BY2NlcHRTaGFyZVJlc3BvbnNlElMKDERlY2xpbmVTaGFyZRIgLnNldHRpbmdzLnYxLkRlY2xpbmVTaGFyZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5EZWNsaW5lU2hhcmVSZXNwb25zZRJuChVMaXN0Q29udGV4dERpbWVuc2lvbnMSKS5zZXR0aW5ncy52MS5MaXN0Q29udGV4dERpbWVuc2lvbnNSZXF1ZXN0Giouc2V0dGluZ3MudjEuTGlzdENvbnRleHREaW1lbnNpb25zUmVzcG9uc2USaAoTR2V0Q29udGV4dERpbWVuc2lvbhInLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25SZXF1ZXN0Giguc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblJlc3BvbnNlEncKGEdldENvbnRleHREaW1lbnNpb25CeUtleRIsLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25CeUtleVJlcXVlc3QaLS5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uQnlLZXlSZXNwb25zZRJxChZDcmVhdGVDb250ZXh0RGltZW5zaW9uEiouc2V0dGluZ3MudjEuQ3JlYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QaKy5zZXR0aW5ncy52MS5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2UScQoWVXBkYXRlQ29udGV4dERpbWVuc2lvbhIqLnNldHRpbmdzLnYxLlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0Gisuc2V0dGluZ3MudjEuVXBkYXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEnEKFkRlbGV0ZUNvbnRleHREaW1lbnNpb24SKi5zZXR0aW5ncy52MS5EZWxldGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBorLnNldHRpbmdzLnYxLkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRJ6ChlHZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzEi0uc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1JlcXVlc3QaLi5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVzcG9uc2USdwoYR2V0Q3VzdG9tZXJQcm9maWxlU2NoZW1hEiwuc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJQcm9maWxlU2NoZW1hUmVxdWVzdBotLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEmUKEkdldEN1c3RvbWVyUHJvZmlsZRImLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QaJy5zZXR0aW5ncy52MS5HZXRDdXN0b21lclByb2ZpbGVSZXNwb25zZRJuChVDcmVhdGVDdXN0b21lclByb2ZpbGUSKS5zZXR0aW5ncy52MS5DcmVhdGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0Giouc2V0dGluZ3MudjEuQ3JlYXRlQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USbgoVVXBkYXRlQ3VzdG9tZXJQcm9maWxlEikuc2V0dGluZ3MudjEuVXBkYXRlQ3VzdG9tZXJQcm9maWxlUmVxdWVzdBoqLnNldHRpbmdzLnYxLlVwZGF0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEoABChtVcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWESLy5zZXR0aW5ncy52MS5VcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0GjAuc2V0dGluZ3MudjEuVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hUmVzcG9uc2UScQoWU2VhcmNoQ3VzdG9tZXJQcm9maWxlcxIqLnNldHRpbmdzLnYxLlNlYXJjaEN1c3RvbWVyUHJvZmlsZXNSZXF1ZXN0Gisuc2V0dGluZ3MudjEuU2VhcmNoQ3VzdG9tZXJQcm9maWxlc1Jlc3BvbnNlEm4KFUxvb2t1cEN1c3RvbWVyUHJvZmlsZRIpLnNldHRpbmdzLnYxLkxvb2t1cEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QaKi5zZXR0aW5ncy52MS5Mb29rdXBDdXN0b21lclByb2ZpbGVSZXNwb25zZRJuChVEZWxldGVDdXN0b21lclByb2ZpbGUSKS5zZXR0aW5ncy52MS5EZWxldGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0Giouc2V0dGluZ3MudjEuRGVsZXRlQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USjAEKH0dldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXMSMy5zZXR0aW5ncy52MS5HZXRDdXN0b21lclJlc29sdXRpb25BdHRyaWJ1dGVzUmVxdWVzdBo0LnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXNSZXNwb25zZRJfChBHZXRFZGl0b3JDb25maWdzEiQuc2V0dGluZ3MudjEuR2V0RWRpdG9yQ29uZmlnc1JlcXVlc3QaJS5zZXR0aW5ncy52MS5HZXRFZGl0b3JDb25maWdzUmVzcG9uc2USZQoSTGlzdFZhcmlhbnRDYXRhbG9nEiYuc2V0dGluZ3MudjEuTGlzdFZhcmlhbnRDYXRhbG9nUmVxdWVzdBonLnNldHRpbmdzLnYxLkxpc3RWYXJpYW50Q2F0YWxvZ1Jlc3BvbnNlEnEKFkdldFZhcmlhbnRDYXRhbG9nRW50cnkSKi5zZXR0aW5ncy52MS5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBorLnNldHRpbmdzLnYxLkdldFZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRJ6ChlDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5Ei0uc2V0dGluZ3MudjEuQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaLi5zZXR0aW5ncy52MS5DcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USegoZVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeRItLnNldHRpbmdzLnYxLlVwZGF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEnoKGURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnkSLS5zZXR0aW5ncy52MS5EZWxldGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBouLnNldHRpbmdzLnYxLkRlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRKGAQodR2V0RGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnkSMS5zZXR0aW5ncy52MS5HZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaMi5zZXR0aW5ncy52MS5HZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEo8BCiBFbnN1cmVEZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeRI0LnNldHRpbmdzLnYxLkVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBo1LnNldHRpbmdzLnYxLkVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USXwoQR2V0UHJvamVjdFNjaGVtYRIkLnNldHRpbmdzLnYxLkdldFByb2plY3RTY2hlbWFSZXF1ZXN0GiUuc2V0dGluZ3MudjEuR2V0UHJvamVjdFNjaGVtYVJlc3BvbnNlEnQKF1B1Ymxpc2hDb250ZXh0RGltZW5zaW9uEisuc2V0dGluZ3MudjEuUHVibGlzaENvbnRleHREaW1lbnNpb25SZXF1ZXN0Giwuc2V0dGluZ3MudjEuUHVibGlzaENvbnRleHREaW1lbnNpb25SZXNwb25zZRJ6ChlVbnB1Ymxpc2hDb250ZXh0RGltZW5zaW9uEi0uc2V0dGluZ3MudjEuVW5wdWJsaXNoQ29udGV4dERpbWVuc2lvblJlcXVlc3QaLi5zZXR0aW5ncy52MS5VbnB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USjwEKIEdldENvbnRleHREaW1lbnNpb25QdWJsaXNoU3RhdHVzEjQuc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblB1Ymxpc2hTdGF0dXNSZXF1ZXN0GjUuc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblB1Ymxpc2hTdGF0dXNSZXNwb25zZRKMAQofU2NoZWR1bGVDb250ZXh0RGltZW5zaW9uUHVibGlzaBIzLnNldHRpbmdzLnYxLlNjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXF1ZXN0GjQuc2V0dGluZ3MudjEuU2NoZWR1bGVDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlc3BvbnNlEqEBCiZDYW5jZWxTY2hlZHVsZWRDb250ZXh0RGltZW5zaW9uUHVibGlzaBI6LnNldHRpbmdzLnYxLkNhbmNlbFNjaGVkdWxlZENvbnRleHREaW1lbnNpb25QdWJsaXNoUmVxdWVzdBo7LnNldHRpbmdzLnYxLkNhbmNlbFNjaGVkdWxlZENvbnRleHREaW1lbnNpb25QdWJsaXNoUmVzcG9uc2USfQoaR2V0Q29udGV4dERpbWVuc2lvblZlcnNpb24SLi5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlcXVlc3QaLy5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlc3BvbnNlEoMBChxMaXN0Q29udGV4dERpbWVuc2lvblZlcnNpb25zEjAuc2V0dGluZ3MudjEuTGlzdENvbnRleHREaW1lbnNpb25WZXJzaW9uc1JlcXVlc3QaMS5zZXR0aW5ncy52MS5MaXN0Q29udGV4dERpbWVuc2lvblZlcnNpb25zUmVzcG9uc2USiQEKHlJlc3RvcmVDb250ZXh0RGltZW5zaW9uVmVyc2lvbhIyLnNldHRpbmdzLnYxLlJlc3RvcmVDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlcXVlc3QaMy5zZXR0aW5ncy52MS5SZXN0b3JlQ29udGV4dERpbWVuc2lvblZlcnNpb25SZXNwb25zZRJ0ChdHZXRQcm9maWxlU2NoZW1hVmVyc2lvbhIrLnNldHRpbmdzLnYxLkdldFByb2ZpbGVTY2hlbWFWZXJzaW9uUmVxdWVzdBosLnNldHRpbmdzLnYxLkdldFByb2ZpbGVTY2hlbWFWZXJzaW9uUmVzcG9uc2USegoZTGlzdFByb2ZpbGVTY2hlbWFWZXJzaW9ucxItLnNldHRpbmdzLnYxLkxpc3RQcm9maWxlU2NoZW1hVmVyc2lvbnNSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuTGlzdFByb2ZpbGVTY2hlbWFWZXJzaW9uc1Jlc3BvbnNlEoABChtSZXN0b3JlUHJvZmlsZVNjaGVtYVZlcnNpb24SLy5zZXR0aW5ncy52MS5SZXN0b3JlUHJvZmlsZVNjaGVtYVZlcnNpb25SZXF1ZXN0GjAuc2V0dGluZ3MudjEuUmVzdG9yZVByb2ZpbGVTY2hlbWFWZXJzaW9uUmVzcG9uc2USawoUUHVibGlzaFByb2ZpbGVTY2hlbWESKC5zZXR0aW5ncy52MS5QdWJsaXNoUHJvZmlsZVNjaGVtYVJlcXVlc3QaKS5zZXR0aW5ncy52MS5QdWJsaXNoUHJvZmlsZVNjaGVtYVJlc3BvbnNlEnEKFlVucHVibGlzaFByb2ZpbGVTY2hlbWESKi5zZXR0aW5ncy52MS5VbnB1Ymxpc2hQcm9maWxlU2NoZW1hUmVxdWVzdBorLnNldHRpbmdzLnYxLlVucHVibGlzaFByb2ZpbGVTY2hlbWFSZXNwb25zZRKGAQodR2V0UHJvZmlsZVNjaGVtYVB1Ymxpc2hTdGF0dXMSMS5zZXR0aW5ncy52MS5HZXRQcm9maWxlU2NoZW1hUHVibGlzaFN0YXR1c1JlcXVlc3QaMi5zZXR0aW5ncy52MS5HZXRQcm9maWxlU2NoZW1hUHVibGlzaFN0YXR1c1Jlc3BvbnNlEoMBChxTY2hlZHVsZVByb2ZpbGVTY2hlbWFQdWJsaXNoEjAuc2V0dGluZ3MudjEuU2NoZWR1bGVQcm9maWxlU2NoZW1hUHVibGlzaFJlcXVlc3QaMS5zZXR0aW5ncy52MS5TY2hlZHVsZVByb2ZpbGVTY2hlbWFQdWJsaXNoUmVzcG9uc2USmAEKI0NhbmNlbFNjaGVkdWxlZFByb2ZpbGVTY2hlbWFQdWJsaXNoEjcuc2V0dGluZ3MudjEuQ2FuY2VsU2NoZWR1bGVkUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXF1ZXN0Gjguc2V0dGluZ3MudjEuQ2FuY2VsU2NoZWR1bGVkUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXNwb25zZRJ0ChdHZXRQcm9qZWN0UHVibGlzaFN0YXR1cxIrLnNldHRpbmdzLnYxLkdldFByb2plY3RQdWJsaXNoU3RhdHVzUmVxdWVzdBosLnNldHRpbmdzLnYxLkdldFByb2plY3RQdWJsaXNoU3RhdHVzUmVzcG9uc2USawoUUHVibGlzaFByb2plY3RTY2hlbWESKC5zZXR0aW5ncy52MS5QdWJsaXNoUHJvamVjdFNjaGVtYVJlcXVlc3QaKS5zZXR0aW5ncy52MS5QdWJsaXNoUHJvamVjdFNjaGVtYVJlc3BvbnNlElwKD0dldERlc2lnblRva2VucxIjLnNldHRpbmdzLnYxLkdldERlc2lnblRva2Vuc1JlcXVlc3QaJC5zZXR0aW5ncy52MS5HZXREZXNpZ25Ub2tlbnNSZXNwb25zZRJlChJVcGRhdGVEZXNpZ25Ub2tlbnMSJi5zZXR0aW5ncy52MS5VcGRhdGVEZXNpZ25Ub2tlbnNSZXF1ZXN0Gicuc2V0dGluZ3MudjEuVXBkYXRlRGVzaWduVG9rZW5zUmVzcG9uc2USaAoTUHVibGlzaERlc2lnblRva2VucxInLnNldHRpbmdzLnYxLlB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXF1ZXN0Giguc2V0dGluZ3MudjEuUHVibGlzaERlc2lnblRva2Vuc1Jlc3BvbnNlEm4KFVVucHVibGlzaERlc2lnblRva2VucxIpLnNldHRpbmdzLnYxLlVucHVibGlzaERlc2lnblRva2Vuc1JlcXVlc3QaKi5zZXR0aW5ncy52MS5VbnB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXNwb25zZRKDAQocR2V0RGVzaWduVG9rZW5zUHVibGlzaFN0YXR1cxIwLnNldHRpbmdzLnYxLkdldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXNSZXF1ZXN0GjEuc2V0dGluZ3MudjEuR2V0RGVzaWduVG9rZW5zUHVibGlzaFN0YXR1c1Jlc3BvbnNlEoABChtTY2hlZHVsZURlc2lnblRva2Vuc1B1Ymxpc2gSLy5zZXR0aW5ncy52MS5TY2hlZHVsZURlc2lnblRva2Vuc1B1Ymxpc2hSZXF1ZXN0GjAuc2V0dGluZ3MudjEuU2NoZWR1bGVEZXNpZ25Ub2tlbnNQdWJsaXNoUmVzcG9uc2USlQEKIkNhbmNlbFNjaGVkdWxlZERlc2lnblRva2Vuc1B1Ymxpc2gSNi5zZXR0aW5ncy52MS5DYW5jZWxTY2hlZHVsZWREZXNpZ25Ub2tlbnNQdWJsaXNoUmVxdWVzdBo3LnNldHRpbmdzLnYxLkNhbmNlbFNjaGVkdWxlZERlc2lnblRva2Vuc1B1Ymxpc2hSZXNwb25zZRJ9ChpDb3VudERlc2lnblRva2VuUmVmZXJlbmNlcxIuLnNldHRpbmdzLnYxLkNvdW50RGVzaWduVG9rZW5SZWZlcmVuY2VzUmVxdWVzdBovLnNldHRpbmdzLnYxLkNvdW50RGVzaWduVG9rZW5SZWZlcmVuY2VzUmVzcG9uc2USbgoVR2V0RGVzaWduVG9rZW5WZXJzaW9uEikuc2V0dGluZ3MudjEuR2V0RGVzaWduVG9rZW5WZXJzaW9uUmVxdWVzdBoqLnNldHRpbmdzLnYxLkdldERlc2lnblRva2VuVmVyc2lvblJlc3BvbnNlEnQKF0xpc3REZXNpZ25Ub2tlblZlcnNpb25zEisuc2V0dGluZ3MudjEuTGlzdERlc2lnblRva2VuVmVyc2lvbnNSZXF1ZXN0Giwuc2V0dGluZ3MudjEuTGlzdERlc2lnblRva2VuVmVyc2lvbnNSZXNwb25zZRJ6ChlSZXN0b3JlRGVzaWduVG9rZW5WZXJzaW9uEi0uc2V0dGluZ3MudjEuUmVzdG9yZURlc2lnblRva2VuVmVyc2lvblJlcXVlc3QaLi5zZXR0aW5ncy52MS5SZXN0b3JlRGVzaWduVG9rZW5WZXJzaW9uUmVzcG9uc2VCPVo7Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL3NldHRpbmdzL3YxO3NldHRpbmdzdjFiBnByb3RvMw", [file_google_protobuf_struct6, file_google_protobuf_timestamp7, file_expressions_v1_expressions, file_publish_v1_publish, file_common_v1_pagination, file_common_v1_access]);
699
- var SettingSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 0);
700
- var NoteSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 2);
701
- var GetSettingsRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 4);
702
- var UpdateSettingRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 6);
703
- var CreateNoteRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 10);
704
- var GetNoteRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 12);
705
- var ListNotesRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 14);
706
- var UpdateNoteRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 16);
707
- var DeleteNoteRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 18);
708
- var ListMyMentionsRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 23);
709
- var UpdateMentionStatusRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 25);
710
- var LocaleSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 41);
711
- var ListLocalesRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 42);
712
- var GetLocaleRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 44);
713
- var CreateLocaleRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 46);
714
- var UpdateLocaleRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 48);
715
- var DeleteLocaleRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 50);
716
- var GetNavPreferencesRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 53);
717
- var UpdateNavPreferencesRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 55);
718
- var ListRecentlyOpenedRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 58);
719
- var TrackRecentlyOpenedRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 60);
720
- var RemoveRecentlyOpenedRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 62);
721
- var ClearRecentlyOpenedRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 64);
722
- var ListContextDimensionsRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 68);
723
- var GetContextDimensionRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 70);
724
- var CreateContextDimensionRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 72);
725
- var UpdateContextDimensionRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 74);
726
- var DeleteContextDimensionRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 76);
727
- var GetContextDimensionValuesRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 78);
728
- var CustomerProfileFieldSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 80);
729
- var CustomerProfileSchemaSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 82);
730
- var GetCustomerProfileSchemaRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 83);
731
- var VariantCatalogEntrySchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 85);
732
- var ListVariantCatalogRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 86);
733
- var GetVariantCatalogEntryRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 88);
734
- var CreateVariantCatalogEntryRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 90);
735
- var UpdateVariantCatalogEntryRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 92);
736
- var DeleteVariantCatalogEntryRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 94);
737
- var GetCustomerProfileRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 96);
738
- var CreateCustomerProfileRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 98);
739
- var UpdateCustomerProfileRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 100);
740
- var UpdateCustomerProfileSchemaRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 102);
741
- var GetCustomerResolutionAttributesRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 112);
742
- var GetEditorConfigsRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 116);
743
- var GetDefaultLocaleRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 129);
744
- var GetLocaleByCodeRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 131);
745
- var DeleteSettingRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 135);
746
- var GetDesignTokensRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 156);
747
- var UpdateDesignTokensRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 158);
748
- var PublishDesignTokensRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 160);
749
- var UnpublishDesignTokensRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 162);
750
- var GetDesignTokensPublishStatusRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 164);
751
- var PublishProfileSchemaRequestSchema = /* @__PURE__ */ messageDesc10(file_settings_v1_settings, 200);
752
- var CustomerProfileLookupAudienceSchema = /* @__PURE__ */ enumDesc6(file_settings_v1_settings, 3);
753
- var CustomerProfileLookupAudience = /* @__PURE__ */ tsEnum6(CustomerProfileLookupAudienceSchema);
754
- var SettingsService = /* @__PURE__ */ serviceDesc6(file_settings_v1_settings, 0);
725
+ var file_settings_v1_settings = /* @__PURE__ */ fileDesc11("ChpzZXR0aW5ncy92MS9zZXR0aW5ncy5wcm90bxILc2V0dGluZ3MudjEiggMKB1NldHRpbmcSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEhAKCGNhdGVnb3J5GAMgASgJEisKBXZhbHVlGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhkKDGRpc3BsYXlfbmFtZRgFIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAYgASgJSAKIAQESEQoJZGF0YV90eXBlGAcgASgJEhEKCWlzX3B1YmxpYxgIIAEoCBIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQggKBl92YWx1ZUIPCg1fZGlzcGxheV9uYW1lQg4KDF9kZXNjcmlwdGlvbkINCgtfcHJvamVjdF9pZCKrBAoIQXVkaXRMb2cSCgoCaWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgd1c2VyX2lkGAMgASgJSACIAQESFgoJdGVuYW50X2lkGAQgASgJSAGIAQESFwoKcHJvamVjdF9pZBgFIAEoCUgCiAEBEg4KBmFjdGlvbhgGIAEoCRIVCg1yZXNvdXJjZV90eXBlGAcgASgJEhgKC3Jlc291cmNlX2lkGAggASgJSAOIAQESLAoGYmVmb3JlGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEisKBWFmdGVyGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEhcKCmlwX2FkZHJlc3MYDCABKAlIB4gBARIXCgp1c2VyX2FnZW50GA0gASgJSAiIAQESFwoKcmVxdWVzdF9pZBgOIAEoCUgJiAEBQgoKCF91c2VyX2lkQgwKCl90ZW5hbnRfaWRCDQoLX3Byb2plY3RfaWRCDgoMX3Jlc291cmNlX2lkQgkKB19iZWZvcmVCCAoGX2FmdGVyQgsKCV9tZXRhZGF0YUINCgtfaXBfYWRkcmVzc0INCgtfdXNlcl9hZ2VudEINCgtfcmVxdWVzdF9pZCKdBQoETm90ZRIKCgJpZBgBIAEoCRITCgtlbnRpdHlfdHlwZRgCIAEoCRIRCgllbnRpdHlfaWQYAyABKAkSHwoSZW50aXR5X25hdHVyYWxfa2V5GAQgASgJSACIAQESFwoKdmVyc2lvbl9pZBgFIAEoCUgBiAEBEigKB2NvbnRlbnQYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eh8KEmNvbnRlbnRfcGxhaW5fdGV4dBgHIAEoCUgCiAEBEhsKDnBhcmVudF9ub3RlX2lkGAogASgJSAOIAQESGwoOdGhyZWFkX3Jvb3RfaWQYCyABKAlIBIgBARITCgtpc19yZXNvbHZlZBgPIAEoCBI0CgtyZXNvbHZlZF9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIYCgtyZXNvbHZlZF9ieRgRIAEoCUgGiAEBEi4KCG1ldGFkYXRhGBQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhEKCXRlbmFudF9pZBgeIAEoCRIXCgpwcm9qZWN0X2lkGB8gASgJSAiIAQESEgoKY3JlYXRlZF9ieRgoIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIVChNfZW50aXR5X25hdHVyYWxfa2V5Qg0KC192ZXJzaW9uX2lkQhUKE19jb250ZW50X3BsYWluX3RleHRCEQoPX3BhcmVudF9ub3RlX2lkQhEKD190aHJlYWRfcm9vdF9pZEIOCgxfcmVzb2x2ZWRfYXRCDgoMX3Jlc29sdmVkX2J5QgsKCV9tZXRhZGF0YUINCgtfcHJvamVjdF9pZCLkBQoFU2hhcmUSCgoCaWQYASABKAkSNQoNcmVzb3VyY2VfdHlwZRgCIAEoDjIeLnNldHRpbmdzLnYxLlNoYXJlUmVzb3VyY2VUeXBlEhYKCXJlY29yZF9pZBgDIAEoCUgAiAEBEhQKB2ZpbGVfaWQYBCABKAlIAYgBARIWCgltb2RlbF9rZXkYBSABKAlIAogBARIfChdzaGFyZWRfd2l0aF9jdXN0b21lcl9pZBgGIAEoCRIwCgpwZXJtaXNzaW9uGAcgASgOMhwuc2V0dGluZ3MudjEuU2hhcmVQZXJtaXNzaW9uEiAKE3Byb2ZpbGVfY3VzdG9tZXJfaWQYCCABKAlIA4gBARIoCgZzdGF0dXMYCiABKA4yGC5zZXR0aW5ncy52MS5TaGFyZVN0YXR1cxI0CgthY2NlcHRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIzCgpleHBpcmVzX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEhcKCmNyZWF0ZWRfYnkYHiABKAlIBogBARIXCgpyZXZva2VkX2J5GB8gASgJSAeIAQESMwoKcmV2b2tlZF9hdBggIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBICIgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIMCgpfcmVjb3JkX2lkQgoKCF9maWxlX2lkQgwKCl9tb2RlbF9rZXlCFgoUX3Byb2ZpbGVfY3VzdG9tZXJfaWRCDgoMX2FjY2VwdGVkX2F0Qg0KC19leHBpcmVzX2F0Qg0KC19jcmVhdGVkX2J5Qg0KC19yZXZva2VkX2J5Qg0KC19yZXZva2VkX2F0IlIKEkdldFNldHRpbmdzUmVxdWVzdBIVCghjYXRlZ29yeRgBIAEoCUgAiAEBEhAKA2tleRgCIAEoCUgBiAEBQgsKCV9jYXRlZ29yeUIGCgRfa2V5Ij0KE0dldFNldHRpbmdzUmVzcG9uc2USJgoIc2V0dGluZ3MYASADKAsyFC5zZXR0aW5ncy52MS5TZXR0aW5nIksKFFVwZGF0ZVNldHRpbmdSZXF1ZXN0EgsKA2tleRgBIAEoCRImCgV2YWx1ZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiPgoVVXBkYXRlU2V0dGluZ1Jlc3BvbnNlEiUKB3NldHRpbmcYASABKAsyFC5zZXR0aW5ncy52MS5TZXR0aW5nIsUBChRMaXN0QXVkaXRMb2dzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QilwEKFUxpc3RBdWRpdExvZ3NSZXNwb25zZRIjCgRsb2dzGAEgAygLMhUuc2V0dGluZ3MudjEuQXVkaXRMb2cSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIpUBChFDcmVhdGVOb3RlUmVxdWVzdBITCgtlbnRpdHlfdHlwZRgBIAEoCRIRCgllbnRpdHlfaWQYAiABKAkSKAoHY29udGVudBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGwoOcGFyZW50X25vdGVfaWQYBCABKAlIAIgBAUIRCg9fcGFyZW50X25vdGVfaWQiNQoSQ3JlYXRlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIhwKDkdldE5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIjIKD0dldE5vdGVSZXNwb25zZRIfCgRub3RlGAEgASgLMhEuc2V0dGluZ3MudjEuTm90ZSLBAQoQTGlzdE5vdGVzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgEIAEoCUgBiAEBEhMKBmJlZm9yZRgFIAEoCUgCiAEBEhIKBWZpcnN0GAYgASgFSAOIAQESEQoEbGFzdBgHIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QikAEKEUxpc3ROb3Rlc1Jlc3BvbnNlEiAKBW5vdGVzGAEgAygLMhEuc2V0dGluZ3MudjEuTm90ZRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ihAEKEVVwZGF0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJEi0KB2NvbnRlbnQYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESGAoLaXNfcmVzb2x2ZWQYAyABKAhIAYgBAUIKCghfY29udGVudEIOCgxfaXNfcmVzb2x2ZWQiNQoSVXBkYXRlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIh8KEURlbGV0ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIiUKEkRlbGV0ZU5vdGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIqwFCgtOb3RlTWVudGlvbhIKCgJpZBgBIAEoCRIPCgdub3RlX2lkGAIgASgJEhkKEW1lbnRpb25lZF91c2VyX2lkGAMgASgJEg4KBnN0YXR1cxgEIAEoCRIwCgdzZWVuX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEjgKD2Fja25vd2xlZGdlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI1Cgxjb21wbGV0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESGwoOY29tcGxldGVkX25vdGUYCCABKAlIA4gBARI1CgxkaXNtaXNzZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESGwoOZGlzbWlzc19yZWFzb24YCiABKAlIBYgBARIxCghkdWVfZGF0ZRgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBARIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgHiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9zZWVuX2F0QhIKEF9hY2tub3dsZWRnZWRfYXRCDwoNX2NvbXBsZXRlZF9hdEIRCg9fY29tcGxldGVkX25vdGVCDwoNX2Rpc21pc3NlZF9hdEIRCg9fZGlzbWlzc19yZWFzb25CCwoJX2R1ZV9kYXRlQg0KC19wcm9qZWN0X2lkItoBChJNZW50aW9uV2l0aENvbnRleHQSKQoHbWVudGlvbhgBIAEoCzIYLnNldHRpbmdzLnYxLk5vdGVNZW50aW9uEh8KBG5vdGUYAiABKAsyES5zZXR0aW5ncy52MS5Ob3RlEhgKC2F1dGhvcl9uYW1lGAMgASgJSACIAQESGAoLZW50aXR5X3R5cGUYBCABKAlIAYgBARIWCgllbnRpdHlfaWQYBSABKAlIAogBAUIOCgxfYXV0aG9yX25hbWVCDgoMX2VudGl0eV90eXBlQgwKCl9lbnRpdHlfaWQiTwoNTWVudGlvbkNvdW50cxIPCgdwZW5kaW5nGAEgASgFEhAKCHBhc3RfZHVlGAIgASgFEhsKE2NvbXBsZXRlZF90aGlzX3dlZWsYAyABKAUixgEKFUxpc3RNeU1lbnRpb25zUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QizwEKFkxpc3RNeU1lbnRpb25zUmVzcG9uc2USLgoFaXRlbXMYASADKAsyHy5zZXR0aW5ncy52MS5NZW50aW9uV2l0aENvbnRleHQSDQoFdG90YWwYAiABKAUSKgoGY291bnRzGAMgASgLMhouc2V0dGluZ3MudjEuTWVudGlvbkNvdW50cxIrCglwYWdlX2luZm8YBCABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAUgAygJQgwKCl9wYWdlX2luZm8ioAEKGlVwZGF0ZU1lbnRpb25TdGF0dXNSZXF1ZXN0EhIKCm1lbnRpb25faWQYASABKAkSDgoGc3RhdHVzGAIgASgJEhsKDmNvbXBsZXRlZF9ub3RlGAMgASgJSACIAQESGwoOZGlzbWlzc19yZWFzb24YBCABKAlIAYgBAUIRCg9fY29tcGxldGVkX25vdGVCEQoPX2Rpc21pc3NfcmVhc29uIkgKG1VwZGF0ZU1lbnRpb25TdGF0dXNSZXNwb25zZRIpCgdtZW50aW9uGAEgASgLMhguc2V0dGluZ3MudjEuTm90ZU1lbnRpb24ilAIKEkNyZWF0ZVNoYXJlUmVxdWVzdBI1Cg1yZXNvdXJjZV90eXBlGAEgASgOMh4uc2V0dGluZ3MudjEuU2hhcmVSZXNvdXJjZVR5cGUSFgoJcmVjb3JkX2lkGAIgASgJSACIAQESFAoHZmlsZV9pZBgDIAEoCUgBiAEBEhMKC2N1c3RvbWVyX2lkGAQgASgJEjAKCnBlcm1pc3Npb24YBSABKA4yHC5zZXR0aW5ncy52MS5TaGFyZVBlcm1pc3Npb24SIAoTcHJvZmlsZV9jdXN0b21lcl9pZBgGIAEoCUgCiAEBQgwKCl9yZWNvcmRfaWRCCgoIX2ZpbGVfaWRCFgoUX3Byb2ZpbGVfY3VzdG9tZXJfaWQiOAoTQ3JlYXRlU2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIh0KD0dldFNoYXJlUmVxdWVzdBIKCgJpZBgBIAEoCSI1ChBHZXRTaGFyZVJlc3BvbnNlEiEKBXNoYXJlGAEgASgLMhIuc2V0dGluZ3MudjEuU2hhcmUiwgEKEUxpc3RTaGFyZXNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAQgASgJSAGIAQESEwoGYmVmb3JlGAUgASgJSAKIAQESEgoFZmlyc3QYBiABKAVIA4gBARIRCgRsYXN0GAcgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKTAQoSTGlzdFNoYXJlc1Jlc3BvbnNlEiIKBnNoYXJlcxgBIAMoCzISLnNldHRpbmdzLnYxLlNoYXJlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKgAQoSVXBkYXRlU2hhcmVSZXF1ZXN0EgoKAmlkGAEgASgJEjUKCnBlcm1pc3Npb24YAiABKA4yHC5zZXR0aW5ncy52MS5TaGFyZVBlcm1pc3Npb25IAIgBARItCgZzdGF0dXMYAyABKA4yGC5zZXR0aW5ncy52MS5TaGFyZVN0YXR1c0gBiAEBQg0KC19wZXJtaXNzaW9uQgkKB19zdGF0dXMiOAoTVXBkYXRlU2hhcmVSZXNwb25zZRIhCgVzaGFyZRgBIAEoCzISLnNldHRpbmdzLnYxLlNoYXJlIiAKElJldm9rZVNoYXJlUmVxdWVzdBIKCgJpZBgBIAEoCSImChNSZXZva2VTaGFyZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiIAoSQWNjZXB0U2hhcmVSZXF1ZXN0EgoKAmlkGAEgASgJIjgKE0FjY2VwdFNoYXJlUmVzcG9uc2USIQoFc2hhcmUYASABKAsyEi5zZXR0aW5ncy52MS5TaGFyZSIhChNEZWNsaW5lU2hhcmVSZXF1ZXN0EgoKAmlkGAEgASgJIjkKFERlY2xpbmVTaGFyZVJlc3BvbnNlEiEKBXNoYXJlGAEgASgLMhIuc2V0dGluZ3MudjEuU2hhcmUivwMKBkxvY2FsZRIKCgJpZBgBIAEoCRIOCgZsb2NhbGUYAiABKAkSFAoMZGlzcGxheV9uYW1lGAMgASgJEhgKC25hdGl2ZV9uYW1lGAQgASgJSACIAQESEgoKaXNfZGVmYXVsdBgFIAEoCBIRCglpc19hY3RpdmUYBiABKAgSDgoGaXNfcnRsGAcgASgIEhwKD2ZhbGxiYWNrX2xvY2FsZRgIIAEoCUgBiAEBEhkKEWZhbGxiYWNrX3ByaW9yaXR5GAkgASgFEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEhcKCmNyZWF0ZWRfYnkYHiABKAlIAogBARIXCgp1cGRhdGVkX2J5GB8gASgJSAOIAQESLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX25hdGl2ZV9uYW1lQhIKEF9mYWxsYmFja19sb2NhbGVCDQoLX2NyZWF0ZWRfYnlCDQoLX3VwZGF0ZWRfYnkiwwEKEkxpc3RMb2NhbGVzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QilgEKE0xpc3RMb2NhbGVzUmVzcG9uc2USJAoHbG9jYWxlcxgBIAMoCzITLnNldHRpbmdzLnYxLkxvY2FsZRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iHgoQR2V0TG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSI4ChFHZXRMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUi3wEKE0NyZWF0ZUxvY2FsZVJlcXVlc3QSDgoGbG9jYWxlGAEgASgJEhQKDGRpc3BsYXlfbmFtZRgCIAEoCRIYCgtuYXRpdmVfbmFtZRgDIAEoCUgAiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAYgBARITCgZpc19ydGwYBSABKAhIAogBARIcCg9mYWxsYmFja19sb2NhbGUYBiABKAlIA4gBAUIOCgxfbmF0aXZlX25hbWVCDQoLX2lzX2RlZmF1bHRCCQoHX2lzX3J0bEISChBfZmFsbGJhY2tfbG9jYWxlIjsKFENyZWF0ZUxvY2FsZVJlc3BvbnNlEiMKBmxvY2FsZRgBIAEoCzITLnNldHRpbmdzLnYxLkxvY2FsZSKXAgoTVXBkYXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCRIZCgxkaXNwbGF5X25hbWUYAiABKAlIAIgBARIYCgtuYXRpdmVfbmFtZRgDIAEoCUgBiAEBEhcKCmlzX2RlZmF1bHQYBCABKAhIAogBARIWCglpc19hY3RpdmUYBSABKAhIA4gBARITCgZpc19ydGwYBiABKAhIBIgBARIcCg9mYWxsYmFja19sb2NhbGUYByABKAlIBYgBAUIPCg1fZGlzcGxheV9uYW1lQg4KDF9uYXRpdmVfbmFtZUINCgtfaXNfZGVmYXVsdEIMCgpfaXNfYWN0aXZlQgkKB19pc19ydGxCEgoQX2ZhbGxiYWNrX2xvY2FsZSI7ChRVcGRhdGVMb2NhbGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUiIQoTRGVsZXRlTG9jYWxlUmVxdWVzdBIKCgJpZBgBIAEoCSInChREZWxldGVMb2NhbGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIpQBCg5OYXZQcmVmZXJlbmNlcxIZChFmYXZvcml0ZV9wcm9qZWN0cxgBIAMoCRIaChJmYXZvcml0ZV9uYXZfaXRlbXMYAiADKAkSGgoSY29sbGFwc2VkX3NlY3Rpb25zGAMgAygJEi8KDm5hdl9pdGVtX29yZGVyGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCIaChhHZXROYXZQcmVmZXJlbmNlc1JlcXVlc3QiTQoZR2V0TmF2UHJlZmVyZW5jZXNSZXNwb25zZRIwCgtwcmVmZXJlbmNlcxgBIAEoCzIbLnNldHRpbmdzLnYxLk5hdlByZWZlcmVuY2VzIvwBChtVcGRhdGVOYXZQcmVmZXJlbmNlc1JlcXVlc3QSNQoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlc0gAiAEBEh4KEXRvZ2dsZV9wcm9qZWN0X2lkGAIgASgJSAGIAQESHAoPdG9nZ2xlX25hdl9pdGVtGAMgASgJSAKIAQESGwoOdG9nZ2xlX3NlY3Rpb24YBCABKAlIA4gBAUIOCgxfcHJlZmVyZW5jZXNCFAoSX3RvZ2dsZV9wcm9qZWN0X2lkQhIKEF90b2dnbGVfbmF2X2l0ZW1CEQoPX3RvZ2dsZV9zZWN0aW9uIlAKHFVwZGF0ZU5hdlByZWZlcmVuY2VzUmVzcG9uc2USMAoLcHJlZmVyZW5jZXMYASABKAsyGy5zZXR0aW5ncy52MS5OYXZQcmVmZXJlbmNlcyJeChJSZWNlbnRseU9wZW5lZEl0ZW0SDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCRINCgVsYWJlbBgDIAEoCRIMCgRwYXRoGAQgASgJEhEKCXRpbWVzdGFtcBgFIAEoAyKTAQoZTGlzdFJlY2VudGx5T3BlbmVkUmVxdWVzdBISCgVhZnRlchgBIAEoCUgAiAEBEhMKBmJlZm9yZRgCIAEoCUgBiAEBEhIKBWZpcnN0GAMgASgFSAKIAQESEQoEbGFzdBgEIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKYAQoaTGlzdFJlY2VudGx5T3BlbmVkUmVzcG9uc2USLgoFaXRlbXMYASADKAsyHy5zZXR0aW5ncy52MS5SZWNlbnRseU9wZW5lZEl0ZW0SKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIlMKGlRyYWNrUmVjZW50bHlPcGVuZWRSZXF1ZXN0EgwKBHR5cGUYASABKAkSCgoCaWQYAiABKAkSDQoFbGFiZWwYAyABKAkSDAoEcGF0aBgEIAEoCSIuChtUcmFja1JlY2VudGx5T3BlbmVkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI3ChtSZW1vdmVSZWNlbnRseU9wZW5lZFJlcXVlc3QSDAoEdHlwZRgBIAEoCRIKCgJpZBgCIAEoCSIvChxSZW1vdmVSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiHAoaQ2xlYXJSZWNlbnRseU9wZW5lZFJlcXVlc3QiLgobQ2xlYXJSZWNlbnRseU9wZW5lZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgizwUKEENvbnRleHREaW1lbnNpb24SCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARITCgtzb3VyY2VfdHlwZRgFIAEoCRIYChBzb3VyY2VfbW9kZWxfa2V5GAYgASgJEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgHIAEoCUgBiAEBEhEKCWlzX3N5c3RlbRgIIAEoCBIXCg9idWlsdF9pbl92YWx1ZXMYCSADKAkSEQoJZGF0YV90eXBlGAogASgJEhAKCGNhdGVnb3J5GAsgASgJEhMKC2lzX3JlcXVpcmVkGAwgASgIEhIKCnNvcnRfb3JkZXIYDSABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgCiAEBEhcKCnVwZGF0ZWRfYnkYHyABKAlIA4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBg8IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GD0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBQg4KDF9kZXNjcmlwdGlvbkIVChNfZGVmYXVsdF9yZWNvcmRfa2V5Qg0KC19jcmVhdGVkX2J5Qg0KC191cGRhdGVkX2J5QhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdCIzChVDb250ZXh0RGltZW5zaW9uVmFsdWUSCwoDa2V5GAEgASgJEg0KBWxhYmVsGAIgASgJIrYBChxMaXN0Q29udGV4dERpbWVuc2lvbnNSZXF1ZXN0EhMKBnNlYXJjaBgBIAEoCUgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCQoHX3NlYXJjaEIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QirQEKHUxpc3RDb250ZXh0RGltZW5zaW9uc1Jlc3BvbnNlEjEKCmRpbWVuc2lvbnMYASADKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIoChpHZXRDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJPChtHZXRDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiLLAQodQ3JlYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARITCgtzb3VyY2VfdHlwZRgEIAEoCRIYChBzb3VyY2VfbW9kZWxfa2V5GAUgASgJEh8KEmRlZmF1bHRfcmVjb3JkX2tleRgGIAEoCUgBiAEBQg4KDF9kZXNjcmlwdGlvbkIVChNfZGVmYXVsdF9yZWNvcmRfa2V5IlIKHkNyZWF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIv8BCh1VcGRhdGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESGAoLZGVzY3JpcHRpb24YAyABKAlIAYgBARIdChBzb3VyY2VfbW9kZWxfa2V5GAQgASgJSAKIAQESHwoSZGVmYXVsdF9yZWNvcmRfa2V5GAUgASgJSAOIAQESFAoHcHVibGlzaBgGIAEoCEgEiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkITChFfc291cmNlX21vZGVsX2tleUIVChNfZGVmYXVsdF9yZWNvcmRfa2V5QgoKCF9wdWJsaXNoIlIKHlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIisKHURlbGV0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIjEKHkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIItEBCiBHZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVxdWVzdBIVCg1kaW1lbnNpb25fa2V5GAEgASgJEhMKBnNlYXJjaBgCIAEoCUgAiAEBEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQFCCQoHX3NlYXJjaEIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QisgEKIUdldENvbnRleHREaW1lbnNpb25WYWx1ZXNSZXNwb25zZRIyCgZ2YWx1ZXMYASADKAsyIi5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uVmFsdWUSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIqICChRDdXN0b21lclByb2ZpbGVGaWVsZBIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEdHlwZRgDIAEoCRINCgVsYWJlbBgEIAEoCRIQCghyZXF1aXJlZBgFIAEoCBIWCgloZWxwX3RleHQYBiABKAlIAIgBARIYCgtwbGFjZWhvbGRlchgHIAEoCUgBiAEBEiwKBmNvbmZpZxgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARImCgZhY2Nlc3MYCSABKAsyFi5jb21tb24udjEuRmllbGRBY2Nlc3MSEQoJcXVlcnlhYmxlGAogASgIQgwKCl9oZWxwX3RleHRCDgoMX3BsYWNlaG9sZGVyQgkKB19jb25maWcigQEKFUN1c3RvbWVyUHJvZmlsZUxvb2t1cBIOCgZrZXlfYnkYASADKAkSEQoEbmFtZRgCIAEoCUgAiAEBEjwKCGF1ZGllbmNlGAMgASgOMiouc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlTG9va3VwQXVkaWVuY2VCBwoFX25hbWUixwMKFUN1c3RvbWVyUHJvZmlsZVNjaGVtYRIKCgJpZBgBIAEoCRIxCgZmaWVsZHMYAiADKAsyIS5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVGaWVsZBIVCg1wdWJsaWNfZmllbGRzGAMgAygJEg8KB3ZlcnNpb24YBCABKAUSMwoHbG9va3VwcxgFIAMoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZUxvb2t1cBIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI9ChRzY2hlZHVsZWRfcHVibGlzaF9hdBg8IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARI/ChZzY2hlZHVsZWRfdW5wdWJsaXNoX2F0GD0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBQhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdCIhCh9HZXRDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0IlYKIEdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEjIKBnNjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSLyAwoTVmFyaWFudENhdGFsb2dFbnRyeRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgFIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESEAoIcHJpb3JpdHkYBiABKAUSEgoKaXNfZGVmYXVsdBgHIAEoCBIRCglpc19hY3RpdmUYCCABKAgSGAoLZmFsbGJhY2tfaWQYCiABKAlIAogBARIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIXCgpjcmVhdGVkX2J5GB4gASgJSAOIAQESFwoKdXBkYXRlZF9ieRgfIAEoCUgEiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkISChBfdGFyZ2V0aW5nX3J1bGVzQg4KDF9mYWxsYmFja19pZEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSLKAQoZTGlzdFZhcmlhbnRDYXRhbG9nUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhMKBmJlZm9yZRgEIAEoCUgCiAEBEhIKBWZpcnN0GAUgASgFSAOIAQESEQoEbGFzdBgGIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QiqgEKGkxpc3RWYXJpYW50Q2F0YWxvZ1Jlc3BvbnNlEjEKB2VudHJpZXMYASADKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIrCh1HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBIKCgJpZBgBIAEoCSJRCh5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IqsCCiBDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjwKD3RhcmdldGluZ19ydWxlcxgEIAEoCzIeLmV4cHJlc3Npb25zLnYxLlJ1bGVFeHByZXNzaW9uSAGIAQESFQoIcHJpb3JpdHkYBSABKAVIAogBARIXCgppc19kZWZhdWx0GAYgASgISAOIAQESFgoJaXNfYWN0aXZlGAcgASgISASIAQFCDgoMX2Rlc2NyaXB0aW9uQhIKEF90YXJnZXRpbmdfcnVsZXNCCwoJX3ByaW9yaXR5Qg0KC19pc19kZWZhdWx0QgwKCl9pc19hY3RpdmUiVAohQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEi8KBWVudHJ5GAEgASgLMiAuc2V0dGluZ3MudjEuVmFyaWFudENhdGFsb2dFbnRyeSK4AgogVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGAQgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IAogBARIVCghwcmlvcml0eRgFIAEoBUgDiAEBEhcKCmlzX2RlZmF1bHQYBiABKAhIBIgBARIWCglpc19hY3RpdmUYByABKAhIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEgoQX3RhcmdldGluZ19ydWxlc0ILCglfcHJpb3JpdHlCDQoLX2lzX2RlZmF1bHRCDAoKX2lzX2FjdGl2ZSJUCiFVcGRhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5Ii4KIERlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIjQKIURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIjAKGUdldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiQwoaR2V0Q3VzdG9tZXJQcm9maWxlUmVzcG9uc2USJQoEZGF0YRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiXAocQ3JlYXRlQ3VzdG9tZXJQcm9maWxlUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRInCgZjcmVhdGUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkYKHUNyZWF0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEiUKBGRhdGEYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IlwKHFVwZGF0ZUN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSJwoGdXBkYXRlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJGCh1VcGRhdGVDdXN0b21lclByb2ZpbGVSZXNwb25zZRIlCgRkYXRhGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKjAQoiVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hUmVxdWVzdBIxCgZmaWVsZHMYASADKAsyIS5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVGaWVsZBIVCg1wdWJsaWNfZmllbGRzGAIgAygJEjMKB2xvb2t1cHMYAyADKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVMb29rdXAiWQojVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hUmVzcG9uc2USMgoGc2NoZW1hGAEgASgLMiIuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlU2NoZW1hIkUKHExvb2t1cEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLbG9va3VwX25hbWUYASABKAkSEAoIa2V5X2hhc2gYAiABKAwiSQodTG9va3VwQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USGAoLY3VzdG9tZXJfaWQYASABKAlIAIgBAUIOCgxfY3VzdG9tZXJfaWQiUwoVQ3VzdG9tZXJQcm9maWxlUmVzdWx0EhMKC2N1c3RvbWVyX2lkGAEgASgJEiUKBGRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IjgKE0N1c3RvbWVyUHJvZmlsZVNvcnQSDQoFZmllbGQYASABKAkSEgoKZGVzY2VuZGluZxgCIAEoCCKCAgodU2VhcmNoQ3VzdG9tZXJQcm9maWxlc1JlcXVlc3QSEgoFYWZ0ZXIYASABKAlIAIgBARITCgZiZWZvcmUYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBARIrCgV3aGVyZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIyCghvcmRlcl9ieRgGIAMoCzIgLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNvcnRCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QggKBl93aGVyZSKwAQoeU2VhcmNoQ3VzdG9tZXJQcm9maWxlc1Jlc3BvbnNlEjMKB3Jlc3VsdHMYASADKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVSZXN1bHQSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIjMKHERlbGV0ZUN1c3RvbWVyUHJvZmlsZVJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkiMAodRGVsZXRlQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCI9CiZHZXRDdXN0b21lclJlc29sdXRpb25BdHRyaWJ1dGVzUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCSJZChNSZXNvbHV0aW9uQXR0cmlidXRlEgsKA2tleRgBIAEoCRI1CgZ2YWx1ZXMYAiADKAsyJS5zZXR0aW5ncy52MS5SZXNvbHV0aW9uQXR0cmlidXRlVmFsdWUigAEKGFJlc29sdXRpb25BdHRyaWJ1dGVWYWx1ZRINCgV2YWx1ZRgBIAEoCRINCgVjb3VudBgCIAEoBRI1CgxsYXN0X3NlZW5fYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDwoNX2xhc3Rfc2Vlbl9hdCKMAgonR2V0Q3VzdG9tZXJSZXNvbHV0aW9uQXR0cmlidXRlc1Jlc3BvbnNlEhkKEXRvdGFsX3Jlc29sdXRpb25zGAEgASgFEjQKCmF0dHJpYnV0ZXMYAiADKAsyIC5zZXR0aW5ncy52MS5SZXNvbHV0aW9uQXR0cmlidXRlEjYKDWZpcnN0X3NlZW5fYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESNQoMbGFzdF9zZWVuX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBQhAKDl9maXJzdF9zZWVuX2F0Qg8KDV9sYXN0X3NlZW5fYXQiLAoXR2V0RWRpdG9yQ29uZmlnc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJIsACChVFZGl0b3JDb25maWdQbGFjZW1lbnQSEQoJY29uZmlnX2lkGAEgASgJEhIKCmNvbmZpZ19rZXkYAiABKAkSEAoDdXJsGAMgASgJSACIAQESGwoOYWxsb3dlZF9vcmlnaW4YBCABKAlIAYgBARITCgZoZWlnaHQYBSABKAVIAogBARISCgVsYWJlbBgGIAEoCUgDiAEBEhQKB2FwaV9rZXkYByABKAlIBIgBARIUCgdhcGlfdXJsGAggASgJSAWIAQESHgoRY29ubmVjdGlvbl9kb21haW4YCSABKAlIBogBAUIGCgRfdXJsQhEKD19hbGxvd2VkX29yaWdpbkIJCgdfaGVpZ2h0QggKBl9sYWJlbEIKCghfYXBpX2tleUIKCghfYXBpX3VybEIUChJfY29ubmVjdGlvbl9kb21haW4iUgoYR2V0RWRpdG9yQ29uZmlnc1Jlc3BvbnNlEjYKCnBsYWNlbWVudHMYASADKAsyIi5zZXR0aW5ncy52MS5FZGl0b3JDb25maWdQbGFjZW1lbnQiIAoSUmVzb2x2ZU5vdGVSZXF1ZXN0EgoKAmlkGAEgASgJIjYKE1Jlc29sdmVOb3RlUmVzcG9uc2USHwoEbm90ZRgBIAEoCzIRLnNldHRpbmdzLnYxLk5vdGUiIgoUVW5yZXNvbHZlTm90ZVJlcXVlc3QSCgoCaWQYASABKAkiOAoVVW5yZXNvbHZlTm90ZVJlc3BvbnNlEh8KBG5vdGUYASABKAsyES5zZXR0aW5ncy52MS5Ob3RlIsUBChJTZWFyY2hOb3Rlc1JlcXVlc3QSDQoFcXVlcnkYASABKAkSGAoLZW50aXR5X3R5cGUYAiABKAlIAIgBARISCgVhZnRlchgDIAEoCUgBiAEBEhMKBmJlZm9yZRgEIAEoCUgCiAEBEhIKBWZpcnN0GAUgASgFSAOIAQESEQoEbGFzdBgGIAEoBUgEiAEBQg4KDF9lbnRpdHlfdHlwZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QikgEKE1NlYXJjaE5vdGVzUmVzcG9uc2USIAoFbm90ZXMYASADKAsyES5zZXR0aW5ncy52MS5Ob3RlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIZChdNYXJrTWVudGlvbnNTZWVuUmVxdWVzdCIpChhNYXJrTWVudGlvbnNTZWVuUmVzcG9uc2USDQoFY291bnQYASABKAUiLgofR2V0Q29udGV4dERpbWVuc2lvbkJ5S2V5UmVxdWVzdBILCgNrZXkYASABKAkiVAogR2V0Q29udGV4dERpbWVuc2lvbkJ5S2V5UmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiIZChdHZXREZWZhdWx0TG9jYWxlUmVxdWVzdCI/ChhHZXREZWZhdWx0TG9jYWxlUmVzcG9uc2USIwoGbG9jYWxlGAEgASgLMhMuc2V0dGluZ3MudjEuTG9jYWxlIiYKFkdldExvY2FsZUJ5Q29kZVJlcXVlc3QSDAoEY29kZRgBIAEoCSI+ChdHZXRMb2NhbGVCeUNvZGVSZXNwb25zZRIjCgZsb2NhbGUYASABKAsyEy5zZXR0aW5ncy52MS5Mb2NhbGUiJgokR2V0RGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0IlgKJUdldERlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USLwoFZW50cnkYASABKAsyIC5zZXR0aW5ncy52MS5WYXJpYW50Q2F0YWxvZ0VudHJ5IiMKFERlbGV0ZVNldHRpbmdSZXF1ZXN0EgsKA2tleRgBIAEoCSIoChVEZWxldGVTZXR0aW5nUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIzCh9EZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnlSZXF1ZXN0EhAKCGNhdGVnb3J5GAEgASgJIjEKIERlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeVJlc3BvbnNlEg0KBWNvdW50GAEgASgFIk0KFkJ1bGtTZXRTZXR0aW5nc1JlcXVlc3QSMwoIc2V0dGluZ3MYASADKAsyIS5zZXR0aW5ncy52MS5VcGRhdGVTZXR0aW5nUmVxdWVzdCIoChdCdWxrU2V0U2V0dGluZ3NSZXNwb25zZRINCgVjb3VudBgBIAEoBSIpCidFbnN1cmVEZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QiWwooRW5zdXJlRGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRIvCgVlbnRyeRgBIAEoCzIgLnNldHRpbmdzLnYxLlZhcmlhbnRDYXRhbG9nRW50cnki8AMKDERlc2lnblRva2VucxIpCghkb2N1bWVudBgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSMwoIcmVzb2x2ZWQYAiABKAsyIS5zZXR0aW5ncy52MS5SZXNvbHZlZERlc2lnblRva2VucxIPCgd2ZXJzaW9uGAogASgFEh4KEXB1Ymxpc2hlZF92ZXJzaW9uGAsgASgFSACIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPQoUc2NoZWR1bGVkX3B1Ymxpc2hfYXQYPCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESPwoWc2NoZWR1bGVkX3VucHVibGlzaF9hdBg9IAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBAUIUChJfcHVibGlzaGVkX3ZlcnNpb25CFwoVX3NjaGVkdWxlZF9wdWJsaXNoX2F0QhkKF19zY2hlZHVsZWRfdW5wdWJsaXNoX2F0IvoEChRSZXNvbHZlZERlc2lnblRva2VucxIvCgZjb2xvcnMYASADKAsyHy5zZXR0aW5ncy52MS5SZXNvbHZlZENvbG9yVG9rZW4SOwoNZm9udF9mYW1pbGllcxgCIAMoCzIkLnNldHRpbmdzLnYxLlJlc29sdmVkRm9udEZhbWlseVRva2VuEjoKDGZvbnRfd2VpZ2h0cxgDIAMoCzIkLnNldHRpbmdzLnYxLlJlc29sdmVkRm9udFdlaWdodFRva2VuEjcKCmZvbnRfc2l6ZXMYBCADKAsyIy5zZXR0aW5ncy52MS5SZXNvbHZlZERpbWVuc2lvblRva2VuEjYKDGxpbmVfaGVpZ2h0cxgFIAMoCzIgLnNldHRpbmdzLnYxLlJlc29sdmVkTnVtYmVyVG9rZW4SPAoPbGV0dGVyX3NwYWNpbmdzGAYgAygLMiMuc2V0dGluZ3MudjEuUmVzb2x2ZWREaW1lbnNpb25Ub2tlbhI4Cgp0eXBvZ3JhcGh5GAcgAygLMiQuc2V0dGluZ3MudjEuUmVzb2x2ZWRUeXBvZ3JhcGh5VG9rZW4SNQoIc3BhY2luZ3MYCCADKAsyIy5zZXR0aW5ncy52MS5SZXNvbHZlZERpbWVuc2lvblRva2VuEjIKBXJhZGlpGAkgAygLMiMuc2V0dGluZ3MudjEuUmVzb2x2ZWREaW1lbnNpb25Ub2tlbhIxCgdzaGFkb3dzGAogAygLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWRTaGFkb3dUb2tlbhIxCgdib3JkZXJzGAsgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWRCb3JkZXJUb2tlbiJpChJSZXNvbHZlZENvbG9yVG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESDQoFdmFsdWUYBCABKAlCDgoMX2Rlc2NyaXB0aW9uIm4KF1Jlc29sdmVkRm9udEZhbWlseVRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEg0KBXZhbHVlGAQgAygJQg4KDF9kZXNjcmlwdGlvbiJuChdSZXNvbHZlZEZvbnRXZWlnaHRUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgV2YWx1ZRgEIAEoBUIOCgxfZGVzY3JpcHRpb24ibQoWUmVzb2x2ZWREaW1lbnNpb25Ub2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgV2YWx1ZRgEIAEoCUIOCgxfZGVzY3JpcHRpb24iagoTUmVzb2x2ZWROdW1iZXJUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgV2YWx1ZRgEIAEoAUIOCgxfZGVzY3JpcHRpb24izAEKF1Jlc29sdmVkVHlwb2dyYXBoeVRva2VuEgwKBHBhdGgYASABKAkSDAoEbmFtZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjMKBXZhbHVlGAQgASgLMiQuc2V0dGluZ3MudjEuUmVzb2x2ZWRUeXBvZ3JhcGh5VmFsdWUSEgoFbGFiZWwYBSABKAlIAYgBARIQCgN0YWcYBiABKAlIAogBAUIOCgxfZGVzY3JpcHRpb25CCAoGX2xhYmVsQgYKBF90YWcijQEKE1Jlc29sdmVkU2hhZG93VG9rZW4SDAoEcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESMAoGbGF5ZXJzGAQgAygLMiAuc2V0dGluZ3MudjEuUmVzb2x2ZWRTaGFkb3dMYXllckIOCgxfZGVzY3JpcHRpb24idQoTUmVzb2x2ZWRTaGFkb3dMYXllchIQCghvZmZzZXRfeBgBIAEoCRIQCghvZmZzZXRfeRgCIAEoCRIMCgRibHVyGAMgASgJEg4KBnNwcmVhZBgEIAEoCRINCgVjb2xvchgFIAEoCRINCgVpbnNldBgGIAEoCCKMAQoTUmVzb2x2ZWRCb3JkZXJUb2tlbhIMCgRwYXRoGAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARIvCgV2YWx1ZRgEIAEoCzIgLnNldHRpbmdzLnYxLlJlc29sdmVkQm9yZGVyVmFsdWVCDgoMX2Rlc2NyaXB0aW9uIkIKE1Jlc29sdmVkQm9yZGVyVmFsdWUSDQoFY29sb3IYASABKAkSDQoFd2lkdGgYAiABKAkSDQoFc3R5bGUYAyABKAkimwEKF1Jlc29sdmVkVHlwb2dyYXBoeVZhbHVlEhMKC2ZvbnRfZmFtaWx5GAEgAygJEhEKCWZvbnRfc2l6ZRgCIAEoCRITCgtmb250X3dlaWdodBgDIAEoBRITCgtsaW5lX2hlaWdodBgEIAEoARIWCg5sZXR0ZXJfc3BhY2luZxgFIAEoCRIWCg50ZXh0X3RyYW5zZm9ybRgGIAEoCSJEChZHZXREZXNpZ25Ub2tlbnNSZXF1ZXN0EioKB2NoYW5uZWwYASABKA4yGS5wdWJsaXNoLnYxLlNjaGVtYUNoYW5uZWwiRAoXR2V0RGVzaWduVG9rZW5zUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zIkYKGVVwZGF0ZURlc2lnblRva2Vuc1JlcXVlc3QSKQoIZG9jdW1lbnQYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkcKGlVwZGF0ZURlc2lnblRva2Vuc1Jlc3BvbnNlEikKBnRva2VucxgBIAEoCzIZLnNldHRpbmdzLnYxLkRlc2lnblRva2VucyIcChpQdWJsaXNoRGVzaWduVG9rZW5zUmVxdWVzdCJ+ChtQdWJsaXNoRGVzaWduVG9rZW5zUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIh4KHFVucHVibGlzaERlc2lnblRva2Vuc1JlcXVlc3QiSgodVW5wdWJsaXNoRGVzaWduVG9rZW5zUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zIiUKI0dldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXNSZXF1ZXN0IlEKJEdldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXNSZXNwb25zZRIpCgZzdGF0dXMYASABKAsyGS5wdWJsaXNoLnYxLlB1Ymxpc2hTdGF0dXMinAEKIlNjaGVkdWxlRGVzaWduVG9rZW5zUHVibGlzaFJlcXVlc3QSLgoKcHVibGlzaF9hdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV91bnB1Ymxpc2hfYXQiUAojU2NoZWR1bGVEZXNpZ25Ub2tlbnNQdWJsaXNoUmVzcG9uc2USKQoGdG9rZW5zGAEgASgLMhkuc2V0dGluZ3MudjEuRGVzaWduVG9rZW5zIisKKUNhbmNlbFNjaGVkdWxlZERlc2lnblRva2Vuc1B1Ymxpc2hSZXF1ZXN0IlcKKkNhbmNlbFNjaGVkdWxlZERlc2lnblRva2Vuc1B1Ymxpc2hSZXNwb25zZRIpCgZ0b2tlbnMYASABKAsyGS5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlbnMiNwohQ291bnREZXNpZ25Ub2tlblJlZmVyZW5jZXNSZXF1ZXN0EhIKCnRva2VuX3BhdGgYASABKAkiUwoiQ291bnREZXNpZ25Ub2tlblJlZmVyZW5jZXNSZXNwb25zZRIXCg9wYXJhZ3JhcGhfY291bnQYASABKAUSFAoMcmVjb3JkX2NvdW50GAIgASgFItkCChJEZXNpZ25Ub2tlblZlcnNpb24SCgoCaWQYASABKAkSGAoQZGVzaWduX3Rva2Vuc19pZBgCIAEoCRIWCg52ZXJzaW9uX251bWJlchgDIAEoBRIpCghzbmFwc2hvdBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFAoMY29udGVudF9oYXNoGAUgASgJEh4KEXNvdXJjZV92ZXJzaW9uX2lkGAYgASgJSACIAQESHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAcgASgJSAGIAQESLgoKY3JlYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKY3JlYXRlZF9ieRgJIAEoCUgCiAEBQhQKEl9zb3VyY2VfdmVyc2lvbl9pZEIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQg0KC19jcmVhdGVkX2J5IioKHEdldERlc2lnblRva2VuVmVyc2lvblJlcXVlc3QSCgoCaWQYASABKAkiUQodR2V0RGVzaWduVG9rZW5WZXJzaW9uUmVzcG9uc2USMAoHdmVyc2lvbhgBIAEoCzIfLnNldHRpbmdzLnYxLkRlc2lnblRva2VuVmVyc2lvbiKYAQoeTGlzdERlc2lnblRva2VuVmVyc2lvbnNSZXF1ZXN0EhIKBWFmdGVyGAEgASgJSACIAQESEwoGYmVmb3JlGAIgASgJSAGIAQESEgoFZmlyc3QYAyABKAVIAogBARIRCgRsYXN0GAQgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Iq8BCh9MaXN0RGVzaWduVG9rZW5WZXJzaW9uc1Jlc3BvbnNlEjEKCHZlcnNpb25zGAEgAygLMh8uc2V0dGluZ3MudjEuRGVzaWduVG9rZW5WZXJzaW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJuCiBSZXN0b3JlRGVzaWduVG9rZW5WZXJzaW9uUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgCIAEoCUgAiAEBQhUKE19jaGFuZ2VfZGVzY3JpcHRpb24ihAEKIVJlc3RvcmVEZXNpZ25Ub2tlblZlcnNpb25SZXNwb25zZRIpCgZ0b2tlbnMYASABKAsyGS5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlbnMSNAoLbmV3X3ZlcnNpb24YAiABKAsyHy5zZXR0aW5ncy52MS5EZXNpZ25Ub2tlblZlcnNpb24iRQoXR2V0UHJvamVjdFNjaGVtYVJlcXVlc3QSKgoHY2hhbm5lbBgBIAEoDjIZLnB1Ymxpc2gudjEuU2NoZW1hQ2hhbm5lbCJlChJQcm9qZWN0U2NoZW1hTW9kZWwSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSEwoLZmllbGRzX2pzb24YBCABKAkSEwoLY29uZmlnX2pzb24YBSABKAkiwgEKHVByb2plY3RTY2hlbWFDb250ZXh0RGltZW5zaW9uEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEh0KEHNvdXJjZV9tb2RlbF9rZXkYBCABKAlIAIgBARIfChJkZWZhdWx0X3JlY29yZF9rZXkYBSABKAlIAYgBARIOCgZ2YWx1ZXMYBiADKAlCEwoRX3NvdXJjZV9tb2RlbF9rZXlCFQoTX2RlZmF1bHRfcmVjb3JkX2tleSKOAQoZUHJvamVjdFNjaGVtYUF1dGhQcm92aWRlchILCgNrZXkYASABKAkSDAoEbmFtZRgCIAEoCRIMCgR0eXBlGAMgASgJEg8KB2VuYWJsZWQYBCABKAgSLAoGY29uZmlnGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgkKB19jb25maWcinwMKFlByb2plY3RTY2hlbWFPcGVyYXRpb24SCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSEAoIZW5kcG9pbnQYAyABKAkSEgoKdGltZW91dF9tcxgEIAEoBRIyCgxpbnB1dF9zY2hlbWEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESMwoNb3V0cHV0X3NjaGVtYRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIWCg5zdXBwb3J0c19hc3luYxgHIAEoCBIMCgRraW5kGAggASgJEh4KEWF0dGFjaGVkX3RvX21vZGVsGAkgASgJSAKIAQESFQoNcGFyZW50X2ZpZWxkcxgKIAMoCRIzCg1jYWNoZV9jb250cm9sGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBQg8KDV9pbnB1dF9zY2hlbWFCEAoOX291dHB1dF9zY2hlbWFCFAoSX2F0dGFjaGVkX3RvX21vZGVsQhAKDl9jYWNoZV9jb250cm9sIkQKFFByb2plY3RTY2hlbWFTZWdtZW50EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhEKCWlzX2FjdGl2ZRgDIAEoCCJvChpQcm9qZWN0U2NoZW1hUHJvZmlsZVNjaGVtYRITCgtmaWVsZHNfanNvbhgBIAEoCRIVCg1wdWJsaWNfZmllbGRzGAIgAygJEg8KB3ZlcnNpb24YAyABKAUSFAoMbG9va3Vwc19qc29uGAQgASgJIpQEChhHZXRQcm9qZWN0U2NoZW1hUmVzcG9uc2USLwoGbW9kZWxzGAEgAygLMh8uc2V0dGluZ3MudjEuUHJvamVjdFNjaGVtYU1vZGVsEj4KCmRpbWVuc2lvbnMYAiADKAsyKi5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hQ29udGV4dERpbWVuc2lvbhI+Cg5hdXRoX3Byb3ZpZGVycxgDIAMoCzImLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFBdXRoUHJvdmlkZXISNwoKb3BlcmF0aW9ucxgEIAMoCzIjLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFPcGVyYXRpb24SMwoIc2VnbWVudHMYBSADKAsyIS5zZXR0aW5ncy52MS5Qcm9qZWN0U2NoZW1hU2VnbWVudBJECg5wcm9maWxlX3NjaGVtYRgHIAEoCzInLnNldHRpbmdzLnYxLlByb2plY3RTY2hlbWFQcm9maWxlU2NoZW1hSACIAQESJgoZY3VzdG9tZXJfcGFzc3dvcmRfZW5hYmxlZBgIIAEoCEgBiAEBEiEKFGN1c3RvbWVyX290cF9lbmFibGVkGAkgASgISAKIAQFCEQoPX3Byb2ZpbGVfc2NoZW1hQhwKGl9jdXN0b21lcl9wYXNzd29yZF9lbmFibGVkQhcKFV9jdXN0b21lcl9vdHBfZW5hYmxlZCIsCh5QdWJsaXNoQ29udGV4dERpbWVuc2lvblJlcXVlc3QSCgoCaWQYASABKAkiiQEKH1B1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbhI0ChBicmVha2luZ19jaGFuZ2VzGAIgAygLMhoucHVibGlzaC52MS5CcmVha2luZ0NoYW5nZSIuCiBVbnB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJVCiFVbnB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USMAoJZGltZW5zaW9uGAEgASgLMh0uc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvbiI1CidHZXRDb250ZXh0RGltZW5zaW9uUHVibGlzaFN0YXR1c1JlcXVlc3QSCgoCaWQYASABKAkiVQooR2V0Q29udGV4dERpbWVuc2lvblB1Ymxpc2hTdGF0dXNSZXNwb25zZRIpCgZzdGF0dXMYASABKAsyGS5wdWJsaXNoLnYxLlB1Ymxpc2hTdGF0dXMi4gIKF0NvbnRleHREaW1lbnNpb25WZXJzaW9uEgoKAmlkGAEgASgJEhwKFGNvbnRleHRfZGltZW5zaW9uX2lkGAIgASgJEhYKDnZlcnNpb25fbnVtYmVyGAMgASgFEikKCHNuYXBzaG90GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgxjb250ZW50X2hhc2gYBSABKAkSHgoRc291cmNlX3ZlcnNpb25faWQYBiABKAlIAIgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YByABKAlIAYgBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAkgASgJSAKIAQFCFAoSX3NvdXJjZV92ZXJzaW9uX2lkQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CDQoLX2NyZWF0ZWRfYnkiLwohR2V0Q29udGV4dERpbWVuc2lvblZlcnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIlsKIkdldENvbnRleHREaW1lbnNpb25WZXJzaW9uUmVzcG9uc2USNQoHdmVyc2lvbhgBIAEoCzIkLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb25WZXJzaW9uIrsBCiNMaXN0Q29udGV4dERpbWVuc2lvblZlcnNpb25zUmVxdWVzdBIcChRjb250ZXh0X2RpbWVuc2lvbl9pZBgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhMKBmJlZm9yZRgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQESEQoEbGFzdBgFIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCK5AQokTGlzdENvbnRleHREaW1lbnNpb25WZXJzaW9uc1Jlc3BvbnNlEjYKCHZlcnNpb25zGAEgAygLMiQuc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvblZlcnNpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvInMKJVJlc3RvcmVDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIfChJjaGFuZ2VfZGVzY3JpcHRpb24YAiABKAlIAIgBAUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIpUBCiZSZXN0b3JlQ29udGV4dERpbWVuc2lvblZlcnNpb25SZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uEjkKC25ld192ZXJzaW9uGAIgASgLMiQuc2V0dGluZ3MudjEuQ29udGV4dERpbWVuc2lvblZlcnNpb24iHQobUHVibGlzaFByb2ZpbGVTY2hlbWFSZXF1ZXN0IpABChxQdWJsaXNoUHJvZmlsZVNjaGVtYVJlc3BvbnNlEjoKDnByb2ZpbGVfc2NoZW1hGAEgASgLMiIuc2V0dGluZ3MudjEuQ3VzdG9tZXJQcm9maWxlU2NoZW1hEjQKEGJyZWFraW5nX2NoYW5nZXMYAiADKAsyGi5wdWJsaXNoLnYxLkJyZWFraW5nQ2hhbmdlIh8KHVVucHVibGlzaFByb2ZpbGVTY2hlbWFSZXF1ZXN0IlwKHlVucHVibGlzaFByb2ZpbGVTY2hlbWFSZXNwb25zZRI6Cg5wcm9maWxlX3NjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSImCiRHZXRQcm9maWxlU2NoZW1hUHVibGlzaFN0YXR1c1JlcXVlc3QiUgolR2V0UHJvZmlsZVNjaGVtYVB1Ymxpc2hTdGF0dXNSZXNwb25zZRIpCgZzdGF0dXMYASABKAsyGS5wdWJsaXNoLnYxLlB1Ymxpc2hTdGF0dXMi3AIKFFByb2ZpbGVTY2hlbWFWZXJzaW9uEgoKAmlkGAEgASgJEhkKEXByb2ZpbGVfc2NoZW1hX2lkGAIgASgJEhYKDnZlcnNpb25fbnVtYmVyGAMgASgFEikKCHNuYXBzaG90GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIUCgxjb250ZW50X2hhc2gYBSABKAkSHgoRc291cmNlX3ZlcnNpb25faWQYBiABKAlIAIgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YByABKAlIAYgBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAkgASgJSAKIAQFCFAoSX3NvdXJjZV92ZXJzaW9uX2lkQhUKE19jaGFuZ2VfZGVzY3JpcHRpb25CDQoLX2NyZWF0ZWRfYnkiLAoeR2V0UHJvZmlsZVNjaGVtYVZlcnNpb25SZXF1ZXN0EgoKAmlkGAEgASgJIlUKH0dldFByb2ZpbGVTY2hlbWFWZXJzaW9uUmVzcG9uc2USMgoHdmVyc2lvbhgBIAEoCzIhLnNldHRpbmdzLnYxLlByb2ZpbGVTY2hlbWFWZXJzaW9uIpoBCiBMaXN0UHJvZmlsZVNjaGVtYVZlcnNpb25zUmVxdWVzdBISCgVhZnRlchgBIAEoCUgAiAEBEhMKBmJlZm9yZRgCIAEoCUgBiAEBEhIKBWZpcnN0GAMgASgFSAKIAQESEQoEbGFzdBgEIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKzAQohTGlzdFByb2ZpbGVTY2hlbWFWZXJzaW9uc1Jlc3BvbnNlEjMKCHZlcnNpb25zGAEgAygLMiEuc2V0dGluZ3MudjEuUHJvZmlsZVNjaGVtYVZlcnNpb24SDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvInAKIlJlc3RvcmVQcm9maWxlU2NoZW1hVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCRIfChJjaGFuZ2VfZGVzY3JpcHRpb24YAiABKAlIAIgBAUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIpEBCiNSZXN0b3JlUHJvZmlsZVNjaGVtYVZlcnNpb25SZXNwb25zZRIyCgZzY2hlbWEYASABKAsyIi5zZXR0aW5ncy52MS5DdXN0b21lclByb2ZpbGVTY2hlbWESNgoLbmV3X3ZlcnNpb24YAiABKAsyIS5zZXR0aW5ncy52MS5Qcm9maWxlU2NoZW1hVmVyc2lvbiIdChtQdWJsaXNoUHJvamVjdFNjaGVtYVJlcXVlc3Qi9gEKHFB1Ymxpc2hQcm9qZWN0U2NoZW1hUmVzcG9uc2USGAoQbW9kZWxzX3B1Ymxpc2hlZBgBIAEoBRIcChRvcGVyYXRpb25zX3B1Ymxpc2hlZBgCIAEoBRIkChxjb250ZXh0X2RpbWVuc2lvbnNfcHVibGlzaGVkGAMgASgFEiAKGGF1dGhfcHJvdmlkZXJzX3B1Ymxpc2hlZBgEIAEoBRIgChhwcm9maWxlX3NjaGVtYV9wdWJsaXNoZWQYBSABKAgSNAoQYnJlYWtpbmdfY2hhbmdlcxgGIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UiIAoeR2V0UHJvamVjdFB1Ymxpc2hTdGF0dXNSZXF1ZXN0IoMBCh9HZXRQcm9qZWN0UHVibGlzaFN0YXR1c1Jlc3BvbnNlEioKB3BlbmRpbmcYASADKAsyGS5wdWJsaXNoLnYxLlBlbmRpbmdFbnRpdHkSNAoQYnJlYWtpbmdfY2hhbmdlcxgCIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UirAEKJlNjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXF1ZXN0EgoKAmlkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fdW5wdWJsaXNoX2F0IlsKJ1NjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXNwb25zZRIwCglkaW1lbnNpb24YASABKAsyHS5zZXR0aW5ncy52MS5Db250ZXh0RGltZW5zaW9uIjsKLUNhbmNlbFNjaGVkdWxlZENvbnRleHREaW1lbnNpb25QdWJsaXNoUmVxdWVzdBIKCgJpZBgBIAEoCSJiCi5DYW5jZWxTY2hlZHVsZWRDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlc3BvbnNlEjAKCWRpbWVuc2lvbhgBIAEoCzIdLnNldHRpbmdzLnYxLkNvbnRleHREaW1lbnNpb24inQEKI1NjaGVkdWxlUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXF1ZXN0Ei4KCnB1Ymxpc2hfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fdW5wdWJsaXNoX2F0ImIKJFNjaGVkdWxlUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXNwb25zZRI6Cg5wcm9maWxlX3NjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSIsCipDYW5jZWxTY2hlZHVsZWRQcm9maWxlU2NoZW1hUHVibGlzaFJlcXVlc3QiaQorQ2FuY2VsU2NoZWR1bGVkUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXNwb25zZRI6Cg5wcm9maWxlX3NjaGVtYRgBIAEoCzIiLnNldHRpbmdzLnYxLkN1c3RvbWVyUHJvZmlsZVNjaGVtYSqXAQoRU2hhcmVSZXNvdXJjZVR5cGUSIwofU0hBUkVfUkVTT1VSQ0VfVFlQRV9VTlNQRUNJRklFRBAAEh4KGlNIQVJFX1JFU09VUkNFX1RZUEVfUkVDT1JEEAESHAoYU0hBUkVfUkVTT1VSQ0VfVFlQRV9GSUxFEAISHwobU0hBUkVfUkVTT1VSQ0VfVFlQRV9QUk9GSUxFEAMqhQEKD1NoYXJlUGVybWlzc2lvbhIgChxTSEFSRV9QRVJNSVNTSU9OX1VOU1BFQ0lGSUVEEAASGQoVU0hBUkVfUEVSTUlTU0lPTl9WSUVXEAESGQoVU0hBUkVfUEVSTUlTU0lPTl9FRElUEAISGgoWU0hBUkVfUEVSTUlTU0lPTl9BRE1JThADKnsKC1NoYXJlU3RhdHVzEhwKGFNIQVJFX1NUQVRVU19VTlNQRUNJRklFRBAAEhgKFFNIQVJFX1NUQVRVU19QRU5ESU5HEAESGQoVU0hBUkVfU1RBVFVTX0FDQ0VQVEVEEAISGQoVU0hBUkVfU1RBVFVTX0RFQ0xJTkVEEAMqrQEKHUN1c3RvbWVyUHJvZmlsZUxvb2t1cEF1ZGllbmNlEjAKLENVU1RPTUVSX1BST0ZJTEVfTE9PS1VQX0FVRElFTkNFX1VOU1BFQ0lGSUVEEAASLQopQ1VTVE9NRVJfUFJPRklMRV9MT09LVVBfQVVESUVOQ0VfT1BFUkFUT1IQARIrCidDVVNUT01FUl9QUk9GSUxFX0xPT0tVUF9BVURJRU5DRV9QVUJMSUMQAjKwTQoPU2V0dGluZ3NTZXJ2aWNlElAKC0dldFNldHRpbmdzEh8uc2V0dGluZ3MudjEuR2V0U2V0dGluZ3NSZXF1ZXN0GiAuc2V0dGluZ3MudjEuR2V0U2V0dGluZ3NSZXNwb25zZRJWCg1VcGRhdGVTZXR0aW5nEiEuc2V0dGluZ3MudjEuVXBkYXRlU2V0dGluZ1JlcXVlc3QaIi5zZXR0aW5ncy52MS5VcGRhdGVTZXR0aW5nUmVzcG9uc2USVgoNRGVsZXRlU2V0dGluZxIhLnNldHRpbmdzLnYxLkRlbGV0ZVNldHRpbmdSZXF1ZXN0GiIuc2V0dGluZ3MudjEuRGVsZXRlU2V0dGluZ1Jlc3BvbnNlEncKGERlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeRIsLnNldHRpbmdzLnYxLkRlbGV0ZVNldHRpbmdzQnlDYXRlZ29yeVJlcXVlc3QaLS5zZXR0aW5ncy52MS5EZWxldGVTZXR0aW5nc0J5Q2F0ZWdvcnlSZXNwb25zZRJcCg9CdWxrU2V0U2V0dGluZ3MSIy5zZXR0aW5ncy52MS5CdWxrU2V0U2V0dGluZ3NSZXF1ZXN0GiQuc2V0dGluZ3MudjEuQnVsa1NldFNldHRpbmdzUmVzcG9uc2USVgoNTGlzdEF1ZGl0TG9ncxIhLnNldHRpbmdzLnYxLkxpc3RBdWRpdExvZ3NSZXF1ZXN0GiIuc2V0dGluZ3MudjEuTGlzdEF1ZGl0TG9nc1Jlc3BvbnNlEk0KCkNyZWF0ZU5vdGUSHi5zZXR0aW5ncy52MS5DcmVhdGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLkNyZWF0ZU5vdGVSZXNwb25zZRJECgdHZXROb3RlEhsuc2V0dGluZ3MudjEuR2V0Tm90ZVJlcXVlc3QaHC5zZXR0aW5ncy52MS5HZXROb3RlUmVzcG9uc2USSgoJTGlzdE5vdGVzEh0uc2V0dGluZ3MudjEuTGlzdE5vdGVzUmVxdWVzdBoeLnNldHRpbmdzLnYxLkxpc3ROb3Rlc1Jlc3BvbnNlEk0KClVwZGF0ZU5vdGUSHi5zZXR0aW5ncy52MS5VcGRhdGVOb3RlUmVxdWVzdBofLnNldHRpbmdzLnYxLlVwZGF0ZU5vdGVSZXNwb25zZRJNCgpEZWxldGVOb3RlEh4uc2V0dGluZ3MudjEuRGVsZXRlTm90ZVJlcXVlc3QaHy5zZXR0aW5ncy52MS5EZWxldGVOb3RlUmVzcG9uc2USUAoLUmVzb2x2ZU5vdGUSHy5zZXR0aW5ncy52MS5SZXNvbHZlTm90ZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5SZXNvbHZlTm90ZVJlc3BvbnNlElYKDVVucmVzb2x2ZU5vdGUSIS5zZXR0aW5ncy52MS5VbnJlc29sdmVOb3RlUmVxdWVzdBoiLnNldHRpbmdzLnYxLlVucmVzb2x2ZU5vdGVSZXNwb25zZRJQCgtTZWFyY2hOb3RlcxIfLnNldHRpbmdzLnYxLlNlYXJjaE5vdGVzUmVxdWVzdBogLnNldHRpbmdzLnYxLlNlYXJjaE5vdGVzUmVzcG9uc2USWQoOTGlzdE15TWVudGlvbnMSIi5zZXR0aW5ncy52MS5MaXN0TXlNZW50aW9uc1JlcXVlc3QaIy5zZXR0aW5ncy52MS5MaXN0TXlNZW50aW9uc1Jlc3BvbnNlEmgKE1VwZGF0ZU1lbnRpb25TdGF0dXMSJy5zZXR0aW5ncy52MS5VcGRhdGVNZW50aW9uU3RhdHVzUmVxdWVzdBooLnNldHRpbmdzLnYxLlVwZGF0ZU1lbnRpb25TdGF0dXNSZXNwb25zZRJfChBNYXJrTWVudGlvbnNTZWVuEiQuc2V0dGluZ3MudjEuTWFya01lbnRpb25zU2VlblJlcXVlc3QaJS5zZXR0aW5ncy52MS5NYXJrTWVudGlvbnNTZWVuUmVzcG9uc2USUAoLTGlzdExvY2FsZXMSHy5zZXR0aW5ncy52MS5MaXN0TG9jYWxlc1JlcXVlc3QaIC5zZXR0aW5ncy52MS5MaXN0TG9jYWxlc1Jlc3BvbnNlEkoKCUdldExvY2FsZRIdLnNldHRpbmdzLnYxLkdldExvY2FsZVJlcXVlc3QaHi5zZXR0aW5ncy52MS5HZXRMb2NhbGVSZXNwb25zZRJfChBHZXREZWZhdWx0TG9jYWxlEiQuc2V0dGluZ3MudjEuR2V0RGVmYXVsdExvY2FsZVJlcXVlc3QaJS5zZXR0aW5ncy52MS5HZXREZWZhdWx0TG9jYWxlUmVzcG9uc2USXAoPR2V0TG9jYWxlQnlDb2RlEiMuc2V0dGluZ3MudjEuR2V0TG9jYWxlQnlDb2RlUmVxdWVzdBokLnNldHRpbmdzLnYxLkdldExvY2FsZUJ5Q29kZVJlc3BvbnNlElMKDENyZWF0ZUxvY2FsZRIgLnNldHRpbmdzLnYxLkNyZWF0ZUxvY2FsZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5DcmVhdGVMb2NhbGVSZXNwb25zZRJTCgxVcGRhdGVMb2NhbGUSIC5zZXR0aW5ncy52MS5VcGRhdGVMb2NhbGVSZXF1ZXN0GiEuc2V0dGluZ3MudjEuVXBkYXRlTG9jYWxlUmVzcG9uc2USUwoMRGVsZXRlTG9jYWxlEiAuc2V0dGluZ3MudjEuRGVsZXRlTG9jYWxlUmVxdWVzdBohLnNldHRpbmdzLnYxLkRlbGV0ZUxvY2FsZVJlc3BvbnNlEmIKEUdldE5hdlByZWZlcmVuY2VzEiUuc2V0dGluZ3MudjEuR2V0TmF2UHJlZmVyZW5jZXNSZXF1ZXN0GiYuc2V0dGluZ3MudjEuR2V0TmF2UHJlZmVyZW5jZXNSZXNwb25zZRJrChRVcGRhdGVOYXZQcmVmZXJlbmNlcxIoLnNldHRpbmdzLnYxLlVwZGF0ZU5hdlByZWZlcmVuY2VzUmVxdWVzdBopLnNldHRpbmdzLnYxLlVwZGF0ZU5hdlByZWZlcmVuY2VzUmVzcG9uc2USZQoSTGlzdFJlY2VudGx5T3BlbmVkEiYuc2V0dGluZ3MudjEuTGlzdFJlY2VudGx5T3BlbmVkUmVxdWVzdBonLnNldHRpbmdzLnYxLkxpc3RSZWNlbnRseU9wZW5lZFJlc3BvbnNlEmgKE1RyYWNrUmVjZW50bHlPcGVuZWQSJy5zZXR0aW5ncy52MS5UcmFja1JlY2VudGx5T3BlbmVkUmVxdWVzdBooLnNldHRpbmdzLnYxLlRyYWNrUmVjZW50bHlPcGVuZWRSZXNwb25zZRJrChRSZW1vdmVSZWNlbnRseU9wZW5lZBIoLnNldHRpbmdzLnYxLlJlbW92ZVJlY2VudGx5T3BlbmVkUmVxdWVzdBopLnNldHRpbmdzLnYxLlJlbW92ZVJlY2VudGx5T3BlbmVkUmVzcG9uc2USaAoTQ2xlYXJSZWNlbnRseU9wZW5lZBInLnNldHRpbmdzLnYxLkNsZWFyUmVjZW50bHlPcGVuZWRSZXF1ZXN0Giguc2V0dGluZ3MudjEuQ2xlYXJSZWNlbnRseU9wZW5lZFJlc3BvbnNlElAKC0NyZWF0ZVNoYXJlEh8uc2V0dGluZ3MudjEuQ3JlYXRlU2hhcmVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuQ3JlYXRlU2hhcmVSZXNwb25zZRJHCghHZXRTaGFyZRIcLnNldHRpbmdzLnYxLkdldFNoYXJlUmVxdWVzdBodLnNldHRpbmdzLnYxLkdldFNoYXJlUmVzcG9uc2USTQoKTGlzdFNoYXJlcxIeLnNldHRpbmdzLnYxLkxpc3RTaGFyZXNSZXF1ZXN0Gh8uc2V0dGluZ3MudjEuTGlzdFNoYXJlc1Jlc3BvbnNlElAKC1VwZGF0ZVNoYXJlEh8uc2V0dGluZ3MudjEuVXBkYXRlU2hhcmVSZXF1ZXN0GiAuc2V0dGluZ3MudjEuVXBkYXRlU2hhcmVSZXNwb25zZRJQCgtSZXZva2VTaGFyZRIfLnNldHRpbmdzLnYxLlJldm9rZVNoYXJlUmVxdWVzdBogLnNldHRpbmdzLnYxLlJldm9rZVNoYXJlUmVzcG9uc2USUAoLQWNjZXB0U2hhcmUSHy5zZXR0aW5ncy52MS5BY2NlcHRTaGFyZVJlcXVlc3QaIC5zZXR0aW5ncy52MS5BY2NlcHRTaGFyZVJlc3BvbnNlElMKDERlY2xpbmVTaGFyZRIgLnNldHRpbmdzLnYxLkRlY2xpbmVTaGFyZVJlcXVlc3QaIS5zZXR0aW5ncy52MS5EZWNsaW5lU2hhcmVSZXNwb25zZRJuChVMaXN0Q29udGV4dERpbWVuc2lvbnMSKS5zZXR0aW5ncy52MS5MaXN0Q29udGV4dERpbWVuc2lvbnNSZXF1ZXN0Giouc2V0dGluZ3MudjEuTGlzdENvbnRleHREaW1lbnNpb25zUmVzcG9uc2USaAoTR2V0Q29udGV4dERpbWVuc2lvbhInLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25SZXF1ZXN0Giguc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblJlc3BvbnNlEncKGEdldENvbnRleHREaW1lbnNpb25CeUtleRIsLnNldHRpbmdzLnYxLkdldENvbnRleHREaW1lbnNpb25CeUtleVJlcXVlc3QaLS5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uQnlLZXlSZXNwb25zZRJxChZDcmVhdGVDb250ZXh0RGltZW5zaW9uEiouc2V0dGluZ3MudjEuQ3JlYXRlQ29udGV4dERpbWVuc2lvblJlcXVlc3QaKy5zZXR0aW5ncy52MS5DcmVhdGVDb250ZXh0RGltZW5zaW9uUmVzcG9uc2UScQoWVXBkYXRlQ29udGV4dERpbWVuc2lvbhIqLnNldHRpbmdzLnYxLlVwZGF0ZUNvbnRleHREaW1lbnNpb25SZXF1ZXN0Gisuc2V0dGluZ3MudjEuVXBkYXRlQ29udGV4dERpbWVuc2lvblJlc3BvbnNlEnEKFkRlbGV0ZUNvbnRleHREaW1lbnNpb24SKi5zZXR0aW5ncy52MS5EZWxldGVDb250ZXh0RGltZW5zaW9uUmVxdWVzdBorLnNldHRpbmdzLnYxLkRlbGV0ZUNvbnRleHREaW1lbnNpb25SZXNwb25zZRJ6ChlHZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzEi0uc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblZhbHVlc1JlcXVlc3QaLi5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uVmFsdWVzUmVzcG9uc2USdwoYR2V0Q3VzdG9tZXJQcm9maWxlU2NoZW1hEiwuc2V0dGluZ3MudjEuR2V0Q3VzdG9tZXJQcm9maWxlU2NoZW1hUmVxdWVzdBotLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUHJvZmlsZVNjaGVtYVJlc3BvbnNlEmUKEkdldEN1c3RvbWVyUHJvZmlsZRImLnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QaJy5zZXR0aW5ncy52MS5HZXRDdXN0b21lclByb2ZpbGVSZXNwb25zZRJuChVDcmVhdGVDdXN0b21lclByb2ZpbGUSKS5zZXR0aW5ncy52MS5DcmVhdGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0Giouc2V0dGluZ3MudjEuQ3JlYXRlQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USbgoVVXBkYXRlQ3VzdG9tZXJQcm9maWxlEikuc2V0dGluZ3MudjEuVXBkYXRlQ3VzdG9tZXJQcm9maWxlUmVxdWVzdBoqLnNldHRpbmdzLnYxLlVwZGF0ZUN1c3RvbWVyUHJvZmlsZVJlc3BvbnNlEoABChtVcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWESLy5zZXR0aW5ncy52MS5VcGRhdGVDdXN0b21lclByb2ZpbGVTY2hlbWFSZXF1ZXN0GjAuc2V0dGluZ3MudjEuVXBkYXRlQ3VzdG9tZXJQcm9maWxlU2NoZW1hUmVzcG9uc2UScQoWU2VhcmNoQ3VzdG9tZXJQcm9maWxlcxIqLnNldHRpbmdzLnYxLlNlYXJjaEN1c3RvbWVyUHJvZmlsZXNSZXF1ZXN0Gisuc2V0dGluZ3MudjEuU2VhcmNoQ3VzdG9tZXJQcm9maWxlc1Jlc3BvbnNlEm4KFUxvb2t1cEN1c3RvbWVyUHJvZmlsZRIpLnNldHRpbmdzLnYxLkxvb2t1cEN1c3RvbWVyUHJvZmlsZVJlcXVlc3QaKi5zZXR0aW5ncy52MS5Mb29rdXBDdXN0b21lclByb2ZpbGVSZXNwb25zZRJuChVEZWxldGVDdXN0b21lclByb2ZpbGUSKS5zZXR0aW5ncy52MS5EZWxldGVDdXN0b21lclByb2ZpbGVSZXF1ZXN0Giouc2V0dGluZ3MudjEuRGVsZXRlQ3VzdG9tZXJQcm9maWxlUmVzcG9uc2USjAEKH0dldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXMSMy5zZXR0aW5ncy52MS5HZXRDdXN0b21lclJlc29sdXRpb25BdHRyaWJ1dGVzUmVxdWVzdBo0LnNldHRpbmdzLnYxLkdldEN1c3RvbWVyUmVzb2x1dGlvbkF0dHJpYnV0ZXNSZXNwb25zZRJfChBHZXRFZGl0b3JDb25maWdzEiQuc2V0dGluZ3MudjEuR2V0RWRpdG9yQ29uZmlnc1JlcXVlc3QaJS5zZXR0aW5ncy52MS5HZXRFZGl0b3JDb25maWdzUmVzcG9uc2USZQoSTGlzdFZhcmlhbnRDYXRhbG9nEiYuc2V0dGluZ3MudjEuTGlzdFZhcmlhbnRDYXRhbG9nUmVxdWVzdBonLnNldHRpbmdzLnYxLkxpc3RWYXJpYW50Q2F0YWxvZ1Jlc3BvbnNlEnEKFkdldFZhcmlhbnRDYXRhbG9nRW50cnkSKi5zZXR0aW5ncy52MS5HZXRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBorLnNldHRpbmdzLnYxLkdldFZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRJ6ChlDcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5Ei0uc2V0dGluZ3MudjEuQ3JlYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaLi5zZXR0aW5ncy52MS5DcmVhdGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USegoZVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeRItLnNldHRpbmdzLnYxLlVwZGF0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuVXBkYXRlVmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEnoKGURlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnkSLS5zZXR0aW5ncy52MS5EZWxldGVWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBouLnNldHRpbmdzLnYxLkRlbGV0ZVZhcmlhbnRDYXRhbG9nRW50cnlSZXNwb25zZRKGAQodR2V0RGVmYXVsdFZhcmlhbnRDYXRhbG9nRW50cnkSMS5zZXR0aW5ncy52MS5HZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlcXVlc3QaMi5zZXR0aW5ncy52MS5HZXREZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeVJlc3BvbnNlEo8BCiBFbnN1cmVEZWZhdWx0VmFyaWFudENhdGFsb2dFbnRyeRI0LnNldHRpbmdzLnYxLkVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVxdWVzdBo1LnNldHRpbmdzLnYxLkVuc3VyZURlZmF1bHRWYXJpYW50Q2F0YWxvZ0VudHJ5UmVzcG9uc2USXwoQR2V0UHJvamVjdFNjaGVtYRIkLnNldHRpbmdzLnYxLkdldFByb2plY3RTY2hlbWFSZXF1ZXN0GiUuc2V0dGluZ3MudjEuR2V0UHJvamVjdFNjaGVtYVJlc3BvbnNlEnQKF1B1Ymxpc2hDb250ZXh0RGltZW5zaW9uEisuc2V0dGluZ3MudjEuUHVibGlzaENvbnRleHREaW1lbnNpb25SZXF1ZXN0Giwuc2V0dGluZ3MudjEuUHVibGlzaENvbnRleHREaW1lbnNpb25SZXNwb25zZRJ6ChlVbnB1Ymxpc2hDb250ZXh0RGltZW5zaW9uEi0uc2V0dGluZ3MudjEuVW5wdWJsaXNoQ29udGV4dERpbWVuc2lvblJlcXVlc3QaLi5zZXR0aW5ncy52MS5VbnB1Ymxpc2hDb250ZXh0RGltZW5zaW9uUmVzcG9uc2USjwEKIEdldENvbnRleHREaW1lbnNpb25QdWJsaXNoU3RhdHVzEjQuc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblB1Ymxpc2hTdGF0dXNSZXF1ZXN0GjUuc2V0dGluZ3MudjEuR2V0Q29udGV4dERpbWVuc2lvblB1Ymxpc2hTdGF0dXNSZXNwb25zZRKMAQofU2NoZWR1bGVDb250ZXh0RGltZW5zaW9uUHVibGlzaBIzLnNldHRpbmdzLnYxLlNjaGVkdWxlQ29udGV4dERpbWVuc2lvblB1Ymxpc2hSZXF1ZXN0GjQuc2V0dGluZ3MudjEuU2NoZWR1bGVDb250ZXh0RGltZW5zaW9uUHVibGlzaFJlc3BvbnNlEqEBCiZDYW5jZWxTY2hlZHVsZWRDb250ZXh0RGltZW5zaW9uUHVibGlzaBI6LnNldHRpbmdzLnYxLkNhbmNlbFNjaGVkdWxlZENvbnRleHREaW1lbnNpb25QdWJsaXNoUmVxdWVzdBo7LnNldHRpbmdzLnYxLkNhbmNlbFNjaGVkdWxlZENvbnRleHREaW1lbnNpb25QdWJsaXNoUmVzcG9uc2USfQoaR2V0Q29udGV4dERpbWVuc2lvblZlcnNpb24SLi5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlcXVlc3QaLy5zZXR0aW5ncy52MS5HZXRDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlc3BvbnNlEoMBChxMaXN0Q29udGV4dERpbWVuc2lvblZlcnNpb25zEjAuc2V0dGluZ3MudjEuTGlzdENvbnRleHREaW1lbnNpb25WZXJzaW9uc1JlcXVlc3QaMS5zZXR0aW5ncy52MS5MaXN0Q29udGV4dERpbWVuc2lvblZlcnNpb25zUmVzcG9uc2USiQEKHlJlc3RvcmVDb250ZXh0RGltZW5zaW9uVmVyc2lvbhIyLnNldHRpbmdzLnYxLlJlc3RvcmVDb250ZXh0RGltZW5zaW9uVmVyc2lvblJlcXVlc3QaMy5zZXR0aW5ncy52MS5SZXN0b3JlQ29udGV4dERpbWVuc2lvblZlcnNpb25SZXNwb25zZRJ0ChdHZXRQcm9maWxlU2NoZW1hVmVyc2lvbhIrLnNldHRpbmdzLnYxLkdldFByb2ZpbGVTY2hlbWFWZXJzaW9uUmVxdWVzdBosLnNldHRpbmdzLnYxLkdldFByb2ZpbGVTY2hlbWFWZXJzaW9uUmVzcG9uc2USegoZTGlzdFByb2ZpbGVTY2hlbWFWZXJzaW9ucxItLnNldHRpbmdzLnYxLkxpc3RQcm9maWxlU2NoZW1hVmVyc2lvbnNSZXF1ZXN0Gi4uc2V0dGluZ3MudjEuTGlzdFByb2ZpbGVTY2hlbWFWZXJzaW9uc1Jlc3BvbnNlEoABChtSZXN0b3JlUHJvZmlsZVNjaGVtYVZlcnNpb24SLy5zZXR0aW5ncy52MS5SZXN0b3JlUHJvZmlsZVNjaGVtYVZlcnNpb25SZXF1ZXN0GjAuc2V0dGluZ3MudjEuUmVzdG9yZVByb2ZpbGVTY2hlbWFWZXJzaW9uUmVzcG9uc2USawoUUHVibGlzaFByb2ZpbGVTY2hlbWESKC5zZXR0aW5ncy52MS5QdWJsaXNoUHJvZmlsZVNjaGVtYVJlcXVlc3QaKS5zZXR0aW5ncy52MS5QdWJsaXNoUHJvZmlsZVNjaGVtYVJlc3BvbnNlEnEKFlVucHVibGlzaFByb2ZpbGVTY2hlbWESKi5zZXR0aW5ncy52MS5VbnB1Ymxpc2hQcm9maWxlU2NoZW1hUmVxdWVzdBorLnNldHRpbmdzLnYxLlVucHVibGlzaFByb2ZpbGVTY2hlbWFSZXNwb25zZRKGAQodR2V0UHJvZmlsZVNjaGVtYVB1Ymxpc2hTdGF0dXMSMS5zZXR0aW5ncy52MS5HZXRQcm9maWxlU2NoZW1hUHVibGlzaFN0YXR1c1JlcXVlc3QaMi5zZXR0aW5ncy52MS5HZXRQcm9maWxlU2NoZW1hUHVibGlzaFN0YXR1c1Jlc3BvbnNlEoMBChxTY2hlZHVsZVByb2ZpbGVTY2hlbWFQdWJsaXNoEjAuc2V0dGluZ3MudjEuU2NoZWR1bGVQcm9maWxlU2NoZW1hUHVibGlzaFJlcXVlc3QaMS5zZXR0aW5ncy52MS5TY2hlZHVsZVByb2ZpbGVTY2hlbWFQdWJsaXNoUmVzcG9uc2USmAEKI0NhbmNlbFNjaGVkdWxlZFByb2ZpbGVTY2hlbWFQdWJsaXNoEjcuc2V0dGluZ3MudjEuQ2FuY2VsU2NoZWR1bGVkUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXF1ZXN0Gjguc2V0dGluZ3MudjEuQ2FuY2VsU2NoZWR1bGVkUHJvZmlsZVNjaGVtYVB1Ymxpc2hSZXNwb25zZRJ0ChdHZXRQcm9qZWN0UHVibGlzaFN0YXR1cxIrLnNldHRpbmdzLnYxLkdldFByb2plY3RQdWJsaXNoU3RhdHVzUmVxdWVzdBosLnNldHRpbmdzLnYxLkdldFByb2plY3RQdWJsaXNoU3RhdHVzUmVzcG9uc2USawoUUHVibGlzaFByb2plY3RTY2hlbWESKC5zZXR0aW5ncy52MS5QdWJsaXNoUHJvamVjdFNjaGVtYVJlcXVlc3QaKS5zZXR0aW5ncy52MS5QdWJsaXNoUHJvamVjdFNjaGVtYVJlc3BvbnNlElwKD0dldERlc2lnblRva2VucxIjLnNldHRpbmdzLnYxLkdldERlc2lnblRva2Vuc1JlcXVlc3QaJC5zZXR0aW5ncy52MS5HZXREZXNpZ25Ub2tlbnNSZXNwb25zZRJlChJVcGRhdGVEZXNpZ25Ub2tlbnMSJi5zZXR0aW5ncy52MS5VcGRhdGVEZXNpZ25Ub2tlbnNSZXF1ZXN0Gicuc2V0dGluZ3MudjEuVXBkYXRlRGVzaWduVG9rZW5zUmVzcG9uc2USaAoTUHVibGlzaERlc2lnblRva2VucxInLnNldHRpbmdzLnYxLlB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXF1ZXN0Giguc2V0dGluZ3MudjEuUHVibGlzaERlc2lnblRva2Vuc1Jlc3BvbnNlEm4KFVVucHVibGlzaERlc2lnblRva2VucxIpLnNldHRpbmdzLnYxLlVucHVibGlzaERlc2lnblRva2Vuc1JlcXVlc3QaKi5zZXR0aW5ncy52MS5VbnB1Ymxpc2hEZXNpZ25Ub2tlbnNSZXNwb25zZRKDAQocR2V0RGVzaWduVG9rZW5zUHVibGlzaFN0YXR1cxIwLnNldHRpbmdzLnYxLkdldERlc2lnblRva2Vuc1B1Ymxpc2hTdGF0dXNSZXF1ZXN0GjEuc2V0dGluZ3MudjEuR2V0RGVzaWduVG9rZW5zUHVibGlzaFN0YXR1c1Jlc3BvbnNlEoABChtTY2hlZHVsZURlc2lnblRva2Vuc1B1Ymxpc2gSLy5zZXR0aW5ncy52MS5TY2hlZHVsZURlc2lnblRva2Vuc1B1Ymxpc2hSZXF1ZXN0GjAuc2V0dGluZ3MudjEuU2NoZWR1bGVEZXNpZ25Ub2tlbnNQdWJsaXNoUmVzcG9uc2USlQEKIkNhbmNlbFNjaGVkdWxlZERlc2lnblRva2Vuc1B1Ymxpc2gSNi5zZXR0aW5ncy52MS5DYW5jZWxTY2hlZHVsZWREZXNpZ25Ub2tlbnNQdWJsaXNoUmVxdWVzdBo3LnNldHRpbmdzLnYxLkNhbmNlbFNjaGVkdWxlZERlc2lnblRva2Vuc1B1Ymxpc2hSZXNwb25zZRJ9ChpDb3VudERlc2lnblRva2VuUmVmZXJlbmNlcxIuLnNldHRpbmdzLnYxLkNvdW50RGVzaWduVG9rZW5SZWZlcmVuY2VzUmVxdWVzdBovLnNldHRpbmdzLnYxLkNvdW50RGVzaWduVG9rZW5SZWZlcmVuY2VzUmVzcG9uc2USbgoVR2V0RGVzaWduVG9rZW5WZXJzaW9uEikuc2V0dGluZ3MudjEuR2V0RGVzaWduVG9rZW5WZXJzaW9uUmVxdWVzdBoqLnNldHRpbmdzLnYxLkdldERlc2lnblRva2VuVmVyc2lvblJlc3BvbnNlEnQKF0xpc3REZXNpZ25Ub2tlblZlcnNpb25zEisuc2V0dGluZ3MudjEuTGlzdERlc2lnblRva2VuVmVyc2lvbnNSZXF1ZXN0Giwuc2V0dGluZ3MudjEuTGlzdERlc2lnblRva2VuVmVyc2lvbnNSZXNwb25zZRJ6ChlSZXN0b3JlRGVzaWduVG9rZW5WZXJzaW9uEi0uc2V0dGluZ3MudjEuUmVzdG9yZURlc2lnblRva2VuVmVyc2lvblJlcXVlc3QaLi5zZXR0aW5ncy52MS5SZXN0b3JlRGVzaWduVG9rZW5WZXJzaW9uUmVzcG9uc2VCPVo7Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL3NldHRpbmdzL3YxO3NldHRpbmdzdjFiBnByb3RvMw", [file_google_protobuf_struct6, file_google_protobuf_timestamp7, file_expressions_v1_expressions, file_publish_v1_publish, file_common_v1_pagination, file_common_v1_access]);
726
+ var SettingSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 0);
727
+ var NoteSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 2);
728
+ var GetSettingsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 4);
729
+ var UpdateSettingRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 6);
730
+ var CreateNoteRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 10);
731
+ var GetNoteRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 12);
732
+ var ListNotesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 14);
733
+ var UpdateNoteRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 16);
734
+ var DeleteNoteRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 18);
735
+ var ListMyMentionsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 23);
736
+ var UpdateMentionStatusRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 25);
737
+ var LocaleSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 41);
738
+ var ListLocalesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 42);
739
+ var GetLocaleRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 44);
740
+ var CreateLocaleRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 46);
741
+ var UpdateLocaleRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 48);
742
+ var DeleteLocaleRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 50);
743
+ var GetNavPreferencesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 53);
744
+ var UpdateNavPreferencesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 55);
745
+ var ListRecentlyOpenedRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 58);
746
+ var TrackRecentlyOpenedRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 60);
747
+ var RemoveRecentlyOpenedRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 62);
748
+ var ClearRecentlyOpenedRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 64);
749
+ var ListContextDimensionsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 68);
750
+ var GetContextDimensionRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 70);
751
+ var CreateContextDimensionRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 72);
752
+ var UpdateContextDimensionRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 74);
753
+ var DeleteContextDimensionRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 76);
754
+ var GetContextDimensionValuesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 78);
755
+ var CustomerProfileFieldSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 80);
756
+ var CustomerProfileSchemaSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 82);
757
+ var GetCustomerProfileSchemaRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 83);
758
+ var VariantCatalogEntrySchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 85);
759
+ var ListVariantCatalogRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 86);
760
+ var GetVariantCatalogEntryRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 88);
761
+ var CreateVariantCatalogEntryRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 90);
762
+ var UpdateVariantCatalogEntryRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 92);
763
+ var DeleteVariantCatalogEntryRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 94);
764
+ var GetCustomerProfileRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 96);
765
+ var CreateCustomerProfileRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 98);
766
+ var UpdateCustomerProfileRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 100);
767
+ var UpdateCustomerProfileSchemaRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 102);
768
+ var GetCustomerResolutionAttributesRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 112);
769
+ var GetEditorConfigsRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 116);
770
+ var GetDefaultLocaleRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 129);
771
+ var GetLocaleByCodeRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 131);
772
+ var DeleteSettingRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 135);
773
+ var GetDesignTokensRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 156);
774
+ var UpdateDesignTokensRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 158);
775
+ var PublishDesignTokensRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 160);
776
+ var UnpublishDesignTokensRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 162);
777
+ var GetDesignTokensPublishStatusRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 164);
778
+ var PublishProfileSchemaRequestSchema = /* @__PURE__ */ messageDesc11(file_settings_v1_settings, 200);
779
+ var CustomerProfileLookupAudienceSchema = /* @__PURE__ */ enumDesc7(file_settings_v1_settings, 3);
780
+ var CustomerProfileLookupAudience = /* @__PURE__ */ tsEnum7(CustomerProfileLookupAudienceSchema);
781
+ var SettingsService = /* @__PURE__ */ serviceDesc7(file_settings_v1_settings, 0);
755
782
 
756
783
  // ../../packages/proto-ts/src/storage/v1/storage_pb.js
757
- import { enumDesc as enumDesc7, fileDesc as fileDesc11, messageDesc as messageDesc11, serviceDesc as serviceDesc7, tsEnum as tsEnum7 } from "@bufbuild/protobuf/codegenv2";
784
+ import { enumDesc as enumDesc8, fileDesc as fileDesc12, messageDesc as messageDesc12, serviceDesc as serviceDesc8, tsEnum as tsEnum8 } from "@bufbuild/protobuf/codegenv2";
758
785
  import { file_google_protobuf_struct as file_google_protobuf_struct7, file_google_protobuf_timestamp as file_google_protobuf_timestamp8 } from "@bufbuild/protobuf/wkt";
759
- var file_storage_v1_storage = /* @__PURE__ */ fileDesc11("ChhzdG9yYWdlL3YxL3N0b3JhZ2UucHJvdG8SCnN0b3JhZ2UudjEi6g4KBEZpbGUSCgoCaWQYASABKAkSEAoIZmlsZW5hbWUYAiABKAkSEQoJbWltZV90eXBlGAMgASgJEgwKBHNpemUYBCABKAMSCwoDdXJsGAUgASgJEhMKC3N0b3JhZ2Vfa2V5GAYgASgJEiYKBnNvdXJjZRgHIAEoDjIWLnN0b3JhZ2UudjEuRmlsZVNvdXJjZRImCgZzdGF0dXMYCCABKA4yFi5zdG9yYWdlLnYxLkZpbGVTdGF0dXMSEwoGZm9sZGVyGAkgASgJSACIAQESDAoEdGFncxgKIAMoCRIpCghtZXRhZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEgoFd2lkdGgYFCABKAVIAYgBARITCgZoZWlnaHQYFSABKAVIAogBARIVCghibHVyaGFzaBgWIAEoCUgDiAEBEhsKDmRvbWluYW50X2NvbG9yGBcgASgJSASIAQESFQoIZHVyYXRpb24YGCABKAFIBYgBARIaCg10aHVtYm5haWxfdXJsGBkgASgJSAaIAQESGAoLcHJldmlld191cmwYGiABKAlIB4gBARIdChBobHNfbWFuaWZlc3RfdXJsGBsgASgJSAiIAQESFQoIYWx0X3RleHQYHCABKAlICYgBARIUCgdjYXB0aW9uGB0gASgJSAqIAQESGAoLZGVzY3JpcHRpb24YHiABKAlIC4gBARI4Cg11c2FnZV9ieV90eXBlGCggAygLMiEuc3RvcmFnZS52MS5GaWxlLlVzYWdlQnlUeXBlRW50cnkSNQoMbGFzdF91c2VkX2F0GCkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgMiAEBEhcKCmNyZWF0ZWRfYnkYMiABKAlIDYgBARIYCgtjdXN0b21lcl9pZBgzIAEoCUgOiAEBEi4KCmNyZWF0ZWRfYXQYPCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYPSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCmRlbGV0ZWRfYXQYPiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSA+IAQESFwoKZGVsZXRlZF9ieRg/IAEoCUgQiAEBEjEKCHB1cmdlX2F0GEAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgRiAEBEjAKEHRodW1ibmFpbF9zdGF0dXMYRiABKA4yFi5zdG9yYWdlLnYxLkZpbGVTdGF0dXMSGgoSdGh1bWJuYWlsX2F0dGVtcHRzGEcgASgFEkIKGXRodW1ibmFpbF9sYXN0X2F0dGVtcHRfYXQYSCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBKIAQESIQoUdGh1bWJuYWlsX2xhc3RfZXJyb3IYSSABKAlIE4gBARIuCg5wcmV2aWV3X3N0YXR1cxhKIAEoDjIWLnN0b3JhZ2UudjEuRmlsZVN0YXR1cxIYChBwcmV2aWV3X2F0dGVtcHRzGEsgASgFEkAKF3ByZXZpZXdfbGFzdF9hdHRlbXB0X2F0GEwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgUiAEBEh8KEnByZXZpZXdfbGFzdF9lcnJvchhNIAEoCUgViAEBEioKCmhsc19zdGF0dXMYTiABKA4yFi5zdG9yYWdlLnYxLkZpbGVTdGF0dXMSFAoMaGxzX2F0dGVtcHRzGE8gASgFEjwKE2hsc19sYXN0X2F0dGVtcHRfYXQYUCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBaIAQESGwoOaGxzX2xhc3RfZXJyb3IYUSABKAlIF4gBARoyChBVc2FnZUJ5VHlwZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoBToCOAFCCQoHX2ZvbGRlckIICgZfd2lkdGhCCQoHX2hlaWdodEILCglfYmx1cmhhc2hCEQoPX2RvbWluYW50X2NvbG9yQgsKCV9kdXJhdGlvbkIQCg5fdGh1bWJuYWlsX3VybEIOCgxfcHJldmlld191cmxCEwoRX2hsc19tYW5pZmVzdF91cmxCCwoJX2FsdF90ZXh0QgoKCF9jYXB0aW9uQg4KDF9kZXNjcmlwdGlvbkIPCg1fbGFzdF91c2VkX2F0Qg0KC19jcmVhdGVkX2J5Qg4KDF9jdXN0b21lcl9pZEINCgtfZGVsZXRlZF9hdEINCgtfZGVsZXRlZF9ieUILCglfcHVyZ2VfYXRCHAoaX3RodW1ibmFpbF9sYXN0X2F0dGVtcHRfYXRCFwoVX3RodW1ibmFpbF9sYXN0X2Vycm9yQhoKGF9wcmV2aWV3X2xhc3RfYXR0ZW1wdF9hdEIVChNfcHJldmlld19sYXN0X2Vycm9yQhYKFF9obHNfbGFzdF9hdHRlbXB0X2F0QhEKD19obHNfbGFzdF9lcnJvciI4CgxTdG9yYWdlVXNhZ2USEwoLdG90YWxfZmlsZXMYASABKAUSEwoLdG90YWxfYnl0ZXMYAiABKAMiqQEKF0NyZWF0ZUZpbGVVcGxvYWRSZXF1ZXN0EhAKCGZpbGVuYW1lGAEgASgJEhEKCW1pbWVfdHlwZRgCIAEoCRIMCgRzaXplGAMgASgDEhMKBmZvbGRlchgEIAEoCUgAiAEBEi4KCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBQgkKB19mb2xkZXJCCwoJX21ldGFkYXRhIoYBChhDcmVhdGVGaWxlVXBsb2FkUmVzcG9uc2USEQoJdXBsb2FkX2lkGAEgASgJEhIKCnVwbG9hZF91cmwYAiABKAkSEwoLc3RvcmFnZV9rZXkYAyABKAkSLgoKZXhwaXJlc19hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiLQoYQ29uZmlybUZpbGVVcGxvYWRSZXF1ZXN0EhEKCXVwbG9hZF9pZBgBIAEoCSI7ChlDb25maXJtRmlsZVVwbG9hZFJlc3BvbnNlEh4KBGZpbGUYASABKAsyEC5zdG9yYWdlLnYxLkZpbGUiHAoOR2V0RmlsZVJlcXVlc3QSCgoCaWQYASABKAkiMQoPR2V0RmlsZVJlc3BvbnNlEh4KBGZpbGUYASABKAsyEC5zdG9yYWdlLnYxLkZpbGUi8AEKEExpc3RGaWxlc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESFwoPaW5jbHVkZV9kZWxldGVkGAIgASgIEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQESFAoMb25seV9kZWxldGVkGAcgASgIQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QijwEKEUxpc3RGaWxlc1Jlc3BvbnNlEh8KBWl0ZW1zGAEgAygLMhAuc3RvcmFnZS52MS5GaWxlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIYChZHZXRTdG9yYWdlVXNhZ2VSZXF1ZXN0IkIKF0dldFN0b3JhZ2VVc2FnZVJlc3BvbnNlEicKBXVzYWdlGAEgASgLMhguc3RvcmFnZS52MS5TdG9yYWdlVXNhZ2Ui5gEKEVVwZGF0ZUZpbGVSZXF1ZXN0EgoKAmlkGAEgASgJEhUKCGZpbGVuYW1lGAIgASgJSACIAQESEwoGZm9sZGVyGAMgASgJSAGIAQESDAoEdGFncxgEIAMoCRIrCgZzdGF0dXMYBSABKA4yFi5zdG9yYWdlLnYxLkZpbGVTdGF0dXNIAogBARIuCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBAUILCglfZmlsZW5hbWVCCQoHX2ZvbGRlckIJCgdfc3RhdHVzQgsKCV9tZXRhZGF0YSI0ChJVcGRhdGVGaWxlUmVzcG9uc2USHgoEZmlsZRgBIAEoCzIQLnN0b3JhZ2UudjEuRmlsZSKXAQoZVXBkYXRlRmlsZU1ldGFkYXRhUmVxdWVzdBIKCgJpZBgBIAEoCRIVCghhbHRfdGV4dBgCIAEoCUgAiAEBEhQKB2NhcHRpb24YAyABKAlIAYgBARIYCgtkZXNjcmlwdGlvbhgEIAEoCUgCiAEBQgsKCV9hbHRfdGV4dEIKCghfY2FwdGlvbkIOCgxfZGVzY3JpcHRpb24iPAoaVXBkYXRlRmlsZU1ldGFkYXRhUmVzcG9uc2USHgoEZmlsZRgBIAEoCzIQLnN0b3JhZ2UudjEuRmlsZSIfChFEZWxldGVGaWxlUmVxdWVzdBIKCgJpZBgBIAEoCSIlChJEZWxldGVGaWxlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIqChxQZXJtYW5lbnRseURlbGV0ZUZpbGVSZXF1ZXN0EgoKAmlkGAEgASgJIjAKHVBlcm1hbmVudGx5RGVsZXRlRmlsZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiIAoSUmVzdG9yZUZpbGVSZXF1ZXN0EgoKAmlkGAEgASgJIjUKE1Jlc3RvcmVGaWxlUmVzcG9uc2USHgoEZmlsZRgBIAEoCzIQLnN0b3JhZ2UudjEuRmlsZSITChFFbXB0eVRyYXNoUmVxdWVzdCI6ChJFbXB0eVRyYXNoUmVzcG9uc2USDwoHZGVsZXRlZBgBIAEoBRITCgtmcmVlZF9ieXRlcxgCIAEoAyI9ChVUcmFja0ZpbGVVc2FnZVJlcXVlc3QSDwoHZmlsZV9pZBgBIAEoCRITCgtlbnRpdHlfdHlwZRgCIAEoCSI4ChZUcmFja0ZpbGVVc2FnZVJlc3BvbnNlEh4KBGZpbGUYASABKAsyEC5zdG9yYWdlLnYxLkZpbGUiPgoWUmVtb3ZlRmlsZVVzYWdlUmVxdWVzdBIPCgdmaWxlX2lkGAEgASgJEhMKC2VudGl0eV90eXBlGAIgASgJIioKF1JlbW92ZUZpbGVVc2FnZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiegobQ2xlYW51cE9ycGhhbmVkRmlsZXNSZXF1ZXN0Eh0KFW9ycGhhbl90aHJlc2hvbGRfZGF5cxgBIAEoBRIPCgdkcnlfcnVuGAIgASgIEg0KBWxpbWl0GAMgASgFEhwKFHRyYXNoX3JldGVudGlvbl9kYXlzGAQgASgFIlUKHENsZWFudXBPcnBoYW5lZEZpbGVzUmVzcG9uc2USDwoHZGVsZXRlZBgBIAEoBRITCgtmcmVlZF9ieXRlcxgCIAEoAxIPCgdkcnlfcnVuGAMgASgIIlcKGlJldHJ5RmlsZUdlbmVyYXRpb25SZXF1ZXN0Eg8KB2ZpbGVfaWQYASABKAkSKAoFYXNzZXQYAiABKA4yGS5zdG9yYWdlLnYxLkZpbGVBc3NldEtpbmQiPQobUmV0cnlGaWxlR2VuZXJhdGlvblJlc3BvbnNlEh4KBGZpbGUYASABKAsyEC5zdG9yYWdlLnYxLkZpbGUqpgEKCkZpbGVTdGF0dXMSGwoXRklMRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIXChNGSUxFX1NUQVRVU19QRU5ESU5HEAESGgoWRklMRV9TVEFUVVNfUFJPQ0VTU0lORxACEhUKEUZJTEVfU1RBVFVTX1JFQURZEAMSFgoSRklMRV9TVEFUVVNfRkFJTEVEEAQSFwoTRklMRV9TVEFUVVNfU0tJUFBFRBAFKl0KCkZpbGVTb3VyY2USGwoXRklMRV9TT1VSQ0VfVU5TUEVDSUZJRUQQABIYChRGSUxFX1NPVVJDRV9JTlRFUk5BTBABEhgKFEZJTEVfU09VUkNFX0VYVEVSTkFMEAIqhQEKDUZpbGVBc3NldEtpbmQSHwobRklMRV9BU1NFVF9LSU5EX1VOU1BFQ0lGSUVEEAASHQoZRklMRV9BU1NFVF9LSU5EX1RIVU1CTkFJTBABEhsKF0ZJTEVfQVNTRVRfS0lORF9QUkVWSUVXEAISFwoTRklMRV9BU1NFVF9LSU5EX0hMUxADMs0KCg5TdG9yYWdlU2VydmljZRJdChBDcmVhdGVGaWxlVXBsb2FkEiMuc3RvcmFnZS52MS5DcmVhdGVGaWxlVXBsb2FkUmVxdWVzdBokLnN0b3JhZ2UudjEuQ3JlYXRlRmlsZVVwbG9hZFJlc3BvbnNlEmAKEUNvbmZpcm1GaWxlVXBsb2FkEiQuc3RvcmFnZS52MS5Db25maXJtRmlsZVVwbG9hZFJlcXVlc3QaJS5zdG9yYWdlLnYxLkNvbmZpcm1GaWxlVXBsb2FkUmVzcG9uc2USQgoHR2V0RmlsZRIaLnN0b3JhZ2UudjEuR2V0RmlsZVJlcXVlc3QaGy5zdG9yYWdlLnYxLkdldEZpbGVSZXNwb25zZRJICglMaXN0RmlsZXMSHC5zdG9yYWdlLnYxLkxpc3RGaWxlc1JlcXVlc3QaHS5zdG9yYWdlLnYxLkxpc3RGaWxlc1Jlc3BvbnNlEloKD0dldFN0b3JhZ2VVc2FnZRIiLnN0b3JhZ2UudjEuR2V0U3RvcmFnZVVzYWdlUmVxdWVzdBojLnN0b3JhZ2UudjEuR2V0U3RvcmFnZVVzYWdlUmVzcG9uc2USSwoKVXBkYXRlRmlsZRIdLnN0b3JhZ2UudjEuVXBkYXRlRmlsZVJlcXVlc3QaHi5zdG9yYWdlLnYxLlVwZGF0ZUZpbGVSZXNwb25zZRJjChJVcGRhdGVGaWxlTWV0YWRhdGESJS5zdG9yYWdlLnYxLlVwZGF0ZUZpbGVNZXRhZGF0YVJlcXVlc3QaJi5zdG9yYWdlLnYxLlVwZGF0ZUZpbGVNZXRhZGF0YVJlc3BvbnNlEksKCkRlbGV0ZUZpbGUSHS5zdG9yYWdlLnYxLkRlbGV0ZUZpbGVSZXF1ZXN0Gh4uc3RvcmFnZS52MS5EZWxldGVGaWxlUmVzcG9uc2USbAoVUGVybWFuZW50bHlEZWxldGVGaWxlEiguc3RvcmFnZS52MS5QZXJtYW5lbnRseURlbGV0ZUZpbGVSZXF1ZXN0Gikuc3RvcmFnZS52MS5QZXJtYW5lbnRseURlbGV0ZUZpbGVSZXNwb25zZRJOCgtSZXN0b3JlRmlsZRIeLnN0b3JhZ2UudjEuUmVzdG9yZUZpbGVSZXF1ZXN0Gh8uc3RvcmFnZS52MS5SZXN0b3JlRmlsZVJlc3BvbnNlEksKCkVtcHR5VHJhc2gSHS5zdG9yYWdlLnYxLkVtcHR5VHJhc2hSZXF1ZXN0Gh4uc3RvcmFnZS52MS5FbXB0eVRyYXNoUmVzcG9uc2USVwoOVHJhY2tGaWxlVXNhZ2USIS5zdG9yYWdlLnYxLlRyYWNrRmlsZVVzYWdlUmVxdWVzdBoiLnN0b3JhZ2UudjEuVHJhY2tGaWxlVXNhZ2VSZXNwb25zZRJaCg9SZW1vdmVGaWxlVXNhZ2USIi5zdG9yYWdlLnYxLlJlbW92ZUZpbGVVc2FnZVJlcXVlc3QaIy5zdG9yYWdlLnYxLlJlbW92ZUZpbGVVc2FnZVJlc3BvbnNlEmkKFENsZWFudXBPcnBoYW5lZEZpbGVzEicuc3RvcmFnZS52MS5DbGVhbnVwT3JwaGFuZWRGaWxlc1JlcXVlc3QaKC5zdG9yYWdlLnYxLkNsZWFudXBPcnBoYW5lZEZpbGVzUmVzcG9uc2USZgoTUmV0cnlGaWxlR2VuZXJhdGlvbhImLnN0b3JhZ2UudjEuUmV0cnlGaWxlR2VuZXJhdGlvblJlcXVlc3QaJy5zdG9yYWdlLnYxLlJldHJ5RmlsZUdlbmVyYXRpb25SZXNwb25zZUI7WjlnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vc3RvcmFnZS92MTtzdG9yYWdldjFiBnByb3RvMw", [file_google_protobuf_struct7, file_google_protobuf_timestamp8, file_common_v1_pagination]);
760
- var FileSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 0);
761
- var StorageUsageSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 1);
762
- var CreateFileUploadRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 2);
763
- var ConfirmFileUploadRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 4);
764
- var GetFileRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 6);
765
- var ListFilesRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 8);
766
- var GetStorageUsageRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 10);
767
- var UpdateFileRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 12);
768
- var UpdateFileMetadataRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 14);
769
- var DeleteFileRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 16);
770
- var PermanentlyDeleteFileRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 18);
771
- var RestoreFileRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 20);
772
- var TrackFileUsageRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 24);
773
- var RemoveFileUsageRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 26);
774
- var CleanupOrphanedFilesRequestSchema = /* @__PURE__ */ messageDesc11(file_storage_v1_storage, 28);
775
- var StorageService = /* @__PURE__ */ serviceDesc7(file_storage_v1_storage, 0);
786
+ var file_storage_v1_storage = /* @__PURE__ */ fileDesc12("ChhzdG9yYWdlL3YxL3N0b3JhZ2UucHJvdG8SCnN0b3JhZ2UudjEi6g4KBEZpbGUSCgoCaWQYASABKAkSEAoIZmlsZW5hbWUYAiABKAkSEQoJbWltZV90eXBlGAMgASgJEgwKBHNpemUYBCABKAMSCwoDdXJsGAUgASgJEhMKC3N0b3JhZ2Vfa2V5GAYgASgJEiYKBnNvdXJjZRgHIAEoDjIWLnN0b3JhZ2UudjEuRmlsZVNvdXJjZRImCgZzdGF0dXMYCCABKA4yFi5zdG9yYWdlLnYxLkZpbGVTdGF0dXMSEwoGZm9sZGVyGAkgASgJSACIAQESDAoEdGFncxgKIAMoCRIpCghtZXRhZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEgoFd2lkdGgYFCABKAVIAYgBARITCgZoZWlnaHQYFSABKAVIAogBARIVCghibHVyaGFzaBgWIAEoCUgDiAEBEhsKDmRvbWluYW50X2NvbG9yGBcgASgJSASIAQESFQoIZHVyYXRpb24YGCABKAFIBYgBARIaCg10aHVtYm5haWxfdXJsGBkgASgJSAaIAQESGAoLcHJldmlld191cmwYGiABKAlIB4gBARIdChBobHNfbWFuaWZlc3RfdXJsGBsgASgJSAiIAQESFQoIYWx0X3RleHQYHCABKAlICYgBARIUCgdjYXB0aW9uGB0gASgJSAqIAQESGAoLZGVzY3JpcHRpb24YHiABKAlIC4gBARI4Cg11c2FnZV9ieV90eXBlGCggAygLMiEuc3RvcmFnZS52MS5GaWxlLlVzYWdlQnlUeXBlRW50cnkSNQoMbGFzdF91c2VkX2F0GCkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgMiAEBEhcKCmNyZWF0ZWRfYnkYMiABKAlIDYgBARIYCgtjdXN0b21lcl9pZBgzIAEoCUgOiAEBEi4KCmNyZWF0ZWRfYXQYPCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYPSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCmRlbGV0ZWRfYXQYPiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSA+IAQESFwoKZGVsZXRlZF9ieRg/IAEoCUgQiAEBEjEKCHB1cmdlX2F0GEAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgRiAEBEjAKEHRodW1ibmFpbF9zdGF0dXMYRiABKA4yFi5zdG9yYWdlLnYxLkZpbGVTdGF0dXMSGgoSdGh1bWJuYWlsX2F0dGVtcHRzGEcgASgFEkIKGXRodW1ibmFpbF9sYXN0X2F0dGVtcHRfYXQYSCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBKIAQESIQoUdGh1bWJuYWlsX2xhc3RfZXJyb3IYSSABKAlIE4gBARIuCg5wcmV2aWV3X3N0YXR1cxhKIAEoDjIWLnN0b3JhZ2UudjEuRmlsZVN0YXR1cxIYChBwcmV2aWV3X2F0dGVtcHRzGEsgASgFEkAKF3ByZXZpZXdfbGFzdF9hdHRlbXB0X2F0GEwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgUiAEBEh8KEnByZXZpZXdfbGFzdF9lcnJvchhNIAEoCUgViAEBEioKCmhsc19zdGF0dXMYTiABKA4yFi5zdG9yYWdlLnYxLkZpbGVTdGF0dXMSFAoMaGxzX2F0dGVtcHRzGE8gASgFEjwKE2hsc19sYXN0X2F0dGVtcHRfYXQYUCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBaIAQESGwoOaGxzX2xhc3RfZXJyb3IYUSABKAlIF4gBARoyChBVc2FnZUJ5VHlwZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoBToCOAFCCQoHX2ZvbGRlckIICgZfd2lkdGhCCQoHX2hlaWdodEILCglfYmx1cmhhc2hCEQoPX2RvbWluYW50X2NvbG9yQgsKCV9kdXJhdGlvbkIQCg5fdGh1bWJuYWlsX3VybEIOCgxfcHJldmlld191cmxCEwoRX2hsc19tYW5pZmVzdF91cmxCCwoJX2FsdF90ZXh0QgoKCF9jYXB0aW9uQg4KDF9kZXNjcmlwdGlvbkIPCg1fbGFzdF91c2VkX2F0Qg0KC19jcmVhdGVkX2J5Qg4KDF9jdXN0b21lcl9pZEINCgtfZGVsZXRlZF9hdEINCgtfZGVsZXRlZF9ieUILCglfcHVyZ2VfYXRCHAoaX3RodW1ibmFpbF9sYXN0X2F0dGVtcHRfYXRCFwoVX3RodW1ibmFpbF9sYXN0X2Vycm9yQhoKGF9wcmV2aWV3X2xhc3RfYXR0ZW1wdF9hdEIVChNfcHJldmlld19sYXN0X2Vycm9yQhYKFF9obHNfbGFzdF9hdHRlbXB0X2F0QhEKD19obHNfbGFzdF9lcnJvciI4CgxTdG9yYWdlVXNhZ2USEwoLdG90YWxfZmlsZXMYASABKAUSEwoLdG90YWxfYnl0ZXMYAiABKAMiqQEKF0NyZWF0ZUZpbGVVcGxvYWRSZXF1ZXN0EhAKCGZpbGVuYW1lGAEgASgJEhEKCW1pbWVfdHlwZRgCIAEoCRIMCgRzaXplGAMgASgDEhMKBmZvbGRlchgEIAEoCUgAiAEBEi4KCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBQgkKB19mb2xkZXJCCwoJX21ldGFkYXRhIoYBChhDcmVhdGVGaWxlVXBsb2FkUmVzcG9uc2USEQoJdXBsb2FkX2lkGAEgASgJEhIKCnVwbG9hZF91cmwYAiABKAkSEwoLc3RvcmFnZV9rZXkYAyABKAkSLgoKZXhwaXJlc19hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiLQoYQ29uZmlybUZpbGVVcGxvYWRSZXF1ZXN0EhEKCXVwbG9hZF9pZBgBIAEoCSI7ChlDb25maXJtRmlsZVVwbG9hZFJlc3BvbnNlEh4KBGZpbGUYASABKAsyEC5zdG9yYWdlLnYxLkZpbGUiHAoOR2V0RmlsZVJlcXVlc3QSCgoCaWQYASABKAkiMQoPR2V0RmlsZVJlc3BvbnNlEh4KBGZpbGUYASABKAsyEC5zdG9yYWdlLnYxLkZpbGUi8AEKEExpc3RGaWxlc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESFwoPaW5jbHVkZV9kZWxldGVkGAIgASgIEhIKBWFmdGVyGAMgASgJSAGIAQESEwoGYmVmb3JlGAQgASgJSAKIAQESEgoFZmlyc3QYBSABKAVIA4gBARIRCgRsYXN0GAYgASgFSASIAQESFAoMb25seV9kZWxldGVkGAcgASgIQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QijwEKEUxpc3RGaWxlc1Jlc3BvbnNlEh8KBWl0ZW1zGAEgAygLMhAuc3RvcmFnZS52MS5GaWxlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIYChZHZXRTdG9yYWdlVXNhZ2VSZXF1ZXN0IkIKF0dldFN0b3JhZ2VVc2FnZVJlc3BvbnNlEicKBXVzYWdlGAEgASgLMhguc3RvcmFnZS52MS5TdG9yYWdlVXNhZ2Ui5gEKEVVwZGF0ZUZpbGVSZXF1ZXN0EgoKAmlkGAEgASgJEhUKCGZpbGVuYW1lGAIgASgJSACIAQESEwoGZm9sZGVyGAMgASgJSAGIAQESDAoEdGFncxgEIAMoCRIrCgZzdGF0dXMYBSABKA4yFi5zdG9yYWdlLnYxLkZpbGVTdGF0dXNIAogBARIuCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBAUILCglfZmlsZW5hbWVCCQoHX2ZvbGRlckIJCgdfc3RhdHVzQgsKCV9tZXRhZGF0YSI0ChJVcGRhdGVGaWxlUmVzcG9uc2USHgoEZmlsZRgBIAEoCzIQLnN0b3JhZ2UudjEuRmlsZSKXAQoZVXBkYXRlRmlsZU1ldGFkYXRhUmVxdWVzdBIKCgJpZBgBIAEoCRIVCghhbHRfdGV4dBgCIAEoCUgAiAEBEhQKB2NhcHRpb24YAyABKAlIAYgBARIYCgtkZXNjcmlwdGlvbhgEIAEoCUgCiAEBQgsKCV9hbHRfdGV4dEIKCghfY2FwdGlvbkIOCgxfZGVzY3JpcHRpb24iPAoaVXBkYXRlRmlsZU1ldGFkYXRhUmVzcG9uc2USHgoEZmlsZRgBIAEoCzIQLnN0b3JhZ2UudjEuRmlsZSIfChFEZWxldGVGaWxlUmVxdWVzdBIKCgJpZBgBIAEoCSIlChJEZWxldGVGaWxlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIqChxQZXJtYW5lbnRseURlbGV0ZUZpbGVSZXF1ZXN0EgoKAmlkGAEgASgJIjAKHVBlcm1hbmVudGx5RGVsZXRlRmlsZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiIAoSUmVzdG9yZUZpbGVSZXF1ZXN0EgoKAmlkGAEgASgJIjUKE1Jlc3RvcmVGaWxlUmVzcG9uc2USHgoEZmlsZRgBIAEoCzIQLnN0b3JhZ2UudjEuRmlsZSITChFFbXB0eVRyYXNoUmVxdWVzdCI6ChJFbXB0eVRyYXNoUmVzcG9uc2USDwoHZGVsZXRlZBgBIAEoBRITCgtmcmVlZF9ieXRlcxgCIAEoAyI9ChVUcmFja0ZpbGVVc2FnZVJlcXVlc3QSDwoHZmlsZV9pZBgBIAEoCRITCgtlbnRpdHlfdHlwZRgCIAEoCSI4ChZUcmFja0ZpbGVVc2FnZVJlc3BvbnNlEh4KBGZpbGUYASABKAsyEC5zdG9yYWdlLnYxLkZpbGUiPgoWUmVtb3ZlRmlsZVVzYWdlUmVxdWVzdBIPCgdmaWxlX2lkGAEgASgJEhMKC2VudGl0eV90eXBlGAIgASgJIioKF1JlbW92ZUZpbGVVc2FnZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiegobQ2xlYW51cE9ycGhhbmVkRmlsZXNSZXF1ZXN0Eh0KFW9ycGhhbl90aHJlc2hvbGRfZGF5cxgBIAEoBRIPCgdkcnlfcnVuGAIgASgIEg0KBWxpbWl0GAMgASgFEhwKFHRyYXNoX3JldGVudGlvbl9kYXlzGAQgASgFIlUKHENsZWFudXBPcnBoYW5lZEZpbGVzUmVzcG9uc2USDwoHZGVsZXRlZBgBIAEoBRITCgtmcmVlZF9ieXRlcxgCIAEoAxIPCgdkcnlfcnVuGAMgASgIIlcKGlJldHJ5RmlsZUdlbmVyYXRpb25SZXF1ZXN0Eg8KB2ZpbGVfaWQYASABKAkSKAoFYXNzZXQYAiABKA4yGS5zdG9yYWdlLnYxLkZpbGVBc3NldEtpbmQiPQobUmV0cnlGaWxlR2VuZXJhdGlvblJlc3BvbnNlEh4KBGZpbGUYASABKAsyEC5zdG9yYWdlLnYxLkZpbGUqpgEKCkZpbGVTdGF0dXMSGwoXRklMRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIXChNGSUxFX1NUQVRVU19QRU5ESU5HEAESGgoWRklMRV9TVEFUVVNfUFJPQ0VTU0lORxACEhUKEUZJTEVfU1RBVFVTX1JFQURZEAMSFgoSRklMRV9TVEFUVVNfRkFJTEVEEAQSFwoTRklMRV9TVEFUVVNfU0tJUFBFRBAFKl0KCkZpbGVTb3VyY2USGwoXRklMRV9TT1VSQ0VfVU5TUEVDSUZJRUQQABIYChRGSUxFX1NPVVJDRV9JTlRFUk5BTBABEhgKFEZJTEVfU09VUkNFX0VYVEVSTkFMEAIqhQEKDUZpbGVBc3NldEtpbmQSHwobRklMRV9BU1NFVF9LSU5EX1VOU1BFQ0lGSUVEEAASHQoZRklMRV9BU1NFVF9LSU5EX1RIVU1CTkFJTBABEhsKF0ZJTEVfQVNTRVRfS0lORF9QUkVWSUVXEAISFwoTRklMRV9BU1NFVF9LSU5EX0hMUxADMs0KCg5TdG9yYWdlU2VydmljZRJdChBDcmVhdGVGaWxlVXBsb2FkEiMuc3RvcmFnZS52MS5DcmVhdGVGaWxlVXBsb2FkUmVxdWVzdBokLnN0b3JhZ2UudjEuQ3JlYXRlRmlsZVVwbG9hZFJlc3BvbnNlEmAKEUNvbmZpcm1GaWxlVXBsb2FkEiQuc3RvcmFnZS52MS5Db25maXJtRmlsZVVwbG9hZFJlcXVlc3QaJS5zdG9yYWdlLnYxLkNvbmZpcm1GaWxlVXBsb2FkUmVzcG9uc2USQgoHR2V0RmlsZRIaLnN0b3JhZ2UudjEuR2V0RmlsZVJlcXVlc3QaGy5zdG9yYWdlLnYxLkdldEZpbGVSZXNwb25zZRJICglMaXN0RmlsZXMSHC5zdG9yYWdlLnYxLkxpc3RGaWxlc1JlcXVlc3QaHS5zdG9yYWdlLnYxLkxpc3RGaWxlc1Jlc3BvbnNlEloKD0dldFN0b3JhZ2VVc2FnZRIiLnN0b3JhZ2UudjEuR2V0U3RvcmFnZVVzYWdlUmVxdWVzdBojLnN0b3JhZ2UudjEuR2V0U3RvcmFnZVVzYWdlUmVzcG9uc2USSwoKVXBkYXRlRmlsZRIdLnN0b3JhZ2UudjEuVXBkYXRlRmlsZVJlcXVlc3QaHi5zdG9yYWdlLnYxLlVwZGF0ZUZpbGVSZXNwb25zZRJjChJVcGRhdGVGaWxlTWV0YWRhdGESJS5zdG9yYWdlLnYxLlVwZGF0ZUZpbGVNZXRhZGF0YVJlcXVlc3QaJi5zdG9yYWdlLnYxLlVwZGF0ZUZpbGVNZXRhZGF0YVJlc3BvbnNlEksKCkRlbGV0ZUZpbGUSHS5zdG9yYWdlLnYxLkRlbGV0ZUZpbGVSZXF1ZXN0Gh4uc3RvcmFnZS52MS5EZWxldGVGaWxlUmVzcG9uc2USbAoVUGVybWFuZW50bHlEZWxldGVGaWxlEiguc3RvcmFnZS52MS5QZXJtYW5lbnRseURlbGV0ZUZpbGVSZXF1ZXN0Gikuc3RvcmFnZS52MS5QZXJtYW5lbnRseURlbGV0ZUZpbGVSZXNwb25zZRJOCgtSZXN0b3JlRmlsZRIeLnN0b3JhZ2UudjEuUmVzdG9yZUZpbGVSZXF1ZXN0Gh8uc3RvcmFnZS52MS5SZXN0b3JlRmlsZVJlc3BvbnNlEksKCkVtcHR5VHJhc2gSHS5zdG9yYWdlLnYxLkVtcHR5VHJhc2hSZXF1ZXN0Gh4uc3RvcmFnZS52MS5FbXB0eVRyYXNoUmVzcG9uc2USVwoOVHJhY2tGaWxlVXNhZ2USIS5zdG9yYWdlLnYxLlRyYWNrRmlsZVVzYWdlUmVxdWVzdBoiLnN0b3JhZ2UudjEuVHJhY2tGaWxlVXNhZ2VSZXNwb25zZRJaCg9SZW1vdmVGaWxlVXNhZ2USIi5zdG9yYWdlLnYxLlJlbW92ZUZpbGVVc2FnZVJlcXVlc3QaIy5zdG9yYWdlLnYxLlJlbW92ZUZpbGVVc2FnZVJlc3BvbnNlEmkKFENsZWFudXBPcnBoYW5lZEZpbGVzEicuc3RvcmFnZS52MS5DbGVhbnVwT3JwaGFuZWRGaWxlc1JlcXVlc3QaKC5zdG9yYWdlLnYxLkNsZWFudXBPcnBoYW5lZEZpbGVzUmVzcG9uc2USZgoTUmV0cnlGaWxlR2VuZXJhdGlvbhImLnN0b3JhZ2UudjEuUmV0cnlGaWxlR2VuZXJhdGlvblJlcXVlc3QaJy5zdG9yYWdlLnYxLlJldHJ5RmlsZUdlbmVyYXRpb25SZXNwb25zZUI7WjlnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vc3RvcmFnZS92MTtzdG9yYWdldjFiBnByb3RvMw", [file_google_protobuf_struct7, file_google_protobuf_timestamp8, file_common_v1_pagination]);
787
+ var FileSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 0);
788
+ var StorageUsageSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 1);
789
+ var CreateFileUploadRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 2);
790
+ var ConfirmFileUploadRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 4);
791
+ var GetFileRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 6);
792
+ var ListFilesRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 8);
793
+ var GetStorageUsageRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 10);
794
+ var UpdateFileRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 12);
795
+ var UpdateFileMetadataRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 14);
796
+ var DeleteFileRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 16);
797
+ var PermanentlyDeleteFileRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 18);
798
+ var RestoreFileRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 20);
799
+ var TrackFileUsageRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 24);
800
+ var RemoveFileUsageRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 26);
801
+ var CleanupOrphanedFilesRequestSchema = /* @__PURE__ */ messageDesc12(file_storage_v1_storage, 28);
802
+ var StorageService = /* @__PURE__ */ serviceDesc8(file_storage_v1_storage, 0);
776
803
 
777
804
  // ../../packages/proto-ts/src/operations/v1/operations_pb.js
778
- import { enumDesc as enumDesc8, fileDesc as fileDesc12, messageDesc as messageDesc12, serviceDesc as serviceDesc8, tsEnum as tsEnum8 } from "@bufbuild/protobuf/codegenv2";
805
+ import { enumDesc as enumDesc9, fileDesc as fileDesc13, messageDesc as messageDesc13, serviceDesc as serviceDesc9, tsEnum as tsEnum9 } from "@bufbuild/protobuf/codegenv2";
779
806
  import { file_google_protobuf_struct as file_google_protobuf_struct8, file_google_protobuf_timestamp as file_google_protobuf_timestamp9 } from "@bufbuild/protobuf/wkt";
780
- var file_operations_v1_operations = /* @__PURE__ */ fileDesc12("Ch5vcGVyYXRpb25zL3YxL29wZXJhdGlvbnMucHJvdG8SDW9wZXJhdGlvbnMudjEiMQoNU2VjcmV0QmluZGluZxIMCgRuYW1lGAEgASgJEhIKCnNlY3JldF9yZWYYAiABKAkikQMKD1JlcXVlc3RUZW1wbGF0ZRITCgZtZXRob2QYASABKAlIAIgBARIaCg1wYXRoX3RlbXBsYXRlGAIgASgJSAGIAQESOAoFcXVlcnkYAyADKAsyKS5vcGVyYXRpb25zLnYxLlJlcXVlc3RUZW1wbGF0ZS5RdWVyeUVudHJ5EjwKB2hlYWRlcnMYBCADKAsyKy5vcGVyYXRpb25zLnYxLlJlcXVlc3RUZW1wbGF0ZS5IZWFkZXJzRW50cnkSGgoNYm9keV90ZW1wbGF0ZRgFIAEoCUgCiAEBEhoKDWJhdGNoX2NhcGFibGUYBiABKAhIA4gBARosCgpRdWVyeUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaLgoMSGVhZGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCQoHX21ldGhvZEIQCg5fcGF0aF90ZW1wbGF0ZUIQCg5fYm9keV90ZW1wbGF0ZUIQCg5fYmF0Y2hfY2FwYWJsZSKXDgoJT3BlcmF0aW9uEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEQoEaWNvbhgFIAEoCUgBiAEBEhUKCGNhdGVnb3J5GAYgASgJSAKIAQESEAoIZW5kcG9pbnQYByABKAkSGgoNZW5kcG9pbnRfYXV0aBgIIAEoCUgDiAEBEhIKCnRpbWVvdXRfbXMYCSABKAUSMgoMcmV0cnlfcG9saWN5GAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEjIKDGlucHV0X3NjaGVtYRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIzCg1vdXRwdXRfc2NoZW1hGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEigKAnVpGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhEKCWlzX2FjdGl2ZRgOIAEoCBIVCg1hbGxvd2VkX3JvbGVzGA8gAygJEiwKBnF1b3RhcxgRIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICIgBARIWCgljb25maWdfaWQYEiABKAlICYgBARIyCgxwcmVjb25kaXRpb24YEyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAqIAQESEQoJdGVuYW50X2lkGBQgASgJEhcKCnByb2plY3RfaWQYFSABKAlIC4gBARIbCg5zdXBwb3J0c19hc3luYxgWIAEoCEgMiAEBEiEKFGNhbGxiYWNrX3R0bF9zZWNvbmRzGBcgASgFSA2IAQESQwodY2FsbGJhY2tfdGltZW91dF9yZXRyeV9wb2xpY3kYGCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SA6IAQESFAoMY2FwYWJpbGl0aWVzGBkgAygJEioKBGtpbmQYGiABKA4yHC5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbktpbmQSHgoRYXR0YWNoZWRfdG9fbW9kZWwYGyABKAlID4gBARIVCg1wYXJlbnRfZmllbGRzGBwgAygJEjMKDWNhY2hlX2NvbnRyb2wYHSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBCIAQESNQoPc2VjcmV0X2JpbmRpbmdzGB8gAygLMhwub3BlcmF0aW9ucy52MS5TZWNyZXRCaW5kaW5nEj0KEHJlcXVlc3RfdGVtcGxhdGUYICABKAsyHi5vcGVyYXRpb25zLnYxLlJlcXVlc3RUZW1wbGF0ZUgRiAEBEh8KEnJlc3BvbnNlX3RyYW5zZm9ybRghIAEoCUgSiAEBEhcKCmNyZWF0ZWRfYnkYHiABKAlIE4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIfChJjdXJyZW50X3ZlcnNpb25faWQYPCABKAlIFIgBARIhChRwdWJsaXNoZWRfdmVyc2lvbl9pZBg9IAEoCUgViAEBEj0KFHNjaGVkdWxlZF9wdWJsaXNoX2F0GD4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgWiAEBEj8KFnNjaGVkdWxlZF91bnB1Ymxpc2hfYXQYPyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBeIAQFCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQgsKCV9jYXRlZ29yeUIQCg5fZW5kcG9pbnRfYXV0aEIPCg1fcmV0cnlfcG9saWN5Qg8KDV9pbnB1dF9zY2hlbWFCEAoOX291dHB1dF9zY2hlbWFCBQoDX3VpQgkKB19xdW90YXNCDAoKX2NvbmZpZ19pZEIPCg1fcHJlY29uZGl0aW9uQg0KC19wcm9qZWN0X2lkQhEKD19zdXBwb3J0c19hc3luY0IXChVfY2FsbGJhY2tfdHRsX3NlY29uZHNCIAoeX2NhbGxiYWNrX3RpbWVvdXRfcmV0cnlfcG9saWN5QhQKEl9hdHRhY2hlZF90b19tb2RlbEIQCg5fY2FjaGVfY29udHJvbEITChFfcmVxdWVzdF90ZW1wbGF0ZUIVChNfcmVzcG9uc2VfdHJhbnNmb3JtQg0KC19jcmVhdGVkX2J5QhUKE19jdXJyZW50X3ZlcnNpb25faWRCFwoVX3B1Ymxpc2hlZF92ZXJzaW9uX2lkQhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdCLTAgoQT3BlcmF0aW9uVmVyc2lvbhIKCgJpZBgBIAEoCRIUCgxvcGVyYXRpb25faWQYAiABKAkSFgoOdmVyc2lvbl9udW1iZXIYAyABKAUSKQoIc25hcHNob3QYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhQKDGNvbnRlbnRfaGFzaBgFIAEoCRIeChFzb3VyY2VfdmVyc2lvbl9pZBgGIAEoCUgAiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgHIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmNyZWF0ZWRfYnkYCSABKAlIAogBAUIUChJfc291cmNlX3ZlcnNpb25faWRCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbkINCgtfY3JlYXRlZF9ieSLaCAoST3BlcmF0aW9uRXhlY3V0aW9uEgoKAmlkGAEgASgJEhUKDW9wZXJhdGlvbl9rZXkYAiABKAkSDgoGc3RhdHVzGAMgASgJEhkKDHRyaWdnZXJfdHlwZRgEIAEoCUgAiAEBEjUKD3RyaWdnZXJfY29udGV4dBgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIrCgVpbnB1dBgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIYCgtyZXN1bHRfanNvbhgHIAEoDEgDiAEBEhcKCmVycm9yX2pzb24YCCABKAxIBIgBARIzCgpzdGFydGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEjUKDGNvbXBsZXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBARIYCgtkdXJhdGlvbl9tcxgLIAEoBUgHiAEBEhMKC3JldHJ5X2NvdW50GAwgASgFEhkKDHByb2dyZXNzX3BjdBgNIAEoBUgIiAEBEh0KEHByb2dyZXNzX21lc3NhZ2UYDiABKAlICYgBARI3ChFwcm9ncmVzc19tZXRhZGF0YRgPIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICogBARI8ChNwcm9ncmVzc191cGRhdGVkX2F0GBAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgLiAEBEjwKE2NhbGxiYWNrX2V4cGlyZXNfYXQYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAyIAQESIAoTcGFyZW50X2V4ZWN1dGlvbl9pZBgSIAEoCUgNiAEBEjUKDGNhbmNlbGxlZF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIDogBARIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgPiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg8KDV90cmlnZ2VyX3R5cGVCEgoQX3RyaWdnZXJfY29udGV4dEIICgZfaW5wdXRCDgoMX3Jlc3VsdF9qc29uQg0KC19lcnJvcl9qc29uQg0KC19zdGFydGVkX2F0Qg8KDV9jb21wbGV0ZWRfYXRCDgoMX2R1cmF0aW9uX21zQg8KDV9wcm9ncmVzc19wY3RCEwoRX3Byb2dyZXNzX21lc3NhZ2VCFAoSX3Byb2dyZXNzX21ldGFkYXRhQhYKFF9wcm9ncmVzc191cGRhdGVkX2F0QhYKFF9jYWxsYmFja19leHBpcmVzX2F0QhYKFF9wYXJlbnRfZXhlY3V0aW9uX2lkQg8KDV9jYW5jZWxsZWRfYXRCDQoLX3Byb2plY3RfaWQi+wUKD0RlYWRMZXR0ZXJFbnRyeRIKCgJpZBgBIAEoCRIVCg1vcGVyYXRpb25fa2V5GAIgASgJEhkKDGV4ZWN1dGlvbl9pZBgDIAEoCUgAiAEBEisKBWlucHV0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEhkKDHRyaWdnZXJfdHlwZRgFIAEoCUgCiAEBEhAKCGF0dGVtcHRzGAYgASgFEhIKCmxhc3RfZXJyb3IYByABKAkSFwoKZXJyb3JfY29kZRgIIAEoCUgDiAEBEg4KBnN0YXR1cxgJIAEoCRItCglmYWlsZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCnJldHJpZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESNQoMZGlzbWlzc2VkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEhkKDGRpc21pc3NlZF9ieRgNIAEoCUgGiAEBEjYKDW5leHRfcmV0cnlfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAeIAQESOgoRbGFzdF9hdHRlbXB0ZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAiIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDwoNX2V4ZWN1dGlvbl9pZEIICgZfaW5wdXRCDwoNX3RyaWdnZXJfdHlwZUINCgtfZXJyb3JfY29kZUINCgtfcmV0cmllZF9hdEIPCg1fZGlzbWlzc2VkX2F0Qg8KDV9kaXNtaXNzZWRfYnlCEAoOX25leHRfcmV0cnlfYXRCFAoSX2xhc3RfYXR0ZW1wdGVkX2F0IrUCCgxDaXJjdWl0U3RhdGUSFQoNb3BlcmF0aW9uX2tleRgBIAEoCRIQCghlbmRwb2ludBgCIAEoCRINCgVzdGF0ZRgDIAEoCRIVCg1mYWlsdXJlX2NvdW50GAQgASgFEjgKD2xhc3RfZmFpbHVyZV9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIyCglvcGVuZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESNQoMaGFsZl9vcGVuX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQhIKEF9sYXN0X2ZhaWx1cmVfYXRCDAoKX29wZW5lZF9hdEIPCg1faGFsZl9vcGVuX2F0IoEBCg5FeGVjdXRpb25TdGF0cxIVCg1vcGVyYXRpb25fa2V5GAEgASgJEg0KBXRvdGFsGAIgASgFEg8KB3N1Y2Nlc3MYAyABKAUSDgoGZmFpbGVkGAQgASgFEg8KB3BlbmRpbmcYBSABKAUSFwoPYXZnX2R1cmF0aW9uX21zGAYgASgBIlUKD0RlYWRMZXR0ZXJTdGF0cxIPCgdwZW5kaW5nGAEgASgFEg8KB3JldHJpZWQYAiABKAUSEQoJZGlzbWlzc2VkGAMgASgFEg0KBXRvdGFsGAQgASgFIsYBChVMaXN0T3BlcmF0aW9uc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqEBChZMaXN0T3BlcmF0aW9uc1Jlc3BvbnNlEiwKCm9wZXJhdGlvbnMYASADKAsyGC5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iOwoTR2V0T3BlcmF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRIQCgNrZXkYAiABKAlIAIgBAUIGCgRfa2V5IkMKFEdldE9wZXJhdGlvblJlc3BvbnNlEisKCW9wZXJhdGlvbhgBIAEoCzIYLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uItQKChZDcmVhdGVPcGVyYXRpb25SZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEQoEaWNvbhgEIAEoCUgBiAEBEhUKCGNhdGVnb3J5GAUgASgJSAKIAQESEAoIZW5kcG9pbnQYBiABKAkSGgoNZW5kcG9pbnRfYXV0aBgHIAEoCUgDiAEBEhcKCnRpbWVvdXRfbXMYCCABKAVIBIgBARIyCgxpbnB1dF9zY2hlbWEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESMwoNb3V0cHV0X3NjaGVtYRgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBARIoCgJ1aRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIWCgljb25maWdfaWQYDCABKAlICIgBARIsCgZxdW90YXMYDiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAmIAQESFQoNYWxsb3dlZF9yb2xlcxgPIAMoCRIyCgxyZXRyeV9wb2xpY3kYECABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAqIAQESMgoMcHJlY29uZGl0aW9uGBEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgLiAEBEhYKCWlzX2FjdGl2ZRgSIAEoCEgMiAEBEhsKDnN1cHBvcnRzX2FzeW5jGBMgASgISA2IAQESIQoUY2FsbGJhY2tfdHRsX3NlY29uZHMYFCABKAVIDogBARJDCh1jYWxsYmFja190aW1lb3V0X3JldHJ5X3BvbGljeRgVIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RID4gBARIUCgxjYXBhYmlsaXRpZXMYFiADKAkSKgoEa2luZBgXIAEoDjIcLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uS2luZBIeChFhdHRhY2hlZF90b19tb2RlbBgYIAEoCUgQiAEBEhUKDXBhcmVudF9maWVsZHMYGSADKAkSMwoNY2FjaGVfY29udHJvbBgaIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEYgBARI1Cg9zZWNyZXRfYmluZGluZ3MYGyADKAsyHC5vcGVyYXRpb25zLnYxLlNlY3JldEJpbmRpbmcSPQoQcmVxdWVzdF90ZW1wbGF0ZRgcIAEoCzIeLm9wZXJhdGlvbnMudjEuUmVxdWVzdFRlbXBsYXRlSBKIAQESHwoScmVzcG9uc2VfdHJhbnNmb3JtGB0gASgJSBOIAQFCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQgsKCV9jYXRlZ29yeUIQCg5fZW5kcG9pbnRfYXV0aEINCgtfdGltZW91dF9tc0IPCg1faW5wdXRfc2NoZW1hQhAKDl9vdXRwdXRfc2NoZW1hQgUKA191aUIMCgpfY29uZmlnX2lkQgkKB19xdW90YXNCDwoNX3JldHJ5X3BvbGljeUIPCg1fcHJlY29uZGl0aW9uQgwKCl9pc19hY3RpdmVCEQoPX3N1cHBvcnRzX2FzeW5jQhcKFV9jYWxsYmFja190dGxfc2Vjb25kc0IgCh5fY2FsbGJhY2tfdGltZW91dF9yZXRyeV9wb2xpY3lCFAoSX2F0dGFjaGVkX3RvX21vZGVsQhAKDl9jYWNoZV9jb250cm9sQhMKEV9yZXF1ZXN0X3RlbXBsYXRlQhUKE19yZXNwb25zZV90cmFuc2Zvcm0iRgoXQ3JlYXRlT3BlcmF0aW9uUmVzcG9uc2USKwoJb3BlcmF0aW9uGAEgASgLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24imwoKFlVwZGF0ZU9wZXJhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESFQoIZW5kcG9pbnQYBCABKAlIAogBARIaCg1lbmRwb2ludF9hdXRoGAUgASgJSAOIAQESFwoKdGltZW91dF9tcxgGIAEoBUgEiAEBEjIKDGlucHV0X3NjaGVtYRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIzCg1vdXRwdXRfc2NoZW1hGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEigKAnVpGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhYKCWlzX2FjdGl2ZRgKIAEoCEgIiAEBEiwKBnF1b3RhcxgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICYgBARIyCgxyZXRyeV9wb2xpY3kYDSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAqIAQESMgoMcHJlY29uZGl0aW9uGA4gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgLiAEBEhUKDWFsbG93ZWRfcm9sZXMYDyADKAkSGwoOc3VwcG9ydHNfYXN5bmMYECABKAhIDIgBARIhChRjYWxsYmFja190dGxfc2Vjb25kcxgRIAEoBUgNiAEBEkMKHWNhbGxiYWNrX3RpbWVvdXRfcmV0cnlfcG9saWN5GBIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgOiAEBEhQKDGNhcGFiaWxpdGllcxgTIAMoCRIvCgRraW5kGBQgASgOMhwub3BlcmF0aW9ucy52MS5PcGVyYXRpb25LaW5kSA+IAQESHgoRYXR0YWNoZWRfdG9fbW9kZWwYFSABKAlIEIgBARIVCg1wYXJlbnRfZmllbGRzGBYgAygJEjMKDWNhY2hlX2NvbnRyb2wYFyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBGIAQESNQoPc2VjcmV0X2JpbmRpbmdzGBggAygLMhwub3BlcmF0aW9ucy52MS5TZWNyZXRCaW5kaW5nEj0KEHJlcXVlc3RfdGVtcGxhdGUYGSABKAsyHi5vcGVyYXRpb25zLnYxLlJlcXVlc3RUZW1wbGF0ZUgSiAEBEh8KEnJlc3BvbnNlX3RyYW5zZm9ybRgaIAEoCUgTiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkILCglfZW5kcG9pbnRCEAoOX2VuZHBvaW50X2F1dGhCDQoLX3RpbWVvdXRfbXNCDwoNX2lucHV0X3NjaGVtYUIQCg5fb3V0cHV0X3NjaGVtYUIFCgNfdWlCDAoKX2lzX2FjdGl2ZUIJCgdfcXVvdGFzQg8KDV9yZXRyeV9wb2xpY3lCDwoNX3ByZWNvbmRpdGlvbkIRCg9fc3VwcG9ydHNfYXN5bmNCFwoVX2NhbGxiYWNrX3R0bF9zZWNvbmRzQiAKHl9jYWxsYmFja190aW1lb3V0X3JldHJ5X3BvbGljeUIHCgVfa2luZEIUChJfYXR0YWNoZWRfdG9fbW9kZWxCEAoOX2NhY2hlX2NvbnRyb2xCEwoRX3JlcXVlc3RfdGVtcGxhdGVCFQoTX3Jlc3BvbnNlX3RyYW5zZm9ybSJGChdVcGRhdGVPcGVyYXRpb25SZXNwb25zZRIrCglvcGVyYXRpb24YASABKAsyGC5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbiIkChZEZWxldGVPcGVyYXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIioKF0RlbGV0ZU9wZXJhdGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiqAMKF0V4ZWN1dGVPcGVyYXRpb25SZXF1ZXN0EhUKDW9wZXJhdGlvbl9rZXkYASABKAkSKwoFaW5wdXQYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESGQoMdHJpZ2dlcl90eXBlGAMgASgJSAGIAQESNQoPdHJpZ2dlcl9jb250ZXh0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEioKBG1vZGUYBSABKA4yHC5vcGVyYXRpb25zLnYxLkV4ZWN1dGlvbk1vZGUSGAoLY3VzdG9tZXJfaWQYBiABKAlIA4gBARIsCgZyZWNvcmQYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESLQoHY29udGVudBgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBAUIICgZfaW5wdXRCDwoNX3RyaWdnZXJfdHlwZUISChBfdHJpZ2dlcl9jb250ZXh0Qg4KDF9jdXN0b21lcl9pZEIJCgdfcmVjb3JkQgoKCF9jb250ZW50IqkCChhFeGVjdXRlT3BlcmF0aW9uUmVzcG9uc2USNAoJZXhlY3V0aW9uGAEgASgLMiEub3BlcmF0aW9ucy52MS5PcGVyYXRpb25FeGVjdXRpb24SGAoLcmVzdWx0X2pzb24YAiABKAxIAIgBARIaCg1lcnJvcl9tZXNzYWdlGAMgASgJSAGIAQESEQoJY29tcGxldGVkGAQgASgIEhUKCHBvbGxfdXJsGAogASgJSAKIAQESFwoKY2FuY2VsX3VybBgLIAEoCUgDiAEBEhQKB21lc3NhZ2UYDCABKAlIBIgBAUIOCgxfcmVzdWx0X2pzb25CEAoOX2Vycm9yX21lc3NhZ2VCCwoJX3BvbGxfdXJsQg0KC19jYW5jZWxfdXJsQgoKCF9tZXNzYWdlIogBCglCYXRjaEl0ZW0SCwoDa2V5GAEgASgJEisKBWlucHV0GAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEiwKBnBhcmVudBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBAUIICgZfaW5wdXRCCQoHX3BhcmVudCJxCgtCYXRjaFJlc3VsdBILCgNrZXkYASABKAkSLAoGcmVzdWx0GAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWVycm9yGAMgASgJSAGIAQFCCQoHX3Jlc3VsdEIICgZfZXJyb3IiiAEKHFJlc29sdmVPcGVyYXRpb25CYXRjaFJlcXVlc3QSFQoNb3BlcmF0aW9uX2tleRgBIAEoCRInCgVpdGVtcxgCIAMoCzIYLm9wZXJhdGlvbnMudjEuQmF0Y2hJdGVtEhgKC2N1c3RvbWVyX2lkGAMgASgJSACIAQFCDgoMX2N1c3RvbWVyX2lkIkwKHVJlc29sdmVPcGVyYXRpb25CYXRjaFJlc3BvbnNlEisKB3Jlc3VsdHMYASADKAsyGi5vcGVyYXRpb25zLnYxLkJhdGNoUmVzdWx0IsoBChdSZXNvbHZlT3BlcmF0aW9uUmVxdWVzdBIVCg1vcGVyYXRpb25fa2V5GAEgASgJEisKBWlucHV0GAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEiwKBnBhcmVudBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIYCgtjdXN0b21lcl9pZBgEIAEoCUgCiAEBQggKBl9pbnB1dEIJCgdfcGFyZW50Qg4KDF9jdXN0b21lcl9pZCJxChhSZXNvbHZlT3BlcmF0aW9uUmVzcG9uc2USLAoGcmVzdWx0GAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWVycm9yGAIgASgJSAGIAQFCCQoHX3Jlc3VsdEIICgZfZXJyb3IizwEKHkxpc3RPcGVyYXRpb25FeGVjdXRpb25zUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QiswEKH0xpc3RPcGVyYXRpb25FeGVjdXRpb25zUmVzcG9uc2USNQoKZXhlY3V0aW9ucxgBIAMoCzIhLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uRXhlY3V0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJRCiFHZXRPcGVyYXRpb25FeGVjdXRpb25TdGF0c1JlcXVlc3QSGgoNb3BlcmF0aW9uX2tleRgBIAEoCUgAiAEBQhAKDl9vcGVyYXRpb25fa2V5IlIKIkdldE9wZXJhdGlvbkV4ZWN1dGlvblN0YXRzUmVzcG9uc2USLAoFc3RhdHMYASADKAsyHS5vcGVyYXRpb25zLnYxLkV4ZWN1dGlvblN0YXRzIs0BChxMaXN0RGVhZExldHRlckVudHJpZXNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKrAQodTGlzdERlYWRMZXR0ZXJFbnRyaWVzUmVzcG9uc2USLwoHZW50cmllcxgBIAMoCzIeLm9wZXJhdGlvbnMudjEuRGVhZExldHRlckVudHJ5Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIpChtSZXRyeURlYWRMZXR0ZXJFbnRyeVJlcXVlc3QSCgoCaWQYASABKAkiLwocUmV0cnlEZWFkTGV0dGVyRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIisKHURpc21pc3NEZWFkTGV0dGVyRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIjEKHkRpc21pc3NEZWFkTGV0dGVyRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiwKHUJ1bGtEaXNtaXNzRGVhZExldHRlcnNSZXF1ZXN0EgsKA2lkcxgBIAMoCSI5Ch5CdWxrRGlzbWlzc0RlYWRMZXR0ZXJzUmVzcG9uc2USFwoPZGlzbWlzc2VkX2NvdW50GAEgASgFIlMKI0Rpc21pc3NBbGxQZW5kaW5nRGVhZExldHRlcnNSZXF1ZXN0EhoKDW9wZXJhdGlvbl9rZXkYASABKAlIAIgBAUIQCg5fb3BlcmF0aW9uX2tleSI/CiREaXNtaXNzQWxsUGVuZGluZ0RlYWRMZXR0ZXJzUmVzcG9uc2USFwoPZGlzbWlzc2VkX2NvdW50GAEgASgFIioKG0J1bGtSZXRyeURlYWRMZXR0ZXJzUmVxdWVzdBILCgNpZHMYASADKAkiNQocQnVsa1JldHJ5RGVhZExldHRlcnNSZXNwb25zZRIVCg1yZXRyaWVkX2NvdW50GAEgASgFIpwBCiJMaXN0RGVhZExldHRlck9wZXJhdGlvbktleXNSZXF1ZXN0EhIKBWZpcnN0GAEgASgFSACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARIRCgRsYXN0GAMgASgFSAKIAQESEwoGYmVmb3JlGAQgASgJSAOIAQFCCAoGX2ZpcnN0QggKBl9hZnRlckIHCgVfbGFzdEIJCgdfYmVmb3JlIpgBCiNMaXN0RGVhZExldHRlck9wZXJhdGlvbktleXNSZXNwb25zZRIWCg5vcGVyYXRpb25fa2V5cxgBIAMoCRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iGwoZR2V0RGVhZExldHRlclN0YXRzUmVxdWVzdCJLChpHZXREZWFkTGV0dGVyU3RhdHNSZXNwb25zZRItCgVzdGF0cxgBIAEoCzIeLm9wZXJhdGlvbnMudjEuRGVhZExldHRlclN0YXRzIpIBChhMaXN0Q2lyY3VpdFN0YXRlc1JlcXVlc3QSEgoFZmlyc3QYASABKAVIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhEKBGxhc3QYAyABKAVIAogBARITCgZiZWZvcmUYBCABKAlIA4gBAUIICgZfZmlyc3RCCAoGX2FmdGVyQgcKBV9sYXN0QgkKB19iZWZvcmUiowEKGUxpc3RDaXJjdWl0U3RhdGVzUmVzcG9uc2USKwoGc3RhdGVzGAEgAygLMhsub3BlcmF0aW9ucy52MS5DaXJjdWl0U3RhdGUSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIiwKE1Jlc2V0Q2lyY3VpdFJlcXVlc3QSFQoNb3BlcmF0aW9uX2tleRgBIAEoCSInChRSZXNldENpcmN1aXRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIhkKF0dldFNpZ25pbmdTZWNyZXRSZXF1ZXN0IjoKGEdldFNpZ25pbmdTZWNyZXRSZXNwb25zZRIOCgZzZWNyZXQYASABKAkSDgoGcHJlZml4GAIgASgJIiAKHlJlZ2VuZXJhdGVTaWduaW5nU2VjcmV0UmVxdWVzdCIxCh9SZWdlbmVyYXRlU2lnbmluZ1NlY3JldFJlc3BvbnNlEg4KBnNlY3JldBgBIAEoCSKrAQoeR2V0QXBwbGljYWJsZU9wZXJhdGlvbnNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhMKBmJlZm9yZRgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQESEQoEbGFzdBgFIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKbAQofR2V0QXBwbGljYWJsZU9wZXJhdGlvbnNSZXNwb25zZRIsCgpvcGVyYXRpb25zGAEgAygLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24SKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIioKHEdldE9wZXJhdGlvbkV4ZWN1dGlvblJlcXVlc3QSCgoCaWQYASABKAkiVQodR2V0T3BlcmF0aW9uRXhlY3V0aW9uUmVzcG9uc2USNAoJZXhlY3V0aW9uGAEgASgLMiEub3BlcmF0aW9ucy52MS5PcGVyYXRpb25FeGVjdXRpb24iLQofQ2FuY2VsT3BlcmF0aW9uRXhlY3V0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJTCiBDYW5jZWxPcGVyYXRpb25FeGVjdXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhMKBnN0YXR1cxgCIAEoCUgAiAEBQgkKB19zdGF0dXMiSwogQ2FuY2VsT3BlcmF0aW9uRXhlY3V0aW9uc1JlcXVlc3QSFQoNb3BlcmF0aW9uX2tleRgBIAEoCRIQCghzdGF0dXNlcxgCIAMoCSJTCiFDYW5jZWxPcGVyYXRpb25FeGVjdXRpb25zUmVzcG9uc2USFwoPY2FuY2VsbGVkX2NvdW50GAEgASgFEhUKDWNhbmNlbGxlZF9pZHMYAiADKAkiRAohQ29tcGxldGVPcGVyYXRpb25FeGVjdXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJEhMKC3Jlc3VsdF9qc29uGAIgASgMIkcKIkNvbXBsZXRlT3BlcmF0aW9uRXhlY3V0aW9uUmVzcG9uc2USDgoGc3RhdHVzGAEgASgJEhEKCWNhbmNlbGxlZBgCIAEoCCKrAQodRmFpbE9wZXJhdGlvbkV4ZWN1dGlvblJlcXVlc3QSCgoCaWQYASABKAkSDAoEY29kZRgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEhYKCXJldHJ5YWJsZRgEIAEoCEgAiAEBEi0KB2RldGFpbHMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQFCDAoKX3JldHJ5YWJsZUIKCghfZGV0YWlscyJDCh5GYWlsT3BlcmF0aW9uRXhlY3V0aW9uUmVzcG9uc2USDgoGc3RhdHVzGAEgASgJEhEKCWNhbmNlbGxlZBgCIAEoCCLbAQoeUmVwb3J0T3BlcmF0aW9uUHJvZ3Jlc3NSZXF1ZXN0EgoKAmlkGAEgASgJEhkKDHByb2dyZXNzX3BjdBgCIAEoBUgAiAEBEh0KEHByb2dyZXNzX21lc3NhZ2UYAyABKAlIAYgBARI3ChFwcm9ncmVzc19tZXRhZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUIPCg1fcHJvZ3Jlc3NfcGN0QhMKEV9wcm9ncmVzc19tZXNzYWdlQhQKEl9wcm9ncmVzc19tZXRhZGF0YSJECh9SZXBvcnRPcGVyYXRpb25Qcm9ncmVzc1Jlc3BvbnNlEg4KBnN0YXR1cxgBIAEoCRIRCgljYW5jZWxsZWQYAiABKAgiggEKHUdldE9wZXJhdGlvblF1b3RhVXNhZ2VSZXF1ZXN0EhUKDW9wZXJhdGlvbl9rZXkYASABKAkSGAoLY3VzdG9tZXJfaWQYAiABKAlIAIgBARIUCgd1c2VyX2lkGAMgASgJSAGIAQFCDgoMX2N1c3RvbWVyX2lkQgoKCF91c2VyX2lkIrIBCg5RdW90YVJ1bGVVc2FnZRISCgpydWxlX2luZGV4GAEgASgFEhMKC3NlZ21lbnRfa2V5GAIgASgJEg0KBWxpbWl0GAMgASgFEgwKBHVzZWQYBCABKAUSEQoJcmVtYWluaW5nGAUgASgFEhUKDXJlc2V0X2F0X3VuaXgYBiABKAMSDQoFc2NvcGUYByABKAkSEAoIZHVyYXRpb24YCCABKAUSDwoHbWVzc2FnZRgJIAEoCSKtAQoeR2V0T3BlcmF0aW9uUXVvdGFVc2FnZVJlc3BvbnNlEhgKEHRvdGFsX2V4ZWN1dGlvbnMYASABKAMSGQoRcGVyaW9kX2V4ZWN1dGlvbnMYAiABKAMSGAoLcXVvdGFfbGltaXQYAyABKANIAIgBARIsCgVydWxlcxgEIAMoCzIdLm9wZXJhdGlvbnMudjEuUXVvdGFSdWxlVXNhZ2VCDgoMX3F1b3RhX2xpbWl0IhwKGkdldFNpZ25pbmdTZWNyZXRSYXdSZXF1ZXN0Ii0KG0dldFNpZ25pbmdTZWNyZXRSYXdSZXNwb25zZRIOCgZzZWNyZXQYASABKAkiKAoaR2V0T3BlcmF0aW9uVmVyc2lvblJlcXVlc3QSCgoCaWQYASABKAkiTwobR2V0T3BlcmF0aW9uVmVyc2lvblJlc3BvbnNlEjAKB3ZlcnNpb24YASABKAsyHy5vcGVyYXRpb25zLnYxLk9wZXJhdGlvblZlcnNpb24irAEKHExpc3RPcGVyYXRpb25WZXJzaW9uc1JlcXVlc3QSFAoMb3BlcmF0aW9uX2lkGAEgASgJEhIKBWFmdGVyGAIgASgJSACIAQESEwoGYmVmb3JlGAMgASgJSAGIAQESEgoFZmlyc3QYBCABKAVIAogBARIRCgRsYXN0GAUgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Iq0BCh1MaXN0T3BlcmF0aW9uVmVyc2lvbnNSZXNwb25zZRIxCgh2ZXJzaW9ucxgBIAMoCzIfLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uVmVyc2lvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ibAoeUmVzdG9yZU9wZXJhdGlvblZlcnNpb25SZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkSHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAIgASgJSACIAQFCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbiKEAQofUmVzdG9yZU9wZXJhdGlvblZlcnNpb25SZXNwb25zZRIrCglvcGVyYXRpb24YASABKAsyGC5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbhI0CgtuZXdfdmVyc2lvbhgCIAEoCzIfLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uVmVyc2lvbiIlChdQdWJsaXNoT3BlcmF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJ9ChhQdWJsaXNoT3BlcmF0aW9uUmVzcG9uc2USKwoJb3BlcmF0aW9uGAEgASgLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24SNAoQYnJlYWtpbmdfY2hhbmdlcxgCIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UiJwoZVW5wdWJsaXNoT3BlcmF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJJChpVbnB1Ymxpc2hPcGVyYXRpb25SZXNwb25zZRIrCglvcGVyYXRpb24YASABKAsyGC5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbiIuCiBHZXRPcGVyYXRpb25QdWJsaXNoU3RhdHVzUmVxdWVzdBIKCgJpZBgBIAEoCSJOCiFHZXRPcGVyYXRpb25QdWJsaXNoU3RhdHVzUmVzcG9uc2USKQoGc3RhdHVzGAEgASgLMhkucHVibGlzaC52MS5QdWJsaXNoU3RhdHVzIqUBCh9TY2hlZHVsZU9wZXJhdGlvblB1Ymxpc2hSZXF1ZXN0EgoKAmlkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fdW5wdWJsaXNoX2F0Ik8KIFNjaGVkdWxlT3BlcmF0aW9uUHVibGlzaFJlc3BvbnNlEisKCW9wZXJhdGlvbhgBIAEoCzIYLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uIjQKJkNhbmNlbFNjaGVkdWxlZE9wZXJhdGlvblB1Ymxpc2hSZXF1ZXN0EgoKAmlkGAEgASgJIlYKJ0NhbmNlbFNjaGVkdWxlZE9wZXJhdGlvblB1Ymxpc2hSZXNwb25zZRIrCglvcGVyYXRpb24YASABKAsyGC5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbiqAAQoNT3BlcmF0aW9uS2luZBIeChpPUEVSQVRJT05fS0lORF9VTlNQRUNJRklFRBAAEhsKF09QRVJBVElPTl9LSU5EX01VVEFUSU9OEAESGAoUT1BFUkFUSU9OX0tJTkRfUVVFUlkQAhIYChRPUEVSQVRJT05fS0lORF9GSUVMRBADKmIKDUV4ZWN1dGlvbk1vZGUSHgoaRVhFQ1VUSU9OX01PREVfVU5TUEVDSUZJRUQQABIXChNFWEVDVVRJT05fTU9ERV9TWU5DEAESGAoURVhFQ1VUSU9OX01PREVfQVNZTkMQAjKOIwoRT3BlcmF0aW9uc1NlcnZpY2USXQoOTGlzdE9wZXJhdGlvbnMSJC5vcGVyYXRpb25zLnYxLkxpc3RPcGVyYXRpb25zUmVxdWVzdBolLm9wZXJhdGlvbnMudjEuTGlzdE9wZXJhdGlvbnNSZXNwb25zZRJXCgxHZXRPcGVyYXRpb24SIi5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblJlcXVlc3QaIy5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblJlc3BvbnNlEmAKD0NyZWF0ZU9wZXJhdGlvbhIlLm9wZXJhdGlvbnMudjEuQ3JlYXRlT3BlcmF0aW9uUmVxdWVzdBomLm9wZXJhdGlvbnMudjEuQ3JlYXRlT3BlcmF0aW9uUmVzcG9uc2USYAoPVXBkYXRlT3BlcmF0aW9uEiUub3BlcmF0aW9ucy52MS5VcGRhdGVPcGVyYXRpb25SZXF1ZXN0GiYub3BlcmF0aW9ucy52MS5VcGRhdGVPcGVyYXRpb25SZXNwb25zZRJgCg9EZWxldGVPcGVyYXRpb24SJS5vcGVyYXRpb25zLnYxLkRlbGV0ZU9wZXJhdGlvblJlcXVlc3QaJi5vcGVyYXRpb25zLnYxLkRlbGV0ZU9wZXJhdGlvblJlc3BvbnNlEmMKEEV4ZWN1dGVPcGVyYXRpb24SJi5vcGVyYXRpb25zLnYxLkV4ZWN1dGVPcGVyYXRpb25SZXF1ZXN0Gicub3BlcmF0aW9ucy52MS5FeGVjdXRlT3BlcmF0aW9uUmVzcG9uc2USYwoQUmVzb2x2ZU9wZXJhdGlvbhImLm9wZXJhdGlvbnMudjEuUmVzb2x2ZU9wZXJhdGlvblJlcXVlc3QaJy5vcGVyYXRpb25zLnYxLlJlc29sdmVPcGVyYXRpb25SZXNwb25zZRJyChVSZXNvbHZlT3BlcmF0aW9uQmF0Y2gSKy5vcGVyYXRpb25zLnYxLlJlc29sdmVPcGVyYXRpb25CYXRjaFJlcXVlc3QaLC5vcGVyYXRpb25zLnYxLlJlc29sdmVPcGVyYXRpb25CYXRjaFJlc3BvbnNlEngKF0xpc3RPcGVyYXRpb25FeGVjdXRpb25zEi0ub3BlcmF0aW9ucy52MS5MaXN0T3BlcmF0aW9uRXhlY3V0aW9uc1JlcXVlc3QaLi5vcGVyYXRpb25zLnYxLkxpc3RPcGVyYXRpb25FeGVjdXRpb25zUmVzcG9uc2USgQEKGkdldE9wZXJhdGlvbkV4ZWN1dGlvblN0YXRzEjAub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25FeGVjdXRpb25TdGF0c1JlcXVlc3QaMS5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvbkV4ZWN1dGlvblN0YXRzUmVzcG9uc2UScgoVTGlzdERlYWRMZXR0ZXJFbnRyaWVzEisub3BlcmF0aW9ucy52MS5MaXN0RGVhZExldHRlckVudHJpZXNSZXF1ZXN0Giwub3BlcmF0aW9ucy52MS5MaXN0RGVhZExldHRlckVudHJpZXNSZXNwb25zZRJvChRSZXRyeURlYWRMZXR0ZXJFbnRyeRIqLm9wZXJhdGlvbnMudjEuUmV0cnlEZWFkTGV0dGVyRW50cnlSZXF1ZXN0Gisub3BlcmF0aW9ucy52MS5SZXRyeURlYWRMZXR0ZXJFbnRyeVJlc3BvbnNlEnUKFkRpc21pc3NEZWFkTGV0dGVyRW50cnkSLC5vcGVyYXRpb25zLnYxLkRpc21pc3NEZWFkTGV0dGVyRW50cnlSZXF1ZXN0Gi0ub3BlcmF0aW9ucy52MS5EaXNtaXNzRGVhZExldHRlckVudHJ5UmVzcG9uc2USdQoWQnVsa0Rpc21pc3NEZWFkTGV0dGVycxIsLm9wZXJhdGlvbnMudjEuQnVsa0Rpc21pc3NEZWFkTGV0dGVyc1JlcXVlc3QaLS5vcGVyYXRpb25zLnYxLkJ1bGtEaXNtaXNzRGVhZExldHRlcnNSZXNwb25zZRKHAQocRGlzbWlzc0FsbFBlbmRpbmdEZWFkTGV0dGVycxIyLm9wZXJhdGlvbnMudjEuRGlzbWlzc0FsbFBlbmRpbmdEZWFkTGV0dGVyc1JlcXVlc3QaMy5vcGVyYXRpb25zLnYxLkRpc21pc3NBbGxQZW5kaW5nRGVhZExldHRlcnNSZXNwb25zZRJvChRCdWxrUmV0cnlEZWFkTGV0dGVycxIqLm9wZXJhdGlvbnMudjEuQnVsa1JldHJ5RGVhZExldHRlcnNSZXF1ZXN0Gisub3BlcmF0aW9ucy52MS5CdWxrUmV0cnlEZWFkTGV0dGVyc1Jlc3BvbnNlEoQBChtMaXN0RGVhZExldHRlck9wZXJhdGlvbktleXMSMS5vcGVyYXRpb25zLnYxLkxpc3REZWFkTGV0dGVyT3BlcmF0aW9uS2V5c1JlcXVlc3QaMi5vcGVyYXRpb25zLnYxLkxpc3REZWFkTGV0dGVyT3BlcmF0aW9uS2V5c1Jlc3BvbnNlEmkKEkdldERlYWRMZXR0ZXJTdGF0cxIoLm9wZXJhdGlvbnMudjEuR2V0RGVhZExldHRlclN0YXRzUmVxdWVzdBopLm9wZXJhdGlvbnMudjEuR2V0RGVhZExldHRlclN0YXRzUmVzcG9uc2USZgoRTGlzdENpcmN1aXRTdGF0ZXMSJy5vcGVyYXRpb25zLnYxLkxpc3RDaXJjdWl0U3RhdGVzUmVxdWVzdBooLm9wZXJhdGlvbnMudjEuTGlzdENpcmN1aXRTdGF0ZXNSZXNwb25zZRJXCgxSZXNldENpcmN1aXQSIi5vcGVyYXRpb25zLnYxLlJlc2V0Q2lyY3VpdFJlcXVlc3QaIy5vcGVyYXRpb25zLnYxLlJlc2V0Q2lyY3VpdFJlc3BvbnNlEngKF0dldEFwcGxpY2FibGVPcGVyYXRpb25zEi0ub3BlcmF0aW9ucy52MS5HZXRBcHBsaWNhYmxlT3BlcmF0aW9uc1JlcXVlc3QaLi5vcGVyYXRpb25zLnYxLkdldEFwcGxpY2FibGVPcGVyYXRpb25zUmVzcG9uc2UScgoVR2V0T3BlcmF0aW9uRXhlY3V0aW9uEisub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25FeGVjdXRpb25SZXF1ZXN0Giwub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25FeGVjdXRpb25SZXNwb25zZRJ7ChhDYW5jZWxPcGVyYXRpb25FeGVjdXRpb24SLi5vcGVyYXRpb25zLnYxLkNhbmNlbE9wZXJhdGlvbkV4ZWN1dGlvblJlcXVlc3QaLy5vcGVyYXRpb25zLnYxLkNhbmNlbE9wZXJhdGlvbkV4ZWN1dGlvblJlc3BvbnNlEn4KGUNhbmNlbE9wZXJhdGlvbkV4ZWN1dGlvbnMSLy5vcGVyYXRpb25zLnYxLkNhbmNlbE9wZXJhdGlvbkV4ZWN1dGlvbnNSZXF1ZXN0GjAub3BlcmF0aW9ucy52MS5DYW5jZWxPcGVyYXRpb25FeGVjdXRpb25zUmVzcG9uc2USgQEKGkNvbXBsZXRlT3BlcmF0aW9uRXhlY3V0aW9uEjAub3BlcmF0aW9ucy52MS5Db21wbGV0ZU9wZXJhdGlvbkV4ZWN1dGlvblJlcXVlc3QaMS5vcGVyYXRpb25zLnYxLkNvbXBsZXRlT3BlcmF0aW9uRXhlY3V0aW9uUmVzcG9uc2USdQoWRmFpbE9wZXJhdGlvbkV4ZWN1dGlvbhIsLm9wZXJhdGlvbnMudjEuRmFpbE9wZXJhdGlvbkV4ZWN1dGlvblJlcXVlc3QaLS5vcGVyYXRpb25zLnYxLkZhaWxPcGVyYXRpb25FeGVjdXRpb25SZXNwb25zZRJ4ChdSZXBvcnRPcGVyYXRpb25Qcm9ncmVzcxItLm9wZXJhdGlvbnMudjEuUmVwb3J0T3BlcmF0aW9uUHJvZ3Jlc3NSZXF1ZXN0Gi4ub3BlcmF0aW9ucy52MS5SZXBvcnRPcGVyYXRpb25Qcm9ncmVzc1Jlc3BvbnNlEnUKFkdldE9wZXJhdGlvblF1b3RhVXNhZ2USLC5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblF1b3RhVXNhZ2VSZXF1ZXN0Gi0ub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25RdW90YVVzYWdlUmVzcG9uc2USYwoQR2V0U2lnbmluZ1NlY3JldBImLm9wZXJhdGlvbnMudjEuR2V0U2lnbmluZ1NlY3JldFJlcXVlc3QaJy5vcGVyYXRpb25zLnYxLkdldFNpZ25pbmdTZWNyZXRSZXNwb25zZRJsChNHZXRTaWduaW5nU2VjcmV0UmF3Eikub3BlcmF0aW9ucy52MS5HZXRTaWduaW5nU2VjcmV0UmF3UmVxdWVzdBoqLm9wZXJhdGlvbnMudjEuR2V0U2lnbmluZ1NlY3JldFJhd1Jlc3BvbnNlEngKF1JlZ2VuZXJhdGVTaWduaW5nU2VjcmV0Ei0ub3BlcmF0aW9ucy52MS5SZWdlbmVyYXRlU2lnbmluZ1NlY3JldFJlcXVlc3QaLi5vcGVyYXRpb25zLnYxLlJlZ2VuZXJhdGVTaWduaW5nU2VjcmV0UmVzcG9uc2USbAoTR2V0T3BlcmF0aW9uVmVyc2lvbhIpLm9wZXJhdGlvbnMudjEuR2V0T3BlcmF0aW9uVmVyc2lvblJlcXVlc3QaKi5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblZlcnNpb25SZXNwb25zZRJyChVMaXN0T3BlcmF0aW9uVmVyc2lvbnMSKy5vcGVyYXRpb25zLnYxLkxpc3RPcGVyYXRpb25WZXJzaW9uc1JlcXVlc3QaLC5vcGVyYXRpb25zLnYxLkxpc3RPcGVyYXRpb25WZXJzaW9uc1Jlc3BvbnNlEngKF1Jlc3RvcmVPcGVyYXRpb25WZXJzaW9uEi0ub3BlcmF0aW9ucy52MS5SZXN0b3JlT3BlcmF0aW9uVmVyc2lvblJlcXVlc3QaLi5vcGVyYXRpb25zLnYxLlJlc3RvcmVPcGVyYXRpb25WZXJzaW9uUmVzcG9uc2USYwoQUHVibGlzaE9wZXJhdGlvbhImLm9wZXJhdGlvbnMudjEuUHVibGlzaE9wZXJhdGlvblJlcXVlc3QaJy5vcGVyYXRpb25zLnYxLlB1Ymxpc2hPcGVyYXRpb25SZXNwb25zZRJpChJVbnB1Ymxpc2hPcGVyYXRpb24SKC5vcGVyYXRpb25zLnYxLlVucHVibGlzaE9wZXJhdGlvblJlcXVlc3QaKS5vcGVyYXRpb25zLnYxLlVucHVibGlzaE9wZXJhdGlvblJlc3BvbnNlEn4KGUdldE9wZXJhdGlvblB1Ymxpc2hTdGF0dXMSLy5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblB1Ymxpc2hTdGF0dXNSZXF1ZXN0GjAub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25QdWJsaXNoU3RhdHVzUmVzcG9uc2USewoYU2NoZWR1bGVPcGVyYXRpb25QdWJsaXNoEi4ub3BlcmF0aW9ucy52MS5TY2hlZHVsZU9wZXJhdGlvblB1Ymxpc2hSZXF1ZXN0Gi8ub3BlcmF0aW9ucy52MS5TY2hlZHVsZU9wZXJhdGlvblB1Ymxpc2hSZXNwb25zZRKQAQofQ2FuY2VsU2NoZWR1bGVkT3BlcmF0aW9uUHVibGlzaBI1Lm9wZXJhdGlvbnMudjEuQ2FuY2VsU2NoZWR1bGVkT3BlcmF0aW9uUHVibGlzaFJlcXVlc3QaNi5vcGVyYXRpb25zLnYxLkNhbmNlbFNjaGVkdWxlZE9wZXJhdGlvblB1Ymxpc2hSZXNwb25zZUJBWj9naXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vb3BlcmF0aW9ucy92MTtvcGVyYXRpb25zdjFiBnByb3RvMw", [file_google_protobuf_struct8, file_google_protobuf_timestamp9, file_publish_v1_publish, file_common_v1_pagination]);
781
- var OperationSchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 2);
782
- var OperationExecutionSchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 4);
783
- var DeadLetterEntrySchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 5);
784
- var ListOperationsRequestSchema2 = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 9);
785
- var GetOperationRequestSchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 11);
786
- var CreateOperationRequestSchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 13);
787
- var UpdateOperationRequestSchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 15);
788
- var DeleteOperationRequestSchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 17);
789
- var ExecuteOperationRequestSchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 19);
790
- var ListDeadLetterEntriesRequestSchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 31);
791
- var RetryDeadLetterEntryRequestSchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 33);
792
- var DismissDeadLetterEntryRequestSchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 35);
793
- var GetSigningSecretRequestSchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 51);
794
- var PublishOperationRequestSchema = /* @__PURE__ */ messageDesc12(file_operations_v1_operations, 80);
795
- var OperationKindSchema = /* @__PURE__ */ enumDesc8(file_operations_v1_operations, 0);
796
- var OperationKind = /* @__PURE__ */ tsEnum8(OperationKindSchema);
797
- var OperationsService = /* @__PURE__ */ serviceDesc8(file_operations_v1_operations, 0);
807
+ var file_operations_v1_operations = /* @__PURE__ */ fileDesc13("Ch5vcGVyYXRpb25zL3YxL29wZXJhdGlvbnMucHJvdG8SDW9wZXJhdGlvbnMudjEiMQoNU2VjcmV0QmluZGluZxIMCgRuYW1lGAEgASgJEhIKCnNlY3JldF9yZWYYAiABKAkikQMKD1JlcXVlc3RUZW1wbGF0ZRITCgZtZXRob2QYASABKAlIAIgBARIaCg1wYXRoX3RlbXBsYXRlGAIgASgJSAGIAQESOAoFcXVlcnkYAyADKAsyKS5vcGVyYXRpb25zLnYxLlJlcXVlc3RUZW1wbGF0ZS5RdWVyeUVudHJ5EjwKB2hlYWRlcnMYBCADKAsyKy5vcGVyYXRpb25zLnYxLlJlcXVlc3RUZW1wbGF0ZS5IZWFkZXJzRW50cnkSGgoNYm9keV90ZW1wbGF0ZRgFIAEoCUgCiAEBEhoKDWJhdGNoX2NhcGFibGUYBiABKAhIA4gBARosCgpRdWVyeUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaLgoMSGVhZGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCQoHX21ldGhvZEIQCg5fcGF0aF90ZW1wbGF0ZUIQCg5fYm9keV90ZW1wbGF0ZUIQCg5fYmF0Y2hfY2FwYWJsZSKXDgoJT3BlcmF0aW9uEgoKAmlkGAEgASgJEgsKA2tleRgCIAEoCRIMCgRuYW1lGAMgASgJEhgKC2Rlc2NyaXB0aW9uGAQgASgJSACIAQESEQoEaWNvbhgFIAEoCUgBiAEBEhUKCGNhdGVnb3J5GAYgASgJSAKIAQESEAoIZW5kcG9pbnQYByABKAkSGgoNZW5kcG9pbnRfYXV0aBgIIAEoCUgDiAEBEhIKCnRpbWVvdXRfbXMYCSABKAUSMgoMcmV0cnlfcG9saWN5GAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEjIKDGlucHV0X3NjaGVtYRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIzCg1vdXRwdXRfc2NoZW1hGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEigKAnVpGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhEKCWlzX2FjdGl2ZRgOIAEoCBIVCg1hbGxvd2VkX3JvbGVzGA8gAygJEiwKBnF1b3RhcxgRIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICIgBARIWCgljb25maWdfaWQYEiABKAlICYgBARIyCgxwcmVjb25kaXRpb24YEyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAqIAQESEQoJdGVuYW50X2lkGBQgASgJEhcKCnByb2plY3RfaWQYFSABKAlIC4gBARIbCg5zdXBwb3J0c19hc3luYxgWIAEoCEgMiAEBEiEKFGNhbGxiYWNrX3R0bF9zZWNvbmRzGBcgASgFSA2IAQESQwodY2FsbGJhY2tfdGltZW91dF9yZXRyeV9wb2xpY3kYGCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SA6IAQESFAoMY2FwYWJpbGl0aWVzGBkgAygJEioKBGtpbmQYGiABKA4yHC5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbktpbmQSHgoRYXR0YWNoZWRfdG9fbW9kZWwYGyABKAlID4gBARIVCg1wYXJlbnRfZmllbGRzGBwgAygJEjMKDWNhY2hlX2NvbnRyb2wYHSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBCIAQESNQoPc2VjcmV0X2JpbmRpbmdzGB8gAygLMhwub3BlcmF0aW9ucy52MS5TZWNyZXRCaW5kaW5nEj0KEHJlcXVlc3RfdGVtcGxhdGUYICABKAsyHi5vcGVyYXRpb25zLnYxLlJlcXVlc3RUZW1wbGF0ZUgRiAEBEh8KEnJlc3BvbnNlX3RyYW5zZm9ybRghIAEoCUgSiAEBEhcKCmNyZWF0ZWRfYnkYHiABKAlIE4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIfChJjdXJyZW50X3ZlcnNpb25faWQYPCABKAlIFIgBARIhChRwdWJsaXNoZWRfdmVyc2lvbl9pZBg9IAEoCUgViAEBEj0KFHNjaGVkdWxlZF9wdWJsaXNoX2F0GD4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgWiAEBEj8KFnNjaGVkdWxlZF91bnB1Ymxpc2hfYXQYPyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBeIAQFCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQgsKCV9jYXRlZ29yeUIQCg5fZW5kcG9pbnRfYXV0aEIPCg1fcmV0cnlfcG9saWN5Qg8KDV9pbnB1dF9zY2hlbWFCEAoOX291dHB1dF9zY2hlbWFCBQoDX3VpQgkKB19xdW90YXNCDAoKX2NvbmZpZ19pZEIPCg1fcHJlY29uZGl0aW9uQg0KC19wcm9qZWN0X2lkQhEKD19zdXBwb3J0c19hc3luY0IXChVfY2FsbGJhY2tfdHRsX3NlY29uZHNCIAoeX2NhbGxiYWNrX3RpbWVvdXRfcmV0cnlfcG9saWN5QhQKEl9hdHRhY2hlZF90b19tb2RlbEIQCg5fY2FjaGVfY29udHJvbEITChFfcmVxdWVzdF90ZW1wbGF0ZUIVChNfcmVzcG9uc2VfdHJhbnNmb3JtQg0KC19jcmVhdGVkX2J5QhUKE19jdXJyZW50X3ZlcnNpb25faWRCFwoVX3B1Ymxpc2hlZF92ZXJzaW9uX2lkQhcKFV9zY2hlZHVsZWRfcHVibGlzaF9hdEIZChdfc2NoZWR1bGVkX3VucHVibGlzaF9hdCLTAgoQT3BlcmF0aW9uVmVyc2lvbhIKCgJpZBgBIAEoCRIUCgxvcGVyYXRpb25faWQYAiABKAkSFgoOdmVyc2lvbl9udW1iZXIYAyABKAUSKQoIc25hcHNob3QYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhQKDGNvbnRlbnRfaGFzaBgFIAEoCRIeChFzb3VyY2VfdmVyc2lvbl9pZBgGIAEoCUgAiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgHIAEoCUgBiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKCmNyZWF0ZWRfYnkYCSABKAlIAogBAUIUChJfc291cmNlX3ZlcnNpb25faWRCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbkINCgtfY3JlYXRlZF9ieSLaCAoST3BlcmF0aW9uRXhlY3V0aW9uEgoKAmlkGAEgASgJEhUKDW9wZXJhdGlvbl9rZXkYAiABKAkSDgoGc3RhdHVzGAMgASgJEhkKDHRyaWdnZXJfdHlwZRgEIAEoCUgAiAEBEjUKD3RyaWdnZXJfY29udGV4dBgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIrCgVpbnB1dBgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIYCgtyZXN1bHRfanNvbhgHIAEoDEgDiAEBEhcKCmVycm9yX2pzb24YCCABKAxIBIgBARIzCgpzdGFydGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEjUKDGNvbXBsZXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBogBARIYCgtkdXJhdGlvbl9tcxgLIAEoBUgHiAEBEhMKC3JldHJ5X2NvdW50GAwgASgFEhkKDHByb2dyZXNzX3BjdBgNIAEoBUgIiAEBEh0KEHByb2dyZXNzX21lc3NhZ2UYDiABKAlICYgBARI3ChFwcm9ncmVzc19tZXRhZGF0YRgPIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICogBARI8ChNwcm9ncmVzc191cGRhdGVkX2F0GBAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgLiAEBEjwKE2NhbGxiYWNrX2V4cGlyZXNfYXQYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAyIAQESIAoTcGFyZW50X2V4ZWN1dGlvbl9pZBgSIAEoCUgNiAEBEjUKDGNhbmNlbGxlZF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIDogBARIRCgl0ZW5hbnRfaWQYFCABKAkSFwoKcHJvamVjdF9pZBgVIAEoCUgPiAEBEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg8KDV90cmlnZ2VyX3R5cGVCEgoQX3RyaWdnZXJfY29udGV4dEIICgZfaW5wdXRCDgoMX3Jlc3VsdF9qc29uQg0KC19lcnJvcl9qc29uQg0KC19zdGFydGVkX2F0Qg8KDV9jb21wbGV0ZWRfYXRCDgoMX2R1cmF0aW9uX21zQg8KDV9wcm9ncmVzc19wY3RCEwoRX3Byb2dyZXNzX21lc3NhZ2VCFAoSX3Byb2dyZXNzX21ldGFkYXRhQhYKFF9wcm9ncmVzc191cGRhdGVkX2F0QhYKFF9jYWxsYmFja19leHBpcmVzX2F0QhYKFF9wYXJlbnRfZXhlY3V0aW9uX2lkQg8KDV9jYW5jZWxsZWRfYXRCDQoLX3Byb2plY3RfaWQi+wUKD0RlYWRMZXR0ZXJFbnRyeRIKCgJpZBgBIAEoCRIVCg1vcGVyYXRpb25fa2V5GAIgASgJEhkKDGV4ZWN1dGlvbl9pZBgDIAEoCUgAiAEBEisKBWlucHV0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEhkKDHRyaWdnZXJfdHlwZRgFIAEoCUgCiAEBEhAKCGF0dGVtcHRzGAYgASgFEhIKCmxhc3RfZXJyb3IYByABKAkSFwoKZXJyb3JfY29kZRgIIAEoCUgDiAEBEg4KBnN0YXR1cxgJIAEoCRItCglmYWlsZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCnJldHJpZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESNQoMZGlzbWlzc2VkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgFiAEBEhkKDGRpc21pc3NlZF9ieRgNIAEoCUgGiAEBEjYKDW5leHRfcmV0cnlfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAeIAQESOgoRbGFzdF9hdHRlbXB0ZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAiIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDwoNX2V4ZWN1dGlvbl9pZEIICgZfaW5wdXRCDwoNX3RyaWdnZXJfdHlwZUINCgtfZXJyb3JfY29kZUINCgtfcmV0cmllZF9hdEIPCg1fZGlzbWlzc2VkX2F0Qg8KDV9kaXNtaXNzZWRfYnlCEAoOX25leHRfcmV0cnlfYXRCFAoSX2xhc3RfYXR0ZW1wdGVkX2F0IrUCCgxDaXJjdWl0U3RhdGUSFQoNb3BlcmF0aW9uX2tleRgBIAEoCRIQCghlbmRwb2ludBgCIAEoCRINCgVzdGF0ZRgDIAEoCRIVCg1mYWlsdXJlX2NvdW50GAQgASgFEjgKD2xhc3RfZmFpbHVyZV9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIyCglvcGVuZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESNQoMaGFsZl9vcGVuX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQhIKEF9sYXN0X2ZhaWx1cmVfYXRCDAoKX29wZW5lZF9hdEIPCg1faGFsZl9vcGVuX2F0IoEBCg5FeGVjdXRpb25TdGF0cxIVCg1vcGVyYXRpb25fa2V5GAEgASgJEg0KBXRvdGFsGAIgASgFEg8KB3N1Y2Nlc3MYAyABKAUSDgoGZmFpbGVkGAQgASgFEg8KB3BlbmRpbmcYBSABKAUSFwoPYXZnX2R1cmF0aW9uX21zGAYgASgBIlUKD0RlYWRMZXR0ZXJTdGF0cxIPCgdwZW5kaW5nGAEgASgFEg8KB3JldHJpZWQYAiABKAUSEQoJZGlzbWlzc2VkGAMgASgFEg0KBXRvdGFsGAQgASgFIsYBChVMaXN0T3BlcmF0aW9uc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IqEBChZMaXN0T3BlcmF0aW9uc1Jlc3BvbnNlEiwKCm9wZXJhdGlvbnMYASADKAsyGC5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iOwoTR2V0T3BlcmF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRIQCgNrZXkYAiABKAlIAIgBAUIGCgRfa2V5IkMKFEdldE9wZXJhdGlvblJlc3BvbnNlEisKCW9wZXJhdGlvbhgBIAEoCzIYLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uItQKChZDcmVhdGVPcGVyYXRpb25SZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESEQoEaWNvbhgEIAEoCUgBiAEBEhUKCGNhdGVnb3J5GAUgASgJSAKIAQESEAoIZW5kcG9pbnQYBiABKAkSGgoNZW5kcG9pbnRfYXV0aBgHIAEoCUgDiAEBEhcKCnRpbWVvdXRfbXMYCCABKAVIBIgBARIyCgxpbnB1dF9zY2hlbWEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESMwoNb3V0cHV0X3NjaGVtYRgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBogBARIoCgJ1aRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIB4gBARIWCgljb25maWdfaWQYDCABKAlICIgBARIsCgZxdW90YXMYDiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAmIAQESFQoNYWxsb3dlZF9yb2xlcxgPIAMoCRIyCgxyZXRyeV9wb2xpY3kYECABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAqIAQESMgoMcHJlY29uZGl0aW9uGBEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgLiAEBEhYKCWlzX2FjdGl2ZRgSIAEoCEgMiAEBEhsKDnN1cHBvcnRzX2FzeW5jGBMgASgISA2IAQESIQoUY2FsbGJhY2tfdHRsX3NlY29uZHMYFCABKAVIDogBARJDCh1jYWxsYmFja190aW1lb3V0X3JldHJ5X3BvbGljeRgVIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RID4gBARIUCgxjYXBhYmlsaXRpZXMYFiADKAkSKgoEa2luZBgXIAEoDjIcLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uS2luZBIeChFhdHRhY2hlZF90b19tb2RlbBgYIAEoCUgQiAEBEhUKDXBhcmVudF9maWVsZHMYGSADKAkSMwoNY2FjaGVfY29udHJvbBgaIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEYgBARI1Cg9zZWNyZXRfYmluZGluZ3MYGyADKAsyHC5vcGVyYXRpb25zLnYxLlNlY3JldEJpbmRpbmcSPQoQcmVxdWVzdF90ZW1wbGF0ZRgcIAEoCzIeLm9wZXJhdGlvbnMudjEuUmVxdWVzdFRlbXBsYXRlSBKIAQESHwoScmVzcG9uc2VfdHJhbnNmb3JtGB0gASgJSBOIAQFCDgoMX2Rlc2NyaXB0aW9uQgcKBV9pY29uQgsKCV9jYXRlZ29yeUIQCg5fZW5kcG9pbnRfYXV0aEINCgtfdGltZW91dF9tc0IPCg1faW5wdXRfc2NoZW1hQhAKDl9vdXRwdXRfc2NoZW1hQgUKA191aUIMCgpfY29uZmlnX2lkQgkKB19xdW90YXNCDwoNX3JldHJ5X3BvbGljeUIPCg1fcHJlY29uZGl0aW9uQgwKCl9pc19hY3RpdmVCEQoPX3N1cHBvcnRzX2FzeW5jQhcKFV9jYWxsYmFja190dGxfc2Vjb25kc0IgCh5fY2FsbGJhY2tfdGltZW91dF9yZXRyeV9wb2xpY3lCFAoSX2F0dGFjaGVkX3RvX21vZGVsQhAKDl9jYWNoZV9jb250cm9sQhMKEV9yZXF1ZXN0X3RlbXBsYXRlQhUKE19yZXNwb25zZV90cmFuc2Zvcm0iRgoXQ3JlYXRlT3BlcmF0aW9uUmVzcG9uc2USKwoJb3BlcmF0aW9uGAEgASgLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24imwoKFlVwZGF0ZU9wZXJhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESFQoIZW5kcG9pbnQYBCABKAlIAogBARIaCg1lbmRwb2ludF9hdXRoGAUgASgJSAOIAQESFwoKdGltZW91dF9tcxgGIAEoBUgEiAEBEjIKDGlucHV0X3NjaGVtYRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIzCg1vdXRwdXRfc2NoZW1hGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEigKAnVpGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhYKCWlzX2FjdGl2ZRgKIAEoCEgIiAEBEiwKBnF1b3RhcxgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RICYgBARIyCgxyZXRyeV9wb2xpY3kYDSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAqIAQESMgoMcHJlY29uZGl0aW9uGA4gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgLiAEBEhUKDWFsbG93ZWRfcm9sZXMYDyADKAkSGwoOc3VwcG9ydHNfYXN5bmMYECABKAhIDIgBARIhChRjYWxsYmFja190dGxfc2Vjb25kcxgRIAEoBUgNiAEBEkMKHWNhbGxiYWNrX3RpbWVvdXRfcmV0cnlfcG9saWN5GBIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgOiAEBEhQKDGNhcGFiaWxpdGllcxgTIAMoCRIvCgRraW5kGBQgASgOMhwub3BlcmF0aW9ucy52MS5PcGVyYXRpb25LaW5kSA+IAQESHgoRYXR0YWNoZWRfdG9fbW9kZWwYFSABKAlIEIgBARIVCg1wYXJlbnRfZmllbGRzGBYgAygJEjMKDWNhY2hlX2NvbnRyb2wYFyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBGIAQESNQoPc2VjcmV0X2JpbmRpbmdzGBggAygLMhwub3BlcmF0aW9ucy52MS5TZWNyZXRCaW5kaW5nEj0KEHJlcXVlc3RfdGVtcGxhdGUYGSABKAsyHi5vcGVyYXRpb25zLnYxLlJlcXVlc3RUZW1wbGF0ZUgSiAEBEh8KEnJlc3BvbnNlX3RyYW5zZm9ybRgaIAEoCUgTiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkILCglfZW5kcG9pbnRCEAoOX2VuZHBvaW50X2F1dGhCDQoLX3RpbWVvdXRfbXNCDwoNX2lucHV0X3NjaGVtYUIQCg5fb3V0cHV0X3NjaGVtYUIFCgNfdWlCDAoKX2lzX2FjdGl2ZUIJCgdfcXVvdGFzQg8KDV9yZXRyeV9wb2xpY3lCDwoNX3ByZWNvbmRpdGlvbkIRCg9fc3VwcG9ydHNfYXN5bmNCFwoVX2NhbGxiYWNrX3R0bF9zZWNvbmRzQiAKHl9jYWxsYmFja190aW1lb3V0X3JldHJ5X3BvbGljeUIHCgVfa2luZEIUChJfYXR0YWNoZWRfdG9fbW9kZWxCEAoOX2NhY2hlX2NvbnRyb2xCEwoRX3JlcXVlc3RfdGVtcGxhdGVCFQoTX3Jlc3BvbnNlX3RyYW5zZm9ybSJGChdVcGRhdGVPcGVyYXRpb25SZXNwb25zZRIrCglvcGVyYXRpb24YASABKAsyGC5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbiIkChZEZWxldGVPcGVyYXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIioKF0RlbGV0ZU9wZXJhdGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiqAMKF0V4ZWN1dGVPcGVyYXRpb25SZXF1ZXN0EhUKDW9wZXJhdGlvbl9rZXkYASABKAkSKwoFaW5wdXQYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESGQoMdHJpZ2dlcl90eXBlGAMgASgJSAGIAQESNQoPdHJpZ2dlcl9jb250ZXh0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEioKBG1vZGUYBSABKA4yHC5vcGVyYXRpb25zLnYxLkV4ZWN1dGlvbk1vZGUSGAoLY3VzdG9tZXJfaWQYBiABKAlIA4gBARIsCgZyZWNvcmQYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESLQoHY29udGVudBgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBAUIICgZfaW5wdXRCDwoNX3RyaWdnZXJfdHlwZUISChBfdHJpZ2dlcl9jb250ZXh0Qg4KDF9jdXN0b21lcl9pZEIJCgdfcmVjb3JkQgoKCF9jb250ZW50IqkCChhFeGVjdXRlT3BlcmF0aW9uUmVzcG9uc2USNAoJZXhlY3V0aW9uGAEgASgLMiEub3BlcmF0aW9ucy52MS5PcGVyYXRpb25FeGVjdXRpb24SGAoLcmVzdWx0X2pzb24YAiABKAxIAIgBARIaCg1lcnJvcl9tZXNzYWdlGAMgASgJSAGIAQESEQoJY29tcGxldGVkGAQgASgIEhUKCHBvbGxfdXJsGAogASgJSAKIAQESFwoKY2FuY2VsX3VybBgLIAEoCUgDiAEBEhQKB21lc3NhZ2UYDCABKAlIBIgBAUIOCgxfcmVzdWx0X2pzb25CEAoOX2Vycm9yX21lc3NhZ2VCCwoJX3BvbGxfdXJsQg0KC19jYW5jZWxfdXJsQgoKCF9tZXNzYWdlIogBCglCYXRjaEl0ZW0SCwoDa2V5GAEgASgJEisKBWlucHV0GAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEiwKBnBhcmVudBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBAUIICgZfaW5wdXRCCQoHX3BhcmVudCJxCgtCYXRjaFJlc3VsdBILCgNrZXkYASABKAkSLAoGcmVzdWx0GAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWVycm9yGAMgASgJSAGIAQFCCQoHX3Jlc3VsdEIICgZfZXJyb3IiiAEKHFJlc29sdmVPcGVyYXRpb25CYXRjaFJlcXVlc3QSFQoNb3BlcmF0aW9uX2tleRgBIAEoCRInCgVpdGVtcxgCIAMoCzIYLm9wZXJhdGlvbnMudjEuQmF0Y2hJdGVtEhgKC2N1c3RvbWVyX2lkGAMgASgJSACIAQFCDgoMX2N1c3RvbWVyX2lkIkwKHVJlc29sdmVPcGVyYXRpb25CYXRjaFJlc3BvbnNlEisKB3Jlc3VsdHMYASADKAsyGi5vcGVyYXRpb25zLnYxLkJhdGNoUmVzdWx0IsoBChdSZXNvbHZlT3BlcmF0aW9uUmVxdWVzdBIVCg1vcGVyYXRpb25fa2V5GAEgASgJEisKBWlucHV0GAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEiwKBnBhcmVudBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIYCgtjdXN0b21lcl9pZBgEIAEoCUgCiAEBQggKBl9pbnB1dEIJCgdfcGFyZW50Qg4KDF9jdXN0b21lcl9pZCJxChhSZXNvbHZlT3BlcmF0aW9uUmVzcG9uc2USLAoGcmVzdWx0GAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWVycm9yGAIgASgJSAGIAQFCCQoHX3Jlc3VsdEIICgZfZXJyb3IizwEKHkxpc3RPcGVyYXRpb25FeGVjdXRpb25zUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QiswEKH0xpc3RPcGVyYXRpb25FeGVjdXRpb25zUmVzcG9uc2USNQoKZXhlY3V0aW9ucxgBIAMoCzIhLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uRXhlY3V0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJRCiFHZXRPcGVyYXRpb25FeGVjdXRpb25TdGF0c1JlcXVlc3QSGgoNb3BlcmF0aW9uX2tleRgBIAEoCUgAiAEBQhAKDl9vcGVyYXRpb25fa2V5IlIKIkdldE9wZXJhdGlvbkV4ZWN1dGlvblN0YXRzUmVzcG9uc2USLAoFc3RhdHMYASADKAsyHS5vcGVyYXRpb25zLnYxLkV4ZWN1dGlvblN0YXRzIs0BChxMaXN0RGVhZExldHRlckVudHJpZXNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKrAQodTGlzdERlYWRMZXR0ZXJFbnRyaWVzUmVzcG9uc2USLwoHZW50cmllcxgBIAMoCzIeLm9wZXJhdGlvbnMudjEuRGVhZExldHRlckVudHJ5Eg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIpChtSZXRyeURlYWRMZXR0ZXJFbnRyeVJlcXVlc3QSCgoCaWQYASABKAkiLwocUmV0cnlEZWFkTGV0dGVyRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIisKHURpc21pc3NEZWFkTGV0dGVyRW50cnlSZXF1ZXN0EgoKAmlkGAEgASgJIjEKHkRpc21pc3NEZWFkTGV0dGVyRW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiwKHUJ1bGtEaXNtaXNzRGVhZExldHRlcnNSZXF1ZXN0EgsKA2lkcxgBIAMoCSI5Ch5CdWxrRGlzbWlzc0RlYWRMZXR0ZXJzUmVzcG9uc2USFwoPZGlzbWlzc2VkX2NvdW50GAEgASgFIlMKI0Rpc21pc3NBbGxQZW5kaW5nRGVhZExldHRlcnNSZXF1ZXN0EhoKDW9wZXJhdGlvbl9rZXkYASABKAlIAIgBAUIQCg5fb3BlcmF0aW9uX2tleSI/CiREaXNtaXNzQWxsUGVuZGluZ0RlYWRMZXR0ZXJzUmVzcG9uc2USFwoPZGlzbWlzc2VkX2NvdW50GAEgASgFIioKG0J1bGtSZXRyeURlYWRMZXR0ZXJzUmVxdWVzdBILCgNpZHMYASADKAkiNQocQnVsa1JldHJ5RGVhZExldHRlcnNSZXNwb25zZRIVCg1yZXRyaWVkX2NvdW50GAEgASgFIpwBCiJMaXN0RGVhZExldHRlck9wZXJhdGlvbktleXNSZXF1ZXN0EhIKBWZpcnN0GAEgASgFSACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARIRCgRsYXN0GAMgASgFSAKIAQESEwoGYmVmb3JlGAQgASgJSAOIAQFCCAoGX2ZpcnN0QggKBl9hZnRlckIHCgVfbGFzdEIJCgdfYmVmb3JlIpgBCiNMaXN0RGVhZExldHRlck9wZXJhdGlvbktleXNSZXNwb25zZRIWCg5vcGVyYXRpb25fa2V5cxgBIAMoCRINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8iGwoZR2V0RGVhZExldHRlclN0YXRzUmVxdWVzdCJLChpHZXREZWFkTGV0dGVyU3RhdHNSZXNwb25zZRItCgVzdGF0cxgBIAEoCzIeLm9wZXJhdGlvbnMudjEuRGVhZExldHRlclN0YXRzIpIBChhMaXN0Q2lyY3VpdFN0YXRlc1JlcXVlc3QSEgoFZmlyc3QYASABKAVIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhEKBGxhc3QYAyABKAVIAogBARITCgZiZWZvcmUYBCABKAlIA4gBAUIICgZfZmlyc3RCCAoGX2FmdGVyQgcKBV9sYXN0QgkKB19iZWZvcmUiowEKGUxpc3RDaXJjdWl0U3RhdGVzUmVzcG9uc2USKwoGc3RhdGVzGAEgAygLMhsub3BlcmF0aW9ucy52MS5DaXJjdWl0U3RhdGUSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIiwKE1Jlc2V0Q2lyY3VpdFJlcXVlc3QSFQoNb3BlcmF0aW9uX2tleRgBIAEoCSInChRSZXNldENpcmN1aXRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIhkKF0dldFNpZ25pbmdTZWNyZXRSZXF1ZXN0IjoKGEdldFNpZ25pbmdTZWNyZXRSZXNwb25zZRIOCgZzZWNyZXQYASABKAkSDgoGcHJlZml4GAIgASgJIiAKHlJlZ2VuZXJhdGVTaWduaW5nU2VjcmV0UmVxdWVzdCIxCh9SZWdlbmVyYXRlU2lnbmluZ1NlY3JldFJlc3BvbnNlEg4KBnNlY3JldBgBIAEoCSKrAQoeR2V0QXBwbGljYWJsZU9wZXJhdGlvbnNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgVhZnRlchgCIAEoCUgAiAEBEhMKBmJlZm9yZRgDIAEoCUgBiAEBEhIKBWZpcnN0GAQgASgFSAKIAQESEQoEbGFzdBgFIAEoBUgDiAEBQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKbAQofR2V0QXBwbGljYWJsZU9wZXJhdGlvbnNSZXNwb25zZRIsCgpvcGVyYXRpb25zGAEgAygLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24SKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvIioKHEdldE9wZXJhdGlvbkV4ZWN1dGlvblJlcXVlc3QSCgoCaWQYASABKAkiVQodR2V0T3BlcmF0aW9uRXhlY3V0aW9uUmVzcG9uc2USNAoJZXhlY3V0aW9uGAEgASgLMiEub3BlcmF0aW9ucy52MS5PcGVyYXRpb25FeGVjdXRpb24iLQofQ2FuY2VsT3BlcmF0aW9uRXhlY3V0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJTCiBDYW5jZWxPcGVyYXRpb25FeGVjdXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhMKBnN0YXR1cxgCIAEoCUgAiAEBQgkKB19zdGF0dXMiSwogQ2FuY2VsT3BlcmF0aW9uRXhlY3V0aW9uc1JlcXVlc3QSFQoNb3BlcmF0aW9uX2tleRgBIAEoCRIQCghzdGF0dXNlcxgCIAMoCSJTCiFDYW5jZWxPcGVyYXRpb25FeGVjdXRpb25zUmVzcG9uc2USFwoPY2FuY2VsbGVkX2NvdW50GAEgASgFEhUKDWNhbmNlbGxlZF9pZHMYAiADKAkiRAohQ29tcGxldGVPcGVyYXRpb25FeGVjdXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJEhMKC3Jlc3VsdF9qc29uGAIgASgMIkcKIkNvbXBsZXRlT3BlcmF0aW9uRXhlY3V0aW9uUmVzcG9uc2USDgoGc3RhdHVzGAEgASgJEhEKCWNhbmNlbGxlZBgCIAEoCCKrAQodRmFpbE9wZXJhdGlvbkV4ZWN1dGlvblJlcXVlc3QSCgoCaWQYASABKAkSDAoEY29kZRgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEhYKCXJldHJ5YWJsZRgEIAEoCEgAiAEBEi0KB2RldGFpbHMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQFCDAoKX3JldHJ5YWJsZUIKCghfZGV0YWlscyJDCh5GYWlsT3BlcmF0aW9uRXhlY3V0aW9uUmVzcG9uc2USDgoGc3RhdHVzGAEgASgJEhEKCWNhbmNlbGxlZBgCIAEoCCLbAQoeUmVwb3J0T3BlcmF0aW9uUHJvZ3Jlc3NSZXF1ZXN0EgoKAmlkGAEgASgJEhkKDHByb2dyZXNzX3BjdBgCIAEoBUgAiAEBEh0KEHByb2dyZXNzX21lc3NhZ2UYAyABKAlIAYgBARI3ChFwcm9ncmVzc19tZXRhZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUIPCg1fcHJvZ3Jlc3NfcGN0QhMKEV9wcm9ncmVzc19tZXNzYWdlQhQKEl9wcm9ncmVzc19tZXRhZGF0YSJECh9SZXBvcnRPcGVyYXRpb25Qcm9ncmVzc1Jlc3BvbnNlEg4KBnN0YXR1cxgBIAEoCRIRCgljYW5jZWxsZWQYAiABKAgiggEKHUdldE9wZXJhdGlvblF1b3RhVXNhZ2VSZXF1ZXN0EhUKDW9wZXJhdGlvbl9rZXkYASABKAkSGAoLY3VzdG9tZXJfaWQYAiABKAlIAIgBARIUCgd1c2VyX2lkGAMgASgJSAGIAQFCDgoMX2N1c3RvbWVyX2lkQgoKCF91c2VyX2lkIrIBCg5RdW90YVJ1bGVVc2FnZRISCgpydWxlX2luZGV4GAEgASgFEhMKC3NlZ21lbnRfa2V5GAIgASgJEg0KBWxpbWl0GAMgASgFEgwKBHVzZWQYBCABKAUSEQoJcmVtYWluaW5nGAUgASgFEhUKDXJlc2V0X2F0X3VuaXgYBiABKAMSDQoFc2NvcGUYByABKAkSEAoIZHVyYXRpb24YCCABKAUSDwoHbWVzc2FnZRgJIAEoCSKtAQoeR2V0T3BlcmF0aW9uUXVvdGFVc2FnZVJlc3BvbnNlEhgKEHRvdGFsX2V4ZWN1dGlvbnMYASABKAMSGQoRcGVyaW9kX2V4ZWN1dGlvbnMYAiABKAMSGAoLcXVvdGFfbGltaXQYAyABKANIAIgBARIsCgVydWxlcxgEIAMoCzIdLm9wZXJhdGlvbnMudjEuUXVvdGFSdWxlVXNhZ2VCDgoMX3F1b3RhX2xpbWl0IhwKGkdldFNpZ25pbmdTZWNyZXRSYXdSZXF1ZXN0Ii0KG0dldFNpZ25pbmdTZWNyZXRSYXdSZXNwb25zZRIOCgZzZWNyZXQYASABKAkiKAoaR2V0T3BlcmF0aW9uVmVyc2lvblJlcXVlc3QSCgoCaWQYASABKAkiTwobR2V0T3BlcmF0aW9uVmVyc2lvblJlc3BvbnNlEjAKB3ZlcnNpb24YASABKAsyHy5vcGVyYXRpb25zLnYxLk9wZXJhdGlvblZlcnNpb24irAEKHExpc3RPcGVyYXRpb25WZXJzaW9uc1JlcXVlc3QSFAoMb3BlcmF0aW9uX2lkGAEgASgJEhIKBWFmdGVyGAIgASgJSACIAQESEwoGYmVmb3JlGAMgASgJSAGIAQESEgoFZmlyc3QYBCABKAVIAogBARIRCgRsYXN0GAUgASgFSAOIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Iq0BCh1MaXN0T3BlcmF0aW9uVmVyc2lvbnNSZXNwb25zZRIxCgh2ZXJzaW9ucxgBIAMoCzIfLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uVmVyc2lvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ibAoeUmVzdG9yZU9wZXJhdGlvblZlcnNpb25SZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkSHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAIgASgJSACIAQFCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbiKEAQofUmVzdG9yZU9wZXJhdGlvblZlcnNpb25SZXNwb25zZRIrCglvcGVyYXRpb24YASABKAsyGC5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbhI0CgtuZXdfdmVyc2lvbhgCIAEoCzIfLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uVmVyc2lvbiIlChdQdWJsaXNoT3BlcmF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJ9ChhQdWJsaXNoT3BlcmF0aW9uUmVzcG9uc2USKwoJb3BlcmF0aW9uGAEgASgLMhgub3BlcmF0aW9ucy52MS5PcGVyYXRpb24SNAoQYnJlYWtpbmdfY2hhbmdlcxgCIAMoCzIaLnB1Ymxpc2gudjEuQnJlYWtpbmdDaGFuZ2UiJwoZVW5wdWJsaXNoT3BlcmF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJJChpVbnB1Ymxpc2hPcGVyYXRpb25SZXNwb25zZRIrCglvcGVyYXRpb24YASABKAsyGC5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbiIuCiBHZXRPcGVyYXRpb25QdWJsaXNoU3RhdHVzUmVxdWVzdBIKCgJpZBgBIAEoCSJOCiFHZXRPcGVyYXRpb25QdWJsaXNoU3RhdHVzUmVzcG9uc2USKQoGc3RhdHVzGAEgASgLMhkucHVibGlzaC52MS5QdWJsaXNoU3RhdHVzIqUBCh9TY2hlZHVsZU9wZXJhdGlvblB1Ymxpc2hSZXF1ZXN0EgoKAmlkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fdW5wdWJsaXNoX2F0Ik8KIFNjaGVkdWxlT3BlcmF0aW9uUHVibGlzaFJlc3BvbnNlEisKCW9wZXJhdGlvbhgBIAEoCzIYLm9wZXJhdGlvbnMudjEuT3BlcmF0aW9uIjQKJkNhbmNlbFNjaGVkdWxlZE9wZXJhdGlvblB1Ymxpc2hSZXF1ZXN0EgoKAmlkGAEgASgJIlYKJ0NhbmNlbFNjaGVkdWxlZE9wZXJhdGlvblB1Ymxpc2hSZXNwb25zZRIrCglvcGVyYXRpb24YASABKAsyGC5vcGVyYXRpb25zLnYxLk9wZXJhdGlvbiqAAQoNT3BlcmF0aW9uS2luZBIeChpPUEVSQVRJT05fS0lORF9VTlNQRUNJRklFRBAAEhsKF09QRVJBVElPTl9LSU5EX01VVEFUSU9OEAESGAoUT1BFUkFUSU9OX0tJTkRfUVVFUlkQAhIYChRPUEVSQVRJT05fS0lORF9GSUVMRBADKmIKDUV4ZWN1dGlvbk1vZGUSHgoaRVhFQ1VUSU9OX01PREVfVU5TUEVDSUZJRUQQABIXChNFWEVDVVRJT05fTU9ERV9TWU5DEAESGAoURVhFQ1VUSU9OX01PREVfQVNZTkMQAjKOIwoRT3BlcmF0aW9uc1NlcnZpY2USXQoOTGlzdE9wZXJhdGlvbnMSJC5vcGVyYXRpb25zLnYxLkxpc3RPcGVyYXRpb25zUmVxdWVzdBolLm9wZXJhdGlvbnMudjEuTGlzdE9wZXJhdGlvbnNSZXNwb25zZRJXCgxHZXRPcGVyYXRpb24SIi5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblJlcXVlc3QaIy5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblJlc3BvbnNlEmAKD0NyZWF0ZU9wZXJhdGlvbhIlLm9wZXJhdGlvbnMudjEuQ3JlYXRlT3BlcmF0aW9uUmVxdWVzdBomLm9wZXJhdGlvbnMudjEuQ3JlYXRlT3BlcmF0aW9uUmVzcG9uc2USYAoPVXBkYXRlT3BlcmF0aW9uEiUub3BlcmF0aW9ucy52MS5VcGRhdGVPcGVyYXRpb25SZXF1ZXN0GiYub3BlcmF0aW9ucy52MS5VcGRhdGVPcGVyYXRpb25SZXNwb25zZRJgCg9EZWxldGVPcGVyYXRpb24SJS5vcGVyYXRpb25zLnYxLkRlbGV0ZU9wZXJhdGlvblJlcXVlc3QaJi5vcGVyYXRpb25zLnYxLkRlbGV0ZU9wZXJhdGlvblJlc3BvbnNlEmMKEEV4ZWN1dGVPcGVyYXRpb24SJi5vcGVyYXRpb25zLnYxLkV4ZWN1dGVPcGVyYXRpb25SZXF1ZXN0Gicub3BlcmF0aW9ucy52MS5FeGVjdXRlT3BlcmF0aW9uUmVzcG9uc2USYwoQUmVzb2x2ZU9wZXJhdGlvbhImLm9wZXJhdGlvbnMudjEuUmVzb2x2ZU9wZXJhdGlvblJlcXVlc3QaJy5vcGVyYXRpb25zLnYxLlJlc29sdmVPcGVyYXRpb25SZXNwb25zZRJyChVSZXNvbHZlT3BlcmF0aW9uQmF0Y2gSKy5vcGVyYXRpb25zLnYxLlJlc29sdmVPcGVyYXRpb25CYXRjaFJlcXVlc3QaLC5vcGVyYXRpb25zLnYxLlJlc29sdmVPcGVyYXRpb25CYXRjaFJlc3BvbnNlEngKF0xpc3RPcGVyYXRpb25FeGVjdXRpb25zEi0ub3BlcmF0aW9ucy52MS5MaXN0T3BlcmF0aW9uRXhlY3V0aW9uc1JlcXVlc3QaLi5vcGVyYXRpb25zLnYxLkxpc3RPcGVyYXRpb25FeGVjdXRpb25zUmVzcG9uc2USgQEKGkdldE9wZXJhdGlvbkV4ZWN1dGlvblN0YXRzEjAub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25FeGVjdXRpb25TdGF0c1JlcXVlc3QaMS5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvbkV4ZWN1dGlvblN0YXRzUmVzcG9uc2UScgoVTGlzdERlYWRMZXR0ZXJFbnRyaWVzEisub3BlcmF0aW9ucy52MS5MaXN0RGVhZExldHRlckVudHJpZXNSZXF1ZXN0Giwub3BlcmF0aW9ucy52MS5MaXN0RGVhZExldHRlckVudHJpZXNSZXNwb25zZRJvChRSZXRyeURlYWRMZXR0ZXJFbnRyeRIqLm9wZXJhdGlvbnMudjEuUmV0cnlEZWFkTGV0dGVyRW50cnlSZXF1ZXN0Gisub3BlcmF0aW9ucy52MS5SZXRyeURlYWRMZXR0ZXJFbnRyeVJlc3BvbnNlEnUKFkRpc21pc3NEZWFkTGV0dGVyRW50cnkSLC5vcGVyYXRpb25zLnYxLkRpc21pc3NEZWFkTGV0dGVyRW50cnlSZXF1ZXN0Gi0ub3BlcmF0aW9ucy52MS5EaXNtaXNzRGVhZExldHRlckVudHJ5UmVzcG9uc2USdQoWQnVsa0Rpc21pc3NEZWFkTGV0dGVycxIsLm9wZXJhdGlvbnMudjEuQnVsa0Rpc21pc3NEZWFkTGV0dGVyc1JlcXVlc3QaLS5vcGVyYXRpb25zLnYxLkJ1bGtEaXNtaXNzRGVhZExldHRlcnNSZXNwb25zZRKHAQocRGlzbWlzc0FsbFBlbmRpbmdEZWFkTGV0dGVycxIyLm9wZXJhdGlvbnMudjEuRGlzbWlzc0FsbFBlbmRpbmdEZWFkTGV0dGVyc1JlcXVlc3QaMy5vcGVyYXRpb25zLnYxLkRpc21pc3NBbGxQZW5kaW5nRGVhZExldHRlcnNSZXNwb25zZRJvChRCdWxrUmV0cnlEZWFkTGV0dGVycxIqLm9wZXJhdGlvbnMudjEuQnVsa1JldHJ5RGVhZExldHRlcnNSZXF1ZXN0Gisub3BlcmF0aW9ucy52MS5CdWxrUmV0cnlEZWFkTGV0dGVyc1Jlc3BvbnNlEoQBChtMaXN0RGVhZExldHRlck9wZXJhdGlvbktleXMSMS5vcGVyYXRpb25zLnYxLkxpc3REZWFkTGV0dGVyT3BlcmF0aW9uS2V5c1JlcXVlc3QaMi5vcGVyYXRpb25zLnYxLkxpc3REZWFkTGV0dGVyT3BlcmF0aW9uS2V5c1Jlc3BvbnNlEmkKEkdldERlYWRMZXR0ZXJTdGF0cxIoLm9wZXJhdGlvbnMudjEuR2V0RGVhZExldHRlclN0YXRzUmVxdWVzdBopLm9wZXJhdGlvbnMudjEuR2V0RGVhZExldHRlclN0YXRzUmVzcG9uc2USZgoRTGlzdENpcmN1aXRTdGF0ZXMSJy5vcGVyYXRpb25zLnYxLkxpc3RDaXJjdWl0U3RhdGVzUmVxdWVzdBooLm9wZXJhdGlvbnMudjEuTGlzdENpcmN1aXRTdGF0ZXNSZXNwb25zZRJXCgxSZXNldENpcmN1aXQSIi5vcGVyYXRpb25zLnYxLlJlc2V0Q2lyY3VpdFJlcXVlc3QaIy5vcGVyYXRpb25zLnYxLlJlc2V0Q2lyY3VpdFJlc3BvbnNlEngKF0dldEFwcGxpY2FibGVPcGVyYXRpb25zEi0ub3BlcmF0aW9ucy52MS5HZXRBcHBsaWNhYmxlT3BlcmF0aW9uc1JlcXVlc3QaLi5vcGVyYXRpb25zLnYxLkdldEFwcGxpY2FibGVPcGVyYXRpb25zUmVzcG9uc2UScgoVR2V0T3BlcmF0aW9uRXhlY3V0aW9uEisub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25FeGVjdXRpb25SZXF1ZXN0Giwub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25FeGVjdXRpb25SZXNwb25zZRJ7ChhDYW5jZWxPcGVyYXRpb25FeGVjdXRpb24SLi5vcGVyYXRpb25zLnYxLkNhbmNlbE9wZXJhdGlvbkV4ZWN1dGlvblJlcXVlc3QaLy5vcGVyYXRpb25zLnYxLkNhbmNlbE9wZXJhdGlvbkV4ZWN1dGlvblJlc3BvbnNlEn4KGUNhbmNlbE9wZXJhdGlvbkV4ZWN1dGlvbnMSLy5vcGVyYXRpb25zLnYxLkNhbmNlbE9wZXJhdGlvbkV4ZWN1dGlvbnNSZXF1ZXN0GjAub3BlcmF0aW9ucy52MS5DYW5jZWxPcGVyYXRpb25FeGVjdXRpb25zUmVzcG9uc2USgQEKGkNvbXBsZXRlT3BlcmF0aW9uRXhlY3V0aW9uEjAub3BlcmF0aW9ucy52MS5Db21wbGV0ZU9wZXJhdGlvbkV4ZWN1dGlvblJlcXVlc3QaMS5vcGVyYXRpb25zLnYxLkNvbXBsZXRlT3BlcmF0aW9uRXhlY3V0aW9uUmVzcG9uc2USdQoWRmFpbE9wZXJhdGlvbkV4ZWN1dGlvbhIsLm9wZXJhdGlvbnMudjEuRmFpbE9wZXJhdGlvbkV4ZWN1dGlvblJlcXVlc3QaLS5vcGVyYXRpb25zLnYxLkZhaWxPcGVyYXRpb25FeGVjdXRpb25SZXNwb25zZRJ4ChdSZXBvcnRPcGVyYXRpb25Qcm9ncmVzcxItLm9wZXJhdGlvbnMudjEuUmVwb3J0T3BlcmF0aW9uUHJvZ3Jlc3NSZXF1ZXN0Gi4ub3BlcmF0aW9ucy52MS5SZXBvcnRPcGVyYXRpb25Qcm9ncmVzc1Jlc3BvbnNlEnUKFkdldE9wZXJhdGlvblF1b3RhVXNhZ2USLC5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblF1b3RhVXNhZ2VSZXF1ZXN0Gi0ub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25RdW90YVVzYWdlUmVzcG9uc2USYwoQR2V0U2lnbmluZ1NlY3JldBImLm9wZXJhdGlvbnMudjEuR2V0U2lnbmluZ1NlY3JldFJlcXVlc3QaJy5vcGVyYXRpb25zLnYxLkdldFNpZ25pbmdTZWNyZXRSZXNwb25zZRJsChNHZXRTaWduaW5nU2VjcmV0UmF3Eikub3BlcmF0aW9ucy52MS5HZXRTaWduaW5nU2VjcmV0UmF3UmVxdWVzdBoqLm9wZXJhdGlvbnMudjEuR2V0U2lnbmluZ1NlY3JldFJhd1Jlc3BvbnNlEngKF1JlZ2VuZXJhdGVTaWduaW5nU2VjcmV0Ei0ub3BlcmF0aW9ucy52MS5SZWdlbmVyYXRlU2lnbmluZ1NlY3JldFJlcXVlc3QaLi5vcGVyYXRpb25zLnYxLlJlZ2VuZXJhdGVTaWduaW5nU2VjcmV0UmVzcG9uc2USbAoTR2V0T3BlcmF0aW9uVmVyc2lvbhIpLm9wZXJhdGlvbnMudjEuR2V0T3BlcmF0aW9uVmVyc2lvblJlcXVlc3QaKi5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblZlcnNpb25SZXNwb25zZRJyChVMaXN0T3BlcmF0aW9uVmVyc2lvbnMSKy5vcGVyYXRpb25zLnYxLkxpc3RPcGVyYXRpb25WZXJzaW9uc1JlcXVlc3QaLC5vcGVyYXRpb25zLnYxLkxpc3RPcGVyYXRpb25WZXJzaW9uc1Jlc3BvbnNlEngKF1Jlc3RvcmVPcGVyYXRpb25WZXJzaW9uEi0ub3BlcmF0aW9ucy52MS5SZXN0b3JlT3BlcmF0aW9uVmVyc2lvblJlcXVlc3QaLi5vcGVyYXRpb25zLnYxLlJlc3RvcmVPcGVyYXRpb25WZXJzaW9uUmVzcG9uc2USYwoQUHVibGlzaE9wZXJhdGlvbhImLm9wZXJhdGlvbnMudjEuUHVibGlzaE9wZXJhdGlvblJlcXVlc3QaJy5vcGVyYXRpb25zLnYxLlB1Ymxpc2hPcGVyYXRpb25SZXNwb25zZRJpChJVbnB1Ymxpc2hPcGVyYXRpb24SKC5vcGVyYXRpb25zLnYxLlVucHVibGlzaE9wZXJhdGlvblJlcXVlc3QaKS5vcGVyYXRpb25zLnYxLlVucHVibGlzaE9wZXJhdGlvblJlc3BvbnNlEn4KGUdldE9wZXJhdGlvblB1Ymxpc2hTdGF0dXMSLy5vcGVyYXRpb25zLnYxLkdldE9wZXJhdGlvblB1Ymxpc2hTdGF0dXNSZXF1ZXN0GjAub3BlcmF0aW9ucy52MS5HZXRPcGVyYXRpb25QdWJsaXNoU3RhdHVzUmVzcG9uc2USewoYU2NoZWR1bGVPcGVyYXRpb25QdWJsaXNoEi4ub3BlcmF0aW9ucy52MS5TY2hlZHVsZU9wZXJhdGlvblB1Ymxpc2hSZXF1ZXN0Gi8ub3BlcmF0aW9ucy52MS5TY2hlZHVsZU9wZXJhdGlvblB1Ymxpc2hSZXNwb25zZRKQAQofQ2FuY2VsU2NoZWR1bGVkT3BlcmF0aW9uUHVibGlzaBI1Lm9wZXJhdGlvbnMudjEuQ2FuY2VsU2NoZWR1bGVkT3BlcmF0aW9uUHVibGlzaFJlcXVlc3QaNi5vcGVyYXRpb25zLnYxLkNhbmNlbFNjaGVkdWxlZE9wZXJhdGlvblB1Ymxpc2hSZXNwb25zZUJBWj9naXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vb3BlcmF0aW9ucy92MTtvcGVyYXRpb25zdjFiBnByb3RvMw", [file_google_protobuf_struct8, file_google_protobuf_timestamp9, file_publish_v1_publish, file_common_v1_pagination]);
808
+ var OperationSchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 2);
809
+ var OperationExecutionSchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 4);
810
+ var DeadLetterEntrySchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 5);
811
+ var ListOperationsRequestSchema2 = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 9);
812
+ var GetOperationRequestSchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 11);
813
+ var CreateOperationRequestSchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 13);
814
+ var UpdateOperationRequestSchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 15);
815
+ var DeleteOperationRequestSchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 17);
816
+ var ExecuteOperationRequestSchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 19);
817
+ var ListDeadLetterEntriesRequestSchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 31);
818
+ var RetryDeadLetterEntryRequestSchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 33);
819
+ var DismissDeadLetterEntryRequestSchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 35);
820
+ var GetSigningSecretRequestSchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 51);
821
+ var PublishOperationRequestSchema = /* @__PURE__ */ messageDesc13(file_operations_v1_operations, 80);
822
+ var OperationKindSchema = /* @__PURE__ */ enumDesc9(file_operations_v1_operations, 0);
823
+ var OperationKind = /* @__PURE__ */ tsEnum9(OperationKindSchema);
824
+ var OperationsService = /* @__PURE__ */ serviceDesc9(file_operations_v1_operations, 0);
798
825
 
799
826
  // ../../packages/proto-ts/src/hooks/v1/hooks_pb.js
800
- import { fileDesc as fileDesc13, messageDesc as messageDesc13, serviceDesc as serviceDesc9 } from "@bufbuild/protobuf/codegenv2";
827
+ import { fileDesc as fileDesc14, messageDesc as messageDesc14, serviceDesc as serviceDesc10 } from "@bufbuild/protobuf/codegenv2";
801
828
  import { file_google_protobuf_struct as file_google_protobuf_struct9, file_google_protobuf_timestamp as file_google_protobuf_timestamp10 } from "@bufbuild/protobuf/wkt";
802
- var file_hooks_v1_hooks = /* @__PURE__ */ fileDesc13("ChRob29rcy92MS9ob29rcy5wcm90bxIIaG9va3MudjEinQQKBEhvb2sSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARINCgVldmVudBgFIAEoCRITCgt0YXJnZXRfdHlwZRgGIAEoCRIaCg1vcGVyYXRpb25fa2V5GAcgASgJSAGIAQESOQoTbm90aWZpY2F0aW9uX2NvbmZpZxgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIsCgZmaWx0ZXIYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESFgoJY29uZmlnX2lkGAogASgJSASIAQESEQoJaXNfYWN0aXZlGAsgASgIEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEhcKCmNyZWF0ZWRfYnkYHiABKAlIBYgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CEAoOX29wZXJhdGlvbl9rZXlCFgoUX25vdGlmaWNhdGlvbl9jb25maWdCCQoHX2ZpbHRlckIMCgpfY29uZmlnX2lkQg0KC19jcmVhdGVkX2J5IpQDCgxIb29rRGVsaXZlcnkSCgoCaWQYASABKAkSDwoHaG9va19pZBgCIAEoCRINCgVldmVudBgDIAEoCRIOCgZzdGF0dXMYBCABKAkSKAoHcGF5bG9hZBgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLgoIcmVzcG9uc2UYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFZXJyb3IYByABKAlIAYgBARIQCghhdHRlbXB0cxgIIAEoBRIYCgtkdXJhdGlvbl9tcxgJIAEoBUgCiAEBEjAKDGRlbGl2ZXJlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCwoJX3Jlc3BvbnNlQggKBl9lcnJvckIOCgxfZHVyYXRpb25fbXMiwQEKEExpc3RIb29rc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Io0BChFMaXN0SG9va3NSZXNwb25zZRIdCgVob29rcxgBIAMoCzIOLmhvb2tzLnYxLkhvb2sSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIhwKDkdldEhvb2tSZXF1ZXN0EgoKAmlkGAEgASgJIi8KD0dldEhvb2tSZXNwb25zZRIcCgRob29rGAEgASgLMg4uaG9va3MudjEuSG9vayLcAgoRQ3JlYXRlSG9va1JlcXVlc3QSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgVldmVudBgEIAEoCRITCgt0YXJnZXRfdHlwZRgFIAEoCRIaCg1vcGVyYXRpb25fa2V5GAYgASgJSAGIAQESOQoTbm90aWZpY2F0aW9uX2NvbmZpZxgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIsCgZmaWx0ZXIYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESFgoJY29uZmlnX2lkGAkgASgJSASIAQFCDgoMX2Rlc2NyaXB0aW9uQhAKDl9vcGVyYXRpb25fa2V5QhYKFF9ub3RpZmljYXRpb25fY29uZmlnQgkKB19maWx0ZXJCDAoKX2NvbmZpZ19pZCIyChJDcmVhdGVIb29rUmVzcG9uc2USHAoEaG9vaxgBIAEoCzIOLmhvb2tzLnYxLkhvb2sixQIKEVVwZGF0ZUhvb2tSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgBiAEBEhoKDW9wZXJhdGlvbl9rZXkYBCABKAlIAogBARI5ChNub3RpZmljYXRpb25fY29uZmlnGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEiwKBmZpbHRlchgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIWCglpc19hY3RpdmUYByABKAhIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEAoOX29wZXJhdGlvbl9rZXlCFgoUX25vdGlmaWNhdGlvbl9jb25maWdCCQoHX2ZpbHRlckIMCgpfaXNfYWN0aXZlIjIKElVwZGF0ZUhvb2tSZXNwb25zZRIcCgRob29rGAEgASgLMg4uaG9va3MudjEuSG9vayIfChFEZWxldGVIb29rUmVxdWVzdBIKCgJpZBgBIAEoCSIlChJEZWxldGVIb29rUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLKAQoZTGlzdEhvb2tEZWxpdmVyaWVzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QiowEKGkxpc3RIb29rRGVsaXZlcmllc1Jlc3BvbnNlEioKCmRlbGl2ZXJpZXMYASADKAsyFi5ob29rcy52MS5Ib29rRGVsaXZlcnkSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIi8KGFJldHJ5SG9va0RlbGl2ZXJ5UmVxdWVzdBITCgtkZWxpdmVyeV9pZBgBIAEoCSIsChlSZXRyeUhvb2tEZWxpdmVyeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiZwoPVGVzdEhvb2tSZXF1ZXN0Eg8KB2hvb2tfaWQYASABKAkSMgoMdGVzdF9wYXlsb2FkGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQg8KDV90ZXN0X3BheWxvYWQiQQoQVGVzdEhvb2tSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhIKBWVycm9yGAIgASgJSACIAQFCCAoGX2Vycm9yIiIKE0dldEhvb2tCeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIjQKFEdldEhvb2tCeUtleVJlc3BvbnNlEhwKBGhvb2sYASABKAsyDi5ob29rcy52MS5Ib29rMsAFCgxIb29rc1NlcnZpY2USRAoJTGlzdEhvb2tzEhouaG9va3MudjEuTGlzdEhvb2tzUmVxdWVzdBobLmhvb2tzLnYxLkxpc3RIb29rc1Jlc3BvbnNlEj4KB0dldEhvb2sSGC5ob29rcy52MS5HZXRIb29rUmVxdWVzdBoZLmhvb2tzLnYxLkdldEhvb2tSZXNwb25zZRJNCgxHZXRIb29rQnlLZXkSHS5ob29rcy52MS5HZXRIb29rQnlLZXlSZXF1ZXN0Gh4uaG9va3MudjEuR2V0SG9va0J5S2V5UmVzcG9uc2USRwoKQ3JlYXRlSG9vaxIbLmhvb2tzLnYxLkNyZWF0ZUhvb2tSZXF1ZXN0GhwuaG9va3MudjEuQ3JlYXRlSG9va1Jlc3BvbnNlEkcKClVwZGF0ZUhvb2sSGy5ob29rcy52MS5VcGRhdGVIb29rUmVxdWVzdBocLmhvb2tzLnYxLlVwZGF0ZUhvb2tSZXNwb25zZRJHCgpEZWxldGVIb29rEhsuaG9va3MudjEuRGVsZXRlSG9va1JlcXVlc3QaHC5ob29rcy52MS5EZWxldGVIb29rUmVzcG9uc2USXwoSTGlzdEhvb2tEZWxpdmVyaWVzEiMuaG9va3MudjEuTGlzdEhvb2tEZWxpdmVyaWVzUmVxdWVzdBokLmhvb2tzLnYxLkxpc3RIb29rRGVsaXZlcmllc1Jlc3BvbnNlElwKEVJldHJ5SG9va0RlbGl2ZXJ5EiIuaG9va3MudjEuUmV0cnlIb29rRGVsaXZlcnlSZXF1ZXN0GiMuaG9va3MudjEuUmV0cnlIb29rRGVsaXZlcnlSZXNwb25zZRJBCghUZXN0SG9vaxIZLmhvb2tzLnYxLlRlc3RIb29rUmVxdWVzdBoaLmhvb2tzLnYxLlRlc3RIb29rUmVzcG9uc2VCN1o1Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL2hvb2tzL3YxO2hvb2tzdjFiBnByb3RvMw", [file_google_protobuf_struct9, file_google_protobuf_timestamp10, file_common_v1_pagination]);
803
- var HookSchema = /* @__PURE__ */ messageDesc13(file_hooks_v1_hooks, 0);
804
- var HookDeliverySchema = /* @__PURE__ */ messageDesc13(file_hooks_v1_hooks, 1);
805
- var ListHooksRequestSchema = /* @__PURE__ */ messageDesc13(file_hooks_v1_hooks, 2);
806
- var GetHookRequestSchema = /* @__PURE__ */ messageDesc13(file_hooks_v1_hooks, 4);
807
- var CreateHookRequestSchema = /* @__PURE__ */ messageDesc13(file_hooks_v1_hooks, 6);
808
- var UpdateHookRequestSchema = /* @__PURE__ */ messageDesc13(file_hooks_v1_hooks, 8);
809
- var DeleteHookRequestSchema = /* @__PURE__ */ messageDesc13(file_hooks_v1_hooks, 10);
810
- var ListHookDeliveriesRequestSchema = /* @__PURE__ */ messageDesc13(file_hooks_v1_hooks, 12);
811
- var RetryHookDeliveryRequestSchema = /* @__PURE__ */ messageDesc13(file_hooks_v1_hooks, 14);
812
- var TestHookRequestSchema = /* @__PURE__ */ messageDesc13(file_hooks_v1_hooks, 16);
813
- var GetHookByKeyRequestSchema = /* @__PURE__ */ messageDesc13(file_hooks_v1_hooks, 18);
814
- var HooksService = /* @__PURE__ */ serviceDesc9(file_hooks_v1_hooks, 0);
829
+ var file_hooks_v1_hooks = /* @__PURE__ */ fileDesc14("ChRob29rcy92MS9ob29rcy5wcm90bxIIaG9va3MudjEinQQKBEhvb2sSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEgwKBG5hbWUYAyABKAkSGAoLZGVzY3JpcHRpb24YBCABKAlIAIgBARINCgVldmVudBgFIAEoCRITCgt0YXJnZXRfdHlwZRgGIAEoCRIaCg1vcGVyYXRpb25fa2V5GAcgASgJSAGIAQESOQoTbm90aWZpY2F0aW9uX2NvbmZpZxgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIsCgZmaWx0ZXIYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESFgoJY29uZmlnX2lkGAogASgJSASIAQESEQoJaXNfYWN0aXZlGAsgASgIEhEKCXRlbmFudF9pZBgUIAEoCRISCgpwcm9qZWN0X2lkGBUgASgJEhcKCmNyZWF0ZWRfYnkYHiABKAlIBYgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CEAoOX29wZXJhdGlvbl9rZXlCFgoUX25vdGlmaWNhdGlvbl9jb25maWdCCQoHX2ZpbHRlckIMCgpfY29uZmlnX2lkQg0KC19jcmVhdGVkX2J5IpQDCgxIb29rRGVsaXZlcnkSCgoCaWQYASABKAkSDwoHaG9va19pZBgCIAEoCRINCgVldmVudBgDIAEoCRIOCgZzdGF0dXMYBCABKAkSKAoHcGF5bG9hZBgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLgoIcmVzcG9uc2UYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFZXJyb3IYByABKAlIAYgBARIQCghhdHRlbXB0cxgIIAEoBRIYCgtkdXJhdGlvbl9tcxgJIAEoBUgCiAEBEjAKDGRlbGl2ZXJlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCwoJX3Jlc3BvbnNlQggKBl9lcnJvckIOCgxfZHVyYXRpb25fbXMiwQEKEExpc3RIb29rc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0Io0BChFMaXN0SG9va3NSZXNwb25zZRIdCgVob29rcxgBIAMoCzIOLmhvb2tzLnYxLkhvb2sSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIhwKDkdldEhvb2tSZXF1ZXN0EgoKAmlkGAEgASgJIi8KD0dldEhvb2tSZXNwb25zZRIcCgRob29rGAEgASgLMg4uaG9va3MudjEuSG9vayLcAgoRQ3JlYXRlSG9va1JlcXVlc3QSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBARINCgVldmVudBgEIAEoCRITCgt0YXJnZXRfdHlwZRgFIAEoCRIaCg1vcGVyYXRpb25fa2V5GAYgASgJSAGIAQESOQoTbm90aWZpY2F0aW9uX2NvbmZpZxgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIsCgZmaWx0ZXIYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESFgoJY29uZmlnX2lkGAkgASgJSASIAQFCDgoMX2Rlc2NyaXB0aW9uQhAKDl9vcGVyYXRpb25fa2V5QhYKFF9ub3RpZmljYXRpb25fY29uZmlnQgkKB19maWx0ZXJCDAoKX2NvbmZpZ19pZCIyChJDcmVhdGVIb29rUmVzcG9uc2USHAoEaG9vaxgBIAEoCzIOLmhvb2tzLnYxLkhvb2sixQIKEVVwZGF0ZUhvb2tSZXF1ZXN0EgoKAmlkGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgBiAEBEhoKDW9wZXJhdGlvbl9rZXkYBCABKAlIAogBARI5ChNub3RpZmljYXRpb25fY29uZmlnGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEiwKBmZpbHRlchgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIWCglpc19hY3RpdmUYByABKAhIBYgBAUIHCgVfbmFtZUIOCgxfZGVzY3JpcHRpb25CEAoOX29wZXJhdGlvbl9rZXlCFgoUX25vdGlmaWNhdGlvbl9jb25maWdCCQoHX2ZpbHRlckIMCgpfaXNfYWN0aXZlIjIKElVwZGF0ZUhvb2tSZXNwb25zZRIcCgRob29rGAEgASgLMg4uaG9va3MudjEuSG9vayIfChFEZWxldGVIb29rUmVxdWVzdBIKCgJpZBgBIAEoCSIlChJEZWxldGVIb29rUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCLKAQoZTGlzdEhvb2tEZWxpdmVyaWVzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QiowEKGkxpc3RIb29rRGVsaXZlcmllc1Jlc3BvbnNlEioKCmRlbGl2ZXJpZXMYASADKAsyFi5ob29rcy52MS5Ib29rRGVsaXZlcnkSDQoFdG90YWwYAiABKAUSKwoJcGFnZV9pbmZvGAMgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIi8KGFJldHJ5SG9va0RlbGl2ZXJ5UmVxdWVzdBITCgtkZWxpdmVyeV9pZBgBIAEoCSIsChlSZXRyeUhvb2tEZWxpdmVyeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiZwoPVGVzdEhvb2tSZXF1ZXN0Eg8KB2hvb2tfaWQYASABKAkSMgoMdGVzdF9wYXlsb2FkGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQg8KDV90ZXN0X3BheWxvYWQiQQoQVGVzdEhvb2tSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhIKBWVycm9yGAIgASgJSACIAQFCCAoGX2Vycm9yIiIKE0dldEhvb2tCeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIjQKFEdldEhvb2tCeUtleVJlc3BvbnNlEhwKBGhvb2sYASABKAsyDi5ob29rcy52MS5Ib29rMsAFCgxIb29rc1NlcnZpY2USRAoJTGlzdEhvb2tzEhouaG9va3MudjEuTGlzdEhvb2tzUmVxdWVzdBobLmhvb2tzLnYxLkxpc3RIb29rc1Jlc3BvbnNlEj4KB0dldEhvb2sSGC5ob29rcy52MS5HZXRIb29rUmVxdWVzdBoZLmhvb2tzLnYxLkdldEhvb2tSZXNwb25zZRJNCgxHZXRIb29rQnlLZXkSHS5ob29rcy52MS5HZXRIb29rQnlLZXlSZXF1ZXN0Gh4uaG9va3MudjEuR2V0SG9va0J5S2V5UmVzcG9uc2USRwoKQ3JlYXRlSG9vaxIbLmhvb2tzLnYxLkNyZWF0ZUhvb2tSZXF1ZXN0GhwuaG9va3MudjEuQ3JlYXRlSG9va1Jlc3BvbnNlEkcKClVwZGF0ZUhvb2sSGy5ob29rcy52MS5VcGRhdGVIb29rUmVxdWVzdBocLmhvb2tzLnYxLlVwZGF0ZUhvb2tSZXNwb25zZRJHCgpEZWxldGVIb29rEhsuaG9va3MudjEuRGVsZXRlSG9va1JlcXVlc3QaHC5ob29rcy52MS5EZWxldGVIb29rUmVzcG9uc2USXwoSTGlzdEhvb2tEZWxpdmVyaWVzEiMuaG9va3MudjEuTGlzdEhvb2tEZWxpdmVyaWVzUmVxdWVzdBokLmhvb2tzLnYxLkxpc3RIb29rRGVsaXZlcmllc1Jlc3BvbnNlElwKEVJldHJ5SG9va0RlbGl2ZXJ5EiIuaG9va3MudjEuUmV0cnlIb29rRGVsaXZlcnlSZXF1ZXN0GiMuaG9va3MudjEuUmV0cnlIb29rRGVsaXZlcnlSZXNwb25zZRJBCghUZXN0SG9vaxIZLmhvb2tzLnYxLlRlc3RIb29rUmVxdWVzdBoaLmhvb2tzLnYxLlRlc3RIb29rUmVzcG9uc2VCN1o1Z2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL2hvb2tzL3YxO2hvb2tzdjFiBnByb3RvMw", [file_google_protobuf_struct9, file_google_protobuf_timestamp10, file_common_v1_pagination]);
830
+ var HookSchema = /* @__PURE__ */ messageDesc14(file_hooks_v1_hooks, 0);
831
+ var HookDeliverySchema = /* @__PURE__ */ messageDesc14(file_hooks_v1_hooks, 1);
832
+ var ListHooksRequestSchema = /* @__PURE__ */ messageDesc14(file_hooks_v1_hooks, 2);
833
+ var GetHookRequestSchema = /* @__PURE__ */ messageDesc14(file_hooks_v1_hooks, 4);
834
+ var CreateHookRequestSchema = /* @__PURE__ */ messageDesc14(file_hooks_v1_hooks, 6);
835
+ var UpdateHookRequestSchema = /* @__PURE__ */ messageDesc14(file_hooks_v1_hooks, 8);
836
+ var DeleteHookRequestSchema = /* @__PURE__ */ messageDesc14(file_hooks_v1_hooks, 10);
837
+ var ListHookDeliveriesRequestSchema = /* @__PURE__ */ messageDesc14(file_hooks_v1_hooks, 12);
838
+ var RetryHookDeliveryRequestSchema = /* @__PURE__ */ messageDesc14(file_hooks_v1_hooks, 14);
839
+ var TestHookRequestSchema = /* @__PURE__ */ messageDesc14(file_hooks_v1_hooks, 16);
840
+ var GetHookByKeyRequestSchema = /* @__PURE__ */ messageDesc14(file_hooks_v1_hooks, 18);
841
+ var HooksService = /* @__PURE__ */ serviceDesc10(file_hooks_v1_hooks, 0);
815
842
 
816
843
  // ../../packages/proto-ts/src/notifications/v1/notifications_pb.js
817
- import { enumDesc as enumDesc9, fileDesc as fileDesc14, messageDesc as messageDesc14, serviceDesc as serviceDesc10, tsEnum as tsEnum9 } from "@bufbuild/protobuf/codegenv2";
844
+ import { enumDesc as enumDesc10, fileDesc as fileDesc15, messageDesc as messageDesc15, serviceDesc as serviceDesc11, tsEnum as tsEnum10 } from "@bufbuild/protobuf/codegenv2";
818
845
  import { file_google_protobuf_struct as file_google_protobuf_struct10, file_google_protobuf_timestamp as file_google_protobuf_timestamp11 } from "@bufbuild/protobuf/wkt";
819
- var file_notifications_v1_notifications = /* @__PURE__ */ fileDesc14("CiRub3RpZmljYXRpb25zL3YxL25vdGlmaWNhdGlvbnMucHJvdG8SEG5vdGlmaWNhdGlvbnMudjEisAUKDE5vdGlmaWNhdGlvbhIKCgJpZBgBIAEoCRIPCgd1c2VyX2lkGAIgASgJEjAKBHR5cGUYAyABKA4yIi5ub3RpZmljYXRpb25zLnYxLk5vdGlmaWNhdGlvblR5cGUSDQoFdGl0bGUYBCABKAkSFAoHbWVzc2FnZRgFIAEoCUgAiAEBEjIKDHJpY2hfY29udGVudBgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARJCCgtzb3VyY2VfdHlwZRgKIAEoDjIoLm5vdGlmaWNhdGlvbnMudjEuTm90aWZpY2F0aW9uU291cmNlVHlwZUgCiAEBEhYKCXNvdXJjZV9pZBgLIAEoCUgDiAEBEhcKCmFjdGlvbl91cmwYDCABKAlIBIgBARIuCghtZXRhZGF0YRgNIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIPCgdpc19yZWFkGBQgASgIEjAKB3JlYWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAaIAQESEQoJdGVuYW50X2lkGB4gASgJEhcKCnByb2plY3RfaWQYHyABKAlIB4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpleHBpcmVzX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgIiAEBQgoKCF9tZXNzYWdlQg8KDV9yaWNoX2NvbnRlbnRCDgoMX3NvdXJjZV90eXBlQgwKCl9zb3VyY2VfaWRCDQoLX2FjdGlvbl91cmxCCwoJX21ldGFkYXRhQgoKCF9yZWFkX2F0Qg0KC19wcm9qZWN0X2lkQg0KC19leHBpcmVzX2F0IskBChhMaXN0Tm90aWZpY2F0aW9uc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IsMBChlMaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlEjUKDW5vdGlmaWNhdGlvbnMYASADKAsyHi5ub3RpZmljYXRpb25zLnYxLk5vdGlmaWNhdGlvbhINCgV0b3RhbBgCIAEoBRIUCgx1bnJlYWRfY291bnQYAyABKAUSKwoJcGFnZV9pbmZvGAQgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgFIAMoCUIMCgpfcGFnZV9pbmZvIikKG01hcmtOb3RpZmljYXRpb25SZWFkUmVxdWVzdBIKCgJpZBgBIAEoCSIvChxNYXJrTm90aWZpY2F0aW9uUmVhZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiYQofTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVxdWVzdBI1CgR0eXBlGAEgASgOMiIubm90aWZpY2F0aW9ucy52MS5Ob3RpZmljYXRpb25UeXBlSACIAQFCBwoFX3R5cGUiMQogTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVzcG9uc2USDQoFY291bnQYASABKAUiJwoZRGVsZXRlTm90aWZpY2F0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSItChpEZWxldGVOb3RpZmljYXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIhcKFUdldFVucmVhZENvdW50UmVxdWVzdCInChZHZXRVbnJlYWRDb3VudFJlc3BvbnNlEg0KBWNvdW50GAEgASgFIrABChdTZW5kQW5ub3VuY2VtZW50UmVxdWVzdBINCgV0aXRsZRgBIAEoCRIUCgdtZXNzYWdlGAIgASgJSACIAQESFwoKYWN0aW9uX3VybBgDIAEoCUgBiAEBEhgKC3RhcmdldF90eXBlGAQgASgJSAKIAQESEgoKdGFyZ2V0X2lkcxgFIAMoCUIKCghfbWVzc2FnZUINCgtfYWN0aW9uX3VybEIOCgxfdGFyZ2V0X3R5cGUiUAoYU2VuZEFubm91bmNlbWVudFJlc3BvbnNlEjQKDG5vdGlmaWNhdGlvbhgBIAEoCzIeLm5vdGlmaWNhdGlvbnMudjEuTm90aWZpY2F0aW9uIpgBCh5MaXN0QW5ub3VuY2VtZW50SGlzdG9yeVJlcXVlc3QSEgoFYWZ0ZXIYASABKAlIAIgBARITCgZiZWZvcmUYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QiswEKH0xpc3RBbm5vdW5jZW1lbnRIaXN0b3J5UmVzcG9uc2USNQoNYW5ub3VuY2VtZW50cxgBIAMoCzIeLm5vdGlmaWNhdGlvbnMudjEuTm90aWZpY2F0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKXAwoUQ3VzdG9tZXJOb3RpZmljYXRpb24SCgoCaWQYASABKAkSEwoLY3VzdG9tZXJfaWQYAiABKAkSDQoFdGl0bGUYAyABKAkSFAoHbWVzc2FnZRgEIAEoCUgAiAEBEhUKCGNhdGVnb3J5GAUgASgJSAGIAQESFwoKYWN0aW9uX3VybBgGIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEg8KB2lzX3JlYWQYCCABKAgSMAoHcmVhZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfbWVzc2FnZUILCglfY2F0ZWdvcnlCDQoLX2FjdGlvbl91cmxCCwoJX21ldGFkYXRhQgoKCF9yZWFkX2F0ItEBCiBMaXN0Q3VzdG9tZXJOb3RpZmljYXRpb25zUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QivQEKIUxpc3RDdXN0b21lck5vdGlmaWNhdGlvbnNSZXNwb25zZRI9Cg1ub3RpZmljYXRpb25zGAEgAygLMiYubm90aWZpY2F0aW9ucy52MS5DdXN0b21lck5vdGlmaWNhdGlvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8izwQKH1NlbmRDdXN0b21lck5vdGlmaWNhdGlvblJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSDQoFdGl0bGUYAiABKAkSFAoHbWVzc2FnZRgDIAEoCUgAiAEBEhUKCGNhdGVnb3J5GAQgASgJSAGIAQESFwoKYWN0aW9uX3VybBgFIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhYKCWRlZXBfbGluaxgKIAEoCUgEiAEBEhIKBWJhZGdlGAsgASgFSAWIAQESFgoJdGhyZWFkX2lkGAwgASgJSAaIAQESLwoJcHVzaF9kYXRhGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhoKDWVtYWlsX3N1YmplY3QYFCABKAlICIgBARIXCgplbWFpbF9ib2R5GBUgASgJSAmIAQESGwoOZW1haWxfcmVwbHlfdG8YFiABKAlICogBARIuCgplbWFpbF9jdGFzGBcgAygLMhoubm90aWZpY2F0aW9ucy52MS5FbWFpbEN0YUIKCghfbWVzc2FnZUILCglfY2F0ZWdvcnlCDQoLX2FjdGlvbl91cmxCCwoJX21ldGFkYXRhQgwKCl9kZWVwX2xpbmtCCAoGX2JhZGdlQgwKCl90aHJlYWRfaWRCDAoKX3B1c2hfZGF0YUIQCg5fZW1haWxfc3ViamVjdEINCgtfZW1haWxfYm9keUIRCg9fZW1haWxfcmVwbHlfdG8iJgoIRW1haWxDdGESDQoFbGFiZWwYASABKAkSCwoDdXJsGAIgASgJImAKIFNlbmRDdXN0b21lck5vdGlmaWNhdGlvblJlc3BvbnNlEjwKDG5vdGlmaWNhdGlvbhgBIAEoCzImLm5vdGlmaWNhdGlvbnMudjEuQ3VzdG9tZXJOb3RpZmljYXRpb24iuAEKI1NlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb25SZXF1ZXN0EhQKDGN1c3RvbWVyX2lkcxgBIAMoCRINCgV0aXRsZRgCIAEoCRIUCgdtZXNzYWdlGAMgASgJSACIAQESFQoIY2F0ZWdvcnkYBCABKAlIAYgBARIXCgphY3Rpb25fdXJsGAUgASgJSAKIAQFCCgoIX21lc3NhZ2VCCwoJX2NhdGVnb3J5Qg0KC19hY3Rpb25fdXJsIjUKJFNlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb25SZXNwb25zZRINCgVjb3VudBgBIAEoBSIxCiNNYXJrQ3VzdG9tZXJOb3RpZmljYXRpb25SZWFkUmVxdWVzdBIKCgJpZBgBIAEoCSI3CiRNYXJrQ3VzdG9tZXJOb3RpZmljYXRpb25SZWFkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJTCidNYXJrQWxsQ3VzdG9tZXJOb3RpZmljYXRpb25zUmVhZFJlcXVlc3QSGAoLY3VzdG9tZXJfaWQYASABKAlIAIgBAUIOCgxfY3VzdG9tZXJfaWQiOQooTWFya0FsbEN1c3RvbWVyTm90aWZpY2F0aW9uc1JlYWRSZXNwb25zZRINCgVjb3VudBgBIAEoBSLQAQofTGlzdFByb2plY3ROb3RpZmljYXRpb25zUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QivAEKIExpc3RQcm9qZWN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlEj0KDW5vdGlmaWNhdGlvbnMYASADKAsyJi5ub3RpZmljYXRpb25zLnYxLkN1c3RvbWVyTm90aWZpY2F0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJvChZOb3RpZmljYXRpb25QcmVmZXJlbmNlEhAKCGNhdGVnb3J5GAEgASgJEhUKDWVtYWlsX2VuYWJsZWQYAiABKAgSFAoMcHVzaF9lbmFibGVkGAMgASgIEhYKDmluX2FwcF9lbmFibGVkGAQgASgIIjgKIUdldE5vdGlmaWNhdGlvblByZWZlcmVuY2VzUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCSJjCiJHZXROb3RpZmljYXRpb25QcmVmZXJlbmNlc1Jlc3BvbnNlEj0KC3ByZWZlcmVuY2VzGAEgAygLMigubm90aWZpY2F0aW9ucy52MS5Ob3RpZmljYXRpb25QcmVmZXJlbmNlItYBCiNVcGRhdGVOb3RpZmljYXRpb25QcmVmZXJlbmNlUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRIQCghjYXRlZ29yeRgCIAEoCRIaCg1lbWFpbF9lbmFibGVkGAMgASgISACIAQESGQoMcHVzaF9lbmFibGVkGAQgASgISAGIAQESGwoOaW5fYXBwX2VuYWJsZWQYBSABKAhIAogBAUIQCg5fZW1haWxfZW5hYmxlZEIPCg1fcHVzaF9lbmFibGVkQhEKD19pbl9hcHBfZW5hYmxlZCI3CiRVcGRhdGVOb3RpZmljYXRpb25QcmVmZXJlbmNlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJ8ChpSZWdpc3RlckRldmljZVRva2VuUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRINCgV0b2tlbhgCIAEoCRIQCghwbGF0Zm9ybRgDIAEoCRIYCgtkZXZpY2VfbmFtZRgEIAEoCUgAiAEBQg4KDF9kZXZpY2VfbmFtZSIuChtSZWdpc3RlckRldmljZVRva2VuUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCItChxVbnJlZ2lzdGVyRGV2aWNlVG9rZW5SZXF1ZXN0Eg0KBXRva2VuGAEgASgJIjAKHVVucmVnaXN0ZXJEZXZpY2VUb2tlblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiyAMKDlB1c2hDcmVkZW50aWFsEgoKAmlkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIcGxhdGZvcm0YAyABKAkSFgoJYnVuZGxlX2lkGAogASgJSACIAQESGQoMYXBuc190ZWFtX2lkGAsgASgJSAGIAQESGAoLYXBuc19rZXlfaWQYDCABKAlIAogBARIcCg9hcG5zX3Byb2R1Y3Rpb24YDSABKAhIA4gBARIbCg5mY21fcHJvamVjdF9pZBgUIAEoCUgEiAEBEh0KEGZjbV9jbGllbnRfZW1haWwYFSABKAlIBYgBARISCgpoYXNfc2VjcmV0GB4gASgIEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9idW5kbGVfaWRCDwoNX2FwbnNfdGVhbV9pZEIOCgxfYXBuc19rZXlfaWRCEgoQX2FwbnNfcHJvZHVjdGlvbkIRCg9fZmNtX3Byb2plY3RfaWRCEwoRX2ZjbV9jbGllbnRfZW1haWwi3wIKG1VwbG9hZFB1c2hDcmVkZW50aWFsUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhAKCHBsYXRmb3JtGAIgASgJEhgKC2FwbnNfcDhfa2V5GAogASgJSACIAQESFgoJYnVuZGxlX2lkGAsgASgJSAGIAQESGQoMYXBuc190ZWFtX2lkGAwgASgJSAKIAQESGAoLYXBuc19rZXlfaWQYDSABKAlIA4gBARIcCg9hcG5zX3Byb2R1Y3Rpb24YDiABKAhIBIgBARIlChhmY21fc2VydmljZV9hY2NvdW50X2pzb24YFCABKAlIBYgBAUIOCgxfYXBuc19wOF9rZXlCDAoKX2J1bmRsZV9pZEIPCg1fYXBuc190ZWFtX2lkQg4KDF9hcG5zX2tleV9pZEISChBfYXBuc19wcm9kdWN0aW9uQhsKGV9mY21fc2VydmljZV9hY2NvdW50X2pzb24iVAocVXBsb2FkUHVzaENyZWRlbnRpYWxSZXNwb25zZRI0CgpjcmVkZW50aWFsGAEgASgLMiAubm90aWZpY2F0aW9ucy52MS5QdXNoQ3JlZGVudGlhbCIwChpMaXN0UHVzaENyZWRlbnRpYWxzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIlQKG0xpc3RQdXNoQ3JlZGVudGlhbHNSZXNwb25zZRI1CgtjcmVkZW50aWFscxgBIAMoCzIgLm5vdGlmaWNhdGlvbnMudjEuUHVzaENyZWRlbnRpYWwiKQobRGVsZXRlUHVzaENyZWRlbnRpYWxSZXF1ZXN0EgoKAmlkGAEgASgJIi8KHERlbGV0ZVB1c2hDcmVkZW50aWFsUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCrIAgoQTm90aWZpY2F0aW9uVHlwZRIhCh1OT1RJRklDQVRJT05fVFlQRV9VTlNQRUNJRklFRBAAEiMKH05PVElGSUNBVElPTl9UWVBFX0pPQl9DT01QTEVURUQQARIgChxOT1RJRklDQVRJT05fVFlQRV9KT0JfRkFJTEVEEAISIgoeTk9USUZJQ0FUSU9OX1RZUEVfSk9CX1BST0dSRVNTEAMSHQoZTk9USUZJQ0FUSU9OX1RZUEVfTUVOVElPThAEEiAKHE5PVElGSUNBVElPTl9UWVBFX05PVEVfUkVQTFkQBRIjCh9OT1RJRklDQVRJT05fVFlQRV9OT1RFX1JFU09MVkVEEAYSHAoYTk9USUZJQ0FUSU9OX1RZUEVfU1lTVEVNEAcSIgoeTk9USUZJQ0FUSU9OX1RZUEVfQU5OT1VOQ0VNRU5UEAgq9QEKFk5vdGlmaWNhdGlvblNvdXJjZVR5cGUSKAokTk9USUZJQ0FUSU9OX1NPVVJDRV9UWVBFX1VOU1BFQ0lGSUVEEAASIwofTk9USUZJQ0FUSU9OX1NPVVJDRV9UWVBFX1JFQ09SRBABEiIKHk5PVElGSUNBVElPTl9TT1VSQ0VfVFlQRV9NT0RFTBACEiEKHU5PVElGSUNBVElPTl9TT1VSQ0VfVFlQRV9OT1RFEAMSIAocTk9USUZJQ0FUSU9OX1NPVVJDRV9UWVBFX0pPQhAEEiMKH05PVElGSUNBVElPTl9TT1VSQ0VfVFlQRV9TWVNURU0QBTL1EwoUTm90aWZpY2F0aW9uc1NlcnZpY2USbAoRTGlzdE5vdGlmaWNhdGlvbnMSKi5ub3RpZmljYXRpb25zLnYxLkxpc3ROb3RpZmljYXRpb25zUmVxdWVzdBorLm5vdGlmaWNhdGlvbnMudjEuTGlzdE5vdGlmaWNhdGlvbnNSZXNwb25zZRJjCg5HZXRVbnJlYWRDb3VudBInLm5vdGlmaWNhdGlvbnMudjEuR2V0VW5yZWFkQ291bnRSZXF1ZXN0Gigubm90aWZpY2F0aW9ucy52MS5HZXRVbnJlYWRDb3VudFJlc3BvbnNlEnUKFE1hcmtOb3RpZmljYXRpb25SZWFkEi0ubm90aWZpY2F0aW9ucy52MS5NYXJrTm90aWZpY2F0aW9uUmVhZFJlcXVlc3QaLi5ub3RpZmljYXRpb25zLnYxLk1hcmtOb3RpZmljYXRpb25SZWFkUmVzcG9uc2USgQEKGE1hcmtBbGxOb3RpZmljYXRpb25zUmVhZBIxLm5vdGlmaWNhdGlvbnMudjEuTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVxdWVzdBoyLm5vdGlmaWNhdGlvbnMudjEuTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVzcG9uc2USbwoSRGVsZXRlTm90aWZpY2F0aW9uEisubm90aWZpY2F0aW9ucy52MS5EZWxldGVOb3RpZmljYXRpb25SZXF1ZXN0Giwubm90aWZpY2F0aW9ucy52MS5EZWxldGVOb3RpZmljYXRpb25SZXNwb25zZRJpChBTZW5kQW5ub3VuY2VtZW50Eikubm90aWZpY2F0aW9ucy52MS5TZW5kQW5ub3VuY2VtZW50UmVxdWVzdBoqLm5vdGlmaWNhdGlvbnMudjEuU2VuZEFubm91bmNlbWVudFJlc3BvbnNlEn4KF0xpc3RBbm5vdW5jZW1lbnRIaXN0b3J5EjAubm90aWZpY2F0aW9ucy52MS5MaXN0QW5ub3VuY2VtZW50SGlzdG9yeVJlcXVlc3QaMS5ub3RpZmljYXRpb25zLnYxLkxpc3RBbm5vdW5jZW1lbnRIaXN0b3J5UmVzcG9uc2UShAEKGUxpc3RDdXN0b21lck5vdGlmaWNhdGlvbnMSMi5ub3RpZmljYXRpb25zLnYxLkxpc3RDdXN0b21lck5vdGlmaWNhdGlvbnNSZXF1ZXN0GjMubm90aWZpY2F0aW9ucy52MS5MaXN0Q3VzdG9tZXJOb3RpZmljYXRpb25zUmVzcG9uc2USgQEKGFNlbmRDdXN0b21lck5vdGlmaWNhdGlvbhIxLm5vdGlmaWNhdGlvbnMudjEuU2VuZEN1c3RvbWVyTm90aWZpY2F0aW9uUmVxdWVzdBoyLm5vdGlmaWNhdGlvbnMudjEuU2VuZEN1c3RvbWVyTm90aWZpY2F0aW9uUmVzcG9uc2USjQEKHFNlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb24SNS5ub3RpZmljYXRpb25zLnYxLlNlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb25SZXF1ZXN0GjYubm90aWZpY2F0aW9ucy52MS5TZW5kQnVsa0N1c3RvbWVyTm90aWZpY2F0aW9uUmVzcG9uc2USjQEKHE1hcmtDdXN0b21lck5vdGlmaWNhdGlvblJlYWQSNS5ub3RpZmljYXRpb25zLnYxLk1hcmtDdXN0b21lck5vdGlmaWNhdGlvblJlYWRSZXF1ZXN0GjYubm90aWZpY2F0aW9ucy52MS5NYXJrQ3VzdG9tZXJOb3RpZmljYXRpb25SZWFkUmVzcG9uc2USmQEKIE1hcmtBbGxDdXN0b21lck5vdGlmaWNhdGlvbnNSZWFkEjkubm90aWZpY2F0aW9ucy52MS5NYXJrQWxsQ3VzdG9tZXJOb3RpZmljYXRpb25zUmVhZFJlcXVlc3QaOi5ub3RpZmljYXRpb25zLnYxLk1hcmtBbGxDdXN0b21lck5vdGlmaWNhdGlvbnNSZWFkUmVzcG9uc2USgQEKGExpc3RQcm9qZWN0Tm90aWZpY2F0aW9ucxIxLm5vdGlmaWNhdGlvbnMudjEuTGlzdFByb2plY3ROb3RpZmljYXRpb25zUmVxdWVzdBoyLm5vdGlmaWNhdGlvbnMudjEuTGlzdFByb2plY3ROb3RpZmljYXRpb25zUmVzcG9uc2UShwEKGkdldE5vdGlmaWNhdGlvblByZWZlcmVuY2VzEjMubm90aWZpY2F0aW9ucy52MS5HZXROb3RpZmljYXRpb25QcmVmZXJlbmNlc1JlcXVlc3QaNC5ub3RpZmljYXRpb25zLnYxLkdldE5vdGlmaWNhdGlvblByZWZlcmVuY2VzUmVzcG9uc2USjQEKHFVwZGF0ZU5vdGlmaWNhdGlvblByZWZlcmVuY2USNS5ub3RpZmljYXRpb25zLnYxLlVwZGF0ZU5vdGlmaWNhdGlvblByZWZlcmVuY2VSZXF1ZXN0GjYubm90aWZpY2F0aW9ucy52MS5VcGRhdGVOb3RpZmljYXRpb25QcmVmZXJlbmNlUmVzcG9uc2UScgoTUmVnaXN0ZXJEZXZpY2VUb2tlbhIsLm5vdGlmaWNhdGlvbnMudjEuUmVnaXN0ZXJEZXZpY2VUb2tlblJlcXVlc3QaLS5ub3RpZmljYXRpb25zLnYxLlJlZ2lzdGVyRGV2aWNlVG9rZW5SZXNwb25zZRJ4ChVVbnJlZ2lzdGVyRGV2aWNlVG9rZW4SLi5ub3RpZmljYXRpb25zLnYxLlVucmVnaXN0ZXJEZXZpY2VUb2tlblJlcXVlc3QaLy5ub3RpZmljYXRpb25zLnYxLlVucmVnaXN0ZXJEZXZpY2VUb2tlblJlc3BvbnNlEnUKFFVwbG9hZFB1c2hDcmVkZW50aWFsEi0ubm90aWZpY2F0aW9ucy52MS5VcGxvYWRQdXNoQ3JlZGVudGlhbFJlcXVlc3QaLi5ub3RpZmljYXRpb25zLnYxLlVwbG9hZFB1c2hDcmVkZW50aWFsUmVzcG9uc2UScgoTTGlzdFB1c2hDcmVkZW50aWFscxIsLm5vdGlmaWNhdGlvbnMudjEuTGlzdFB1c2hDcmVkZW50aWFsc1JlcXVlc3QaLS5ub3RpZmljYXRpb25zLnYxLkxpc3RQdXNoQ3JlZGVudGlhbHNSZXNwb25zZRJ1ChREZWxldGVQdXNoQ3JlZGVudGlhbBItLm5vdGlmaWNhdGlvbnMudjEuRGVsZXRlUHVzaENyZWRlbnRpYWxSZXF1ZXN0Gi4ubm90aWZpY2F0aW9ucy52MS5EZWxldGVQdXNoQ3JlZGVudGlhbFJlc3BvbnNlQkdaRWdpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9ub3RpZmljYXRpb25zL3YxO25vdGlmaWNhdGlvbnN2MWIGcHJvdG8z", [file_google_protobuf_struct10, file_google_protobuf_timestamp11, file_common_v1_pagination]);
820
- var NotificationSchema = /* @__PURE__ */ messageDesc14(file_notifications_v1_notifications, 0);
821
- var ListNotificationsRequestSchema = /* @__PURE__ */ messageDesc14(file_notifications_v1_notifications, 1);
822
- var MarkNotificationReadRequestSchema = /* @__PURE__ */ messageDesc14(file_notifications_v1_notifications, 3);
823
- var MarkAllNotificationsReadRequestSchema = /* @__PURE__ */ messageDesc14(file_notifications_v1_notifications, 5);
824
- var SendCustomerNotificationRequestSchema = /* @__PURE__ */ messageDesc14(file_notifications_v1_notifications, 18);
825
- var RegisterDeviceTokenRequestSchema = /* @__PURE__ */ messageDesc14(file_notifications_v1_notifications, 34);
826
- var UnregisterDeviceTokenRequestSchema = /* @__PURE__ */ messageDesc14(file_notifications_v1_notifications, 36);
827
- var PushCredentialSchema = /* @__PURE__ */ messageDesc14(file_notifications_v1_notifications, 38);
828
- var UploadPushCredentialRequestSchema = /* @__PURE__ */ messageDesc14(file_notifications_v1_notifications, 39);
829
- var ListPushCredentialsRequestSchema = /* @__PURE__ */ messageDesc14(file_notifications_v1_notifications, 41);
830
- var DeletePushCredentialRequestSchema = /* @__PURE__ */ messageDesc14(file_notifications_v1_notifications, 43);
831
- var NotificationsService = /* @__PURE__ */ serviceDesc10(file_notifications_v1_notifications, 0);
846
+ var file_notifications_v1_notifications = /* @__PURE__ */ fileDesc15("CiRub3RpZmljYXRpb25zL3YxL25vdGlmaWNhdGlvbnMucHJvdG8SEG5vdGlmaWNhdGlvbnMudjEisAUKDE5vdGlmaWNhdGlvbhIKCgJpZBgBIAEoCRIPCgd1c2VyX2lkGAIgASgJEjAKBHR5cGUYAyABKA4yIi5ub3RpZmljYXRpb25zLnYxLk5vdGlmaWNhdGlvblR5cGUSDQoFdGl0bGUYBCABKAkSFAoHbWVzc2FnZRgFIAEoCUgAiAEBEjIKDHJpY2hfY29udGVudBgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARJCCgtzb3VyY2VfdHlwZRgKIAEoDjIoLm5vdGlmaWNhdGlvbnMudjEuTm90aWZpY2F0aW9uU291cmNlVHlwZUgCiAEBEhYKCXNvdXJjZV9pZBgLIAEoCUgDiAEBEhcKCmFjdGlvbl91cmwYDCABKAlIBIgBARIuCghtZXRhZGF0YRgNIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBARIPCgdpc19yZWFkGBQgASgIEjAKB3JlYWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAaIAQESEQoJdGVuYW50X2lkGB4gASgJEhcKCnByb2plY3RfaWQYHyABKAlIB4gBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpleHBpcmVzX2F0GDMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgIiAEBQgoKCF9tZXNzYWdlQg8KDV9yaWNoX2NvbnRlbnRCDgoMX3NvdXJjZV90eXBlQgwKCl9zb3VyY2VfaWRCDQoLX2FjdGlvbl91cmxCCwoJX21ldGFkYXRhQgoKCF9yZWFkX2F0Qg0KC19wcm9qZWN0X2lkQg0KC19leHBpcmVzX2F0IskBChhMaXN0Tm90aWZpY2F0aW9uc1JlcXVlc3QSKwoFd2hlcmUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESEgoFYWZ0ZXIYAiABKAlIAYgBARITCgZiZWZvcmUYAyABKAlIAogBARISCgVmaXJzdBgEIAEoBUgDiAEBEhEKBGxhc3QYBSABKAVIBIgBAUIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IsMBChlMaXN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlEjUKDW5vdGlmaWNhdGlvbnMYASADKAsyHi5ub3RpZmljYXRpb25zLnYxLk5vdGlmaWNhdGlvbhINCgV0b3RhbBgCIAEoBRIUCgx1bnJlYWRfY291bnQYAyABKAUSKwoJcGFnZV9pbmZvGAQgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgFIAMoCUIMCgpfcGFnZV9pbmZvIikKG01hcmtOb3RpZmljYXRpb25SZWFkUmVxdWVzdBIKCgJpZBgBIAEoCSIvChxNYXJrTm90aWZpY2F0aW9uUmVhZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiYQofTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVxdWVzdBI1CgR0eXBlGAEgASgOMiIubm90aWZpY2F0aW9ucy52MS5Ob3RpZmljYXRpb25UeXBlSACIAQFCBwoFX3R5cGUiMQogTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVzcG9uc2USDQoFY291bnQYASABKAUiJwoZRGVsZXRlTm90aWZpY2F0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSItChpEZWxldGVOb3RpZmljYXRpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIhcKFUdldFVucmVhZENvdW50UmVxdWVzdCInChZHZXRVbnJlYWRDb3VudFJlc3BvbnNlEg0KBWNvdW50GAEgASgFIrABChdTZW5kQW5ub3VuY2VtZW50UmVxdWVzdBINCgV0aXRsZRgBIAEoCRIUCgdtZXNzYWdlGAIgASgJSACIAQESFwoKYWN0aW9uX3VybBgDIAEoCUgBiAEBEhgKC3RhcmdldF90eXBlGAQgASgJSAKIAQESEgoKdGFyZ2V0X2lkcxgFIAMoCUIKCghfbWVzc2FnZUINCgtfYWN0aW9uX3VybEIOCgxfdGFyZ2V0X3R5cGUiUAoYU2VuZEFubm91bmNlbWVudFJlc3BvbnNlEjQKDG5vdGlmaWNhdGlvbhgBIAEoCzIeLm5vdGlmaWNhdGlvbnMudjEuTm90aWZpY2F0aW9uIpgBCh5MaXN0QW5ub3VuY2VtZW50SGlzdG9yeVJlcXVlc3QSEgoFYWZ0ZXIYASABKAlIAIgBARITCgZiZWZvcmUYAiABKAlIAYgBARISCgVmaXJzdBgDIAEoBUgCiAEBEhEKBGxhc3QYBCABKAVIA4gBAUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QiswEKH0xpc3RBbm5vdW5jZW1lbnRIaXN0b3J5UmVzcG9uc2USNQoNYW5ub3VuY2VtZW50cxgBIAMoCzIeLm5vdGlmaWNhdGlvbnMudjEuTm90aWZpY2F0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKXAwoUQ3VzdG9tZXJOb3RpZmljYXRpb24SCgoCaWQYASABKAkSEwoLY3VzdG9tZXJfaWQYAiABKAkSDQoFdGl0bGUYAyABKAkSFAoHbWVzc2FnZRgEIAEoCUgAiAEBEhUKCGNhdGVnb3J5GAUgASgJSAGIAQESFwoKYWN0aW9uX3VybBgGIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEg8KB2lzX3JlYWQYCCABKAgSMAoHcmVhZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBIgBARIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfbWVzc2FnZUILCglfY2F0ZWdvcnlCDQoLX2FjdGlvbl91cmxCCwoJX21ldGFkYXRhQgoKCF9yZWFkX2F0ItEBCiBMaXN0Q3VzdG9tZXJOb3RpZmljYXRpb25zUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QivQEKIUxpc3RDdXN0b21lck5vdGlmaWNhdGlvbnNSZXNwb25zZRI9Cg1ub3RpZmljYXRpb25zGAEgAygLMiYubm90aWZpY2F0aW9ucy52MS5DdXN0b21lck5vdGlmaWNhdGlvbhINCgV0b3RhbBgCIAEoBRIrCglwYWdlX2luZm8YAyABKAsyEy5jb21tb24udjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8izwQKH1NlbmRDdXN0b21lck5vdGlmaWNhdGlvblJlcXVlc3QSEwoLY3VzdG9tZXJfaWQYASABKAkSDQoFdGl0bGUYAiABKAkSFAoHbWVzc2FnZRgDIAEoCUgAiAEBEhUKCGNhdGVnb3J5GAQgASgJSAGIAQESFwoKYWN0aW9uX3VybBgFIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhYKCWRlZXBfbGluaxgKIAEoCUgEiAEBEhIKBWJhZGdlGAsgASgFSAWIAQESFgoJdGhyZWFkX2lkGAwgASgJSAaIAQESLwoJcHVzaF9kYXRhGA0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgHiAEBEhoKDWVtYWlsX3N1YmplY3QYFCABKAlICIgBARIXCgplbWFpbF9ib2R5GBUgASgJSAmIAQESGwoOZW1haWxfcmVwbHlfdG8YFiABKAlICogBARIuCgplbWFpbF9jdGFzGBcgAygLMhoubm90aWZpY2F0aW9ucy52MS5FbWFpbEN0YUIKCghfbWVzc2FnZUILCglfY2F0ZWdvcnlCDQoLX2FjdGlvbl91cmxCCwoJX21ldGFkYXRhQgwKCl9kZWVwX2xpbmtCCAoGX2JhZGdlQgwKCl90aHJlYWRfaWRCDAoKX3B1c2hfZGF0YUIQCg5fZW1haWxfc3ViamVjdEINCgtfZW1haWxfYm9keUIRCg9fZW1haWxfcmVwbHlfdG8iJgoIRW1haWxDdGESDQoFbGFiZWwYASABKAkSCwoDdXJsGAIgASgJImAKIFNlbmRDdXN0b21lck5vdGlmaWNhdGlvblJlc3BvbnNlEjwKDG5vdGlmaWNhdGlvbhgBIAEoCzImLm5vdGlmaWNhdGlvbnMudjEuQ3VzdG9tZXJOb3RpZmljYXRpb24iuAEKI1NlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb25SZXF1ZXN0EhQKDGN1c3RvbWVyX2lkcxgBIAMoCRINCgV0aXRsZRgCIAEoCRIUCgdtZXNzYWdlGAMgASgJSACIAQESFQoIY2F0ZWdvcnkYBCABKAlIAYgBARIXCgphY3Rpb25fdXJsGAUgASgJSAKIAQFCCgoIX21lc3NhZ2VCCwoJX2NhdGVnb3J5Qg0KC19hY3Rpb25fdXJsIjUKJFNlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb25SZXNwb25zZRINCgVjb3VudBgBIAEoBSIxCiNNYXJrQ3VzdG9tZXJOb3RpZmljYXRpb25SZWFkUmVxdWVzdBIKCgJpZBgBIAEoCSI3CiRNYXJrQ3VzdG9tZXJOb3RpZmljYXRpb25SZWFkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJTCidNYXJrQWxsQ3VzdG9tZXJOb3RpZmljYXRpb25zUmVhZFJlcXVlc3QSGAoLY3VzdG9tZXJfaWQYASABKAlIAIgBAUIOCgxfY3VzdG9tZXJfaWQiOQooTWFya0FsbEN1c3RvbWVyTm90aWZpY2F0aW9uc1JlYWRSZXNwb25zZRINCgVjb3VudBgBIAEoBSLQAQofTGlzdFByb2plY3ROb3RpZmljYXRpb25zUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QivAEKIExpc3RQcm9qZWN0Tm90aWZpY2F0aW9uc1Jlc3BvbnNlEj0KDW5vdGlmaWNhdGlvbnMYASADKAsyJi5ub3RpZmljYXRpb25zLnYxLkN1c3RvbWVyTm90aWZpY2F0aW9uEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJvChZOb3RpZmljYXRpb25QcmVmZXJlbmNlEhAKCGNhdGVnb3J5GAEgASgJEhUKDWVtYWlsX2VuYWJsZWQYAiABKAgSFAoMcHVzaF9lbmFibGVkGAMgASgIEhYKDmluX2FwcF9lbmFibGVkGAQgASgIIjgKIUdldE5vdGlmaWNhdGlvblByZWZlcmVuY2VzUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCSJjCiJHZXROb3RpZmljYXRpb25QcmVmZXJlbmNlc1Jlc3BvbnNlEj0KC3ByZWZlcmVuY2VzGAEgAygLMigubm90aWZpY2F0aW9ucy52MS5Ob3RpZmljYXRpb25QcmVmZXJlbmNlItYBCiNVcGRhdGVOb3RpZmljYXRpb25QcmVmZXJlbmNlUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRIQCghjYXRlZ29yeRgCIAEoCRIaCg1lbWFpbF9lbmFibGVkGAMgASgISACIAQESGQoMcHVzaF9lbmFibGVkGAQgASgISAGIAQESGwoOaW5fYXBwX2VuYWJsZWQYBSABKAhIAogBAUIQCg5fZW1haWxfZW5hYmxlZEIPCg1fcHVzaF9lbmFibGVkQhEKD19pbl9hcHBfZW5hYmxlZCI3CiRVcGRhdGVOb3RpZmljYXRpb25QcmVmZXJlbmNlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJ8ChpSZWdpc3RlckRldmljZVRva2VuUmVxdWVzdBITCgtjdXN0b21lcl9pZBgBIAEoCRINCgV0b2tlbhgCIAEoCRIQCghwbGF0Zm9ybRgDIAEoCRIYCgtkZXZpY2VfbmFtZRgEIAEoCUgAiAEBQg4KDF9kZXZpY2VfbmFtZSIuChtSZWdpc3RlckRldmljZVRva2VuUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCItChxVbnJlZ2lzdGVyRGV2aWNlVG9rZW5SZXF1ZXN0Eg0KBXRva2VuGAEgASgJIjAKHVVucmVnaXN0ZXJEZXZpY2VUb2tlblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiyAMKDlB1c2hDcmVkZW50aWFsEgoKAmlkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIcGxhdGZvcm0YAyABKAkSFgoJYnVuZGxlX2lkGAogASgJSACIAQESGQoMYXBuc190ZWFtX2lkGAsgASgJSAGIAQESGAoLYXBuc19rZXlfaWQYDCABKAlIAogBARIcCg9hcG5zX3Byb2R1Y3Rpb24YDSABKAhIA4gBARIbCg5mY21fcHJvamVjdF9pZBgUIAEoCUgEiAEBEh0KEGZjbV9jbGllbnRfZW1haWwYFSABKAlIBYgBARISCgpoYXNfc2VjcmV0GB4gASgIEi4KCmNyZWF0ZWRfYXQYMiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYMyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9idW5kbGVfaWRCDwoNX2FwbnNfdGVhbV9pZEIOCgxfYXBuc19rZXlfaWRCEgoQX2FwbnNfcHJvZHVjdGlvbkIRCg9fZmNtX3Byb2plY3RfaWRCEwoRX2ZjbV9jbGllbnRfZW1haWwi3wIKG1VwbG9hZFB1c2hDcmVkZW50aWFsUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJEhAKCHBsYXRmb3JtGAIgASgJEhgKC2FwbnNfcDhfa2V5GAogASgJSACIAQESFgoJYnVuZGxlX2lkGAsgASgJSAGIAQESGQoMYXBuc190ZWFtX2lkGAwgASgJSAKIAQESGAoLYXBuc19rZXlfaWQYDSABKAlIA4gBARIcCg9hcG5zX3Byb2R1Y3Rpb24YDiABKAhIBIgBARIlChhmY21fc2VydmljZV9hY2NvdW50X2pzb24YFCABKAlIBYgBAUIOCgxfYXBuc19wOF9rZXlCDAoKX2J1bmRsZV9pZEIPCg1fYXBuc190ZWFtX2lkQg4KDF9hcG5zX2tleV9pZEISChBfYXBuc19wcm9kdWN0aW9uQhsKGV9mY21fc2VydmljZV9hY2NvdW50X2pzb24iVAocVXBsb2FkUHVzaENyZWRlbnRpYWxSZXNwb25zZRI0CgpjcmVkZW50aWFsGAEgASgLMiAubm90aWZpY2F0aW9ucy52MS5QdXNoQ3JlZGVudGlhbCIwChpMaXN0UHVzaENyZWRlbnRpYWxzUmVxdWVzdBISCgpwcm9qZWN0X2lkGAEgASgJIlQKG0xpc3RQdXNoQ3JlZGVudGlhbHNSZXNwb25zZRI1CgtjcmVkZW50aWFscxgBIAMoCzIgLm5vdGlmaWNhdGlvbnMudjEuUHVzaENyZWRlbnRpYWwiKQobRGVsZXRlUHVzaENyZWRlbnRpYWxSZXF1ZXN0EgoKAmlkGAEgASgJIi8KHERlbGV0ZVB1c2hDcmVkZW50aWFsUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCrIAgoQTm90aWZpY2F0aW9uVHlwZRIhCh1OT1RJRklDQVRJT05fVFlQRV9VTlNQRUNJRklFRBAAEiMKH05PVElGSUNBVElPTl9UWVBFX0pPQl9DT01QTEVURUQQARIgChxOT1RJRklDQVRJT05fVFlQRV9KT0JfRkFJTEVEEAISIgoeTk9USUZJQ0FUSU9OX1RZUEVfSk9CX1BST0dSRVNTEAMSHQoZTk9USUZJQ0FUSU9OX1RZUEVfTUVOVElPThAEEiAKHE5PVElGSUNBVElPTl9UWVBFX05PVEVfUkVQTFkQBRIjCh9OT1RJRklDQVRJT05fVFlQRV9OT1RFX1JFU09MVkVEEAYSHAoYTk9USUZJQ0FUSU9OX1RZUEVfU1lTVEVNEAcSIgoeTk9USUZJQ0FUSU9OX1RZUEVfQU5OT1VOQ0VNRU5UEAgq9QEKFk5vdGlmaWNhdGlvblNvdXJjZVR5cGUSKAokTk9USUZJQ0FUSU9OX1NPVVJDRV9UWVBFX1VOU1BFQ0lGSUVEEAASIwofTk9USUZJQ0FUSU9OX1NPVVJDRV9UWVBFX1JFQ09SRBABEiIKHk5PVElGSUNBVElPTl9TT1VSQ0VfVFlQRV9NT0RFTBACEiEKHU5PVElGSUNBVElPTl9TT1VSQ0VfVFlQRV9OT1RFEAMSIAocTk9USUZJQ0FUSU9OX1NPVVJDRV9UWVBFX0pPQhAEEiMKH05PVElGSUNBVElPTl9TT1VSQ0VfVFlQRV9TWVNURU0QBTL1EwoUTm90aWZpY2F0aW9uc1NlcnZpY2USbAoRTGlzdE5vdGlmaWNhdGlvbnMSKi5ub3RpZmljYXRpb25zLnYxLkxpc3ROb3RpZmljYXRpb25zUmVxdWVzdBorLm5vdGlmaWNhdGlvbnMudjEuTGlzdE5vdGlmaWNhdGlvbnNSZXNwb25zZRJjCg5HZXRVbnJlYWRDb3VudBInLm5vdGlmaWNhdGlvbnMudjEuR2V0VW5yZWFkQ291bnRSZXF1ZXN0Gigubm90aWZpY2F0aW9ucy52MS5HZXRVbnJlYWRDb3VudFJlc3BvbnNlEnUKFE1hcmtOb3RpZmljYXRpb25SZWFkEi0ubm90aWZpY2F0aW9ucy52MS5NYXJrTm90aWZpY2F0aW9uUmVhZFJlcXVlc3QaLi5ub3RpZmljYXRpb25zLnYxLk1hcmtOb3RpZmljYXRpb25SZWFkUmVzcG9uc2USgQEKGE1hcmtBbGxOb3RpZmljYXRpb25zUmVhZBIxLm5vdGlmaWNhdGlvbnMudjEuTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVxdWVzdBoyLm5vdGlmaWNhdGlvbnMudjEuTWFya0FsbE5vdGlmaWNhdGlvbnNSZWFkUmVzcG9uc2USbwoSRGVsZXRlTm90aWZpY2F0aW9uEisubm90aWZpY2F0aW9ucy52MS5EZWxldGVOb3RpZmljYXRpb25SZXF1ZXN0Giwubm90aWZpY2F0aW9ucy52MS5EZWxldGVOb3RpZmljYXRpb25SZXNwb25zZRJpChBTZW5kQW5ub3VuY2VtZW50Eikubm90aWZpY2F0aW9ucy52MS5TZW5kQW5ub3VuY2VtZW50UmVxdWVzdBoqLm5vdGlmaWNhdGlvbnMudjEuU2VuZEFubm91bmNlbWVudFJlc3BvbnNlEn4KF0xpc3RBbm5vdW5jZW1lbnRIaXN0b3J5EjAubm90aWZpY2F0aW9ucy52MS5MaXN0QW5ub3VuY2VtZW50SGlzdG9yeVJlcXVlc3QaMS5ub3RpZmljYXRpb25zLnYxLkxpc3RBbm5vdW5jZW1lbnRIaXN0b3J5UmVzcG9uc2UShAEKGUxpc3RDdXN0b21lck5vdGlmaWNhdGlvbnMSMi5ub3RpZmljYXRpb25zLnYxLkxpc3RDdXN0b21lck5vdGlmaWNhdGlvbnNSZXF1ZXN0GjMubm90aWZpY2F0aW9ucy52MS5MaXN0Q3VzdG9tZXJOb3RpZmljYXRpb25zUmVzcG9uc2USgQEKGFNlbmRDdXN0b21lck5vdGlmaWNhdGlvbhIxLm5vdGlmaWNhdGlvbnMudjEuU2VuZEN1c3RvbWVyTm90aWZpY2F0aW9uUmVxdWVzdBoyLm5vdGlmaWNhdGlvbnMudjEuU2VuZEN1c3RvbWVyTm90aWZpY2F0aW9uUmVzcG9uc2USjQEKHFNlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb24SNS5ub3RpZmljYXRpb25zLnYxLlNlbmRCdWxrQ3VzdG9tZXJOb3RpZmljYXRpb25SZXF1ZXN0GjYubm90aWZpY2F0aW9ucy52MS5TZW5kQnVsa0N1c3RvbWVyTm90aWZpY2F0aW9uUmVzcG9uc2USjQEKHE1hcmtDdXN0b21lck5vdGlmaWNhdGlvblJlYWQSNS5ub3RpZmljYXRpb25zLnYxLk1hcmtDdXN0b21lck5vdGlmaWNhdGlvblJlYWRSZXF1ZXN0GjYubm90aWZpY2F0aW9ucy52MS5NYXJrQ3VzdG9tZXJOb3RpZmljYXRpb25SZWFkUmVzcG9uc2USmQEKIE1hcmtBbGxDdXN0b21lck5vdGlmaWNhdGlvbnNSZWFkEjkubm90aWZpY2F0aW9ucy52MS5NYXJrQWxsQ3VzdG9tZXJOb3RpZmljYXRpb25zUmVhZFJlcXVlc3QaOi5ub3RpZmljYXRpb25zLnYxLk1hcmtBbGxDdXN0b21lck5vdGlmaWNhdGlvbnNSZWFkUmVzcG9uc2USgQEKGExpc3RQcm9qZWN0Tm90aWZpY2F0aW9ucxIxLm5vdGlmaWNhdGlvbnMudjEuTGlzdFByb2plY3ROb3RpZmljYXRpb25zUmVxdWVzdBoyLm5vdGlmaWNhdGlvbnMudjEuTGlzdFByb2plY3ROb3RpZmljYXRpb25zUmVzcG9uc2UShwEKGkdldE5vdGlmaWNhdGlvblByZWZlcmVuY2VzEjMubm90aWZpY2F0aW9ucy52MS5HZXROb3RpZmljYXRpb25QcmVmZXJlbmNlc1JlcXVlc3QaNC5ub3RpZmljYXRpb25zLnYxLkdldE5vdGlmaWNhdGlvblByZWZlcmVuY2VzUmVzcG9uc2USjQEKHFVwZGF0ZU5vdGlmaWNhdGlvblByZWZlcmVuY2USNS5ub3RpZmljYXRpb25zLnYxLlVwZGF0ZU5vdGlmaWNhdGlvblByZWZlcmVuY2VSZXF1ZXN0GjYubm90aWZpY2F0aW9ucy52MS5VcGRhdGVOb3RpZmljYXRpb25QcmVmZXJlbmNlUmVzcG9uc2UScgoTUmVnaXN0ZXJEZXZpY2VUb2tlbhIsLm5vdGlmaWNhdGlvbnMudjEuUmVnaXN0ZXJEZXZpY2VUb2tlblJlcXVlc3QaLS5ub3RpZmljYXRpb25zLnYxLlJlZ2lzdGVyRGV2aWNlVG9rZW5SZXNwb25zZRJ4ChVVbnJlZ2lzdGVyRGV2aWNlVG9rZW4SLi5ub3RpZmljYXRpb25zLnYxLlVucmVnaXN0ZXJEZXZpY2VUb2tlblJlcXVlc3QaLy5ub3RpZmljYXRpb25zLnYxLlVucmVnaXN0ZXJEZXZpY2VUb2tlblJlc3BvbnNlEnUKFFVwbG9hZFB1c2hDcmVkZW50aWFsEi0ubm90aWZpY2F0aW9ucy52MS5VcGxvYWRQdXNoQ3JlZGVudGlhbFJlcXVlc3QaLi5ub3RpZmljYXRpb25zLnYxLlVwbG9hZFB1c2hDcmVkZW50aWFsUmVzcG9uc2UScgoTTGlzdFB1c2hDcmVkZW50aWFscxIsLm5vdGlmaWNhdGlvbnMudjEuTGlzdFB1c2hDcmVkZW50aWFsc1JlcXVlc3QaLS5ub3RpZmljYXRpb25zLnYxLkxpc3RQdXNoQ3JlZGVudGlhbHNSZXNwb25zZRJ1ChREZWxldGVQdXNoQ3JlZGVudGlhbBItLm5vdGlmaWNhdGlvbnMudjEuRGVsZXRlUHVzaENyZWRlbnRpYWxSZXF1ZXN0Gi4ubm90aWZpY2F0aW9ucy52MS5EZWxldGVQdXNoQ3JlZGVudGlhbFJlc3BvbnNlQkdaRWdpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9ub3RpZmljYXRpb25zL3YxO25vdGlmaWNhdGlvbnN2MWIGcHJvdG8z", [file_google_protobuf_struct10, file_google_protobuf_timestamp11, file_common_v1_pagination]);
847
+ var NotificationSchema = /* @__PURE__ */ messageDesc15(file_notifications_v1_notifications, 0);
848
+ var ListNotificationsRequestSchema = /* @__PURE__ */ messageDesc15(file_notifications_v1_notifications, 1);
849
+ var MarkNotificationReadRequestSchema = /* @__PURE__ */ messageDesc15(file_notifications_v1_notifications, 3);
850
+ var MarkAllNotificationsReadRequestSchema = /* @__PURE__ */ messageDesc15(file_notifications_v1_notifications, 5);
851
+ var SendCustomerNotificationRequestSchema = /* @__PURE__ */ messageDesc15(file_notifications_v1_notifications, 18);
852
+ var RegisterDeviceTokenRequestSchema = /* @__PURE__ */ messageDesc15(file_notifications_v1_notifications, 34);
853
+ var UnregisterDeviceTokenRequestSchema = /* @__PURE__ */ messageDesc15(file_notifications_v1_notifications, 36);
854
+ var PushCredentialSchema = /* @__PURE__ */ messageDesc15(file_notifications_v1_notifications, 38);
855
+ var UploadPushCredentialRequestSchema = /* @__PURE__ */ messageDesc15(file_notifications_v1_notifications, 39);
856
+ var ListPushCredentialsRequestSchema = /* @__PURE__ */ messageDesc15(file_notifications_v1_notifications, 41);
857
+ var DeletePushCredentialRequestSchema = /* @__PURE__ */ messageDesc15(file_notifications_v1_notifications, 43);
858
+ var NotificationsService = /* @__PURE__ */ serviceDesc11(file_notifications_v1_notifications, 0);
832
859
 
833
860
  // ../../packages/proto-ts/src/schedules/v1/schedules_pb.js
834
- import { fileDesc as fileDesc15, messageDesc as messageDesc15, serviceDesc as serviceDesc11 } from "@bufbuild/protobuf/codegenv2";
861
+ import { fileDesc as fileDesc16, messageDesc as messageDesc16, serviceDesc as serviceDesc12 } from "@bufbuild/protobuf/codegenv2";
835
862
  import { file_google_protobuf_struct as file_google_protobuf_struct11, file_google_protobuf_timestamp as file_google_protobuf_timestamp12 } from "@bufbuild/protobuf/wkt";
836
- var file_schedules_v1_schedules = /* @__PURE__ */ fileDesc15("ChxzY2hlZHVsZXMvdjEvc2NoZWR1bGVzLnByb3RvEgxzY2hlZHVsZXMudjEixAYKDENyb25TY2hlZHVsZRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEgwKBGNyb24YBSABKAkSEAoIdGltZXpvbmUYBiABKAkSFQoNb3BlcmF0aW9uX2tleRgHIAEoCRIWCgljb25maWdfaWQYCSABKAlIAYgBARIRCglpc19hY3RpdmUYCiABKAgSMgoJcGF1c2VkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhYKCXBhdXNlZF9ieRgMIAEoCUgDiAEBEjQKC2xhc3RfcnVuX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEhwKD2xhc3RfcnVuX3N0YXR1cxgOIAEoCUgFiAEBEhsKDmxhc3RfcnVuX2Vycm9yGA8gASgJSAaIAQESNAoLbmV4dF9ydW5fYXQYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAeIAQESEQoJcnVuX2NvdW50GBEgASgFEhUKDWZhaWx1cmVfY291bnQYEiABKAUSHAoUY29uc2VjdXRpdmVfZmFpbHVyZXMYEyABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKY3JlYXRlZF9ieRg0IAEoCUgIiAEBEhcKCnVwZGF0ZWRfYnkYNSABKAlICYgBAUIOCgxfZGVzY3JpcHRpb25CDAoKX2NvbmZpZ19pZEIMCgpfcGF1c2VkX2F0QgwKCl9wYXVzZWRfYnlCDgoMX2xhc3RfcnVuX2F0QhIKEF9sYXN0X3J1bl9zdGF0dXNCEQoPX2xhc3RfcnVuX2Vycm9yQg4KDF9uZXh0X3J1bl9hdEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSLJAQoYTGlzdENyb25TY2hlZHVsZXNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKlAQoZTGlzdENyb25TY2hlZHVsZXNSZXNwb25zZRItCglzY2hlZHVsZXMYASADKAsyGi5zY2hlZHVsZXMudjEuQ3JvblNjaGVkdWxlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIkChZHZXRDcm9uU2NoZWR1bGVSZXF1ZXN0EgoKAmlkGAEgASgJIkcKF0dldENyb25TY2hlZHVsZVJlc3BvbnNlEiwKCHNjaGVkdWxlGAEgASgLMhouc2NoZWR1bGVzLnYxLkNyb25TY2hlZHVsZSIqChtHZXRDcm9uU2NoZWR1bGVCeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIkwKHEdldENyb25TY2hlZHVsZUJ5S2V5UmVzcG9uc2USLAoIc2NoZWR1bGUYASABKAsyGi5zY2hlZHVsZXMudjEuQ3JvblNjaGVkdWxlIs8BChlDcmVhdGVDcm9uU2NoZWR1bGVSZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESDAoEY3JvbhgEIAEoCRIVCgh0aW1lem9uZRgFIAEoCUgBiAEBEhUKDW9wZXJhdGlvbl9rZXkYBiABKAkSFgoJY29uZmlnX2lkGAcgASgJSAKIAQFCDgoMX2Rlc2NyaXB0aW9uQgsKCV90aW1lem9uZUIMCgpfY29uZmlnX2lkIkoKGkNyZWF0ZUNyb25TY2hlZHVsZVJlc3BvbnNlEiwKCHNjaGVkdWxlGAEgASgLMhouc2NoZWR1bGVzLnYxLkNyb25TY2hlZHVsZSKBAgoZVXBkYXRlQ3JvblNjaGVkdWxlUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESGAoLZGVzY3JpcHRpb24YAyABKAlIAYgBARIRCgRjcm9uGAQgASgJSAKIAQESFQoIdGltZXpvbmUYBSABKAlIA4gBARIaCg1vcGVyYXRpb25fa2V5GAYgASgJSASIAQESFgoJaXNfYWN0aXZlGAcgASgISAWIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgcKBV9jcm9uQgsKCV90aW1lem9uZUIQCg5fb3BlcmF0aW9uX2tleUIMCgpfaXNfYWN0aXZlIkoKGlVwZGF0ZUNyb25TY2hlZHVsZVJlc3BvbnNlEiwKCHNjaGVkdWxlGAEgASgLMhouc2NoZWR1bGVzLnYxLkNyb25TY2hlZHVsZSInChlEZWxldGVDcm9uU2NoZWR1bGVSZXF1ZXN0EgoKAmlkGAEgASgJIi0KGkRlbGV0ZUNyb25TY2hlZHVsZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiJgoYUGF1c2VDcm9uU2NoZWR1bGVSZXF1ZXN0EgoKAmlkGAEgASgJIkkKGVBhdXNlQ3JvblNjaGVkdWxlUmVzcG9uc2USLAoIc2NoZWR1bGUYASABKAsyGi5zY2hlZHVsZXMudjEuQ3JvblNjaGVkdWxlIicKGVJlc3VtZUNyb25TY2hlZHVsZVJlcXVlc3QSCgoCaWQYASABKAkiSgoaUmVzdW1lQ3JvblNjaGVkdWxlUmVzcG9uc2USLAoIc2NoZWR1bGUYASABKAsyGi5zY2hlZHVsZXMudjEuQ3JvblNjaGVkdWxlIigKGlRyaWdnZXJDcm9uU2NoZWR1bGVSZXF1ZXN0EgoKAmlkGAEgASgJIksKG1RyaWdnZXJDcm9uU2NoZWR1bGVSZXNwb25zZRIsCghzY2hlZHVsZRgBIAEoCzIaLnNjaGVkdWxlcy52MS5Dcm9uU2NoZWR1bGUimggKDFB1Ymxpc2hCYXRjaBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESMAoMc2NoZWR1bGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzdGF0dXMYBSABKAkSEgoKaXRlbV9jb3VudBgGIAEoBRIXCg9jb21wbGV0ZWRfY291bnQYByABKAUSFAoMZmFpbGVkX2NvdW50GAggASgFEjMKCnN0YXJ0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESNQoMY29tcGxldGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEjMKDWVycm9yX3N1bW1hcnkYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESHQoQc2NoZWR1bGVkX2pvYl9pZBgMIAEoCUgEiAEBEh4KEXJvbGxiYWNrX2JhdGNoX2lkGA0gASgJSAWIAQESEwoLaXNfcm9sbGJhY2sYDiABKAgSHgoRb3JpZ2luYWxfYmF0Y2hfaWQYDyABKAlIBogBARIjChZkaXNwYXRjaF9mYWlsdXJlX2NvdW50GBAgASgFSAeIAQESKgodZGlzcGF0Y2hfY29uc2VjdXRpdmVfZmFpbHVyZXMYESABKAVICIgBARIgChNkaXNwYXRjaF9sYXN0X2Vycm9yGBIgASgJSAmIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgKiAEBEhkKDGNhbmNlbGxlZF9ieRgfIAEoCUgLiAEBEjUKDGNhbmNlbGxlZF9hdBggIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIDIgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CDQoLX3N0YXJ0ZWRfYXRCDwoNX2NvbXBsZXRlZF9hdEIQCg5fZXJyb3Jfc3VtbWFyeUITChFfc2NoZWR1bGVkX2pvYl9pZEIUChJfcm9sbGJhY2tfYmF0Y2hfaWRCFAoSX29yaWdpbmFsX2JhdGNoX2lkQhkKF19kaXNwYXRjaF9mYWlsdXJlX2NvdW50QiAKHl9kaXNwYXRjaF9jb25zZWN1dGl2ZV9mYWlsdXJlc0IWChRfZGlzcGF0Y2hfbGFzdF9lcnJvckINCgtfY3JlYXRlZF9ieUIPCg1fY2FuY2VsbGVkX2J5Qg8KDV9jYW5jZWxsZWRfYXQirgUKEFB1Ymxpc2hCYXRjaEl0ZW0SCgoCaWQYASABKAkSEAoIYmF0Y2hfaWQYAiABKAkSEgoKdmVyc2lvbl9pZBgDIAEoCRIOCgZzdGF0dXMYBCABKAkSGgoNZXJyb3JfbWVzc2FnZRgFIAEoCUgAiAEBEioKHXByZXZpb3VzX3B1Ymxpc2hlZF92ZXJzaW9uX2lkGAYgASgJSAGIAQESHAoPcm9sbGJhY2tfYWN0aW9uGAcgASgJSAKIAQESNQoMcHJvY2Vzc2VkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEhsKDnZlcnNpb25fbnVtYmVyGAkgASgFSASIAQESGQoMdmFyaWFudF9uYW1lGAogASgJSAWIAQESGAoLbmF0dXJhbF9rZXkYCyABKAlIBogBARIWCgltb2RlbF9rZXkYDCABKAlIB4gBARIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgt0YXJnZXRfa2luZBg8IAEoCRIVCghtb2RlbF9pZBg9IAEoCUgIiAEBEhcKCm1vZGVsX25hbWUYPiABKAlICYgBAUIQCg5fZXJyb3JfbWVzc2FnZUIgCh5fcHJldmlvdXNfcHVibGlzaGVkX3ZlcnNpb25faWRCEgoQX3JvbGxiYWNrX2FjdGlvbkIPCg1fcHJvY2Vzc2VkX2F0QhEKD192ZXJzaW9uX251bWJlckIPCg1fdmFyaWFudF9uYW1lQg4KDF9uYXR1cmFsX2tleUIMCgpfbW9kZWxfa2V5QgsKCV9tb2RlbF9pZEINCgtfbW9kZWxfbmFtZSLKAQoZTGlzdFB1Ymxpc2hCYXRjaGVzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QipAEKGkxpc3RQdWJsaXNoQmF0Y2hlc1Jlc3BvbnNlEisKB2JhdGNoZXMYASADKAsyGi5zY2hlZHVsZXMudjEuUHVibGlzaEJhdGNoEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIkChZHZXRQdWJsaXNoQmF0Y2hSZXF1ZXN0EgoKAmlkGAEgASgJInMKF0dldFB1Ymxpc2hCYXRjaFJlc3BvbnNlEikKBWJhdGNoGAEgASgLMhouc2NoZWR1bGVzLnYxLlB1Ymxpc2hCYXRjaBItCgVpdGVtcxgCIAMoCzIeLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2hJdGVtIp4CChlDcmVhdGVQdWJsaXNoQmF0Y2hSZXF1ZXN0EgwKBG5hbWUYASABKAkSGAoLZGVzY3JpcHRpb24YAiABKAlIAIgBARIwCgxzY2hlZHVsZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC3ZlcnNpb25faWRzGAQgAygJEhEKCW1vZGVsX2lkcxgFIAMoCRIVCg1vcGVyYXRpb25faWRzGAYgAygJEh0KFWNvbnRleHRfZGltZW5zaW9uX2lkcxgHIAMoCRIZChFhdXRoX3Byb3ZpZGVyX2lkcxgIIAMoCRIeChZpbmNsdWRlX3Byb2ZpbGVfc2NoZW1hGAkgASgIQg4KDF9kZXNjcmlwdGlvbiJHChpDcmVhdGVQdWJsaXNoQmF0Y2hSZXNwb25zZRIpCgViYXRjaBgBIAEoCzIaLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2gitQEKGVVwZGF0ZVB1Ymxpc2hCYXRjaFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESNQoMc2NoZWR1bGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIPCg1fc2NoZWR1bGVkX2F0IkcKGlVwZGF0ZVB1Ymxpc2hCYXRjaFJlc3BvbnNlEikKBWJhdGNoGAEgASgLMhouc2NoZWR1bGVzLnYxLlB1Ymxpc2hCYXRjaCInChlEZWxldGVQdWJsaXNoQmF0Y2hSZXF1ZXN0EgoKAmlkGAEgASgJIi0KGkRlbGV0ZVB1Ymxpc2hCYXRjaFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiKAoaVHJpZ2dlclB1Ymxpc2hCYXRjaFJlcXVlc3QSCgoCaWQYASABKAkiSAobVHJpZ2dlclB1Ymxpc2hCYXRjaFJlc3BvbnNlEikKBWJhdGNoGAEgASgLMhouc2NoZWR1bGVzLnYxLlB1Ymxpc2hCYXRjaCImChhQYXVzZVB1Ymxpc2hCYXRjaFJlcXVlc3QSCgoCaWQYASABKAkiRgoZUGF1c2VQdWJsaXNoQmF0Y2hSZXNwb25zZRIpCgViYXRjaBgBIAEoCzIaLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2giJwoZUmVzdW1lUHVibGlzaEJhdGNoUmVxdWVzdBIKCgJpZBgBIAEoCSJHChpSZXN1bWVQdWJsaXNoQmF0Y2hSZXNwb25zZRIpCgViYXRjaBgBIAEoCzIaLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2giLwobUHJldmlld1JvbGxiYWNrQmF0Y2hSZXF1ZXN0EhAKCGJhdGNoX2lkGAEgASgJIlwKHFByZXZpZXdSb2xsYmFja0JhdGNoUmVzcG9uc2USLQoFaXRlbXMYASADKAsyHi5zY2hlZHVsZXMudjEuUHVibGlzaEJhdGNoSXRlbRINCgV0b3RhbBgCIAEoBSIvChtSb2xsYmFja1B1Ymxpc2hCYXRjaFJlcXVlc3QSEAoIYmF0Y2hfaWQYASABKAkiSQocUm9sbGJhY2tQdWJsaXNoQmF0Y2hSZXNwb25zZRIpCgViYXRjaBgBIAEoCzIaLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2giMAocUmV0cnlGYWlsZWRCYXRjaEl0ZW1zUmVxdWVzdBIQCghiYXRjaF9pZBgBIAEoCSJhCh1SZXRyeUZhaWxlZEJhdGNoSXRlbXNSZXNwb25zZRIpCgViYXRjaBgBIAEoCzIaLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2gSFQoNcmV0cmllZF9jb3VudBgCIAEoBSLKAQodQWRkSXRlbXNUb1B1Ymxpc2hCYXRjaFJlcXVlc3QSEAoIYmF0Y2hfaWQYASABKAkSEwoLdmVyc2lvbl9pZHMYAiADKAkSEQoJbW9kZWxfaWRzGAMgAygJEhUKDW9wZXJhdGlvbl9pZHMYBCADKAkSHQoVY29udGV4dF9kaW1lbnNpb25faWRzGAUgAygJEhkKEWF1dGhfcHJvdmlkZXJfaWRzGAYgAygJEh4KFmluY2x1ZGVfcHJvZmlsZV9zY2hlbWEYByABKAgiSwoeQWRkSXRlbXNUb1B1Ymxpc2hCYXRjaFJlc3BvbnNlEikKBWJhdGNoGAEgASgLMhouc2NoZWR1bGVzLnYxLlB1Ymxpc2hCYXRjaCLPAQoiUmVtb3ZlSXRlbXNGcm9tUHVibGlzaEJhdGNoUmVxdWVzdBIQCghiYXRjaF9pZBgBIAEoCRITCgt2ZXJzaW9uX2lkcxgCIAMoCRIRCgltb2RlbF9pZHMYAyADKAkSFQoNb3BlcmF0aW9uX2lkcxgEIAMoCRIdChVjb250ZXh0X2RpbWVuc2lvbl9pZHMYBSADKAkSGQoRYXV0aF9wcm92aWRlcl9pZHMYBiADKAkSHgoWZXhjbHVkZV9wcm9maWxlX3NjaGVtYRgHIAEoCCJQCiNSZW1vdmVJdGVtc0Zyb21QdWJsaXNoQmF0Y2hSZXNwb25zZRIpCgViYXRjaBgBIAEoCzIaLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2gyxhIKEFNjaGVkdWxlc1NlcnZpY2USZAoRTGlzdENyb25TY2hlZHVsZXMSJi5zY2hlZHVsZXMudjEuTGlzdENyb25TY2hlZHVsZXNSZXF1ZXN0Gicuc2NoZWR1bGVzLnYxLkxpc3RDcm9uU2NoZWR1bGVzUmVzcG9uc2USXgoPR2V0Q3JvblNjaGVkdWxlEiQuc2NoZWR1bGVzLnYxLkdldENyb25TY2hlZHVsZVJlcXVlc3QaJS5zY2hlZHVsZXMudjEuR2V0Q3JvblNjaGVkdWxlUmVzcG9uc2USbQoUR2V0Q3JvblNjaGVkdWxlQnlLZXkSKS5zY2hlZHVsZXMudjEuR2V0Q3JvblNjaGVkdWxlQnlLZXlSZXF1ZXN0Giouc2NoZWR1bGVzLnYxLkdldENyb25TY2hlZHVsZUJ5S2V5UmVzcG9uc2USZwoSQ3JlYXRlQ3JvblNjaGVkdWxlEicuc2NoZWR1bGVzLnYxLkNyZWF0ZUNyb25TY2hlZHVsZVJlcXVlc3QaKC5zY2hlZHVsZXMudjEuQ3JlYXRlQ3JvblNjaGVkdWxlUmVzcG9uc2USZwoSVXBkYXRlQ3JvblNjaGVkdWxlEicuc2NoZWR1bGVzLnYxLlVwZGF0ZUNyb25TY2hlZHVsZVJlcXVlc3QaKC5zY2hlZHVsZXMudjEuVXBkYXRlQ3JvblNjaGVkdWxlUmVzcG9uc2USZwoSRGVsZXRlQ3JvblNjaGVkdWxlEicuc2NoZWR1bGVzLnYxLkRlbGV0ZUNyb25TY2hlZHVsZVJlcXVlc3QaKC5zY2hlZHVsZXMudjEuRGVsZXRlQ3JvblNjaGVkdWxlUmVzcG9uc2USZAoRUGF1c2VDcm9uU2NoZWR1bGUSJi5zY2hlZHVsZXMudjEuUGF1c2VDcm9uU2NoZWR1bGVSZXF1ZXN0Gicuc2NoZWR1bGVzLnYxLlBhdXNlQ3JvblNjaGVkdWxlUmVzcG9uc2USZwoSUmVzdW1lQ3JvblNjaGVkdWxlEicuc2NoZWR1bGVzLnYxLlJlc3VtZUNyb25TY2hlZHVsZVJlcXVlc3QaKC5zY2hlZHVsZXMudjEuUmVzdW1lQ3JvblNjaGVkdWxlUmVzcG9uc2USagoTVHJpZ2dlckNyb25TY2hlZHVsZRIoLnNjaGVkdWxlcy52MS5UcmlnZ2VyQ3JvblNjaGVkdWxlUmVxdWVzdBopLnNjaGVkdWxlcy52MS5UcmlnZ2VyQ3JvblNjaGVkdWxlUmVzcG9uc2USZwoSTGlzdFB1Ymxpc2hCYXRjaGVzEicuc2NoZWR1bGVzLnYxLkxpc3RQdWJsaXNoQmF0Y2hlc1JlcXVlc3QaKC5zY2hlZHVsZXMudjEuTGlzdFB1Ymxpc2hCYXRjaGVzUmVzcG9uc2USXgoPR2V0UHVibGlzaEJhdGNoEiQuc2NoZWR1bGVzLnYxLkdldFB1Ymxpc2hCYXRjaFJlcXVlc3QaJS5zY2hlZHVsZXMudjEuR2V0UHVibGlzaEJhdGNoUmVzcG9uc2USZwoSQ3JlYXRlUHVibGlzaEJhdGNoEicuc2NoZWR1bGVzLnYxLkNyZWF0ZVB1Ymxpc2hCYXRjaFJlcXVlc3QaKC5zY2hlZHVsZXMudjEuQ3JlYXRlUHVibGlzaEJhdGNoUmVzcG9uc2USZwoSVXBkYXRlUHVibGlzaEJhdGNoEicuc2NoZWR1bGVzLnYxLlVwZGF0ZVB1Ymxpc2hCYXRjaFJlcXVlc3QaKC5zY2hlZHVsZXMudjEuVXBkYXRlUHVibGlzaEJhdGNoUmVzcG9uc2USZwoSRGVsZXRlUHVibGlzaEJhdGNoEicuc2NoZWR1bGVzLnYxLkRlbGV0ZVB1Ymxpc2hCYXRjaFJlcXVlc3QaKC5zY2hlZHVsZXMudjEuRGVsZXRlUHVibGlzaEJhdGNoUmVzcG9uc2USagoTVHJpZ2dlclB1Ymxpc2hCYXRjaBIoLnNjaGVkdWxlcy52MS5UcmlnZ2VyUHVibGlzaEJhdGNoUmVxdWVzdBopLnNjaGVkdWxlcy52MS5UcmlnZ2VyUHVibGlzaEJhdGNoUmVzcG9uc2USZAoRUGF1c2VQdWJsaXNoQmF0Y2gSJi5zY2hlZHVsZXMudjEuUGF1c2VQdWJsaXNoQmF0Y2hSZXF1ZXN0Gicuc2NoZWR1bGVzLnYxLlBhdXNlUHVibGlzaEJhdGNoUmVzcG9uc2USZwoSUmVzdW1lUHVibGlzaEJhdGNoEicuc2NoZWR1bGVzLnYxLlJlc3VtZVB1Ymxpc2hCYXRjaFJlcXVlc3QaKC5zY2hlZHVsZXMudjEuUmVzdW1lUHVibGlzaEJhdGNoUmVzcG9uc2USbQoUUHJldmlld1JvbGxiYWNrQmF0Y2gSKS5zY2hlZHVsZXMudjEuUHJldmlld1JvbGxiYWNrQmF0Y2hSZXF1ZXN0Giouc2NoZWR1bGVzLnYxLlByZXZpZXdSb2xsYmFja0JhdGNoUmVzcG9uc2USbQoUUm9sbGJhY2tQdWJsaXNoQmF0Y2gSKS5zY2hlZHVsZXMudjEuUm9sbGJhY2tQdWJsaXNoQmF0Y2hSZXF1ZXN0Giouc2NoZWR1bGVzLnYxLlJvbGxiYWNrUHVibGlzaEJhdGNoUmVzcG9uc2UScAoVUmV0cnlGYWlsZWRCYXRjaEl0ZW1zEiouc2NoZWR1bGVzLnYxLlJldHJ5RmFpbGVkQmF0Y2hJdGVtc1JlcXVlc3QaKy5zY2hlZHVsZXMudjEuUmV0cnlGYWlsZWRCYXRjaEl0ZW1zUmVzcG9uc2UScwoWQWRkSXRlbXNUb1B1Ymxpc2hCYXRjaBIrLnNjaGVkdWxlcy52MS5BZGRJdGVtc1RvUHVibGlzaEJhdGNoUmVxdWVzdBosLnNjaGVkdWxlcy52MS5BZGRJdGVtc1RvUHVibGlzaEJhdGNoUmVzcG9uc2USggEKG1JlbW92ZUl0ZW1zRnJvbVB1Ymxpc2hCYXRjaBIwLnNjaGVkdWxlcy52MS5SZW1vdmVJdGVtc0Zyb21QdWJsaXNoQmF0Y2hSZXF1ZXN0GjEuc2NoZWR1bGVzLnYxLlJlbW92ZUl0ZW1zRnJvbVB1Ymxpc2hCYXRjaFJlc3BvbnNlQj9aPWdpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9zY2hlZHVsZXMvdjE7c2NoZWR1bGVzdjFiBnByb3RvMw", [file_google_protobuf_struct11, file_google_protobuf_timestamp12, file_common_v1_pagination]);
837
- var CronScheduleSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 0);
838
- var ListCronSchedulesRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 1);
839
- var GetCronScheduleRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 3);
840
- var GetCronScheduleByKeyRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 5);
841
- var CreateCronScheduleRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 7);
842
- var UpdateCronScheduleRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 9);
843
- var DeleteCronScheduleRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 11);
844
- var PauseCronScheduleRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 13);
845
- var ResumeCronScheduleRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 15);
846
- var TriggerCronScheduleRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 17);
847
- var PublishBatchSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 19);
848
- var ListPublishBatchesRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 21);
849
- var GetPublishBatchRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 23);
850
- var CreatePublishBatchRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 25);
851
- var UpdatePublishBatchRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 27);
852
- var DeletePublishBatchRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 29);
853
- var TriggerPublishBatchRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 31);
854
- var PausePublishBatchRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 33);
855
- var ResumePublishBatchRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 35);
856
- var PreviewRollbackBatchRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 37);
857
- var RollbackPublishBatchRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 39);
858
- var RetryFailedBatchItemsRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 41);
859
- var AddItemsToPublishBatchRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 43);
860
- var RemoveItemsFromPublishBatchRequestSchema = /* @__PURE__ */ messageDesc15(file_schedules_v1_schedules, 45);
861
- var SchedulesService = /* @__PURE__ */ serviceDesc11(file_schedules_v1_schedules, 0);
863
+ var file_schedules_v1_schedules = /* @__PURE__ */ fileDesc16("ChxzY2hlZHVsZXMvdjEvc2NoZWR1bGVzLnByb3RvEgxzY2hlZHVsZXMudjEixAYKDENyb25TY2hlZHVsZRIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSDAoEbmFtZRgDIAEoCRIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBEgwKBGNyb24YBSABKAkSEAoIdGltZXpvbmUYBiABKAkSFQoNb3BlcmF0aW9uX2tleRgHIAEoCRIWCgljb25maWdfaWQYCSABKAlIAYgBARIRCglpc19hY3RpdmUYCiABKAgSMgoJcGF1c2VkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhYKCXBhdXNlZF9ieRgMIAEoCUgDiAEBEjQKC2xhc3RfcnVuX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEhwKD2xhc3RfcnVuX3N0YXR1cxgOIAEoCUgFiAEBEhsKDmxhc3RfcnVuX2Vycm9yGA8gASgJSAaIAQESNAoLbmV4dF9ydW5fYXQYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAeIAQESEQoJcnVuX2NvdW50GBEgASgFEhUKDWZhaWx1cmVfY291bnQYEiABKAUSHAoUY29uc2VjdXRpdmVfZmFpbHVyZXMYEyABKAUSEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSLgoKY3JlYXRlZF9hdBgyIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgzIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoKY3JlYXRlZF9ieRg0IAEoCUgIiAEBEhcKCnVwZGF0ZWRfYnkYNSABKAlICYgBAUIOCgxfZGVzY3JpcHRpb25CDAoKX2NvbmZpZ19pZEIMCgpfcGF1c2VkX2F0QgwKCl9wYXVzZWRfYnlCDgoMX2xhc3RfcnVuX2F0QhIKEF9sYXN0X3J1bl9zdGF0dXNCEQoPX2xhc3RfcnVuX2Vycm9yQg4KDF9uZXh0X3J1bl9hdEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieSLJAQoYTGlzdENyb25TY2hlZHVsZXNSZXF1ZXN0EisKBXdoZXJlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEhIKBWFmdGVyGAIgASgJSAGIAQESEwoGYmVmb3JlGAMgASgJSAKIAQESEgoFZmlyc3QYBCABKAVIA4gBARIRCgRsYXN0GAUgASgFSASIAQFCCAoGX3doZXJlQggKBl9hZnRlckIJCgdfYmVmb3JlQggKBl9maXJzdEIHCgVfbGFzdCKlAQoZTGlzdENyb25TY2hlZHVsZXNSZXNwb25zZRItCglzY2hlZHVsZXMYASADKAsyGi5zY2hlZHVsZXMudjEuQ3JvblNjaGVkdWxlEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIkChZHZXRDcm9uU2NoZWR1bGVSZXF1ZXN0EgoKAmlkGAEgASgJIkcKF0dldENyb25TY2hlZHVsZVJlc3BvbnNlEiwKCHNjaGVkdWxlGAEgASgLMhouc2NoZWR1bGVzLnYxLkNyb25TY2hlZHVsZSIqChtHZXRDcm9uU2NoZWR1bGVCeUtleVJlcXVlc3QSCwoDa2V5GAEgASgJIkwKHEdldENyb25TY2hlZHVsZUJ5S2V5UmVzcG9uc2USLAoIc2NoZWR1bGUYASABKAsyGi5zY2hlZHVsZXMudjEuQ3JvblNjaGVkdWxlIs8BChlDcmVhdGVDcm9uU2NoZWR1bGVSZXF1ZXN0EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESDAoEY3JvbhgEIAEoCRIVCgh0aW1lem9uZRgFIAEoCUgBiAEBEhUKDW9wZXJhdGlvbl9rZXkYBiABKAkSFgoJY29uZmlnX2lkGAcgASgJSAKIAQFCDgoMX2Rlc2NyaXB0aW9uQgsKCV90aW1lem9uZUIMCgpfY29uZmlnX2lkIkoKGkNyZWF0ZUNyb25TY2hlZHVsZVJlc3BvbnNlEiwKCHNjaGVkdWxlGAEgASgLMhouc2NoZWR1bGVzLnYxLkNyb25TY2hlZHVsZSKBAgoZVXBkYXRlQ3JvblNjaGVkdWxlUmVxdWVzdBIKCgJpZBgBIAEoCRIRCgRuYW1lGAIgASgJSACIAQESGAoLZGVzY3JpcHRpb24YAyABKAlIAYgBARIRCgRjcm9uGAQgASgJSAKIAQESFQoIdGltZXpvbmUYBSABKAlIA4gBARIaCg1vcGVyYXRpb25fa2V5GAYgASgJSASIAQESFgoJaXNfYWN0aXZlGAcgASgISAWIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgcKBV9jcm9uQgsKCV90aW1lem9uZUIQCg5fb3BlcmF0aW9uX2tleUIMCgpfaXNfYWN0aXZlIkoKGlVwZGF0ZUNyb25TY2hlZHVsZVJlc3BvbnNlEiwKCHNjaGVkdWxlGAEgASgLMhouc2NoZWR1bGVzLnYxLkNyb25TY2hlZHVsZSInChlEZWxldGVDcm9uU2NoZWR1bGVSZXF1ZXN0EgoKAmlkGAEgASgJIi0KGkRlbGV0ZUNyb25TY2hlZHVsZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiJgoYUGF1c2VDcm9uU2NoZWR1bGVSZXF1ZXN0EgoKAmlkGAEgASgJIkkKGVBhdXNlQ3JvblNjaGVkdWxlUmVzcG9uc2USLAoIc2NoZWR1bGUYASABKAsyGi5zY2hlZHVsZXMudjEuQ3JvblNjaGVkdWxlIicKGVJlc3VtZUNyb25TY2hlZHVsZVJlcXVlc3QSCgoCaWQYASABKAkiSgoaUmVzdW1lQ3JvblNjaGVkdWxlUmVzcG9uc2USLAoIc2NoZWR1bGUYASABKAsyGi5zY2hlZHVsZXMudjEuQ3JvblNjaGVkdWxlIigKGlRyaWdnZXJDcm9uU2NoZWR1bGVSZXF1ZXN0EgoKAmlkGAEgASgJIksKG1RyaWdnZXJDcm9uU2NoZWR1bGVSZXNwb25zZRIsCghzY2hlZHVsZRgBIAEoCzIaLnNjaGVkdWxlcy52MS5Dcm9uU2NoZWR1bGUimggKDFB1Ymxpc2hCYXRjaBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESMAoMc2NoZWR1bGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzdGF0dXMYBSABKAkSEgoKaXRlbV9jb3VudBgGIAEoBRIXCg9jb21wbGV0ZWRfY291bnQYByABKAUSFAoMZmFpbGVkX2NvdW50GAggASgFEjMKCnN0YXJ0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESNQoMY29tcGxldGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEjMKDWVycm9yX3N1bW1hcnkYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESHQoQc2NoZWR1bGVkX2pvYl9pZBgMIAEoCUgEiAEBEh4KEXJvbGxiYWNrX2JhdGNoX2lkGA0gASgJSAWIAQESEwoLaXNfcm9sbGJhY2sYDiABKAgSHgoRb3JpZ2luYWxfYmF0Y2hfaWQYDyABKAlIBogBARIjChZkaXNwYXRjaF9mYWlsdXJlX2NvdW50GBAgASgFSAeIAQESKgodZGlzcGF0Y2hfY29uc2VjdXRpdmVfZmFpbHVyZXMYESABKAVICIgBARIgChNkaXNwYXRjaF9sYXN0X2Vycm9yGBIgASgJSAmIAQESEQoJdGVuYW50X2lkGBQgASgJEhIKCnByb2plY3RfaWQYFSABKAkSFwoKY3JlYXRlZF9ieRgeIAEoCUgKiAEBEhkKDGNhbmNlbGxlZF9ieRgfIAEoCUgLiAEBEjUKDGNhbmNlbGxlZF9hdBggIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIDIgBARIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CDQoLX3N0YXJ0ZWRfYXRCDwoNX2NvbXBsZXRlZF9hdEIQCg5fZXJyb3Jfc3VtbWFyeUITChFfc2NoZWR1bGVkX2pvYl9pZEIUChJfcm9sbGJhY2tfYmF0Y2hfaWRCFAoSX29yaWdpbmFsX2JhdGNoX2lkQhkKF19kaXNwYXRjaF9mYWlsdXJlX2NvdW50QiAKHl9kaXNwYXRjaF9jb25zZWN1dGl2ZV9mYWlsdXJlc0IWChRfZGlzcGF0Y2hfbGFzdF9lcnJvckINCgtfY3JlYXRlZF9ieUIPCg1fY2FuY2VsbGVkX2J5Qg8KDV9jYW5jZWxsZWRfYXQirgUKEFB1Ymxpc2hCYXRjaEl0ZW0SCgoCaWQYASABKAkSEAoIYmF0Y2hfaWQYAiABKAkSEgoKdmVyc2lvbl9pZBgDIAEoCRIOCgZzdGF0dXMYBCABKAkSGgoNZXJyb3JfbWVzc2FnZRgFIAEoCUgAiAEBEioKHXByZXZpb3VzX3B1Ymxpc2hlZF92ZXJzaW9uX2lkGAYgASgJSAGIAQESHAoPcm9sbGJhY2tfYWN0aW9uGAcgASgJSAKIAQESNQoMcHJvY2Vzc2VkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEhsKDnZlcnNpb25fbnVtYmVyGAkgASgFSASIAQESGQoMdmFyaWFudF9uYW1lGAogASgJSAWIAQESGAoLbmF0dXJhbF9rZXkYCyABKAlIBogBARIWCgltb2RlbF9rZXkYDCABKAlIB4gBARIRCgl0ZW5hbnRfaWQYFCABKAkSEgoKcHJvamVjdF9pZBgVIAEoCRIuCgpjcmVhdGVkX2F0GDIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgt0YXJnZXRfa2luZBg8IAEoCRIVCghtb2RlbF9pZBg9IAEoCUgIiAEBEhcKCm1vZGVsX25hbWUYPiABKAlICYgBAUIQCg5fZXJyb3JfbWVzc2FnZUIgCh5fcHJldmlvdXNfcHVibGlzaGVkX3ZlcnNpb25faWRCEgoQX3JvbGxiYWNrX2FjdGlvbkIPCg1fcHJvY2Vzc2VkX2F0QhEKD192ZXJzaW9uX251bWJlckIPCg1fdmFyaWFudF9uYW1lQg4KDF9uYXR1cmFsX2tleUIMCgpfbW9kZWxfa2V5QgsKCV9tb2RlbF9pZEINCgtfbW9kZWxfbmFtZSLKAQoZTGlzdFB1Ymxpc2hCYXRjaGVzUmVxdWVzdBIrCgV3aGVyZRgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARISCgVhZnRlchgCIAEoCUgBiAEBEhMKBmJlZm9yZRgDIAEoCUgCiAEBEhIKBWZpcnN0GAQgASgFSAOIAQESEQoEbGFzdBgFIAEoBUgEiAEBQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QipAEKGkxpc3RQdWJsaXNoQmF0Y2hlc1Jlc3BvbnNlEisKB2JhdGNoZXMYASADKAsyGi5zY2hlZHVsZXMudjEuUHVibGlzaEJhdGNoEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyIkChZHZXRQdWJsaXNoQmF0Y2hSZXF1ZXN0EgoKAmlkGAEgASgJInMKF0dldFB1Ymxpc2hCYXRjaFJlc3BvbnNlEikKBWJhdGNoGAEgASgLMhouc2NoZWR1bGVzLnYxLlB1Ymxpc2hCYXRjaBItCgVpdGVtcxgCIAMoCzIeLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2hJdGVtIp4CChlDcmVhdGVQdWJsaXNoQmF0Y2hSZXF1ZXN0EgwKBG5hbWUYASABKAkSGAoLZGVzY3JpcHRpb24YAiABKAlIAIgBARIwCgxzY2hlZHVsZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhMKC3ZlcnNpb25faWRzGAQgAygJEhEKCW1vZGVsX2lkcxgFIAMoCRIVCg1vcGVyYXRpb25faWRzGAYgAygJEh0KFWNvbnRleHRfZGltZW5zaW9uX2lkcxgHIAMoCRIZChFhdXRoX3Byb3ZpZGVyX2lkcxgIIAMoCRIeChZpbmNsdWRlX3Byb2ZpbGVfc2NoZW1hGAkgASgIQg4KDF9kZXNjcmlwdGlvbiJHChpDcmVhdGVQdWJsaXNoQmF0Y2hSZXNwb25zZRIpCgViYXRjaBgBIAEoCzIaLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2gitQEKGVVwZGF0ZVB1Ymxpc2hCYXRjaFJlcXVlc3QSCgoCaWQYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESNQoMc2NoZWR1bGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIPCg1fc2NoZWR1bGVkX2F0IkcKGlVwZGF0ZVB1Ymxpc2hCYXRjaFJlc3BvbnNlEikKBWJhdGNoGAEgASgLMhouc2NoZWR1bGVzLnYxLlB1Ymxpc2hCYXRjaCInChlEZWxldGVQdWJsaXNoQmF0Y2hSZXF1ZXN0EgoKAmlkGAEgASgJIi0KGkRlbGV0ZVB1Ymxpc2hCYXRjaFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiKAoaVHJpZ2dlclB1Ymxpc2hCYXRjaFJlcXVlc3QSCgoCaWQYASABKAkiSAobVHJpZ2dlclB1Ymxpc2hCYXRjaFJlc3BvbnNlEikKBWJhdGNoGAEgASgLMhouc2NoZWR1bGVzLnYxLlB1Ymxpc2hCYXRjaCImChhQYXVzZVB1Ymxpc2hCYXRjaFJlcXVlc3QSCgoCaWQYASABKAkiRgoZUGF1c2VQdWJsaXNoQmF0Y2hSZXNwb25zZRIpCgViYXRjaBgBIAEoCzIaLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2giJwoZUmVzdW1lUHVibGlzaEJhdGNoUmVxdWVzdBIKCgJpZBgBIAEoCSJHChpSZXN1bWVQdWJsaXNoQmF0Y2hSZXNwb25zZRIpCgViYXRjaBgBIAEoCzIaLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2giLwobUHJldmlld1JvbGxiYWNrQmF0Y2hSZXF1ZXN0EhAKCGJhdGNoX2lkGAEgASgJIlwKHFByZXZpZXdSb2xsYmFja0JhdGNoUmVzcG9uc2USLQoFaXRlbXMYASADKAsyHi5zY2hlZHVsZXMudjEuUHVibGlzaEJhdGNoSXRlbRINCgV0b3RhbBgCIAEoBSIvChtSb2xsYmFja1B1Ymxpc2hCYXRjaFJlcXVlc3QSEAoIYmF0Y2hfaWQYASABKAkiSQocUm9sbGJhY2tQdWJsaXNoQmF0Y2hSZXNwb25zZRIpCgViYXRjaBgBIAEoCzIaLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2giMAocUmV0cnlGYWlsZWRCYXRjaEl0ZW1zUmVxdWVzdBIQCghiYXRjaF9pZBgBIAEoCSJhCh1SZXRyeUZhaWxlZEJhdGNoSXRlbXNSZXNwb25zZRIpCgViYXRjaBgBIAEoCzIaLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2gSFQoNcmV0cmllZF9jb3VudBgCIAEoBSLKAQodQWRkSXRlbXNUb1B1Ymxpc2hCYXRjaFJlcXVlc3QSEAoIYmF0Y2hfaWQYASABKAkSEwoLdmVyc2lvbl9pZHMYAiADKAkSEQoJbW9kZWxfaWRzGAMgAygJEhUKDW9wZXJhdGlvbl9pZHMYBCADKAkSHQoVY29udGV4dF9kaW1lbnNpb25faWRzGAUgAygJEhkKEWF1dGhfcHJvdmlkZXJfaWRzGAYgAygJEh4KFmluY2x1ZGVfcHJvZmlsZV9zY2hlbWEYByABKAgiSwoeQWRkSXRlbXNUb1B1Ymxpc2hCYXRjaFJlc3BvbnNlEikKBWJhdGNoGAEgASgLMhouc2NoZWR1bGVzLnYxLlB1Ymxpc2hCYXRjaCLPAQoiUmVtb3ZlSXRlbXNGcm9tUHVibGlzaEJhdGNoUmVxdWVzdBIQCghiYXRjaF9pZBgBIAEoCRITCgt2ZXJzaW9uX2lkcxgCIAMoCRIRCgltb2RlbF9pZHMYAyADKAkSFQoNb3BlcmF0aW9uX2lkcxgEIAMoCRIdChVjb250ZXh0X2RpbWVuc2lvbl9pZHMYBSADKAkSGQoRYXV0aF9wcm92aWRlcl9pZHMYBiADKAkSHgoWZXhjbHVkZV9wcm9maWxlX3NjaGVtYRgHIAEoCCJQCiNSZW1vdmVJdGVtc0Zyb21QdWJsaXNoQmF0Y2hSZXNwb25zZRIpCgViYXRjaBgBIAEoCzIaLnNjaGVkdWxlcy52MS5QdWJsaXNoQmF0Y2gyxhIKEFNjaGVkdWxlc1NlcnZpY2USZAoRTGlzdENyb25TY2hlZHVsZXMSJi5zY2hlZHVsZXMudjEuTGlzdENyb25TY2hlZHVsZXNSZXF1ZXN0Gicuc2NoZWR1bGVzLnYxLkxpc3RDcm9uU2NoZWR1bGVzUmVzcG9uc2USXgoPR2V0Q3JvblNjaGVkdWxlEiQuc2NoZWR1bGVzLnYxLkdldENyb25TY2hlZHVsZVJlcXVlc3QaJS5zY2hlZHVsZXMudjEuR2V0Q3JvblNjaGVkdWxlUmVzcG9uc2USbQoUR2V0Q3JvblNjaGVkdWxlQnlLZXkSKS5zY2hlZHVsZXMudjEuR2V0Q3JvblNjaGVkdWxlQnlLZXlSZXF1ZXN0Giouc2NoZWR1bGVzLnYxLkdldENyb25TY2hlZHVsZUJ5S2V5UmVzcG9uc2USZwoSQ3JlYXRlQ3JvblNjaGVkdWxlEicuc2NoZWR1bGVzLnYxLkNyZWF0ZUNyb25TY2hlZHVsZVJlcXVlc3QaKC5zY2hlZHVsZXMudjEuQ3JlYXRlQ3JvblNjaGVkdWxlUmVzcG9uc2USZwoSVXBkYXRlQ3JvblNjaGVkdWxlEicuc2NoZWR1bGVzLnYxLlVwZGF0ZUNyb25TY2hlZHVsZVJlcXVlc3QaKC5zY2hlZHVsZXMudjEuVXBkYXRlQ3JvblNjaGVkdWxlUmVzcG9uc2USZwoSRGVsZXRlQ3JvblNjaGVkdWxlEicuc2NoZWR1bGVzLnYxLkRlbGV0ZUNyb25TY2hlZHVsZVJlcXVlc3QaKC5zY2hlZHVsZXMudjEuRGVsZXRlQ3JvblNjaGVkdWxlUmVzcG9uc2USZAoRUGF1c2VDcm9uU2NoZWR1bGUSJi5zY2hlZHVsZXMudjEuUGF1c2VDcm9uU2NoZWR1bGVSZXF1ZXN0Gicuc2NoZWR1bGVzLnYxLlBhdXNlQ3JvblNjaGVkdWxlUmVzcG9uc2USZwoSUmVzdW1lQ3JvblNjaGVkdWxlEicuc2NoZWR1bGVzLnYxLlJlc3VtZUNyb25TY2hlZHVsZVJlcXVlc3QaKC5zY2hlZHVsZXMudjEuUmVzdW1lQ3JvblNjaGVkdWxlUmVzcG9uc2USagoTVHJpZ2dlckNyb25TY2hlZHVsZRIoLnNjaGVkdWxlcy52MS5UcmlnZ2VyQ3JvblNjaGVkdWxlUmVxdWVzdBopLnNjaGVkdWxlcy52MS5UcmlnZ2VyQ3JvblNjaGVkdWxlUmVzcG9uc2USZwoSTGlzdFB1Ymxpc2hCYXRjaGVzEicuc2NoZWR1bGVzLnYxLkxpc3RQdWJsaXNoQmF0Y2hlc1JlcXVlc3QaKC5zY2hlZHVsZXMudjEuTGlzdFB1Ymxpc2hCYXRjaGVzUmVzcG9uc2USXgoPR2V0UHVibGlzaEJhdGNoEiQuc2NoZWR1bGVzLnYxLkdldFB1Ymxpc2hCYXRjaFJlcXVlc3QaJS5zY2hlZHVsZXMudjEuR2V0UHVibGlzaEJhdGNoUmVzcG9uc2USZwoSQ3JlYXRlUHVibGlzaEJhdGNoEicuc2NoZWR1bGVzLnYxLkNyZWF0ZVB1Ymxpc2hCYXRjaFJlcXVlc3QaKC5zY2hlZHVsZXMudjEuQ3JlYXRlUHVibGlzaEJhdGNoUmVzcG9uc2USZwoSVXBkYXRlUHVibGlzaEJhdGNoEicuc2NoZWR1bGVzLnYxLlVwZGF0ZVB1Ymxpc2hCYXRjaFJlcXVlc3QaKC5zY2hlZHVsZXMudjEuVXBkYXRlUHVibGlzaEJhdGNoUmVzcG9uc2USZwoSRGVsZXRlUHVibGlzaEJhdGNoEicuc2NoZWR1bGVzLnYxLkRlbGV0ZVB1Ymxpc2hCYXRjaFJlcXVlc3QaKC5zY2hlZHVsZXMudjEuRGVsZXRlUHVibGlzaEJhdGNoUmVzcG9uc2USagoTVHJpZ2dlclB1Ymxpc2hCYXRjaBIoLnNjaGVkdWxlcy52MS5UcmlnZ2VyUHVibGlzaEJhdGNoUmVxdWVzdBopLnNjaGVkdWxlcy52MS5UcmlnZ2VyUHVibGlzaEJhdGNoUmVzcG9uc2USZAoRUGF1c2VQdWJsaXNoQmF0Y2gSJi5zY2hlZHVsZXMudjEuUGF1c2VQdWJsaXNoQmF0Y2hSZXF1ZXN0Gicuc2NoZWR1bGVzLnYxLlBhdXNlUHVibGlzaEJhdGNoUmVzcG9uc2USZwoSUmVzdW1lUHVibGlzaEJhdGNoEicuc2NoZWR1bGVzLnYxLlJlc3VtZVB1Ymxpc2hCYXRjaFJlcXVlc3QaKC5zY2hlZHVsZXMudjEuUmVzdW1lUHVibGlzaEJhdGNoUmVzcG9uc2USbQoUUHJldmlld1JvbGxiYWNrQmF0Y2gSKS5zY2hlZHVsZXMudjEuUHJldmlld1JvbGxiYWNrQmF0Y2hSZXF1ZXN0Giouc2NoZWR1bGVzLnYxLlByZXZpZXdSb2xsYmFja0JhdGNoUmVzcG9uc2USbQoUUm9sbGJhY2tQdWJsaXNoQmF0Y2gSKS5zY2hlZHVsZXMudjEuUm9sbGJhY2tQdWJsaXNoQmF0Y2hSZXF1ZXN0Giouc2NoZWR1bGVzLnYxLlJvbGxiYWNrUHVibGlzaEJhdGNoUmVzcG9uc2UScAoVUmV0cnlGYWlsZWRCYXRjaEl0ZW1zEiouc2NoZWR1bGVzLnYxLlJldHJ5RmFpbGVkQmF0Y2hJdGVtc1JlcXVlc3QaKy5zY2hlZHVsZXMudjEuUmV0cnlGYWlsZWRCYXRjaEl0ZW1zUmVzcG9uc2UScwoWQWRkSXRlbXNUb1B1Ymxpc2hCYXRjaBIrLnNjaGVkdWxlcy52MS5BZGRJdGVtc1RvUHVibGlzaEJhdGNoUmVxdWVzdBosLnNjaGVkdWxlcy52MS5BZGRJdGVtc1RvUHVibGlzaEJhdGNoUmVzcG9uc2USggEKG1JlbW92ZUl0ZW1zRnJvbVB1Ymxpc2hCYXRjaBIwLnNjaGVkdWxlcy52MS5SZW1vdmVJdGVtc0Zyb21QdWJsaXNoQmF0Y2hSZXF1ZXN0GjEuc2NoZWR1bGVzLnYxLlJlbW92ZUl0ZW1zRnJvbVB1Ymxpc2hCYXRjaFJlc3BvbnNlQj9aPWdpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9zY2hlZHVsZXMvdjE7c2NoZWR1bGVzdjFiBnByb3RvMw", [file_google_protobuf_struct11, file_google_protobuf_timestamp12, file_common_v1_pagination]);
864
+ var CronScheduleSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 0);
865
+ var ListCronSchedulesRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 1);
866
+ var GetCronScheduleRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 3);
867
+ var GetCronScheduleByKeyRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 5);
868
+ var CreateCronScheduleRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 7);
869
+ var UpdateCronScheduleRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 9);
870
+ var DeleteCronScheduleRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 11);
871
+ var PauseCronScheduleRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 13);
872
+ var ResumeCronScheduleRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 15);
873
+ var TriggerCronScheduleRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 17);
874
+ var PublishBatchSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 19);
875
+ var ListPublishBatchesRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 21);
876
+ var GetPublishBatchRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 23);
877
+ var CreatePublishBatchRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 25);
878
+ var UpdatePublishBatchRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 27);
879
+ var DeletePublishBatchRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 29);
880
+ var TriggerPublishBatchRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 31);
881
+ var PausePublishBatchRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 33);
882
+ var ResumePublishBatchRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 35);
883
+ var PreviewRollbackBatchRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 37);
884
+ var RollbackPublishBatchRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 39);
885
+ var RetryFailedBatchItemsRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 41);
886
+ var AddItemsToPublishBatchRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 43);
887
+ var RemoveItemsFromPublishBatchRequestSchema = /* @__PURE__ */ messageDesc16(file_schedules_v1_schedules, 45);
888
+ var SchedulesService = /* @__PURE__ */ serviceDesc12(file_schedules_v1_schedules, 0);
862
889
 
863
890
  // ../../packages/proto-ts/src/apps/v1/apps_service_pb.js
864
- import { enumDesc as enumDesc12, fileDesc as fileDesc18, messageDesc as messageDesc18, serviceDesc as serviceDesc12, tsEnum as tsEnum12 } from "@bufbuild/protobuf/codegenv2";
891
+ import { enumDesc as enumDesc13, fileDesc as fileDesc19, messageDesc as messageDesc19, serviceDesc as serviceDesc13, tsEnum as tsEnum13 } from "@bufbuild/protobuf/codegenv2";
865
892
 
866
893
  // ../../packages/proto-ts/src/apps/v1/apps_pb.js
867
- import { enumDesc as enumDesc11, fileDesc as fileDesc17, messageDesc as messageDesc17, tsEnum as tsEnum11 } from "@bufbuild/protobuf/codegenv2";
894
+ import { enumDesc as enumDesc12, fileDesc as fileDesc18, messageDesc as messageDesc18, tsEnum as tsEnum12 } from "@bufbuild/protobuf/codegenv2";
868
895
 
869
896
  // ../../packages/proto-ts/src/buf/validate/validate_pb.js
870
- import { enumDesc as enumDesc10, extDesc, fileDesc as fileDesc16, messageDesc as messageDesc16, tsEnum as tsEnum10 } from "@bufbuild/protobuf/codegenv2";
897
+ import { enumDesc as enumDesc11, extDesc, fileDesc as fileDesc17, messageDesc as messageDesc17, tsEnum as tsEnum11 } from "@bufbuild/protobuf/codegenv2";
871
898
  import { file_google_protobuf_descriptor, file_google_protobuf_duration, file_google_protobuf_field_mask, file_google_protobuf_timestamp as file_google_protobuf_timestamp13 } from "@bufbuild/protobuf/wkt";
872
- var file_buf_validate_validate = /* @__PURE__ */ fileDesc16("ChtidWYvdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8SDGJ1Zi52YWxpZGF0ZSI3CgRSdWxlEgoKAmlkGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKZXhwcmVzc2lvbhgDIAEoCSKGAQoMTWVzc2FnZVJ1bGVzEhYKDmNlbF9leHByZXNzaW9uGAUgAygJEh8KA2NlbBgDIAMoCzISLmJ1Zi52YWxpZGF0ZS5SdWxlEi0KBW9uZW9mGAQgAygLMh4uYnVmLnZhbGlkYXRlLk1lc3NhZ2VPbmVvZlJ1bGVKBAgBEAJSCGRpc2FibGVkIjQKEE1lc3NhZ2VPbmVvZlJ1bGUSDgoGZmllbGRzGAEgAygJEhAKCHJlcXVpcmVkGAIgASgIIh4KCk9uZW9mUnVsZXMSEAoIcmVxdWlyZWQYASABKAgiiwkKCkZpZWxkUnVsZXMSFgoOY2VsX2V4cHJlc3Npb24YHSADKAkSHwoDY2VsGBcgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGUSEAoIcmVxdWlyZWQYGSABKAgSJAoGaWdub3JlGBsgASgOMhQuYnVmLnZhbGlkYXRlLklnbm9yZRIpCgVmbG9hdBgBIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GbG9hdFJ1bGVzSAASKwoGZG91YmxlGAIgASgLMhkuYnVmLnZhbGlkYXRlLkRvdWJsZVJ1bGVzSAASKQoFaW50MzIYAyABKAsyGC5idWYudmFsaWRhdGUuSW50MzJSdWxlc0gAEikKBWludDY0GAQgASgLMhguYnVmLnZhbGlkYXRlLkludDY0UnVsZXNIABIrCgZ1aW50MzIYBSABKAsyGS5idWYudmFsaWRhdGUuVUludDMyUnVsZXNIABIrCgZ1aW50NjQYBiABKAsyGS5idWYudmFsaWRhdGUuVUludDY0UnVsZXNIABIrCgZzaW50MzIYByABKAsyGS5idWYudmFsaWRhdGUuU0ludDMyUnVsZXNIABIrCgZzaW50NjQYCCABKAsyGS5idWYudmFsaWRhdGUuU0ludDY0UnVsZXNIABItCgdmaXhlZDMyGAkgASgLMhouYnVmLnZhbGlkYXRlLkZpeGVkMzJSdWxlc0gAEi0KB2ZpeGVkNjQYCiABKAsyGi5idWYudmFsaWRhdGUuRml4ZWQ2NFJ1bGVzSAASLwoIc2ZpeGVkMzIYCyABKAsyGy5idWYudmFsaWRhdGUuU0ZpeGVkMzJSdWxlc0gAEi8KCHNmaXhlZDY0GAwgASgLMhsuYnVmLnZhbGlkYXRlLlNGaXhlZDY0UnVsZXNIABInCgRib29sGA0gASgLMhcuYnVmLnZhbGlkYXRlLkJvb2xSdWxlc0gAEisKBnN0cmluZxgOIAEoCzIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlc0gAEikKBWJ5dGVzGA8gASgLMhguYnVmLnZhbGlkYXRlLkJ5dGVzUnVsZXNIABInCgRlbnVtGBAgASgLMhcuYnVmLnZhbGlkYXRlLkVudW1SdWxlc0gAEi8KCHJlcGVhdGVkGBIgASgLMhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXNIABIlCgNtYXAYEyABKAsyFi5idWYudmFsaWRhdGUuTWFwUnVsZXNIABIlCgNhbnkYFCABKAsyFi5idWYudmFsaWRhdGUuQW55UnVsZXNIABIvCghkdXJhdGlvbhgVIAEoCzIbLmJ1Zi52YWxpZGF0ZS5EdXJhdGlvblJ1bGVzSAASMgoKZmllbGRfbWFzaxgcIAEoCzIcLmJ1Zi52YWxpZGF0ZS5GaWVsZE1hc2tSdWxlc0gAEjEKCXRpbWVzdGFtcBgWIAEoCzIcLmJ1Zi52YWxpZGF0ZS5UaW1lc3RhbXBSdWxlc0gAQgYKBHR5cGVKBAgYEBlKBAgaEBtSB3NraXBwZWRSDGlnbm9yZV9lbXB0eSJVCg9QcmVkZWZpbmVkUnVsZXMSHwoDY2VsGAEgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGVKBAgYEBlKBAgaEBtSB3NraXBwZWRSDGlnbm9yZV9lbXB0eSL4FgoKRmxvYXRSdWxlcxJ9CgVjb25zdBgBIAEoAkJuwkhrCmkKC2Zsb2F0LmNvbnN0Glp0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICdtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSmQEKAmx0GAIgASgCQooBwkiGAQqDAQoIZmxvYXQubHQadyFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQpPyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASqQEKA2x0ZRgDIAEoAkKZAcJIlQEKkgEKCWZsb2F0Lmx0ZRqEASFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUpPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEtAHCgJndBgEIAEoAkLBB8JIvQcKhgEKCGZsb2F0Lmd0GnohaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq9AQoLZmxvYXQuZ3RfbHQarQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrHAQoVZmxvYXQuZ3RfbHRfZXhjbHVzaXZlGq0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKzQEKDGZsb2F0Lmd0X2x0ZRq8AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCtcBChZmbG9hdC5ndF9sdGVfZXhjbHVzaXZlGrwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARKcCAoDZ3RlGAUgASgCQowIwkiICAqVAQoJZmxvYXQuZ3RlGocBIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCswBCgxmbG9hdC5ndGVfbHQauwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtYBChZmbG9hdC5ndGVfbHRfZXhjbHVzaXZlGrsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrcAQoNZmxvYXQuZ3RlX2x0ZRrKAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK5gEKF2Zsb2F0Lmd0ZV9sdGVfZXhjbHVzaXZlGsoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEnkKAmluGAYgAygCQm3CSGoKaAoIZmxvYXQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnAKBm5vdF9pbhgHIAMoAkJgwkhdClsKDGZsb2F0Lm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEm8KBmZpbml0ZRgIIAEoCEJfwkhcCloKDGZsb2F0LmZpbml0ZRpKcnVsZXMuZmluaXRlID8gKHRoaXMuaXNOYW4oKSB8fCB0aGlzLmlzSW5mKCkgPyAnbXVzdCBiZSBmaW5pdGUnIDogJycpIDogJycSKwoHZXhhbXBsZRgJIAMoAkIawkgXChUKDWZsb2F0LmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIooXCgtEb3VibGVSdWxlcxJ+CgVjb25zdBgBIAEoAUJvwkhsCmoKDGRvdWJsZS5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEpoBCgJsdBgCIAEoAUKLAcJIhwEKhAEKCWRvdWJsZS5sdBp3IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCk/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKqAQoDbHRlGAMgASgBQpoBwkiWAQqTAQoKZG91YmxlLmx0ZRqEASFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUpPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEtUHCgJndBgEIAEoAULGB8JIwgcKhwEKCWRvdWJsZS5ndBp6IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKvgEKDGRvdWJsZS5ndF9sdBqtAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCsgBChZkb3VibGUuZ3RfbHRfZXhjbHVzaXZlGq0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKzgEKDWRvdWJsZS5ndF9sdGUavAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrYAQoXZG91YmxlLmd0X2x0ZV9leGNsdXNpdmUavAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEqEICgNndGUYBSABKAFCkQjCSI0ICpYBCgpkb3VibGUuZ3RlGocBIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCs0BCg1kb3VibGUuZ3RlX2x0GrsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrXAQoXZG91YmxlLmd0ZV9sdF9leGNsdXNpdmUauwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCt0BCg5kb3VibGUuZ3RlX2x0ZRrKAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK5wEKGGRvdWJsZS5ndGVfbHRlX2V4Y2x1c2l2ZRrKAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ6CgJpbhgGIAMoAUJuwkhrCmkKCWRvdWJsZS5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAcgAygBQmHCSF4KXAoNZG91YmxlLm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEnAKBmZpbml0ZRgIIAEoCEJgwkhdClsKDWRvdWJsZS5maW5pdGUaSnJ1bGVzLmZpbml0ZSA/ICh0aGlzLmlzTmFuKCkgfHwgdGhpcy5pc0luZigpID8gJ211c3QgYmUgZmluaXRlJyA6ICcnKSA6ICcnEiwKB2V4YW1wbGUYCSADKAFCG8JIGAoWCg5kb3VibGUuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4isBQKCkludDMyUnVsZXMSfQoFY29uc3QYASABKAVCbsJIawppCgtpbnQzMi5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEoQBCgJsdBgCIAEoBUJ2wkhzCnEKCGludDMyLmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpUBCgNsdGUYAyABKAVChQHCSIEBCn8KCWludDMyLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAAS+QYKAmd0GAQgASgFQuoGwkjmBgp0CghpbnQzMi5ndBpoIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKrQEKC2ludDMyLmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq1AQoVaW50MzIuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvQEKDGludDMyLmd0X2x0ZRqsAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKxQEKFmludDMyLmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEsUHCgNndGUYBSABKAVCtQfCSLEHCoIBCglpbnQzMi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq8AQoMaW50MzIuZ3RlX2x0GqsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCsQBChZpbnQzMi5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrMAQoNaW50MzIuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrUAQoXaW50MzIuZ3RlX2x0ZV9leGNsdXNpdmUauAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESeQoCaW4YBiADKAVCbcJIagpoCghpbnQzMi5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScAoGbm90X2luGAcgAygFQmDCSF0KWwoMaW50MzIubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSKwoHZXhhbXBsZRgIIAMoBUIawkgXChUKDWludDMyLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIrAUCgpJbnQ2NFJ1bGVzEn0KBWNvbnN0GAEgASgDQm7CSGsKaQoLaW50NjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKEAQoCbHQYAiABKANCdsJIcwpxCghpbnQ2NC5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKVAQoDbHRlGAMgASgDQoUBwkiBAQp/CglpbnQ2NC5sdGUaciFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEvkGCgJndBgEIAEoA0LqBsJI5gYKdAoIaW50NjQuZ3QaaCFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCq0BCgtpbnQ2NC5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtQEKFWludDY0Lmd0X2x0X2V4Y2x1c2l2ZRqbAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr0BCgxpbnQ2NC5ndF9sdGUarAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCsUBChZpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLFBwoDZ3RlGAUgASgDQrUHwkixBwqCAQoJaW50NjQuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKvAEKDGludDY0Lmd0ZV9sdBqrAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrEAQoWaW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzAEKDWludDY0Lmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK1AEKF2ludDY0Lmd0ZV9sdGVfZXhjbHVzaXZlGrgBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEnkKAmluGAYgAygDQm3CSGoKaAoIaW50NjQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnAKBm5vdF9pbhgHIAMoA0JgwkhdClsKDGludDY0Lm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEisKB2V4YW1wbGUYCSADKANCGsJIFwoVCg1pbnQ2NC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiLCFAoLVUludDMyUnVsZXMSfgoFY29uc3QYASABKA1Cb8JIbApqCgx1aW50MzIuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKFAQoCbHQYAiABKA1Cd8JIdApyCgl1aW50MzIubHQaZSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASlwEKA2x0ZRgDIAEoDUKHAcJIgwEKgAEKCnVpbnQzMi5sdGUaciFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEv4GCgJndBgEIAEoDULvBsJI6wYKdQoJdWludDMyLmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwquAQoMdWludDMyLmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq2AQoWdWludDMyLmd0X2x0X2V4Y2x1c2l2ZRqbAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr4BCg11aW50MzIuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrGAQoXdWludDMyLmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEsoHCgNndGUYBSABKA1CugfCSLYHCoMBCgp1aW50MzIuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKvQEKDXVpbnQzMi5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxQEKF3VpbnQzMi5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrNAQoOdWludDMyLmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK1QEKGHVpbnQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ6CgJpbhgGIAMoDUJuwkhrCmkKCXVpbnQzMi5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAcgAygNQmHCSF4KXAoNdWludDMyLm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEiwKB2V4YW1wbGUYCCADKA1CG8JIGAoWCg51aW50MzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iwhQKC1VJbnQ2NFJ1bGVzEn4KBWNvbnN0GAEgASgEQm/CSGwKagoMdWludDY0LmNvbnN0Glp0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICdtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycShQEKAmx0GAIgASgEQnfCSHQKcgoJdWludDY0Lmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpcBCgNsdGUYAyABKARChwHCSIMBCoABCgp1aW50NjQubHRlGnIhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ211c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABL+BgoCZ3QYBCABKARC7wbCSOsGCnUKCXVpbnQ2NC5ndBpoIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKrgEKDHVpbnQ2NC5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtgEKFnVpbnQ2NC5ndF9sdF9leGNsdXNpdmUamwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq+AQoNdWludDY0Lmd0X2x0ZRqsAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKxgEKF3VpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLKBwoDZ3RlGAUgASgEQroHwki2BwqDAQoKdWludDY0Lmd0ZRp1IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCr0BCg11aW50NjQuZ3RlX2x0GqsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCsUBChd1aW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzQEKDnVpbnQ2NC5ndGVfbHRlGroBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtUBChh1aW50NjQuZ3RlX2x0ZV9leGNsdXNpdmUauAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESegoCaW4YBiADKARCbsJIawppCgl1aW50NjQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnEKBm5vdF9pbhgHIAMoBEJhwkheClwKDXVpbnQ2NC5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIsCgdleGFtcGxlGAggAygEQhvCSBgKFgoOdWludDY0LmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIsIUCgtTSW50MzJSdWxlcxJ+CgVjb25zdBgBIAEoEUJvwkhsCmoKDHNpbnQzMi5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEoUBCgJsdBgCIAEoEUJ3wkh0CnIKCXNpbnQzMi5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKXAQoDbHRlGAMgASgRQocBwkiDAQqAAQoKc2ludDMyLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAAS/gYKAmd0GAQgASgRQu8GwkjrBgp1CglzaW50MzIuZ3QaaCFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCq4BCgxzaW50MzIuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrYBChZzaW50MzIuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvgEKDXNpbnQzMi5ndF9sdGUarAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCsYBChdzaW50MzIuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAESygcKA2d0ZRgFIAEoEUK6B8JItgcKgwEKCnNpbnQzMi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq9AQoNc2ludDMyLmd0ZV9sdBqrAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrFAQoXc2ludDMyLmd0ZV9sdF9leGNsdXNpdmUaqQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs0BCg5zaW50MzIuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrVAQoYc2ludDMyLmd0ZV9sdGVfZXhjbHVzaXZlGrgBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEnoKAmluGAYgAygRQm7CSGsKaQoJc2ludDMyLmluGlwhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJxCgZub3RfaW4YByADKBFCYcJIXgpcCg1zaW50MzIubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLAoHZXhhbXBsZRgIIAMoEUIbwkgYChYKDnNpbnQzMi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiLCFAoLU0ludDY0UnVsZXMSfgoFY29uc3QYASABKBJCb8JIbApqCgxzaW50NjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKFAQoCbHQYAiABKBJCd8JIdApyCglzaW50NjQubHQaZSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASlwEKA2x0ZRgDIAEoEkKHAcJIgwEKgAEKCnNpbnQ2NC5sdGUaciFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEv4GCgJndBgEIAEoEkLvBsJI6wYKdQoJc2ludDY0Lmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwquAQoMc2ludDY0Lmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq2AQoWc2ludDY0Lmd0X2x0X2V4Y2x1c2l2ZRqbAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr4BCg1zaW50NjQuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrGAQoXc2ludDY0Lmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEsoHCgNndGUYBSABKBJCugfCSLYHCoMBCgpzaW50NjQuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKvQEKDXNpbnQ2NC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxQEKF3NpbnQ2NC5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrNAQoOc2ludDY0Lmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK1QEKGHNpbnQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ6CgJpbhgGIAMoEkJuwkhrCmkKCXNpbnQ2NC5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAcgAygSQmHCSF4KXAoNc2ludDY0Lm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEiwKB2V4YW1wbGUYCCADKBJCG8JIGAoWCg5zaW50NjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i0xQKDEZpeGVkMzJSdWxlcxJ/CgVjb25zdBgBIAEoB0JwwkhtCmsKDWZpeGVkMzIuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKGAQoCbHQYAiABKAdCeMJIdQpzCgpmaXhlZDMyLmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpgBCgNsdGUYAyABKAdCiAHCSIQBCoEBCgtmaXhlZDMyLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASgwcKAmd0GAQgASgHQvQGwkjwBgp2CgpmaXhlZDMyLmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqvAQoNZml4ZWQzMi5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtwEKF2ZpeGVkMzIuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvwEKDmZpeGVkMzIuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrHAQoYZml4ZWQzMi5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLPBwoDZ3RlGAUgASgHQr8Hwki7BwqEAQoLZml4ZWQzMi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq+AQoOZml4ZWQzMi5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxgEKGGZpeGVkMzIuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzgEKD2ZpeGVkMzIuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrWAQoZZml4ZWQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ7CgJpbhgGIAMoB0JvwkhsCmoKCmZpeGVkMzIuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnIKBm5vdF9pbhgHIAMoB0JiwkhfCl0KDmZpeGVkMzIubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLQoHZXhhbXBsZRgIIAMoB0IcwkgZChcKD2ZpeGVkMzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i0xQKDEZpeGVkNjRSdWxlcxJ/CgVjb25zdBgBIAEoBkJwwkhtCmsKDWZpeGVkNjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKGAQoCbHQYAiABKAZCeMJIdQpzCgpmaXhlZDY0Lmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpgBCgNsdGUYAyABKAZCiAHCSIQBCoEBCgtmaXhlZDY0Lmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASgwcKAmd0GAQgASgGQvQGwkjwBgp2CgpmaXhlZDY0Lmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqvAQoNZml4ZWQ2NC5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtwEKF2ZpeGVkNjQuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvwEKDmZpeGVkNjQuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrHAQoYZml4ZWQ2NC5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLPBwoDZ3RlGAUgASgGQr8Hwki7BwqEAQoLZml4ZWQ2NC5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq+AQoOZml4ZWQ2NC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxgEKGGZpeGVkNjQuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzgEKD2ZpeGVkNjQuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrWAQoZZml4ZWQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ7CgJpbhgGIAMoBkJvwkhsCmoKCmZpeGVkNjQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnIKBm5vdF9pbhgHIAMoBkJiwkhfCl0KDmZpeGVkNjQubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLQoHZXhhbXBsZRgIIAMoBkIcwkgZChcKD2ZpeGVkNjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i5RQKDVNGaXhlZDMyUnVsZXMSgAEKBWNvbnN0GAEgASgPQnHCSG4KbAoOc2ZpeGVkMzIuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKHAQoCbHQYAiABKA9CecJIdgp0CgtzZml4ZWQzMi5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKZAQoDbHRlGAMgASgPQokBwkiFAQqCAQoMc2ZpeGVkMzIubHRlGnIhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ211c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKIBwoCZ3QYBCABKA9C+QbCSPUGCncKC3NmaXhlZDMyLmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqwAQoOc2ZpeGVkMzIuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrgBChhzZml4ZWQzMi5ndF9sdF9leGNsdXNpdmUamwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrAAQoPc2ZpeGVkMzIuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrIAQoZc2ZpeGVkMzIuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES1AcKA2d0ZRgFIAEoD0LEB8JIwAcKhQEKDHNmaXhlZDMyLmd0ZRp1IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCr8BCg9zZml4ZWQzMi5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxwEKGXNmaXhlZDMyLmd0ZV9sdF9leGNsdXNpdmUaqQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs8BChBzZml4ZWQzMi5ndGVfbHRlGroBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtcBChpzZml4ZWQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ8CgJpbhgGIAMoD0JwwkhtCmsKC3NmaXhlZDMyLmluGlwhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJzCgZub3RfaW4YByADKA9CY8JIYApeCg9zZml4ZWQzMi5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIuCgdleGFtcGxlGAggAygPQh3CSBoKGAoQc2ZpeGVkMzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i5RQKDVNGaXhlZDY0UnVsZXMSgAEKBWNvbnN0GAEgASgQQnHCSG4KbAoOc2ZpeGVkNjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKHAQoCbHQYAiABKBBCecJIdgp0CgtzZml4ZWQ2NC5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKZAQoDbHRlGAMgASgQQokBwkiFAQqCAQoMc2ZpeGVkNjQubHRlGnIhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ211c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKIBwoCZ3QYBCABKBBC+QbCSPUGCncKC3NmaXhlZDY0Lmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqwAQoOc2ZpeGVkNjQuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrgBChhzZml4ZWQ2NC5ndF9sdF9leGNsdXNpdmUamwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrAAQoPc2ZpeGVkNjQuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrIAQoZc2ZpeGVkNjQuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES1AcKA2d0ZRgFIAEoEELEB8JIwAcKhQEKDHNmaXhlZDY0Lmd0ZRp1IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCr8BCg9zZml4ZWQ2NC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxwEKGXNmaXhlZDY0Lmd0ZV9sdF9leGNsdXNpdmUaqQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs8BChBzZml4ZWQ2NC5ndGVfbHRlGroBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtcBChpzZml4ZWQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ8CgJpbhgGIAMoEEJwwkhtCmsKC3NmaXhlZDY0LmluGlwhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJzCgZub3RfaW4YByADKBBCY8JIYApeCg9zZml4ZWQ2NC5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIuCgdleGFtcGxlGAggAygQQh3CSBoKGAoQc2ZpeGVkNjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iwAEKCUJvb2xSdWxlcxJ8CgVjb25zdBgBIAEoCEJtwkhqCmgKCmJvb2wuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxIqCgdleGFtcGxlGAIgAygIQhnCSBYKFAoMYm9vbC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAIi6jwKC1N0cmluZ1J1bGVzEoABCgVjb25zdBgBIAEoCUJxwkhuCmwKDHN0cmluZy5jb25zdBpcdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCBgJXNgJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycScQoDbGVuGBMgASgEQmTCSGEKXwoKc3RyaW5nLmxlbhpRdWludCh0aGlzLnNpemUoKSkgIT0gcnVsZXMubGVuID8gJ211c3QgYmUgJXMgY2hhcmFjdGVycycuZm9ybWF0KFtydWxlcy5sZW5dKSA6ICcnEokBCgdtaW5fbGVuGAIgASgEQnjCSHUKcwoOc3RyaW5nLm1pbl9sZW4aYXVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWluX2xlbiA/ICdtdXN0IGJlIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnLmZvcm1hdChbcnVsZXMubWluX2xlbl0pIDogJycSiAEKB21heF9sZW4YAyABKARCd8JIdApyCg5zdHJpbmcubWF4X2xlbhpgdWludCh0aGlzLnNpemUoKSkgPiBydWxlcy5tYXhfbGVuID8gJ211c3QgYmUgYXQgbW9zdCAlcyBjaGFyYWN0ZXJzJy5mb3JtYXQoW3J1bGVzLm1heF9sZW5dKSA6ICcnEosBCglsZW5fYnl0ZXMYFCABKARCeMJIdQpzChBzdHJpbmcubGVuX2J5dGVzGl91aW50KGJ5dGVzKHRoaXMpLnNpemUoKSkgIT0gcnVsZXMubGVuX2J5dGVzID8gJ211c3QgYmUgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubGVuX2J5dGVzXSkgOiAnJxKUAQoJbWluX2J5dGVzGAQgASgEQoABwkh9CnsKEHN0cmluZy5taW5fYnl0ZXMaZ3VpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9ieXRlcyA/ICdtdXN0IGJlIGF0IGxlYXN0ICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLm1pbl9ieXRlc10pIDogJycSkgEKCW1heF9ieXRlcxgFIAEoBEJ/wkh8CnoKEHN0cmluZy5tYXhfYnl0ZXMaZnVpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSA+IHJ1bGVzLm1heF9ieXRlcyA/ICdtdXN0IGJlIGF0IG1vc3QgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubWF4X2J5dGVzXSkgOiAnJxKHAQoHcGF0dGVybhgGIAEoCUJ2wkhzCnEKDnN0cmluZy5wYXR0ZXJuGl8hdGhpcy5tYXRjaGVzKHJ1bGVzLnBhdHRlcm4pID8gJ2RvZXMgbm90IG1hdGNoIHJlZ2V4IHBhdHRlcm4gYCVzYCcuZm9ybWF0KFtydWxlcy5wYXR0ZXJuXSkgOiAnJxJ+CgZwcmVmaXgYByABKAlCbsJIawppCg1zdHJpbmcucHJlZml4GlghdGhpcy5zdGFydHNXaXRoKHJ1bGVzLnByZWZpeCkgPyAnZG9lcyBub3QgaGF2ZSBwcmVmaXggYCVzYCcuZm9ybWF0KFtydWxlcy5wcmVmaXhdKSA6ICcnEnwKBnN1ZmZpeBgIIAEoCUJswkhpCmcKDXN0cmluZy5zdWZmaXgaViF0aGlzLmVuZHNXaXRoKHJ1bGVzLnN1ZmZpeCkgPyAnZG9lcyBub3QgaGF2ZSBzdWZmaXggYCVzYCcuZm9ybWF0KFtydWxlcy5zdWZmaXhdKSA6ICcnEooBCghjb250YWlucxgJIAEoCUJ4wkh1CnMKD3N0cmluZy5jb250YWlucxpgIXRoaXMuY29udGFpbnMocnVsZXMuY29udGFpbnMpID8gJ2RvZXMgbm90IGNvbnRhaW4gc3Vic3RyaW5nIGAlc2AnLmZvcm1hdChbcnVsZXMuY29udGFpbnNdKSA6ICcnEpEBCgxub3RfY29udGFpbnMYFyABKAlCe8JIeAp2ChNzdHJpbmcubm90X2NvbnRhaW5zGl90aGlzLmNvbnRhaW5zKHJ1bGVzLm5vdF9jb250YWlucykgPyAnY29udGFpbnMgc3Vic3RyaW5nIGAlc2AnLmZvcm1hdChbcnVsZXMubm90X2NvbnRhaW5zXSkgOiAnJxJ6CgJpbhgKIAMoCUJuwkhrCmkKCXN0cmluZy5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAsgAygJQmHCSF4KXAoNc3RyaW5nLm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEtkBCgVlbWFpbBgMIAEoCELHAcJIwwEKWwoMc3RyaW5nLmVtYWlsEh1tdXN0IGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcxosIXJ1bGVzLmVtYWlsIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0VtYWlsKCkKZAoSc3RyaW5nLmVtYWlsX2VtcHR5EjJ2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgZW1haWwgYWRkcmVzcxoaIXJ1bGVzLmVtYWlsIHx8IHRoaXMgIT0gJydIABLhAQoIaG9zdG5hbWUYDSABKAhCzAHCSMgBCl8KD3N0cmluZy5ob3N0bmFtZRIYbXVzdCBiZSBhIHZhbGlkIGhvc3RuYW1lGjIhcnVsZXMuaG9zdG5hbWUgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSG9zdG5hbWUoKQplChVzdHJpbmcuaG9zdG5hbWVfZW1wdHkSLXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBob3N0bmFtZRodIXJ1bGVzLmhvc3RuYW1lIHx8IHRoaXMgIT0gJydIABLBAQoCaXAYDiABKAhCsgHCSK4BCk8KCXN0cmluZy5pcBIabXVzdCBiZSBhIHZhbGlkIElQIGFkZHJlc3MaJiFydWxlcy5pcCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCgpClsKD3N0cmluZy5pcF9lbXB0eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIGFkZHJlc3MaFyFydWxlcy5pcCB8fCB0aGlzICE9ICcnSAAS0AEKBGlwdjQYDyABKAhCvwHCSLsBClYKC3N0cmluZy5pcHY0EhxtdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzGikhcnVsZXMuaXB2NCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCg0KQphChFzdHJpbmcuaXB2NF9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjQgYWRkcmVzcxoZIXJ1bGVzLmlwdjQgfHwgdGhpcyAhPSAnJ0gAEtABCgRpcHY2GBAgASgIQr8Bwki7AQpWCgtzdHJpbmcuaXB2NhIcbXVzdCBiZSBhIHZhbGlkIElQdjYgYWRkcmVzcxopIXJ1bGVzLmlwdjYgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXAoNikKYQoRc3RyaW5nLmlwdjZfZW1wdHkSMXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3MaGSFydWxlcy5pcHY2IHx8IHRoaXMgIT0gJydIABK5AQoDdXJpGBEgASgIQqkBwkilAQpLCgpzdHJpbmcudXJpEhNtdXN0IGJlIGEgdmFsaWQgVVJJGighcnVsZXMudXJpIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc1VyaSgpClYKEHN0cmluZy51cmlfZW1wdHkSKHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVUkkaGCFydWxlcy51cmkgfHwgdGhpcyAhPSAnJ0gAEmoKB3VyaV9yZWYYEiABKAhCV8JIVApSCg5zdHJpbmcudXJpX3JlZhIdbXVzdCBiZSBhIHZhbGlkIFVSSSBSZWZlcmVuY2UaISFydWxlcy51cmlfcmVmIHx8IHRoaXMuaXNVcmlSZWYoKUgAEokCCgdhZGRyZXNzGBUgASgIQvUBwkjxAQp7Cg5zdHJpbmcuYWRkcmVzcxInbXVzdCBiZSBhIHZhbGlkIGhvc3RuYW1lLCBvciBpcCBhZGRyZXNzGkAhcnVsZXMuYWRkcmVzcyB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0bmFtZSgpIHx8IHRoaXMuaXNJcCgpCnIKFHN0cmluZy5hZGRyZXNzX2VtcHR5Ejx2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgaG9zdG5hbWUsIG9yIGlwIGFkZHJlc3MaHCFydWxlcy5hZGRyZXNzIHx8IHRoaXMgIT0gJydIABKSAgoEdXVpZBgWIAEoCEKBAsJI/QEKnwEKC3N0cmluZy51dWlkEhRtdXN0IGJlIGEgdmFsaWQgVVVJRBp6IXJ1bGVzLnV1aWQgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLm1hdGNoZXMoJ15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kJykKWQoRc3RyaW5nLnV1aWRfZW1wdHkSKXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVVUlEGhkhcnVsZXMudXVpZCB8fCB0aGlzICE9ICcnSAAS6gEKBXR1dWlkGCEgASgIQtgBwkjUAQptCgxzdHJpbmcudHV1aWQSHG11c3QgYmUgYSB2YWxpZCB0cmltbWVkIFVVSUQaPyFydWxlcy50dXVpZCB8fCB0aGlzID09ICcnIHx8IHRoaXMubWF0Y2hlcygnXlswLTlhLWZBLUZdezMyfSQnKQpjChJzdHJpbmcudHV1aWRfZW1wdHkSMXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCB0cmltbWVkIFVVSUQaGiFydWxlcy50dXVpZCB8fCB0aGlzICE9ICcnSAASkAIKEWlwX3dpdGhfcHJlZml4bGVuGBogASgIQvIBwkjuAQpyChhzdHJpbmcuaXBfd2l0aF9wcmVmaXhsZW4SGW11c3QgYmUgYSB2YWxpZCBJUCBwcmVmaXgaOyFydWxlcy5pcF93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCgpCngKHnN0cmluZy5pcF93aXRoX3ByZWZpeGxlbl9lbXB0eRIudmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIHByZWZpeBomIXJ1bGVzLmlwX3dpdGhfcHJlZml4bGVuIHx8IHRoaXMgIT0gJydIABLJAgoTaXB2NF93aXRoX3ByZWZpeGxlbhgbIAEoCEKpAsJIpQIKjQEKGnN0cmluZy5pcHY0X3dpdGhfcHJlZml4bGVuEi9tdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBo+IXJ1bGVzLmlwdjRfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNCkKkgEKIHN0cmluZy5pcHY0X3dpdGhfcHJlZml4bGVuX2VtcHR5EkR2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBooIXJ1bGVzLmlwdjRfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyAhPSAnJ0gAEskCChNpcHY2X3dpdGhfcHJlZml4bGVuGBwgASgIQqkCwkilAgqNAQoac3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW4SL211c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGj4hcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCg2KQqSAQogc3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW5fZW1wdHkSRHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGighcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzICE9ICcnSAAS7AEKCWlwX3ByZWZpeBgdIAEoCELWAcJI0gEKZgoQc3RyaW5nLmlwX3ByZWZpeBIZbXVzdCBiZSBhIHZhbGlkIElQIHByZWZpeBo3IXJ1bGVzLmlwX3ByZWZpeCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCh0cnVlKQpoChZzdHJpbmcuaXBfcHJlZml4X2VtcHR5Ei52YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVAgcHJlZml4Gh4hcnVsZXMuaXBfcHJlZml4IHx8IHRoaXMgIT0gJydIABL9AQoLaXB2NF9wcmVmaXgYHiABKAhC5QHCSOEBCm8KEnN0cmluZy5pcHY0X3ByZWZpeBIbbXVzdCBiZSBhIHZhbGlkIElQdjQgcHJlZml4GjwhcnVsZXMuaXB2NF9wcmVmaXggfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNCwgdHJ1ZSkKbgoYc3RyaW5nLmlwdjRfcHJlZml4X2VtcHR5EjB2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBwcmVmaXgaICFydWxlcy5pcHY0X3ByZWZpeCB8fCB0aGlzICE9ICcnSAAS/QEKC2lwdjZfcHJlZml4GB8gASgIQuUBwkjhAQpvChJzdHJpbmcuaXB2Nl9wcmVmaXgSG211c3QgYmUgYSB2YWxpZCBJUHY2IHByZWZpeBo8IXJ1bGVzLmlwdjZfcHJlZml4IHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0lwUHJlZml4KDYsIHRydWUpCm4KGHN0cmluZy5pcHY2X3ByZWZpeF9lbXB0eRIwdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgcHJlZml4GiAhcnVsZXMuaXB2Nl9wcmVmaXggfHwgdGhpcyAhPSAnJ0gAEq8CCg1ob3N0X2FuZF9wb3J0GCAgASgIQpUCwkiRAgqTAQoUc3RyaW5nLmhvc3RfYW5kX3BvcnQSO211c3QgYmUgYSB2YWxpZCBob3N0IChob3N0bmFtZSBvciBJUCBhZGRyZXNzKSBhbmQgcG9ydCBwYWlyGj4hcnVsZXMuaG9zdF9hbmRfcG9ydCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0QW5kUG9ydCh0cnVlKQp5ChpzdHJpbmcuaG9zdF9hbmRfcG9ydF9lbXB0eRI3dmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGhvc3QgYW5kIHBvcnQgcGFpchoiIXJ1bGVzLmhvc3RfYW5kX3BvcnQgfHwgdGhpcyAhPSAnJ0gAEu4BCgR1bGlkGCMgASgIQt0BwkjZAQp8CgtzdHJpbmcudWxpZBIUbXVzdCBiZSBhIHZhbGlkIFVMSUQaVyFydWxlcy51bGlkIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCdeWzAtN11bMC05QS1ISktNTlAtVFYtWmEtaGprbW5wLXR2LXpdezI1fSQnKQpZChFzdHJpbmcudWxpZF9lbXB0eRIpdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIFVMSUQaGSFydWxlcy51bGlkIHx8IHRoaXMgIT0gJydIABLUAgoMcHJvdG9idWZfZnFuGCUgASgIQrsCwki3AgqvAQoTc3RyaW5nLnByb3RvYnVmX2ZxbhItbXVzdCBiZSBhIHZhbGlkIGZ1bGx5LXF1YWxpZmllZCBQcm90b2J1ZiBuYW1lGmkhcnVsZXMucHJvdG9idWZfZnFuIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCdeW0EtWmEtel9dW0EtWmEtel8wLTldKihcXC5bQS1aYS16X11bQS1aYS16XzAtOV0qKSokJykKggEKGXN0cmluZy5wcm90b2J1Zl9mcW5fZW1wdHkSQnZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBmdWxseS1xdWFsaWZpZWQgUHJvdG9idWYgbmFtZRohIXJ1bGVzLnByb3RvYnVmX2ZxbiB8fCB0aGlzICE9ICcnSAASkQMKEHByb3RvYnVmX2RvdF9mcW4YJiABKAhC9ALCSPACCs0BChdzdHJpbmcucHJvdG9idWZfZG90X2ZxbhJAbXVzdCBiZSBhIHZhbGlkIGZ1bGx5LXF1YWxpZmllZCBQcm90b2J1ZiBuYW1lIHdpdGggYSBsZWFkaW5nIGRvdBpwIXJ1bGVzLnByb3RvYnVmX2RvdF9mcW4gfHwgdGhpcyA9PSAnJyB8fCB0aGlzLm1hdGNoZXMoJ15cXC5bQS1aYS16X11bQS1aYS16XzAtOV0qKFxcLltBLVphLXpfXVtBLVphLXpfMC05XSopKiQnKQqdAQodc3RyaW5nLnByb3RvYnVmX2RvdF9mcW5fZW1wdHkSVXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBmdWxseS1xdWFsaWZpZWQgUHJvdG9idWYgbmFtZSB3aXRoIGEgbGVhZGluZyBkb3QaJSFydWxlcy5wcm90b2J1Zl9kb3RfZnFuIHx8IHRoaXMgIT0gJydIABKcBQoQd2VsbF9rbm93bl9yZWdleBgYIAEoDjIYLmJ1Zi52YWxpZGF0ZS5Lbm93blJlZ2V4QuUEwkjhBArqAQojc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX25hbWUSIG11c3QgYmUgYSB2YWxpZCBIVFRQIGhlYWRlciBuYW1lGqABcnVsZXMud2VsbF9rbm93bl9yZWdleCAhPSAxIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCFoYXMocnVsZXMuc3RyaWN0KSB8fCBydWxlcy5zdHJpY3QgPydeOj9bMC05YS16QS1aISMkJSZcJyorLS5eX3x+XHg2MF0rJCcgOideW15cdTAwMDBcdTAwMEFcdTAwMERdKyQnKQqNAQopc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX25hbWVfZW1wdHkSNXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBIVFRQIGhlYWRlciBuYW1lGilydWxlcy53ZWxsX2tub3duX3JlZ2V4ICE9IDEgfHwgdGhpcyAhPSAnJwrhAQokc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX3ZhbHVlEiFtdXN0IGJlIGEgdmFsaWQgSFRUUCBoZWFkZXIgdmFsdWUalQFydWxlcy53ZWxsX2tub3duX3JlZ2V4ICE9IDIgfHwgdGhpcy5tYXRjaGVzKCFoYXMocnVsZXMuc3RyaWN0KSB8fCBydWxlcy5zdHJpY3QgPydeW15cdTAwMDAtXHUwMDA4XHUwMDBBLVx1MDAxRlx1MDA3Rl0qJCcgOideW15cdTAwMDBcdTAwMEFcdTAwMERdKiQnKUgAEg4KBnN0cmljdBgZIAEoCBIsCgdleGFtcGxlGCIgAygJQhvCSBgKFgoOc3RyaW5nLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkIMCgp3ZWxsX2tub3duIt0RCgpCeXRlc1J1bGVzEnoKBWNvbnN0GAEgASgMQmvCSGgKZgoLYnl0ZXMuY29uc3QaV3RoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgYmUgJXgnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxJrCgNsZW4YDSABKARCXsJIWwpZCglieXRlcy5sZW4aTHVpbnQodGhpcy5zaXplKCkpICE9IHJ1bGVzLmxlbiA/ICdtdXN0IGJlICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLmxlbl0pIDogJycSgwEKB21pbl9sZW4YAiABKARCcsJIbwptCg1ieXRlcy5taW5fbGVuGlx1aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9sZW4gPyAnbXVzdCBiZSBhdCBsZWFzdCAlcyBieXRlcycuZm9ybWF0KFtydWxlcy5taW5fbGVuXSkgOiAnJxKCAQoHbWF4X2xlbhgDIAEoBEJxwkhuCmwKDWJ5dGVzLm1heF9sZW4aW3VpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2xlbiA/ICdtdXN0IGJlIGF0IG1vc3QgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubWF4X2xlbl0pIDogJycSigEKB3BhdHRlcm4YBCABKAlCecJIdgp0Cg1ieXRlcy5wYXR0ZXJuGmMhc3RyaW5nKHRoaXMpLm1hdGNoZXMocnVsZXMucGF0dGVybikgPyAnbXVzdCBtYXRjaCByZWdleCBwYXR0ZXJuIGAlc2AnLmZvcm1hdChbcnVsZXMucGF0dGVybl0pIDogJycSewoGcHJlZml4GAUgASgMQmvCSGgKZgoMYnl0ZXMucHJlZml4GlYhdGhpcy5zdGFydHNXaXRoKHJ1bGVzLnByZWZpeCkgPyAnZG9lcyBub3QgaGF2ZSBwcmVmaXggJXgnLmZvcm1hdChbcnVsZXMucHJlZml4XSkgOiAnJxJ5CgZzdWZmaXgYBiABKAxCacJIZgpkCgxieXRlcy5zdWZmaXgaVCF0aGlzLmVuZHNXaXRoKHJ1bGVzLnN1ZmZpeCkgPyAnZG9lcyBub3QgaGF2ZSBzdWZmaXggJXgnLmZvcm1hdChbcnVsZXMuc3VmZml4XSkgOiAnJxJ9Cghjb250YWlucxgHIAEoDEJrwkhoCmYKDmJ5dGVzLmNvbnRhaW5zGlQhdGhpcy5jb250YWlucyhydWxlcy5jb250YWlucykgPyAnZG9lcyBub3QgY29udGFpbiAleCcuZm9ybWF0KFtydWxlcy5jb250YWluc10pIDogJycSoQEKAmluGAggAygMQpQBwkiQAQqNAQoIYnl0ZXMuaW4agAFnZXRGaWVsZChydWxlcywgJ2luJykuc2l6ZSgpID4gMCAmJiAhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJwCgZub3RfaW4YCSADKAxCYMJIXQpbCgxieXRlcy5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxLlAQoCaXAYCiABKAhC1gHCSNIBCm4KCGJ5dGVzLmlwEhptdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcxpGIXJ1bGVzLmlwIHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gNCB8fCB0aGlzLnNpemUoKSA9PSAxNgpgCg5ieXRlcy5pcF9lbXB0eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIGFkZHJlc3MaHSFydWxlcy5pcCB8fCB0aGlzLnNpemUoKSAhPSAwSAAS3gEKBGlwdjQYCyABKAhCzQHCSMkBCl8KCmJ5dGVzLmlwdjQSHG11c3QgYmUgYSB2YWxpZCBJUHY0IGFkZHJlc3MaMyFydWxlcy5pcHY0IHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gNApmChBieXRlcy5pcHY0X2VtcHR5EjF2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzGh8hcnVsZXMuaXB2NCB8fCB0aGlzLnNpemUoKSAhPSAwSAAS3wEKBGlwdjYYDCABKAhCzgHCSMoBCmAKCmJ5dGVzLmlwdjYSHG11c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3MaNCFydWxlcy5pcHY2IHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gMTYKZgoQYnl0ZXMuaXB2Nl9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgYWRkcmVzcxofIXJ1bGVzLmlwdjYgfHwgdGhpcy5zaXplKCkgIT0gMEgAEs8BCgR1dWlkGA8gASgIQr4Bwki6AQpYCgpieXRlcy51dWlkEhRtdXN0IGJlIGEgdmFsaWQgVVVJRBo0IXJ1bGVzLnV1aWQgfHwgdGhpcy5zaXplKCkgPT0gMCB8fCB0aGlzLnNpemUoKSA9PSAxNgpeChBieXRlcy51dWlkX2VtcHR5Eil2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgVVVJRBofIXJ1bGVzLnV1aWQgfHwgdGhpcy5zaXplKCkgIT0gMEgAEisKB2V4YW1wbGUYDiADKAxCGsJIFwoVCg1ieXRlcy5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCDAoKd2VsbF9rbm93biLBAwoJRW51bVJ1bGVzEnwKBWNvbnN0GAEgASgFQm3CSGoKaAoKZW51bS5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEhQKDGRlZmluZWRfb25seRgCIAEoCBJ4CgJpbhgDIAMoBUJswkhpCmcKB2VudW0uaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEm8KBm5vdF9pbhgEIAMoBUJfwkhcCloKC2VudW0ubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSKgoHZXhhbXBsZRgFIAMoBUIZwkgWChQKDGVudW0uZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACIu0DCg1SZXBlYXRlZFJ1bGVzEpYBCgltaW5faXRlbXMYASABKARCggHCSH8KfQoScmVwZWF0ZWQubWluX2l0ZW1zGmd1aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9pdGVtcyA/ICdtdXN0IGNvbnRhaW4gYXQgbGVhc3QgJWQgaXRlbShzKScuZm9ybWF0KFtydWxlcy5taW5faXRlbXNdKSA6ICcnEpwBCgltYXhfaXRlbXMYAiABKARCiAHCSIQBCoEBChJyZXBlYXRlZC5tYXhfaXRlbXMaa3VpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2l0ZW1zID8gJ211c3QgY29udGFpbiBubyBtb3JlIHRoYW4gJXMgaXRlbShzKScuZm9ybWF0KFtydWxlcy5tYXhfaXRlbXNdKSA6ICcnEnAKBnVuaXF1ZRgDIAEoCEJgwkhdClsKD3JlcGVhdGVkLnVuaXF1ZRIocmVwZWF0ZWQgdmFsdWUgbXVzdCBjb250YWluIHVuaXF1ZSBpdGVtcxoeIXJ1bGVzLnVuaXF1ZSB8fCB0aGlzLnVuaXF1ZSgpEicKBWl0ZW1zGAQgASgLMhguYnVmLnZhbGlkYXRlLkZpZWxkUnVsZXMqCQjoBxCAgICAAiKKAwoITWFwUnVsZXMSjwEKCW1pbl9wYWlycxgBIAEoBEJ8wkh5CncKDW1hcC5taW5fcGFpcnMaZnVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWluX3BhaXJzID8gJ21hcCBtdXN0IGJlIGF0IGxlYXN0ICVkIGVudHJpZXMnLmZvcm1hdChbcnVsZXMubWluX3BhaXJzXSkgOiAnJxKOAQoJbWF4X3BhaXJzGAIgASgEQnvCSHgKdgoNbWFwLm1heF9wYWlycxpldWludCh0aGlzLnNpemUoKSkgPiBydWxlcy5tYXhfcGFpcnMgPyAnbWFwIG11c3QgYmUgYXQgbW9zdCAlZCBlbnRyaWVzJy5mb3JtYXQoW3J1bGVzLm1heF9wYWlyc10pIDogJycSJgoEa2V5cxgEIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzEigKBnZhbHVlcxgFIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzKgkI6AcQgICAgAIiJgoIQW55UnVsZXMSCgoCaW4YAiADKAkSDgoGbm90X2luGAMgAygJIr8WCg1EdXJhdGlvblJ1bGVzEpsBCgVjb25zdBgCIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkJxwkhuCmwKDmR1cmF0aW9uLmNvbnN0Glp0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICdtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSogEKAmx0GAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQnnCSHYKdAoLZHVyYXRpb24ubHQaZSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAAStAEKA2x0ZRgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkKJAcJIhQEKggEKDGR1cmF0aW9uLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASowcKAmd0GAUgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQvkGwkj1Bgp3CgtkdXJhdGlvbi5ndBpoIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKsAEKDmR1cmF0aW9uLmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq4AQoYZHVyYXRpb24uZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKwAEKD2R1cmF0aW9uLmd0X2x0ZRqsAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKyAEKGWR1cmF0aW9uLmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEu8HCgNndGUYBiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CxAfCSMAHCoUBCgxkdXJhdGlvbi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq/AQoPZHVyYXRpb24uZ3RlX2x0GqsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCscBChlkdXJhdGlvbi5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrPAQoQZHVyYXRpb24uZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrXAQoaZHVyYXRpb24uZ3RlX2x0ZV9leGNsdXNpdmUauAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESlwEKAmluGAcgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQnDCSG0KawoLZHVyYXRpb24uaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEo4BCgZub3RfaW4YCCADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CY8JIYApeCg9kdXJhdGlvbi5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxJJCgdleGFtcGxlGAkgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQh3CSBoKGAoQZHVyYXRpb24uZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i6wUKDkZpZWxkTWFza1J1bGVzErkBCgVjb25zdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCjQHCSIkBCoYBChBmaWVsZF9tYXNrLmNvbnN0GnJ0aGlzLnBhdGhzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKS5wYXRocyA/ICdtdXN0IGVxdWFsIHBhdGhzICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKS5wYXRoc10pIDogJycS0wEKAmluGAIgAygJQsYBwkjCAQq/AQoNZmllbGRfbWFzay5pbhqtASF0aGlzLnBhdGhzLmFsbChwLCBwIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSB8fCBnZXRGaWVsZChydWxlcywgJ2luJykuZXhpc3RzKGYsIHAuc3RhcnRzV2l0aChmKycuJykpKSA/ICdtdXN0IG9ubHkgY29udGFpbiBwYXRocyBpbiAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEu0BCgZub3RfaW4YAyADKAlC3AHCSNgBCtUBChFmaWVsZF9tYXNrLm5vdF9pbhq/ASF0aGlzLnBhdGhzLmFsbChwLCAhKHAgaW4gZ2V0RmllbGQocnVsZXMsICdub3RfaW4nKSB8fCBnZXRGaWVsZChydWxlcywgJ25vdF9pbicpLmV4aXN0cyhmLCBwLnN0YXJ0c1dpdGgoZisnLicpKSkpID8gJ211c3Qgbm90IGNvbnRhaW4gYW55IHBhdGhzIGluICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnbm90X2luJyldKSA6ICcnEkwKB2V4YW1wbGUYBCADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQh/CSBwKGgoSZmllbGRfbWFzay5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAIisBcKDlRpbWVzdGFtcFJ1bGVzEp0BCgVjb25zdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCcsJIbwptCg90aW1lc3RhbXAuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKkAQoCbHQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQnrCSHcKdQoMdGltZXN0YW1wLmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAErYBCgNsdGUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQooBwkiGAQqDAQoNdGltZXN0YW1wLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASZgoGbHRfbm93GAcgASgIQlTCSFEKTwoQdGltZXN0YW1wLmx0X25vdxo7KHJ1bGVzLmx0X25vdyAmJiB0aGlzID4gbm93KSA/ICdtdXN0IGJlIGxlc3MgdGhhbiBub3cnIDogJydIABKpBwoCZ3QYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQv4Gwkj6Bgp4Cgx0aW1lc3RhbXAuZ3QaaCFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrEBCg90aW1lc3RhbXAuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrkBChl0aW1lc3RhbXAuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKwQEKEHRpbWVzdGFtcC5ndF9sdGUarAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCskBChp0aW1lc3RhbXAuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES9QcKA2d0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCyQfCSMUHCoYBCg10aW1lc3RhbXAuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKwAEKEHRpbWVzdGFtcC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKyAEKGnRpbWVzdGFtcC5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrQAQoRdGltZXN0YW1wLmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK2AEKG3RpbWVzdGFtcC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJpCgZndF9ub3cYCCABKAhCV8JIVApSChB0aW1lc3RhbXAuZ3Rfbm93Gj4ocnVsZXMuZ3Rfbm93ICYmIHRoaXMgPCBub3cpID8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG5vdycgOiAnJ0gBErEBCgZ3aXRoaW4YCSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25ChQHCSIEBCn8KEHRpbWVzdGFtcC53aXRoaW4aa3RoaXMgPCBub3ctcnVsZXMud2l0aGluIHx8IHRoaXMgPiBub3crcnVsZXMud2l0aGluID8gJ211c3QgYmUgd2l0aGluICVzIG9mIG5vdycuZm9ybWF0KFtydWxlcy53aXRoaW5dKSA6ICcnEksKB2V4YW1wbGUYCiADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQh7CSBsKGQoRdGltZXN0YW1wLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIjkKClZpb2xhdGlvbnMSKwoKdmlvbGF0aW9ucxgBIAMoCzIXLmJ1Zi52YWxpZGF0ZS5WaW9sYXRpb24inwEKCVZpb2xhdGlvbhImCgVmaWVsZBgFIAEoCzIXLmJ1Zi52YWxpZGF0ZS5GaWVsZFBhdGgSJQoEcnVsZRgGIAEoCzIXLmJ1Zi52YWxpZGF0ZS5GaWVsZFBhdGgSDwoHcnVsZV9pZBgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEg8KB2Zvcl9rZXkYBCABKAhKBAgBEAJSCmZpZWxkX3BhdGgiPQoJRmllbGRQYXRoEjAKCGVsZW1lbnRzGAEgAygLMh4uYnVmLnZhbGlkYXRlLkZpZWxkUGF0aEVsZW1lbnQi6QIKEEZpZWxkUGF0aEVsZW1lbnQSFAoMZmllbGRfbnVtYmVyGAEgASgFEhIKCmZpZWxkX25hbWUYAiABKAkSPgoKZmllbGRfdHlwZRgDIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlEjwKCGtleV90eXBlGAQgASgOMiouZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGUSPgoKdmFsdWVfdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlEg8KBWluZGV4GAYgASgESAASEgoIYm9vbF9rZXkYByABKAhIABIRCgdpbnRfa2V5GAggASgDSAASEgoIdWludF9rZXkYCSABKARIABIUCgpzdHJpbmdfa2V5GAogASgJSABCCwoJc3Vic2NyaXB0KqEBCgZJZ25vcmUSFgoSSUdOT1JFX1VOU1BFQ0lGSUVEEAASGAoUSUdOT1JFX0lGX1pFUk9fVkFMVUUQARIRCg1JR05PUkVfQUxXQVlTEAMiBAgCEAIqDElHTk9SRV9FTVBUWSoOSUdOT1JFX0RFRkFVTFQqF0lHTk9SRV9JRl9ERUZBVUxUX1ZBTFVFKhVJR05PUkVfSUZfVU5QT1BVTEFURUQqbgoKS25vd25SZWdleBIbChdLTk9XTl9SRUdFWF9VTlNQRUNJRklFRBAAEiAKHEtOT1dOX1JFR0VYX0hUVFBfSEVBREVSX05BTUUQARIhCh1LTk9XTl9SRUdFWF9IVFRQX0hFQURFUl9WQUxVRRACOlYKB21lc3NhZ2USHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYhwkgASgLMhouYnVmLnZhbGlkYXRlLk1lc3NhZ2VSdWxlc1IHbWVzc2FnZTpOCgVvbmVvZhIdLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnMYhwkgASgLMhguYnVmLnZhbGlkYXRlLk9uZW9mUnVsZXNSBW9uZW9mOk4KBWZpZWxkEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxiHCSABKAsyGC5idWYudmFsaWRhdGUuRmllbGRSdWxlc1IFZmllbGQ6XQoKcHJlZGVmaW5lZBIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYiAkgASgLMh0uYnVmLnZhbGlkYXRlLlByZWRlZmluZWRSdWxlc1IKcHJlZGVmaW5lZEJuChJidWlsZC5idWYudmFsaWRhdGVCDVZhbGlkYXRlUHJvdG9QAVpHYnVmLmJ1aWxkL2dlbi9nby9idWZidWlsZC9wcm90b3ZhbGlkYXRlL3Byb3RvY29sYnVmZmVycy9nby9idWYvdmFsaWRhdGU", [file_google_protobuf_descriptor, file_google_protobuf_duration, file_google_protobuf_field_mask, file_google_protobuf_timestamp13]);
899
+ var file_buf_validate_validate = /* @__PURE__ */ fileDesc17("ChtidWYvdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8SDGJ1Zi52YWxpZGF0ZSI3CgRSdWxlEgoKAmlkGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKZXhwcmVzc2lvbhgDIAEoCSKGAQoMTWVzc2FnZVJ1bGVzEhYKDmNlbF9leHByZXNzaW9uGAUgAygJEh8KA2NlbBgDIAMoCzISLmJ1Zi52YWxpZGF0ZS5SdWxlEi0KBW9uZW9mGAQgAygLMh4uYnVmLnZhbGlkYXRlLk1lc3NhZ2VPbmVvZlJ1bGVKBAgBEAJSCGRpc2FibGVkIjQKEE1lc3NhZ2VPbmVvZlJ1bGUSDgoGZmllbGRzGAEgAygJEhAKCHJlcXVpcmVkGAIgASgIIh4KCk9uZW9mUnVsZXMSEAoIcmVxdWlyZWQYASABKAgiiwkKCkZpZWxkUnVsZXMSFgoOY2VsX2V4cHJlc3Npb24YHSADKAkSHwoDY2VsGBcgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGUSEAoIcmVxdWlyZWQYGSABKAgSJAoGaWdub3JlGBsgASgOMhQuYnVmLnZhbGlkYXRlLklnbm9yZRIpCgVmbG9hdBgBIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GbG9hdFJ1bGVzSAASKwoGZG91YmxlGAIgASgLMhkuYnVmLnZhbGlkYXRlLkRvdWJsZVJ1bGVzSAASKQoFaW50MzIYAyABKAsyGC5idWYudmFsaWRhdGUuSW50MzJSdWxlc0gAEikKBWludDY0GAQgASgLMhguYnVmLnZhbGlkYXRlLkludDY0UnVsZXNIABIrCgZ1aW50MzIYBSABKAsyGS5idWYudmFsaWRhdGUuVUludDMyUnVsZXNIABIrCgZ1aW50NjQYBiABKAsyGS5idWYudmFsaWRhdGUuVUludDY0UnVsZXNIABIrCgZzaW50MzIYByABKAsyGS5idWYudmFsaWRhdGUuU0ludDMyUnVsZXNIABIrCgZzaW50NjQYCCABKAsyGS5idWYudmFsaWRhdGUuU0ludDY0UnVsZXNIABItCgdmaXhlZDMyGAkgASgLMhouYnVmLnZhbGlkYXRlLkZpeGVkMzJSdWxlc0gAEi0KB2ZpeGVkNjQYCiABKAsyGi5idWYudmFsaWRhdGUuRml4ZWQ2NFJ1bGVzSAASLwoIc2ZpeGVkMzIYCyABKAsyGy5idWYudmFsaWRhdGUuU0ZpeGVkMzJSdWxlc0gAEi8KCHNmaXhlZDY0GAwgASgLMhsuYnVmLnZhbGlkYXRlLlNGaXhlZDY0UnVsZXNIABInCgRib29sGA0gASgLMhcuYnVmLnZhbGlkYXRlLkJvb2xSdWxlc0gAEisKBnN0cmluZxgOIAEoCzIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlc0gAEikKBWJ5dGVzGA8gASgLMhguYnVmLnZhbGlkYXRlLkJ5dGVzUnVsZXNIABInCgRlbnVtGBAgASgLMhcuYnVmLnZhbGlkYXRlLkVudW1SdWxlc0gAEi8KCHJlcGVhdGVkGBIgASgLMhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXNIABIlCgNtYXAYEyABKAsyFi5idWYudmFsaWRhdGUuTWFwUnVsZXNIABIlCgNhbnkYFCABKAsyFi5idWYudmFsaWRhdGUuQW55UnVsZXNIABIvCghkdXJhdGlvbhgVIAEoCzIbLmJ1Zi52YWxpZGF0ZS5EdXJhdGlvblJ1bGVzSAASMgoKZmllbGRfbWFzaxgcIAEoCzIcLmJ1Zi52YWxpZGF0ZS5GaWVsZE1hc2tSdWxlc0gAEjEKCXRpbWVzdGFtcBgWIAEoCzIcLmJ1Zi52YWxpZGF0ZS5UaW1lc3RhbXBSdWxlc0gAQgYKBHR5cGVKBAgYEBlKBAgaEBtSB3NraXBwZWRSDGlnbm9yZV9lbXB0eSJVCg9QcmVkZWZpbmVkUnVsZXMSHwoDY2VsGAEgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGVKBAgYEBlKBAgaEBtSB3NraXBwZWRSDGlnbm9yZV9lbXB0eSL4FgoKRmxvYXRSdWxlcxJ9CgVjb25zdBgBIAEoAkJuwkhrCmkKC2Zsb2F0LmNvbnN0Glp0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICdtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSmQEKAmx0GAIgASgCQooBwkiGAQqDAQoIZmxvYXQubHQadyFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQpPyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASqQEKA2x0ZRgDIAEoAkKZAcJIlQEKkgEKCWZsb2F0Lmx0ZRqEASFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUpPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEtAHCgJndBgEIAEoAkLBB8JIvQcKhgEKCGZsb2F0Lmd0GnohaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq9AQoLZmxvYXQuZ3RfbHQarQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrHAQoVZmxvYXQuZ3RfbHRfZXhjbHVzaXZlGq0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKzQEKDGZsb2F0Lmd0X2x0ZRq8AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCtcBChZmbG9hdC5ndF9sdGVfZXhjbHVzaXZlGrwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARKcCAoDZ3RlGAUgASgCQowIwkiICAqVAQoJZmxvYXQuZ3RlGocBIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCswBCgxmbG9hdC5ndGVfbHQauwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtYBChZmbG9hdC5ndGVfbHRfZXhjbHVzaXZlGrsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrcAQoNZmxvYXQuZ3RlX2x0ZRrKAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK5gEKF2Zsb2F0Lmd0ZV9sdGVfZXhjbHVzaXZlGsoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEnkKAmluGAYgAygCQm3CSGoKaAoIZmxvYXQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnAKBm5vdF9pbhgHIAMoAkJgwkhdClsKDGZsb2F0Lm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEm8KBmZpbml0ZRgIIAEoCEJfwkhcCloKDGZsb2F0LmZpbml0ZRpKcnVsZXMuZmluaXRlID8gKHRoaXMuaXNOYW4oKSB8fCB0aGlzLmlzSW5mKCkgPyAnbXVzdCBiZSBmaW5pdGUnIDogJycpIDogJycSKwoHZXhhbXBsZRgJIAMoAkIawkgXChUKDWZsb2F0LmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIooXCgtEb3VibGVSdWxlcxJ+CgVjb25zdBgBIAEoAUJvwkhsCmoKDGRvdWJsZS5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEpoBCgJsdBgCIAEoAUKLAcJIhwEKhAEKCWRvdWJsZS5sdBp3IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCk/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKqAQoDbHRlGAMgASgBQpoBwkiWAQqTAQoKZG91YmxlLmx0ZRqEASFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUpPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEtUHCgJndBgEIAEoAULGB8JIwgcKhwEKCWRvdWJsZS5ndBp6IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKvgEKDGRvdWJsZS5ndF9sdBqtAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCsgBChZkb3VibGUuZ3RfbHRfZXhjbHVzaXZlGq0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKzgEKDWRvdWJsZS5ndF9sdGUavAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrYAQoXZG91YmxlLmd0X2x0ZV9leGNsdXNpdmUavAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEqEICgNndGUYBSABKAFCkQjCSI0ICpYBCgpkb3VibGUuZ3RlGocBIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCs0BCg1kb3VibGUuZ3RlX2x0GrsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrXAQoXZG91YmxlLmd0ZV9sdF9leGNsdXNpdmUauwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCt0BCg5kb3VibGUuZ3RlX2x0ZRrKAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK5wEKGGRvdWJsZS5ndGVfbHRlX2V4Y2x1c2l2ZRrKAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ6CgJpbhgGIAMoAUJuwkhrCmkKCWRvdWJsZS5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAcgAygBQmHCSF4KXAoNZG91YmxlLm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEnAKBmZpbml0ZRgIIAEoCEJgwkhdClsKDWRvdWJsZS5maW5pdGUaSnJ1bGVzLmZpbml0ZSA/ICh0aGlzLmlzTmFuKCkgfHwgdGhpcy5pc0luZigpID8gJ211c3QgYmUgZmluaXRlJyA6ICcnKSA6ICcnEiwKB2V4YW1wbGUYCSADKAFCG8JIGAoWCg5kb3VibGUuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4isBQKCkludDMyUnVsZXMSfQoFY29uc3QYASABKAVCbsJIawppCgtpbnQzMi5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEoQBCgJsdBgCIAEoBUJ2wkhzCnEKCGludDMyLmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpUBCgNsdGUYAyABKAVChQHCSIEBCn8KCWludDMyLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAAS+QYKAmd0GAQgASgFQuoGwkjmBgp0CghpbnQzMi5ndBpoIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKrQEKC2ludDMyLmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq1AQoVaW50MzIuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvQEKDGludDMyLmd0X2x0ZRqsAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKxQEKFmludDMyLmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEsUHCgNndGUYBSABKAVCtQfCSLEHCoIBCglpbnQzMi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq8AQoMaW50MzIuZ3RlX2x0GqsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCsQBChZpbnQzMi5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrMAQoNaW50MzIuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrUAQoXaW50MzIuZ3RlX2x0ZV9leGNsdXNpdmUauAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESeQoCaW4YBiADKAVCbcJIagpoCghpbnQzMi5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScAoGbm90X2luGAcgAygFQmDCSF0KWwoMaW50MzIubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSKwoHZXhhbXBsZRgIIAMoBUIawkgXChUKDWludDMyLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIrAUCgpJbnQ2NFJ1bGVzEn0KBWNvbnN0GAEgASgDQm7CSGsKaQoLaW50NjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKEAQoCbHQYAiABKANCdsJIcwpxCghpbnQ2NC5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKVAQoDbHRlGAMgASgDQoUBwkiBAQp/CglpbnQ2NC5sdGUaciFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEvkGCgJndBgEIAEoA0LqBsJI5gYKdAoIaW50NjQuZ3QaaCFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCq0BCgtpbnQ2NC5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtQEKFWludDY0Lmd0X2x0X2V4Y2x1c2l2ZRqbAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr0BCgxpbnQ2NC5ndF9sdGUarAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCsUBChZpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLFBwoDZ3RlGAUgASgDQrUHwkixBwqCAQoJaW50NjQuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKvAEKDGludDY0Lmd0ZV9sdBqrAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrEAQoWaW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzAEKDWludDY0Lmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK1AEKF2ludDY0Lmd0ZV9sdGVfZXhjbHVzaXZlGrgBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEnkKAmluGAYgAygDQm3CSGoKaAoIaW50NjQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnAKBm5vdF9pbhgHIAMoA0JgwkhdClsKDGludDY0Lm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEisKB2V4YW1wbGUYCSADKANCGsJIFwoVCg1pbnQ2NC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiLCFAoLVUludDMyUnVsZXMSfgoFY29uc3QYASABKA1Cb8JIbApqCgx1aW50MzIuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKFAQoCbHQYAiABKA1Cd8JIdApyCgl1aW50MzIubHQaZSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASlwEKA2x0ZRgDIAEoDUKHAcJIgwEKgAEKCnVpbnQzMi5sdGUaciFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEv4GCgJndBgEIAEoDULvBsJI6wYKdQoJdWludDMyLmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwquAQoMdWludDMyLmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq2AQoWdWludDMyLmd0X2x0X2V4Y2x1c2l2ZRqbAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr4BCg11aW50MzIuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrGAQoXdWludDMyLmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEsoHCgNndGUYBSABKA1CugfCSLYHCoMBCgp1aW50MzIuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKvQEKDXVpbnQzMi5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxQEKF3VpbnQzMi5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrNAQoOdWludDMyLmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK1QEKGHVpbnQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ6CgJpbhgGIAMoDUJuwkhrCmkKCXVpbnQzMi5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAcgAygNQmHCSF4KXAoNdWludDMyLm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEiwKB2V4YW1wbGUYCCADKA1CG8JIGAoWCg51aW50MzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iwhQKC1VJbnQ2NFJ1bGVzEn4KBWNvbnN0GAEgASgEQm/CSGwKagoMdWludDY0LmNvbnN0Glp0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICdtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycShQEKAmx0GAIgASgEQnfCSHQKcgoJdWludDY0Lmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpcBCgNsdGUYAyABKARChwHCSIMBCoABCgp1aW50NjQubHRlGnIhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ211c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABL+BgoCZ3QYBCABKARC7wbCSOsGCnUKCXVpbnQ2NC5ndBpoIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKrgEKDHVpbnQ2NC5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtgEKFnVpbnQ2NC5ndF9sdF9leGNsdXNpdmUamwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq+AQoNdWludDY0Lmd0X2x0ZRqsAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKxgEKF3VpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLKBwoDZ3RlGAUgASgEQroHwki2BwqDAQoKdWludDY0Lmd0ZRp1IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCr0BCg11aW50NjQuZ3RlX2x0GqsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCsUBChd1aW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzQEKDnVpbnQ2NC5ndGVfbHRlGroBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtUBChh1aW50NjQuZ3RlX2x0ZV9leGNsdXNpdmUauAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESegoCaW4YBiADKARCbsJIawppCgl1aW50NjQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnEKBm5vdF9pbhgHIAMoBEJhwkheClwKDXVpbnQ2NC5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIsCgdleGFtcGxlGAggAygEQhvCSBgKFgoOdWludDY0LmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIsIUCgtTSW50MzJSdWxlcxJ+CgVjb25zdBgBIAEoEUJvwkhsCmoKDHNpbnQzMi5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEoUBCgJsdBgCIAEoEUJ3wkh0CnIKCXNpbnQzMi5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKXAQoDbHRlGAMgASgRQocBwkiDAQqAAQoKc2ludDMyLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAAS/gYKAmd0GAQgASgRQu8GwkjrBgp1CglzaW50MzIuZ3QaaCFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCq4BCgxzaW50MzIuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrYBChZzaW50MzIuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvgEKDXNpbnQzMi5ndF9sdGUarAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCsYBChdzaW50MzIuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAESygcKA2d0ZRgFIAEoEUK6B8JItgcKgwEKCnNpbnQzMi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq9AQoNc2ludDMyLmd0ZV9sdBqrAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrFAQoXc2ludDMyLmd0ZV9sdF9leGNsdXNpdmUaqQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs0BCg5zaW50MzIuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrVAQoYc2ludDMyLmd0ZV9sdGVfZXhjbHVzaXZlGrgBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEnoKAmluGAYgAygRQm7CSGsKaQoJc2ludDMyLmluGlwhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJxCgZub3RfaW4YByADKBFCYcJIXgpcCg1zaW50MzIubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLAoHZXhhbXBsZRgIIAMoEUIbwkgYChYKDnNpbnQzMi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiLCFAoLU0ludDY0UnVsZXMSfgoFY29uc3QYASABKBJCb8JIbApqCgxzaW50NjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKFAQoCbHQYAiABKBJCd8JIdApyCglzaW50NjQubHQaZSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASlwEKA2x0ZRgDIAEoEkKHAcJIgwEKgAEKCnNpbnQ2NC5sdGUaciFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAnbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEv4GCgJndBgEIAEoEkLvBsJI6wYKdQoJc2ludDY0Lmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwquAQoMc2ludDY0Lmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq2AQoWc2ludDY0Lmd0X2x0X2V4Y2x1c2l2ZRqbAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr4BCg1zaW50NjQuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrGAQoXc2ludDY0Lmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEsoHCgNndGUYBSABKBJCugfCSLYHCoMBCgpzaW50NjQuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKvQEKDXNpbnQ2NC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxQEKF3NpbnQ2NC5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrNAQoOc2ludDY0Lmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK1QEKGHNpbnQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ6CgJpbhgGIAMoEkJuwkhrCmkKCXNpbnQ2NC5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAcgAygSQmHCSF4KXAoNc2ludDY0Lm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEiwKB2V4YW1wbGUYCCADKBJCG8JIGAoWCg5zaW50NjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i0xQKDEZpeGVkMzJSdWxlcxJ/CgVjb25zdBgBIAEoB0JwwkhtCmsKDWZpeGVkMzIuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKGAQoCbHQYAiABKAdCeMJIdQpzCgpmaXhlZDMyLmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpgBCgNsdGUYAyABKAdCiAHCSIQBCoEBCgtmaXhlZDMyLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASgwcKAmd0GAQgASgHQvQGwkjwBgp2CgpmaXhlZDMyLmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqvAQoNZml4ZWQzMi5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtwEKF2ZpeGVkMzIuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvwEKDmZpeGVkMzIuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrHAQoYZml4ZWQzMi5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLPBwoDZ3RlGAUgASgHQr8Hwki7BwqEAQoLZml4ZWQzMi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq+AQoOZml4ZWQzMi5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxgEKGGZpeGVkMzIuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzgEKD2ZpeGVkMzIuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrWAQoZZml4ZWQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ7CgJpbhgGIAMoB0JvwkhsCmoKCmZpeGVkMzIuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnIKBm5vdF9pbhgHIAMoB0JiwkhfCl0KDmZpeGVkMzIubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLQoHZXhhbXBsZRgIIAMoB0IcwkgZChcKD2ZpeGVkMzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i0xQKDEZpeGVkNjRSdWxlcxJ/CgVjb25zdBgBIAEoBkJwwkhtCmsKDWZpeGVkNjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKGAQoCbHQYAiABKAZCeMJIdQpzCgpmaXhlZDY0Lmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpgBCgNsdGUYAyABKAZCiAHCSIQBCoEBCgtmaXhlZDY0Lmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASgwcKAmd0GAQgASgGQvQGwkjwBgp2CgpmaXhlZDY0Lmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqvAQoNZml4ZWQ2NC5ndF9sdBqdAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKtwEKF2ZpeGVkNjQuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvwEKDmZpeGVkNjQuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrHAQoYZml4ZWQ2NC5ndF9sdGVfZXhjbHVzaXZlGqoBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLPBwoDZ3RlGAUgASgGQr8Hwki7BwqEAQoLZml4ZWQ2NC5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq+AQoOZml4ZWQ2NC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxgEKGGZpeGVkNjQuZ3RlX2x0X2V4Y2x1c2l2ZRqpAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzgEKD2ZpeGVkNjQuZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrWAQoZZml4ZWQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ7CgJpbhgGIAMoBkJvwkhsCmoKCmZpeGVkNjQuaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnIKBm5vdF9pbhgHIAMoBkJiwkhfCl0KDmZpeGVkNjQubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLQoHZXhhbXBsZRgIIAMoBkIcwkgZChcKD2ZpeGVkNjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i5RQKDVNGaXhlZDMyUnVsZXMSgAEKBWNvbnN0GAEgASgPQnHCSG4KbAoOc2ZpeGVkMzIuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKHAQoCbHQYAiABKA9CecJIdgp0CgtzZml4ZWQzMi5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKZAQoDbHRlGAMgASgPQokBwkiFAQqCAQoMc2ZpeGVkMzIubHRlGnIhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ211c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKIBwoCZ3QYBCABKA9C+QbCSPUGCncKC3NmaXhlZDMyLmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqwAQoOc2ZpeGVkMzIuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrgBChhzZml4ZWQzMi5ndF9sdF9leGNsdXNpdmUamwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrAAQoPc2ZpeGVkMzIuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrIAQoZc2ZpeGVkMzIuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES1AcKA2d0ZRgFIAEoD0LEB8JIwAcKhQEKDHNmaXhlZDMyLmd0ZRp1IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCr8BCg9zZml4ZWQzMi5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxwEKGXNmaXhlZDMyLmd0ZV9sdF9leGNsdXNpdmUaqQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs8BChBzZml4ZWQzMi5ndGVfbHRlGroBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtcBChpzZml4ZWQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ8CgJpbhgGIAMoD0JwwkhtCmsKC3NmaXhlZDMyLmluGlwhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJzCgZub3RfaW4YByADKA9CY8JIYApeCg9zZml4ZWQzMi5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIuCgdleGFtcGxlGAggAygPQh3CSBoKGAoQc2ZpeGVkMzIuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i5RQKDVNGaXhlZDY0UnVsZXMSgAEKBWNvbnN0GAEgASgQQnHCSG4KbAoOc2ZpeGVkNjQuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKHAQoCbHQYAiABKBBCecJIdgp0CgtzZml4ZWQ2NC5sdBplIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICdtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKZAQoDbHRlGAMgASgQQokBwkiFAQqCAQoMc2ZpeGVkNjQubHRlGnIhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ211c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKIBwoCZ3QYBCABKBBC+QbCSPUGCncKC3NmaXhlZDY0Lmd0GmghaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwqwAQoOc2ZpeGVkNjQuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrgBChhzZml4ZWQ2NC5ndF9sdF9leGNsdXNpdmUamwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrAAQoPc2ZpeGVkNjQuZ3RfbHRlGqwBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrIAQoZc2ZpeGVkNjQuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES1AcKA2d0ZRgFIAEoEELEB8JIwAcKhQEKDHNmaXhlZDY0Lmd0ZRp1IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCr8BCg9zZml4ZWQ2NC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKxwEKGXNmaXhlZDY0Lmd0ZV9sdF9leGNsdXNpdmUaqQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs8BChBzZml4ZWQ2NC5ndGVfbHRlGroBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtcBChpzZml4ZWQ2NC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJ8CgJpbhgGIAMoEEJwwkhtCmsKC3NmaXhlZDY0LmluGlwhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJzCgZub3RfaW4YByADKBBCY8JIYApeCg9zZml4ZWQ2NC5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxIuCgdleGFtcGxlGAggAygQQh3CSBoKGAoQc2ZpeGVkNjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iwAEKCUJvb2xSdWxlcxJ8CgVjb25zdBgBIAEoCEJtwkhqCmgKCmJvb2wuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxIqCgdleGFtcGxlGAIgAygIQhnCSBYKFAoMYm9vbC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAIi6jwKC1N0cmluZ1J1bGVzEoABCgVjb25zdBgBIAEoCUJxwkhuCmwKDHN0cmluZy5jb25zdBpcdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCBgJXNgJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycScQoDbGVuGBMgASgEQmTCSGEKXwoKc3RyaW5nLmxlbhpRdWludCh0aGlzLnNpemUoKSkgIT0gcnVsZXMubGVuID8gJ211c3QgYmUgJXMgY2hhcmFjdGVycycuZm9ybWF0KFtydWxlcy5sZW5dKSA6ICcnEokBCgdtaW5fbGVuGAIgASgEQnjCSHUKcwoOc3RyaW5nLm1pbl9sZW4aYXVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWluX2xlbiA/ICdtdXN0IGJlIGF0IGxlYXN0ICVzIGNoYXJhY3RlcnMnLmZvcm1hdChbcnVsZXMubWluX2xlbl0pIDogJycSiAEKB21heF9sZW4YAyABKARCd8JIdApyCg5zdHJpbmcubWF4X2xlbhpgdWludCh0aGlzLnNpemUoKSkgPiBydWxlcy5tYXhfbGVuID8gJ211c3QgYmUgYXQgbW9zdCAlcyBjaGFyYWN0ZXJzJy5mb3JtYXQoW3J1bGVzLm1heF9sZW5dKSA6ICcnEosBCglsZW5fYnl0ZXMYFCABKARCeMJIdQpzChBzdHJpbmcubGVuX2J5dGVzGl91aW50KGJ5dGVzKHRoaXMpLnNpemUoKSkgIT0gcnVsZXMubGVuX2J5dGVzID8gJ211c3QgYmUgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubGVuX2J5dGVzXSkgOiAnJxKUAQoJbWluX2J5dGVzGAQgASgEQoABwkh9CnsKEHN0cmluZy5taW5fYnl0ZXMaZ3VpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9ieXRlcyA/ICdtdXN0IGJlIGF0IGxlYXN0ICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLm1pbl9ieXRlc10pIDogJycSkgEKCW1heF9ieXRlcxgFIAEoBEJ/wkh8CnoKEHN0cmluZy5tYXhfYnl0ZXMaZnVpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSA+IHJ1bGVzLm1heF9ieXRlcyA/ICdtdXN0IGJlIGF0IG1vc3QgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubWF4X2J5dGVzXSkgOiAnJxKHAQoHcGF0dGVybhgGIAEoCUJ2wkhzCnEKDnN0cmluZy5wYXR0ZXJuGl8hdGhpcy5tYXRjaGVzKHJ1bGVzLnBhdHRlcm4pID8gJ2RvZXMgbm90IG1hdGNoIHJlZ2V4IHBhdHRlcm4gYCVzYCcuZm9ybWF0KFtydWxlcy5wYXR0ZXJuXSkgOiAnJxJ+CgZwcmVmaXgYByABKAlCbsJIawppCg1zdHJpbmcucHJlZml4GlghdGhpcy5zdGFydHNXaXRoKHJ1bGVzLnByZWZpeCkgPyAnZG9lcyBub3QgaGF2ZSBwcmVmaXggYCVzYCcuZm9ybWF0KFtydWxlcy5wcmVmaXhdKSA6ICcnEnwKBnN1ZmZpeBgIIAEoCUJswkhpCmcKDXN0cmluZy5zdWZmaXgaViF0aGlzLmVuZHNXaXRoKHJ1bGVzLnN1ZmZpeCkgPyAnZG9lcyBub3QgaGF2ZSBzdWZmaXggYCVzYCcuZm9ybWF0KFtydWxlcy5zdWZmaXhdKSA6ICcnEooBCghjb250YWlucxgJIAEoCUJ4wkh1CnMKD3N0cmluZy5jb250YWlucxpgIXRoaXMuY29udGFpbnMocnVsZXMuY29udGFpbnMpID8gJ2RvZXMgbm90IGNvbnRhaW4gc3Vic3RyaW5nIGAlc2AnLmZvcm1hdChbcnVsZXMuY29udGFpbnNdKSA6ICcnEpEBCgxub3RfY29udGFpbnMYFyABKAlCe8JIeAp2ChNzdHJpbmcubm90X2NvbnRhaW5zGl90aGlzLmNvbnRhaW5zKHJ1bGVzLm5vdF9jb250YWlucykgPyAnY29udGFpbnMgc3Vic3RyaW5nIGAlc2AnLmZvcm1hdChbcnVsZXMubm90X2NvbnRhaW5zXSkgOiAnJxJ6CgJpbhgKIAMoCUJuwkhrCmkKCXN0cmluZy5pbhpcISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAnbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycScQoGbm90X2luGAsgAygJQmHCSF4KXAoNc3RyaW5nLm5vdF9pbhpLdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAnbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEtkBCgVlbWFpbBgMIAEoCELHAcJIwwEKWwoMc3RyaW5nLmVtYWlsEh1tdXN0IGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcxosIXJ1bGVzLmVtYWlsIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0VtYWlsKCkKZAoSc3RyaW5nLmVtYWlsX2VtcHR5EjJ2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgZW1haWwgYWRkcmVzcxoaIXJ1bGVzLmVtYWlsIHx8IHRoaXMgIT0gJydIABLhAQoIaG9zdG5hbWUYDSABKAhCzAHCSMgBCl8KD3N0cmluZy5ob3N0bmFtZRIYbXVzdCBiZSBhIHZhbGlkIGhvc3RuYW1lGjIhcnVsZXMuaG9zdG5hbWUgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSG9zdG5hbWUoKQplChVzdHJpbmcuaG9zdG5hbWVfZW1wdHkSLXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBob3N0bmFtZRodIXJ1bGVzLmhvc3RuYW1lIHx8IHRoaXMgIT0gJydIABLBAQoCaXAYDiABKAhCsgHCSK4BCk8KCXN0cmluZy5pcBIabXVzdCBiZSBhIHZhbGlkIElQIGFkZHJlc3MaJiFydWxlcy5pcCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCgpClsKD3N0cmluZy5pcF9lbXB0eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIGFkZHJlc3MaFyFydWxlcy5pcCB8fCB0aGlzICE9ICcnSAAS0AEKBGlwdjQYDyABKAhCvwHCSLsBClYKC3N0cmluZy5pcHY0EhxtdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzGikhcnVsZXMuaXB2NCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCg0KQphChFzdHJpbmcuaXB2NF9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjQgYWRkcmVzcxoZIXJ1bGVzLmlwdjQgfHwgdGhpcyAhPSAnJ0gAEtABCgRpcHY2GBAgASgIQr8Bwki7AQpWCgtzdHJpbmcuaXB2NhIcbXVzdCBiZSBhIHZhbGlkIElQdjYgYWRkcmVzcxopIXJ1bGVzLmlwdjYgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXAoNikKYQoRc3RyaW5nLmlwdjZfZW1wdHkSMXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3MaGSFydWxlcy5pcHY2IHx8IHRoaXMgIT0gJydIABK5AQoDdXJpGBEgASgIQqkBwkilAQpLCgpzdHJpbmcudXJpEhNtdXN0IGJlIGEgdmFsaWQgVVJJGighcnVsZXMudXJpIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc1VyaSgpClYKEHN0cmluZy51cmlfZW1wdHkSKHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVUkkaGCFydWxlcy51cmkgfHwgdGhpcyAhPSAnJ0gAEmoKB3VyaV9yZWYYEiABKAhCV8JIVApSCg5zdHJpbmcudXJpX3JlZhIdbXVzdCBiZSBhIHZhbGlkIFVSSSBSZWZlcmVuY2UaISFydWxlcy51cmlfcmVmIHx8IHRoaXMuaXNVcmlSZWYoKUgAEokCCgdhZGRyZXNzGBUgASgIQvUBwkjxAQp7Cg5zdHJpbmcuYWRkcmVzcxInbXVzdCBiZSBhIHZhbGlkIGhvc3RuYW1lLCBvciBpcCBhZGRyZXNzGkAhcnVsZXMuYWRkcmVzcyB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0bmFtZSgpIHx8IHRoaXMuaXNJcCgpCnIKFHN0cmluZy5hZGRyZXNzX2VtcHR5Ejx2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgaG9zdG5hbWUsIG9yIGlwIGFkZHJlc3MaHCFydWxlcy5hZGRyZXNzIHx8IHRoaXMgIT0gJydIABKSAgoEdXVpZBgWIAEoCEKBAsJI/QEKnwEKC3N0cmluZy51dWlkEhRtdXN0IGJlIGEgdmFsaWQgVVVJRBp6IXJ1bGVzLnV1aWQgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLm1hdGNoZXMoJ15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kJykKWQoRc3RyaW5nLnV1aWRfZW1wdHkSKXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVVUlEGhkhcnVsZXMudXVpZCB8fCB0aGlzICE9ICcnSAAS6gEKBXR1dWlkGCEgASgIQtgBwkjUAQptCgxzdHJpbmcudHV1aWQSHG11c3QgYmUgYSB2YWxpZCB0cmltbWVkIFVVSUQaPyFydWxlcy50dXVpZCB8fCB0aGlzID09ICcnIHx8IHRoaXMubWF0Y2hlcygnXlswLTlhLWZBLUZdezMyfSQnKQpjChJzdHJpbmcudHV1aWRfZW1wdHkSMXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCB0cmltbWVkIFVVSUQaGiFydWxlcy50dXVpZCB8fCB0aGlzICE9ICcnSAASkAIKEWlwX3dpdGhfcHJlZml4bGVuGBogASgIQvIBwkjuAQpyChhzdHJpbmcuaXBfd2l0aF9wcmVmaXhsZW4SGW11c3QgYmUgYSB2YWxpZCBJUCBwcmVmaXgaOyFydWxlcy5pcF93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCgpCngKHnN0cmluZy5pcF93aXRoX3ByZWZpeGxlbl9lbXB0eRIudmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIHByZWZpeBomIXJ1bGVzLmlwX3dpdGhfcHJlZml4bGVuIHx8IHRoaXMgIT0gJydIABLJAgoTaXB2NF93aXRoX3ByZWZpeGxlbhgbIAEoCEKpAsJIpQIKjQEKGnN0cmluZy5pcHY0X3dpdGhfcHJlZml4bGVuEi9tdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBo+IXJ1bGVzLmlwdjRfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNCkKkgEKIHN0cmluZy5pcHY0X3dpdGhfcHJlZml4bGVuX2VtcHR5EkR2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBooIXJ1bGVzLmlwdjRfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyAhPSAnJ0gAEskCChNpcHY2X3dpdGhfcHJlZml4bGVuGBwgASgIQqkCwkilAgqNAQoac3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW4SL211c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGj4hcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCg2KQqSAQogc3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW5fZW1wdHkSRHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGighcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzICE9ICcnSAAS7AEKCWlwX3ByZWZpeBgdIAEoCELWAcJI0gEKZgoQc3RyaW5nLmlwX3ByZWZpeBIZbXVzdCBiZSBhIHZhbGlkIElQIHByZWZpeBo3IXJ1bGVzLmlwX3ByZWZpeCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCh0cnVlKQpoChZzdHJpbmcuaXBfcHJlZml4X2VtcHR5Ei52YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVAgcHJlZml4Gh4hcnVsZXMuaXBfcHJlZml4IHx8IHRoaXMgIT0gJydIABL9AQoLaXB2NF9wcmVmaXgYHiABKAhC5QHCSOEBCm8KEnN0cmluZy5pcHY0X3ByZWZpeBIbbXVzdCBiZSBhIHZhbGlkIElQdjQgcHJlZml4GjwhcnVsZXMuaXB2NF9wcmVmaXggfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNCwgdHJ1ZSkKbgoYc3RyaW5nLmlwdjRfcHJlZml4X2VtcHR5EjB2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBwcmVmaXgaICFydWxlcy5pcHY0X3ByZWZpeCB8fCB0aGlzICE9ICcnSAAS/QEKC2lwdjZfcHJlZml4GB8gASgIQuUBwkjhAQpvChJzdHJpbmcuaXB2Nl9wcmVmaXgSG211c3QgYmUgYSB2YWxpZCBJUHY2IHByZWZpeBo8IXJ1bGVzLmlwdjZfcHJlZml4IHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0lwUHJlZml4KDYsIHRydWUpCm4KGHN0cmluZy5pcHY2X3ByZWZpeF9lbXB0eRIwdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgcHJlZml4GiAhcnVsZXMuaXB2Nl9wcmVmaXggfHwgdGhpcyAhPSAnJ0gAEq8CCg1ob3N0X2FuZF9wb3J0GCAgASgIQpUCwkiRAgqTAQoUc3RyaW5nLmhvc3RfYW5kX3BvcnQSO211c3QgYmUgYSB2YWxpZCBob3N0IChob3N0bmFtZSBvciBJUCBhZGRyZXNzKSBhbmQgcG9ydCBwYWlyGj4hcnVsZXMuaG9zdF9hbmRfcG9ydCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0QW5kUG9ydCh0cnVlKQp5ChpzdHJpbmcuaG9zdF9hbmRfcG9ydF9lbXB0eRI3dmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGhvc3QgYW5kIHBvcnQgcGFpchoiIXJ1bGVzLmhvc3RfYW5kX3BvcnQgfHwgdGhpcyAhPSAnJ0gAEu4BCgR1bGlkGCMgASgIQt0BwkjZAQp8CgtzdHJpbmcudWxpZBIUbXVzdCBiZSBhIHZhbGlkIFVMSUQaVyFydWxlcy51bGlkIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCdeWzAtN11bMC05QS1ISktNTlAtVFYtWmEtaGprbW5wLXR2LXpdezI1fSQnKQpZChFzdHJpbmcudWxpZF9lbXB0eRIpdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIFVMSUQaGSFydWxlcy51bGlkIHx8IHRoaXMgIT0gJydIABLUAgoMcHJvdG9idWZfZnFuGCUgASgIQrsCwki3AgqvAQoTc3RyaW5nLnByb3RvYnVmX2ZxbhItbXVzdCBiZSBhIHZhbGlkIGZ1bGx5LXF1YWxpZmllZCBQcm90b2J1ZiBuYW1lGmkhcnVsZXMucHJvdG9idWZfZnFuIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCdeW0EtWmEtel9dW0EtWmEtel8wLTldKihcXC5bQS1aYS16X11bQS1aYS16XzAtOV0qKSokJykKggEKGXN0cmluZy5wcm90b2J1Zl9mcW5fZW1wdHkSQnZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBmdWxseS1xdWFsaWZpZWQgUHJvdG9idWYgbmFtZRohIXJ1bGVzLnByb3RvYnVmX2ZxbiB8fCB0aGlzICE9ICcnSAASkQMKEHByb3RvYnVmX2RvdF9mcW4YJiABKAhC9ALCSPACCs0BChdzdHJpbmcucHJvdG9idWZfZG90X2ZxbhJAbXVzdCBiZSBhIHZhbGlkIGZ1bGx5LXF1YWxpZmllZCBQcm90b2J1ZiBuYW1lIHdpdGggYSBsZWFkaW5nIGRvdBpwIXJ1bGVzLnByb3RvYnVmX2RvdF9mcW4gfHwgdGhpcyA9PSAnJyB8fCB0aGlzLm1hdGNoZXMoJ15cXC5bQS1aYS16X11bQS1aYS16XzAtOV0qKFxcLltBLVphLXpfXVtBLVphLXpfMC05XSopKiQnKQqdAQodc3RyaW5nLnByb3RvYnVmX2RvdF9mcW5fZW1wdHkSVXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBmdWxseS1xdWFsaWZpZWQgUHJvdG9idWYgbmFtZSB3aXRoIGEgbGVhZGluZyBkb3QaJSFydWxlcy5wcm90b2J1Zl9kb3RfZnFuIHx8IHRoaXMgIT0gJydIABKcBQoQd2VsbF9rbm93bl9yZWdleBgYIAEoDjIYLmJ1Zi52YWxpZGF0ZS5Lbm93blJlZ2V4QuUEwkjhBArqAQojc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX25hbWUSIG11c3QgYmUgYSB2YWxpZCBIVFRQIGhlYWRlciBuYW1lGqABcnVsZXMud2VsbF9rbm93bl9yZWdleCAhPSAxIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5tYXRjaGVzKCFoYXMocnVsZXMuc3RyaWN0KSB8fCBydWxlcy5zdHJpY3QgPydeOj9bMC05YS16QS1aISMkJSZcJyorLS5eX3x+XHg2MF0rJCcgOideW15cdTAwMDBcdTAwMEFcdTAwMERdKyQnKQqNAQopc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX25hbWVfZW1wdHkSNXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBIVFRQIGhlYWRlciBuYW1lGilydWxlcy53ZWxsX2tub3duX3JlZ2V4ICE9IDEgfHwgdGhpcyAhPSAnJwrhAQokc3RyaW5nLndlbGxfa25vd25fcmVnZXguaGVhZGVyX3ZhbHVlEiFtdXN0IGJlIGEgdmFsaWQgSFRUUCBoZWFkZXIgdmFsdWUalQFydWxlcy53ZWxsX2tub3duX3JlZ2V4ICE9IDIgfHwgdGhpcy5tYXRjaGVzKCFoYXMocnVsZXMuc3RyaWN0KSB8fCBydWxlcy5zdHJpY3QgPydeW15cdTAwMDAtXHUwMDA4XHUwMDBBLVx1MDAxRlx1MDA3Rl0qJCcgOideW15cdTAwMDBcdTAwMEFcdTAwMERdKiQnKUgAEg4KBnN0cmljdBgZIAEoCBIsCgdleGFtcGxlGCIgAygJQhvCSBgKFgoOc3RyaW5nLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkIMCgp3ZWxsX2tub3duIt0RCgpCeXRlc1J1bGVzEnoKBWNvbnN0GAEgASgMQmvCSGgKZgoLYnl0ZXMuY29uc3QaV3RoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgYmUgJXgnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxJrCgNsZW4YDSABKARCXsJIWwpZCglieXRlcy5sZW4aTHVpbnQodGhpcy5zaXplKCkpICE9IHJ1bGVzLmxlbiA/ICdtdXN0IGJlICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLmxlbl0pIDogJycSgwEKB21pbl9sZW4YAiABKARCcsJIbwptCg1ieXRlcy5taW5fbGVuGlx1aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9sZW4gPyAnbXVzdCBiZSBhdCBsZWFzdCAlcyBieXRlcycuZm9ybWF0KFtydWxlcy5taW5fbGVuXSkgOiAnJxKCAQoHbWF4X2xlbhgDIAEoBEJxwkhuCmwKDWJ5dGVzLm1heF9sZW4aW3VpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2xlbiA/ICdtdXN0IGJlIGF0IG1vc3QgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubWF4X2xlbl0pIDogJycSigEKB3BhdHRlcm4YBCABKAlCecJIdgp0Cg1ieXRlcy5wYXR0ZXJuGmMhc3RyaW5nKHRoaXMpLm1hdGNoZXMocnVsZXMucGF0dGVybikgPyAnbXVzdCBtYXRjaCByZWdleCBwYXR0ZXJuIGAlc2AnLmZvcm1hdChbcnVsZXMucGF0dGVybl0pIDogJycSewoGcHJlZml4GAUgASgMQmvCSGgKZgoMYnl0ZXMucHJlZml4GlYhdGhpcy5zdGFydHNXaXRoKHJ1bGVzLnByZWZpeCkgPyAnZG9lcyBub3QgaGF2ZSBwcmVmaXggJXgnLmZvcm1hdChbcnVsZXMucHJlZml4XSkgOiAnJxJ5CgZzdWZmaXgYBiABKAxCacJIZgpkCgxieXRlcy5zdWZmaXgaVCF0aGlzLmVuZHNXaXRoKHJ1bGVzLnN1ZmZpeCkgPyAnZG9lcyBub3QgaGF2ZSBzdWZmaXggJXgnLmZvcm1hdChbcnVsZXMuc3VmZml4XSkgOiAnJxJ9Cghjb250YWlucxgHIAEoDEJrwkhoCmYKDmJ5dGVzLmNvbnRhaW5zGlQhdGhpcy5jb250YWlucyhydWxlcy5jb250YWlucykgPyAnZG9lcyBub3QgY29udGFpbiAleCcuZm9ybWF0KFtydWxlcy5jb250YWluc10pIDogJycSoQEKAmluGAggAygMQpQBwkiQAQqNAQoIYnl0ZXMuaW4agAFnZXRGaWVsZChydWxlcywgJ2luJykuc2l6ZSgpID4gMCAmJiAhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICdtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJwCgZub3RfaW4YCSADKAxCYMJIXQpbCgxieXRlcy5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxLlAQoCaXAYCiABKAhC1gHCSNIBCm4KCGJ5dGVzLmlwEhptdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcxpGIXJ1bGVzLmlwIHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gNCB8fCB0aGlzLnNpemUoKSA9PSAxNgpgCg5ieXRlcy5pcF9lbXB0eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIGFkZHJlc3MaHSFydWxlcy5pcCB8fCB0aGlzLnNpemUoKSAhPSAwSAAS3gEKBGlwdjQYCyABKAhCzQHCSMkBCl8KCmJ5dGVzLmlwdjQSHG11c3QgYmUgYSB2YWxpZCBJUHY0IGFkZHJlc3MaMyFydWxlcy5pcHY0IHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gNApmChBieXRlcy5pcHY0X2VtcHR5EjF2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzGh8hcnVsZXMuaXB2NCB8fCB0aGlzLnNpemUoKSAhPSAwSAAS3wEKBGlwdjYYDCABKAhCzgHCSMoBCmAKCmJ5dGVzLmlwdjYSHG11c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3MaNCFydWxlcy5pcHY2IHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gMTYKZgoQYnl0ZXMuaXB2Nl9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgYWRkcmVzcxofIXJ1bGVzLmlwdjYgfHwgdGhpcy5zaXplKCkgIT0gMEgAEs8BCgR1dWlkGA8gASgIQr4Bwki6AQpYCgpieXRlcy51dWlkEhRtdXN0IGJlIGEgdmFsaWQgVVVJRBo0IXJ1bGVzLnV1aWQgfHwgdGhpcy5zaXplKCkgPT0gMCB8fCB0aGlzLnNpemUoKSA9PSAxNgpeChBieXRlcy51dWlkX2VtcHR5Eil2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgVVVJRBofIXJ1bGVzLnV1aWQgfHwgdGhpcy5zaXplKCkgIT0gMEgAEisKB2V4YW1wbGUYDiADKAxCGsJIFwoVCg1ieXRlcy5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCDAoKd2VsbF9rbm93biLBAwoJRW51bVJ1bGVzEnwKBWNvbnN0GAEgASgFQm3CSGoKaAoKZW51bS5jb25zdBpadGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAnbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEhQKDGRlZmluZWRfb25seRgCIAEoCBJ4CgJpbhgDIAMoBUJswkhpCmcKB2VudW0uaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEm8KBm5vdF9pbhgEIAMoBUJfwkhcCloKC2VudW0ubm90X2luGkt0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICdtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSKgoHZXhhbXBsZRgFIAMoBUIZwkgWChQKDGVudW0uZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACIu0DCg1SZXBlYXRlZFJ1bGVzEpYBCgltaW5faXRlbXMYASABKARCggHCSH8KfQoScmVwZWF0ZWQubWluX2l0ZW1zGmd1aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9pdGVtcyA/ICdtdXN0IGNvbnRhaW4gYXQgbGVhc3QgJWQgaXRlbShzKScuZm9ybWF0KFtydWxlcy5taW5faXRlbXNdKSA6ICcnEpwBCgltYXhfaXRlbXMYAiABKARCiAHCSIQBCoEBChJyZXBlYXRlZC5tYXhfaXRlbXMaa3VpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2l0ZW1zID8gJ211c3QgY29udGFpbiBubyBtb3JlIHRoYW4gJXMgaXRlbShzKScuZm9ybWF0KFtydWxlcy5tYXhfaXRlbXNdKSA6ICcnEnAKBnVuaXF1ZRgDIAEoCEJgwkhdClsKD3JlcGVhdGVkLnVuaXF1ZRIocmVwZWF0ZWQgdmFsdWUgbXVzdCBjb250YWluIHVuaXF1ZSBpdGVtcxoeIXJ1bGVzLnVuaXF1ZSB8fCB0aGlzLnVuaXF1ZSgpEicKBWl0ZW1zGAQgASgLMhguYnVmLnZhbGlkYXRlLkZpZWxkUnVsZXMqCQjoBxCAgICAAiKKAwoITWFwUnVsZXMSjwEKCW1pbl9wYWlycxgBIAEoBEJ8wkh5CncKDW1hcC5taW5fcGFpcnMaZnVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWluX3BhaXJzID8gJ21hcCBtdXN0IGJlIGF0IGxlYXN0ICVkIGVudHJpZXMnLmZvcm1hdChbcnVsZXMubWluX3BhaXJzXSkgOiAnJxKOAQoJbWF4X3BhaXJzGAIgASgEQnvCSHgKdgoNbWFwLm1heF9wYWlycxpldWludCh0aGlzLnNpemUoKSkgPiBydWxlcy5tYXhfcGFpcnMgPyAnbWFwIG11c3QgYmUgYXQgbW9zdCAlZCBlbnRyaWVzJy5mb3JtYXQoW3J1bGVzLm1heF9wYWlyc10pIDogJycSJgoEa2V5cxgEIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzEigKBnZhbHVlcxgFIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzKgkI6AcQgICAgAIiJgoIQW55UnVsZXMSCgoCaW4YAiADKAkSDgoGbm90X2luGAMgAygJIr8WCg1EdXJhdGlvblJ1bGVzEpsBCgVjb25zdBgCIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkJxwkhuCmwKDmR1cmF0aW9uLmNvbnN0Glp0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICdtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSogEKAmx0GAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQnnCSHYKdAoLZHVyYXRpb24ubHQaZSFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAnbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAAStAEKA2x0ZRgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkKJAcJIhQEKggEKDGR1cmF0aW9uLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASowcKAmd0GAUgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQvkGwkj1Bgp3CgtkdXJhdGlvbi5ndBpoIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKsAEKDmR1cmF0aW9uLmd0X2x0Gp0BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq4AQoYZHVyYXRpb24uZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKwAEKD2R1cmF0aW9uLmd0X2x0ZRqsAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKyAEKGWR1cmF0aW9uLmd0X2x0ZV9leGNsdXNpdmUaqgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEu8HCgNndGUYBiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CxAfCSMAHCoUBCgxkdXJhdGlvbi5ndGUadSFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwq/AQoPZHVyYXRpb24uZ3RlX2x0GqsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCscBChlkdXJhdGlvbi5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrPAQoQZHVyYXRpb24uZ3RlX2x0ZRq6AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrXAQoaZHVyYXRpb24uZ3RlX2x0ZV9leGNsdXNpdmUauAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESlwEKAmluGAcgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQnDCSG0KawoLZHVyYXRpb24uaW4aXCEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ211c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEo4BCgZub3RfaW4YCCADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CY8JIYApeCg9kdXJhdGlvbi5ub3RfaW4aS3RoaXMgaW4gcnVsZXMubm90X2luID8gJ211c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxJJCgdleGFtcGxlGAkgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQh3CSBoKGAoQZHVyYXRpb24uZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i6wUKDkZpZWxkTWFza1J1bGVzErkBCgVjb25zdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCjQHCSIkBCoYBChBmaWVsZF9tYXNrLmNvbnN0GnJ0aGlzLnBhdGhzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKS5wYXRocyA/ICdtdXN0IGVxdWFsIHBhdGhzICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKS5wYXRoc10pIDogJycS0wEKAmluGAIgAygJQsYBwkjCAQq/AQoNZmllbGRfbWFzay5pbhqtASF0aGlzLnBhdGhzLmFsbChwLCBwIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSB8fCBnZXRGaWVsZChydWxlcywgJ2luJykuZXhpc3RzKGYsIHAuc3RhcnRzV2l0aChmKycuJykpKSA/ICdtdXN0IG9ubHkgY29udGFpbiBwYXRocyBpbiAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEu0BCgZub3RfaW4YAyADKAlC3AHCSNgBCtUBChFmaWVsZF9tYXNrLm5vdF9pbhq/ASF0aGlzLnBhdGhzLmFsbChwLCAhKHAgaW4gZ2V0RmllbGQocnVsZXMsICdub3RfaW4nKSB8fCBnZXRGaWVsZChydWxlcywgJ25vdF9pbicpLmV4aXN0cyhmLCBwLnN0YXJ0c1dpdGgoZisnLicpKSkpID8gJ211c3Qgbm90IGNvbnRhaW4gYW55IHBhdGhzIGluICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnbm90X2luJyldKSA6ICcnEkwKB2V4YW1wbGUYBCADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQh/CSBwKGgoSZmllbGRfbWFzay5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAIisBcKDlRpbWVzdGFtcFJ1bGVzEp0BCgVjb25zdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCcsJIbwptCg90aW1lc3RhbXAuY29uc3QaWnRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ211c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKkAQoCbHQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQnrCSHcKdQoMdGltZXN0YW1wLmx0GmUhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ211c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAErYBCgNsdGUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQooBwkiGAQqDAQoNdGltZXN0YW1wLmx0ZRpyIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICdtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASZgoGbHRfbm93GAcgASgIQlTCSFEKTwoQdGltZXN0YW1wLmx0X25vdxo7KHJ1bGVzLmx0X25vdyAmJiB0aGlzID4gbm93KSA/ICdtdXN0IGJlIGxlc3MgdGhhbiBub3cnIDogJydIABKpBwoCZ3QYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQv4Gwkj6Bgp4Cgx0aW1lc3RhbXAuZ3QaaCFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrEBCg90aW1lc3RhbXAuZ3RfbHQanQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCrkBChl0aW1lc3RhbXAuZ3RfbHRfZXhjbHVzaXZlGpsBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKwQEKEHRpbWVzdGFtcC5ndF9sdGUarAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICdtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCskBChp0aW1lc3RhbXAuZ3RfbHRlX2V4Y2x1c2l2ZRqqAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES9QcKA2d0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCyQfCSMUHCoYBCg10aW1lc3RhbXAuZ3RlGnUhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKwAEKEHRpbWVzdGFtcC5ndGVfbHQaqwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKyAEKGnRpbWVzdGFtcC5ndGVfbHRfZXhjbHVzaXZlGqkBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrQAQoRdGltZXN0YW1wLmd0ZV9sdGUaugFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAnbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK2AEKG3RpbWVzdGFtcC5ndGVfbHRlX2V4Y2x1c2l2ZRq4AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARJpCgZndF9ub3cYCCABKAhCV8JIVApSChB0aW1lc3RhbXAuZ3Rfbm93Gj4ocnVsZXMuZ3Rfbm93ICYmIHRoaXMgPCBub3cpID8gJ211c3QgYmUgZ3JlYXRlciB0aGFuIG5vdycgOiAnJ0gBErEBCgZ3aXRoaW4YCSABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25ChQHCSIEBCn8KEHRpbWVzdGFtcC53aXRoaW4aa3RoaXMgPCBub3ctcnVsZXMud2l0aGluIHx8IHRoaXMgPiBub3crcnVsZXMud2l0aGluID8gJ211c3QgYmUgd2l0aGluICVzIG9mIG5vdycuZm9ybWF0KFtydWxlcy53aXRoaW5dKSA6ICcnEksKB2V4YW1wbGUYCiADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQh7CSBsKGQoRdGltZXN0YW1wLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIjkKClZpb2xhdGlvbnMSKwoKdmlvbGF0aW9ucxgBIAMoCzIXLmJ1Zi52YWxpZGF0ZS5WaW9sYXRpb24inwEKCVZpb2xhdGlvbhImCgVmaWVsZBgFIAEoCzIXLmJ1Zi52YWxpZGF0ZS5GaWVsZFBhdGgSJQoEcnVsZRgGIAEoCzIXLmJ1Zi52YWxpZGF0ZS5GaWVsZFBhdGgSDwoHcnVsZV9pZBgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEg8KB2Zvcl9rZXkYBCABKAhKBAgBEAJSCmZpZWxkX3BhdGgiPQoJRmllbGRQYXRoEjAKCGVsZW1lbnRzGAEgAygLMh4uYnVmLnZhbGlkYXRlLkZpZWxkUGF0aEVsZW1lbnQi6QIKEEZpZWxkUGF0aEVsZW1lbnQSFAoMZmllbGRfbnVtYmVyGAEgASgFEhIKCmZpZWxkX25hbWUYAiABKAkSPgoKZmllbGRfdHlwZRgDIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlEjwKCGtleV90eXBlGAQgASgOMiouZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGUSPgoKdmFsdWVfdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlEg8KBWluZGV4GAYgASgESAASEgoIYm9vbF9rZXkYByABKAhIABIRCgdpbnRfa2V5GAggASgDSAASEgoIdWludF9rZXkYCSABKARIABIUCgpzdHJpbmdfa2V5GAogASgJSABCCwoJc3Vic2NyaXB0KqEBCgZJZ25vcmUSFgoSSUdOT1JFX1VOU1BFQ0lGSUVEEAASGAoUSUdOT1JFX0lGX1pFUk9fVkFMVUUQARIRCg1JR05PUkVfQUxXQVlTEAMiBAgCEAIqDElHTk9SRV9FTVBUWSoOSUdOT1JFX0RFRkFVTFQqF0lHTk9SRV9JRl9ERUZBVUxUX1ZBTFVFKhVJR05PUkVfSUZfVU5QT1BVTEFURUQqbgoKS25vd25SZWdleBIbChdLTk9XTl9SRUdFWF9VTlNQRUNJRklFRBAAEiAKHEtOT1dOX1JFR0VYX0hUVFBfSEVBREVSX05BTUUQARIhCh1LTk9XTl9SRUdFWF9IVFRQX0hFQURFUl9WQUxVRRACOlYKB21lc3NhZ2USHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYhwkgASgLMhouYnVmLnZhbGlkYXRlLk1lc3NhZ2VSdWxlc1IHbWVzc2FnZTpOCgVvbmVvZhIdLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnMYhwkgASgLMhguYnVmLnZhbGlkYXRlLk9uZW9mUnVsZXNSBW9uZW9mOk4KBWZpZWxkEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxiHCSABKAsyGC5idWYudmFsaWRhdGUuRmllbGRSdWxlc1IFZmllbGQ6XQoKcHJlZGVmaW5lZBIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYiAkgASgLMh0uYnVmLnZhbGlkYXRlLlByZWRlZmluZWRSdWxlc1IKcHJlZGVmaW5lZEJuChJidWlsZC5idWYudmFsaWRhdGVCDVZhbGlkYXRlUHJvdG9QAVpHYnVmLmJ1aWxkL2dlbi9nby9idWZidWlsZC9wcm90b3ZhbGlkYXRlL3Byb3RvY29sYnVmZmVycy9nby9idWYvdmFsaWRhdGU", [file_google_protobuf_descriptor, file_google_protobuf_duration, file_google_protobuf_field_mask, file_google_protobuf_timestamp13]);
873
900
 
874
901
  // ../../packages/proto-ts/src/apps/v1/apps_pb.js
875
902
  import { file_google_protobuf_struct as file_google_protobuf_struct12 } from "@bufbuild/protobuf/wkt";
876
- var file_apps_v1_apps = /* @__PURE__ */ fileDesc17("ChJhcHBzL3YxL2FwcHMucHJvdG8SB2FwcHMudjEi8gQKCUFwcENvbmZpZxI0CgRuYW1lGAEgASgJQia6SCNyIRhAMh1eW2Etel1bYS16MC05XSooLVthLXowLTldKykqJBIYCgd2ZXJzaW9uGAIgASgJQge6SARyAhABEiMKCG1ldGFkYXRhGAMgASgLMhEuYXBwcy52MS5NZXRhZGF0YRInCgptaWRkbGV3YXJlGAQgASgLMhMuYXBwcy52MS5NaWRkbGV3YXJlEikKC2NyZWRlbnRpYWxzGAUgASgLMhQuYXBwcy52MS5DcmVkZW50aWFscxIwCg9zZXR0aW5nc19zY2hlbWEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjAKB3NvdXJjZXMYByADKAsyHy5hcHBzLnYxLkFwcENvbmZpZy5Tb3VyY2VzRW50cnkSLAoFc2lua3MYCCADKAsyHS5hcHBzLnYxLkFwcENvbmZpZy5TaW5rc0VudHJ5EiYKCm9wZXJhdGlvbnMYCSADKAsyEi5hcHBzLnYxLk9wZXJhdGlvbhIcCgVob29rcxgKIAMoCzINLmFwcHMudjEuSG9vaxIXCgJ1aRgLIAEoCzILLmFwcHMudjEuVUkSIQoHaW5ib3VuZBgMIAEoCzIQLmFwcHMudjEuSW5ib3VuZBpDCgxTb3VyY2VzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMuYXBwcy52MS5Tb3VyY2VUeXBlOgI4ARpDCgpTaW5rc0VudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLmFwcHMudjEuU2lua0NvbnRyYWN0OgI4ASJlCghNZXRhZGF0YRIUCgxkaXNwbGF5X25hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSDAoEaWNvbhgDIAEoCRIOCgZhdXRob3IYBCABKAkSEAoIaG9tZXBhZ2UYBSABKAkiLQoKTWlkZGxld2FyZRIfCgN1cmwYASABKAlCErpID3INMgteaHR0cHM6Ly8uKyLXAgoLQ3JlZGVudGlhbHMSLwoIc3RyYXRlZ3kYASABKA4yHS5hcHBzLnYxLkNyZWRlbnRpYWxzLlN0cmF0ZWd5EiwKBnNjaGVtYRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIoCgVvYXV0aBgDIAEoCzIULmFwcHMudjEuT0F1dGhDb25maWdIAYgBASKpAQoIU3RyYXRlZ3kSGAoUU1RSQVRFR1lfVU5TUEVDSUZJRUQQABISCg5TVFJBVEVHWV9PQVVUSBABEhQKEFNUUkFURUdZX0FQSV9LRVkQAhIaChZTVFJBVEVHWV9TSEFSRURfU0VDUkVUEAMSFAoQU1RSQVRFR1lfU1NIX0tFWRAEEhEKDVNUUkFURUdZX05PTkUQBRIUChBTVFJBVEVHWV9NQU5BR0VEEAZCCQoHX3NjaGVtYUIICgZfb2F1dGgiTAoLT0F1dGhDb25maWcSHAoUYXV0aG9yaXplX3N0YXJ0X3BhdGgYASABKAkSHwoXYXV0aG9yaXplX2NhbGxiYWNrX3BhdGgYAiABKAkiLAoHSW5ib3VuZBIhCgd3ZWJob29rGAEgASgLMhAuYXBwcy52MS5XZWJob29rIhcKB1dlYmhvb2sSDAoEcGF0aBgBIAEoCSKpAQoKU291cmNlVHlwZRINCgVsYWJlbBgBIAEoCRIvCgZmaWVsZHMYAiADKAsyHy5hcHBzLnYxLlNvdXJjZVR5cGUuRmllbGRzRW50cnkSEwoLbmF0dXJhbF9rZXkYAyABKAkaRgoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEiYKBXZhbHVlGAIgASgLMhcuYXBwcy52MS5TdWdnZXN0ZWRGaWVsZDoCOAEiqAEKDFNpbmtDb250cmFjdBINCgVsYWJlbBgBIAEoCRIxCgZmaWVsZHMYAiADKAsyIS5hcHBzLnYxLlNpbmtDb250cmFjdC5GaWVsZHNFbnRyeRITCgtuYXR1cmFsX2tleRgDIAEoCRpBCgtGaWVsZHNFbnRyeRILCgNrZXkYASABKAkSIQoFdmFsdWUYAiABKAsyEi5hcHBzLnYxLlNpbmtGaWVsZDoCOAEimQEKDlN1Z2dlc3RlZEZpZWxkEgwKBHR5cGUYASABKAkSEgoFbGFiZWwYAiABKAlIAIgBARIVCghyZXF1aXJlZBgDIAEoCEgBiAEBEiwKBmNvbmZpZxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUIICgZfbGFiZWxCCwoJX3JlcXVpcmVkQgkKB19jb25maWciWwoJU2lua0ZpZWxkEgwKBHR5cGUYASABKAkSEAoIc2VtYW50aWMYAiABKAkSEAoIcmVxdWlyZWQYAyABKAgSEgoFbGFiZWwYBCABKAlIAIgBAUIICgZfbGFiZWwi+AMKCU9wZXJhdGlvbhI6CgNrZXkYASABKAlCLbpIKnIoGEAyJF4oX18pP1thLXpdW2EtejAtOV9dKigtW2EtejAtOV9dKykqJBIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESHQoIZW5kcG9pbnQYBCABKAlCC7pICHIGMgReLy4qEhQKDGNhcGFiaWxpdGllcxgFIAMoCRIXCgp0aW1lb3V0X21zGAYgASgFSAGIAQESMgoMcmV0cnlfcG9saWN5GAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDGlucHV0X3NjaGVtYRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIzCg1vdXRwdXRfc2NoZW1hGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEhsKDnN1cHBvcnRzX2FzeW5jGAogASgISAWIAQESGQoRcnVuX2FmdGVyX2luc3RhbGwYCyABKAhCDgoMX2Rlc2NyaXB0aW9uQg0KC190aW1lb3V0X21zQg8KDV9yZXRyeV9wb2xpY3lCDwoNX2lucHV0X3NjaGVtYUIQCg5fb3V0cHV0X3NjaGVtYUIRCg9fc3VwcG9ydHNfYXN5bmMipgEKBEhvb2sSMwoDa2V5GAEgASgJQia6SCNyIRhAMh1eW2Etel1bYS16MC05XSooLVthLXowLTldKykqJBIMCgRuYW1lGAIgASgJEhYKBWV2ZW50GAMgASgJQge6SARyAhABEicKBmZpbHRlchgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGgoJb3BlcmF0aW9uGAUgASgJQge6SARyAhABIjcKAlVJEjEKCnBsYWNlbWVudHMYASADKAsyHS5hcHBzLnYxLlBsYWNlbWVudERlY2xhcmF0aW9uIpQEChRQbGFjZW1lbnREZWNsYXJhdGlvbhIzCgNrZXkYASABKAlCJrpII3IhGEAyHV5bYS16XVthLXowLTldKigtW2EtejAtOV0rKSokEjQKBnRhcmdldBgCIAEoDjIkLmFwcHMudjEuUGxhY2VtZW50RGVjbGFyYXRpb24uVGFyZ2V0EhIKBW1vZGVsGAMgASgJSACIAQESEgoFZmllbGQYBCABKAlIAYgBARIhChlmaWVsZF9zZWxlY3RlZF9hdF9pbnN0YWxsGAUgASgIEhAKA3RhYhgGIAEoCUgCiAEBEhYKBXRpdGxlGAcgASgJQge6SARyAhABEh8KA3VybBgIIAEoCUISukgPcg0yC15odHRwczovLy4rEh0KEHJlcGxhY2VzX2RlZmF1bHQYCSABKAhIA4gBARIrCgVoaW50cxgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBASJ0CgZUYXJnZXQSFgoSVEFSR0VUX1VOU1BFQ0lGSUVEEAASFAoQVEFSR0VUX0ZVTExfUEFHRRABEhYKElRBUkdFVF9NQUlOX0VESVRPUhACEhIKDlRBUkdFVF9TSURFQkFSEAMSEAoMVEFSR0VUX0ZJRUxEEARCCAoGX21vZGVsQggKBl9maWVsZEIGCgRfdGFiQhMKEV9yZXBsYWNlc19kZWZhdWx0QggKBl9oaW50c0I1WjNnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vYXBwcy92MTthcHBzdjFiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_struct12]);
903
+ var file_apps_v1_apps = /* @__PURE__ */ fileDesc18("ChJhcHBzL3YxL2FwcHMucHJvdG8SB2FwcHMudjEi8gQKCUFwcENvbmZpZxI0CgRuYW1lGAEgASgJQia6SCNyIRhAMh1eW2Etel1bYS16MC05XSooLVthLXowLTldKykqJBIYCgd2ZXJzaW9uGAIgASgJQge6SARyAhABEiMKCG1ldGFkYXRhGAMgASgLMhEuYXBwcy52MS5NZXRhZGF0YRInCgptaWRkbGV3YXJlGAQgASgLMhMuYXBwcy52MS5NaWRkbGV3YXJlEikKC2NyZWRlbnRpYWxzGAUgASgLMhQuYXBwcy52MS5DcmVkZW50aWFscxIwCg9zZXR0aW5nc19zY2hlbWEYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjAKB3NvdXJjZXMYByADKAsyHy5hcHBzLnYxLkFwcENvbmZpZy5Tb3VyY2VzRW50cnkSLAoFc2lua3MYCCADKAsyHS5hcHBzLnYxLkFwcENvbmZpZy5TaW5rc0VudHJ5EiYKCm9wZXJhdGlvbnMYCSADKAsyEi5hcHBzLnYxLk9wZXJhdGlvbhIcCgVob29rcxgKIAMoCzINLmFwcHMudjEuSG9vaxIXCgJ1aRgLIAEoCzILLmFwcHMudjEuVUkSIQoHaW5ib3VuZBgMIAEoCzIQLmFwcHMudjEuSW5ib3VuZBpDCgxTb3VyY2VzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMuYXBwcy52MS5Tb3VyY2VUeXBlOgI4ARpDCgpTaW5rc0VudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIVLmFwcHMudjEuU2lua0NvbnRyYWN0OgI4ASJlCghNZXRhZGF0YRIUCgxkaXNwbGF5X25hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSDAoEaWNvbhgDIAEoCRIOCgZhdXRob3IYBCABKAkSEAoIaG9tZXBhZ2UYBSABKAkiLQoKTWlkZGxld2FyZRIfCgN1cmwYASABKAlCErpID3INMgteaHR0cHM6Ly8uKyLXAgoLQ3JlZGVudGlhbHMSLwoIc3RyYXRlZ3kYASABKA4yHS5hcHBzLnYxLkNyZWRlbnRpYWxzLlN0cmF0ZWd5EiwKBnNjaGVtYRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIoCgVvYXV0aBgDIAEoCzIULmFwcHMudjEuT0F1dGhDb25maWdIAYgBASKpAQoIU3RyYXRlZ3kSGAoUU1RSQVRFR1lfVU5TUEVDSUZJRUQQABISCg5TVFJBVEVHWV9PQVVUSBABEhQKEFNUUkFURUdZX0FQSV9LRVkQAhIaChZTVFJBVEVHWV9TSEFSRURfU0VDUkVUEAMSFAoQU1RSQVRFR1lfU1NIX0tFWRAEEhEKDVNUUkFURUdZX05PTkUQBRIUChBTVFJBVEVHWV9NQU5BR0VEEAZCCQoHX3NjaGVtYUIICgZfb2F1dGgiTAoLT0F1dGhDb25maWcSHAoUYXV0aG9yaXplX3N0YXJ0X3BhdGgYASABKAkSHwoXYXV0aG9yaXplX2NhbGxiYWNrX3BhdGgYAiABKAkiLAoHSW5ib3VuZBIhCgd3ZWJob29rGAEgASgLMhAuYXBwcy52MS5XZWJob29rIhcKB1dlYmhvb2sSDAoEcGF0aBgBIAEoCSKpAQoKU291cmNlVHlwZRINCgVsYWJlbBgBIAEoCRIvCgZmaWVsZHMYAiADKAsyHy5hcHBzLnYxLlNvdXJjZVR5cGUuRmllbGRzRW50cnkSEwoLbmF0dXJhbF9rZXkYAyABKAkaRgoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEiYKBXZhbHVlGAIgASgLMhcuYXBwcy52MS5TdWdnZXN0ZWRGaWVsZDoCOAEiqAEKDFNpbmtDb250cmFjdBINCgVsYWJlbBgBIAEoCRIxCgZmaWVsZHMYAiADKAsyIS5hcHBzLnYxLlNpbmtDb250cmFjdC5GaWVsZHNFbnRyeRITCgtuYXR1cmFsX2tleRgDIAEoCRpBCgtGaWVsZHNFbnRyeRILCgNrZXkYASABKAkSIQoFdmFsdWUYAiABKAsyEi5hcHBzLnYxLlNpbmtGaWVsZDoCOAEimQEKDlN1Z2dlc3RlZEZpZWxkEgwKBHR5cGUYASABKAkSEgoFbGFiZWwYAiABKAlIAIgBARIVCghyZXF1aXJlZBgDIAEoCEgBiAEBEiwKBmNvbmZpZxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUIICgZfbGFiZWxCCwoJX3JlcXVpcmVkQgkKB19jb25maWciWwoJU2lua0ZpZWxkEgwKBHR5cGUYASABKAkSEAoIc2VtYW50aWMYAiABKAkSEAoIcmVxdWlyZWQYAyABKAgSEgoFbGFiZWwYBCABKAlIAIgBAUIICgZfbGFiZWwi+AMKCU9wZXJhdGlvbhI6CgNrZXkYASABKAlCLbpIKnIoGEAyJF4oX18pP1thLXpdW2EtejAtOV9dKigtW2EtejAtOV9dKykqJBIMCgRuYW1lGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESHQoIZW5kcG9pbnQYBCABKAlCC7pICHIGMgReLy4qEhQKDGNhcGFiaWxpdGllcxgFIAMoCRIXCgp0aW1lb3V0X21zGAYgASgFSAGIAQESMgoMcmV0cnlfcG9saWN5GAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDGlucHV0X3NjaGVtYRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIzCg1vdXRwdXRfc2NoZW1hGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEhsKDnN1cHBvcnRzX2FzeW5jGAogASgISAWIAQESGQoRcnVuX2FmdGVyX2luc3RhbGwYCyABKAhCDgoMX2Rlc2NyaXB0aW9uQg0KC190aW1lb3V0X21zQg8KDV9yZXRyeV9wb2xpY3lCDwoNX2lucHV0X3NjaGVtYUIQCg5fb3V0cHV0X3NjaGVtYUIRCg9fc3VwcG9ydHNfYXN5bmMipgEKBEhvb2sSMwoDa2V5GAEgASgJQia6SCNyIRhAMh1eW2Etel1bYS16MC05XSooLVthLXowLTldKykqJBIMCgRuYW1lGAIgASgJEhYKBWV2ZW50GAMgASgJQge6SARyAhABEicKBmZpbHRlchgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGgoJb3BlcmF0aW9uGAUgASgJQge6SARyAhABIjcKAlVJEjEKCnBsYWNlbWVudHMYASADKAsyHS5hcHBzLnYxLlBsYWNlbWVudERlY2xhcmF0aW9uIpQEChRQbGFjZW1lbnREZWNsYXJhdGlvbhIzCgNrZXkYASABKAlCJrpII3IhGEAyHV5bYS16XVthLXowLTldKigtW2EtejAtOV0rKSokEjQKBnRhcmdldBgCIAEoDjIkLmFwcHMudjEuUGxhY2VtZW50RGVjbGFyYXRpb24uVGFyZ2V0EhIKBW1vZGVsGAMgASgJSACIAQESEgoFZmllbGQYBCABKAlIAYgBARIhChlmaWVsZF9zZWxlY3RlZF9hdF9pbnN0YWxsGAUgASgIEhAKA3RhYhgGIAEoCUgCiAEBEhYKBXRpdGxlGAcgASgJQge6SARyAhABEh8KA3VybBgIIAEoCUISukgPcg0yC15odHRwczovLy4rEh0KEHJlcGxhY2VzX2RlZmF1bHQYCSABKAhIA4gBARIrCgVoaW50cxgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBASJ0CgZUYXJnZXQSFgoSVEFSR0VUX1VOU1BFQ0lGSUVEEAASFAoQVEFSR0VUX0ZVTExfUEFHRRABEhYKElRBUkdFVF9NQUlOX0VESVRPUhACEhIKDlRBUkdFVF9TSURFQkFSEAMSEAoMVEFSR0VUX0ZJRUxEEARCCAoGX21vZGVsQggKBl9maWVsZEIGCgRfdGFiQhMKEV9yZXBsYWNlc19kZWZhdWx0QggKBl9oaW50c0I1WjNnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vYXBwcy92MTthcHBzdjFiBnByb3RvMw", [file_buf_validate_validate, file_google_protobuf_struct12]);
877
904
 
878
905
  // ../../packages/proto-ts/src/apps/v1/apps_service_pb.js
879
906
  import { file_google_protobuf_struct as file_google_protobuf_struct13, file_google_protobuf_timestamp as file_google_protobuf_timestamp14 } from "@bufbuild/protobuf/wkt";
880
- var file_apps_v1_apps_service = /* @__PURE__ */ fileDesc18("ChphcHBzL3YxL2FwcHNfc2VydmljZS5wcm90bxIHYXBwcy52MSKRBAoDQXBwEgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEgwKBG5hbWUYBCABKAkSFAoMbWFuaWZlc3RfdXJsGAUgASgJEhUKDW1hbmlmZXN0X2hhc2gYBiABKAkSJAoIbWFuaWZlc3QYByABKAsyEi5hcHBzLnYxLkFwcENvbmZpZxIpCghzZXR0aW5ncxgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWFwcGluZ3MYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYCiABKAgSMAoMaW5zdGFsbGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZCgxpbnN0YWxsZWRfYnkYDCABKAlIAIgBARIuCgp1cGRhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1ChRsYXN0X3B1c2hlZF9tYXBwaW5ncxgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNwoObGFzdF9wdXNoZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQFCDwoNX2luc3RhbGxlZF9ieUIRCg9fbGFzdF9wdXNoZWRfYXQimQEKDVNvdXJjZU1hcHBpbmcSEAoIdG9fbW9kZWwYASABKAkSEwoLbmF0dXJhbF9rZXkYAiABKAkSMgoGZmllbGRzGAMgAygLMiIuYXBwcy52MS5Tb3VyY2VNYXBwaW5nLkZpZWxkc0VudHJ5Gi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEilQEKC1NpbmtNYXBwaW5nEhAKCHRvX21vZGVsGAEgASgJEhMKC25hdHVyYWxfa2V5GAIgASgJEjAKBmZpZWxkcxgDIAMoCzIgLmFwcHMudjEuU2lua01hcHBpbmcuRmllbGRzRW50cnkaLQoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0ChRQbGFjZW1lbnRGaWVsZENob2ljZRINCgVtb2RlbBgBIAEoCRINCgVmaWVsZBgCIAEoCSLdAgoRQXBwSW5zdGFsbFByZXZpZXcSJAoIbWFuaWZlc3QYASABKAsyEi5hcHBzLnYxLkFwcENvbmZpZxIVCg1tYW5pZmVzdF9oYXNoGAIgASgJEhwKFG9wZXJhdGlvbnNfdG9fY3JlYXRlGAMgAygJEhcKD2hvb2tzX3RvX2NyZWF0ZRgEIAMoCRIcChRwbGFjZW1lbnRzX3RvX2NyZWF0ZRgFIAMoCRI6ChNjcmVkZW50aWFsX3N0cmF0ZWd5GAYgASgOMh0uYXBwcy52MS5DcmVkZW50aWFscy5TdHJhdGVneRIbChNzb3VyY2VfdHlwZXNfdG9fbWFwGAcgAygJEh0KFXNpbmtfY29udHJhY3RzX3RvX21hcBgIIAMoCRIpCiFwbGFjZW1lbnRzX3JlcXVpcmluZ19maWVsZF9jaG9pY2UYCSADKAkSEwoLd2ViaG9va191cmwYCiABKAki5wEKD0xpc3RBcHBzUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRISCgVmaXJzdBgDIAEoBUgAiAEBEhIKBWFmdGVyGAQgASgJSAGIAQESEQoEbGFzdBgFIAEoBUgCiAEBEhMKBmJlZm9yZRgGIAEoCUgDiAEBEisKBXdoZXJlGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZUIICgZfd2hlcmUiiQEKEExpc3RBcHBzUmVzcG9uc2USGgoEYXBwcxgBIAMoCzIMLmFwcHMudjEuQXBwEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJECg1HZXRBcHBSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEgwKBG5hbWUYAyABKAkiKwoOR2V0QXBwUmVzcG9uc2USGQoDYXBwGAEgASgLMgwuYXBwcy52MS5BcHAiUAoRSW5zdGFsbEFwcFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFAoMbWFuaWZlc3RfdXJsGAMgASgJIokBChJJbnN0YWxsQXBwUmVzcG9uc2USFgoOaW5zdGFsbF90aWNrZXQYASABKAkSKwoHcHJldmlldxgCIAEoCzIaLmFwcHMudjEuQXBwSW5zdGFsbFByZXZpZXcSLgoKZXhwaXJlc19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi/wQKGENvbmZpcm1JbnN0YWxsQXBwUmVxdWVzdBIWCg5pbnN0YWxsX3RpY2tldBgBIAEoCRJOCg9zb3VyY2VfbWFwcGluZ3MYAiADKAsyNS5hcHBzLnYxLkNvbmZpcm1JbnN0YWxsQXBwUmVxdWVzdC5Tb3VyY2VNYXBwaW5nc0VudHJ5EkoKDXNpbmtfbWFwcGluZ3MYAyADKAsyMy5hcHBzLnYxLkNvbmZpcm1JbnN0YWxsQXBwUmVxdWVzdC5TaW5rTWFwcGluZ3NFbnRyeRIuCghzZXR0aW5ncxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARJdChdwbGFjZW1lbnRfZmllbGRfY2hvaWNlcxgFIAMoCzI8LmFwcHMudjEuQ29uZmlybUluc3RhbGxBcHBSZXF1ZXN0LlBsYWNlbWVudEZpZWxkQ2hvaWNlc0VudHJ5EhwKFHVwZGF0ZV9wdXNoX3NuYXBzaG90GAYgASgIGk0KE1NvdXJjZU1hcHBpbmdzRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVlGAIgASgLMhYuYXBwcy52MS5Tb3VyY2VNYXBwaW5nOgI4ARpJChFTaW5rTWFwcGluZ3NFbnRyeRILCgNrZXkYASABKAkSIwoFdmFsdWUYAiABKAsyFC5hcHBzLnYxLlNpbmtNYXBwaW5nOgI4ARpbChpQbGFjZW1lbnRGaWVsZENob2ljZXNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKAsyHS5hcHBzLnYxLlBsYWNlbWVudEZpZWxkQ2hvaWNlOgI4AUILCglfc2V0dGluZ3MiNgoZQ29uZmlybUluc3RhbGxBcHBSZXNwb25zZRIZCgNhcHAYASABKAsyDC5hcHBzLnYxLkFwcCJHChBVcGRhdGVBcHBSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEgwKBG5hbWUYAyABKAkilgEKEVVwZGF0ZUFwcFJlc3BvbnNlEhkKEW5ld19tYW5pZmVzdF9oYXNoGAEgASgJEigKDG5ld19tYW5pZmVzdBgCIAEoCzISLmFwcHMudjEuQXBwQ29uZmlnEigKB2NoYW5nZXMYAyADKAsyFy5hcHBzLnYxLk1hbmlmZXN0Q2hhbmdlEhIKCm5vX2NoYW5nZXMYBCABKAgiywEKDk1hbmlmZXN0Q2hhbmdlEiwKBWNsYXNzGAEgASgOMh0uYXBwcy52MS5NYW5pZmVzdENoYW5nZS5DbGFzcxIMCgRwYXRoGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJImgKBUNsYXNzEhUKEUNMQVNTX1VOU1BFQ0lGSUVEEAASEwoPQ0xBU1NfU0FGRV9BVVRPEAESHwobQ0xBU1NfUkVRVUlSRVNfQ09ORklSTUFUSU9OEAISEgoOQ0xBU1NfUkVKRUNURUQQAyJ4ChdDb25maXJtVXBkYXRlQXBwUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIMCgRuYW1lGAMgASgJEhkKEW5ld19tYW5pZmVzdF9oYXNoGAQgASgJEg0KBWZvcmNlGAUgASgIIjUKGENvbmZpcm1VcGRhdGVBcHBSZXNwb25zZRIZCgNhcHAYASABKAsyDC5hcHBzLnYxLkFwcCJZChNVbmluc3RhbGxBcHBSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEgwKBG5hbWUYAyABKAkSDQoFZm9yY2UYBCABKAgiNwoUVW5pbnN0YWxsQXBwUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIOCgZmb3JjZWQYAiABKAgi5gQKFFNldEFwcE1hcHBpbmdSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEgwKBG5hbWUYAyABKAkSSgoPc291cmNlX21hcHBpbmdzGAQgAygLMjEuYXBwcy52MS5TZXRBcHBNYXBwaW5nUmVxdWVzdC5Tb3VyY2VNYXBwaW5nc0VudHJ5EkYKDXNpbmtfbWFwcGluZ3MYBSADKAsyLy5hcHBzLnYxLlNldEFwcE1hcHBpbmdSZXF1ZXN0LlNpbmtNYXBwaW5nc0VudHJ5ElkKF3BsYWNlbWVudF9maWVsZF9jaG9pY2VzGAYgAygLMjguYXBwcy52MS5TZXRBcHBNYXBwaW5nUmVxdWVzdC5QbGFjZW1lbnRGaWVsZENob2ljZXNFbnRyeRIcChR1cGRhdGVfcHVzaF9zbmFwc2hvdBgHIAEoCBIVCg1zbmFwc2hvdF9vbmx5GAggASgIGk0KE1NvdXJjZU1hcHBpbmdzRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVlGAIgASgLMhYuYXBwcy52MS5Tb3VyY2VNYXBwaW5nOgI4ARpJChFTaW5rTWFwcGluZ3NFbnRyeRILCgNrZXkYASABKAkSIwoFdmFsdWUYAiABKAsyFC5hcHBzLnYxLlNpbmtNYXBwaW5nOgI4ARpbChpQbGFjZW1lbnRGaWVsZENob2ljZXNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKAsyHS5hcHBzLnYxLlBsYWNlbWVudEZpZWxkQ2hvaWNlOgI4ASIyChVTZXRBcHBNYXBwaW5nUmVzcG9uc2USGQoDYXBwGAEgASgLMgwuYXBwcy52MS5BcHAiVAoXVmFsaWRhdGVNYW5pZmVzdFJlcXVlc3QSFgoMbWFuaWZlc3RfdXJsGAEgASgJSAASFwoNbWFuaWZlc3RfanNvbhgCIAEoCUgAQggKBnNvdXJjZSK1AQoPVmFsaWRhdGlvbklzc3VlEjMKCHNldmVyaXR5GAEgASgOMiEuYXBwcy52MS5WYWxpZGF0aW9uSXNzdWUuU2V2ZXJpdHkSDAoEcGF0aBgCIAEoCRIPCgdtZXNzYWdlGAMgASgJIk4KCFNldmVyaXR5EhgKFFNFVkVSSVRZX1VOU1BFQ0lGSUVEEAASEgoOU0VWRVJJVFlfRVJST1IQARIUChBTRVZFUklUWV9XQVJOSU5HEAIiUAoYVmFsaWRhdGVNYW5pZmVzdFJlc3BvbnNlEigKBmlzc3VlcxgBIAMoCzIYLmFwcHMudjEuVmFsaWRhdGlvbklzc3VlEgoKAm9rGAIgASgIIo4BChdUcmlnZ2VyT3BlcmF0aW9uUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIVCg1vcGVyYXRpb25fa2V5GAMgASgJEisKBWlucHV0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQggKBl9pbnB1dCIwChhUcmlnZ2VyT3BlcmF0aW9uUmVzcG9uc2USFAoMZXhlY3V0aW9uX2lkGAEgASgJIn0KGUNvbXBsZXRlQXBwSW5zdGFsbFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIYXBwX25hbWUYAyABKAkSJwoGdmFsdWVzGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCItChpDb21wbGV0ZUFwcEluc3RhbGxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIInwKGlJvdGF0ZUFwcENyZWRlbnRpYWxSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhAKCGFwcF9uYW1lGAMgASgJEhIKCmZpZWxkX25hbWUYBCABKAkSEQoJcGxhaW50ZXh0GAUgASgMIi4KG1JvdGF0ZUFwcENyZWRlbnRpYWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIlgKHUdldEFwcENyZWRlbnRpYWxTdHJ1Y3RSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhAKCGFwcF9uYW1lGAMgASgJIlwKHkdldEFwcENyZWRlbnRpYWxTdHJ1Y3RSZXNwb25zZRInCgZ2YWx1ZXMYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhEKCXBvcHVsYXRlZBgCIAEoCCJkCilBcHBJbnN0YWxsYXRpb25TZXJ2aWNlVW5pbnN0YWxsQXBwUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIQCghhcHBfbmFtZRgDIAEoCSI9CipBcHBJbnN0YWxsYXRpb25TZXJ2aWNlVW5pbnN0YWxsQXBwUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJVChpJc3N1ZUV4Y2hhbmdlVGlja2V0UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIQCghhcHBfbmFtZRgDIAEoCSJdChtJc3N1ZUV4Y2hhbmdlVGlja2V0UmVzcG9uc2USDgoGdGlja2V0GAEgASgJEi4KCmV4cGlyZXNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIi0KG1JlZGVlbUV4Y2hhbmdlVGlja2V0UmVxdWVzdBIOCgZ0aWNrZXQYASABKAkiZAocUmVkZWVtRXhjaGFuZ2VUaWNrZXRSZXNwb25zZRIUCgxzY29wZWRfdG9rZW4YASABKAkSLgoKZXhwaXJlc19hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiMgoZUmVmcmVzaFNjb3BlZFRva2VuUmVxdWVzdBIVCg1jdXJyZW50X3Rva2VuGAEgASgJImIKGlJlZnJlc2hTY29wZWRUb2tlblJlc3BvbnNlEhQKDHNjb3BlZF90b2tlbhgBIAEoCRIuCgpleHBpcmVzX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL7BAoJQXBwU3RhdHVzEhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhAKCGFwcF9uYW1lGAMgASgJEjUKDGxhc3Rfc3luY19hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIiChVsYXN0X3N5bmNfZHVyYXRpb25fbXMYBSABKANIAYgBARIjChZsYXN0X3N5bmNfcmVjb3JkX2NvdW50GAYgASgDSAKIAQESFwoKbGFzdF9lcnJvchgHIAEoCUgDiAEBEjYKDWxhc3RfZXJyb3JfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESGwoTc3Vic2NyaXB0aW9uX2hlYWx0aBgJIAEoCRITCgthdXRoX3N0YXR1cxgKIAEoCRIeChFkZWxldGlvbl9zdHJhdGVneRgLIAEoCUgFiAEBEisKBWV4dHJhGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKDnVwZGF0ZWRfYnlfanRpGA4gASgJSAeIAQFCDwoNX2xhc3Rfc3luY19hdEIYChZfbGFzdF9zeW5jX2R1cmF0aW9uX21zQhkKF19sYXN0X3N5bmNfcmVjb3JkX2NvdW50Qg0KC19sYXN0X2Vycm9yQhAKDl9sYXN0X2Vycm9yX2F0QhQKEl9kZWxldGlvbl9zdHJhdGVneUIICgZfZXh0cmFCEQoPX3VwZGF0ZWRfYnlfanRpIk4KE0dldEFwcFN0YXR1c1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIYXBwX25hbWUYAyABKAkiOgoUR2V0QXBwU3RhdHVzUmVzcG9uc2USIgoGc3RhdHVzGAEgASgLMhIuYXBwcy52MS5BcHBTdGF0dXMiPAoWVXBzZXJ0QXBwU3RhdHVzUmVxdWVzdBIiCgZzdGF0dXMYASABKAsyEi5hcHBzLnYxLkFwcFN0YXR1cyIqChdVcHNlcnRBcHBTdGF0dXNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIuYBCghBcHBFdmVudBIKCgJpZBgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSEgoKcHJvamVjdF9pZBgDIAEoCRIQCghhcHBfbmFtZRgEIAEoCRINCgVldmVudBgFIAEoCRISCgVhY3RvchgGIAEoCUgAiAEBEiwKBmRldGFpbBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIvCgtvY2N1cnJlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCAoGX2FjdG9yQgkKB19kZXRhaWwi/gEKFExpc3RBcHBFdmVudHNSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhAKCGFwcF9uYW1lGAMgASgJEhIKBWFmdGVyGAQgASgJSACIAQESEwoGYmVmb3JlGAUgASgJSAGIAQESEgoFZmlyc3QYBiABKAVIAogBARIRCgRsYXN0GAcgASgFSAOIAQESKwoFd2hlcmUYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QggKBl93aGVyZSKGAQoVTGlzdEFwcEV2ZW50c1Jlc3BvbnNlEiEKBmV2ZW50cxgBIAMoCzIRLmFwcHMudjEuQXBwRXZlbnQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvMpgGCgtBcHBzU2VydmljZRI/CghMaXN0QXBwcxIYLmFwcHMudjEuTGlzdEFwcHNSZXF1ZXN0GhkuYXBwcy52MS5MaXN0QXBwc1Jlc3BvbnNlEjkKBkdldEFwcBIWLmFwcHMudjEuR2V0QXBwUmVxdWVzdBoXLmFwcHMudjEuR2V0QXBwUmVzcG9uc2USRQoKSW5zdGFsbEFwcBIaLmFwcHMudjEuSW5zdGFsbEFwcFJlcXVlc3QaGy5hcHBzLnYxLkluc3RhbGxBcHBSZXNwb25zZRJaChFDb25maXJtSW5zdGFsbEFwcBIhLmFwcHMudjEuQ29uZmlybUluc3RhbGxBcHBSZXF1ZXN0GiIuYXBwcy52MS5Db25maXJtSW5zdGFsbEFwcFJlc3BvbnNlEkIKCVVwZGF0ZUFwcBIZLmFwcHMudjEuVXBkYXRlQXBwUmVxdWVzdBoaLmFwcHMudjEuVXBkYXRlQXBwUmVzcG9uc2USVwoQQ29uZmlybVVwZGF0ZUFwcBIgLmFwcHMudjEuQ29uZmlybVVwZGF0ZUFwcFJlcXVlc3QaIS5hcHBzLnYxLkNvbmZpcm1VcGRhdGVBcHBSZXNwb25zZRJLCgxVbmluc3RhbGxBcHASHC5hcHBzLnYxLlVuaW5zdGFsbEFwcFJlcXVlc3QaHS5hcHBzLnYxLlVuaW5zdGFsbEFwcFJlc3BvbnNlEk4KDVNldEFwcE1hcHBpbmcSHS5hcHBzLnYxLlNldEFwcE1hcHBpbmdSZXF1ZXN0Gh4uYXBwcy52MS5TZXRBcHBNYXBwaW5nUmVzcG9uc2USVwoQVmFsaWRhdGVNYW5pZmVzdBIgLmFwcHMudjEuVmFsaWRhdGVNYW5pZmVzdFJlcXVlc3QaIS5hcHBzLnYxLlZhbGlkYXRlTWFuaWZlc3RSZXNwb25zZRJXChBUcmlnZ2VyT3BlcmF0aW9uEiAuYXBwcy52MS5UcmlnZ2VyT3BlcmF0aW9uUmVxdWVzdBohLmFwcHMudjEuVHJpZ2dlck9wZXJhdGlvblJlc3BvbnNlMr0DChZBcHBJbnN0YWxsYXRpb25TZXJ2aWNlEl0KEkNvbXBsZXRlQXBwSW5zdGFsbBIiLmFwcHMudjEuQ29tcGxldGVBcHBJbnN0YWxsUmVxdWVzdBojLmFwcHMudjEuQ29tcGxldGVBcHBJbnN0YWxsUmVzcG9uc2USYAoTUm90YXRlQXBwQ3JlZGVudGlhbBIjLmFwcHMudjEuUm90YXRlQXBwQ3JlZGVudGlhbFJlcXVlc3QaJC5hcHBzLnYxLlJvdGF0ZUFwcENyZWRlbnRpYWxSZXNwb25zZRJpChZHZXRBcHBDcmVkZW50aWFsU3RydWN0EiYuYXBwcy52MS5HZXRBcHBDcmVkZW50aWFsU3RydWN0UmVxdWVzdBonLmFwcHMudjEuR2V0QXBwQ3JlZGVudGlhbFN0cnVjdFJlc3BvbnNlEncKDFVuaW5zdGFsbEFwcBIyLmFwcHMudjEuQXBwSW5zdGFsbGF0aW9uU2VydmljZVVuaW5zdGFsbEFwcFJlcXVlc3QaMy5hcHBzLnYxLkFwcEluc3RhbGxhdGlvblNlcnZpY2VVbmluc3RhbGxBcHBSZXNwb25zZTK2AgoOQXBwQXV0aFNlcnZpY2USYAoTSXNzdWVFeGNoYW5nZVRpY2tldBIjLmFwcHMudjEuSXNzdWVFeGNoYW5nZVRpY2tldFJlcXVlc3QaJC5hcHBzLnYxLklzc3VlRXhjaGFuZ2VUaWNrZXRSZXNwb25zZRJjChRSZWRlZW1FeGNoYW5nZVRpY2tldBIkLmFwcHMudjEuUmVkZWVtRXhjaGFuZ2VUaWNrZXRSZXF1ZXN0GiUuYXBwcy52MS5SZWRlZW1FeGNoYW5nZVRpY2tldFJlc3BvbnNlEl0KElJlZnJlc2hTY29wZWRUb2tlbhIiLmFwcHMudjEuUmVmcmVzaFNjb3BlZFRva2VuUmVxdWVzdBojLmFwcHMudjEuUmVmcmVzaFNjb3BlZFRva2VuUmVzcG9uc2UyhQIKEEFwcFN0YXR1c1NlcnZpY2USSwoMR2V0QXBwU3RhdHVzEhwuYXBwcy52MS5HZXRBcHBTdGF0dXNSZXF1ZXN0Gh0uYXBwcy52MS5HZXRBcHBTdGF0dXNSZXNwb25zZRJUCg9VcHNlcnRBcHBTdGF0dXMSHy5hcHBzLnYxLlVwc2VydEFwcFN0YXR1c1JlcXVlc3QaIC5hcHBzLnYxLlVwc2VydEFwcFN0YXR1c1Jlc3BvbnNlEk4KDUxpc3RBcHBFdmVudHMSHS5hcHBzLnYxLkxpc3RBcHBFdmVudHNSZXF1ZXN0Gh4uYXBwcy52MS5MaXN0QXBwRXZlbnRzUmVzcG9uc2VCNVozZ2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL2FwcHMvdjE7YXBwc3YxYgZwcm90bzM", [file_apps_v1_apps, file_google_protobuf_struct13, file_google_protobuf_timestamp14, file_common_v1_pagination]);
881
- var AppSchema = /* @__PURE__ */ messageDesc18(file_apps_v1_apps_service, 0);
882
- var ListAppsRequestSchema = /* @__PURE__ */ messageDesc18(file_apps_v1_apps_service, 5);
883
- var GetAppRequestSchema = /* @__PURE__ */ messageDesc18(file_apps_v1_apps_service, 7);
884
- var InstallAppRequestSchema = /* @__PURE__ */ messageDesc18(file_apps_v1_apps_service, 9);
885
- var ConfirmInstallAppRequestSchema = /* @__PURE__ */ messageDesc18(file_apps_v1_apps_service, 11);
886
- var UpdateAppRequestSchema = /* @__PURE__ */ messageDesc18(file_apps_v1_apps_service, 13);
887
- var ConfirmUpdateAppRequestSchema = /* @__PURE__ */ messageDesc18(file_apps_v1_apps_service, 16);
888
- var UninstallAppRequestSchema = /* @__PURE__ */ messageDesc18(file_apps_v1_apps_service, 18);
889
- var SetAppMappingRequestSchema = /* @__PURE__ */ messageDesc18(file_apps_v1_apps_service, 20);
890
- var ValidateManifestRequestSchema = /* @__PURE__ */ messageDesc18(file_apps_v1_apps_service, 22);
891
- var ValidateManifestResponseSchema = /* @__PURE__ */ messageDesc18(file_apps_v1_apps_service, 24);
892
- var TriggerOperationRequestSchema = /* @__PURE__ */ messageDesc18(file_apps_v1_apps_service, 25);
893
- var AppsService = /* @__PURE__ */ serviceDesc12(file_apps_v1_apps_service, 0);
907
+ var file_apps_v1_apps_service = /* @__PURE__ */ fileDesc19("ChphcHBzL3YxL2FwcHNfc2VydmljZS5wcm90bxIHYXBwcy52MSKRBAoDQXBwEgoKAmlkGAEgASgJEhEKCXRlbmFudF9pZBgCIAEoCRISCgpwcm9qZWN0X2lkGAMgASgJEgwKBG5hbWUYBCABKAkSFAoMbWFuaWZlc3RfdXJsGAUgASgJEhUKDW1hbmlmZXN0X2hhc2gYBiABKAkSJAoIbWFuaWZlc3QYByABKAsyEi5hcHBzLnYxLkFwcENvbmZpZxIpCghzZXR0aW5ncxgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSKQoIbWFwcGluZ3MYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB2VuYWJsZWQYCiABKAgSMAoMaW5zdGFsbGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIZCgxpbnN0YWxsZWRfYnkYDCABKAlIAIgBARIuCgp1cGRhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1ChRsYXN0X3B1c2hlZF9tYXBwaW5ncxgOIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNwoObGFzdF9wdXNoZWRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQFCDwoNX2luc3RhbGxlZF9ieUIRCg9fbGFzdF9wdXNoZWRfYXQimQEKDVNvdXJjZU1hcHBpbmcSEAoIdG9fbW9kZWwYASABKAkSEwoLbmF0dXJhbF9rZXkYAiABKAkSMgoGZmllbGRzGAMgAygLMiIuYXBwcy52MS5Tb3VyY2VNYXBwaW5nLkZpZWxkc0VudHJ5Gi0KC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEilQEKC1NpbmtNYXBwaW5nEhAKCHRvX21vZGVsGAEgASgJEhMKC25hdHVyYWxfa2V5GAIgASgJEjAKBmZpZWxkcxgDIAMoCzIgLmFwcHMudjEuU2lua01hcHBpbmcuRmllbGRzRW50cnkaLQoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI0ChRQbGFjZW1lbnRGaWVsZENob2ljZRINCgVtb2RlbBgBIAEoCRINCgVmaWVsZBgCIAEoCSLdAgoRQXBwSW5zdGFsbFByZXZpZXcSJAoIbWFuaWZlc3QYASABKAsyEi5hcHBzLnYxLkFwcENvbmZpZxIVCg1tYW5pZmVzdF9oYXNoGAIgASgJEhwKFG9wZXJhdGlvbnNfdG9fY3JlYXRlGAMgAygJEhcKD2hvb2tzX3RvX2NyZWF0ZRgEIAMoCRIcChRwbGFjZW1lbnRzX3RvX2NyZWF0ZRgFIAMoCRI6ChNjcmVkZW50aWFsX3N0cmF0ZWd5GAYgASgOMh0uYXBwcy52MS5DcmVkZW50aWFscy5TdHJhdGVneRIbChNzb3VyY2VfdHlwZXNfdG9fbWFwGAcgAygJEh0KFXNpbmtfY29udHJhY3RzX3RvX21hcBgIIAMoCRIpCiFwbGFjZW1lbnRzX3JlcXVpcmluZ19maWVsZF9jaG9pY2UYCSADKAkSEwoLd2ViaG9va191cmwYCiABKAki5wEKD0xpc3RBcHBzUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRISCgVmaXJzdBgDIAEoBUgAiAEBEhIKBWFmdGVyGAQgASgJSAGIAQESEQoEbGFzdBgFIAEoBUgCiAEBEhMKBmJlZm9yZRgGIAEoCUgDiAEBEisKBXdoZXJlGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQggKBl9maXJzdEIICgZfYWZ0ZXJCBwoFX2xhc3RCCQoHX2JlZm9yZUIICgZfd2hlcmUiiQEKEExpc3RBcHBzUmVzcG9uc2USGgoEYXBwcxgBIAMoCzIMLmFwcHMudjEuQXBwEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyJECg1HZXRBcHBSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEgwKBG5hbWUYAyABKAkiKwoOR2V0QXBwUmVzcG9uc2USGQoDYXBwGAEgASgLMgwuYXBwcy52MS5BcHAiUAoRSW5zdGFsbEFwcFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSFAoMbWFuaWZlc3RfdXJsGAMgASgJIokBChJJbnN0YWxsQXBwUmVzcG9uc2USFgoOaW5zdGFsbF90aWNrZXQYASABKAkSKwoHcHJldmlldxgCIAEoCzIaLmFwcHMudjEuQXBwSW5zdGFsbFByZXZpZXcSLgoKZXhwaXJlc19hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi/wQKGENvbmZpcm1JbnN0YWxsQXBwUmVxdWVzdBIWCg5pbnN0YWxsX3RpY2tldBgBIAEoCRJOCg9zb3VyY2VfbWFwcGluZ3MYAiADKAsyNS5hcHBzLnYxLkNvbmZpcm1JbnN0YWxsQXBwUmVxdWVzdC5Tb3VyY2VNYXBwaW5nc0VudHJ5EkoKDXNpbmtfbWFwcGluZ3MYAyADKAsyMy5hcHBzLnYxLkNvbmZpcm1JbnN0YWxsQXBwUmVxdWVzdC5TaW5rTWFwcGluZ3NFbnRyeRIuCghzZXR0aW5ncxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARJdChdwbGFjZW1lbnRfZmllbGRfY2hvaWNlcxgFIAMoCzI8LmFwcHMudjEuQ29uZmlybUluc3RhbGxBcHBSZXF1ZXN0LlBsYWNlbWVudEZpZWxkQ2hvaWNlc0VudHJ5EhwKFHVwZGF0ZV9wdXNoX3NuYXBzaG90GAYgASgIGk0KE1NvdXJjZU1hcHBpbmdzRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVlGAIgASgLMhYuYXBwcy52MS5Tb3VyY2VNYXBwaW5nOgI4ARpJChFTaW5rTWFwcGluZ3NFbnRyeRILCgNrZXkYASABKAkSIwoFdmFsdWUYAiABKAsyFC5hcHBzLnYxLlNpbmtNYXBwaW5nOgI4ARpbChpQbGFjZW1lbnRGaWVsZENob2ljZXNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKAsyHS5hcHBzLnYxLlBsYWNlbWVudEZpZWxkQ2hvaWNlOgI4AUILCglfc2V0dGluZ3MiNgoZQ29uZmlybUluc3RhbGxBcHBSZXNwb25zZRIZCgNhcHAYASABKAsyDC5hcHBzLnYxLkFwcCJHChBVcGRhdGVBcHBSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEgwKBG5hbWUYAyABKAkilgEKEVVwZGF0ZUFwcFJlc3BvbnNlEhkKEW5ld19tYW5pZmVzdF9oYXNoGAEgASgJEigKDG5ld19tYW5pZmVzdBgCIAEoCzISLmFwcHMudjEuQXBwQ29uZmlnEigKB2NoYW5nZXMYAyADKAsyFy5hcHBzLnYxLk1hbmlmZXN0Q2hhbmdlEhIKCm5vX2NoYW5nZXMYBCABKAgiywEKDk1hbmlmZXN0Q2hhbmdlEiwKBWNsYXNzGAEgASgOMh0uYXBwcy52MS5NYW5pZmVzdENoYW5nZS5DbGFzcxIMCgRwYXRoGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJImgKBUNsYXNzEhUKEUNMQVNTX1VOU1BFQ0lGSUVEEAASEwoPQ0xBU1NfU0FGRV9BVVRPEAESHwobQ0xBU1NfUkVRVUlSRVNfQ09ORklSTUFUSU9OEAISEgoOQ0xBU1NfUkVKRUNURUQQAyJ4ChdDb25maXJtVXBkYXRlQXBwUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIMCgRuYW1lGAMgASgJEhkKEW5ld19tYW5pZmVzdF9oYXNoGAQgASgJEg0KBWZvcmNlGAUgASgIIjUKGENvbmZpcm1VcGRhdGVBcHBSZXNwb25zZRIZCgNhcHAYASABKAsyDC5hcHBzLnYxLkFwcCJZChNVbmluc3RhbGxBcHBSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEgwKBG5hbWUYAyABKAkSDQoFZm9yY2UYBCABKAgiNwoUVW5pbnN0YWxsQXBwUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIOCgZmb3JjZWQYAiABKAgi5gQKFFNldEFwcE1hcHBpbmdSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEgwKBG5hbWUYAyABKAkSSgoPc291cmNlX21hcHBpbmdzGAQgAygLMjEuYXBwcy52MS5TZXRBcHBNYXBwaW5nUmVxdWVzdC5Tb3VyY2VNYXBwaW5nc0VudHJ5EkYKDXNpbmtfbWFwcGluZ3MYBSADKAsyLy5hcHBzLnYxLlNldEFwcE1hcHBpbmdSZXF1ZXN0LlNpbmtNYXBwaW5nc0VudHJ5ElkKF3BsYWNlbWVudF9maWVsZF9jaG9pY2VzGAYgAygLMjguYXBwcy52MS5TZXRBcHBNYXBwaW5nUmVxdWVzdC5QbGFjZW1lbnRGaWVsZENob2ljZXNFbnRyeRIcChR1cGRhdGVfcHVzaF9zbmFwc2hvdBgHIAEoCBIVCg1zbmFwc2hvdF9vbmx5GAggASgIGk0KE1NvdXJjZU1hcHBpbmdzRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVlGAIgASgLMhYuYXBwcy52MS5Tb3VyY2VNYXBwaW5nOgI4ARpJChFTaW5rTWFwcGluZ3NFbnRyeRILCgNrZXkYASABKAkSIwoFdmFsdWUYAiABKAsyFC5hcHBzLnYxLlNpbmtNYXBwaW5nOgI4ARpbChpQbGFjZW1lbnRGaWVsZENob2ljZXNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKAsyHS5hcHBzLnYxLlBsYWNlbWVudEZpZWxkQ2hvaWNlOgI4ASIyChVTZXRBcHBNYXBwaW5nUmVzcG9uc2USGQoDYXBwGAEgASgLMgwuYXBwcy52MS5BcHAiVAoXVmFsaWRhdGVNYW5pZmVzdFJlcXVlc3QSFgoMbWFuaWZlc3RfdXJsGAEgASgJSAASFwoNbWFuaWZlc3RfanNvbhgCIAEoCUgAQggKBnNvdXJjZSK1AQoPVmFsaWRhdGlvbklzc3VlEjMKCHNldmVyaXR5GAEgASgOMiEuYXBwcy52MS5WYWxpZGF0aW9uSXNzdWUuU2V2ZXJpdHkSDAoEcGF0aBgCIAEoCRIPCgdtZXNzYWdlGAMgASgJIk4KCFNldmVyaXR5EhgKFFNFVkVSSVRZX1VOU1BFQ0lGSUVEEAASEgoOU0VWRVJJVFlfRVJST1IQARIUChBTRVZFUklUWV9XQVJOSU5HEAIiUAoYVmFsaWRhdGVNYW5pZmVzdFJlc3BvbnNlEigKBmlzc3VlcxgBIAMoCzIYLmFwcHMudjEuVmFsaWRhdGlvbklzc3VlEgoKAm9rGAIgASgIIo4BChdUcmlnZ2VyT3BlcmF0aW9uUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIVCg1vcGVyYXRpb25fa2V5GAMgASgJEisKBWlucHV0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQggKBl9pbnB1dCIwChhUcmlnZ2VyT3BlcmF0aW9uUmVzcG9uc2USFAoMZXhlY3V0aW9uX2lkGAEgASgJIn0KGUNvbXBsZXRlQXBwSW5zdGFsbFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIYXBwX25hbWUYAyABKAkSJwoGdmFsdWVzGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCItChpDb21wbGV0ZUFwcEluc3RhbGxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIInwKGlJvdGF0ZUFwcENyZWRlbnRpYWxSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhAKCGFwcF9uYW1lGAMgASgJEhIKCmZpZWxkX25hbWUYBCABKAkSEQoJcGxhaW50ZXh0GAUgASgMIi4KG1JvdGF0ZUFwcENyZWRlbnRpYWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIlgKHUdldEFwcENyZWRlbnRpYWxTdHJ1Y3RSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhAKCGFwcF9uYW1lGAMgASgJIlwKHkdldEFwcENyZWRlbnRpYWxTdHJ1Y3RSZXNwb25zZRInCgZ2YWx1ZXMYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhEKCXBvcHVsYXRlZBgCIAEoCCJkCilBcHBJbnN0YWxsYXRpb25TZXJ2aWNlVW5pbnN0YWxsQXBwUmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIQCghhcHBfbmFtZRgDIAEoCSI9CipBcHBJbnN0YWxsYXRpb25TZXJ2aWNlVW5pbnN0YWxsQXBwUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJVChpJc3N1ZUV4Y2hhbmdlVGlja2V0UmVxdWVzdBIRCgl0ZW5hbnRfaWQYASABKAkSEgoKcHJvamVjdF9pZBgCIAEoCRIQCghhcHBfbmFtZRgDIAEoCSJdChtJc3N1ZUV4Y2hhbmdlVGlja2V0UmVzcG9uc2USDgoGdGlja2V0GAEgASgJEi4KCmV4cGlyZXNfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIi0KG1JlZGVlbUV4Y2hhbmdlVGlja2V0UmVxdWVzdBIOCgZ0aWNrZXQYASABKAkiZAocUmVkZWVtRXhjaGFuZ2VUaWNrZXRSZXNwb25zZRIUCgxzY29wZWRfdG9rZW4YASABKAkSLgoKZXhwaXJlc19hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiMgoZUmVmcmVzaFNjb3BlZFRva2VuUmVxdWVzdBIVCg1jdXJyZW50X3Rva2VuGAEgASgJImIKGlJlZnJlc2hTY29wZWRUb2tlblJlc3BvbnNlEhQKDHNjb3BlZF90b2tlbhgBIAEoCRIuCgpleHBpcmVzX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL7BAoJQXBwU3RhdHVzEhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhAKCGFwcF9uYW1lGAMgASgJEjUKDGxhc3Rfc3luY19hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIiChVsYXN0X3N5bmNfZHVyYXRpb25fbXMYBSABKANIAYgBARIjChZsYXN0X3N5bmNfcmVjb3JkX2NvdW50GAYgASgDSAKIAQESFwoKbGFzdF9lcnJvchgHIAEoCUgDiAEBEjYKDWxhc3RfZXJyb3JfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESGwoTc3Vic2NyaXB0aW9uX2hlYWx0aBgJIAEoCRITCgthdXRoX3N0YXR1cxgKIAEoCRIeChFkZWxldGlvbl9zdHJhdGVneRgLIAEoCUgFiAEBEisKBWV4dHJhGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgGiAEBEi4KCnVwZGF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKDnVwZGF0ZWRfYnlfanRpGA4gASgJSAeIAQFCDwoNX2xhc3Rfc3luY19hdEIYChZfbGFzdF9zeW5jX2R1cmF0aW9uX21zQhkKF19sYXN0X3N5bmNfcmVjb3JkX2NvdW50Qg0KC19sYXN0X2Vycm9yQhAKDl9sYXN0X2Vycm9yX2F0QhQKEl9kZWxldGlvbl9zdHJhdGVneUIICgZfZXh0cmFCEQoPX3VwZGF0ZWRfYnlfanRpIk4KE0dldEFwcFN0YXR1c1JlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEAoIYXBwX25hbWUYAyABKAkiOgoUR2V0QXBwU3RhdHVzUmVzcG9uc2USIgoGc3RhdHVzGAEgASgLMhIuYXBwcy52MS5BcHBTdGF0dXMiPAoWVXBzZXJ0QXBwU3RhdHVzUmVxdWVzdBIiCgZzdGF0dXMYASABKAsyEi5hcHBzLnYxLkFwcFN0YXR1cyIqChdVcHNlcnRBcHBTdGF0dXNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIuYBCghBcHBFdmVudBIKCgJpZBgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSEgoKcHJvamVjdF9pZBgDIAEoCRIQCghhcHBfbmFtZRgEIAEoCRINCgVldmVudBgFIAEoCRISCgVhY3RvchgGIAEoCUgAiAEBEiwKBmRldGFpbBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIvCgtvY2N1cnJlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCAoGX2FjdG9yQgkKB19kZXRhaWwi/gEKFExpc3RBcHBFdmVudHNSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhAKCGFwcF9uYW1lGAMgASgJEhIKBWFmdGVyGAQgASgJSACIAQESEwoGYmVmb3JlGAUgASgJSAGIAQESEgoFZmlyc3QYBiABKAVIAogBARIRCgRsYXN0GAcgASgFSAOIAQESKwoFd2hlcmUYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0QggKBl93aGVyZSKGAQoVTGlzdEFwcEV2ZW50c1Jlc3BvbnNlEiEKBmV2ZW50cxgBIAMoCzIRLmFwcHMudjEuQXBwRXZlbnQSKwoJcGFnZV9pbmZvGAIgASgLMhMuY29tbW9uLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgDIAMoCUIMCgpfcGFnZV9pbmZvMpgGCgtBcHBzU2VydmljZRI/CghMaXN0QXBwcxIYLmFwcHMudjEuTGlzdEFwcHNSZXF1ZXN0GhkuYXBwcy52MS5MaXN0QXBwc1Jlc3BvbnNlEjkKBkdldEFwcBIWLmFwcHMudjEuR2V0QXBwUmVxdWVzdBoXLmFwcHMudjEuR2V0QXBwUmVzcG9uc2USRQoKSW5zdGFsbEFwcBIaLmFwcHMudjEuSW5zdGFsbEFwcFJlcXVlc3QaGy5hcHBzLnYxLkluc3RhbGxBcHBSZXNwb25zZRJaChFDb25maXJtSW5zdGFsbEFwcBIhLmFwcHMudjEuQ29uZmlybUluc3RhbGxBcHBSZXF1ZXN0GiIuYXBwcy52MS5Db25maXJtSW5zdGFsbEFwcFJlc3BvbnNlEkIKCVVwZGF0ZUFwcBIZLmFwcHMudjEuVXBkYXRlQXBwUmVxdWVzdBoaLmFwcHMudjEuVXBkYXRlQXBwUmVzcG9uc2USVwoQQ29uZmlybVVwZGF0ZUFwcBIgLmFwcHMudjEuQ29uZmlybVVwZGF0ZUFwcFJlcXVlc3QaIS5hcHBzLnYxLkNvbmZpcm1VcGRhdGVBcHBSZXNwb25zZRJLCgxVbmluc3RhbGxBcHASHC5hcHBzLnYxLlVuaW5zdGFsbEFwcFJlcXVlc3QaHS5hcHBzLnYxLlVuaW5zdGFsbEFwcFJlc3BvbnNlEk4KDVNldEFwcE1hcHBpbmcSHS5hcHBzLnYxLlNldEFwcE1hcHBpbmdSZXF1ZXN0Gh4uYXBwcy52MS5TZXRBcHBNYXBwaW5nUmVzcG9uc2USVwoQVmFsaWRhdGVNYW5pZmVzdBIgLmFwcHMudjEuVmFsaWRhdGVNYW5pZmVzdFJlcXVlc3QaIS5hcHBzLnYxLlZhbGlkYXRlTWFuaWZlc3RSZXNwb25zZRJXChBUcmlnZ2VyT3BlcmF0aW9uEiAuYXBwcy52MS5UcmlnZ2VyT3BlcmF0aW9uUmVxdWVzdBohLmFwcHMudjEuVHJpZ2dlck9wZXJhdGlvblJlc3BvbnNlMr0DChZBcHBJbnN0YWxsYXRpb25TZXJ2aWNlEl0KEkNvbXBsZXRlQXBwSW5zdGFsbBIiLmFwcHMudjEuQ29tcGxldGVBcHBJbnN0YWxsUmVxdWVzdBojLmFwcHMudjEuQ29tcGxldGVBcHBJbnN0YWxsUmVzcG9uc2USYAoTUm90YXRlQXBwQ3JlZGVudGlhbBIjLmFwcHMudjEuUm90YXRlQXBwQ3JlZGVudGlhbFJlcXVlc3QaJC5hcHBzLnYxLlJvdGF0ZUFwcENyZWRlbnRpYWxSZXNwb25zZRJpChZHZXRBcHBDcmVkZW50aWFsU3RydWN0EiYuYXBwcy52MS5HZXRBcHBDcmVkZW50aWFsU3RydWN0UmVxdWVzdBonLmFwcHMudjEuR2V0QXBwQ3JlZGVudGlhbFN0cnVjdFJlc3BvbnNlEncKDFVuaW5zdGFsbEFwcBIyLmFwcHMudjEuQXBwSW5zdGFsbGF0aW9uU2VydmljZVVuaW5zdGFsbEFwcFJlcXVlc3QaMy5hcHBzLnYxLkFwcEluc3RhbGxhdGlvblNlcnZpY2VVbmluc3RhbGxBcHBSZXNwb25zZTK2AgoOQXBwQXV0aFNlcnZpY2USYAoTSXNzdWVFeGNoYW5nZVRpY2tldBIjLmFwcHMudjEuSXNzdWVFeGNoYW5nZVRpY2tldFJlcXVlc3QaJC5hcHBzLnYxLklzc3VlRXhjaGFuZ2VUaWNrZXRSZXNwb25zZRJjChRSZWRlZW1FeGNoYW5nZVRpY2tldBIkLmFwcHMudjEuUmVkZWVtRXhjaGFuZ2VUaWNrZXRSZXF1ZXN0GiUuYXBwcy52MS5SZWRlZW1FeGNoYW5nZVRpY2tldFJlc3BvbnNlEl0KElJlZnJlc2hTY29wZWRUb2tlbhIiLmFwcHMudjEuUmVmcmVzaFNjb3BlZFRva2VuUmVxdWVzdBojLmFwcHMudjEuUmVmcmVzaFNjb3BlZFRva2VuUmVzcG9uc2UyhQIKEEFwcFN0YXR1c1NlcnZpY2USSwoMR2V0QXBwU3RhdHVzEhwuYXBwcy52MS5HZXRBcHBTdGF0dXNSZXF1ZXN0Gh0uYXBwcy52MS5HZXRBcHBTdGF0dXNSZXNwb25zZRJUCg9VcHNlcnRBcHBTdGF0dXMSHy5hcHBzLnYxLlVwc2VydEFwcFN0YXR1c1JlcXVlc3QaIC5hcHBzLnYxLlVwc2VydEFwcFN0YXR1c1Jlc3BvbnNlEk4KDUxpc3RBcHBFdmVudHMSHS5hcHBzLnYxLkxpc3RBcHBFdmVudHNSZXF1ZXN0Gh4uYXBwcy52MS5MaXN0QXBwRXZlbnRzUmVzcG9uc2VCNVozZ2l0aHViLmNvbS9laWRlc3R1ZGlvL2ZvaXIvZ2VuL3Byb3RvL2FwcHMvdjE7YXBwc3YxYgZwcm90bzM", [file_apps_v1_apps, file_google_protobuf_struct13, file_google_protobuf_timestamp14, file_common_v1_pagination]);
908
+ var AppSchema = /* @__PURE__ */ messageDesc19(file_apps_v1_apps_service, 0);
909
+ var ListAppsRequestSchema = /* @__PURE__ */ messageDesc19(file_apps_v1_apps_service, 5);
910
+ var GetAppRequestSchema = /* @__PURE__ */ messageDesc19(file_apps_v1_apps_service, 7);
911
+ var InstallAppRequestSchema = /* @__PURE__ */ messageDesc19(file_apps_v1_apps_service, 9);
912
+ var ConfirmInstallAppRequestSchema = /* @__PURE__ */ messageDesc19(file_apps_v1_apps_service, 11);
913
+ var UpdateAppRequestSchema = /* @__PURE__ */ messageDesc19(file_apps_v1_apps_service, 13);
914
+ var ConfirmUpdateAppRequestSchema = /* @__PURE__ */ messageDesc19(file_apps_v1_apps_service, 16);
915
+ var UninstallAppRequestSchema = /* @__PURE__ */ messageDesc19(file_apps_v1_apps_service, 18);
916
+ var SetAppMappingRequestSchema = /* @__PURE__ */ messageDesc19(file_apps_v1_apps_service, 20);
917
+ var ValidateManifestRequestSchema = /* @__PURE__ */ messageDesc19(file_apps_v1_apps_service, 22);
918
+ var ValidateManifestResponseSchema = /* @__PURE__ */ messageDesc19(file_apps_v1_apps_service, 24);
919
+ var TriggerOperationRequestSchema = /* @__PURE__ */ messageDesc19(file_apps_v1_apps_service, 25);
920
+ var AppsService = /* @__PURE__ */ serviceDesc13(file_apps_v1_apps_service, 0);
894
921
 
895
922
  // ../../packages/proto-ts/src/secrets/v1/secrets_pb.js
896
- import { enumDesc as enumDesc13, fileDesc as fileDesc19, messageDesc as messageDesc19, serviceDesc as serviceDesc13, tsEnum as tsEnum13 } from "@bufbuild/protobuf/codegenv2";
923
+ import { enumDesc as enumDesc14, fileDesc as fileDesc20, messageDesc as messageDesc20, serviceDesc as serviceDesc14, tsEnum as tsEnum14 } from "@bufbuild/protobuf/codegenv2";
897
924
  import { file_google_protobuf_struct as file_google_protobuf_struct14, file_google_protobuf_timestamp as file_google_protobuf_timestamp15 } from "@bufbuild/protobuf/wkt";
898
- var file_secrets_v1_secrets = /* @__PURE__ */ fileDesc19("ChhzZWNyZXRzL3YxL3NlY3JldHMucHJvdG8SCnNlY3JldHMudjEivQQKDlNlY3JldE1ldGFkYXRhEgsKA3JlZhgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSEgoKcHJvamVjdF9pZBgDIAEoCRIpCgpvd25lcl9raW5kGAQgASgOMhUuc2VjcmV0cy52MS5Pd25lcktpbmQSEAoIb3duZXJfaWQYBSABKAkSDQoFbGFiZWwYBiABKAkSMwoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARI1CgxsYXN0X3JlYWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMwoPbGFzdF93cml0dGVuX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjcmVhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAsgASgJSAKIAQESOAoPc29mdF9kZWxldGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjQKC3B1cmdlX2FmdGVyGA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBQg0KC19leHBpcmVzX2F0Qg8KDV9sYXN0X3JlYWRfYXRCDQoLX2NyZWF0ZWRfYnlCEgoQX3NvZnRfZGVsZXRlZF9hdEIOCgxfcHVyZ2VfYWZ0ZXIigwIKEFB1dFNlY3JldFJlcXVlc3QSGgoJdGVuYW50X2lkGAEgASgJQge6SARyAhABEhsKCnByb2plY3RfaWQYAiABKAlCB7pIBHICEAESNQoKb3duZXJfa2luZBgDIAEoDjIVLnNlY3JldHMudjEuT3duZXJLaW5kQgq6SAeCAQQQASAAEhAKCG93bmVyX2lkGAQgASgJEg0KBWxhYmVsGAUgASgJEhoKCXBsYWludGV4dBgGIAEoDEIHukgEegIQARIzCgpleHBpcmVzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg0KC19leHBpcmVzX2F0IiAKEVB1dFNlY3JldFJlc3BvbnNlEgsKA3JlZhgBIAEoCSI5ChBHZXRTZWNyZXRSZXF1ZXN0EhQKA3JlZhgBIAEoCUIHukgEcgIQARIPCgdwdXJwb3NlGAIgASgJIlQKEUdldFNlY3JldFJlc3BvbnNlEhEKCXBsYWludGV4dBgBIAEoDBIsCghtZXRhZGF0YRgCIAEoCzIaLnNlY3JldHMudjEuU2VjcmV0TWV0YWRhdGEi1wIKEkxpc3RTZWNyZXRzUmVxdWVzdBIaCgl0ZW5hbnRfaWQYASABKAlCB7pIBHICEAESGwoKcHJvamVjdF9pZBgCIAEoCUIHukgEcgIQARIpCgpvd25lcl9raW5kGAMgASgOMhUuc2VjcmV0cy52MS5Pd25lcktpbmQSEAoIb3duZXJfaWQYBCABKAkSHAoUaW5jbHVkZV9zb2Z0X2RlbGV0ZWQYBSABKAgSEgoFZmlyc3QYBiABKAVIAIgBARISCgVhZnRlchgHIAEoCUgBiAEBEhEKBGxhc3QYCCABKAVIAogBARITCgZiZWZvcmUYCSABKAlIA4gBARIrCgV3aGVyZRgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBAUIICgZfZmlyc3RCCAoGX2FmdGVyQgcKBV9sYXN0QgkKB19iZWZvcmVCCAoGX3doZXJlIp0BChNMaXN0U2VjcmV0c1Jlc3BvbnNlEisKB3NlY3JldHMYASADKAsyGi5zZWNyZXRzLnYxLlNlY3JldE1ldGFkYXRhEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKLAQoTUm90YXRlU2VjcmV0UmVxdWVzdBIUCgNyZWYYASABKAlCB7pIBHICEAESGgoJcGxhaW50ZXh0GAIgASgMQge6SAR6AhABEjMKCmV4cGlyZXNfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDQoLX2V4cGlyZXNfYXQiJwoUUm90YXRlU2VjcmV0UmVzcG9uc2USDwoHbmV3X3JlZhgBIAEoCSIrChNEZWxldGVTZWNyZXRSZXF1ZXN0EhQKA3JlZhgBIAEoCUIHukgEcgIQASIWChREZWxldGVTZWNyZXRSZXNwb25zZSIsChRSZXN0b3JlU2VjcmV0UmVxdWVzdBIUCgNyZWYYASABKAlCB7pIBHICEAEiFwoVUmVzdG9yZVNlY3JldFJlc3BvbnNlIkAKF1B1cmdlU29mdERlbGV0ZWRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJIjAKGFB1cmdlU29mdERlbGV0ZWRSZXNwb25zZRIUCgxwdXJnZWRfY291bnQYASABKAMqbAoJT3duZXJLaW5kEhoKFk9XTkVSX0tJTkRfVU5TUEVDSUZJRUQQABIWChJPV05FUl9LSU5EX1BST0pFQ1QQARISCg5PV05FUl9LSU5EX0FQUBACEhcKE09XTkVSX0tJTkRfQ1VTVE9NRVIQAzLPBAoOU2VjcmV0c1NlcnZpY2USSAoJUHV0U2VjcmV0Ehwuc2VjcmV0cy52MS5QdXRTZWNyZXRSZXF1ZXN0Gh0uc2VjcmV0cy52MS5QdXRTZWNyZXRSZXNwb25zZRJICglHZXRTZWNyZXQSHC5zZWNyZXRzLnYxLkdldFNlY3JldFJlcXVlc3QaHS5zZWNyZXRzLnYxLkdldFNlY3JldFJlc3BvbnNlEk4KC0xpc3RTZWNyZXRzEh4uc2VjcmV0cy52MS5MaXN0U2VjcmV0c1JlcXVlc3QaHy5zZWNyZXRzLnYxLkxpc3RTZWNyZXRzUmVzcG9uc2USUQoMUm90YXRlU2VjcmV0Eh8uc2VjcmV0cy52MS5Sb3RhdGVTZWNyZXRSZXF1ZXN0GiAuc2VjcmV0cy52MS5Sb3RhdGVTZWNyZXRSZXNwb25zZRJRCgxEZWxldGVTZWNyZXQSHy5zZWNyZXRzLnYxLkRlbGV0ZVNlY3JldFJlcXVlc3QaIC5zZWNyZXRzLnYxLkRlbGV0ZVNlY3JldFJlc3BvbnNlElQKDVJlc3RvcmVTZWNyZXQSIC5zZWNyZXRzLnYxLlJlc3RvcmVTZWNyZXRSZXF1ZXN0GiEuc2VjcmV0cy52MS5SZXN0b3JlU2VjcmV0UmVzcG9uc2USXQoQUHVyZ2VTb2Z0RGVsZXRlZBIjLnNlY3JldHMudjEuUHVyZ2VTb2Z0RGVsZXRlZFJlcXVlc3QaJC5zZWNyZXRzLnYxLlB1cmdlU29mdERlbGV0ZWRSZXNwb25zZUI7WjlnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vc2VjcmV0cy92MTtzZWNyZXRzdjFiBnByb3RvMw", [file_buf_validate_validate, file_common_v1_pagination, file_google_protobuf_struct14, file_google_protobuf_timestamp15]);
899
- var PutSecretRequestSchema = /* @__PURE__ */ messageDesc19(file_secrets_v1_secrets, 1);
900
- var GetSecretRequestSchema = /* @__PURE__ */ messageDesc19(file_secrets_v1_secrets, 3);
901
- var ListSecretsRequestSchema = /* @__PURE__ */ messageDesc19(file_secrets_v1_secrets, 5);
902
- var RotateSecretRequestSchema = /* @__PURE__ */ messageDesc19(file_secrets_v1_secrets, 7);
903
- var DeleteSecretRequestSchema = /* @__PURE__ */ messageDesc19(file_secrets_v1_secrets, 9);
904
- var RestoreSecretRequestSchema = /* @__PURE__ */ messageDesc19(file_secrets_v1_secrets, 11);
905
- var PurgeSoftDeletedRequestSchema = /* @__PURE__ */ messageDesc19(file_secrets_v1_secrets, 13);
906
- var OwnerKindSchema = /* @__PURE__ */ enumDesc13(file_secrets_v1_secrets, 0);
907
- var OwnerKind = /* @__PURE__ */ tsEnum13(OwnerKindSchema);
908
- var SecretsService = /* @__PURE__ */ serviceDesc13(file_secrets_v1_secrets, 0);
925
+ var file_secrets_v1_secrets = /* @__PURE__ */ fileDesc20("ChhzZWNyZXRzL3YxL3NlY3JldHMucHJvdG8SCnNlY3JldHMudjEivQQKDlNlY3JldE1ldGFkYXRhEgsKA3JlZhgBIAEoCRIRCgl0ZW5hbnRfaWQYAiABKAkSEgoKcHJvamVjdF9pZBgDIAEoCRIpCgpvd25lcl9raW5kGAQgASgOMhUuc2VjcmV0cy52MS5Pd25lcktpbmQSEAoIb3duZXJfaWQYBSABKAkSDQoFbGFiZWwYBiABKAkSMwoKZXhwaXJlc19hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARI1CgxsYXN0X3JlYWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMwoPbGFzdF93cml0dGVuX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjcmVhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAsgASgJSAKIAQESOAoPc29mdF9kZWxldGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjQKC3B1cmdlX2FmdGVyGA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBQg0KC19leHBpcmVzX2F0Qg8KDV9sYXN0X3JlYWRfYXRCDQoLX2NyZWF0ZWRfYnlCEgoQX3NvZnRfZGVsZXRlZF9hdEIOCgxfcHVyZ2VfYWZ0ZXIigwIKEFB1dFNlY3JldFJlcXVlc3QSGgoJdGVuYW50X2lkGAEgASgJQge6SARyAhABEhsKCnByb2plY3RfaWQYAiABKAlCB7pIBHICEAESNQoKb3duZXJfa2luZBgDIAEoDjIVLnNlY3JldHMudjEuT3duZXJLaW5kQgq6SAeCAQQQASAAEhAKCG93bmVyX2lkGAQgASgJEg0KBWxhYmVsGAUgASgJEhoKCXBsYWludGV4dBgGIAEoDEIHukgEegIQARIzCgpleHBpcmVzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg0KC19leHBpcmVzX2F0IiAKEVB1dFNlY3JldFJlc3BvbnNlEgsKA3JlZhgBIAEoCSI5ChBHZXRTZWNyZXRSZXF1ZXN0EhQKA3JlZhgBIAEoCUIHukgEcgIQARIPCgdwdXJwb3NlGAIgASgJIlQKEUdldFNlY3JldFJlc3BvbnNlEhEKCXBsYWludGV4dBgBIAEoDBIsCghtZXRhZGF0YRgCIAEoCzIaLnNlY3JldHMudjEuU2VjcmV0TWV0YWRhdGEi1wIKEkxpc3RTZWNyZXRzUmVxdWVzdBIaCgl0ZW5hbnRfaWQYASABKAlCB7pIBHICEAESGwoKcHJvamVjdF9pZBgCIAEoCUIHukgEcgIQARIpCgpvd25lcl9raW5kGAMgASgOMhUuc2VjcmV0cy52MS5Pd25lcktpbmQSEAoIb3duZXJfaWQYBCABKAkSHAoUaW5jbHVkZV9zb2Z0X2RlbGV0ZWQYBSABKAgSEgoFZmlyc3QYBiABKAVIAIgBARISCgVhZnRlchgHIAEoCUgBiAEBEhEKBGxhc3QYCCABKAVIAogBARITCgZiZWZvcmUYCSABKAlIA4gBARIrCgV3aGVyZRgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBAUIICgZfZmlyc3RCCAoGX2FmdGVyQgcKBV9sYXN0QgkKB19iZWZvcmVCCAoGX3doZXJlIp0BChNMaXN0U2VjcmV0c1Jlc3BvbnNlEisKB3NlY3JldHMYASADKAsyGi5zZWNyZXRzLnYxLlNlY3JldE1ldGFkYXRhEg0KBXRvdGFsGAIgASgFEisKCXBhZ2VfaW5mbxgDIAEoCzITLmNvbW1vbi52MS5QYWdlSW5mb0gAiAEBEg8KB2N1cnNvcnMYBCADKAlCDAoKX3BhZ2VfaW5mbyKLAQoTUm90YXRlU2VjcmV0UmVxdWVzdBIUCgNyZWYYASABKAlCB7pIBHICEAESGgoJcGxhaW50ZXh0GAIgASgMQge6SAR6AhABEjMKCmV4cGlyZXNfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCDQoLX2V4cGlyZXNfYXQiJwoUUm90YXRlU2VjcmV0UmVzcG9uc2USDwoHbmV3X3JlZhgBIAEoCSIrChNEZWxldGVTZWNyZXRSZXF1ZXN0EhQKA3JlZhgBIAEoCUIHukgEcgIQASIWChREZWxldGVTZWNyZXRSZXNwb25zZSIsChRSZXN0b3JlU2VjcmV0UmVxdWVzdBIUCgNyZWYYASABKAlCB7pIBHICEAEiFwoVUmVzdG9yZVNlY3JldFJlc3BvbnNlIkAKF1B1cmdlU29mdERlbGV0ZWRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJIjAKGFB1cmdlU29mdERlbGV0ZWRSZXNwb25zZRIUCgxwdXJnZWRfY291bnQYASABKAMqbAoJT3duZXJLaW5kEhoKFk9XTkVSX0tJTkRfVU5TUEVDSUZJRUQQABIWChJPV05FUl9LSU5EX1BST0pFQ1QQARISCg5PV05FUl9LSU5EX0FQUBACEhcKE09XTkVSX0tJTkRfQ1VTVE9NRVIQAzLPBAoOU2VjcmV0c1NlcnZpY2USSAoJUHV0U2VjcmV0Ehwuc2VjcmV0cy52MS5QdXRTZWNyZXRSZXF1ZXN0Gh0uc2VjcmV0cy52MS5QdXRTZWNyZXRSZXNwb25zZRJICglHZXRTZWNyZXQSHC5zZWNyZXRzLnYxLkdldFNlY3JldFJlcXVlc3QaHS5zZWNyZXRzLnYxLkdldFNlY3JldFJlc3BvbnNlEk4KC0xpc3RTZWNyZXRzEh4uc2VjcmV0cy52MS5MaXN0U2VjcmV0c1JlcXVlc3QaHy5zZWNyZXRzLnYxLkxpc3RTZWNyZXRzUmVzcG9uc2USUQoMUm90YXRlU2VjcmV0Eh8uc2VjcmV0cy52MS5Sb3RhdGVTZWNyZXRSZXF1ZXN0GiAuc2VjcmV0cy52MS5Sb3RhdGVTZWNyZXRSZXNwb25zZRJRCgxEZWxldGVTZWNyZXQSHy5zZWNyZXRzLnYxLkRlbGV0ZVNlY3JldFJlcXVlc3QaIC5zZWNyZXRzLnYxLkRlbGV0ZVNlY3JldFJlc3BvbnNlElQKDVJlc3RvcmVTZWNyZXQSIC5zZWNyZXRzLnYxLlJlc3RvcmVTZWNyZXRSZXF1ZXN0GiEuc2VjcmV0cy52MS5SZXN0b3JlU2VjcmV0UmVzcG9uc2USXQoQUHVyZ2VTb2Z0RGVsZXRlZBIjLnNlY3JldHMudjEuUHVyZ2VTb2Z0RGVsZXRlZFJlcXVlc3QaJC5zZWNyZXRzLnYxLlB1cmdlU29mdERlbGV0ZWRSZXNwb25zZUI7WjlnaXRodWIuY29tL2VpZGVzdHVkaW8vZm9pci9nZW4vcHJvdG8vc2VjcmV0cy92MTtzZWNyZXRzdjFiBnByb3RvMw", [file_buf_validate_validate, file_common_v1_pagination, file_google_protobuf_struct14, file_google_protobuf_timestamp15]);
926
+ var PutSecretRequestSchema = /* @__PURE__ */ messageDesc20(file_secrets_v1_secrets, 1);
927
+ var GetSecretRequestSchema = /* @__PURE__ */ messageDesc20(file_secrets_v1_secrets, 3);
928
+ var ListSecretsRequestSchema = /* @__PURE__ */ messageDesc20(file_secrets_v1_secrets, 5);
929
+ var RotateSecretRequestSchema = /* @__PURE__ */ messageDesc20(file_secrets_v1_secrets, 7);
930
+ var DeleteSecretRequestSchema = /* @__PURE__ */ messageDesc20(file_secrets_v1_secrets, 9);
931
+ var RestoreSecretRequestSchema = /* @__PURE__ */ messageDesc20(file_secrets_v1_secrets, 11);
932
+ var PurgeSoftDeletedRequestSchema = /* @__PURE__ */ messageDesc20(file_secrets_v1_secrets, 13);
933
+ var OwnerKindSchema = /* @__PURE__ */ enumDesc14(file_secrets_v1_secrets, 0);
934
+ var OwnerKind = /* @__PURE__ */ tsEnum14(OwnerKindSchema);
935
+ var SecretsService = /* @__PURE__ */ serviceDesc14(file_secrets_v1_secrets, 0);
909
936
 
910
937
  // ../../packages/rpc-node/src/rpc/identity.ts
911
938
  import { create } from "@bufbuild/protobuf";
@@ -1399,6 +1426,86 @@ function createIdentityMethods(client) {
1399
1426
  );
1400
1427
  return { success: resp.success };
1401
1428
  },
1429
+ // ── Customer Roles (customer RBAC) ───────────────────────────
1430
+ //
1431
+ // Default + named roles whose `permissions` become a customer access
1432
+ // token's scope set at mint time. A role with isDefault:true grants its
1433
+ // permissions to every customer in the project with no per-customer
1434
+ // assignment. `self:*` in permissions expands to the project's
1435
+ // customer-writable record scopes; operations:execute must be listed
1436
+ // explicitly (self:* does not include it). See EID-125.
1437
+ async listCustomerRoles(params = {}) {
1438
+ const where = {};
1439
+ if (params.tenantId) where.tenantId = params.tenantId;
1440
+ if (params.projectId) where.projectId = params.projectId;
1441
+ const resp = await client.listCustomerRoles(
1442
+ create(ListCustomerRolesRequestSchema, {
1443
+ where: Object.keys(where).length > 0 ? where : void 0,
1444
+ first: params.first ?? DEFAULT_PAGE_SIZE
1445
+ })
1446
+ );
1447
+ return { items: resp.items ?? [], total: resp.total };
1448
+ },
1449
+ async getCustomerRole(id) {
1450
+ const resp = await client.getCustomerRole(
1451
+ create(GetCustomerRoleRequestSchema, { id })
1452
+ );
1453
+ return resp.role ?? null;
1454
+ },
1455
+ async createCustomerRole(params) {
1456
+ const resp = await client.createCustomerRole(
1457
+ create(CreateCustomerRoleRequestSchema, {
1458
+ tenantId: params.tenantId,
1459
+ projectId: params.projectId,
1460
+ key: params.key,
1461
+ name: params.name,
1462
+ permissions: params.permissions,
1463
+ isDefault: params.isDefault ?? false
1464
+ })
1465
+ );
1466
+ return resp.role ?? null;
1467
+ },
1468
+ async updateCustomerRole(params) {
1469
+ const resp = await client.updateCustomerRole(
1470
+ create(UpdateCustomerRoleRequestSchema, {
1471
+ id: params.id,
1472
+ name: params.name,
1473
+ permissions: params.permissions ?? [],
1474
+ isDefault: params.isDefault
1475
+ })
1476
+ );
1477
+ return resp.role ?? null;
1478
+ },
1479
+ async disableCustomerRole(id) {
1480
+ await client.disableCustomerRole(
1481
+ create(DisableCustomerRoleRequestSchema, { id })
1482
+ );
1483
+ },
1484
+ async assignCustomerRole(params) {
1485
+ const resp = await client.assignCustomerRole(
1486
+ create(AssignCustomerRoleRequestSchema, {
1487
+ customerId: params.customerId,
1488
+ roleId: params.roleId
1489
+ })
1490
+ );
1491
+ return resp.assignment ?? null;
1492
+ },
1493
+ async revokeCustomerRoleAssignment(id) {
1494
+ await client.revokeCustomerRoleAssignment(
1495
+ create(RevokeCustomerRoleAssignmentRequestSchema, { id })
1496
+ );
1497
+ },
1498
+ async listCustomerRoleAssignments(params) {
1499
+ const where = {};
1500
+ if (params.customerId) where.customerId = params.customerId;
1501
+ if (params.roleId) where.roleId = params.roleId;
1502
+ const resp = await client.listCustomerRoleAssignments(
1503
+ create(ListCustomerRoleAssignmentsRequestSchema, {
1504
+ where: Object.keys(where).length > 0 ? where : void 0
1505
+ })
1506
+ );
1507
+ return { items: resp.items ?? [], total: resp.total };
1508
+ },
1402
1509
  // ── Service Tokens ──────────────────────────────────────────
1403
1510
  async mintServiceToken(purpose) {
1404
1511
  const resp = await client.mintServiceToken(
@@ -2364,8 +2471,45 @@ function createRecordsMethods(client) {
2364
2471
  };
2365
2472
  }
2366
2473
 
2367
- // ../../packages/rpc-node/src/rpc/configs.ts
2474
+ // ../../packages/rpc-node/src/rpc/realtime.ts
2368
2475
  import { create as create5 } from "@bufbuild/protobuf";
2476
+ var POLICY_NAMES = {
2477
+ [PersistencePolicy.UNSPECIFIED]: "unspecified",
2478
+ [PersistencePolicy.EPHEMERAL]: "ephemeral",
2479
+ [PersistencePolicy.SNAPSHOT]: "snapshot",
2480
+ [PersistencePolicy.VERSIONED]: "versioned",
2481
+ [PersistencePolicy.SINK]: "sink"
2482
+ };
2483
+ function createRealtimeMethods(client) {
2484
+ return {
2485
+ // AuthorizeRoomJoin asks the platform whether a principal may join a room
2486
+ // with a given capability — the single authz predicate the realtime gateway
2487
+ // calls instead of querying Postgres directly (EID-101). Room addressing is
2488
+ // generic; the first namespace is "record" (id = recordId).
2489
+ async authorizeRoomJoin(params) {
2490
+ const resp = await client.authorizeRoomJoin(
2491
+ create5(AuthorizeRoomJoinRequestSchema, {
2492
+ principalKind: params.principalKind,
2493
+ principalId: params.principalId,
2494
+ tenantId: params.tenantId ?? "",
2495
+ projectId: params.projectId ?? "",
2496
+ roomNamespace: params.roomNamespace,
2497
+ roomId: params.roomId,
2498
+ capability: params.capability
2499
+ })
2500
+ );
2501
+ return {
2502
+ allowed: resp.allowed,
2503
+ reason: resp.reason,
2504
+ persistencePolicy: POLICY_NAMES[resp.persistencePolicy] ?? "unspecified",
2505
+ sinkId: resp.sinkId
2506
+ };
2507
+ }
2508
+ };
2509
+ }
2510
+
2511
+ // ../../packages/rpc-node/src/rpc/configs.ts
2512
+ import { create as create6 } from "@bufbuild/protobuf";
2369
2513
  var DIRECTION_TO_PROTO = {
2370
2514
  read: ConfigDirection.READ,
2371
2515
  write: ConfigDirection.WRITE,
@@ -2376,7 +2520,7 @@ function createConfigsMethods(client) {
2376
2520
  // ── Operations ────────────────────────────────────────────
2377
2521
  async listOperations(params = {}) {
2378
2522
  return client.listOperations(
2379
- create5(ListOperationsRequestSchema, {
2523
+ create6(ListOperationsRequestSchema, {
2380
2524
  where: params.where,
2381
2525
  first: params.first ?? DEFAULT_PAGE_SIZE,
2382
2526
  after: params?.after
@@ -2386,19 +2530,19 @@ function createConfigsMethods(client) {
2386
2530
  // ── Queries ──────────────────────────────────────────────
2387
2531
  async getConfig(id) {
2388
2532
  const resp = await client.getConfig(
2389
- create5(GetConfigRequestSchema, { id })
2533
+ create6(GetConfigRequestSchema, { id })
2390
2534
  );
2391
2535
  return resp.config ?? null;
2392
2536
  },
2393
2537
  async getConfigByKey(key) {
2394
2538
  const resp = await client.getConfigByKey(
2395
- create5(GetConfigByKeyRequestSchema, { key })
2539
+ create6(GetConfigByKeyRequestSchema, { key })
2396
2540
  );
2397
2541
  return resp.config ?? null;
2398
2542
  },
2399
2543
  async listConfigs(params = {}) {
2400
2544
  return client.listConfigs(
2401
- create5(ListConfigsRequestSchema, {
2545
+ create6(ListConfigsRequestSchema, {
2402
2546
  where: params.where,
2403
2547
  first: params.first ?? DEFAULT_PAGE_SIZE,
2404
2548
  after: params?.after
@@ -2408,7 +2552,7 @@ function createConfigsMethods(client) {
2408
2552
  // ── Mutations ────────────────────────────────────────────
2409
2553
  async createConfig(params) {
2410
2554
  const resp = await client.createConfig(
2411
- create5(CreateConfigRequestSchema, {
2555
+ create6(CreateConfigRequestSchema, {
2412
2556
  key: params.key,
2413
2557
  configType: params.configType,
2414
2558
  direction: DIRECTION_TO_PROTO[params.direction ?? "read"] ?? ConfigDirection.READ,
@@ -2422,7 +2566,7 @@ function createConfigsMethods(client) {
2422
2566
  },
2423
2567
  async updateConfig(params) {
2424
2568
  const resp = await client.updateConfig(
2425
- create5(UpdateConfigRequestSchema, {
2569
+ create6(UpdateConfigRequestSchema, {
2426
2570
  id: params.id,
2427
2571
  name: params.name,
2428
2572
  description: params.description,
@@ -2436,7 +2580,7 @@ function createConfigsMethods(client) {
2436
2580
  },
2437
2581
  async applyConfig(configKey, configData) {
2438
2582
  const resp = await client.applyConfig(
2439
- create5(ApplyConfigRequestSchema, {
2583
+ create6(ApplyConfigRequestSchema, {
2440
2584
  configKey,
2441
2585
  configData
2442
2586
  })
@@ -2452,7 +2596,7 @@ function createConfigsMethods(client) {
2452
2596
  },
2453
2597
  async writeConfigCredential(params) {
2454
2598
  const resp = await client.writeConfigCredential(
2455
- create5(WriteConfigCredentialRequestSchema, {
2599
+ create6(WriteConfigCredentialRequestSchema, {
2456
2600
  configKey: params.configKey,
2457
2601
  value: params.value
2458
2602
  })
@@ -2464,13 +2608,13 @@ function createConfigsMethods(client) {
2464
2608
  },
2465
2609
  async triggerConfigSync(configId) {
2466
2610
  const resp = await client.triggerConfigSync(
2467
- create5(TriggerConfigSyncRequestSchema, { configId })
2611
+ create6(TriggerConfigSyncRequestSchema, { configId })
2468
2612
  );
2469
2613
  return resp.success;
2470
2614
  },
2471
2615
  async deleteConfig(id) {
2472
2616
  const resp = await client.deleteConfig(
2473
- create5(DeleteConfigRequestSchema, { id })
2617
+ create6(DeleteConfigRequestSchema, { id })
2474
2618
  );
2475
2619
  return resp.success;
2476
2620
  }
@@ -2478,9 +2622,9 @@ function createConfigsMethods(client) {
2478
2622
  }
2479
2623
 
2480
2624
  // ../../packages/rpc-node/src/rpc/segments.ts
2481
- import { create as create6 } from "@bufbuild/protobuf";
2625
+ import { create as create7 } from "@bufbuild/protobuf";
2482
2626
  function rawOperandToProto(raw) {
2483
- return create6(RuleOperandSchema, {
2627
+ return create7(RuleOperandSchema, {
2484
2628
  type: raw.type,
2485
2629
  path: raw.path,
2486
2630
  value: raw.value !== void 0 ? JSON.stringify(raw.value ?? null) : void 0,
@@ -2489,7 +2633,7 @@ function rawOperandToProto(raw) {
2489
2633
  });
2490
2634
  }
2491
2635
  function rawRulesToProto(raw) {
2492
- return create6(RuleExpressionSchema, {
2636
+ return create7(RuleExpressionSchema, {
2493
2637
  type: raw.type,
2494
2638
  id: raw.id,
2495
2639
  left: raw.left ? rawOperandToProto(raw.left) : void 0,
@@ -2505,19 +2649,19 @@ function createSegmentsMethods(client) {
2505
2649
  // ── Queries ──────────────────────────────────────────────
2506
2650
  async getSegment(id) {
2507
2651
  const resp = await client.getSegment(
2508
- create6(GetSegmentRequestSchema, { id })
2652
+ create7(GetSegmentRequestSchema, { id })
2509
2653
  );
2510
2654
  return resp.segment ?? null;
2511
2655
  },
2512
2656
  async getSegmentByKey(key) {
2513
2657
  const resp = await client.getSegmentByKey(
2514
- create6(GetSegmentByKeyRequestSchema, { key })
2658
+ create7(GetSegmentByKeyRequestSchema, { key })
2515
2659
  );
2516
2660
  return resp.segment ?? null;
2517
2661
  },
2518
2662
  async listSegments(params = {}) {
2519
2663
  return client.listSegments(
2520
- create6(ListSegmentsRequestSchema, {
2664
+ create7(ListSegmentsRequestSchema, {
2521
2665
  where: params.where,
2522
2666
  first: params.first ?? DEFAULT_PAGE_SIZE,
2523
2667
  after: params?.after
@@ -2528,7 +2672,7 @@ function createSegmentsMethods(client) {
2528
2672
  async createSegment(params) {
2529
2673
  const rules = params.rules && !("$typeName" in params.rules) ? rawRulesToProto(params.rules) : params.rules;
2530
2674
  const resp = await client.createSegment(
2531
- create6(CreateSegmentRequestSchema, {
2675
+ create7(CreateSegmentRequestSchema, {
2532
2676
  key: params.key,
2533
2677
  name: params.name,
2534
2678
  description: params.description,
@@ -2545,7 +2689,7 @@ function createSegmentsMethods(client) {
2545
2689
  async updateSegment(params) {
2546
2690
  const rules = params.rules && !("$typeName" in params.rules) ? rawRulesToProto(params.rules) : params.rules;
2547
2691
  const resp = await client.updateSegment(
2548
- create6(UpdateSegmentRequestSchema, {
2692
+ create7(UpdateSegmentRequestSchema, {
2549
2693
  id: params.id,
2550
2694
  name: params.name,
2551
2695
  description: params.description,
@@ -2558,19 +2702,19 @@ function createSegmentsMethods(client) {
2558
2702
  },
2559
2703
  async deleteSegment(id) {
2560
2704
  const resp = await client.deleteSegment(
2561
- create6(DeleteSegmentRequestSchema, { id })
2705
+ create7(DeleteSegmentRequestSchema, { id })
2562
2706
  );
2563
2707
  return resp.success;
2564
2708
  },
2565
2709
  // ── Customer Operations ──────────────────────────────────
2566
2710
  async getCustomerMemberships(customerId) {
2567
2711
  return client.getCustomerMemberships(
2568
- create6(GetCustomerMembershipsRequestSchema, { customerId })
2712
+ create7(GetCustomerMembershipsRequestSchema, { customerId })
2569
2713
  );
2570
2714
  },
2571
2715
  async previewSegmentRules(rules, sampleSize) {
2572
2716
  const resp = await client.previewSegmentRules(
2573
- create6(PreviewSegmentRulesRequestSchema, {
2717
+ create7(PreviewSegmentRulesRequestSchema, {
2574
2718
  rules,
2575
2719
  sampleSize: sampleSize ?? 10
2576
2720
  })
@@ -2579,26 +2723,26 @@ function createSegmentsMethods(client) {
2579
2723
  },
2580
2724
  async testSegmentEvaluation(segmentId, customerId) {
2581
2725
  const resp = await client.testSegmentEvaluation(
2582
- create6(TestSegmentEvaluationRequestSchema, { segmentId, customerId })
2726
+ create7(TestSegmentEvaluationRequestSchema, { segmentId, customerId })
2583
2727
  );
2584
2728
  return resp.result ?? null;
2585
2729
  },
2586
2730
  // ── Opt-out Management ───────────────────────────────────
2587
2731
  async setGlobalOptOut(customerId, optedOut) {
2588
2732
  const resp = await client.setGlobalOptOut(
2589
- create6(SetGlobalOptOutRequestSchema, { customerId, optedOut })
2733
+ create7(SetGlobalOptOutRequestSchema, { customerId, optedOut })
2590
2734
  );
2591
2735
  return resp.success;
2592
2736
  },
2593
2737
  async optOutOfSegment(customerId, segmentId) {
2594
2738
  const resp = await client.optOutOfSegment(
2595
- create6(OptOutOfSegmentRequestSchema, { customerId, segmentId })
2739
+ create7(OptOutOfSegmentRequestSchema, { customerId, segmentId })
2596
2740
  );
2597
2741
  return resp.success;
2598
2742
  },
2599
2743
  async optBackIntoSegment(customerId, segmentId) {
2600
2744
  const resp = await client.optBackIntoSegment(
2601
- create6(OptBackIntoSegmentRequestSchema, { customerId, segmentId })
2745
+ create7(OptBackIntoSegmentRequestSchema, { customerId, segmentId })
2602
2746
  );
2603
2747
  return resp.success;
2604
2748
  }
@@ -2607,9 +2751,9 @@ function createSegmentsMethods(client) {
2607
2751
 
2608
2752
  // ../../packages/rpc-node/src/rpc/settings.ts
2609
2753
  import { ConnectError as ConnectError2, Code as Code2 } from "@connectrpc/connect";
2610
- import { create as create7 } from "@bufbuild/protobuf";
2754
+ import { create as create8 } from "@bufbuild/protobuf";
2611
2755
  function jsProfileFieldToProto(f) {
2612
- return create7(CustomerProfileFieldSchema, {
2756
+ return create8(CustomerProfileFieldSchema, {
2613
2757
  id: f.id,
2614
2758
  key: f.key,
2615
2759
  type: f.type,
@@ -2627,7 +2771,7 @@ function createSettingsMethods(client) {
2627
2771
  // ── Settings ─────────────────────────────────────────────
2628
2772
  async getSettings(params = {}) {
2629
2773
  const resp = await client.getSettings(
2630
- create7(GetSettingsRequestSchema, {
2774
+ create8(GetSettingsRequestSchema, {
2631
2775
  category: params.category,
2632
2776
  key: params.key
2633
2777
  })
@@ -2636,7 +2780,7 @@ function createSettingsMethods(client) {
2636
2780
  },
2637
2781
  async updateSetting(params) {
2638
2782
  const resp = await client.updateSetting(
2639
- create7(UpdateSettingRequestSchema, {
2783
+ create8(UpdateSettingRequestSchema, {
2640
2784
  key: params.key,
2641
2785
  value: params.value
2642
2786
  })
@@ -2645,14 +2789,14 @@ function createSettingsMethods(client) {
2645
2789
  },
2646
2790
  async deleteSetting(key) {
2647
2791
  const resp = await client.deleteSetting(
2648
- create7(DeleteSettingRequestSchema, { key })
2792
+ create8(DeleteSettingRequestSchema, { key })
2649
2793
  );
2650
2794
  return resp.success;
2651
2795
  },
2652
2796
  // ── Mentions ─────────────────────────────────────────────
2653
2797
  async listMyMentions(params = {}) {
2654
2798
  return client.listMyMentions(
2655
- create7(ListMyMentionsRequestSchema, {
2799
+ create8(ListMyMentionsRequestSchema, {
2656
2800
  where: params.where,
2657
2801
  first: params.first ?? DEFAULT_PAGE_SIZE,
2658
2802
  after: params?.after
@@ -2661,7 +2805,7 @@ function createSettingsMethods(client) {
2661
2805
  },
2662
2806
  async updateMentionStatus(params) {
2663
2807
  const resp = await client.updateMentionStatus(
2664
- create7(UpdateMentionStatusRequestSchema, {
2808
+ create8(UpdateMentionStatusRequestSchema, {
2665
2809
  mentionId: params.mentionId,
2666
2810
  status: params.status,
2667
2811
  completedNote: params.completedNote,
@@ -2673,7 +2817,7 @@ function createSettingsMethods(client) {
2673
2817
  // ── Notes ────────────────────────────────────────────────
2674
2818
  async createNote(params) {
2675
2819
  const resp = await client.createNote(
2676
- create7(CreateNoteRequestSchema, {
2820
+ create8(CreateNoteRequestSchema, {
2677
2821
  ...params,
2678
2822
  content: params.content
2679
2823
  })
@@ -2681,12 +2825,12 @@ function createSettingsMethods(client) {
2681
2825
  return resp.note ?? null;
2682
2826
  },
2683
2827
  async getNote(id) {
2684
- const resp = await client.getNote(create7(GetNoteRequestSchema, { id }));
2828
+ const resp = await client.getNote(create8(GetNoteRequestSchema, { id }));
2685
2829
  return resp.note ?? null;
2686
2830
  },
2687
2831
  async listNotes(params = {}) {
2688
2832
  return client.listNotes(
2689
- create7(ListNotesRequestSchema, {
2833
+ create8(ListNotesRequestSchema, {
2690
2834
  where: params.where,
2691
2835
  first: params.first ?? DEFAULT_PAGE_SIZE,
2692
2836
  after: params?.after
@@ -2695,7 +2839,7 @@ function createSettingsMethods(client) {
2695
2839
  },
2696
2840
  async updateNote(params) {
2697
2841
  const resp = await client.updateNote(
2698
- create7(UpdateNoteRequestSchema, {
2842
+ create8(UpdateNoteRequestSchema, {
2699
2843
  id: params.id,
2700
2844
  content: params.content,
2701
2845
  isResolved: params.isResolved
@@ -2705,14 +2849,14 @@ function createSettingsMethods(client) {
2705
2849
  },
2706
2850
  async deleteNote(id) {
2707
2851
  const resp = await client.deleteNote(
2708
- create7(DeleteNoteRequestSchema, { id })
2852
+ create8(DeleteNoteRequestSchema, { id })
2709
2853
  );
2710
2854
  return resp.success;
2711
2855
  },
2712
2856
  // ── Context Dimensions ───────────────────────────────────
2713
2857
  async listContextDimensions(params = {}) {
2714
2858
  return client.listContextDimensions(
2715
- create7(ListContextDimensionsRequestSchema, {
2859
+ create8(ListContextDimensionsRequestSchema, {
2716
2860
  search: params.search,
2717
2861
  first: params.first ?? DEFAULT_PAGE_SIZE,
2718
2862
  after: params?.after
@@ -2721,13 +2865,13 @@ function createSettingsMethods(client) {
2721
2865
  },
2722
2866
  async getContextDimension(id) {
2723
2867
  const resp = await client.getContextDimension(
2724
- create7(GetContextDimensionRequestSchema, { id })
2868
+ create8(GetContextDimensionRequestSchema, { id })
2725
2869
  );
2726
2870
  return resp.dimension ?? null;
2727
2871
  },
2728
2872
  async createContextDimension(params) {
2729
2873
  const resp = await client.createContextDimension(
2730
- create7(CreateContextDimensionRequestSchema, {
2874
+ create8(CreateContextDimensionRequestSchema, {
2731
2875
  key: params.key,
2732
2876
  name: params.name,
2733
2877
  description: params.description,
@@ -2740,7 +2884,7 @@ function createSettingsMethods(client) {
2740
2884
  },
2741
2885
  async updateContextDimension(params) {
2742
2886
  const resp = await client.updateContextDimension(
2743
- create7(UpdateContextDimensionRequestSchema, {
2887
+ create8(UpdateContextDimensionRequestSchema, {
2744
2888
  id: params.id,
2745
2889
  name: params.name,
2746
2890
  description: params.description,
@@ -2753,13 +2897,13 @@ function createSettingsMethods(client) {
2753
2897
  },
2754
2898
  async deleteContextDimension(id) {
2755
2899
  const resp = await client.deleteContextDimension(
2756
- create7(DeleteContextDimensionRequestSchema, { id })
2900
+ create8(DeleteContextDimensionRequestSchema, { id })
2757
2901
  );
2758
2902
  return resp.success;
2759
2903
  },
2760
2904
  async getContextDimensionValues(dimensionKey, params = {}) {
2761
2905
  return client.getContextDimensionValues(
2762
- create7(GetContextDimensionValuesRequestSchema, {
2906
+ create8(GetContextDimensionValuesRequestSchema, {
2763
2907
  dimensionKey,
2764
2908
  search: params.search,
2765
2909
  first: params.first ?? DEFAULT_PAGE_SIZE,
@@ -2770,13 +2914,13 @@ function createSettingsMethods(client) {
2770
2914
  // ── Customer Profile Schema ──────────────────────────────
2771
2915
  async getCustomerProfileSchema() {
2772
2916
  const resp = await client.getCustomerProfileSchema(
2773
- create7(GetCustomerProfileSchemaRequestSchema, {})
2917
+ create8(GetCustomerProfileSchemaRequestSchema, {})
2774
2918
  );
2775
2919
  return resp.schema ?? null;
2776
2920
  },
2777
2921
  async getCustomerProfile(customerId) {
2778
2922
  const resp = await client.getCustomerProfile(
2779
- create7(GetCustomerProfileRequestSchema, { customerId })
2923
+ create8(GetCustomerProfileRequestSchema, { customerId })
2780
2924
  );
2781
2925
  return resp.data ?? null;
2782
2926
  },
@@ -2793,7 +2937,7 @@ function createSettingsMethods(client) {
2793
2937
  }
2794
2938
  try {
2795
2939
  const resp = await client.updateCustomerProfile(
2796
- create7(UpdateCustomerProfileRequestSchema, {
2940
+ create8(UpdateCustomerProfileRequestSchema, {
2797
2941
  customerId: params.customerId,
2798
2942
  update
2799
2943
  })
@@ -2804,7 +2948,7 @@ function createSettingsMethods(client) {
2804
2948
  throw err;
2805
2949
  }
2806
2950
  const resp = await client.createCustomerProfile(
2807
- create7(CreateCustomerProfileRequestSchema, {
2951
+ create8(CreateCustomerProfileRequestSchema, {
2808
2952
  customerId: params.customerId,
2809
2953
  create: data
2810
2954
  })
@@ -2814,7 +2958,7 @@ function createSettingsMethods(client) {
2814
2958
  },
2815
2959
  async updateCustomerProfileSchema(params) {
2816
2960
  const resp = await client.updateCustomerProfileSchema(
2817
- create7(UpdateCustomerProfileSchemaRequestSchema, {
2961
+ create8(UpdateCustomerProfileSchemaRequestSchema, {
2818
2962
  fields: params.fields.map(jsProfileFieldToProto),
2819
2963
  publicFields: params.publicFields,
2820
2964
  lookups: (params.lookups ?? []).map((l) => ({
@@ -2828,14 +2972,14 @@ function createSettingsMethods(client) {
2828
2972
  },
2829
2973
  async publishProfileSchema() {
2830
2974
  const resp = await client.publishProfileSchema(
2831
- create7(PublishProfileSchemaRequestSchema, {})
2975
+ create8(PublishProfileSchemaRequestSchema, {})
2832
2976
  );
2833
2977
  return resp.profileSchema ?? null;
2834
2978
  },
2835
2979
  // ── Design Tokens ─────────────────────────────────────────
2836
2980
  async getDesignTokens(params = {}) {
2837
2981
  const resp = await client.getDesignTokens(
2838
- create7(GetDesignTokensRequestSchema, {
2982
+ create8(GetDesignTokensRequestSchema, {
2839
2983
  channel: params.channel === "draft" ? 2 : 1
2840
2984
  })
2841
2985
  );
@@ -2843,43 +2987,43 @@ function createSettingsMethods(client) {
2843
2987
  },
2844
2988
  async updateDesignTokens(document) {
2845
2989
  const resp = await client.updateDesignTokens(
2846
- create7(UpdateDesignTokensRequestSchema, { document })
2990
+ create8(UpdateDesignTokensRequestSchema, { document })
2847
2991
  );
2848
2992
  return resp.tokens ?? null;
2849
2993
  },
2850
2994
  async publishDesignTokens() {
2851
2995
  const resp = await client.publishDesignTokens(
2852
- create7(PublishDesignTokensRequestSchema, {})
2996
+ create8(PublishDesignTokensRequestSchema, {})
2853
2997
  );
2854
2998
  return resp;
2855
2999
  },
2856
3000
  async unpublishDesignTokens() {
2857
3001
  const resp = await client.unpublishDesignTokens(
2858
- create7(UnpublishDesignTokensRequestSchema, {})
3002
+ create8(UnpublishDesignTokensRequestSchema, {})
2859
3003
  );
2860
3004
  return resp.tokens ?? null;
2861
3005
  },
2862
3006
  async getDesignTokensPublishStatus() {
2863
3007
  const resp = await client.getDesignTokensPublishStatus(
2864
- create7(GetDesignTokensPublishStatusRequestSchema, {})
3008
+ create8(GetDesignTokensPublishStatusRequestSchema, {})
2865
3009
  );
2866
3010
  return resp.status ?? null;
2867
3011
  },
2868
3012
  async getCustomerResolutionAttributes(customerId) {
2869
3013
  return client.getCustomerResolutionAttributes(
2870
- create7(GetCustomerResolutionAttributesRequestSchema, { customerId })
3014
+ create8(GetCustomerResolutionAttributesRequestSchema, { customerId })
2871
3015
  );
2872
3016
  },
2873
3017
  async getEditorConfigs(modelKey) {
2874
3018
  const resp = await client.getEditorConfigs(
2875
- create7(GetEditorConfigsRequestSchema, { modelKey })
3019
+ create8(GetEditorConfigsRequestSchema, { modelKey })
2876
3020
  );
2877
3021
  return resp.placements ?? [];
2878
3022
  },
2879
3023
  // ── Variant Catalog ──────────────────────────────────────
2880
3024
  async listVariantCatalog(params = {}) {
2881
3025
  return client.listVariantCatalog(
2882
- create7(ListVariantCatalogRequestSchema, {
3026
+ create8(ListVariantCatalogRequestSchema, {
2883
3027
  where: params.where,
2884
3028
  first: params.first ?? DEFAULT_PAGE_SIZE,
2885
3029
  after: params?.after
@@ -2888,13 +3032,13 @@ function createSettingsMethods(client) {
2888
3032
  },
2889
3033
  async getVariantCatalogEntry(id) {
2890
3034
  const resp = await client.getVariantCatalogEntry(
2891
- create7(GetVariantCatalogEntryRequestSchema, { id })
3035
+ create8(GetVariantCatalogEntryRequestSchema, { id })
2892
3036
  );
2893
3037
  return resp.entry ?? null;
2894
3038
  },
2895
3039
  async createVariantCatalogEntry(params) {
2896
3040
  const resp = await client.createVariantCatalogEntry(
2897
- create7(CreateVariantCatalogEntryRequestSchema, {
3041
+ create8(CreateVariantCatalogEntryRequestSchema, {
2898
3042
  key: params.key,
2899
3043
  name: params.name,
2900
3044
  description: params.description,
@@ -2908,7 +3052,7 @@ function createSettingsMethods(client) {
2908
3052
  },
2909
3053
  async updateVariantCatalogEntry(params) {
2910
3054
  const resp = await client.updateVariantCatalogEntry(
2911
- create7(UpdateVariantCatalogEntryRequestSchema, {
3055
+ create8(UpdateVariantCatalogEntryRequestSchema, {
2912
3056
  id: params.id,
2913
3057
  name: params.name,
2914
3058
  description: params.description,
@@ -2922,14 +3066,14 @@ function createSettingsMethods(client) {
2922
3066
  },
2923
3067
  async deleteVariantCatalogEntry(id) {
2924
3068
  const resp = await client.deleteVariantCatalogEntry(
2925
- create7(DeleteVariantCatalogEntryRequestSchema, { id })
3069
+ create8(DeleteVariantCatalogEntryRequestSchema, { id })
2926
3070
  );
2927
3071
  return resp.success;
2928
3072
  },
2929
3073
  // ── Locales ──────────────────────────────────────────────
2930
3074
  async listLocales(params = {}) {
2931
3075
  return client.listLocales(
2932
- create7(ListLocalesRequestSchema, {
3076
+ create8(ListLocalesRequestSchema, {
2933
3077
  where: params.where,
2934
3078
  first: params.first ?? DEFAULT_PAGE_SIZE,
2935
3079
  after: params?.after
@@ -2938,25 +3082,25 @@ function createSettingsMethods(client) {
2938
3082
  },
2939
3083
  async getLocale(id) {
2940
3084
  const resp = await client.getLocale(
2941
- create7(GetLocaleRequestSchema, { id })
3085
+ create8(GetLocaleRequestSchema, { id })
2942
3086
  );
2943
3087
  return resp.locale ?? null;
2944
3088
  },
2945
3089
  async getLocaleByCode(code) {
2946
3090
  const resp = await client.getLocaleByCode(
2947
- create7(GetLocaleByCodeRequestSchema, { code })
3091
+ create8(GetLocaleByCodeRequestSchema, { code })
2948
3092
  );
2949
3093
  return resp.locale ?? null;
2950
3094
  },
2951
3095
  async getDefaultLocale() {
2952
3096
  const resp = await client.getDefaultLocale(
2953
- create7(GetDefaultLocaleRequestSchema, {})
3097
+ create8(GetDefaultLocaleRequestSchema, {})
2954
3098
  );
2955
3099
  return resp.locale ?? null;
2956
3100
  },
2957
3101
  async createLocale(params) {
2958
3102
  const resp = await client.createLocale(
2959
- create7(CreateLocaleRequestSchema, {
3103
+ create8(CreateLocaleRequestSchema, {
2960
3104
  locale: params.locale,
2961
3105
  displayName: params.displayName,
2962
3106
  nativeName: params.nativeName,
@@ -2969,7 +3113,7 @@ function createSettingsMethods(client) {
2969
3113
  },
2970
3114
  async updateLocale(params) {
2971
3115
  const resp = await client.updateLocale(
2972
- create7(UpdateLocaleRequestSchema, {
3116
+ create8(UpdateLocaleRequestSchema, {
2973
3117
  id: params.id,
2974
3118
  displayName: params.displayName,
2975
3119
  nativeName: params.nativeName,
@@ -2983,20 +3127,20 @@ function createSettingsMethods(client) {
2983
3127
  },
2984
3128
  async deleteLocale(id) {
2985
3129
  const resp = await client.deleteLocale(
2986
- create7(DeleteLocaleRequestSchema, { id })
3130
+ create8(DeleteLocaleRequestSchema, { id })
2987
3131
  );
2988
3132
  return resp.success;
2989
3133
  },
2990
3134
  // ── Nav Preferences ─────────────────────────────────────
2991
3135
  async getNavPreferences() {
2992
3136
  const resp = await client.getNavPreferences(
2993
- create7(GetNavPreferencesRequestSchema, {})
3137
+ create8(GetNavPreferencesRequestSchema, {})
2994
3138
  );
2995
3139
  return resp.preferences ?? null;
2996
3140
  },
2997
3141
  async updateNavPreferences(params) {
2998
3142
  const resp = await client.updateNavPreferences(
2999
- create7(UpdateNavPreferencesRequestSchema, {
3143
+ create8(UpdateNavPreferencesRequestSchema, {
3000
3144
  preferences: params.preferences ? {
3001
3145
  favoriteProjects: params.preferences.favoriteProjects,
3002
3146
  favoriteNavItems: params.preferences.favoriteNavItems,
@@ -3013,7 +3157,7 @@ function createSettingsMethods(client) {
3013
3157
  // ── Recently Opened ─────────────────────────────────────
3014
3158
  async listRecentlyOpened(first) {
3015
3159
  const resp = await client.listRecentlyOpened(
3016
- create7(ListRecentlyOpenedRequestSchema, {
3160
+ create8(ListRecentlyOpenedRequestSchema, {
3017
3161
  first: first ?? 20
3018
3162
  })
3019
3163
  );
@@ -3021,7 +3165,7 @@ function createSettingsMethods(client) {
3021
3165
  },
3022
3166
  async trackRecentlyOpened(params) {
3023
3167
  const resp = await client.trackRecentlyOpened(
3024
- create7(TrackRecentlyOpenedRequestSchema, {
3168
+ create8(TrackRecentlyOpenedRequestSchema, {
3025
3169
  type: params.type,
3026
3170
  id: params.id,
3027
3171
  label: params.label,
@@ -3032,7 +3176,7 @@ function createSettingsMethods(client) {
3032
3176
  },
3033
3177
  async removeRecentlyOpened(params) {
3034
3178
  const resp = await client.removeRecentlyOpened(
3035
- create7(RemoveRecentlyOpenedRequestSchema, {
3179
+ create8(RemoveRecentlyOpenedRequestSchema, {
3036
3180
  type: params.type,
3037
3181
  id: params.id
3038
3182
  })
@@ -3041,7 +3185,7 @@ function createSettingsMethods(client) {
3041
3185
  },
3042
3186
  async clearRecentlyOpened() {
3043
3187
  const resp = await client.clearRecentlyOpened(
3044
- create7(ClearRecentlyOpenedRequestSchema, {})
3188
+ create8(ClearRecentlyOpenedRequestSchema, {})
3045
3189
  );
3046
3190
  return resp.success;
3047
3191
  }
@@ -3049,12 +3193,12 @@ function createSettingsMethods(client) {
3049
3193
  }
3050
3194
 
3051
3195
  // ../../packages/rpc-node/src/rpc/storage.ts
3052
- import { create as create8 } from "@bufbuild/protobuf";
3196
+ import { create as create9 } from "@bufbuild/protobuf";
3053
3197
  function createStorageMethods(client) {
3054
3198
  return {
3055
3199
  async createFileUpload(params) {
3056
3200
  return client.createFileUpload(
3057
- create8(CreateFileUploadRequestSchema, {
3201
+ create9(CreateFileUploadRequestSchema, {
3058
3202
  filename: params.filename,
3059
3203
  mimeType: params.mimeType,
3060
3204
  size: BigInt(params.size),
@@ -3064,17 +3208,17 @@ function createStorageMethods(client) {
3064
3208
  },
3065
3209
  async confirmFileUpload(uploadId) {
3066
3210
  const resp = await client.confirmFileUpload(
3067
- create8(ConfirmFileUploadRequestSchema, { uploadId })
3211
+ create9(ConfirmFileUploadRequestSchema, { uploadId })
3068
3212
  );
3069
3213
  return resp.file ?? null;
3070
3214
  },
3071
3215
  async getFile(id) {
3072
- const resp = await client.getFile(create8(GetFileRequestSchema, { id }));
3216
+ const resp = await client.getFile(create9(GetFileRequestSchema, { id }));
3073
3217
  return resp.file ?? null;
3074
3218
  },
3075
3219
  async listFiles(params = {}) {
3076
3220
  return client.listFiles(
3077
- create8(ListFilesRequestSchema, {
3221
+ create9(ListFilesRequestSchema, {
3078
3222
  where: params.where,
3079
3223
  includeDeleted: params.includeDeleted ?? false,
3080
3224
  first: params.first ?? DEFAULT_PAGE_SIZE,
@@ -3084,13 +3228,13 @@ function createStorageMethods(client) {
3084
3228
  },
3085
3229
  async getStorageUsage() {
3086
3230
  const resp = await client.getStorageUsage(
3087
- create8(GetStorageUsageRequestSchema, {})
3231
+ create9(GetStorageUsageRequestSchema, {})
3088
3232
  );
3089
3233
  return resp.usage ?? null;
3090
3234
  },
3091
3235
  async updateFile(params) {
3092
3236
  const resp = await client.updateFile(
3093
- create8(UpdateFileRequestSchema, {
3237
+ create9(UpdateFileRequestSchema, {
3094
3238
  id: params.id,
3095
3239
  filename: params.filename,
3096
3240
  folder: params.folder,
@@ -3103,7 +3247,7 @@ function createStorageMethods(client) {
3103
3247
  },
3104
3248
  async updateFileMetadata(params) {
3105
3249
  const resp = await client.updateFileMetadata(
3106
- create8(UpdateFileMetadataRequestSchema, {
3250
+ create9(UpdateFileMetadataRequestSchema, {
3107
3251
  id: params.id,
3108
3252
  altText: params.altText,
3109
3253
  caption: params.caption,
@@ -3114,31 +3258,31 @@ function createStorageMethods(client) {
3114
3258
  },
3115
3259
  async deleteFile(id) {
3116
3260
  const resp = await client.deleteFile(
3117
- create8(DeleteFileRequestSchema, { id })
3261
+ create9(DeleteFileRequestSchema, { id })
3118
3262
  );
3119
3263
  return resp.success;
3120
3264
  },
3121
3265
  async permanentlyDeleteFile(id) {
3122
3266
  const resp = await client.permanentlyDeleteFile(
3123
- create8(PermanentlyDeleteFileRequestSchema, { id })
3267
+ create9(PermanentlyDeleteFileRequestSchema, { id })
3124
3268
  );
3125
3269
  return resp.success;
3126
3270
  },
3127
3271
  async restoreFile(id) {
3128
3272
  const resp = await client.restoreFile(
3129
- create8(RestoreFileRequestSchema, { id })
3273
+ create9(RestoreFileRequestSchema, { id })
3130
3274
  );
3131
3275
  return resp.file ?? null;
3132
3276
  },
3133
3277
  async trackFileUsage(fileId, entityType) {
3134
3278
  const resp = await client.trackFileUsage(
3135
- create8(TrackFileUsageRequestSchema, { fileId, entityType })
3279
+ create9(TrackFileUsageRequestSchema, { fileId, entityType })
3136
3280
  );
3137
3281
  return resp.file ?? null;
3138
3282
  },
3139
3283
  async removeFileUsage(fileId, entityType) {
3140
3284
  const resp = await client.removeFileUsage(
3141
- create8(RemoveFileUsageRequestSchema, { fileId, entityType })
3285
+ create9(RemoveFileUsageRequestSchema, { fileId, entityType })
3142
3286
  );
3143
3287
  return resp.success;
3144
3288
  },
@@ -3146,7 +3290,7 @@ function createStorageMethods(client) {
3146
3290
  // ceiling, not list pagination, so it keeps `limit` rather than `first`.
3147
3291
  async cleanupOrphanedFiles(params) {
3148
3292
  return client.cleanupOrphanedFiles(
3149
- create8(CleanupOrphanedFilesRequestSchema, {
3293
+ create9(CleanupOrphanedFilesRequestSchema, {
3150
3294
  orphanThresholdDays: params?.orphanThresholdDays ?? 30,
3151
3295
  dryRun: params?.dryRun ?? false,
3152
3296
  limit: params?.limit ?? 100
@@ -3157,7 +3301,7 @@ function createStorageMethods(client) {
3157
3301
  }
3158
3302
 
3159
3303
  // ../../packages/rpc-node/src/rpc/operations.ts
3160
- import { create as create9 } from "@bufbuild/protobuf";
3304
+ import { create as create10 } from "@bufbuild/protobuf";
3161
3305
  function toOperationKind(kind) {
3162
3306
  if (kind === "query") return OperationKind.QUERY;
3163
3307
  if (kind === "field") return OperationKind.FIELD;
@@ -3168,7 +3312,7 @@ function createOperationsMethods(client) {
3168
3312
  // ── CRUD ──────────────────────────────────────────────────
3169
3313
  async listOperations(params = {}) {
3170
3314
  return client.listOperations(
3171
- create9(ListOperationsRequestSchema2, {
3315
+ create10(ListOperationsRequestSchema2, {
3172
3316
  where: params.where,
3173
3317
  first: params.first ?? DEFAULT_PAGE_SIZE,
3174
3318
  after: params?.after
@@ -3177,7 +3321,7 @@ function createOperationsMethods(client) {
3177
3321
  },
3178
3322
  async getOperation(params) {
3179
3323
  const resp = await client.getOperation(
3180
- create9(GetOperationRequestSchema, {
3324
+ create10(GetOperationRequestSchema, {
3181
3325
  id: params.id ?? "",
3182
3326
  key: params.key
3183
3327
  })
@@ -3186,7 +3330,7 @@ function createOperationsMethods(client) {
3186
3330
  },
3187
3331
  async createOperation(params) {
3188
3332
  const resp = await client.createOperation(
3189
- create9(CreateOperationRequestSchema, {
3333
+ create10(CreateOperationRequestSchema, {
3190
3334
  key: params.key,
3191
3335
  name: params.name,
3192
3336
  endpoint: params.endpoint,
@@ -3218,7 +3362,7 @@ function createOperationsMethods(client) {
3218
3362
  },
3219
3363
  async updateOperation(params) {
3220
3364
  const resp = await client.updateOperation(
3221
- create9(UpdateOperationRequestSchema, {
3365
+ create10(UpdateOperationRequestSchema, {
3222
3366
  id: params.id,
3223
3367
  name: params.name,
3224
3368
  description: params.description,
@@ -3247,20 +3391,20 @@ function createOperationsMethods(client) {
3247
3391
  },
3248
3392
  async deleteOperation(id) {
3249
3393
  const resp = await client.deleteOperation(
3250
- create9(DeleteOperationRequestSchema, { id })
3394
+ create10(DeleteOperationRequestSchema, { id })
3251
3395
  );
3252
3396
  return resp.success;
3253
3397
  },
3254
3398
  async getSigningSecret() {
3255
3399
  const resp = await client.getSigningSecret(
3256
- create9(GetSigningSecretRequestSchema, {})
3400
+ create10(GetSigningSecretRequestSchema, {})
3257
3401
  );
3258
3402
  return { secret: resp.secret, prefix: resp.prefix };
3259
3403
  },
3260
3404
  // ── Execution ─────────────────────────────────────────────
3261
3405
  async executeOperation(params) {
3262
3406
  return client.executeOperation(
3263
- create9(ExecuteOperationRequestSchema, {
3407
+ create10(ExecuteOperationRequestSchema, {
3264
3408
  operationKey: params.operationKey,
3265
3409
  input: params.input,
3266
3410
  triggerType: params.triggerType,
@@ -3271,7 +3415,7 @@ function createOperationsMethods(client) {
3271
3415
  // ── Dead Letter Queue ─────────────────────────────────────
3272
3416
  async listDeadLetterEntries(params = {}) {
3273
3417
  return client.listDeadLetterEntries(
3274
- create9(ListDeadLetterEntriesRequestSchema, {
3418
+ create10(ListDeadLetterEntriesRequestSchema, {
3275
3419
  where: params.where,
3276
3420
  first: params.first ?? DEFAULT_PAGE_SIZE,
3277
3421
  after: params?.after
@@ -3280,19 +3424,19 @@ function createOperationsMethods(client) {
3280
3424
  },
3281
3425
  async retryDeadLetterEntry(id) {
3282
3426
  const resp = await client.retryDeadLetterEntry(
3283
- create9(RetryDeadLetterEntryRequestSchema, { id })
3427
+ create10(RetryDeadLetterEntryRequestSchema, { id })
3284
3428
  );
3285
3429
  return resp.success;
3286
3430
  },
3287
3431
  async dismissDeadLetterEntry(id) {
3288
3432
  const resp = await client.dismissDeadLetterEntry(
3289
- create9(DismissDeadLetterEntryRequestSchema, { id })
3433
+ create10(DismissDeadLetterEntryRequestSchema, { id })
3290
3434
  );
3291
3435
  return resp.success;
3292
3436
  },
3293
3437
  async publishOperation(id) {
3294
3438
  const resp = await client.publishOperation(
3295
- create9(PublishOperationRequestSchema, { id })
3439
+ create10(PublishOperationRequestSchema, { id })
3296
3440
  );
3297
3441
  return resp.operation ?? null;
3298
3442
  }
@@ -3300,13 +3444,13 @@ function createOperationsMethods(client) {
3300
3444
  }
3301
3445
 
3302
3446
  // ../../packages/rpc-node/src/rpc/hooks.ts
3303
- import { create as create10 } from "@bufbuild/protobuf";
3447
+ import { create as create11 } from "@bufbuild/protobuf";
3304
3448
  function createHooksMethods(client) {
3305
3449
  return {
3306
3450
  // ── Queries ──────────────────────────────────────────────
3307
3451
  async listHooks(params = {}) {
3308
3452
  return client.listHooks(
3309
- create10(ListHooksRequestSchema, {
3453
+ create11(ListHooksRequestSchema, {
3310
3454
  where: params.where,
3311
3455
  first: params.first ?? DEFAULT_PAGE_SIZE,
3312
3456
  after: params?.after
@@ -3314,13 +3458,13 @@ function createHooksMethods(client) {
3314
3458
  );
3315
3459
  },
3316
3460
  async getHook(id) {
3317
- const resp = await client.getHook(create10(GetHookRequestSchema, { id }));
3461
+ const resp = await client.getHook(create11(GetHookRequestSchema, { id }));
3318
3462
  return resp.hook ?? null;
3319
3463
  },
3320
3464
  // ── Mutations ────────────────────────────────────────────
3321
3465
  async createHook(params) {
3322
3466
  const resp = await client.createHook(
3323
- create10(CreateHookRequestSchema, {
3467
+ create11(CreateHookRequestSchema, {
3324
3468
  key: params.key,
3325
3469
  name: params.name,
3326
3470
  event: params.event,
@@ -3336,7 +3480,7 @@ function createHooksMethods(client) {
3336
3480
  },
3337
3481
  async updateHook(params) {
3338
3482
  const resp = await client.updateHook(
3339
- create10(UpdateHookRequestSchema, {
3483
+ create11(UpdateHookRequestSchema, {
3340
3484
  id: params.id,
3341
3485
  name: params.name,
3342
3486
  description: params.description,
@@ -3350,21 +3494,21 @@ function createHooksMethods(client) {
3350
3494
  },
3351
3495
  async deleteHook(id) {
3352
3496
  const resp = await client.deleteHook(
3353
- create10(DeleteHookRequestSchema, { id })
3497
+ create11(DeleteHookRequestSchema, { id })
3354
3498
  );
3355
3499
  return resp.success;
3356
3500
  },
3357
3501
  // ── Get by Key ──────────────────────────────────────────
3358
3502
  async getHookByKey(key) {
3359
3503
  const resp = await client.getHookByKey(
3360
- create10(GetHookByKeyRequestSchema, { key })
3504
+ create11(GetHookByKeyRequestSchema, { key })
3361
3505
  );
3362
3506
  return resp.hook ?? null;
3363
3507
  },
3364
3508
  // ── Deliveries ──────────────────────────────────────────
3365
3509
  async listHookDeliveries(params = {}) {
3366
3510
  return client.listHookDeliveries(
3367
- create10(ListHookDeliveriesRequestSchema, {
3511
+ create11(ListHookDeliveriesRequestSchema, {
3368
3512
  where: params.where,
3369
3513
  first: params.first ?? DEFAULT_PAGE_SIZE,
3370
3514
  after: params?.after
@@ -3373,14 +3517,14 @@ function createHooksMethods(client) {
3373
3517
  },
3374
3518
  async retryHookDelivery(deliveryId) {
3375
3519
  const resp = await client.retryHookDelivery(
3376
- create10(RetryHookDeliveryRequestSchema, { deliveryId })
3520
+ create11(RetryHookDeliveryRequestSchema, { deliveryId })
3377
3521
  );
3378
3522
  return resp.success;
3379
3523
  },
3380
3524
  // ── Testing ─────────────────────────────────────────────
3381
3525
  async testHook(params) {
3382
3526
  const resp = await client.testHook(
3383
- create10(TestHookRequestSchema, {
3527
+ create11(TestHookRequestSchema, {
3384
3528
  hookId: params.hookId,
3385
3529
  testPayload: params.testPayload
3386
3530
  })
@@ -3394,12 +3538,12 @@ function createHooksMethods(client) {
3394
3538
  }
3395
3539
 
3396
3540
  // ../../packages/rpc-node/src/rpc/notifications.ts
3397
- import { create as create11 } from "@bufbuild/protobuf";
3541
+ import { create as create12 } from "@bufbuild/protobuf";
3398
3542
  function createNotificationsMethods(client) {
3399
3543
  return {
3400
3544
  async listNotifications(params = {}) {
3401
3545
  return client.listNotifications(
3402
- create11(ListNotificationsRequestSchema, {
3546
+ create12(ListNotificationsRequestSchema, {
3403
3547
  where: params.where,
3404
3548
  first: params.first ?? 20,
3405
3549
  after: params?.after
@@ -3408,27 +3552,27 @@ function createNotificationsMethods(client) {
3408
3552
  },
3409
3553
  async markNotificationRead(id) {
3410
3554
  const resp = await client.markNotificationRead(
3411
- create11(MarkNotificationReadRequestSchema, { id })
3555
+ create12(MarkNotificationReadRequestSchema, { id })
3412
3556
  );
3413
3557
  return resp.success;
3414
3558
  },
3415
3559
  async markAllNotificationsRead() {
3416
3560
  const resp = await client.markAllNotificationsRead(
3417
- create11(MarkAllNotificationsReadRequestSchema, {})
3561
+ create12(MarkAllNotificationsReadRequestSchema, {})
3418
3562
  );
3419
3563
  return resp.count;
3420
3564
  },
3421
3565
  // ── Push Credentials ────────────────────────────────────────
3422
3566
  async listPushCredentials(params) {
3423
3567
  return client.listPushCredentials(
3424
- create11(ListPushCredentialsRequestSchema, {
3568
+ create12(ListPushCredentialsRequestSchema, {
3425
3569
  projectId: params.projectId
3426
3570
  })
3427
3571
  );
3428
3572
  },
3429
3573
  async uploadPushCredential(params) {
3430
3574
  const resp = await client.uploadPushCredential(
3431
- create11(UploadPushCredentialRequestSchema, {
3575
+ create12(UploadPushCredentialRequestSchema, {
3432
3576
  projectId: params.projectId,
3433
3577
  platform: params.platform,
3434
3578
  apnsP8Key: params.apnsP8Key,
@@ -3443,14 +3587,14 @@ function createNotificationsMethods(client) {
3443
3587
  },
3444
3588
  async deletePushCredential(params) {
3445
3589
  const resp = await client.deletePushCredential(
3446
- create11(DeletePushCredentialRequestSchema, { id: params.id })
3590
+ create12(DeletePushCredentialRequestSchema, { id: params.id })
3447
3591
  );
3448
3592
  return resp.success;
3449
3593
  },
3450
3594
  // ── Device Tokens ────────────────────────────────────────────
3451
3595
  async registerDeviceToken(params) {
3452
3596
  const resp = await client.registerDeviceToken(
3453
- create11(RegisterDeviceTokenRequestSchema, {
3597
+ create12(RegisterDeviceTokenRequestSchema, {
3454
3598
  customerId: params.customerId,
3455
3599
  token: params.token,
3456
3600
  platform: params.platform,
@@ -3461,14 +3605,14 @@ function createNotificationsMethods(client) {
3461
3605
  },
3462
3606
  async unregisterDeviceToken(token) {
3463
3607
  const resp = await client.unregisterDeviceToken(
3464
- create11(UnregisterDeviceTokenRequestSchema, { token })
3608
+ create12(UnregisterDeviceTokenRequestSchema, { token })
3465
3609
  );
3466
3610
  return resp.success;
3467
3611
  },
3468
3612
  // ── Customer Notifications ───────────────────────────────────
3469
3613
  async sendCustomerNotification(params) {
3470
3614
  const resp = await client.sendCustomerNotification(
3471
- create11(SendCustomerNotificationRequestSchema, {
3615
+ create12(SendCustomerNotificationRequestSchema, {
3472
3616
  customerId: params.customerId,
3473
3617
  title: params.title,
3474
3618
  message: params.message,
@@ -3489,13 +3633,13 @@ function createNotificationsMethods(client) {
3489
3633
  }
3490
3634
 
3491
3635
  // ../../packages/rpc-node/src/rpc/cron-schedules.ts
3492
- import { create as create12 } from "@bufbuild/protobuf";
3636
+ import { create as create13 } from "@bufbuild/protobuf";
3493
3637
  function createCronSchedulesMethods(client) {
3494
3638
  return {
3495
3639
  // ── Queries ──────────────────────────────────────────────
3496
3640
  async listCronSchedules(params = {}) {
3497
3641
  return client.listCronSchedules(
3498
- create12(ListCronSchedulesRequestSchema, {
3642
+ create13(ListCronSchedulesRequestSchema, {
3499
3643
  where: params.where,
3500
3644
  first: params.first ?? DEFAULT_PAGE_SIZE,
3501
3645
  after: params?.after
@@ -3504,20 +3648,20 @@ function createCronSchedulesMethods(client) {
3504
3648
  },
3505
3649
  async getCronSchedule(id) {
3506
3650
  const resp = await client.getCronSchedule(
3507
- create12(GetCronScheduleRequestSchema, { id })
3651
+ create13(GetCronScheduleRequestSchema, { id })
3508
3652
  );
3509
3653
  return resp.schedule ?? null;
3510
3654
  },
3511
3655
  async getCronScheduleByKey(key) {
3512
3656
  const resp = await client.getCronScheduleByKey(
3513
- create12(GetCronScheduleByKeyRequestSchema, { key })
3657
+ create13(GetCronScheduleByKeyRequestSchema, { key })
3514
3658
  );
3515
3659
  return resp.schedule ?? null;
3516
3660
  },
3517
3661
  // ── Mutations ────────────────────────────────────────────
3518
3662
  async createCronSchedule(params) {
3519
3663
  const resp = await client.createCronSchedule(
3520
- create12(CreateCronScheduleRequestSchema, {
3664
+ create13(CreateCronScheduleRequestSchema, {
3521
3665
  key: params.key,
3522
3666
  name: params.name,
3523
3667
  description: params.description,
@@ -3531,7 +3675,7 @@ function createCronSchedulesMethods(client) {
3531
3675
  },
3532
3676
  async updateCronSchedule(params) {
3533
3677
  const resp = await client.updateCronSchedule(
3534
- create12(UpdateCronScheduleRequestSchema, {
3678
+ create13(UpdateCronScheduleRequestSchema, {
3535
3679
  id: params.id,
3536
3680
  name: params.name,
3537
3681
  description: params.description,
@@ -3545,25 +3689,25 @@ function createCronSchedulesMethods(client) {
3545
3689
  },
3546
3690
  async deleteCronSchedule(id) {
3547
3691
  const resp = await client.deleteCronSchedule(
3548
- create12(DeleteCronScheduleRequestSchema, { id })
3692
+ create13(DeleteCronScheduleRequestSchema, { id })
3549
3693
  );
3550
3694
  return resp.success;
3551
3695
  },
3552
3696
  async pauseCronSchedule(params) {
3553
3697
  const resp = await client.pauseCronSchedule(
3554
- create12(PauseCronScheduleRequestSchema, { id: params.id })
3698
+ create13(PauseCronScheduleRequestSchema, { id: params.id })
3555
3699
  );
3556
3700
  return resp.schedule ?? null;
3557
3701
  },
3558
3702
  async resumeCronSchedule(params) {
3559
3703
  const resp = await client.resumeCronSchedule(
3560
- create12(ResumeCronScheduleRequestSchema, { id: params.id })
3704
+ create13(ResumeCronScheduleRequestSchema, { id: params.id })
3561
3705
  );
3562
3706
  return resp.schedule ?? null;
3563
3707
  },
3564
3708
  async triggerCronSchedule(params) {
3565
3709
  const resp = await client.triggerCronSchedule(
3566
- create12(TriggerCronScheduleRequestSchema, { id: params.id })
3710
+ create13(TriggerCronScheduleRequestSchema, { id: params.id })
3567
3711
  );
3568
3712
  return resp.schedule ?? null;
3569
3713
  }
@@ -3571,13 +3715,13 @@ function createCronSchedulesMethods(client) {
3571
3715
  }
3572
3716
 
3573
3717
  // ../../packages/rpc-node/src/rpc/publish-batches.ts
3574
- import { create as create13 } from "@bufbuild/protobuf";
3718
+ import { create as create14 } from "@bufbuild/protobuf";
3575
3719
  import { timestampFromDate } from "@bufbuild/protobuf/wkt";
3576
3720
  function createPublishBatchesMethods(client) {
3577
3721
  return {
3578
3722
  async listPublishBatches(params = {}) {
3579
3723
  const resp = await client.listPublishBatches(
3580
- create13(ListPublishBatchesRequestSchema, {
3724
+ create14(ListPublishBatchesRequestSchema, {
3581
3725
  where: params.where,
3582
3726
  first: params.first ?? DEFAULT_PAGE_SIZE,
3583
3727
  after: params?.after
@@ -3587,13 +3731,13 @@ function createPublishBatchesMethods(client) {
3587
3731
  },
3588
3732
  async getPublishBatch(id) {
3589
3733
  const resp = await client.getPublishBatch(
3590
- create13(GetPublishBatchRequestSchema, { id })
3734
+ create14(GetPublishBatchRequestSchema, { id })
3591
3735
  );
3592
3736
  return { batch: resp.batch ?? null, items: resp.items ?? [] };
3593
3737
  },
3594
3738
  async createPublishBatch(input) {
3595
3739
  const resp = await client.createPublishBatch(
3596
- create13(CreatePublishBatchRequestSchema, {
3740
+ create14(CreatePublishBatchRequestSchema, {
3597
3741
  name: input.name,
3598
3742
  description: input.description,
3599
3743
  scheduledAt: timestampFromDate(input.scheduledAt),
@@ -3609,7 +3753,7 @@ function createPublishBatchesMethods(client) {
3609
3753
  },
3610
3754
  async updatePublishBatch(input) {
3611
3755
  const resp = await client.updatePublishBatch(
3612
- create13(UpdatePublishBatchRequestSchema, {
3756
+ create14(UpdatePublishBatchRequestSchema, {
3613
3757
  id: input.id,
3614
3758
  name: input.name,
3615
3759
  description: input.description,
@@ -3620,49 +3764,49 @@ function createPublishBatchesMethods(client) {
3620
3764
  },
3621
3765
  async deletePublishBatch(id) {
3622
3766
  const resp = await client.deletePublishBatch(
3623
- create13(DeletePublishBatchRequestSchema, { id })
3767
+ create14(DeletePublishBatchRequestSchema, { id })
3624
3768
  );
3625
3769
  return resp.success;
3626
3770
  },
3627
3771
  async triggerPublishBatch(id) {
3628
3772
  const resp = await client.triggerPublishBatch(
3629
- create13(TriggerPublishBatchRequestSchema, { id })
3773
+ create14(TriggerPublishBatchRequestSchema, { id })
3630
3774
  );
3631
3775
  return resp.batch ?? null;
3632
3776
  },
3633
3777
  async pausePublishBatch(id) {
3634
3778
  const resp = await client.pausePublishBatch(
3635
- create13(PausePublishBatchRequestSchema, { id })
3779
+ create14(PausePublishBatchRequestSchema, { id })
3636
3780
  );
3637
3781
  return resp.batch ?? null;
3638
3782
  },
3639
3783
  async resumePublishBatch(id) {
3640
3784
  const resp = await client.resumePublishBatch(
3641
- create13(ResumePublishBatchRequestSchema, { id })
3785
+ create14(ResumePublishBatchRequestSchema, { id })
3642
3786
  );
3643
3787
  return resp.batch ?? null;
3644
3788
  },
3645
3789
  async previewRollback(batchId) {
3646
3790
  const resp = await client.previewRollbackBatch(
3647
- create13(PreviewRollbackBatchRequestSchema, { batchId })
3791
+ create14(PreviewRollbackBatchRequestSchema, { batchId })
3648
3792
  );
3649
3793
  return resp;
3650
3794
  },
3651
3795
  async rollbackPublishBatch(batchId) {
3652
3796
  const resp = await client.rollbackPublishBatch(
3653
- create13(RollbackPublishBatchRequestSchema, { batchId })
3797
+ create14(RollbackPublishBatchRequestSchema, { batchId })
3654
3798
  );
3655
3799
  return resp.batch ?? null;
3656
3800
  },
3657
3801
  async retryFailedItems(batchId) {
3658
3802
  const resp = await client.retryFailedBatchItems(
3659
- create13(RetryFailedBatchItemsRequestSchema, { batchId })
3803
+ create14(RetryFailedBatchItemsRequestSchema, { batchId })
3660
3804
  );
3661
3805
  return resp.batch ?? null;
3662
3806
  },
3663
3807
  async addItems(input) {
3664
3808
  const resp = await client.addItemsToPublishBatch(
3665
- create13(AddItemsToPublishBatchRequestSchema, {
3809
+ create14(AddItemsToPublishBatchRequestSchema, {
3666
3810
  batchId: input.batchId,
3667
3811
  versionIds: input.versionIds ?? [],
3668
3812
  modelIds: input.modelIds ?? [],
@@ -3676,7 +3820,7 @@ function createPublishBatchesMethods(client) {
3676
3820
  },
3677
3821
  async removeItems(input) {
3678
3822
  const resp = await client.removeItemsFromPublishBatch(
3679
- create13(RemoveItemsFromPublishBatchRequestSchema, {
3823
+ create14(RemoveItemsFromPublishBatchRequestSchema, {
3680
3824
  batchId: input.batchId,
3681
3825
  versionIds: input.versionIds ?? [],
3682
3826
  modelIds: input.modelIds ?? [],
@@ -3692,12 +3836,12 @@ function createPublishBatchesMethods(client) {
3692
3836
  }
3693
3837
 
3694
3838
  // ../../packages/rpc-node/src/rpc/secrets.ts
3695
- import { create as create14 } from "@bufbuild/protobuf";
3839
+ import { create as create15 } from "@bufbuild/protobuf";
3696
3840
  function createSecretsMethods(client) {
3697
3841
  return {
3698
3842
  async put(args) {
3699
3843
  const resp = await client.putSecret(
3700
- create14(PutSecretRequestSchema, {
3844
+ create15(PutSecretRequestSchema, {
3701
3845
  tenantId: args.tenantId,
3702
3846
  projectId: args.projectId,
3703
3847
  ownerKind: args.ownerKind,
@@ -3710,12 +3854,12 @@ function createSecretsMethods(client) {
3710
3854
  },
3711
3855
  async get(ref, purpose) {
3712
3856
  return client.getSecret(
3713
- create14(GetSecretRequestSchema, { ref, purpose: purpose ?? "" })
3857
+ create15(GetSecretRequestSchema, { ref, purpose: purpose ?? "" })
3714
3858
  );
3715
3859
  },
3716
3860
  async list(args) {
3717
3861
  return client.listSecrets(
3718
- create14(ListSecretsRequestSchema, {
3862
+ create15(ListSecretsRequestSchema, {
3719
3863
  tenantId: args.tenantId,
3720
3864
  projectId: args.projectId,
3721
3865
  ownerKind: args.ownerKind ?? OwnerKind.UNSPECIFIED,
@@ -3730,19 +3874,19 @@ function createSecretsMethods(client) {
3730
3874
  },
3731
3875
  async rotate(ref, plaintext) {
3732
3876
  const resp = await client.rotateSecret(
3733
- create14(RotateSecretRequestSchema, { ref, plaintext })
3877
+ create15(RotateSecretRequestSchema, { ref, plaintext })
3734
3878
  );
3735
3879
  return resp.newRef;
3736
3880
  },
3737
3881
  async delete(ref) {
3738
- await client.deleteSecret(create14(DeleteSecretRequestSchema, { ref }));
3882
+ await client.deleteSecret(create15(DeleteSecretRequestSchema, { ref }));
3739
3883
  },
3740
3884
  async restore(ref) {
3741
- await client.restoreSecret(create14(RestoreSecretRequestSchema, { ref }));
3885
+ await client.restoreSecret(create15(RestoreSecretRequestSchema, { ref }));
3742
3886
  },
3743
3887
  async purge(args = {}) {
3744
3888
  const resp = await client.purgeSoftDeleted(
3745
- create14(PurgeSoftDeletedRequestSchema, {
3889
+ create15(PurgeSoftDeletedRequestSchema, {
3746
3890
  tenantId: args.tenantId ?? "",
3747
3891
  projectId: args.projectId ?? ""
3748
3892
  })
@@ -3769,6 +3913,7 @@ function createNodePlatformClient(apiUrl, headers) {
3769
3913
  identity: createIdentityMethods(createRpcClient(IdentityService, transport)),
3770
3914
  models: createModelsMethods(createRpcClient(ModelsService, transport)),
3771
3915
  records: createRecordsMethods(createRpcClient(RecordsService, transport)),
3916
+ realtime: createRealtimeMethods(createRpcClient(RealtimeService, transport)),
3772
3917
  configs: createConfigsMethods(createRpcClient(ConfigsService, transport)),
3773
3918
  segments: createSegmentsMethods(createRpcClient(SegmentsService, transport)),
3774
3919
  settings: createSettingsMethods(createRpcClient(SettingsService, transport)),
@@ -5365,6 +5510,7 @@ Edit the files, then run:
5365
5510
 
5366
5511
  // src/commands/push.ts
5367
5512
  import chalk6 from "chalk";
5513
+ import inquirer5 from "inquirer";
5368
5514
  import { existsSync as existsSync4, readFileSync, writeFileSync as writeFileSync2 } from "fs";
5369
5515
  import { resolve as resolve4 } from "path";
5370
5516
 
@@ -5493,6 +5639,7 @@ async function reconcileConfig(client, configId, manifest, options = {}) {
5493
5639
  authProviders: zeroCounts(),
5494
5640
  relyingParties: zeroCounts(),
5495
5641
  customDomains: zeroCounts(),
5642
+ customerRoles: zeroCounts(),
5496
5643
  placementsUpdated: false,
5497
5644
  profileSchemaUpdated: false,
5498
5645
  designTokensUpdated: false,
@@ -5527,6 +5674,13 @@ async function reconcileConfig(client, configId, manifest, options = {}) {
5527
5674
  manifest.relyingParties ?? [],
5528
5675
  summary
5529
5676
  );
5677
+ await reconcileCustomerRoles(
5678
+ client,
5679
+ options.tenantId,
5680
+ options.projectId,
5681
+ manifest.customerRoles ?? [],
5682
+ summary
5683
+ );
5530
5684
  await reconcilePlacements(client, configId, manifest.placements ?? [], summary);
5531
5685
  await reconcileProfileSchema(client, manifest, summary);
5532
5686
  await reconcileDesignTokens(client, manifest, summary, options.publishDesignTokens ?? false);
@@ -5552,6 +5706,120 @@ async function reconcileConfig(client, configId, manifest, options = {}) {
5552
5706
  }
5553
5707
  return summary;
5554
5708
  }
5709
+ async function planReconcile(client, manifest, options = {}) {
5710
+ const plan = { creates: [], updates: [], deletions: [] };
5711
+ const existingConfig = await client.configs.getConfigByKey(manifest.key);
5712
+ const configId = existingConfig?.id;
5713
+ const classify = (resource, manifestKeys, matchable, owned) => {
5714
+ for (const key of manifestKeys) {
5715
+ if (matchable.has(key)) plan.updates.push({ resource, key });
5716
+ else plan.creates.push({ resource, key });
5717
+ }
5718
+ for (const key of owned) {
5719
+ if (!manifestKeys.has(key)) plan.deletions.push({ resource, key });
5720
+ }
5721
+ };
5722
+ {
5723
+ const existing = await client.models.listModels({ first: 200 });
5724
+ const items = existing.items;
5725
+ const manifestKeys = new Set(
5726
+ (manifest.models ?? []).filter((m) => m.key && m.name).map((m) => m.key)
5727
+ );
5728
+ const owned = configId ? items.filter((m) => m.configId === configId).map((m) => m.key) : [];
5729
+ classify("model", manifestKeys, new Set(items.map((m) => m.key)), new Set(owned));
5730
+ }
5731
+ if (configId) {
5732
+ const [operations, hooks, segments, schedules] = await Promise.all([
5733
+ client.operations.listOperations({ where: { configId: { eq: configId } }, first: 200 }),
5734
+ client.hooks.listHooks({ where: { configId: { eq: configId } }, first: 200 }),
5735
+ client.segments.listSegments({ where: { configId: { eq: configId } }, first: 200 }),
5736
+ client.cronSchedules.listCronSchedules({ where: { configId: { eq: configId } }, first: 200 })
5737
+ ]);
5738
+ const opKeys = new Set(
5739
+ (operations.operations ?? []).map((o) => o.key)
5740
+ );
5741
+ classify(
5742
+ "operation",
5743
+ new Set((manifest.operations ?? []).filter((o) => o.key && o.name).map((o) => o.key)),
5744
+ opKeys,
5745
+ opKeys
5746
+ );
5747
+ const hookKeys = new Set(
5748
+ (hooks.hooks ?? []).map((h) => h.key)
5749
+ );
5750
+ classify(
5751
+ "hook",
5752
+ new Set(
5753
+ (manifest.hooks ?? []).filter((h) => h.event).map((h) => h.key || `${h.event}-${h.operationKey ?? "default"}`)
5754
+ ),
5755
+ hookKeys,
5756
+ hookKeys
5757
+ );
5758
+ const segmentKeys = new Set(
5759
+ (segments.segments ?? []).map((s) => s.key)
5760
+ );
5761
+ classify(
5762
+ "segment",
5763
+ new Set((manifest.segments ?? []).filter((s) => s.key && s.name).map((s) => s.key)),
5764
+ segmentKeys,
5765
+ segmentKeys
5766
+ );
5767
+ const scheduleKeys = new Set(
5768
+ (schedules.schedules ?? []).map((s) => s.key)
5769
+ );
5770
+ classify(
5771
+ "schedule",
5772
+ new Set(
5773
+ (manifest.schedules ?? []).filter((s) => (s.key ?? s.operationKey) && s.cron).map((s) => s.key ?? s.operationKey)
5774
+ ),
5775
+ scheduleKeys,
5776
+ scheduleKeys
5777
+ );
5778
+ } else {
5779
+ for (const o of manifest.operations ?? []) {
5780
+ if (o.key && o.name) plan.creates.push({ resource: "operation", key: o.key });
5781
+ }
5782
+ for (const h of manifest.hooks ?? []) {
5783
+ if (h.event) plan.creates.push({ resource: "hook", key: h.key || `${h.event}-${h.operationKey ?? "default"}` });
5784
+ }
5785
+ for (const s of manifest.segments ?? []) {
5786
+ if (s.key && s.name) plan.creates.push({ resource: "segment", key: s.key });
5787
+ }
5788
+ for (const s of manifest.schedules ?? []) {
5789
+ const key = s.key ?? s.operationKey;
5790
+ if (key && s.cron) plan.creates.push({ resource: "schedule", key });
5791
+ }
5792
+ }
5793
+ if (options.tenantId && options.projectId) {
5794
+ const declaredRps = (manifest.relyingParties ?? []).filter(
5795
+ (rp) => rp.clientId && (rp.kind ?? "customer") === "customer" && rp.customDomains !== void 0
5796
+ );
5797
+ if (declaredRps.length > 0) {
5798
+ const existing = await client.identity.listRelyingParties({
5799
+ principalKind: "customer",
5800
+ tenantId: options.tenantId,
5801
+ projectId: options.projectId
5802
+ });
5803
+ const rpByClientId = new Map(
5804
+ existing.items.map((c) => [c.clientId, c])
5805
+ );
5806
+ for (const rp of declaredRps) {
5807
+ const ex = rpByClientId.get(rp.clientId);
5808
+ if (!ex) continue;
5809
+ const declared = new Set(
5810
+ (rp.customDomains ?? []).map((h) => h.trim().toLowerCase().replace(/\.$/, "")).filter(Boolean)
5811
+ );
5812
+ const domains = await client.identity.listCustomDomains({ relyingPartyId: ex.id });
5813
+ for (const d of domains.items) {
5814
+ if (!declared.has(d.hostname)) {
5815
+ plan.deletions.push({ resource: "custom domain", key: d.hostname });
5816
+ }
5817
+ }
5818
+ }
5819
+ }
5820
+ }
5821
+ return plan;
5822
+ }
5555
5823
  async function reconcileModels(client, configId, models, summary, force, allowLookupRebuild, conflictOut) {
5556
5824
  const existing = await client.models.listModels({ first: 200 });
5557
5825
  const allByKey = new Map(
@@ -6020,6 +6288,53 @@ async function reconcileCustomDomains(client, relyingPartyId, declared, summary)
6020
6288
  summary.customDomains.deleted++;
6021
6289
  }
6022
6290
  }
6291
+ async function reconcileCustomerRoles(client, tenantId, projectId, roles, summary) {
6292
+ if (roles.length === 0) return;
6293
+ if (!tenantId || !projectId) {
6294
+ throw new Error(
6295
+ "customerRoles requires a push context with --tenant and --project"
6296
+ );
6297
+ }
6298
+ const existing = await client.identity.listCustomerRoles({
6299
+ tenantId,
6300
+ projectId,
6301
+ first: 200
6302
+ });
6303
+ const existingByKey = new Map(
6304
+ existing.items.map((r) => [r.key, r])
6305
+ );
6306
+ for (const role of roles) {
6307
+ if (!role.key || !role.name) continue;
6308
+ const permissions = role.permissions ?? [];
6309
+ const isDefault = role.isDefault ?? false;
6310
+ const current = existingByKey.get(role.key);
6311
+ if (current) {
6312
+ const wantPerms = permissions.slice().sort();
6313
+ const havePerms = (current.permissions ?? []).slice().sort();
6314
+ const permsChanged = wantPerms.length !== havePerms.length || wantPerms.some((s, i) => s !== havePerms[i]);
6315
+ const changed = permsChanged || current.name !== role.name || (current.isDefault ?? false) !== isDefault;
6316
+ if (changed) {
6317
+ await client.identity.updateCustomerRole({
6318
+ id: current.id,
6319
+ name: role.name,
6320
+ permissions,
6321
+ isDefault
6322
+ });
6323
+ summary.customerRoles.updated++;
6324
+ }
6325
+ } else {
6326
+ await client.identity.createCustomerRole({
6327
+ tenantId,
6328
+ projectId,
6329
+ key: role.key,
6330
+ name: role.name,
6331
+ permissions,
6332
+ isDefault
6333
+ });
6334
+ summary.customerRoles.created++;
6335
+ }
6336
+ }
6337
+ }
6023
6338
  async function reconcilePlacements(client, configId, placements, summary) {
6024
6339
  if (placements.length === 0) return;
6025
6340
  const config2 = await client.configs.getConfig(configId);
@@ -6339,6 +6654,46 @@ function syncEnvVar(envPath, key, value) {
6339
6654
  `, "utf-8");
6340
6655
  return "written";
6341
6656
  }
6657
+ function printPlannedChanges(label, changes, color) {
6658
+ if (changes.length === 0) return;
6659
+ console.log(color(` ${label}:`));
6660
+ for (const c of changes) {
6661
+ console.log(` ${color("\u2022")} ${c.resource} ${chalk6.cyan(c.key)}`);
6662
+ }
6663
+ }
6664
+ function printPlan(plan) {
6665
+ if (plan.creates.length + plan.updates.length + plan.deletions.length === 0) {
6666
+ console.log(chalk6.dim(" No resource changes (config blob, settings, and keys still apply on a real push)."));
6667
+ return;
6668
+ }
6669
+ printPlannedChanges("Create", plan.creates, chalk6.green);
6670
+ printPlannedChanges("Update", plan.updates, chalk6.yellow);
6671
+ printPlannedChanges("Delete", plan.deletions, chalk6.red);
6672
+ }
6673
+ async function confirmDeletions(plan) {
6674
+ console.log();
6675
+ console.log(chalk6.red(`\u26A0 This push deletes ${plan.deletions.length} resource${plan.deletions.length === 1 ? "" : "s"}:`));
6676
+ for (const d of plan.deletions) {
6677
+ const note = d.resource === "model" ? chalk6.dim(" (including all its records)") : "";
6678
+ console.log(` ${chalk6.red("\u2022")} ${d.resource} ${chalk6.cyan(d.key)}${note}`);
6679
+ }
6680
+ console.log();
6681
+ if (!process.stdin.isTTY) {
6682
+ console.error(
6683
+ chalk6.red("\u2716 Push aborted \u2014 deletions require confirmation.") + chalk6.dim(" Re-run with --allow-delete to proceed non-interactively, or --dry-run to inspect the plan.")
6684
+ );
6685
+ return false;
6686
+ }
6687
+ const { confirmed } = await inquirer5.prompt([
6688
+ {
6689
+ type: "confirm",
6690
+ name: "confirmed",
6691
+ message: "Proceed with these deletions?",
6692
+ default: false
6693
+ }
6694
+ ]);
6695
+ return confirmed;
6696
+ }
6342
6697
  function printSummary(summary) {
6343
6698
  const lines = [];
6344
6699
  const fmt = (label, c) => {
@@ -6354,6 +6709,7 @@ function printSummary(summary) {
6354
6709
  fmt("Segments:", summary.segments);
6355
6710
  fmt("Schedules:", summary.cronSchedules);
6356
6711
  fmt("Auth:", summary.authProviders);
6712
+ fmt("Customer roles:", summary.customerRoles);
6357
6713
  if (summary.profileSchemaUpdated) {
6358
6714
  lines.push(" Profile: schema updated");
6359
6715
  }
@@ -6384,6 +6740,14 @@ function registerPushCommand(program2, globalOpts) {
6384
6740
  "--rebuild",
6385
6741
  "Accept lookup renames. A lookup with the same keyBy and a changed `name` override rebuilds its projection rows (old rows are dropped, new rows are re-emitted from records). Without this flag, the server rejects renames with a pointer here. Pure add / remove on lookups does not require this flag.",
6386
6742
  false
6743
+ ).option(
6744
+ "--dry-run",
6745
+ "Print what the push would create / update / delete and exit without changing anything.",
6746
+ false
6747
+ ).option(
6748
+ "--allow-delete",
6749
+ "Skip the interactive confirmation when the push deletes resources (for CI). Without this flag, deletions prompt on a TTY and abort otherwise.",
6750
+ false
6387
6751
  ).option("--env <path>", "Path to .env file (default: .env)").action(
6388
6752
  withErrorHandler(
6389
6753
  globalOpts,
@@ -6423,6 +6787,26 @@ function registerPushCommand(program2, globalOpts) {
6423
6787
  }
6424
6788
  }
6425
6789
  const client = await createPlatformClient(gOpts);
6790
+ if (opts.dryRun || !opts.allowDelete) {
6791
+ const plan = await planReconcile(client, config2, {
6792
+ tenantId: resolved?.project.tenantId,
6793
+ projectId: resolved?.project.id
6794
+ });
6795
+ if (opts.dryRun) {
6796
+ console.log();
6797
+ console.log(chalk6.bold(`Plan for config "${config2.key}" (dry run \u2014 nothing applied):`));
6798
+ printPlan(plan);
6799
+ console.log();
6800
+ return;
6801
+ }
6802
+ if (plan.deletions.length > 0) {
6803
+ const confirmed = await confirmDeletions(plan);
6804
+ if (!confirmed) {
6805
+ console.log(chalk6.dim("Cancelled \u2014 nothing was changed."));
6806
+ process.exit(1);
6807
+ }
6808
+ }
6809
+ }
6426
6810
  console.log(
6427
6811
  chalk6.dim(`Pushing config "${config2.key}" to platform...`)
6428
6812
  );
@@ -6854,7 +7238,7 @@ function appToInput(a) {
6854
7238
 
6855
7239
  // src/commands/remove.ts
6856
7240
  import chalk8 from "chalk";
6857
- import inquirer5 from "inquirer";
7241
+ import inquirer6 from "inquirer";
6858
7242
  function registerRemoveCommand(program2, globalOpts) {
6859
7243
  program2.command("remove <key>").description("Remove a config and all its provisioned resources").option("--force", "Skip confirmation prompt", false).action(
6860
7244
  withErrorHandler(
@@ -6866,7 +7250,7 @@ function registerRemoveCommand(program2, globalOpts) {
6866
7250
  throw new Error(`Config not found: ${key}`);
6867
7251
  }
6868
7252
  if (!opts.force) {
6869
- const { confirmed } = await inquirer5.prompt([
7253
+ const { confirmed } = await inquirer6.prompt([
6870
7254
  {
6871
7255
  type: "confirm",
6872
7256
  name: "confirmed",
@@ -7726,6 +8110,166 @@ function registerCustomerProfilesCommands(program2, globalOpts) {
7726
8110
  );
7727
8111
  }
7728
8112
 
8113
+ // src/commands/customer-roles.ts
8114
+ function registerCustomerRolesCommands(program2, globalOpts) {
8115
+ const roles = program2.command("customer-roles").description("Manage customer RBAC roles (scopes for customer tokens)");
8116
+ roles.command("list").description("List customer roles in the current project").option("--first <n>", "Max results", "100").action(
8117
+ withErrorHandler(globalOpts, async (cmdOpts) => {
8118
+ const opts = globalOpts();
8119
+ const ctx = await resolveProjectContext({ project: opts.project });
8120
+ const client = await createPlatformClient(opts);
8121
+ const result = await client.identity.listCustomerRoles({
8122
+ tenantId: ctx?.project.tenantId,
8123
+ projectId: ctx?.project.id,
8124
+ first: parseInt(String(cmdOpts.first ?? "100"), 10)
8125
+ });
8126
+ formatListProto(CustomerRoleSchema, result.items, opts, {
8127
+ columns: [
8128
+ { key: "id", header: "ID", width: 28 },
8129
+ { key: "key", header: "Key", width: 16 },
8130
+ { key: "name", header: "Name", width: 22 },
8131
+ {
8132
+ key: "isDefault",
8133
+ header: "Default",
8134
+ width: 8,
8135
+ format: (v) => v ? "yes" : "no"
8136
+ },
8137
+ {
8138
+ key: "permissions",
8139
+ header: "Permissions",
8140
+ width: 40,
8141
+ format: (v) => Array.isArray(v) ? v.join(", ") : ""
8142
+ }
8143
+ ],
8144
+ total: result.total
8145
+ });
8146
+ })
8147
+ );
8148
+ roles.command("create").description("Create a customer role").requiredOption("--key <key>", "Stable role key (e.g. default)").requiredOption("--name <name>", "Display name").requiredOption(
8149
+ "--permissions <scopes>",
8150
+ "Comma-separated scopes (e.g. self:*,operations:execute)"
8151
+ ).option("--default", "Make this the project default role (all customers inherit it)").action(
8152
+ withErrorHandler(globalOpts, async (cmdOpts) => {
8153
+ const opts = globalOpts();
8154
+ const ctx = await resolveProjectContext({ project: opts.project });
8155
+ if (!ctx) {
8156
+ throw new Error(
8157
+ "No project context. Select a project (`foir select-project`) or pass --project."
8158
+ );
8159
+ }
8160
+ const client = await createPlatformClient(opts);
8161
+ const role = await client.identity.createCustomerRole({
8162
+ tenantId: ctx.project.tenantId,
8163
+ projectId: ctx.project.id,
8164
+ key: String(cmdOpts.key),
8165
+ name: String(cmdOpts.name),
8166
+ permissions: parsePermissions(cmdOpts.permissions),
8167
+ isDefault: !!cmdOpts.default
8168
+ });
8169
+ if (opts.json || opts.jsonl) {
8170
+ formatOutputProto(CustomerRoleSchema, role, opts);
8171
+ } else {
8172
+ success(`Created customer role: ${role?.name} (${role?.key})`);
8173
+ console.log(" Existing customers must log in again to pick up the new scopes.");
8174
+ }
8175
+ })
8176
+ );
8177
+ roles.command("update <id>").description("Update a customer role (name / permissions / default)").option("--name <name>", "New display name").option("--permissions <scopes>", "Replace scopes (comma-separated)").option("--default", "Make this the project default role").option("--no-default", "Clear the project-default flag").action(
8178
+ withErrorHandler(
8179
+ globalOpts,
8180
+ async (id, cmdOpts) => {
8181
+ const opts = globalOpts();
8182
+ const client = await createPlatformClient(opts);
8183
+ const role = await client.identity.updateCustomerRole({
8184
+ id,
8185
+ name: cmdOpts.name ? String(cmdOpts.name) : void 0,
8186
+ permissions: cmdOpts.permissions !== void 0 ? parsePermissions(cmdOpts.permissions) : void 0,
8187
+ // commander sets `default` to false only when --no-default is passed;
8188
+ // when neither flag is given it's undefined → leave unchanged.
8189
+ isDefault: cmdOpts.default === void 0 ? void 0 : !!cmdOpts.default
8190
+ });
8191
+ if (opts.json || opts.jsonl) {
8192
+ formatOutputProto(CustomerRoleSchema, role, opts);
8193
+ } else {
8194
+ success(`Updated customer role: ${role?.name} (${role?.key})`);
8195
+ console.log(" Existing customers must log in again to pick up scope changes.");
8196
+ }
8197
+ }
8198
+ )
8199
+ );
8200
+ roles.command("disable <id>").description("Disable a customer role").option("--confirm", "Skip confirmation prompt").action(
8201
+ withErrorHandler(
8202
+ globalOpts,
8203
+ async (id, cmdOpts) => {
8204
+ const opts = globalOpts();
8205
+ const confirmed = await confirmAction(
8206
+ `Disable customer role ${id}? Customers holding only this role lose its scopes on next login.`,
8207
+ { confirm: !!cmdOpts.confirm }
8208
+ );
8209
+ if (!confirmed) {
8210
+ console.log("Aborted.");
8211
+ return;
8212
+ }
8213
+ const client = await createPlatformClient(opts);
8214
+ await client.identity.disableCustomerRole(id);
8215
+ success(`Disabled customer role ${id}`);
8216
+ }
8217
+ )
8218
+ );
8219
+ roles.command("assign").description("Assign a customer role to a specific customer").requiredOption("--customer <id>", "Customer ID").requiredOption("--role <id>", "Role ID").action(
8220
+ withErrorHandler(globalOpts, async (cmdOpts) => {
8221
+ const opts = globalOpts();
8222
+ const client = await createPlatformClient(opts);
8223
+ const assignment = await client.identity.assignCustomerRole({
8224
+ customerId: String(cmdOpts.customer),
8225
+ roleId: String(cmdOpts.role)
8226
+ });
8227
+ if (opts.json || opts.jsonl) {
8228
+ formatOutputProto(CustomerRoleAssignmentSchema, assignment, opts);
8229
+ } else {
8230
+ success(`Assigned role ${cmdOpts.role} to customer ${cmdOpts.customer}`);
8231
+ console.log(" The customer must log in again to pick up the role.");
8232
+ }
8233
+ })
8234
+ );
8235
+ roles.command("revoke <assignmentId>").description("Revoke a customer role assignment").option("--confirm", "Skip confirmation prompt").action(
8236
+ withErrorHandler(
8237
+ globalOpts,
8238
+ async (assignmentId, cmdOpts) => {
8239
+ const opts = globalOpts();
8240
+ const confirmed = await confirmAction(
8241
+ `Revoke role assignment ${assignmentId}?`,
8242
+ { confirm: !!cmdOpts.confirm }
8243
+ );
8244
+ if (!confirmed) {
8245
+ console.log("Aborted.");
8246
+ return;
8247
+ }
8248
+ const client = await createPlatformClient(opts);
8249
+ await client.identity.revokeCustomerRoleAssignment(assignmentId);
8250
+ success(`Revoked role assignment ${assignmentId}`);
8251
+ }
8252
+ )
8253
+ );
8254
+ roles.command("assignments").description("List role assignments for a customer or a role").option("--customer <id>", "Filter by customer ID").option("--role <id>", "Filter by role ID").action(
8255
+ withErrorHandler(globalOpts, async (cmdOpts) => {
8256
+ const opts = globalOpts();
8257
+ if (!cmdOpts.customer && !cmdOpts.role) {
8258
+ throw new Error("Pass --customer <id> or --role <id>.");
8259
+ }
8260
+ const client = await createPlatformClient(opts);
8261
+ const result = await client.identity.listCustomerRoleAssignments({
8262
+ customerId: cmdOpts.customer ? String(cmdOpts.customer) : void 0,
8263
+ roleId: cmdOpts.role ? String(cmdOpts.role) : void 0
8264
+ });
8265
+ formatOutput(result, opts);
8266
+ })
8267
+ );
8268
+ }
8269
+ function parsePermissions(raw) {
8270
+ return String(raw ?? "").split(",").map((s) => s.trim()).filter(Boolean);
8271
+ }
8272
+
7729
8273
  // src/commands/operations.ts
7730
8274
  function registerOperationsCommands(program2, globalOpts) {
7731
8275
  const operations = program2.command("operations").description("Manage operations");
@@ -11082,6 +11626,7 @@ registerModelsCommands(program, getGlobalOpts);
11082
11626
  registerRecordsCommands(program, getGlobalOpts);
11083
11627
  registerCustomersCommands(program, getGlobalOpts);
11084
11628
  registerCustomerProfilesCommands(program, getGlobalOpts);
11629
+ registerCustomerRolesCommands(program, getGlobalOpts);
11085
11630
  registerOperationsCommands(program, getGlobalOpts);
11086
11631
  registerSegmentsCommands(program, getGlobalOpts);
11087
11632
  registerSchedulesCommands(program, getGlobalOpts);