@duckcodeailabs/dql-agent 1.14.1 → 1.14.3-rc.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/dist/agent-run-engine.d.ts +71 -2
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +1048 -31
- package/dist/agent-run-engine.js.map +1 -1
- package/dist/agent-run-gates.d.ts.map +1 -1
- package/dist/agent-run-gates.js +12 -0
- package/dist/agent-run-gates.js.map +1 -1
- package/dist/agent-run-planner.d.ts +6 -0
- package/dist/agent-run-planner.d.ts.map +1 -1
- package/dist/agent-run-planner.js +2 -0
- package/dist/agent-run-planner.js.map +1 -1
- package/dist/agent-run-store.d.ts.map +1 -1
- package/dist/agent-run-store.js +48 -3
- package/dist/agent-run-store.js.map +1 -1
- package/dist/agentic/analyst-loop.d.ts +7 -1
- package/dist/agentic/analyst-loop.d.ts.map +1 -1
- package/dist/agentic/analyst-loop.js +211 -28
- package/dist/agentic/analyst-loop.js.map +1 -1
- package/dist/agentic/assumptions.d.ts +1 -1
- package/dist/agentic/assumptions.d.ts.map +1 -1
- package/dist/agentic/assumptions.js.map +1 -1
- package/dist/agentic/research/synthesis.d.ts +4 -0
- package/dist/agentic/research/synthesis.d.ts.map +1 -1
- package/dist/agentic/research/synthesis.js +23 -8
- package/dist/agentic/research/synthesis.js.map +1 -1
- package/dist/agentic/research-agent.d.ts.map +1 -1
- package/dist/agentic/research-agent.js +13 -3
- package/dist/agentic/research-agent.js.map +1 -1
- package/dist/agentic/sql-authorization.d.ts +8 -0
- package/dist/agentic/sql-authorization.d.ts.map +1 -1
- package/dist/agentic/sql-authorization.js +233 -2
- package/dist/agentic/sql-authorization.js.map +1 -1
- package/dist/analytical-compatibility.d.ts.map +1 -1
- package/dist/analytical-compatibility.js +8 -1
- package/dist/analytical-compatibility.js.map +1 -1
- package/dist/analytical-failure-repair.d.ts.map +1 -1
- package/dist/analytical-failure-repair.js +6 -2
- package/dist/analytical-failure-repair.js.map +1 -1
- package/dist/analytical-frame.d.ts +23 -1
- package/dist/analytical-frame.d.ts.map +1 -1
- package/dist/analytical-frame.js +332 -17
- package/dist/analytical-frame.js.map +1 -1
- package/dist/analytical-orchestration.d.ts +613 -0
- package/dist/analytical-orchestration.d.ts.map +1 -1
- package/dist/analytical-orchestration.js +1007 -0
- package/dist/analytical-orchestration.js.map +1 -1
- package/dist/answer-loop.d.ts +110 -6
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +1180 -125
- package/dist/answer-loop.js.map +1 -1
- package/dist/answer-shape.d.ts +32 -1
- package/dist/answer-shape.d.ts.map +1 -1
- package/dist/answer-shape.js +49 -3
- package/dist/answer-shape.js.map +1 -1
- package/dist/ask-observability/index.d.ts +11 -0
- package/dist/ask-observability/index.d.ts.map +1 -0
- package/dist/ask-observability/index.js +7 -0
- package/dist/ask-observability/index.js.map +1 -0
- package/dist/ask-observability/instrumentation.d.ts +35 -0
- package/dist/ask-observability/instrumentation.d.ts.map +1 -0
- package/dist/ask-observability/instrumentation.js +472 -0
- package/dist/ask-observability/instrumentation.js.map +1 -0
- package/dist/ask-observability/observer.d.ts +62 -0
- package/dist/ask-observability/observer.d.ts.map +1 -0
- package/dist/ask-observability/observer.js +537 -0
- package/dist/ask-observability/observer.js.map +1 -0
- package/dist/ask-observability/portable.d.ts +98 -0
- package/dist/ask-observability/portable.d.ts.map +1 -0
- package/dist/ask-observability/portable.js +527 -0
- package/dist/ask-observability/portable.js.map +1 -0
- package/dist/ask-observability/store.d.ts +130 -0
- package/dist/ask-observability/store.d.ts.map +1 -0
- package/dist/ask-observability/store.js +1114 -0
- package/dist/ask-observability/store.js.map +1 -0
- package/dist/ask-observability/types.d.ts +357 -0
- package/dist/ask-observability/types.d.ts.map +1 -0
- package/dist/ask-observability/types.js +2 -0
- package/dist/ask-observability/types.js.map +1 -0
- package/dist/ask-observability/utils.d.ts +21 -0
- package/dist/ask-observability/utils.d.ts.map +1 -0
- package/dist/ask-observability/utils.js +102 -0
- package/dist/ask-observability/utils.js.map +1 -0
- package/dist/conversation/snapshot.d.ts +20 -0
- package/dist/conversation/snapshot.d.ts.map +1 -1
- package/dist/conversation/snapshot.js +30 -1
- package/dist/conversation/snapshot.js.map +1 -1
- package/dist/fixtures/ask-ai-office-shaped.d.ts +153 -0
- package/dist/fixtures/ask-ai-office-shaped.d.ts.map +1 -0
- package/dist/fixtures/ask-ai-office-shaped.js +94 -0
- package/dist/fixtures/ask-ai-office-shaped.js.map +1 -0
- package/dist/generated-analytical-proposal.d.ts +37 -1
- package/dist/generated-analytical-proposal.d.ts.map +1 -1
- package/dist/generated-analytical-proposal.js +211 -3
- package/dist/generated-analytical-proposal.js.map +1 -1
- package/dist/governed-relational-compiler.d.ts +15 -0
- package/dist/governed-relational-compiler.d.ts.map +1 -1
- package/dist/governed-relational-compiler.js +99 -1
- package/dist/governed-relational-compiler.js.map +1 -1
- package/dist/index.d.ts +11 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +38 -0
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js +31 -1
- package/dist/intent-controller.js.map +1 -1
- package/dist/meaning-resolution.d.ts +141 -2
- package/dist/meaning-resolution.d.ts.map +1 -1
- package/dist/meaning-resolution.js +444 -30
- package/dist/meaning-resolution.js.map +1 -1
- package/dist/metadata/analysis-planner.d.ts.map +1 -1
- package/dist/metadata/analysis-planner.js +144 -7
- package/dist/metadata/analysis-planner.js.map +1 -1
- package/dist/metadata/block-fit.d.ts +18 -0
- package/dist/metadata/block-fit.d.ts.map +1 -1
- package/dist/metadata/block-fit.js +250 -38
- package/dist/metadata/block-fit.js.map +1 -1
- package/dist/metadata/catalog.d.ts.map +1 -1
- package/dist/metadata/catalog.js +58 -12
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/meaning-evidence.d.ts +19 -3
- package/dist/metadata/meaning-evidence.d.ts.map +1 -1
- package/dist/metadata/meaning-evidence.js +518 -54
- package/dist/metadata/meaning-evidence.js.map +1 -1
- package/dist/plan-execution-adapter.d.ts +9 -1
- package/dist/plan-execution-adapter.d.ts.map +1 -1
- package/dist/plan-execution-adapter.js +93 -13
- package/dist/plan-execution-adapter.js.map +1 -1
- package/dist/provider-egress.d.ts +24 -10
- package/dist/provider-egress.d.ts.map +1 -1
- package/dist/provider-egress.js +22 -17
- package/dist/provider-egress.js.map +1 -1
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +10 -9
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/dispatch.d.ts +27 -1
- package/dist/providers/dispatch.d.ts.map +1 -1
- package/dist/providers/dispatch.js +63 -1
- package/dist/providers/dispatch.js.map +1 -1
- package/dist/providers/gemini.js +10 -10
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/index.d.ts +2 -2
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/ollama.js +15 -15
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/openai.js +22 -22
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/types.d.ts +52 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/relationship-proof.d.ts +81 -0
- package/dist/relationship-proof.d.ts.map +1 -1
- package/dist/relationship-proof.js +228 -4
- package/dist/relationship-proof.js.map +1 -1
- package/dist/research-loop.d.ts.map +1 -1
- package/dist/research-loop.js +23 -1
- package/dist/research-loop.js.map +1 -1
- package/dist/resolved-analytical-plan.d.ts +22 -1
- package/dist/resolved-analytical-plan.d.ts.map +1 -1
- package/dist/resolved-analytical-plan.js +773 -49
- package/dist/resolved-analytical-plan.js.map +1 -1
- package/dist/router.d.ts +14 -4
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +3668 -425
- package/dist/router.js.map +1 -1
- package/dist/semantic-bridge/compose.d.ts.map +1 -1
- package/dist/semantic-bridge/compose.js +23 -4
- package/dist/semantic-bridge/compose.js.map +1 -1
- package/dist/semantic-bridge/member-select.d.ts.map +1 -1
- package/dist/semantic-bridge/member-select.js +39 -21
- package/dist/semantic-bridge/member-select.js.map +1 -1
- package/package.json +5 -5
|
@@ -3,7 +3,9 @@ export function requestedShapeFromPlan(plan) {
|
|
|
3
3
|
return plan.requestedShape;
|
|
4
4
|
}
|
|
5
5
|
export function certifiedFitAllowsTier1(fit) {
|
|
6
|
-
return (fit.kind === 'exact' || fit.kind === 'trim_safe')
|
|
6
|
+
return (fit.kind === 'exact' || fit.kind === 'trim_safe')
|
|
7
|
+
&& fit.confidence === 'high'
|
|
8
|
+
&& (fit.missingMeasures?.length ?? 0) === 0;
|
|
7
9
|
}
|
|
8
10
|
/**
|
|
9
11
|
* THE single authority for "may this certified block TERMINATE the answer".
|
|
@@ -22,6 +24,18 @@ export function certifiedFitAllowsTier1(fit) {
|
|
|
22
24
|
*/
|
|
23
25
|
export function certifiedTerminationVerdict(input) {
|
|
24
26
|
const { fit } = input;
|
|
27
|
+
// A Tier-1 block executes its authored SQL verbatim. It cannot claim a
|
|
28
|
+
// requested metric that is absent from its own output contract merely
|
|
29
|
+
// because the block is tagged/retrieved near that metric. Keep this before
|
|
30
|
+
// every bypass: an example or a named block can accept grain, never replace
|
|
31
|
+
// `revenue` with `lifetime_spend`.
|
|
32
|
+
if ((fit.missingMeasures?.length ?? 0) > 0) {
|
|
33
|
+
return {
|
|
34
|
+
allow: false,
|
|
35
|
+
fit,
|
|
36
|
+
reason: `the block does not declare required measure output(s): ${fit.missingMeasures.join(', ')}`,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
25
39
|
if (fit.unsupportedFilters.length > 0) {
|
|
26
40
|
return {
|
|
27
41
|
allow: false,
|
|
@@ -77,33 +91,57 @@ export function droppedAttributeRequest(question, mappedOutputs) {
|
|
|
77
91
|
export function evaluateCertifiedBlockFit(input) {
|
|
78
92
|
const requested = requestedShapeFromPlan(input.plan);
|
|
79
93
|
const block = blockShape(input.block);
|
|
80
|
-
if (input.definitionLookup || input.exactExampleMatch) {
|
|
81
|
-
return {
|
|
82
|
-
kind: 'exact',
|
|
83
|
-
confidence: 'high',
|
|
84
|
-
reasons: [input.definitionLookup ? 'definition lookup bypasses shape fit' : 'question matches a certified example'],
|
|
85
|
-
missingOutputs: [],
|
|
86
|
-
missingDimensions: [],
|
|
87
|
-
unsupportedFilters: [],
|
|
88
|
-
topNAction: 'none',
|
|
89
|
-
inferredContract: block.inferredContract,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
94
|
const requestedDimensions = requested.dimensions.map(canonicalToken).filter(Boolean);
|
|
93
|
-
|
|
95
|
+
// Preserve the authored measure identity rather than collapsing it into a
|
|
96
|
+
// broad analytical family (`lifetime_spend` and `revenue` used to both
|
|
97
|
+
// become `revenue`). The helper below admits only conservative, role-safe
|
|
98
|
+
// aliases such as total/gross/net/monthly revenue; it never accepts tags,
|
|
99
|
+
// examples, or descriptive prose as output authority.
|
|
100
|
+
const requestedMeasures = requestedMetricOutputIdentities(requested.measures);
|
|
94
101
|
const requiredOutputs = requested.requiredOutputs.map(canonicalColumn).filter(Boolean);
|
|
95
102
|
const blockDimensions = new Set(block.dimensions);
|
|
96
103
|
const blockMeasures = new Set(block.measures);
|
|
97
104
|
const blockOutputs = new Set(block.outputs);
|
|
98
|
-
const missingDimensions = uniqueStrings(requestedDimensions.filter((dimension) => !blockDimensions.has(dimension)
|
|
99
|
-
|
|
105
|
+
const missingDimensions = uniqueStrings(requestedDimensions.filter((dimension) => !blockDimensions.has(dimension)
|
|
106
|
+
&& !outputHasEntity(blockOutputs, dimension)
|
|
107
|
+
&& !uniqueExactExampleMemberToken(input, dimension, block)));
|
|
108
|
+
const missingOutputs = uniqueStrings(requiredOutputs.filter((output) =>
|
|
109
|
+
// A directly named artifact is an execution request, not a request for a
|
|
110
|
+
// column that happens to resemble the artifact's snake_case name. For
|
|
111
|
+
// example, `run top_customers` requires the block's declared customer
|
|
112
|
+
// output contract; it does not require a fabricated `top_customer` column.
|
|
113
|
+
!artifactNameRequirement(output, input.block)
|
|
114
|
+
&& !outputRequirementCovered(output, block)
|
|
115
|
+
// A planner may retain the spoken measure phrase in requiredOutputs as
|
|
116
|
+
// well as measures (for example "spent"). It is not an additional
|
|
117
|
+
// projected field once the same declared metric output has already proved
|
|
118
|
+
// coverage. The strict missingMeasures gate below remains authoritative.
|
|
119
|
+
&& !(requestedMeasures.includes(canonicalMetricOutputIdentity(output))
|
|
120
|
+
&& declaredQualifiedOutputCoversMeasure(block, canonicalMetricOutputIdentity(output), input.question, input.plan, requested))
|
|
121
|
+
// An exact authored example may contain member words (for example
|
|
122
|
+
// "food" and "drink") which the parser retains as output requests even
|
|
123
|
+
// though the block's declared `category` output is the actual role. Only
|
|
124
|
+
// the unique exact-example contract may consume those unstructured member
|
|
125
|
+
// tokens. Measures, structural role outputs, filters, grain, ranking and
|
|
126
|
+
// static scope remain independently validated below.
|
|
127
|
+
&& !uniqueExactExampleMemberToken(input, output, block)));
|
|
128
|
+
const missingMeasures = uniqueStrings(requestedMeasures.filter((measure) => !blockMeasures.has(measure)
|
|
129
|
+
&& !declaredQualifiedOutputCoversMeasure(block, measure, input.question, input.plan, requested)));
|
|
100
130
|
const measureMatch = requestedMeasures.length === 0
|
|
101
|
-
||
|
|
131
|
+
|| missingMeasures.length === 0;
|
|
102
132
|
const unsupportedFilters = unsupportedRequestedFilters(requested, block, input.question);
|
|
103
133
|
const unentailedScope = [...block.staticScopeTokens]
|
|
104
134
|
.filter((token) => !questionEntailsScopeToken(input.question, input.plan, requested, token));
|
|
135
|
+
const requestedGrainIsExactExampleMemberNoise = requested.grain
|
|
136
|
+
&& uniqueExactExampleMemberToken(input, requested.grain, block);
|
|
105
137
|
const grainMismatch = requested.grain && block.grain && canonicalToken(requested.grain) !== block.grain
|
|
106
138
|
&& !blockDimensions.has(canonicalToken(requested.grain))
|
|
139
|
+
// The only allowed grain reinterpretation is a unique, exact authored
|
|
140
|
+
// example whose parser retained a member value (food) in `grain` rather
|
|
141
|
+
// than its declared role (category). The block still has to declare its
|
|
142
|
+
// actual grain, and all measure/output/filter/ranking checks below remain
|
|
143
|
+
// in force. This is not a general exact-example grain bypass.
|
|
144
|
+
&& !requestedGrainIsExactExampleMemberNoise
|
|
107
145
|
? `certified block grain=${block.grain} does not cover requested grain=${canonicalToken(requested.grain)}`
|
|
108
146
|
: scalarRequestCannotUseRowGrainBlock(input.plan, requestedDimensions, block)
|
|
109
147
|
? `certified block returns rows at ${block.grain ?? block.dimensions[0]} grain but the question requests one aggregate value`
|
|
@@ -112,13 +150,14 @@ export function evaluateCertifiedBlockFit(input) {
|
|
|
112
150
|
// Content the planner dropped cannot be checked against the block, so a fit
|
|
113
151
|
// computed over what survived is not evidence that the question is covered.
|
|
114
152
|
const droppedRequest = droppedAttributeRequest(input.question, requiredOutputs.length);
|
|
115
|
-
if (droppedRequest || grainMismatch || missingDimensions.length > 0 || missingOutputs.length > 0 || unsupportedFilters.length > 0 || unentailedScope.length > 0 || !measureMatch || topNAction === 'generate') {
|
|
153
|
+
if (droppedRequest || grainMismatch || missingDimensions.length > 0 || missingMeasures.length > 0 || missingOutputs.length > 0 || unsupportedFilters.length > 0 || unentailedScope.length > 0 || !measureMatch || topNAction === 'generate') {
|
|
116
154
|
const reasons = [
|
|
117
155
|
droppedRequest
|
|
118
156
|
? 'the question asks for attributes that could not be resolved against the model'
|
|
119
157
|
: '',
|
|
120
158
|
grainMismatch,
|
|
121
159
|
missingDimensions.length ? `missing requested dimensions: ${missingDimensions.join(', ')}` : '',
|
|
160
|
+
missingMeasures.length ? `missing declared measure outputs: ${missingMeasures.join(', ')}` : '',
|
|
122
161
|
missingOutputs.length ? `missing requested outputs: ${missingOutputs.join(', ')}` : '',
|
|
123
162
|
unsupportedFilters.length ? `unsupported requested filters: ${unsupportedFilters.join(', ')}` : '',
|
|
124
163
|
unentailedScope.length ? `certified static scope is not requested: ${unentailedScope.join(', ')}` : '',
|
|
@@ -129,6 +168,7 @@ export function evaluateCertifiedBlockFit(input) {
|
|
|
129
168
|
kind: block.relevance > 0 ? 'context_only' : 'not_applicable',
|
|
130
169
|
confidence: 'high',
|
|
131
170
|
reasons,
|
|
171
|
+
...(missingMeasures.length > 0 ? { missingMeasures } : {}),
|
|
132
172
|
missingOutputs,
|
|
133
173
|
missingDimensions,
|
|
134
174
|
unsupportedFilters,
|
|
@@ -161,6 +201,8 @@ export function evaluateCertifiedBlockFit(input) {
|
|
|
161
201
|
reasons: [
|
|
162
202
|
'certified block covers requested metric, grain, dimensions, filters, and outputs',
|
|
163
203
|
topNAction === 'trim' ? 'certified result can be trimmed to requested top-N' : '',
|
|
204
|
+
input.exactExampleMatch ? 'question matches a certified example after declared-output validation' : '',
|
|
205
|
+
input.definitionLookup ? 'definition lookup remains within the declared-output contract' : '',
|
|
164
206
|
block.inferredContract ? 'block contract was safely inferred from available metadata' : '',
|
|
165
207
|
].filter(Boolean),
|
|
166
208
|
missingOutputs: [],
|
|
@@ -185,7 +227,13 @@ function scalarRequestCannotUseRowGrainBlock(plan, requestedDimensions, block) {
|
|
|
185
227
|
function blockShape(block) {
|
|
186
228
|
const record = block;
|
|
187
229
|
const payload = isMetadataObject(block) ? block.payload ?? {} : record;
|
|
188
|
-
|
|
230
|
+
// DQL parser payloads retain authored block SQL as `query`; older catalog
|
|
231
|
+
// paths call it `sql`. Both are an artifact-owned output contract, unlike
|
|
232
|
+
// a description or retrieval tag.
|
|
233
|
+
const sql = stringValue(payload.sql)
|
|
234
|
+
?? stringValue(payload.query)
|
|
235
|
+
?? stringValue(record.sql)
|
|
236
|
+
?? stringValue(record.query);
|
|
189
237
|
const descriptiveText = [
|
|
190
238
|
stringValue(record.name),
|
|
191
239
|
stringValue(record.description),
|
|
@@ -214,12 +262,7 @@ function blockShape(block) {
|
|
|
214
262
|
]);
|
|
215
263
|
const measures = uniqueStrings([
|
|
216
264
|
...outputs.filter(isMeasureLike),
|
|
217
|
-
|
|
218
|
-
].map(canonicalToken).filter(Boolean));
|
|
219
|
-
const textTokens = new Set(tokensFromValue([
|
|
220
|
-
descriptiveText,
|
|
221
|
-
JSON.stringify(payload),
|
|
222
|
-
].filter(Boolean).join(' ')).map(canonicalToken));
|
|
265
|
+
].map(canonicalMetricOutputIdentity).filter(Boolean));
|
|
223
266
|
const filters = uniqueStrings([
|
|
224
267
|
...stringArray(payload.allowedFilters),
|
|
225
268
|
...stringArray(record.allowedFilters),
|
|
@@ -258,7 +301,6 @@ function blockShape(block) {
|
|
|
258
301
|
scopeTokens,
|
|
259
302
|
staticScopeTokens,
|
|
260
303
|
limit: sql ? parseSqlLimit(sql) : undefined,
|
|
261
|
-
textTokens,
|
|
262
304
|
relevance,
|
|
263
305
|
inferredContract: stringArray(payload.declaredOutputs).length === 0 && stringArray(record.declaredOutputs).length === 0,
|
|
264
306
|
};
|
|
@@ -427,26 +469,70 @@ function outputCoversRequired(outputs, required) {
|
|
|
427
469
|
return outputs.some((output) => requiredTokens.every((token) => output.split('_').includes(token)));
|
|
428
470
|
}
|
|
429
471
|
function outputRequirementCovered(required, block) {
|
|
472
|
+
const roleRequirement = analyticalRoleOutput(required);
|
|
430
473
|
// Compound dimension outputs are contracts, not loose keyword hints.
|
|
431
474
|
// `beverage_product_types` (a count) must not satisfy `product_type`, and a
|
|
432
475
|
// block that merely touches products must not satisfy `product_name`.
|
|
433
476
|
// Requiring the concrete projected output here prevents a high-overlap block
|
|
434
477
|
// at the wrong grain from being promoted to an exact certified answer.
|
|
435
|
-
if (isStructuredDimensionOutput(
|
|
436
|
-
const directDimension =
|
|
437
|
-
return block.outputs.includes(
|
|
438
|
-
|| (directDimension !==
|
|
478
|
+
if (isStructuredDimensionOutput(roleRequirement)) {
|
|
479
|
+
const directDimension = roleRequirement.replace(/_(?:name|title)$/, '');
|
|
480
|
+
return block.outputs.includes(roleRequirement)
|
|
481
|
+
|| (directDimension !== roleRequirement && block.outputs.includes(directDimension));
|
|
439
482
|
}
|
|
440
|
-
if (outputCoversRequired(block.outputs,
|
|
483
|
+
if (outputCoversRequired(block.outputs, roleRequirement))
|
|
441
484
|
return true;
|
|
442
|
-
const token = canonicalToken(
|
|
485
|
+
const token = canonicalToken(roleRequirement);
|
|
443
486
|
if (block.dimensions.includes(token))
|
|
444
487
|
return true;
|
|
445
|
-
if (isMeasureLike(
|
|
446
|
-
return block.measures.includes(
|
|
488
|
+
if (isMeasureLike(roleRequirement) || block.measures.includes(canonicalMetricOutputIdentity(roleRequirement))) {
|
|
489
|
+
return block.measures.includes(canonicalMetricOutputIdentity(roleRequirement));
|
|
447
490
|
}
|
|
448
491
|
return false;
|
|
449
492
|
}
|
|
493
|
+
/**
|
|
494
|
+
* Exact authored examples are executable contract evidence, but only after
|
|
495
|
+
* their own block has proved the requested measure and every structural answer
|
|
496
|
+
* role. A natural-language parser can retain a member value as a dimension or
|
|
497
|
+
* output requirement: in the authored example "revenue by food and drink",
|
|
498
|
+
* `food` and `drink` are values of the declared `category` role, not physical
|
|
499
|
+
* dimensions. Do not use this escape hatch for a named block, a merely
|
|
500
|
+
* lexical example, or a shared example. That would make descriptions/tags or
|
|
501
|
+
* pooled candidates silently redefine the answer shape again.
|
|
502
|
+
*/
|
|
503
|
+
function uniqueExactExampleMemberToken(input, token, block) {
|
|
504
|
+
if (!input.exactExampleMatch || !input.uniqueExactExampleContract)
|
|
505
|
+
return false;
|
|
506
|
+
if (block.dimensions.length === 0 && block.outputs.length === 0)
|
|
507
|
+
return false;
|
|
508
|
+
const canonical = canonicalToken(token);
|
|
509
|
+
if (!canonical || block.dimensions.includes(canonical) || block.outputs.includes(canonical))
|
|
510
|
+
return false;
|
|
511
|
+
// Never reinterpret a measure, a concrete output role, a time role, or a
|
|
512
|
+
// common entity/dimension role as a member value. Those are requirements the
|
|
513
|
+
// block must declare locally even for an exact authored example.
|
|
514
|
+
if (isMeasureLike(canonical)
|
|
515
|
+
|| isStructuredDimensionOutput(canonical)
|
|
516
|
+
|| EXACT_EXAMPLE_STRUCTURAL_ROLES.has(canonical))
|
|
517
|
+
return false;
|
|
518
|
+
return true;
|
|
519
|
+
}
|
|
520
|
+
const EXACT_EXAMPLE_STRUCTURAL_ROLES = new Set([
|
|
521
|
+
'product', 'customer', 'account', 'user', 'member', 'category', 'segment',
|
|
522
|
+
'region', 'channel', 'order', 'day', 'week', 'month', 'quarter', 'year',
|
|
523
|
+
]);
|
|
524
|
+
/**
|
|
525
|
+
* Ranking words describe the result ordering, not an extra projected field.
|
|
526
|
+
* `top_customer` is therefore covered by a declared `customer_name` output
|
|
527
|
+
* only after the independent ranking/limit checks have accepted the block.
|
|
528
|
+
*/
|
|
529
|
+
function analyticalRoleOutput(value) {
|
|
530
|
+
return value.replace(/^(?:top|bottom|highest|lowest|best|worst|leading)_/, '');
|
|
531
|
+
}
|
|
532
|
+
function artifactNameRequirement(required, block) {
|
|
533
|
+
const name = canonicalColumn(block.name ?? '');
|
|
534
|
+
return Boolean(name && name === required);
|
|
535
|
+
}
|
|
450
536
|
function isStructuredDimensionOutput(value) {
|
|
451
537
|
return /_(?:id|key|name|title|type|category|segment|region|country|channel|date|month|quarter|year)$/.test(value)
|
|
452
538
|
&& !isMeasureLike(value);
|
|
@@ -460,10 +546,21 @@ function outputHasEntity(outputs, entity) {
|
|
|
460
546
|
}
|
|
461
547
|
function extractSqlOutputs(sql) {
|
|
462
548
|
const shape = extractSimpleSelectShape(sql);
|
|
463
|
-
if (
|
|
549
|
+
if (shape) {
|
|
550
|
+
return shape.selectExpressions
|
|
551
|
+
.map(selectExpressionOutputName)
|
|
552
|
+
.filter((value) => Boolean(value));
|
|
553
|
+
}
|
|
554
|
+
// A scalar certified KPI may intentionally be a source-free SELECT, for
|
|
555
|
+
// example `SELECT 42500 AS revenue_total`. It is still an authored output
|
|
556
|
+
// contract, so recognize explicit aliases without falling back to prose,
|
|
557
|
+
// tags, examples, or pooled retrieval evidence. Keep this deliberately
|
|
558
|
+
// narrow: complex/ambiguous SQL remains unavailable for Tier-1 proof.
|
|
559
|
+
const scalar = sql.trim().replace(/;\s*$/, '');
|
|
560
|
+
if (!/^select\s+/i.test(scalar) || /\bfrom\b/i.test(scalar))
|
|
464
561
|
return [];
|
|
465
|
-
return
|
|
466
|
-
.map(
|
|
562
|
+
return [...scalar.matchAll(/\bas\s+(["`]?\w+["`]?)\b/gi)]
|
|
563
|
+
.map((match) => match[1]?.replace(/^["`]|["`]$/g, '').trim())
|
|
467
564
|
.filter((value) => Boolean(value));
|
|
468
565
|
}
|
|
469
566
|
function outputContractColumns(value) {
|
|
@@ -532,7 +629,14 @@ function isDimensionLike(value) {
|
|
|
532
629
|
return /\b(account|category|channel|cohort|country|customer|date|department|geo|hour|item|location|market|member|month|order|period|person|player|product|quarter|region|segment|sku|store|team|territory|type|user|vendor|week|year)\b/.test(value);
|
|
533
630
|
}
|
|
534
631
|
function isMeasureLike(value) {
|
|
535
|
-
|
|
632
|
+
const measureTerms = new Set([
|
|
633
|
+
'amount', 'arr', 'average', 'avg', 'balance', 'booking', 'churn',
|
|
634
|
+
'conversion', 'cost', 'count', 'duration', 'expense', 'growth', 'kpi',
|
|
635
|
+
'margin', 'metric', 'mrr', 'number', 'order', 'point', 'profit',
|
|
636
|
+
'quantity', 'rate', 'revenue', 'sale', 'score', 'spend', 'stat', 'total',
|
|
637
|
+
'usage', 'value', 'volume',
|
|
638
|
+
]);
|
|
639
|
+
return tokensFromValue(value).some((token) => measureTerms.has(token));
|
|
536
640
|
}
|
|
537
641
|
function tokensFromValue(value) {
|
|
538
642
|
return value
|
|
@@ -548,6 +652,114 @@ function tokensFromValue(value) {
|
|
|
548
652
|
function canonicalColumn(value) {
|
|
549
653
|
return tokensFromValue(value).join('_');
|
|
550
654
|
}
|
|
655
|
+
/**
|
|
656
|
+
* Canonical identity for a declared metric OUTPUT, not a retrieval synonym.
|
|
657
|
+
*
|
|
658
|
+
* `gross_revenue`, `net_revenue`, `total_revenue`, and `monthly_revenue` are
|
|
659
|
+
* ordinary authored aliases for the same revenue output family. By contrast,
|
|
660
|
+
* `product_revenue`, `beverage_revenue`, and `lifetime_spend` retain their
|
|
661
|
+
* business qualifiers and cannot silently answer a generic `revenue` request.
|
|
662
|
+
*/
|
|
663
|
+
function canonicalMetricOutputIdentity(value) {
|
|
664
|
+
const aliases = {
|
|
665
|
+
avg: 'average',
|
|
666
|
+
beverage: 'beverage',
|
|
667
|
+
drink: 'beverage',
|
|
668
|
+
score: 'point',
|
|
669
|
+
scorer: 'point',
|
|
670
|
+
scoring: 'point',
|
|
671
|
+
sale: 'revenue',
|
|
672
|
+
sales: 'revenue',
|
|
673
|
+
spend: 'revenue',
|
|
674
|
+
spent: 'revenue',
|
|
675
|
+
spending: 'revenue',
|
|
676
|
+
sum: 'total',
|
|
677
|
+
};
|
|
678
|
+
const genericModifiers = new Set([
|
|
679
|
+
'annual', 'average', 'current', 'daily', 'gross', 'monthly', 'net',
|
|
680
|
+
'quarterly', 'total', 'yearly',
|
|
681
|
+
]);
|
|
682
|
+
const tokens = tokensFromValue(value)
|
|
683
|
+
.map((token) => aliases[token] ?? token)
|
|
684
|
+
.filter(Boolean);
|
|
685
|
+
while (tokens.length > 1 && genericModifiers.has(tokens[0]))
|
|
686
|
+
tokens.shift();
|
|
687
|
+
while (tokens.length > 1 && genericModifiers.has(tokens.at(-1)))
|
|
688
|
+
tokens.pop();
|
|
689
|
+
return tokens.join('_');
|
|
690
|
+
}
|
|
691
|
+
/**
|
|
692
|
+
* Planner extraction may retain both a complete phrase (`total points`) and
|
|
693
|
+
* its presentation modifier (`total`). The latter is not an independently
|
|
694
|
+
* requested metric; requiring an output literally named `total` would reject
|
|
695
|
+
* the artifact that explicitly projects `total_points`. Retain a bare generic
|
|
696
|
+
* request only when it is all the reader supplied.
|
|
697
|
+
*/
|
|
698
|
+
function requestedMetricOutputIdentities(values) {
|
|
699
|
+
const identities = uniqueStrings(values.map(canonicalMetricOutputIdentity).filter(Boolean));
|
|
700
|
+
if (identities.length <= 1)
|
|
701
|
+
return identities;
|
|
702
|
+
return identities.filter((identity) => identity !== 'total' && identity !== 'average');
|
|
703
|
+
}
|
|
704
|
+
/**
|
|
705
|
+
* A scoped declared output can satisfy the metric root only when every
|
|
706
|
+
* business qualifier is explicitly present in the request. This keeps
|
|
707
|
+
* `beverage_revenue` valid for a beverage request while preventing the
|
|
708
|
+
* unrelated `lifetime_spend` output from standing in for bare revenue.
|
|
709
|
+
*
|
|
710
|
+
* This is still output-contract evidence: descriptions, tags, examples, and
|
|
711
|
+
* neighbouring candidates never participate in the match.
|
|
712
|
+
*/
|
|
713
|
+
function declaredQualifiedOutputCoversMeasure(block, requestedMeasure, question, plan, requested) {
|
|
714
|
+
const requestedRoot = metricOutputRoot(requestedMeasure);
|
|
715
|
+
if (!requestedRoot)
|
|
716
|
+
return false;
|
|
717
|
+
return block.measures.some((declaredMeasure) => {
|
|
718
|
+
// A count that is explicitly named after the requested entity is a
|
|
719
|
+
// role-correct authored metric identity: `customer_count` answers "how
|
|
720
|
+
// many customers", and `order_count` answers "total orders". Require
|
|
721
|
+
// the count/total language in the question so a generic entity reference
|
|
722
|
+
// cannot become a count merely through retrieval proximity.
|
|
723
|
+
if (declaredMeasure === `${requestedMeasure}_count`
|
|
724
|
+
&& /\b(?:how\s+many|count|number\s+of|total)\b/i.test(question)) {
|
|
725
|
+
return true;
|
|
726
|
+
}
|
|
727
|
+
if (metricOutputRoot(declaredMeasure) !== requestedRoot)
|
|
728
|
+
return false;
|
|
729
|
+
const qualifiers = metricOutputQualifiers(declaredMeasure);
|
|
730
|
+
if (qualifiers.length > 0 && qualifiers.every((qualifier) => questionEntailsOutputQualifier(question, plan, requested, qualifier)))
|
|
731
|
+
return true;
|
|
732
|
+
// Conversely, a generic output becomes a qualified answer only when the
|
|
733
|
+
// block itself declares every qualifier as a dimension/output at the
|
|
734
|
+
// requested grain. This admits an authored `{ product_name, revenue }`
|
|
735
|
+
// block for product revenue, while never allowing a lifetime-spend block
|
|
736
|
+
// to impersonate generic revenue.
|
|
737
|
+
const requestedQualifiers = metricOutputQualifiers(requestedMeasure);
|
|
738
|
+
return declaredMeasure === requestedRoot
|
|
739
|
+
&& requestedQualifiers.length > 0
|
|
740
|
+
&& requestedQualifiers.every((qualifier) => block.dimensions.includes(canonicalToken(qualifier))
|
|
741
|
+
|| outputHasEntity(new Set(block.outputs), canonicalToken(qualifier)))
|
|
742
|
+
&& requestedQualifiers.every((qualifier) => questionEntailsOutputQualifier(question, plan, requested, qualifier));
|
|
743
|
+
});
|
|
744
|
+
}
|
|
745
|
+
function metricOutputRoot(identity) {
|
|
746
|
+
return identity.split('_').filter(Boolean).at(-1);
|
|
747
|
+
}
|
|
748
|
+
function metricOutputQualifiers(identity) {
|
|
749
|
+
const tokens = identity.split('_').filter(Boolean);
|
|
750
|
+
return tokens.slice(0, -1);
|
|
751
|
+
}
|
|
752
|
+
function questionEntailsOutputQualifier(question, plan, requested, qualifier) {
|
|
753
|
+
if (questionEntailsScopeToken(question, plan, requested, qualifier))
|
|
754
|
+
return true;
|
|
755
|
+
// This is a role-safe authored alias pair, not a broad retrieval synonym.
|
|
756
|
+
// It is deliberately limited to the fixture/domain-neutral vocabulary that
|
|
757
|
+
// the planner itself treats as the same category restriction.
|
|
758
|
+
if (qualifier === 'beverage') {
|
|
759
|
+
return /\b(?:beverage|drink)\b/i.test(question);
|
|
760
|
+
}
|
|
761
|
+
return false;
|
|
762
|
+
}
|
|
551
763
|
function canonicalToken(value) {
|
|
552
764
|
const tokens = tokensFromValue(value);
|
|
553
765
|
if (tokens.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-fit.js","sourceRoot":"","sources":["../../src/metadata/block-fit.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AActF,MAAM,UAAU,sBAAsB,CAAC,IAA0B;IAC/D,OAAO,IAAI,CAAC,cAAc,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAsB;IAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC;AACzF,CAAC;AAWD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAI3C;IACC,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,IAAI,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,GAAG;YACH,MAAM,EAAE,8CAA8C,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B;SACrH,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,uBAAuB,KAAK,CAAC,MAAM,8BAA8B,EAAE,CAAC;IAC/H,CAAC;IACD,IAAI,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;IACnF,CAAC;IACD,IAAI,KAAK,CAAC,qBAAqB;WAC1B,GAAG,CAAC,IAAI,KAAK,OAAO;WACpB,GAAG,CAAC,UAAU,KAAK,QAAQ;WAC3B,GAAG,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;WAClC,GAAG,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;WAC/B,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,gDAAgD,EAAE,CAAC;IACxF,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,gCAAgC,EAAE,CAAC;AAC3F,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB,EAAE,aAAqB;IAC7E,MAAM,KAAK,GAAG,sDAAsD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpF,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,YAAY,CAAC;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5B,uEAAuE;IACvE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAMzC;IACC,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QACtD,OAAO;YACL,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,sCAAsC,CAAC;YACnH,cAAc,EAAE,EAAE;YAClB,iBAAiB,EAAE,EAAE;YACrB,kBAAkB,EAAE,EAAE;YACtB,UAAU,EAAE,MAAM;YAClB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC,CAAC;IACJ,CAAC;IAED,MAAM,mBAAmB,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrF,MAAM,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjF,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE5C,MAAM,iBAAiB,GAAG,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAC/E,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,SAAS,CAAC,CAC7E,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACrE,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CACzC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,KAAK,CAAC;WAC9C,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAEhJ,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzF,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC;SACjD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/F,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK;WAClG,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,yBAAyB,KAAK,CAAC,KAAK,mCAAmC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QAC1G,CAAC,CAAC,mCAAmC,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,CAAC;YAC3E,CAAC,CAAC,mCAAmC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,sDAAsD;YAC7H,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,4EAA4E;IAC5E,4EAA4E;IAC5E,MAAM,cAAc,GAAG,uBAAuB,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAEvF,IAAI,cAAc,IAAI,aAAa,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9M,MAAM,OAAO,GAAG;YACd,cAAc;gBACZ,CAAC,CAAC,+EAA+E;gBACjF,CAAC,CAAC,EAAE;YACN,aAAa;YACb,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,iCAAiC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YAC/F,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,8BAA8B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACtF,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,kCAAkC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YAClG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,4CAA4C,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACtG,CAAC,YAAY,CAAC,CAAC,CAAC,+BAA+B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YAClF,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC,CAAC,EAAE;SAC1F,CAAC,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB;YAC7D,UAAU,EAAE,MAAM;YAClB,OAAO;YACP,cAAc;YACd,iBAAiB;YACjB,kBAAkB;YAClB,aAAa;YACb,UAAU;YACV,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnJ,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,CAAC,wEAAwE,CAAC;YACnF,cAAc,EAAE,EAAE;YAClB,iBAAiB,EAAE,EAAE;YACrB,kBAAkB,EAAE,EAAE;YACtB,UAAU,EAAE,MAAM;YAClB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC,CAAC;IACJ,CAAC;IAED,MAAM,mBAAmB,GAAG,KAAK,CAAC,gBAAgB;WAC7C,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;WAC1B,mBAAmB,CAAC,MAAM,KAAK,CAAC;WAChC,eAAe,CAAC,MAAM,GAAG,CAAC;WAC1B,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAChF,OAAO;QACL,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO;QACnD,UAAU,EAAE,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;QAC5G,OAAO,EAAE;YACP,kFAAkF;YAClF,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,EAAE;YACjF,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC,EAAE;SAC3F,CAAC,MAAM,CAAC,OAAO,CAAC;QACjB,cAAc,EAAE,EAAE;QAClB,iBAAiB,EAAE,EAAE;QACrB,kBAAkB,EAAE,EAAE;QACtB,UAAU;QACV,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;KACzC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mCAAmC,CAC1C,IAA0B,EAC1B,mBAA6B,EAC7B,KAAiB;IAEjB,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACjF,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACrC,CAAC;AAkBD,SAAS,UAAU,CAAC,KAA8B;IAChD,MAAM,MAAM,GAAG,KAA2C,CAAC;IAC3D,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,eAAe,GAAG;QACtB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QACxB,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;QAC/B,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC;QAChC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;QAC/B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,IAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;KAClI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,GAAG,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC;QACvC,GAAG,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC;QACtC,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;QAC/B,GAAG,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC;QACtC,GAAG,qBAAqB,CAAC,OAAO,CAAC,cAAc,CAAC;QAChD,GAAG,UAAU;KACd,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,MAAM,kBAAkB,GAAG,aAAa,CAAC;QACvC,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;QAClC,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;QACjC,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;QAClC,GAAG,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;KAC1G,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,aAAa,CAAC;QAC/B,GAAG,kBAAkB;QACrB,GAAG,sBAAsB,CAAC,eAAe,CAAC;KAC3C,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC7B,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;QAChC,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;KAC1D,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC;QACzC,eAAe;QACf,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KACxB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,GAAG,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC;QACtC,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;QACrC,GAAG,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC;QAC7C,GAAG,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC;QAC5C,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC;QACrC,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC;KACrC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,MAAM,uBAAuB,GAAG;QAC9B,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC;QACnC,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;QAClC,GAAG,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC;QACnC,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;QAClC,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;KACtC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;IACzF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;QAChC,GAAG,eAAe,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/E,GAAG,iBAAiB;KACrB,CAAC,CAAC;IACH,MAAM,SAAS,GAAG;QAChB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QACxB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,IAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACjI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,IAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACnI,uBAAuB;KACxB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5F,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrH,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IACvE,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,UAAU;QACV,QAAQ;QACR,OAAO;QACP,OAAO;QACP,WAAW;QACX,iBAAiB;QACjB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3C,UAAU;QACV,SAAS;QACT,gBAAgB,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC;KACxH,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,IAAI,YAAY,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/H,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;SACjC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAC1E,GAAG,CAAC,cAAc,CAAC;SACnB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAQ,IAA2B,CAAC,IAAI,KAAK,QAAQ;QACtH,CAAC,CAAC,CAAE,IAAyB,CAAC,IAAI,CAAC;QACnC,CAAC,CAAC,EAAE,CAAC,CAAC;AACV,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,wCAAwC,CAAC,EAAE,CAAC;QAClF,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC5B,OAAO,CAAC,+EAA+E,EAAE,EAAE,CAAC;aAC5F,IAAI,EAAE,CAAC;QACV,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACvF,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,2BAA2B,CAAC,SAA+B,EAAE,KAAiB,EAAE,QAAgB;IACvG,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,IAAI,EAAE,CAAC;IACtD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC1G,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7D,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvG,yEAAyE;QACzE,yEAAyE;QACzE,4EAA4E;QAC5E,2EAA2E;QAC3E,oEAAoE;QACpE,0EAA0E;QAC1E,wEAAwE;QACxE,sCAAsC;QACtC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,8BAA8B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACzG,OAAO,gBAAgB,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,aAAa,CAAC;QACrC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QACtF,GAAG,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;KAC3E,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACnG,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACpF,wEAAwE;IACxE,6DAA6D;IAC7D,+EAA+E;IAC/E,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACpG,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,uEAAuE;IACvE,6EAA6E;IAC7E,4EAA4E;IAC5E,0CAA0C;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,wEAAwE;QACxE,0EAA0E;QAC1E,wEAAwE;QACxE,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YAC/D,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAChD,OAAO,IAAI,MAAM,CAAC,oBAAoB,KAAK,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;mBAChE,IAAI,MAAM,CAAC,MAAM,KAAK,uBAAuB,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QACH,IAAI,oBAAoB;YAAE,OAAO,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACpE,OAAO,aAAa,CAAC;YACnB,GAAG,mBAAmB;YACtB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC3E,CAAC,CAAC;IACL,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,aAAa,CAAC;QACnB,GAAG,mBAAmB;QACtB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACxG,CAAC,CAAC;AACL,CAAC;AAED,SAAS,8BAA8B,CAAC,MAAc,EAAE,SAAiB;IACvE,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;SACpD,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC;IAC7G,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;WACrC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,KAAK,GAAG,8EAA8E,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;SACnE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACzF,MAAM,iBAAiB,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,oEAAoE,CAAC,CAAC;SAChH,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,yBAAyB,CAChC,QAAgB,EAChB,IAA0B,EAC1B,SAA+B,EAC/B,KAAa;IAEb,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC;QAC9C,QAAQ;QACR,GAAG,IAAI,CAAC,WAAW;QACnB,GAAG,IAAI,CAAC,WAAW;QACnB,GAAG,SAAS,CAAC,OAAO;QACpB,GAAG,CAAC,SAAS,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;QACxE,GAAG,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,IAAI,EAAE,CAAC;KACvF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IAClC,OAAO,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,0CAA0C,CAAC,IAAI,CAAC,MAAM,CAAC;WACzD,oFAAoF,CAAC,IAAI,CAAC,MAAM,CAAC;WACjG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,aAAa,CAAC,SAA+B,EAAE,KAAiB;IACvE,IAAI,CAAC,SAAS,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACnC,IAAI,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAChC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACpD,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAClD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAiB,EAAE,QAAgB;IAC/D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC;QAC/G,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtG,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAgB,EAAE,KAAiB;IACnE,qEAAqE;IACrE,4EAA4E;IAC5E,sEAAsE;IACtE,6EAA6E;IAC7E,uEAAuE;IACvE,IAAI,2BAA2B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;eAClC,CAAC,eAAe,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,oBAAoB,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IACzH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAa;IAChD,OAAO,8FAA8F,CAAC,IAAI,CAAC,KAAK,CAAC;WAC5G,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,OAAoB,EAAE,MAAc;IAC3D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,KAAK,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,KAAK,CAAC,iBAAiB;SAC3B,GAAG,CAAC,0BAA0B,CAAC;SAC/B,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,GAAG,WAAW,CAAC,KAAK,CAAC;YACrB,GAAG,gBAAgB,CAAC,KAAK,CAAC;SAC3B,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO;QACL,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;QAC9B,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;QAC9B,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;QACnC,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACpI,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClI,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA8B;IACtD,OAAO,WAAW,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,CAAC;AACvD,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,IAA+B,CAAC;YAC/C,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAClI,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,iOAAiO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvP,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,uNAAuN,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7O,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;SACzB,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,KAAK,CAAC,KAAK,CAAC;SACZ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC;SACtD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACvF,GAAG,CAAC,WAAW,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IACnD,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,UAAU,CAAC;IAChF,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IACxE,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtI,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9E,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACrI,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACpI,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IACtI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IACxE,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,2EAA2E;IAC3E,6EAA6E;IAC7E,sEAAsE;IACtE,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/E,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"block-fit.js","sourceRoot":"","sources":["../../src/metadata/block-fit.ts"],"names":[],"mappings":"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"}
|