@tailor-platform/sdk 1.69.0 → 1.70.1
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/CHANGELOG.md +73 -0
- package/dist/{application-Cr-limKC.mjs → application-DmjIKQ-a.mjs} +319 -79
- package/dist/application-DmjIKQ-a.mjs.map +1 -0
- package/dist/application-a_ApFuPh.mjs +4 -0
- package/dist/cli/erd-viewer-assets/app.js +279 -36
- package/dist/cli/erd-viewer-assets/index.html +4 -0
- package/dist/cli/erd-viewer-assets/styles.css +252 -5
- package/dist/cli/index.mjs +642 -91
- package/dist/cli/index.mjs.map +1 -1
- package/dist/cli/lib.d.mts +87 -13
- package/dist/cli/lib.mjs +2 -2
- package/dist/cli/lib.mjs.map +1 -1
- package/dist/completion/zsh-worker.zsh +159 -6
- package/dist/configure/index.d.mts +5 -5
- package/dist/configure/index.mjs +8 -6
- package/dist/configure/index.mjs.map +1 -1
- package/dist/{index-B7VbJm0_.d.mts → index-BAEaAqmz.d.mts} +90 -40
- package/dist/{index-CklcVeMG.d.mts → index-C-vsbx27.d.mts} +2 -2
- package/dist/{index-hXoO-AOC.d.mts → index-CKI0eZP6.d.mts} +2 -2
- package/dist/{index-DYhnxXYR.d.mts → index-CrqOgUF2.d.mts} +2 -2
- package/dist/{index-DlDRSzFZ.d.mts → index-DESLU9kI.d.mts} +2 -2
- package/dist/plugin/builtin/enum-constants/index.d.mts +1 -1
- package/dist/plugin/builtin/file-utils/index.d.mts +1 -1
- package/dist/plugin/builtin/kysely-type/index.d.mts +1 -1
- package/dist/plugin/builtin/seed/index.d.mts +1 -1
- package/dist/plugin/index.d.mts +1 -1
- package/dist/{runtime-jowoN6qC.mjs → runtime-BpHVwifd.mjs} +525 -311
- package/dist/runtime-BpHVwifd.mjs.map +1 -0
- package/dist/{schema-1msIhXwA.mjs → schema-C4fkpWV_.mjs} +9 -15
- package/dist/schema-C4fkpWV_.mjs.map +1 -0
- package/dist/{service_pb-DGSmn-aF.mjs → service_pb-BJ9GsAnW.mjs} +1 -1
- package/dist/{service_pb-DSNjrcbW.mjs → service_pb-BsBR6yW5.mjs} +22 -7
- package/dist/service_pb-BsBR6yW5.mjs.map +1 -0
- package/dist/{types-2Be3wSMc.mjs → types-32lUMToj.mjs} +1 -1
- package/dist/{types-CmzfQP_m.mjs → types-D4QMmNWh.mjs} +1 -12
- package/dist/types-D4QMmNWh.mjs.map +1 -0
- package/dist/{types-Bzr0RQME.d.mts → types-Dynq4AJv.d.mts} +2 -2
- package/dist/{types-DZrtN6-H.d.mts → types-rj8YJcEe.d.mts} +5 -2
- package/dist/utils/test/index.d.mts +2 -2
- package/dist/{workflow.generated-Br9bmLdX.d.mts → workflow.generated-DJULCuRr.d.mts} +177 -172
- package/docs/cli/application.md +37 -2
- package/docs/cli/setup.md +1 -0
- package/docs/cli/tailordb.md +24 -0
- package/docs/cli/user.md +11 -1
- package/docs/cli/workspace.md +13 -7
- package/docs/cli-reference.md +6 -0
- package/docs/github-actions.md +27 -0
- package/docs/multi-environment.md +22 -0
- package/docs/services/aigateway.md +4 -2
- package/docs/services/auth.md +4 -14
- package/docs/services/http-adapter.md +16 -1
- package/package.json +11 -11
- package/dist/application-Br48NXBD.mjs +0 -4
- package/dist/application-Cr-limKC.mjs.map +0 -1
- package/dist/runtime-jowoN6qC.mjs.map +0 -1
- package/dist/schema-1msIhXwA.mjs.map +0 -1
- package/dist/service_pb-DSNjrcbW.mjs.map +0 -1
- package/dist/types-CmzfQP_m.mjs.map +0 -1
|
@@ -14,15 +14,10 @@ const regex = {
|
|
|
14
14
|
datetime: /^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})T(?<hour>\d{2}):(?<minute>\d{2}):(?<second>\d{2})(.(?<millisec>\d{3}))?Z$/,
|
|
15
15
|
decimal: /^-?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/
|
|
16
16
|
};
|
|
17
|
-
/**
|
|
18
|
-
* Creates a new TailorDBField instance.
|
|
19
|
-
* @param type - Field type
|
|
20
|
-
* @param options - Field options
|
|
21
|
-
* @param fields - Nested fields for object-like types
|
|
22
|
-
* @param values - Allowed values for enum-like fields
|
|
23
|
-
* @returns A new TailorDBField
|
|
24
|
-
*/
|
|
25
17
|
function createTailorDBField(type, options, fields, values) {
|
|
18
|
+
return createTailorDBFieldRuntime(type, options, fields, values);
|
|
19
|
+
}
|
|
20
|
+
function createTailorDBFieldRuntime(type, options, fields, values) {
|
|
26
21
|
const _metadata = { required: true };
|
|
27
22
|
let _rawRelation;
|
|
28
23
|
if (options) {
|
|
@@ -211,7 +206,9 @@ function createTailorDBField(type, options, fields, values) {
|
|
|
211
206
|
description(description) {
|
|
212
207
|
return cloneWith({ description });
|
|
213
208
|
},
|
|
214
|
-
typeName
|
|
209
|
+
typeName(typeName) {
|
|
210
|
+
return cloneWith({ typeName });
|
|
211
|
+
},
|
|
215
212
|
validate(...validateInputs) {
|
|
216
213
|
return cloneWith({ validate: validateInputs });
|
|
217
214
|
},
|
|
@@ -263,16 +260,13 @@ function createTailorDBField(type, options, fields, values) {
|
|
|
263
260
|
for (const [key, field] of Object.entries(fields)) cloned[key] = field.clone();
|
|
264
261
|
clonedFields = cloned;
|
|
265
262
|
}
|
|
266
|
-
const clonedField =
|
|
263
|
+
const clonedField = createTailorDBFieldRuntime(type, options, clonedFields, values);
|
|
267
264
|
Object.assign(clonedField._metadata, cloneDeep(this._metadata));
|
|
268
265
|
if (cloneOptions) {
|
|
269
266
|
if (cloneOptions.optional !== void 0) clonedField._metadata.required = !cloneOptions.optional;
|
|
270
267
|
if (cloneOptions.array !== void 0) clonedField._metadata.array = cloneOptions.array;
|
|
271
268
|
}
|
|
272
|
-
if (_rawRelation)
|
|
273
|
-
const clonedRawRelation = cloneDeep(_rawRelation);
|
|
274
|
-
clonedField._setRawRelation(clonedRawRelation);
|
|
275
|
-
}
|
|
269
|
+
if (_rawRelation) clonedField._setRawRelation(cloneDeep(_rawRelation));
|
|
276
270
|
return clonedField;
|
|
277
271
|
},
|
|
278
272
|
_setRawRelation(relation) {
|
|
@@ -578,4 +572,4 @@ timestamps: () => ({
|
|
|
578
572
|
|
|
579
573
|
//#endregion
|
|
580
574
|
export { db as t };
|
|
581
|
-
//# sourceMappingURL=schema-
|
|
575
|
+
//# sourceMappingURL=schema-C4fkpWV_.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-C4fkpWV_.mjs","names":[],"sources":["../src/configure/services/tailordb/schema.ts"],"sourcesContent":["import { cloneDeep } from \"es-toolkit\";\nimport {\n type AllowedValues,\n type AllowedValuesOutput,\n mapAllowedValues,\n} from \"#/configure/types/field\";\nimport { brandValue } from \"#/utils/brand\";\nimport type {\n TailorDBField as TailorDBFieldBase,\n TailorDBType as TailorDBTypeBase,\n DBFieldMetadata,\n DefinedDBFieldMetadata,\n SerialConfig,\n IndexDef,\n TailorDBTypeMetadata,\n RawRelationConfig,\n RelationType,\n} from \"#/configure/services/tailordb/types\";\nimport type {\n FieldOptions,\n FieldOutput,\n TailorFieldType,\n TailorToTs,\n FieldValidateInput,\n ValidateConfig,\n Validators,\n} from \"#/configure/types/field.types\";\nimport type { PluginAttachment, PluginConfigs } from \"#/plugin/types\";\nimport type { InferredAttributeMap, TailorUser } from \"#/runtime/types\";\nimport type { output, InferFieldsOutput, TypeLevelError } from \"#/types/helpers\";\nimport type { RawPermissions } from \"#/types/tailordb.generated\";\nimport type { TailorTypeGqlPermission, TailorTypePermission } from \"./permission\";\nimport type { Hook, Hooks, ExcludeNestedDBFields, TypeFeatures } from \"./types\";\nimport type { StandardSchemaV1 } from \"@standard-schema/spec\";\n\n// Erased DB fields stay assignable across builder method-state changes.\n// oxlint-disable-next-line no-explicit-any\ntype AnyBuilderMethod = any;\n\nexport type TailorAnyDBField = Omit<\n TailorDBFieldBase<AnyBuilderMethod, AnyBuilderMethod>,\n \"fields\"\n> & {\n readonly fields: Record<string, AnyBuilderMethod>;\n _metadata: DBFieldMetadata;\n parse: AnyBuilderMethod;\n _parseInternal: AnyBuilderMethod;\n readonly typeName: TypeLevelError<string>;\n description: AnyBuilderMethod;\n relation: AnyBuilderMethod;\n index: AnyBuilderMethod;\n unique: AnyBuilderMethod;\n vector: AnyBuilderMethod;\n hooks: AnyBuilderMethod;\n validate: AnyBuilderMethod;\n serial: AnyBuilderMethod;\n clone: AnyBuilderMethod;\n};\n\n// Helper alias\n// oxlint-disable-next-line no-explicit-any\nexport type TailorAnyDBType = TailorDBType<any, any>;\n\ntype IsAny<T> = 0 extends 1 & T ? true : false;\ntype DBFieldTypeNameMethod<Defined extends DefinedDBFieldMetadata> =\n IsAny<Defined> extends true\n ? TypeLevelError<string>\n : TypeLevelError<\"typeName cannot be used on TailorDB fields\">;\n\ntype WithDBFieldDescription<Defined> = Defined & { description: true };\ntype WithDBFieldRelation<Defined, S extends RelationType | RelationSelfConfig> = S extends\n | \"oneToOne\"\n | \"1-1\"\n ? Defined & { unique: true; index: true; relation: true }\n : S extends { type: \"oneToOne\" | \"1-1\" }\n ? Defined & { unique: true; index: true; relation: true }\n : Defined & { index: true; relation: true };\ntype WithDBFieldIndex<Defined> = Defined & { index: true };\ntype WithDBFieldUnique<Defined> = Defined & { unique: true; index: true };\ntype WithDBFieldVector<Defined> = Defined & { vector: true };\ntype WithDBFieldHooks<Defined, H> = Defined & {\n hooks: {\n create: H extends { create: unknown } ? true : false;\n update: H extends { update: unknown } ? true : false;\n };\n serial: false;\n};\ntype WithDBFieldValidate<Defined> = Defined & { validate: true };\ntype WithDBFieldSerial<Defined> = Defined & {\n serial: true;\n hooks: { create: false; update: false };\n};\ntype WithDBFieldCloneOptions<\n Defined extends DefinedDBFieldMetadata,\n NewOpt extends FieldOptions,\n> = Omit<Defined, \"array\"> & {\n array: NewOpt extends { array: true } ? true : Defined[\"array\"];\n};\ntype FileKeyConflictError<\n Fields extends Record<string, TailorAnyDBField>,\n User extends object,\n> = Partial<\n Record<\n keyof output<TailorDBType<Fields, User>> & string,\n TypeLevelError<\"file keys cannot use existing field names\">\n >\n>;\ntype DBFieldDescriptionFn<Defined extends DefinedDBFieldMetadata, Output> = (\n description: string,\n) => TailorDBField<WithDBFieldDescription<Defined>, Output>;\ntype DBFieldRelationFn<Defined extends DefinedDBFieldMetadata, Output> = {\n <S extends RelationType, T extends TailorAnyDBType>(\n config: RelationConfig<S, T>,\n ): TailorDBField<WithDBFieldRelation<Defined, S>, Output>;\n <S extends RelationSelfConfig>(config: S): TailorDBField<WithDBFieldRelation<Defined, S>, Output>;\n};\ntype DBFieldIndexFn<Defined extends DefinedDBFieldMetadata, Output> = () => TailorDBField<\n WithDBFieldIndex<Defined>,\n Output\n>;\ntype DBFieldUniqueFn<Defined extends DefinedDBFieldMetadata, Output> = () => TailorDBField<\n WithDBFieldUnique<Defined>,\n Output\n>;\ntype DBFieldVectorFn<Defined extends DefinedDBFieldMetadata, Output> = () => TailorDBField<\n WithDBFieldVector<Defined>,\n Output\n>;\ntype DBFieldHooksFn<Defined extends DefinedDBFieldMetadata, Output> = <\n const H extends Hook<unknown, Output>,\n>(\n hooks: H,\n) => TailorDBField<WithDBFieldHooks<Defined, H>, Output>;\ntype DBFieldValidateFn<Defined extends DefinedDBFieldMetadata, Output> = (\n ...validate: FieldValidateInput<Output>[]\n) => TailorDBField<WithDBFieldValidate<Defined>, Output>;\ntype DBFieldSerialFn<Defined extends DefinedDBFieldMetadata, Output> = (\n config: SerialConfig<Defined[\"type\"] & (\"integer\" | \"string\")>,\n) => TailorDBField<WithDBFieldSerial<Defined>, Output>;\ntype DBFieldDescriptionMethod<Defined extends DefinedDBFieldMetadata, Output> =\n IsAny<Defined> extends true\n ? DBFieldDescriptionFn<Defined, Output>\n : Defined extends { description: unknown }\n ? TypeLevelError<\".description() has already been set\">\n : DBFieldDescriptionFn<Defined, Output>;\ntype DBFieldRelationMethod<Defined extends DefinedDBFieldMetadata, Output> =\n IsAny<Defined> extends true\n ? DBFieldRelationFn<Defined, Output>\n : Defined extends { relation: unknown }\n ? TypeLevelError<\".relation() has already been set\">\n : DBFieldRelationFn<Defined, Output>;\ntype DBFieldIndexMethod<Defined extends DefinedDBFieldMetadata, Output> =\n IsAny<Defined> extends true\n ? DBFieldIndexFn<Defined, Output>\n : Defined extends { index: unknown }\n ? TypeLevelError<\".index() has already been set\">\n : Defined extends { array: true }\n ? TypeLevelError<\"index cannot be set on array fields\">\n : DBFieldIndexFn<Defined, Output>;\ntype DBFieldUniqueMethod<Defined extends DefinedDBFieldMetadata, Output> =\n IsAny<Defined> extends true\n ? DBFieldUniqueFn<Defined, Output>\n : Defined extends { unique: unknown }\n ? TypeLevelError<\".unique() has already been set\">\n : Defined extends { array: true }\n ? TypeLevelError<\"unique cannot be set on array fields\">\n : DBFieldUniqueFn<Defined, Output>;\ntype DBFieldVectorMethod<Defined extends DefinedDBFieldMetadata, Output> =\n IsAny<Defined> extends true\n ? DBFieldVectorFn<Defined, Output>\n : Defined extends { vector: unknown }\n ? TypeLevelError<\".vector() has already been set\">\n : Defined extends { type: \"string\"; array: false }\n ? DBFieldVectorFn<Defined, Output>\n : TypeLevelError<\"vector can only be set on non-array string fields\">;\ntype DBFieldHooksMethod<Defined extends DefinedDBFieldMetadata, Output> =\n IsAny<Defined> extends true\n ? DBFieldHooksFn<Defined, Output>\n : Defined extends {\n serial: true;\n hooks: { create: false; update: false };\n }\n ? TypeLevelError<\"hooks cannot be set after serial\">\n : Defined extends {\n hooks: unknown;\n }\n ? TypeLevelError<\".hooks() has already been set\">\n : Defined extends { type: \"nested\" }\n ? TypeLevelError<\"hooks cannot be set on nested type fields\">\n : DBFieldHooksFn<Defined, Output>;\ntype DBFieldValidateMethod<Defined extends DefinedDBFieldMetadata, Output> =\n IsAny<Defined> extends true\n ? DBFieldValidateFn<Defined, Output>\n : Defined extends { validate: unknown }\n ? TypeLevelError<\".validate() has already been set\">\n : DBFieldValidateFn<Defined, Output>;\ntype DBFieldSerialMethod<Defined extends DefinedDBFieldMetadata, Output> =\n IsAny<Defined> extends true\n ? DBFieldSerialFn<Defined, Output>\n : Defined extends { serial: true }\n ? TypeLevelError<\".serial() has already been set\">\n : Defined extends { serial: false }\n ? TypeLevelError<\"serial cannot be set after hooks\">\n : IsAny<Output> extends true\n ? Defined extends { type: \"integer\" | \"string\"; array: false }\n ? DBFieldSerialFn<Defined, Output>\n : TypeLevelError<\"serial can only be set on non-array integer or string fields\">\n : null extends Output\n ? TypeLevelError<\"serial can only be set on non-array integer or string fields\">\n : Defined extends { type: \"integer\" | \"string\"; array: false }\n ? DBFieldSerialFn<Defined, Output>\n : TypeLevelError<\"serial can only be set on non-array integer or string fields\">;\n\n/**\n * Full TailorDBField interface with builder methods.\n * Extends the minimal structural interface from types/ with fluent API methods.\n */\nexport interface TailorDBField<\n Defined extends DefinedDBFieldMetadata = DefinedDBFieldMetadata,\n // oxlint-disable-next-line no-explicit-any\n Output = any,\n> extends Omit<TailorDBFieldBase<Defined, Output>, \"fields\"> {\n readonly fields: Record<string, TailorAnyDBField>;\n _metadata: DBFieldMetadata;\n\n /**\n * Parse and validate a value against this field's validation rules\n */\n parse(args: FieldParseArgs): StandardSchemaV1.Result<Output>;\n\n /**\n * Internal parse method that tracks field path for nested validation\n * @private\n */\n _parseInternal(args: FieldParseInternalArgs): StandardSchemaV1.Result<Output>;\n\n /**\n * typeName is not available on TailorDB fields.\n * Use typeName on pipeline fields (t.enum / t.object) instead.\n */\n typeName: DBFieldTypeNameMethod<Defined>;\n\n /**\n * Set a description for the field\n */\n description: DBFieldDescriptionMethod<Defined, Output>;\n\n /**\n * Define a relation to another type.\n */\n relation: DBFieldRelationMethod<Defined, Output>;\n\n /**\n * Add an index to the field\n */\n index: DBFieldIndexMethod<Defined, Output>;\n\n /**\n * Make the field unique (also adds an index)\n */\n unique: DBFieldUniqueMethod<Defined, Output>;\n\n /**\n * Enable vector search on the field (string type only)\n */\n vector: DBFieldVectorMethod<Defined, Output>;\n\n /**\n * Add hooks for create/update operations on this field.\n */\n hooks: DBFieldHooksMethod<Defined, Output>;\n\n /**\n * Add validation functions to the field.\n */\n validate: DBFieldValidateMethod<Defined, Output>;\n\n /**\n * Configure serial/auto-increment behavior\n */\n serial: DBFieldSerialMethod<Defined, Output>;\n\n /**\n * Clone the field with optional overrides for field options\n */\n clone<const NewOpt extends FieldOptions>(\n options?: NewOpt,\n ): TailorDBField<\n WithDBFieldCloneOptions<Defined, NewOpt>,\n FieldOutput<TailorToTs[Defined[\"type\"]], NewOpt>\n >;\n}\n\n/**\n * Full TailorDBType interface with builder methods.\n * Extends the minimal structural interface from types/ with fluent API methods.\n */\nexport interface TailorDBType<\n // oxlint-disable-next-line no-explicit-any\n Fields extends Record<string, TailorAnyDBField> = any,\n User extends object = InferredAttributeMap,\n> extends TailorDBTypeBase<Fields, User> {\n _description?: string;\n\n hooks(hooks: Hooks<Fields>): TailorDBType<Fields, User>;\n validate(validators: Validators<Fields>): TailorDBType<Fields, User>;\n features(features: Omit<TypeFeatures, \"pluralForm\">): TailorDBType<Fields, User>;\n indexes(...indexes: IndexDef<TailorDBType<Fields, User>>[]): TailorDBType<Fields, User>;\n files<const F extends string>(\n files: Record<F, string> & FileKeyConflictError<Fields, User>,\n ): TailorDBType<Fields, User>;\n permission<\n U extends object = User,\n P extends TailorTypePermission<U, output<TailorDBType<Fields, User>>> = TailorTypePermission<\n U,\n output<TailorDBType<Fields, User>>\n >,\n >(\n permission: P,\n ): TailorDBType<Fields, U>;\n gqlPermission<\n U extends object = User,\n P extends TailorTypeGqlPermission<U> = TailorTypeGqlPermission<U>,\n >(\n permission: P,\n ): TailorDBType<Fields, U>;\n description(description: string): TailorDBType<Fields, User>;\n pickFields<K extends keyof Fields>(keys: K[]): Pick<Fields, K>;\n pickFields<K extends keyof Fields, const Opt extends FieldOptions>(\n keys: K[],\n options: Opt,\n ): {\n [P in K]: Fields[P] extends TailorDBField<infer D, infer _O>\n ? TailorDBField<\n Omit<D, \"array\"> & {\n array: Opt extends { array: true } ? true : D[\"array\"];\n },\n FieldOutput<TailorToTs[D[\"type\"]], Opt>\n >\n : never;\n };\n omitFields<K extends keyof Fields>(keys: K[]): Omit<Fields, K>;\n plugin<P extends keyof PluginConfigs<keyof Fields & string>>(config: {\n [K in P]: PluginConfigs<keyof Fields & string>[K];\n }): TailorDBType<Fields, User>;\n}\n\nexport type TailorDBInstance<\n // oxlint-disable-next-line no-explicit-any\n Fields extends Record<string, TailorAnyDBField> = any,\n User extends object = InferredAttributeMap,\n> = TailorDBType<Fields, User>;\n\ninterface RelationConfig<S extends RelationType, T extends TailorDBType> {\n type: S;\n toward: {\n type: T;\n as?: string;\n key?: keyof T[\"fields\"] & string;\n };\n backward?: string;\n}\n\n// Special config variant for self-referencing relations\ntype RelationSelfConfig = {\n type: RelationType;\n toward: {\n type: \"self\";\n as?: string;\n key?: string;\n };\n backward?: string;\n};\n\nfunction isRelationSelfConfig(\n config: RelationConfig<RelationType, TailorDBType> | RelationSelfConfig,\n): config is RelationSelfConfig {\n return config.toward.type === \"self\";\n}\n\nconst regex = {\n uuid: /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,\n date: /^(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})$/,\n time: /^(?<hour>\\d{2}):(?<minute>\\d{2})$/,\n datetime:\n /^(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})T(?<hour>\\d{2}):(?<minute>\\d{2}):(?<second>\\d{2})(.(?<millisec>\\d{3}))?Z$/,\n decimal: /^-?(\\d+\\.?\\d*|\\.\\d+)([eE][+-]?\\d+)?$/,\n} as const;\n\ntype FieldParseArgs = {\n value: unknown;\n data: unknown;\n user: TailorUser;\n};\n\ntype FieldValidateValueArgs<T extends TailorFieldType> = {\n value: TailorToTs[T];\n data: unknown;\n user: TailorUser;\n pathArray: string[];\n};\n\ntype FieldParseInternalArgs = {\n // Runtime input is unknown/untyped; we validate and narrow it inside the parser.\n // oxlint-disable-next-line no-explicit-any\n value: any;\n data: unknown;\n user: TailorUser;\n pathArray: string[];\n};\n\ntype DBFieldDefined<T extends TailorFieldType, Opt extends FieldOptions> = {\n type: T;\n array: Opt extends { array: true } ? true : false;\n};\ntype DBFieldOutput<\n T extends TailorFieldType,\n Opt extends FieldOptions,\n OutputBase = TailorToTs[T],\n> = FieldOutput<OutputBase, Opt>;\ntype TailorDBFieldInstance<\n T extends TailorFieldType,\n Opt extends FieldOptions,\n OutputBase = TailorToTs[T],\n> = TailorDBField<DBFieldDefined<T, Opt>, DBFieldOutput<T, Opt, OutputBase>>;\ntype TailorDBFieldRuntimeInstance<\n T extends TailorFieldType,\n Opt extends FieldOptions,\n OutputBase = TailorToTs[T],\n> = TailorDBFieldRuntime<DBFieldDefined<T, Opt>, DBFieldOutput<T, Opt, OutputBase>>;\ntype TailorDBFieldRuntime<Defined extends DefinedDBFieldMetadata, Output> = Omit<\n TailorDBFieldBase<Defined, Output>,\n \"fields\"\n> & {\n readonly fields: Record<string, TailorAnyDBField>;\n _metadata: DBFieldMetadata;\n description(description: string): object;\n typeName(typeName: string): object;\n validate(...validate: FieldValidateInput<Output>[]): object;\n relation(config: RelationConfig<RelationType, TailorDBType> | RelationSelfConfig): object;\n index(): object;\n unique(): object;\n vector(): object;\n hooks(hooks: Hook<unknown, Output>): object;\n serial(config: SerialConfig): object;\n clone(options?: FieldOptions): TailorDBFieldRuntime<DefinedDBFieldMetadata, AnyBuilderMethod>;\n parse(args: FieldParseArgs): StandardSchemaV1.Result<Output>;\n _parseInternal(args: FieldParseInternalArgs): StandardSchemaV1.Result<Output>;\n _setRawRelation(relation: RawRelationConfig): void;\n};\n\n/**\n * Creates a new TailorDBField instance.\n * @param type - Field type\n * @param options - Field options\n * @param fields - Nested fields for object-like types\n * @param values - Allowed values for enum-like fields\n * @returns A new TailorDBField\n */\nfunction createTailorDBField<\n const T extends TailorFieldType,\n const TOptions extends FieldOptions,\n const OutputBase = TailorToTs[T],\n>(\n type: T,\n options?: TOptions,\n fields?: Record<string, TailorAnyDBField>,\n values?: AllowedValues,\n): TailorDBFieldInstance<T, TOptions, OutputBase>;\nfunction createTailorDBField<const T extends TailorFieldType, const TOptions extends FieldOptions>(\n type: T,\n options?: TOptions,\n fields?: Record<string, TailorAnyDBField>,\n values?: AllowedValues,\n): object {\n return createTailorDBFieldRuntime(type, options, fields, values);\n}\n\nfunction createTailorDBFieldRuntime<\n const T extends TailorFieldType,\n const TOptions extends FieldOptions,\n const OutputBase = TailorToTs[T],\n>(\n type: T,\n options?: TOptions,\n fields?: Record<string, TailorAnyDBField>,\n values?: AllowedValues,\n): TailorDBFieldRuntimeInstance<T, TOptions, OutputBase> {\n type FieldValue = DBFieldOutput<T, TOptions, OutputBase>;\n type FieldType = TailorDBFieldRuntimeInstance<T, TOptions, OutputBase>;\n\n const _metadata: DBFieldMetadata = { required: true };\n let _rawRelation: RawRelationConfig | undefined;\n\n if (options) {\n if (options.optional === true) {\n _metadata.required = false;\n }\n if (options.array === true) {\n _metadata.array = true;\n }\n }\n if (values) {\n _metadata.allowedValues = mapAllowedValues(values);\n }\n\n /**\n * Validate a single value (not an array element)\n * Used internally for array element validation\n * @param args - Value, context data, and user\n * @returns Array of validation issues\n */\n function validateValue(args: FieldValidateValueArgs<T>): StandardSchemaV1.Issue[] {\n const { value, data, user, pathArray } = args;\n const issues: StandardSchemaV1.Issue[] = [];\n\n // Type-specific validation\n switch (type) {\n case \"string\":\n if (typeof value !== \"string\") {\n issues.push({\n message: `Expected a string: received ${String(value)}`,\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n }\n break;\n\n case \"integer\":\n if (typeof value !== \"number\" || !Number.isInteger(value)) {\n issues.push({\n message: `Expected an integer: received ${String(value)}`,\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n }\n break;\n\n case \"float\":\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n issues.push({\n message: `Expected a number: received ${String(value)}`,\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n }\n break;\n\n case \"boolean\":\n if (typeof value !== \"boolean\") {\n issues.push({\n message: `Expected a boolean: received ${String(value)}`,\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n }\n break;\n\n case \"uuid\":\n if (typeof value !== \"string\" || !regex.uuid.test(value)) {\n issues.push({\n message: `Expected a valid UUID: received ${String(value)}`,\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n }\n break;\n case \"date\":\n if (typeof value !== \"string\" || !regex.date.test(value)) {\n issues.push({\n message: `Expected to match \"yyyy-MM-dd\" format: received ${String(value)}`,\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n }\n break;\n case \"datetime\":\n if (typeof value !== \"string\" || !regex.datetime.test(value)) {\n issues.push({\n message: `Expected to match ISO format: received ${String(value)}`,\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n }\n break;\n case \"time\":\n if (typeof value !== \"string\" || !regex.time.test(value)) {\n issues.push({\n message: `Expected to match \"HH:mm\" format: received ${String(value)}`,\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n }\n break;\n case \"decimal\":\n if (typeof value !== \"string\" || !regex.decimal.test(value)) {\n issues.push({\n message: `Expected a decimal string: received ${String(value)}`,\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n }\n break;\n\n case \"enum\":\n if (field._metadata.allowedValues) {\n const allowedValues = field._metadata.allowedValues.map((v) => v.value);\n if (typeof value !== \"string\" || !allowedValues.includes(value)) {\n issues.push({\n message: `Must be one of [${allowedValues.join(\", \")}]: received ${String(value)}`,\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n }\n }\n break;\n\n case \"nested\":\n // Validate nested object fields\n // runtime value may not match the declared type\n // oxlint-disable typescript/no-unnecessary-condition\n if (\n typeof value !== \"object\" ||\n value === null ||\n Array.isArray(value) ||\n value instanceof Date\n ) {\n // oxlint-enable typescript/no-unnecessary-condition\n issues.push({\n message: `Expected an object: received ${String(value)}`,\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n } else if (Object.keys(field.fields).length > 0) {\n for (const [fieldName, nestedField] of Object.entries(field.fields)) {\n const fieldValue = (value as Record<string, unknown>)[fieldName];\n const result = nestedField._parseInternal({\n value: fieldValue,\n data,\n user,\n pathArray: pathArray.concat(fieldName),\n });\n if (result.issues) {\n issues.push(...result.issues);\n }\n }\n }\n break;\n }\n\n // Custom validation functions\n const validateFns = field._metadata.validate;\n if (validateFns && validateFns.length > 0) {\n for (const validateInput of validateFns) {\n const { fn, message } =\n typeof validateInput === \"function\"\n ? { fn: validateInput, message: \"Validation failed\" }\n : { fn: validateInput[0], message: validateInput[1] };\n\n if (!fn({ value, data, user })) {\n issues.push({\n message,\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n }\n }\n }\n\n return issues;\n }\n\n /**\n * Internal parse method that tracks field path for nested validation\n * @param args - Parse arguments\n * @returns Parse result with value or issues\n */\n function parseInternal(args: FieldParseInternalArgs): StandardSchemaV1.Result<FieldValue> {\n const { value, data, user, pathArray } = args;\n const issues: StandardSchemaV1.Issue[] = [];\n\n // 1. Check required/optional\n const isNullOrUndefined = value === null || value === undefined;\n if (field._metadata.required && isNullOrUndefined) {\n issues.push({\n message: \"Required field is missing\",\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n return { issues };\n }\n\n // If optional and null/undefined, skip further validation and normalize to null\n if (!field._metadata.required && isNullOrUndefined) {\n return { value: value ?? null };\n }\n\n // 2. Check array type\n if (field._metadata.array) {\n if (!Array.isArray(value)) {\n issues.push({\n message: \"Expected an array\",\n path: pathArray.length > 0 ? pathArray : undefined,\n });\n return { issues };\n }\n\n // Validate each array element (without array flag)\n for (let i = 0; i < value.length; i++) {\n const elementValue = value[i];\n const elementPath = pathArray.concat(`[${i}]`);\n\n // Validate element with same type but without array flag\n const elementIssues = validateValue({\n value: elementValue,\n data,\n user,\n pathArray: elementPath,\n });\n if (elementIssues.length > 0) {\n issues.push(...elementIssues);\n }\n }\n\n if (issues.length > 0) {\n return { issues };\n }\n return { value: value as FieldValue };\n }\n\n // 3. Type-specific validation and custom validation\n const valueIssues = validateValue({ value, data, user, pathArray });\n issues.push(...valueIssues);\n\n if (issues.length > 0) {\n return { issues };\n }\n\n return { value };\n }\n\n function cloneWith(metadataUpdates: Partial<DBFieldMetadata>) {\n const cloned = field.clone();\n Object.assign(cloned._metadata, metadataUpdates);\n return cloned;\n }\n\n const field: FieldType = {\n type,\n fields: fields ?? {},\n _defined: undefined as unknown as DBFieldDefined<T, TOptions>,\n _output: undefined as FieldValue,\n _metadata,\n\n get metadata() {\n return { ...this._metadata };\n },\n\n get rawRelation(): Readonly<RawRelationConfig> | undefined {\n return _rawRelation ? { ..._rawRelation, toward: { ..._rawRelation.toward } } : undefined;\n },\n\n description(description: string) {\n return cloneWith({ description });\n },\n\n typeName(typeName: string) {\n return cloneWith({ typeName });\n },\n\n validate(...validateInputs: FieldValidateInput<FieldValue>[]) {\n return cloneWith({ validate: validateInputs });\n },\n\n parse(args: FieldParseArgs): StandardSchemaV1.Result<FieldValue> {\n return parseInternal({\n value: args.value,\n data: args.data,\n user: args.user,\n pathArray: [],\n });\n },\n\n _parseInternal: parseInternal,\n\n // TailorDBField specific methods\n relation(config: RelationConfig<RelationType, TailorDBType> | RelationSelfConfig) {\n const cloned = field.clone();\n const targetType = isRelationSelfConfig(config) ? \"self\" : config.toward.type.name;\n cloned._setRawRelation({\n type: config.type,\n toward: {\n type: targetType,\n as: config.toward.as,\n key: config.toward.key,\n },\n backward: config.backward,\n });\n return cloned;\n },\n\n index() {\n return cloneWith({ index: true });\n },\n\n unique() {\n return cloneWith({ unique: true, index: true });\n },\n\n vector() {\n return cloneWith({ vector: true });\n },\n\n hooks(hooks: Hook<unknown, FieldValue>) {\n return cloneWith({ hooks });\n },\n\n serial(config: SerialConfig) {\n return cloneWith({ serial: config });\n },\n\n clone(cloneOptions?: FieldOptions) {\n // Deep clone nested object fields if present\n let clonedFields = fields;\n if (fields) {\n const cloned: Record<string, TailorAnyDBField> = {};\n for (const [key, field] of Object.entries(fields)) {\n cloned[key] = field.clone();\n }\n clonedFields = cloned;\n }\n\n // Create a new field with cloned configuration\n const clonedField = createTailorDBFieldRuntime(type, options, clonedFields, values);\n\n // Deep copy metadata using cloneDeep (preserves function references)\n Object.assign(clonedField._metadata, cloneDeep(this._metadata));\n\n // Apply new options if provided\n if (cloneOptions) {\n if (cloneOptions.optional !== undefined) {\n clonedField._metadata.required = !cloneOptions.optional;\n }\n if (cloneOptions.array !== undefined) {\n clonedField._metadata.array = cloneOptions.array;\n }\n }\n\n // Copy raw relation if exists\n if (_rawRelation) {\n clonedField._setRawRelation(cloneDeep(_rawRelation));\n }\n\n return clonedField;\n },\n\n _setRawRelation(relation: RawRelationConfig) {\n _rawRelation = relation;\n },\n };\n\n return field;\n}\n\nconst createField = createTailorDBField;\n\n/**\n * Create a UUID field.\n * @param options - Field configuration options\n * @returns A UUID field\n * @example db.uuid()\n * @example db.uuid({ optional: true })\n */\nfunction uuid<const Opt extends FieldOptions>(options?: Opt) {\n return createField(\"uuid\", options);\n}\n\n/**\n * Create a string field.\n * @param options - Field configuration options\n * @returns A string field\n * @example db.string()\n * @example db.string({ optional: true })\n */\nfunction string<const Opt extends FieldOptions>(options?: Opt) {\n return createField(\"string\", options);\n}\n\n/**\n * Create a boolean field.\n * Note: The method name is `bool` but creates a `boolean` type field.\n * @param options - Field configuration options\n * @returns A boolean field\n * @example db.bool()\n * @example db.bool({ optional: true })\n */\nfunction bool<const Opt extends FieldOptions>(options?: Opt) {\n return createField(\"boolean\", options);\n}\n\n/**\n * Create an integer field.\n * @param options - Field configuration options\n * @returns An integer field\n * @example db.int()\n * @example db.int({ optional: true })\n */\nfunction int<const Opt extends FieldOptions>(options?: Opt) {\n return createField(\"integer\", options);\n}\n\n/**\n * Create a float (decimal number) field.\n * @param options - Field configuration options\n * @returns A float field\n * @example db.float()\n * @example db.float({ optional: true })\n */\nfunction float<const Opt extends FieldOptions>(options?: Opt) {\n return createField(\"float\", options);\n}\n\ninterface DecimalFieldOptions extends FieldOptions {\n scale?: number;\n}\n\n/**\n * Create a decimal field (stored as string for precision).\n * @param options - Field configuration options including optional scale (0-12)\n * @returns A decimal field\n * @example db.decimal()\n * @example db.decimal({ scale: 2 })\n * @example db.decimal({ scale: 2, optional: true })\n */\nfunction decimal<const Opt extends DecimalFieldOptions>(options?: Opt) {\n if (options?.scale !== undefined) {\n if (!Number.isInteger(options.scale) || options.scale < 0 || options.scale > 12) {\n throw new Error(\"scale must be an integer between 0 and 12\");\n }\n }\n const field = createField(\"decimal\", options);\n if (options?.scale !== undefined) {\n field._metadata.scale = options.scale;\n }\n return field;\n}\n\n/**\n * Create a date field (date only, no time component).\n * Format: \"yyyy-MM-dd\"\n * @param options - Field configuration options\n * @returns A date field\n * @example db.date()\n */\nfunction date<const Opt extends FieldOptions>(options?: Opt) {\n return createField(\"date\", options);\n}\n\n/**\n * Create a datetime field (date and time).\n * Format: ISO 8601 \"yyyy-MM-ddTHH:mm:ssZ\"\n * @param options - Field configuration options\n * @returns A datetime field\n * @example db.datetime()\n */\nfunction datetime<const Opt extends FieldOptions>(options?: Opt) {\n return createField(\"datetime\", options);\n}\n\n/**\n * Create a time field (time only, no date component).\n * Format: \"HH:mm\"\n * @param options - Field configuration options\n * @returns A time field\n * @example db.time()\n */\nfunction time<const Opt extends FieldOptions>(options?: Opt) {\n return createField(\"time\", options);\n}\n\n/**\n * Create an enum field with a fixed set of allowed string values.\n * @param values - Array of allowed string values, or array of `{ value, description }` objects\n * @param options - Field configuration options\n * @returns An enum field\n * @example db.enum([\"active\", \"inactive\", \"suspended\"])\n * @example db.enum([\"small\", \"medium\", \"large\"], { optional: true })\n */\nfunction _enum<const V extends AllowedValues, const Opt extends FieldOptions>(\n values: V,\n options?: Opt,\n): TailorDBField<\n { type: \"enum\"; array: Opt extends { array: true } ? true : false },\n FieldOutput<AllowedValuesOutput<V>, Opt>\n> {\n return createField<\"enum\", Opt, AllowedValuesOutput<V>>(\"enum\", options, undefined, values);\n}\n\n/**\n * Create a nested object field with sub-fields.\n * @param fields - Record of nested field definitions\n * @param options - Field configuration options\n * @returns A nested object field\n * @example db.object({ street: db.string(), city: db.string(), zip: db.string() })\n * @example db.object({ name: db.string() }, { optional: true })\n */\nfunction object<\n const F extends Record<string, TailorAnyDBField> & ExcludeNestedDBFields<F>,\n const Opt extends FieldOptions,\n>(fields: F, options?: Opt) {\n return createField(\"nested\", options, fields) as unknown as TailorDBField<\n { type: \"nested\"; array: Opt extends { array: true } ? true : false },\n FieldOutput<InferFieldsOutput<F>, Opt>\n >;\n}\n\n/**\n * Creates a new TailorDBType instance.\n * @param name - Type name\n * @param fields - Field definitions\n * @param options - Type options\n * @param options.pluralForm - Optional plural form\n * @param options.description - Optional description\n * @returns A new TailorDBType\n */\nfunction createTailorDBType<\n // oxlint-disable-next-line no-explicit-any\n const Fields extends Record<string, TailorAnyDBField> = any,\n User extends object = InferredAttributeMap,\n>(\n name: string,\n fields: Fields,\n options: { pluralForm?: string; description?: string },\n): TailorDBType<Fields, User> {\n let _description = options.description;\n let _settings: TypeFeatures = {};\n let _indexes: IndexDef<TailorDBType<Fields, User>>[] = [];\n const _permissions: RawPermissions = {};\n let _files: Record<string, string> = {};\n const _plugins: PluginAttachment[] = [];\n\n if (options.pluralForm) {\n if (name === options.pluralForm) {\n throw new Error(`The name and the plural form must be different. name=${name}`);\n }\n _settings.pluralForm = options.pluralForm;\n }\n\n const dbType: TailorDBType<Fields, User> = {\n name,\n fields: { ...fields },\n _output: null as unknown as InferFieldsOutput<Fields>,\n _description,\n\n get metadata(): TailorDBTypeMetadata {\n // Convert indexes to the format expected by the manifest\n const indexes: Record<string, { fields: string[]; unique?: boolean }> = {};\n if (_indexes.length > 0) {\n _indexes.forEach((index) => {\n const fieldNames = index.fields.map((field) => String(field));\n const key = index.name || `idx_${fieldNames.join(\"_\")}`;\n indexes[key] = {\n fields: fieldNames,\n unique: index.unique,\n };\n });\n }\n\n return {\n name: this.name,\n description: _description,\n settings: _settings,\n permissions: _permissions,\n files: _files,\n ...(Object.keys(indexes).length > 0 && { indexes }),\n };\n },\n\n hooks(hooks: Hooks<Fields>) {\n // `Hooks<Fields>` is strongly typed, but `Object.entries()` loses that information.\n // oxlint-disable-next-line no-explicit-any\n Object.entries(hooks).forEach(([fieldName, fieldHooks]: [string, any]) => {\n const field = this.fields[fieldName];\n if (field === undefined) throw new Error(`field not found: ${fieldName}`);\n (this.fields as Record<string, TailorAnyDBField>)[fieldName] = (\n field as TailorAnyDBField\n ).hooks(fieldHooks);\n });\n return this;\n },\n\n validate(validators: Validators<Fields>) {\n Object.entries(validators).forEach(([fieldName, fieldValidators]) => {\n const field = this.fields[fieldName] as TailorAnyDBField;\n\n const validators = fieldValidators as\n | FieldValidateInput<unknown>\n | FieldValidateInput<unknown>[];\n\n const isValidateConfig = (v: unknown): v is ValidateConfig<unknown> => {\n return Array.isArray(v) && v.length === 2 && typeof v[1] === \"string\";\n };\n\n let updatedField: TailorAnyDBField;\n if (Array.isArray(validators)) {\n if (isValidateConfig(validators)) {\n updatedField = field.validate(validators);\n } else {\n updatedField = field.validate(...validators);\n }\n } else {\n updatedField = field.validate(validators);\n }\n (this.fields as Record<string, TailorAnyDBField>)[fieldName] = updatedField;\n });\n return this;\n },\n\n features(features: Omit<TypeFeatures, \"pluralForm\">) {\n _settings = {\n ..._settings,\n ...features,\n };\n return this;\n },\n\n indexes(...indexes: IndexDef<TailorDBType<Fields, User>>[]) {\n _indexes = indexes;\n return this;\n },\n\n files<const F extends string>(files: Record<F, string> & FileKeyConflictError<Fields, User>) {\n _files = files;\n return this;\n },\n\n permission<\n U extends object = User,\n P extends TailorTypePermission<U, output<TailorDBType<Fields, User>>> = TailorTypePermission<\n U,\n output<TailorDBType<Fields, User>>\n >,\n >(permission: P) {\n const ret = this as TailorDBType<Fields, U>;\n _permissions.record = permission as RawPermissions[\"record\"];\n return ret;\n },\n\n gqlPermission<\n U extends object = User,\n P extends TailorTypeGqlPermission<U> = TailorTypeGqlPermission<U>,\n >(permission: P) {\n const ret = this as TailorDBType<Fields, U>;\n _permissions.gql = permission as RawPermissions[\"gql\"];\n return ret;\n },\n\n description(description: string) {\n _description = description;\n this._description = description;\n return this;\n },\n\n pickFields<K extends keyof Fields, const Opt extends FieldOptions>(keys: K[], options?: Opt) {\n const result = {} as Record<K, TailorAnyDBField>;\n for (const key of keys) {\n const field = this.fields[key] as TailorAnyDBField;\n if (options) {\n result[key] = field.clone(options);\n } else {\n result[key] = field;\n }\n }\n // oxlint-disable-next-line no-explicit-any\n return result as any;\n },\n\n omitFields<K extends keyof Fields>(keys: K[]): Omit<Fields, K> {\n const keysSet = new Set(keys);\n const result = {} as Record<string, TailorAnyDBField>;\n for (const key in this.fields) {\n if (Object.hasOwn(this.fields, key) && !keysSet.has(key as unknown as K)) {\n result[key] = this.fields[key] as TailorAnyDBField;\n }\n }\n return result as Omit<Fields, K>;\n },\n\n get plugins(): PluginAttachment[] {\n return _plugins;\n },\n\n plugin<P extends keyof PluginConfigs<keyof Fields & string>>(config: {\n [K in P]: PluginConfigs<keyof Fields & string>[K];\n }): TailorDBType<Fields, User> {\n for (const [pluginId, pluginConfig] of Object.entries(config)) {\n _plugins.push({ pluginId, config: pluginConfig });\n }\n return this;\n },\n };\n\n return brandValue(dbType, \"tailordb-type\");\n}\n\nconst idField = uuid();\ntype idField = typeof idField;\ntype DBType<F extends { id?: never } & Record<string, TailorAnyDBField>> = TailorDBInstance<\n { id: idField } & F\n>;\n\n/**\n * Creates a new database type with the specified fields.\n * An `id` field (UUID) is automatically added to every type.\n * @param name - The name of the type, or a tuple of [name, pluralForm]\n * @param fields - The field definitions for the type\n * @returns A new TailorDBType instance\n * @example\n * export const user = db.type(\"User\", {\n * name: db.string(),\n * email: db.string(),\n * age: db.int({ optional: true }),\n * role: db.enum([\"admin\", \"member\"]),\n * ...db.fields.timestamps(),\n * });\n * // Always export both the value and type:\n * export type user = typeof user;\n */\nfunction dbType<const F extends { id?: never } & Record<string, TailorAnyDBField>>(\n name: string | [string, string],\n fields: F,\n): DBType<F>;\n/**\n * Creates a new database type with the specified fields and description.\n * An `id` field (UUID) is automatically added to every type.\n * @param name - The name of the type, or a tuple of [name, pluralForm]\n * @param description - A description of the type\n * @param fields - The field definitions for the type\n * @returns A new TailorDBType instance\n */\nfunction dbType<const F extends { id?: never } & Record<string, TailorAnyDBField>>(\n name: string | [string, string],\n description: string,\n fields: F,\n): DBType<F>;\nfunction dbType<const F extends { id?: never } & Record<string, TailorAnyDBField>>(\n name: string | [string, string],\n fieldsOrDescription: string | F,\n fields?: F,\n): DBType<F> {\n const typeName = Array.isArray(name) ? name[0] : name;\n const pluralForm = Array.isArray(name) ? name[1] : undefined;\n\n let description: string | undefined;\n let fieldDef: F;\n if (typeof fieldsOrDescription === \"string\") {\n description = fieldsOrDescription;\n fieldDef = fields as F;\n } else {\n fieldDef = fieldsOrDescription;\n }\n return createTailorDBType<{ id: idField } & F>(\n typeName,\n {\n id: idField,\n ...fieldDef,\n },\n { pluralForm, description },\n ) as DBType<F>;\n}\n\n/** TailorDB schema builder utilities for defining types and fields. */\nexport const db = {\n type: dbType,\n uuid,\n string,\n bool,\n int,\n float,\n decimal,\n date,\n datetime,\n time,\n enum: _enum,\n object,\n fields: {\n /**\n * Creates standard timestamp fields (createdAt, updatedAt) with auto-hooks.\n * createdAt is set on create, updatedAt is set on update.\n * A user-specified createdAt is respected when provided (e.g. seeding historical\n * records); the current time is used only when the value is omitted.\n * @returns An object with createdAt and updatedAt fields\n * @example\n * const model = db.type(\"Model\", {\n * name: db.string(),\n * ...db.fields.timestamps(),\n * });\n */\n timestamps: () => ({\n createdAt: datetime()\n .hooks({ create: ({ value }) => value ?? new Date() })\n .description(\"Record creation timestamp\"),\n updatedAt: datetime({ optional: true })\n .hooks({ update: () => new Date() })\n .description(\"Record last update timestamp\"),\n }),\n },\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
import { i as file_tailor_v1_service, n as PingRequestSchema, r as PingResponseSchema, t as OperatorService } from "./service_pb-
|
|
2
|
+
import { i as file_tailor_v1_service, n as PingRequestSchema, r as PingResponseSchema, t as OperatorService } from "./service_pb-BsBR6yW5.mjs";
|
|
3
3
|
|
|
4
4
|
export { OperatorService, PingRequestSchema, PingResponseSchema, file_tailor_v1_service };
|
|
@@ -242,6 +242,14 @@ const AuthConnection_TypeSchema = /*@__PURE__*/ enumDesc(file_tailor_v1_auth_res
|
|
|
242
242
|
*/
|
|
243
243
|
const AuthConnection_Type = /*@__PURE__*/ tsEnum(AuthConnection_TypeSchema);
|
|
244
244
|
/**
|
|
245
|
+
* Describes the enum tailor.v1.AuthConnection.Status.
|
|
246
|
+
*/
|
|
247
|
+
const AuthConnection_StatusSchema = /*@__PURE__*/ enumDesc(file_tailor_v1_auth_resource, 13, 1);
|
|
248
|
+
/**
|
|
249
|
+
* @generated from enum tailor.v1.AuthConnection.Status
|
|
250
|
+
*/
|
|
251
|
+
const AuthConnection_Status = /*@__PURE__*/ tsEnum(AuthConnection_StatusSchema);
|
|
252
|
+
/**
|
|
245
253
|
* Describes the enum tailor.v1.AuthOAuth2Client.GrantType.
|
|
246
254
|
*/
|
|
247
255
|
const AuthOAuth2Client_GrantTypeSchema = /*@__PURE__*/ enumDesc(file_tailor_v1_auth_resource, 14, 0);
|
|
@@ -281,10 +289,12 @@ const AuthHookPoint = /*@__PURE__*/ tsEnum(AuthHookPointSchema);
|
|
|
281
289
|
/**
|
|
282
290
|
* Describes the file tailor/v1/auth.proto.
|
|
283
291
|
*/
|
|
284
|
-
const file_tailor_v1_auth = /*@__PURE__*/ fileDesc("ChR0YWlsb3IvdjEvYXV0aC5wcm90bxIJdGFpbG9yLnYxIpwBChhDcmVhdGVBdXRoU2VydmljZVJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIeChZwdWJsaXNoX3Nlc3Npb25fZXZlbnRzGAMgASgIIkkKGUNyZWF0ZUF1dGhTZXJ2aWNlUmVzcG9uc2USLAoMYXV0aF9zZXJ2aWNlGAEgASgLMhYudGFpbG9yLnYxLkF1dGhTZXJ2aWNlIpwBChhVcGRhdGVBdXRoU2VydmljZVJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIeChZwdWJsaXNoX3Nlc3Npb25fZXZlbnRzGAMgASgIIkkKGVVwZGF0ZUF1dGhTZXJ2aWNlUmVzcG9uc2USLAoMYXV0aF9zZXJ2aWNlGAEgASgLMhYudGFpbG9yLnYxLkF1dGhTZXJ2aWNlInwKGERlbGV0ZUF1dGhTZXJ2aWNlUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kIhsKGURlbGV0ZUF1dGhTZXJ2aWNlUmVzcG9uc2UieQoVR2V0QXV0aFNlcnZpY2VSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiRgoWR2V0QXV0aFNlcnZpY2VSZXNwb25zZRIsCgxhdXRoX3NlcnZpY2UYASABKAsyFi50YWlsb3IudjEuQXV0aFNlcnZpY2UikgEKF0xpc3RBdXRoU2VydmljZXNSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESEgoKcGFnZV90b2tlbhgCIAEoCRIRCglwYWdlX3NpemUYAyABKA0SMAoOcGFnZV9kaXJlY3Rpb24YBCABKA4yGC50YWlsb3IudjEuUGFnZURpcmVjdGlvbiJ3ChhMaXN0QXV0aFNlcnZpY2VzUmVzcG9uc2USLQoNYXV0aF9zZXJ2aWNlcxgBIAMoCzIWLnRhaWxvci52MS5BdXRoU2VydmljZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAMirAEKGkNyZWF0ZUF1dGhJRFBDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSLAoKaWRwX2NvbmZpZxgDIAEoCzIYLnRhaWxvci52MS5BdXRoSURQQ29uZmlnIksKG0NyZWF0ZUF1dGhJRFBDb25maWdSZXNwb25zZRIsCgppZHBfY29uZmlnGAEgASgLMhgudGFpbG9yLnYxLkF1dGhJRFBDb25maWcirAEKGlVwZGF0ZUF1dGhJRFBDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSLAoKaWRwX2NvbmZpZxgDIAEoCzIYLnRhaWxvci52MS5BdXRoSURQQ29uZmlnIksKG1VwZGF0ZUF1dGhJRFBDb25maWdSZXNwb25zZRIsCgppZHBfY29uZmlnGAEgASgLMhgudGFpbG9yLnYxLkF1dGhJRFBDb25maWcitgEKGkRlbGV0ZUF1dGhJRFBDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCIdChtEZWxldGVBdXRoSURQQ29uZmlnUmVzcG9uc2UiswEKF0dldEF1dGhJRFBDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCJIChhHZXRBdXRoSURQQ29uZmlnUmVzcG9uc2USLAoKaWRwX2NvbmZpZxgBIAEoCzIYLnRhaWxvci52MS5BdXRoSURQQ29uZmlnItYBChlMaXN0QXV0aElEUENvbmZpZ3NSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSEgoKcGFnZV90b2tlbhgDIAEoCRIRCglwYWdlX3NpemUYBCABKA0SMAoOcGFnZV9kaXJlY3Rpb24YBSABKA4yGC50YWlsb3IudjEuUGFnZURpcmVjdGlvbiJ5ChpMaXN0QXV0aElEUENvbmZpZ3NSZXNwb25zZRItCgtpZHBfY29uZmlncxgBIAMoCzIYLnRhaWxvci52MS5BdXRoSURQQ29uZmlnEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRITCgt0b3RhbF9jb3VudBgDIAEoAyLOAQoeQ3JlYXRlVXNlclByb2ZpbGVDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSSgocdXNlcl9wcm9maWxlX3Byb3ZpZGVyX2NvbmZpZxgDIAEoCzIkLnRhaWxvci52MS5Vc2VyUHJvZmlsZVByb3ZpZGVyQ29uZmlnIm0KH0NyZWF0ZVVzZXJQcm9maWxlQ29uZmlnUmVzcG9uc2USSgocdXNlcl9wcm9maWxlX3Byb3ZpZGVyX2NvbmZpZxgBIAEoCzIkLnRhaWxvci52MS5Vc2VyUHJvZmlsZVByb3ZpZGVyQ29uZmlnIs4BCh5VcGRhdGVVc2VyUHJvZmlsZUNvbmZpZ1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBJKChx1c2VyX3Byb2ZpbGVfcHJvdmlkZXJfY29uZmlnGAMgASgLMiQudGFpbG9yLnYxLlVzZXJQcm9maWxlUHJvdmlkZXJDb25maWcibQofVXBkYXRlVXNlclByb2ZpbGVDb25maWdSZXNwb25zZRJKChx1c2VyX3Byb2ZpbGVfcHJvdmlkZXJfY29uZmlnGAEgASgLMiQudGFpbG9yLnYxLlVzZXJQcm9maWxlUHJvdmlkZXJDb25maWciggEKHkRlbGV0ZVVzZXJQcm9maWxlQ29uZmlnUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kIiEKH0RlbGV0ZVVzZXJQcm9maWxlQ29uZmlnUmVzcG9uc2UifwobR2V0VXNlclByb2ZpbGVDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiagocR2V0VXNlclByb2ZpbGVDb25maWdSZXNwb25zZRJKChx1c2VyX3Byb2ZpbGVfcHJvdmlkZXJfY29uZmlnGAEgASgLMiQudGFpbG9yLnYxLlVzZXJQcm9maWxlUHJvdmlkZXJDb25maWcixgEKGUNyZWF0ZVRlbmFudENvbmZpZ1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBJHChZ0ZW5hbnRfcHJvdmlkZXJfY29uZmlnGAMgASgLMh8udGFpbG9yLnYxLlRlbmFudFByb3ZpZGVyQ29uZmlnQga6SAPIAQEiXQoaQ3JlYXRlVGVuYW50Q29uZmlnUmVzcG9uc2USPwoWdGVuYW50X3Byb3ZpZGVyX2NvbmZpZxgBIAEoCzIfLnRhaWxvci52MS5UZW5hbnRQcm92aWRlckNvbmZpZyLGAQoZVXBkYXRlVGVuYW50Q29uZmlnUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEkcKFnRlbmFudF9wcm92aWRlcl9jb25maWcYAyABKAsyHy50YWlsb3IudjEuVGVuYW50UHJvdmlkZXJDb25maWdCBrpIA8gBASJdChpVcGRhdGVUZW5hbnRDb25maWdSZXNwb25zZRI/ChZ0ZW5hbnRfcHJvdmlkZXJfY29uZmlnGAEgASgLMh8udGFpbG9yLnYxLlRlbmFudFByb3ZpZGVyQ29uZmlnIn0KGURlbGV0ZVRlbmFudENvbmZpZ1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCIcChpEZWxldGVUZW5hbnRDb25maWdSZXNwb25zZSJ6ChZHZXRUZW5hbnRDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiWgoXR2V0VGVuYW50Q29uZmlnUmVzcG9uc2USPwoWdGVuYW50X3Byb3ZpZGVyX2NvbmZpZxgBIAEoCzIfLnRhaWxvci52MS5UZW5hbnRQcm92aWRlckNvbmZpZyKSAQogQ3JlYXRlUGVyc29uYWxBY2Nlc3NUb2tlblJlcXVlc3QSNgoEbmFtZRgBIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBI2CgZzY29wZXMYAiADKA4yEy50YWlsb3IudjEuUEFUU2NvcGVCEbpIDpIBCwgBIgeCAQQQASAAIjkKIUNyZWF0ZVBlcnNvbmFsQWNjZXNzVG9rZW5SZXNwb25zZRIUCgxhY2Nlc3NfdG9rZW4YASABKAkiWgogRGVsZXRlUGVyc29uYWxBY2Nlc3NUb2tlblJlcXVlc3QSNgoEbmFtZRgBIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCIjCiFEZWxldGVQZXJzb25hbEFjY2Vzc1Rva2VuUmVzcG9uc2UiegofTGlzdFBlcnNvbmFsQWNjZXNzVG9rZW5zUmVxdWVzdBISCgpwYWdlX3Rva2VuGAEgASgJEhEKCXBhZ2Vfc2l6ZRgCIAEoDRIwCg5wYWdlX2RpcmVjdGlvbhgDIAEoDjIYLnRhaWxvci52MS5QYWdlRGlyZWN0aW9uIpABCiBMaXN0UGVyc29uYWxBY2Nlc3NUb2tlbnNSZXNwb25zZRI+ChZwZXJzb25hbF9hY2Nlc3NfdG9rZW5zGAEgAygLMh4udGFpbG9yLnYxLlBlcnNvbmFsQWNjZXNzVG9rZW4SFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJEhMKC3RvdGFsX2NvdW50GAMgASgDIqMDChxDcmVhdGVBdXRoTWFjaGluZVVzZXJSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQwoOYXV0aF9uYW1lc3BhY2UYAiABKAlCK7pIKHImMiReKFthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0pPyQSNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIhCgphdHRyaWJ1dGVzGAQgAygJQg26SAqSAQciBXIDsAEBEnYKDWF0dHJpYnV0ZV9tYXAYBSADKAsyOS50YWlsb3IudjEuQ3JlYXRlQXV0aE1hY2hpbmVVc2VyUmVxdWVzdC5BdHRyaWJ1dGVNYXBFbnRyeUIkukghmgEeIhxyGjIYXlthLXpdWzAtOWEtekEtWl17MCw2Mn0kGksKEUF0dHJpYnV0ZU1hcEVudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEiTQodQ3JlYXRlQXV0aE1hY2hpbmVVc2VyUmVzcG9uc2USLAoMbWFjaGluZV91c2VyGAEgASgLMhYudGFpbG9yLnYxLk1hY2hpbmVVc2VyIqADChxVcGRhdGVBdXRoTWFjaGluZVVzZXJSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoOYXV0aF9uYW1lc3BhY2UYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIhCgphdHRyaWJ1dGVzGAQgAygJQg26SAqSAQciBXIDsAEBEnYKDWF0dHJpYnV0ZV9tYXAYBSADKAsyOS50YWlsb3IudjEuVXBkYXRlQXV0aE1hY2hpbmVVc2VyUmVxdWVzdC5BdHRyaWJ1dGVNYXBFbnRyeUIkukghmgEeIhxyGjIYXlthLXpdWzAtOWEtekEtWl17MCw2Mn0kGksKEUF0dHJpYnV0ZU1hcEVudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEiTQodVXBkYXRlQXV0aE1hY2hpbmVVc2VyUmVzcG9uc2USLAoMbWFjaGluZV91c2VyGAEgASgLMhYudGFpbG9yLnYxLk1hY2hpbmVVc2VyIrgBChxEZWxldGVBdXRoTWFjaGluZVVzZXJSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoOYXV0aF9uYW1lc3BhY2UYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCIfCh1EZWxldGVBdXRoTWFjaGluZVVzZXJSZXNwb25zZSK1AQoZR2V0QXV0aE1hY2hpbmVVc2VyUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDmF1dGhfbmFtZXNwYWNlGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEjYKBG5hbWUYAyABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiSgoaR2V0QXV0aE1hY2hpbmVVc2VyUmVzcG9uc2USLAoMbWFjaGluZV91c2VyGAEgASgLMhYudGFpbG9yLnYxLk1hY2hpbmVVc2VyItgBChtMaXN0QXV0aE1hY2hpbmVVc2Vyc1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5hdXRoX25hbWVzcGFjZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBISCgpwYWdlX3Rva2VuGAMgASgJEhEKCXBhZ2Vfc2l6ZRgEIAEoDRIwCg5wYWdlX2RpcmVjdGlvbhgFIAEoDjIYLnRhaWxvci52MS5QYWdlRGlyZWN0aW9uInsKHExpc3RBdXRoTWFjaGluZVVzZXJzUmVzcG9uc2USLQoNbWFjaGluZV91c2VycxgBIAMoCzIWLnRhaWxvci52MS5NYWNoaW5lVXNlchIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAMirwEKG0NyZWF0ZUF1dGhTQ0lNQ29uZmlnUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEi4KC3NjaW1fY29uZmlnGAMgASgLMhkudGFpbG9yLnYxLkF1dGhTQ0lNQ29uZmlnIk4KHENyZWF0ZUF1dGhTQ0lNQ29uZmlnUmVzcG9uc2USLgoLc2NpbV9jb25maWcYASABKAsyGS50YWlsb3IudjEuQXV0aFNDSU1Db25maWcirwEKG1VwZGF0ZUF1dGhTQ0lNQ29uZmlnUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEi4KC3NjaW1fY29uZmlnGAMgASgLMhkudGFpbG9yLnYxLkF1dGhTQ0lNQ29uZmlnIk4KHFVwZGF0ZUF1dGhTQ0lNQ29uZmlnUmVzcG9uc2USLgoLc2NpbV9jb25maWcYASABKAsyGS50YWlsb3IudjEuQXV0aFNDSU1Db25maWcifAoYR2V0QXV0aFNDSU1Db25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiSwoZR2V0QXV0aFNDSU1Db25maWdSZXNwb25zZRIuCgtzY2ltX2NvbmZpZxgBIAEoCzIZLnRhaWxvci52MS5BdXRoU0NJTUNvbmZpZyJ/ChtEZWxldGVBdXRoU0NJTUNvbmZpZ1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCIeChxEZWxldGVBdXRoU0NJTUNvbmZpZ1Jlc3BvbnNlIrUBCh1DcmVhdGVBdXRoU0NJTVJlc291cmNlUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEjIKDXNjaW1fcmVzb3VyY2UYAyABKAsyGy50YWlsb3IudjEuQXV0aFNDSU1SZXNvdXJjZSJUCh5DcmVhdGVBdXRoU0NJTVJlc291cmNlUmVzcG9uc2USMgoNc2NpbV9yZXNvdXJjZRgBIAEoCzIbLnRhaWxvci52MS5BdXRoU0NJTVJlc291cmNlIrUBCh1VcGRhdGVBdXRoU0NJTVJlc291cmNlUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEjIKDXNjaW1fcmVzb3VyY2UYAyABKAsyGy50YWlsb3IudjEuQXV0aFNDSU1SZXNvdXJjZSJUCh5VcGRhdGVBdXRoU0NJTVJlc291cmNlUmVzcG9uc2USMgoNc2NpbV9yZXNvdXJjZRgBIAEoCzIbLnRhaWxvci52MS5BdXRoU0NJTVJlc291cmNlIo8BCh1EZWxldGVBdXRoU0NJTVJlc291cmNlUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEgwKBG5hbWUYAyABKAkiIAoeRGVsZXRlQXV0aFNDSU1SZXNvdXJjZVJlc3BvbnNlIrYBChpHZXRBdXRoU0NJTVJlc291cmNlUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEjYKBG5hbWUYAyABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiUQobR2V0QXV0aFNDSU1SZXNvdXJjZVJlc3BvbnNlEjIKDXNjaW1fcmVzb3VyY2UYASABKAsyGy50YWlsb3IudjEuQXV0aFNDSU1SZXNvdXJjZSJ/ChtHZXRBdXRoU0NJTVJlc291cmNlc1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCJTChxHZXRBdXRoU0NJTVJlc291cmNlc1Jlc3BvbnNlEjMKDnNjaW1fcmVzb3VyY2VzGAEgAygLMhsudGFpbG9yLnYxLkF1dGhTQ0lNUmVzb3VyY2UipAEKFUNyZWF0ZUF1dGhIb29rUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEikKBGhvb2sYAyABKAsyEy50YWlsb3IudjEuQXV0aEhvb2tCBrpIA8gBASI7ChZDcmVhdGVBdXRoSG9va1Jlc3BvbnNlEiEKBGhvb2sYASABKAsyEy50YWlsb3IudjEuQXV0aEhvb2sipAEKFVVwZGF0ZUF1dGhIb29rUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEikKBGhvb2sYAyABKAsyEy50YWlsb3IudjEuQXV0aEhvb2tCBrpIA8gBASI7ChZVcGRhdGVBdXRoSG9va1Jlc3BvbnNlEiEKBGhvb2sYASABKAsyEy50YWlsb3IudjEuQXV0aEhvb2siswEKFURlbGV0ZUF1dGhIb29rUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEjgKCmhvb2tfcG9pbnQYAyABKA4yGC50YWlsb3IudjEuQXV0aEhvb2tQb2ludEIKukgHggEEEAEgACIYChZEZWxldGVBdXRoSG9va1Jlc3BvbnNlIrABChJHZXRBdXRoSG9va1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBI4Cgpob29rX3BvaW50GAMgASgOMhgudGFpbG9yLnYxLkF1dGhIb29rUG9pbnRCCrpIB4IBBBABIAAiOAoTR2V0QXV0aEhvb2tSZXNwb25zZRIhCgRob29rGAEgASgLMhMudGFpbG9yLnYxLkF1dGhIb29rInQKG0NyZWF0ZUF1dGhDb25uZWN0aW9uUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEjUKCmNvbm5lY3Rpb24YAiABKAsyGS50YWlsb3IudjEuQXV0aENvbm5lY3Rpb25CBrpIA8gBASIeChxDcmVhdGVBdXRoQ29ubmVjdGlvblJlc3BvbnNlIpUBChpMaXN0QXV0aENvbm5lY3Rpb25zUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEhIKCnBhZ2VfdG9rZW4YAiABKAkSEQoJcGFnZV9zaXplGAMgASgNEjAKDnBhZ2VfZGlyZWN0aW9uGAQgASgOMhgudGFpbG9yLnYxLlBhZ2VEaXJlY3Rpb24iewobTGlzdEF1dGhDb25uZWN0aW9uc1Jlc3BvbnNlEi4KC2Nvbm5lY3Rpb25zGAEgAygLMhkudGFpbG9yLnYxLkF1dGhDb25uZWN0aW9uEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRITCgt0b3RhbF9jb3VudBgDIAEoAyKAAQobUmV2b2tlQXV0aENvbm5lY3Rpb25SZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQQoPY29ubmVjdGlvbl9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kIh4KHFJldm9rZUF1dGhDb25uZWN0aW9uUmVzcG9uc2UigAEKG0RlbGV0ZUF1dGhDb25uZWN0aW9uUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkEKD2Nvbm5lY3Rpb25fbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCIeChxEZWxldGVBdXRoQ29ubmVjdGlvblJlc3BvbnNlIuYBCiRSZWdpc3RlckF1dGhDb25uZWN0aW9uU2Vzc2lvblJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJBCg9jb25uZWN0aW9uX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSFAoMYWNjZXNzX3Rva2VuGAMgASgJEhUKDXJlZnJlc2hfdG9rZW4YBCABKAkSLgoKZXhwaXJlc19hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiJwolUmVnaXN0ZXJBdXRoQ29ubmVjdGlvblNlc3Npb25SZXNwb25zZSLXAQouRXhjaGFuZ2VBdXRoQ29ubmVjdGlvbkF1dGhvcml6YXRpb25Db2RlUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkEKD2Nvbm5lY3Rpb25fbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIjChJhdXRob3JpemF0aW9uX2NvZGUYAyABKAlCB7pIBHICEAESHQoMcmVkaXJlY3RfdXJpGAQgASgJQge6SARyAhABIjEKL0V4Y2hhbmdlQXV0aENvbm5lY3Rpb25BdXRob3JpemF0aW9uQ29kZVJlc3BvbnNlIosBCh1DcmVhdGVBdXRoT0F1dGgyQ2xpZW50UmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEhYKDm5hbWVzcGFjZV9uYW1lGAIgASgJEjIKDW9hdXRoMl9jbGllbnQYAyABKAsyGy50YWlsb3IudjEuQXV0aE9BdXRoMkNsaWVudCJUCh5DcmVhdGVBdXRoT0F1dGgyQ2xpZW50UmVzcG9uc2USMgoNb2F1dGgyX2NsaWVudBgBIAEoCzIbLnRhaWxvci52MS5BdXRoT0F1dGgyQ2xpZW50IosBCh1VcGRhdGVBdXRoT0F1dGgyQ2xpZW50UmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEhYKDm5hbWVzcGFjZV9uYW1lGAIgASgJEjIKDW9hdXRoMl9jbGllbnQYAyABKAsyGy50YWlsb3IudjEuQXV0aE9BdXRoMkNsaWVudCJUCh5VcGRhdGVBdXRoT0F1dGgyQ2xpZW50UmVzcG9uc2USMgoNb2F1dGgyX2NsaWVudBgBIAEoCzIbLnRhaWxvci52MS5BdXRoT0F1dGgyQ2xpZW50ImUKHURlbGV0ZUF1dGhPQXV0aDJDbGllbnRSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESFgoObmFtZXNwYWNlX25hbWUYAiABKAkSDAoEbmFtZRgDIAEoCSIgCh5EZWxldGVBdXRoT0F1dGgyQ2xpZW50UmVzcG9uc2UitgEKGkdldEF1dGhPQXV0aDJDbGllbnRSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCJRChtHZXRBdXRoT0F1dGgyQ2xpZW50UmVzcG9uc2USMgoNb2F1dGgyX2NsaWVudBgBIAEoCzIbLnRhaWxvci52MS5BdXRoT0F1dGgyQ2xpZW50Iq8BChxMaXN0QXV0aE9BdXRoMkNsaWVudHNSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESFgoObmFtZXNwYWNlX25hbWUYAiABKAkSEgoKcGFnZV90b2tlbhgDIAEoCRIRCglwYWdlX3NpemUYBCABKA0SMAoOcGFnZV9kaXJlY3Rpb24YBSABKA4yGC50YWlsb3IudjEuUGFnZURpcmVjdGlvbiKCAQodTGlzdEF1dGhPQXV0aDJDbGllbnRzUmVzcG9uc2USMwoOb2F1dGgyX2NsaWVudHMYASADKAsyGy50YWlsb3IudjEuQXV0aE9BdXRoMkNsaWVudBIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAMitgEKJENyZWF0ZUNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyUmVxdWVzdBIhCg9vcmdhbml6YXRpb25faWQYASABKAlCCLpIBXIDsAEBEh4KCWZvbGRlcl9pZBgCIAEoCUILukgI2AEBcgOwAQESNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBITCgtkZXNjcmlwdGlvbhgEIAEoCSJhCiVDcmVhdGVDb250cm9scGxhbmVNYWNoaW5lVXNlclJlc3BvbnNlEjgKDG1hY2hpbmVfdXNlchgBIAEoCzIiLnRhaWxvci52MS5Db250cm9scGxhbmVNYWNoaW5lVXNlciL8AQokVXBkYXRlQ29udHJvbHBsYW5lTWFjaGluZVVzZXJSZXF1ZXN0EiEKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIIukgFcgOwAQESHgoJZm9sZGVyX2lkGAIgASgJQgu6SAjYAQFyA7ABARIhCg9tYWNoaW5lX3VzZXJfaWQYAyABKAlCCLpIBXIDsAEBEjsKBG5hbWUYBCABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSRIAIgBARIYCgtkZXNjcmlwdGlvbhgFIAEoCUgBiAEBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbiJhCiVVcGRhdGVDb250cm9scGxhbmVNYWNoaW5lVXNlclJlc3BvbnNlEjgKDG1hY2hpbmVfdXNlchgBIAEoCzIiLnRhaWxvci52MS5Db250cm9scGxhbmVNYWNoaW5lVXNlciKJAQohR2V0Q29udHJvbHBsYW5lTWFjaGluZVVzZXJSZXF1ZXN0EiEKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIIukgFcgOwAQESHgoJZm9sZGVyX2lkGAIgASgJQgu6SAjYAQFyA7ABARIhCg9tYWNoaW5lX3VzZXJfaWQYAyABKAlCCLpIBXIDsAEBIl4KIkdldENvbnRyb2xwbGFuZU1hY2hpbmVVc2VyUmVzcG9uc2USOAoMbWFjaGluZV91c2VyGAEgASgLMiIudGFpbG9yLnYxLkNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyIqQBCidHZXRDb250cm9scGxhbmVNYWNoaW5lVXNlckJ5TmFtZVJlcXVlc3QSIQoPb3JnYW5pemF0aW9uX2lkGAEgASgJQgi6SAVyA7ABARIeCglmb2xkZXJfaWQYAiABKAlCC7pICNgBAXIDsAEBEjYKBG5hbWUYAyABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiZAooR2V0Q29udHJvbHBsYW5lTWFjaGluZVVzZXJCeU5hbWVSZXNwb25zZRI4CgxtYWNoaW5lX3VzZXIYASABKAsyIi50YWlsb3IudjEuQ29udHJvbHBsYW5lTWFjaGluZVVzZXIiwQEKI0xpc3RDb250cm9scGxhbmVNYWNoaW5lVXNlcnNSZXF1ZXN0EiEKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIIukgFcgOwAQESHgoJZm9sZGVyX2lkGAIgASgJQgu6SAjYAQFyA7ABARISCgpwYWdlX3Rva2VuGAMgASgJEhEKCXBhZ2Vfc2l6ZRgEIAEoDRIwCg5wYWdlX2RpcmVjdGlvbhgFIAEoDjIYLnRhaWxvci52MS5QYWdlRGlyZWN0aW9uIo8BCiRMaXN0Q29udHJvbHBsYW5lTWFjaGluZVVzZXJzUmVzcG9uc2USOQoNbWFjaGluZV91c2VycxgBIAMoCzIiLnRhaWxvci52MS5Db250cm9scGxhbmVNYWNoaW5lVXNlchIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAMijAEKJERlbGV0ZUNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyUmVxdWVzdBIhCg9vcmdhbml6YXRpb25faWQYASABKAlCCLpIBXIDsAEBEh4KCWZvbGRlcl9pZBgCIAEoCUILukgI2AEBcgOwAQESIQoPbWFjaGluZV91c2VyX2lkGAMgASgJQgi6SAVyA7ABASInCiVEZWxldGVDb250cm9scGxhbmVNYWNoaW5lVXNlclJlc3BvbnNlYgZwcm90bzM", [
|
|
292
|
+
const file_tailor_v1_auth = /*@__PURE__*/ fileDesc("ChR0YWlsb3IvdjEvYXV0aC5wcm90bxIJdGFpbG9yLnYxIpwBChhDcmVhdGVBdXRoU2VydmljZVJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIeChZwdWJsaXNoX3Nlc3Npb25fZXZlbnRzGAMgASgIIkkKGUNyZWF0ZUF1dGhTZXJ2aWNlUmVzcG9uc2USLAoMYXV0aF9zZXJ2aWNlGAEgASgLMhYudGFpbG9yLnYxLkF1dGhTZXJ2aWNlIpwBChhVcGRhdGVBdXRoU2VydmljZVJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIeChZwdWJsaXNoX3Nlc3Npb25fZXZlbnRzGAMgASgIIkkKGVVwZGF0ZUF1dGhTZXJ2aWNlUmVzcG9uc2USLAoMYXV0aF9zZXJ2aWNlGAEgASgLMhYudGFpbG9yLnYxLkF1dGhTZXJ2aWNlInwKGERlbGV0ZUF1dGhTZXJ2aWNlUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kIhsKGURlbGV0ZUF1dGhTZXJ2aWNlUmVzcG9uc2UieQoVR2V0QXV0aFNlcnZpY2VSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiRgoWR2V0QXV0aFNlcnZpY2VSZXNwb25zZRIsCgxhdXRoX3NlcnZpY2UYASABKAsyFi50YWlsb3IudjEuQXV0aFNlcnZpY2UikgEKF0xpc3RBdXRoU2VydmljZXNSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESEgoKcGFnZV90b2tlbhgCIAEoCRIRCglwYWdlX3NpemUYAyABKA0SMAoOcGFnZV9kaXJlY3Rpb24YBCABKA4yGC50YWlsb3IudjEuUGFnZURpcmVjdGlvbiJ3ChhMaXN0QXV0aFNlcnZpY2VzUmVzcG9uc2USLQoNYXV0aF9zZXJ2aWNlcxgBIAMoCzIWLnRhaWxvci52MS5BdXRoU2VydmljZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAMirAEKGkNyZWF0ZUF1dGhJRFBDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSLAoKaWRwX2NvbmZpZxgDIAEoCzIYLnRhaWxvci52MS5BdXRoSURQQ29uZmlnIksKG0NyZWF0ZUF1dGhJRFBDb25maWdSZXNwb25zZRIsCgppZHBfY29uZmlnGAEgASgLMhgudGFpbG9yLnYxLkF1dGhJRFBDb25maWcirAEKGlVwZGF0ZUF1dGhJRFBDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSLAoKaWRwX2NvbmZpZxgDIAEoCzIYLnRhaWxvci52MS5BdXRoSURQQ29uZmlnIksKG1VwZGF0ZUF1dGhJRFBDb25maWdSZXNwb25zZRIsCgppZHBfY29uZmlnGAEgASgLMhgudGFpbG9yLnYxLkF1dGhJRFBDb25maWcitgEKGkRlbGV0ZUF1dGhJRFBDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCIdChtEZWxldGVBdXRoSURQQ29uZmlnUmVzcG9uc2UiswEKF0dldEF1dGhJRFBDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCJIChhHZXRBdXRoSURQQ29uZmlnUmVzcG9uc2USLAoKaWRwX2NvbmZpZxgBIAEoCzIYLnRhaWxvci52MS5BdXRoSURQQ29uZmlnItYBChlMaXN0QXV0aElEUENvbmZpZ3NSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSEgoKcGFnZV90b2tlbhgDIAEoCRIRCglwYWdlX3NpemUYBCABKA0SMAoOcGFnZV9kaXJlY3Rpb24YBSABKA4yGC50YWlsb3IudjEuUGFnZURpcmVjdGlvbiJ5ChpMaXN0QXV0aElEUENvbmZpZ3NSZXNwb25zZRItCgtpZHBfY29uZmlncxgBIAMoCzIYLnRhaWxvci52MS5BdXRoSURQQ29uZmlnEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRITCgt0b3RhbF9jb3VudBgDIAEoAyLOAQoeQ3JlYXRlVXNlclByb2ZpbGVDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSSgocdXNlcl9wcm9maWxlX3Byb3ZpZGVyX2NvbmZpZxgDIAEoCzIkLnRhaWxvci52MS5Vc2VyUHJvZmlsZVByb3ZpZGVyQ29uZmlnIm0KH0NyZWF0ZVVzZXJQcm9maWxlQ29uZmlnUmVzcG9uc2USSgocdXNlcl9wcm9maWxlX3Byb3ZpZGVyX2NvbmZpZxgBIAEoCzIkLnRhaWxvci52MS5Vc2VyUHJvZmlsZVByb3ZpZGVyQ29uZmlnIs4BCh5VcGRhdGVVc2VyUHJvZmlsZUNvbmZpZ1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBJKChx1c2VyX3Byb2ZpbGVfcHJvdmlkZXJfY29uZmlnGAMgASgLMiQudGFpbG9yLnYxLlVzZXJQcm9maWxlUHJvdmlkZXJDb25maWcibQofVXBkYXRlVXNlclByb2ZpbGVDb25maWdSZXNwb25zZRJKChx1c2VyX3Byb2ZpbGVfcHJvdmlkZXJfY29uZmlnGAEgASgLMiQudGFpbG9yLnYxLlVzZXJQcm9maWxlUHJvdmlkZXJDb25maWciggEKHkRlbGV0ZVVzZXJQcm9maWxlQ29uZmlnUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kIiEKH0RlbGV0ZVVzZXJQcm9maWxlQ29uZmlnUmVzcG9uc2UifwobR2V0VXNlclByb2ZpbGVDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiagocR2V0VXNlclByb2ZpbGVDb25maWdSZXNwb25zZRJKChx1c2VyX3Byb2ZpbGVfcHJvdmlkZXJfY29uZmlnGAEgASgLMiQudGFpbG9yLnYxLlVzZXJQcm9maWxlUHJvdmlkZXJDb25maWcixgEKGUNyZWF0ZVRlbmFudENvbmZpZ1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBJHChZ0ZW5hbnRfcHJvdmlkZXJfY29uZmlnGAMgASgLMh8udGFpbG9yLnYxLlRlbmFudFByb3ZpZGVyQ29uZmlnQga6SAPIAQEiXQoaQ3JlYXRlVGVuYW50Q29uZmlnUmVzcG9uc2USPwoWdGVuYW50X3Byb3ZpZGVyX2NvbmZpZxgBIAEoCzIfLnRhaWxvci52MS5UZW5hbnRQcm92aWRlckNvbmZpZyLGAQoZVXBkYXRlVGVuYW50Q29uZmlnUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEkcKFnRlbmFudF9wcm92aWRlcl9jb25maWcYAyABKAsyHy50YWlsb3IudjEuVGVuYW50UHJvdmlkZXJDb25maWdCBrpIA8gBASJdChpVcGRhdGVUZW5hbnRDb25maWdSZXNwb25zZRI/ChZ0ZW5hbnRfcHJvdmlkZXJfY29uZmlnGAEgASgLMh8udGFpbG9yLnYxLlRlbmFudFByb3ZpZGVyQ29uZmlnIn0KGURlbGV0ZVRlbmFudENvbmZpZ1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCIcChpEZWxldGVUZW5hbnRDb25maWdSZXNwb25zZSJ6ChZHZXRUZW5hbnRDb25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiWgoXR2V0VGVuYW50Q29uZmlnUmVzcG9uc2USPwoWdGVuYW50X3Byb3ZpZGVyX2NvbmZpZxgBIAEoCzIfLnRhaWxvci52MS5UZW5hbnRQcm92aWRlckNvbmZpZyKSAQogQ3JlYXRlUGVyc29uYWxBY2Nlc3NUb2tlblJlcXVlc3QSNgoEbmFtZRgBIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBI2CgZzY29wZXMYAiADKA4yEy50YWlsb3IudjEuUEFUU2NvcGVCEbpIDpIBCwgBIgeCAQQQASAAIjkKIUNyZWF0ZVBlcnNvbmFsQWNjZXNzVG9rZW5SZXNwb25zZRIUCgxhY2Nlc3NfdG9rZW4YASABKAkiWgogRGVsZXRlUGVyc29uYWxBY2Nlc3NUb2tlblJlcXVlc3QSNgoEbmFtZRgBIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCIjCiFEZWxldGVQZXJzb25hbEFjY2Vzc1Rva2VuUmVzcG9uc2UiegofTGlzdFBlcnNvbmFsQWNjZXNzVG9rZW5zUmVxdWVzdBISCgpwYWdlX3Rva2VuGAEgASgJEhEKCXBhZ2Vfc2l6ZRgCIAEoDRIwCg5wYWdlX2RpcmVjdGlvbhgDIAEoDjIYLnRhaWxvci52MS5QYWdlRGlyZWN0aW9uIpABCiBMaXN0UGVyc29uYWxBY2Nlc3NUb2tlbnNSZXNwb25zZRI+ChZwZXJzb25hbF9hY2Nlc3NfdG9rZW5zGAEgAygLMh4udGFpbG9yLnYxLlBlcnNvbmFsQWNjZXNzVG9rZW4SFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJEhMKC3RvdGFsX2NvdW50GAMgASgDIqMDChxDcmVhdGVBdXRoTWFjaGluZVVzZXJSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQwoOYXV0aF9uYW1lc3BhY2UYAiABKAlCK7pIKHImMiReKFthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0pPyQSNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIhCgphdHRyaWJ1dGVzGAQgAygJQg26SAqSAQciBXIDsAEBEnYKDWF0dHJpYnV0ZV9tYXAYBSADKAsyOS50YWlsb3IudjEuQ3JlYXRlQXV0aE1hY2hpbmVVc2VyUmVxdWVzdC5BdHRyaWJ1dGVNYXBFbnRyeUIkukghmgEeIhxyGjIYXlthLXpdWzAtOWEtekEtWl17MCw2Mn0kGksKEUF0dHJpYnV0ZU1hcEVudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEiTQodQ3JlYXRlQXV0aE1hY2hpbmVVc2VyUmVzcG9uc2USLAoMbWFjaGluZV91c2VyGAEgASgLMhYudGFpbG9yLnYxLk1hY2hpbmVVc2VyIqADChxVcGRhdGVBdXRoTWFjaGluZVVzZXJSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoOYXV0aF9uYW1lc3BhY2UYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIhCgphdHRyaWJ1dGVzGAQgAygJQg26SAqSAQciBXIDsAEBEnYKDWF0dHJpYnV0ZV9tYXAYBSADKAsyOS50YWlsb3IudjEuVXBkYXRlQXV0aE1hY2hpbmVVc2VyUmVxdWVzdC5BdHRyaWJ1dGVNYXBFbnRyeUIkukghmgEeIhxyGjIYXlthLXpdWzAtOWEtekEtWl17MCw2Mn0kGksKEUF0dHJpYnV0ZU1hcEVudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEiTQodVXBkYXRlQXV0aE1hY2hpbmVVc2VyUmVzcG9uc2USLAoMbWFjaGluZV91c2VyGAEgASgLMhYudGFpbG9yLnYxLk1hY2hpbmVVc2VyIrgBChxEZWxldGVBdXRoTWFjaGluZVVzZXJSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoOYXV0aF9uYW1lc3BhY2UYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQSNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCIfCh1EZWxldGVBdXRoTWFjaGluZVVzZXJSZXNwb25zZSK1AQoZR2V0QXV0aE1hY2hpbmVVc2VyUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDmF1dGhfbmFtZXNwYWNlGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEjYKBG5hbWUYAyABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiSgoaR2V0QXV0aE1hY2hpbmVVc2VyUmVzcG9uc2USLAoMbWFjaGluZV91c2VyGAEgASgLMhYudGFpbG9yLnYxLk1hY2hpbmVVc2VyItgBChtMaXN0QXV0aE1hY2hpbmVVc2Vyc1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5hdXRoX25hbWVzcGFjZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBISCgpwYWdlX3Rva2VuGAMgASgJEhEKCXBhZ2Vfc2l6ZRgEIAEoDRIwCg5wYWdlX2RpcmVjdGlvbhgFIAEoDjIYLnRhaWxvci52MS5QYWdlRGlyZWN0aW9uInsKHExpc3RBdXRoTWFjaGluZVVzZXJzUmVzcG9uc2USLQoNbWFjaGluZV91c2VycxgBIAMoCzIWLnRhaWxvci52MS5NYWNoaW5lVXNlchIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAMirwEKG0NyZWF0ZUF1dGhTQ0lNQ29uZmlnUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEi4KC3NjaW1fY29uZmlnGAMgASgLMhkudGFpbG9yLnYxLkF1dGhTQ0lNQ29uZmlnIk4KHENyZWF0ZUF1dGhTQ0lNQ29uZmlnUmVzcG9uc2USLgoLc2NpbV9jb25maWcYASABKAsyGS50YWlsb3IudjEuQXV0aFNDSU1Db25maWcirwEKG1VwZGF0ZUF1dGhTQ0lNQ29uZmlnUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEi4KC3NjaW1fY29uZmlnGAMgASgLMhkudGFpbG9yLnYxLkF1dGhTQ0lNQ29uZmlnIk4KHFVwZGF0ZUF1dGhTQ0lNQ29uZmlnUmVzcG9uc2USLgoLc2NpbV9jb25maWcYASABKAsyGS50YWlsb3IudjEuQXV0aFNDSU1Db25maWcifAoYR2V0QXV0aFNDSU1Db25maWdSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQAoObmFtZXNwYWNlX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiSwoZR2V0QXV0aFNDSU1Db25maWdSZXNwb25zZRIuCgtzY2ltX2NvbmZpZxgBIAEoCzIZLnRhaWxvci52MS5BdXRoU0NJTUNvbmZpZyJ/ChtEZWxldGVBdXRoU0NJTUNvbmZpZ1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCIeChxEZWxldGVBdXRoU0NJTUNvbmZpZ1Jlc3BvbnNlIrUBCh1DcmVhdGVBdXRoU0NJTVJlc291cmNlUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEjIKDXNjaW1fcmVzb3VyY2UYAyABKAsyGy50YWlsb3IudjEuQXV0aFNDSU1SZXNvdXJjZSJUCh5DcmVhdGVBdXRoU0NJTVJlc291cmNlUmVzcG9uc2USMgoNc2NpbV9yZXNvdXJjZRgBIAEoCzIbLnRhaWxvci52MS5BdXRoU0NJTVJlc291cmNlIrUBCh1VcGRhdGVBdXRoU0NJTVJlc291cmNlUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEjIKDXNjaW1fcmVzb3VyY2UYAyABKAsyGy50YWlsb3IudjEuQXV0aFNDSU1SZXNvdXJjZSJUCh5VcGRhdGVBdXRoU0NJTVJlc291cmNlUmVzcG9uc2USMgoNc2NpbV9yZXNvdXJjZRgBIAEoCzIbLnRhaWxvci52MS5BdXRoU0NJTVJlc291cmNlIo8BCh1EZWxldGVBdXRoU0NJTVJlc291cmNlUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEgwKBG5hbWUYAyABKAkiIAoeRGVsZXRlQXV0aFNDSU1SZXNvdXJjZVJlc3BvbnNlIrYBChpHZXRBdXRoU0NJTVJlc291cmNlUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEjYKBG5hbWUYAyABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiUQobR2V0QXV0aFNDSU1SZXNvdXJjZVJlc3BvbnNlEjIKDXNjaW1fcmVzb3VyY2UYASABKAsyGy50YWlsb3IudjEuQXV0aFNDSU1SZXNvdXJjZSJ/ChtHZXRBdXRoU0NJTVJlc291cmNlc1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCJTChxHZXRBdXRoU0NJTVJlc291cmNlc1Jlc3BvbnNlEjMKDnNjaW1fcmVzb3VyY2VzGAEgAygLMhsudGFpbG9yLnYxLkF1dGhTQ0lNUmVzb3VyY2UipAEKFUNyZWF0ZUF1dGhIb29rUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEikKBGhvb2sYAyABKAsyEy50YWlsb3IudjEuQXV0aEhvb2tCBrpIA8gBASI7ChZDcmVhdGVBdXRoSG9va1Jlc3BvbnNlEiEKBGhvb2sYASABKAsyEy50YWlsb3IudjEuQXV0aEhvb2sipAEKFVVwZGF0ZUF1dGhIb29rUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEikKBGhvb2sYAyABKAsyEy50YWlsb3IudjEuQXV0aEhvb2tCBrpIA8gBASI7ChZVcGRhdGVBdXRoSG9va1Jlc3BvbnNlEiEKBGhvb2sYASABKAsyEy50YWlsb3IudjEuQXV0aEhvb2siswEKFURlbGV0ZUF1dGhIb29rUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkAKDm5hbWVzcGFjZV9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEjgKCmhvb2tfcG9pbnQYAyABKA4yGC50YWlsb3IudjEuQXV0aEhvb2tQb2ludEIKukgHggEEEAEgACIYChZEZWxldGVBdXRoSG9va1Jlc3BvbnNlIrABChJHZXRBdXRoSG9va1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBI4Cgpob29rX3BvaW50GAMgASgOMhgudGFpbG9yLnYxLkF1dGhIb29rUG9pbnRCCrpIB4IBBBABIAAiOAoTR2V0QXV0aEhvb2tSZXNwb25zZRIhCgRob29rGAEgASgLMhMudGFpbG9yLnYxLkF1dGhIb29rInQKG0NyZWF0ZUF1dGhDb25uZWN0aW9uUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEjUKCmNvbm5lY3Rpb24YAiABKAsyGS50YWlsb3IudjEuQXV0aENvbm5lY3Rpb25CBrpIA8gBASIeChxDcmVhdGVBdXRoQ29ubmVjdGlvblJlc3BvbnNlIrACChtVcGRhdGVBdXRoQ29ubmVjdGlvblJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARI1Cgpjb25uZWN0aW9uGAIgASgLMhkudGFpbG9yLnYxLkF1dGhDb25uZWN0aW9uQga6SAPIAQESuQEKC3VwZGF0ZV9tYXNrGGQgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0KHAYr5KwR0eXBlivkrE29hdXRoMi5wcm92aWRlcl91cmyK+SsRb2F1dGgyLmlzc3Vlcl91cmyK+SsQb2F1dGgyLmNsaWVudF9pZIr5KxRvYXV0aDIuY2xpZW50X3NlY3JldIr5Kw9vYXV0aDIuYXV0aF91cmyK+SsQb2F1dGgyLnRva2VuX3VybCJNChxVcGRhdGVBdXRoQ29ubmVjdGlvblJlc3BvbnNlEi0KCmNvbm5lY3Rpb24YASABKAsyGS50YWlsb3IudjEuQXV0aENvbm5lY3Rpb24ilQEKGkxpc3RBdXRoQ29ubmVjdGlvbnNSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESEgoKcGFnZV90b2tlbhgCIAEoCRIRCglwYWdlX3NpemUYAyABKA0SMAoOcGFnZV9kaXJlY3Rpb24YBCABKA4yGC50YWlsb3IudjEuUGFnZURpcmVjdGlvbiJ7ChtMaXN0QXV0aENvbm5lY3Rpb25zUmVzcG9uc2USLgoLY29ubmVjdGlvbnMYASADKAsyGS50YWlsb3IudjEuQXV0aENvbm5lY3Rpb24SFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJEhMKC3RvdGFsX2NvdW50GAMgASgDIoABChtSZXZva2VBdXRoQ29ubmVjdGlvblJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJBCg9jb25uZWN0aW9uX25hbWUYAiABKAlCKLpIJXIjMiFeW2EtejAtOV1bYS16MC05LV17MSw2MX1bYS16MC05XSQiHgocUmV2b2tlQXV0aENvbm5lY3Rpb25SZXNwb25zZSKAAQobRGVsZXRlQXV0aENvbm5lY3Rpb25SZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQQoPY29ubmVjdGlvbl9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kIh4KHERlbGV0ZUF1dGhDb25uZWN0aW9uUmVzcG9uc2Ui5gEKJFJlZ2lzdGVyQXV0aENvbm5lY3Rpb25TZXNzaW9uUmVxdWVzdBIeCgx3b3Jrc3BhY2VfaWQYASABKAlCCLpIBXIDsAEBEkEKD2Nvbm5lY3Rpb25fbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBIUCgxhY2Nlc3NfdG9rZW4YAyABKAkSFQoNcmVmcmVzaF90b2tlbhgEIAEoCRIuCgpleHBpcmVzX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCInCiVSZWdpc3RlckF1dGhDb25uZWN0aW9uU2Vzc2lvblJlc3BvbnNlItcBCi5FeGNoYW5nZUF1dGhDb25uZWN0aW9uQXV0aG9yaXphdGlvbkNvZGVSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESQQoPY29ubmVjdGlvbl9uYW1lGAIgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEiMKEmF1dGhvcml6YXRpb25fY29kZRgDIAEoCUIHukgEcgIQARIdCgxyZWRpcmVjdF91cmkYBCABKAlCB7pIBHICEAEiMQovRXhjaGFuZ2VBdXRoQ29ubmVjdGlvbkF1dGhvcml6YXRpb25Db2RlUmVzcG9uc2UiiwEKHUNyZWF0ZUF1dGhPQXV0aDJDbGllbnRSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESFgoObmFtZXNwYWNlX25hbWUYAiABKAkSMgoNb2F1dGgyX2NsaWVudBgDIAEoCzIbLnRhaWxvci52MS5BdXRoT0F1dGgyQ2xpZW50IlQKHkNyZWF0ZUF1dGhPQXV0aDJDbGllbnRSZXNwb25zZRIyCg1vYXV0aDJfY2xpZW50GAEgASgLMhsudGFpbG9yLnYxLkF1dGhPQXV0aDJDbGllbnQiiwEKHVVwZGF0ZUF1dGhPQXV0aDJDbGllbnRSZXF1ZXN0Eh4KDHdvcmtzcGFjZV9pZBgBIAEoCUIIukgFcgOwAQESFgoObmFtZXNwYWNlX25hbWUYAiABKAkSMgoNb2F1dGgyX2NsaWVudBgDIAEoCzIbLnRhaWxvci52MS5BdXRoT0F1dGgyQ2xpZW50IlQKHlVwZGF0ZUF1dGhPQXV0aDJDbGllbnRSZXNwb25zZRIyCg1vYXV0aDJfY2xpZW50GAEgASgLMhsudGFpbG9yLnYxLkF1dGhPQXV0aDJDbGllbnQiZQodRGVsZXRlQXV0aE9BdXRoMkNsaWVudFJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARIWCg5uYW1lc3BhY2VfbmFtZRgCIAEoCRIMCgRuYW1lGAMgASgJIiAKHkRlbGV0ZUF1dGhPQXV0aDJDbGllbnRSZXNwb25zZSK2AQoaR2V0QXV0aE9BdXRoMkNsaWVudFJlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARJACg5uYW1lc3BhY2VfbmFtZRgCIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJBI2CgRuYW1lGAMgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kIlEKG0dldEF1dGhPQXV0aDJDbGllbnRSZXNwb25zZRIyCg1vYXV0aDJfY2xpZW50GAEgASgLMhsudGFpbG9yLnYxLkF1dGhPQXV0aDJDbGllbnQirwEKHExpc3RBdXRoT0F1dGgyQ2xpZW50c1JlcXVlc3QSHgoMd29ya3NwYWNlX2lkGAEgASgJQgi6SAVyA7ABARIWCg5uYW1lc3BhY2VfbmFtZRgCIAEoCRISCgpwYWdlX3Rva2VuGAMgASgJEhEKCXBhZ2Vfc2l6ZRgEIAEoDRIwCg5wYWdlX2RpcmVjdGlvbhgFIAEoDjIYLnRhaWxvci52MS5QYWdlRGlyZWN0aW9uIoIBCh1MaXN0QXV0aE9BdXRoMkNsaWVudHNSZXNwb25zZRIzCg5vYXV0aDJfY2xpZW50cxgBIAMoCzIbLnRhaWxvci52MS5BdXRoT0F1dGgyQ2xpZW50EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRITCgt0b3RhbF9jb3VudBgDIAEoAyK2AQokQ3JlYXRlQ29udHJvbHBsYW5lTWFjaGluZVVzZXJSZXF1ZXN0EiEKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIIukgFcgOwAQESHgoJZm9sZGVyX2lkGAIgASgJQgu6SAjYAQFyA7ABARI2CgRuYW1lGAMgASgJQii6SCVyIzIhXlthLXowLTldW2EtejAtOS1dezEsNjF9W2EtejAtOV0kEhMKC2Rlc2NyaXB0aW9uGAQgASgJImEKJUNyZWF0ZUNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyUmVzcG9uc2USOAoMbWFjaGluZV91c2VyGAEgASgLMiIudGFpbG9yLnYxLkNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyIvwBCiRVcGRhdGVDb250cm9scGxhbmVNYWNoaW5lVXNlclJlcXVlc3QSIQoPb3JnYW5pemF0aW9uX2lkGAEgASgJQgi6SAVyA7ABARIeCglmb2xkZXJfaWQYAiABKAlCC7pICNgBAXIDsAEBEiEKD21hY2hpbmVfdXNlcl9pZBgDIAEoCUIIukgFcgOwAQESOwoEbmFtZRgEIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJEgAiAEBEhgKC2Rlc2NyaXB0aW9uGAUgASgJSAGIAQFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uImEKJVVwZGF0ZUNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyUmVzcG9uc2USOAoMbWFjaGluZV91c2VyGAEgASgLMiIudGFpbG9yLnYxLkNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyIokBCiFHZXRDb250cm9scGxhbmVNYWNoaW5lVXNlclJlcXVlc3QSIQoPb3JnYW5pemF0aW9uX2lkGAEgASgJQgi6SAVyA7ABARIeCglmb2xkZXJfaWQYAiABKAlCC7pICNgBAXIDsAEBEiEKD21hY2hpbmVfdXNlcl9pZBgDIAEoCUIIukgFcgOwAQEiXgoiR2V0Q29udHJvbHBsYW5lTWFjaGluZVVzZXJSZXNwb25zZRI4CgxtYWNoaW5lX3VzZXIYASABKAsyIi50YWlsb3IudjEuQ29udHJvbHBsYW5lTWFjaGluZVVzZXIipAEKJ0dldENvbnRyb2xwbGFuZU1hY2hpbmVVc2VyQnlOYW1lUmVxdWVzdBIhCg9vcmdhbml6YXRpb25faWQYASABKAlCCLpIBXIDsAEBEh4KCWZvbGRlcl9pZBgCIAEoCUILukgI2AEBcgOwAQESNgoEbmFtZRgDIAEoCUIoukglciMyIV5bYS16MC05XVthLXowLTktXXsxLDYxfVthLXowLTldJCJkCihHZXRDb250cm9scGxhbmVNYWNoaW5lVXNlckJ5TmFtZVJlc3BvbnNlEjgKDG1hY2hpbmVfdXNlchgBIAEoCzIiLnRhaWxvci52MS5Db250cm9scGxhbmVNYWNoaW5lVXNlciLBAQojTGlzdENvbnRyb2xwbGFuZU1hY2hpbmVVc2Vyc1JlcXVlc3QSIQoPb3JnYW5pemF0aW9uX2lkGAEgASgJQgi6SAVyA7ABARIeCglmb2xkZXJfaWQYAiABKAlCC7pICNgBAXIDsAEBEhIKCnBhZ2VfdG9rZW4YAyABKAkSEQoJcGFnZV9zaXplGAQgASgNEjAKDnBhZ2VfZGlyZWN0aW9uGAUgASgOMhgudGFpbG9yLnYxLlBhZ2VEaXJlY3Rpb24ijwEKJExpc3RDb250cm9scGxhbmVNYWNoaW5lVXNlcnNSZXNwb25zZRI5Cg1tYWNoaW5lX3VzZXJzGAEgAygLMiIudGFpbG9yLnYxLkNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRITCgt0b3RhbF9jb3VudBgDIAEoAyKMAQokRGVsZXRlQ29udHJvbHBsYW5lTWFjaGluZVVzZXJSZXF1ZXN0EiEKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIIukgFcgOwAQESHgoJZm9sZGVyX2lkGAIgASgJQgu6SAjYAQFyA7ABARIhCg9tYWNoaW5lX3VzZXJfaWQYAyABKAlCCLpIBXIDsAEBIicKJURlbGV0ZUNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyUmVzcG9uc2ViBnByb3RvMw", [
|
|
285
293
|
file_buf_validate_validate,
|
|
294
|
+
file_google_protobuf_field_mask,
|
|
286
295
|
file_google_protobuf_struct,
|
|
287
296
|
file_google_protobuf_timestamp,
|
|
297
|
+
file_tailor_fieldmask_v1_option,
|
|
288
298
|
file_tailor_v1_auth_resource,
|
|
289
299
|
file_tailor_v1_resource
|
|
290
300
|
]);
|
|
@@ -374,15 +384,20 @@ const UpdateAuthHookRequestSchema = /*@__PURE__*/ messageDesc(file_tailor_v1_aut
|
|
|
374
384
|
*/
|
|
375
385
|
const CreateAuthConnectionRequestSchema = /*@__PURE__*/ messageDesc(file_tailor_v1_auth, 78);
|
|
376
386
|
/**
|
|
387
|
+
* Describes the message tailor.v1.UpdateAuthConnectionRequest.
|
|
388
|
+
* Use `create(UpdateAuthConnectionRequestSchema)` to create a new message.
|
|
389
|
+
*/
|
|
390
|
+
const UpdateAuthConnectionRequestSchema = /*@__PURE__*/ messageDesc(file_tailor_v1_auth, 80);
|
|
391
|
+
/**
|
|
377
392
|
* Describes the message tailor.v1.CreateAuthOAuth2ClientRequest.
|
|
378
393
|
* Use `create(CreateAuthOAuth2ClientRequestSchema)` to create a new message.
|
|
379
394
|
*/
|
|
380
|
-
const CreateAuthOAuth2ClientRequestSchema = /*@__PURE__*/ messageDesc(file_tailor_v1_auth,
|
|
395
|
+
const CreateAuthOAuth2ClientRequestSchema = /*@__PURE__*/ messageDesc(file_tailor_v1_auth, 92);
|
|
381
396
|
/**
|
|
382
397
|
* Describes the message tailor.v1.UpdateAuthOAuth2ClientRequest.
|
|
383
398
|
* Use `create(UpdateAuthOAuth2ClientRequestSchema)` to create a new message.
|
|
384
399
|
*/
|
|
385
|
-
const UpdateAuthOAuth2ClientRequestSchema = /*@__PURE__*/ messageDesc(file_tailor_v1_auth,
|
|
400
|
+
const UpdateAuthOAuth2ClientRequestSchema = /*@__PURE__*/ messageDesc(file_tailor_v1_auth, 94);
|
|
386
401
|
|
|
387
402
|
//#endregion
|
|
388
403
|
//#region ../tailor-proto/src/tailor/v1/events_resource_pb.js
|
|
@@ -739,7 +754,7 @@ const AddCustomDomainRequestSchema = /*@__PURE__*/ messageDesc(file_tailor_v1_st
|
|
|
739
754
|
/**
|
|
740
755
|
* Describes the file tailor/v1/tailordb_resource.proto.
|
|
741
756
|
*/
|
|
742
|
-
const file_tailor_v1_tailordb_resource = /*@__PURE__*/ fileDesc("
|
|
757
|
+
const file_tailor_v1_tailordb_resource = /*@__PURE__*/ fileDesc("CiF0YWlsb3IvdjEvdGFpbG9yZGJfcmVzb3VyY2UucHJvdG8SCXRhaWxvci52MSJUCg9UYWlsb3JEQlNlcnZpY2USJwoJbmFtZXNwYWNlGAEgASgLMhQudGFpbG9yLnYxLk5hbWVzcGFjZRIYChBkZWZhdWx0X3RpbWV6b25lGAIgASgJIs4uCgxUYWlsb3JEQlR5cGUSLQoEbmFtZRgBIAEoCUIfukgcchoyGF5bQS1aXVthLXpBLVowLTldezAsNjJ9JBIyCgZzY2hlbWEYAiABKAsyIi50YWlsb3IudjEuVGFpbG9yREJUeXBlLlR5cGVDb25maWcaqg0KClR5cGVDb25maWcSPgoGZmllbGRzGAEgAygLMi4udGFpbG9yLnYxLlRhaWxvckRCVHlwZS5UeXBlQ29uZmlnLkZpZWxkc0VudHJ5EhMKC2Rlc2NyaXB0aW9uGAIgASgJEjUKCHNldHRpbmdzGAMgASgLMiMudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5UeXBlU2V0dGluZxI/Cg90eXBlX3Blcm1pc3Npb24YBCABKAsyJi50YWlsb3IudjEuVGFpbG9yREJUeXBlLlR5cGVQZXJtaXNzaW9uEg8KB2V4dGVuZHMYBSABKAgSNQoKZGlyZWN0aXZlcxgGIAMoCzIhLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuRGlyZWN0aXZlEkAKB2luZGV4ZXMYByADKAsyLy50YWlsb3IudjEuVGFpbG9yREJUeXBlLlR5cGVDb25maWcuSW5kZXhlc0VudHJ5EkgKEXJlY29yZF9wZXJtaXNzaW9uGAggASgLMigudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5SZWNvcmRQZXJtaXNzaW9uSACIAQESTAoNcmVsYXRpb25zaGlwcxgJIAMoCzI1LnRhaWxvci52MS5UYWlsb3JEQlR5cGUuVHlwZUNvbmZpZy5SZWxhdGlvbnNoaXBzRW50cnkSNgoKcGVybWlzc2lvbhgKIAEoCzIiLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbhI8CgVmaWxlcxgLIAMoCzItLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuVHlwZUNvbmZpZy5GaWxlc0VudHJ5EjgKCXR5cGVfaG9vaxgMIAEoCzIgLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuVHlwZUhvb2tIAYgBARJACg10eXBlX3ZhbGlkYXRlGA0gASgLMiQudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5UeXBlVmFsaWRhdGVIAogBARpSCgtGaWVsZHNFbnRyeRILCgNrZXkYASABKAkSMgoFdmFsdWUYAiABKAsyIy50YWlsb3IudjEuVGFpbG9yREJUeXBlLkZpZWxkQ29uZmlnOgI4ARpNCgxJbmRleGVzRW50cnkSCwoDa2V5GAEgASgJEiwKBXZhbHVlGAIgASgLMh0udGFpbG9yLnYxLlRhaWxvckRCVHlwZS5JbmRleDoCOAEaYAoSUmVsYXRpb25zaGlwc0VudHJ5EgsKA2tleRgBIAEoCRI5CgV2YWx1ZRgCIAEoCzIqLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUmVsYXRpb25zaGlwQ29uZmlnOgI4ARpQCgpGaWxlc0VudHJ5EgsKA2tleRgBIAEoCRIxCgV2YWx1ZRgCIAEoCzIiLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuRmlsZUNvbmZpZzoCOAE6rQS6SKkEGoICChV0eXBlX2hvb2tfZXhjbHVzaXZpdHkSQnR5cGVfaG9vayBhbmQgZmllbGQtbGV2ZWwgaG9va3MgY2Fubm90IGJlIGRlZmluZWQgYXQgdGhlIHNhbWUgdGltZRqkASFoYXModGhpcy50eXBlX2hvb2spIHx8ICh0aGlzLmZpZWxkcy5hbGwoaywgIWhhcyh0aGlzLmZpZWxkc1trXS5ob29rcykpICYmIHRoaXMuZmllbGRzLmFsbChrLCB0aGlzLmZpZWxkc1trXS5maWVsZHMuYWxsKG5rLCAhaGFzKHRoaXMuZmllbGRzW2tdLmZpZWxkc1tua10uaG9va3MpKSkpGqECChl0eXBlX3ZhbGlkYXRlX2V4Y2x1c2l2aXR5Ekl0eXBlX3ZhbGlkYXRlIGFuZCBmaWVsZC1sZXZlbCB2YWxpZGF0ZSBjYW5ub3QgYmUgZGVmaW5lZCBhdCB0aGUgc2FtZSB0aW1lGrgBIWhhcyh0aGlzLnR5cGVfdmFsaWRhdGUpIHx8ICh0aGlzLmZpZWxkcy5hbGwoaywgc2l6ZSh0aGlzLmZpZWxkc1trXS52YWxpZGF0ZSkgPT0gMCkgJiYgdGhpcy5maWVsZHMuYWxsKGssIHRoaXMuZmllbGRzW2tdLmZpZWxkcy5hbGwobmssIHNpemUodGhpcy5maWVsZHNba10uZmllbGRzW25rXS52YWxpZGF0ZSkgPT0gMCkpKUIUChJfcmVjb3JkX3Blcm1pc3Npb25CDAoKX3R5cGVfaG9va0IQCg5fdHlwZV92YWxpZGF0ZRqHAwoLVHlwZVNldHRpbmcSEwoLYWdncmVnYXRpb24YAiABKAgSEwoLYnVsa191cHNlcnQYAyABKAgSJQoYZGVmYXVsdF9xdWVyeV9saW1pdF9zaXplGAQgASgDSACIAQESIQoUbWF4X2J1bGtfdXBzZXJ0X3NpemUYBSABKANIAYgBARI8CgtwbHVyYWxfZm9ybRgGIAEoCUIiukgfch0yG14kfF5bYS16XVthLXpBLVowLTldezAsNjJ9JEgCiAEBEh0KFXB1Ymxpc2hfcmVjb3JkX2V2ZW50cxgHIAEoCBINCgVkcmFmdBgIIAEoCBJMChZkaXNhYmxlX2dxbF9vcGVyYXRpb25zGAkgASgLMiwudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5EaXNhYmxlR3FsT3BlcmF0aW9uc0IbChlfZGVmYXVsdF9xdWVyeV9saW1pdF9zaXplQhcKFV9tYXhfYnVsa191cHNlcnRfc2l6ZUIOCgxfcGx1cmFsX2Zvcm1KBAgBEAIaVAoURGlzYWJsZUdxbE9wZXJhdGlvbnMSDgoGY3JlYXRlGAEgASgIEg4KBnVwZGF0ZRgCIAEoCBIOCgZkZWxldGUYAyABKAgSDAoEcmVhZBgEIAEoCBpNCglEaXJlY3RpdmUSDAoEbmFtZRgBIAEoCRIyCgRhcmdzGAIgAygLMiQudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5EaXJlY3RpdmVBcmcaKwoMRGlyZWN0aXZlQXJnEgwKBG5hbWUYASABKAkSDQoFdmFsdWUYAiABKAkaLAoFSW5kZXgSEwoLZmllbGRfbmFtZXMYASADKAkSDgoGdW5pcXVlGAIgASgIGucFCgtGaWVsZENvbmZpZxIMCgR0eXBlGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhYKCXNvdXJjZV9pZBgEIAEoCUgAiAEBEhAKCHJlcXVpcmVkGAUgASgIEg0KBWFycmF5GAYgASgIEjgKCHZhbGlkYXRlGAcgAygLMiYudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5WYWxpZGF0ZUNvbmZpZxI/CgZmaWVsZHMYCCADKAsyLy50YWlsb3IudjEuVGFpbG9yREJUeXBlLkZpZWxkQ29uZmlnLkZpZWxkc0VudHJ5Eg0KBWluZGV4GAkgASgIEg4KBnVuaXF1ZRgKIAEoCBITCgtmb3JlaWduX2tleRgLIAEoCBIdChBmb3JlaWduX2tleV90eXBlGAwgASgJSAGIAQESHgoRZm9yZWlnbl9rZXlfZmllbGQYDSABKAlIAogBARI1CgVob29rcxgOIAEoCzIhLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuRmllbGRIb29rSAOIAQESNQoOYWxsb3dlZF92YWx1ZXMYDyADKAsyHS50YWlsb3IudjEuVGFpbG9yREJUeXBlLlZhbHVlEg4KBnZlY3RvchgQIAEoCBIuCgZzZXJpYWwYESABKAsyHi50YWlsb3IudjEuVGFpbG9yREJUeXBlLlNlcmlhbBIdCgVzY2FsZRgSIAEoBUIJukgGGgQYDCgASASIAQESGgoSb3B0aW9uYWxfb25fY3JlYXRlGBMgASgIGlIKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIyCgV2YWx1ZRgCIAEoCzIjLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuRmllbGRDb25maWc6AjgBQgwKCl9zb3VyY2VfaWRCEwoRX2ZvcmVpZ25fa2V5X3R5cGVCFAoSX2ZvcmVpZ25fa2V5X2ZpZWxkQggKBl9ob29rc0IICgZfc2NhbGVKBAgCEAMacAoSUmVsYXRpb25zaGlwQ29uZmlnEhAKCHJlZl90eXBlGAEgASgJEhEKCXJlZl9maWVsZBgCIAEoCRIRCglzcmNfZmllbGQYAyABKAkSDQoFYXJyYXkYBCABKAgSEwoLZGVzY3JpcHRpb24YBSABKAkaIQoKRmlsZUNvbmZpZxITCgtkZXNjcmlwdGlvbhgBIAEoCRpjCgVWYWx1ZRJFCgV2YWx1ZRgBIAEoCUI2ukgzcjEyHF5bYS16QS1aXVthLXpBLVowLTlfXXswLDYyfSRaBHRydWVaBWZhbHNlWgRudWxsEhMKC2Rlc2NyaXB0aW9uGAIgASgJGqUBCglGaWVsZEhvb2sSGAoLY3JlYXRlX2V4cHIYASABKAlIAIgBARIYCgt1cGRhdGVfZXhwchgCIAEoCUgBiAEBEiEKBmNyZWF0ZRgDIAEoCzIRLnRhaWxvci52MS5TY3JpcHQSIQoGdXBkYXRlGAQgASgLMhEudGFpbG9yLnYxLlNjcmlwdEIOCgxfY3JlYXRlX2V4cHJCDgoMX3VwZGF0ZV9leHByGlAKCFR5cGVIb29rEiEKBmNyZWF0ZRgBIAEoCzIRLnRhaWxvci52MS5TY3JpcHQSIQoGdXBkYXRlGAIgASgLMhEudGFpbG9yLnYxLlNjcmlwdBpUCgxUeXBlVmFsaWRhdGUSIQoGY3JlYXRlGAEgASgLMhEudGFpbG9yLnYxLlNjcmlwdBIhCgZ1cGRhdGUYAiABKAsyES50YWlsb3IudjEuU2NyaXB0Gq4BCgZTZXJpYWwSFgoFc3RhcnQYASABKANCB7pIBCICIAASHwoJbWF4X3ZhbHVlGAIgASgDQge6SAQiAiAASACIAQESUgoGZm9ybWF0GAMgASgJQj26SDpyOBggMjReKD86KD86JSV8W14lXSkqKSUoPzpbMC05XSspP1tkb3hYXSg/Oig/OiUlfFteJV0pKikkSAGIAQFCDAoKX21heF92YWx1ZUIJCgdfZm9ybWF0GrEBCg5WYWxpZGF0ZUNvbmZpZxIMCgRleHByGAEgASgJEkAKBmFjdGlvbhgCIAEoDjIkLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWl0QWN0aW9uQgq6SAeCAQQQASAAEhoKDWVycm9yX21lc3NhZ2UYAyABKAlIAIgBARIhCgZzY3JpcHQYBCABKAsyES50YWlsb3IudjEuU2NyaXB0QhAKDl9lcnJvcl9tZXNzYWdlGqUCCg5UeXBlUGVybWlzc2lvbhI2CgZjcmVhdGUYASADKAsyJi50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb25JdGVtEjQKBHJlYWQYAiADKAsyJi50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb25JdGVtEjYKBnVwZGF0ZRgDIAMoCzImLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbkl0ZW0SNgoGZGVsZXRlGAQgAygLMiYudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5QZXJtaXNzaW9uSXRlbRI1CgVhZG1pbhgFIAMoCzImLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbkl0ZW0auAEKEFJlY29yZFBlcm1pc3Npb24SNAoEcmVhZBgBIAMoCzImLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbkl0ZW0SNgoGdXBkYXRlGAIgAygLMiYudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5QZXJtaXNzaW9uSXRlbRI2CgZkZWxldGUYAyADKAsyJi50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb25JdGVtGmsKDlBlcm1pc3Npb25JdGVtEkAKBnBlcm1pdBgBIAEoDjIkLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWl0QWN0aW9uQgq6SAeCAQQQASAAEgoKAmlkGAIgASgJEgsKA2lkcxgDIAMoCRq+CAoKUGVybWlzc2lvbhI5CgZjcmVhdGUYASADKAsyKS50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb24uUG9saWN5EjcKBHJlYWQYAiADKAsyKS50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb24uUG9saWN5EjkKBnVwZGF0ZRgDIAMoCzIpLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbi5Qb2xpY3kSOQoGZGVsZXRlGAQgAygLMikudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5QZXJtaXNzaW9uLlBvbGljeRq7AQoGUG9saWN5EkAKCmNvbmRpdGlvbnMYASADKAsyLC50YWlsb3IudjEuVGFpbG9yREJUeXBlLlBlcm1pc3Npb24uQ29uZGl0aW9uEkUKBnBlcm1pdBgCIAEoDjIpLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbi5QZXJtaXRCCrpIB4IBBBABIAASGAoLZGVzY3JpcHRpb24YAyABKAlIAIgBAUIOCgxfZGVzY3JpcHRpb24a2wEKCUNvbmRpdGlvbhJACgRsZWZ0GAEgASgLMioudGFpbG9yLnYxLlRhaWxvckRCVHlwZS5QZXJtaXNzaW9uLk9wZXJhbmRCBrpIA8gBARJJCghvcGVyYXRvchgCIAEoDjIrLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbi5PcGVyYXRvckIKukgHggEEEAEgABJBCgVyaWdodBgDIAEoCzIqLnRhaWxvci52MS5UYWlsb3JEQlR5cGUuUGVybWlzc2lvbi5PcGVyYW5kQga6SAPIAQEaywEKB09wZXJhbmQSHQoKdXNlcl9maWVsZBgBIAEoCUIHukgEcgIQAUgAEh8KDHJlY29yZF9maWVsZBgCIAEoCUIHukgEcgIQAUgAEiMKEG9sZF9yZWNvcmRfZmllbGQYAyABKAlCB7pIBHICEAFIABIjChBuZXdfcmVjb3JkX2ZpZWxkGAQgASgJQge6SARyAhABSAASJwoFdmFsdWUYBSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVIAEINCgRraW5kEgW6SAIIASKWAQoIT3BlcmF0b3ISGAoUT1BFUkFUT1JfVU5TUEVDSUZJRUQQABIPCgtPUEVSQVRPUl9FURABEg8KC09QRVJBVE9SX05FEAISDwoLT1BFUkFUT1JfSU4QAxIQCgxPUEVSQVRPUl9OSU4QBBIUChBPUEVSQVRPUl9IQVNfQU5ZEAUSFQoRT1BFUkFUT1JfTkhBU19BTlkQBiJDCgZQZXJtaXQSFgoSUEVSTUlUX1VOU1BFQ0lGSUVEEAASEAoMUEVSTUlUX0FMTE9XEAESDwoLUEVSTUlUX0RFTlkQAiJ6CgxQZXJtaXRBY3Rpb24SHQoZUEVSTUlUX0FDVElPTl9VTlNQRUNJRklFRBAAEhcKE1BFUk1JVF9BQ1RJT05fQUxMT1cQARIaChJQRVJNSVRfQUNUSU9OX1NLSVAQAhoCCAESFgoSUEVSTUlUX0FDVElPTl9ERU5ZEAMirQgKFVRhaWxvckRCR1FMUGVybWlzc2lvbhIPCgJpZBgBIAEoCUID4EEDEjkKCHBvbGljaWVzGAIgAygLMicudGFpbG9yLnYxLlRhaWxvckRCR1FMUGVybWlzc2lvbi5Qb2xpY3kahAIKBlBvbGljeRI+Cgpjb25kaXRpb25zGAEgAygLMioudGFpbG9yLnYxLlRhaWxvckRCR1FMUGVybWlzc2lvbi5Db25kaXRpb24SSwoHYWN0aW9ucxgCIAMoDjInLnRhaWxvci52MS5UYWlsb3JEQkdRTFBlcm1pc3Npb24uQWN0aW9uQhG6SA6SAQsIASIHggEEEAEgABJDCgZwZXJtaXQYAyABKA4yJy50YWlsb3IudjEuVGFpbG9yREJHUUxQZXJtaXNzaW9uLlBlcm1pdEIKukgHggEEEAEgABIYCgtkZXNjcmlwdGlvbhgEIAEoCUgAiAEBQg4KDF9kZXNjcmlwdGlvbhrVAQoJQ29uZGl0aW9uEj4KBGxlZnQYASABKAsyKC50YWlsb3IudjEuVGFpbG9yREJHUUxQZXJtaXNzaW9uLk9wZXJhbmRCBrpIA8gBARJHCghvcGVyYXRvchgCIAEoDjIpLnRhaWxvci52MS5UYWlsb3JEQkdRTFBlcm1pc3Npb24uT3BlcmF0b3JCCrpIB4IBBBABIAASPwoFcmlnaHQYAyABKAsyKC50YWlsb3IudjEuVGFpbG9yREJHUUxQZXJtaXNzaW9uLk9wZXJhbmRCBrpIA8gBARpgCgdPcGVyYW5kEh0KCnVzZXJfZmllbGQYASABKAlCB7pIBHICEAFIABInCgV2YWx1ZRgFIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZUgAQg0KBGtpbmQSBbpIAggBIpYBCghPcGVyYXRvchIYChRPUEVSQVRPUl9VTlNQRUNJRklFRBAAEg8KC09QRVJBVE9SX0VREAESDwoLT1BFUkFUT1JfTkUQAhIPCgtPUEVSQVRPUl9JThADEhAKDE9QRVJBVE9SX05JThAEEhQKEE9QRVJBVE9SX0hBU19BTlkQBRIVChFPUEVSQVRPUl9OSEFTX0FOWRAGIqgBCgZBY3Rpb24SFgoSQUNUSU9OX1VOU1BFQ0lGSUVEEAASDgoKQUNUSU9OX0FMTBABEhEKDUFDVElPTl9DUkVBVEUQAhIPCgtBQ1RJT05fUkVBRBADEhEKDUFDVElPTl9VUERBVEUQBBIRCg1BQ1RJT05fREVMRVRFEAUSFAoQQUNUSU9OX0FHR1JFR0FURRAGEhYKEkFDVElPTl9CVUxLX1VQU0VSVBAHIkMKBlBlcm1pdBIWChJQRVJNSVRfVU5TUEVDSUZJRUQQABIQCgxQRVJNSVRfQUxMT1cQARIPCgtQRVJNSVRfREVOWRACYgZwcm90bzM", [
|
|
743
758
|
file_buf_validate_validate,
|
|
744
759
|
file_google_api_field_behavior,
|
|
745
760
|
file_google_protobuf_struct,
|
|
@@ -934,7 +949,7 @@ const file_tailor_v1_workspace = /*@__PURE__*/ fileDesc("Chl0YWlsb3IvdjEvd29ya3N
|
|
|
934
949
|
/**
|
|
935
950
|
* Describes the file tailor/v1/service.proto.
|
|
936
951
|
*/
|
|
937
|
-
const file_tailor_v1_service = /*@__PURE__*/ fileDesc("Chd0YWlsb3IvdjEvc2VydmljZS5wcm90bxIJdGFpbG9yLnYxIg0KC1BpbmdSZXF1ZXN0Ig4KDFBpbmdSZXNwb25zZTL52AEKD09wZXJhdG9yU2VydmljZRI5CgRQaW5nEhYudGFpbG9yLnYxLlBpbmdSZXF1ZXN0GhcudGFpbG9yLnYxLlBpbmdSZXNwb25zZSIAEocBCh1MaXN0QXZhaWxhYmxlV29ya3NwYWNlUmVnaW9ucxIvLnRhaWxvci52MS5MaXN0QXZhaWxhYmxlV29ya3NwYWNlUmVnaW9uc1JlcXVlc3QaMC50YWlsb3IudjEuTGlzdEF2YWlsYWJsZVdvcmtzcGFjZVJlZ2lvbnNSZXNwb25zZSIDkAIBEloKD0NyZWF0ZVdvcmtzcGFjZRIhLnRhaWxvci52MS5DcmVhdGVXb3Jrc3BhY2VSZXF1ZXN0GiIudGFpbG9yLnYxLkNyZWF0ZVdvcmtzcGFjZVJlc3BvbnNlIgASWgoPVXBkYXRlV29ya3NwYWNlEiEudGFpbG9yLnYxLlVwZGF0ZVdvcmtzcGFjZVJlcXVlc3QaIi50YWlsb3IudjEuVXBkYXRlV29ya3NwYWNlUmVzcG9uc2UiABJaCg9EZWxldGVXb3Jrc3BhY2USIS50YWlsb3IudjEuRGVsZXRlV29ya3NwYWNlUmVxdWVzdBoiLnRhaWxvci52MS5EZWxldGVXb3Jrc3BhY2VSZXNwb25zZSIAEloKDkxpc3RXb3Jrc3BhY2VzEiAudGFpbG9yLnYxLkxpc3RXb3Jrc3BhY2VzUmVxdWVzdBohLnRhaWxvci52MS5MaXN0V29ya3NwYWNlc1Jlc3BvbnNlIgOQAgESfgoaTGlzdE9yZ2FuaXphdGlvbldvcmtzcGFjZXMSLC50YWlsb3IudjEuTGlzdE9yZ2FuaXphdGlvbldvcmtzcGFjZXNSZXF1ZXN0Gi0udGFpbG9yLnYxLkxpc3RPcmdhbml6YXRpb25Xb3Jrc3BhY2VzUmVzcG9uc2UiA5ACARJdChBSZXN0b3JlV29ya3NwYWNlEiIudGFpbG9yLnYxLlJlc3RvcmVXb3Jrc3BhY2VSZXF1ZXN0GiMudGFpbG9yLnYxLlJlc3RvcmVXb3Jrc3BhY2VSZXNwb25zZSIAElQKDEdldFdvcmtzcGFjZRIeLnRhaWxvci52MS5HZXRXb3Jrc3BhY2VSZXF1ZXN0Gh8udGFpbG9yLnYxLkdldFdvcmtzcGFjZVJlc3BvbnNlIgOQAgESfgoaTGlzdFdvcmtzcGFjZVBsYXRmb3JtVXNlcnMSLC50YWlsb3IudjEuTGlzdFdvcmtzcGFjZVBsYXRmb3JtVXNlcnNSZXF1ZXN0Gi0udGFpbG9yLnYxLkxpc3RXb3Jrc3BhY2VQbGF0Zm9ybVVzZXJzUmVzcG9uc2UiA5ACARKlAQonTGlzdEF2YWlsYWJsZVdvcmtzcGFjZVBsYXRmb3JtVXNlclJvbGVzEjkudGFpbG9yLnYxLkxpc3RBdmFpbGFibGVXb3Jrc3BhY2VQbGF0Zm9ybVVzZXJSb2xlc1JlcXVlc3QaOi50YWlsb3IudjEuTGlzdEF2YWlsYWJsZVdvcmtzcGFjZVBsYXRmb3JtVXNlclJvbGVzUmVzcG9uc2UiA5ACARJ+ChtJbnZpdGVXb3Jrc3BhY2VQbGF0Zm9ybVVzZXISLS50YWlsb3IudjEuSW52aXRlV29ya3NwYWNlUGxhdGZvcm1Vc2VyUmVxdWVzdBouLnRhaWxvci52MS5JbnZpdGVXb3Jrc3BhY2VQbGF0Zm9ybVVzZXJSZXNwb25zZSIAEn4KG1JlbW92ZVdvcmtzcGFjZVBsYXRmb3JtVXNlchItLnRhaWxvci52MS5SZW1vdmVXb3Jrc3BhY2VQbGF0Zm9ybVVzZXJSZXF1ZXN0Gi4udGFpbG9yLnYxLlJlbW92ZVdvcmtzcGFjZVBsYXRmb3JtVXNlclJlc3BvbnNlIgASfgobVXBkYXRlV29ya3NwYWNlUGxhdGZvcm1Vc2VyEi0udGFpbG9yLnYxLlVwZGF0ZVdvcmtzcGFjZVBsYXRmb3JtVXNlclJlcXVlc3QaLi50YWlsb3IudjEuVXBkYXRlV29ya3NwYWNlUGxhdGZvcm1Vc2VyUmVzcG9uc2UiABJ4ChhHZXRXb3Jrc3BhY2VQbGF0Zm9ybVVzZXISKi50YWlsb3IudjEuR2V0V29ya3NwYWNlUGxhdGZvcm1Vc2VyUmVxdWVzdBorLnRhaWxvci52MS5HZXRXb3Jrc3BhY2VQbGF0Zm9ybVVzZXJSZXNwb25zZSIDkAIBEmAKEEdldFdvcmtzcGFjZVJvbGUSIi50YWlsb3IudjEuR2V0V29ya3NwYWNlUm9sZVJlcXVlc3QaIy50YWlsb3IudjEuR2V0V29ya3NwYWNlUm9sZVJlc3BvbnNlIgOQAgESYwoSVXBkYXRlT3JnYW5pemF0aW9uEiQudGFpbG9yLnYxLlVwZGF0ZU9yZ2FuaXphdGlvblJlcXVlc3QaJS50YWlsb3IudjEuVXBkYXRlT3JnYW5pemF0aW9uUmVzcG9uc2UiABJdCg9HZXRPcmdhbml6YXRpb24SIS50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uUmVxdWVzdBoiLnRhaWxvci52MS5HZXRPcmdhbml6YXRpb25SZXNwb25zZSIDkAIBEmMKEUxpc3RPcmdhbml6YXRpb25zEiMudGFpbG9yLnYxLkxpc3RPcmdhbml6YXRpb25zUmVxdWVzdBokLnRhaWxvci52MS5MaXN0T3JnYW5pemF0aW9uc1Jlc3BvbnNlIgOQAgESbwoVTGlzdFVzZXJPcmdhbml6YXRpb25zEicudGFpbG9yLnYxLkxpc3RVc2VyT3JnYW5pemF0aW9uc1JlcXVlc3QaKC50YWlsb3IudjEuTGlzdFVzZXJPcmdhbml6YXRpb25zUmVzcG9uc2UiA5ACARJyChdHcmFudE9yZ2FuaXphdGlvbkFjY2VzcxIpLnRhaWxvci52MS5HcmFudE9yZ2FuaXphdGlvbkFjY2Vzc1JlcXVlc3QaKi50YWlsb3IudjEuR3JhbnRPcmdhbml6YXRpb25BY2Nlc3NSZXNwb25zZSIAEnUKGFVwZGF0ZU9yZ2FuaXphdGlvbkFjY2VzcxIqLnRhaWxvci52MS5VcGRhdGVPcmdhbml6YXRpb25BY2Nlc3NSZXF1ZXN0GisudGFpbG9yLnYxLlVwZGF0ZU9yZ2FuaXphdGlvbkFjY2Vzc1Jlc3BvbnNlIgASdQoYUmV2b2tlT3JnYW5pemF0aW9uQWNjZXNzEioudGFpbG9yLnYxLlJldm9rZU9yZ2FuaXphdGlvbkFjY2Vzc1JlcXVlc3QaKy50YWlsb3IudjEuUmV2b2tlT3JnYW5pemF0aW9uQWNjZXNzUmVzcG9uc2UiABJ4ChhMaXN0T3JnYW5pemF0aW9uQWNjZXNzZXMSKi50YWlsb3IudjEuTGlzdE9yZ2FuaXphdGlvbkFjY2Vzc2VzUmVxdWVzdBorLnRhaWxvci52MS5MaXN0T3JnYW5pemF0aW9uQWNjZXNzZXNSZXNwb25zZSIDkAIBEm8KFUdldE9yZ2FuaXphdGlvbkFjY2VzcxInLnRhaWxvci52MS5HZXRPcmdhbml6YXRpb25BY2Nlc3NSZXF1ZXN0GigudGFpbG9yLnYxLkdldE9yZ2FuaXphdGlvbkFjY2Vzc1Jlc3BvbnNlIgOQAgESdQoYQ3JlYXRlT3JnYW5pemF0aW9uRm9sZGVyEioudGFpbG9yLnYxLkNyZWF0ZU9yZ2FuaXphdGlvbkZvbGRlclJlcXVlc3QaKy50YWlsb3IudjEuQ3JlYXRlT3JnYW5pemF0aW9uRm9sZGVyUmVzcG9uc2UiABJ1ChhVcGRhdGVPcmdhbml6YXRpb25Gb2xkZXISKi50YWlsb3IudjEuVXBkYXRlT3JnYW5pemF0aW9uRm9sZGVyUmVxdWVzdBorLnRhaWxvci52MS5VcGRhdGVPcmdhbml6YXRpb25Gb2xkZXJSZXNwb25zZSIAEnUKGERlbGV0ZU9yZ2FuaXphdGlvbkZvbGRlchIqLnRhaWxvci52MS5EZWxldGVPcmdhbml6YXRpb25Gb2xkZXJSZXF1ZXN0GisudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvbkZvbGRlclJlc3BvbnNlIgASbwoVR2V0T3JnYW5pemF0aW9uRm9sZGVyEicudGFpbG9yLnYxLkdldE9yZ2FuaXphdGlvbkZvbGRlclJlcXVlc3QaKC50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uRm9sZGVyUmVzcG9uc2UiA5ACARJ1ChdMaXN0T3JnYW5pemF0aW9uRm9sZGVycxIpLnRhaWxvci52MS5MaXN0T3JnYW5pemF0aW9uRm9sZGVyc1JlcXVlc3QaKi50YWlsb3IudjEuTGlzdE9yZ2FuaXphdGlvbkZvbGRlcnNSZXNwb25zZSIDkAIBEoQBCh1HcmFudE9yZ2FuaXphdGlvbkZvbGRlckFjY2VzcxIvLnRhaWxvci52MS5HcmFudE9yZ2FuaXphdGlvbkZvbGRlckFjY2Vzc1JlcXVlc3QaMC50YWlsb3IudjEuR3JhbnRPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3NSZXNwb25zZSIAEocBCh5VcGRhdGVPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3MSMC50YWlsb3IudjEuVXBkYXRlT3JnYW5pemF0aW9uRm9sZGVyQWNjZXNzUmVxdWVzdBoxLnRhaWxvci52MS5VcGRhdGVPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3NSZXNwb25zZSIAEocBCh5SZXZva2VPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3MSMC50YWlsb3IudjEuUmV2b2tlT3JnYW5pemF0aW9uRm9sZGVyQWNjZXNzUmVxdWVzdBoxLnRhaWxvci52MS5SZXZva2VPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3NSZXNwb25zZSIAEooBCh5MaXN0T3JnYW5pemF0aW9uRm9sZGVyQWNjZXNzZXMSMC50YWlsb3IudjEuTGlzdE9yZ2FuaXphdGlvbkZvbGRlckFjY2Vzc2VzUmVxdWVzdBoxLnRhaWxvci52MS5MaXN0T3JnYW5pemF0aW9uRm9sZGVyQWNjZXNzZXNSZXNwb25zZSIDkAIBEoEBChtHZXRPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3MSLS50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uRm9sZGVyQWNjZXNzUmVxdWVzdBouLnRhaWxvci52MS5HZXRPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3NSZXNwb25zZSIDkAIBEooBCh9VcHNlcnRPcmdhbml6YXRpb25JUFJlc3RyaWN0aW9uEjEudGFpbG9yLnYxLlVwc2VydE9yZ2FuaXphdGlvbklQUmVzdHJpY3Rpb25SZXF1ZXN0GjIudGFpbG9yLnYxLlVwc2VydE9yZ2FuaXphdGlvbklQUmVzdHJpY3Rpb25SZXNwb25zZSIAEoQBChxHZXRPcmdhbml6YXRpb25JUFJlc3RyaWN0aW9uEi4udGFpbG9yLnYxLkdldE9yZ2FuaXphdGlvbklQUmVzdHJpY3Rpb25SZXF1ZXN0Gi8udGFpbG9yLnYxLkdldE9yZ2FuaXphdGlvbklQUmVzdHJpY3Rpb25SZXNwb25zZSIDkAIBEooBCh9EZWxldGVPcmdhbml6YXRpb25JUFJlc3RyaWN0aW9uEjEudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvbklQUmVzdHJpY3Rpb25SZXF1ZXN0GjIudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvbklQUmVzdHJpY3Rpb25SZXNwb25zZSIAEpwBCiVVcHNlcnRPcmdhbml6YXRpb25Gb2xkZXJJUFJlc3RyaWN0aW9uEjcudGFpbG9yLnYxLlVwc2VydE9yZ2FuaXphdGlvbkZvbGRlcklQUmVzdHJpY3Rpb25SZXF1ZXN0GjgudGFpbG9yLnYxLlVwc2VydE9yZ2FuaXphdGlvbkZvbGRlcklQUmVzdHJpY3Rpb25SZXNwb25zZSIAEpYBCiJHZXRPcmdhbml6YXRpb25Gb2xkZXJJUFJlc3RyaWN0aW9uEjQudGFpbG9yLnYxLkdldE9yZ2FuaXphdGlvbkZvbGRlcklQUmVzdHJpY3Rpb25SZXF1ZXN0GjUudGFpbG9yLnYxLkdldE9yZ2FuaXphdGlvbkZvbGRlcklQUmVzdHJpY3Rpb25SZXNwb25zZSIDkAIBEpwBCiVEZWxldGVPcmdhbml6YXRpb25Gb2xkZXJJUFJlc3RyaWN0aW9uEjcudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvbkZvbGRlcklQUmVzdHJpY3Rpb25SZXF1ZXN0GjgudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvbkZvbGRlcklQUmVzdHJpY3Rpb25SZXNwb25zZSIAEm8KFkNyZWF0ZU9yZ2FuaXphdGlvblRlYW0SKC50YWlsb3IudjEuQ3JlYXRlT3JnYW5pemF0aW9uVGVhbVJlcXVlc3QaKS50YWlsb3IudjEuQ3JlYXRlT3JnYW5pemF0aW9uVGVhbVJlc3BvbnNlIgASbwoWVXBkYXRlT3JnYW5pemF0aW9uVGVhbRIoLnRhaWxvci52MS5VcGRhdGVPcmdhbml6YXRpb25UZWFtUmVxdWVzdBopLnRhaWxvci52MS5VcGRhdGVPcmdhbml6YXRpb25UZWFtUmVzcG9uc2UiABJvChZEZWxldGVPcmdhbml6YXRpb25UZWFtEigudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvblRlYW1SZXF1ZXN0GikudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvblRlYW1SZXNwb25zZSIAEmkKE0dldE9yZ2FuaXphdGlvblRlYW0SJS50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uVGVhbVJlcXVlc3QaJi50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uVGVhbVJlc3BvbnNlIgOQAgESbwoVTGlzdE9yZ2FuaXphdGlvblRlYW1zEicudGFpbG9yLnYxLkxpc3RPcmdhbml6YXRpb25UZWFtc1JlcXVlc3QaKC50YWlsb3IudjEuTGlzdE9yZ2FuaXphdGlvblRlYW1zUmVzcG9uc2UiA5ACARJ4ChlBZGRPcmdhbml6YXRpb25UZWFtTWVtYmVyEisudGFpbG9yLnYxLkFkZE9yZ2FuaXphdGlvblRlYW1NZW1iZXJSZXF1ZXN0GiwudGFpbG9yLnYxLkFkZE9yZ2FuaXphdGlvblRlYW1NZW1iZXJSZXNwb25zZSIAEoEBChxVcGRhdGVPcmdhbml6YXRpb25UZWFtTWVtYmVyEi4udGFpbG9yLnYxLlVwZGF0ZU9yZ2FuaXphdGlvblRlYW1NZW1iZXJSZXF1ZXN0Gi8udGFpbG9yLnYxLlVwZGF0ZU9yZ2FuaXphdGlvblRlYW1NZW1iZXJSZXNwb25zZSIAEoEBChxSZW1vdmVPcmdhbml6YXRpb25UZWFtTWVtYmVyEi4udGFpbG9yLnYxLlJlbW92ZU9yZ2FuaXphdGlvblRlYW1NZW1iZXJSZXF1ZXN0Gi8udGFpbG9yLnYxLlJlbW92ZU9yZ2FuaXphdGlvblRlYW1NZW1iZXJSZXNwb25zZSIAEoEBChtMaXN0T3JnYW5pemF0aW9uVGVhbU1lbWJlcnMSLS50YWlsb3IudjEuTGlzdE9yZ2FuaXphdGlvblRlYW1NZW1iZXJzUmVxdWVzdBouLnRhaWxvci52MS5MaXN0T3JnYW5pemF0aW9uVGVhbU1lbWJlcnNSZXNwb25zZSIDkAIBEnsKGUdldE9yZ2FuaXphdGlvblRlYW1NZW1iZXISKy50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uVGVhbU1lbWJlclJlcXVlc3QaLC50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uVGVhbU1lbWJlclJlc3BvbnNlIgOQAgEScgoWR2V0UGxhdGZvcm1BY2NvdW50UGxhbhIoLnRhaWxvci52MS5HZXRQbGF0Zm9ybUFjY291bnRQbGFuUmVxdWVzdBopLnRhaWxvci52MS5HZXRQbGF0Zm9ybUFjY291bnRQbGFuUmVzcG9uc2UiA5ACARJgChFDcmVhdGVBcHBsaWNhdGlvbhIjLnRhaWxvci52MS5DcmVhdGVBcHBsaWNhdGlvblJlcXVlc3QaJC50YWlsb3IudjEuQ3JlYXRlQXBwbGljYXRpb25SZXNwb25zZSIAEmAKEVVwZGF0ZUFwcGxpY2F0aW9uEiMudGFpbG9yLnYxLlVwZGF0ZUFwcGxpY2F0aW9uUmVxdWVzdBokLnRhaWxvci52MS5VcGRhdGVBcHBsaWNhdGlvblJlc3BvbnNlIgASYAoRRGVsZXRlQXBwbGljYXRpb24SIy50YWlsb3IudjEuRGVsZXRlQXBwbGljYXRpb25SZXF1ZXN0GiQudGFpbG9yLnYxLkRlbGV0ZUFwcGxpY2F0aW9uUmVzcG9uc2UiABJgChBMaXN0QXBwbGljYXRpb25zEiIudGFpbG9yLnYxLkxpc3RBcHBsaWNhdGlvbnNSZXF1ZXN0GiMudGFpbG9yLnYxLkxpc3RBcHBsaWNhdGlvbnNSZXNwb25zZSIDkAIBEloKDkdldEFwcGxpY2F0aW9uEiAudGFpbG9yLnYxLkdldEFwcGxpY2F0aW9uUmVxdWVzdBohLnRhaWxvci52MS5HZXRBcHBsaWNhdGlvblJlc3BvbnNlIgOQAgESfgoaR2V0QXBwbGljYXRpb25TY2hlbWFIZWFsdGgSLC50YWlsb3IudjEuR2V0QXBwbGljYXRpb25TY2hlbWFIZWFsdGhSZXF1ZXN0Gi0udGFpbG9yLnYxLkdldEFwcGxpY2F0aW9uU2NoZW1hSGVhbHRoUmVzcG9uc2UiA5ACARJaCg9DcmVhdGVBSUdhdGV3YXkSIS50YWlsb3IudjEuQ3JlYXRlQUlHYXRld2F5UmVxdWVzdBoiLnRhaWxvci52MS5DcmVhdGVBSUdhdGV3YXlSZXNwb25zZSIAEloKD1VwZGF0ZUFJR2F0ZXdheRIhLnRhaWxvci52MS5VcGRhdGVBSUdhdGV3YXlSZXF1ZXN0GiIudGFpbG9yLnYxLlVwZGF0ZUFJR2F0ZXdheVJlc3BvbnNlIgASWgoPRGVsZXRlQUlHYXRld2F5EiEudGFpbG9yLnYxLkRlbGV0ZUFJR2F0ZXdheVJlcXVlc3QaIi50YWlsb3IudjEuRGVsZXRlQUlHYXRld2F5UmVzcG9uc2UiABJUCgxHZXRBSUdhdGV3YXkSHi50YWlsb3IudjEuR2V0QUlHYXRld2F5UmVxdWVzdBofLnRhaWxvci52MS5HZXRBSUdhdGV3YXlSZXNwb25zZSIDkAIBEloKDkxpc3RBSUdhdGV3YXlzEiAudGFpbG9yLnYxLkxpc3RBSUdhdGV3YXlzUmVxdWVzdBohLnRhaWxvci52MS5MaXN0QUlHYXRld2F5c1Jlc3BvbnNlIgOQAgESYwoSQ29tcG9zZVRhaWxvckRCU0RMEiQudGFpbG9yLnYxLkNvbXBvc2VUYWlsb3JEQlNETFJlcXVlc3QaJS50YWlsb3IudjEuQ29tcG9zZVRhaWxvckRCU0RMUmVzcG9uc2UiABJsChVDcmVhdGVUYWlsb3JEQlNlcnZpY2USJy50YWlsb3IudjEuQ3JlYXRlVGFpbG9yREJTZXJ2aWNlUmVxdWVzdBooLnRhaWxvci52MS5DcmVhdGVUYWlsb3JEQlNlcnZpY2VSZXNwb25zZSIAEmwKFVVwZGF0ZVRhaWxvckRCU2VydmljZRInLnRhaWxvci52MS5VcGRhdGVUYWlsb3JEQlNlcnZpY2VSZXF1ZXN0GigudGFpbG9yLnYxLlVwZGF0ZVRhaWxvckRCU2VydmljZVJlc3BvbnNlIgASbAoVRGVsZXRlVGFpbG9yREJTZXJ2aWNlEicudGFpbG9yLnYxLkRlbGV0ZVRhaWxvckRCU2VydmljZVJlcXVlc3QaKC50YWlsb3IudjEuRGVsZXRlVGFpbG9yREJTZXJ2aWNlUmVzcG9uc2UiABJmChJHZXRUYWlsb3JEQlNlcnZpY2USJC50YWlsb3IudjEuR2V0VGFpbG9yREJTZXJ2aWNlUmVxdWVzdBolLnRhaWxvci52MS5HZXRUYWlsb3JEQlNlcnZpY2VSZXNwb25zZSIDkAIBEmwKFExpc3RUYWlsb3JEQlNlcnZpY2VzEiYudGFpbG9yLnYxLkxpc3RUYWlsb3JEQlNlcnZpY2VzUmVxdWVzdBonLnRhaWxvci52MS5MaXN0VGFpbG9yREJTZXJ2aWNlc1Jlc3BvbnNlIgOQAgESYwoSQ3JlYXRlVGFpbG9yREJUeXBlEiQudGFpbG9yLnYxLkNyZWF0ZVRhaWxvckRCVHlwZVJlcXVlc3QaJS50YWlsb3IudjEuQ3JlYXRlVGFpbG9yREJUeXBlUmVzcG9uc2UiABJjChJVcGRhdGVUYWlsb3JEQlR5cGUSJC50YWlsb3IudjEuVXBkYXRlVGFpbG9yREJUeXBlUmVxdWVzdBolLnRhaWxvci52MS5VcGRhdGVUYWlsb3JEQlR5cGVSZXNwb25zZSIAEmMKEkRlbGV0ZVRhaWxvckRCVHlwZRIkLnRhaWxvci52MS5EZWxldGVUYWlsb3JEQlR5cGVSZXF1ZXN0GiUudGFpbG9yLnYxLkRlbGV0ZVRhaWxvckRCVHlwZVJlc3BvbnNlIgASbAoVVHJ1bmNhdGVUYWlsb3JEQlR5cGVzEicudGFpbG9yLnYxLlRydW5jYXRlVGFpbG9yREJUeXBlc1JlcXVlc3QaKC50YWlsb3IudjEuVHJ1bmNhdGVUYWlsb3JEQlR5cGVzUmVzcG9uc2UiABJpChRUcnVuY2F0ZVRhaWxvckRCVHlwZRImLnRhaWxvci52MS5UcnVuY2F0ZVRhaWxvckRCVHlwZVJlcXVlc3QaJy50YWlsb3IudjEuVHJ1bmNhdGVUYWlsb3JEQlR5cGVSZXNwb25zZSIAEmMKEUxpc3RUYWlsb3JEQlR5cGVzEiMudGFpbG9yLnYxLkxpc3RUYWlsb3JEQlR5cGVzUmVxdWVzdBokLnRhaWxvci52MS5MaXN0VGFpbG9yREJUeXBlc1Jlc3BvbnNlIgOQAgESXQoPR2V0VGFpbG9yREJUeXBlEiEudGFpbG9yLnYxLkdldFRhaWxvckRCVHlwZVJlcXVlc3QaIi50YWlsb3IudjEuR2V0VGFpbG9yREJUeXBlUmVzcG9uc2UiA5ACARJ+ChtDcmVhdGVUYWlsb3JEQkdRTFBlcm1pc3Npb24SLS50YWlsb3IudjEuQ3JlYXRlVGFpbG9yREJHUUxQZXJtaXNzaW9uUmVxdWVzdBouLnRhaWxvci52MS5DcmVhdGVUYWlsb3JEQkdRTFBlcm1pc3Npb25SZXNwb25zZSIAEngKGEdldFRhaWxvckRCR1FMUGVybWlzc2lvbhIqLnRhaWxvci52MS5HZXRUYWlsb3JEQkdRTFBlcm1pc3Npb25SZXF1ZXN0GisudGFpbG9yLnYxLkdldFRhaWxvckRCR1FMUGVybWlzc2lvblJlc3BvbnNlIgOQAgESfgoaTGlzdFRhaWxvckRCR1FMUGVybWlzc2lvbnMSLC50YWlsb3IudjEuTGlzdFRhaWxvckRCR1FMUGVybWlzc2lvbnNSZXF1ZXN0Gi0udGFpbG9yLnYxLkxpc3RUYWlsb3JEQkdRTFBlcm1pc3Npb25zUmVzcG9uc2UiA5ACARJ+ChtVcGRhdGVUYWlsb3JEQkdRTFBlcm1pc3Npb24SLS50YWlsb3IudjEuVXBkYXRlVGFpbG9yREJHUUxQZXJtaXNzaW9uUmVxdWVzdBouLnRhaWxvci52MS5VcGRhdGVUYWlsb3JEQkdRTFBlcm1pc3Npb25SZXNwb25zZSIAEn4KG0RlbGV0ZVRhaWxvckRCR1FMUGVybWlzc2lvbhItLnRhaWxvci52MS5EZWxldGVUYWlsb3JEQkdRTFBlcm1pc3Npb25SZXF1ZXN0Gi4udGFpbG9yLnYxLkRlbGV0ZVRhaWxvckRCR1FMUGVybWlzc2lvblJlc3BvbnNlIgASbAoVQ3JlYXRlUGlwZWxpbmVTZXJ2aWNlEicudGFpbG9yLnYxLkNyZWF0ZVBpcGVsaW5lU2VydmljZVJlcXVlc3QaKC50YWlsb3IudjEuQ3JlYXRlUGlwZWxpbmVTZXJ2aWNlUmVzcG9uc2UiABJsChVVcGRhdGVQaXBlbGluZVNlcnZpY2USJy50YWlsb3IudjEuVXBkYXRlUGlwZWxpbmVTZXJ2aWNlUmVxdWVzdBooLnRhaWxvci52MS5VcGRhdGVQaXBlbGluZVNlcnZpY2VSZXNwb25zZSIAEmwKFURlbGV0ZVBpcGVsaW5lU2VydmljZRInLnRhaWxvci52MS5EZWxldGVQaXBlbGluZVNlcnZpY2VSZXF1ZXN0GigudGFpbG9yLnYxLkRlbGV0ZVBpcGVsaW5lU2VydmljZVJlc3BvbnNlIgASZgoSR2V0UGlwZWxpbmVTZXJ2aWNlEiQudGFpbG9yLnYxLkdldFBpcGVsaW5lU2VydmljZVJlcXVlc3QaJS50YWlsb3IudjEuR2V0UGlwZWxpbmVTZXJ2aWNlUmVzcG9uc2UiA5ACARJsChRMaXN0UGlwZWxpbmVTZXJ2aWNlcxImLnRhaWxvci52MS5MaXN0UGlwZWxpbmVTZXJ2aWNlc1JlcXVlc3QaJy50YWlsb3IudjEuTGlzdFBpcGVsaW5lU2VydmljZXNSZXNwb25zZSIDkAIBEmkKE0dldFBpcGVsaW5lUmVzb2x2ZXISJS50YWlsb3IudjEuR2V0UGlwZWxpbmVSZXNvbHZlclJlcXVlc3QaJi50YWlsb3IudjEuR2V0UGlwZWxpbmVSZXNvbHZlclJlc3BvbnNlIgOQAgESbwoVTGlzdFBpcGVsaW5lUmVzb2x2ZXJzEicudGFpbG9yLnYxLkxpc3RQaXBlbGluZVJlc29sdmVyc1JlcXVlc3QaKC50YWlsb3IudjEuTGlzdFBpcGVsaW5lUmVzb2x2ZXJzUmVzcG9uc2UiA5ACARJvChZDcmVhdGVQaXBlbGluZVJlc29sdmVyEigudGFpbG9yLnYxLkNyZWF0ZVBpcGVsaW5lUmVzb2x2ZXJSZXF1ZXN0GikudGFpbG9yLnYxLkNyZWF0ZVBpcGVsaW5lUmVzb2x2ZXJSZXNwb25zZSIAEm8KFlVwZGF0ZVBpcGVsaW5lUmVzb2x2ZXISKC50YWlsb3IudjEuVXBkYXRlUGlwZWxpbmVSZXNvbHZlclJlcXVlc3QaKS50YWlsb3IudjEuVXBkYXRlUGlwZWxpbmVSZXNvbHZlclJlc3BvbnNlIgASbwoWRGVsZXRlUGlwZWxpbmVSZXNvbHZlchIoLnRhaWxvci52MS5EZWxldGVQaXBlbGluZVJlc29sdmVyUmVxdWVzdBopLnRhaWxvci52MS5EZWxldGVQaXBlbGluZVJlc29sdmVyUmVzcG9uc2UiABJjChJDb21wb3NlUGlwZWxpbmVTREwSJC50YWlsb3IudjEuQ29tcG9zZVBpcGVsaW5lU0RMUmVxdWVzdBolLnRhaWxvci52MS5Db21wb3NlUGlwZWxpbmVTRExSZXNwb25zZSIAEpwBCiRMaXN0UGlwZWxpbmVSZXNvbHZlckV4ZWN1dGlvblJlc3VsdHMSNi50YWlsb3IudjEuTGlzdFBpcGVsaW5lUmVzb2x2ZXJFeGVjdXRpb25SZXN1bHRzUmVxdWVzdBo3LnRhaWxvci52MS5MaXN0UGlwZWxpbmVSZXNvbHZlckV4ZWN1dGlvblJlc3VsdHNSZXNwb25zZSIDkAIBEpYBCiJHZXRQaXBlbGluZVJlc29sdmVyRXhlY3V0aW9uUmVzdWx0EjQudGFpbG9yLnYxLkdldFBpcGVsaW5lUmVzb2x2ZXJFeGVjdXRpb25SZXN1bHRSZXF1ZXN0GjUudGFpbG9yLnYxLkdldFBpcGVsaW5lUmVzb2x2ZXJFeGVjdXRpb25SZXN1bHRSZXNwb25zZSIDkAIBEnIKF1Jlc3RhcnRQaXBlbGluZVJlc29sdmVyEikudGFpbG9yLnYxLlJlc3RhcnRQaXBlbGluZVJlc29sdmVyUmVxdWVzdBoqLnRhaWxvci52MS5SZXN0YXJ0UGlwZWxpbmVSZXNvbHZlclJlc3BvbnNlIgASbwoWQ3JlYXRlU3RhdGVmbG93U2VydmljZRIoLnRhaWxvci52MS5DcmVhdGVTdGF0ZWZsb3dTZXJ2aWNlUmVxdWVzdBopLnRhaWxvci52MS5DcmVhdGVTdGF0ZWZsb3dTZXJ2aWNlUmVzcG9uc2UiABJvChZVcGRhdGVTdGF0ZWZsb3dTZXJ2aWNlEigudGFpbG9yLnYxLlVwZGF0ZVN0YXRlZmxvd1NlcnZpY2VSZXF1ZXN0GikudGFpbG9yLnYxLlVwZGF0ZVN0YXRlZmxvd1NlcnZpY2VSZXNwb25zZSIAEm8KFkRlbGV0ZVN0YXRlZmxvd1NlcnZpY2USKC50YWlsb3IudjEuRGVsZXRlU3RhdGVmbG93U2VydmljZVJlcXVlc3QaKS50YWlsb3IudjEuRGVsZXRlU3RhdGVmbG93U2VydmljZVJlc3BvbnNlIgASaQoTR2V0U3RhdGVmbG93U2VydmljZRIlLnRhaWxvci52MS5HZXRTdGF0ZWZsb3dTZXJ2aWNlUmVxdWVzdBomLnRhaWxvci52MS5HZXRTdGF0ZWZsb3dTZXJ2aWNlUmVzcG9uc2UiA5ACARJvChVMaXN0U3RhdGVmbG93U2VydmljZXMSJy50YWlsb3IudjEuTGlzdFN0YXRlZmxvd1NlcnZpY2VzUmVxdWVzdBooLnRhaWxvci52MS5MaXN0U3RhdGVmbG93U2VydmljZXNSZXNwb25zZSIDkAIBEm8KFkNyZWF0ZUV4ZWN1dG9yRXhlY3V0b3ISKC50YWlsb3IudjEuQ3JlYXRlRXhlY3V0b3JFeGVjdXRvclJlcXVlc3QaKS50YWlsb3IudjEuQ3JlYXRlRXhlY3V0b3JFeGVjdXRvclJlc3BvbnNlIgASbwoWVXBkYXRlRXhlY3V0b3JFeGVjdXRvchIoLnRhaWxvci52MS5VcGRhdGVFeGVjdXRvckV4ZWN1dG9yUmVxdWVzdBopLnRhaWxvci52MS5VcGRhdGVFeGVjdXRvckV4ZWN1dG9yUmVzcG9uc2UiABJpChNHZXRFeGVjdXRvckV4ZWN1dG9yEiUudGFpbG9yLnYxLkdldEV4ZWN1dG9yRXhlY3V0b3JSZXF1ZXN0GiYudGFpbG9yLnYxLkdldEV4ZWN1dG9yRXhlY3V0b3JSZXNwb25zZSIDkAIBEm8KFkRlbGV0ZUV4ZWN1dG9yRXhlY3V0b3ISKC50YWlsb3IudjEuRGVsZXRlRXhlY3V0b3JFeGVjdXRvclJlcXVlc3QaKS50YWlsb3IudjEuRGVsZXRlRXhlY3V0b3JFeGVjdXRvclJlc3BvbnNlIgASbwoVTGlzdEV4ZWN1dG9yRXhlY3V0b3JzEicudGFpbG9yLnYxLkxpc3RFeGVjdXRvckV4ZWN1dG9yc1JlcXVlc3QaKC50YWlsb3IudjEuTGlzdEV4ZWN1dG9yRXhlY3V0b3JzUmVzcG9uc2UiA5ACARJaCg5HZXRFeGVjdXRvckpvYhIgLnRhaWxvci52MS5HZXRFeGVjdXRvckpvYlJlcXVlc3QaIS50YWlsb3IudjEuR2V0RXhlY3V0b3JKb2JSZXNwb25zZSIDkAIBEmAKEExpc3RFeGVjdXRvckpvYnMSIi50YWlsb3IudjEuTGlzdEV4ZWN1dG9ySm9ic1JlcXVlc3QaIy50YWlsb3IudjEuTGlzdEV4ZWN1dG9ySm9ic1Jlc3BvbnNlIgOQAgESdQoXTGlzdEV4ZWN1dG9ySm9iQXR0ZW1wdHMSKS50YWlsb3IudjEuTGlzdEV4ZWN1dG9ySm9iQXR0ZW1wdHNSZXF1ZXN0GioudGFpbG9yLnYxLkxpc3RFeGVjdXRvckpvYkF0dGVtcHRzUmVzcG9uc2UiA5ACARKEAQocTGlzdEV4ZWN1dG9ySW5jb21pbmdXZWJob29rcxIuLnRhaWxvci52MS5MaXN0RXhlY3V0b3JJbmNvbWluZ1dlYmhvb2tzUmVxdWVzdBovLnRhaWxvci52MS5MaXN0RXhlY3V0b3JJbmNvbWluZ1dlYmhvb2tzUmVzcG9uc2UiA5ACARJ+ChpHZXRFeGVjdXRvckluY29taW5nV2ViaG9vaxIsLnRhaWxvci52MS5HZXRFeGVjdXRvckluY29taW5nV2ViaG9va1JlcXVlc3QaLS50YWlsb3IudjEuR2V0RXhlY3V0b3JJbmNvbWluZ1dlYmhvb2tSZXNwb25zZSIDkAIBEloKD1RyaWdnZXJFeGVjdXRvchIhLnRhaWxvci52MS5UcmlnZ2VyRXhlY3V0b3JSZXF1ZXN0GiIudGFpbG9yLnYxLlRyaWdnZXJFeGVjdXRvclJlc3BvbnNlIgASdQoYQ3JlYXRlU2VjcmV0TWFuYWdlclZhdWx0EioudGFpbG9yLnYxLkNyZWF0ZVNlY3JldE1hbmFnZXJWYXVsdFJlcXVlc3QaKy50YWlsb3IudjEuQ3JlYXRlU2VjcmV0TWFuYWdlclZhdWx0UmVzcG9uc2UiABJvChVHZXRTZWNyZXRNYW5hZ2VyVmF1bHQSJy50YWlsb3IudjEuR2V0U2VjcmV0TWFuYWdlclZhdWx0UmVxdWVzdBooLnRhaWxvci52MS5HZXRTZWNyZXRNYW5hZ2VyVmF1bHRSZXNwb25zZSIDkAIBEnUKGERlbGV0ZVNlY3JldE1hbmFnZXJWYXVsdBIqLnRhaWxvci52MS5EZWxldGVTZWNyZXRNYW5hZ2VyVmF1bHRSZXF1ZXN0GisudGFpbG9yLnYxLkRlbGV0ZVNlY3JldE1hbmFnZXJWYXVsdFJlc3BvbnNlIgASdQoXTGlzdFNlY3JldE1hbmFnZXJWYXVsdHMSKS50YWlsb3IudjEuTGlzdFNlY3JldE1hbmFnZXJWYXVsdHNSZXF1ZXN0GioudGFpbG9yLnYxLkxpc3RTZWNyZXRNYW5hZ2VyVmF1bHRzUmVzcG9uc2UiA5ACARJ4ChlDcmVhdGVTZWNyZXRNYW5hZ2VyU2VjcmV0EisudGFpbG9yLnYxLkNyZWF0ZVNlY3JldE1hbmFnZXJTZWNyZXRSZXF1ZXN0GiwudGFpbG9yLnYxLkNyZWF0ZVNlY3JldE1hbmFnZXJTZWNyZXRSZXNwb25zZSIAEngKGVVwZGF0ZVNlY3JldE1hbmFnZXJTZWNyZXQSKy50YWlsb3IudjEuVXBkYXRlU2VjcmV0TWFuYWdlclNlY3JldFJlcXVlc3QaLC50YWlsb3IudjEuVXBkYXRlU2VjcmV0TWFuYWdlclNlY3JldFJlc3BvbnNlIgAScgoWR2V0U2VjcmV0TWFuYWdlclNlY3JldBIoLnRhaWxvci52MS5HZXRTZWNyZXRNYW5hZ2VyU2VjcmV0UmVxdWVzdBopLnRhaWxvci52MS5HZXRTZWNyZXRNYW5hZ2VyU2VjcmV0UmVzcG9uc2UiA5ACARJ4ChlEZWxldGVTZWNyZXRNYW5hZ2VyU2VjcmV0EisudGFpbG9yLnYxLkRlbGV0ZVNlY3JldE1hbmFnZXJTZWNyZXRSZXF1ZXN0GiwudGFpbG9yLnYxLkRlbGV0ZVNlY3JldE1hbmFnZXJTZWNyZXRSZXNwb25zZSIAEngKGExpc3RTZWNyZXRNYW5hZ2VyU2VjcmV0cxIqLnRhaWxvci52MS5MaXN0U2VjcmV0TWFuYWdlclNlY3JldHNSZXF1ZXN0GisudGFpbG9yLnYxLkxpc3RTZWNyZXRNYW5hZ2VyU2VjcmV0c1Jlc3BvbnNlIgOQAgESYAoRQ3JlYXRlQXV0aFNlcnZpY2USIy50YWlsb3IudjEuQ3JlYXRlQXV0aFNlcnZpY2VSZXF1ZXN0GiQudGFpbG9yLnYxLkNyZWF0ZUF1dGhTZXJ2aWNlUmVzcG9uc2UiABJgChFVcGRhdGVBdXRoU2VydmljZRIjLnRhaWxvci52MS5VcGRhdGVBdXRoU2VydmljZVJlcXVlc3QaJC50YWlsb3IudjEuVXBkYXRlQXV0aFNlcnZpY2VSZXNwb25zZSIAEmAKEURlbGV0ZUF1dGhTZXJ2aWNlEiMudGFpbG9yLnYxLkRlbGV0ZUF1dGhTZXJ2aWNlUmVxdWVzdBokLnRhaWxvci52MS5EZWxldGVBdXRoU2VydmljZVJlc3BvbnNlIgASWgoOR2V0QXV0aFNlcnZpY2USIC50YWlsb3IudjEuR2V0QXV0aFNlcnZpY2VSZXF1ZXN0GiEudGFpbG9yLnYxLkdldEF1dGhTZXJ2aWNlUmVzcG9uc2UiA5ACARJgChBMaXN0QXV0aFNlcnZpY2VzEiIudGFpbG9yLnYxLkxpc3RBdXRoU2VydmljZXNSZXF1ZXN0GiMudGFpbG9yLnYxLkxpc3RBdXRoU2VydmljZXNSZXNwb25zZSIDkAIBEmYKE0NyZWF0ZUF1dGhJRFBDb25maWcSJS50YWlsb3IudjEuQ3JlYXRlQXV0aElEUENvbmZpZ1JlcXVlc3QaJi50YWlsb3IudjEuQ3JlYXRlQXV0aElEUENvbmZpZ1Jlc3BvbnNlIgASZgoTVXBkYXRlQXV0aElEUENvbmZpZxIlLnRhaWxvci52MS5VcGRhdGVBdXRoSURQQ29uZmlnUmVxdWVzdBomLnRhaWxvci52MS5VcGRhdGVBdXRoSURQQ29uZmlnUmVzcG9uc2UiABJmChNEZWxldGVBdXRoSURQQ29uZmlnEiUudGFpbG9yLnYxLkRlbGV0ZUF1dGhJRFBDb25maWdSZXF1ZXN0GiYudGFpbG9yLnYxLkRlbGV0ZUF1dGhJRFBDb25maWdSZXNwb25zZSIAEmAKEEdldEF1dGhJRFBDb25maWcSIi50YWlsb3IudjEuR2V0QXV0aElEUENvbmZpZ1JlcXVlc3QaIy50YWlsb3IudjEuR2V0QXV0aElEUENvbmZpZ1Jlc3BvbnNlIgOQAgESZgoSTGlzdEF1dGhJRFBDb25maWdzEiQudGFpbG9yLnYxLkxpc3RBdXRoSURQQ29uZmlnc1JlcXVlc3QaJS50YWlsb3IudjEuTGlzdEF1dGhJRFBDb25maWdzUmVzcG9uc2UiA5ACARJyChdDcmVhdGVVc2VyUHJvZmlsZUNvbmZpZxIpLnRhaWxvci52MS5DcmVhdGVVc2VyUHJvZmlsZUNvbmZpZ1JlcXVlc3QaKi50YWlsb3IudjEuQ3JlYXRlVXNlclByb2ZpbGVDb25maWdSZXNwb25zZSIAEnIKF1VwZGF0ZVVzZXJQcm9maWxlQ29uZmlnEikudGFpbG9yLnYxLlVwZGF0ZVVzZXJQcm9maWxlQ29uZmlnUmVxdWVzdBoqLnRhaWxvci52MS5VcGRhdGVVc2VyUHJvZmlsZUNvbmZpZ1Jlc3BvbnNlIgAScgoXRGVsZXRlVXNlclByb2ZpbGVDb25maWcSKS50YWlsb3IudjEuRGVsZXRlVXNlclByb2ZpbGVDb25maWdSZXF1ZXN0GioudGFpbG9yLnYxLkRlbGV0ZVVzZXJQcm9maWxlQ29uZmlnUmVzcG9uc2UiABJsChRHZXRVc2VyUHJvZmlsZUNvbmZpZxImLnRhaWxvci52MS5HZXRVc2VyUHJvZmlsZUNvbmZpZ1JlcXVlc3QaJy50YWlsb3IudjEuR2V0VXNlclByb2ZpbGVDb25maWdSZXNwb25zZSIDkAIBEmMKEkNyZWF0ZVRlbmFudENvbmZpZxIkLnRhaWxvci52MS5DcmVhdGVUZW5hbnRDb25maWdSZXF1ZXN0GiUudGFpbG9yLnYxLkNyZWF0ZVRlbmFudENvbmZpZ1Jlc3BvbnNlIgASYwoSVXBkYXRlVGVuYW50Q29uZmlnEiQudGFpbG9yLnYxLlVwZGF0ZVRlbmFudENvbmZpZ1JlcXVlc3QaJS50YWlsb3IudjEuVXBkYXRlVGVuYW50Q29uZmlnUmVzcG9uc2UiABJjChJEZWxldGVUZW5hbnRDb25maWcSJC50YWlsb3IudjEuRGVsZXRlVGVuYW50Q29uZmlnUmVxdWVzdBolLnRhaWxvci52MS5EZWxldGVUZW5hbnRDb25maWdSZXNwb25zZSIAEl0KD0dldFRlbmFudENvbmZpZxIhLnRhaWxvci52MS5HZXRUZW5hbnRDb25maWdSZXF1ZXN0GiIudGFpbG9yLnYxLkdldFRlbmFudENvbmZpZ1Jlc3BvbnNlIgOQAgESeAoZQ3JlYXRlUGVyc29uYWxBY2Nlc3NUb2tlbhIrLnRhaWxvci52MS5DcmVhdGVQZXJzb25hbEFjY2Vzc1Rva2VuUmVxdWVzdBosLnRhaWxvci52MS5DcmVhdGVQZXJzb25hbEFjY2Vzc1Rva2VuUmVzcG9uc2UiABJ4ChlEZWxldGVQZXJzb25hbEFjY2Vzc1Rva2VuEisudGFpbG9yLnYxLkRlbGV0ZVBlcnNvbmFsQWNjZXNzVG9rZW5SZXF1ZXN0GiwudGFpbG9yLnYxLkRlbGV0ZVBlcnNvbmFsQWNjZXNzVG9rZW5SZXNwb25zZSIAEngKGExpc3RQZXJzb25hbEFjY2Vzc1Rva2VucxIqLnRhaWxvci52MS5MaXN0UGVyc29uYWxBY2Nlc3NUb2tlbnNSZXF1ZXN0GisudGFpbG9yLnYxLkxpc3RQZXJzb25hbEFjY2Vzc1Rva2Vuc1Jlc3BvbnNlIgOQAgESbAoVQ3JlYXRlQXV0aE1hY2hpbmVVc2VyEicudGFpbG9yLnYxLkNyZWF0ZUF1dGhNYWNoaW5lVXNlclJlcXVlc3QaKC50YWlsb3IudjEuQ3JlYXRlQXV0aE1hY2hpbmVVc2VyUmVzcG9uc2UiABJsChVVcGRhdGVBdXRoTWFjaGluZVVzZXISJy50YWlsb3IudjEuVXBkYXRlQXV0aE1hY2hpbmVVc2VyUmVxdWVzdBooLnRhaWxvci52MS5VcGRhdGVBdXRoTWFjaGluZVVzZXJSZXNwb25zZSIAEmwKFURlbGV0ZUF1dGhNYWNoaW5lVXNlchInLnRhaWxvci52MS5EZWxldGVBdXRoTWFjaGluZVVzZXJSZXF1ZXN0GigudGFpbG9yLnYxLkRlbGV0ZUF1dGhNYWNoaW5lVXNlclJlc3BvbnNlIgASZgoSR2V0QXV0aE1hY2hpbmVVc2VyEiQudGFpbG9yLnYxLkdldEF1dGhNYWNoaW5lVXNlclJlcXVlc3QaJS50YWlsb3IudjEuR2V0QXV0aE1hY2hpbmVVc2VyUmVzcG9uc2UiA5ACARJsChRMaXN0QXV0aE1hY2hpbmVVc2VycxImLnRhaWxvci52MS5MaXN0QXV0aE1hY2hpbmVVc2Vyc1JlcXVlc3QaJy50YWlsb3IudjEuTGlzdEF1dGhNYWNoaW5lVXNlcnNSZXNwb25zZSIDkAIBEmkKFENyZWF0ZUF1dGhTQ0lNQ29uZmlnEiYudGFpbG9yLnYxLkNyZWF0ZUF1dGhTQ0lNQ29uZmlnUmVxdWVzdBonLnRhaWxvci52MS5DcmVhdGVBdXRoU0NJTUNvbmZpZ1Jlc3BvbnNlIgASaQoUVXBkYXRlQXV0aFNDSU1Db25maWcSJi50YWlsb3IudjEuVXBkYXRlQXV0aFNDSU1Db25maWdSZXF1ZXN0GicudGFpbG9yLnYxLlVwZGF0ZUF1dGhTQ0lNQ29uZmlnUmVzcG9uc2UiABJpChREZWxldGVBdXRoU0NJTUNvbmZpZxImLnRhaWxvci52MS5EZWxldGVBdXRoU0NJTUNvbmZpZ1JlcXVlc3QaJy50YWlsb3IudjEuRGVsZXRlQXV0aFNDSU1Db25maWdSZXNwb25zZSIAEmMKEUdldEF1dGhTQ0lNQ29uZmlnEiMudGFpbG9yLnYxLkdldEF1dGhTQ0lNQ29uZmlnUmVxdWVzdBokLnRhaWxvci52MS5HZXRBdXRoU0NJTUNvbmZpZ1Jlc3BvbnNlIgOQAgESbwoWQ3JlYXRlQXV0aFNDSU1SZXNvdXJjZRIoLnRhaWxvci52MS5DcmVhdGVBdXRoU0NJTVJlc291cmNlUmVxdWVzdBopLnRhaWxvci52MS5DcmVhdGVBdXRoU0NJTVJlc291cmNlUmVzcG9uc2UiABJvChZVcGRhdGVBdXRoU0NJTVJlc291cmNlEigudGFpbG9yLnYxLlVwZGF0ZUF1dGhTQ0lNUmVzb3VyY2VSZXF1ZXN0GikudGFpbG9yLnYxLlVwZGF0ZUF1dGhTQ0lNUmVzb3VyY2VSZXNwb25zZSIAEm8KFkRlbGV0ZUF1dGhTQ0lNUmVzb3VyY2USKC50YWlsb3IudjEuRGVsZXRlQXV0aFNDSU1SZXNvdXJjZVJlcXVlc3QaKS50YWlsb3IudjEuRGVsZXRlQXV0aFNDSU1SZXNvdXJjZVJlc3BvbnNlIgASaQoTR2V0QXV0aFNDSU1SZXNvdXJjZRIlLnRhaWxvci52MS5HZXRBdXRoU0NJTVJlc291cmNlUmVxdWVzdBomLnRhaWxvci52MS5HZXRBdXRoU0NJTVJlc291cmNlUmVzcG9uc2UiA5ACARJsChRHZXRBdXRoU0NJTVJlc291cmNlcxImLnRhaWxvci52MS5HZXRBdXRoU0NJTVJlc291cmNlc1JlcXVlc3QaJy50YWlsb3IudjEuR2V0QXV0aFNDSU1SZXNvdXJjZXNSZXNwb25zZSIDkAIBElcKDkNyZWF0ZUF1dGhIb29rEiAudGFpbG9yLnYxLkNyZWF0ZUF1dGhIb29rUmVxdWVzdBohLnRhaWxvci52MS5DcmVhdGVBdXRoSG9va1Jlc3BvbnNlIgASVwoOVXBkYXRlQXV0aEhvb2sSIC50YWlsb3IudjEuVXBkYXRlQXV0aEhvb2tSZXF1ZXN0GiEudGFpbG9yLnYxLlVwZGF0ZUF1dGhIb29rUmVzcG9uc2UiABJXCg5EZWxldGVBdXRoSG9vaxIgLnRhaWxvci52MS5EZWxldGVBdXRoSG9va1JlcXVlc3QaIS50YWlsb3IudjEuRGVsZXRlQXV0aEhvb2tSZXNwb25zZSIAElEKC0dldEF1dGhIb29rEh0udGFpbG9yLnYxLkdldEF1dGhIb29rUmVxdWVzdBoeLnRhaWxvci52MS5HZXRBdXRoSG9va1Jlc3BvbnNlIgOQAgESaQoUQ3JlYXRlQXV0aENvbm5lY3Rpb24SJi50YWlsb3IudjEuQ3JlYXRlQXV0aENvbm5lY3Rpb25SZXF1ZXN0GicudGFpbG9yLnYxLkNyZWF0ZUF1dGhDb25uZWN0aW9uUmVzcG9uc2UiABJpChNMaXN0QXV0aENvbm5lY3Rpb25zEiUudGFpbG9yLnYxLkxpc3RBdXRoQ29ubmVjdGlvbnNSZXF1ZXN0GiYudGFpbG9yLnYxLkxpc3RBdXRoQ29ubmVjdGlvbnNSZXNwb25zZSIDkAIBEmkKFFJldm9rZUF1dGhDb25uZWN0aW9uEiYudGFpbG9yLnYxLlJldm9rZUF1dGhDb25uZWN0aW9uUmVxdWVzdBonLnRhaWxvci52MS5SZXZva2VBdXRoQ29ubmVjdGlvblJlc3BvbnNlIgASaQoURGVsZXRlQXV0aENvbm5lY3Rpb24SJi50YWlsb3IudjEuRGVsZXRlQXV0aENvbm5lY3Rpb25SZXF1ZXN0GicudGFpbG9yLnYxLkRlbGV0ZUF1dGhDb25uZWN0aW9uUmVzcG9uc2UiABKEAQodUmVnaXN0ZXJBdXRoQ29ubmVjdGlvblNlc3Npb24SLy50YWlsb3IudjEuUmVnaXN0ZXJBdXRoQ29ubmVjdGlvblNlc3Npb25SZXF1ZXN0GjAudGFpbG9yLnYxLlJlZ2lzdGVyQXV0aENvbm5lY3Rpb25TZXNzaW9uUmVzcG9uc2UiABKiAQonRXhjaGFuZ2VBdXRoQ29ubmVjdGlvbkF1dGhvcml6YXRpb25Db2RlEjkudGFpbG9yLnYxLkV4Y2hhbmdlQXV0aENvbm5lY3Rpb25BdXRob3JpemF0aW9uQ29kZVJlcXVlc3QaOi50YWlsb3IudjEuRXhjaGFuZ2VBdXRoQ29ubmVjdGlvbkF1dGhvcml6YXRpb25Db2RlUmVzcG9uc2UiABJvChZDcmVhdGVBdXRoT0F1dGgyQ2xpZW50EigudGFpbG9yLnYxLkNyZWF0ZUF1dGhPQXV0aDJDbGllbnRSZXF1ZXN0GikudGFpbG9yLnYxLkNyZWF0ZUF1dGhPQXV0aDJDbGllbnRSZXNwb25zZSIAEm8KFlVwZGF0ZUF1dGhPQXV0aDJDbGllbnQSKC50YWlsb3IudjEuVXBkYXRlQXV0aE9BdXRoMkNsaWVudFJlcXVlc3QaKS50YWlsb3IudjEuVXBkYXRlQXV0aE9BdXRoMkNsaWVudFJlc3BvbnNlIgASbwoWRGVsZXRlQXV0aE9BdXRoMkNsaWVudBIoLnRhaWxvci52MS5EZWxldGVBdXRoT0F1dGgyQ2xpZW50UmVxdWVzdBopLnRhaWxvci52MS5EZWxldGVBdXRoT0F1dGgyQ2xpZW50UmVzcG9uc2UiABJpChNHZXRBdXRoT0F1dGgyQ2xpZW50EiUudGFpbG9yLnYxLkdldEF1dGhPQXV0aDJDbGllbnRSZXF1ZXN0GiYudGFpbG9yLnYxLkdldEF1dGhPQXV0aDJDbGllbnRSZXNwb25zZSIDkAIBEm8KFUxpc3RBdXRoT0F1dGgyQ2xpZW50cxInLnRhaWxvci52MS5MaXN0QXV0aE9BdXRoMkNsaWVudHNSZXF1ZXN0GigudGFpbG9yLnYxLkxpc3RBdXRoT0F1dGgyQ2xpZW50c1Jlc3BvbnNlIgOQAgESaQoTTGlzdERhdGFwbGFuZUV2ZW50cxIlLnRhaWxvci52MS5MaXN0RGF0YXBsYW5lRXZlbnRzUmVxdWVzdBomLnRhaWxvci52MS5MaXN0RGF0YXBsYW5lRXZlbnRzUmVzcG9uc2UiA5ACARKEAQocTGlzdENvbnRyb2xwbGFuZUFjdGl2aXR5TG9ncxIuLnRhaWxvci52MS5MaXN0Q29udHJvbHBsYW5lQWN0aXZpdHlMb2dzUmVxdWVzdBovLnRhaWxvci52MS5MaXN0Q29udHJvbHBsYW5lQWN0aXZpdHlMb2dzUmVzcG9uc2UiA5ACARJXCg5UZXN0RXhlY1NjcmlwdBIgLnRhaWxvci52MS5UZXN0RXhlY1NjcmlwdFJlcXVlc3QaIS50YWlsb3IudjEuVGVzdEV4ZWNTY3JpcHRSZXNwb25zZSIAEmwKFEdldEZ1bmN0aW9uRXhlY3V0aW9uEiYudGFpbG9yLnYxLkdldEZ1bmN0aW9uRXhlY3V0aW9uUmVxdWVzdBonLnRhaWxvci52MS5HZXRGdW5jdGlvbkV4ZWN1dGlvblJlc3BvbnNlIgOQAgEScgoWTGlzdEZ1bmN0aW9uRXhlY3V0aW9ucxIoLnRhaWxvci52MS5MaXN0RnVuY3Rpb25FeGVjdXRpb25zUmVxdWVzdBopLnRhaWxvci52MS5MaXN0RnVuY3Rpb25FeGVjdXRpb25zUmVzcG9uc2UiA5ACARJxChZDcmVhdGVGdW5jdGlvblJlZ2lzdHJ5EigudGFpbG9yLnYxLkNyZWF0ZUZ1bmN0aW9uUmVnaXN0cnlSZXF1ZXN0GikudGFpbG9yLnYxLkNyZWF0ZUZ1bmN0aW9uUmVnaXN0cnlSZXNwb25zZSIAKAEScQoWVXBkYXRlRnVuY3Rpb25SZWdpc3RyeRIoLnRhaWxvci52MS5VcGRhdGVGdW5jdGlvblJlZ2lzdHJ5UmVxdWVzdBopLnRhaWxvci52MS5VcGRhdGVGdW5jdGlvblJlZ2lzdHJ5UmVzcG9uc2UiACgBEmkKE0dldEZ1bmN0aW9uUmVnaXN0cnkSJS50YWlsb3IudjEuR2V0RnVuY3Rpb25SZWdpc3RyeVJlcXVlc3QaJi50YWlsb3IudjEuR2V0RnVuY3Rpb25SZWdpc3RyeVJlc3BvbnNlIgOQAgEScgoWTGlzdEZ1bmN0aW9uUmVnaXN0cmllcxIoLnRhaWxvci52MS5MaXN0RnVuY3Rpb25SZWdpc3RyaWVzUmVxdWVzdBopLnRhaWxvci52MS5MaXN0RnVuY3Rpb25SZWdpc3RyaWVzUmVzcG9uc2UiA5ACARJvChZEZWxldGVGdW5jdGlvblJlZ2lzdHJ5EigudGFpbG9yLnYxLkRlbGV0ZUZ1bmN0aW9uUmVnaXN0cnlSZXF1ZXN0GikudGFpbG9yLnYxLkRlbGV0ZUZ1bmN0aW9uUmVnaXN0cnlSZXNwb25zZSIAEowBCh5Eb3dubG9hZEZ1bmN0aW9uUmVnaXN0cnlTY3JpcHQSMC50YWlsb3IudjEuRG93bmxvYWRGdW5jdGlvblJlZ2lzdHJ5U2NyaXB0UmVxdWVzdBoxLnRhaWxvci52MS5Eb3dubG9hZEZ1bmN0aW9uUmVnaXN0cnlTY3JpcHRSZXNwb25zZSIDkAIBMAEScgoWTGlzdE1ldGVyUmVxdWVzdENvdW50cxIoLnRhaWxvci52MS5MaXN0TWV0ZXJSZXF1ZXN0Q291bnRzUmVxdWVzdBopLnRhaWxvci52MS5MaXN0TWV0ZXJSZXF1ZXN0Q291bnRzUmVzcG9uc2UiA5ACARJ4ChhMaXN0TWV0ZXJFeGVjdXRpb25Db3VudHMSKi50YWlsb3IudjEuTGlzdE1ldGVyRXhlY3V0aW9uQ291bnRzUmVxdWVzdBorLnRhaWxvci52MS5MaXN0TWV0ZXJFeGVjdXRpb25Db3VudHNSZXNwb25zZSIDkAIBEmwKFExpc3RNZXRlckV2ZW50Q291bnRzEiYudGFpbG9yLnYxLkxpc3RNZXRlckV2ZW50Q291bnRzUmVxdWVzdBonLnRhaWxvci52MS5MaXN0TWV0ZXJFdmVudENvdW50c1Jlc3BvbnNlIgOQAgEScgoWTGlzdE1ldGVyQUlUb2tlblVzYWdlcxIoLnRhaWxvci52MS5MaXN0TWV0ZXJBSVRva2VuVXNhZ2VzUmVxdWVzdBopLnRhaWxvci52MS5MaXN0TWV0ZXJBSVRva2VuVXNhZ2VzUmVzcG9uc2UiA5ACARJdCg9MaXN0SWRQU2VydmljZXMSIS50YWlsb3IudjEuTGlzdElkUFNlcnZpY2VzUmVxdWVzdBoiLnRhaWxvci52MS5MaXN0SWRQU2VydmljZXNSZXNwb25zZSIDkAIBEl0KEENyZWF0ZUlkUFNlcnZpY2USIi50YWlsb3IudjEuQ3JlYXRlSWRQU2VydmljZVJlcXVlc3QaIy50YWlsb3IudjEuQ3JlYXRlSWRQU2VydmljZVJlc3BvbnNlIgASXQoQVXBkYXRlSWRQU2VydmljZRIiLnRhaWxvci52MS5VcGRhdGVJZFBTZXJ2aWNlUmVxdWVzdBojLnRhaWxvci52MS5VcGRhdGVJZFBTZXJ2aWNlUmVzcG9uc2UiABJdChBEZWxldGVJZFBTZXJ2aWNlEiIudGFpbG9yLnYxLkRlbGV0ZUlkUFNlcnZpY2VSZXF1ZXN0GiMudGFpbG9yLnYxLkRlbGV0ZUlkUFNlcnZpY2VSZXNwb25zZSIAElcKDUdldElkUFNlcnZpY2USHy50YWlsb3IudjEuR2V0SWRQU2VydmljZVJlcXVlc3QaIC50YWlsb3IudjEuR2V0SWRQU2VydmljZVJlc3BvbnNlIgOQAgESWgoOTGlzdElkUENsaWVudHMSIC50YWlsb3IudjEuTGlzdElkUENsaWVudHNSZXF1ZXN0GiEudGFpbG9yLnYxLkxpc3RJZFBDbGllbnRzUmVzcG9uc2UiA5ACARJaCg9DcmVhdGVJZFBDbGllbnQSIS50YWlsb3IudjEuQ3JlYXRlSWRQQ2xpZW50UmVxdWVzdBoiLnRhaWxvci52MS5DcmVhdGVJZFBDbGllbnRSZXNwb25zZSIAEloKD0RlbGV0ZUlkUENsaWVudBIhLnRhaWxvci52MS5EZWxldGVJZFBDbGllbnRSZXF1ZXN0GiIudGFpbG9yLnYxLkRlbGV0ZUlkUENsaWVudFJlc3BvbnNlIgASVAoMR2V0SWRQQ2xpZW50Eh4udGFpbG9yLnYxLkdldElkUENsaWVudFJlcXVlc3QaHy50YWlsb3IudjEuR2V0SWRQQ2xpZW50UmVzcG9uc2UiA5ACARJmChNDcmVhdGVTdGF0aWNXZWJzaXRlEiUudGFpbG9yLnYxLkNyZWF0ZVN0YXRpY1dlYnNpdGVSZXF1ZXN0GiYudGFpbG9yLnYxLkNyZWF0ZVN0YXRpY1dlYnNpdGVSZXNwb25zZSIAEmYKE1VwZGF0ZVN0YXRpY1dlYnNpdGUSJS50YWlsb3IudjEuVXBkYXRlU3RhdGljV2Vic2l0ZVJlcXVlc3QaJi50YWlsb3IudjEuVXBkYXRlU3RhdGljV2Vic2l0ZVJlc3BvbnNlIgASZgoTRGVsZXRlU3RhdGljV2Vic2l0ZRIlLnRhaWxvci52MS5EZWxldGVTdGF0aWNXZWJzaXRlUmVxdWVzdBomLnRhaWxvci52MS5EZWxldGVTdGF0aWNXZWJzaXRlUmVzcG9uc2UiABJgChBHZXRTdGF0aWNXZWJzaXRlEiIudGFpbG9yLnYxLkdldFN0YXRpY1dlYnNpdGVSZXF1ZXN0GiMudGFpbG9yLnYxLkdldFN0YXRpY1dlYnNpdGVSZXNwb25zZSIDkAIBEmYKEkxpc3RTdGF0aWNXZWJzaXRlcxIkLnRhaWxvci52MS5MaXN0U3RhdGljV2Vic2l0ZXNSZXF1ZXN0GiUudGFpbG9yLnYxLkxpc3RTdGF0aWNXZWJzaXRlc1Jlc3BvbnNlIgOQAgESWgoPQWRkQ3VzdG9tRG9tYWluEiEudGFpbG9yLnYxLkFkZEN1c3RvbURvbWFpblJlcXVlc3QaIi50YWlsb3IudjEuQWRkQ3VzdG9tRG9tYWluUmVzcG9uc2UiABJdCg9HZXRDdXN0b21Eb21haW4SIS50YWlsb3IudjEuR2V0Q3VzdG9tRG9tYWluUmVxdWVzdBoiLnRhaWxvci52MS5HZXRDdXN0b21Eb21haW5SZXNwb25zZSIDkAIBEmMKEUxpc3RDdXN0b21Eb21haW5zEiMudGFpbG9yLnYxLkxpc3RDdXN0b21Eb21haW5zUmVxdWVzdBokLnRhaWxvci52MS5MaXN0Q3VzdG9tRG9tYWluc1Jlc3BvbnNlIgOQAgESYwoSUmVtb3ZlQ3VzdG9tRG9tYWluEiQudGFpbG9yLnYxLlJlbW92ZUN1c3RvbURvbWFpblJlcXVlc3QaJS50YWlsb3IudjEuUmVtb3ZlQ3VzdG9tRG9tYWluUmVzcG9uc2UiABJdChBDcmVhdGVEZXBsb3ltZW50EiIudGFpbG9yLnYxLkNyZWF0ZURlcGxveW1lbnRSZXF1ZXN0GiMudGFpbG9yLnYxLkNyZWF0ZURlcGxveW1lbnRSZXNwb25zZSIAEk0KClVwbG9hZEZpbGUSHC50YWlsb3IudjEuVXBsb2FkRmlsZVJlcXVlc3QaHS50YWlsb3IudjEuVXBsb2FkRmlsZVJlc3BvbnNlIgAoARJgChFQdWJsaXNoRGVwbG95bWVudBIjLnRhaWxvci52MS5QdWJsaXNoRGVwbG95bWVudFJlcXVlc3QaJC50YWlsb3IudjEuUHVibGlzaERlcGxveW1lbnRSZXNwb25zZSIAElcKDkNyZWF0ZVdvcmtmbG93EiAudGFpbG9yLnYxLkNyZWF0ZVdvcmtmbG93UmVxdWVzdBohLnRhaWxvci52MS5DcmVhdGVXb3JrZmxvd1Jlc3BvbnNlIgASVwoOVXBkYXRlV29ya2Zsb3cSIC50YWlsb3IudjEuVXBkYXRlV29ya2Zsb3dSZXF1ZXN0GiEudGFpbG9yLnYxLlVwZGF0ZVdvcmtmbG93UmVzcG9uc2UiABJXCg5EZWxldGVXb3JrZmxvdxIgLnRhaWxvci52MS5EZWxldGVXb3JrZmxvd1JlcXVlc3QaIS50YWlsb3IudjEuRGVsZXRlV29ya2Zsb3dSZXNwb25zZSIAElEKC0dldFdvcmtmbG93Eh0udGFpbG9yLnYxLkdldFdvcmtmbG93UmVxdWVzdBoeLnRhaWxvci52MS5HZXRXb3JrZmxvd1Jlc3BvbnNlIgOQAgESYwoRR2V0V29ya2Zsb3dCeU5hbWUSIy50YWlsb3IudjEuR2V0V29ya2Zsb3dCeU5hbWVSZXF1ZXN0GiQudGFpbG9yLnYxLkdldFdvcmtmbG93QnlOYW1lUmVzcG9uc2UiA5ACARJXCg1MaXN0V29ya2Zsb3dzEh8udGFpbG9yLnYxLkxpc3RXb3JrZmxvd3NSZXF1ZXN0GiAudGFpbG9yLnYxLkxpc3RXb3JrZmxvd3NSZXNwb25zZSIDkAIBEngKGUNyZWF0ZVdvcmtmbG93Sm9iRnVuY3Rpb24SKy50YWlsb3IudjEuQ3JlYXRlV29ya2Zsb3dKb2JGdW5jdGlvblJlcXVlc3QaLC50YWlsb3IudjEuQ3JlYXRlV29ya2Zsb3dKb2JGdW5jdGlvblJlc3BvbnNlIgASeAoZVXBkYXRlV29ya2Zsb3dKb2JGdW5jdGlvbhIrLnRhaWxvci52MS5VcGRhdGVXb3JrZmxvd0pvYkZ1bmN0aW9uUmVxdWVzdBosLnRhaWxvci52MS5VcGRhdGVXb3JrZmxvd0pvYkZ1bmN0aW9uUmVzcG9uc2UiABJ4ChlEZWxldGVXb3JrZmxvd0pvYkZ1bmN0aW9uEisudGFpbG9yLnYxLkRlbGV0ZVdvcmtmbG93Sm9iRnVuY3Rpb25SZXF1ZXN0GiwudGFpbG9yLnYxLkRlbGV0ZVdvcmtmbG93Sm9iRnVuY3Rpb25SZXNwb25zZSIAEnIKFkdldFdvcmtmbG93Sm9iRnVuY3Rpb24SKC50YWlsb3IudjEuR2V0V29ya2Zsb3dKb2JGdW5jdGlvblJlcXVlc3QaKS50YWlsb3IudjEuR2V0V29ya2Zsb3dKb2JGdW5jdGlvblJlc3BvbnNlIgOQAgEShAEKHEdldFdvcmtmbG93Sm9iRnVuY3Rpb25CeU5hbWUSLi50YWlsb3IudjEuR2V0V29ya2Zsb3dKb2JGdW5jdGlvbkJ5TmFtZVJlcXVlc3QaLy50YWlsb3IudjEuR2V0V29ya2Zsb3dKb2JGdW5jdGlvbkJ5TmFtZVJlc3BvbnNlIgOQAgESeAoYTGlzdFdvcmtmbG93Sm9iRnVuY3Rpb25zEioudGFpbG9yLnYxLkxpc3RXb3JrZmxvd0pvYkZ1bmN0aW9uc1JlcXVlc3QaKy50YWlsb3IudjEuTGlzdFdvcmtmbG93Sm9iRnVuY3Rpb25zUmVzcG9uc2UiA5ACARJsChRHZXRXb3JrZmxvd0V4ZWN1dGlvbhImLnRhaWxvci52MS5HZXRXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3QaJy50YWlsb3IudjEuR2V0V29ya2Zsb3dFeGVjdXRpb25SZXNwb25zZSIDkAIBEnIKFkxpc3RXb3JrZmxvd0V4ZWN1dGlvbnMSKC50YWlsb3IudjEuTGlzdFdvcmtmbG93RXhlY3V0aW9uc1JlcXVlc3QaKS50YWlsb3IudjEuTGlzdFdvcmtmbG93RXhlY3V0aW9uc1Jlc3BvbnNlIgOQAgESYAoRVGVzdFN0YXJ0V29ya2Zsb3cSIy50YWlsb3IudjEuVGVzdFN0YXJ0V29ya2Zsb3dSZXF1ZXN0GiQudGFpbG9yLnYxLlRlc3RTdGFydFdvcmtmbG93UmVzcG9uc2UiABJjChJUZXN0UmVzdW1lV29ya2Zsb3cSJC50YWlsb3IudjEuVGVzdFJlc3VtZVdvcmtmbG93UmVxdWVzdBolLnRhaWxvci52MS5UZXN0UmVzdW1lV29ya2Zsb3dSZXNwb25zZSIAEqUBCihDcmVhdGVXb3JrZmxvd0pvYkZ1bmN0aW9uRXhlY3V0aW9uUG9saWN5EjoudGFpbG9yLnYxLkNyZWF0ZVdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3lSZXF1ZXN0GjsudGFpbG9yLnYxLkNyZWF0ZVdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3lSZXNwb25zZSIAEqUBCihVcGRhdGVXb3JrZmxvd0pvYkZ1bmN0aW9uRXhlY3V0aW9uUG9saWN5EjoudGFpbG9yLnYxLlVwZGF0ZVdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3lSZXF1ZXN0GjsudGFpbG9yLnYxLlVwZGF0ZVdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3lSZXNwb25zZSIAEqUBCihEZWxldGVXb3JrZmxvd0pvYkZ1bmN0aW9uRXhlY3V0aW9uUG9saWN5EjoudGFpbG9yLnYxLkRlbGV0ZVdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3lSZXF1ZXN0GjsudGFpbG9yLnYxLkRlbGV0ZVdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3lSZXNwb25zZSIAEp8BCiVHZXRXb3JrZmxvd0pvYkZ1bmN0aW9uRXhlY3V0aW9uUG9saWN5EjcudGFpbG9yLnYxLkdldFdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3lSZXF1ZXN0GjgudGFpbG9yLnYxLkdldFdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3lSZXNwb25zZSIDkAIBEq4BCipHZXRXb3JrZmxvd0pvYkZ1bmN0aW9uRXhlY3V0aW9uUG9saWN5QnlLZXkSPC50YWlsb3IudjEuR2V0V29ya2Zsb3dKb2JGdW5jdGlvbkV4ZWN1dGlvblBvbGljeUJ5S2V5UmVxdWVzdBo9LnRhaWxvci52MS5HZXRXb3JrZmxvd0pvYkZ1bmN0aW9uRXhlY3V0aW9uUG9saWN5QnlLZXlSZXNwb25zZSIDkAIBEqgBCihMaXN0V29ya2Zsb3dKb2JGdW5jdGlvbkV4ZWN1dGlvblBvbGljaWVzEjoudGFpbG9yLnYxLkxpc3RXb3JrZmxvd0pvYkZ1bmN0aW9uRXhlY3V0aW9uUG9saWNpZXNSZXF1ZXN0GjsudGFpbG9yLnYxLkxpc3RXb3JrZmxvd0pvYkZ1bmN0aW9uRXhlY3V0aW9uUG9saWNpZXNSZXNwb25zZSIDkAIBEk4KC1NldE1ldGFkYXRhEh0udGFpbG9yLnYxLlNldE1ldGFkYXRhUmVxdWVzdBoeLnRhaWxvci52MS5TZXRNZXRhZGF0YVJlc3BvbnNlIgASUQoLR2V0TWV0YWRhdGESHS50YWlsb3IudjEuR2V0TWV0YWRhdGFSZXF1ZXN0Gh4udGFpbG9yLnYxLkdldE1ldGFkYXRhUmVzcG9uc2UiA5ACARKEAQodQ3JlYXRlQ29udHJvbHBsYW5lTWFjaGluZVVzZXISLy50YWlsb3IudjEuQ3JlYXRlQ29udHJvbHBsYW5lTWFjaGluZVVzZXJSZXF1ZXN0GjAudGFpbG9yLnYxLkNyZWF0ZUNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyUmVzcG9uc2UiABKEAQodVXBkYXRlQ29udHJvbHBsYW5lTWFjaGluZVVzZXISLy50YWlsb3IudjEuVXBkYXRlQ29udHJvbHBsYW5lTWFjaGluZVVzZXJSZXF1ZXN0GjAudGFpbG9yLnYxLlVwZGF0ZUNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyUmVzcG9uc2UiABJ+ChpHZXRDb250cm9scGxhbmVNYWNoaW5lVXNlchIsLnRhaWxvci52MS5HZXRDb250cm9scGxhbmVNYWNoaW5lVXNlclJlcXVlc3QaLS50YWlsb3IudjEuR2V0Q29udHJvbHBsYW5lTWFjaGluZVVzZXJSZXNwb25zZSIDkAIBEpABCiBHZXRDb250cm9scGxhbmVNYWNoaW5lVXNlckJ5TmFtZRIyLnRhaWxvci52MS5HZXRDb250cm9scGxhbmVNYWNoaW5lVXNlckJ5TmFtZVJlcXVlc3QaMy50YWlsb3IudjEuR2V0Q29udHJvbHBsYW5lTWFjaGluZVVzZXJCeU5hbWVSZXNwb25zZSIDkAIBEoQBChxMaXN0Q29udHJvbHBsYW5lTWFjaGluZVVzZXJzEi4udGFpbG9yLnYxLkxpc3RDb250cm9scGxhbmVNYWNoaW5lVXNlcnNSZXF1ZXN0Gi8udGFpbG9yLnYxLkxpc3RDb250cm9scGxhbmVNYWNoaW5lVXNlcnNSZXNwb25zZSIDkAIBEoQBCh1EZWxldGVDb250cm9scGxhbmVNYWNoaW5lVXNlchIvLnRhaWxvci52MS5EZWxldGVDb250cm9scGxhbmVNYWNoaW5lVXNlclJlcXVlc3QaMC50YWlsb3IudjEuRGVsZXRlQ29udHJvbHBsYW5lTWFjaGluZVVzZXJSZXNwb25zZSIAEmMKEkNyZWF0ZU9UTFBFeHBvcnRlchIkLnRhaWxvci52MS5DcmVhdGVPVExQRXhwb3J0ZXJSZXF1ZXN0GiUudGFpbG9yLnYxLkNyZWF0ZU9UTFBFeHBvcnRlclJlc3BvbnNlIgASYwoSVXBkYXRlT1RMUEV4cG9ydGVyEiQudGFpbG9yLnYxLlVwZGF0ZU9UTFBFeHBvcnRlclJlcXVlc3QaJS50YWlsb3IudjEuVXBkYXRlT1RMUEV4cG9ydGVyUmVzcG9uc2UiABJdCg9HZXRPVExQRXhwb3J0ZXISIS50YWlsb3IudjEuR2V0T1RMUEV4cG9ydGVyUmVxdWVzdBoiLnRhaWxvci52MS5HZXRPVExQRXhwb3J0ZXJSZXNwb25zZSIDkAIBEmMKEUxpc3RPVExQRXhwb3J0ZXJzEiMudGFpbG9yLnYxLkxpc3RPVExQRXhwb3J0ZXJzUmVxdWVzdBokLnRhaWxvci52MS5MaXN0T1RMUEV4cG9ydGVyc1Jlc3BvbnNlIgOQAgESYwoSRGVsZXRlT1RMUEV4cG9ydGVyEiQudGFpbG9yLnYxLkRlbGV0ZU9UTFBFeHBvcnRlclJlcXVlc3QaJS50YWlsb3IudjEuRGVsZXRlT1RMUEV4cG9ydGVyUmVzcG9uc2UiABJdChBUZXN0T1RMUEV4cG9ydGVyEiIudGFpbG9yLnYxLlRlc3RPVExQRXhwb3J0ZXJSZXF1ZXN0GiMudGFpbG9yLnYxLlRlc3RPVExQRXhwb3J0ZXJSZXNwb25zZSIAEocBCh5DcmVhdGVSZXNvdXJjZUF0dHJpYnV0ZXNDb25maWcSMC50YWlsb3IudjEuQ3JlYXRlUmVzb3VyY2VBdHRyaWJ1dGVzQ29uZmlnUmVxdWVzdBoxLnRhaWxvci52MS5DcmVhdGVSZXNvdXJjZUF0dHJpYnV0ZXNDb25maWdSZXNwb25zZSIAEoEBChtHZXRSZXNvdXJjZUF0dHJpYnV0ZXNDb25maWcSLS50YWlsb3IudjEuR2V0UmVzb3VyY2VBdHRyaWJ1dGVzQ29uZmlnUmVxdWVzdBouLnRhaWxvci52MS5HZXRSZXNvdXJjZUF0dHJpYnV0ZXNDb25maWdSZXNwb25zZSIDkAIBEocBCh5VcGRhdGVSZXNvdXJjZUF0dHJpYnV0ZXNDb25maWcSMC50YWlsb3IudjEuVXBkYXRlUmVzb3VyY2VBdHRyaWJ1dGVzQ29uZmlnUmVxdWVzdBoxLnRhaWxvci52MS5VcGRhdGVSZXNvdXJjZUF0dHJpYnV0ZXNDb25maWdSZXNwb25zZSIAEocBCh5EZWxldGVSZXNvdXJjZUF0dHJpYnV0ZXNDb25maWcSMC50YWlsb3IudjEuRGVsZXRlUmVzb3VyY2VBdHRyaWJ1dGVzQ29uZmlnUmVxdWVzdBoxLnRhaWxvci52MS5EZWxldGVSZXNvdXJjZUF0dHJpYnV0ZXNDb25maWdSZXNwb25zZSIAYgZwcm90bzM", [
|
|
952
|
+
const file_tailor_v1_service = /*@__PURE__*/ fileDesc("Chd0YWlsb3IvdjEvc2VydmljZS5wcm90bxIJdGFpbG9yLnYxIg0KC1BpbmdSZXF1ZXN0Ig4KDFBpbmdSZXNwb25zZTLk2QEKD09wZXJhdG9yU2VydmljZRI5CgRQaW5nEhYudGFpbG9yLnYxLlBpbmdSZXF1ZXN0GhcudGFpbG9yLnYxLlBpbmdSZXNwb25zZSIAEocBCh1MaXN0QXZhaWxhYmxlV29ya3NwYWNlUmVnaW9ucxIvLnRhaWxvci52MS5MaXN0QXZhaWxhYmxlV29ya3NwYWNlUmVnaW9uc1JlcXVlc3QaMC50YWlsb3IudjEuTGlzdEF2YWlsYWJsZVdvcmtzcGFjZVJlZ2lvbnNSZXNwb25zZSIDkAIBEloKD0NyZWF0ZVdvcmtzcGFjZRIhLnRhaWxvci52MS5DcmVhdGVXb3Jrc3BhY2VSZXF1ZXN0GiIudGFpbG9yLnYxLkNyZWF0ZVdvcmtzcGFjZVJlc3BvbnNlIgASWgoPVXBkYXRlV29ya3NwYWNlEiEudGFpbG9yLnYxLlVwZGF0ZVdvcmtzcGFjZVJlcXVlc3QaIi50YWlsb3IudjEuVXBkYXRlV29ya3NwYWNlUmVzcG9uc2UiABJaCg9EZWxldGVXb3Jrc3BhY2USIS50YWlsb3IudjEuRGVsZXRlV29ya3NwYWNlUmVxdWVzdBoiLnRhaWxvci52MS5EZWxldGVXb3Jrc3BhY2VSZXNwb25zZSIAEloKDkxpc3RXb3Jrc3BhY2VzEiAudGFpbG9yLnYxLkxpc3RXb3Jrc3BhY2VzUmVxdWVzdBohLnRhaWxvci52MS5MaXN0V29ya3NwYWNlc1Jlc3BvbnNlIgOQAgESfgoaTGlzdE9yZ2FuaXphdGlvbldvcmtzcGFjZXMSLC50YWlsb3IudjEuTGlzdE9yZ2FuaXphdGlvbldvcmtzcGFjZXNSZXF1ZXN0Gi0udGFpbG9yLnYxLkxpc3RPcmdhbml6YXRpb25Xb3Jrc3BhY2VzUmVzcG9uc2UiA5ACARJdChBSZXN0b3JlV29ya3NwYWNlEiIudGFpbG9yLnYxLlJlc3RvcmVXb3Jrc3BhY2VSZXF1ZXN0GiMudGFpbG9yLnYxLlJlc3RvcmVXb3Jrc3BhY2VSZXNwb25zZSIAElQKDEdldFdvcmtzcGFjZRIeLnRhaWxvci52MS5HZXRXb3Jrc3BhY2VSZXF1ZXN0Gh8udGFpbG9yLnYxLkdldFdvcmtzcGFjZVJlc3BvbnNlIgOQAgESfgoaTGlzdFdvcmtzcGFjZVBsYXRmb3JtVXNlcnMSLC50YWlsb3IudjEuTGlzdFdvcmtzcGFjZVBsYXRmb3JtVXNlcnNSZXF1ZXN0Gi0udGFpbG9yLnYxLkxpc3RXb3Jrc3BhY2VQbGF0Zm9ybVVzZXJzUmVzcG9uc2UiA5ACARKlAQonTGlzdEF2YWlsYWJsZVdvcmtzcGFjZVBsYXRmb3JtVXNlclJvbGVzEjkudGFpbG9yLnYxLkxpc3RBdmFpbGFibGVXb3Jrc3BhY2VQbGF0Zm9ybVVzZXJSb2xlc1JlcXVlc3QaOi50YWlsb3IudjEuTGlzdEF2YWlsYWJsZVdvcmtzcGFjZVBsYXRmb3JtVXNlclJvbGVzUmVzcG9uc2UiA5ACARJ+ChtJbnZpdGVXb3Jrc3BhY2VQbGF0Zm9ybVVzZXISLS50YWlsb3IudjEuSW52aXRlV29ya3NwYWNlUGxhdGZvcm1Vc2VyUmVxdWVzdBouLnRhaWxvci52MS5JbnZpdGVXb3Jrc3BhY2VQbGF0Zm9ybVVzZXJSZXNwb25zZSIAEn4KG1JlbW92ZVdvcmtzcGFjZVBsYXRmb3JtVXNlchItLnRhaWxvci52MS5SZW1vdmVXb3Jrc3BhY2VQbGF0Zm9ybVVzZXJSZXF1ZXN0Gi4udGFpbG9yLnYxLlJlbW92ZVdvcmtzcGFjZVBsYXRmb3JtVXNlclJlc3BvbnNlIgASfgobVXBkYXRlV29ya3NwYWNlUGxhdGZvcm1Vc2VyEi0udGFpbG9yLnYxLlVwZGF0ZVdvcmtzcGFjZVBsYXRmb3JtVXNlclJlcXVlc3QaLi50YWlsb3IudjEuVXBkYXRlV29ya3NwYWNlUGxhdGZvcm1Vc2VyUmVzcG9uc2UiABJ4ChhHZXRXb3Jrc3BhY2VQbGF0Zm9ybVVzZXISKi50YWlsb3IudjEuR2V0V29ya3NwYWNlUGxhdGZvcm1Vc2VyUmVxdWVzdBorLnRhaWxvci52MS5HZXRXb3Jrc3BhY2VQbGF0Zm9ybVVzZXJSZXNwb25zZSIDkAIBEmAKEEdldFdvcmtzcGFjZVJvbGUSIi50YWlsb3IudjEuR2V0V29ya3NwYWNlUm9sZVJlcXVlc3QaIy50YWlsb3IudjEuR2V0V29ya3NwYWNlUm9sZVJlc3BvbnNlIgOQAgESYwoSVXBkYXRlT3JnYW5pemF0aW9uEiQudGFpbG9yLnYxLlVwZGF0ZU9yZ2FuaXphdGlvblJlcXVlc3QaJS50YWlsb3IudjEuVXBkYXRlT3JnYW5pemF0aW9uUmVzcG9uc2UiABJdCg9HZXRPcmdhbml6YXRpb24SIS50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uUmVxdWVzdBoiLnRhaWxvci52MS5HZXRPcmdhbml6YXRpb25SZXNwb25zZSIDkAIBEmMKEUxpc3RPcmdhbml6YXRpb25zEiMudGFpbG9yLnYxLkxpc3RPcmdhbml6YXRpb25zUmVxdWVzdBokLnRhaWxvci52MS5MaXN0T3JnYW5pemF0aW9uc1Jlc3BvbnNlIgOQAgESbwoVTGlzdFVzZXJPcmdhbml6YXRpb25zEicudGFpbG9yLnYxLkxpc3RVc2VyT3JnYW5pemF0aW9uc1JlcXVlc3QaKC50YWlsb3IudjEuTGlzdFVzZXJPcmdhbml6YXRpb25zUmVzcG9uc2UiA5ACARJyChdHcmFudE9yZ2FuaXphdGlvbkFjY2VzcxIpLnRhaWxvci52MS5HcmFudE9yZ2FuaXphdGlvbkFjY2Vzc1JlcXVlc3QaKi50YWlsb3IudjEuR3JhbnRPcmdhbml6YXRpb25BY2Nlc3NSZXNwb25zZSIAEnUKGFVwZGF0ZU9yZ2FuaXphdGlvbkFjY2VzcxIqLnRhaWxvci52MS5VcGRhdGVPcmdhbml6YXRpb25BY2Nlc3NSZXF1ZXN0GisudGFpbG9yLnYxLlVwZGF0ZU9yZ2FuaXphdGlvbkFjY2Vzc1Jlc3BvbnNlIgASdQoYUmV2b2tlT3JnYW5pemF0aW9uQWNjZXNzEioudGFpbG9yLnYxLlJldm9rZU9yZ2FuaXphdGlvbkFjY2Vzc1JlcXVlc3QaKy50YWlsb3IudjEuUmV2b2tlT3JnYW5pemF0aW9uQWNjZXNzUmVzcG9uc2UiABJ4ChhMaXN0T3JnYW5pemF0aW9uQWNjZXNzZXMSKi50YWlsb3IudjEuTGlzdE9yZ2FuaXphdGlvbkFjY2Vzc2VzUmVxdWVzdBorLnRhaWxvci52MS5MaXN0T3JnYW5pemF0aW9uQWNjZXNzZXNSZXNwb25zZSIDkAIBEm8KFUdldE9yZ2FuaXphdGlvbkFjY2VzcxInLnRhaWxvci52MS5HZXRPcmdhbml6YXRpb25BY2Nlc3NSZXF1ZXN0GigudGFpbG9yLnYxLkdldE9yZ2FuaXphdGlvbkFjY2Vzc1Jlc3BvbnNlIgOQAgESdQoYQ3JlYXRlT3JnYW5pemF0aW9uRm9sZGVyEioudGFpbG9yLnYxLkNyZWF0ZU9yZ2FuaXphdGlvbkZvbGRlclJlcXVlc3QaKy50YWlsb3IudjEuQ3JlYXRlT3JnYW5pemF0aW9uRm9sZGVyUmVzcG9uc2UiABJ1ChhVcGRhdGVPcmdhbml6YXRpb25Gb2xkZXISKi50YWlsb3IudjEuVXBkYXRlT3JnYW5pemF0aW9uRm9sZGVyUmVxdWVzdBorLnRhaWxvci52MS5VcGRhdGVPcmdhbml6YXRpb25Gb2xkZXJSZXNwb25zZSIAEnUKGERlbGV0ZU9yZ2FuaXphdGlvbkZvbGRlchIqLnRhaWxvci52MS5EZWxldGVPcmdhbml6YXRpb25Gb2xkZXJSZXF1ZXN0GisudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvbkZvbGRlclJlc3BvbnNlIgASbwoVR2V0T3JnYW5pemF0aW9uRm9sZGVyEicudGFpbG9yLnYxLkdldE9yZ2FuaXphdGlvbkZvbGRlclJlcXVlc3QaKC50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uRm9sZGVyUmVzcG9uc2UiA5ACARJ1ChdMaXN0T3JnYW5pemF0aW9uRm9sZGVycxIpLnRhaWxvci52MS5MaXN0T3JnYW5pemF0aW9uRm9sZGVyc1JlcXVlc3QaKi50YWlsb3IudjEuTGlzdE9yZ2FuaXphdGlvbkZvbGRlcnNSZXNwb25zZSIDkAIBEoQBCh1HcmFudE9yZ2FuaXphdGlvbkZvbGRlckFjY2VzcxIvLnRhaWxvci52MS5HcmFudE9yZ2FuaXphdGlvbkZvbGRlckFjY2Vzc1JlcXVlc3QaMC50YWlsb3IudjEuR3JhbnRPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3NSZXNwb25zZSIAEocBCh5VcGRhdGVPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3MSMC50YWlsb3IudjEuVXBkYXRlT3JnYW5pemF0aW9uRm9sZGVyQWNjZXNzUmVxdWVzdBoxLnRhaWxvci52MS5VcGRhdGVPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3NSZXNwb25zZSIAEocBCh5SZXZva2VPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3MSMC50YWlsb3IudjEuUmV2b2tlT3JnYW5pemF0aW9uRm9sZGVyQWNjZXNzUmVxdWVzdBoxLnRhaWxvci52MS5SZXZva2VPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3NSZXNwb25zZSIAEooBCh5MaXN0T3JnYW5pemF0aW9uRm9sZGVyQWNjZXNzZXMSMC50YWlsb3IudjEuTGlzdE9yZ2FuaXphdGlvbkZvbGRlckFjY2Vzc2VzUmVxdWVzdBoxLnRhaWxvci52MS5MaXN0T3JnYW5pemF0aW9uRm9sZGVyQWNjZXNzZXNSZXNwb25zZSIDkAIBEoEBChtHZXRPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3MSLS50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uRm9sZGVyQWNjZXNzUmVxdWVzdBouLnRhaWxvci52MS5HZXRPcmdhbml6YXRpb25Gb2xkZXJBY2Nlc3NSZXNwb25zZSIDkAIBEooBCh9VcHNlcnRPcmdhbml6YXRpb25JUFJlc3RyaWN0aW9uEjEudGFpbG9yLnYxLlVwc2VydE9yZ2FuaXphdGlvbklQUmVzdHJpY3Rpb25SZXF1ZXN0GjIudGFpbG9yLnYxLlVwc2VydE9yZ2FuaXphdGlvbklQUmVzdHJpY3Rpb25SZXNwb25zZSIAEoQBChxHZXRPcmdhbml6YXRpb25JUFJlc3RyaWN0aW9uEi4udGFpbG9yLnYxLkdldE9yZ2FuaXphdGlvbklQUmVzdHJpY3Rpb25SZXF1ZXN0Gi8udGFpbG9yLnYxLkdldE9yZ2FuaXphdGlvbklQUmVzdHJpY3Rpb25SZXNwb25zZSIDkAIBEooBCh9EZWxldGVPcmdhbml6YXRpb25JUFJlc3RyaWN0aW9uEjEudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvbklQUmVzdHJpY3Rpb25SZXF1ZXN0GjIudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvbklQUmVzdHJpY3Rpb25SZXNwb25zZSIAEpwBCiVVcHNlcnRPcmdhbml6YXRpb25Gb2xkZXJJUFJlc3RyaWN0aW9uEjcudGFpbG9yLnYxLlVwc2VydE9yZ2FuaXphdGlvbkZvbGRlcklQUmVzdHJpY3Rpb25SZXF1ZXN0GjgudGFpbG9yLnYxLlVwc2VydE9yZ2FuaXphdGlvbkZvbGRlcklQUmVzdHJpY3Rpb25SZXNwb25zZSIAEpYBCiJHZXRPcmdhbml6YXRpb25Gb2xkZXJJUFJlc3RyaWN0aW9uEjQudGFpbG9yLnYxLkdldE9yZ2FuaXphdGlvbkZvbGRlcklQUmVzdHJpY3Rpb25SZXF1ZXN0GjUudGFpbG9yLnYxLkdldE9yZ2FuaXphdGlvbkZvbGRlcklQUmVzdHJpY3Rpb25SZXNwb25zZSIDkAIBEpwBCiVEZWxldGVPcmdhbml6YXRpb25Gb2xkZXJJUFJlc3RyaWN0aW9uEjcudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvbkZvbGRlcklQUmVzdHJpY3Rpb25SZXF1ZXN0GjgudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvbkZvbGRlcklQUmVzdHJpY3Rpb25SZXNwb25zZSIAEm8KFkNyZWF0ZU9yZ2FuaXphdGlvblRlYW0SKC50YWlsb3IudjEuQ3JlYXRlT3JnYW5pemF0aW9uVGVhbVJlcXVlc3QaKS50YWlsb3IudjEuQ3JlYXRlT3JnYW5pemF0aW9uVGVhbVJlc3BvbnNlIgASbwoWVXBkYXRlT3JnYW5pemF0aW9uVGVhbRIoLnRhaWxvci52MS5VcGRhdGVPcmdhbml6YXRpb25UZWFtUmVxdWVzdBopLnRhaWxvci52MS5VcGRhdGVPcmdhbml6YXRpb25UZWFtUmVzcG9uc2UiABJvChZEZWxldGVPcmdhbml6YXRpb25UZWFtEigudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvblRlYW1SZXF1ZXN0GikudGFpbG9yLnYxLkRlbGV0ZU9yZ2FuaXphdGlvblRlYW1SZXNwb25zZSIAEmkKE0dldE9yZ2FuaXphdGlvblRlYW0SJS50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uVGVhbVJlcXVlc3QaJi50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uVGVhbVJlc3BvbnNlIgOQAgESbwoVTGlzdE9yZ2FuaXphdGlvblRlYW1zEicudGFpbG9yLnYxLkxpc3RPcmdhbml6YXRpb25UZWFtc1JlcXVlc3QaKC50YWlsb3IudjEuTGlzdE9yZ2FuaXphdGlvblRlYW1zUmVzcG9uc2UiA5ACARJ4ChlBZGRPcmdhbml6YXRpb25UZWFtTWVtYmVyEisudGFpbG9yLnYxLkFkZE9yZ2FuaXphdGlvblRlYW1NZW1iZXJSZXF1ZXN0GiwudGFpbG9yLnYxLkFkZE9yZ2FuaXphdGlvblRlYW1NZW1iZXJSZXNwb25zZSIAEoEBChxVcGRhdGVPcmdhbml6YXRpb25UZWFtTWVtYmVyEi4udGFpbG9yLnYxLlVwZGF0ZU9yZ2FuaXphdGlvblRlYW1NZW1iZXJSZXF1ZXN0Gi8udGFpbG9yLnYxLlVwZGF0ZU9yZ2FuaXphdGlvblRlYW1NZW1iZXJSZXNwb25zZSIAEoEBChxSZW1vdmVPcmdhbml6YXRpb25UZWFtTWVtYmVyEi4udGFpbG9yLnYxLlJlbW92ZU9yZ2FuaXphdGlvblRlYW1NZW1iZXJSZXF1ZXN0Gi8udGFpbG9yLnYxLlJlbW92ZU9yZ2FuaXphdGlvblRlYW1NZW1iZXJSZXNwb25zZSIAEoEBChtMaXN0T3JnYW5pemF0aW9uVGVhbU1lbWJlcnMSLS50YWlsb3IudjEuTGlzdE9yZ2FuaXphdGlvblRlYW1NZW1iZXJzUmVxdWVzdBouLnRhaWxvci52MS5MaXN0T3JnYW5pemF0aW9uVGVhbU1lbWJlcnNSZXNwb25zZSIDkAIBEnsKGUdldE9yZ2FuaXphdGlvblRlYW1NZW1iZXISKy50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uVGVhbU1lbWJlclJlcXVlc3QaLC50YWlsb3IudjEuR2V0T3JnYW5pemF0aW9uVGVhbU1lbWJlclJlc3BvbnNlIgOQAgEScgoWR2V0UGxhdGZvcm1BY2NvdW50UGxhbhIoLnRhaWxvci52MS5HZXRQbGF0Zm9ybUFjY291bnRQbGFuUmVxdWVzdBopLnRhaWxvci52MS5HZXRQbGF0Zm9ybUFjY291bnRQbGFuUmVzcG9uc2UiA5ACARJgChFDcmVhdGVBcHBsaWNhdGlvbhIjLnRhaWxvci52MS5DcmVhdGVBcHBsaWNhdGlvblJlcXVlc3QaJC50YWlsb3IudjEuQ3JlYXRlQXBwbGljYXRpb25SZXNwb25zZSIAEmAKEVVwZGF0ZUFwcGxpY2F0aW9uEiMudGFpbG9yLnYxLlVwZGF0ZUFwcGxpY2F0aW9uUmVxdWVzdBokLnRhaWxvci52MS5VcGRhdGVBcHBsaWNhdGlvblJlc3BvbnNlIgASYAoRRGVsZXRlQXBwbGljYXRpb24SIy50YWlsb3IudjEuRGVsZXRlQXBwbGljYXRpb25SZXF1ZXN0GiQudGFpbG9yLnYxLkRlbGV0ZUFwcGxpY2F0aW9uUmVzcG9uc2UiABJgChBMaXN0QXBwbGljYXRpb25zEiIudGFpbG9yLnYxLkxpc3RBcHBsaWNhdGlvbnNSZXF1ZXN0GiMudGFpbG9yLnYxLkxpc3RBcHBsaWNhdGlvbnNSZXNwb25zZSIDkAIBEloKDkdldEFwcGxpY2F0aW9uEiAudGFpbG9yLnYxLkdldEFwcGxpY2F0aW9uUmVxdWVzdBohLnRhaWxvci52MS5HZXRBcHBsaWNhdGlvblJlc3BvbnNlIgOQAgESfgoaR2V0QXBwbGljYXRpb25TY2hlbWFIZWFsdGgSLC50YWlsb3IudjEuR2V0QXBwbGljYXRpb25TY2hlbWFIZWFsdGhSZXF1ZXN0Gi0udGFpbG9yLnYxLkdldEFwcGxpY2F0aW9uU2NoZW1hSGVhbHRoUmVzcG9uc2UiA5ACARJaCg9DcmVhdGVBSUdhdGV3YXkSIS50YWlsb3IudjEuQ3JlYXRlQUlHYXRld2F5UmVxdWVzdBoiLnRhaWxvci52MS5DcmVhdGVBSUdhdGV3YXlSZXNwb25zZSIAEloKD1VwZGF0ZUFJR2F0ZXdheRIhLnRhaWxvci52MS5VcGRhdGVBSUdhdGV3YXlSZXF1ZXN0GiIudGFpbG9yLnYxLlVwZGF0ZUFJR2F0ZXdheVJlc3BvbnNlIgASWgoPRGVsZXRlQUlHYXRld2F5EiEudGFpbG9yLnYxLkRlbGV0ZUFJR2F0ZXdheVJlcXVlc3QaIi50YWlsb3IudjEuRGVsZXRlQUlHYXRld2F5UmVzcG9uc2UiABJUCgxHZXRBSUdhdGV3YXkSHi50YWlsb3IudjEuR2V0QUlHYXRld2F5UmVxdWVzdBofLnRhaWxvci52MS5HZXRBSUdhdGV3YXlSZXNwb25zZSIDkAIBEloKDkxpc3RBSUdhdGV3YXlzEiAudGFpbG9yLnYxLkxpc3RBSUdhdGV3YXlzUmVxdWVzdBohLnRhaWxvci52MS5MaXN0QUlHYXRld2F5c1Jlc3BvbnNlIgOQAgESYwoSQ29tcG9zZVRhaWxvckRCU0RMEiQudGFpbG9yLnYxLkNvbXBvc2VUYWlsb3JEQlNETFJlcXVlc3QaJS50YWlsb3IudjEuQ29tcG9zZVRhaWxvckRCU0RMUmVzcG9uc2UiABJsChVDcmVhdGVUYWlsb3JEQlNlcnZpY2USJy50YWlsb3IudjEuQ3JlYXRlVGFpbG9yREJTZXJ2aWNlUmVxdWVzdBooLnRhaWxvci52MS5DcmVhdGVUYWlsb3JEQlNlcnZpY2VSZXNwb25zZSIAEmwKFVVwZGF0ZVRhaWxvckRCU2VydmljZRInLnRhaWxvci52MS5VcGRhdGVUYWlsb3JEQlNlcnZpY2VSZXF1ZXN0GigudGFpbG9yLnYxLlVwZGF0ZVRhaWxvckRCU2VydmljZVJlc3BvbnNlIgASbAoVRGVsZXRlVGFpbG9yREJTZXJ2aWNlEicudGFpbG9yLnYxLkRlbGV0ZVRhaWxvckRCU2VydmljZVJlcXVlc3QaKC50YWlsb3IudjEuRGVsZXRlVGFpbG9yREJTZXJ2aWNlUmVzcG9uc2UiABJmChJHZXRUYWlsb3JEQlNlcnZpY2USJC50YWlsb3IudjEuR2V0VGFpbG9yREJTZXJ2aWNlUmVxdWVzdBolLnRhaWxvci52MS5HZXRUYWlsb3JEQlNlcnZpY2VSZXNwb25zZSIDkAIBEmwKFExpc3RUYWlsb3JEQlNlcnZpY2VzEiYudGFpbG9yLnYxLkxpc3RUYWlsb3JEQlNlcnZpY2VzUmVxdWVzdBonLnRhaWxvci52MS5MaXN0VGFpbG9yREJTZXJ2aWNlc1Jlc3BvbnNlIgOQAgESYwoSQ3JlYXRlVGFpbG9yREJUeXBlEiQudGFpbG9yLnYxLkNyZWF0ZVRhaWxvckRCVHlwZVJlcXVlc3QaJS50YWlsb3IudjEuQ3JlYXRlVGFpbG9yREJUeXBlUmVzcG9uc2UiABJjChJVcGRhdGVUYWlsb3JEQlR5cGUSJC50YWlsb3IudjEuVXBkYXRlVGFpbG9yREJUeXBlUmVxdWVzdBolLnRhaWxvci52MS5VcGRhdGVUYWlsb3JEQlR5cGVSZXNwb25zZSIAEmMKEkRlbGV0ZVRhaWxvckRCVHlwZRIkLnRhaWxvci52MS5EZWxldGVUYWlsb3JEQlR5cGVSZXF1ZXN0GiUudGFpbG9yLnYxLkRlbGV0ZVRhaWxvckRCVHlwZVJlc3BvbnNlIgASbAoVVHJ1bmNhdGVUYWlsb3JEQlR5cGVzEicudGFpbG9yLnYxLlRydW5jYXRlVGFpbG9yREJUeXBlc1JlcXVlc3QaKC50YWlsb3IudjEuVHJ1bmNhdGVUYWlsb3JEQlR5cGVzUmVzcG9uc2UiABJpChRUcnVuY2F0ZVRhaWxvckRCVHlwZRImLnRhaWxvci52MS5UcnVuY2F0ZVRhaWxvckRCVHlwZVJlcXVlc3QaJy50YWlsb3IudjEuVHJ1bmNhdGVUYWlsb3JEQlR5cGVSZXNwb25zZSIAEmMKEUxpc3RUYWlsb3JEQlR5cGVzEiMudGFpbG9yLnYxLkxpc3RUYWlsb3JEQlR5cGVzUmVxdWVzdBokLnRhaWxvci52MS5MaXN0VGFpbG9yREJUeXBlc1Jlc3BvbnNlIgOQAgESXQoPR2V0VGFpbG9yREJUeXBlEiEudGFpbG9yLnYxLkdldFRhaWxvckRCVHlwZVJlcXVlc3QaIi50YWlsb3IudjEuR2V0VGFpbG9yREJUeXBlUmVzcG9uc2UiA5ACARJ+ChtDcmVhdGVUYWlsb3JEQkdRTFBlcm1pc3Npb24SLS50YWlsb3IudjEuQ3JlYXRlVGFpbG9yREJHUUxQZXJtaXNzaW9uUmVxdWVzdBouLnRhaWxvci52MS5DcmVhdGVUYWlsb3JEQkdRTFBlcm1pc3Npb25SZXNwb25zZSIAEngKGEdldFRhaWxvckRCR1FMUGVybWlzc2lvbhIqLnRhaWxvci52MS5HZXRUYWlsb3JEQkdRTFBlcm1pc3Npb25SZXF1ZXN0GisudGFpbG9yLnYxLkdldFRhaWxvckRCR1FMUGVybWlzc2lvblJlc3BvbnNlIgOQAgESfgoaTGlzdFRhaWxvckRCR1FMUGVybWlzc2lvbnMSLC50YWlsb3IudjEuTGlzdFRhaWxvckRCR1FMUGVybWlzc2lvbnNSZXF1ZXN0Gi0udGFpbG9yLnYxLkxpc3RUYWlsb3JEQkdRTFBlcm1pc3Npb25zUmVzcG9uc2UiA5ACARJ+ChtVcGRhdGVUYWlsb3JEQkdRTFBlcm1pc3Npb24SLS50YWlsb3IudjEuVXBkYXRlVGFpbG9yREJHUUxQZXJtaXNzaW9uUmVxdWVzdBouLnRhaWxvci52MS5VcGRhdGVUYWlsb3JEQkdRTFBlcm1pc3Npb25SZXNwb25zZSIAEn4KG0RlbGV0ZVRhaWxvckRCR1FMUGVybWlzc2lvbhItLnRhaWxvci52MS5EZWxldGVUYWlsb3JEQkdRTFBlcm1pc3Npb25SZXF1ZXN0Gi4udGFpbG9yLnYxLkRlbGV0ZVRhaWxvckRCR1FMUGVybWlzc2lvblJlc3BvbnNlIgASbAoVQ3JlYXRlUGlwZWxpbmVTZXJ2aWNlEicudGFpbG9yLnYxLkNyZWF0ZVBpcGVsaW5lU2VydmljZVJlcXVlc3QaKC50YWlsb3IudjEuQ3JlYXRlUGlwZWxpbmVTZXJ2aWNlUmVzcG9uc2UiABJsChVVcGRhdGVQaXBlbGluZVNlcnZpY2USJy50YWlsb3IudjEuVXBkYXRlUGlwZWxpbmVTZXJ2aWNlUmVxdWVzdBooLnRhaWxvci52MS5VcGRhdGVQaXBlbGluZVNlcnZpY2VSZXNwb25zZSIAEmwKFURlbGV0ZVBpcGVsaW5lU2VydmljZRInLnRhaWxvci52MS5EZWxldGVQaXBlbGluZVNlcnZpY2VSZXF1ZXN0GigudGFpbG9yLnYxLkRlbGV0ZVBpcGVsaW5lU2VydmljZVJlc3BvbnNlIgASZgoSR2V0UGlwZWxpbmVTZXJ2aWNlEiQudGFpbG9yLnYxLkdldFBpcGVsaW5lU2VydmljZVJlcXVlc3QaJS50YWlsb3IudjEuR2V0UGlwZWxpbmVTZXJ2aWNlUmVzcG9uc2UiA5ACARJsChRMaXN0UGlwZWxpbmVTZXJ2aWNlcxImLnRhaWxvci52MS5MaXN0UGlwZWxpbmVTZXJ2aWNlc1JlcXVlc3QaJy50YWlsb3IudjEuTGlzdFBpcGVsaW5lU2VydmljZXNSZXNwb25zZSIDkAIBEmkKE0dldFBpcGVsaW5lUmVzb2x2ZXISJS50YWlsb3IudjEuR2V0UGlwZWxpbmVSZXNvbHZlclJlcXVlc3QaJi50YWlsb3IudjEuR2V0UGlwZWxpbmVSZXNvbHZlclJlc3BvbnNlIgOQAgESbwoVTGlzdFBpcGVsaW5lUmVzb2x2ZXJzEicudGFpbG9yLnYxLkxpc3RQaXBlbGluZVJlc29sdmVyc1JlcXVlc3QaKC50YWlsb3IudjEuTGlzdFBpcGVsaW5lUmVzb2x2ZXJzUmVzcG9uc2UiA5ACARJvChZDcmVhdGVQaXBlbGluZVJlc29sdmVyEigudGFpbG9yLnYxLkNyZWF0ZVBpcGVsaW5lUmVzb2x2ZXJSZXF1ZXN0GikudGFpbG9yLnYxLkNyZWF0ZVBpcGVsaW5lUmVzb2x2ZXJSZXNwb25zZSIAEm8KFlVwZGF0ZVBpcGVsaW5lUmVzb2x2ZXISKC50YWlsb3IudjEuVXBkYXRlUGlwZWxpbmVSZXNvbHZlclJlcXVlc3QaKS50YWlsb3IudjEuVXBkYXRlUGlwZWxpbmVSZXNvbHZlclJlc3BvbnNlIgASbwoWRGVsZXRlUGlwZWxpbmVSZXNvbHZlchIoLnRhaWxvci52MS5EZWxldGVQaXBlbGluZVJlc29sdmVyUmVxdWVzdBopLnRhaWxvci52MS5EZWxldGVQaXBlbGluZVJlc29sdmVyUmVzcG9uc2UiABJjChJDb21wb3NlUGlwZWxpbmVTREwSJC50YWlsb3IudjEuQ29tcG9zZVBpcGVsaW5lU0RMUmVxdWVzdBolLnRhaWxvci52MS5Db21wb3NlUGlwZWxpbmVTRExSZXNwb25zZSIAEpwBCiRMaXN0UGlwZWxpbmVSZXNvbHZlckV4ZWN1dGlvblJlc3VsdHMSNi50YWlsb3IudjEuTGlzdFBpcGVsaW5lUmVzb2x2ZXJFeGVjdXRpb25SZXN1bHRzUmVxdWVzdBo3LnRhaWxvci52MS5MaXN0UGlwZWxpbmVSZXNvbHZlckV4ZWN1dGlvblJlc3VsdHNSZXNwb25zZSIDkAIBEpYBCiJHZXRQaXBlbGluZVJlc29sdmVyRXhlY3V0aW9uUmVzdWx0EjQudGFpbG9yLnYxLkdldFBpcGVsaW5lUmVzb2x2ZXJFeGVjdXRpb25SZXN1bHRSZXF1ZXN0GjUudGFpbG9yLnYxLkdldFBpcGVsaW5lUmVzb2x2ZXJFeGVjdXRpb25SZXN1bHRSZXNwb25zZSIDkAIBEnIKF1Jlc3RhcnRQaXBlbGluZVJlc29sdmVyEikudGFpbG9yLnYxLlJlc3RhcnRQaXBlbGluZVJlc29sdmVyUmVxdWVzdBoqLnRhaWxvci52MS5SZXN0YXJ0UGlwZWxpbmVSZXNvbHZlclJlc3BvbnNlIgASbwoWQ3JlYXRlU3RhdGVmbG93U2VydmljZRIoLnRhaWxvci52MS5DcmVhdGVTdGF0ZWZsb3dTZXJ2aWNlUmVxdWVzdBopLnRhaWxvci52MS5DcmVhdGVTdGF0ZWZsb3dTZXJ2aWNlUmVzcG9uc2UiABJvChZVcGRhdGVTdGF0ZWZsb3dTZXJ2aWNlEigudGFpbG9yLnYxLlVwZGF0ZVN0YXRlZmxvd1NlcnZpY2VSZXF1ZXN0GikudGFpbG9yLnYxLlVwZGF0ZVN0YXRlZmxvd1NlcnZpY2VSZXNwb25zZSIAEm8KFkRlbGV0ZVN0YXRlZmxvd1NlcnZpY2USKC50YWlsb3IudjEuRGVsZXRlU3RhdGVmbG93U2VydmljZVJlcXVlc3QaKS50YWlsb3IudjEuRGVsZXRlU3RhdGVmbG93U2VydmljZVJlc3BvbnNlIgASaQoTR2V0U3RhdGVmbG93U2VydmljZRIlLnRhaWxvci52MS5HZXRTdGF0ZWZsb3dTZXJ2aWNlUmVxdWVzdBomLnRhaWxvci52MS5HZXRTdGF0ZWZsb3dTZXJ2aWNlUmVzcG9uc2UiA5ACARJvChVMaXN0U3RhdGVmbG93U2VydmljZXMSJy50YWlsb3IudjEuTGlzdFN0YXRlZmxvd1NlcnZpY2VzUmVxdWVzdBooLnRhaWxvci52MS5MaXN0U3RhdGVmbG93U2VydmljZXNSZXNwb25zZSIDkAIBEm8KFkNyZWF0ZUV4ZWN1dG9yRXhlY3V0b3ISKC50YWlsb3IudjEuQ3JlYXRlRXhlY3V0b3JFeGVjdXRvclJlcXVlc3QaKS50YWlsb3IudjEuQ3JlYXRlRXhlY3V0b3JFeGVjdXRvclJlc3BvbnNlIgASbwoWVXBkYXRlRXhlY3V0b3JFeGVjdXRvchIoLnRhaWxvci52MS5VcGRhdGVFeGVjdXRvckV4ZWN1dG9yUmVxdWVzdBopLnRhaWxvci52MS5VcGRhdGVFeGVjdXRvckV4ZWN1dG9yUmVzcG9uc2UiABJpChNHZXRFeGVjdXRvckV4ZWN1dG9yEiUudGFpbG9yLnYxLkdldEV4ZWN1dG9yRXhlY3V0b3JSZXF1ZXN0GiYudGFpbG9yLnYxLkdldEV4ZWN1dG9yRXhlY3V0b3JSZXNwb25zZSIDkAIBEm8KFkRlbGV0ZUV4ZWN1dG9yRXhlY3V0b3ISKC50YWlsb3IudjEuRGVsZXRlRXhlY3V0b3JFeGVjdXRvclJlcXVlc3QaKS50YWlsb3IudjEuRGVsZXRlRXhlY3V0b3JFeGVjdXRvclJlc3BvbnNlIgASbwoVTGlzdEV4ZWN1dG9yRXhlY3V0b3JzEicudGFpbG9yLnYxLkxpc3RFeGVjdXRvckV4ZWN1dG9yc1JlcXVlc3QaKC50YWlsb3IudjEuTGlzdEV4ZWN1dG9yRXhlY3V0b3JzUmVzcG9uc2UiA5ACARJaCg5HZXRFeGVjdXRvckpvYhIgLnRhaWxvci52MS5HZXRFeGVjdXRvckpvYlJlcXVlc3QaIS50YWlsb3IudjEuR2V0RXhlY3V0b3JKb2JSZXNwb25zZSIDkAIBEmAKEExpc3RFeGVjdXRvckpvYnMSIi50YWlsb3IudjEuTGlzdEV4ZWN1dG9ySm9ic1JlcXVlc3QaIy50YWlsb3IudjEuTGlzdEV4ZWN1dG9ySm9ic1Jlc3BvbnNlIgOQAgESdQoXTGlzdEV4ZWN1dG9ySm9iQXR0ZW1wdHMSKS50YWlsb3IudjEuTGlzdEV4ZWN1dG9ySm9iQXR0ZW1wdHNSZXF1ZXN0GioudGFpbG9yLnYxLkxpc3RFeGVjdXRvckpvYkF0dGVtcHRzUmVzcG9uc2UiA5ACARKEAQocTGlzdEV4ZWN1dG9ySW5jb21pbmdXZWJob29rcxIuLnRhaWxvci52MS5MaXN0RXhlY3V0b3JJbmNvbWluZ1dlYmhvb2tzUmVxdWVzdBovLnRhaWxvci52MS5MaXN0RXhlY3V0b3JJbmNvbWluZ1dlYmhvb2tzUmVzcG9uc2UiA5ACARJ+ChpHZXRFeGVjdXRvckluY29taW5nV2ViaG9vaxIsLnRhaWxvci52MS5HZXRFeGVjdXRvckluY29taW5nV2ViaG9va1JlcXVlc3QaLS50YWlsb3IudjEuR2V0RXhlY3V0b3JJbmNvbWluZ1dlYmhvb2tSZXNwb25zZSIDkAIBEloKD1RyaWdnZXJFeGVjdXRvchIhLnRhaWxvci52MS5UcmlnZ2VyRXhlY3V0b3JSZXF1ZXN0GiIudGFpbG9yLnYxLlRyaWdnZXJFeGVjdXRvclJlc3BvbnNlIgASdQoYQ3JlYXRlU2VjcmV0TWFuYWdlclZhdWx0EioudGFpbG9yLnYxLkNyZWF0ZVNlY3JldE1hbmFnZXJWYXVsdFJlcXVlc3QaKy50YWlsb3IudjEuQ3JlYXRlU2VjcmV0TWFuYWdlclZhdWx0UmVzcG9uc2UiABJvChVHZXRTZWNyZXRNYW5hZ2VyVmF1bHQSJy50YWlsb3IudjEuR2V0U2VjcmV0TWFuYWdlclZhdWx0UmVxdWVzdBooLnRhaWxvci52MS5HZXRTZWNyZXRNYW5hZ2VyVmF1bHRSZXNwb25zZSIDkAIBEnUKGERlbGV0ZVNlY3JldE1hbmFnZXJWYXVsdBIqLnRhaWxvci52MS5EZWxldGVTZWNyZXRNYW5hZ2VyVmF1bHRSZXF1ZXN0GisudGFpbG9yLnYxLkRlbGV0ZVNlY3JldE1hbmFnZXJWYXVsdFJlc3BvbnNlIgASdQoXTGlzdFNlY3JldE1hbmFnZXJWYXVsdHMSKS50YWlsb3IudjEuTGlzdFNlY3JldE1hbmFnZXJWYXVsdHNSZXF1ZXN0GioudGFpbG9yLnYxLkxpc3RTZWNyZXRNYW5hZ2VyVmF1bHRzUmVzcG9uc2UiA5ACARJ4ChlDcmVhdGVTZWNyZXRNYW5hZ2VyU2VjcmV0EisudGFpbG9yLnYxLkNyZWF0ZVNlY3JldE1hbmFnZXJTZWNyZXRSZXF1ZXN0GiwudGFpbG9yLnYxLkNyZWF0ZVNlY3JldE1hbmFnZXJTZWNyZXRSZXNwb25zZSIAEngKGVVwZGF0ZVNlY3JldE1hbmFnZXJTZWNyZXQSKy50YWlsb3IudjEuVXBkYXRlU2VjcmV0TWFuYWdlclNlY3JldFJlcXVlc3QaLC50YWlsb3IudjEuVXBkYXRlU2VjcmV0TWFuYWdlclNlY3JldFJlc3BvbnNlIgAScgoWR2V0U2VjcmV0TWFuYWdlclNlY3JldBIoLnRhaWxvci52MS5HZXRTZWNyZXRNYW5hZ2VyU2VjcmV0UmVxdWVzdBopLnRhaWxvci52MS5HZXRTZWNyZXRNYW5hZ2VyU2VjcmV0UmVzcG9uc2UiA5ACARJ4ChlEZWxldGVTZWNyZXRNYW5hZ2VyU2VjcmV0EisudGFpbG9yLnYxLkRlbGV0ZVNlY3JldE1hbmFnZXJTZWNyZXRSZXF1ZXN0GiwudGFpbG9yLnYxLkRlbGV0ZVNlY3JldE1hbmFnZXJTZWNyZXRSZXNwb25zZSIAEngKGExpc3RTZWNyZXRNYW5hZ2VyU2VjcmV0cxIqLnRhaWxvci52MS5MaXN0U2VjcmV0TWFuYWdlclNlY3JldHNSZXF1ZXN0GisudGFpbG9yLnYxLkxpc3RTZWNyZXRNYW5hZ2VyU2VjcmV0c1Jlc3BvbnNlIgOQAgESYAoRQ3JlYXRlQXV0aFNlcnZpY2USIy50YWlsb3IudjEuQ3JlYXRlQXV0aFNlcnZpY2VSZXF1ZXN0GiQudGFpbG9yLnYxLkNyZWF0ZUF1dGhTZXJ2aWNlUmVzcG9uc2UiABJgChFVcGRhdGVBdXRoU2VydmljZRIjLnRhaWxvci52MS5VcGRhdGVBdXRoU2VydmljZVJlcXVlc3QaJC50YWlsb3IudjEuVXBkYXRlQXV0aFNlcnZpY2VSZXNwb25zZSIAEmAKEURlbGV0ZUF1dGhTZXJ2aWNlEiMudGFpbG9yLnYxLkRlbGV0ZUF1dGhTZXJ2aWNlUmVxdWVzdBokLnRhaWxvci52MS5EZWxldGVBdXRoU2VydmljZVJlc3BvbnNlIgASWgoOR2V0QXV0aFNlcnZpY2USIC50YWlsb3IudjEuR2V0QXV0aFNlcnZpY2VSZXF1ZXN0GiEudGFpbG9yLnYxLkdldEF1dGhTZXJ2aWNlUmVzcG9uc2UiA5ACARJgChBMaXN0QXV0aFNlcnZpY2VzEiIudGFpbG9yLnYxLkxpc3RBdXRoU2VydmljZXNSZXF1ZXN0GiMudGFpbG9yLnYxLkxpc3RBdXRoU2VydmljZXNSZXNwb25zZSIDkAIBEmYKE0NyZWF0ZUF1dGhJRFBDb25maWcSJS50YWlsb3IudjEuQ3JlYXRlQXV0aElEUENvbmZpZ1JlcXVlc3QaJi50YWlsb3IudjEuQ3JlYXRlQXV0aElEUENvbmZpZ1Jlc3BvbnNlIgASZgoTVXBkYXRlQXV0aElEUENvbmZpZxIlLnRhaWxvci52MS5VcGRhdGVBdXRoSURQQ29uZmlnUmVxdWVzdBomLnRhaWxvci52MS5VcGRhdGVBdXRoSURQQ29uZmlnUmVzcG9uc2UiABJmChNEZWxldGVBdXRoSURQQ29uZmlnEiUudGFpbG9yLnYxLkRlbGV0ZUF1dGhJRFBDb25maWdSZXF1ZXN0GiYudGFpbG9yLnYxLkRlbGV0ZUF1dGhJRFBDb25maWdSZXNwb25zZSIAEmAKEEdldEF1dGhJRFBDb25maWcSIi50YWlsb3IudjEuR2V0QXV0aElEUENvbmZpZ1JlcXVlc3QaIy50YWlsb3IudjEuR2V0QXV0aElEUENvbmZpZ1Jlc3BvbnNlIgOQAgESZgoSTGlzdEF1dGhJRFBDb25maWdzEiQudGFpbG9yLnYxLkxpc3RBdXRoSURQQ29uZmlnc1JlcXVlc3QaJS50YWlsb3IudjEuTGlzdEF1dGhJRFBDb25maWdzUmVzcG9uc2UiA5ACARJyChdDcmVhdGVVc2VyUHJvZmlsZUNvbmZpZxIpLnRhaWxvci52MS5DcmVhdGVVc2VyUHJvZmlsZUNvbmZpZ1JlcXVlc3QaKi50YWlsb3IudjEuQ3JlYXRlVXNlclByb2ZpbGVDb25maWdSZXNwb25zZSIAEnIKF1VwZGF0ZVVzZXJQcm9maWxlQ29uZmlnEikudGFpbG9yLnYxLlVwZGF0ZVVzZXJQcm9maWxlQ29uZmlnUmVxdWVzdBoqLnRhaWxvci52MS5VcGRhdGVVc2VyUHJvZmlsZUNvbmZpZ1Jlc3BvbnNlIgAScgoXRGVsZXRlVXNlclByb2ZpbGVDb25maWcSKS50YWlsb3IudjEuRGVsZXRlVXNlclByb2ZpbGVDb25maWdSZXF1ZXN0GioudGFpbG9yLnYxLkRlbGV0ZVVzZXJQcm9maWxlQ29uZmlnUmVzcG9uc2UiABJsChRHZXRVc2VyUHJvZmlsZUNvbmZpZxImLnRhaWxvci52MS5HZXRVc2VyUHJvZmlsZUNvbmZpZ1JlcXVlc3QaJy50YWlsb3IudjEuR2V0VXNlclByb2ZpbGVDb25maWdSZXNwb25zZSIDkAIBEmMKEkNyZWF0ZVRlbmFudENvbmZpZxIkLnRhaWxvci52MS5DcmVhdGVUZW5hbnRDb25maWdSZXF1ZXN0GiUudGFpbG9yLnYxLkNyZWF0ZVRlbmFudENvbmZpZ1Jlc3BvbnNlIgASYwoSVXBkYXRlVGVuYW50Q29uZmlnEiQudGFpbG9yLnYxLlVwZGF0ZVRlbmFudENvbmZpZ1JlcXVlc3QaJS50YWlsb3IudjEuVXBkYXRlVGVuYW50Q29uZmlnUmVzcG9uc2UiABJjChJEZWxldGVUZW5hbnRDb25maWcSJC50YWlsb3IudjEuRGVsZXRlVGVuYW50Q29uZmlnUmVxdWVzdBolLnRhaWxvci52MS5EZWxldGVUZW5hbnRDb25maWdSZXNwb25zZSIAEl0KD0dldFRlbmFudENvbmZpZxIhLnRhaWxvci52MS5HZXRUZW5hbnRDb25maWdSZXF1ZXN0GiIudGFpbG9yLnYxLkdldFRlbmFudENvbmZpZ1Jlc3BvbnNlIgOQAgESeAoZQ3JlYXRlUGVyc29uYWxBY2Nlc3NUb2tlbhIrLnRhaWxvci52MS5DcmVhdGVQZXJzb25hbEFjY2Vzc1Rva2VuUmVxdWVzdBosLnRhaWxvci52MS5DcmVhdGVQZXJzb25hbEFjY2Vzc1Rva2VuUmVzcG9uc2UiABJ4ChlEZWxldGVQZXJzb25hbEFjY2Vzc1Rva2VuEisudGFpbG9yLnYxLkRlbGV0ZVBlcnNvbmFsQWNjZXNzVG9rZW5SZXF1ZXN0GiwudGFpbG9yLnYxLkRlbGV0ZVBlcnNvbmFsQWNjZXNzVG9rZW5SZXNwb25zZSIAEngKGExpc3RQZXJzb25hbEFjY2Vzc1Rva2VucxIqLnRhaWxvci52MS5MaXN0UGVyc29uYWxBY2Nlc3NUb2tlbnNSZXF1ZXN0GisudGFpbG9yLnYxLkxpc3RQZXJzb25hbEFjY2Vzc1Rva2Vuc1Jlc3BvbnNlIgOQAgESbAoVQ3JlYXRlQXV0aE1hY2hpbmVVc2VyEicudGFpbG9yLnYxLkNyZWF0ZUF1dGhNYWNoaW5lVXNlclJlcXVlc3QaKC50YWlsb3IudjEuQ3JlYXRlQXV0aE1hY2hpbmVVc2VyUmVzcG9uc2UiABJsChVVcGRhdGVBdXRoTWFjaGluZVVzZXISJy50YWlsb3IudjEuVXBkYXRlQXV0aE1hY2hpbmVVc2VyUmVxdWVzdBooLnRhaWxvci52MS5VcGRhdGVBdXRoTWFjaGluZVVzZXJSZXNwb25zZSIAEmwKFURlbGV0ZUF1dGhNYWNoaW5lVXNlchInLnRhaWxvci52MS5EZWxldGVBdXRoTWFjaGluZVVzZXJSZXF1ZXN0GigudGFpbG9yLnYxLkRlbGV0ZUF1dGhNYWNoaW5lVXNlclJlc3BvbnNlIgASZgoSR2V0QXV0aE1hY2hpbmVVc2VyEiQudGFpbG9yLnYxLkdldEF1dGhNYWNoaW5lVXNlclJlcXVlc3QaJS50YWlsb3IudjEuR2V0QXV0aE1hY2hpbmVVc2VyUmVzcG9uc2UiA5ACARJsChRMaXN0QXV0aE1hY2hpbmVVc2VycxImLnRhaWxvci52MS5MaXN0QXV0aE1hY2hpbmVVc2Vyc1JlcXVlc3QaJy50YWlsb3IudjEuTGlzdEF1dGhNYWNoaW5lVXNlcnNSZXNwb25zZSIDkAIBEmkKFENyZWF0ZUF1dGhTQ0lNQ29uZmlnEiYudGFpbG9yLnYxLkNyZWF0ZUF1dGhTQ0lNQ29uZmlnUmVxdWVzdBonLnRhaWxvci52MS5DcmVhdGVBdXRoU0NJTUNvbmZpZ1Jlc3BvbnNlIgASaQoUVXBkYXRlQXV0aFNDSU1Db25maWcSJi50YWlsb3IudjEuVXBkYXRlQXV0aFNDSU1Db25maWdSZXF1ZXN0GicudGFpbG9yLnYxLlVwZGF0ZUF1dGhTQ0lNQ29uZmlnUmVzcG9uc2UiABJpChREZWxldGVBdXRoU0NJTUNvbmZpZxImLnRhaWxvci52MS5EZWxldGVBdXRoU0NJTUNvbmZpZ1JlcXVlc3QaJy50YWlsb3IudjEuRGVsZXRlQXV0aFNDSU1Db25maWdSZXNwb25zZSIAEmMKEUdldEF1dGhTQ0lNQ29uZmlnEiMudGFpbG9yLnYxLkdldEF1dGhTQ0lNQ29uZmlnUmVxdWVzdBokLnRhaWxvci52MS5HZXRBdXRoU0NJTUNvbmZpZ1Jlc3BvbnNlIgOQAgESbwoWQ3JlYXRlQXV0aFNDSU1SZXNvdXJjZRIoLnRhaWxvci52MS5DcmVhdGVBdXRoU0NJTVJlc291cmNlUmVxdWVzdBopLnRhaWxvci52MS5DcmVhdGVBdXRoU0NJTVJlc291cmNlUmVzcG9uc2UiABJvChZVcGRhdGVBdXRoU0NJTVJlc291cmNlEigudGFpbG9yLnYxLlVwZGF0ZUF1dGhTQ0lNUmVzb3VyY2VSZXF1ZXN0GikudGFpbG9yLnYxLlVwZGF0ZUF1dGhTQ0lNUmVzb3VyY2VSZXNwb25zZSIAEm8KFkRlbGV0ZUF1dGhTQ0lNUmVzb3VyY2USKC50YWlsb3IudjEuRGVsZXRlQXV0aFNDSU1SZXNvdXJjZVJlcXVlc3QaKS50YWlsb3IudjEuRGVsZXRlQXV0aFNDSU1SZXNvdXJjZVJlc3BvbnNlIgASaQoTR2V0QXV0aFNDSU1SZXNvdXJjZRIlLnRhaWxvci52MS5HZXRBdXRoU0NJTVJlc291cmNlUmVxdWVzdBomLnRhaWxvci52MS5HZXRBdXRoU0NJTVJlc291cmNlUmVzcG9uc2UiA5ACARJsChRHZXRBdXRoU0NJTVJlc291cmNlcxImLnRhaWxvci52MS5HZXRBdXRoU0NJTVJlc291cmNlc1JlcXVlc3QaJy50YWlsb3IudjEuR2V0QXV0aFNDSU1SZXNvdXJjZXNSZXNwb25zZSIDkAIBElcKDkNyZWF0ZUF1dGhIb29rEiAudGFpbG9yLnYxLkNyZWF0ZUF1dGhIb29rUmVxdWVzdBohLnRhaWxvci52MS5DcmVhdGVBdXRoSG9va1Jlc3BvbnNlIgASVwoOVXBkYXRlQXV0aEhvb2sSIC50YWlsb3IudjEuVXBkYXRlQXV0aEhvb2tSZXF1ZXN0GiEudGFpbG9yLnYxLlVwZGF0ZUF1dGhIb29rUmVzcG9uc2UiABJXCg5EZWxldGVBdXRoSG9vaxIgLnRhaWxvci52MS5EZWxldGVBdXRoSG9va1JlcXVlc3QaIS50YWlsb3IudjEuRGVsZXRlQXV0aEhvb2tSZXNwb25zZSIAElEKC0dldEF1dGhIb29rEh0udGFpbG9yLnYxLkdldEF1dGhIb29rUmVxdWVzdBoeLnRhaWxvci52MS5HZXRBdXRoSG9va1Jlc3BvbnNlIgOQAgESaQoUQ3JlYXRlQXV0aENvbm5lY3Rpb24SJi50YWlsb3IudjEuQ3JlYXRlQXV0aENvbm5lY3Rpb25SZXF1ZXN0GicudGFpbG9yLnYxLkNyZWF0ZUF1dGhDb25uZWN0aW9uUmVzcG9uc2UiABJpChRVcGRhdGVBdXRoQ29ubmVjdGlvbhImLnRhaWxvci52MS5VcGRhdGVBdXRoQ29ubmVjdGlvblJlcXVlc3QaJy50YWlsb3IudjEuVXBkYXRlQXV0aENvbm5lY3Rpb25SZXNwb25zZSIAEmkKE0xpc3RBdXRoQ29ubmVjdGlvbnMSJS50YWlsb3IudjEuTGlzdEF1dGhDb25uZWN0aW9uc1JlcXVlc3QaJi50YWlsb3IudjEuTGlzdEF1dGhDb25uZWN0aW9uc1Jlc3BvbnNlIgOQAgESaQoUUmV2b2tlQXV0aENvbm5lY3Rpb24SJi50YWlsb3IudjEuUmV2b2tlQXV0aENvbm5lY3Rpb25SZXF1ZXN0GicudGFpbG9yLnYxLlJldm9rZUF1dGhDb25uZWN0aW9uUmVzcG9uc2UiABJpChREZWxldGVBdXRoQ29ubmVjdGlvbhImLnRhaWxvci52MS5EZWxldGVBdXRoQ29ubmVjdGlvblJlcXVlc3QaJy50YWlsb3IudjEuRGVsZXRlQXV0aENvbm5lY3Rpb25SZXNwb25zZSIAEoQBCh1SZWdpc3RlckF1dGhDb25uZWN0aW9uU2Vzc2lvbhIvLnRhaWxvci52MS5SZWdpc3RlckF1dGhDb25uZWN0aW9uU2Vzc2lvblJlcXVlc3QaMC50YWlsb3IudjEuUmVnaXN0ZXJBdXRoQ29ubmVjdGlvblNlc3Npb25SZXNwb25zZSIAEqIBCidFeGNoYW5nZUF1dGhDb25uZWN0aW9uQXV0aG9yaXphdGlvbkNvZGUSOS50YWlsb3IudjEuRXhjaGFuZ2VBdXRoQ29ubmVjdGlvbkF1dGhvcml6YXRpb25Db2RlUmVxdWVzdBo6LnRhaWxvci52MS5FeGNoYW5nZUF1dGhDb25uZWN0aW9uQXV0aG9yaXphdGlvbkNvZGVSZXNwb25zZSIAEm8KFkNyZWF0ZUF1dGhPQXV0aDJDbGllbnQSKC50YWlsb3IudjEuQ3JlYXRlQXV0aE9BdXRoMkNsaWVudFJlcXVlc3QaKS50YWlsb3IudjEuQ3JlYXRlQXV0aE9BdXRoMkNsaWVudFJlc3BvbnNlIgASbwoWVXBkYXRlQXV0aE9BdXRoMkNsaWVudBIoLnRhaWxvci52MS5VcGRhdGVBdXRoT0F1dGgyQ2xpZW50UmVxdWVzdBopLnRhaWxvci52MS5VcGRhdGVBdXRoT0F1dGgyQ2xpZW50UmVzcG9uc2UiABJvChZEZWxldGVBdXRoT0F1dGgyQ2xpZW50EigudGFpbG9yLnYxLkRlbGV0ZUF1dGhPQXV0aDJDbGllbnRSZXF1ZXN0GikudGFpbG9yLnYxLkRlbGV0ZUF1dGhPQXV0aDJDbGllbnRSZXNwb25zZSIAEmkKE0dldEF1dGhPQXV0aDJDbGllbnQSJS50YWlsb3IudjEuR2V0QXV0aE9BdXRoMkNsaWVudFJlcXVlc3QaJi50YWlsb3IudjEuR2V0QXV0aE9BdXRoMkNsaWVudFJlc3BvbnNlIgOQAgESbwoVTGlzdEF1dGhPQXV0aDJDbGllbnRzEicudGFpbG9yLnYxLkxpc3RBdXRoT0F1dGgyQ2xpZW50c1JlcXVlc3QaKC50YWlsb3IudjEuTGlzdEF1dGhPQXV0aDJDbGllbnRzUmVzcG9uc2UiA5ACARJpChNMaXN0RGF0YXBsYW5lRXZlbnRzEiUudGFpbG9yLnYxLkxpc3REYXRhcGxhbmVFdmVudHNSZXF1ZXN0GiYudGFpbG9yLnYxLkxpc3REYXRhcGxhbmVFdmVudHNSZXNwb25zZSIDkAIBEoQBChxMaXN0Q29udHJvbHBsYW5lQWN0aXZpdHlMb2dzEi4udGFpbG9yLnYxLkxpc3RDb250cm9scGxhbmVBY3Rpdml0eUxvZ3NSZXF1ZXN0Gi8udGFpbG9yLnYxLkxpc3RDb250cm9scGxhbmVBY3Rpdml0eUxvZ3NSZXNwb25zZSIDkAIBElcKDlRlc3RFeGVjU2NyaXB0EiAudGFpbG9yLnYxLlRlc3RFeGVjU2NyaXB0UmVxdWVzdBohLnRhaWxvci52MS5UZXN0RXhlY1NjcmlwdFJlc3BvbnNlIgASbAoUR2V0RnVuY3Rpb25FeGVjdXRpb24SJi50YWlsb3IudjEuR2V0RnVuY3Rpb25FeGVjdXRpb25SZXF1ZXN0GicudGFpbG9yLnYxLkdldEZ1bmN0aW9uRXhlY3V0aW9uUmVzcG9uc2UiA5ACARJyChZMaXN0RnVuY3Rpb25FeGVjdXRpb25zEigudGFpbG9yLnYxLkxpc3RGdW5jdGlvbkV4ZWN1dGlvbnNSZXF1ZXN0GikudGFpbG9yLnYxLkxpc3RGdW5jdGlvbkV4ZWN1dGlvbnNSZXNwb25zZSIDkAIBEnEKFkNyZWF0ZUZ1bmN0aW9uUmVnaXN0cnkSKC50YWlsb3IudjEuQ3JlYXRlRnVuY3Rpb25SZWdpc3RyeVJlcXVlc3QaKS50YWlsb3IudjEuQ3JlYXRlRnVuY3Rpb25SZWdpc3RyeVJlc3BvbnNlIgAoARJxChZVcGRhdGVGdW5jdGlvblJlZ2lzdHJ5EigudGFpbG9yLnYxLlVwZGF0ZUZ1bmN0aW9uUmVnaXN0cnlSZXF1ZXN0GikudGFpbG9yLnYxLlVwZGF0ZUZ1bmN0aW9uUmVnaXN0cnlSZXNwb25zZSIAKAESaQoTR2V0RnVuY3Rpb25SZWdpc3RyeRIlLnRhaWxvci52MS5HZXRGdW5jdGlvblJlZ2lzdHJ5UmVxdWVzdBomLnRhaWxvci52MS5HZXRGdW5jdGlvblJlZ2lzdHJ5UmVzcG9uc2UiA5ACARJyChZMaXN0RnVuY3Rpb25SZWdpc3RyaWVzEigudGFpbG9yLnYxLkxpc3RGdW5jdGlvblJlZ2lzdHJpZXNSZXF1ZXN0GikudGFpbG9yLnYxLkxpc3RGdW5jdGlvblJlZ2lzdHJpZXNSZXNwb25zZSIDkAIBEm8KFkRlbGV0ZUZ1bmN0aW9uUmVnaXN0cnkSKC50YWlsb3IudjEuRGVsZXRlRnVuY3Rpb25SZWdpc3RyeVJlcXVlc3QaKS50YWlsb3IudjEuRGVsZXRlRnVuY3Rpb25SZWdpc3RyeVJlc3BvbnNlIgASjAEKHkRvd25sb2FkRnVuY3Rpb25SZWdpc3RyeVNjcmlwdBIwLnRhaWxvci52MS5Eb3dubG9hZEZ1bmN0aW9uUmVnaXN0cnlTY3JpcHRSZXF1ZXN0GjEudGFpbG9yLnYxLkRvd25sb2FkRnVuY3Rpb25SZWdpc3RyeVNjcmlwdFJlc3BvbnNlIgOQAgEwARJyChZMaXN0TWV0ZXJSZXF1ZXN0Q291bnRzEigudGFpbG9yLnYxLkxpc3RNZXRlclJlcXVlc3RDb3VudHNSZXF1ZXN0GikudGFpbG9yLnYxLkxpc3RNZXRlclJlcXVlc3RDb3VudHNSZXNwb25zZSIDkAIBEngKGExpc3RNZXRlckV4ZWN1dGlvbkNvdW50cxIqLnRhaWxvci52MS5MaXN0TWV0ZXJFeGVjdXRpb25Db3VudHNSZXF1ZXN0GisudGFpbG9yLnYxLkxpc3RNZXRlckV4ZWN1dGlvbkNvdW50c1Jlc3BvbnNlIgOQAgESbAoUTGlzdE1ldGVyRXZlbnRDb3VudHMSJi50YWlsb3IudjEuTGlzdE1ldGVyRXZlbnRDb3VudHNSZXF1ZXN0GicudGFpbG9yLnYxLkxpc3RNZXRlckV2ZW50Q291bnRzUmVzcG9uc2UiA5ACARJyChZMaXN0TWV0ZXJBSVRva2VuVXNhZ2VzEigudGFpbG9yLnYxLkxpc3RNZXRlckFJVG9rZW5Vc2FnZXNSZXF1ZXN0GikudGFpbG9yLnYxLkxpc3RNZXRlckFJVG9rZW5Vc2FnZXNSZXNwb25zZSIDkAIBEl0KD0xpc3RJZFBTZXJ2aWNlcxIhLnRhaWxvci52MS5MaXN0SWRQU2VydmljZXNSZXF1ZXN0GiIudGFpbG9yLnYxLkxpc3RJZFBTZXJ2aWNlc1Jlc3BvbnNlIgOQAgESXQoQQ3JlYXRlSWRQU2VydmljZRIiLnRhaWxvci52MS5DcmVhdGVJZFBTZXJ2aWNlUmVxdWVzdBojLnRhaWxvci52MS5DcmVhdGVJZFBTZXJ2aWNlUmVzcG9uc2UiABJdChBVcGRhdGVJZFBTZXJ2aWNlEiIudGFpbG9yLnYxLlVwZGF0ZUlkUFNlcnZpY2VSZXF1ZXN0GiMudGFpbG9yLnYxLlVwZGF0ZUlkUFNlcnZpY2VSZXNwb25zZSIAEl0KEERlbGV0ZUlkUFNlcnZpY2USIi50YWlsb3IudjEuRGVsZXRlSWRQU2VydmljZVJlcXVlc3QaIy50YWlsb3IudjEuRGVsZXRlSWRQU2VydmljZVJlc3BvbnNlIgASVwoNR2V0SWRQU2VydmljZRIfLnRhaWxvci52MS5HZXRJZFBTZXJ2aWNlUmVxdWVzdBogLnRhaWxvci52MS5HZXRJZFBTZXJ2aWNlUmVzcG9uc2UiA5ACARJaCg5MaXN0SWRQQ2xpZW50cxIgLnRhaWxvci52MS5MaXN0SWRQQ2xpZW50c1JlcXVlc3QaIS50YWlsb3IudjEuTGlzdElkUENsaWVudHNSZXNwb25zZSIDkAIBEloKD0NyZWF0ZUlkUENsaWVudBIhLnRhaWxvci52MS5DcmVhdGVJZFBDbGllbnRSZXF1ZXN0GiIudGFpbG9yLnYxLkNyZWF0ZUlkUENsaWVudFJlc3BvbnNlIgASWgoPRGVsZXRlSWRQQ2xpZW50EiEudGFpbG9yLnYxLkRlbGV0ZUlkUENsaWVudFJlcXVlc3QaIi50YWlsb3IudjEuRGVsZXRlSWRQQ2xpZW50UmVzcG9uc2UiABJUCgxHZXRJZFBDbGllbnQSHi50YWlsb3IudjEuR2V0SWRQQ2xpZW50UmVxdWVzdBofLnRhaWxvci52MS5HZXRJZFBDbGllbnRSZXNwb25zZSIDkAIBEmYKE0NyZWF0ZVN0YXRpY1dlYnNpdGUSJS50YWlsb3IudjEuQ3JlYXRlU3RhdGljV2Vic2l0ZVJlcXVlc3QaJi50YWlsb3IudjEuQ3JlYXRlU3RhdGljV2Vic2l0ZVJlc3BvbnNlIgASZgoTVXBkYXRlU3RhdGljV2Vic2l0ZRIlLnRhaWxvci52MS5VcGRhdGVTdGF0aWNXZWJzaXRlUmVxdWVzdBomLnRhaWxvci52MS5VcGRhdGVTdGF0aWNXZWJzaXRlUmVzcG9uc2UiABJmChNEZWxldGVTdGF0aWNXZWJzaXRlEiUudGFpbG9yLnYxLkRlbGV0ZVN0YXRpY1dlYnNpdGVSZXF1ZXN0GiYudGFpbG9yLnYxLkRlbGV0ZVN0YXRpY1dlYnNpdGVSZXNwb25zZSIAEmAKEEdldFN0YXRpY1dlYnNpdGUSIi50YWlsb3IudjEuR2V0U3RhdGljV2Vic2l0ZVJlcXVlc3QaIy50YWlsb3IudjEuR2V0U3RhdGljV2Vic2l0ZVJlc3BvbnNlIgOQAgESZgoSTGlzdFN0YXRpY1dlYnNpdGVzEiQudGFpbG9yLnYxLkxpc3RTdGF0aWNXZWJzaXRlc1JlcXVlc3QaJS50YWlsb3IudjEuTGlzdFN0YXRpY1dlYnNpdGVzUmVzcG9uc2UiA5ACARJaCg9BZGRDdXN0b21Eb21haW4SIS50YWlsb3IudjEuQWRkQ3VzdG9tRG9tYWluUmVxdWVzdBoiLnRhaWxvci52MS5BZGRDdXN0b21Eb21haW5SZXNwb25zZSIAEl0KD0dldEN1c3RvbURvbWFpbhIhLnRhaWxvci52MS5HZXRDdXN0b21Eb21haW5SZXF1ZXN0GiIudGFpbG9yLnYxLkdldEN1c3RvbURvbWFpblJlc3BvbnNlIgOQAgESYwoRTGlzdEN1c3RvbURvbWFpbnMSIy50YWlsb3IudjEuTGlzdEN1c3RvbURvbWFpbnNSZXF1ZXN0GiQudGFpbG9yLnYxLkxpc3RDdXN0b21Eb21haW5zUmVzcG9uc2UiA5ACARJjChJSZW1vdmVDdXN0b21Eb21haW4SJC50YWlsb3IudjEuUmVtb3ZlQ3VzdG9tRG9tYWluUmVxdWVzdBolLnRhaWxvci52MS5SZW1vdmVDdXN0b21Eb21haW5SZXNwb25zZSIAEl0KEENyZWF0ZURlcGxveW1lbnQSIi50YWlsb3IudjEuQ3JlYXRlRGVwbG95bWVudFJlcXVlc3QaIy50YWlsb3IudjEuQ3JlYXRlRGVwbG95bWVudFJlc3BvbnNlIgASTQoKVXBsb2FkRmlsZRIcLnRhaWxvci52MS5VcGxvYWRGaWxlUmVxdWVzdBodLnRhaWxvci52MS5VcGxvYWRGaWxlUmVzcG9uc2UiACgBEmAKEVB1Ymxpc2hEZXBsb3ltZW50EiMudGFpbG9yLnYxLlB1Ymxpc2hEZXBsb3ltZW50UmVxdWVzdBokLnRhaWxvci52MS5QdWJsaXNoRGVwbG95bWVudFJlc3BvbnNlIgASVwoOQ3JlYXRlV29ya2Zsb3cSIC50YWlsb3IudjEuQ3JlYXRlV29ya2Zsb3dSZXF1ZXN0GiEudGFpbG9yLnYxLkNyZWF0ZVdvcmtmbG93UmVzcG9uc2UiABJXCg5VcGRhdGVXb3JrZmxvdxIgLnRhaWxvci52MS5VcGRhdGVXb3JrZmxvd1JlcXVlc3QaIS50YWlsb3IudjEuVXBkYXRlV29ya2Zsb3dSZXNwb25zZSIAElcKDkRlbGV0ZVdvcmtmbG93EiAudGFpbG9yLnYxLkRlbGV0ZVdvcmtmbG93UmVxdWVzdBohLnRhaWxvci52MS5EZWxldGVXb3JrZmxvd1Jlc3BvbnNlIgASUQoLR2V0V29ya2Zsb3cSHS50YWlsb3IudjEuR2V0V29ya2Zsb3dSZXF1ZXN0Gh4udGFpbG9yLnYxLkdldFdvcmtmbG93UmVzcG9uc2UiA5ACARJjChFHZXRXb3JrZmxvd0J5TmFtZRIjLnRhaWxvci52MS5HZXRXb3JrZmxvd0J5TmFtZVJlcXVlc3QaJC50YWlsb3IudjEuR2V0V29ya2Zsb3dCeU5hbWVSZXNwb25zZSIDkAIBElcKDUxpc3RXb3JrZmxvd3MSHy50YWlsb3IudjEuTGlzdFdvcmtmbG93c1JlcXVlc3QaIC50YWlsb3IudjEuTGlzdFdvcmtmbG93c1Jlc3BvbnNlIgOQAgESeAoZQ3JlYXRlV29ya2Zsb3dKb2JGdW5jdGlvbhIrLnRhaWxvci52MS5DcmVhdGVXb3JrZmxvd0pvYkZ1bmN0aW9uUmVxdWVzdBosLnRhaWxvci52MS5DcmVhdGVXb3JrZmxvd0pvYkZ1bmN0aW9uUmVzcG9uc2UiABJ4ChlVcGRhdGVXb3JrZmxvd0pvYkZ1bmN0aW9uEisudGFpbG9yLnYxLlVwZGF0ZVdvcmtmbG93Sm9iRnVuY3Rpb25SZXF1ZXN0GiwudGFpbG9yLnYxLlVwZGF0ZVdvcmtmbG93Sm9iRnVuY3Rpb25SZXNwb25zZSIAEngKGURlbGV0ZVdvcmtmbG93Sm9iRnVuY3Rpb24SKy50YWlsb3IudjEuRGVsZXRlV29ya2Zsb3dKb2JGdW5jdGlvblJlcXVlc3QaLC50YWlsb3IudjEuRGVsZXRlV29ya2Zsb3dKb2JGdW5jdGlvblJlc3BvbnNlIgAScgoWR2V0V29ya2Zsb3dKb2JGdW5jdGlvbhIoLnRhaWxvci52MS5HZXRXb3JrZmxvd0pvYkZ1bmN0aW9uUmVxdWVzdBopLnRhaWxvci52MS5HZXRXb3JrZmxvd0pvYkZ1bmN0aW9uUmVzcG9uc2UiA5ACARKEAQocR2V0V29ya2Zsb3dKb2JGdW5jdGlvbkJ5TmFtZRIuLnRhaWxvci52MS5HZXRXb3JrZmxvd0pvYkZ1bmN0aW9uQnlOYW1lUmVxdWVzdBovLnRhaWxvci52MS5HZXRXb3JrZmxvd0pvYkZ1bmN0aW9uQnlOYW1lUmVzcG9uc2UiA5ACARJ4ChhMaXN0V29ya2Zsb3dKb2JGdW5jdGlvbnMSKi50YWlsb3IudjEuTGlzdFdvcmtmbG93Sm9iRnVuY3Rpb25zUmVxdWVzdBorLnRhaWxvci52MS5MaXN0V29ya2Zsb3dKb2JGdW5jdGlvbnNSZXNwb25zZSIDkAIBEmwKFEdldFdvcmtmbG93RXhlY3V0aW9uEiYudGFpbG9yLnYxLkdldFdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdBonLnRhaWxvci52MS5HZXRXb3JrZmxvd0V4ZWN1dGlvblJlc3BvbnNlIgOQAgEScgoWTGlzdFdvcmtmbG93RXhlY3V0aW9ucxIoLnRhaWxvci52MS5MaXN0V29ya2Zsb3dFeGVjdXRpb25zUmVxdWVzdBopLnRhaWxvci52MS5MaXN0V29ya2Zsb3dFeGVjdXRpb25zUmVzcG9uc2UiA5ACARJgChFUZXN0U3RhcnRXb3JrZmxvdxIjLnRhaWxvci52MS5UZXN0U3RhcnRXb3JrZmxvd1JlcXVlc3QaJC50YWlsb3IudjEuVGVzdFN0YXJ0V29ya2Zsb3dSZXNwb25zZSIAEmMKElRlc3RSZXN1bWVXb3JrZmxvdxIkLnRhaWxvci52MS5UZXN0UmVzdW1lV29ya2Zsb3dSZXF1ZXN0GiUudGFpbG9yLnYxLlRlc3RSZXN1bWVXb3JrZmxvd1Jlc3BvbnNlIgASpQEKKENyZWF0ZVdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3kSOi50YWlsb3IudjEuQ3JlYXRlV29ya2Zsb3dKb2JGdW5jdGlvbkV4ZWN1dGlvblBvbGljeVJlcXVlc3QaOy50YWlsb3IudjEuQ3JlYXRlV29ya2Zsb3dKb2JGdW5jdGlvbkV4ZWN1dGlvblBvbGljeVJlc3BvbnNlIgASpQEKKFVwZGF0ZVdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3kSOi50YWlsb3IudjEuVXBkYXRlV29ya2Zsb3dKb2JGdW5jdGlvbkV4ZWN1dGlvblBvbGljeVJlcXVlc3QaOy50YWlsb3IudjEuVXBkYXRlV29ya2Zsb3dKb2JGdW5jdGlvbkV4ZWN1dGlvblBvbGljeVJlc3BvbnNlIgASpQEKKERlbGV0ZVdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3kSOi50YWlsb3IudjEuRGVsZXRlV29ya2Zsb3dKb2JGdW5jdGlvbkV4ZWN1dGlvblBvbGljeVJlcXVlc3QaOy50YWlsb3IudjEuRGVsZXRlV29ya2Zsb3dKb2JGdW5jdGlvbkV4ZWN1dGlvblBvbGljeVJlc3BvbnNlIgASnwEKJUdldFdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3kSNy50YWlsb3IudjEuR2V0V29ya2Zsb3dKb2JGdW5jdGlvbkV4ZWN1dGlvblBvbGljeVJlcXVlc3QaOC50YWlsb3IudjEuR2V0V29ya2Zsb3dKb2JGdW5jdGlvbkV4ZWN1dGlvblBvbGljeVJlc3BvbnNlIgOQAgESrgEKKkdldFdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3lCeUtleRI8LnRhaWxvci52MS5HZXRXb3JrZmxvd0pvYkZ1bmN0aW9uRXhlY3V0aW9uUG9saWN5QnlLZXlSZXF1ZXN0Gj0udGFpbG9yLnYxLkdldFdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY3lCeUtleVJlc3BvbnNlIgOQAgESqAEKKExpc3RXb3JrZmxvd0pvYkZ1bmN0aW9uRXhlY3V0aW9uUG9saWNpZXMSOi50YWlsb3IudjEuTGlzdFdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY2llc1JlcXVlc3QaOy50YWlsb3IudjEuTGlzdFdvcmtmbG93Sm9iRnVuY3Rpb25FeGVjdXRpb25Qb2xpY2llc1Jlc3BvbnNlIgOQAgESTgoLU2V0TWV0YWRhdGESHS50YWlsb3IudjEuU2V0TWV0YWRhdGFSZXF1ZXN0Gh4udGFpbG9yLnYxLlNldE1ldGFkYXRhUmVzcG9uc2UiABJRCgtHZXRNZXRhZGF0YRIdLnRhaWxvci52MS5HZXRNZXRhZGF0YVJlcXVlc3QaHi50YWlsb3IudjEuR2V0TWV0YWRhdGFSZXNwb25zZSIDkAIBEoQBCh1DcmVhdGVDb250cm9scGxhbmVNYWNoaW5lVXNlchIvLnRhaWxvci52MS5DcmVhdGVDb250cm9scGxhbmVNYWNoaW5lVXNlclJlcXVlc3QaMC50YWlsb3IudjEuQ3JlYXRlQ29udHJvbHBsYW5lTWFjaGluZVVzZXJSZXNwb25zZSIAEoQBCh1VcGRhdGVDb250cm9scGxhbmVNYWNoaW5lVXNlchIvLnRhaWxvci52MS5VcGRhdGVDb250cm9scGxhbmVNYWNoaW5lVXNlclJlcXVlc3QaMC50YWlsb3IudjEuVXBkYXRlQ29udHJvbHBsYW5lTWFjaGluZVVzZXJSZXNwb25zZSIAEn4KGkdldENvbnRyb2xwbGFuZU1hY2hpbmVVc2VyEiwudGFpbG9yLnYxLkdldENvbnRyb2xwbGFuZU1hY2hpbmVVc2VyUmVxdWVzdBotLnRhaWxvci52MS5HZXRDb250cm9scGxhbmVNYWNoaW5lVXNlclJlc3BvbnNlIgOQAgESkAEKIEdldENvbnRyb2xwbGFuZU1hY2hpbmVVc2VyQnlOYW1lEjIudGFpbG9yLnYxLkdldENvbnRyb2xwbGFuZU1hY2hpbmVVc2VyQnlOYW1lUmVxdWVzdBozLnRhaWxvci52MS5HZXRDb250cm9scGxhbmVNYWNoaW5lVXNlckJ5TmFtZVJlc3BvbnNlIgOQAgEShAEKHExpc3RDb250cm9scGxhbmVNYWNoaW5lVXNlcnMSLi50YWlsb3IudjEuTGlzdENvbnRyb2xwbGFuZU1hY2hpbmVVc2Vyc1JlcXVlc3QaLy50YWlsb3IudjEuTGlzdENvbnRyb2xwbGFuZU1hY2hpbmVVc2Vyc1Jlc3BvbnNlIgOQAgEShAEKHURlbGV0ZUNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyEi8udGFpbG9yLnYxLkRlbGV0ZUNvbnRyb2xwbGFuZU1hY2hpbmVVc2VyUmVxdWVzdBowLnRhaWxvci52MS5EZWxldGVDb250cm9scGxhbmVNYWNoaW5lVXNlclJlc3BvbnNlIgASYwoSQ3JlYXRlT1RMUEV4cG9ydGVyEiQudGFpbG9yLnYxLkNyZWF0ZU9UTFBFeHBvcnRlclJlcXVlc3QaJS50YWlsb3IudjEuQ3JlYXRlT1RMUEV4cG9ydGVyUmVzcG9uc2UiABJjChJVcGRhdGVPVExQRXhwb3J0ZXISJC50YWlsb3IudjEuVXBkYXRlT1RMUEV4cG9ydGVyUmVxdWVzdBolLnRhaWxvci52MS5VcGRhdGVPVExQRXhwb3J0ZXJSZXNwb25zZSIAEl0KD0dldE9UTFBFeHBvcnRlchIhLnRhaWxvci52MS5HZXRPVExQRXhwb3J0ZXJSZXF1ZXN0GiIudGFpbG9yLnYxLkdldE9UTFBFeHBvcnRlclJlc3BvbnNlIgOQAgESYwoRTGlzdE9UTFBFeHBvcnRlcnMSIy50YWlsb3IudjEuTGlzdE9UTFBFeHBvcnRlcnNSZXF1ZXN0GiQudGFpbG9yLnYxLkxpc3RPVExQRXhwb3J0ZXJzUmVzcG9uc2UiA5ACARJjChJEZWxldGVPVExQRXhwb3J0ZXISJC50YWlsb3IudjEuRGVsZXRlT1RMUEV4cG9ydGVyUmVxdWVzdBolLnRhaWxvci52MS5EZWxldGVPVExQRXhwb3J0ZXJSZXNwb25zZSIAEl0KEFRlc3RPVExQRXhwb3J0ZXISIi50YWlsb3IudjEuVGVzdE9UTFBFeHBvcnRlclJlcXVlc3QaIy50YWlsb3IudjEuVGVzdE9UTFBFeHBvcnRlclJlc3BvbnNlIgAShwEKHkNyZWF0ZVJlc291cmNlQXR0cmlidXRlc0NvbmZpZxIwLnRhaWxvci52MS5DcmVhdGVSZXNvdXJjZUF0dHJpYnV0ZXNDb25maWdSZXF1ZXN0GjEudGFpbG9yLnYxLkNyZWF0ZVJlc291cmNlQXR0cmlidXRlc0NvbmZpZ1Jlc3BvbnNlIgASgQEKG0dldFJlc291cmNlQXR0cmlidXRlc0NvbmZpZxItLnRhaWxvci52MS5HZXRSZXNvdXJjZUF0dHJpYnV0ZXNDb25maWdSZXF1ZXN0Gi4udGFpbG9yLnYxLkdldFJlc291cmNlQXR0cmlidXRlc0NvbmZpZ1Jlc3BvbnNlIgOQAgEShwEKHlVwZGF0ZVJlc291cmNlQXR0cmlidXRlc0NvbmZpZxIwLnRhaWxvci52MS5VcGRhdGVSZXNvdXJjZUF0dHJpYnV0ZXNDb25maWdSZXF1ZXN0GjEudGFpbG9yLnYxLlVwZGF0ZVJlc291cmNlQXR0cmlidXRlc0NvbmZpZ1Jlc3BvbnNlIgAShwEKHkRlbGV0ZVJlc291cmNlQXR0cmlidXRlc0NvbmZpZxIwLnRhaWxvci52MS5EZWxldGVSZXNvdXJjZUF0dHJpYnV0ZXNDb25maWdSZXF1ZXN0GjEudGFpbG9yLnYxLkRlbGV0ZVJlc291cmNlQXR0cmlidXRlc0NvbmZpZ1Jlc3BvbnNlIgBiBnByb3RvMw", [
|
|
938
953
|
file_tailor_v1_aigateway,
|
|
939
954
|
file_tailor_v1_application,
|
|
940
955
|
file_tailor_v1_auth,
|
|
@@ -970,5 +985,5 @@ const PingResponseSchema = /*@__PURE__*/ messageDesc(file_tailor_v1_service, 1);
|
|
|
970
985
|
const OperatorService = /*@__PURE__*/ serviceDesc(file_tailor_v1_service, 0);
|
|
971
986
|
|
|
972
987
|
//#endregion
|
|
973
|
-
export { CreateUserProfileConfigRequestSchema as $, UpdatePipelineServiceRequestSchema as A,
|
|
974
|
-
//# sourceMappingURL=service_pb-
|
|
988
|
+
export { CreateUserProfileConfigRequestSchema as $, UpdatePipelineServiceRequestSchema as A, Condition_Operator as At, UpdateExecutorExecutorRequestSchema as B, CustomDomainStatus as C, UserProfileProviderConfig_UserProfileProviderType as Ct, CreatePipelineResolverRequestSchema as D, ApplicationSchemaUpdateAttemptStatus as Dt, UpdateSecretManagerSecretRequestSchema as E, UpdateApplicationRequestSchema as Et, IdPPermissionOperator as F, CreateAuthHookRequestSchema as G, ExecutorTargetType as H, IdPPermissionPermit as I, CreateAuthOAuth2ClientRequestSchema as J, CreateAuthIDPConfigRequestSchema as K, FunctionExecution_Status as L, CreateIdPServiceRequestSchema as M, PageDirection as Mt, UpdateIdPServiceRequestSchema as N, CreatePipelineServiceRequestSchema as O, Subgraph_ServiceType as Ot, IdPLang as P, CreateTenantConfigRequestSchema as Q, FunctionExecution_Type as R, UpdateStaticWebsiteRequestSchema as S, TenantProviderConfig_TenantProviderType as St, CreateSecretManagerVaultRequestSchema as T, GetApplicationSchemaHealthResponse_ApplicationSchemaHealthStatus as Tt, ExecutorTriggerType as U, ExecutorJobStatus as V, CreateAuthConnectionRequestSchema as W, CreateAuthSCIMResourceRequestSchema as X, CreateAuthSCIMConfigRequestSchema as Y, CreateAuthServiceRequestSchema as Z, TailorDBType_Permission_Operator as _, AuthSCIMAttribute_Mutability as _t, WorkspacePlatformUserRole as a, UpdateAuthSCIMConfigRequestSchema as at, AddCustomDomainRequestSchema as b, AuthSCIMConfig_AuthorizationType as bt, UpdateWorkflowRequestSchema as c, UpdateTenantConfigRequestSchema as ct, CreateTailorDBServiceRequestSchema as d, AuthConnection_Type as dt, UpdateAuthConnectionRequestSchema as et, CreateTailorDBTypeRequestSchema as f, AuthHookPoint as ft, TailorDBGQLPermission_Permit as g, AuthOAuth2Client_GrantType as gt, TailorDBGQLPermission_Operator as h, AuthOAuth2Client_ClientType as ht, file_tailor_v1_service as i, UpdateAuthOAuth2ClientRequestSchema as it, PipelineResolver_OperationType as j, FilterSchema as jt, UpdatePipelineResolverRequestSchema as k, ConditionSchema as kt, WorkflowExecution_Status as l, UpdateUserProfileConfigRequestSchema as lt, TailorDBGQLPermission_Action as m, AuthInvokerSchema as mt, PingRequestSchema as n, UpdateAuthIDPConfigRequestSchema as nt, CreateWorkflowJobFunctionRequestSchema as o, UpdateAuthSCIMResourceRequestSchema as ot, UpdateTailorDBTypeRequestSchema as p, AuthIDPConfig_AuthType as pt, CreateAuthMachineUserRequestSchema as q, PingResponseSchema as r, UpdateAuthMachineUserRequestSchema as rt, CreateWorkflowRequestSchema as s, UpdateAuthServiceRequestSchema as st, OperatorService as t, UpdateAuthHookRequestSchema as tt, WorkflowJobExecution_Status as u, AuthConnection_Status as ut, TailorDBType_Permission_Permit as v, AuthSCIMAttribute_Type as vt, CreateSecretManagerSecretRequestSchema as w, CreateApplicationRequestSchema as wt, CreateStaticWebsiteRequestSchema as x, PATScope as xt, TailorDBType_PermitAction as y, AuthSCIMAttribute_Uniqueness as yt, CreateExecutorExecutorRequestSchema as z };
|
|
989
|
+
//# sourceMappingURL=service_pb-BsBR6yW5.mjs.map
|