@inf-monkeys-tech/monkeys-cli 0.12.11 → 0.12.13

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.
@@ -34,7 +34,7 @@ const READ_VERBS = new Set([
34
34
  'watch',
35
35
  'whoami',
36
36
  ]);
37
- const READ_COMMANDS = new Set(['dev-agent work runtime filesystem tree', 'dev-agent work runtime logs']);
37
+ const READ_COMMANDS = new Set(['data asset aggregate', 'dev-agent work runtime filesystem tree', 'dev-agent work runtime logs']);
38
38
  const CREDENTIAL_PREFIXES = ['auth login', 'auth logout', 'subscription add', 'subscription remove'];
39
39
  const CREDENTIAL_COMMANDS = new Set(['auth api-key import']);
40
40
  const PRIVILEGED_COMMANDS = new Set([
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/command/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/command/metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { LocalCommand } from '../../../config/local-command.js';
2
+ export default class DataAssetAggregate extends LocalCommand {
3
+ static description: string;
4
+ static flags: {
5
+ perspective: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
6
+ 'page-all': import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
+ 'page-delay': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
8
+ 'page-limit': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
9
+ 'page-size': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
10
+ 'page-token': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ 'input-file': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ 'input-json': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ ontology: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
14
+ view: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
15
+ output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
16
+ subscription: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ team: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ };
19
+ run(): Promise<void>;
20
+ }
21
+ //# sourceMappingURL=aggregate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../src/commands/data/asset/aggregate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAmB,MAAM,kCAAkC,CAAC;AAcjF,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,YAAY;IAC1D,OAAgB,WAAW,SAAuG;IAClI,OAAgB,KAAK;;;;;;;;;;;;;;MAanB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAyEzB;CACF"}
@@ -0,0 +1,96 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { LocalCommand, localOutputFlag } from '../../../config/local-command.js';
3
+ import { normalizeAssetAggregateInput, validateAssetAggregateContinuation, } from '../../../data/asset-aggregate.js';
4
+ import { DataClient } from '../../../data/client.js';
5
+ import { dataMeta, loadDataRuntime, readOptionalJson } from '../../../data/command.js';
6
+ import { dataQueryFingerprint, decodeDataCursorState, encodeDataCursor } from '../../../data/cursor.js';
7
+ import { dataPerspectiveFlags } from '../../../data/perspective.js';
8
+ import { createDataScope } from '../../../data/scope.js';
9
+ import { CliError, EXIT_CODES } from '../../../errors/cli-error.js';
10
+ import { collectPaginated, paginationFlags, paginationInput } from '../../../pagination/index.js';
11
+ export default class DataAssetAggregate extends LocalCommand {
12
+ static description = 'Aggregate assets through the published Studio contract with bounded metrics and group pagination.';
13
+ static flags = {
14
+ ...dataPerspectiveFlags,
15
+ 'input-file': Flags.string({ exclusive: ['input-json'], summary: 'Aggregate query JSON file' }),
16
+ 'input-json': Flags.string({
17
+ exclusive: ['input-file'],
18
+ summary: 'Aggregate query JSON object containing metrics and optional filters',
19
+ }),
20
+ ontology: Flags.string({ required: true, summary: 'Ontology ID' }),
21
+ view: Flags.string({ required: true, summary: 'Readable View ID in the Ontology' }),
22
+ output: localOutputFlag,
23
+ ...paginationFlags({ defaultPageSize: 50, maxPageSize: 1000 }),
24
+ subscription: Flags.string({ summary: 'Subscription name' }),
25
+ team: Flags.string({ summary: 'Authenticated Studio Team context' }),
26
+ };
27
+ async run() {
28
+ const { flags } = await this.parse(DataAssetAggregate);
29
+ await this.emit('data asset aggregate', flags.output, async () => {
30
+ if (flags.perspective === 'kernel') {
31
+ throw new CliError('Asset aggregation currently supports the published Studio contract only.', {
32
+ code: 'DATA_PERSPECTIVE_UNSUPPORTED',
33
+ exitCode: EXIT_CODES.validation,
34
+ safeDetails: { requestState: 'not_sent' },
35
+ });
36
+ }
37
+ const query = normalizeAssetAggregateInput(await readOptionalJson(flags['input-json'], flags['input-file']), {
38
+ ontologyId: flags.ontology,
39
+ viewId: flags.view,
40
+ });
41
+ const runtime = await loadDataRuntime(flags.subscription, flags.team, flags.perspective);
42
+ if (runtime.dataContract.variant !== 'ontology-v1') {
43
+ throw new CliError('Asset aggregation requires the ontology-v1 data contract.', {
44
+ code: 'DATA_CONTRACT_UNSUPPORTED',
45
+ exitCode: EXIT_CODES.compatibility,
46
+ safeDetails: { requestState: 'not_sent' },
47
+ });
48
+ }
49
+ const scope = createDataScope({ ontology: query.ontologyId }, runtime.dataContract.variant);
50
+ const pagination = paginationInput(flags);
51
+ validateAssetAggregateContinuation(query, pagination.pageToken);
52
+ const fingerprint = dataQueryFingerprint({
53
+ context: runtime.context.fingerprint,
54
+ dataContractVariant: runtime.dataContract.variant,
55
+ dataScope: { id: scope.id, kind: scope.kind },
56
+ operation: 'data.asset.aggregate',
57
+ pageSize: pagination.pageSize,
58
+ query,
59
+ });
60
+ let binding;
61
+ const aggregatePages = [];
62
+ let itemOffset = 0;
63
+ const page = await collectPaginated(pagination, fingerprint, async (innerCursor) => {
64
+ const cursor = decodeDataCursorState(innerCursor, fingerprint);
65
+ if (cursor.perspective && cursor.perspective !== 'studio') {
66
+ throw new CliError('Aggregate continuation requires the Studio perspective.', {
67
+ code: 'PAGE_TOKEN_MISMATCH',
68
+ exitCode: EXIT_CODES.validation,
69
+ });
70
+ }
71
+ validateAssetAggregateContinuation(query, cursor.token);
72
+ const result = await new DataClient(runtime, scope).call('data.asset.aggregate', 'POST', '/api/v2/data/assets/aggregate', 'read', {
73
+ body: { ...query, pageSize: pagination.pageSize, ...(cursor.token ? { pageToken: cursor.token } : {}) },
74
+ publishedBindingOnly: true,
75
+ });
76
+ binding ??= result.binding;
77
+ const { items, ...evidence } = result.data;
78
+ aggregatePages.push({ ...evidence, itemOffset });
79
+ itemOffset += items.length;
80
+ return {
81
+ items,
82
+ nextCursor: encodeDataCursor(result.data.pageInfo.nextPageToken, fingerprint, result.binding.effectivePerspective),
83
+ total: result.data.pageInfo.total,
84
+ };
85
+ });
86
+ const singlePage = aggregatePages.length === 1 ? aggregatePages[0] : undefined;
87
+ return {
88
+ ...dataMeta(runtime, binding, scope),
89
+ ...page,
90
+ aggregatePages,
91
+ ...(singlePage ? { scanned: singlePage.scanned, truncated: singlePage.truncated, exact: singlePage.exact } : {}),
92
+ };
93
+ });
94
+ }
95
+ }
96
+ //# sourceMappingURL=aggregate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../src/commands/data/asset/aggregate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../src/commands/data/asset/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAmB,MAAM,kCAAkC,CAAC;AAUjF,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,YAAY;IACvD,OAAgB,WAAW,SAA6E;IACxG,OAAgB,KAAK;;;;;;;;;;;;;;;;;;MAenB;IACI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAgEzB;CACF"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../src/commands/data/asset/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAmB,MAAM,kCAAkC,CAAC;AAWjF,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,YAAY;IACvD,OAAgB,WAAW,SAA6E;IACxG,OAAgB,KAAK;;;;;;;;;;;;;;;;;;MAenB;IACI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAsEzB;CACF"}
@@ -1,6 +1,7 @@
1
1
  import { Flags } from '@oclif/core';
2
2
  import { LocalCommand, localOutputFlag } from '../../../config/local-command.js';
3
3
  import { DataClient } from '../../../data/client.js';
4
+ import { hasSelectedAssetRows } from '../../../data/contracts.js';
4
5
  import { mergeAssetSearchExpression, normalizeAssetSearchExpression } from '../../../data/asset-search-expression.js';
5
6
  import { dataMeta, loadDataRuntime, readOptionalJson, resolveDataRuntimePerspective } from '../../../data/command.js';
6
7
  import { dataQueryFingerprint, decodeDataCursorState, encodeDataCursor } from '../../../data/cursor.js';
@@ -43,6 +44,13 @@ export default class DataAssetSearch extends LocalCommand {
43
44
  const scope = createDataScope(scopeInput, runtime.dataContract.variant);
44
45
  runtime = prepareOntologyReadRuntime(runtime, scope, flags['resource-team']);
45
46
  const scopeId = scope.id;
47
+ if (flags.compact && hasSelectedAssetRows('data.asset.search', runtime.dataContract.variant, effectiveFilter)) {
48
+ throw new CliError('--compact cannot be combined with selected Asset fields; omit --compact to preserve assetRef and values.', {
49
+ code: 'DATA_SEARCH_OPTIONS_CONFLICT',
50
+ exitCode: EXIT_CODES.validation,
51
+ safeDetails: { requestState: 'not_sent' },
52
+ });
53
+ }
46
54
  const pagination = paginationInput(flags);
47
55
  const fingerprint = dataQueryFingerprint({
48
56
  context: runtime.context.fingerprint,
@@ -64,7 +72,6 @@ export default class DataAssetSearch extends LocalCommand {
64
72
  body: {
65
73
  ...effectiveFilter,
66
74
  ontologyId: scopeId,
67
- ...(runtime.context.team ? { teamId: runtime.context.team } : {}),
68
75
  pageSize: pagination.pageSize,
69
76
  ...(pageToken ? { pageToken } : {}),
70
77
  },
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../src/commands/data/asset/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,0CAA0C,CAAC;AACtH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACtH,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACxG,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAChH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAElG,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,YAAY;IACvD,MAAM,CAAU,WAAW,GAAG,yEAAyE,CAAC;IACxG,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,cAAc;QACjB,GAAG,qBAAqB;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,2FAA2F;SACrG,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;QACvH,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC;QACxH,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;QACjG,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;QACnG,MAAM,EAAE,eAAe;QACvB,GAAG,eAAe,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;QAC7D,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;QAC5D,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,yEAAyE,EAAE,CAAC;KAC3G,CAAC;IACF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAChE,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YAC/E,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACjF,MAAM,IAAI,QAAQ,CAAC,wCAAwC,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;YACjI,CAAC;YACD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,CAA4B,CAAC;YACtD,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACjG,MAAM,UAAU,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC;YAC3G,MAAM,eAAe,GAAG,0BAA0B,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACvE,IAAI,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACvF,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACxE,OAAO,GAAG,0BAA0B,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,oBAAoB,CAAC;gBACvC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;gBACpC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,mBAAmB,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO;gBACjD,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;gBAC7C,MAAM,EAAE,eAAe;gBACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,SAAS,EAAE,mBAAmB;aAC/B,CAAC,CAAC;YACH,IAAI,OAAuE,CAAC;YAC5E,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;gBACjF,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBAC/D,IAAI,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,oBAAoB,KAAK,MAAM,EAAE,CAAC;oBAClE,OAAO,GAAG,MAAM,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC7E,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE,qCAAqC,EAAE;oBAC3H,IAAI,EAAE;wBACJ,GAAG,eAAe;wBAClB,UAAU,EAAE,OAAO;wBACnB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACjE,QAAQ,EAAE,UAAU,CAAC,QAAQ;wBAC7B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACpC;oBACD,eAAe,EAAE,CAAC,UAAU,CAAC;iBAC9B,CAAC,CAAC;gBACH,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC;gBAC3B,OAAO;oBACL,KAAK,EAAE,KAAK,CAAC,OAAO;wBAClB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;4BAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;4BACvC,EAAE,EAAE,IAAI,CAAC,EAAE;4BACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;4BACvB,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,IAAI,EAAE,IAAI,CAAC,IAAI;yBAChB,CAAC,CAAC;wBACL,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;oBACrB,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;oBACrG,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;iBACzB,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,OAAO;gBACL,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAQ,EAAE,KAAK,CAAC;gBACrC,GAAG,IAAI;aACR,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../src/commands/data/asset/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { z } from 'zod';
2
+ import { type AssetSearchFilterExpression } from './asset-search-expression.js';
3
+ declare const METRIC_OPS: readonly ['count', 'value_count', 'distinct_count', 'sum', 'avg', 'min', 'max'];
4
+ export type AssetAggregateScalarField = {
5
+ kind: 'builtin';
6
+ name: string;
7
+ } | {
8
+ kind: 'feature';
9
+ fieldKey: string;
10
+ };
11
+ export type AssetAggregateField = AssetAggregateScalarField | {
12
+ kind: 'tag_group';
13
+ tagGroupId: string;
14
+ };
15
+ export type AssetAggregateMetric = {
16
+ op: (typeof METRIC_OPS)[number];
17
+ alias: string;
18
+ field?: AssetAggregateScalarField;
19
+ };
20
+ export interface AssetAggregateInput {
21
+ ontologyId: string;
22
+ viewId: string;
23
+ metrics: AssetAggregateMetric[];
24
+ groupBy?: {
25
+ field: AssetAggregateField;
26
+ alias: string;
27
+ };
28
+ orderBy?: {
29
+ kind: 'key' | 'metric';
30
+ alias?: string;
31
+ order?: 'asc' | 'desc';
32
+ };
33
+ expression?: AssetSearchFilterExpression;
34
+ name?: string;
35
+ creatorUserId?: string;
36
+ tags?: string[];
37
+ tagGroups?: string[][];
38
+ excludeTags?: string[];
39
+ rules?: Array<{
40
+ whenAllOf?: string[];
41
+ whenAnyOf?: string[];
42
+ requireAllOf?: string[];
43
+ requireAnyOf?: string[][];
44
+ }>;
45
+ includeForked?: boolean;
46
+ }
47
+ export declare function normalizeAssetAggregateInput(input: unknown, scope: {
48
+ ontologyId: string;
49
+ viewId: string;
50
+ }): AssetAggregateInput;
51
+ export declare function validateAssetAggregateContinuation(input: AssetAggregateInput, pageToken: string | undefined): void;
52
+ declare const aggregateResultSchema: z.ZodObject<{
53
+ items: z.ZodArray<z.ZodPipe<z.ZodUnknown, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
54
+ pageInfo: z.ZodObject<{
55
+ hasMore: z.ZodBoolean;
56
+ nextPageToken: z.ZodOptional<z.ZodString>;
57
+ pageSize: z.ZodNumber;
58
+ returned: z.ZodNumber;
59
+ total: z.ZodOptional<z.ZodNumber>;
60
+ }, z.core.$loose>;
61
+ scanned: z.ZodNumber;
62
+ truncated: z.ZodBoolean;
63
+ exact: z.ZodBoolean;
64
+ }, z.core.$loose>;
65
+ export type AssetAggregateResult = z.infer<typeof aggregateResultSchema>;
66
+ export declare function parseAssetAggregateResponse(value: unknown): AssetAggregateResult;
67
+ export {};
68
+ //# sourceMappingURL=asset-aggregate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-aggregate.d.ts","sourceRoot":"","sources":["../../src/data/asset-aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAkC,KAAK,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAuBhH,QAAA,MAAM,UAAU,YAAI,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAGnG,MAAM,MAAM,yBAAyB,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAClH,MAAM,MAAM,mBAAmB,GAAG,yBAAyB,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AACxG,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,yBAAyB,CAAA;CAAE,CAAC;AACzH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,mBAAmB,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7E,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IAClH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA8GD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,mBAAmB,CAuG/H;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAIlH;AAmBD,QAAA,MAAM,qBAAqB;;;;;;;;;;;;iBAsBvB,CAAC;AAEL,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAEhF"}
@@ -0,0 +1,303 @@
1
+ import { z } from 'zod';
2
+ import { CliError, EXIT_CODES } from '../errors/cli-error.js';
3
+ import { normalizeAssetSearchExpression } from './asset-search-expression.js';
4
+ const BUILTIN_FIELDS = new Set([
5
+ 'asset_id',
6
+ 'team_id',
7
+ 'ontology_id',
8
+ 'creator_user_id',
9
+ 'name',
10
+ 'asset_type',
11
+ 'status',
12
+ 'container_view_id',
13
+ 'created_timestamp',
14
+ 'updated_timestamp',
15
+ 'sort',
16
+ 'view_count',
17
+ 'download_count',
18
+ 'like_count',
19
+ 'is_forked',
20
+ 'tag_ids',
21
+ ]);
22
+ const NUMERIC_BUILTINS = new Set(['sort', 'view_count', 'download_count', 'like_count']);
23
+ const DATE_BUILTINS = new Set(['created_timestamp', 'updated_timestamp']);
24
+ const RESERVED_ALIASES = new Set(['key', 'key_as_string', 'doc_count', 'value', 'value_as_string', 'buckets', 'after_key', '__proto__']);
25
+ const METRIC_OPS = ['count', 'value_count', 'distinct_count', 'sum', 'avg', 'min', 'max'];
26
+ const RAW_STORAGE_FIELD = /^(?:feature_(?:num|str|bool|date|json)|properties|extra)\./i;
27
+ function invalid(message, path) {
28
+ throw new CliError(message, {
29
+ code: 'DATA_AGGREGATE_INPUT_INVALID',
30
+ exitCode: EXIT_CODES.validation,
31
+ safeDetails: { path, requestState: 'not_sent' },
32
+ });
33
+ }
34
+ function object(input, path) {
35
+ if (!input || typeof input !== 'object' || Array.isArray(input))
36
+ invalid('Aggregate input must be a JSON Object.', path);
37
+ return input;
38
+ }
39
+ function allowedKeys(input, allowed, path) {
40
+ for (const key of Object.keys(input)) {
41
+ if (!allowed.includes(key))
42
+ invalid(`Unsupported aggregate field: ${key}.`, `${path}.${key}`);
43
+ }
44
+ }
45
+ function text(input, path, maxLength = 128) {
46
+ if (typeof input !== 'string' || !input.trim() || input.trim().length > maxLength) {
47
+ invalid(`Expected a non-empty string of at most ${maxLength} characters.`, path);
48
+ }
49
+ return input.trim();
50
+ }
51
+ function strings(input, path, maximum) {
52
+ if (!Array.isArray(input) || input.length > maximum)
53
+ invalid(`Expected an array of at most ${maximum} strings.`, path);
54
+ return input.map((value, index) => text(value, `${path}[${index}]`));
55
+ }
56
+ function stringGroups(input, path) {
57
+ if (!Array.isArray(input) || input.length > 50)
58
+ invalid('Expected at most 50 tag groups.', path);
59
+ return input.map((value, index) => strings(value, `${path}[${index}]`, 100));
60
+ }
61
+ function alias(input, path, seen) {
62
+ const value = text(input, path, 64);
63
+ if (!/^[A-Za-z_][A-Za-z0-9_]{0,63}$/.test(value) || RESERVED_ALIASES.has(value))
64
+ invalid('Invalid or reserved aggregate alias.', path);
65
+ if (seen.has(value))
66
+ invalid(`Duplicate aggregate alias: ${value}.`, path);
67
+ seen.add(value);
68
+ return value;
69
+ }
70
+ function field(input, path, allowTagGroup = false) {
71
+ const value = object(input, path);
72
+ if (value.kind === 'builtin') {
73
+ allowedKeys(value, ['kind', 'name'], path);
74
+ const name = text(value.name, `${path}.name`);
75
+ if (!BUILTIN_FIELDS.has(name) || name === 'name')
76
+ invalid('Unsupported or non-aggregatable builtin field.', `${path}.name`);
77
+ return { kind: 'builtin', name };
78
+ }
79
+ if (value.kind === 'feature') {
80
+ allowedKeys(value, ['kind', 'fieldKey'], path);
81
+ const fieldKey = text(value.fieldKey, `${path}.fieldKey`);
82
+ if (RAW_STORAGE_FIELD.test(fieldKey))
83
+ invalid('Use a semantic fieldKey, not a raw storage path.', `${path}.fieldKey`);
84
+ return { kind: 'feature', fieldKey };
85
+ }
86
+ if (value.kind === 'tag_group' && allowTagGroup) {
87
+ allowedKeys(value, ['kind', 'tagGroupId'], path);
88
+ return { kind: 'tag_group', tagGroupId: text(value.tagGroupId, `${path}.tagGroupId`) };
89
+ }
90
+ invalid('Expected a supported semantic field reference.', path);
91
+ }
92
+ // The shared search normalizer reconstructs nodes; reject unknown fields before calling it.
93
+ function checkExpression(input, path, depth = 0, count = { value: 0 }) {
94
+ if (depth > 8 || ++count.value > 80)
95
+ invalid('Expression exceeds its depth or node bound.', path);
96
+ const node = object(input, path);
97
+ const fields = {
98
+ and: ['op', 'filters'],
99
+ or: ['op', 'filters'],
100
+ field: ['op', 'field', 'cmp', 'value'],
101
+ feature: ['op', 'fieldKey', 'cmp', 'value'],
102
+ tagGroup: ['op', 'allOf'],
103
+ relation: ['op', 'relationKind', 'objectKind', 'objectId'],
104
+ };
105
+ if (typeof node.op !== 'string' || !Object.hasOwn(fields, node.op))
106
+ invalid('Unsupported expression node.', `${path}.op`);
107
+ allowedKeys(node, fields[node.op], path);
108
+ if (node.op === 'and' || node.op === 'or') {
109
+ if (!Array.isArray(node.filters))
110
+ invalid('Expression filters must be an array.', `${path}.filters`);
111
+ node.filters.forEach((child, index) => checkExpression(child, `${path}.filters[${index}]`, depth + 1, count));
112
+ }
113
+ else if (node.op === 'feature') {
114
+ const fieldKey = text(node.fieldKey, `${path}.fieldKey`);
115
+ if (RAW_STORAGE_FIELD.test(fieldKey))
116
+ invalid('Use a semantic fieldKey, not a raw storage path.', `${path}.fieldKey`);
117
+ const comparator = node.cmp === undefined ? 'eq' : text(node.cmp, `${path}.cmp`);
118
+ const values = Array.isArray(node.value) ? node.value : [node.value];
119
+ if (comparator === 'between') {
120
+ if (values.length !== 2)
121
+ invalid('between requires exactly two values.', `${path}.value`);
122
+ if (typeof values[0] === 'number' && typeof values[1] === 'number' && values[0] > values[1]) {
123
+ invalid('between lower bound must not exceed its upper bound.', `${path}.value`);
124
+ }
125
+ }
126
+ else if (comparator !== 'in' && values.length !== 1) {
127
+ invalid('This feature comparator requires exactly one value.', `${path}.value`);
128
+ }
129
+ }
130
+ else if (node.op === 'field') {
131
+ text(node.field, `${path}.field`);
132
+ if (node.cmp !== undefined)
133
+ text(node.cmp, `${path}.cmp`);
134
+ if (Array.isArray(node.value))
135
+ strings(node.value, `${path}.value`, 100);
136
+ else
137
+ text(node.value, `${path}.value`);
138
+ }
139
+ else if (node.op === 'tagGroup')
140
+ strings(node.allOf, `${path}.allOf`, 20);
141
+ else {
142
+ text(node.relationKind, `${path}.relationKind`);
143
+ text(node.objectKind, `${path}.objectKind`);
144
+ text(node.objectId, `${path}.objectId`);
145
+ }
146
+ }
147
+ export function normalizeAssetAggregateInput(input, scope) {
148
+ const source = object(input, '$');
149
+ allowedKeys(source, [
150
+ 'ontologyId',
151
+ 'viewId',
152
+ 'metrics',
153
+ 'groupBy',
154
+ 'orderBy',
155
+ 'expression',
156
+ 'name',
157
+ 'creatorUserId',
158
+ 'tags',
159
+ 'tagGroups',
160
+ 'excludeTags',
161
+ 'rules',
162
+ 'includeForked',
163
+ ], '$');
164
+ const result = {
165
+ ontologyId: text(scope.ontologyId, '$.ontologyId'),
166
+ viewId: text(scope.viewId, '$.viewId'),
167
+ metrics: [],
168
+ };
169
+ for (const key of ['ontologyId', 'viewId']) {
170
+ if (Object.hasOwn(source, key) && text(source[key], `$.${key}`) !== result[key])
171
+ invalid(`Input ${key} does not match the command scope.`, `$.${key}`);
172
+ }
173
+ const aliases = new Set();
174
+ if (source.groupBy !== undefined) {
175
+ const group = object(source.groupBy, '$.groupBy');
176
+ allowedKeys(group, ['field', 'alias'], '$.groupBy');
177
+ result.groupBy = { field: field(group.field, '$.groupBy.field', true), alias: alias(group.alias, '$.groupBy.alias', aliases) };
178
+ }
179
+ if (!Array.isArray(source.metrics) || source.metrics.length < 1 || source.metrics.length > 16)
180
+ invalid('Aggregate metrics must contain between 1 and 16 entries.', '$.metrics');
181
+ result.metrics = source.metrics.map((input, index) => {
182
+ const path = `$.metrics[${index}]`;
183
+ const metric = object(input, path);
184
+ allowedKeys(metric, ['op', 'field', 'alias'], path);
185
+ if (!METRIC_OPS.includes(metric.op))
186
+ invalid('Unsupported aggregate metric.', `${path}.op`);
187
+ const op = metric.op;
188
+ const normalized = { op, alias: alias(metric.alias, `${path}.alias`, aliases) };
189
+ if (op === 'count') {
190
+ if (Object.hasOwn(metric, 'field'))
191
+ invalid('The count metric must not specify a field.', `${path}.field`);
192
+ }
193
+ else {
194
+ const metricField = field(metric.field, `${path}.field`);
195
+ if (metricField.kind === 'builtin' && ['sum', 'avg', 'min', 'max'].includes(op)) {
196
+ const numeric = NUMERIC_BUILTINS.has(metricField.name);
197
+ const date = DATE_BUILTINS.has(metricField.name) && (op === 'min' || op === 'max');
198
+ if (!numeric && !date)
199
+ invalid(`${op} does not support this builtin field type.`, `${path}.field`);
200
+ }
201
+ normalized.field = metricField;
202
+ }
203
+ return normalized;
204
+ });
205
+ if (source.orderBy !== undefined) {
206
+ if (!result.groupBy)
207
+ invalid('orderBy requires groupBy.', '$.orderBy');
208
+ const order = object(source.orderBy, '$.orderBy');
209
+ allowedKeys(order, ['kind', 'alias', 'order'], '$.orderBy');
210
+ if (order.kind !== 'key' && order.kind !== 'metric')
211
+ invalid('orderBy.kind must be key or metric.', '$.orderBy.kind');
212
+ if (order.order !== undefined && order.order !== 'asc' && order.order !== 'desc')
213
+ invalid('orderBy.order must be asc or desc.', '$.orderBy.order');
214
+ const orderAlias = order.alias === undefined ? undefined : text(order.alias, '$.orderBy.alias', 64);
215
+ if (order.kind === 'key' && orderAlias !== undefined && orderAlias !== result.groupBy.alias)
216
+ invalid('Key ordering alias must match groupBy.alias.', '$.orderBy.alias');
217
+ if (order.kind === 'metric' && !result.metrics.some((metric) => metric.alias === orderAlias))
218
+ invalid('Metric ordering must name a declared metric alias.', '$.orderBy.alias');
219
+ result.orderBy = {
220
+ kind: order.kind,
221
+ ...(orderAlias === undefined ? {} : { alias: orderAlias }),
222
+ ...(order.order === undefined ? {} : { order: order.order }),
223
+ };
224
+ }
225
+ for (const key of ['name', 'creatorUserId'])
226
+ if (source[key] !== undefined)
227
+ result[key] = text(source[key], `$.${key}`, key === 'name' ? 512 : 128);
228
+ for (const key of ['tags', 'excludeTags'])
229
+ if (source[key] !== undefined)
230
+ result[key] = strings(source[key], `$.${key}`, 200);
231
+ if (source.tagGroups !== undefined)
232
+ result.tagGroups = stringGroups(source.tagGroups, '$.tagGroups');
233
+ if (source.rules !== undefined) {
234
+ if (!Array.isArray(source.rules) || source.rules.length > 50)
235
+ invalid('Expected at most 50 tag rules.', '$.rules');
236
+ result.rules = source.rules.map((input, index) => {
237
+ const path = `$.rules[${index}]`;
238
+ const rule = object(input, path);
239
+ allowedKeys(rule, ['whenAllOf', 'whenAnyOf', 'requireAllOf', 'requireAnyOf'], path);
240
+ return Object.fromEntries(Object.entries(rule).map(([key, value]) => [
241
+ key,
242
+ key === 'requireAnyOf' ? stringGroups(value, `${path}.${key}`) : strings(value, `${path}.${key}`, 100),
243
+ ]));
244
+ });
245
+ }
246
+ if (source.includeForked !== undefined) {
247
+ if (typeof source.includeForked !== 'boolean')
248
+ invalid('includeForked must be boolean.', '$.includeForked');
249
+ result.includeForked = source.includeForked;
250
+ }
251
+ if (source.expression !== undefined) {
252
+ checkExpression(source.expression, '$.expression');
253
+ result.expression = normalizeAssetSearchExpression(source.expression);
254
+ }
255
+ return result;
256
+ }
257
+ export function validateAssetAggregateContinuation(input, pageToken) {
258
+ if (pageToken && (!input.groupBy || input.orderBy?.kind === 'metric')) {
259
+ invalid('Continuation requires groupBy with key ordering; metric ordering has no continuation.', '$.pageToken');
260
+ }
261
+ }
262
+ function finiteJson(value) {
263
+ if (value === null || typeof value === 'string' || typeof value === 'boolean')
264
+ return true;
265
+ if (typeof value === 'number')
266
+ return Number.isFinite(value);
267
+ if (Array.isArray(value))
268
+ return value.every(finiteJson);
269
+ return Boolean(value && typeof value === 'object' && Object.values(value).every(finiteJson));
270
+ }
271
+ // Check before z.record reconstructs the row and discards an own __proto__ key.
272
+ const aggregateRowSchema = z
273
+ .unknown()
274
+ .refine((value) => !value || typeof value !== 'object' || !Object.hasOwn(value, '__proto__'), 'Aggregate rows cannot contain the reserved __proto__ alias.')
275
+ .pipe(z.record(z.string(), z.unknown()))
276
+ .refine(finiteJson, 'Aggregate values must be finite JSON values.');
277
+ const aggregateResultSchema = z
278
+ .object({
279
+ items: z.array(aggregateRowSchema).max(1000),
280
+ pageInfo: z
281
+ .object({
282
+ hasMore: z.boolean(),
283
+ nextPageToken: z.string().min(1).optional(),
284
+ pageSize: z.number().int().min(1).max(1000),
285
+ returned: z.number().int().nonnegative(),
286
+ total: z.number().int().nonnegative().optional(),
287
+ })
288
+ .passthrough(),
289
+ scanned: z.number().int().nonnegative(),
290
+ truncated: z.boolean(),
291
+ exact: z.boolean(),
292
+ })
293
+ .passthrough()
294
+ .superRefine((value, context) => {
295
+ if (value.pageInfo.hasMore !== Boolean(value.pageInfo.nextPageToken))
296
+ context.addIssue({ code: 'custom', message: 'Aggregate continuation metadata is inconsistent.', path: ['pageInfo'] });
297
+ if (value.pageInfo.returned !== value.items.length || value.items.length > value.pageInfo.pageSize)
298
+ context.addIssue({ code: 'custom', message: 'Aggregate returned count does not match its page.', path: ['pageInfo', 'returned'] });
299
+ });
300
+ export function parseAssetAggregateResponse(value) {
301
+ return aggregateResultSchema.parse(value);
302
+ }
303
+ //# sourceMappingURL=asset-aggregate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-aggregate.js","sourceRoot":"","sources":["../../src/data/asset-aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAoC,MAAM,8BAA8B,CAAC;AAEhH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,UAAU;IACV,SAAS;IACT,aAAa;IACb,iBAAiB;IACjB,MAAM;IACN,YAAY;IACZ,QAAQ;IACR,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,MAAM;IACN,YAAY;IACZ,gBAAgB;IAChB,YAAY;IACZ,WAAW;IACX,SAAS;CACV,CAAC,CAAC;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;AACzF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAC1E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AACzI,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AACnG,MAAM,iBAAiB,GAAG,6DAA6D,CAAC;AAqBxF,SAAS,OAAO,CAAC,OAAe,EAAE,IAAY;IAC5C,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE;QAC1B,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,UAAU,CAAC,UAAU;QAC/B,WAAW,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,MAAM,CAAC,KAAc,EAAE,IAAY;IAC1C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,wCAAwC,EAAE,IAAI,CAAC,CAAC;IACzH,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,KAA8B,EAAE,OAA0B,EAAE,IAAY;IAC3F,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,gCAAgC,GAAG,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED,SAAS,IAAI,CAAC,KAAc,EAAE,IAAY,EAAE,SAAS,GAAG,GAAG;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAClF,OAAO,CAAC,0CAA0C,SAAS,cAAc,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,IAAY,EAAE,OAAe;IAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO;QAAE,OAAO,CAAC,gCAAgC,OAAO,WAAW,EAAE,IAAI,CAAC,CAAC;IACvH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,IAAY;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,CAAC,iCAAiC,EAAE,IAAI,CAAC,CAAC;IACjG,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,KAAK,CAAC,KAAc,EAAE,IAAY,EAAE,IAAiB;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,sCAAsC,EAAE,IAAI,CAAC,CAAC;IACvI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,8BAA8B,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3E,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,KAAK,CAAC,KAAc,EAAE,IAAY,EAAE,aAAa,GAAG,KAAK;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,CAAC,gDAAgD,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;QAC5H,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC;QAC1D,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,kDAAkD,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC;QACtH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACvC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,aAAa,EAAE,CAAC;QAChD,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC;IACzF,CAAC;IACD,OAAO,CAAC,gDAAgD,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,4FAA4F;AAC5F,SAAS,eAAe,CAAC,KAAc,EAAE,IAAY,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;IACpF,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,GAAG,EAAE;QAAE,OAAO,CAAC,6CAA6C,EAAE,IAAI,CAAC,CAAC;IAClG,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,MAAM,MAAM,GAA6B;QACvC,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;QACtB,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;QACtC,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC;QAC3C,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;QACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC;KAC3D,CAAC;IACF,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,CAAC,8BAA8B,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;IAC1H,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAE,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,sCAAsC,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC;QACrG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,IAAI,YAAY,KAAK,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAChH,CAAC;SAAM,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC;QACzD,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,kDAAkD,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC;QACtH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,sCAAsC,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;YAC1F,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5F,OAAO,CAAC,sDAAsD,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,qDAAqD,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;QAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,EAAE,GAAG,CAAC,CAAC;;YACpE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,IAAI,CAAC,EAAE,KAAK,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,EAAE,EAAE,CAAC,CAAC;SACvE,CAAC;QACJ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,eAAe,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,aAAa,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAc,EAAE,KAA6C;IACxG,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClC,WAAW,CACT,MAAM,EACN;QACE,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;QACT,SAAS;QACT,YAAY;QACZ,MAAM;QACN,eAAe;QACf,MAAM;QACN,WAAW;QACX,aAAa;QACb,OAAO;QACP,eAAe;KAChB,EACD,GAAG,CACJ,CAAC;IACF,MAAM,MAAM,GAAwB;QAClC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC;QAClD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;QACtC,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAU,EAAE,CAAC;QACpD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC;YAC7E,OAAO,CAAC,SAAS,GAAG,oCAAoC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAClD,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,CAAC;IACjI,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;QAC3F,OAAO,CAAC,0DAA0D,EAAE,WAAW,CAAC,CAAC;IACnF,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAwB,EAAE;QACzE,MAAM,IAAI,GAAG,aAAa,KAAK,GAAG,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAgC,CAAC;YAAE,OAAO,CAAC,+BAA+B,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;QAC1H,MAAM,EAAE,GAAG,MAAM,CAAC,EAAgC,CAAC;QACnD,MAAM,UAAU,GAAyB,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QACtG,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;YACnB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAAE,OAAO,CAAC,4CAA4C,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;QAC7G,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,QAAQ,CAA8B,CAAC;YACtF,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAChF,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC;gBACnF,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI;oBAAE,OAAO,CAAC,GAAG,EAAE,4CAA4C,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC;YACrG,CAAC;YACD,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC;QACjC,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAClD,WAAW,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,qCAAqC,EAAE,gBAAgB,CAAC,CAAC;QACtH,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM;YAC9E,OAAO,CAAC,oCAAoC,EAAE,iBAAiB,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACpG,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK;YACzF,OAAO,CAAC,8CAA8C,EAAE,iBAAiB,CAAC,CAAC;QAC7E,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC;YAC1F,OAAO,CAAC,oDAAoD,EAAE,iBAAiB,CAAC,CAAC;QACnF,MAAM,CAAC,OAAO,GAAG;YACf,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;YAC1D,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;SAC7D,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,eAAe,CAAU;QAClD,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzG,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,CAAU;QAAE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IACvI,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACrG,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC;QACnH,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC/C,MAAM,IAAI,GAAG,WAAW,KAAK,GAAG,CAAC;YACjC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjC,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;YACpF,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBACzC,GAAG;gBACH,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,CAAC;aACvG,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,SAAS;YAAE,OAAO,CAAC,gCAAgC,EAAE,iBAAiB,CAAC,CAAC;QAC5G,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC9C,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpC,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACnD,MAAM,CAAC,UAAU,GAAG,8BAA8B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,KAA0B,EAAE,SAA6B;IAC1G,IAAI,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QACtE,OAAO,CAAC,uFAAuF,EAAE,aAAa,CAAC,CAAC;IAClH,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC3F,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACzD,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,CAAC;KACzB,OAAO,EAAE;KACT,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,EACpF,6DAA6D,CAC9D;KACA,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KACvC,MAAM,CAAC,UAAU,EAAE,8CAA8C,CAAC,CAAC;AAEtE,MAAM,qBAAqB,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAC5C,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;KACjD,CAAC;SACD,WAAW,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACvC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;CACnB,CAAC;KACD,WAAW,EAAE;KACb,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAC9B,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;QAClE,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kDAAkD,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACxH,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ;QAChG,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mDAAmD,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;AACvI,CAAC,CAAC,CAAC;AAIL,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,OAAO,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC"}