@valon-technologies/gestalt 0.0.1-alpha.14 → 0.0.1-alpha.17
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/README.md +70 -80
- package/package.json +2 -2
- package/src/agent-manager.ts +33 -2
- package/src/agent.ts +20 -11
- package/src/authorization.ts +1 -1
- package/src/build.ts +2 -0
- package/src/cache.ts +12 -2
- package/src/index.ts +0 -5
- package/src/indexeddb.ts +1 -1
- package/{gen → src/internal/gen}/v1/agent_pb.ts +64 -178
- package/{gen → src/internal/gen}/v1/pluginruntime_pb.ts +15 -130
- package/{gen → src/internal/gen}/v1/workflow_pb.ts +6 -1
- package/src/invoker.ts +27 -2
- package/src/pluginruntime.ts +2 -27
- package/src/runtime-log-host.ts +28 -2
- package/src/runtime.ts +11 -9
- package/src/s3.ts +41 -6
- package/src/test-agent-contract.ts +43 -0
- package/src/workflow-manager.ts +42 -2
- package/src/workflow.ts +15 -1
- package/tsconfig.json +1 -1
- /package/{gen → src/internal/gen}/google/rpc/status_pb.ts +0 -0
- /package/{gen → src/internal/gen}/v1/authentication_pb.ts +0 -0
- /package/{gen → src/internal/gen}/v1/authorization_pb.ts +0 -0
- /package/{gen → src/internal/gen}/v1/cache_pb.ts +0 -0
- /package/{gen → src/internal/gen}/v1/datastore_pb.ts +0 -0
- /package/{gen → src/internal/gen}/v1/external_credential_pb.ts +0 -0
- /package/{gen → src/internal/gen}/v1/plugin_pb.ts +0 -0
- /package/{gen → src/internal/gen}/v1/runtime_pb.ts +0 -0
- /package/{gen → src/internal/gen}/v1/s3_pb.ts +0 -0
- /package/{gen → src/internal/gen}/v1/secrets_pb.ts +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// @generated by protoc-gen-es v2.
|
|
1
|
+
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
|
2
2
|
// @generated from file v1/pluginruntime.proto (package gestalt.provider.v1, syntax proto3)
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
|
|
@@ -12,7 +12,7 @@ import type { Message } from "@bufbuild/protobuf";
|
|
|
12
12
|
* Describes the file v1/pluginruntime.proto.
|
|
13
13
|
*/
|
|
14
14
|
export const file_v1_pluginruntime: GenFile = /*@__PURE__*/
|
|
15
|
-
fileDesc("
|
|
15
|
+
fileDesc("ChZ2MS9wbHVnaW5ydW50aW1lLnByb3RvEhNnZXN0YWx0LnByb3ZpZGVyLnYxIqABChRQbHVnaW5SdW50aW1lU3VwcG9ydBIYChBjYW5faG9zdF9wbHVnaW5zGAEgASgIEkEKC2VncmVzc19tb2RlGAMgASgOMiwuZ2VzdGFsdC5wcm92aWRlci52MS5QbHVnaW5SdW50aW1lRWdyZXNzTW9kZUoECAIQA0oECAQQBUoECAUQBkoECAYQB1ITaG9zdF9zZXJ2aWNlX2FjY2VzcyKhAgoUUGx1Z2luUnVudGltZVNlc3Npb24SCgoCaWQYASABKAkSDQoFc3RhdGUYAiABKAkSSQoIbWV0YWRhdGEYAyADKAsyNy5nZXN0YWx0LnByb3ZpZGVyLnYxLlBsdWdpblJ1bnRpbWVTZXNzaW9uLk1ldGFkYXRhRW50cnkSRQoJbGlmZWN5Y2xlGAQgASgLMjIuZ2VzdGFsdC5wcm92aWRlci52MS5QbHVnaW5SdW50aW1lU2Vzc2lvbkxpZmVjeWNsZRIUCgxzdGF0ZV9yZWFzb24YBSABKAkSFQoNc3RhdGVfbWVzc2FnZRgGIAEoCRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiuQEKHVBsdWdpblJ1bnRpbWVTZXNzaW9uTGlmZWN5Y2xlEi4KCnN0YXJ0ZWRfYXQYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjgKFHJlY29tbWVuZGVkX2RyYWluX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpleHBpcmVzX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCI4ChpQbHVnaW5SdW50aW1lSW1hZ2VQdWxsQXV0aBIaChJkb2NrZXJfY29uZmlnX2pzb24YASABKAkiyAIKIFN0YXJ0UGx1Z2luUnVudGltZVNlc3Npb25SZXF1ZXN0EhMKC3BsdWdpbl9uYW1lGAEgASgJEhAKCHRlbXBsYXRlGAIgASgJEg0KBWltYWdlGAMgASgJElUKCG1ldGFkYXRhGAQgAygLMkMuZ2VzdGFsdC5wcm92aWRlci52MS5TdGFydFBsdWdpblJ1bnRpbWVTZXNzaW9uUmVxdWVzdC5NZXRhZGF0YUVudHJ5EkgKD2ltYWdlX3B1bGxfYXV0aBgGIAEoCzIvLmdlc3RhbHQucHJvdmlkZXIudjEuUGx1Z2luUnVudGltZUltYWdlUHVsbEF1dGgaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIBRAGUhZpbWFnZV9wdWxsX2NyZWRlbnRpYWxzIjQKHkdldFBsdWdpblJ1bnRpbWVTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIiIKIExpc3RQbHVnaW5SdW50aW1lU2Vzc2lvbnNSZXF1ZXN0ImAKIUxpc3RQbHVnaW5SdW50aW1lU2Vzc2lvbnNSZXNwb25zZRI7CghzZXNzaW9ucxgBIAMoCzIpLmdlc3RhbHQucHJvdmlkZXIudjEuUGx1Z2luUnVudGltZVNlc3Npb24iNQofU3RvcFBsdWdpblJ1bnRpbWVTZXNzaW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJIqMCChhTdGFydEhvc3RlZFBsdWdpblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRITCgtwbHVnaW5fbmFtZRgCIAEoCRIPCgdjb21tYW5kGAMgASgJEgwKBGFyZ3MYBCADKAkSQwoDZW52GAUgAygLMjYuZ2VzdGFsdC5wcm92aWRlci52MS5TdGFydEhvc3RlZFBsdWdpblJlcXVlc3QuRW52RW50cnkSFQoNYWxsb3dlZF9ob3N0cxgHIAMoCRIWCg5kZWZhdWx0X2FjdGlvbhgIIAEoCRITCgtob3N0X2JpbmFyeRgJIAEoCRoqCghFbnZFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIBhAHSgQIChALIlgKDEhvc3RlZFBsdWdpbhIKCgJpZBgBIAEoCRISCgpzZXNzaW9uX2lkGAIgASgJEhMKC3BsdWdpbl9uYW1lGAMgASgJEhMKC2RpYWxfdGFyZ2V0GAQgASgJIqoBChVQbHVnaW5SdW50aW1lTG9nRW50cnkSOwoGc3RyZWFtGAEgASgOMisuZ2VzdGFsdC5wcm92aWRlci52MS5QbHVnaW5SdW50aW1lTG9nU3RyZWFtEg8KB21lc3NhZ2UYAiABKAkSLwoLb2JzZXJ2ZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhIKCnNvdXJjZV9zZXEYBCABKAMibgoeQXBwZW5kUGx1Z2luUnVudGltZUxvZ3NSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSOAoEbG9ncxgCIAMoCzIqLmdlc3RhbHQucHJvdmlkZXIudjEuUGx1Z2luUnVudGltZUxvZ0VudHJ5IjMKH0FwcGVuZFBsdWdpblJ1bnRpbWVMb2dzUmVzcG9uc2USEAoIbGFzdF9zZXEYASABKAMquAEKF1BsdWdpblJ1bnRpbWVFZ3Jlc3NNb2RlEioKJlBMVUdJTl9SVU5USU1FX0VHUkVTU19NT0RFX1VOU1BFQ0lGSUVEEAASIwofUExVR0lOX1JVTlRJTUVfRUdSRVNTX01PREVfTk9ORRABEiMKH1BMVUdJTl9SVU5USU1FX0VHUkVTU19NT0RFX0NJRFIQAhInCiNQTFVHSU5fUlVOVElNRV9FR1JFU1NfTU9ERV9IT1NUTkFNRRADKrYBChZQbHVnaW5SdW50aW1lTG9nU3RyZWFtEikKJVBMVUdJTl9SVU5USU1FX0xPR19TVFJFQU1fVU5TUEVDSUZJRUQQABIkCiBQTFVHSU5fUlVOVElNRV9MT0dfU1RSRUFNX1NURE9VVBABEiQKIFBMVUdJTl9SVU5USU1FX0xPR19TVFJFQU1fU1RERVJSEAISJQohUExVR0lOX1JVTlRJTUVfTE9HX1NUUkVBTV9SVU5USU1FEAMyjwEKFFBsdWdpblJ1bnRpbWVMb2dIb3N0EncKCkFwcGVuZExvZ3MSMy5nZXN0YWx0LnByb3ZpZGVyLnYxLkFwcGVuZFBsdWdpblJ1bnRpbWVMb2dzUmVxdWVzdBo0Lmdlc3RhbHQucHJvdmlkZXIudjEuQXBwZW5kUGx1Z2luUnVudGltZUxvZ3NSZXNwb25zZTKFBQoVUGx1Z2luUnVudGltZVByb3ZpZGVyEk8KCkdldFN1cHBvcnQSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaKS5nZXN0YWx0LnByb3ZpZGVyLnYxLlBsdWdpblJ1bnRpbWVTdXBwb3J0EnAKDFN0YXJ0U2Vzc2lvbhI1Lmdlc3RhbHQucHJvdmlkZXIudjEuU3RhcnRQbHVnaW5SdW50aW1lU2Vzc2lvblJlcXVlc3QaKS5nZXN0YWx0LnByb3ZpZGVyLnYxLlBsdWdpblJ1bnRpbWVTZXNzaW9uEmwKCkdldFNlc3Npb24SMy5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldFBsdWdpblJ1bnRpbWVTZXNzaW9uUmVxdWVzdBopLmdlc3RhbHQucHJvdmlkZXIudjEuUGx1Z2luUnVudGltZVNlc3Npb24SfQoMTGlzdFNlc3Npb25zEjUuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0UGx1Z2luUnVudGltZVNlc3Npb25zUmVxdWVzdBo2Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdFBsdWdpblJ1bnRpbWVTZXNzaW9uc1Jlc3BvbnNlElsKC1N0b3BTZXNzaW9uEjQuZ2VzdGFsdC5wcm92aWRlci52MS5TdG9wUGx1Z2luUnVudGltZVNlc3Npb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5El8KC1N0YXJ0UGx1Z2luEi0uZ2VzdGFsdC5wcm92aWRlci52MS5TdGFydEhvc3RlZFBsdWdpblJlcXVlc3QaIS5nZXN0YWx0LnByb3ZpZGVyLnYxLkhvc3RlZFBsdWdpbkI7WjlnaXRodWIuY29tL3ZhbG9uLXRlY2hub2xvZ2llcy9nZXN0YWx0L3Nkay9nby9nZW4vdjE7cHJvdG9iBnByb3RvMw", [file_google_protobuf_empty, file_google_protobuf_timestamp]);
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* @generated from message gestalt.provider.v1.PluginRuntimeSupport
|
|
@@ -23,11 +23,6 @@ export type PluginRuntimeSupport = Message<"gestalt.provider.v1.PluginRuntimeSup
|
|
|
23
23
|
*/
|
|
24
24
|
canHostPlugins: boolean;
|
|
25
25
|
|
|
26
|
-
/**
|
|
27
|
-
* @generated from field: gestalt.provider.v1.PluginRuntimeHostServiceAccess host_service_access = 2;
|
|
28
|
-
*/
|
|
29
|
-
hostServiceAccess: PluginRuntimeHostServiceAccess;
|
|
30
|
-
|
|
31
26
|
/**
|
|
32
27
|
* @generated from field: gestalt.provider.v1.PluginRuntimeEgressMode egress_mode = 3;
|
|
33
28
|
*/
|
|
@@ -63,7 +58,7 @@ export type PluginRuntimeSession = Message<"gestalt.provider.v1.PluginRuntimeSes
|
|
|
63
58
|
/**
|
|
64
59
|
* @generated from field: gestalt.provider.v1.PluginRuntimeSessionLifecycle lifecycle = 4;
|
|
65
60
|
*/
|
|
66
|
-
lifecycle?: PluginRuntimeSessionLifecycle;
|
|
61
|
+
lifecycle?: PluginRuntimeSessionLifecycle | undefined;
|
|
67
62
|
|
|
68
63
|
/**
|
|
69
64
|
* @generated from field: string state_reason = 5;
|
|
@@ -90,17 +85,17 @@ export type PluginRuntimeSessionLifecycle = Message<"gestalt.provider.v1.PluginR
|
|
|
90
85
|
/**
|
|
91
86
|
* @generated from field: google.protobuf.Timestamp started_at = 1;
|
|
92
87
|
*/
|
|
93
|
-
startedAt?: Timestamp;
|
|
88
|
+
startedAt?: Timestamp | undefined;
|
|
94
89
|
|
|
95
90
|
/**
|
|
96
91
|
* @generated from field: google.protobuf.Timestamp recommended_drain_at = 2;
|
|
97
92
|
*/
|
|
98
|
-
recommendedDrainAt?: Timestamp;
|
|
93
|
+
recommendedDrainAt?: Timestamp | undefined;
|
|
99
94
|
|
|
100
95
|
/**
|
|
101
96
|
* @generated from field: google.protobuf.Timestamp expires_at = 3;
|
|
102
97
|
*/
|
|
103
|
-
expiresAt?: Timestamp;
|
|
98
|
+
expiresAt?: Timestamp | undefined;
|
|
104
99
|
};
|
|
105
100
|
|
|
106
101
|
/**
|
|
@@ -154,7 +149,7 @@ export type StartPluginRuntimeSessionRequest = Message<"gestalt.provider.v1.Star
|
|
|
154
149
|
/**
|
|
155
150
|
* @generated from field: gestalt.provider.v1.PluginRuntimeImagePullAuth image_pull_auth = 6;
|
|
156
151
|
*/
|
|
157
|
-
imagePullAuth?: PluginRuntimeImagePullAuth;
|
|
152
|
+
imagePullAuth?: PluginRuntimeImagePullAuth | undefined;
|
|
158
153
|
};
|
|
159
154
|
|
|
160
155
|
/**
|
|
@@ -228,82 +223,6 @@ export type StopPluginRuntimeSessionRequest = Message<"gestalt.provider.v1.StopP
|
|
|
228
223
|
export const StopPluginRuntimeSessionRequestSchema: GenMessage<StopPluginRuntimeSessionRequest> = /*@__PURE__*/
|
|
229
224
|
messageDesc(file_v1_pluginruntime, 8);
|
|
230
225
|
|
|
231
|
-
/**
|
|
232
|
-
* @generated from message gestalt.provider.v1.PluginRuntimeHostServiceRelay
|
|
233
|
-
*/
|
|
234
|
-
export type PluginRuntimeHostServiceRelay = Message<"gestalt.provider.v1.PluginRuntimeHostServiceRelay"> & {
|
|
235
|
-
/**
|
|
236
|
-
* @generated from field: string dial_target = 1;
|
|
237
|
-
*/
|
|
238
|
-
dialTarget: string;
|
|
239
|
-
};
|
|
240
|
-
|
|
241
|
-
/**
|
|
242
|
-
* Describes the message gestalt.provider.v1.PluginRuntimeHostServiceRelay.
|
|
243
|
-
* Use `create(PluginRuntimeHostServiceRelaySchema)` to create a new message.
|
|
244
|
-
*/
|
|
245
|
-
export const PluginRuntimeHostServiceRelaySchema: GenMessage<PluginRuntimeHostServiceRelay> = /*@__PURE__*/
|
|
246
|
-
messageDesc(file_v1_pluginruntime, 9);
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* @generated from message gestalt.provider.v1.BindPluginRuntimeHostServiceRequest
|
|
250
|
-
*/
|
|
251
|
-
export type BindPluginRuntimeHostServiceRequest = Message<"gestalt.provider.v1.BindPluginRuntimeHostServiceRequest"> & {
|
|
252
|
-
/**
|
|
253
|
-
* @generated from field: string session_id = 1;
|
|
254
|
-
*/
|
|
255
|
-
sessionId: string;
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* @generated from field: string env_var = 2;
|
|
259
|
-
*/
|
|
260
|
-
envVar: string;
|
|
261
|
-
|
|
262
|
-
/**
|
|
263
|
-
* @generated from field: gestalt.provider.v1.PluginRuntimeHostServiceRelay relay = 4;
|
|
264
|
-
*/
|
|
265
|
-
relay?: PluginRuntimeHostServiceRelay;
|
|
266
|
-
};
|
|
267
|
-
|
|
268
|
-
/**
|
|
269
|
-
* Describes the message gestalt.provider.v1.BindPluginRuntimeHostServiceRequest.
|
|
270
|
-
* Use `create(BindPluginRuntimeHostServiceRequestSchema)` to create a new message.
|
|
271
|
-
*/
|
|
272
|
-
export const BindPluginRuntimeHostServiceRequestSchema: GenMessage<BindPluginRuntimeHostServiceRequest> = /*@__PURE__*/
|
|
273
|
-
messageDesc(file_v1_pluginruntime, 10);
|
|
274
|
-
|
|
275
|
-
/**
|
|
276
|
-
* @generated from message gestalt.provider.v1.PluginRuntimeHostServiceBinding
|
|
277
|
-
*/
|
|
278
|
-
export type PluginRuntimeHostServiceBinding = Message<"gestalt.provider.v1.PluginRuntimeHostServiceBinding"> & {
|
|
279
|
-
/**
|
|
280
|
-
* @generated from field: string id = 1;
|
|
281
|
-
*/
|
|
282
|
-
id: string;
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* @generated from field: string session_id = 2;
|
|
286
|
-
*/
|
|
287
|
-
sessionId: string;
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* @generated from field: string env_var = 3;
|
|
291
|
-
*/
|
|
292
|
-
envVar: string;
|
|
293
|
-
|
|
294
|
-
/**
|
|
295
|
-
* @generated from field: gestalt.provider.v1.PluginRuntimeHostServiceRelay relay = 5;
|
|
296
|
-
*/
|
|
297
|
-
relay?: PluginRuntimeHostServiceRelay;
|
|
298
|
-
};
|
|
299
|
-
|
|
300
|
-
/**
|
|
301
|
-
* Describes the message gestalt.provider.v1.PluginRuntimeHostServiceBinding.
|
|
302
|
-
* Use `create(PluginRuntimeHostServiceBindingSchema)` to create a new message.
|
|
303
|
-
*/
|
|
304
|
-
export const PluginRuntimeHostServiceBindingSchema: GenMessage<PluginRuntimeHostServiceBinding> = /*@__PURE__*/
|
|
305
|
-
messageDesc(file_v1_pluginruntime, 11);
|
|
306
|
-
|
|
307
226
|
/**
|
|
308
227
|
* StartHostedPluginRequest describes the plugin process to launch inside a
|
|
309
228
|
* runtime session. The runtime backend owns allocation and injection of the
|
|
@@ -359,7 +278,7 @@ export type StartHostedPluginRequest = Message<"gestalt.provider.v1.StartHostedP
|
|
|
359
278
|
* Use `create(StartHostedPluginRequestSchema)` to create a new message.
|
|
360
279
|
*/
|
|
361
280
|
export const StartHostedPluginRequestSchema: GenMessage<StartHostedPluginRequest> = /*@__PURE__*/
|
|
362
|
-
messageDesc(file_v1_pluginruntime,
|
|
281
|
+
messageDesc(file_v1_pluginruntime, 9);
|
|
363
282
|
|
|
364
283
|
/**
|
|
365
284
|
* @generated from message gestalt.provider.v1.HostedPlugin
|
|
@@ -391,7 +310,7 @@ export type HostedPlugin = Message<"gestalt.provider.v1.HostedPlugin"> & {
|
|
|
391
310
|
* Use `create(HostedPluginSchema)` to create a new message.
|
|
392
311
|
*/
|
|
393
312
|
export const HostedPluginSchema: GenMessage<HostedPlugin> = /*@__PURE__*/
|
|
394
|
-
messageDesc(file_v1_pluginruntime,
|
|
313
|
+
messageDesc(file_v1_pluginruntime, 10);
|
|
395
314
|
|
|
396
315
|
/**
|
|
397
316
|
* @generated from message gestalt.provider.v1.PluginRuntimeLogEntry
|
|
@@ -410,7 +329,7 @@ export type PluginRuntimeLogEntry = Message<"gestalt.provider.v1.PluginRuntimeLo
|
|
|
410
329
|
/**
|
|
411
330
|
* @generated from field: google.protobuf.Timestamp observed_at = 3;
|
|
412
331
|
*/
|
|
413
|
-
observedAt?: Timestamp;
|
|
332
|
+
observedAt?: Timestamp | undefined;
|
|
414
333
|
|
|
415
334
|
/**
|
|
416
335
|
* @generated from field: int64 source_seq = 4;
|
|
@@ -423,7 +342,7 @@ export type PluginRuntimeLogEntry = Message<"gestalt.provider.v1.PluginRuntimeLo
|
|
|
423
342
|
* Use `create(PluginRuntimeLogEntrySchema)` to create a new message.
|
|
424
343
|
*/
|
|
425
344
|
export const PluginRuntimeLogEntrySchema: GenMessage<PluginRuntimeLogEntry> = /*@__PURE__*/
|
|
426
|
-
messageDesc(file_v1_pluginruntime,
|
|
345
|
+
messageDesc(file_v1_pluginruntime, 11);
|
|
427
346
|
|
|
428
347
|
/**
|
|
429
348
|
* @generated from message gestalt.provider.v1.AppendPluginRuntimeLogsRequest
|
|
@@ -445,7 +364,7 @@ export type AppendPluginRuntimeLogsRequest = Message<"gestalt.provider.v1.Append
|
|
|
445
364
|
* Use `create(AppendPluginRuntimeLogsRequestSchema)` to create a new message.
|
|
446
365
|
*/
|
|
447
366
|
export const AppendPluginRuntimeLogsRequestSchema: GenMessage<AppendPluginRuntimeLogsRequest> = /*@__PURE__*/
|
|
448
|
-
messageDesc(file_v1_pluginruntime,
|
|
367
|
+
messageDesc(file_v1_pluginruntime, 12);
|
|
449
368
|
|
|
450
369
|
/**
|
|
451
370
|
* @generated from message gestalt.provider.v1.AppendPluginRuntimeLogsResponse
|
|
@@ -462,33 +381,7 @@ export type AppendPluginRuntimeLogsResponse = Message<"gestalt.provider.v1.Appen
|
|
|
462
381
|
* Use `create(AppendPluginRuntimeLogsResponseSchema)` to create a new message.
|
|
463
382
|
*/
|
|
464
383
|
export const AppendPluginRuntimeLogsResponseSchema: GenMessage<AppendPluginRuntimeLogsResponse> = /*@__PURE__*/
|
|
465
|
-
messageDesc(file_v1_pluginruntime,
|
|
466
|
-
|
|
467
|
-
/**
|
|
468
|
-
* @generated from enum gestalt.provider.v1.PluginRuntimeHostServiceAccess
|
|
469
|
-
*/
|
|
470
|
-
export enum PluginRuntimeHostServiceAccess {
|
|
471
|
-
/**
|
|
472
|
-
* @generated from enum value: PLUGIN_RUNTIME_HOST_SERVICE_ACCESS_UNSPECIFIED = 0;
|
|
473
|
-
*/
|
|
474
|
-
UNSPECIFIED = 0,
|
|
475
|
-
|
|
476
|
-
/**
|
|
477
|
-
* @generated from enum value: PLUGIN_RUNTIME_HOST_SERVICE_ACCESS_NONE = 1;
|
|
478
|
-
*/
|
|
479
|
-
NONE = 1,
|
|
480
|
-
|
|
481
|
-
/**
|
|
482
|
-
* @generated from enum value: PLUGIN_RUNTIME_HOST_SERVICE_ACCESS_DIRECT = 2;
|
|
483
|
-
*/
|
|
484
|
-
DIRECT = 2,
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
/**
|
|
488
|
-
* Describes the enum gestalt.provider.v1.PluginRuntimeHostServiceAccess.
|
|
489
|
-
*/
|
|
490
|
-
export const PluginRuntimeHostServiceAccessSchema: GenEnum<PluginRuntimeHostServiceAccess> = /*@__PURE__*/
|
|
491
|
-
enumDesc(file_v1_pluginruntime, 0);
|
|
384
|
+
messageDesc(file_v1_pluginruntime, 13);
|
|
492
385
|
|
|
493
386
|
/**
|
|
494
387
|
* @generated from enum gestalt.provider.v1.PluginRuntimeEgressMode
|
|
@@ -519,7 +412,7 @@ export enum PluginRuntimeEgressMode {
|
|
|
519
412
|
* Describes the enum gestalt.provider.v1.PluginRuntimeEgressMode.
|
|
520
413
|
*/
|
|
521
414
|
export const PluginRuntimeEgressModeSchema: GenEnum<PluginRuntimeEgressMode> = /*@__PURE__*/
|
|
522
|
-
enumDesc(file_v1_pluginruntime,
|
|
415
|
+
enumDesc(file_v1_pluginruntime, 0);
|
|
523
416
|
|
|
524
417
|
/**
|
|
525
418
|
* @generated from enum gestalt.provider.v1.PluginRuntimeLogStream
|
|
@@ -550,7 +443,7 @@ export enum PluginRuntimeLogStream {
|
|
|
550
443
|
* Describes the enum gestalt.provider.v1.PluginRuntimeLogStream.
|
|
551
444
|
*/
|
|
552
445
|
export const PluginRuntimeLogStreamSchema: GenEnum<PluginRuntimeLogStream> = /*@__PURE__*/
|
|
553
|
-
enumDesc(file_v1_pluginruntime,
|
|
446
|
+
enumDesc(file_v1_pluginruntime, 1);
|
|
554
447
|
|
|
555
448
|
/**
|
|
556
449
|
* @generated from service gestalt.provider.v1.PluginRuntimeLogHost
|
|
@@ -611,14 +504,6 @@ export const PluginRuntimeProvider: GenService<{
|
|
|
611
504
|
input: typeof StopPluginRuntimeSessionRequestSchema;
|
|
612
505
|
output: typeof EmptySchema;
|
|
613
506
|
},
|
|
614
|
-
/**
|
|
615
|
-
* @generated from rpc gestalt.provider.v1.PluginRuntimeProvider.BindHostService
|
|
616
|
-
*/
|
|
617
|
-
bindHostService: {
|
|
618
|
-
methodKind: "unary";
|
|
619
|
-
input: typeof BindPluginRuntimeHostServiceRequestSchema;
|
|
620
|
-
output: typeof PluginRuntimeHostServiceBindingSchema;
|
|
621
|
-
},
|
|
622
507
|
/**
|
|
623
508
|
* @generated from rpc gestalt.provider.v1.PluginRuntimeProvider.StartPlugin
|
|
624
509
|
*/
|
|
@@ -14,7 +14,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
|
|
|
14
14
|
* Describes the file v1/workflow.proto.
|
|
15
15
|
*/
|
|
16
16
|
export const file_v1_workflow: GenFile = /*@__PURE__*/
|
|
17
|
-
fileDesc("ChF2MS93b3JrZmxvdy5wcm90bxITZ2VzdGFsdC5wcm92aWRlci52MSLaAQoTQm91bmRXb3JrZmxvd1RhcmdldBJACgZwbHVnaW4YBiABKAsyLi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dQbHVnaW5UYXJnZXRIABI+CgVhZ2VudBgHIAEoCzItLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd0FnZW50VGFyZ2V0SABCBgoEa2luZEoECAEQBlILcGx1Z2luX25hbWVSCW9wZXJhdGlvblIFaW5wdXRSCmNvbm5lY3Rpb25SCGluc3RhbmNlIpEBChlCb3VuZFdvcmtmbG93UGx1Z2luVGFyZ2V0EhMKC3BsdWdpbl9uYW1lGAEgASgJEhEKCW9wZXJhdGlvbhgCIAEoCRImCgVpbnB1dBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEgoKY29ubmVjdGlvbhgEIAEoCRIQCghpbnN0YW5jZRgFIAEoCSK9AwoYQm91bmRXb3JrZmxvd0FnZW50VGFyZ2V0EhUKDXByb3ZpZGVyX25hbWUYASABKAkSDQoFbW9kZWwYAiABKAkSDgoGcHJvbXB0GAMgASgJEjMKCG1lc3NhZ2VzGAQgAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudE1lc3NhZ2USNAoJdG9vbF9yZWZzGAUgAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFRvb2xSZWYSMAoPcmVzcG9uc2Vfc2NoZW1hGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSMQoQcHJvdmlkZXJfb3B0aW9ucxgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFwoPdGltZW91dF9zZWNvbmRzGAogASgFEkQKD291dHB1dF9kZWxpdmVyeRgLIAEoCzIrLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dPdXRwdXREZWxpdmVyeUoECAYQB1ILdG9vbF9zb3VyY2UitQEKFldvcmtmbG93T3V0cHV0RGVsaXZlcnkSPgoGdGFyZ2V0GAEgASgLMi4uZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93UGx1Z2luVGFyZ2V0EkIKDmlucHV0X2JpbmRpbmdzGAIgAygLMiouZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd091dHB1dEJpbmRpbmcSFwoPY3JlZGVudGlhbF9tb2RlGAMgASgJImsKFVdvcmtmbG93T3V0cHV0QmluZGluZxITCgtpbnB1dF9maWVsZBgBIAEoCRI9CgV2YWx1ZRgCIAEoCzIuLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dPdXRwdXRWYWx1ZVNvdXJjZSKbAQoZV29ya2Zsb3dPdXRwdXRWYWx1ZVNvdXJjZRIWCgxhZ2VudF9vdXRwdXQYASABKAlIABIYCg5zaWduYWxfcGF5bG9hZBgCIAEoCUgAEhkKD3NpZ25hbF9tZXRhZGF0YRgDIAEoCUgAEikKB2xpdGVyYWwYBCABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVIAEIGCgRraW5kImQKDVdvcmtmbG93QWN0b3ISEgoKc3ViamVjdF9pZBgBIAEoCRIUCgxzdWJqZWN0X2tpbmQYAiABKAkSFAoMZGlzcGxheV9uYW1lGAMgASgJEhMKC2F1dGhfc291cmNlGAQgASgJIt0CCg1Xb3JrZmxvd0V2ZW50EgoKAmlkGAEgASgJEg4KBnNvdXJjZRgCIAEoCRIUCgxzcGVjX3ZlcnNpb24YAyABKAkSDAoEdHlwZRgEIAEoCRIPCgdzdWJqZWN0GAUgASgJEigKBHRpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2RhdGFjb250ZW50dHlwZRgHIAEoCRIlCgRkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBJGCgpleHRlbnNpb25zGAkgAygLMjIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50LkV4dGVuc2lvbnNFbnRyeRpJCg9FeHRlbnNpb25zRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlOgI4ASJDChJXb3JrZmxvd0V2ZW50TWF0Y2gSDAoEdHlwZRgBIAEoCRIOCgZzb3VyY2UYAiABKAkSDwoHc3ViamVjdBgDIAEoCSIXChVXb3JrZmxvd01hbnVhbFRyaWdnZXIiYQoXV29ya2Zsb3dTY2hlZHVsZVRyaWdnZXISEwoLc2NoZWR1bGVfaWQYASABKAkSMQoNc2NoZWR1bGVkX2ZvchgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiZwoeV29ya2Zsb3dFdmVudFRyaWdnZXJJbnZvY2F0aW9uEhIKCnRyaWdnZXJfaWQYASABKAkSMQoFZXZlbnQYAiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnQi4gEKEldvcmtmbG93UnVuVHJpZ2dlchI8CgZtYW51YWwYASABKAsyKi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFudWFsVHJpZ2dlckgAEkAKCHNjaGVkdWxlGAIgASgLMiwuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1NjaGVkdWxlVHJpZ2dlckgAEkQKBWV2ZW50GAMgASgLMjMuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50VHJpZ2dlckludm9jYXRpb25IAEIGCgRraW5kIu4DChBCb3VuZFdvcmtmbG93UnVuEgoKAmlkGAEgASgJEjYKBnN0YXR1cxgCIAEoDjImLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dSdW5TdGF0dXMSOAoGdGFyZ2V0GAMgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0EjgKB3RyaWdnZXIYBCABKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuVHJpZ2dlchIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpzdGFydGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDnN0YXR1c19tZXNzYWdlGAggASgJEhMKC3Jlc3VsdF9ib2R5GAkgASgJEjYKCmNyZWF0ZWRfYnkYCiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgLIAEoCRIUCgx3b3JrZmxvd19rZXkYDCABKAki7QIKFUJvdW5kV29ya2Zsb3dTY2hlZHVsZRIKCgJpZBgBIAEoCRIMCgRjcm9uGAIgASgJEhAKCHRpbWV6b25lGAMgASgJEjgKBnRhcmdldBgEIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBIOCgZwYXVzZWQYBSABKAgSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLbmV4dF9ydW5fYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjYKCmNyZWF0ZWRfYnkYCSABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgKIAEoCSLYAgoZQm91bmRXb3JrZmxvd0V2ZW50VHJpZ2dlchIKCgJpZBgBIAEoCRI2CgVtYXRjaBgCIAEoCzInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudE1hdGNoEjgKBnRhcmdldBgDIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBIOCgZwYXVzZWQYBCABKAgSLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoKY3JlYXRlZF9ieRgHIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dBY3RvchIVCg1leGVjdXRpb25fcmVmGAggASgJIj4KGFdvcmtmbG93QWNjZXNzUGVybWlzc2lvbhIOCgZwbHVnaW4YASABKAkSEgoKb3BlcmF0aW9ucxgCIAMoCSLHAwoaV29ya2Zsb3dFeGVjdXRpb25SZWZlcmVuY2USCgoCaWQYASABKAkSFQoNcHJvdmlkZXJfbmFtZRgCIAEoCRI4CgZ0YXJnZXQYAyABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSEgoKc3ViamVjdF9pZBgEIAEoCRIdChVjcmVkZW50aWFsX3N1YmplY3RfaWQYBSABKAkSQgoLcGVybWlzc2lvbnMYBiADKAsyLS5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWNjZXNzUGVybWlzc2lvbhIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpyZXZva2VkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxzdWJqZWN0X2tpbmQYCiABKAkSFAoMZGlzcGxheV9uYW1lGAsgASgJEhMKC2F1dGhfc291cmNlGAwgASgJEhoKEmNhbGxlcl9wbHVnaW5fbmFtZRgNIAEoCUoECAkQClISdGFyZ2V0X2ZpbmdlcnByaW50IpICCg5Xb3JrZmxvd1NpZ25hbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEigKB3BheWxvYWQYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI2CgpjcmVhdGVkX2J5GAUgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FjdG9yEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2lkZW1wb3RlbmN5X2tleRgHIAEoCRIQCghzZXF1ZW5jZRgIIAEoAyLZAQofU3RhcnRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBI4CgZ0YXJnZXQYASABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSFwoPaWRlbXBvdGVuY3lfa2V5GAIgASgJEjYKCmNyZWF0ZWRfYnkYBCABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgFIAEoCRIUCgx3b3JrZmxvd19rZXkYBiABKAkiLwodR2V0V29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QSDgoGcnVuX2lkGAIgASgJIiEKH0xpc3RXb3JrZmxvd1Byb3ZpZGVyUnVuc1JlcXVlc3QiVwogTGlzdFdvcmtmbG93UHJvdmlkZXJSdW5zUmVzcG9uc2USMwoEcnVucxgBIAMoCzIlLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1J1biJCCiBDYW5jZWxXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBIOCgZydW5faWQYAiABKAkSDgoGcmVhc29uGAMgASgJImcKIFNpZ25hbFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0Eg4KBnJ1bl9pZBgBIAEoCRIzCgZzaWduYWwYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U2lnbmFsIpYCCidTaWduYWxPclN0YXJ0V29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QSFAoMd29ya2Zsb3dfa2V5GAEgASgJEjgKBnRhcmdldBgCIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSNgoKY3JlYXRlZF9ieRgEIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dBY3RvchIVCg1leGVjdXRpb25fcmVmGAUgASgJEjMKBnNpZ25hbBgGIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTaWduYWwirwEKGVNpZ25hbFdvcmtmbG93UnVuUmVzcG9uc2USMgoDcnVuGAEgASgLMiUuZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93UnVuEjMKBnNpZ25hbBgCIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTaWduYWwSEwoLc3RhcnRlZF9ydW4YAyABKAgSFAoMd29ya2Zsb3dfa2V5GAQgASgJIvcBCiVVcHNlcnRXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0EhMKC3NjaGVkdWxlX2lkGAEgASgJEgwKBGNyb24YAiABKAkSEAoIdGltZXpvbmUYAyABKAkSOAoGdGFyZ2V0GAQgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0Eg4KBnBhdXNlZBgFIAEoCBI4CgxyZXF1ZXN0ZWRfYnkYByABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgIIAEoCSI5CiJHZXRXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0EhMKC3NjaGVkdWxlX2lkGAIgASgJIiYKJExpc3RXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVzUmVxdWVzdCJmCiVMaXN0V29ya2Zsb3dQcm92aWRlclNjaGVkdWxlc1Jlc3BvbnNlEj0KCXNjaGVkdWxlcxgBIAMoCzIqLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1NjaGVkdWxlIjwKJURlbGV0ZVdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkiOwokUGF1c2VXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0EhMKC3NjaGVkdWxlX2lkGAIgASgJIjwKJVJlc3VtZVdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkikgIKKVVwc2VydFdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYASABKAkSNgoFbWF0Y2gYAiABKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnRNYXRjaBI4CgZ0YXJnZXQYAyABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAQgASgIEjgKDHJlcXVlc3RlZF9ieRgGIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dBY3RvchIVCg1leGVjdXRpb25fcmVmGAcgASgJIjwKJkdldFdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkiKgooTGlzdFdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJzUmVxdWVzdCJtCilMaXN0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlcnNSZXNwb25zZRJACgh0cmlnZ2VycxgBIAMoCzIuLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd0V2ZW50VHJpZ2dlciJqCiRQdXRXb3JrZmxvd0V4ZWN1dGlvblJlZmVyZW5jZVJlcXVlc3QSQgoJcmVmZXJlbmNlGAEgASgLMi8uZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V4ZWN1dGlvblJlZmVyZW5jZSIyCiRHZXRXb3JrZmxvd0V4ZWN1dGlvblJlZmVyZW5jZVJlcXVlc3QSCgoCaWQYASABKAkiPAomTGlzdFdvcmtmbG93RXhlY3V0aW9uUmVmZXJlbmNlc1JlcXVlc3QSEgoKc3ViamVjdF9pZBgBIAEoCSJuCidMaXN0V29ya2Zsb3dFeGVjdXRpb25SZWZlcmVuY2VzUmVzcG9uc2USQwoKcmVmZXJlbmNlcxgBIAMoCzIvLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFeGVjdXRpb25SZWZlcmVuY2UiPwopRGVsZXRlV29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QSEgoKdHJpZ2dlcl9pZBgCIAEoCSI+CihQYXVzZVdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkiPwopUmVzdW1lV29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QSEgoKdHJpZ2dlcl9pZBgCIAEoCSKnAQojUHVibGlzaFdvcmtmbG93UHJvdmlkZXJFdmVudFJlcXVlc3QSEwoLcGx1Z2luX25hbWUYASABKAkSMQoFZXZlbnQYAiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnQSOAoMcHVibGlzaGVkX2J5GAMgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FjdG9yIvwCCh5JbnZva2VXb3JrZmxvd09wZXJhdGlvblJlcXVlc3QSOAoGdGFyZ2V0GAEgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0Eg4KBnJ1bl9pZBgCIAEoCRI4Cgd0cmlnZ2VyGAMgASgLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1blRyaWdnZXISJgoFaW5wdXQYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI2CgpjcmVhdGVkX2J5GAcgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FjdG9yEhUKDWV4ZWN1dGlvbl9yZWYYCCABKAkSNAoHc2lnbmFscxgJIAMoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTaWduYWwiPwofSW52b2tlV29ya2Zsb3dPcGVyYXRpb25SZXNwb25zZRIOCgZzdGF0dXMYASABKAUSDAoEYm9keRgCIAEoCSJuChdNYW5hZ2VkV29ya2Zsb3dTY2hlZHVsZRIVCg1wcm92aWRlcl9uYW1lGAEgASgJEjwKCHNjaGVkdWxlGAIgASgLMiouZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93U2NoZWR1bGUidQobTWFuYWdlZFdvcmtmbG93RXZlbnRUcmlnZ2VyEhUKDXByb3ZpZGVyX25hbWUYASABKAkSPwoHdHJpZ2dlchgCIAEoCzIuLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd0V2ZW50VHJpZ2dlciJfChJNYW5hZ2VkV29ya2Zsb3dSdW4SFQoNcHJvdmlkZXJfbmFtZRgBIAEoCRIyCgNydW4YAiABKAsyJS5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dSdW4ixQEKGE1hbmFnZWRXb3JrZmxvd1J1blNpZ25hbBIVCg1wcm92aWRlcl9uYW1lGAEgASgJEjIKA3J1bhgCIAEoCzIlLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1J1bhIzCgZzaWduYWwYAyABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U2lnbmFsEhMKC3N0YXJ0ZWRfcnVuGAQgASgIEhQKDHdvcmtmbG93X2tleRgFIAEoCSLwAQokV29ya2Zsb3dNYW5hZ2VyQ3JlYXRlU2NoZWR1bGVSZXF1ZXN0EhUKDXByb3ZpZGVyX25hbWUYAiABKAkSDAoEY3JvbhgDIAEoCRIQCgh0aW1lem9uZRgEIAEoCRI4CgZ0YXJnZXQYBSABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAYgASgIEhgKEGludm9jYXRpb25fdG9rZW4YByABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAggASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSJoCiFXb3JrZmxvd01hbmFnZXJHZXRTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUi7AEKJFdvcmtmbG93TWFuYWdlclVwZGF0ZVNjaGVkdWxlUmVxdWVzdBITCgtzY2hlZHVsZV9pZBgCIAEoCRIVCg1wcm92aWRlcl9uYW1lGAMgASgJEgwKBGNyb24YBCABKAkSEAoIdGltZXpvbmUYBSABKAkSOAoGdGFyZ2V0GAYgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0Eg4KBnBhdXNlZBgHIAEoCBIYChBpbnZvY2F0aW9uX3Rva2VuGAggASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSJrCiRXb3JrZmxvd01hbmFnZXJEZWxldGVTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUiagojV29ya2Zsb3dNYW5hZ2VyUGF1c2VTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUiawokV29ya2Zsb3dNYW5hZ2VyUmVzdW1lU2NoZWR1bGVSZXF1ZXN0EhMKC3NjaGVkdWxlX2lkGAIgASgJEhgKEGludm9jYXRpb25fdG9rZW4YAyABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlIowCCihXb3JrZmxvd01hbmFnZXJDcmVhdGVFdmVudFRyaWdnZXJSZXF1ZXN0EhUKDXByb3ZpZGVyX25hbWUYAiABKAkSNgoFbWF0Y2gYAyABKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnRNYXRjaBI4CgZ0YXJnZXQYBCABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAUgASgIEhgKEGludm9jYXRpb25fdG9rZW4YBiABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAcgASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSJrCiVXb3JrZmxvd01hbmFnZXJHZXRFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUihwIKKFdvcmtmbG93TWFuYWdlclVwZGF0ZUV2ZW50VHJpZ2dlclJlcXVlc3QSEgoKdHJpZ2dlcl9pZBgCIAEoCRIVCg1wcm92aWRlcl9uYW1lGAMgASgJEjYKBW1hdGNoGAQgASgLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50TWF0Y2gSOAoGdGFyZ2V0GAUgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0Eg4KBnBhdXNlZBgGIAEoCBIYChBpbnZvY2F0aW9uX3Rva2VuGAcgASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSJuCihXb3JrZmxvd01hbmFnZXJEZWxldGVFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUibQonV29ya2Zsb3dNYW5hZ2VyUGF1c2VFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUibgooV29ya2Zsb3dNYW5hZ2VyUmVzdW1lRXZlbnRUcmlnZ2VyUmVxdWVzdBISCgp0cmlnZ2VyX2lkGAIgASgJEhgKEGludm9jYXRpb25fdG9rZW4YAyABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlIocBCiJXb3JrZmxvd01hbmFnZXJQdWJsaXNoRXZlbnRSZXF1ZXN0EjEKBWV2ZW50GAIgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50EhgKEGludm9jYXRpb25fdG9rZW4YAyABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlItABCh5Xb3JrZmxvd01hbmFnZXJTdGFydFJ1blJlcXVlc3QSFQoNcHJvdmlkZXJfbmFtZRgCIAEoCRI4CgZ0YXJnZXQYAyABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSFwoPaWRlbXBvdGVuY3lfa2V5GAQgASgJEhQKDHdvcmtmbG93X2tleRgFIAEoCRIYChBpbnZvY2F0aW9uX3Rva2VuGAYgASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSKWAQofV29ya2Zsb3dNYW5hZ2VyU2lnbmFsUnVuUmVxdWVzdBIOCgZydW5faWQYAiABKAkSMwoGc2lnbmFsGAMgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1NpZ25hbBIYChBpbnZvY2F0aW9uX3Rva2VuGAQgASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSKNAgomV29ya2Zsb3dNYW5hZ2VyU2lnbmFsT3JTdGFydFJ1blJlcXVlc3QSFQoNcHJvdmlkZXJfbmFtZRgCIAEoCRIUCgx3b3JrZmxvd19rZXkYAyABKAkSOAoGdGFyZ2V0GAQgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0EhcKD2lkZW1wb3RlbmN5X2tleRgFIAEoCRIzCgZzaWduYWwYBiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U2lnbmFsEhgKEGludm9jYXRpb25fdG9rZW4YByABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlKt8BChFXb3JrZmxvd1J1blN0YXR1cxIjCh9XT1JLRkxPV19SVU5fU1RBVFVTX1VOU1BFQ0lGSUVEEAASHwobV09SS0ZMT1dfUlVOX1NUQVRVU19QRU5ESU5HEAESHwobV09SS0ZMT1dfUlVOX1NUQVRVU19SVU5OSU5HEAISIQodV09SS0ZMT1dfUlVOX1NUQVRVU19TVUNDRUVERUQQAxIeChpXT1JLRkxPV19SVU5fU1RBVFVTX0ZBSUxFRBAEEiAKHFdPUktGTE9XX1JVTl9TVEFUVVNfQ0FOQ0VMRUQQBTKlFQoQV29ya2Zsb3dQcm92aWRlchJnCghTdGFydFJ1bhI0Lmdlc3RhbHQucHJvdmlkZXIudjEuU3RhcnRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBolLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1J1bhJjCgZHZXRSdW4SMi5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0GiUuZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93UnVuEncKCExpc3RSdW5zEjQuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dQcm92aWRlclJ1bnNSZXF1ZXN0GjUuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dQcm92aWRlclJ1bnNSZXNwb25zZRJpCglDYW5jZWxSdW4SNS5nZXN0YWx0LnByb3ZpZGVyLnYxLkNhbmNlbFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0GiUuZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93UnVuEnIKCVNpZ25hbFJ1bhI1Lmdlc3RhbHQucHJvdmlkZXIudjEuU2lnbmFsV29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QaLi5nZXN0YWx0LnByb3ZpZGVyLnYxLlNpZ25hbFdvcmtmbG93UnVuUmVzcG9uc2USgAEKEFNpZ25hbE9yU3RhcnRSdW4SPC5nZXN0YWx0LnByb3ZpZGVyLnYxLlNpZ25hbE9yU3RhcnRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBouLmdlc3RhbHQucHJvdmlkZXIudjEuU2lnbmFsV29ya2Zsb3dSdW5SZXNwb25zZRJ4Cg5VcHNlcnRTY2hlZHVsZRI6Lmdlc3RhbHQucHJvdmlkZXIudjEuVXBzZXJ0V29ya2Zsb3dQcm92aWRlclNjaGVkdWxlUmVxdWVzdBoqLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1NjaGVkdWxlEnIKC0dldFNjaGVkdWxlEjcuZ2VzdGFsdC5wcm92aWRlci52MS5HZXRXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0GiouZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93U2NoZWR1bGUShgEKDUxpc3RTY2hlZHVsZXMSOS5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVzUmVxdWVzdBo6Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdFdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZXNSZXNwb25zZRJkCg5EZWxldGVTY2hlZHVsZRI6Lmdlc3RhbHQucHJvdmlkZXIudjEuRGVsZXRlV29ya2Zsb3dQcm92aWRlclNjaGVkdWxlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJ2Cg1QYXVzZVNjaGVkdWxlEjkuZ2VzdGFsdC5wcm92aWRlci52MS5QYXVzZVdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QaKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dTY2hlZHVsZRJ4Cg5SZXN1bWVTY2hlZHVsZRI6Lmdlc3RhbHQucHJvdmlkZXIudjEuUmVzdW1lV29ya2Zsb3dQcm92aWRlclNjaGVkdWxlUmVxdWVzdBoqLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1NjaGVkdWxlEoQBChJVcHNlcnRFdmVudFRyaWdnZXISPi5nZXN0YWx0LnByb3ZpZGVyLnYxLlVwc2VydFdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0Gi4uZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93RXZlbnRUcmlnZ2VyEn4KD0dldEV2ZW50VHJpZ2dlchI7Lmdlc3RhbHQucHJvdmlkZXIudjEuR2V0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QaLi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dFdmVudFRyaWdnZXISkgEKEUxpc3RFdmVudFRyaWdnZXJzEj0uZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlcnNSZXF1ZXN0Gj4uZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlcnNSZXNwb25zZRJsChJEZWxldGVFdmVudFRyaWdnZXISPi5nZXN0YWx0LnByb3ZpZGVyLnYxLkRlbGV0ZVdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EoIBChFQYXVzZUV2ZW50VHJpZ2dlchI9Lmdlc3RhbHQucHJvdmlkZXIudjEuUGF1c2VXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2VyUmVxdWVzdBouLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd0V2ZW50VHJpZ2dlchKEAQoSUmVzdW1lRXZlbnRUcmlnZ2VyEj4uZ2VzdGFsdC5wcm92aWRlci52MS5SZXN1bWVXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2VyUmVxdWVzdBouLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd0V2ZW50VHJpZ2dlchKDAQoVUHV0RXhlY3V0aW9uUmVmZXJlbmNlEjkuZ2VzdGFsdC5wcm92aWRlci52MS5QdXRXb3JrZmxvd0V4ZWN1dGlvblJlZmVyZW5jZVJlcXVlc3QaLy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXhlY3V0aW9uUmVmZXJlbmNlEoMBChVHZXRFeGVjdXRpb25SZWZlcmVuY2USOS5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldFdvcmtmbG93RXhlY3V0aW9uUmVmZXJlbmNlUmVxdWVzdBovLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFeGVjdXRpb25SZWZlcmVuY2USlAEKF0xpc3RFeGVjdXRpb25SZWZlcmVuY2VzEjsuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dFeGVjdXRpb25SZWZlcmVuY2VzUmVxdWVzdBo8Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdFdvcmtmbG93RXhlY3V0aW9uUmVmZXJlbmNlc1Jlc3BvbnNlEmAKDFB1Ymxpc2hFdmVudBI4Lmdlc3RhbHQucHJvdmlkZXIudjEuUHVibGlzaFdvcmtmbG93UHJvdmlkZXJFdmVudFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkyjAEKDFdvcmtmbG93SG9zdBJ8Cg9JbnZva2VPcGVyYXRpb24SMy5nZXN0YWx0LnByb3ZpZGVyLnYxLkludm9rZVdvcmtmbG93T3BlcmF0aW9uUmVxdWVzdBo0Lmdlc3RhbHQucHJvdmlkZXIudjEuSW52b2tlV29ya2Zsb3dPcGVyYXRpb25SZXNwb25zZTKuDwoTV29ya2Zsb3dNYW5hZ2VySG9zdBJoCghTdGFydFJ1bhIzLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyU3RhcnRSdW5SZXF1ZXN0GicuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dSdW4ScAoJU2lnbmFsUnVuEjQuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJTaWduYWxSdW5SZXF1ZXN0Gi0uZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dSdW5TaWduYWwSfgoQU2lnbmFsT3JTdGFydFJ1bhI7Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyU2lnbmFsT3JTdGFydFJ1blJlcXVlc3QaLS5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1J1blNpZ25hbBJ5Cg5DcmVhdGVTY2hlZHVsZRI5Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyQ3JlYXRlU2NoZWR1bGVSZXF1ZXN0GiwuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dTY2hlZHVsZRJzCgtHZXRTY2hlZHVsZRI2Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyR2V0U2NoZWR1bGVSZXF1ZXN0GiwuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dTY2hlZHVsZRJ5Cg5VcGRhdGVTY2hlZHVsZRI5Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyVXBkYXRlU2NoZWR1bGVSZXF1ZXN0GiwuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dTY2hlZHVsZRJjCg5EZWxldGVTY2hlZHVsZRI5Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyRGVsZXRlU2NoZWR1bGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EncKDVBhdXNlU2NoZWR1bGUSOC5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFuYWdlclBhdXNlU2NoZWR1bGVSZXF1ZXN0GiwuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dTY2hlZHVsZRJ5Cg5SZXN1bWVTY2hlZHVsZRI5Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyUmVzdW1lU2NoZWR1bGVSZXF1ZXN0GiwuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dTY2hlZHVsZRKFAQoSQ3JlYXRlRXZlbnRUcmlnZ2VyEj0uZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJDcmVhdGVFdmVudFRyaWdnZXJSZXF1ZXN0GjAuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dFdmVudFRyaWdnZXISfwoPR2V0RXZlbnRUcmlnZ2VyEjouZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJHZXRFdmVudFRyaWdnZXJSZXF1ZXN0GjAuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dFdmVudFRyaWdnZXIShQEKElVwZGF0ZUV2ZW50VHJpZ2dlchI9Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyVXBkYXRlRXZlbnRUcmlnZ2VyUmVxdWVzdBowLmdlc3RhbHQucHJvdmlkZXIudjEuTWFuYWdlZFdvcmtmbG93RXZlbnRUcmlnZ2VyEmsKEkRlbGV0ZUV2ZW50VHJpZ2dlchI9Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyRGVsZXRlRXZlbnRUcmlnZ2VyUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRKDAQoRUGF1c2VFdmVudFRyaWdnZXISPC5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFuYWdlclBhdXNlRXZlbnRUcmlnZ2VyUmVxdWVzdBowLmdlc3RhbHQucHJvdmlkZXIudjEuTWFuYWdlZFdvcmtmbG93RXZlbnRUcmlnZ2VyEoUBChJSZXN1bWVFdmVudFRyaWdnZXISPS5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFuYWdlclJlc3VtZUV2ZW50VHJpZ2dlclJlcXVlc3QaMC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd0V2ZW50VHJpZ2dlchJrCgxQdWJsaXNoRXZlbnQSNy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFuYWdlclB1Ymxpc2hFdmVudFJlcXVlc3QaIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnRCO1o5Z2l0aHViLmNvbS92YWxvbi10ZWNobm9sb2dpZXMvZ2VzdGFsdC9zZGsvZ28vZ2VuL3YxO3Byb3RvYgZwcm90bzM", [file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp, file_v1_agent]);
|
|
17
|
+
fileDesc("ChF2MS93b3JrZmxvdy5wcm90bxITZ2VzdGFsdC5wcm92aWRlci52MSLaAQoTQm91bmRXb3JrZmxvd1RhcmdldBJACgZwbHVnaW4YBiABKAsyLi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dQbHVnaW5UYXJnZXRIABI+CgVhZ2VudBgHIAEoCzItLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd0FnZW50VGFyZ2V0SABCBgoEa2luZEoECAEQBlILcGx1Z2luX25hbWVSCW9wZXJhdGlvblIFaW5wdXRSCmNvbm5lY3Rpb25SCGluc3RhbmNlIpEBChlCb3VuZFdvcmtmbG93UGx1Z2luVGFyZ2V0EhMKC3BsdWdpbl9uYW1lGAEgASgJEhEKCW9wZXJhdGlvbhgCIAEoCRImCgVpbnB1dBgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEgoKY29ubmVjdGlvbhgEIAEoCRIQCghpbnN0YW5jZRgFIAEoCSK9AwoYQm91bmRXb3JrZmxvd0FnZW50VGFyZ2V0EhUKDXByb3ZpZGVyX25hbWUYASABKAkSDQoFbW9kZWwYAiABKAkSDgoGcHJvbXB0GAMgASgJEjMKCG1lc3NhZ2VzGAQgAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudE1lc3NhZ2USNAoJdG9vbF9yZWZzGAUgAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFRvb2xSZWYSMAoPcmVzcG9uc2Vfc2NoZW1hGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSMQoQcHJvdmlkZXJfb3B0aW9ucxgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFwoPdGltZW91dF9zZWNvbmRzGAogASgFEkQKD291dHB1dF9kZWxpdmVyeRgLIAEoCzIrLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dPdXRwdXREZWxpdmVyeUoECAYQB1ILdG9vbF9zb3VyY2UitQEKFldvcmtmbG93T3V0cHV0RGVsaXZlcnkSPgoGdGFyZ2V0GAEgASgLMi4uZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93UGx1Z2luVGFyZ2V0EkIKDmlucHV0X2JpbmRpbmdzGAIgAygLMiouZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd091dHB1dEJpbmRpbmcSFwoPY3JlZGVudGlhbF9tb2RlGAMgASgJImsKFVdvcmtmbG93T3V0cHV0QmluZGluZxITCgtpbnB1dF9maWVsZBgBIAEoCRI9CgV2YWx1ZRgCIAEoCzIuLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dPdXRwdXRWYWx1ZVNvdXJjZSKbAQoZV29ya2Zsb3dPdXRwdXRWYWx1ZVNvdXJjZRIWCgxhZ2VudF9vdXRwdXQYASABKAlIABIYCg5zaWduYWxfcGF5bG9hZBgCIAEoCUgAEhkKD3NpZ25hbF9tZXRhZGF0YRgDIAEoCUgAEikKB2xpdGVyYWwYBCABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVIAEIGCgRraW5kImQKDVdvcmtmbG93QWN0b3ISEgoKc3ViamVjdF9pZBgBIAEoCRIUCgxzdWJqZWN0X2tpbmQYAiABKAkSFAoMZGlzcGxheV9uYW1lGAMgASgJEhMKC2F1dGhfc291cmNlGAQgASgJIt0CCg1Xb3JrZmxvd0V2ZW50EgoKAmlkGAEgASgJEg4KBnNvdXJjZRgCIAEoCRIUCgxzcGVjX3ZlcnNpb24YAyABKAkSDAoEdHlwZRgEIAEoCRIPCgdzdWJqZWN0GAUgASgJEigKBHRpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2RhdGFjb250ZW50dHlwZRgHIAEoCRIlCgRkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBJGCgpleHRlbnNpb25zGAkgAygLMjIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50LkV4dGVuc2lvbnNFbnRyeRpJCg9FeHRlbnNpb25zRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlOgI4ASJDChJXb3JrZmxvd0V2ZW50TWF0Y2gSDAoEdHlwZRgBIAEoCRIOCgZzb3VyY2UYAiABKAkSDwoHc3ViamVjdBgDIAEoCSIXChVXb3JrZmxvd01hbnVhbFRyaWdnZXIiYQoXV29ya2Zsb3dTY2hlZHVsZVRyaWdnZXISEwoLc2NoZWR1bGVfaWQYASABKAkSMQoNc2NoZWR1bGVkX2ZvchgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiZwoeV29ya2Zsb3dFdmVudFRyaWdnZXJJbnZvY2F0aW9uEhIKCnRyaWdnZXJfaWQYASABKAkSMQoFZXZlbnQYAiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnQi4gEKEldvcmtmbG93UnVuVHJpZ2dlchI8CgZtYW51YWwYASABKAsyKi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFudWFsVHJpZ2dlckgAEkAKCHNjaGVkdWxlGAIgASgLMiwuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1NjaGVkdWxlVHJpZ2dlckgAEkQKBWV2ZW50GAMgASgLMjMuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50VHJpZ2dlckludm9jYXRpb25IAEIGCgRraW5kIu4DChBCb3VuZFdvcmtmbG93UnVuEgoKAmlkGAEgASgJEjYKBnN0YXR1cxgCIAEoDjImLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dSdW5TdGF0dXMSOAoGdGFyZ2V0GAMgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0EjgKB3RyaWdnZXIYBCABKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuVHJpZ2dlchIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpzdGFydGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDnN0YXR1c19tZXNzYWdlGAggASgJEhMKC3Jlc3VsdF9ib2R5GAkgASgJEjYKCmNyZWF0ZWRfYnkYCiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgLIAEoCRIUCgx3b3JrZmxvd19rZXkYDCABKAki7QIKFUJvdW5kV29ya2Zsb3dTY2hlZHVsZRIKCgJpZBgBIAEoCRIMCgRjcm9uGAIgASgJEhAKCHRpbWV6b25lGAMgASgJEjgKBnRhcmdldBgEIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBIOCgZwYXVzZWQYBSABKAgSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLbmV4dF9ydW5fYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjYKCmNyZWF0ZWRfYnkYCSABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgKIAEoCSLYAgoZQm91bmRXb3JrZmxvd0V2ZW50VHJpZ2dlchIKCgJpZBgBIAEoCRI2CgVtYXRjaBgCIAEoCzInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudE1hdGNoEjgKBnRhcmdldBgDIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBIOCgZwYXVzZWQYBCABKAgSLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNgoKY3JlYXRlZF9ieRgHIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dBY3RvchIVCg1leGVjdXRpb25fcmVmGAggASgJIj4KGFdvcmtmbG93QWNjZXNzUGVybWlzc2lvbhIOCgZwbHVnaW4YASABKAkSEgoKb3BlcmF0aW9ucxgCIAMoCSLHAwoaV29ya2Zsb3dFeGVjdXRpb25SZWZlcmVuY2USCgoCaWQYASABKAkSFQoNcHJvdmlkZXJfbmFtZRgCIAEoCRI4CgZ0YXJnZXQYAyABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSEgoKc3ViamVjdF9pZBgEIAEoCRIdChVjcmVkZW50aWFsX3N1YmplY3RfaWQYBSABKAkSQgoLcGVybWlzc2lvbnMYBiADKAsyLS5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWNjZXNzUGVybWlzc2lvbhIuCgpjcmVhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpyZXZva2VkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxzdWJqZWN0X2tpbmQYCiABKAkSFAoMZGlzcGxheV9uYW1lGAsgASgJEhMKC2F1dGhfc291cmNlGAwgASgJEhoKEmNhbGxlcl9wbHVnaW5fbmFtZRgNIAEoCUoECAkQClISdGFyZ2V0X2ZpbmdlcnByaW50IpICCg5Xb3JrZmxvd1NpZ25hbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEigKB3BheWxvYWQYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI2CgpjcmVhdGVkX2J5GAUgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FjdG9yEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2lkZW1wb3RlbmN5X2tleRgHIAEoCRIQCghzZXF1ZW5jZRgIIAEoAyLZAQofU3RhcnRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBI4CgZ0YXJnZXQYASABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSFwoPaWRlbXBvdGVuY3lfa2V5GAIgASgJEjYKCmNyZWF0ZWRfYnkYBCABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgFIAEoCRIUCgx3b3JrZmxvd19rZXkYBiABKAkiLwodR2V0V29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QSDgoGcnVuX2lkGAIgASgJIiEKH0xpc3RXb3JrZmxvd1Byb3ZpZGVyUnVuc1JlcXVlc3QiVwogTGlzdFdvcmtmbG93UHJvdmlkZXJSdW5zUmVzcG9uc2USMwoEcnVucxgBIAMoCzIlLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1J1biJCCiBDYW5jZWxXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBIOCgZydW5faWQYAiABKAkSDgoGcmVhc29uGAMgASgJImcKIFNpZ25hbFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0Eg4KBnJ1bl9pZBgBIAEoCRIzCgZzaWduYWwYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U2lnbmFsIpYCCidTaWduYWxPclN0YXJ0V29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QSFAoMd29ya2Zsb3dfa2V5GAEgASgJEjgKBnRhcmdldBgCIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSNgoKY3JlYXRlZF9ieRgEIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dBY3RvchIVCg1leGVjdXRpb25fcmVmGAUgASgJEjMKBnNpZ25hbBgGIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTaWduYWwirwEKGVNpZ25hbFdvcmtmbG93UnVuUmVzcG9uc2USMgoDcnVuGAEgASgLMiUuZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93UnVuEjMKBnNpZ25hbBgCIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTaWduYWwSEwoLc3RhcnRlZF9ydW4YAyABKAgSFAoMd29ya2Zsb3dfa2V5GAQgASgJIvcBCiVVcHNlcnRXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0EhMKC3NjaGVkdWxlX2lkGAEgASgJEgwKBGNyb24YAiABKAkSEAoIdGltZXpvbmUYAyABKAkSOAoGdGFyZ2V0GAQgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0Eg4KBnBhdXNlZBgFIAEoCBI4CgxyZXF1ZXN0ZWRfYnkYByABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWN0b3ISFQoNZXhlY3V0aW9uX3JlZhgIIAEoCSI5CiJHZXRXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0EhMKC3NjaGVkdWxlX2lkGAIgASgJIiYKJExpc3RXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVzUmVxdWVzdCJmCiVMaXN0V29ya2Zsb3dQcm92aWRlclNjaGVkdWxlc1Jlc3BvbnNlEj0KCXNjaGVkdWxlcxgBIAMoCzIqLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1NjaGVkdWxlIjwKJURlbGV0ZVdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkiOwokUGF1c2VXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0EhMKC3NjaGVkdWxlX2lkGAIgASgJIjwKJVJlc3VtZVdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkikgIKKVVwc2VydFdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYASABKAkSNgoFbWF0Y2gYAiABKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnRNYXRjaBI4CgZ0YXJnZXQYAyABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAQgASgIEjgKDHJlcXVlc3RlZF9ieRgGIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dBY3RvchIVCg1leGVjdXRpb25fcmVmGAcgASgJIjwKJkdldFdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkiKgooTGlzdFdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJzUmVxdWVzdCJtCilMaXN0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlcnNSZXNwb25zZRJACgh0cmlnZ2VycxgBIAMoCzIuLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd0V2ZW50VHJpZ2dlciJqCiRQdXRXb3JrZmxvd0V4ZWN1dGlvblJlZmVyZW5jZVJlcXVlc3QSQgoJcmVmZXJlbmNlGAEgASgLMi8uZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V4ZWN1dGlvblJlZmVyZW5jZSIyCiRHZXRXb3JrZmxvd0V4ZWN1dGlvblJlZmVyZW5jZVJlcXVlc3QSCgoCaWQYASABKAkiPAomTGlzdFdvcmtmbG93RXhlY3V0aW9uUmVmZXJlbmNlc1JlcXVlc3QSEgoKc3ViamVjdF9pZBgBIAEoCSJuCidMaXN0V29ya2Zsb3dFeGVjdXRpb25SZWZlcmVuY2VzUmVzcG9uc2USQwoKcmVmZXJlbmNlcxgBIAMoCzIvLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFeGVjdXRpb25SZWZlcmVuY2UiPwopRGVsZXRlV29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QSEgoKdHJpZ2dlcl9pZBgCIAEoCSI+CihQYXVzZVdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkiPwopUmVzdW1lV29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QSEgoKdHJpZ2dlcl9pZBgCIAEoCSKnAQojUHVibGlzaFdvcmtmbG93UHJvdmlkZXJFdmVudFJlcXVlc3QSEwoLcGx1Z2luX25hbWUYASABKAkSMQoFZXZlbnQYAiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnQSOAoMcHVibGlzaGVkX2J5GAMgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FjdG9yIvwCCh5JbnZva2VXb3JrZmxvd09wZXJhdGlvblJlcXVlc3QSOAoGdGFyZ2V0GAEgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0Eg4KBnJ1bl9pZBgCIAEoCRI4Cgd0cmlnZ2VyGAMgASgLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1blRyaWdnZXISJgoFaW5wdXQYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBI2CgpjcmVhdGVkX2J5GAcgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FjdG9yEhUKDWV4ZWN1dGlvbl9yZWYYCCABKAkSNAoHc2lnbmFscxgJIAMoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTaWduYWwiPwofSW52b2tlV29ya2Zsb3dPcGVyYXRpb25SZXNwb25zZRIOCgZzdGF0dXMYASABKAUSDAoEYm9keRgCIAEoCSJuChdNYW5hZ2VkV29ya2Zsb3dTY2hlZHVsZRIVCg1wcm92aWRlcl9uYW1lGAEgASgJEjwKCHNjaGVkdWxlGAIgASgLMiouZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93U2NoZWR1bGUidQobTWFuYWdlZFdvcmtmbG93RXZlbnRUcmlnZ2VyEhUKDXByb3ZpZGVyX25hbWUYASABKAkSPwoHdHJpZ2dlchgCIAEoCzIuLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd0V2ZW50VHJpZ2dlciJfChJNYW5hZ2VkV29ya2Zsb3dSdW4SFQoNcHJvdmlkZXJfbmFtZRgBIAEoCRIyCgNydW4YAiABKAsyJS5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dSdW4ixQEKGE1hbmFnZWRXb3JrZmxvd1J1blNpZ25hbBIVCg1wcm92aWRlcl9uYW1lGAEgASgJEjIKA3J1bhgCIAEoCzIlLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1J1bhIzCgZzaWduYWwYAyABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U2lnbmFsEhMKC3N0YXJ0ZWRfcnVuGAQgASgIEhQKDHdvcmtmbG93X2tleRgFIAEoCSLwAQokV29ya2Zsb3dNYW5hZ2VyQ3JlYXRlU2NoZWR1bGVSZXF1ZXN0EhUKDXByb3ZpZGVyX25hbWUYAiABKAkSDAoEY3JvbhgDIAEoCRIQCgh0aW1lem9uZRgEIAEoCRI4CgZ0YXJnZXQYBSABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAYgASgIEhgKEGludm9jYXRpb25fdG9rZW4YByABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAggASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSJoCiFXb3JrZmxvd01hbmFnZXJHZXRTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUi7AEKJFdvcmtmbG93TWFuYWdlclVwZGF0ZVNjaGVkdWxlUmVxdWVzdBITCgtzY2hlZHVsZV9pZBgCIAEoCRIVCg1wcm92aWRlcl9uYW1lGAMgASgJEgwKBGNyb24YBCABKAkSEAoIdGltZXpvbmUYBSABKAkSOAoGdGFyZ2V0GAYgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0Eg4KBnBhdXNlZBgHIAEoCBIYChBpbnZvY2F0aW9uX3Rva2VuGAggASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSJrCiRXb3JrZmxvd01hbmFnZXJEZWxldGVTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUiagojV29ya2Zsb3dNYW5hZ2VyUGF1c2VTY2hlZHVsZVJlcXVlc3QSEwoLc2NoZWR1bGVfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUiawokV29ya2Zsb3dNYW5hZ2VyUmVzdW1lU2NoZWR1bGVSZXF1ZXN0EhMKC3NjaGVkdWxlX2lkGAIgASgJEhgKEGludm9jYXRpb25fdG9rZW4YAyABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlIowCCihXb3JrZmxvd01hbmFnZXJDcmVhdGVFdmVudFRyaWdnZXJSZXF1ZXN0EhUKDXByb3ZpZGVyX25hbWUYAiABKAkSNgoFbWF0Y2gYAyABKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnRNYXRjaBI4CgZ0YXJnZXQYBCABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSDgoGcGF1c2VkGAUgASgIEhgKEGludm9jYXRpb25fdG9rZW4YBiABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAcgASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSJrCiVXb3JrZmxvd01hbmFnZXJHZXRFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUihwIKKFdvcmtmbG93TWFuYWdlclVwZGF0ZUV2ZW50VHJpZ2dlclJlcXVlc3QSEgoKdHJpZ2dlcl9pZBgCIAEoCRIVCg1wcm92aWRlcl9uYW1lGAMgASgJEjYKBW1hdGNoGAQgASgLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50TWF0Y2gSOAoGdGFyZ2V0GAUgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0Eg4KBnBhdXNlZBgGIAEoCBIYChBpbnZvY2F0aW9uX3Rva2VuGAcgASgJSgQIARACUg5yZXF1ZXN0X2hhbmRsZSJuCihXb3JrZmxvd01hbmFnZXJEZWxldGVFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUibQonV29ya2Zsb3dNYW5hZ2VyUGF1c2VFdmVudFRyaWdnZXJSZXF1ZXN0EhIKCnRyaWdnZXJfaWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUibgooV29ya2Zsb3dNYW5hZ2VyUmVzdW1lRXZlbnRUcmlnZ2VyUmVxdWVzdBISCgp0cmlnZ2VyX2lkGAIgASgJEhgKEGludm9jYXRpb25fdG9rZW4YAyABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlIp4BCiJXb3JrZmxvd01hbmFnZXJQdWJsaXNoRXZlbnRSZXF1ZXN0EjEKBWV2ZW50GAIgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50EhgKEGludm9jYXRpb25fdG9rZW4YAyABKAkSFQoNcHJvdmlkZXJfbmFtZRgEIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUi0AEKHldvcmtmbG93TWFuYWdlclN0YXJ0UnVuUmVxdWVzdBIVCg1wcm92aWRlcl9uYW1lGAIgASgJEjgKBnRhcmdldBgDIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBIXCg9pZGVtcG90ZW5jeV9rZXkYBCABKAkSFAoMd29ya2Zsb3dfa2V5GAUgASgJEhgKEGludm9jYXRpb25fdG9rZW4YBiABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlIpYBCh9Xb3JrZmxvd01hbmFnZXJTaWduYWxSdW5SZXF1ZXN0Eg4KBnJ1bl9pZBgCIAEoCRIzCgZzaWduYWwYAyABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U2lnbmFsEhgKEGludm9jYXRpb25fdG9rZW4YBCABKAlKBAgBEAJSDnJlcXVlc3RfaGFuZGxlIo0CCiZXb3JrZmxvd01hbmFnZXJTaWduYWxPclN0YXJ0UnVuUmVxdWVzdBIVCg1wcm92aWRlcl9uYW1lGAIgASgJEhQKDHdvcmtmbG93X2tleRgDIAEoCRI4CgZ0YXJnZXQYBCABKAsyKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dUYXJnZXQSFwoPaWRlbXBvdGVuY3lfa2V5GAUgASgJEjMKBnNpZ25hbBgGIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTaWduYWwSGAoQaW52b2NhdGlvbl90b2tlbhgHIAEoCUoECAEQAlIOcmVxdWVzdF9oYW5kbGUq3wEKEVdvcmtmbG93UnVuU3RhdHVzEiMKH1dPUktGTE9XX1JVTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIfChtXT1JLRkxPV19SVU5fU1RBVFVTX1BFTkRJTkcQARIfChtXT1JLRkxPV19SVU5fU1RBVFVTX1JVTk5JTkcQAhIhCh1XT1JLRkxPV19SVU5fU1RBVFVTX1NVQ0NFRURFRBADEh4KGldPUktGTE9XX1JVTl9TVEFUVVNfRkFJTEVEEAQSIAocV09SS0ZMT1dfUlVOX1NUQVRVU19DQU5DRUxFRBAFMqUVChBXb3JrZmxvd1Byb3ZpZGVyEmcKCFN0YXJ0UnVuEjQuZ2VzdGFsdC5wcm92aWRlci52MS5TdGFydFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0GiUuZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93UnVuEmMKBkdldFJ1bhIyLmdlc3RhbHQucHJvdmlkZXIudjEuR2V0V29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QaJS5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dSdW4SdwoITGlzdFJ1bnMSNC5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyUnVuc1JlcXVlc3QaNS5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyUnVuc1Jlc3BvbnNlEmkKCUNhbmNlbFJ1bhI1Lmdlc3RhbHQucHJvdmlkZXIudjEuQ2FuY2VsV29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QaJS5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dSdW4ScgoJU2lnbmFsUnVuEjUuZ2VzdGFsdC5wcm92aWRlci52MS5TaWduYWxXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBouLmdlc3RhbHQucHJvdmlkZXIudjEuU2lnbmFsV29ya2Zsb3dSdW5SZXNwb25zZRKAAQoQU2lnbmFsT3JTdGFydFJ1bhI8Lmdlc3RhbHQucHJvdmlkZXIudjEuU2lnbmFsT3JTdGFydFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0Gi4uZ2VzdGFsdC5wcm92aWRlci52MS5TaWduYWxXb3JrZmxvd1J1blJlc3BvbnNlEngKDlVwc2VydFNjaGVkdWxlEjouZ2VzdGFsdC5wcm92aWRlci52MS5VcHNlcnRXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0GiouZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93U2NoZWR1bGUScgoLR2V0U2NoZWR1bGUSNy5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldFdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZVJlcXVlc3QaKi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dTY2hlZHVsZRKGAQoNTGlzdFNjaGVkdWxlcxI5Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdFdvcmtmbG93UHJvdmlkZXJTY2hlZHVsZXNSZXF1ZXN0GjouZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dQcm92aWRlclNjaGVkdWxlc1Jlc3BvbnNlEmQKDkRlbGV0ZVNjaGVkdWxlEjouZ2VzdGFsdC5wcm92aWRlci52MS5EZWxldGVXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EnYKDVBhdXNlU2NoZWR1bGUSOS5nZXN0YWx0LnByb3ZpZGVyLnYxLlBhdXNlV29ya2Zsb3dQcm92aWRlclNjaGVkdWxlUmVxdWVzdBoqLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1NjaGVkdWxlEngKDlJlc3VtZVNjaGVkdWxlEjouZ2VzdGFsdC5wcm92aWRlci52MS5SZXN1bWVXb3JrZmxvd1Byb3ZpZGVyU2NoZWR1bGVSZXF1ZXN0GiouZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93U2NoZWR1bGUShAEKElVwc2VydEV2ZW50VHJpZ2dlchI+Lmdlc3RhbHQucHJvdmlkZXIudjEuVXBzZXJ0V29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QaLi5nZXN0YWx0LnByb3ZpZGVyLnYxLkJvdW5kV29ya2Zsb3dFdmVudFRyaWdnZXISfgoPR2V0RXZlbnRUcmlnZ2VyEjsuZ2VzdGFsdC5wcm92aWRlci52MS5HZXRXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2VyUmVxdWVzdBouLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd0V2ZW50VHJpZ2dlchKSAQoRTGlzdEV2ZW50VHJpZ2dlcnMSPS5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2Vyc1JlcXVlc3QaPi5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyRXZlbnRUcmlnZ2Vyc1Jlc3BvbnNlEmwKEkRlbGV0ZUV2ZW50VHJpZ2dlchI+Lmdlc3RhbHQucHJvdmlkZXIudjEuRGVsZXRlV29ya2Zsb3dQcm92aWRlckV2ZW50VHJpZ2dlclJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSggEKEVBhdXNlRXZlbnRUcmlnZ2VyEj0uZ2VzdGFsdC5wcm92aWRlci52MS5QYXVzZVdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0Gi4uZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93RXZlbnRUcmlnZ2VyEoQBChJSZXN1bWVFdmVudFRyaWdnZXISPi5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlc3VtZVdvcmtmbG93UHJvdmlkZXJFdmVudFRyaWdnZXJSZXF1ZXN0Gi4uZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93RXZlbnRUcmlnZ2VyEoMBChVQdXRFeGVjdXRpb25SZWZlcmVuY2USOS5nZXN0YWx0LnByb3ZpZGVyLnYxLlB1dFdvcmtmbG93RXhlY3V0aW9uUmVmZXJlbmNlUmVxdWVzdBovLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFeGVjdXRpb25SZWZlcmVuY2USgwEKFUdldEV4ZWN1dGlvblJlZmVyZW5jZRI5Lmdlc3RhbHQucHJvdmlkZXIudjEuR2V0V29ya2Zsb3dFeGVjdXRpb25SZWZlcmVuY2VSZXF1ZXN0Gi8uZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V4ZWN1dGlvblJlZmVyZW5jZRKUAQoXTGlzdEV4ZWN1dGlvblJlZmVyZW5jZXMSOy5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd0V4ZWN1dGlvblJlZmVyZW5jZXNSZXF1ZXN0GjwuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dFeGVjdXRpb25SZWZlcmVuY2VzUmVzcG9uc2USYAoMUHVibGlzaEV2ZW50EjguZ2VzdGFsdC5wcm92aWRlci52MS5QdWJsaXNoV29ya2Zsb3dQcm92aWRlckV2ZW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eTKMAQoMV29ya2Zsb3dIb3N0EnwKD0ludm9rZU9wZXJhdGlvbhIzLmdlc3RhbHQucHJvdmlkZXIudjEuSW52b2tlV29ya2Zsb3dPcGVyYXRpb25SZXF1ZXN0GjQuZ2VzdGFsdC5wcm92aWRlci52MS5JbnZva2VXb3JrZmxvd09wZXJhdGlvblJlc3BvbnNlMq4PChNXb3JrZmxvd01hbmFnZXJIb3N0EmgKCFN0YXJ0UnVuEjMuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJTdGFydFJ1blJlcXVlc3QaJy5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1J1bhJwCglTaWduYWxSdW4SNC5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFuYWdlclNpZ25hbFJ1blJlcXVlc3QaLS5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1J1blNpZ25hbBJ+ChBTaWduYWxPclN0YXJ0UnVuEjsuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJTaWduYWxPclN0YXJ0UnVuUmVxdWVzdBotLmdlc3RhbHQucHJvdmlkZXIudjEuTWFuYWdlZFdvcmtmbG93UnVuU2lnbmFsEnkKDkNyZWF0ZVNjaGVkdWxlEjkuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJDcmVhdGVTY2hlZHVsZVJlcXVlc3QaLC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1NjaGVkdWxlEnMKC0dldFNjaGVkdWxlEjYuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJHZXRTY2hlZHVsZVJlcXVlc3QaLC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1NjaGVkdWxlEnkKDlVwZGF0ZVNjaGVkdWxlEjkuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJVcGRhdGVTY2hlZHVsZVJlcXVlc3QaLC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1NjaGVkdWxlEmMKDkRlbGV0ZVNjaGVkdWxlEjkuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJEZWxldGVTY2hlZHVsZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSdwoNUGF1c2VTY2hlZHVsZRI4Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyUGF1c2VTY2hlZHVsZVJlcXVlc3QaLC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1NjaGVkdWxlEnkKDlJlc3VtZVNjaGVkdWxlEjkuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJSZXN1bWVTY2hlZHVsZVJlcXVlc3QaLC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd1NjaGVkdWxlEoUBChJDcmVhdGVFdmVudFRyaWdnZXISPS5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFuYWdlckNyZWF0ZUV2ZW50VHJpZ2dlclJlcXVlc3QaMC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd0V2ZW50VHJpZ2dlchJ/Cg9HZXRFdmVudFRyaWdnZXISOi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93TWFuYWdlckdldEV2ZW50VHJpZ2dlclJlcXVlc3QaMC5nZXN0YWx0LnByb3ZpZGVyLnYxLk1hbmFnZWRXb3JrZmxvd0V2ZW50VHJpZ2dlchKFAQoSVXBkYXRlRXZlbnRUcmlnZ2VyEj0uZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJVcGRhdGVFdmVudFRyaWdnZXJSZXF1ZXN0GjAuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dFdmVudFRyaWdnZXISawoSRGVsZXRlRXZlbnRUcmlnZ2VyEj0uZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbmFnZXJEZWxldGVFdmVudFRyaWdnZXJSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EoMBChFQYXVzZUV2ZW50VHJpZ2dlchI8Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyUGF1c2VFdmVudFRyaWdnZXJSZXF1ZXN0GjAuZ2VzdGFsdC5wcm92aWRlci52MS5NYW5hZ2VkV29ya2Zsb3dFdmVudFRyaWdnZXIShQEKElJlc3VtZUV2ZW50VHJpZ2dlchI9Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyUmVzdW1lRXZlbnRUcmlnZ2VyUmVxdWVzdBowLmdlc3RhbHQucHJvdmlkZXIudjEuTWFuYWdlZFdvcmtmbG93RXZlbnRUcmlnZ2VyEmsKDFB1Ymxpc2hFdmVudBI3Lmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dNYW5hZ2VyUHVibGlzaEV2ZW50UmVxdWVzdBoiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudEI9WjtnaXRodWIuY29tL3ZhbG9uLXRlY2hub2xvZ2llcy9nZXN0YWx0L2ludGVybmFsL2dlbi92MTtwcm90b2IGcHJvdG8z", [file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp, file_v1_agent]);
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* @generated from message gestalt.provider.v1.BoundWorkflowTarget
|
|
@@ -1900,6 +1900,11 @@ export type WorkflowManagerPublishEventRequest = Message<"gestalt.provider.v1.Wo
|
|
|
1900
1900
|
* @generated from field: string invocation_token = 3;
|
|
1901
1901
|
*/
|
|
1902
1902
|
invocationToken: string;
|
|
1903
|
+
|
|
1904
|
+
/**
|
|
1905
|
+
* @generated from field: string provider_name = 4;
|
|
1906
|
+
*/
|
|
1907
|
+
providerName: string;
|
|
1903
1908
|
};
|
|
1904
1909
|
|
|
1905
1910
|
/**
|
package/src/invoker.ts
CHANGED
|
@@ -2,30 +2,50 @@ import type { JsonObject, JsonValue } from "@bufbuild/protobuf";
|
|
|
2
2
|
import { createClient, type Client, type Interceptor } from "@connectrpc/connect";
|
|
3
3
|
import { createGrpcTransport } from "@connectrpc/connect-node";
|
|
4
4
|
|
|
5
|
-
import { PluginInvoker as PluginInvokerService } from "
|
|
5
|
+
import { PluginInvoker as PluginInvokerService } from "./internal/gen/v1/plugin_pb.ts";
|
|
6
6
|
import type { OperationResult, Request } from "./api.ts";
|
|
7
7
|
|
|
8
|
+
/** Environment variable containing the plugin-invoker host-service target. */
|
|
8
9
|
export const ENV_PLUGIN_INVOKER_SOCKET = "GESTALT_PLUGIN_INVOKER_SOCKET";
|
|
9
|
-
|
|
10
|
+
/** Environment variable containing the optional plugin-invoker relay token. */
|
|
11
|
+
export const ENV_PLUGIN_INVOKER_SOCKET_TOKEN =
|
|
12
|
+
`${ENV_PLUGIN_INVOKER_SOCKET}_TOKEN`;
|
|
10
13
|
const PLUGIN_INVOKER_RELAY_TOKEN_HEADER = "x-gestalt-host-service-relay-token";
|
|
11
14
|
|
|
15
|
+
/** Options that select the target connection for an operation invocation. */
|
|
12
16
|
export interface PluginInvokeOptions {
|
|
17
|
+
/** Connected account id or name to invoke against. */
|
|
13
18
|
connection?: string;
|
|
19
|
+
/** Provider instance id or name to invoke against. */
|
|
14
20
|
instance?: string;
|
|
21
|
+
/** Idempotency key forwarded to the target operation. */
|
|
15
22
|
idempotencyKey?: string;
|
|
16
23
|
}
|
|
17
24
|
|
|
25
|
+
/** Grant included when exchanging an invocation token for a child token. */
|
|
18
26
|
export interface PluginInvocationGrant {
|
|
27
|
+
/** Plugin name that the child token may invoke. */
|
|
19
28
|
plugin: string;
|
|
29
|
+
/** Specific operation ids allowed by the child token. */
|
|
20
30
|
operations?: string[];
|
|
31
|
+
/** Surface names allowed by the child token. */
|
|
21
32
|
surfaces?: string[];
|
|
33
|
+
/** Whether the child token may invoke every operation on the plugin. */
|
|
22
34
|
allOperations?: boolean;
|
|
23
35
|
}
|
|
24
36
|
|
|
37
|
+
/** Options for invoking a plugin GraphQL surface. */
|
|
25
38
|
export interface PluginGraphQLInvokeOptions extends PluginInvokeOptions {
|
|
39
|
+
/** GraphQL variables encoded as a JSON object. */
|
|
26
40
|
variables?: Record<string, unknown>;
|
|
27
41
|
}
|
|
28
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Client for invoking sibling plugin operations through the host.
|
|
45
|
+
*
|
|
46
|
+
* The constructor accepts either a Gestalt request or an invocation token. The
|
|
47
|
+
* token is attached to every operation, GraphQL, and token-exchange request.
|
|
48
|
+
*/
|
|
29
49
|
export class PluginInvoker {
|
|
30
50
|
private readonly client: Client<typeof PluginInvokerService>;
|
|
31
51
|
private readonly invocationToken: string;
|
|
@@ -48,6 +68,7 @@ export class PluginInvoker {
|
|
|
48
68
|
this.client = createClient(PluginInvokerService, transport);
|
|
49
69
|
}
|
|
50
70
|
|
|
71
|
+
/** Invokes one operation on another plugin. */
|
|
51
72
|
async invoke(
|
|
52
73
|
plugin: string,
|
|
53
74
|
operation: string,
|
|
@@ -69,6 +90,7 @@ export class PluginInvoker {
|
|
|
69
90
|
};
|
|
70
91
|
}
|
|
71
92
|
|
|
93
|
+
/** Invokes another plugin's GraphQL surface. */
|
|
72
94
|
async invokeGraphQL(
|
|
73
95
|
plugin: string,
|
|
74
96
|
document: string,
|
|
@@ -96,8 +118,11 @@ export class PluginInvoker {
|
|
|
96
118
|
};
|
|
97
119
|
}
|
|
98
120
|
|
|
121
|
+
/** Exchanges this invocation token for a narrower child token. */
|
|
99
122
|
async exchangeInvocationToken(options?: {
|
|
123
|
+
/** Grants to attach to the child token. */
|
|
100
124
|
grants?: PluginInvocationGrant[];
|
|
125
|
+
/** Requested child-token time-to-live in seconds. */
|
|
101
126
|
ttlSeconds?: number;
|
|
102
127
|
}): Promise<string> {
|
|
103
128
|
const response = await this.client.exchangeInvocationToken({
|
package/src/pluginruntime.ts
CHANGED
|
@@ -10,38 +10,32 @@ import {
|
|
|
10
10
|
HostedPluginSchema,
|
|
11
11
|
ListPluginRuntimeSessionsResponseSchema,
|
|
12
12
|
PluginRuntimeEgressMode,
|
|
13
|
-
PluginRuntimeHostServiceAccess,
|
|
14
|
-
PluginRuntimeHostServiceBindingSchema,
|
|
15
13
|
PluginRuntimeProvider as PluginRuntimeProviderService,
|
|
16
14
|
PluginRuntimeSessionSchema,
|
|
17
15
|
PluginRuntimeSupportSchema,
|
|
18
|
-
type BindPluginRuntimeHostServiceRequest,
|
|
19
16
|
type GetPluginRuntimeSessionRequest,
|
|
20
17
|
type HostedPlugin,
|
|
21
18
|
type ListPluginRuntimeSessionsRequest,
|
|
22
|
-
type PluginRuntimeHostServiceBinding,
|
|
23
19
|
type PluginRuntimeSession,
|
|
24
20
|
type PluginRuntimeSupport,
|
|
25
21
|
type StartHostedPluginRequest,
|
|
26
22
|
type StartPluginRuntimeSessionRequest,
|
|
27
23
|
type StopPluginRuntimeSessionRequest,
|
|
28
|
-
} from "
|
|
24
|
+
} from "./internal/gen/v1/pluginruntime_pb.ts";
|
|
29
25
|
import { errorMessage, type MaybePromise } from "./api.ts";
|
|
30
26
|
import { RuntimeProvider, type RuntimeProviderOptions } from "./provider.ts";
|
|
31
27
|
|
|
32
28
|
export type {
|
|
33
|
-
BindPluginRuntimeHostServiceRequest,
|
|
34
29
|
GetPluginRuntimeSessionRequest,
|
|
35
30
|
HostedPlugin,
|
|
36
31
|
ListPluginRuntimeSessionsRequest,
|
|
37
|
-
PluginRuntimeHostServiceBinding,
|
|
38
32
|
PluginRuntimeSession,
|
|
39
33
|
PluginRuntimeSupport,
|
|
40
34
|
StartHostedPluginRequest,
|
|
41
35
|
StartPluginRuntimeSessionRequest,
|
|
42
36
|
StopPluginRuntimeSessionRequest,
|
|
43
37
|
};
|
|
44
|
-
export { PluginRuntimeEgressMode
|
|
38
|
+
export { PluginRuntimeEgressMode };
|
|
45
39
|
|
|
46
40
|
export interface PluginRuntimeProviderOptions extends RuntimeProviderOptions {
|
|
47
41
|
getSupport: () => MaybePromise<MessageInitShape<typeof PluginRuntimeSupportSchema>>;
|
|
@@ -55,9 +49,6 @@ export interface PluginRuntimeProviderOptions extends RuntimeProviderOptions {
|
|
|
55
49
|
request: ListPluginRuntimeSessionsRequest,
|
|
56
50
|
) => MaybePromise<MessageInitShape<typeof PluginRuntimeSessionSchema>[]>;
|
|
57
51
|
stopSession: (request: StopPluginRuntimeSessionRequest) => MaybePromise<void>;
|
|
58
|
-
bindHostService: (
|
|
59
|
-
request: BindPluginRuntimeHostServiceRequest,
|
|
60
|
-
) => MaybePromise<MessageInitShape<typeof PluginRuntimeHostServiceBindingSchema>>;
|
|
61
52
|
startPlugin: (
|
|
62
53
|
request: StartHostedPluginRequest,
|
|
63
54
|
) => MaybePromise<MessageInitShape<typeof HostedPluginSchema>>;
|
|
@@ -71,7 +62,6 @@ export class PluginRuntimeProvider extends RuntimeProvider {
|
|
|
71
62
|
private readonly getSessionHandler: PluginRuntimeProviderOptions["getSession"];
|
|
72
63
|
private readonly listSessionsHandler: PluginRuntimeProviderOptions["listSessions"];
|
|
73
64
|
private readonly stopSessionHandler: PluginRuntimeProviderOptions["stopSession"];
|
|
74
|
-
private readonly bindHostServiceHandler: PluginRuntimeProviderOptions["bindHostService"];
|
|
75
65
|
private readonly startPluginHandler: PluginRuntimeProviderOptions["startPlugin"];
|
|
76
66
|
|
|
77
67
|
constructor(options: PluginRuntimeProviderOptions) {
|
|
@@ -81,7 +71,6 @@ export class PluginRuntimeProvider extends RuntimeProvider {
|
|
|
81
71
|
this.getSessionHandler = options.getSession;
|
|
82
72
|
this.listSessionsHandler = options.listSessions;
|
|
83
73
|
this.stopSessionHandler = options.stopSession;
|
|
84
|
-
this.bindHostServiceHandler = options.bindHostService;
|
|
85
74
|
this.startPluginHandler = options.startPlugin;
|
|
86
75
|
}
|
|
87
76
|
|
|
@@ -111,12 +100,6 @@ export class PluginRuntimeProvider extends RuntimeProvider {
|
|
|
111
100
|
await this.stopSessionHandler(request);
|
|
112
101
|
}
|
|
113
102
|
|
|
114
|
-
async bindHostService(
|
|
115
|
-
request: BindPluginRuntimeHostServiceRequest,
|
|
116
|
-
): Promise<MessageInitShape<typeof PluginRuntimeHostServiceBindingSchema>> {
|
|
117
|
-
return await this.bindHostServiceHandler(request);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
103
|
async startPlugin(
|
|
121
104
|
request: StartHostedPluginRequest,
|
|
122
105
|
): Promise<MessageInitShape<typeof HostedPluginSchema>> {
|
|
@@ -186,14 +169,6 @@ export function createPluginRuntimeProviderService(
|
|
|
186
169
|
);
|
|
187
170
|
return create(EmptySchema);
|
|
188
171
|
},
|
|
189
|
-
async bindHostService(request) {
|
|
190
|
-
return create(
|
|
191
|
-
PluginRuntimeHostServiceBindingSchema,
|
|
192
|
-
await invokePluginRuntimeProvider("bind host service", () =>
|
|
193
|
-
provider.bindHostService(request),
|
|
194
|
-
),
|
|
195
|
-
);
|
|
196
|
-
},
|
|
197
172
|
async startPlugin(request) {
|
|
198
173
|
return create(
|
|
199
174
|
HostedPluginSchema,
|
package/src/runtime-log-host.ts
CHANGED
|
@@ -14,37 +14,61 @@ import {
|
|
|
14
14
|
type AppendPluginRuntimeLogsResponse,
|
|
15
15
|
PluginRuntimeLogHost as PluginRuntimeLogHostService,
|
|
16
16
|
PluginRuntimeLogStream,
|
|
17
|
-
} from "
|
|
17
|
+
} from "./internal/gen/v1/pluginruntime_pb.ts";
|
|
18
18
|
|
|
19
|
+
/** Environment variable containing the runtime-log host-service target. */
|
|
19
20
|
export const ENV_RUNTIME_LOG_HOST_SOCKET = "GESTALT_RUNTIME_LOG_SOCKET";
|
|
20
|
-
|
|
21
|
+
/** Environment variable containing the optional runtime-log relay token. */
|
|
22
|
+
export const ENV_RUNTIME_LOG_HOST_SOCKET_TOKEN =
|
|
23
|
+
`${ENV_RUNTIME_LOG_HOST_SOCKET}_TOKEN`;
|
|
24
|
+
/** Environment variable containing the current plugin-runtime session id. */
|
|
21
25
|
export const ENV_RUNTIME_SESSION_ID = "GESTALT_RUNTIME_SESSION_ID";
|
|
22
26
|
|
|
23
27
|
const RUNTIME_LOG_RELAY_TOKEN_HEADER = "x-gestalt-host-service-relay-token";
|
|
24
28
|
|
|
29
|
+
/** Named runtime log streams accepted by the authored SDK. */
|
|
25
30
|
export type RuntimeLogStreamName = "stdout" | "stderr" | "runtime";
|
|
31
|
+
/** Runtime log stream input, either a named stream or generated enum value. */
|
|
26
32
|
export type RuntimeLogStreamInput =
|
|
27
33
|
| RuntimeLogStreamName
|
|
28
34
|
| PluginRuntimeLogStream;
|
|
35
|
+
/** Shape accepted by `RuntimeLogHost.appendLogs`. */
|
|
29
36
|
export type RuntimeLogAppendLogsInput = MessageInitShape<
|
|
30
37
|
typeof AppendPluginRuntimeLogsRequestSchema
|
|
31
38
|
>;
|
|
39
|
+
/** Response message returned after appending runtime logs. */
|
|
32
40
|
export type RuntimeLogAppendResponseMessage = AppendPluginRuntimeLogsResponse;
|
|
33
41
|
|
|
42
|
+
/** One runtime log entry to append through `RuntimeLogHost.append`. */
|
|
34
43
|
export interface RuntimeLogAppendInput {
|
|
44
|
+
/** Runtime session id. Defaults to `GESTALT_RUNTIME_SESSION_ID`. */
|
|
35
45
|
sessionId?: string;
|
|
46
|
+
/** Log message bytes or text. */
|
|
36
47
|
message: string | Uint8Array;
|
|
48
|
+
/** Destination stream. Defaults to `runtime`. */
|
|
37
49
|
stream?: RuntimeLogStreamInput;
|
|
50
|
+
/** Observation timestamp. Defaults to the current time. */
|
|
38
51
|
observedAt?: Date;
|
|
52
|
+
/** Monotonic source sequence number. Auto-increments when omitted. */
|
|
39
53
|
sourceSeq?: number | bigint;
|
|
40
54
|
}
|
|
41
55
|
|
|
56
|
+
/** Options for the `Writable` returned by `RuntimeLogHost.writer`. */
|
|
42
57
|
export interface RuntimeLogWriterOptions {
|
|
58
|
+
/** Runtime session id. Defaults to `GESTALT_RUNTIME_SESSION_ID`. */
|
|
43
59
|
sessionId?: string;
|
|
60
|
+
/** Destination stream. Defaults to `stdout`. */
|
|
44
61
|
stream?: RuntimeLogStreamInput;
|
|
62
|
+
/** Initial sequence number for writes. */
|
|
45
63
|
sourceSeqStart?: number | bigint;
|
|
46
64
|
}
|
|
47
65
|
|
|
66
|
+
/**
|
|
67
|
+
* Client for appending plugin-runtime logs to the host.
|
|
68
|
+
*
|
|
69
|
+
* Use `append` for a single entry, `appendLogs` for a protocol-shaped batch, or
|
|
70
|
+
* `writer` to bridge Node streams into the runtime log host.
|
|
71
|
+
*/
|
|
48
72
|
export class RuntimeLogHost {
|
|
49
73
|
private readonly client: Client<typeof PluginRuntimeLogHostService>;
|
|
50
74
|
private sourceSeq = 0n;
|
|
@@ -82,6 +106,7 @@ export class RuntimeLogHost {
|
|
|
82
106
|
return await this.client.appendLogs(request);
|
|
83
107
|
}
|
|
84
108
|
|
|
109
|
+
/** Appends one runtime log entry. */
|
|
85
110
|
async append(
|
|
86
111
|
input: RuntimeLogAppendInput,
|
|
87
112
|
): Promise<RuntimeLogAppendResponseMessage> {
|
|
@@ -105,6 +130,7 @@ export class RuntimeLogHost {
|
|
|
105
130
|
});
|
|
106
131
|
}
|
|
107
132
|
|
|
133
|
+
/** Returns a `Writable` that appends chunks to a runtime log stream. */
|
|
108
134
|
writer(options?: RuntimeLogWriterOptions): Writable;
|
|
109
135
|
writer(sessionId: string, options?: RuntimeLogWriterOptions): Writable;
|
|
110
136
|
writer(
|