@eide/foir-proto-ts 0.73.0 → 0.75.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eide/foir-proto-ts",
3
- "version": "0.73.0",
3
+ "version": "0.75.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./analytics/v1/analytics_pb": "./src/analytics/v1/analytics_pb.js",
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { BackfillQueryableIndexRequest, BackfillQueryableIndexResponse, BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, CreateVersionRequest, CreateVersionResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, SaveContentRequest, SaveContentResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
6
+ import { BackfillModelIndexesRequest, BackfillModelIndexesResponse, BackfillQueryableIndexRequest, BackfillQueryableIndexResponse, BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, CreateVersionRequest, CreateVersionResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, SaveContentRequest, SaveContentResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -113,6 +113,15 @@ export declare const RecordsService: {
113
113
  readonly O: typeof BackfillQueryableIndexResponse,
114
114
  readonly kind: MethodKind.Unary,
115
115
  },
116
+ /**
117
+ * @generated from rpc records.v1.RecordsService.BackfillModelIndexes
118
+ */
119
+ readonly backfillModelIndexes: {
120
+ readonly name: "BackfillModelIndexes",
121
+ readonly I: typeof BackfillModelIndexesRequest,
122
+ readonly O: typeof BackfillModelIndexesResponse,
123
+ readonly kind: MethodKind.Unary,
124
+ },
116
125
  /**
117
126
  * @generated from rpc records.v1.RecordsService.DuplicateRecord
118
127
  */
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable */
4
4
  // @ts-nocheck
5
5
 
6
- import { BackfillQueryableIndexRequest, BackfillQueryableIndexResponse, BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, CreateVersionRequest, CreateVersionResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, SaveContentRequest, SaveContentResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
6
+ import { BackfillModelIndexesRequest, BackfillModelIndexesResponse, BackfillQueryableIndexRequest, BackfillQueryableIndexResponse, BatchPublishVersionsRequest, BatchPublishVersionsResponse, BatchRecordOperationsRequest, BatchRecordOperationsResponse, BatchResolveRecordsRequest, BatchResolveRecordsResponse, BulkUpdateRecordsRequest, BulkUpdateRecordsResponse, CancelScheduledRecordPublishRequest, CancelScheduledRecordPublishResponse, CheckLookupAvailabilityRequest, CheckLookupAvailabilityResponse, CreateRecordRequest, CreateRecordResponse, CreateVariantRequest, CreateVariantResponse, CreateVersionRequest, CreateVersionResponse, DeleteEmbeddingsRequest, DeleteEmbeddingsResponse, DeleteRecordRequest, DeleteRecordResponse, DeleteVariantRequest, DeleteVariantResponse, DuplicateRecordRequest, DuplicateRecordResponse, DuplicateRecordsBulkRequest, DuplicateRecordsBulkResponse, EnqueueGenerateEmbeddingRequest, EnqueueGenerateEmbeddingResponse, FindSimilarRecordsRequest, FindSimilarRecordsResponse, GetEmbeddingStatsRequest, GetEmbeddingStatsResponse, GetRecordByKeyOrIdRequest, GetRecordByKeyOrIdResponse, GetRecordByKeyRequest, GetRecordByKeyResponse, GetRecordEmbeddingsRequest, GetRecordEmbeddingsResponse, GetRecordRequest, GetRecordResponse, GetScheduledPublishRequest, GetScheduledPublishResponse, GlobalSearchRequest, GlobalSearchResponse, ListDraftVersionsRequest, ListDraftVersionsResponse, ListLookupConflictsRequest, ListLookupConflictsResponse, ListRecordsRequest, ListRecordsResponse, ListRecordVariantsRequest, ListRecordVariantsResponse, ListRecordVersionsRequest, ListRecordVersionsResponse, ListScheduledPublishesRequest, ListScheduledPublishesResponse, LookupRecordModelsRequest, LookupRecordModelsResponse, LookupRecordRequest, LookupRecordResponse, PublishVersionRequest, PublishVersionResponse, RebuildModelLookupsRequest, RebuildModelLookupsResponse, RevertToVersionRequest, RevertToVersionResponse, SaveContentRequest, SaveContentResponse, ScheduleRecordPublishRequest, ScheduleRecordPublishResponse, SearchEmbeddingsRequest, SearchEmbeddingsResponse, SetDefaultVariantRequest, SetDefaultVariantResponse, UnpublishRecordRequest, UnpublishRecordResponse, UpdateRecordRequest, UpdateRecordResponse, UpdateVariantRequest, UpdateVariantResponse, UpsertRecordRequest, UpsertRecordResponse, WriteEmbeddingsRequest, WriteEmbeddingsResponse } from "./records_pbjs";
7
7
  import { MethodKind } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
@@ -113,6 +113,15 @@ export const RecordsService = {
113
113
  O: BackfillQueryableIndexResponse,
114
114
  kind: MethodKind.Unary,
115
115
  },
116
+ /**
117
+ * @generated from rpc records.v1.RecordsService.BackfillModelIndexes
118
+ */
119
+ backfillModelIndexes: {
120
+ name: "BackfillModelIndexes",
121
+ I: BackfillModelIndexesRequest,
122
+ O: BackfillModelIndexesResponse,
123
+ kind: MethodKind.Unary,
124
+ },
116
125
  /**
117
126
  * @generated from rpc records.v1.RecordsService.DuplicateRecord
118
127
  */
@@ -4,7 +4,7 @@
4
4
 
5
5
  import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
6
  import type { JsonObject, Message } from "@bufbuild/protobuf";
7
- import type { Timestamp, Value } from "@bufbuild/protobuf/wkt";
7
+ import type { Timestamp } from "@bufbuild/protobuf/wkt";
8
8
  import type { RuleExpression } from "../../expressions/v1/expressions_pb.js";
9
9
 
10
10
  /**
@@ -261,43 +261,6 @@ export declare type PublishSchedule = Message<"records.v1.PublishSchedule"> & {
261
261
  */
262
262
  export declare const PublishScheduleSchema: GenMessage<PublishSchedule>;
263
263
 
264
- /**
265
- * @generated from message records.v1.RecordFilter
266
- */
267
- export declare type RecordFilter = Message<"records.v1.RecordFilter"> & {
268
- /**
269
- * @generated from field: string field = 1;
270
- */
271
- field: string;
272
-
273
- /**
274
- * @generated from field: string operator = 2;
275
- */
276
- operator: string;
277
-
278
- /**
279
- * @generated from field: google.protobuf.Value value = 3;
280
- */
281
- value?: Value | undefined;
282
-
283
- /**
284
- * When set, `field` points at a reference-typed field and `value` is the
285
- * target record's natural key (not its id). The handler resolves
286
- * (ref_model, value) -> record id server-side and rewrites the condition
287
- * to match the stored reference id. Lets callers filter references by the
288
- * editorially-stable natural key while storage stays id-based.
289
- *
290
- * @generated from field: optional string ref_model = 4;
291
- */
292
- refModel?: string | undefined;
293
- };
294
-
295
- /**
296
- * Describes the message records.v1.RecordFilter.
297
- * Use `create(RecordFilterSchema)` to create a new message.
298
- */
299
- export declare const RecordFilterSchema: GenMessage<RecordFilter>;
300
-
301
264
  /**
302
265
  * @generated from message records.v1.SortField
303
266
  */
@@ -591,32 +554,22 @@ export declare type ListRecordsRequest = Message<"records.v1.ListRecordsRequest"
591
554
  modelKey: string;
592
555
 
593
556
  /**
594
- * @generated from field: int32 limit = 2;
595
- */
596
- limit: number;
597
-
598
- /**
599
- * @generated from field: int32 offset = 3;
600
- */
601
- offset: number;
602
-
603
- /**
604
- * @generated from field: repeated records.v1.RecordFilter filters = 4;
605
- */
606
- filters: RecordFilter[];
607
-
608
- /**
609
- * @generated from field: repeated records.v1.SortField sort = 5;
557
+ * sort carries the orderBy entries from api-public's typed
558
+ * <Model>OrderByInput surface. Each entry is (field, descending) —
559
+ * the platform's buildRecordOrderBy walks them in order and appends
560
+ * an id ASC tie-breaker for cursor stability.
561
+ *
562
+ * @generated from field: repeated records.v1.SortField sort = 2;
610
563
  */
611
564
  sort: SortField[];
612
565
 
613
566
  /**
614
- * @generated from field: optional string customer_id = 6;
567
+ * @generated from field: optional string customer_id = 3;
615
568
  */
616
569
  customerId?: string | undefined;
617
570
 
618
571
  /**
619
- * @generated from field: optional string search = 7;
572
+ * @generated from field: optional string search = 4;
620
573
  */
621
574
  search?: string | undefined;
622
575
 
@@ -625,45 +578,43 @@ export declare type ListRecordsRequest = Message<"records.v1.ListRecordsRequest"
625
578
  * for models with publishing enabled. Public-API callers must hold a
626
579
  * drafts:read scope to set this true.
627
580
  *
628
- * @generated from field: bool preview = 8;
581
+ * @generated from field: bool preview = 5;
629
582
  */
630
583
  preview: boolean;
631
584
 
632
585
  /**
633
- * Structural WhereInput from the api-public typed surface. Coexists with
634
- * `filters` during the query/mutate redesign migration (see
635
- * foir-platform/docs/query-mutate-redesign.md); Stage 6 removes `filters`.
636
- * Empty/unset is treated as no-filter — callers pick which form to send.
586
+ * Typed WhereInput tree from api-public's <Model>WhereInput surface
587
+ * (Stage 1 of the query/mutate redesign). Walked by
588
+ * services/platform/internal/handler/records/where.go::buildWhereSQL.
637
589
  *
638
- * @generated from field: optional google.protobuf.Struct where = 9;
590
+ * @generated from field: optional google.protobuf.Struct where = 6;
639
591
  */
640
592
  where?: JsonObject | undefined;
641
593
 
642
594
  /**
643
- * Cursor pagination from Stage 3b of the query/mutate redesign.
644
- * Coexists with limit/offset during the migration; Stage 6 removes the
645
- * offset path. Direction is determined by which pair is set:
595
+ * Relay cursor pagination (Stage 3b). Direction determined by which
596
+ * pair is set:
646
597
  * * forward: first + (optional) after
647
598
  * * backward: last + (optional) before
648
599
  * Mixing first with last is an error. Cursors are opaque base64url
649
600
  * tokens; format documented in services/platform/internal/handler/records/cursor.go.
650
601
  *
651
- * @generated from field: optional string after = 10;
602
+ * @generated from field: optional string after = 7;
652
603
  */
653
604
  after?: string | undefined;
654
605
 
655
606
  /**
656
- * @generated from field: optional string before = 11;
607
+ * @generated from field: optional string before = 8;
657
608
  */
658
609
  before?: string | undefined;
659
610
 
660
611
  /**
661
- * @generated from field: optional int32 first = 12;
612
+ * @generated from field: optional int32 first = 9;
662
613
  */
663
614
  first?: number | undefined;
664
615
 
665
616
  /**
666
- * @generated from field: optional int32 last = 13;
617
+ * @generated from field: optional int32 last = 10;
667
618
  */
668
619
  last?: number | undefined;
669
620
  };
@@ -761,30 +712,19 @@ export declare type UpdateRecordRequest = Message<"records.v1.UpdateRecordReques
761
712
  id: string;
762
713
 
763
714
  /**
764
- * Flat-merge data: when set, this struct is appended via JSONB `||` —
765
- * top-level keys overwrite, nested composites are replaced wholesale.
766
- * Coexists with `typed_update` during the migration; Stage 6 removes
767
- * this field in favor of the typed path.
715
+ * UpdateInput tree per the query/mutate redesign `{field: {set:
716
+ * value}, count: {increment: 1}, ...}`. Walked by buildUpdateSQL to
717
+ * emit per-leaf jsonb_set / numeric / list / connect operations as
718
+ * a single atomic UPDATE.
768
719
  *
769
- * @generated from field: google.protobuf.Struct data = 2;
720
+ * @generated from field: google.protobuf.Struct update = 2;
770
721
  */
771
- data?: JsonObject | undefined;
722
+ update?: JsonObject | undefined;
772
723
 
773
724
  /**
774
725
  * @generated from field: optional string natural_key = 3;
775
726
  */
776
727
  naturalKey?: string | undefined;
777
-
778
- /**
779
- * Typed UpdateInput tree from Stage 4 of the query/mutate redesign.
780
- * When set, the handler walks it and emits per-leaf jsonb_set /
781
- * increment / push / pull / connect operations instead of a flat
782
- * merge. Mutually exclusive with `data` — sending both is an error.
783
- * See foir-platform/docs/query-mutate-redesign.md.
784
- *
785
- * @generated from field: optional google.protobuf.Struct typed_update = 4;
786
- */
787
- typedUpdate?: JsonObject | undefined;
788
728
  };
789
729
 
790
730
  /**
@@ -955,14 +895,22 @@ export declare type BulkUpdateRecordsRequest = Message<"records.v1.BulkUpdateRec
955
895
  modelKey: string;
956
896
 
957
897
  /**
958
- * @generated from field: repeated records.v1.RecordFilter filter = 2;
898
+ * WhereInput predicate. Empty matches every record in the model —
899
+ * operators should always scope by some predicate to avoid unbounded
900
+ * writes. Walked by services/platform/internal/handler/records/where.go::buildWhereSQL.
901
+ *
902
+ * @generated from field: optional google.protobuf.Struct where = 2;
959
903
  */
960
- filter: RecordFilter[];
904
+ where?: JsonObject | undefined;
961
905
 
962
906
  /**
963
- * @generated from field: google.protobuf.Struct data = 3;
907
+ * UpdateInput tree. Walked by buildUpdateSQL to produce a single
908
+ * UPDATE statement so every op applies atomically across all
909
+ * matching rows.
910
+ *
911
+ * @generated from field: optional google.protobuf.Struct update = 3;
964
912
  */
965
- data?: JsonObject | undefined;
913
+ update?: JsonObject | undefined;
966
914
  };
967
915
 
968
916
  /**
@@ -979,6 +927,15 @@ export declare type BulkUpdateRecordsResponse = Message<"records.v1.BulkUpdateRe
979
927
  * @generated from field: int32 count = 1;
980
928
  */
981
929
  count: number;
930
+
931
+ /**
932
+ * IDs of the affected records, in match order. Callers chaining
933
+ * mutations (e.g. updateMany → trigger downstream sync) need the
934
+ * list, not just the count.
935
+ *
936
+ * @generated from field: repeated string ids = 2;
937
+ */
938
+ ids: string[];
982
939
  };
983
940
 
984
941
  /**
@@ -1026,6 +983,54 @@ export declare type BackfillQueryableIndexResponse = Message<"records.v1.Backfil
1026
983
  */
1027
984
  export declare const BackfillQueryableIndexResponseSchema: GenMessage<BackfillQueryableIndexResponse>;
1028
985
 
986
+ /**
987
+ * BackfillModelIndexes is the operator-facing one-shot that rebuilds
988
+ * both the record_lookups projection AND the record_field_index for
989
+ * every record of a model. Use this after declaring a new lookup,
990
+ * flipping `queryable: true` on a field, or whenever you suspect the
991
+ * projections have drifted from records.data. Idempotent; safe to
992
+ * re-run from cron.
993
+ *
994
+ * Internally composes BackfillModelLookups + BackfillQueryableIndex so
995
+ * operators have one button to press after model schema changes
996
+ * instead of remembering which index needs which RPC.
997
+ *
998
+ * @generated from message records.v1.BackfillModelIndexesRequest
999
+ */
1000
+ export declare type BackfillModelIndexesRequest = Message<"records.v1.BackfillModelIndexesRequest"> & {
1001
+ /**
1002
+ * @generated from field: string model_key = 1;
1003
+ */
1004
+ modelKey: string;
1005
+ };
1006
+
1007
+ /**
1008
+ * Describes the message records.v1.BackfillModelIndexesRequest.
1009
+ * Use `create(BackfillModelIndexesRequestSchema)` to create a new message.
1010
+ */
1011
+ export declare const BackfillModelIndexesRequestSchema: GenMessage<BackfillModelIndexesRequest>;
1012
+
1013
+ /**
1014
+ * @generated from message records.v1.BackfillModelIndexesResponse
1015
+ */
1016
+ export declare type BackfillModelIndexesResponse = Message<"records.v1.BackfillModelIndexesResponse"> & {
1017
+ /**
1018
+ * @generated from field: int32 lookups_records_walked = 1;
1019
+ */
1020
+ lookupsRecordsWalked: number;
1021
+
1022
+ /**
1023
+ * @generated from field: int32 queryable_records_indexed = 2;
1024
+ */
1025
+ queryableRecordsIndexed: number;
1026
+ };
1027
+
1028
+ /**
1029
+ * Describes the message records.v1.BackfillModelIndexesResponse.
1030
+ * Use `create(BackfillModelIndexesResponseSchema)` to create a new message.
1031
+ */
1032
+ export declare const BackfillModelIndexesResponseSchema: GenMessage<BackfillModelIndexesResponse>;
1033
+
1029
1034
  /**
1030
1035
  * @generated from message records.v1.DuplicateRecordRequest
1031
1036
  */
@@ -2965,6 +2970,14 @@ export declare const RecordsService: GenService<{
2965
2970
  input: typeof BackfillQueryableIndexRequestSchema;
2966
2971
  output: typeof BackfillQueryableIndexResponseSchema;
2967
2972
  },
2973
+ /**
2974
+ * @generated from rpc records.v1.RecordsService.BackfillModelIndexes
2975
+ */
2976
+ backfillModelIndexes: {
2977
+ methodKind: "unary";
2978
+ input: typeof BackfillModelIndexesRequestSchema;
2979
+ output: typeof BackfillModelIndexesResponseSchema;
2980
+ },
2968
2981
  /**
2969
2982
  * @generated from rpc records.v1.RecordsService.DuplicateRecord
2970
2983
  */
@@ -10,7 +10,7 @@ import { file_expressions_v1_expressions } from "../../expressions/v1/expression
10
10
  * Describes the file records/v1/records.proto.
11
11
  */
12
12
  export const file_records_v1_records = /*@__PURE__*/
13
- fileDesc("ChhyZWNvcmRzL3YxL3JlY29yZHMucHJvdG8SCnJlY29yZHMudjEihA0KBlJlY29yZBIKCgJpZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIWCglwYXJlbnRfaWQYBCABKAlIAYgBARIrCgtyZWNvcmRfdHlwZRgFIAEoDjIWLnJlY29yZHMudjEuUmVjb3JkVHlwZRIlCgRkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIYCgtjdXN0b21lcl9pZBgIIAEoCUgDiAEBEhEKCXRlbmFudF9pZBgKIAEoCRISCgpwcm9qZWN0X2lkGAsgASgJEhcKCmNyZWF0ZWRfYnkYFCABKAlIBIgBARIXCgp1cGRhdGVkX2J5GBUgASgJSAWIAQESLgoKY3JlYXRlZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoOdmVyc2lvbl9udW1iZXIYKCABKAVIBogBARIZCgxjb250ZW50X2hhc2gYKSABKAlIB4gBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YKiABKAlICIgBARIbCg5wdWJsaXNoX3N0YXR1cxgrIAEoCUgJiAEBEj0KFHNjaGVkdWxlZF9wdWJsaXNoX2F0GCwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgKiAEBEj8KFnNjaGVkdWxlZF91bnB1Ymxpc2hfYXQYLSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAuIAQESGAoLdmFyaWFudF9rZXkYMiABKAlIDIgBARIZCgx2YXJpYW50X25hbWUYMyABKAlIDYgBARIgChN2YXJpYW50X2Rlc2NyaXB0aW9uGDQgASgJSA6IAQESFwoKY2F0YWxvZ19pZBg1IAEoCUgPiAEBEhUKCHByaW9yaXR5GDYgASgFSBCIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGDcgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IEYgBARIXCgppc19kZWZhdWx0GDggASgISBKIAQESHwoSY3VycmVudF92ZXJzaW9uX2lkGDwgASgJSBOIAQESIQoUcHVibGlzaGVkX3ZlcnNpb25faWQYPSABKAlIFIgBARIlChhwdWJsaXNoZWRfdmVyc2lvbl9udW1iZXIYPiABKAVIFYgBARI1CgxwdWJsaXNoZWRfYXQYPyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBaIAQESGQoMcHVibGlzaGVkX2J5GEAgASgJSBeIAQESEwoLY2FuX3B1Ymxpc2gYQSABKAgSFQoNY2FuX3VucHVibGlzaBhCIAEoCBIfChdoYXNfdW5wdWJsaXNoZWRfY2hhbmdlcxhDIAEoCBIdChBtb2RlbF92ZXJzaW9uX2lkGEYgASgJSBiIAQFCDgoMX25hdHVyYWxfa2V5QgwKCl9wYXJlbnRfaWRCCwoJX21ldGFkYXRhQg4KDF9jdXN0b21lcl9pZEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUIRCg9fdmVyc2lvbl9udW1iZXJCDwoNX2NvbnRlbnRfaGFzaEIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQhEKD19wdWJsaXNoX3N0YXR1c0IXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXRCDgoMX3ZhcmlhbnRfa2V5Qg8KDV92YXJpYW50X25hbWVCFgoUX3ZhcmlhbnRfZGVzY3JpcHRpb25CDQoLX2NhdGFsb2dfaWRCCwoJX3ByaW9yaXR5QhIKEF90YXJnZXRpbmdfcnVsZXNCDQoLX2lzX2RlZmF1bHRCFQoTX2N1cnJlbnRfdmVyc2lvbl9pZEIXChVfcHVibGlzaGVkX3ZlcnNpb25faWRCGwoZX3B1Ymxpc2hlZF92ZXJzaW9uX251bWJlckIPCg1fcHVibGlzaGVkX2F0Qg8KDV9wdWJsaXNoZWRfYnlCEwoRX21vZGVsX3ZlcnNpb25faWQi9QEKD1B1Ymxpc2hTY2hlZHVsZRISCgp2ZXJzaW9uX2lkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAUgASgJSAGIAQFCDwoNX3VucHVibGlzaF9hdEINCgtfY3JlYXRlZF9ieSJ8CgxSZWNvcmRGaWx0ZXISDQoFZmllbGQYASABKAkSEAoIb3BlcmF0b3IYAiABKAkSJQoFdmFsdWUYAyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSFgoJcmVmX21vZGVsGAQgASgJSACIAQFCDAoKX3JlZl9tb2RlbCIuCglTb3J0RmllbGQSDQoFZmllbGQYASABKAkSEgoKZGVzY2VuZGluZxgCIAEoCCKFAgoOQmF0Y2hPcGVyYXRpb24SLAoEdHlwZRgBIAEoDjIeLnJlY29yZHMudjEuQmF0Y2hPcGVyYXRpb25UeXBlEg8KAmlkGAIgASgJSACIAQESFgoJbW9kZWxfa2V5GAMgASgJSAGIAQESGAoLbmF0dXJhbF9rZXkYBCABKAlIAogBARIqCgRkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhgKC2N1c3RvbWVyX2lkGAYgASgJSASIAQFCBQoDX2lkQgwKCl9tb2RlbF9rZXlCDgoMX25hdHVyYWxfa2V5QgcKBV9kYXRhQg4KDF9jdXN0b21lcl9pZCKIAQoUQmF0Y2hPcGVyYXRpb25SZXN1bHQSDQoFaW5kZXgYASABKAUSDwoHc3VjY2VzcxgCIAEoCBInCgZyZWNvcmQYAyABKAsyEi5yZWNvcmRzLnYxLlJlY29yZEgAiAEBEhIKBWVycm9yGAQgASgJSAGIAQFCCQoHX3JlY29yZEIICgZfZXJyb3IimAIKE0NyZWF0ZVJlY29yZFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhgKC25hdHVyYWxfa2V5GAIgASgJSACIAQESJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoLY3VzdG9tZXJfaWQYBCABKAlIAYgBARIuCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YBiABKAlIA4gBAUIOCgxfbmF0dXJhbF9rZXlCDgoMX2N1c3RvbWVyX2lkQgsKCV9tZXRhZGF0YUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIqYBChRDcmVhdGVSZWNvcmRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIoCgd2YXJpYW50GAIgASgLMhIucmVjb3Jkcy52MS5SZWNvcmRIAIgBARIoCgd2ZXJzaW9uGAMgASgLMhIucmVjb3Jkcy52MS5SZWNvcmRIAYgBAUIKCghfdmFyaWFudEIKCghfdmVyc2lvbiIeChBHZXRSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJIjcKEUdldFJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIj8KFUdldFJlY29yZEJ5S2V5UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbmF0dXJhbF9rZXkYAiABKAkiPAoWR2V0UmVjb3JkQnlLZXlSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJCChlHZXRSZWNvcmRCeUtleU9ySWRSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgppZGVudGlmaWVyGAIgASgJIkAKGkdldFJlY29yZEJ5S2V5T3JJZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIqADChJMaXN0UmVjb3Jkc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEg0KBWxpbWl0GAIgASgFEg4KBm9mZnNldBgDIAEoBRIpCgdmaWx0ZXJzGAQgAygLMhgucmVjb3Jkcy52MS5SZWNvcmRGaWx0ZXISIwoEc29ydBgFIAMoCzIVLnJlY29yZHMudjEuU29ydEZpZWxkEhgKC2N1c3RvbWVyX2lkGAYgASgJSACIAQESEwoGc2VhcmNoGAcgASgJSAGIAQESDwoHcHJldmlldxgIIAEoCBIrCgV3aGVyZRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARISCgVhZnRlchgKIAEoCUgDiAEBEhMKBmJlZm9yZRgLIAEoCUgEiAEBEhIKBWZpcnN0GAwgASgFSAWIAQESEQoEbGFzdBgNIAEoBUgGiAEBQg4KDF9jdXN0b21lcl9pZEIJCgdfc2VhcmNoQggKBl93aGVyZUIICgZfYWZ0ZXJCCQoHX2JlZm9yZUIICgZfZmlyc3RCBwoFX2xhc3QilgEKE0xpc3RSZWNvcmRzUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFEiwKCXBhZ2VfaW5mbxgDIAEoCzIULnJlY29yZHMudjEuUGFnZUluZm9IAIgBARIPCgdjdXJzb3JzGAQgAygJQgwKCl9wYWdlX2luZm8ikAEKCFBhZ2VJbmZvEhUKDWhhc19uZXh0X3BhZ2UYASABKAgSGQoRaGFzX3ByZXZpb3VzX3BhZ2UYAiABKAgSGQoMc3RhcnRfY3Vyc29yGAMgASgJSACIAQESFwoKZW5kX2N1cnNvchgEIAEoCUgBiAEBQg8KDV9zdGFydF9jdXJzb3JCDQoLX2VuZF9jdXJzb3IitwEKE1VwZGF0ZVJlY29yZFJlcXVlc3QSCgoCaWQYASABKAkSJQoEZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIyCgx0eXBlZF91cGRhdGUYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQFCDgoMX25hdHVyYWxfa2V5Qg8KDV90eXBlZF91cGRhdGUiOgoUVXBkYXRlUmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiIQoTRGVsZXRlUmVjb3JkUmVxdWVzdBIKCgJpZBgBIAEoCSInChREZWxldGVSZWNvcmRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIqcBChNVcHNlcnRSZWNvcmRSZXF1ZXN0EhEKCXRlbmFudF9pZBgBIAEoCRISCgpwcm9qZWN0X2lkGAIgASgJEhEKCW1vZGVsX2tleRgDIAEoCRITCgtuYXR1cmFsX2tleRgEIAEoCRIlCgRkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIaChJjaGFuZ2VfZGVzY3JpcHRpb24YBiABKAkiSwoUVXBzZXJ0UmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQSDwoHY3JlYXRlZBgCIAEoCCJOChxCYXRjaFJlY29yZE9wZXJhdGlvbnNSZXF1ZXN0Ei4KCm9wZXJhdGlvbnMYASADKAsyGi5yZWNvcmRzLnYxLkJhdGNoT3BlcmF0aW9uIlIKHUJhdGNoUmVjb3JkT3BlcmF0aW9uc1Jlc3BvbnNlEjEKB3Jlc3VsdHMYASADKAsyIC5yZWNvcmRzLnYxLkJhdGNoT3BlcmF0aW9uUmVzdWx0In4KGEJ1bGtVcGRhdGVSZWNvcmRzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSKAoGZmlsdGVyGAIgAygLMhgucmVjb3Jkcy52MS5SZWNvcmRGaWx0ZXISJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiKgoZQnVsa1VwZGF0ZVJlY29yZHNSZXNwb25zZRINCgVjb3VudBgBIAEoBSIyCh1CYWNrZmlsbFF1ZXJ5YWJsZUluZGV4UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkiOQoeQmFja2ZpbGxRdWVyeWFibGVJbmRleFJlc3BvbnNlEhcKD3JlY29yZHNfaW5kZXhlZBgBIAEoBSJWChZEdXBsaWNhdGVSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJEhwKD25ld19uYXR1cmFsX2tleRgCIAEoCUgAiAEBQhIKEF9uZXdfbmF0dXJhbF9rZXkiPQoXRHVwbGljYXRlUmVjb3JkUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiUAobRHVwbGljYXRlUmVjb3Jkc0J1bGtSZXF1ZXN0EgsKA2lkcxgBIAMoCRIWCgltb2RlbF9rZXkYAiABKAlIAIgBAUIMCgpfbW9kZWxfa2V5IkMKHER1cGxpY2F0ZVJlY29yZHNCdWxrUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkIogBChRDcmVhdGVWZXJzaW9uUmVxdWVzdBIRCglwYXJlbnRfaWQYASABKAkSJQoEZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSHwoSY2hhbmdlX2Rlc2NyaXB0aW9uGAMgASgJSACIAQFCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbiI8ChVDcmVhdGVWZXJzaW9uUmVzcG9uc2USIwoHdmVyc2lvbhgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIisKFVB1Ymxpc2hWZXJzaW9uUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJIjwKFlB1Ymxpc2hWZXJzaW9uUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiKwoWVW5wdWJsaXNoUmVjb3JkUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkiKgoXVW5wdWJsaXNoUmVjb3JkUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIsChZSZXZlcnRUb1ZlcnNpb25SZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiPQoXUmV2ZXJ0VG9WZXJzaW9uUmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiTQoZTGlzdFJlY29yZFZlcnNpb25zUmVxdWVzdBIRCglwYXJlbnRfaWQYASABKAkSDQoFbGltaXQYAiABKAUSDgoGb2Zmc2V0GAMgASgFIlEKGkxpc3RSZWNvcmRWZXJzaW9uc1Jlc3BvbnNlEiQKCHZlcnNpb25zGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUiZQoUQ3JlYXRlVmFyaWFudFJlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhMKC3ZhcmlhbnRfa2V5GAIgASgJEiUKBGRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IjwKFUNyZWF0ZVZhcmlhbnRSZXNwb25zZRIjCgd2YXJpYW50GAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQimgEKFFVwZGF0ZVZhcmlhbnRSZXF1ZXN0EhIKCnZhcmlhbnRfaWQYASABKAkSJQoEZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNAoObWV0YWRhdGFfcGF0Y2gYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCEQoPX21ldGFkYXRhX3BhdGNoIjwKFVVwZGF0ZVZhcmlhbnRSZXNwb25zZRIjCgd2YXJpYW50GAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiKgoURGVsZXRlVmFyaWFudFJlcXVlc3QSEgoKdmFyaWFudF9pZBgBIAEoCSIoChVEZWxldGVWYXJpYW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJBChhTZXREZWZhdWx0VmFyaWFudFJlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEhIKCnZhcmlhbnRfaWQYAiABKAkiPwoZU2V0RGVmYXVsdFZhcmlhbnRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJNChlMaXN0UmVjb3JkVmFyaWFudHNSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRINCgVsaW1pdBgCIAEoBRIOCgZvZmZzZXQYAyABKAUiUQoaTGlzdFJlY29yZFZhcmlhbnRzUmVzcG9uc2USJAoIdmFyaWFudHMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBINCgV0b3RhbBgCIAEoBSKwAQoSU2F2ZUNvbnRlbnRSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIlCgRkYXRhGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIYCgt2YXJpYW50X2tleRgDIAEoCUgAiAEBEh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgEIAEoCUgBiAEBQg4KDF92YXJpYW50X2tleUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIl4KE1NhdmVDb250ZW50UmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQSIwoHdmVyc2lvbhgCIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIqoBChxTY2hlZHVsZVJlY29yZFB1Ymxpc2hSZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkSLgoKcHVibGlzaF9hdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASNQoMdW5wdWJsaXNoX2F0GAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQg8KDV91bnB1Ymxpc2hfYXQiRAodU2NoZWR1bGVSZWNvcmRQdWJsaXNoUmVzcG9uc2USIwoHdmVyc2lvbhgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIjkKI0NhbmNlbFNjaGVkdWxlZFJlY29yZFB1Ymxpc2hSZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiSwokQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlc3BvbnNlEiMKB3ZlcnNpb24YASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCLQAQodTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1JlcXVlc3QSLQoEZnJvbRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIrCgJ0bxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIWCgltb2RlbF9rZXkYAyABKAlIAogBARINCgVsaW1pdBgEIAEoBRIOCgZvZmZzZXQYBSABKAVCBwoFX2Zyb21CBQoDX3RvQgwKCl9tb2RlbF9rZXkiVQoeTGlzdFNjaGVkdWxlZFB1Ymxpc2hlc1Jlc3BvbnNlEiQKCHZlcnNpb25zGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUiMAoaR2V0U2NoZWR1bGVkUHVibGlzaFJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCSJMChtHZXRTY2hlZHVsZWRQdWJsaXNoUmVzcG9uc2USLQoIc2NoZWR1bGUYASABKAsyGy5yZWNvcmRzLnYxLlB1Ymxpc2hTY2hlZHVsZSKZAQoYTGlzdERyYWZ0VmVyc2lvbnNSZXF1ZXN0EhYKCW1vZGVsX2tleRgBIAEoCUgAiAEBEhMKBnNlYXJjaBgCIAEoCUgBiAEBEg0KBWxpbWl0GAMgASgFEg4KBm9mZnNldBgEIAEoBRIYChBkZWR1cGVfYnlfcGFyZW50GAUgASgIQgwKCl9tb2RlbF9rZXlCCQoHX3NlYXJjaCJQChlMaXN0RHJhZnRWZXJzaW9uc1Jlc3BvbnNlEiQKCHZlcnNpb25zGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUiMgobQmF0Y2hQdWJsaXNoVmVyc2lvbnNSZXF1ZXN0EhMKC3ZlcnNpb25faWRzGAEgAygJIlwKHEJhdGNoUHVibGlzaFZlcnNpb25zUmVzcG9uc2USIwoHcmVjb3JkcxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEhcKD3B1Ymxpc2hlZF9jb3VudBgCIAEoBSK5AQoaQmF0Y2hSZXNvbHZlUmVjb3Jkc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhIKCnJlY29yZF9pZHMYAiADKAkSGAoLY3VzdG9tZXJfaWQYAyABKAlIAIgBARItCgdjb250ZXh0GAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEg8KB3ByZXZpZXcYBSABKAhCDgoMX2N1c3RvbWVyX2lkQgoKCF9jb250ZXh0IkoKG0JhdGNoUmVzb2x2ZVJlY29yZHNSZXNwb25zZRIrCgdyZWNvcmRzGAEgAygLMhoucmVjb3Jkcy52MS5SZXNvbHZlZFJlY29yZCLNAgoOUmVzb2x2ZWRSZWNvcmQSEQoJcmVjb3JkX2lkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCRIYCgtuYXR1cmFsX2tleRgDIAEoCUgAiAEBEiUKBGRhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIXCgp2YXJpYW50X2lkGAYgASgJSAGIAQESEQoJaGFzX2RyYWZ0GAggASgIEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9uYXR1cmFsX2tleUINCgtfdmFyaWFudF9pZCIvChlMb29rdXBSZWNvcmRNb2RlbHNSZXF1ZXN0EhIKCnJlY29yZF9pZHMYASADKAkiOAoQUmVjb3JkTW9kZWxFbnRyeRIRCglyZWNvcmRfaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJIksKGkxvb2t1cFJlY29yZE1vZGVsc1Jlc3BvbnNlEi0KB2VudHJpZXMYASADKAsyHC5yZWNvcmRzLnYxLlJlY29yZE1vZGVsRW50cnkiRwoTR2xvYmFsU2VhcmNoUmVxdWVzdBINCgVxdWVyeRgBIAEoCRISCgptb2RlbF9rZXlzGAIgAygJEg0KBWxpbWl0GAogASgFIpEBChBTZWFyY2hSZXN1bHRJdGVtEgoKAmlkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCRIYCgtuYXR1cmFsX2tleRgDIAEoCUgAiAEBEiUKBGRhdGEYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg0KBXNjb3JlGAUgASgBQg4KDF9uYXR1cmFsX2tleSJUChRHbG9iYWxTZWFyY2hSZXNwb25zZRItCgdyZWNvcmRzGAEgAygLMhwucmVjb3Jkcy52MS5TZWFyY2hSZXN1bHRJdGVtEg0KBXRvdGFsGAIgASgFIqEBCg5FbWJlZGRpbmdTdGF0cxIRCgltb2RlbF9rZXkYASABKAkSFQoNdG90YWxfcmVjb3JkcxgCIAEoBRIYChBlbWJlZGRlZF9yZWNvcmRzGAMgASgFEhcKD3BlbmRpbmdfcmVjb3JkcxgEIAEoBRIdChBsYXN0X2VtYmVkZGVkX2F0GAUgASgJSACIAQFCEwoRX2xhc3RfZW1iZWRkZWRfYXQidQoPUmVjb3JkRW1iZWRkaW5nEhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSEgoKZGltZW5zaW9ucxgDIAEoBRIYCgtlbWJlZGRlZF9hdBgEIAEoCUgAiAEBQg4KDF9lbWJlZGRlZF9hdCKTAQoNU2ltaWxhclJlY29yZBIKCgJpZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIlCgRkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBISCgpzaW1pbGFyaXR5GAUgASgBQg4KDF9uYXR1cmFsX2tleSJAChhHZXRFbWJlZGRpbmdTdGF0c1JlcXVlc3QSFgoJbW9kZWxfa2V5GAEgASgJSACIAQFCDAoKX21vZGVsX2tleSJGChlHZXRFbWJlZGRpbmdTdGF0c1Jlc3BvbnNlEikKBXN0YXRzGAEgAygLMhoucmVjb3Jkcy52MS5FbWJlZGRpbmdTdGF0cyIvChpHZXRSZWNvcmRFbWJlZGRpbmdzUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkiTgobR2V0UmVjb3JkRW1iZWRkaW5nc1Jlc3BvbnNlEi8KCmVtYmVkZGluZ3MYASADKAsyGy5yZWNvcmRzLnYxLlJlY29yZEVtYmVkZGluZyJjChlGaW5kU2ltaWxhclJlY29yZHNSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIWCgltb2RlbF9rZXkYAiABKAlIAIgBARINCgVsaW1pdBgKIAEoBUIMCgpfbW9kZWxfa2V5IkgKGkZpbmRTaW1pbGFyUmVjb3Jkc1Jlc3BvbnNlEioKB3JlY29yZHMYASADKAsyGS5yZWNvcmRzLnYxLlNpbWlsYXJSZWNvcmQimwEKFldyaXRlRW1iZWRkaW5nc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJEg4KBnZlY3RvchgCIAMoAhISCgpkaW1lbnNpb25zGAMgASgFEhUKCHByb3ZpZGVyGAQgASgJSACIAQESFwoKbW9kZWxfbmFtZRgFIAEoCUgBiAEBQgsKCV9wcm92aWRlckINCgtfbW9kZWxfbmFtZSIqChdXcml0ZUVtYmVkZGluZ3NSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIIiwKF0RlbGV0ZUVtYmVkZGluZ3NSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCSIrChhEZWxldGVFbWJlZGRpbmdzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCJnCh9FbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSEwoGc291cmNlGAMgASgJSACIAQFCCQoHX3NvdXJjZSI0CiBFbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmdSZXNwb25zZRIQCghlbnF1ZXVlZBgBIAEoCCJkChdTZWFyY2hFbWJlZGRpbmdzUmVxdWVzdBIUCgxxdWVyeV92ZWN0b3IYASADKAISFgoJbW9kZWxfa2V5GAIgASgJSACIAQESDQoFbGltaXQYCiABKAVCDAoKX21vZGVsX2tleSJGChhTZWFyY2hFbWJlZGRpbmdzUmVzcG9uc2USKgoHcmVzdWx0cxgBIAMoCzIZLnJlY29yZHMudjEuU2ltaWxhclJlY29yZCKfAgoTTG9va3VwUmVjb3JkUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbG9va3VwX25hbWUYAiABKAkSEAoIa2V5X2hhc2gYAyABKAwSDwoHY2hhbm5lbBgEIAEoCRIXCgp2YXJpYW50X2lkGAUgASgJSACIAQESEwoGbG9jYWxlGAYgASgJSAGIAQESGAoLY3VzdG9tZXJfaWQYByABKAlIAogBARI2ChBjdXN0b21lcl9jb250ZXh0GAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBQg0KC192YXJpYW50X2lkQgkKB19sb2NhbGVCDgoMX2N1c3RvbWVyX2lkQhMKEV9jdXN0b21lcl9jb250ZXh0IjwKFExvb2t1cFJlY29yZFJlc3BvbnNlEhYKCXJlY29yZF9pZBgBIAEoCUgAiAEBQgwKCl9yZWNvcmRfaWQi6QEKHkNoZWNrTG9va3VwQXZhaWxhYmlsaXR5UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbG9va3VwX25hbWUYAiABKAkSEAoIa2V5X2hhc2gYAyABKAwSDwoHY2hhbm5lbBgEIAEoCRIXCgp2YXJpYW50X2lkGAUgASgJSACIAQESEwoGbG9jYWxlGAYgASgJSAGIAQESHgoRZXhjbHVkZV9yZWNvcmRfaWQYByABKAlIAogBAUINCgtfdmFyaWFudF9pZEIJCgdfbG9jYWxlQhQKEl9leGNsdWRlX3JlY29yZF9pZCI0Ch9DaGVja0xvb2t1cEF2YWlsYWJpbGl0eVJlc3BvbnNlEhEKCWF2YWlsYWJsZRgBIAEoCCKXAQoUTG9va3VwQ29uZmxpY3REZXRhaWwSEQoJbW9kZWxfa2V5GAEgASgJEhMKC2xvb2t1cF9uYW1lGAIgASgJEg8KB2NoYW5uZWwYAyABKAkSFwoKdmFyaWFudF9pZBgEIAEoCUgAiAEBEhMKBmxvY2FsZRgFIAEoCUgBiAEBQg0KC192YXJpYW50X2lkQgkKB19sb2NhbGUiagoaTGlzdExvb2t1cENvbmZsaWN0c1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhgKC2xvb2t1cF9uYW1lGAIgASgJSACIAQESDwoHY2hhbm5lbBgDIAEoCUIOCgxfbG9va3VwX25hbWUiSAobTGlzdExvb2t1cENvbmZsaWN0c1Jlc3BvbnNlEikKBmdyb3VwcxgBIAMoCzIZLnJlY29yZHMudjEuQ29uZmxpY3RHcm91cCKbAQoNQ29uZmxpY3RHcm91cBITCgtlbmNvZGVkX2tleRgBIAEoCRIPCgdjaGFubmVsGAIgASgJEhcKCnZhcmlhbnRfaWQYAyABKAlIAIgBARIYCgtjdXN0b21lcl9pZBgEIAEoCUgBiAEBEhIKCnJlY29yZF9pZHMYBSADKAlCDQoLX3ZhcmlhbnRfaWRCDgoMX2N1c3RvbWVyX2lkIi8KGlJlYnVpbGRNb2RlbExvb2t1cHNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSI1ChtSZWJ1aWxkTW9kZWxMb29rdXBzUmVzcG9uc2USFgoOcmVjb3Jkc193YWxrZWQYASABKAUqcwoKUmVjb3JkVHlwZRIbChdSRUNPUkRfVFlQRV9VTlNQRUNJRklFRBAAEhYKElJFQ09SRF9UWVBFX1JFQ09SRBABEhcKE1JFQ09SRF9UWVBFX1ZBUklBTlQQAhIXChNSRUNPUkRfVFlQRV9WRVJTSU9OEAMqnQEKEkJhdGNoT3BlcmF0aW9uVHlwZRIkCiBCQVRDSF9PUEVSQVRJT05fVFlQRV9VTlNQRUNJRklFRBAAEh8KG0JBVENIX09QRVJBVElPTl9UWVBFX0NSRUFURRABEh8KG0JBVENIX09QRVJBVElPTl9UWVBFX1VQREFURRACEh8KG0JBVENIX09QRVJBVElPTl9UWVBFX0RFTEVURRADMrAhCg5SZWNvcmRzU2VydmljZRJRCgxDcmVhdGVSZWNvcmQSHy5yZWNvcmRzLnYxLkNyZWF0ZVJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLkNyZWF0ZVJlY29yZFJlc3BvbnNlEkgKCUdldFJlY29yZBIcLnJlY29yZHMudjEuR2V0UmVjb3JkUmVxdWVzdBodLnJlY29yZHMudjEuR2V0UmVjb3JkUmVzcG9uc2USVwoOR2V0UmVjb3JkQnlLZXkSIS5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5UmVxdWVzdBoiLnJlY29yZHMudjEuR2V0UmVjb3JkQnlLZXlSZXNwb25zZRJjChJHZXRSZWNvcmRCeUtleU9ySWQSJS5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5T3JJZFJlcXVlc3QaJi5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5T3JJZFJlc3BvbnNlEk4KC0xpc3RSZWNvcmRzEh4ucmVjb3Jkcy52MS5MaXN0UmVjb3Jkc1JlcXVlc3QaHy5yZWNvcmRzLnYxLkxpc3RSZWNvcmRzUmVzcG9uc2USUQoMVXBkYXRlUmVjb3JkEh8ucmVjb3Jkcy52MS5VcGRhdGVSZWNvcmRSZXF1ZXN0GiAucmVjb3Jkcy52MS5VcGRhdGVSZWNvcmRSZXNwb25zZRJRCgxVcHNlcnRSZWNvcmQSHy5yZWNvcmRzLnYxLlVwc2VydFJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLlVwc2VydFJlY29yZFJlc3BvbnNlElEKDERlbGV0ZVJlY29yZBIfLnJlY29yZHMudjEuRGVsZXRlUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuRGVsZXRlUmVjb3JkUmVzcG9uc2USbAoVQmF0Y2hSZWNvcmRPcGVyYXRpb25zEigucmVjb3Jkcy52MS5CYXRjaFJlY29yZE9wZXJhdGlvbnNSZXF1ZXN0GikucmVjb3Jkcy52MS5CYXRjaFJlY29yZE9wZXJhdGlvbnNSZXNwb25zZRJgChFCdWxrVXBkYXRlUmVjb3JkcxIkLnJlY29yZHMudjEuQnVsa1VwZGF0ZVJlY29yZHNSZXF1ZXN0GiUucmVjb3Jkcy52MS5CdWxrVXBkYXRlUmVjb3Jkc1Jlc3BvbnNlEm8KFkJhY2tmaWxsUXVlcnlhYmxlSW5kZXgSKS5yZWNvcmRzLnYxLkJhY2tmaWxsUXVlcnlhYmxlSW5kZXhSZXF1ZXN0GioucmVjb3Jkcy52MS5CYWNrZmlsbFF1ZXJ5YWJsZUluZGV4UmVzcG9uc2USWgoPRHVwbGljYXRlUmVjb3JkEiIucmVjb3Jkcy52MS5EdXBsaWNhdGVSZWNvcmRSZXF1ZXN0GiMucmVjb3Jkcy52MS5EdXBsaWNhdGVSZWNvcmRSZXNwb25zZRJpChREdXBsaWNhdGVSZWNvcmRzQnVsaxInLnJlY29yZHMudjEuRHVwbGljYXRlUmVjb3Jkc0J1bGtSZXF1ZXN0GigucmVjb3Jkcy52MS5EdXBsaWNhdGVSZWNvcmRzQnVsa1Jlc3BvbnNlElQKDUNyZWF0ZVZlcnNpb24SIC5yZWNvcmRzLnYxLkNyZWF0ZVZlcnNpb25SZXF1ZXN0GiEucmVjb3Jkcy52MS5DcmVhdGVWZXJzaW9uUmVzcG9uc2USVwoOUHVibGlzaFZlcnNpb24SIS5yZWNvcmRzLnYxLlB1Ymxpc2hWZXJzaW9uUmVxdWVzdBoiLnJlY29yZHMudjEuUHVibGlzaFZlcnNpb25SZXNwb25zZRJaCg9VbnB1Ymxpc2hSZWNvcmQSIi5yZWNvcmRzLnYxLlVucHVibGlzaFJlY29yZFJlcXVlc3QaIy5yZWNvcmRzLnYxLlVucHVibGlzaFJlY29yZFJlc3BvbnNlEloKD1JldmVydFRvVmVyc2lvbhIiLnJlY29yZHMudjEuUmV2ZXJ0VG9WZXJzaW9uUmVxdWVzdBojLnJlY29yZHMudjEuUmV2ZXJ0VG9WZXJzaW9uUmVzcG9uc2USYwoSTGlzdFJlY29yZFZlcnNpb25zEiUucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmVyc2lvbnNSZXF1ZXN0GiYucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmVyc2lvbnNSZXNwb25zZRJOCgtTYXZlQ29udGVudBIeLnJlY29yZHMudjEuU2F2ZUNvbnRlbnRSZXF1ZXN0Gh8ucmVjb3Jkcy52MS5TYXZlQ29udGVudFJlc3BvbnNlElQKDUNyZWF0ZVZhcmlhbnQSIC5yZWNvcmRzLnYxLkNyZWF0ZVZhcmlhbnRSZXF1ZXN0GiEucmVjb3Jkcy52MS5DcmVhdGVWYXJpYW50UmVzcG9uc2USVAoNVXBkYXRlVmFyaWFudBIgLnJlY29yZHMudjEuVXBkYXRlVmFyaWFudFJlcXVlc3QaIS5yZWNvcmRzLnYxLlVwZGF0ZVZhcmlhbnRSZXNwb25zZRJUCg1EZWxldGVWYXJpYW50EiAucmVjb3Jkcy52MS5EZWxldGVWYXJpYW50UmVxdWVzdBohLnJlY29yZHMudjEuRGVsZXRlVmFyaWFudFJlc3BvbnNlEmAKEVNldERlZmF1bHRWYXJpYW50EiQucmVjb3Jkcy52MS5TZXREZWZhdWx0VmFyaWFudFJlcXVlc3QaJS5yZWNvcmRzLnYxLlNldERlZmF1bHRWYXJpYW50UmVzcG9uc2USYwoSTGlzdFJlY29yZFZhcmlhbnRzEiUucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmFyaWFudHNSZXF1ZXN0GiYucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmFyaWFudHNSZXNwb25zZRJsChVTY2hlZHVsZVJlY29yZFB1Ymxpc2gSKC5yZWNvcmRzLnYxLlNjaGVkdWxlUmVjb3JkUHVibGlzaFJlcXVlc3QaKS5yZWNvcmRzLnYxLlNjaGVkdWxlUmVjb3JkUHVibGlzaFJlc3BvbnNlEoEBChxDYW5jZWxTY2hlZHVsZWRSZWNvcmRQdWJsaXNoEi8ucmVjb3Jkcy52MS5DYW5jZWxTY2hlZHVsZWRSZWNvcmRQdWJsaXNoUmVxdWVzdBowLnJlY29yZHMudjEuQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlc3BvbnNlEm8KFkxpc3RTY2hlZHVsZWRQdWJsaXNoZXMSKS5yZWNvcmRzLnYxLkxpc3RTY2hlZHVsZWRQdWJsaXNoZXNSZXF1ZXN0GioucmVjb3Jkcy52MS5MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVzcG9uc2USZgoTR2V0U2NoZWR1bGVkUHVibGlzaBImLnJlY29yZHMudjEuR2V0U2NoZWR1bGVkUHVibGlzaFJlcXVlc3QaJy5yZWNvcmRzLnYxLkdldFNjaGVkdWxlZFB1Ymxpc2hSZXNwb25zZRJgChFMaXN0RHJhZnRWZXJzaW9ucxIkLnJlY29yZHMudjEuTGlzdERyYWZ0VmVyc2lvbnNSZXF1ZXN0GiUucmVjb3Jkcy52MS5MaXN0RHJhZnRWZXJzaW9uc1Jlc3BvbnNlEmkKFEJhdGNoUHVibGlzaFZlcnNpb25zEicucmVjb3Jkcy52MS5CYXRjaFB1Ymxpc2hWZXJzaW9uc1JlcXVlc3QaKC5yZWNvcmRzLnYxLkJhdGNoUHVibGlzaFZlcnNpb25zUmVzcG9uc2USZgoTQmF0Y2hSZXNvbHZlUmVjb3JkcxImLnJlY29yZHMudjEuQmF0Y2hSZXNvbHZlUmVjb3Jkc1JlcXVlc3QaJy5yZWNvcmRzLnYxLkJhdGNoUmVzb2x2ZVJlY29yZHNSZXNwb25zZRJjChJMb29rdXBSZWNvcmRNb2RlbHMSJS5yZWNvcmRzLnYxLkxvb2t1cFJlY29yZE1vZGVsc1JlcXVlc3QaJi5yZWNvcmRzLnYxLkxvb2t1cFJlY29yZE1vZGVsc1Jlc3BvbnNlElEKDEdsb2JhbFNlYXJjaBIfLnJlY29yZHMudjEuR2xvYmFsU2VhcmNoUmVxdWVzdBogLnJlY29yZHMudjEuR2xvYmFsU2VhcmNoUmVzcG9uc2USUQoMTG9va3VwUmVjb3JkEh8ucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRSZXF1ZXN0GiAucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRSZXNwb25zZRJyChdDaGVja0xvb2t1cEF2YWlsYWJpbGl0eRIqLnJlY29yZHMudjEuQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHlSZXF1ZXN0GisucmVjb3Jkcy52MS5DaGVja0xvb2t1cEF2YWlsYWJpbGl0eVJlc3BvbnNlEmYKE0xpc3RMb29rdXBDb25mbGljdHMSJi5yZWNvcmRzLnYxLkxpc3RMb29rdXBDb25mbGljdHNSZXF1ZXN0GicucmVjb3Jkcy52MS5MaXN0TG9va3VwQ29uZmxpY3RzUmVzcG9uc2USZgoTUmVidWlsZE1vZGVsTG9va3VwcxImLnJlY29yZHMudjEuUmVidWlsZE1vZGVsTG9va3Vwc1JlcXVlc3QaJy5yZWNvcmRzLnYxLlJlYnVpbGRNb2RlbExvb2t1cHNSZXNwb25zZRJgChFHZXRFbWJlZGRpbmdTdGF0cxIkLnJlY29yZHMudjEuR2V0RW1iZWRkaW5nU3RhdHNSZXF1ZXN0GiUucmVjb3Jkcy52MS5HZXRFbWJlZGRpbmdTdGF0c1Jlc3BvbnNlEmYKE0dldFJlY29yZEVtYmVkZGluZ3MSJi5yZWNvcmRzLnYxLkdldFJlY29yZEVtYmVkZGluZ3NSZXF1ZXN0GicucmVjb3Jkcy52MS5HZXRSZWNvcmRFbWJlZGRpbmdzUmVzcG9uc2USYwoSRmluZFNpbWlsYXJSZWNvcmRzEiUucmVjb3Jkcy52MS5GaW5kU2ltaWxhclJlY29yZHNSZXF1ZXN0GiYucmVjb3Jkcy52MS5GaW5kU2ltaWxhclJlY29yZHNSZXNwb25zZRJaCg9Xcml0ZUVtYmVkZGluZ3MSIi5yZWNvcmRzLnYxLldyaXRlRW1iZWRkaW5nc1JlcXVlc3QaIy5yZWNvcmRzLnYxLldyaXRlRW1iZWRkaW5nc1Jlc3BvbnNlEl0KEERlbGV0ZUVtYmVkZGluZ3MSIy5yZWNvcmRzLnYxLkRlbGV0ZUVtYmVkZGluZ3NSZXF1ZXN0GiQucmVjb3Jkcy52MS5EZWxldGVFbWJlZGRpbmdzUmVzcG9uc2USXQoQU2VhcmNoRW1iZWRkaW5ncxIjLnJlY29yZHMudjEuU2VhcmNoRW1iZWRkaW5nc1JlcXVlc3QaJC5yZWNvcmRzLnYxLlNlYXJjaEVtYmVkZGluZ3NSZXNwb25zZRJ1ChhFbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmcSKy5yZWNvcmRzLnYxLkVucXVldWVHZW5lcmF0ZUVtYmVkZGluZ1JlcXVlc3QaLC5yZWNvcmRzLnYxLkVucXVldWVHZW5lcmF0ZUVtYmVkZGluZ1Jlc3BvbnNlQjtaOWdpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9yZWNvcmRzL3YxO3JlY29yZHN2MWIGcHJvdG8z", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_expressions_v1_expressions]);
13
+ fileDesc("ChhyZWNvcmRzL3YxL3JlY29yZHMucHJvdG8SCnJlY29yZHMudjEihA0KBlJlY29yZBIKCgJpZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIWCglwYXJlbnRfaWQYBCABKAlIAYgBARIrCgtyZWNvcmRfdHlwZRgFIAEoDjIWLnJlY29yZHMudjEuUmVjb3JkVHlwZRIlCgRkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIYCgtjdXN0b21lcl9pZBgIIAEoCUgDiAEBEhEKCXRlbmFudF9pZBgKIAEoCRISCgpwcm9qZWN0X2lkGAsgASgJEhcKCmNyZWF0ZWRfYnkYFCABKAlIBIgBARIXCgp1cGRhdGVkX2J5GBUgASgJSAWIAQESLgoKY3JlYXRlZF9hdBgeIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoOdmVyc2lvbl9udW1iZXIYKCABKAVIBogBARIZCgxjb250ZW50X2hhc2gYKSABKAlIB4gBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YKiABKAlICIgBARIbCg5wdWJsaXNoX3N0YXR1cxgrIAEoCUgJiAEBEj0KFHNjaGVkdWxlZF9wdWJsaXNoX2F0GCwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgKiAEBEj8KFnNjaGVkdWxlZF91bnB1Ymxpc2hfYXQYLSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAuIAQESGAoLdmFyaWFudF9rZXkYMiABKAlIDIgBARIZCgx2YXJpYW50X25hbWUYMyABKAlIDYgBARIgChN2YXJpYW50X2Rlc2NyaXB0aW9uGDQgASgJSA6IAQESFwoKY2F0YWxvZ19pZBg1IAEoCUgPiAEBEhUKCHByaW9yaXR5GDYgASgFSBCIAQESPAoPdGFyZ2V0aW5nX3J1bGVzGDcgASgLMh4uZXhwcmVzc2lvbnMudjEuUnVsZUV4cHJlc3Npb25IEYgBARIXCgppc19kZWZhdWx0GDggASgISBKIAQESHwoSY3VycmVudF92ZXJzaW9uX2lkGDwgASgJSBOIAQESIQoUcHVibGlzaGVkX3ZlcnNpb25faWQYPSABKAlIFIgBARIlChhwdWJsaXNoZWRfdmVyc2lvbl9udW1iZXIYPiABKAVIFYgBARI1CgxwdWJsaXNoZWRfYXQYPyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBaIAQESGQoMcHVibGlzaGVkX2J5GEAgASgJSBeIAQESEwoLY2FuX3B1Ymxpc2gYQSABKAgSFQoNY2FuX3VucHVibGlzaBhCIAEoCBIfChdoYXNfdW5wdWJsaXNoZWRfY2hhbmdlcxhDIAEoCBIdChBtb2RlbF92ZXJzaW9uX2lkGEYgASgJSBiIAQFCDgoMX25hdHVyYWxfa2V5QgwKCl9wYXJlbnRfaWRCCwoJX21ldGFkYXRhQg4KDF9jdXN0b21lcl9pZEINCgtfY3JlYXRlZF9ieUINCgtfdXBkYXRlZF9ieUIRCg9fdmVyc2lvbl9udW1iZXJCDwoNX2NvbnRlbnRfaGFzaEIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uQhEKD19wdWJsaXNoX3N0YXR1c0IXChVfc2NoZWR1bGVkX3B1Ymxpc2hfYXRCGQoXX3NjaGVkdWxlZF91bnB1Ymxpc2hfYXRCDgoMX3ZhcmlhbnRfa2V5Qg8KDV92YXJpYW50X25hbWVCFgoUX3ZhcmlhbnRfZGVzY3JpcHRpb25CDQoLX2NhdGFsb2dfaWRCCwoJX3ByaW9yaXR5QhIKEF90YXJnZXRpbmdfcnVsZXNCDQoLX2lzX2RlZmF1bHRCFQoTX2N1cnJlbnRfdmVyc2lvbl9pZEIXChVfcHVibGlzaGVkX3ZlcnNpb25faWRCGwoZX3B1Ymxpc2hlZF92ZXJzaW9uX251bWJlckIPCg1fcHVibGlzaGVkX2F0Qg8KDV9wdWJsaXNoZWRfYnlCEwoRX21vZGVsX3ZlcnNpb25faWQi9QEKD1B1Ymxpc2hTY2hlZHVsZRISCgp2ZXJzaW9uX2lkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBARIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCgpjcmVhdGVkX2J5GAUgASgJSAGIAQFCDwoNX3VucHVibGlzaF9hdEINCgtfY3JlYXRlZF9ieSIuCglTb3J0RmllbGQSDQoFZmllbGQYASABKAkSEgoKZGVzY2VuZGluZxgCIAEoCCKFAgoOQmF0Y2hPcGVyYXRpb24SLAoEdHlwZRgBIAEoDjIeLnJlY29yZHMudjEuQmF0Y2hPcGVyYXRpb25UeXBlEg8KAmlkGAIgASgJSACIAQESFgoJbW9kZWxfa2V5GAMgASgJSAGIAQESGAoLbmF0dXJhbF9rZXkYBCABKAlIAogBARIqCgRkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEhgKC2N1c3RvbWVyX2lkGAYgASgJSASIAQFCBQoDX2lkQgwKCl9tb2RlbF9rZXlCDgoMX25hdHVyYWxfa2V5QgcKBV9kYXRhQg4KDF9jdXN0b21lcl9pZCKIAQoUQmF0Y2hPcGVyYXRpb25SZXN1bHQSDQoFaW5kZXgYASABKAUSDwoHc3VjY2VzcxgCIAEoCBInCgZyZWNvcmQYAyABKAsyEi5yZWNvcmRzLnYxLlJlY29yZEgAiAEBEhIKBWVycm9yGAQgASgJSAGIAQFCCQoHX3JlY29yZEIICgZfZXJyb3IimAIKE0NyZWF0ZVJlY29yZFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhgKC25hdHVyYWxfa2V5GAIgASgJSACIAQESJQoEZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoLY3VzdG9tZXJfaWQYBCABKAlIAYgBARIuCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YBiABKAlIA4gBAUIOCgxfbmF0dXJhbF9rZXlCDgoMX2N1c3RvbWVyX2lkQgsKCV9tZXRhZGF0YUIVChNfY2hhbmdlX2Rlc2NyaXB0aW9uIqYBChRDcmVhdGVSZWNvcmRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIoCgd2YXJpYW50GAIgASgLMhIucmVjb3Jkcy52MS5SZWNvcmRIAIgBARIoCgd2ZXJzaW9uGAMgASgLMhIucmVjb3Jkcy52MS5SZWNvcmRIAYgBAUIKCghfdmFyaWFudEIKCghfdmVyc2lvbiIeChBHZXRSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJIjcKEUdldFJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIj8KFUdldFJlY29yZEJ5S2V5UmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSEwoLbmF0dXJhbF9rZXkYAiABKAkiPAoWR2V0UmVjb3JkQnlLZXlSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCJCChlHZXRSZWNvcmRCeUtleU9ySWRSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgppZGVudGlmaWVyGAIgASgJIkAKGkdldFJlY29yZEJ5S2V5T3JJZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkItYCChJMaXN0UmVjb3Jkc1JlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEiMKBHNvcnQYAiADKAsyFS5yZWNvcmRzLnYxLlNvcnRGaWVsZBIYCgtjdXN0b21lcl9pZBgDIAEoCUgAiAEBEhMKBnNlYXJjaBgEIAEoCUgBiAEBEg8KB3ByZXZpZXcYBSABKAgSKwoFd2hlcmUYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESEgoFYWZ0ZXIYByABKAlIA4gBARITCgZiZWZvcmUYCCABKAlIBIgBARISCgVmaXJzdBgJIAEoBUgFiAEBEhEKBGxhc3QYCiABKAVIBogBAUIOCgxfY3VzdG9tZXJfaWRCCQoHX3NlYXJjaEIICgZfd2hlcmVCCAoGX2FmdGVyQgkKB19iZWZvcmVCCAoGX2ZpcnN0QgcKBV9sYXN0IpYBChNMaXN0UmVjb3Jkc1Jlc3BvbnNlEiMKB3JlY29yZHMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBINCgV0b3RhbBgCIAEoBRIsCglwYWdlX2luZm8YAyABKAsyFC5yZWNvcmRzLnYxLlBhZ2VJbmZvSACIAQESDwoHY3Vyc29ycxgEIAMoCUIMCgpfcGFnZV9pbmZvIpABCghQYWdlSW5mbxIVCg1oYXNfbmV4dF9wYWdlGAEgASgIEhkKEWhhc19wcmV2aW91c19wYWdlGAIgASgIEhkKDHN0YXJ0X2N1cnNvchgDIAEoCUgAiAEBEhcKCmVuZF9jdXJzb3IYBCABKAlIAYgBAUIPCg1fc3RhcnRfY3Vyc29yQg0KC19lbmRfY3Vyc29yInQKE1VwZGF0ZVJlY29yZFJlcXVlc3QSCgoCaWQYASABKAkSJwoGdXBkYXRlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIYCgtuYXR1cmFsX2tleRgDIAEoCUgAiAEBQg4KDF9uYXR1cmFsX2tleSI6ChRVcGRhdGVSZWNvcmRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCIhChNEZWxldGVSZWNvcmRSZXF1ZXN0EgoKAmlkGAEgASgJIicKFERlbGV0ZVJlY29yZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgipwEKE1Vwc2VydFJlY29yZFJlcXVlc3QSEQoJdGVuYW50X2lkGAEgASgJEhIKCnByb2plY3RfaWQYAiABKAkSEQoJbW9kZWxfa2V5GAMgASgJEhMKC25hdHVyYWxfa2V5GAQgASgJEiUKBGRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhoKEmNoYW5nZV9kZXNjcmlwdGlvbhgGIAEoCSJLChRVcHNlcnRSZWNvcmRSZXNwb25zZRIiCgZyZWNvcmQYASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIPCgdjcmVhdGVkGAIgASgIIk4KHEJhdGNoUmVjb3JkT3BlcmF0aW9uc1JlcXVlc3QSLgoKb3BlcmF0aW9ucxgBIAMoCzIaLnJlY29yZHMudjEuQmF0Y2hPcGVyYXRpb24iUgodQmF0Y2hSZWNvcmRPcGVyYXRpb25zUmVzcG9uc2USMQoHcmVzdWx0cxgBIAMoCzIgLnJlY29yZHMudjEuQmF0Y2hPcGVyYXRpb25SZXN1bHQinQEKGEJ1bGtVcGRhdGVSZWNvcmRzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkSKwoFd2hlcmUYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLAoGdXBkYXRlGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBQggKBl93aGVyZUIJCgdfdXBkYXRlIjcKGUJ1bGtVcGRhdGVSZWNvcmRzUmVzcG9uc2USDQoFY291bnQYASABKAUSCwoDaWRzGAIgAygJIjIKHUJhY2tmaWxsUXVlcnlhYmxlSW5kZXhSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCSI5Ch5CYWNrZmlsbFF1ZXJ5YWJsZUluZGV4UmVzcG9uc2USFwoPcmVjb3Jkc19pbmRleGVkGAEgASgFIjAKG0JhY2tmaWxsTW9kZWxJbmRleGVzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkiYQocQmFja2ZpbGxNb2RlbEluZGV4ZXNSZXNwb25zZRIeChZsb29rdXBzX3JlY29yZHNfd2Fsa2VkGAEgASgFEiEKGXF1ZXJ5YWJsZV9yZWNvcmRzX2luZGV4ZWQYAiABKAUiVgoWRHVwbGljYXRlUmVjb3JkUmVxdWVzdBIKCgJpZBgBIAEoCRIcCg9uZXdfbmF0dXJhbF9rZXkYAiABKAlIAIgBAUISChBfbmV3X25hdHVyYWxfa2V5Ij0KF0R1cGxpY2F0ZVJlY29yZFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIlAKG0R1cGxpY2F0ZVJlY29yZHNCdWxrUmVxdWVzdBILCgNpZHMYASADKAkSFgoJbW9kZWxfa2V5GAIgASgJSACIAQFCDAoKX21vZGVsX2tleSJDChxEdXBsaWNhdGVSZWNvcmRzQnVsa1Jlc3BvbnNlEiMKB3JlY29yZHMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZCKIAQoUQ3JlYXRlVmVyc2lvblJlcXVlc3QSEQoJcGFyZW50X2lkGAEgASgJEiUKBGRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eh8KEmNoYW5nZV9kZXNjcmlwdGlvbhgDIAEoCUgAiAEBQhUKE19jaGFuZ2VfZGVzY3JpcHRpb24iPAoVQ3JlYXRlVmVyc2lvblJlc3BvbnNlEiMKB3ZlcnNpb24YASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCIrChVQdWJsaXNoVmVyc2lvblJlcXVlc3QSEgoKdmVyc2lvbl9pZBgBIAEoCSI8ChZQdWJsaXNoVmVyc2lvblJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIisKFlVucHVibGlzaFJlY29yZFJlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJIioKF1VucHVibGlzaFJlY29yZFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiLAoWUmV2ZXJ0VG9WZXJzaW9uUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJIj0KF1JldmVydFRvVmVyc2lvblJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIk0KGUxpc3RSZWNvcmRWZXJzaW9uc1JlcXVlc3QSEQoJcGFyZW50X2lkGAEgASgJEg0KBWxpbWl0GAIgASgFEg4KBm9mZnNldBgDIAEoBSJRChpMaXN0UmVjb3JkVmVyc2lvbnNSZXNwb25zZRIkCgh2ZXJzaW9ucxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFImUKFENyZWF0ZVZhcmlhbnRSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRITCgt2YXJpYW50X2tleRgCIAEoCRIlCgRkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCI8ChVDcmVhdGVWYXJpYW50UmVzcG9uc2USIwoHdmFyaWFudBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIpoBChRVcGRhdGVWYXJpYW50UmVxdWVzdBISCgp2YXJpYW50X2lkGAEgASgJEiUKBGRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EjQKDm1ldGFkYXRhX3BhdGNoGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQhEKD19tZXRhZGF0YV9wYXRjaCI8ChVVcGRhdGVWYXJpYW50UmVzcG9uc2USIwoHdmFyaWFudBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkIioKFERlbGV0ZVZhcmlhbnRSZXF1ZXN0EhIKCnZhcmlhbnRfaWQYASABKAkiKAoVRGVsZXRlVmFyaWFudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiQQoYU2V0RGVmYXVsdFZhcmlhbnRSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRISCgp2YXJpYW50X2lkGAIgASgJIj8KGVNldERlZmF1bHRWYXJpYW50UmVzcG9uc2USIgoGcmVjb3JkGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQiTQoZTGlzdFJlY29yZFZhcmlhbnRzUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSDQoFbGltaXQYAiABKAUSDgoGb2Zmc2V0GAMgASgFIlEKGkxpc3RSZWNvcmRWYXJpYW50c1Jlc3BvbnNlEiQKCHZhcmlhbnRzGAEgAygLMhIucmVjb3Jkcy52MS5SZWNvcmQSDQoFdG90YWwYAiABKAUisAEKElNhdmVDb250ZW50UmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSJQoEZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoLdmFyaWFudF9rZXkYAyABKAlIAIgBARIfChJjaGFuZ2VfZGVzY3JpcHRpb24YBCABKAlIAYgBAUIOCgxfdmFyaWFudF9rZXlCFQoTX2NoYW5nZV9kZXNjcmlwdGlvbiJeChNTYXZlQ29udGVudFJlc3BvbnNlEiIKBnJlY29yZBgBIAEoCzISLnJlY29yZHMudjEuUmVjb3JkEiMKB3ZlcnNpb24YAiABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCKqAQocU2NoZWR1bGVSZWNvcmRQdWJsaXNoUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJEi4KCnB1Ymxpc2hfYXQYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDHVucHVibGlzaF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIPCg1fdW5wdWJsaXNoX2F0IkQKHVNjaGVkdWxlUmVjb3JkUHVibGlzaFJlc3BvbnNlEiMKB3ZlcnNpb24YASABKAsyEi5yZWNvcmRzLnYxLlJlY29yZCI5CiNDYW5jZWxTY2hlZHVsZWRSZWNvcmRQdWJsaXNoUmVxdWVzdBISCgp2ZXJzaW9uX2lkGAEgASgJIksKJENhbmNlbFNjaGVkdWxlZFJlY29yZFB1Ymxpc2hSZXNwb25zZRIjCgd2ZXJzaW9uGAEgASgLMhIucmVjb3Jkcy52MS5SZWNvcmQi0AEKHUxpc3RTY2hlZHVsZWRQdWJsaXNoZXNSZXF1ZXN0Ei0KBGZyb20YASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESKwoCdG8YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESFgoJbW9kZWxfa2V5GAMgASgJSAKIAQESDQoFbGltaXQYBCABKAUSDgoGb2Zmc2V0GAUgASgFQgcKBV9mcm9tQgUKA190b0IMCgpfbW9kZWxfa2V5IlUKHkxpc3RTY2hlZHVsZWRQdWJsaXNoZXNSZXNwb25zZRIkCgh2ZXJzaW9ucxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFIjAKGkdldFNjaGVkdWxlZFB1Ymxpc2hSZXF1ZXN0EhIKCnZlcnNpb25faWQYASABKAkiTAobR2V0U2NoZWR1bGVkUHVibGlzaFJlc3BvbnNlEi0KCHNjaGVkdWxlGAEgASgLMhsucmVjb3Jkcy52MS5QdWJsaXNoU2NoZWR1bGUimQEKGExpc3REcmFmdFZlcnNpb25zUmVxdWVzdBIWCgltb2RlbF9rZXkYASABKAlIAIgBARITCgZzZWFyY2gYAiABKAlIAYgBARINCgVsaW1pdBgDIAEoBRIOCgZvZmZzZXQYBCABKAUSGAoQZGVkdXBlX2J5X3BhcmVudBgFIAEoCEIMCgpfbW9kZWxfa2V5QgkKB19zZWFyY2giUAoZTGlzdERyYWZ0VmVyc2lvbnNSZXNwb25zZRIkCgh2ZXJzaW9ucxgBIAMoCzISLnJlY29yZHMudjEuUmVjb3JkEg0KBXRvdGFsGAIgASgFIjIKG0JhdGNoUHVibGlzaFZlcnNpb25zUmVxdWVzdBITCgt2ZXJzaW9uX2lkcxgBIAMoCSJcChxCYXRjaFB1Ymxpc2hWZXJzaW9uc1Jlc3BvbnNlEiMKB3JlY29yZHMYASADKAsyEi5yZWNvcmRzLnYxLlJlY29yZBIXCg9wdWJsaXNoZWRfY291bnQYAiABKAUiuQEKGkJhdGNoUmVzb2x2ZVJlY29yZHNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRISCgpyZWNvcmRfaWRzGAIgAygJEhgKC2N1c3RvbWVyX2lkGAMgASgJSACIAQESLQoHY29udGV4dBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIPCgdwcmV2aWV3GAUgASgIQg4KDF9jdXN0b21lcl9pZEIKCghfY29udGV4dCJKChtCYXRjaFJlc29sdmVSZWNvcmRzUmVzcG9uc2USKwoHcmVjb3JkcxgBIAMoCzIaLnJlY29yZHMudjEuUmVzb2x2ZWRSZWNvcmQizQIKDlJlc29sdmVkUmVjb3JkEhEKCXJlY29yZF9pZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIlCgRkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFwoKdmFyaWFudF9pZBgGIAEoCUgBiAEBEhEKCWhhc19kcmFmdBgIIAEoCBIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfbmF0dXJhbF9rZXlCDQoLX3ZhcmlhbnRfaWQiLwoZTG9va3VwUmVjb3JkTW9kZWxzUmVxdWVzdBISCgpyZWNvcmRfaWRzGAEgAygJIjgKEFJlY29yZE1vZGVsRW50cnkSEQoJcmVjb3JkX2lkGAEgASgJEhEKCW1vZGVsX2tleRgCIAEoCSJLChpMb29rdXBSZWNvcmRNb2RlbHNSZXNwb25zZRItCgdlbnRyaWVzGAEgAygLMhwucmVjb3Jkcy52MS5SZWNvcmRNb2RlbEVudHJ5IkcKE0dsb2JhbFNlYXJjaFJlcXVlc3QSDQoFcXVlcnkYASABKAkSEgoKbW9kZWxfa2V5cxgCIAMoCRINCgVsaW1pdBgKIAEoBSKRAQoQU2VhcmNoUmVzdWx0SXRlbRIKCgJpZBgBIAEoCRIRCgltb2RlbF9rZXkYAiABKAkSGAoLbmF0dXJhbF9rZXkYAyABKAlIAIgBARIlCgRkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBINCgVzY29yZRgFIAEoAUIOCgxfbmF0dXJhbF9rZXkiVAoUR2xvYmFsU2VhcmNoUmVzcG9uc2USLQoHcmVjb3JkcxgBIAMoCzIcLnJlY29yZHMudjEuU2VhcmNoUmVzdWx0SXRlbRINCgV0b3RhbBgCIAEoBSKhAQoORW1iZWRkaW5nU3RhdHMSEQoJbW9kZWxfa2V5GAEgASgJEhUKDXRvdGFsX3JlY29yZHMYAiABKAUSGAoQZW1iZWRkZWRfcmVjb3JkcxgDIAEoBRIXCg9wZW5kaW5nX3JlY29yZHMYBCABKAUSHQoQbGFzdF9lbWJlZGRlZF9hdBgFIAEoCUgAiAEBQhMKEV9sYXN0X2VtYmVkZGVkX2F0InUKD1JlY29yZEVtYmVkZGluZxIRCglyZWNvcmRfaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhIKCmRpbWVuc2lvbnMYAyABKAUSGAoLZW1iZWRkZWRfYXQYBCABKAlIAIgBAUIOCgxfZW1iZWRkZWRfYXQikwEKDVNpbWlsYXJSZWNvcmQSCgoCaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhgKC25hdHVyYWxfa2V5GAMgASgJSACIAQESJQoEZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEgoKc2ltaWxhcml0eRgFIAEoAUIOCgxfbmF0dXJhbF9rZXkiQAoYR2V0RW1iZWRkaW5nU3RhdHNSZXF1ZXN0EhYKCW1vZGVsX2tleRgBIAEoCUgAiAEBQgwKCl9tb2RlbF9rZXkiRgoZR2V0RW1iZWRkaW5nU3RhdHNSZXNwb25zZRIpCgVzdGF0cxgBIAMoCzIaLnJlY29yZHMudjEuRW1iZWRkaW5nU3RhdHMiLwoaR2V0UmVjb3JkRW1iZWRkaW5nc1JlcXVlc3QSEQoJcmVjb3JkX2lkGAEgASgJIk4KG0dldFJlY29yZEVtYmVkZGluZ3NSZXNwb25zZRIvCgplbWJlZGRpbmdzGAEgAygLMhsucmVjb3Jkcy52MS5SZWNvcmRFbWJlZGRpbmciYwoZRmluZFNpbWlsYXJSZWNvcmRzUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSFgoJbW9kZWxfa2V5GAIgASgJSACIAQESDQoFbGltaXQYCiABKAVCDAoKX21vZGVsX2tleSJIChpGaW5kU2ltaWxhclJlY29yZHNSZXNwb25zZRIqCgdyZWNvcmRzGAEgAygLMhkucmVjb3Jkcy52MS5TaW1pbGFyUmVjb3JkIpsBChZXcml0ZUVtYmVkZGluZ3NSZXF1ZXN0EhEKCXJlY29yZF9pZBgBIAEoCRIOCgZ2ZWN0b3IYAiADKAISEgoKZGltZW5zaW9ucxgDIAEoBRIVCghwcm92aWRlchgEIAEoCUgAiAEBEhcKCm1vZGVsX25hbWUYBSABKAlIAYgBAUILCglfcHJvdmlkZXJCDQoLX21vZGVsX25hbWUiKgoXV3JpdGVFbWJlZGRpbmdzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCCIsChdEZWxldGVFbWJlZGRpbmdzUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkiKwoYRGVsZXRlRW1iZWRkaW5nc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgiZwofRW5xdWV1ZUdlbmVyYXRlRW1iZWRkaW5nUmVxdWVzdBIRCglyZWNvcmRfaWQYASABKAkSEQoJbW9kZWxfa2V5GAIgASgJEhMKBnNvdXJjZRgDIAEoCUgAiAEBQgkKB19zb3VyY2UiNAogRW5xdWV1ZUdlbmVyYXRlRW1iZWRkaW5nUmVzcG9uc2USEAoIZW5xdWV1ZWQYASABKAgiZAoXU2VhcmNoRW1iZWRkaW5nc1JlcXVlc3QSFAoMcXVlcnlfdmVjdG9yGAEgAygCEhYKCW1vZGVsX2tleRgCIAEoCUgAiAEBEg0KBWxpbWl0GAogASgFQgwKCl9tb2RlbF9rZXkiRgoYU2VhcmNoRW1iZWRkaW5nc1Jlc3BvbnNlEioKB3Jlc3VsdHMYASADKAsyGS5yZWNvcmRzLnYxLlNpbWlsYXJSZWNvcmQinwIKE0xvb2t1cFJlY29yZFJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhMKC2xvb2t1cF9uYW1lGAIgASgJEhAKCGtleV9oYXNoGAMgASgMEg8KB2NoYW5uZWwYBCABKAkSFwoKdmFyaWFudF9pZBgFIAEoCUgAiAEBEhMKBmxvY2FsZRgGIAEoCUgBiAEBEhgKC2N1c3RvbWVyX2lkGAcgASgJSAKIAQESNgoQY3VzdG9tZXJfY29udGV4dBgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBAUINCgtfdmFyaWFudF9pZEIJCgdfbG9jYWxlQg4KDF9jdXN0b21lcl9pZEITChFfY3VzdG9tZXJfY29udGV4dCI8ChRMb29rdXBSZWNvcmRSZXNwb25zZRIWCglyZWNvcmRfaWQYASABKAlIAIgBAUIMCgpfcmVjb3JkX2lkIukBCh5DaGVja0xvb2t1cEF2YWlsYWJpbGl0eVJlcXVlc3QSEQoJbW9kZWxfa2V5GAEgASgJEhMKC2xvb2t1cF9uYW1lGAIgASgJEhAKCGtleV9oYXNoGAMgASgMEg8KB2NoYW5uZWwYBCABKAkSFwoKdmFyaWFudF9pZBgFIAEoCUgAiAEBEhMKBmxvY2FsZRgGIAEoCUgBiAEBEh4KEWV4Y2x1ZGVfcmVjb3JkX2lkGAcgASgJSAKIAQFCDQoLX3ZhcmlhbnRfaWRCCQoHX2xvY2FsZUIUChJfZXhjbHVkZV9yZWNvcmRfaWQiNAofQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHlSZXNwb25zZRIRCglhdmFpbGFibGUYASABKAgilwEKFExvb2t1cENvbmZsaWN0RGV0YWlsEhEKCW1vZGVsX2tleRgBIAEoCRITCgtsb29rdXBfbmFtZRgCIAEoCRIPCgdjaGFubmVsGAMgASgJEhcKCnZhcmlhbnRfaWQYBCABKAlIAIgBARITCgZsb2NhbGUYBSABKAlIAYgBAUINCgtfdmFyaWFudF9pZEIJCgdfbG9jYWxlImoKGkxpc3RMb29rdXBDb25mbGljdHNSZXF1ZXN0EhEKCW1vZGVsX2tleRgBIAEoCRIYCgtsb29rdXBfbmFtZRgCIAEoCUgAiAEBEg8KB2NoYW5uZWwYAyABKAlCDgoMX2xvb2t1cF9uYW1lIkgKG0xpc3RMb29rdXBDb25mbGljdHNSZXNwb25zZRIpCgZncm91cHMYASADKAsyGS5yZWNvcmRzLnYxLkNvbmZsaWN0R3JvdXAimwEKDUNvbmZsaWN0R3JvdXASEwoLZW5jb2RlZF9rZXkYASABKAkSDwoHY2hhbm5lbBgCIAEoCRIXCgp2YXJpYW50X2lkGAMgASgJSACIAQESGAoLY3VzdG9tZXJfaWQYBCABKAlIAYgBARISCgpyZWNvcmRfaWRzGAUgAygJQg0KC192YXJpYW50X2lkQg4KDF9jdXN0b21lcl9pZCIvChpSZWJ1aWxkTW9kZWxMb29rdXBzUmVxdWVzdBIRCgltb2RlbF9rZXkYASABKAkiNQobUmVidWlsZE1vZGVsTG9va3Vwc1Jlc3BvbnNlEhYKDnJlY29yZHNfd2Fsa2VkGAEgASgFKnMKClJlY29yZFR5cGUSGwoXUkVDT1JEX1RZUEVfVU5TUEVDSUZJRUQQABIWChJSRUNPUkRfVFlQRV9SRUNPUkQQARIXChNSRUNPUkRfVFlQRV9WQVJJQU5UEAISFwoTUkVDT1JEX1RZUEVfVkVSU0lPThADKp0BChJCYXRjaE9wZXJhdGlvblR5cGUSJAogQkFUQ0hfT1BFUkFUSU9OX1RZUEVfVU5TUEVDSUZJRUQQABIfChtCQVRDSF9PUEVSQVRJT05fVFlQRV9DUkVBVEUQARIfChtCQVRDSF9PUEVSQVRJT05fVFlQRV9VUERBVEUQAhIfChtCQVRDSF9PUEVSQVRJT05fVFlQRV9ERUxFVEUQAzKbIgoOUmVjb3Jkc1NlcnZpY2USUQoMQ3JlYXRlUmVjb3JkEh8ucmVjb3Jkcy52MS5DcmVhdGVSZWNvcmRSZXF1ZXN0GiAucmVjb3Jkcy52MS5DcmVhdGVSZWNvcmRSZXNwb25zZRJICglHZXRSZWNvcmQSHC5yZWNvcmRzLnYxLkdldFJlY29yZFJlcXVlc3QaHS5yZWNvcmRzLnYxLkdldFJlY29yZFJlc3BvbnNlElcKDkdldFJlY29yZEJ5S2V5EiEucmVjb3Jkcy52MS5HZXRSZWNvcmRCeUtleVJlcXVlc3QaIi5yZWNvcmRzLnYxLkdldFJlY29yZEJ5S2V5UmVzcG9uc2USYwoSR2V0UmVjb3JkQnlLZXlPcklkEiUucmVjb3Jkcy52MS5HZXRSZWNvcmRCeUtleU9ySWRSZXF1ZXN0GiYucmVjb3Jkcy52MS5HZXRSZWNvcmRCeUtleU9ySWRSZXNwb25zZRJOCgtMaXN0UmVjb3JkcxIeLnJlY29yZHMudjEuTGlzdFJlY29yZHNSZXF1ZXN0Gh8ucmVjb3Jkcy52MS5MaXN0UmVjb3Jkc1Jlc3BvbnNlElEKDFVwZGF0ZVJlY29yZBIfLnJlY29yZHMudjEuVXBkYXRlUmVjb3JkUmVxdWVzdBogLnJlY29yZHMudjEuVXBkYXRlUmVjb3JkUmVzcG9uc2USUQoMVXBzZXJ0UmVjb3JkEh8ucmVjb3Jkcy52MS5VcHNlcnRSZWNvcmRSZXF1ZXN0GiAucmVjb3Jkcy52MS5VcHNlcnRSZWNvcmRSZXNwb25zZRJRCgxEZWxldGVSZWNvcmQSHy5yZWNvcmRzLnYxLkRlbGV0ZVJlY29yZFJlcXVlc3QaIC5yZWNvcmRzLnYxLkRlbGV0ZVJlY29yZFJlc3BvbnNlEmwKFUJhdGNoUmVjb3JkT3BlcmF0aW9ucxIoLnJlY29yZHMudjEuQmF0Y2hSZWNvcmRPcGVyYXRpb25zUmVxdWVzdBopLnJlY29yZHMudjEuQmF0Y2hSZWNvcmRPcGVyYXRpb25zUmVzcG9uc2USYAoRQnVsa1VwZGF0ZVJlY29yZHMSJC5yZWNvcmRzLnYxLkJ1bGtVcGRhdGVSZWNvcmRzUmVxdWVzdBolLnJlY29yZHMudjEuQnVsa1VwZGF0ZVJlY29yZHNSZXNwb25zZRJvChZCYWNrZmlsbFF1ZXJ5YWJsZUluZGV4EikucmVjb3Jkcy52MS5CYWNrZmlsbFF1ZXJ5YWJsZUluZGV4UmVxdWVzdBoqLnJlY29yZHMudjEuQmFja2ZpbGxRdWVyeWFibGVJbmRleFJlc3BvbnNlEmkKFEJhY2tmaWxsTW9kZWxJbmRleGVzEicucmVjb3Jkcy52MS5CYWNrZmlsbE1vZGVsSW5kZXhlc1JlcXVlc3QaKC5yZWNvcmRzLnYxLkJhY2tmaWxsTW9kZWxJbmRleGVzUmVzcG9uc2USWgoPRHVwbGljYXRlUmVjb3JkEiIucmVjb3Jkcy52MS5EdXBsaWNhdGVSZWNvcmRSZXF1ZXN0GiMucmVjb3Jkcy52MS5EdXBsaWNhdGVSZWNvcmRSZXNwb25zZRJpChREdXBsaWNhdGVSZWNvcmRzQnVsaxInLnJlY29yZHMudjEuRHVwbGljYXRlUmVjb3Jkc0J1bGtSZXF1ZXN0GigucmVjb3Jkcy52MS5EdXBsaWNhdGVSZWNvcmRzQnVsa1Jlc3BvbnNlElQKDUNyZWF0ZVZlcnNpb24SIC5yZWNvcmRzLnYxLkNyZWF0ZVZlcnNpb25SZXF1ZXN0GiEucmVjb3Jkcy52MS5DcmVhdGVWZXJzaW9uUmVzcG9uc2USVwoOUHVibGlzaFZlcnNpb24SIS5yZWNvcmRzLnYxLlB1Ymxpc2hWZXJzaW9uUmVxdWVzdBoiLnJlY29yZHMudjEuUHVibGlzaFZlcnNpb25SZXNwb25zZRJaCg9VbnB1Ymxpc2hSZWNvcmQSIi5yZWNvcmRzLnYxLlVucHVibGlzaFJlY29yZFJlcXVlc3QaIy5yZWNvcmRzLnYxLlVucHVibGlzaFJlY29yZFJlc3BvbnNlEloKD1JldmVydFRvVmVyc2lvbhIiLnJlY29yZHMudjEuUmV2ZXJ0VG9WZXJzaW9uUmVxdWVzdBojLnJlY29yZHMudjEuUmV2ZXJ0VG9WZXJzaW9uUmVzcG9uc2USYwoSTGlzdFJlY29yZFZlcnNpb25zEiUucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmVyc2lvbnNSZXF1ZXN0GiYucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmVyc2lvbnNSZXNwb25zZRJOCgtTYXZlQ29udGVudBIeLnJlY29yZHMudjEuU2F2ZUNvbnRlbnRSZXF1ZXN0Gh8ucmVjb3Jkcy52MS5TYXZlQ29udGVudFJlc3BvbnNlElQKDUNyZWF0ZVZhcmlhbnQSIC5yZWNvcmRzLnYxLkNyZWF0ZVZhcmlhbnRSZXF1ZXN0GiEucmVjb3Jkcy52MS5DcmVhdGVWYXJpYW50UmVzcG9uc2USVAoNVXBkYXRlVmFyaWFudBIgLnJlY29yZHMudjEuVXBkYXRlVmFyaWFudFJlcXVlc3QaIS5yZWNvcmRzLnYxLlVwZGF0ZVZhcmlhbnRSZXNwb25zZRJUCg1EZWxldGVWYXJpYW50EiAucmVjb3Jkcy52MS5EZWxldGVWYXJpYW50UmVxdWVzdBohLnJlY29yZHMudjEuRGVsZXRlVmFyaWFudFJlc3BvbnNlEmAKEVNldERlZmF1bHRWYXJpYW50EiQucmVjb3Jkcy52MS5TZXREZWZhdWx0VmFyaWFudFJlcXVlc3QaJS5yZWNvcmRzLnYxLlNldERlZmF1bHRWYXJpYW50UmVzcG9uc2USYwoSTGlzdFJlY29yZFZhcmlhbnRzEiUucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmFyaWFudHNSZXF1ZXN0GiYucmVjb3Jkcy52MS5MaXN0UmVjb3JkVmFyaWFudHNSZXNwb25zZRJsChVTY2hlZHVsZVJlY29yZFB1Ymxpc2gSKC5yZWNvcmRzLnYxLlNjaGVkdWxlUmVjb3JkUHVibGlzaFJlcXVlc3QaKS5yZWNvcmRzLnYxLlNjaGVkdWxlUmVjb3JkUHVibGlzaFJlc3BvbnNlEoEBChxDYW5jZWxTY2hlZHVsZWRSZWNvcmRQdWJsaXNoEi8ucmVjb3Jkcy52MS5DYW5jZWxTY2hlZHVsZWRSZWNvcmRQdWJsaXNoUmVxdWVzdBowLnJlY29yZHMudjEuQ2FuY2VsU2NoZWR1bGVkUmVjb3JkUHVibGlzaFJlc3BvbnNlEm8KFkxpc3RTY2hlZHVsZWRQdWJsaXNoZXMSKS5yZWNvcmRzLnYxLkxpc3RTY2hlZHVsZWRQdWJsaXNoZXNSZXF1ZXN0GioucmVjb3Jkcy52MS5MaXN0U2NoZWR1bGVkUHVibGlzaGVzUmVzcG9uc2USZgoTR2V0U2NoZWR1bGVkUHVibGlzaBImLnJlY29yZHMudjEuR2V0U2NoZWR1bGVkUHVibGlzaFJlcXVlc3QaJy5yZWNvcmRzLnYxLkdldFNjaGVkdWxlZFB1Ymxpc2hSZXNwb25zZRJgChFMaXN0RHJhZnRWZXJzaW9ucxIkLnJlY29yZHMudjEuTGlzdERyYWZ0VmVyc2lvbnNSZXF1ZXN0GiUucmVjb3Jkcy52MS5MaXN0RHJhZnRWZXJzaW9uc1Jlc3BvbnNlEmkKFEJhdGNoUHVibGlzaFZlcnNpb25zEicucmVjb3Jkcy52MS5CYXRjaFB1Ymxpc2hWZXJzaW9uc1JlcXVlc3QaKC5yZWNvcmRzLnYxLkJhdGNoUHVibGlzaFZlcnNpb25zUmVzcG9uc2USZgoTQmF0Y2hSZXNvbHZlUmVjb3JkcxImLnJlY29yZHMudjEuQmF0Y2hSZXNvbHZlUmVjb3Jkc1JlcXVlc3QaJy5yZWNvcmRzLnYxLkJhdGNoUmVzb2x2ZVJlY29yZHNSZXNwb25zZRJjChJMb29rdXBSZWNvcmRNb2RlbHMSJS5yZWNvcmRzLnYxLkxvb2t1cFJlY29yZE1vZGVsc1JlcXVlc3QaJi5yZWNvcmRzLnYxLkxvb2t1cFJlY29yZE1vZGVsc1Jlc3BvbnNlElEKDEdsb2JhbFNlYXJjaBIfLnJlY29yZHMudjEuR2xvYmFsU2VhcmNoUmVxdWVzdBogLnJlY29yZHMudjEuR2xvYmFsU2VhcmNoUmVzcG9uc2USUQoMTG9va3VwUmVjb3JkEh8ucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRSZXF1ZXN0GiAucmVjb3Jkcy52MS5Mb29rdXBSZWNvcmRSZXNwb25zZRJyChdDaGVja0xvb2t1cEF2YWlsYWJpbGl0eRIqLnJlY29yZHMudjEuQ2hlY2tMb29rdXBBdmFpbGFiaWxpdHlSZXF1ZXN0GisucmVjb3Jkcy52MS5DaGVja0xvb2t1cEF2YWlsYWJpbGl0eVJlc3BvbnNlEmYKE0xpc3RMb29rdXBDb25mbGljdHMSJi5yZWNvcmRzLnYxLkxpc3RMb29rdXBDb25mbGljdHNSZXF1ZXN0GicucmVjb3Jkcy52MS5MaXN0TG9va3VwQ29uZmxpY3RzUmVzcG9uc2USZgoTUmVidWlsZE1vZGVsTG9va3VwcxImLnJlY29yZHMudjEuUmVidWlsZE1vZGVsTG9va3Vwc1JlcXVlc3QaJy5yZWNvcmRzLnYxLlJlYnVpbGRNb2RlbExvb2t1cHNSZXNwb25zZRJgChFHZXRFbWJlZGRpbmdTdGF0cxIkLnJlY29yZHMudjEuR2V0RW1iZWRkaW5nU3RhdHNSZXF1ZXN0GiUucmVjb3Jkcy52MS5HZXRFbWJlZGRpbmdTdGF0c1Jlc3BvbnNlEmYKE0dldFJlY29yZEVtYmVkZGluZ3MSJi5yZWNvcmRzLnYxLkdldFJlY29yZEVtYmVkZGluZ3NSZXF1ZXN0GicucmVjb3Jkcy52MS5HZXRSZWNvcmRFbWJlZGRpbmdzUmVzcG9uc2USYwoSRmluZFNpbWlsYXJSZWNvcmRzEiUucmVjb3Jkcy52MS5GaW5kU2ltaWxhclJlY29yZHNSZXF1ZXN0GiYucmVjb3Jkcy52MS5GaW5kU2ltaWxhclJlY29yZHNSZXNwb25zZRJaCg9Xcml0ZUVtYmVkZGluZ3MSIi5yZWNvcmRzLnYxLldyaXRlRW1iZWRkaW5nc1JlcXVlc3QaIy5yZWNvcmRzLnYxLldyaXRlRW1iZWRkaW5nc1Jlc3BvbnNlEl0KEERlbGV0ZUVtYmVkZGluZ3MSIy5yZWNvcmRzLnYxLkRlbGV0ZUVtYmVkZGluZ3NSZXF1ZXN0GiQucmVjb3Jkcy52MS5EZWxldGVFbWJlZGRpbmdzUmVzcG9uc2USXQoQU2VhcmNoRW1iZWRkaW5ncxIjLnJlY29yZHMudjEuU2VhcmNoRW1iZWRkaW5nc1JlcXVlc3QaJC5yZWNvcmRzLnYxLlNlYXJjaEVtYmVkZGluZ3NSZXNwb25zZRJ1ChhFbnF1ZXVlR2VuZXJhdGVFbWJlZGRpbmcSKy5yZWNvcmRzLnYxLkVucXVldWVHZW5lcmF0ZUVtYmVkZGluZ1JlcXVlc3QaLC5yZWNvcmRzLnYxLkVucXVldWVHZW5lcmF0ZUVtYmVkZGluZ1Jlc3BvbnNlQjtaOWdpdGh1Yi5jb20vZWlkZXN0dWRpby9mb2lyL2dlbi9wcm90by9yZWNvcmRzL3YxO3JlY29yZHN2MWIGcHJvdG8z", [file_google_protobuf_struct, file_google_protobuf_timestamp, file_expressions_v1_expressions]);
14
14
 
15
15
  /**
16
16
  * Describes the message records.v1.Record.
@@ -26,712 +26,719 @@ export const RecordSchema = /*@__PURE__*/
26
26
  export const PublishScheduleSchema = /*@__PURE__*/
27
27
  messageDesc(file_records_v1_records, 1);
28
28
 
29
- /**
30
- * Describes the message records.v1.RecordFilter.
31
- * Use `create(RecordFilterSchema)` to create a new message.
32
- */
33
- export const RecordFilterSchema = /*@__PURE__*/
34
- messageDesc(file_records_v1_records, 2);
35
-
36
29
  /**
37
30
  * Describes the message records.v1.SortField.
38
31
  * Use `create(SortFieldSchema)` to create a new message.
39
32
  */
40
33
  export const SortFieldSchema = /*@__PURE__*/
41
- messageDesc(file_records_v1_records, 3);
34
+ messageDesc(file_records_v1_records, 2);
42
35
 
43
36
  /**
44
37
  * Describes the message records.v1.BatchOperation.
45
38
  * Use `create(BatchOperationSchema)` to create a new message.
46
39
  */
47
40
  export const BatchOperationSchema = /*@__PURE__*/
48
- messageDesc(file_records_v1_records, 4);
41
+ messageDesc(file_records_v1_records, 3);
49
42
 
50
43
  /**
51
44
  * Describes the message records.v1.BatchOperationResult.
52
45
  * Use `create(BatchOperationResultSchema)` to create a new message.
53
46
  */
54
47
  export const BatchOperationResultSchema = /*@__PURE__*/
55
- messageDesc(file_records_v1_records, 5);
48
+ messageDesc(file_records_v1_records, 4);
56
49
 
57
50
  /**
58
51
  * Describes the message records.v1.CreateRecordRequest.
59
52
  * Use `create(CreateRecordRequestSchema)` to create a new message.
60
53
  */
61
54
  export const CreateRecordRequestSchema = /*@__PURE__*/
62
- messageDesc(file_records_v1_records, 6);
55
+ messageDesc(file_records_v1_records, 5);
63
56
 
64
57
  /**
65
58
  * Describes the message records.v1.CreateRecordResponse.
66
59
  * Use `create(CreateRecordResponseSchema)` to create a new message.
67
60
  */
68
61
  export const CreateRecordResponseSchema = /*@__PURE__*/
69
- messageDesc(file_records_v1_records, 7);
62
+ messageDesc(file_records_v1_records, 6);
70
63
 
71
64
  /**
72
65
  * Describes the message records.v1.GetRecordRequest.
73
66
  * Use `create(GetRecordRequestSchema)` to create a new message.
74
67
  */
75
68
  export const GetRecordRequestSchema = /*@__PURE__*/
76
- messageDesc(file_records_v1_records, 8);
69
+ messageDesc(file_records_v1_records, 7);
77
70
 
78
71
  /**
79
72
  * Describes the message records.v1.GetRecordResponse.
80
73
  * Use `create(GetRecordResponseSchema)` to create a new message.
81
74
  */
82
75
  export const GetRecordResponseSchema = /*@__PURE__*/
83
- messageDesc(file_records_v1_records, 9);
76
+ messageDesc(file_records_v1_records, 8);
84
77
 
85
78
  /**
86
79
  * Describes the message records.v1.GetRecordByKeyRequest.
87
80
  * Use `create(GetRecordByKeyRequestSchema)` to create a new message.
88
81
  */
89
82
  export const GetRecordByKeyRequestSchema = /*@__PURE__*/
90
- messageDesc(file_records_v1_records, 10);
83
+ messageDesc(file_records_v1_records, 9);
91
84
 
92
85
  /**
93
86
  * Describes the message records.v1.GetRecordByKeyResponse.
94
87
  * Use `create(GetRecordByKeyResponseSchema)` to create a new message.
95
88
  */
96
89
  export const GetRecordByKeyResponseSchema = /*@__PURE__*/
97
- messageDesc(file_records_v1_records, 11);
90
+ messageDesc(file_records_v1_records, 10);
98
91
 
99
92
  /**
100
93
  * Describes the message records.v1.GetRecordByKeyOrIdRequest.
101
94
  * Use `create(GetRecordByKeyOrIdRequestSchema)` to create a new message.
102
95
  */
103
96
  export const GetRecordByKeyOrIdRequestSchema = /*@__PURE__*/
104
- messageDesc(file_records_v1_records, 12);
97
+ messageDesc(file_records_v1_records, 11);
105
98
 
106
99
  /**
107
100
  * Describes the message records.v1.GetRecordByKeyOrIdResponse.
108
101
  * Use `create(GetRecordByKeyOrIdResponseSchema)` to create a new message.
109
102
  */
110
103
  export const GetRecordByKeyOrIdResponseSchema = /*@__PURE__*/
111
- messageDesc(file_records_v1_records, 13);
104
+ messageDesc(file_records_v1_records, 12);
112
105
 
113
106
  /**
114
107
  * Describes the message records.v1.ListRecordsRequest.
115
108
  * Use `create(ListRecordsRequestSchema)` to create a new message.
116
109
  */
117
110
  export const ListRecordsRequestSchema = /*@__PURE__*/
118
- messageDesc(file_records_v1_records, 14);
111
+ messageDesc(file_records_v1_records, 13);
119
112
 
120
113
  /**
121
114
  * Describes the message records.v1.ListRecordsResponse.
122
115
  * Use `create(ListRecordsResponseSchema)` to create a new message.
123
116
  */
124
117
  export const ListRecordsResponseSchema = /*@__PURE__*/
125
- messageDesc(file_records_v1_records, 15);
118
+ messageDesc(file_records_v1_records, 14);
126
119
 
127
120
  /**
128
121
  * Describes the message records.v1.PageInfo.
129
122
  * Use `create(PageInfoSchema)` to create a new message.
130
123
  */
131
124
  export const PageInfoSchema = /*@__PURE__*/
132
- messageDesc(file_records_v1_records, 16);
125
+ messageDesc(file_records_v1_records, 15);
133
126
 
134
127
  /**
135
128
  * Describes the message records.v1.UpdateRecordRequest.
136
129
  * Use `create(UpdateRecordRequestSchema)` to create a new message.
137
130
  */
138
131
  export const UpdateRecordRequestSchema = /*@__PURE__*/
139
- messageDesc(file_records_v1_records, 17);
132
+ messageDesc(file_records_v1_records, 16);
140
133
 
141
134
  /**
142
135
  * Describes the message records.v1.UpdateRecordResponse.
143
136
  * Use `create(UpdateRecordResponseSchema)` to create a new message.
144
137
  */
145
138
  export const UpdateRecordResponseSchema = /*@__PURE__*/
146
- messageDesc(file_records_v1_records, 18);
139
+ messageDesc(file_records_v1_records, 17);
147
140
 
148
141
  /**
149
142
  * Describes the message records.v1.DeleteRecordRequest.
150
143
  * Use `create(DeleteRecordRequestSchema)` to create a new message.
151
144
  */
152
145
  export const DeleteRecordRequestSchema = /*@__PURE__*/
153
- messageDesc(file_records_v1_records, 19);
146
+ messageDesc(file_records_v1_records, 18);
154
147
 
155
148
  /**
156
149
  * Describes the message records.v1.DeleteRecordResponse.
157
150
  * Use `create(DeleteRecordResponseSchema)` to create a new message.
158
151
  */
159
152
  export const DeleteRecordResponseSchema = /*@__PURE__*/
160
- messageDesc(file_records_v1_records, 20);
153
+ messageDesc(file_records_v1_records, 19);
161
154
 
162
155
  /**
163
156
  * Describes the message records.v1.UpsertRecordRequest.
164
157
  * Use `create(UpsertRecordRequestSchema)` to create a new message.
165
158
  */
166
159
  export const UpsertRecordRequestSchema = /*@__PURE__*/
167
- messageDesc(file_records_v1_records, 21);
160
+ messageDesc(file_records_v1_records, 20);
168
161
 
169
162
  /**
170
163
  * Describes the message records.v1.UpsertRecordResponse.
171
164
  * Use `create(UpsertRecordResponseSchema)` to create a new message.
172
165
  */
173
166
  export const UpsertRecordResponseSchema = /*@__PURE__*/
174
- messageDesc(file_records_v1_records, 22);
167
+ messageDesc(file_records_v1_records, 21);
175
168
 
176
169
  /**
177
170
  * Describes the message records.v1.BatchRecordOperationsRequest.
178
171
  * Use `create(BatchRecordOperationsRequestSchema)` to create a new message.
179
172
  */
180
173
  export const BatchRecordOperationsRequestSchema = /*@__PURE__*/
181
- messageDesc(file_records_v1_records, 23);
174
+ messageDesc(file_records_v1_records, 22);
182
175
 
183
176
  /**
184
177
  * Describes the message records.v1.BatchRecordOperationsResponse.
185
178
  * Use `create(BatchRecordOperationsResponseSchema)` to create a new message.
186
179
  */
187
180
  export const BatchRecordOperationsResponseSchema = /*@__PURE__*/
188
- messageDesc(file_records_v1_records, 24);
181
+ messageDesc(file_records_v1_records, 23);
189
182
 
190
183
  /**
191
184
  * Describes the message records.v1.BulkUpdateRecordsRequest.
192
185
  * Use `create(BulkUpdateRecordsRequestSchema)` to create a new message.
193
186
  */
194
187
  export const BulkUpdateRecordsRequestSchema = /*@__PURE__*/
195
- messageDesc(file_records_v1_records, 25);
188
+ messageDesc(file_records_v1_records, 24);
196
189
 
197
190
  /**
198
191
  * Describes the message records.v1.BulkUpdateRecordsResponse.
199
192
  * Use `create(BulkUpdateRecordsResponseSchema)` to create a new message.
200
193
  */
201
194
  export const BulkUpdateRecordsResponseSchema = /*@__PURE__*/
202
- messageDesc(file_records_v1_records, 26);
195
+ messageDesc(file_records_v1_records, 25);
203
196
 
204
197
  /**
205
198
  * Describes the message records.v1.BackfillQueryableIndexRequest.
206
199
  * Use `create(BackfillQueryableIndexRequestSchema)` to create a new message.
207
200
  */
208
201
  export const BackfillQueryableIndexRequestSchema = /*@__PURE__*/
209
- messageDesc(file_records_v1_records, 27);
202
+ messageDesc(file_records_v1_records, 26);
210
203
 
211
204
  /**
212
205
  * Describes the message records.v1.BackfillQueryableIndexResponse.
213
206
  * Use `create(BackfillQueryableIndexResponseSchema)` to create a new message.
214
207
  */
215
208
  export const BackfillQueryableIndexResponseSchema = /*@__PURE__*/
209
+ messageDesc(file_records_v1_records, 27);
210
+
211
+ /**
212
+ * Describes the message records.v1.BackfillModelIndexesRequest.
213
+ * Use `create(BackfillModelIndexesRequestSchema)` to create a new message.
214
+ */
215
+ export const BackfillModelIndexesRequestSchema = /*@__PURE__*/
216
216
  messageDesc(file_records_v1_records, 28);
217
217
 
218
+ /**
219
+ * Describes the message records.v1.BackfillModelIndexesResponse.
220
+ * Use `create(BackfillModelIndexesResponseSchema)` to create a new message.
221
+ */
222
+ export const BackfillModelIndexesResponseSchema = /*@__PURE__*/
223
+ messageDesc(file_records_v1_records, 29);
224
+
218
225
  /**
219
226
  * Describes the message records.v1.DuplicateRecordRequest.
220
227
  * Use `create(DuplicateRecordRequestSchema)` to create a new message.
221
228
  */
222
229
  export const DuplicateRecordRequestSchema = /*@__PURE__*/
223
- messageDesc(file_records_v1_records, 29);
230
+ messageDesc(file_records_v1_records, 30);
224
231
 
225
232
  /**
226
233
  * Describes the message records.v1.DuplicateRecordResponse.
227
234
  * Use `create(DuplicateRecordResponseSchema)` to create a new message.
228
235
  */
229
236
  export const DuplicateRecordResponseSchema = /*@__PURE__*/
230
- messageDesc(file_records_v1_records, 30);
237
+ messageDesc(file_records_v1_records, 31);
231
238
 
232
239
  /**
233
240
  * Describes the message records.v1.DuplicateRecordsBulkRequest.
234
241
  * Use `create(DuplicateRecordsBulkRequestSchema)` to create a new message.
235
242
  */
236
243
  export const DuplicateRecordsBulkRequestSchema = /*@__PURE__*/
237
- messageDesc(file_records_v1_records, 31);
244
+ messageDesc(file_records_v1_records, 32);
238
245
 
239
246
  /**
240
247
  * Describes the message records.v1.DuplicateRecordsBulkResponse.
241
248
  * Use `create(DuplicateRecordsBulkResponseSchema)` to create a new message.
242
249
  */
243
250
  export const DuplicateRecordsBulkResponseSchema = /*@__PURE__*/
244
- messageDesc(file_records_v1_records, 32);
251
+ messageDesc(file_records_v1_records, 33);
245
252
 
246
253
  /**
247
254
  * Describes the message records.v1.CreateVersionRequest.
248
255
  * Use `create(CreateVersionRequestSchema)` to create a new message.
249
256
  */
250
257
  export const CreateVersionRequestSchema = /*@__PURE__*/
251
- messageDesc(file_records_v1_records, 33);
258
+ messageDesc(file_records_v1_records, 34);
252
259
 
253
260
  /**
254
261
  * Describes the message records.v1.CreateVersionResponse.
255
262
  * Use `create(CreateVersionResponseSchema)` to create a new message.
256
263
  */
257
264
  export const CreateVersionResponseSchema = /*@__PURE__*/
258
- messageDesc(file_records_v1_records, 34);
265
+ messageDesc(file_records_v1_records, 35);
259
266
 
260
267
  /**
261
268
  * Describes the message records.v1.PublishVersionRequest.
262
269
  * Use `create(PublishVersionRequestSchema)` to create a new message.
263
270
  */
264
271
  export const PublishVersionRequestSchema = /*@__PURE__*/
265
- messageDesc(file_records_v1_records, 35);
272
+ messageDesc(file_records_v1_records, 36);
266
273
 
267
274
  /**
268
275
  * Describes the message records.v1.PublishVersionResponse.
269
276
  * Use `create(PublishVersionResponseSchema)` to create a new message.
270
277
  */
271
278
  export const PublishVersionResponseSchema = /*@__PURE__*/
272
- messageDesc(file_records_v1_records, 36);
279
+ messageDesc(file_records_v1_records, 37);
273
280
 
274
281
  /**
275
282
  * Describes the message records.v1.UnpublishRecordRequest.
276
283
  * Use `create(UnpublishRecordRequestSchema)` to create a new message.
277
284
  */
278
285
  export const UnpublishRecordRequestSchema = /*@__PURE__*/
279
- messageDesc(file_records_v1_records, 37);
286
+ messageDesc(file_records_v1_records, 38);
280
287
 
281
288
  /**
282
289
  * Describes the message records.v1.UnpublishRecordResponse.
283
290
  * Use `create(UnpublishRecordResponseSchema)` to create a new message.
284
291
  */
285
292
  export const UnpublishRecordResponseSchema = /*@__PURE__*/
286
- messageDesc(file_records_v1_records, 38);
293
+ messageDesc(file_records_v1_records, 39);
287
294
 
288
295
  /**
289
296
  * Describes the message records.v1.RevertToVersionRequest.
290
297
  * Use `create(RevertToVersionRequestSchema)` to create a new message.
291
298
  */
292
299
  export const RevertToVersionRequestSchema = /*@__PURE__*/
293
- messageDesc(file_records_v1_records, 39);
300
+ messageDesc(file_records_v1_records, 40);
294
301
 
295
302
  /**
296
303
  * Describes the message records.v1.RevertToVersionResponse.
297
304
  * Use `create(RevertToVersionResponseSchema)` to create a new message.
298
305
  */
299
306
  export const RevertToVersionResponseSchema = /*@__PURE__*/
300
- messageDesc(file_records_v1_records, 40);
307
+ messageDesc(file_records_v1_records, 41);
301
308
 
302
309
  /**
303
310
  * Describes the message records.v1.ListRecordVersionsRequest.
304
311
  * Use `create(ListRecordVersionsRequestSchema)` to create a new message.
305
312
  */
306
313
  export const ListRecordVersionsRequestSchema = /*@__PURE__*/
307
- messageDesc(file_records_v1_records, 41);
314
+ messageDesc(file_records_v1_records, 42);
308
315
 
309
316
  /**
310
317
  * Describes the message records.v1.ListRecordVersionsResponse.
311
318
  * Use `create(ListRecordVersionsResponseSchema)` to create a new message.
312
319
  */
313
320
  export const ListRecordVersionsResponseSchema = /*@__PURE__*/
314
- messageDesc(file_records_v1_records, 42);
321
+ messageDesc(file_records_v1_records, 43);
315
322
 
316
323
  /**
317
324
  * Describes the message records.v1.CreateVariantRequest.
318
325
  * Use `create(CreateVariantRequestSchema)` to create a new message.
319
326
  */
320
327
  export const CreateVariantRequestSchema = /*@__PURE__*/
321
- messageDesc(file_records_v1_records, 43);
328
+ messageDesc(file_records_v1_records, 44);
322
329
 
323
330
  /**
324
331
  * Describes the message records.v1.CreateVariantResponse.
325
332
  * Use `create(CreateVariantResponseSchema)` to create a new message.
326
333
  */
327
334
  export const CreateVariantResponseSchema = /*@__PURE__*/
328
- messageDesc(file_records_v1_records, 44);
335
+ messageDesc(file_records_v1_records, 45);
329
336
 
330
337
  /**
331
338
  * Describes the message records.v1.UpdateVariantRequest.
332
339
  * Use `create(UpdateVariantRequestSchema)` to create a new message.
333
340
  */
334
341
  export const UpdateVariantRequestSchema = /*@__PURE__*/
335
- messageDesc(file_records_v1_records, 45);
342
+ messageDesc(file_records_v1_records, 46);
336
343
 
337
344
  /**
338
345
  * Describes the message records.v1.UpdateVariantResponse.
339
346
  * Use `create(UpdateVariantResponseSchema)` to create a new message.
340
347
  */
341
348
  export const UpdateVariantResponseSchema = /*@__PURE__*/
342
- messageDesc(file_records_v1_records, 46);
349
+ messageDesc(file_records_v1_records, 47);
343
350
 
344
351
  /**
345
352
  * Describes the message records.v1.DeleteVariantRequest.
346
353
  * Use `create(DeleteVariantRequestSchema)` to create a new message.
347
354
  */
348
355
  export const DeleteVariantRequestSchema = /*@__PURE__*/
349
- messageDesc(file_records_v1_records, 47);
356
+ messageDesc(file_records_v1_records, 48);
350
357
 
351
358
  /**
352
359
  * Describes the message records.v1.DeleteVariantResponse.
353
360
  * Use `create(DeleteVariantResponseSchema)` to create a new message.
354
361
  */
355
362
  export const DeleteVariantResponseSchema = /*@__PURE__*/
356
- messageDesc(file_records_v1_records, 48);
363
+ messageDesc(file_records_v1_records, 49);
357
364
 
358
365
  /**
359
366
  * Describes the message records.v1.SetDefaultVariantRequest.
360
367
  * Use `create(SetDefaultVariantRequestSchema)` to create a new message.
361
368
  */
362
369
  export const SetDefaultVariantRequestSchema = /*@__PURE__*/
363
- messageDesc(file_records_v1_records, 49);
370
+ messageDesc(file_records_v1_records, 50);
364
371
 
365
372
  /**
366
373
  * Describes the message records.v1.SetDefaultVariantResponse.
367
374
  * Use `create(SetDefaultVariantResponseSchema)` to create a new message.
368
375
  */
369
376
  export const SetDefaultVariantResponseSchema = /*@__PURE__*/
370
- messageDesc(file_records_v1_records, 50);
377
+ messageDesc(file_records_v1_records, 51);
371
378
 
372
379
  /**
373
380
  * Describes the message records.v1.ListRecordVariantsRequest.
374
381
  * Use `create(ListRecordVariantsRequestSchema)` to create a new message.
375
382
  */
376
383
  export const ListRecordVariantsRequestSchema = /*@__PURE__*/
377
- messageDesc(file_records_v1_records, 51);
384
+ messageDesc(file_records_v1_records, 52);
378
385
 
379
386
  /**
380
387
  * Describes the message records.v1.ListRecordVariantsResponse.
381
388
  * Use `create(ListRecordVariantsResponseSchema)` to create a new message.
382
389
  */
383
390
  export const ListRecordVariantsResponseSchema = /*@__PURE__*/
384
- messageDesc(file_records_v1_records, 52);
391
+ messageDesc(file_records_v1_records, 53);
385
392
 
386
393
  /**
387
394
  * Describes the message records.v1.SaveContentRequest.
388
395
  * Use `create(SaveContentRequestSchema)` to create a new message.
389
396
  */
390
397
  export const SaveContentRequestSchema = /*@__PURE__*/
391
- messageDesc(file_records_v1_records, 53);
398
+ messageDesc(file_records_v1_records, 54);
392
399
 
393
400
  /**
394
401
  * Describes the message records.v1.SaveContentResponse.
395
402
  * Use `create(SaveContentResponseSchema)` to create a new message.
396
403
  */
397
404
  export const SaveContentResponseSchema = /*@__PURE__*/
398
- messageDesc(file_records_v1_records, 54);
405
+ messageDesc(file_records_v1_records, 55);
399
406
 
400
407
  /**
401
408
  * Describes the message records.v1.ScheduleRecordPublishRequest.
402
409
  * Use `create(ScheduleRecordPublishRequestSchema)` to create a new message.
403
410
  */
404
411
  export const ScheduleRecordPublishRequestSchema = /*@__PURE__*/
405
- messageDesc(file_records_v1_records, 55);
412
+ messageDesc(file_records_v1_records, 56);
406
413
 
407
414
  /**
408
415
  * Describes the message records.v1.ScheduleRecordPublishResponse.
409
416
  * Use `create(ScheduleRecordPublishResponseSchema)` to create a new message.
410
417
  */
411
418
  export const ScheduleRecordPublishResponseSchema = /*@__PURE__*/
412
- messageDesc(file_records_v1_records, 56);
419
+ messageDesc(file_records_v1_records, 57);
413
420
 
414
421
  /**
415
422
  * Describes the message records.v1.CancelScheduledRecordPublishRequest.
416
423
  * Use `create(CancelScheduledRecordPublishRequestSchema)` to create a new message.
417
424
  */
418
425
  export const CancelScheduledRecordPublishRequestSchema = /*@__PURE__*/
419
- messageDesc(file_records_v1_records, 57);
426
+ messageDesc(file_records_v1_records, 58);
420
427
 
421
428
  /**
422
429
  * Describes the message records.v1.CancelScheduledRecordPublishResponse.
423
430
  * Use `create(CancelScheduledRecordPublishResponseSchema)` to create a new message.
424
431
  */
425
432
  export const CancelScheduledRecordPublishResponseSchema = /*@__PURE__*/
426
- messageDesc(file_records_v1_records, 58);
433
+ messageDesc(file_records_v1_records, 59);
427
434
 
428
435
  /**
429
436
  * Describes the message records.v1.ListScheduledPublishesRequest.
430
437
  * Use `create(ListScheduledPublishesRequestSchema)` to create a new message.
431
438
  */
432
439
  export const ListScheduledPublishesRequestSchema = /*@__PURE__*/
433
- messageDesc(file_records_v1_records, 59);
440
+ messageDesc(file_records_v1_records, 60);
434
441
 
435
442
  /**
436
443
  * Describes the message records.v1.ListScheduledPublishesResponse.
437
444
  * Use `create(ListScheduledPublishesResponseSchema)` to create a new message.
438
445
  */
439
446
  export const ListScheduledPublishesResponseSchema = /*@__PURE__*/
440
- messageDesc(file_records_v1_records, 60);
447
+ messageDesc(file_records_v1_records, 61);
441
448
 
442
449
  /**
443
450
  * Describes the message records.v1.GetScheduledPublishRequest.
444
451
  * Use `create(GetScheduledPublishRequestSchema)` to create a new message.
445
452
  */
446
453
  export const GetScheduledPublishRequestSchema = /*@__PURE__*/
447
- messageDesc(file_records_v1_records, 61);
454
+ messageDesc(file_records_v1_records, 62);
448
455
 
449
456
  /**
450
457
  * Describes the message records.v1.GetScheduledPublishResponse.
451
458
  * Use `create(GetScheduledPublishResponseSchema)` to create a new message.
452
459
  */
453
460
  export const GetScheduledPublishResponseSchema = /*@__PURE__*/
454
- messageDesc(file_records_v1_records, 62);
461
+ messageDesc(file_records_v1_records, 63);
455
462
 
456
463
  /**
457
464
  * Describes the message records.v1.ListDraftVersionsRequest.
458
465
  * Use `create(ListDraftVersionsRequestSchema)` to create a new message.
459
466
  */
460
467
  export const ListDraftVersionsRequestSchema = /*@__PURE__*/
461
- messageDesc(file_records_v1_records, 63);
468
+ messageDesc(file_records_v1_records, 64);
462
469
 
463
470
  /**
464
471
  * Describes the message records.v1.ListDraftVersionsResponse.
465
472
  * Use `create(ListDraftVersionsResponseSchema)` to create a new message.
466
473
  */
467
474
  export const ListDraftVersionsResponseSchema = /*@__PURE__*/
468
- messageDesc(file_records_v1_records, 64);
475
+ messageDesc(file_records_v1_records, 65);
469
476
 
470
477
  /**
471
478
  * Describes the message records.v1.BatchPublishVersionsRequest.
472
479
  * Use `create(BatchPublishVersionsRequestSchema)` to create a new message.
473
480
  */
474
481
  export const BatchPublishVersionsRequestSchema = /*@__PURE__*/
475
- messageDesc(file_records_v1_records, 65);
482
+ messageDesc(file_records_v1_records, 66);
476
483
 
477
484
  /**
478
485
  * Describes the message records.v1.BatchPublishVersionsResponse.
479
486
  * Use `create(BatchPublishVersionsResponseSchema)` to create a new message.
480
487
  */
481
488
  export const BatchPublishVersionsResponseSchema = /*@__PURE__*/
482
- messageDesc(file_records_v1_records, 66);
489
+ messageDesc(file_records_v1_records, 67);
483
490
 
484
491
  /**
485
492
  * Describes the message records.v1.BatchResolveRecordsRequest.
486
493
  * Use `create(BatchResolveRecordsRequestSchema)` to create a new message.
487
494
  */
488
495
  export const BatchResolveRecordsRequestSchema = /*@__PURE__*/
489
- messageDesc(file_records_v1_records, 67);
496
+ messageDesc(file_records_v1_records, 68);
490
497
 
491
498
  /**
492
499
  * Describes the message records.v1.BatchResolveRecordsResponse.
493
500
  * Use `create(BatchResolveRecordsResponseSchema)` to create a new message.
494
501
  */
495
502
  export const BatchResolveRecordsResponseSchema = /*@__PURE__*/
496
- messageDesc(file_records_v1_records, 68);
503
+ messageDesc(file_records_v1_records, 69);
497
504
 
498
505
  /**
499
506
  * Describes the message records.v1.ResolvedRecord.
500
507
  * Use `create(ResolvedRecordSchema)` to create a new message.
501
508
  */
502
509
  export const ResolvedRecordSchema = /*@__PURE__*/
503
- messageDesc(file_records_v1_records, 69);
510
+ messageDesc(file_records_v1_records, 70);
504
511
 
505
512
  /**
506
513
  * Describes the message records.v1.LookupRecordModelsRequest.
507
514
  * Use `create(LookupRecordModelsRequestSchema)` to create a new message.
508
515
  */
509
516
  export const LookupRecordModelsRequestSchema = /*@__PURE__*/
510
- messageDesc(file_records_v1_records, 70);
517
+ messageDesc(file_records_v1_records, 71);
511
518
 
512
519
  /**
513
520
  * Describes the message records.v1.RecordModelEntry.
514
521
  * Use `create(RecordModelEntrySchema)` to create a new message.
515
522
  */
516
523
  export const RecordModelEntrySchema = /*@__PURE__*/
517
- messageDesc(file_records_v1_records, 71);
524
+ messageDesc(file_records_v1_records, 72);
518
525
 
519
526
  /**
520
527
  * Describes the message records.v1.LookupRecordModelsResponse.
521
528
  * Use `create(LookupRecordModelsResponseSchema)` to create a new message.
522
529
  */
523
530
  export const LookupRecordModelsResponseSchema = /*@__PURE__*/
524
- messageDesc(file_records_v1_records, 72);
531
+ messageDesc(file_records_v1_records, 73);
525
532
 
526
533
  /**
527
534
  * Describes the message records.v1.GlobalSearchRequest.
528
535
  * Use `create(GlobalSearchRequestSchema)` to create a new message.
529
536
  */
530
537
  export const GlobalSearchRequestSchema = /*@__PURE__*/
531
- messageDesc(file_records_v1_records, 73);
538
+ messageDesc(file_records_v1_records, 74);
532
539
 
533
540
  /**
534
541
  * Describes the message records.v1.SearchResultItem.
535
542
  * Use `create(SearchResultItemSchema)` to create a new message.
536
543
  */
537
544
  export const SearchResultItemSchema = /*@__PURE__*/
538
- messageDesc(file_records_v1_records, 74);
545
+ messageDesc(file_records_v1_records, 75);
539
546
 
540
547
  /**
541
548
  * Describes the message records.v1.GlobalSearchResponse.
542
549
  * Use `create(GlobalSearchResponseSchema)` to create a new message.
543
550
  */
544
551
  export const GlobalSearchResponseSchema = /*@__PURE__*/
545
- messageDesc(file_records_v1_records, 75);
552
+ messageDesc(file_records_v1_records, 76);
546
553
 
547
554
  /**
548
555
  * Describes the message records.v1.EmbeddingStats.
549
556
  * Use `create(EmbeddingStatsSchema)` to create a new message.
550
557
  */
551
558
  export const EmbeddingStatsSchema = /*@__PURE__*/
552
- messageDesc(file_records_v1_records, 76);
559
+ messageDesc(file_records_v1_records, 77);
553
560
 
554
561
  /**
555
562
  * Describes the message records.v1.RecordEmbedding.
556
563
  * Use `create(RecordEmbeddingSchema)` to create a new message.
557
564
  */
558
565
  export const RecordEmbeddingSchema = /*@__PURE__*/
559
- messageDesc(file_records_v1_records, 77);
566
+ messageDesc(file_records_v1_records, 78);
560
567
 
561
568
  /**
562
569
  * Describes the message records.v1.SimilarRecord.
563
570
  * Use `create(SimilarRecordSchema)` to create a new message.
564
571
  */
565
572
  export const SimilarRecordSchema = /*@__PURE__*/
566
- messageDesc(file_records_v1_records, 78);
573
+ messageDesc(file_records_v1_records, 79);
567
574
 
568
575
  /**
569
576
  * Describes the message records.v1.GetEmbeddingStatsRequest.
570
577
  * Use `create(GetEmbeddingStatsRequestSchema)` to create a new message.
571
578
  */
572
579
  export const GetEmbeddingStatsRequestSchema = /*@__PURE__*/
573
- messageDesc(file_records_v1_records, 79);
580
+ messageDesc(file_records_v1_records, 80);
574
581
 
575
582
  /**
576
583
  * Describes the message records.v1.GetEmbeddingStatsResponse.
577
584
  * Use `create(GetEmbeddingStatsResponseSchema)` to create a new message.
578
585
  */
579
586
  export const GetEmbeddingStatsResponseSchema = /*@__PURE__*/
580
- messageDesc(file_records_v1_records, 80);
587
+ messageDesc(file_records_v1_records, 81);
581
588
 
582
589
  /**
583
590
  * Describes the message records.v1.GetRecordEmbeddingsRequest.
584
591
  * Use `create(GetRecordEmbeddingsRequestSchema)` to create a new message.
585
592
  */
586
593
  export const GetRecordEmbeddingsRequestSchema = /*@__PURE__*/
587
- messageDesc(file_records_v1_records, 81);
594
+ messageDesc(file_records_v1_records, 82);
588
595
 
589
596
  /**
590
597
  * Describes the message records.v1.GetRecordEmbeddingsResponse.
591
598
  * Use `create(GetRecordEmbeddingsResponseSchema)` to create a new message.
592
599
  */
593
600
  export const GetRecordEmbeddingsResponseSchema = /*@__PURE__*/
594
- messageDesc(file_records_v1_records, 82);
601
+ messageDesc(file_records_v1_records, 83);
595
602
 
596
603
  /**
597
604
  * Describes the message records.v1.FindSimilarRecordsRequest.
598
605
  * Use `create(FindSimilarRecordsRequestSchema)` to create a new message.
599
606
  */
600
607
  export const FindSimilarRecordsRequestSchema = /*@__PURE__*/
601
- messageDesc(file_records_v1_records, 83);
608
+ messageDesc(file_records_v1_records, 84);
602
609
 
603
610
  /**
604
611
  * Describes the message records.v1.FindSimilarRecordsResponse.
605
612
  * Use `create(FindSimilarRecordsResponseSchema)` to create a new message.
606
613
  */
607
614
  export const FindSimilarRecordsResponseSchema = /*@__PURE__*/
608
- messageDesc(file_records_v1_records, 84);
615
+ messageDesc(file_records_v1_records, 85);
609
616
 
610
617
  /**
611
618
  * Describes the message records.v1.WriteEmbeddingsRequest.
612
619
  * Use `create(WriteEmbeddingsRequestSchema)` to create a new message.
613
620
  */
614
621
  export const WriteEmbeddingsRequestSchema = /*@__PURE__*/
615
- messageDesc(file_records_v1_records, 85);
622
+ messageDesc(file_records_v1_records, 86);
616
623
 
617
624
  /**
618
625
  * Describes the message records.v1.WriteEmbeddingsResponse.
619
626
  * Use `create(WriteEmbeddingsResponseSchema)` to create a new message.
620
627
  */
621
628
  export const WriteEmbeddingsResponseSchema = /*@__PURE__*/
622
- messageDesc(file_records_v1_records, 86);
629
+ messageDesc(file_records_v1_records, 87);
623
630
 
624
631
  /**
625
632
  * Describes the message records.v1.DeleteEmbeddingsRequest.
626
633
  * Use `create(DeleteEmbeddingsRequestSchema)` to create a new message.
627
634
  */
628
635
  export const DeleteEmbeddingsRequestSchema = /*@__PURE__*/
629
- messageDesc(file_records_v1_records, 87);
636
+ messageDesc(file_records_v1_records, 88);
630
637
 
631
638
  /**
632
639
  * Describes the message records.v1.DeleteEmbeddingsResponse.
633
640
  * Use `create(DeleteEmbeddingsResponseSchema)` to create a new message.
634
641
  */
635
642
  export const DeleteEmbeddingsResponseSchema = /*@__PURE__*/
636
- messageDesc(file_records_v1_records, 88);
643
+ messageDesc(file_records_v1_records, 89);
637
644
 
638
645
  /**
639
646
  * Describes the message records.v1.EnqueueGenerateEmbeddingRequest.
640
647
  * Use `create(EnqueueGenerateEmbeddingRequestSchema)` to create a new message.
641
648
  */
642
649
  export const EnqueueGenerateEmbeddingRequestSchema = /*@__PURE__*/
643
- messageDesc(file_records_v1_records, 89);
650
+ messageDesc(file_records_v1_records, 90);
644
651
 
645
652
  /**
646
653
  * Describes the message records.v1.EnqueueGenerateEmbeddingResponse.
647
654
  * Use `create(EnqueueGenerateEmbeddingResponseSchema)` to create a new message.
648
655
  */
649
656
  export const EnqueueGenerateEmbeddingResponseSchema = /*@__PURE__*/
650
- messageDesc(file_records_v1_records, 90);
657
+ messageDesc(file_records_v1_records, 91);
651
658
 
652
659
  /**
653
660
  * Describes the message records.v1.SearchEmbeddingsRequest.
654
661
  * Use `create(SearchEmbeddingsRequestSchema)` to create a new message.
655
662
  */
656
663
  export const SearchEmbeddingsRequestSchema = /*@__PURE__*/
657
- messageDesc(file_records_v1_records, 91);
664
+ messageDesc(file_records_v1_records, 92);
658
665
 
659
666
  /**
660
667
  * Describes the message records.v1.SearchEmbeddingsResponse.
661
668
  * Use `create(SearchEmbeddingsResponseSchema)` to create a new message.
662
669
  */
663
670
  export const SearchEmbeddingsResponseSchema = /*@__PURE__*/
664
- messageDesc(file_records_v1_records, 92);
671
+ messageDesc(file_records_v1_records, 93);
665
672
 
666
673
  /**
667
674
  * Describes the message records.v1.LookupRecordRequest.
668
675
  * Use `create(LookupRecordRequestSchema)` to create a new message.
669
676
  */
670
677
  export const LookupRecordRequestSchema = /*@__PURE__*/
671
- messageDesc(file_records_v1_records, 93);
678
+ messageDesc(file_records_v1_records, 94);
672
679
 
673
680
  /**
674
681
  * Describes the message records.v1.LookupRecordResponse.
675
682
  * Use `create(LookupRecordResponseSchema)` to create a new message.
676
683
  */
677
684
  export const LookupRecordResponseSchema = /*@__PURE__*/
678
- messageDesc(file_records_v1_records, 94);
685
+ messageDesc(file_records_v1_records, 95);
679
686
 
680
687
  /**
681
688
  * Describes the message records.v1.CheckLookupAvailabilityRequest.
682
689
  * Use `create(CheckLookupAvailabilityRequestSchema)` to create a new message.
683
690
  */
684
691
  export const CheckLookupAvailabilityRequestSchema = /*@__PURE__*/
685
- messageDesc(file_records_v1_records, 95);
692
+ messageDesc(file_records_v1_records, 96);
686
693
 
687
694
  /**
688
695
  * Describes the message records.v1.CheckLookupAvailabilityResponse.
689
696
  * Use `create(CheckLookupAvailabilityResponseSchema)` to create a new message.
690
697
  */
691
698
  export const CheckLookupAvailabilityResponseSchema = /*@__PURE__*/
692
- messageDesc(file_records_v1_records, 96);
699
+ messageDesc(file_records_v1_records, 97);
693
700
 
694
701
  /**
695
702
  * Describes the message records.v1.LookupConflictDetail.
696
703
  * Use `create(LookupConflictDetailSchema)` to create a new message.
697
704
  */
698
705
  export const LookupConflictDetailSchema = /*@__PURE__*/
699
- messageDesc(file_records_v1_records, 97);
706
+ messageDesc(file_records_v1_records, 98);
700
707
 
701
708
  /**
702
709
  * Describes the message records.v1.ListLookupConflictsRequest.
703
710
  * Use `create(ListLookupConflictsRequestSchema)` to create a new message.
704
711
  */
705
712
  export const ListLookupConflictsRequestSchema = /*@__PURE__*/
706
- messageDesc(file_records_v1_records, 98);
713
+ messageDesc(file_records_v1_records, 99);
707
714
 
708
715
  /**
709
716
  * Describes the message records.v1.ListLookupConflictsResponse.
710
717
  * Use `create(ListLookupConflictsResponseSchema)` to create a new message.
711
718
  */
712
719
  export const ListLookupConflictsResponseSchema = /*@__PURE__*/
713
- messageDesc(file_records_v1_records, 99);
720
+ messageDesc(file_records_v1_records, 100);
714
721
 
715
722
  /**
716
723
  * Describes the message records.v1.ConflictGroup.
717
724
  * Use `create(ConflictGroupSchema)` to create a new message.
718
725
  */
719
726
  export const ConflictGroupSchema = /*@__PURE__*/
720
- messageDesc(file_records_v1_records, 100);
727
+ messageDesc(file_records_v1_records, 101);
721
728
 
722
729
  /**
723
730
  * Describes the message records.v1.RebuildModelLookupsRequest.
724
731
  * Use `create(RebuildModelLookupsRequestSchema)` to create a new message.
725
732
  */
726
733
  export const RebuildModelLookupsRequestSchema = /*@__PURE__*/
727
- messageDesc(file_records_v1_records, 101);
734
+ messageDesc(file_records_v1_records, 102);
728
735
 
729
736
  /**
730
737
  * Describes the message records.v1.RebuildModelLookupsResponse.
731
738
  * Use `create(RebuildModelLookupsResponseSchema)` to create a new message.
732
739
  */
733
740
  export const RebuildModelLookupsResponseSchema = /*@__PURE__*/
734
- messageDesc(file_records_v1_records, 102);
741
+ messageDesc(file_records_v1_records, 103);
735
742
 
736
743
  /**
737
744
  * Describes the enum records.v1.RecordType.