@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 +917 -372
- package/dist/lib/config-helpers.d.ts +41 -1
- package/package.json +3 -3
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/
|
|
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__ */
|
|
659
|
-
var ConfigSchema = /* @__PURE__ */
|
|
660
|
-
var ListOperationsRequestSchema = /* @__PURE__ */
|
|
661
|
-
var GetConfigRequestSchema = /* @__PURE__ */
|
|
662
|
-
var GetConfigByKeyRequestSchema = /* @__PURE__ */
|
|
663
|
-
var ListConfigsRequestSchema = /* @__PURE__ */
|
|
664
|
-
var CreateConfigRequestSchema = /* @__PURE__ */
|
|
665
|
-
var UpdateConfigRequestSchema = /* @__PURE__ */
|
|
666
|
-
var DeleteConfigRequestSchema = /* @__PURE__ */
|
|
667
|
-
var TriggerConfigSyncRequestSchema = /* @__PURE__ */
|
|
668
|
-
var ApplyConfigRequestSchema = /* @__PURE__ */
|
|
669
|
-
var WriteConfigCredentialRequestSchema = /* @__PURE__ */
|
|
670
|
-
var ConfigDirectionSchema = /* @__PURE__ */
|
|
671
|
-
var ConfigDirection = /* @__PURE__ */
|
|
672
|
-
var ConfigsService = /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
678
|
-
var SegmentSchema = /* @__PURE__ */
|
|
679
|
-
var SegmentPreviewSchema = /* @__PURE__ */
|
|
680
|
-
var SegmentEvaluationResultSchema = /* @__PURE__ */
|
|
681
|
-
var CreateSegmentRequestSchema = /* @__PURE__ */
|
|
682
|
-
var GetSegmentRequestSchema = /* @__PURE__ */
|
|
683
|
-
var GetSegmentByKeyRequestSchema = /* @__PURE__ */
|
|
684
|
-
var ListSegmentsRequestSchema = /* @__PURE__ */
|
|
685
|
-
var UpdateSegmentRequestSchema = /* @__PURE__ */
|
|
686
|
-
var DeleteSegmentRequestSchema = /* @__PURE__ */
|
|
687
|
-
var GetCustomerMembershipsRequestSchema = /* @__PURE__ */
|
|
688
|
-
var PreviewSegmentRulesRequestSchema = /* @__PURE__ */
|
|
689
|
-
var TestSegmentEvaluationRequestSchema = /* @__PURE__ */
|
|
690
|
-
var SetGlobalOptOutRequestSchema = /* @__PURE__ */
|
|
691
|
-
var OptOutOfSegmentRequestSchema = /* @__PURE__ */
|
|
692
|
-
var OptBackIntoSegmentRequestSchema = /* @__PURE__ */
|
|
693
|
-
var SegmentsService = /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
700
|
-
var NoteSchema = /* @__PURE__ */
|
|
701
|
-
var GetSettingsRequestSchema = /* @__PURE__ */
|
|
702
|
-
var UpdateSettingRequestSchema = /* @__PURE__ */
|
|
703
|
-
var CreateNoteRequestSchema = /* @__PURE__ */
|
|
704
|
-
var GetNoteRequestSchema = /* @__PURE__ */
|
|
705
|
-
var ListNotesRequestSchema = /* @__PURE__ */
|
|
706
|
-
var UpdateNoteRequestSchema = /* @__PURE__ */
|
|
707
|
-
var DeleteNoteRequestSchema = /* @__PURE__ */
|
|
708
|
-
var ListMyMentionsRequestSchema = /* @__PURE__ */
|
|
709
|
-
var UpdateMentionStatusRequestSchema = /* @__PURE__ */
|
|
710
|
-
var LocaleSchema = /* @__PURE__ */
|
|
711
|
-
var ListLocalesRequestSchema = /* @__PURE__ */
|
|
712
|
-
var GetLocaleRequestSchema = /* @__PURE__ */
|
|
713
|
-
var CreateLocaleRequestSchema = /* @__PURE__ */
|
|
714
|
-
var UpdateLocaleRequestSchema = /* @__PURE__ */
|
|
715
|
-
var DeleteLocaleRequestSchema = /* @__PURE__ */
|
|
716
|
-
var GetNavPreferencesRequestSchema = /* @__PURE__ */
|
|
717
|
-
var UpdateNavPreferencesRequestSchema = /* @__PURE__ */
|
|
718
|
-
var ListRecentlyOpenedRequestSchema = /* @__PURE__ */
|
|
719
|
-
var TrackRecentlyOpenedRequestSchema = /* @__PURE__ */
|
|
720
|
-
var RemoveRecentlyOpenedRequestSchema = /* @__PURE__ */
|
|
721
|
-
var ClearRecentlyOpenedRequestSchema = /* @__PURE__ */
|
|
722
|
-
var ListContextDimensionsRequestSchema = /* @__PURE__ */
|
|
723
|
-
var GetContextDimensionRequestSchema = /* @__PURE__ */
|
|
724
|
-
var CreateContextDimensionRequestSchema = /* @__PURE__ */
|
|
725
|
-
var UpdateContextDimensionRequestSchema = /* @__PURE__ */
|
|
726
|
-
var DeleteContextDimensionRequestSchema = /* @__PURE__ */
|
|
727
|
-
var GetContextDimensionValuesRequestSchema = /* @__PURE__ */
|
|
728
|
-
var CustomerProfileFieldSchema = /* @__PURE__ */
|
|
729
|
-
var CustomerProfileSchemaSchema = /* @__PURE__ */
|
|
730
|
-
var GetCustomerProfileSchemaRequestSchema = /* @__PURE__ */
|
|
731
|
-
var VariantCatalogEntrySchema = /* @__PURE__ */
|
|
732
|
-
var ListVariantCatalogRequestSchema = /* @__PURE__ */
|
|
733
|
-
var GetVariantCatalogEntryRequestSchema = /* @__PURE__ */
|
|
734
|
-
var CreateVariantCatalogEntryRequestSchema = /* @__PURE__ */
|
|
735
|
-
var UpdateVariantCatalogEntryRequestSchema = /* @__PURE__ */
|
|
736
|
-
var DeleteVariantCatalogEntryRequestSchema = /* @__PURE__ */
|
|
737
|
-
var GetCustomerProfileRequestSchema = /* @__PURE__ */
|
|
738
|
-
var CreateCustomerProfileRequestSchema = /* @__PURE__ */
|
|
739
|
-
var UpdateCustomerProfileRequestSchema = /* @__PURE__ */
|
|
740
|
-
var UpdateCustomerProfileSchemaRequestSchema = /* @__PURE__ */
|
|
741
|
-
var GetCustomerResolutionAttributesRequestSchema = /* @__PURE__ */
|
|
742
|
-
var GetEditorConfigsRequestSchema = /* @__PURE__ */
|
|
743
|
-
var GetDefaultLocaleRequestSchema = /* @__PURE__ */
|
|
744
|
-
var GetLocaleByCodeRequestSchema = /* @__PURE__ */
|
|
745
|
-
var DeleteSettingRequestSchema = /* @__PURE__ */
|
|
746
|
-
var GetDesignTokensRequestSchema = /* @__PURE__ */
|
|
747
|
-
var UpdateDesignTokensRequestSchema = /* @__PURE__ */
|
|
748
|
-
var PublishDesignTokensRequestSchema = /* @__PURE__ */
|
|
749
|
-
var UnpublishDesignTokensRequestSchema = /* @__PURE__ */
|
|
750
|
-
var GetDesignTokensPublishStatusRequestSchema = /* @__PURE__ */
|
|
751
|
-
var PublishProfileSchemaRequestSchema = /* @__PURE__ */
|
|
752
|
-
var CustomerProfileLookupAudienceSchema = /* @__PURE__ */
|
|
753
|
-
var CustomerProfileLookupAudience = /* @__PURE__ */
|
|
754
|
-
var SettingsService = /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
760
|
-
var FileSchema = /* @__PURE__ */
|
|
761
|
-
var StorageUsageSchema = /* @__PURE__ */
|
|
762
|
-
var CreateFileUploadRequestSchema = /* @__PURE__ */
|
|
763
|
-
var ConfirmFileUploadRequestSchema = /* @__PURE__ */
|
|
764
|
-
var GetFileRequestSchema = /* @__PURE__ */
|
|
765
|
-
var ListFilesRequestSchema = /* @__PURE__ */
|
|
766
|
-
var GetStorageUsageRequestSchema = /* @__PURE__ */
|
|
767
|
-
var UpdateFileRequestSchema = /* @__PURE__ */
|
|
768
|
-
var UpdateFileMetadataRequestSchema = /* @__PURE__ */
|
|
769
|
-
var DeleteFileRequestSchema = /* @__PURE__ */
|
|
770
|
-
var PermanentlyDeleteFileRequestSchema = /* @__PURE__ */
|
|
771
|
-
var RestoreFileRequestSchema = /* @__PURE__ */
|
|
772
|
-
var TrackFileUsageRequestSchema = /* @__PURE__ */
|
|
773
|
-
var RemoveFileUsageRequestSchema = /* @__PURE__ */
|
|
774
|
-
var CleanupOrphanedFilesRequestSchema = /* @__PURE__ */
|
|
775
|
-
var StorageService = /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
782
|
-
var OperationExecutionSchema = /* @__PURE__ */
|
|
783
|
-
var DeadLetterEntrySchema = /* @__PURE__ */
|
|
784
|
-
var ListOperationsRequestSchema2 = /* @__PURE__ */
|
|
785
|
-
var GetOperationRequestSchema = /* @__PURE__ */
|
|
786
|
-
var CreateOperationRequestSchema = /* @__PURE__ */
|
|
787
|
-
var UpdateOperationRequestSchema = /* @__PURE__ */
|
|
788
|
-
var DeleteOperationRequestSchema = /* @__PURE__ */
|
|
789
|
-
var ExecuteOperationRequestSchema = /* @__PURE__ */
|
|
790
|
-
var ListDeadLetterEntriesRequestSchema = /* @__PURE__ */
|
|
791
|
-
var RetryDeadLetterEntryRequestSchema = /* @__PURE__ */
|
|
792
|
-
var DismissDeadLetterEntryRequestSchema = /* @__PURE__ */
|
|
793
|
-
var GetSigningSecretRequestSchema = /* @__PURE__ */
|
|
794
|
-
var PublishOperationRequestSchema = /* @__PURE__ */
|
|
795
|
-
var OperationKindSchema = /* @__PURE__ */
|
|
796
|
-
var OperationKind = /* @__PURE__ */
|
|
797
|
-
var OperationsService = /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
803
|
-
var HookSchema = /* @__PURE__ */
|
|
804
|
-
var HookDeliverySchema = /* @__PURE__ */
|
|
805
|
-
var ListHooksRequestSchema = /* @__PURE__ */
|
|
806
|
-
var GetHookRequestSchema = /* @__PURE__ */
|
|
807
|
-
var CreateHookRequestSchema = /* @__PURE__ */
|
|
808
|
-
var UpdateHookRequestSchema = /* @__PURE__ */
|
|
809
|
-
var DeleteHookRequestSchema = /* @__PURE__ */
|
|
810
|
-
var ListHookDeliveriesRequestSchema = /* @__PURE__ */
|
|
811
|
-
var RetryHookDeliveryRequestSchema = /* @__PURE__ */
|
|
812
|
-
var TestHookRequestSchema = /* @__PURE__ */
|
|
813
|
-
var GetHookByKeyRequestSchema = /* @__PURE__ */
|
|
814
|
-
var HooksService = /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
821
|
-
var ListNotificationsRequestSchema = /* @__PURE__ */
|
|
822
|
-
var MarkNotificationReadRequestSchema = /* @__PURE__ */
|
|
823
|
-
var MarkAllNotificationsReadRequestSchema = /* @__PURE__ */
|
|
824
|
-
var SendCustomerNotificationRequestSchema = /* @__PURE__ */
|
|
825
|
-
var RegisterDeviceTokenRequestSchema = /* @__PURE__ */
|
|
826
|
-
var UnregisterDeviceTokenRequestSchema = /* @__PURE__ */
|
|
827
|
-
var PushCredentialSchema = /* @__PURE__ */
|
|
828
|
-
var UploadPushCredentialRequestSchema = /* @__PURE__ */
|
|
829
|
-
var ListPushCredentialsRequestSchema = /* @__PURE__ */
|
|
830
|
-
var DeletePushCredentialRequestSchema = /* @__PURE__ */
|
|
831
|
-
var NotificationsService = /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
838
|
-
var ListCronSchedulesRequestSchema = /* @__PURE__ */
|
|
839
|
-
var GetCronScheduleRequestSchema = /* @__PURE__ */
|
|
840
|
-
var GetCronScheduleByKeyRequestSchema = /* @__PURE__ */
|
|
841
|
-
var CreateCronScheduleRequestSchema = /* @__PURE__ */
|
|
842
|
-
var UpdateCronScheduleRequestSchema = /* @__PURE__ */
|
|
843
|
-
var DeleteCronScheduleRequestSchema = /* @__PURE__ */
|
|
844
|
-
var PauseCronScheduleRequestSchema = /* @__PURE__ */
|
|
845
|
-
var ResumeCronScheduleRequestSchema = /* @__PURE__ */
|
|
846
|
-
var TriggerCronScheduleRequestSchema = /* @__PURE__ */
|
|
847
|
-
var PublishBatchSchema = /* @__PURE__ */
|
|
848
|
-
var ListPublishBatchesRequestSchema = /* @__PURE__ */
|
|
849
|
-
var GetPublishBatchRequestSchema = /* @__PURE__ */
|
|
850
|
-
var CreatePublishBatchRequestSchema = /* @__PURE__ */
|
|
851
|
-
var UpdatePublishBatchRequestSchema = /* @__PURE__ */
|
|
852
|
-
var DeletePublishBatchRequestSchema = /* @__PURE__ */
|
|
853
|
-
var TriggerPublishBatchRequestSchema = /* @__PURE__ */
|
|
854
|
-
var PausePublishBatchRequestSchema = /* @__PURE__ */
|
|
855
|
-
var ResumePublishBatchRequestSchema = /* @__PURE__ */
|
|
856
|
-
var PreviewRollbackBatchRequestSchema = /* @__PURE__ */
|
|
857
|
-
var RollbackPublishBatchRequestSchema = /* @__PURE__ */
|
|
858
|
-
var RetryFailedBatchItemsRequestSchema = /* @__PURE__ */
|
|
859
|
-
var AddItemsToPublishBatchRequestSchema = /* @__PURE__ */
|
|
860
|
-
var RemoveItemsFromPublishBatchRequestSchema = /* @__PURE__ */
|
|
861
|
-
var SchedulesService = /* @__PURE__ */
|
|
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
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
882
|
-
var ListAppsRequestSchema = /* @__PURE__ */
|
|
883
|
-
var GetAppRequestSchema = /* @__PURE__ */
|
|
884
|
-
var InstallAppRequestSchema = /* @__PURE__ */
|
|
885
|
-
var ConfirmInstallAppRequestSchema = /* @__PURE__ */
|
|
886
|
-
var UpdateAppRequestSchema = /* @__PURE__ */
|
|
887
|
-
var ConfirmUpdateAppRequestSchema = /* @__PURE__ */
|
|
888
|
-
var UninstallAppRequestSchema = /* @__PURE__ */
|
|
889
|
-
var SetAppMappingRequestSchema = /* @__PURE__ */
|
|
890
|
-
var ValidateManifestRequestSchema = /* @__PURE__ */
|
|
891
|
-
var ValidateManifestResponseSchema = /* @__PURE__ */
|
|
892
|
-
var TriggerOperationRequestSchema = /* @__PURE__ */
|
|
893
|
-
var AppsService = /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
899
|
-
var PutSecretRequestSchema = /* @__PURE__ */
|
|
900
|
-
var GetSecretRequestSchema = /* @__PURE__ */
|
|
901
|
-
var ListSecretsRequestSchema = /* @__PURE__ */
|
|
902
|
-
var RotateSecretRequestSchema = /* @__PURE__ */
|
|
903
|
-
var DeleteSecretRequestSchema = /* @__PURE__ */
|
|
904
|
-
var RestoreSecretRequestSchema = /* @__PURE__ */
|
|
905
|
-
var PurgeSoftDeletedRequestSchema = /* @__PURE__ */
|
|
906
|
-
var OwnerKindSchema = /* @__PURE__ */
|
|
907
|
-
var OwnerKind = /* @__PURE__ */
|
|
908
|
-
var SecretsService = /* @__PURE__ */
|
|
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/
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
2625
|
+
import { create as create7 } from "@bufbuild/protobuf";
|
|
2482
2626
|
function rawOperandToProto(raw) {
|
|
2483
|
-
return
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2712
|
+
create7(GetCustomerMembershipsRequestSchema, { customerId })
|
|
2569
2713
|
);
|
|
2570
2714
|
},
|
|
2571
2715
|
async previewSegmentRules(rules, sampleSize) {
|
|
2572
2716
|
const resp = await client.previewSegmentRules(
|
|
2573
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
2754
|
+
import { create as create8 } from "@bufbuild/protobuf";
|
|
2611
2755
|
function jsProfileFieldToProto(f) {
|
|
2612
|
-
return
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2996
|
+
create8(PublishDesignTokensRequestSchema, {})
|
|
2853
2997
|
);
|
|
2854
2998
|
return resp;
|
|
2855
2999
|
},
|
|
2856
3000
|
async unpublishDesignTokens() {
|
|
2857
3001
|
const resp = await client.unpublishDesignTokens(
|
|
2858
|
-
|
|
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
|
-
|
|
3008
|
+
create8(GetDesignTokensPublishStatusRequestSchema, {})
|
|
2865
3009
|
);
|
|
2866
3010
|
return resp.status ?? null;
|
|
2867
3011
|
},
|
|
2868
3012
|
async getCustomerResolutionAttributes(customerId) {
|
|
2869
3013
|
return client.getCustomerResolutionAttributes(
|
|
2870
|
-
|
|
3014
|
+
create8(GetCustomerResolutionAttributesRequestSchema, { customerId })
|
|
2871
3015
|
);
|
|
2872
3016
|
},
|
|
2873
3017
|
async getEditorConfigs(modelKey) {
|
|
2874
3018
|
const resp = await client.getEditorConfigs(
|
|
2875
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
3857
|
+
create15(GetSecretRequestSchema, { ref, purpose: purpose ?? "" })
|
|
3714
3858
|
);
|
|
3715
3859
|
},
|
|
3716
3860
|
async list(args) {
|
|
3717
3861
|
return client.listSecrets(
|
|
3718
|
-
|
|
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
|
-
|
|
3877
|
+
create15(RotateSecretRequestSchema, { ref, plaintext })
|
|
3734
3878
|
);
|
|
3735
3879
|
return resp.newRef;
|
|
3736
3880
|
},
|
|
3737
3881
|
async delete(ref) {
|
|
3738
|
-
await client.deleteSecret(
|
|
3882
|
+
await client.deleteSecret(create15(DeleteSecretRequestSchema, { ref }));
|
|
3739
3883
|
},
|
|
3740
3884
|
async restore(ref) {
|
|
3741
|
-
await client.restoreSecret(
|
|
3885
|
+
await client.restoreSecret(create15(RestoreSecretRequestSchema, { ref }));
|
|
3742
3886
|
},
|
|
3743
3887
|
async purge(args = {}) {
|
|
3744
3888
|
const resp = await client.purgeSoftDeleted(
|
|
3745
|
-
|
|
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
|
|
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
|
|
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);
|