jennah-sdk-ts 0.75.0 → 0.77.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/client.d.ts CHANGED
@@ -90,6 +90,16 @@ export declare const SERVICES: {
90
90
  input: typeof import("./gen/jennah/agent/v1/memory_pb.js").FormMemoryRequestSchema;
91
91
  output: typeof import("./gen/jennah/agent/v1/memory_pb.js").FormMemoryResponseSchema;
92
92
  };
93
+ submitFormation: {
94
+ methodKind: "unary";
95
+ input: typeof import("./gen/jennah/agent/v1/memory_pb.js").SubmitFormationRequestSchema;
96
+ output: typeof import("./gen/jennah/agent/v1/memory_pb.js").SubmitFormationResponseSchema;
97
+ };
98
+ getFormation: {
99
+ methodKind: "unary";
100
+ input: typeof import("./gen/jennah/agent/v1/memory_pb.js").GetFormationRequestSchema;
101
+ output: typeof import("./gen/jennah/agent/v1/memory_pb.js").GetFormationResponseSchema;
102
+ };
93
103
  declareMemoryVocabulary: {
94
104
  methodKind: "unary";
95
105
  input: typeof import("./gen/jennah/agent/v1/memory_pb.js").DeclareMemoryVocabularyRequestSchema;
@@ -240,6 +250,16 @@ export declare const SERVICES: {
240
250
  input: typeof import("./gen/jennah/auth/v1/auth_pb.js").LogoutRequestSchema;
241
251
  output: typeof import("./gen/jennah/auth/v1/auth_pb.js").LogoutResponseSchema;
242
252
  };
253
+ ripplePasswordLogin: {
254
+ methodKind: "unary";
255
+ input: typeof import("./gen/jennah/auth/v1/auth_pb.js").RipplePasswordLoginRequestSchema;
256
+ output: typeof import("./gen/jennah/auth/v1/auth_pb.js").RipplePasswordLoginResponseSchema;
257
+ };
258
+ requestRippleEmailCode: {
259
+ methodKind: "unary";
260
+ input: typeof import("./gen/jennah/auth/v1/auth_pb.js").RequestRippleEmailCodeRequestSchema;
261
+ output: typeof import("./gen/jennah/auth/v1/auth_pb.js").RequestRippleEmailCodeResponseSchema;
262
+ };
243
263
  createApiKey: {
244
264
  methodKind: "unary";
245
265
  input: typeof import("./gen/jennah/auth/v1/auth_pb.js").CreateApiKeyRequestSchema;
@@ -2508,6 +2508,171 @@ export type FormMemoryResponse = Message<"jennahapi.agent.v1.FormMemoryResponse"
2508
2508
  * Use `create(FormMemoryResponseSchema)` to create a new message.
2509
2509
  */
2510
2510
  export declare const FormMemoryResponseSchema: GenMessage<FormMemoryResponse>;
2511
+ /**
2512
+ * @generated from message jennahapi.agent.v1.SubmitFormationRequest
2513
+ */
2514
+ export type SubmitFormationRequest = Message<"jennahapi.agent.v1.SubmitFormationRequest"> & {
2515
+ /**
2516
+ * Route path parameter, never read from the body. Exactly as
2517
+ * FormMemoryRequest.scope_id.
2518
+ *
2519
+ * @generated from field: string scope_id = 1;
2520
+ */
2521
+ scopeId: string;
2522
+ /**
2523
+ * The conversation to form memory from, in order, with the same meaning and
2524
+ * the same bounds as FormMemoryRequest.turns. An oversize submission is
2525
+ * refused here, before anything is accepted.
2526
+ *
2527
+ * @generated from field: repeated jennahapi.agent.v1.ConversationTurn turns = 2;
2528
+ */
2529
+ turns: ConversationTurn[];
2530
+ /**
2531
+ * Optional key making the submission SAFELY RESENDABLE, scoped to the
2532
+ * workspace. A resend under a key whose formation was already accepted
2533
+ * returns THAT formation, whether it is still waiting, running or done, and
2534
+ * starts nothing. A key reused with a different conversation is refused, as
2535
+ * it is for FormMemory.
2536
+ *
2537
+ * The key space is shared with FormMemoryRequest.formation_key: a submission
2538
+ * under a key a FormMemory call already completed returns a finished
2539
+ * formation carrying that call's receipt.
2540
+ *
2541
+ * @generated from field: string formation_key = 3;
2542
+ */
2543
+ formationKey: string;
2544
+ /**
2545
+ * When the conversation took place. Exactly as FormMemoryRequest.observed_at,
2546
+ * and part of what makes two submissions identical for `formation_key`.
2547
+ *
2548
+ * @generated from field: google.protobuf.Timestamp observed_at = 4;
2549
+ */
2550
+ observedAt?: Timestamp | undefined;
2551
+ };
2552
+ /**
2553
+ * Describes the message jennahapi.agent.v1.SubmitFormationRequest.
2554
+ * Use `create(SubmitFormationRequestSchema)` to create a new message.
2555
+ */
2556
+ export declare const SubmitFormationRequestSchema: GenMessage<SubmitFormationRequest>;
2557
+ /**
2558
+ * @generated from message jennahapi.agent.v1.SubmitFormationResponse
2559
+ */
2560
+ export type SubmitFormationResponse = Message<"jennahapi.agent.v1.SubmitFormationResponse"> & {
2561
+ /**
2562
+ * The accepted formation. A new submission is ACCEPTED; a resend under an
2563
+ * existing key carries that formation's current state. As with FormMemory, a
2564
+ * resend is not marked as one.
2565
+ *
2566
+ * @generated from field: jennahapi.agent.v1.Formation formation = 1;
2567
+ */
2568
+ formation?: Formation | undefined;
2569
+ };
2570
+ /**
2571
+ * Describes the message jennahapi.agent.v1.SubmitFormationResponse.
2572
+ * Use `create(SubmitFormationResponseSchema)` to create a new message.
2573
+ */
2574
+ export declare const SubmitFormationResponseSchema: GenMessage<SubmitFormationResponse>;
2575
+ /**
2576
+ * @generated from message jennahapi.agent.v1.GetFormationRequest
2577
+ */
2578
+ export type GetFormationRequest = Message<"jennahapi.agent.v1.GetFormationRequest"> & {
2579
+ /**
2580
+ * Route path parameter: the workspace the formation was submitted to. A
2581
+ * formation id is only meaningful inside its workspace, and an id read under
2582
+ * any other workspace is answered as NOT_FOUND.
2583
+ *
2584
+ * @generated from field: string scope_id = 1;
2585
+ */
2586
+ scopeId: string;
2587
+ /**
2588
+ * Route path parameter: the id SubmitFormation returned.
2589
+ *
2590
+ * @generated from field: string formation_id = 2;
2591
+ */
2592
+ formationId: string;
2593
+ };
2594
+ /**
2595
+ * Describes the message jennahapi.agent.v1.GetFormationRequest.
2596
+ * Use `create(GetFormationRequestSchema)` to create a new message.
2597
+ */
2598
+ export declare const GetFormationRequestSchema: GenMessage<GetFormationRequest>;
2599
+ /**
2600
+ * @generated from message jennahapi.agent.v1.GetFormationResponse
2601
+ */
2602
+ export type GetFormationResponse = Message<"jennahapi.agent.v1.GetFormationResponse"> & {
2603
+ /**
2604
+ * @generated from field: jennahapi.agent.v1.Formation formation = 1;
2605
+ */
2606
+ formation?: Formation | undefined;
2607
+ };
2608
+ /**
2609
+ * Describes the message jennahapi.agent.v1.GetFormationResponse.
2610
+ * Use `create(GetFormationResponseSchema)` to create a new message.
2611
+ */
2612
+ export declare const GetFormationResponseSchema: GenMessage<GetFormationResponse>;
2613
+ /**
2614
+ * A formation submitted through SubmitFormation.
2615
+ *
2616
+ * @generated from message jennahapi.agent.v1.Formation
2617
+ */
2618
+ export type Formation = Message<"jennahapi.agent.v1.Formation"> & {
2619
+ /**
2620
+ * Opaque, platform-assigned, unique within the workspace.
2621
+ *
2622
+ * @generated from field: string formation_id = 1;
2623
+ */
2624
+ formationId: string;
2625
+ /**
2626
+ * The workspace it reads and writes.
2627
+ *
2628
+ * @generated from field: string scope_id = 2;
2629
+ */
2630
+ scopeId: string;
2631
+ /**
2632
+ * @generated from field: jennahapi.agent.v1.FormationState state = 3;
2633
+ */
2634
+ state: FormationState;
2635
+ /**
2636
+ * Set when FINISHED: the receipt FormMemory would have returned for the same
2637
+ * conversation, including the units the formation consumed.
2638
+ *
2639
+ * @generated from field: jennahapi.agent.v1.FormMemoryResponse receipt = 4;
2640
+ */
2641
+ receipt?: FormMemoryResponse | undefined;
2642
+ /**
2643
+ * Set when FAILED: a machine-readable reason, from the same vocabulary
2644
+ * FormMemory's error details use (for example a revoked credential or a
2645
+ * formation model that could not be reached), and a message in plain terms.
2646
+ *
2647
+ * @generated from field: string failure_reason = 5;
2648
+ */
2649
+ failureReason: string;
2650
+ /**
2651
+ * @generated from field: string failure_message = 6;
2652
+ */
2653
+ failureMessage: string;
2654
+ /**
2655
+ * When the platform accepted the submission.
2656
+ *
2657
+ * @generated from field: google.protobuf.Timestamp accepted_at = 7;
2658
+ */
2659
+ acceptedAt?: Timestamp | undefined;
2660
+ /**
2661
+ * When it became FINISHED or FAILED. Unset before that.
2662
+ *
2663
+ * A formation's record is kept for 7 days after this instant and then reads as
2664
+ * NOT_FOUND. The memory it wrote, and the conversation it recorded, are not
2665
+ * affected.
2666
+ *
2667
+ * @generated from field: google.protobuf.Timestamp finished_at = 8;
2668
+ */
2669
+ finishedAt?: Timestamp | undefined;
2670
+ };
2671
+ /**
2672
+ * Describes the message jennahapi.agent.v1.Formation.
2673
+ * Use `create(FormationSchema)` to create a new message.
2674
+ */
2675
+ export declare const FormationSchema: GenMessage<Formation>;
2511
2676
  /**
2512
2677
  * One entity class in a memory vocabulary: a kind of thing memory formation may
2513
2678
  * classify an entity as.
@@ -3493,6 +3658,48 @@ export declare enum MemoryDecision {
3493
3658
  * Describes the enum jennahapi.agent.v1.MemoryDecision.
3494
3659
  */
3495
3660
  export declare const MemoryDecisionSchema: GenEnum<MemoryDecision>;
3661
+ /**
3662
+ * Where a submitted formation stands.
3663
+ *
3664
+ * @generated from enum jennahapi.agent.v1.FormationState
3665
+ */
3666
+ export declare enum FormationState {
3667
+ /**
3668
+ * @generated from enum value: FORMATION_STATE_UNSPECIFIED = 0;
3669
+ */
3670
+ UNSPECIFIED = 0,
3671
+ /**
3672
+ * Recorded and waiting to start. A formation can return here from RUNNING
3673
+ * when the platform resumes one that was interrupted.
3674
+ *
3675
+ * @generated from enum value: FORMATION_STATE_ACCEPTED = 1;
3676
+ */
3677
+ ACCEPTED = 1,
3678
+ /**
3679
+ * Extraction, recall, reconciliation or the write is under way.
3680
+ *
3681
+ * @generated from enum value: FORMATION_STATE_RUNNING = 2;
3682
+ */
3683
+ RUNNING = 2,
3684
+ /**
3685
+ * Done. `receipt` is set. A formation that stored nothing is FINISHED with a
3686
+ * receipt carrying no commit timestamp, exactly as FormMemory would report it.
3687
+ *
3688
+ * @generated from enum value: FORMATION_STATE_FINISHED = 3;
3689
+ */
3690
+ FINISHED = 3,
3691
+ /**
3692
+ * Will not complete. `failure_reason` and `failure_message` say why, and the
3693
+ * formation wrote no memory.
3694
+ *
3695
+ * @generated from enum value: FORMATION_STATE_FAILED = 4;
3696
+ */
3697
+ FAILED = 4
3698
+ }
3699
+ /**
3700
+ * Describes the enum jennahapi.agent.v1.FormationState.
3701
+ */
3702
+ export declare const FormationStateSchema: GenEnum<FormationState>;
3496
3703
  /**
3497
3704
  * Where an enterprise's own formation model is served.
3498
3705
  *
@@ -3696,6 +3903,58 @@ export declare const MemoryService: GenService<{
3696
3903
  input: typeof FormMemoryRequestSchema;
3697
3904
  output: typeof FormMemoryResponseSchema;
3698
3905
  };
3906
+ /**
3907
+ * Submits a formation WITHOUT WAITING FOR IT. It takes what FormMemory takes,
3908
+ * and returns as soon as the platform has recorded the formation: in
3909
+ * milliseconds, before any model is called. The formation then runs to
3910
+ * completion whether or not the caller is still connected, and is resumed by
3911
+ * the platform if it is interrupted. GetFormation reports where it stands and,
3912
+ * once it is done, carries the same receipt FormMemory would have returned.
3913
+ *
3914
+ * Use it where the caller cannot hold a request open for a formation's
3915
+ * duration: a tool call a host will cancel, a job that exits, a function with
3916
+ * a short timeout. A caller that wants the receipt inline keeps using
3917
+ * FormMemory, which is unchanged.
3918
+ *
3919
+ * Everything FormMemory refuses on the request alone is refused HERE, before
3920
+ * anything is accepted: an invalid or oversize conversation, a scope out of
3921
+ * reach, an enterprise at its formation ceiling, a formation key reused with
3922
+ * different content. What only running the formation can reveal (an
3923
+ * unreachable formation model, a credential revoked before it ran) is reported
3924
+ * by GetFormation as FAILED.
3925
+ *
3926
+ * The formation runs with the submitter's authority AS IT IS WHEN THE
3927
+ * FORMATION RUNS, not as it was when it was submitted, so revoking a key stops
3928
+ * the formations it submitted that have not yet written.
3929
+ *
3930
+ * Metered as FormMemory is. A formation the platform had to resume may have
3931
+ * consumed units on the attempt that was interrupted, and those units are
3932
+ * counted.
3933
+ *
3934
+ * Requires the same permission as FormMemory.
3935
+ *
3936
+ * @generated from rpc jennahapi.agent.v1.MemoryService.SubmitFormation
3937
+ */
3938
+ submitFormation: {
3939
+ methodKind: "unary";
3940
+ input: typeof SubmitFormationRequestSchema;
3941
+ output: typeof SubmitFormationResponseSchema;
3942
+ };
3943
+ /**
3944
+ * Reads a submitted formation: waiting, running, finished with its receipt,
3945
+ * or failed with its reason. It never waits for the formation to finish.
3946
+ *
3947
+ * Requires the same permission and reach as reading the workspace's memory.
3948
+ * An id from another workspace, or from a workspace the caller cannot reach,
3949
+ * is NOT_FOUND, so a refusal never confirms that the formation exists.
3950
+ *
3951
+ * @generated from rpc jennahapi.agent.v1.MemoryService.GetFormation
3952
+ */
3953
+ getFormation: {
3954
+ methodKind: "unary";
3955
+ input: typeof GetFormationRequestSchema;
3956
+ output: typeof GetFormationResponseSchema;
3957
+ };
3699
3958
  /**
3700
3959
  * Declares the memory vocabulary for the caller's active enterprise, or for one
3701
3960
  * scope in it. External (gateway) RPC. Authenticated AND requires the
@@ -7,7 +7,7 @@ import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bu
7
7
  /**
8
8
  * Describes the file jennah/agent/v1/memory.proto.
9
9
  */
10
- export const file_jennah_agent_v1_memory = /*@__PURE__*/ fileDesc("ChxqZW5uYWgvYWdlbnQvdjEvbWVtb3J5LnByb3RvEhJqZW5uYWhhcGkuYWdlbnQudjEizAIKE0NvbW1pdE1lbW9yeVJlcXVlc3QSHQoRYWdlbnRfaW5zdGFuY2VfaWQYASABKAlCAhgBEjEKA2xvZxgCIAEoCzIkLmplbm5haGFwaS5hZ2VudC52MS5FeGVjdXRpb25Mb2dTdGVwEjAKB3ZlY3RvcnMYAyADKAsyHy5qZW5uYWhhcGkuYWdlbnQudjEuVmVjdG9yQ2h1bmsSLQoFZ3JhcGgYBCABKAsyHi5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhXcml0ZRIcChRyZWplY3Rfb25fdHJ1bmNhdGlvbhgFIAEoCBIUCgx0YXJnZXRfc2NvcGUYBiABKAkSEAoIc2NvcGVfaWQYByABKAkSPAoNc3VwZXJzZXNzaW9ucxgIIAEoCzIlLmplbm5haGFwaS5hZ2VudC52MS5TdXBlcnNlc3Npb25Xcml0ZSKwAgoQRXhlY3V0aW9uTG9nU3RlcBIPCgdzdGVwX2lkGAEgASgJEhcKD3Rob3VnaHRfcHJvY2VzcxgCIAEoCRIRCgl0b29sX3VzZWQYAyABKAkSEgoKdG9vbF9pbnB1dBgEIAEoCRITCgt0b29sX291dHB1dBgFIAEoCRItCgl0aW1lc3RhbXAYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCHNjb3BlX2lkGAcgASgJEkQKCG1ldGFkYXRhGAggAygLMjIuamVubmFoYXBpLmFnZW50LnYxLkV4ZWN1dGlvbkxvZ1N0ZXAuTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEilwIKC1ZlY3RvckNodW5rEhAKCGNodW5rX2lkGAEgASgJEhMKC3Jhd19jb250ZW50GAIgASgJEhEKCWVtYmVkZGluZxgDIAMoAhI/CghtZXRhZGF0YRgEIAMoCzItLmplbm5haGFwaS5hZ2VudC52MS5WZWN0b3JDaHVuay5NZXRhZGF0YUVudHJ5EiwKCHZhbGlkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgppbnZhbGlkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiaAoKR3JhcGhXcml0ZRIsCgVub2RlcxgBIAMoCzIdLmplbm5haGFwaS5hZ2VudC52MS5HcmFwaE5vZGUSLAoFZWRnZXMYAiADKAsyHS5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhFZGdlIn8KEVN1cGVyc2Vzc2lvbldyaXRlEjMKBWVkZ2VzGAEgAygLMiQuamVubmFoYXBpLmFnZW50LnYxLkVkZ2VTdXBlcnNlc3Npb24SNQoGY2h1bmtzGAIgAygLMiUuamVubmFoYXBpLmFnZW50LnYxLkNodW5rU3VwZXJzZXNzaW9uIloKEEVkZ2VTdXBlcnNlc3Npb24SFQoNcHJpb3JfZWRnZV9pZBgBIAEoCRIvCghuZXdfZWRnZRgCIAEoCzIdLmplbm5haGFwaS5hZ2VudC52MS5HcmFwaEVkZ2UiXwoRQ2h1bmtTdXBlcnNlc3Npb24SFgoOcHJpb3JfY2h1bmtfaWQYASABKAkSMgoJbmV3X2NodW5rGAIgASgLMh8uamVubmFoYXBpLmFnZW50LnYxLlZlY3RvckNodW5rIosCCglHcmFwaE5vZGUSDwoHbm9kZV9pZBgBIAEoCRINCgVsYWJlbBgCIAEoCRIrCgpwcm9wZXJ0aWVzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgp1cGRhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI9CghtZXRhZGF0YRgFIAMoCzIrLmplbm5haGFwaS5hZ2VudC52MS5HcmFwaE5vZGUuTWV0YWRhdGFFbnRyeRIRCglub2RlX3R5cGUYBiABKAkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpIDCglHcmFwaEVkZ2USDwoHZWRnZV9pZBgBIAEoCRIWCg5zb3VyY2Vfbm9kZV9pZBgCIAEoCRIWCg50YXJnZXRfbm9kZV9pZBgDIAEoCRIZChFyZWxhdGlvbnNoaXBfdHlwZRgEIAEoCRIrCgpwcm9wZXJ0aWVzGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCgh2YWxpZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKaW52YWxpZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPQoIbWV0YWRhdGEYCSADKAsyKy5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhFZGdlLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpcCChRDb21taXRNZW1vcnlSZXNwb25zZRI0ChBjb21taXRfdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJleGVjdXRpb25fbG9nX3Jvd3MYAiABKAMSEwoLdmVjdG9yX3Jvd3MYAyABKAMSFwoPZ3JhcGhfbm9kZV9yb3dzGAQgASgDEhcKD2dyYXBoX2VkZ2Vfcm93cxgFIAEoAxIbChN0cnVuY2F0ZWRfY2h1bmtfaWRzGAYgAygJEhAKCHNjb3BlX2lkGAcgASgJEhoKEmVkZ2Vfc3VwZXJzZXNzaW9ucxgIIAEoAxIbChNjaHVua19zdXBlcnNlc3Npb25zGAkgASgDIucCChJRdWVyeU1lbW9yeVJlcXVlc3QSHQoRYWdlbnRfaW5zdGFuY2VfaWQYASABKAlCAhgBEjMKCHNlbWFudGljGAIgASgLMiEuamVubmFoYXBpLmFnZW50LnYxLlNlbWFudGljUXVlcnkSLQoFZ3JhcGgYAyABKAsyHi5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhRdWVyeRIpCgNsb2cYBCABKAsyHC5qZW5uYWhhcGkuYWdlbnQudjEuTG9nUXVlcnkSDAoEbGluaxgFIAEoCBI9ChBmdXNpb25fZGlyZWN0aW9uGAYgASgOMiMuamVubmFoYXBpLmFnZW50LnYxLkZ1c2lvbkRpcmVjdGlvbhIpCgVhc19vZhgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGQoRYWRkaXRpb25hbF9zY29wZXMYCCADKAkSEAoIc2NvcGVfaWQYCSABKAkipAIKDVNlbWFudGljUXVlcnkSEQoJZW1iZWRkaW5nGAEgAygCEhIKCnF1ZXJ5X3RleHQYAiABKAkSDQoFbGltaXQYAyABKAUSMwoHZmlsdGVycxgEIAMoCzIiLmplbm5haGFwaS5hZ2VudC52MS5NZXRhZGF0YUZpbHRlchIvCgthc19vZl92YWxpZBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIYXNfb2ZfdHgYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjkKDnJldHJpZXZhbF9tb2RlGAcgASgOMiEuamVubmFoYXBpLmFnZW50LnYxLlJldHJpZXZhbE1vZGUSDgoGcmVyYW5rGAggASgIIp8CCg5NZXRhZGF0YUZpbHRlchILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAkSPQoIb3BlcmF0b3IYAyABKA4yKy5qZW5uYWhhcGkuYWdlbnQudjEuTWV0YWRhdGFGaWx0ZXIuT3BlcmF0b3IisQEKCE9wZXJhdG9yEhgKFE9QRVJBVE9SX1VOU1BFQ0lGSUVEEAASEwoPT1BFUkFUT1JfRVFVQUxTEAESFgoST1BFUkFUT1JfTEVTU19USEFOEAISHwobT1BFUkFUT1JfTEVTU19USEFOX09SX0VRVUFMEAMSGQoVT1BFUkFUT1JfR1JFQVRFUl9USEFOEAQSIgoeT1BFUkFUT1JfR1JFQVRFUl9USEFOX09SX0VRVUFMEAUi2wEKCkdyYXBoUXVlcnkSMQoFc3RhcnQYASABKAsyIi5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhOb2RlTWF0Y2gSLAoFc3RlcHMYAiADKAsyHS5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhTdGVwEg0KBWxpbWl0GAMgASgFEi8KC2FzX29mX3ZhbGlkGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghhc19vZl90eBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiigEKDkdyYXBoTm9kZU1hdGNoEg0KBWxhYmVsGAEgASgJEjMKB2ZpbHRlcnMYAiADKAsyIi5qZW5uYWhhcGkuYWdlbnQudjEuUHJvcGVydHlGaWx0ZXISNAoIbWV0YWRhdGEYAyADKAsyIi5qZW5uYWhhcGkuYWdlbnQudjEuTWV0YWRhdGFGaWx0ZXIixQEKCUdyYXBoU3RlcBIZChFyZWxhdGlvbnNoaXBfdHlwZRgBIAEoCRI1CglkaXJlY3Rpb24YAiABKA4yIi5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhEaXJlY3Rpb24SMAoEbm9kZRgDIAEoCzIiLmplbm5haGFwaS5hZ2VudC52MS5HcmFwaE5vZGVNYXRjaBI0CghtZXRhZGF0YRgEIAMoCzIiLmplbm5haGFwaS5hZ2VudC52MS5NZXRhZGF0YUZpbHRlciJECg5Qcm9wZXJ0eUZpbHRlchILCgNrZXkYASABKAkSJQoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUiegoITG9nUXVlcnkSDQoFbGltaXQYASABKAUSKQoFc2luY2UYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjQKCG1ldGFkYXRhGAMgAygLMiIuamVubmFoYXBpLmFnZW50LnYxLk1ldGFkYXRhRmlsdGVyIosCChNRdWVyeU1lbW9yeVJlc3BvbnNlEjQKCHNlbWFudGljGAEgASgLMiIuamVubmFoYXBpLmFnZW50LnYxLlNlbWFudGljUmVzdWx0Ei4KBWdyYXBoGAIgASgLMh8uamVubmFoYXBpLmFnZW50LnYxLkdyYXBoUmVzdWx0EioKA2xvZxgDIAEoCzIdLmplbm5haGFwaS5hZ2VudC52MS5Mb2dSZXN1bHQSLgoFZnVzZWQYBCABKAsyHy5qZW5uYWhhcGkuYWdlbnQudjEuRnVzZWRSZXN1bHQSMgoOcmVhZF90aW1lc3RhbXAYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIkQKDlNlbWFudGljUmVzdWx0EjIKB21hdGNoZXMYASADKAsyIS5qZW5uYWhhcGkuYWdlbnQudjEuU2VtYW50aWNNYXRjaCK+AwoNU2VtYW50aWNNYXRjaBIQCghjaHVua19pZBgBIAEoCRITCgtyYXdfY29udGVudBgCIAEoCRIQCghkaXN0YW5jZRgDIAEoARJBCghtZXRhZGF0YRgEIAMoCzIvLmplbm5haGFwaS5hZ2VudC52MS5TZW1hbnRpY01hdGNoLk1ldGFkYXRhRW50cnkSEAoIc2NvcGVfaWQYBSABKAkSNgoIY2hhbm5lbHMYBiADKA4yJC5qZW5uYWhhcGkuYWdlbnQudjEuUmV0cmlldmFsQ2hhbm5lbBIVCg1sZXhpY2FsX3Njb3JlGAcgASgBEhEKCXJyZl9zY29yZRgIIAEoARIUCgxyZXJhbmtfc2NvcmUYCSABKAESGAoQcmVyYW5rX3RydW5jYXRlZBgKIAEoCBIsCgh2YWxpZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKaW52YWxpZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIjQKC0dyYXBoUmVzdWx0EiUKBHJvd3MYASADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkAKCUxvZ1Jlc3VsdBIzCgVzdGVwcxgBIAMoCzIkLmplbm5haGFwaS5hZ2VudC52MS5FeGVjdXRpb25Mb2dTdGVwIjUKC0Z1c2VkUmVzdWx0EiYKBWl0ZW1zGAEgAygLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKFAgoUSW5zcGVjdE1lbW9yeVJlcXVlc3QSHQoRYWdlbnRfaW5zdGFuY2VfaWQYASABKAlCAhgBEjMKB3ZlY3RvcnMYAiABKAsyIi5qZW5uYWhhcGkuYWdlbnQudjEuSW5zcGVjdFZlY3RvcnMSLwoFZ3JhcGgYAyABKAsyIC5qZW5uYWhhcGkuYWdlbnQudjEuSW5zcGVjdEdyYXBoEisKA2xvZxgEIAEoCzIeLmplbm5haGFwaS5hZ2VudC52MS5JbnNwZWN0TG9nEikKBWFzX29mGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIQCghzY29wZV9pZBgGIAEoCSIzCg5JbnNwZWN0VmVjdG9ycxINCgVsaW1pdBgBIAEoBRISCgpwYWdlX3Rva2VuGAIgASgJImgKDEluc3BlY3RHcmFwaBISCgpub2RlX2xpbWl0GAEgASgFEhIKCmVkZ2VfbGltaXQYAiABKAUSFwoPbm9kZV9wYWdlX3Rva2VuGAMgASgJEhcKD2VkZ2VfcGFnZV90b2tlbhgEIAEoCSJaCgpJbnNwZWN0TG9nEg0KBWxpbWl0GAEgASgFEikKBXNpbmNlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpwYWdlX3Rva2VuGAMgASgJIswCChVJbnNwZWN0TWVtb3J5UmVzcG9uc2USOAoHdmVjdG9ycxgBIAEoCzInLmplbm5haGFwaS5hZ2VudC52MS5WZWN0b3JJbnNwZWN0UmVzdWx0EjUKBWdyYXBoGAIgASgLMiYuamVubmFoYXBpLmFnZW50LnYxLkdyYXBoSW5zcGVjdFJlc3VsdBIqCgNsb2cYAyABKAsyHS5qZW5uYWhhcGkuYWdlbnQudjEuTG9nUmVzdWx0EjIKDnJlYWRfdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIYChBuZXh0X2NodW5rX3Rva2VuGAUgASgJEhcKD25leHRfbm9kZV90b2tlbhgGIAEoCRIXCg9uZXh0X2VkZ2VfdG9rZW4YByABKAkSFgoObmV4dF9sb2dfdG9rZW4YCCABKAkiSgoTVmVjdG9ySW5zcGVjdFJlc3VsdBIzCgZjaHVua3MYASADKAsyIy5qZW5uYWhhcGkuYWdlbnQudjEuVmVjdG9yQ2h1bmtJbmZvIu0DCg9WZWN0b3JDaHVua0luZm8SEAoIY2h1bmtfaWQYASABKAkSEwoLcmF3X2NvbnRlbnQYAiABKAkSLgoKdXBkYXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoJdHJ1bmNhdGVkGAQgASgISACIAQESGAoLdG9rZW5fY291bnQYBSABKANIAYgBARJDCghtZXRhZGF0YRgGIAMoCzIxLmplbm5haGFwaS5hZ2VudC52MS5WZWN0b3JDaHVua0luZm8uTWV0YWRhdGFFbnRyeRIsCgh2YWxpZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKaW52YWxpZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLYXNzZXJ0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmV4cGlyZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIMCgpfdHJ1bmNhdGVkQg4KDF90b2tlbl9jb3VudCJwChJHcmFwaEluc3BlY3RSZXN1bHQSLAoFbm9kZXMYASADKAsyHS5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhOb2RlEiwKBWVkZ2VzGAIgAygLMh0uamVubmFoYXBpLmFnZW50LnYxLkdyYXBoRWRnZSKPAQoUU3VwZXJzZWRlRWRnZVJlcXVlc3QSHQoRYWdlbnRfaW5zdGFuY2VfaWQYASABKAlCAhgBEhUKDXByaW9yX2VkZ2VfaWQYAiABKAkSLwoIbmV3X2VkZ2UYAyABKAsyHS5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhFZGdlEhAKCHNjb3BlX2lkGAQgASgJIk0KFVN1cGVyc2VkZUVkZ2VSZXNwb25zZRI0ChBjb21taXRfdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKUAQoVU3VwZXJzZWRlQ2h1bmtSZXF1ZXN0Eh0KEWFnZW50X2luc3RhbmNlX2lkGAEgASgJQgIYARIWCg5wcmlvcl9jaHVua19pZBgCIAEoCRIyCgluZXdfY2h1bmsYAyABKAsyHy5qZW5uYWhhcGkuYWdlbnQudjEuVmVjdG9yQ2h1bmsSEAoIc2NvcGVfaWQYBCABKAkiYQoWU3VwZXJzZWRlQ2h1bmtSZXNwb25zZRI0ChBjb21taXRfdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCgl0cnVuY2F0ZWQYAiABKAgiRwoJVG9vbFRyYWNlEhEKCXRvb2xfdXNlZBgBIAEoCRISCgp0b29sX2lucHV0GAIgASgJEhMKC3Rvb2xfb3V0cHV0GAMgASgJIn0KEENvbnZlcnNhdGlvblR1cm4SKgoEcm9sZRgBIAEoDjIcLmplbm5haGFwaS5hZ2VudC52MS5UdXJuUm9sZRIPCgdjb250ZW50GAIgASgJEiwKBXRvb2xzGAMgAygLMh0uamVubmFoYXBpLmFnZW50LnYxLlRvb2xUcmFjZSKiAQoRRm9ybU1lbW9yeVJlcXVlc3QSEAoIc2NvcGVfaWQYASABKAkSMwoFdHVybnMYAiADKAsyJC5qZW5uYWhhcGkuYWdlbnQudjEuQ29udmVyc2F0aW9uVHVybhIVCg1mb3JtYXRpb25fa2V5GAMgASgJEi8KC29ic2VydmVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKwAgoPRm9ybWVkQ2FuZGlkYXRlEhQKDGNhbmRpZGF0ZV9pZBgBIAEoCRIvCgRraW5kGAIgASgOMiEuamVubmFoYXBpLmFnZW50LnYxLkNhbmRpZGF0ZUtpbmQSDAoEdGV4dBgDIAEoCRIVCg1zb3VyY2VfZW50aXR5GAQgASgJEhkKEXJlbGF0aW9uc2hpcF90eXBlGAUgASgJEhUKDXRhcmdldF9lbnRpdHkYBiABKAkSNAoIZGVjaXNpb24YByABKA4yIi5qZW5uYWhhcGkuYWdlbnQudjEuTWVtb3J5RGVjaXNpb24SEgoKbWF0Y2hlZF9pZBgIIAEoCRIYChByZWplY3Rpb25fcmVhc29uGAkgASgJEhsKE3ByZXNlcnZlc19zdHJ1Y3R1cmUYCiABKAgiOwoPUmVkYWN0aW9uUmVjb3JkEhIKCnR1cm5faW5kZXgYASABKAUSFAoMbWFza2VkX2NvdW50GAIgASgFIlgKE1N1bW1hcml6ZWRTdHJ1Y3R1cmUSEgoKdHVybl9pbmRleBgBIAEoBRITCgtkZXNjcmlwdGlvbhgCIAEoCRIYChBzdW1tYXJpemVkX2NvdW50GAMgASgFIv4DChJGb3JtTWVtb3J5UmVzcG9uc2USNAoQY29tbWl0X3RpbWVzdGFtcBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoSZXhlY3V0aW9uX2xvZ19yb3dzGAIgASgDEhMKC3ZlY3Rvcl9yb3dzGAMgASgDEhcKD2dyYXBoX25vZGVfcm93cxgEIAEoAxIXCg9ncmFwaF9lZGdlX3Jvd3MYBSABKAMSGgoSZWRnZV9zdXBlcnNlc3Npb25zGAYgASgDEhsKE2NodW5rX3N1cGVyc2Vzc2lvbnMYByABKAMSNwoKY2FuZGlkYXRlcxgIIAMoCzIjLmplbm5haGFwaS5hZ2VudC52MS5Gb3JtZWRDYW5kaWRhdGUSNwoKcmVkYWN0aW9ucxgJIAMoCzIjLmplbm5haGFwaS5hZ2VudC52MS5SZWRhY3Rpb25SZWNvcmQSFQoNY2FuZGlkYXRlX2NhcBgKIAEoBRIaChJjYW5kaWRhdGVzX2Ryb3BwZWQYCyABKAUSEAoIc2NvcGVfaWQYDCABKAkSRgoVc3VtbWFyaXplZF9zdHJ1Y3R1cmVzGA0gAygLMicuamVubmFoYXBpLmFnZW50LnYxLlN1bW1hcml6ZWRTdHJ1Y3R1cmUSFwoPZm9ybWF0aW9uX3VuaXRzGA4gASgDIjAKC0VudGl0eUNsYXNzEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkiPwoRUmVsYXRpb25TaWduYXR1cmUSFAoMc291cmNlX2NsYXNzGAEgASgJEhQKDHRhcmdldF9jbGFzcxgCIAEoCSJsCgxSZWxhdGlvblR5cGUSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRI5CgpzaWduYXR1cmVzGAMgAygLMiUuamVubmFoYXBpLmFnZW50LnYxLlJlbGF0aW9uU2lnbmF0dXJlIoUBChBNZW1vcnlWb2NhYnVsYXJ5EjcKDmVudGl0eV9jbGFzc2VzGAEgAygLMh8uamVubmFoYXBpLmFnZW50LnYxLkVudGl0eUNsYXNzEjgKDnJlbGF0aW9uX3R5cGVzGAIgAygLMiAuamVubmFoYXBpLmFnZW50LnYxLlJlbGF0aW9uVHlwZSJsCh5EZWNsYXJlTWVtb3J5Vm9jYWJ1bGFyeVJlcXVlc3QSEAoIc2NvcGVfaWQYASABKAkSOAoKdm9jYWJ1bGFyeRgCIAEoCzIkLmplbm5haGFwaS5hZ2VudC52MS5NZW1vcnlWb2NhYnVsYXJ5IlsKH0RlY2xhcmVNZW1vcnlWb2NhYnVsYXJ5UmVzcG9uc2USOAoKdm9jYWJ1bGFyeRgBIAEoCzIkLmplbm5haGFwaS5hZ2VudC52MS5NZW1vcnlWb2NhYnVsYXJ5IjEKHVJlbW92ZU1lbW9yeVZvY2FidWxhcnlSZXF1ZXN0EhAKCHNjb3BlX2lkGAEgASgJIiAKHlJlbW92ZU1lbW9yeVZvY2FidWxhcnlSZXNwb25zZSIuChpHZXRNZW1vcnlWb2NhYnVsYXJ5UmVxdWVzdBIQCghzY29wZV9pZBgBIAEoCSKQAQobR2V0TWVtb3J5Vm9jYWJ1bGFyeVJlc3BvbnNlEjkKC2RlY2xhcmF0aW9uGAEgASgLMiQuamVubmFoYXBpLmFnZW50LnYxLk1lbW9yeVZvY2FidWxhcnkSNgoIcmVzb2x2ZWQYAiABKAsyJC5qZW5uYWhhcGkuYWdlbnQudjEuTWVtb3J5Vm9jYWJ1bGFyeSKTAQoaQmVkcm9ja0Zvcm1hdGlvbk1vZGVsU2V0dXASFQoNcHJpbmNpcGFsX2FybhgBIAEoCRITCgtleHRlcm5hbF9pZBgCIAEoCRIUCgxzZXNzaW9uX25hbWUYAyABKAkSGQoRcm9sZV90ZW1wbGF0ZV91cmwYBCABKAkSGAoQbGF1bmNoX3N0YWNrX3VybBgFIAEoCSI6ChlWZXJ0ZXhGb3JtYXRpb25Nb2RlbFNldHVwEh0KFXNlcnZpY2VfYWNjb3VudF9lbWFpbBgBIAEoCSJIChVCZWRyb2NrRm9ybWF0aW9uTW9kZWwSEAoIcm9sZV9hcm4YASABKAkSDgoGcmVnaW9uGAIgASgJEg0KBW1vZGVsGAMgASgJIkgKFFZlcnRleEZvcm1hdGlvbk1vZGVsEg8KB3Byb2plY3QYASABKAkSEAoIbG9jYXRpb24YAiABKAkSDQoFbW9kZWwYAyABKAkiZgoXQW50aHJvcGljRm9ybWF0aW9uTW9kZWwSDQoFbW9kZWwYASABKAkSFQoNaW5mZXJlbmNlX2dlbxgCIAEoCRIPCgdhcGlfa2V5GAMgASgJEhQKDGFwaV9rZXlfaGludBgEIAEoCSL8AgoORm9ybWF0aW9uTW9kZWwSPAoIcHJvdmlkZXIYASABKA4yKi5qZW5uYWhhcGkuYWdlbnQudjEuRm9ybWF0aW9uTW9kZWxQcm92aWRlchI6CgdiZWRyb2NrGAIgASgLMikuamVubmFoYXBpLmFnZW50LnYxLkJlZHJvY2tGb3JtYXRpb25Nb2RlbBI4CgZ2ZXJ0ZXgYAyABKAsyKC5qZW5uYWhhcGkuYWdlbnQudjEuVmVydGV4Rm9ybWF0aW9uTW9kZWwSPgoJYW50aHJvcGljGAggASgLMisuamVubmFoYXBpLmFnZW50LnYxLkFudGhyb3BpY0Zvcm1hdGlvbk1vZGVsEhYKDnRoaW5raW5nX2xldmVsGAQgASgJEhkKEW1heF9vdXRwdXRfdG9rZW5zGAUgASgFEi8KC3VwZGF0ZV90aW1lGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgp1cGRhdGVkX2J5GAcgASgJIlwKHFByZXBhcmVGb3JtYXRpb25Nb2RlbFJlcXVlc3QSPAoIcHJvdmlkZXIYASABKA4yKi5qZW5uYWhhcGkuYWdlbnQudjEuRm9ybWF0aW9uTW9kZWxQcm92aWRlciLdAQodUHJlcGFyZUZvcm1hdGlvbk1vZGVsUmVzcG9uc2USPAoIcHJvdmlkZXIYASABKA4yKi5qZW5uYWhhcGkuYWdlbnQudjEuRm9ybWF0aW9uTW9kZWxQcm92aWRlchI/CgdiZWRyb2NrGAIgASgLMi4uamVubmFoYXBpLmFnZW50LnYxLkJlZHJvY2tGb3JtYXRpb25Nb2RlbFNldHVwEj0KBnZlcnRleBgDIAEoCzItLmplbm5haGFwaS5hZ2VudC52MS5WZXJ0ZXhGb3JtYXRpb25Nb2RlbFNldHVwIk0KGFNldEZvcm1hdGlvbk1vZGVsUmVxdWVzdBIxCgVtb2RlbBgBIAEoCzIiLmplbm5haGFwaS5hZ2VudC52MS5Gb3JtYXRpb25Nb2RlbCJOChlTZXRGb3JtYXRpb25Nb2RlbFJlc3BvbnNlEjEKBW1vZGVsGAEgASgLMiIuamVubmFoYXBpLmFnZW50LnYxLkZvcm1hdGlvbk1vZGVsIhoKGEdldEZvcm1hdGlvbk1vZGVsUmVxdWVzdCLaAQoZR2V0Rm9ybWF0aW9uTW9kZWxSZXNwb25zZRIxCgVtb2RlbBgBIAEoCzIiLmplbm5haGFwaS5hZ2VudC52MS5Gb3JtYXRpb25Nb2RlbBJFCg1iZWRyb2NrX3NldHVwGAIgASgLMi4uamVubmFoYXBpLmFnZW50LnYxLkJlZHJvY2tGb3JtYXRpb25Nb2RlbFNldHVwEkMKDHZlcnRleF9zZXR1cBgDIAEoCzItLmplbm5haGFwaS5hZ2VudC52MS5WZXJ0ZXhGb3JtYXRpb25Nb2RlbFNldHVwIh0KG1JlbW92ZUZvcm1hdGlvbk1vZGVsUmVxdWVzdCIvChxSZW1vdmVGb3JtYXRpb25Nb2RlbFJlc3BvbnNlEg8KB3JlbW92ZWQYASABKAgiHAoaQ2hlY2tGb3JtYXRpb25Nb2RlbFJlcXVlc3QiewobQ2hlY2tGb3JtYXRpb25Nb2RlbFJlc3BvbnNlEgoKAm9rGAEgASgIEgwKBHN0ZXAYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRIxCgVtb2RlbBgEIAEoCzIiLmplbm5haGFwaS5hZ2VudC52MS5Gb3JtYXRpb25Nb2RlbCp4Cg9GdXNpb25EaXJlY3Rpb24SIAocRlVTSU9OX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEiEKHUZVU0lPTl9ESVJFQ1RJT05fVkVDVE9SX0ZJUlNUEAESIAocRlVTSU9OX0RJUkVDVElPTl9HUkFQSF9GSVJTVBACKmoKDVJldHJpZXZhbE1vZGUSHgoaUkVUUklFVkFMX01PREVfVU5TUEVDSUZJRUQQABIeChpSRVRSSUVWQUxfTU9ERV9WRUNUT1JfT05MWRABEhkKFVJFVFJJRVZBTF9NT0RFX0hZQlJJRBACKnIKEFJldHJpZXZhbENoYW5uZWwSIQodUkVUUklFVkFMX0NIQU5ORUxfVU5TUEVDSUZJRUQQABIcChhSRVRSSUVWQUxfQ0hBTk5FTF9WRUNUT1IQARIdChlSRVRSSUVWQUxfQ0hBTk5FTF9MRVhJQ0FMEAIqhgEKDkdyYXBoRGlyZWN0aW9uEh8KG0dSQVBIX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEhwKGEdSQVBIX0RJUkVDVElPTl9PVVRHT0lORxABEhwKGEdSQVBIX0RJUkVDVElPTl9JTkNPTUlORxACEhcKE0dSQVBIX0RJUkVDVElPTl9BTlkQAyp8CghUdXJuUm9sZRIZChVUVVJOX1JPTEVfVU5TUEVDSUZJRUQQABISCg5UVVJOX1JPTEVfVVNFUhABEhcKE1RVUk5fUk9MRV9BU1NJU1RBTlQQAhIUChBUVVJOX1JPTEVfU1lTVEVNEAMSEgoOVFVSTl9ST0xFX1RPT0wQBCppCg1DYW5kaWRhdGVLaW5kEh4KGkNBTkRJREFURV9LSU5EX1VOU1BFQ0lGSUVEEAASFwoTQ0FORElEQVRFX0tJTkRfRkFDVBABEh8KG0NBTkRJREFURV9LSU5EX1JFTEFUSU9OU0hJUBACKqABCg5NZW1vcnlEZWNpc2lvbhIfChtNRU1PUllfREVDSVNJT05fVU5TUEVDSUZJRUQQABIXChNNRU1PUllfREVDSVNJT05fTkVXEAESGwoXTUVNT1JZX0RFQ0lTSU9OX1JFVklTRUQQAhIZChVNRU1PUllfREVDSVNJT05fS05PV04QAxIcChhNRU1PUllfREVDSVNJT05fUkVKRUNURUQQBCq1AQoWRm9ybWF0aW9uTW9kZWxQcm92aWRlchIoCiRGT1JNQVRJT05fTU9ERUxfUFJPVklERVJfVU5TUEVDSUZJRUQQABIkCiBGT1JNQVRJT05fTU9ERUxfUFJPVklERVJfQkVEUk9DSxABEiMKH0ZPUk1BVElPTl9NT0RFTF9QUk9WSURFUl9WRVJURVgQAhImCiJGT1JNQVRJT05fTU9ERUxfUFJPVklERVJfQU5USFJPUElDEAMy4hIKDU1lbW9yeVNlcnZpY2USuwEKDENvbW1pdE1lbW9yeRInLmplbm5haGFwaS5hZ2VudC52MS5Db21taXRNZW1vcnlSZXF1ZXN0GiguamVubmFoYXBpLmFnZW50LnYxLkNvbW1pdE1lbW9yeVJlc3BvbnNlIliC0+STAlI6ASpaKDoBKiIjL3YxL3Njb3Blcy97c2NvcGVfaWR9L21lbW9yeTpjb21taXQiIy92MS9hZ2VudHMve3Njb3BlX2lkfS9tZW1vcnk6Y29tbWl0ErYBCgtRdWVyeU1lbW9yeRImLmplbm5haGFwaS5hZ2VudC52MS5RdWVyeU1lbW9yeVJlcXVlc3QaJy5qZW5uYWhhcGkuYWdlbnQudjEuUXVlcnlNZW1vcnlSZXNwb25zZSJWgtPkkwJQOgEqWic6ASoiIi92MS9zY29wZXMve3Njb3BlX2lkfS9tZW1vcnk6cXVlcnkiIi92MS9hZ2VudHMve3Njb3BlX2lkfS9tZW1vcnk6cXVlcnkSwAEKDUluc3BlY3RNZW1vcnkSKC5qZW5uYWhhcGkuYWdlbnQudjEuSW5zcGVjdE1lbW9yeVJlcXVlc3QaKS5qZW5uYWhhcGkuYWdlbnQudjEuSW5zcGVjdE1lbW9yeVJlc3BvbnNlIlqC0+STAlQ6ASpaKToBKiIkL3YxL3Njb3Blcy97c2NvcGVfaWR9L21lbW9yeTppbnNwZWN0IiQvdjEvYWdlbnRzL3tzY29wZV9pZH0vbWVtb3J5Omluc3BlY3QSzgEKDVN1cGVyc2VkZUVkZ2USKC5qZW5uYWhhcGkuYWdlbnQudjEuU3VwZXJzZWRlRWRnZVJlcXVlc3QaKS5qZW5uYWhhcGkuYWdlbnQudjEuU3VwZXJzZWRlRWRnZVJlc3BvbnNlImiC0+STAmI6ASpaMDoBKiIrL3YxL3Njb3Blcy97c2NvcGVfaWR9L2dyYXBoL2VkZ2VzOnN1cGVyc2VkZSIrL3YxL2FnZW50cy97c2NvcGVfaWR9L2dyYXBoL2VkZ2VzOnN1cGVyc2VkZRLXAQoOU3VwZXJzZWRlQ2h1bmsSKS5qZW5uYWhhcGkuYWdlbnQudjEuU3VwZXJzZWRlQ2h1bmtSZXF1ZXN0GiouamVubmFoYXBpLmFnZW50LnYxLlN1cGVyc2VkZUNodW5rUmVzcG9uc2UiboLT5JMCaDoBKlozOgEqIi4vdjEvc2NvcGVzL3tzY29wZV9pZH0vdmVjdG9ycy9jaHVua3M6c3VwZXJzZWRlIi4vdjEvYWdlbnRzL3tzY29wZV9pZH0vdmVjdG9ycy9jaHVua3M6c3VwZXJzZWRlEokBCgpGb3JtTWVtb3J5EiUuamVubmFoYXBpLmFnZW50LnYxLkZvcm1NZW1vcnlSZXF1ZXN0GiYuamVubmFoYXBpLmFnZW50LnYxLkZvcm1NZW1vcnlSZXNwb25zZSIsgtPkkwImOgEqIiEvdjEvYWdlbnRzL3tzY29wZV9pZH0vbWVtb3J5OmZvcm0SpAEKF0RlY2xhcmVNZW1vcnlWb2NhYnVsYXJ5EjIuamVubmFoYXBpLmFnZW50LnYxLkRlY2xhcmVNZW1vcnlWb2NhYnVsYXJ5UmVxdWVzdBozLmplbm5haGFwaS5hZ2VudC52MS5EZWNsYXJlTWVtb3J5Vm9jYWJ1bGFyeVJlc3BvbnNlIiCC0+STAho6ASoaFS92MS9tZW1vcnkvdm9jYWJ1bGFyeRKeAQoWUmVtb3ZlTWVtb3J5Vm9jYWJ1bGFyeRIxLmplbm5haGFwaS5hZ2VudC52MS5SZW1vdmVNZW1vcnlWb2NhYnVsYXJ5UmVxdWVzdBoyLmplbm5haGFwaS5hZ2VudC52MS5SZW1vdmVNZW1vcnlWb2NhYnVsYXJ5UmVzcG9uc2UiHYLT5JMCFyoVL3YxL21lbW9yeS92b2NhYnVsYXJ5EpUBChNHZXRNZW1vcnlWb2NhYnVsYXJ5Ei4uamVubmFoYXBpLmFnZW50LnYxLkdldE1lbW9yeVZvY2FidWxhcnlSZXF1ZXN0Gi8uamVubmFoYXBpLmFnZW50LnYxLkdldE1lbW9yeVZvY2FidWxhcnlSZXNwb25zZSIdgtPkkwIXEhUvdjEvbWVtb3J5L3ZvY2FidWxhcnkSpAEKFVByZXBhcmVGb3JtYXRpb25Nb2RlbBIwLmplbm5haGFwaS5hZ2VudC52MS5QcmVwYXJlRm9ybWF0aW9uTW9kZWxSZXF1ZXN0GjEuamVubmFoYXBpLmFnZW50LnYxLlByZXBhcmVGb3JtYXRpb25Nb2RlbFJlc3BvbnNlIiaC0+STAiA6ASoiGy92MS9mb3JtYXRpb24tbW9kZWw6cHJlcGFyZRKQAQoRU2V0Rm9ybWF0aW9uTW9kZWwSLC5qZW5uYWhhcGkuYWdlbnQudjEuU2V0Rm9ybWF0aW9uTW9kZWxSZXF1ZXN0Gi0uamVubmFoYXBpLmFnZW50LnYxLlNldEZvcm1hdGlvbk1vZGVsUmVzcG9uc2UiHoLT5JMCGDoBKhoTL3YxL2Zvcm1hdGlvbi1tb2RlbBKNAQoRR2V0Rm9ybWF0aW9uTW9kZWwSLC5qZW5uYWhhcGkuYWdlbnQudjEuR2V0Rm9ybWF0aW9uTW9kZWxSZXF1ZXN0Gi0uamVubmFoYXBpLmFnZW50LnYxLkdldEZvcm1hdGlvbk1vZGVsUmVzcG9uc2UiG4LT5JMCFRITL3YxL2Zvcm1hdGlvbi1tb2RlbBKWAQoUUmVtb3ZlRm9ybWF0aW9uTW9kZWwSLy5qZW5uYWhhcGkuYWdlbnQudjEuUmVtb3ZlRm9ybWF0aW9uTW9kZWxSZXF1ZXN0GjAuamVubmFoYXBpLmFnZW50LnYxLlJlbW92ZUZvcm1hdGlvbk1vZGVsUmVzcG9uc2UiG4LT5JMCFSoTL3YxL2Zvcm1hdGlvbi1tb2RlbBKcAQoTQ2hlY2tGb3JtYXRpb25Nb2RlbBIuLmplbm5haGFwaS5hZ2VudC52MS5DaGVja0Zvcm1hdGlvbk1vZGVsUmVxdWVzdBovLmplbm5haGFwaS5hZ2VudC52MS5DaGVja0Zvcm1hdGlvbk1vZGVsUmVzcG9uc2UiJILT5JMCHjoBKiIZL3YxL2Zvcm1hdGlvbi1tb2RlbDpjaGVja0IpWidnaXRodWIuY29tL2FscGhhdXNsYWJzL2plbm5haC1hcGkvYWdlbnRiBnByb3RvMw", [file_google_api_annotations, file_google_protobuf_struct, file_google_protobuf_timestamp]);
10
+ export const file_jennah_agent_v1_memory = /*@__PURE__*/ fileDesc("ChxqZW5uYWgvYWdlbnQvdjEvbWVtb3J5LnByb3RvEhJqZW5uYWhhcGkuYWdlbnQudjEizAIKE0NvbW1pdE1lbW9yeVJlcXVlc3QSHQoRYWdlbnRfaW5zdGFuY2VfaWQYASABKAlCAhgBEjEKA2xvZxgCIAEoCzIkLmplbm5haGFwaS5hZ2VudC52MS5FeGVjdXRpb25Mb2dTdGVwEjAKB3ZlY3RvcnMYAyADKAsyHy5qZW5uYWhhcGkuYWdlbnQudjEuVmVjdG9yQ2h1bmsSLQoFZ3JhcGgYBCABKAsyHi5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhXcml0ZRIcChRyZWplY3Rfb25fdHJ1bmNhdGlvbhgFIAEoCBIUCgx0YXJnZXRfc2NvcGUYBiABKAkSEAoIc2NvcGVfaWQYByABKAkSPAoNc3VwZXJzZXNzaW9ucxgIIAEoCzIlLmplbm5haGFwaS5hZ2VudC52MS5TdXBlcnNlc3Npb25Xcml0ZSKwAgoQRXhlY3V0aW9uTG9nU3RlcBIPCgdzdGVwX2lkGAEgASgJEhcKD3Rob3VnaHRfcHJvY2VzcxgCIAEoCRIRCgl0b29sX3VzZWQYAyABKAkSEgoKdG9vbF9pbnB1dBgEIAEoCRITCgt0b29sX291dHB1dBgFIAEoCRItCgl0aW1lc3RhbXAYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCHNjb3BlX2lkGAcgASgJEkQKCG1ldGFkYXRhGAggAygLMjIuamVubmFoYXBpLmFnZW50LnYxLkV4ZWN1dGlvbkxvZ1N0ZXAuTWV0YWRhdGFFbnRyeRovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEilwIKC1ZlY3RvckNodW5rEhAKCGNodW5rX2lkGAEgASgJEhMKC3Jhd19jb250ZW50GAIgASgJEhEKCWVtYmVkZGluZxgDIAMoAhI/CghtZXRhZGF0YRgEIAMoCzItLmplbm5haGFwaS5hZ2VudC52MS5WZWN0b3JDaHVuay5NZXRhZGF0YUVudHJ5EiwKCHZhbGlkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgppbnZhbGlkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiaAoKR3JhcGhXcml0ZRIsCgVub2RlcxgBIAMoCzIdLmplbm5haGFwaS5hZ2VudC52MS5HcmFwaE5vZGUSLAoFZWRnZXMYAiADKAsyHS5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhFZGdlIn8KEVN1cGVyc2Vzc2lvbldyaXRlEjMKBWVkZ2VzGAEgAygLMiQuamVubmFoYXBpLmFnZW50LnYxLkVkZ2VTdXBlcnNlc3Npb24SNQoGY2h1bmtzGAIgAygLMiUuamVubmFoYXBpLmFnZW50LnYxLkNodW5rU3VwZXJzZXNzaW9uIloKEEVkZ2VTdXBlcnNlc3Npb24SFQoNcHJpb3JfZWRnZV9pZBgBIAEoCRIvCghuZXdfZWRnZRgCIAEoCzIdLmplbm5haGFwaS5hZ2VudC52MS5HcmFwaEVkZ2UiXwoRQ2h1bmtTdXBlcnNlc3Npb24SFgoOcHJpb3JfY2h1bmtfaWQYASABKAkSMgoJbmV3X2NodW5rGAIgASgLMh8uamVubmFoYXBpLmFnZW50LnYxLlZlY3RvckNodW5rIosCCglHcmFwaE5vZGUSDwoHbm9kZV9pZBgBIAEoCRINCgVsYWJlbBgCIAEoCRIrCgpwcm9wZXJ0aWVzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgp1cGRhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI9CghtZXRhZGF0YRgFIAMoCzIrLmplbm5haGFwaS5hZ2VudC52MS5HcmFwaE5vZGUuTWV0YWRhdGFFbnRyeRIRCglub2RlX3R5cGUYBiABKAkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpIDCglHcmFwaEVkZ2USDwoHZWRnZV9pZBgBIAEoCRIWCg5zb3VyY2Vfbm9kZV9pZBgCIAEoCRIWCg50YXJnZXRfbm9kZV9pZBgDIAEoCRIZChFyZWxhdGlvbnNoaXBfdHlwZRgEIAEoCRIrCgpwcm9wZXJ0aWVzGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCgh2YWxpZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKaW52YWxpZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPQoIbWV0YWRhdGEYCSADKAsyKy5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhFZGdlLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIpcCChRDb21taXRNZW1vcnlSZXNwb25zZRI0ChBjb21taXRfdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIaChJleGVjdXRpb25fbG9nX3Jvd3MYAiABKAMSEwoLdmVjdG9yX3Jvd3MYAyABKAMSFwoPZ3JhcGhfbm9kZV9yb3dzGAQgASgDEhcKD2dyYXBoX2VkZ2Vfcm93cxgFIAEoAxIbChN0cnVuY2F0ZWRfY2h1bmtfaWRzGAYgAygJEhAKCHNjb3BlX2lkGAcgASgJEhoKEmVkZ2Vfc3VwZXJzZXNzaW9ucxgIIAEoAxIbChNjaHVua19zdXBlcnNlc3Npb25zGAkgASgDIucCChJRdWVyeU1lbW9yeVJlcXVlc3QSHQoRYWdlbnRfaW5zdGFuY2VfaWQYASABKAlCAhgBEjMKCHNlbWFudGljGAIgASgLMiEuamVubmFoYXBpLmFnZW50LnYxLlNlbWFudGljUXVlcnkSLQoFZ3JhcGgYAyABKAsyHi5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhRdWVyeRIpCgNsb2cYBCABKAsyHC5qZW5uYWhhcGkuYWdlbnQudjEuTG9nUXVlcnkSDAoEbGluaxgFIAEoCBI9ChBmdXNpb25fZGlyZWN0aW9uGAYgASgOMiMuamVubmFoYXBpLmFnZW50LnYxLkZ1c2lvbkRpcmVjdGlvbhIpCgVhc19vZhgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGQoRYWRkaXRpb25hbF9zY29wZXMYCCADKAkSEAoIc2NvcGVfaWQYCSABKAkipAIKDVNlbWFudGljUXVlcnkSEQoJZW1iZWRkaW5nGAEgAygCEhIKCnF1ZXJ5X3RleHQYAiABKAkSDQoFbGltaXQYAyABKAUSMwoHZmlsdGVycxgEIAMoCzIiLmplbm5haGFwaS5hZ2VudC52MS5NZXRhZGF0YUZpbHRlchIvCgthc19vZl92YWxpZBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLAoIYXNfb2ZfdHgYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjkKDnJldHJpZXZhbF9tb2RlGAcgASgOMiEuamVubmFoYXBpLmFnZW50LnYxLlJldHJpZXZhbE1vZGUSDgoGcmVyYW5rGAggASgIIp8CCg5NZXRhZGF0YUZpbHRlchILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAkSPQoIb3BlcmF0b3IYAyABKA4yKy5qZW5uYWhhcGkuYWdlbnQudjEuTWV0YWRhdGFGaWx0ZXIuT3BlcmF0b3IisQEKCE9wZXJhdG9yEhgKFE9QRVJBVE9SX1VOU1BFQ0lGSUVEEAASEwoPT1BFUkFUT1JfRVFVQUxTEAESFgoST1BFUkFUT1JfTEVTU19USEFOEAISHwobT1BFUkFUT1JfTEVTU19USEFOX09SX0VRVUFMEAMSGQoVT1BFUkFUT1JfR1JFQVRFUl9USEFOEAQSIgoeT1BFUkFUT1JfR1JFQVRFUl9USEFOX09SX0VRVUFMEAUi2wEKCkdyYXBoUXVlcnkSMQoFc3RhcnQYASABKAsyIi5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhOb2RlTWF0Y2gSLAoFc3RlcHMYAiADKAsyHS5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhTdGVwEg0KBWxpbWl0GAMgASgFEi8KC2FzX29mX3ZhbGlkGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghhc19vZl90eBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiigEKDkdyYXBoTm9kZU1hdGNoEg0KBWxhYmVsGAEgASgJEjMKB2ZpbHRlcnMYAiADKAsyIi5qZW5uYWhhcGkuYWdlbnQudjEuUHJvcGVydHlGaWx0ZXISNAoIbWV0YWRhdGEYAyADKAsyIi5qZW5uYWhhcGkuYWdlbnQudjEuTWV0YWRhdGFGaWx0ZXIixQEKCUdyYXBoU3RlcBIZChFyZWxhdGlvbnNoaXBfdHlwZRgBIAEoCRI1CglkaXJlY3Rpb24YAiABKA4yIi5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhEaXJlY3Rpb24SMAoEbm9kZRgDIAEoCzIiLmplbm5haGFwaS5hZ2VudC52MS5HcmFwaE5vZGVNYXRjaBI0CghtZXRhZGF0YRgEIAMoCzIiLmplbm5haGFwaS5hZ2VudC52MS5NZXRhZGF0YUZpbHRlciJECg5Qcm9wZXJ0eUZpbHRlchILCgNrZXkYASABKAkSJQoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUiegoITG9nUXVlcnkSDQoFbGltaXQYASABKAUSKQoFc2luY2UYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjQKCG1ldGFkYXRhGAMgAygLMiIuamVubmFoYXBpLmFnZW50LnYxLk1ldGFkYXRhRmlsdGVyIosCChNRdWVyeU1lbW9yeVJlc3BvbnNlEjQKCHNlbWFudGljGAEgASgLMiIuamVubmFoYXBpLmFnZW50LnYxLlNlbWFudGljUmVzdWx0Ei4KBWdyYXBoGAIgASgLMh8uamVubmFoYXBpLmFnZW50LnYxLkdyYXBoUmVzdWx0EioKA2xvZxgDIAEoCzIdLmplbm5haGFwaS5hZ2VudC52MS5Mb2dSZXN1bHQSLgoFZnVzZWQYBCABKAsyHy5qZW5uYWhhcGkuYWdlbnQudjEuRnVzZWRSZXN1bHQSMgoOcmVhZF90aW1lc3RhbXAYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIkQKDlNlbWFudGljUmVzdWx0EjIKB21hdGNoZXMYASADKAsyIS5qZW5uYWhhcGkuYWdlbnQudjEuU2VtYW50aWNNYXRjaCK+AwoNU2VtYW50aWNNYXRjaBIQCghjaHVua19pZBgBIAEoCRITCgtyYXdfY29udGVudBgCIAEoCRIQCghkaXN0YW5jZRgDIAEoARJBCghtZXRhZGF0YRgEIAMoCzIvLmplbm5haGFwaS5hZ2VudC52MS5TZW1hbnRpY01hdGNoLk1ldGFkYXRhRW50cnkSEAoIc2NvcGVfaWQYBSABKAkSNgoIY2hhbm5lbHMYBiADKA4yJC5qZW5uYWhhcGkuYWdlbnQudjEuUmV0cmlldmFsQ2hhbm5lbBIVCg1sZXhpY2FsX3Njb3JlGAcgASgBEhEKCXJyZl9zY29yZRgIIAEoARIUCgxyZXJhbmtfc2NvcmUYCSABKAESGAoQcmVyYW5rX3RydW5jYXRlZBgKIAEoCBIsCgh2YWxpZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKaW52YWxpZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIjQKC0dyYXBoUmVzdWx0EiUKBHJvd3MYASADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IkAKCUxvZ1Jlc3VsdBIzCgVzdGVwcxgBIAMoCzIkLmplbm5haGFwaS5hZ2VudC52MS5FeGVjdXRpb25Mb2dTdGVwIjUKC0Z1c2VkUmVzdWx0EiYKBWl0ZW1zGAEgAygLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKFAgoUSW5zcGVjdE1lbW9yeVJlcXVlc3QSHQoRYWdlbnRfaW5zdGFuY2VfaWQYASABKAlCAhgBEjMKB3ZlY3RvcnMYAiABKAsyIi5qZW5uYWhhcGkuYWdlbnQudjEuSW5zcGVjdFZlY3RvcnMSLwoFZ3JhcGgYAyABKAsyIC5qZW5uYWhhcGkuYWdlbnQudjEuSW5zcGVjdEdyYXBoEisKA2xvZxgEIAEoCzIeLmplbm5haGFwaS5hZ2VudC52MS5JbnNwZWN0TG9nEikKBWFzX29mGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIQCghzY29wZV9pZBgGIAEoCSIzCg5JbnNwZWN0VmVjdG9ycxINCgVsaW1pdBgBIAEoBRISCgpwYWdlX3Rva2VuGAIgASgJImgKDEluc3BlY3RHcmFwaBISCgpub2RlX2xpbWl0GAEgASgFEhIKCmVkZ2VfbGltaXQYAiABKAUSFwoPbm9kZV9wYWdlX3Rva2VuGAMgASgJEhcKD2VkZ2VfcGFnZV90b2tlbhgEIAEoCSJaCgpJbnNwZWN0TG9nEg0KBWxpbWl0GAEgASgFEikKBXNpbmNlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgpwYWdlX3Rva2VuGAMgASgJIswCChVJbnNwZWN0TWVtb3J5UmVzcG9uc2USOAoHdmVjdG9ycxgBIAEoCzInLmplbm5haGFwaS5hZ2VudC52MS5WZWN0b3JJbnNwZWN0UmVzdWx0EjUKBWdyYXBoGAIgASgLMiYuamVubmFoYXBpLmFnZW50LnYxLkdyYXBoSW5zcGVjdFJlc3VsdBIqCgNsb2cYAyABKAsyHS5qZW5uYWhhcGkuYWdlbnQudjEuTG9nUmVzdWx0EjIKDnJlYWRfdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIYChBuZXh0X2NodW5rX3Rva2VuGAUgASgJEhcKD25leHRfbm9kZV90b2tlbhgGIAEoCRIXCg9uZXh0X2VkZ2VfdG9rZW4YByABKAkSFgoObmV4dF9sb2dfdG9rZW4YCCABKAkiSgoTVmVjdG9ySW5zcGVjdFJlc3VsdBIzCgZjaHVua3MYASADKAsyIy5qZW5uYWhhcGkuYWdlbnQudjEuVmVjdG9yQ2h1bmtJbmZvIu0DCg9WZWN0b3JDaHVua0luZm8SEAoIY2h1bmtfaWQYASABKAkSEwoLcmF3X2NvbnRlbnQYAiABKAkSLgoKdXBkYXRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoJdHJ1bmNhdGVkGAQgASgISACIAQESGAoLdG9rZW5fY291bnQYBSABKANIAYgBARJDCghtZXRhZGF0YRgGIAMoCzIxLmplbm5haGFwaS5hZ2VudC52MS5WZWN0b3JDaHVua0luZm8uTWV0YWRhdGFFbnRyeRIsCgh2YWxpZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKaW52YWxpZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLYXNzZXJ0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmV4cGlyZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIMCgpfdHJ1bmNhdGVkQg4KDF90b2tlbl9jb3VudCJwChJHcmFwaEluc3BlY3RSZXN1bHQSLAoFbm9kZXMYASADKAsyHS5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhOb2RlEiwKBWVkZ2VzGAIgAygLMh0uamVubmFoYXBpLmFnZW50LnYxLkdyYXBoRWRnZSKPAQoUU3VwZXJzZWRlRWRnZVJlcXVlc3QSHQoRYWdlbnRfaW5zdGFuY2VfaWQYASABKAlCAhgBEhUKDXByaW9yX2VkZ2VfaWQYAiABKAkSLwoIbmV3X2VkZ2UYAyABKAsyHS5qZW5uYWhhcGkuYWdlbnQudjEuR3JhcGhFZGdlEhAKCHNjb3BlX2lkGAQgASgJIk0KFVN1cGVyc2VkZUVkZ2VSZXNwb25zZRI0ChBjb21taXRfdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKUAQoVU3VwZXJzZWRlQ2h1bmtSZXF1ZXN0Eh0KEWFnZW50X2luc3RhbmNlX2lkGAEgASgJQgIYARIWCg5wcmlvcl9jaHVua19pZBgCIAEoCRIyCgluZXdfY2h1bmsYAyABKAsyHy5qZW5uYWhhcGkuYWdlbnQudjEuVmVjdG9yQ2h1bmsSEAoIc2NvcGVfaWQYBCABKAkiYQoWU3VwZXJzZWRlQ2h1bmtSZXNwb25zZRI0ChBjb21taXRfdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIRCgl0cnVuY2F0ZWQYAiABKAgiRwoJVG9vbFRyYWNlEhEKCXRvb2xfdXNlZBgBIAEoCRISCgp0b29sX2lucHV0GAIgASgJEhMKC3Rvb2xfb3V0cHV0GAMgASgJIn0KEENvbnZlcnNhdGlvblR1cm4SKgoEcm9sZRgBIAEoDjIcLmplbm5haGFwaS5hZ2VudC52MS5UdXJuUm9sZRIPCgdjb250ZW50GAIgASgJEiwKBXRvb2xzGAMgAygLMh0uamVubmFoYXBpLmFnZW50LnYxLlRvb2xUcmFjZSKiAQoRRm9ybU1lbW9yeVJlcXVlc3QSEAoIc2NvcGVfaWQYASABKAkSMwoFdHVybnMYAiADKAsyJC5qZW5uYWhhcGkuYWdlbnQudjEuQ29udmVyc2F0aW9uVHVybhIVCg1mb3JtYXRpb25fa2V5GAMgASgJEi8KC29ic2VydmVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKwAgoPRm9ybWVkQ2FuZGlkYXRlEhQKDGNhbmRpZGF0ZV9pZBgBIAEoCRIvCgRraW5kGAIgASgOMiEuamVubmFoYXBpLmFnZW50LnYxLkNhbmRpZGF0ZUtpbmQSDAoEdGV4dBgDIAEoCRIVCg1zb3VyY2VfZW50aXR5GAQgASgJEhkKEXJlbGF0aW9uc2hpcF90eXBlGAUgASgJEhUKDXRhcmdldF9lbnRpdHkYBiABKAkSNAoIZGVjaXNpb24YByABKA4yIi5qZW5uYWhhcGkuYWdlbnQudjEuTWVtb3J5RGVjaXNpb24SEgoKbWF0Y2hlZF9pZBgIIAEoCRIYChByZWplY3Rpb25fcmVhc29uGAkgASgJEhsKE3ByZXNlcnZlc19zdHJ1Y3R1cmUYCiABKAgiOwoPUmVkYWN0aW9uUmVjb3JkEhIKCnR1cm5faW5kZXgYASABKAUSFAoMbWFza2VkX2NvdW50GAIgASgFIlgKE1N1bW1hcml6ZWRTdHJ1Y3R1cmUSEgoKdHVybl9pbmRleBgBIAEoBRITCgtkZXNjcmlwdGlvbhgCIAEoCRIYChBzdW1tYXJpemVkX2NvdW50GAMgASgFIv4DChJGb3JtTWVtb3J5UmVzcG9uc2USNAoQY29tbWl0X3RpbWVzdGFtcBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGgoSZXhlY3V0aW9uX2xvZ19yb3dzGAIgASgDEhMKC3ZlY3Rvcl9yb3dzGAMgASgDEhcKD2dyYXBoX25vZGVfcm93cxgEIAEoAxIXCg9ncmFwaF9lZGdlX3Jvd3MYBSABKAMSGgoSZWRnZV9zdXBlcnNlc3Npb25zGAYgASgDEhsKE2NodW5rX3N1cGVyc2Vzc2lvbnMYByABKAMSNwoKY2FuZGlkYXRlcxgIIAMoCzIjLmplbm5haGFwaS5hZ2VudC52MS5Gb3JtZWRDYW5kaWRhdGUSNwoKcmVkYWN0aW9ucxgJIAMoCzIjLmplbm5haGFwaS5hZ2VudC52MS5SZWRhY3Rpb25SZWNvcmQSFQoNY2FuZGlkYXRlX2NhcBgKIAEoBRIaChJjYW5kaWRhdGVzX2Ryb3BwZWQYCyABKAUSEAoIc2NvcGVfaWQYDCABKAkSRgoVc3VtbWFyaXplZF9zdHJ1Y3R1cmVzGA0gAygLMicuamVubmFoYXBpLmFnZW50LnYxLlN1bW1hcml6ZWRTdHJ1Y3R1cmUSFwoPZm9ybWF0aW9uX3VuaXRzGA4gASgDIqcBChZTdWJtaXRGb3JtYXRpb25SZXF1ZXN0EhAKCHNjb3BlX2lkGAEgASgJEjMKBXR1cm5zGAIgAygLMiQuamVubmFoYXBpLmFnZW50LnYxLkNvbnZlcnNhdGlvblR1cm4SFQoNZm9ybWF0aW9uX2tleRgDIAEoCRIvCgtvYnNlcnZlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiSwoXU3VibWl0Rm9ybWF0aW9uUmVzcG9uc2USMAoJZm9ybWF0aW9uGAEgASgLMh0uamVubmFoYXBpLmFnZW50LnYxLkZvcm1hdGlvbiI9ChNHZXRGb3JtYXRpb25SZXF1ZXN0EhAKCHNjb3BlX2lkGAEgASgJEhQKDGZvcm1hdGlvbl9pZBgCIAEoCSJIChRHZXRGb3JtYXRpb25SZXNwb25zZRIwCglmb3JtYXRpb24YASABKAsyHS5qZW5uYWhhcGkuYWdlbnQudjEuRm9ybWF0aW9uIrICCglGb3JtYXRpb24SFAoMZm9ybWF0aW9uX2lkGAEgASgJEhAKCHNjb3BlX2lkGAIgASgJEjEKBXN0YXRlGAMgASgOMiIuamVubmFoYXBpLmFnZW50LnYxLkZvcm1hdGlvblN0YXRlEjcKB3JlY2VpcHQYBCABKAsyJi5qZW5uYWhhcGkuYWdlbnQudjEuRm9ybU1lbW9yeVJlc3BvbnNlEhYKDmZhaWx1cmVfcmVhc29uGAUgASgJEhcKD2ZhaWx1cmVfbWVzc2FnZRgGIAEoCRIvCgthY2NlcHRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLZmluaXNoZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIjAKC0VudGl0eUNsYXNzEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkiPwoRUmVsYXRpb25TaWduYXR1cmUSFAoMc291cmNlX2NsYXNzGAEgASgJEhQKDHRhcmdldF9jbGFzcxgCIAEoCSJsCgxSZWxhdGlvblR5cGUSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRI5CgpzaWduYXR1cmVzGAMgAygLMiUuamVubmFoYXBpLmFnZW50LnYxLlJlbGF0aW9uU2lnbmF0dXJlIoUBChBNZW1vcnlWb2NhYnVsYXJ5EjcKDmVudGl0eV9jbGFzc2VzGAEgAygLMh8uamVubmFoYXBpLmFnZW50LnYxLkVudGl0eUNsYXNzEjgKDnJlbGF0aW9uX3R5cGVzGAIgAygLMiAuamVubmFoYXBpLmFnZW50LnYxLlJlbGF0aW9uVHlwZSJsCh5EZWNsYXJlTWVtb3J5Vm9jYWJ1bGFyeVJlcXVlc3QSEAoIc2NvcGVfaWQYASABKAkSOAoKdm9jYWJ1bGFyeRgCIAEoCzIkLmplbm5haGFwaS5hZ2VudC52MS5NZW1vcnlWb2NhYnVsYXJ5IlsKH0RlY2xhcmVNZW1vcnlWb2NhYnVsYXJ5UmVzcG9uc2USOAoKdm9jYWJ1bGFyeRgBIAEoCzIkLmplbm5haGFwaS5hZ2VudC52MS5NZW1vcnlWb2NhYnVsYXJ5IjEKHVJlbW92ZU1lbW9yeVZvY2FidWxhcnlSZXF1ZXN0EhAKCHNjb3BlX2lkGAEgASgJIiAKHlJlbW92ZU1lbW9yeVZvY2FidWxhcnlSZXNwb25zZSIuChpHZXRNZW1vcnlWb2NhYnVsYXJ5UmVxdWVzdBIQCghzY29wZV9pZBgBIAEoCSKQAQobR2V0TWVtb3J5Vm9jYWJ1bGFyeVJlc3BvbnNlEjkKC2RlY2xhcmF0aW9uGAEgASgLMiQuamVubmFoYXBpLmFnZW50LnYxLk1lbW9yeVZvY2FidWxhcnkSNgoIcmVzb2x2ZWQYAiABKAsyJC5qZW5uYWhhcGkuYWdlbnQudjEuTWVtb3J5Vm9jYWJ1bGFyeSKTAQoaQmVkcm9ja0Zvcm1hdGlvbk1vZGVsU2V0dXASFQoNcHJpbmNpcGFsX2FybhgBIAEoCRITCgtleHRlcm5hbF9pZBgCIAEoCRIUCgxzZXNzaW9uX25hbWUYAyABKAkSGQoRcm9sZV90ZW1wbGF0ZV91cmwYBCABKAkSGAoQbGF1bmNoX3N0YWNrX3VybBgFIAEoCSI6ChlWZXJ0ZXhGb3JtYXRpb25Nb2RlbFNldHVwEh0KFXNlcnZpY2VfYWNjb3VudF9lbWFpbBgBIAEoCSJIChVCZWRyb2NrRm9ybWF0aW9uTW9kZWwSEAoIcm9sZV9hcm4YASABKAkSDgoGcmVnaW9uGAIgASgJEg0KBW1vZGVsGAMgASgJIkgKFFZlcnRleEZvcm1hdGlvbk1vZGVsEg8KB3Byb2plY3QYASABKAkSEAoIbG9jYXRpb24YAiABKAkSDQoFbW9kZWwYAyABKAkiZgoXQW50aHJvcGljRm9ybWF0aW9uTW9kZWwSDQoFbW9kZWwYASABKAkSFQoNaW5mZXJlbmNlX2dlbxgCIAEoCRIPCgdhcGlfa2V5GAMgASgJEhQKDGFwaV9rZXlfaGludBgEIAEoCSL8AgoORm9ybWF0aW9uTW9kZWwSPAoIcHJvdmlkZXIYASABKA4yKi5qZW5uYWhhcGkuYWdlbnQudjEuRm9ybWF0aW9uTW9kZWxQcm92aWRlchI6CgdiZWRyb2NrGAIgASgLMikuamVubmFoYXBpLmFnZW50LnYxLkJlZHJvY2tGb3JtYXRpb25Nb2RlbBI4CgZ2ZXJ0ZXgYAyABKAsyKC5qZW5uYWhhcGkuYWdlbnQudjEuVmVydGV4Rm9ybWF0aW9uTW9kZWwSPgoJYW50aHJvcGljGAggASgLMisuamVubmFoYXBpLmFnZW50LnYxLkFudGhyb3BpY0Zvcm1hdGlvbk1vZGVsEhYKDnRoaW5raW5nX2xldmVsGAQgASgJEhkKEW1heF9vdXRwdXRfdG9rZW5zGAUgASgFEi8KC3VwZGF0ZV90aW1lGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBISCgp1cGRhdGVkX2J5GAcgASgJIlwKHFByZXBhcmVGb3JtYXRpb25Nb2RlbFJlcXVlc3QSPAoIcHJvdmlkZXIYASABKA4yKi5qZW5uYWhhcGkuYWdlbnQudjEuRm9ybWF0aW9uTW9kZWxQcm92aWRlciLdAQodUHJlcGFyZUZvcm1hdGlvbk1vZGVsUmVzcG9uc2USPAoIcHJvdmlkZXIYASABKA4yKi5qZW5uYWhhcGkuYWdlbnQudjEuRm9ybWF0aW9uTW9kZWxQcm92aWRlchI/CgdiZWRyb2NrGAIgASgLMi4uamVubmFoYXBpLmFnZW50LnYxLkJlZHJvY2tGb3JtYXRpb25Nb2RlbFNldHVwEj0KBnZlcnRleBgDIAEoCzItLmplbm5haGFwaS5hZ2VudC52MS5WZXJ0ZXhGb3JtYXRpb25Nb2RlbFNldHVwIk0KGFNldEZvcm1hdGlvbk1vZGVsUmVxdWVzdBIxCgVtb2RlbBgBIAEoCzIiLmplbm5haGFwaS5hZ2VudC52MS5Gb3JtYXRpb25Nb2RlbCJOChlTZXRGb3JtYXRpb25Nb2RlbFJlc3BvbnNlEjEKBW1vZGVsGAEgASgLMiIuamVubmFoYXBpLmFnZW50LnYxLkZvcm1hdGlvbk1vZGVsIhoKGEdldEZvcm1hdGlvbk1vZGVsUmVxdWVzdCLaAQoZR2V0Rm9ybWF0aW9uTW9kZWxSZXNwb25zZRIxCgVtb2RlbBgBIAEoCzIiLmplbm5haGFwaS5hZ2VudC52MS5Gb3JtYXRpb25Nb2RlbBJFCg1iZWRyb2NrX3NldHVwGAIgASgLMi4uamVubmFoYXBpLmFnZW50LnYxLkJlZHJvY2tGb3JtYXRpb25Nb2RlbFNldHVwEkMKDHZlcnRleF9zZXR1cBgDIAEoCzItLmplbm5haGFwaS5hZ2VudC52MS5WZXJ0ZXhGb3JtYXRpb25Nb2RlbFNldHVwIh0KG1JlbW92ZUZvcm1hdGlvbk1vZGVsUmVxdWVzdCIvChxSZW1vdmVGb3JtYXRpb25Nb2RlbFJlc3BvbnNlEg8KB3JlbW92ZWQYASABKAgiHAoaQ2hlY2tGb3JtYXRpb25Nb2RlbFJlcXVlc3QiewobQ2hlY2tGb3JtYXRpb25Nb2RlbFJlc3BvbnNlEgoKAm9rGAEgASgIEgwKBHN0ZXAYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRIxCgVtb2RlbBgEIAEoCzIiLmplbm5haGFwaS5hZ2VudC52MS5Gb3JtYXRpb25Nb2RlbCp4Cg9GdXNpb25EaXJlY3Rpb24SIAocRlVTSU9OX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEiEKHUZVU0lPTl9ESVJFQ1RJT05fVkVDVE9SX0ZJUlNUEAESIAocRlVTSU9OX0RJUkVDVElPTl9HUkFQSF9GSVJTVBACKmoKDVJldHJpZXZhbE1vZGUSHgoaUkVUUklFVkFMX01PREVfVU5TUEVDSUZJRUQQABIeChpSRVRSSUVWQUxfTU9ERV9WRUNUT1JfT05MWRABEhkKFVJFVFJJRVZBTF9NT0RFX0hZQlJJRBACKnIKEFJldHJpZXZhbENoYW5uZWwSIQodUkVUUklFVkFMX0NIQU5ORUxfVU5TUEVDSUZJRUQQABIcChhSRVRSSUVWQUxfQ0hBTk5FTF9WRUNUT1IQARIdChlSRVRSSUVWQUxfQ0hBTk5FTF9MRVhJQ0FMEAIqhgEKDkdyYXBoRGlyZWN0aW9uEh8KG0dSQVBIX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEhwKGEdSQVBIX0RJUkVDVElPTl9PVVRHT0lORxABEhwKGEdSQVBIX0RJUkVDVElPTl9JTkNPTUlORxACEhcKE0dSQVBIX0RJUkVDVElPTl9BTlkQAyp8CghUdXJuUm9sZRIZChVUVVJOX1JPTEVfVU5TUEVDSUZJRUQQABISCg5UVVJOX1JPTEVfVVNFUhABEhcKE1RVUk5fUk9MRV9BU1NJU1RBTlQQAhIUChBUVVJOX1JPTEVfU1lTVEVNEAMSEgoOVFVSTl9ST0xFX1RPT0wQBCppCg1DYW5kaWRhdGVLaW5kEh4KGkNBTkRJREFURV9LSU5EX1VOU1BFQ0lGSUVEEAASFwoTQ0FORElEQVRFX0tJTkRfRkFDVBABEh8KG0NBTkRJREFURV9LSU5EX1JFTEFUSU9OU0hJUBACKqABCg5NZW1vcnlEZWNpc2lvbhIfChtNRU1PUllfREVDSVNJT05fVU5TUEVDSUZJRUQQABIXChNNRU1PUllfREVDSVNJT05fTkVXEAESGwoXTUVNT1JZX0RFQ0lTSU9OX1JFVklTRUQQAhIZChVNRU1PUllfREVDSVNJT05fS05PV04QAxIcChhNRU1PUllfREVDSVNJT05fUkVKRUNURUQQBCqmAQoORm9ybWF0aW9uU3RhdGUSHwobRk9STUFUSU9OX1NUQVRFX1VOU1BFQ0lGSUVEEAASHAoYRk9STUFUSU9OX1NUQVRFX0FDQ0VQVEVEEAESGwoXRk9STUFUSU9OX1NUQVRFX1JVTk5JTkcQAhIcChhGT1JNQVRJT05fU1RBVEVfRklOSVNIRUQQAxIaChZGT1JNQVRJT05fU1RBVEVfRkFJTEVEEAQqtQEKFkZvcm1hdGlvbk1vZGVsUHJvdmlkZXISKAokRk9STUFUSU9OX01PREVMX1BST1ZJREVSX1VOU1BFQ0lGSUVEEAASJAogRk9STUFUSU9OX01PREVMX1BST1ZJREVSX0JFRFJPQ0sQARIjCh9GT1JNQVRJT05fTU9ERUxfUFJPVklERVJfVkVSVEVYEAISJgoiRk9STUFUSU9OX01PREVMX1BST1ZJREVSX0FOVEhST1BJQxADMpkVCg1NZW1vcnlTZXJ2aWNlErsBCgxDb21taXRNZW1vcnkSJy5qZW5uYWhhcGkuYWdlbnQudjEuQ29tbWl0TWVtb3J5UmVxdWVzdBooLmplbm5haGFwaS5hZ2VudC52MS5Db21taXRNZW1vcnlSZXNwb25zZSJYgtPkkwJSOgEqWig6ASoiIy92MS9zY29wZXMve3Njb3BlX2lkfS9tZW1vcnk6Y29tbWl0IiMvdjEvYWdlbnRzL3tzY29wZV9pZH0vbWVtb3J5OmNvbW1pdBK2AQoLUXVlcnlNZW1vcnkSJi5qZW5uYWhhcGkuYWdlbnQudjEuUXVlcnlNZW1vcnlSZXF1ZXN0GicuamVubmFoYXBpLmFnZW50LnYxLlF1ZXJ5TWVtb3J5UmVzcG9uc2UiVoLT5JMCUDoBKlonOgEqIiIvdjEvc2NvcGVzL3tzY29wZV9pZH0vbWVtb3J5OnF1ZXJ5IiIvdjEvYWdlbnRzL3tzY29wZV9pZH0vbWVtb3J5OnF1ZXJ5EsABCg1JbnNwZWN0TWVtb3J5EiguamVubmFoYXBpLmFnZW50LnYxLkluc3BlY3RNZW1vcnlSZXF1ZXN0GikuamVubmFoYXBpLmFnZW50LnYxLkluc3BlY3RNZW1vcnlSZXNwb25zZSJagtPkkwJUOgEqWik6ASoiJC92MS9zY29wZXMve3Njb3BlX2lkfS9tZW1vcnk6aW5zcGVjdCIkL3YxL2FnZW50cy97c2NvcGVfaWR9L21lbW9yeTppbnNwZWN0Es4BCg1TdXBlcnNlZGVFZGdlEiguamVubmFoYXBpLmFnZW50LnYxLlN1cGVyc2VkZUVkZ2VSZXF1ZXN0GikuamVubmFoYXBpLmFnZW50LnYxLlN1cGVyc2VkZUVkZ2VSZXNwb25zZSJogtPkkwJiOgEqWjA6ASoiKy92MS9zY29wZXMve3Njb3BlX2lkfS9ncmFwaC9lZGdlczpzdXBlcnNlZGUiKy92MS9hZ2VudHMve3Njb3BlX2lkfS9ncmFwaC9lZGdlczpzdXBlcnNlZGUS1wEKDlN1cGVyc2VkZUNodW5rEikuamVubmFoYXBpLmFnZW50LnYxLlN1cGVyc2VkZUNodW5rUmVxdWVzdBoqLmplbm5haGFwaS5hZ2VudC52MS5TdXBlcnNlZGVDaHVua1Jlc3BvbnNlIm6C0+STAmg6ASpaMzoBKiIuL3YxL3Njb3Blcy97c2NvcGVfaWR9L3ZlY3RvcnMvY2h1bmtzOnN1cGVyc2VkZSIuL3YxL2FnZW50cy97c2NvcGVfaWR9L3ZlY3RvcnMvY2h1bmtzOnN1cGVyc2VkZRKJAQoKRm9ybU1lbW9yeRIlLmplbm5haGFwaS5hZ2VudC52MS5Gb3JtTWVtb3J5UmVxdWVzdBomLmplbm5haGFwaS5hZ2VudC52MS5Gb3JtTWVtb3J5UmVzcG9uc2UiLILT5JMCJjoBKiIhL3YxL2FnZW50cy97c2NvcGVfaWR9L21lbW9yeTpmb3JtEpcBCg9TdWJtaXRGb3JtYXRpb24SKi5qZW5uYWhhcGkuYWdlbnQudjEuU3VibWl0Rm9ybWF0aW9uUmVxdWVzdBorLmplbm5haGFwaS5hZ2VudC52MS5TdWJtaXRGb3JtYXRpb25SZXNwb25zZSIrgtPkkwIlOgEqIiAvdjEvYWdlbnRzL3tzY29wZV9pZH0vZm9ybWF0aW9ucxKaAQoMR2V0Rm9ybWF0aW9uEicuamVubmFoYXBpLmFnZW50LnYxLkdldEZvcm1hdGlvblJlcXVlc3QaKC5qZW5uYWhhcGkuYWdlbnQudjEuR2V0Rm9ybWF0aW9uUmVzcG9uc2UiN4LT5JMCMRIvL3YxL2FnZW50cy97c2NvcGVfaWR9L2Zvcm1hdGlvbnMve2Zvcm1hdGlvbl9pZH0SpAEKF0RlY2xhcmVNZW1vcnlWb2NhYnVsYXJ5EjIuamVubmFoYXBpLmFnZW50LnYxLkRlY2xhcmVNZW1vcnlWb2NhYnVsYXJ5UmVxdWVzdBozLmplbm5haGFwaS5hZ2VudC52MS5EZWNsYXJlTWVtb3J5Vm9jYWJ1bGFyeVJlc3BvbnNlIiCC0+STAho6ASoaFS92MS9tZW1vcnkvdm9jYWJ1bGFyeRKeAQoWUmVtb3ZlTWVtb3J5Vm9jYWJ1bGFyeRIxLmplbm5haGFwaS5hZ2VudC52MS5SZW1vdmVNZW1vcnlWb2NhYnVsYXJ5UmVxdWVzdBoyLmplbm5haGFwaS5hZ2VudC52MS5SZW1vdmVNZW1vcnlWb2NhYnVsYXJ5UmVzcG9uc2UiHYLT5JMCFyoVL3YxL21lbW9yeS92b2NhYnVsYXJ5EpUBChNHZXRNZW1vcnlWb2NhYnVsYXJ5Ei4uamVubmFoYXBpLmFnZW50LnYxLkdldE1lbW9yeVZvY2FidWxhcnlSZXF1ZXN0Gi8uamVubmFoYXBpLmFnZW50LnYxLkdldE1lbW9yeVZvY2FidWxhcnlSZXNwb25zZSIdgtPkkwIXEhUvdjEvbWVtb3J5L3ZvY2FidWxhcnkSpAEKFVByZXBhcmVGb3JtYXRpb25Nb2RlbBIwLmplbm5haGFwaS5hZ2VudC52MS5QcmVwYXJlRm9ybWF0aW9uTW9kZWxSZXF1ZXN0GjEuamVubmFoYXBpLmFnZW50LnYxLlByZXBhcmVGb3JtYXRpb25Nb2RlbFJlc3BvbnNlIiaC0+STAiA6ASoiGy92MS9mb3JtYXRpb24tbW9kZWw6cHJlcGFyZRKQAQoRU2V0Rm9ybWF0aW9uTW9kZWwSLC5qZW5uYWhhcGkuYWdlbnQudjEuU2V0Rm9ybWF0aW9uTW9kZWxSZXF1ZXN0Gi0uamVubmFoYXBpLmFnZW50LnYxLlNldEZvcm1hdGlvbk1vZGVsUmVzcG9uc2UiHoLT5JMCGDoBKhoTL3YxL2Zvcm1hdGlvbi1tb2RlbBKNAQoRR2V0Rm9ybWF0aW9uTW9kZWwSLC5qZW5uYWhhcGkuYWdlbnQudjEuR2V0Rm9ybWF0aW9uTW9kZWxSZXF1ZXN0Gi0uamVubmFoYXBpLmFnZW50LnYxLkdldEZvcm1hdGlvbk1vZGVsUmVzcG9uc2UiG4LT5JMCFRITL3YxL2Zvcm1hdGlvbi1tb2RlbBKWAQoUUmVtb3ZlRm9ybWF0aW9uTW9kZWwSLy5qZW5uYWhhcGkuYWdlbnQudjEuUmVtb3ZlRm9ybWF0aW9uTW9kZWxSZXF1ZXN0GjAuamVubmFoYXBpLmFnZW50LnYxLlJlbW92ZUZvcm1hdGlvbk1vZGVsUmVzcG9uc2UiG4LT5JMCFSoTL3YxL2Zvcm1hdGlvbi1tb2RlbBKcAQoTQ2hlY2tGb3JtYXRpb25Nb2RlbBIuLmplbm5haGFwaS5hZ2VudC52MS5DaGVja0Zvcm1hdGlvbk1vZGVsUmVxdWVzdBovLmplbm5haGFwaS5hZ2VudC52MS5DaGVja0Zvcm1hdGlvbk1vZGVsUmVzcG9uc2UiJILT5JMCHjoBKiIZL3YxL2Zvcm1hdGlvbi1tb2RlbDpjaGVja0IpWidnaXRodWIuY29tL2FscGhhdXNsYWJzL2plbm5haC1hcGkvYWdlbnRiBnByb3RvMw", [file_google_api_annotations, file_google_protobuf_struct, file_google_protobuf_timestamp]);
11
11
  /**
12
12
  * Describes the message jennahapi.agent.v1.CommitMemoryRequest.
13
13
  * Use `create(CommitMemoryRequestSchema)` to create a new message.
@@ -277,136 +277,161 @@ export const SummarizedStructureSchema = /*@__PURE__*/ messageDesc(file_jennah_a
277
277
  * Use `create(FormMemoryResponseSchema)` to create a new message.
278
278
  */
279
279
  export const FormMemoryResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 42);
280
+ /**
281
+ * Describes the message jennahapi.agent.v1.SubmitFormationRequest.
282
+ * Use `create(SubmitFormationRequestSchema)` to create a new message.
283
+ */
284
+ export const SubmitFormationRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 43);
285
+ /**
286
+ * Describes the message jennahapi.agent.v1.SubmitFormationResponse.
287
+ * Use `create(SubmitFormationResponseSchema)` to create a new message.
288
+ */
289
+ export const SubmitFormationResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 44);
290
+ /**
291
+ * Describes the message jennahapi.agent.v1.GetFormationRequest.
292
+ * Use `create(GetFormationRequestSchema)` to create a new message.
293
+ */
294
+ export const GetFormationRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 45);
295
+ /**
296
+ * Describes the message jennahapi.agent.v1.GetFormationResponse.
297
+ * Use `create(GetFormationResponseSchema)` to create a new message.
298
+ */
299
+ export const GetFormationResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 46);
300
+ /**
301
+ * Describes the message jennahapi.agent.v1.Formation.
302
+ * Use `create(FormationSchema)` to create a new message.
303
+ */
304
+ export const FormationSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 47);
280
305
  /**
281
306
  * Describes the message jennahapi.agent.v1.EntityClass.
282
307
  * Use `create(EntityClassSchema)` to create a new message.
283
308
  */
284
- export const EntityClassSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 43);
309
+ export const EntityClassSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 48);
285
310
  /**
286
311
  * Describes the message jennahapi.agent.v1.RelationSignature.
287
312
  * Use `create(RelationSignatureSchema)` to create a new message.
288
313
  */
289
- export const RelationSignatureSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 44);
314
+ export const RelationSignatureSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 49);
290
315
  /**
291
316
  * Describes the message jennahapi.agent.v1.RelationType.
292
317
  * Use `create(RelationTypeSchema)` to create a new message.
293
318
  */
294
- export const RelationTypeSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 45);
319
+ export const RelationTypeSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 50);
295
320
  /**
296
321
  * Describes the message jennahapi.agent.v1.MemoryVocabulary.
297
322
  * Use `create(MemoryVocabularySchema)` to create a new message.
298
323
  */
299
- export const MemoryVocabularySchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 46);
324
+ export const MemoryVocabularySchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 51);
300
325
  /**
301
326
  * Describes the message jennahapi.agent.v1.DeclareMemoryVocabularyRequest.
302
327
  * Use `create(DeclareMemoryVocabularyRequestSchema)` to create a new message.
303
328
  */
304
- export const DeclareMemoryVocabularyRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 47);
329
+ export const DeclareMemoryVocabularyRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 52);
305
330
  /**
306
331
  * Describes the message jennahapi.agent.v1.DeclareMemoryVocabularyResponse.
307
332
  * Use `create(DeclareMemoryVocabularyResponseSchema)` to create a new message.
308
333
  */
309
- export const DeclareMemoryVocabularyResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 48);
334
+ export const DeclareMemoryVocabularyResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 53);
310
335
  /**
311
336
  * Describes the message jennahapi.agent.v1.RemoveMemoryVocabularyRequest.
312
337
  * Use `create(RemoveMemoryVocabularyRequestSchema)` to create a new message.
313
338
  */
314
- export const RemoveMemoryVocabularyRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 49);
339
+ export const RemoveMemoryVocabularyRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 54);
315
340
  /**
316
341
  * Describes the message jennahapi.agent.v1.RemoveMemoryVocabularyResponse.
317
342
  * Use `create(RemoveMemoryVocabularyResponseSchema)` to create a new message.
318
343
  */
319
- export const RemoveMemoryVocabularyResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 50);
344
+ export const RemoveMemoryVocabularyResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 55);
320
345
  /**
321
346
  * Describes the message jennahapi.agent.v1.GetMemoryVocabularyRequest.
322
347
  * Use `create(GetMemoryVocabularyRequestSchema)` to create a new message.
323
348
  */
324
- export const GetMemoryVocabularyRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 51);
349
+ export const GetMemoryVocabularyRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 56);
325
350
  /**
326
351
  * Describes the message jennahapi.agent.v1.GetMemoryVocabularyResponse.
327
352
  * Use `create(GetMemoryVocabularyResponseSchema)` to create a new message.
328
353
  */
329
- export const GetMemoryVocabularyResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 52);
354
+ export const GetMemoryVocabularyResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 57);
330
355
  /**
331
356
  * Describes the message jennahapi.agent.v1.BedrockFormationModelSetup.
332
357
  * Use `create(BedrockFormationModelSetupSchema)` to create a new message.
333
358
  */
334
- export const BedrockFormationModelSetupSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 53);
359
+ export const BedrockFormationModelSetupSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 58);
335
360
  /**
336
361
  * Describes the message jennahapi.agent.v1.VertexFormationModelSetup.
337
362
  * Use `create(VertexFormationModelSetupSchema)` to create a new message.
338
363
  */
339
- export const VertexFormationModelSetupSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 54);
364
+ export const VertexFormationModelSetupSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 59);
340
365
  /**
341
366
  * Describes the message jennahapi.agent.v1.BedrockFormationModel.
342
367
  * Use `create(BedrockFormationModelSchema)` to create a new message.
343
368
  */
344
- export const BedrockFormationModelSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 55);
369
+ export const BedrockFormationModelSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 60);
345
370
  /**
346
371
  * Describes the message jennahapi.agent.v1.VertexFormationModel.
347
372
  * Use `create(VertexFormationModelSchema)` to create a new message.
348
373
  */
349
- export const VertexFormationModelSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 56);
374
+ export const VertexFormationModelSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 61);
350
375
  /**
351
376
  * Describes the message jennahapi.agent.v1.AnthropicFormationModel.
352
377
  * Use `create(AnthropicFormationModelSchema)` to create a new message.
353
378
  */
354
- export const AnthropicFormationModelSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 57);
379
+ export const AnthropicFormationModelSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 62);
355
380
  /**
356
381
  * Describes the message jennahapi.agent.v1.FormationModel.
357
382
  * Use `create(FormationModelSchema)` to create a new message.
358
383
  */
359
- export const FormationModelSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 58);
384
+ export const FormationModelSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 63);
360
385
  /**
361
386
  * Describes the message jennahapi.agent.v1.PrepareFormationModelRequest.
362
387
  * Use `create(PrepareFormationModelRequestSchema)` to create a new message.
363
388
  */
364
- export const PrepareFormationModelRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 59);
389
+ export const PrepareFormationModelRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 64);
365
390
  /**
366
391
  * Describes the message jennahapi.agent.v1.PrepareFormationModelResponse.
367
392
  * Use `create(PrepareFormationModelResponseSchema)` to create a new message.
368
393
  */
369
- export const PrepareFormationModelResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 60);
394
+ export const PrepareFormationModelResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 65);
370
395
  /**
371
396
  * Describes the message jennahapi.agent.v1.SetFormationModelRequest.
372
397
  * Use `create(SetFormationModelRequestSchema)` to create a new message.
373
398
  */
374
- export const SetFormationModelRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 61);
399
+ export const SetFormationModelRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 66);
375
400
  /**
376
401
  * Describes the message jennahapi.agent.v1.SetFormationModelResponse.
377
402
  * Use `create(SetFormationModelResponseSchema)` to create a new message.
378
403
  */
379
- export const SetFormationModelResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 62);
404
+ export const SetFormationModelResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 67);
380
405
  /**
381
406
  * Describes the message jennahapi.agent.v1.GetFormationModelRequest.
382
407
  * Use `create(GetFormationModelRequestSchema)` to create a new message.
383
408
  */
384
- export const GetFormationModelRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 63);
409
+ export const GetFormationModelRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 68);
385
410
  /**
386
411
  * Describes the message jennahapi.agent.v1.GetFormationModelResponse.
387
412
  * Use `create(GetFormationModelResponseSchema)` to create a new message.
388
413
  */
389
- export const GetFormationModelResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 64);
414
+ export const GetFormationModelResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 69);
390
415
  /**
391
416
  * Describes the message jennahapi.agent.v1.RemoveFormationModelRequest.
392
417
  * Use `create(RemoveFormationModelRequestSchema)` to create a new message.
393
418
  */
394
- export const RemoveFormationModelRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 65);
419
+ export const RemoveFormationModelRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 70);
395
420
  /**
396
421
  * Describes the message jennahapi.agent.v1.RemoveFormationModelResponse.
397
422
  * Use `create(RemoveFormationModelResponseSchema)` to create a new message.
398
423
  */
399
- export const RemoveFormationModelResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 66);
424
+ export const RemoveFormationModelResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 71);
400
425
  /**
401
426
  * Describes the message jennahapi.agent.v1.CheckFormationModelRequest.
402
427
  * Use `create(CheckFormationModelRequestSchema)` to create a new message.
403
428
  */
404
- export const CheckFormationModelRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 67);
429
+ export const CheckFormationModelRequestSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 72);
405
430
  /**
406
431
  * Describes the message jennahapi.agent.v1.CheckFormationModelResponse.
407
432
  * Use `create(CheckFormationModelResponseSchema)` to create a new message.
408
433
  */
409
- export const CheckFormationModelResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 68);
434
+ export const CheckFormationModelResponseSchema = /*@__PURE__*/ messageDesc(file_jennah_agent_v1_memory, 73);
410
435
  /**
411
436
  * Direction of vector+graph fusion when a query links the two sections.
412
437
  *
@@ -674,6 +699,49 @@ export var MemoryDecision;
674
699
  * Describes the enum jennahapi.agent.v1.MemoryDecision.
675
700
  */
676
701
  export const MemoryDecisionSchema = /*@__PURE__*/ enumDesc(file_jennah_agent_v1_memory, 6);
702
+ /**
703
+ * Where a submitted formation stands.
704
+ *
705
+ * @generated from enum jennahapi.agent.v1.FormationState
706
+ */
707
+ export var FormationState;
708
+ (function (FormationState) {
709
+ /**
710
+ * @generated from enum value: FORMATION_STATE_UNSPECIFIED = 0;
711
+ */
712
+ FormationState[FormationState["UNSPECIFIED"] = 0] = "UNSPECIFIED";
713
+ /**
714
+ * Recorded and waiting to start. A formation can return here from RUNNING
715
+ * when the platform resumes one that was interrupted.
716
+ *
717
+ * @generated from enum value: FORMATION_STATE_ACCEPTED = 1;
718
+ */
719
+ FormationState[FormationState["ACCEPTED"] = 1] = "ACCEPTED";
720
+ /**
721
+ * Extraction, recall, reconciliation or the write is under way.
722
+ *
723
+ * @generated from enum value: FORMATION_STATE_RUNNING = 2;
724
+ */
725
+ FormationState[FormationState["RUNNING"] = 2] = "RUNNING";
726
+ /**
727
+ * Done. `receipt` is set. A formation that stored nothing is FINISHED with a
728
+ * receipt carrying no commit timestamp, exactly as FormMemory would report it.
729
+ *
730
+ * @generated from enum value: FORMATION_STATE_FINISHED = 3;
731
+ */
732
+ FormationState[FormationState["FINISHED"] = 3] = "FINISHED";
733
+ /**
734
+ * Will not complete. `failure_reason` and `failure_message` say why, and the
735
+ * formation wrote no memory.
736
+ *
737
+ * @generated from enum value: FORMATION_STATE_FAILED = 4;
738
+ */
739
+ FormationState[FormationState["FAILED"] = 4] = "FAILED";
740
+ })(FormationState || (FormationState = {}));
741
+ /**
742
+ * Describes the enum jennahapi.agent.v1.FormationState.
743
+ */
744
+ export const FormationStateSchema = /*@__PURE__*/ enumDesc(file_jennah_agent_v1_memory, 7);
677
745
  /**
678
746
  * Where an enterprise's own formation model is served.
679
747
  *
@@ -708,7 +776,7 @@ export var FormationModelProvider;
708
776
  /**
709
777
  * Describes the enum jennahapi.agent.v1.FormationModelProvider.
710
778
  */
711
- export const FormationModelProviderSchema = /*@__PURE__*/ enumDesc(file_jennah_agent_v1_memory, 7);
779
+ export const FormationModelProviderSchema = /*@__PURE__*/ enumDesc(file_jennah_agent_v1_memory, 8);
712
780
  /**
713
781
  * MemoryService is the unified memory-data plane for an agent workspace.
714
782
  *