From cff35b9c035d8996277a1b9d817c2382d67fe078 Mon Sep 17 00:00:00 2001
From: Iwan Kelaiah
Date: Sun, 9 Aug 2026 22:17:00 +1000
Subject: [PATCH] feat(v1.10.0): column lineage foundations (scopes, bindings,
diagnostics)
Single-statement column scopes and bindings for qualified refs, aliases, projections, CTEs, derived tables, and catalogue-backed wildcard expansion; expression-level provenance; explicit column_ambiguous/column_opaque region diagnostics. src/columns.ts + tests/columns.ts (18 fixtures), wired into analyse(), metrics corpus, docs, and example; dist rebuilt in sync.
---
README.md | 74 +-
ROADMAP.md | 2 +
dist/src/columns.js | 842 ++++++++++++++++++
dist/src/columns.js.map | 1 +
dist/src/ir.js | 23 +-
dist/src/ir.js.map | 2 +-
dist/tests/columns.js | 348 ++++++++
dist/tests/columns.js.map | 1 +
dist/tests/metrics.js | 20 +-
dist/tests/metrics.js.map | 2 +-
dist/tests/tests.js | 13 +
dist/tests/tests.js.map | 2 +-
docs/PR_NOTE_1.10.0.md | 109 +++
docs/RELEASE_NOTE_v1.10.0.md | 94 ++
...trics-v1.9.0.json => metrics-v1.10.0.json} | 4 +-
examples/dbo.v1100_demo.sql | 104 +++
index.html | 1 +
package.json | 2 +-
scripts/metrics.mjs | 2 +-
src/columns.ts | 704 +++++++++++++++
src/ir.ts | 21 +-
src/types.d.ts | 84 ++
tests/columns.ts | 377 ++++++++
tests/fuzz.html | 1 +
tests/index.html | 2 +
tests/metrics.html | 4 +-
tests/metrics.ts | 20 +-
tests/tests.ts | 16 +
28 files changed, 2834 insertions(+), 41 deletions(-)
create mode 100644 dist/src/columns.js
create mode 100644 dist/src/columns.js.map
create mode 100644 dist/tests/columns.js
create mode 100644 dist/tests/columns.js.map
create mode 100644 docs/PR_NOTE_1.10.0.md
create mode 100644 docs/RELEASE_NOTE_v1.10.0.md
rename docs/{metrics-v1.9.0.json => metrics-v1.10.0.json} (92%)
create mode 100644 examples/dbo.v1100_demo.sql
create mode 100644 src/columns.ts
create mode 100644 tests/columns.ts
diff --git a/README.md b/README.md
index 740f517..9e148dc 100644
--- a/README.md
+++ b/README.md
@@ -52,7 +52,8 @@ For the first stable release, see
[RELEASE_NOTE_v1.6.0.md](docs/RELEASE_NOTE_v1.6.0.md). For the v1.7.0 release, see
[RELEASE_NOTE_v1.7.0.md](docs/RELEASE_NOTE_v1.7.0.md). For the v1.8.0 release, see
[RELEASE_NOTE_v1.8.0.md](docs/RELEASE_NOTE_v1.8.0.md). For the v1.9.0 release, see
-[RELEASE_NOTE_v1.9.0.md](docs/RELEASE_NOTE_v1.9.0.md).
+[RELEASE_NOTE_v1.9.0.md](docs/RELEASE_NOTE_v1.9.0.md). For the v1.10.0 release, see
+[RELEASE_NOTE_v1.10.0.md](docs/RELEASE_NOTE_v1.10.0.md).
## Start here
@@ -68,7 +69,7 @@ For the first stable release, see
## 60-second quick start
-1. Download the `v1.9.0` archive from
+1. Download the `v1.10.0` archive from
[GitHub Releases](https://github.com/ikelaiah/ProcFlow/releases) or clone
this repository.
2. Extract the complete archive. Keep `index.html`, `styles.css`, `dist/`, and
@@ -135,7 +136,7 @@ statements.
analysis to another engineer.
ProcFlow imports SQL text, not report-definition files. SSRS/RDL import is on
-the roadmap; for v1.9.0, paste or export the dataset SQL itself.
+the roadmap; for v1.10.0, paste or export the dataset SQL itself.
## What ProcFlow can show
@@ -197,7 +198,8 @@ The analysis panel provides four release-safety signals:
- **Coverage** is the percentage of body tokens consumed by the parser.
- **Diagnostics** reports uncertain dialects, balance errors, missing block
terminators, unconsumed input, invalid actions, opaque dynamic SQL, opaque
- table expressions, heuristic `APPLY` targets, and catalogue problems
+ table expressions, heuristic `APPLY` targets, ambiguous and opaque column
+ references (v1.10.0), and catalogue problems
(malformed or conflicting catalogue data, and unproven partial matches
reported at the exact reference). Informational annotations
(for example a correctly resolved recursive CTE) are displayed separately and
@@ -220,7 +222,7 @@ than silently disappearing from the diagram.
## Supported SQL
-ProcFlow v1.9.0 recognises:
+ProcFlow v1.10.0 recognises:
- Microsoft T-SQL
- IBM DB2 SQL PL
@@ -231,7 +233,7 @@ Supported inputs include procedures, functions, triggers, views, plain SQL
statements, report dataset queries, and multi-object scripts where those object
types apply to the selected dialect.
-Dialect-specific v1.9.0 coverage includes:
+Dialect-specific v1.10.0 coverage includes:
- **T-SQL:** mixed one-line and block `IF`/`WHILE` control flow (single
statement and `BEGIN`/`END` bodies in one AST), labelled `GOTO` and labels
@@ -258,6 +260,16 @@ comma-separated `FROM` list, an `APPLY` or tabular function, a `MERGE…USING` /
`DELETE…USING` source, a recursive CTE, and a derived-table inner table all
appear as source nodes.
+Since v1.10.0, each query-bearing `SELECT` statement also gets column-level
+analysis (README roadmap item 6 foundations): qualified references, aliases,
+projections, CTE and derived-table scopes, and catalogue-backed wildcard
+expansion produce exact input→output column bindings with source spans. An
+unqualified reference that matches several sources is reported as ambiguous and
+never invents a binding, and unsupported expressions (for example a scalar
+subquery) become opaque with a region-scoped diagnostic. Multi-statement
+temporary-table column flow and inter-object column flow remain on the roadmap
+(v1.11.0).
+
Detection is automatic and can be overridden from the **Dialect** selector.
When detection is uncertain and several dialects score equally, an explicit
`dialect_ambiguous` diagnostic is reported along with the usual
@@ -356,7 +368,7 @@ endorsed by draw.io.
### Quick answers
-| Question | ProcFlow v1.9.0 behavior |
+| Question | ProcFlow v1.10.0 behavior |
|---|---|
| Is SQL uploaded? | No. Analysis and rendering happen in the browser tab. |
| Does it connect to a database? | No. There is no driver, connection string, or query execution. |
@@ -382,6 +394,7 @@ dist/src/catalogue.js
dist/src/dialects.js
dist/src/lineage.js
dist/src/ir.js
+dist/src/columns.js
dist/src/exporters.js
dist/src/workspace.js
dist/src/app.js
@@ -400,7 +413,7 @@ import/export uses the browser download API, which also requires an explicit
action. The catalogue module (`dist/src/catalogue.js`) parses pasted or
imported metadata in memory only; it never reads or writes storage.
-The SHA-256 of `vendor/mermaid/mermaid.min.js` in v1.9.0 is:
+The SHA-256 of `vendor/mermaid/mermaid.min.js` in v1.10.0 is:
```text
61B335A46DF05A7CE1C98378F60E5F3E77A7FB608A1056997E8A649304A936D6
@@ -411,7 +424,7 @@ so the release checksum remains reproducible across operating systems.
### Guidance for security review
-1. Review and pin the `v1.9.0` tag or its exact commit.
+1. Review and pin the `v1.10.0` tag or its exact commit.
2. Verify the vendored Mermaid checksum.
3. Review the runtime files listed above.
4. Open the reviewed files locally or serve them from an approved internal
@@ -445,7 +458,9 @@ and contains no automatic data-submission path.
authoritative and omitted semicolons are split by control keywords and
statement grammar. Exceptionally malformed batches can still produce imperfect
splits.
-- Query lineage is object-level rather than column-level.
+- Query lineage is object-level; since v1.10.0 a single query statement also
+ reports column-level scopes and bindings, while multi-statement
+ temporary-table and inter-object column flow remain on the roadmap (v1.11.0).
- Some vendor-specific table expressions might not be detected.
- Temporary-table data flow is shown within one object; cross-object temp flow
remains unresolved.
@@ -454,8 +469,10 @@ and contains no automatic data-submission path.
without a catalogue synonym, and unknown linked-server layouts stay external
(with a `catalogue_partial` diagnostic where a plausible but unproven
candidate exists) until the catalogue proves them.
-- Columns are parsed and validated by the catalogue import but not yet used;
- column lineage is scheduled for v1.10.0+.
+- Columns are parsed and validated by the catalogue import and, since v1.10.0,
+ drive wildcard expansion and column bindings inside a single statement.
+ Column flow across statements, objects, and CTE/view boundaries is scheduled
+ for v1.11.0.
- SSRS/RDL files are not imported in v1.9.0.
- draw.io layout is deterministic for the documented graph classes at
documented size limits; very large or non-planar graphs are laid out without
@@ -524,9 +541,9 @@ Then open:
- `http://127.0.0.1:8000/tests/ui.html` — browser interaction and local-runtime
tests
-The v1.9.0 baseline is:
+The v1.10.0 baseline is:
-- 208 golden and boundary assertions
+- 209 golden and boundary assertions
- 400 deterministic mutation cases
- 22 browser interaction tests
- 20 export-parity checks (10 fixtures × TD + LR), 11 layout-budget fixtures,
@@ -537,12 +554,16 @@ The v1.9.0 baseline is:
- 13 catalogue fixtures (JSON and line import, synonym / linked-server /
cross-database verification, conservative conflict and partial diagnostics,
export metadata, workspace round-trip)
+- 18 column-lineage fixtures (qualified references, aliases, projections,
+ CTE and derived-table scopes, catalogue-backed wildcard expansion, ambiguous
+ and opaque column references with exact spans)
Fixture-corpus accuracy metrics (attribution, unresolved-token, tail-unconsumed,
fallback, opaque-dynamic, semantic-edge coverage, provenance,
region-diagnostic-to-span, export-parity, export-traceability, layout-budget,
-workspace, and catalogue pass-rate ratios) are published from the checked-in
-golden corpus in [docs/metrics-v1.9.0.json](docs/metrics-v1.9.0.json). Generation
+workspace, catalogue, and column pass-rate ratios) are published from the
+checked-in golden corpus in
+[docs/metrics-v1.10.0.json](docs/metrics-v1.10.0.json). Generation
is deterministic and fixture-only — no user inputs or runtime telemetry are
collected — and CI refuses to merge when the snapshot is stale. Regenerate with
`npm run metrics:write`.
@@ -580,6 +601,7 @@ docs/
├── PR_NOTE_1.7.0.md
├── PR_NOTE_1.8.0.md
├── PR_NOTE_1.9.0.md
+├── PR_NOTE_1.10.0.md
├── RELEASE_NOTE_1.1.0.md
├── RELEASE_NOTE_1.2.0.md
├── RELEASE_NOTE_1.3.0.md
@@ -593,7 +615,8 @@ docs/
├── RELEASE_NOTE_v1.7.0.md
├── RELEASE_NOTE_v1.8.0.md
├── RELEASE_NOTE_v1.9.0.md
-└── metrics-v1.9.0.json # deterministic fixture-only accuracy metrics snapshot
+├── RELEASE_NOTE_v1.10.0.md
+└── metrics-v1.10.0.json # deterministic fixture-only accuracy metrics snapshot
examples/
├── dbo.v110_demo.sql # per-release outcome demos
├── dbo.v120_demo.sql
@@ -603,7 +626,8 @@ examples/
├── dbo.v160_demo.sql
├── dbo.v170_demo.sql # v1.7.0: clear deterministic exports demo
├── dbo.v180_demo.sql # v1.8.0: usable local workspace demo
-└── dbo.v190_demo.sql # v1.9.0: resolve by catalogue demo
+├── dbo.v190_demo.sql # v1.9.0: resolve by catalogue demo
+└── dbo.v1100_demo.sql # v1.10.0: column lineage foundations demo
scripts/
├── file-smoke.mjs # dependency-free local-file release smoke test
└── metrics.mjs # generate/verify the fixture-corpus metric snapshot
@@ -614,6 +638,7 @@ src/
├── dialects.ts # dialect detection and procedural parsing
├── lineage.ts # CTE and query dependency extraction
├── ir.ts # graphs, diagnostics, confidence, and estate analysis
+├── columns.ts # v1.10.0: single-statement column scopes and bindings
├── exporters.ts # Mermaid, draw.io, and narration output
├── workspace.ts # opt-in persistence + presentation-only dependency filtering
└── app.ts # browser UI and workspace interaction
@@ -631,6 +656,7 @@ tests/
├── parity.ts
├── workspace.ts
├── catalogue.ts
+├── columns.ts # v1.10.0: column lineage foundations fixtures
├── tests.ts
├── fuzz.ts
├── ui-tests.ts
@@ -669,13 +695,13 @@ Then verify:
3. Generated `dist/` files match their TypeScript sources.
4. The Mermaid SHA-256 matches the value in this README and the workflow.
5. `npm run metrics` reports the metric snapshot is current.
-6. `RELEASE_NOTE_v1.9.0.md` matches the final tag contents.
+6. `RELEASE_NOTE_v1.10.0.md` matches the final tag contents.
7. The complete archive opens locally with `index.html`, and the local-file
smoke test reports the opt-in workspace assertion.
-8. The tag is named `v1.9.0`.
+8. The tag is named `v1.10.0`.
-The release can then be created manually from the `v1.9.0` tag using
-[RELEASE_NOTE_v1.9.0.md](docs/RELEASE_NOTE_v1.9.0.md).
+The release can then be created manually from the `v1.10.0` tag using
+[RELEASE_NOTE_v1.10.0.md](docs/RELEASE_NOTE_v1.10.0.md).
## Roadmap after v1.0.0
@@ -686,6 +712,10 @@ The release can then be created manually from the `v1.9.0` tag using
5. Accept database catalogue metadata for more accurate object resolution.
**Delivered in v1.9.0.**
6. Add column-level lineage where it can be resolved safely.
+ **Foundations delivered in v1.10.0** (column scopes, bindings, projections,
+ CTE/derived-table scopes, and catalogue-backed wildcard expansion within one
+ statement); full column-flow pipelines through temp tables and object
+ boundaries are scheduled for v1.11.0.
7. Add optional local workspace persistence and dependency filtering.
**Delivered in v1.8.0.**
8. Separate graph, transaction, and estate-analysis internals while preserving
diff --git a/ROADMAP.md b/ROADMAP.md
index 011877f..7a61c13 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -346,6 +346,8 @@ v1.11.0, item 4 → v1.12.0.**
### v1.10.0 — Column lineage foundations
+**Delivered in v1.10.0.**
+
- **Ships:** column scopes and bindings for qualified references, aliases,
projections, CTEs, derived tables, and catalogue-backed wildcard expansion;
expression-level provenance within one query statement; explicit ambiguous
diff --git a/dist/src/columns.js b/dist/src/columns.js
new file mode 100644
index 0000000..cfba2f1
--- /dev/null
+++ b/dist/src/columns.js
@@ -0,0 +1,842 @@
+"use strict";
+/* proc>flow: column lineage foundations (v1.10.0)
+ Column scopes and bindings for qualified references, aliases, projections,
+ CTEs, derived tables, and catalogue-backed wildcard expansion; expression-
+ level provenance within one query statement; explicit ambiguous and opaque
+ column references.
+
+ This module analyses a single query statement. It never invents a binding a
+ reviewer could not prove: an unqualified reference that matches several
+ sources is left unresolvable (`column_ambiguous`, no edge), and an expression
+ or reference that cannot be resolved statically becomes opaque with a
+ region-scoped `column_opaque` diagnostic. Multi-statement temporary-table
+ flow and inter-object column flow (v1.11.0) and the final column export
+ contract are deferred. */
+var COL_CLAUSE_START = S(['FROM', 'WHERE', 'GROUP', 'HAVING', 'ORDER', 'LIMIT',
+ 'OFFSET', 'FETCH', 'UNION', 'EXCEPT', 'INTERSECT',
+ 'INTO', 'FOR', 'OPTION', 'RETURNING']);
+var COL_ARM_SEP = S(['UNION', 'EXCEPT', 'INTERSECT']);
+var COL_JOIN_PREFIX = S(['JOIN', 'APPLY', 'CROSS', 'INNER', 'LEFT', 'RIGHT',
+ 'FULL', 'OUTER', 'LATERAL']);
+/* Words inside an expression that are never column references. */
+var COL_REF_SKIP = S(['SELECT', 'WHERE', 'GROUP', 'HAVING', 'ORDER', 'LIMIT',
+ 'OFFSET', 'FETCH', 'UNION', 'EXCEPT', 'INTERSECT', 'INTO', 'FOR', 'OPTION', 'RETURNING',
+ 'BY', 'ASC', 'DESC', 'ALL', 'ANY', 'AND', 'OR', 'NOT', 'AS', 'ON', 'IN', 'IS', 'NULL', 'WHEN',
+ 'THEN', 'ELSE', 'END', 'CASE', 'BETWEEN', 'LIKE', 'ILIKE', 'SIMILAR', 'DISTINCT', 'TOP',
+ 'VALUE', 'VALUES', 'EXISTS', 'LATERAL', 'OVER', 'PARTITION', 'WINDOW', 'CURRENT',
+ 'ROW', 'ROWS', 'RANGE', 'SET', 'FROM', 'JOIN', 'USING', 'ARRAY', 'FILTER', 'WITHIN',
+ 'TRUE', 'FALSE', 'INTERVAL', 'COLLATE',
+ /* data types cast inside expressions */
+ 'INT', 'INTEGER', 'BIGINT', 'SMALLINT', 'TINYINT', 'DECIMAL', 'NUMERIC', 'FLOAT', 'REAL',
+ 'DOUBLE', 'PRECISION', 'CHAR', 'NCHAR', 'VARCHAR', 'NVARCHAR', 'TEXT', 'CLOB', 'DATE',
+ 'DATETIME', 'DATETIME2', 'SMALLDATETIME', 'TIMESTAMP', 'TIME', 'BOOLEAN', 'BOOL', 'BIT',
+ 'BINARY', 'VARBINARY', 'BYTEA', 'UUID', 'GUID', 'MONEY', 'SMALLMONEY', 'JSON', 'XML', 'BLOB']);
+/* CTE split that retains the explicit column list so CTE scopes can carry
+ provable columns (`WITH r(n) AS …` → r has exactly [n]). */
+function splitCtesColumn(toks) {
+ var res = { ctes: [], finalStart: 0 };
+ if (!toks.length || toks[0].u !== 'WITH')
+ return res;
+ var i = 1;
+ if (toks[i] && toks[i].u === 'RECURSIVE') {
+ res.recursive = true;
+ i++;
+ }
+ while (i < toks.length) {
+ var nameTok = toks[i];
+ if (!nameTok || nameTok.type !== 'word')
+ break;
+ var name = nameTok.v;
+ i++;
+ var colToks = [];
+ if (toks[i] && toks[i].v === '(') {
+ var d0 = 0;
+ while (i < toks.length) {
+ var tk = toks[i];
+ if (tk.v === '(')
+ d0++;
+ else if (tk.v === ')') {
+ d0--;
+ if (d0 === 0) {
+ i++;
+ break;
+ }
+ }
+ else if (d0 === 1)
+ colToks.push(tk);
+ i++;
+ }
+ }
+ if (!(toks[i] && toks[i].u === 'AS'))
+ break;
+ i++;
+ while (toks[i] && ['MATERIALIZED', 'NOT'].indexOf(toks[i].u) >= 0)
+ i++;
+ if (!(toks[i] && toks[i].v === '('))
+ break;
+ var start = i, d = 0;
+ while (i < toks.length) {
+ if (toks[i].v === '(')
+ d++;
+ else if (toks[i].v === ')') {
+ d--;
+ if (d === 0) {
+ i++;
+ break;
+ }
+ }
+ i++;
+ }
+ var body = toks.slice(start + 1, i - 1);
+ res.ctes.push({ name: name, colToks: colToks, body: body, bodySpan: spanOfTokens(body) });
+ if (toks[i] && toks[i].v === ',') {
+ i++;
+ continue;
+ }
+ break;
+ }
+ res.finalStart = i;
+ return res;
+}
+function colNamesOf(toks) {
+ var out = [];
+ for (var i = 0; i < toks.length; i++) {
+ var t = toks[i];
+ if (t.type === 'word' && !(i > 0 && toks[i - 1].v === '.') &&
+ t.v.charAt(0) !== '@' && COL_REF_SKIP[t.u] === undefined) {
+ out.push(t.v);
+ }
+ }
+ return out;
+}
+function catalogueColumnsFor(cat, tableName) {
+ if (!cat || !cat.columns || !cat.columns.length || !tableName)
+ return [];
+ var resolved = resolveCatalogue(cat, tableName);
+ var canonical = resolved.resolution === 'verified' && resolved.resolvedName
+ ? resolved.resolvedName : tableName;
+ var norm = normalizeCatalogueName(canonical);
+ var out = [], seen = {};
+ cat.columns.forEach(function (c) {
+ if (normalizeCatalogueName(c.table) !== norm)
+ return;
+ var n = normalizeCatalogueName(c.name);
+ if (n && !seen[n]) {
+ seen[n] = 1;
+ out.push(c.name);
+ }
+ });
+ return out;
+}
+function colTokensInSpan(toks, span) {
+ if (!span)
+ return 0;
+ var n = 0;
+ for (var i = 0; i < toks.length; i++) {
+ var t = toks[i];
+ if (t.pos < span.end && t.end > span.start)
+ n++;
+ }
+ return n;
+}
+function colSplitArms(toks) {
+ var arms = [], cur = [], d = 0;
+ for (var i = 0; i < toks.length; i++) {
+ var t = toks[i];
+ if (t.v === '(') {
+ d++;
+ cur.push(t);
+ continue;
+ }
+ if (t.v === ')') {
+ d--;
+ cur.push(t);
+ continue;
+ }
+ if (d === 0 && COL_ARM_SEP[t.u] === 1) {
+ arms.push(cur);
+ cur = [];
+ continue;
+ }
+ cur.push(t);
+ }
+ arms.push(cur);
+ return arms;
+}
+/* Locate the projection and FROM regions of one SELECT arm. */
+function colRegionsOf(toks) {
+ var proj = (function () {
+ var j = 1, guard = 0;
+ while (j < toks.length && guard++ < 40) {
+ var u = toks[j].u;
+ if (u === 'DISTINCT' || u === 'ALL') {
+ j++;
+ continue;
+ }
+ if (u === 'TOP') {
+ j++;
+ if (toks[j] && toks[j].v === '(') {
+ var dd = 0;
+ while (j < toks.length) {
+ if (toks[j].v === '(')
+ dd++;
+ else if (toks[j].v === ')') {
+ dd--;
+ if (dd === 0) {
+ j++;
+ break;
+ }
+ }
+ j++;
+ }
+ }
+ else {
+ if (toks[j] && toks[j].type === 'num')
+ j++;
+ if (toks[j] && toks[j].u === 'PERCENT')
+ j++;
+ }
+ continue;
+ }
+ break;
+ }
+ return j;
+ })();
+ var projStart = proj, d2 = 0, projEnd = toks.length, fromStart = -1, firstBoundary = toks.length;
+ for (var k = proj; k < toks.length && d2 >= 0; k++) {
+ var t2 = toks[k];
+ if (t2.v === '(')
+ d2++;
+ else if (t2.v === ')')
+ d2--;
+ if (d2 === 0 && k >= proj && COL_CLAUSE_START[t2.u] === 1) {
+ if (firstBoundary === toks.length)
+ firstBoundary = k;
+ if (t2.u === 'FROM') {
+ fromStart = k + 1;
+ break;
+ }
+ /* INTO / FOR / OPTION may be followed by FROM — keep scanning */
+ }
+ }
+ projEnd = firstBoundary;
+ var fromEnd = toks.length;
+ if (fromStart >= 0) {
+ var d3 = 0;
+ for (var m = fromStart; m < toks.length; m++) {
+ var t3 = toks[m];
+ if (t3.v === '(')
+ d3++;
+ else if (t3.v === ')')
+ d3--;
+ if (d3 === 0 && m > fromStart && COL_CLAUSE_START[t3.u] === 1) {
+ fromEnd = m;
+ break;
+ }
+ }
+ }
+ return { proj: [projStart, projEnd < projStart ? toks.length : projEnd],
+ from: [fromStart, fromStart < 0 ? toks.length : fromEnd] };
+}
+/* Parse the FROM region into scope sources; returns ON/USING predicate regions
+ to scan as references. */
+function colParseSources(fromToks, ctx) {
+ var sources = [], predicates = [];
+ var i = 0, guard = 0;
+ function predEnd(after) {
+ var d = 0;
+ for (var k = after; k < fromToks.length; k++) {
+ var t = fromToks[k];
+ if (t.v === '(')
+ d++;
+ else if (t.v === ')')
+ d--;
+ if (d === 0 && k > after && (COL_CLAUSE_START[t.u] === 1 ||
+ (t.type === 'word' && COL_JOIN_PREFIX[t.u] === 1 && t.u !== 'CASCADE') || t.v === ','))
+ return k;
+ }
+ return fromToks.length;
+ }
+ while (i < fromToks.length && guard++ < 400) {
+ var t = fromToks[i];
+ if (t.type === 'word' && COL_JOIN_PREFIX[t.u] === 1) {
+ i++;
+ continue;
+ }
+ if (t.v === ',') {
+ i++;
+ continue;
+ }
+ var source = null;
+ var start = i;
+ if (t.v === '(') {
+ var d = 1, j = i + 1, innerStart = j;
+ while (j < fromToks.length && d > 0) {
+ if (fromToks[j].v === '(')
+ d++;
+ else if (fromToks[j].v === ')')
+ d--;
+ j++;
+ }
+ var inner = fromToks.slice(innerStart, j - 1);
+ var k2 = j;
+ while (k2 < fromToks.length && fromToks[k2].u === 'AS')
+ k2++;
+ var alias = null;
+ var colAliasTok = null;
+ if (k2 < fromToks.length && fromToks[k2].type === 'word' &&
+ COL_CLAUSE_START[fromToks[k2].u] === undefined) {
+ alias = fromToks[k2].v;
+ k2++;
+ if (fromToks[k2] && fromToks[k2].v === '(') {
+ var dd = 1, g = k2 + 1;
+ var innerAlias = [];
+ while (g < fromToks.length && dd > 0) {
+ if (fromToks[g].v === '(')
+ dd++;
+ else if (fromToks[g].v === ')')
+ dd--;
+ if (dd >= 1)
+ innerAlias.push(fromToks[g]);
+ g++;
+ }
+ colAliasTok = innerAlias;
+ k2 = g;
+ }
+ }
+ var headT = inner[0] ? inner[0].u : '';
+ var kind = 'derived';
+ var derivedCols = [];
+ if (headT === 'SELECT') {
+ var innerRes = colAnalyseToks(inner, { cteColumns: ctx.cteColumns,
+ catalogue: ctx.catalogue, dialect: ctx.dialect, depth: ctx.depth + 1 });
+ if (innerRes)
+ derivedCols = innerRes.outputs.map(function (o) { return o.name; });
+ }
+ else if (headT === 'VALUES') {
+ kind = 'opaque';
+ }
+ else {
+ kind = 'opaque';
+ }
+ var columns = derivedCols.slice();
+ if (colAliasTok && colAliasTok.length) {
+ columns = colNamesOf(colAliasTok);
+ if (headT !== 'SELECT' && columns.length)
+ kind = 'derived';
+ }
+ source = { key: alias || '(derived)', name: alias || '(derived)', alias: alias,
+ kind: kind, columns: columns,
+ columnsKnown: kind === 'derived' || columns.length > 0,
+ span: spanOfTokens(fromToks.slice(start, k2)) };
+ i = k2;
+ }
+ else {
+ var q = [], kq = i;
+ while (kq < fromToks.length && fromToks[kq].type === 'word') {
+ q.push(fromToks[kq].v);
+ if (fromToks[kq + 1] && fromToks[kq + 1].v === '.' && fromToks[kq + 2] && fromToks[kq + 2].type === 'word') {
+ kq += 2;
+ continue;
+ }
+ break;
+ }
+ if (!q.length) {
+ i++;
+ continue;
+ }
+ var name = q.join('.');
+ var k3 = kq + 1;
+ while (k3 < fromToks.length && ['FULLTEXT', 'WINDOW'].indexOf(fromToks[k3].u) >= 0)
+ k3++;
+ var alias2 = null;
+ var colAlias2 = null;
+ if (fromToks[k3] && fromToks[k3].u === 'AS')
+ k3++;
+ if (fromToks[k3] && fromToks[k3].type === 'word' &&
+ COL_CLAUSE_START[fromToks[k3].u] === undefined &&
+ COL_JOIN_PREFIX[fromToks[k3].u] === undefined && fromToks[k3].v !== ';') {
+ alias2 = fromToks[k3].v;
+ k3++;
+ if (fromToks[k3] && fromToks[k3].v === '(') {
+ var dd2 = 1, g2 = k3 + 1, innerAlias2 = [];
+ while (g2 < fromToks.length && dd2 > 0) {
+ if (fromToks[g2].v === '(')
+ dd2++;
+ else if (fromToks[g2].v === ')')
+ dd2--;
+ if (dd2 >= 1)
+ innerAlias2.push(fromToks[g2]);
+ g2++;
+ }
+ colAlias2 = innerAlias2;
+ k3 = g2;
+ }
+ }
+ var kind2 = 'table';
+ var cols2 = [];
+ var uppers = name.toUpperCase();
+ if (ctx.cteColumns && ctx.cteColumns[uppers]) {
+ kind2 = 'cte';
+ cols2 = ctx.cteColumns[uppers].slice();
+ }
+ else if (TABULAR_FUNCS[uppers] === 1) {
+ kind2 = 'tabfunc';
+ }
+ else if (ctx.catalogue) {
+ cols2 = catalogueColumnsFor(ctx.catalogue, name);
+ }
+ if (colAlias2 && colAlias2.length)
+ cols2 = colNamesOf(colAlias2);
+ source = { key: alias2 || name, name: name, alias: alias2, kind: kind2,
+ columns: cols2,
+ columnsKnown: kind2 === 'cte' || cols2.length > 0 ||
+ (kind2 === 'tabfunc' && !!(colAlias2 && colAlias2.length)),
+ span: spanOfTokens(fromToks.slice(start, k3)) };
+ i = k3;
+ }
+ if (source)
+ sources.push(source);
+ if (i < fromToks.length && (fromToks[i].u === 'ON' || fromToks[i].u === 'USING')) {
+ var isUsing = fromToks[i].u === 'USING' && fromToks[i + 1] && fromToks[i + 1].v === '(';
+ var predE = predEnd(i + 1);
+ var predToks = fromToks.slice(i + 1, predE);
+ if (isUsing) {
+ var pu = [], dd3 = 1, g3 = 1;
+ while (g3 < predToks.length && dd3 > 0) {
+ if (predToks[g3].v === '(')
+ dd3++;
+ else if (predToks[g3].v === ')')
+ dd3--;
+ if (dd3 >= 1)
+ pu.push(predToks[g3]);
+ g3++;
+ }
+ predToks = pu;
+ }
+ if (predToks.length)
+ predicates.push(predToks);
+ i = predE;
+ }
+ else if (i < fromToks.length && fromToks[i].v === ',') {
+ i++;
+ }
+ }
+ return { sources: sources, predicates: predicates };
+}
+function colBind(qualifier, col, span, sources, diagnostics) {
+ var colUp = col.toUpperCase();
+ if (qualifier) {
+ var qUp = qualifier.toUpperCase();
+ var matches = sources.filter(function (s) { return s.key.toUpperCase() === qUp; });
+ if (!matches.length) {
+ diagnostics.push({ severity: 'warning', code: 'column_opaque',
+ message: 'Column reference "' + qualifier + '.' + col + '" does not match any source in this query; its binding is opaque. Check the source alias or table name.',
+ span: span, scope: 'region' });
+ return { resolution: 'opaque', source: null };
+ }
+ if (matches.length > 1) {
+ diagnostics.push({ severity: 'warning', code: 'column_ambiguous',
+ message: 'Column reference "' + qualifier + '.' + col + '" matches more than one source; the binding is left unresolved.',
+ span: span, scope: 'region' });
+ return { resolution: 'ambiguous', source: null };
+ }
+ var src = matches[0];
+ if (src.columnsKnown) {
+ var known = src.columns.some(function (c) { return c.toUpperCase() === colUp; });
+ if (!known) {
+ diagnostics.push({ severity: 'warning', code: 'column_opaque',
+ message: 'Column "' + col + '" is not among the known columns of "' + src.name + '"; the binding is opaque.',
+ span: span, scope: 'region' });
+ return { resolution: 'opaque', source: null };
+ }
+ }
+ return { resolution: 'exact', source: src.key };
+ }
+ var candidates = sources.filter(function (s) {
+ if (!s.columnsKnown)
+ return true;
+ return s.columns.some(function (c) { return c.toUpperCase() === colUp; });
+ });
+ if (candidates.length === 1)
+ return { resolution: 'exact', source: candidates[0].key };
+ if (candidates.length === 0) {
+ diagnostics.push({ severity: 'warning', code: 'column_opaque',
+ message: 'Column reference "' + col + '" matches no provable column in this query; the binding is opaque.',
+ span: span, scope: 'region' });
+ return { resolution: 'opaque', source: null };
+ }
+ var names = candidates.slice(0, 4).map(function (s) { return '"' + s.key + '"'; }).join(', ');
+ diagnostics.push({ severity: 'warning', code: 'column_ambiguous',
+ message: 'Column reference "' + col + '" is ambiguous: it matches ' + candidates.length +
+ ' sources (' + names + '…); no binding is invented.',
+ span: span, scope: 'region' });
+ return { resolution: 'ambiguous', source: null };
+}
+/* Scan an expression region for column references, binding each against the
+ scope. Scalar subqueries are opaque and skipped. */
+function colScanRefs(toks, sources, diagnostics) {
+ var refs = [], bound = [];
+ var opaqueSpans = [];
+ function addRef(qualifier, name, span) {
+ var res = colBind(qualifier, name, span, sources, diagnostics);
+ refs.push({ qualifier: qualifier, name: name, span: span, resolution: res.resolution });
+ bound.push({ qualifier: qualifier, name: name, span: span, resolution: res.resolution,
+ source: res.source });
+ }
+ var i = 0;
+ while (i < toks.length) {
+ var t = toks[i];
+ if (t.v === '(') {
+ if (toks[i + 1] && toks[i + 1].u === 'SELECT') {
+ var d = 1, e = i + 1;
+ while (e < toks.length && d > 0) {
+ if (toks[e].v === '(')
+ d++;
+ else if (toks[e].v === ')')
+ d--;
+ e++;
+ }
+ var subSpan = { start: t.pos, end: toks[e - 1].end };
+ opaqueSpans.push(subSpan);
+ diagnostics.push({ severity: 'warning', code: 'column_opaque',
+ message: 'A subquery expression cannot be resolved at column level in this version; its binding is opaque.',
+ span: subSpan, scope: 'region' });
+ i = e;
+ continue;
+ }
+ i++;
+ continue;
+ }
+ if (t.v === '*' || t.type !== 'word') {
+ i++;
+ continue;
+ }
+ var u = t.u;
+ if (t.v.charAt(0) === '@') {
+ i++;
+ continue;
+ }
+ if (COL_REF_SKIP[u] === 1) {
+ i++;
+ continue;
+ }
+ if (toks[i + 1] && toks[i + 1].v === '(') {
+ i++;
+ continue;
+ } /* function call */
+ if (!(i > 0 && toks[i - 1].v === '.')) {
+ if (toks[i + 1] && toks[i + 1].v === '.' && toks[i + 2] && toks[i + 2].type === 'word') {
+ var parts = [t.v], k = i + 2;
+ while (toks[k + 1] && toks[k + 1].v === '.' && toks[k + 2] && toks[k + 2].type === 'word') {
+ parts.push(toks[k].v);
+ k += 2;
+ }
+ parts.push(toks[k].v);
+ var last = parts[parts.length - 1];
+ var q = parts.slice(0, parts.length - 1).join('.');
+ addRef(q, last, { start: t.pos, end: toks[k].end });
+ i = k + 1;
+ continue;
+ }
+ addRef(null, t.v, { start: t.pos, end: t.end });
+ }
+ i++;
+ }
+ return { refs: refs, bound: bound, opaqueSpans: opaqueSpans };
+}
+function colParseItems(projToks) {
+ var items = [];
+ var cur = [], d = 0;
+ projToks.forEach(function (t) {
+ if (t.v === '(')
+ d++;
+ else if (t.v === ')')
+ d--;
+ if (t.v === ',' && d === 0) {
+ items.push({ expr: cur, alias: null, span: null });
+ cur = [];
+ return;
+ }
+ cur.push(t);
+ });
+ items.push({ expr: cur, alias: null, span: null });
+ var out = [];
+ items.forEach(function (item) {
+ var toks = item.expr;
+ if (!toks.length)
+ return;
+ var alias = null, expr = toks.slice();
+ var asIx = -1, d2 = 0;
+ for (var i = 0; i < toks.length; i++) {
+ if (toks[i].v === '(')
+ d2++;
+ else if (toks[i].v === ')')
+ d2--;
+ if (d2 === 0 && toks[i].u === 'AS') {
+ asIx = i;
+ break;
+ }
+ }
+ if (asIx >= 0 && toks[asIx + 1]) {
+ alias = toks[asIx + 1].v;
+ expr = toks.slice(0, asIx);
+ }
+ else if (toks.length >= 2) {
+ var last = toks[toks.length - 1];
+ var prev = toks[toks.length - 2];
+ if (last.type === 'word' && prev.v !== '.' && COL_REF_SKIP[last.u] === undefined &&
+ COL_CLAUSE_START[last.u] === undefined && last.v !== ';') {
+ alias = last.v;
+ expr = toks.slice(0, toks.length - 1);
+ }
+ }
+ out.push({ expr: expr, alias: alias, span: spanOfTokens(toks) });
+ });
+ return out;
+}
+function colOutputName(expr, refs) {
+ if (!expr.length)
+ return '';
+ if (expr.length === 1)
+ return expr[0].v;
+ var lastWord = null;
+ for (var i = 0; i < expr.length; i++) {
+ var t = expr[i];
+ if (t.type === 'word' && COL_REF_SKIP[t.u] === undefined &&
+ !(expr[i + 1] && expr[i + 1].v === '('))
+ lastWord = t.v;
+ }
+ if (lastWord)
+ return lastWord;
+ return clip(joinToks(expr, 40), 40);
+}
+function colSourceByKey(sources, key) {
+ var up = key.toUpperCase();
+ for (var i = 0; i < sources.length; i++)
+ if (sources[i].key.toUpperCase() === up)
+ return sources[i];
+ return null;
+}
+/* Analyse one SELECT arm. */
+function colAnalyseArm(toks, ctx, first) {
+ if (!toks.length || toks[0].u !== 'SELECT')
+ return null;
+ var regions = colRegionsOf(toks);
+ var projToks = toks.slice(regions.proj[0], regions.proj[1]);
+ var fromToks = regions.from[0] >= 0 ? toks.slice(regions.from[0], regions.from[1]) : [];
+ var diagnostics = [];
+ var parsed = colParseSources(fromToks, ctx);
+ var sources = parsed.sources;
+ var references = [];
+ var wildcards = [];
+ var opaqueCount = 0;
+ var outputs = [];
+ function scanRegion(region) {
+ if (!region || !region.length)
+ return;
+ var scan = colScanRefs(region, sources, diagnostics);
+ references = references.concat(scan.refs);
+ scan.opaqueSpans.forEach(function (sp) { opaqueCount += Math.max(1, colTokensInSpan(toks, sp)); });
+ }
+ if (regions.from[0] >= 0) {
+ parsed.predicates.forEach(function (pred) { scanRegion(pred); });
+ var d = 0;
+ for (var cl = regions.from[1]; cl < toks.length; cl++) {
+ var t = toks[cl];
+ if (t.type !== 'word') {
+ if (t.v === '(')
+ d++;
+ else if (t.v === ')')
+ d--;
+ continue;
+ }
+ if (d > 0)
+ continue;
+ if (COL_CLAUSE_START[t.u] === 1 &&
+ ['WHERE', 'GROUP', 'HAVING', 'ORDER', 'LIMIT', 'OFFSET', 'FETCH'].indexOf(t.u) >= 0) {
+ var dd = 0, e = cl + 1;
+ while (e < toks.length) {
+ if (toks[e].v === '(')
+ dd++;
+ else if (toks[e].v === ')')
+ dd--;
+ if (dd === 0 && e > cl + 1 && ((toks[e].type === 'word' && COL_CLAUSE_START[toks[e].u] === 1) ||
+ toks[e].v === ','))
+ break;
+ e++;
+ }
+ while (e > cl + 1 && toks[e - 1].v === ',')
+ e--;
+ scanRegion(toks.slice(cl + 1, e));
+ cl = e - 1;
+ }
+ }
+ }
+ var items = colParseItems(projToks);
+ items.forEach(function (item) {
+ var itemSpan = item.span || spanOfTokens(item.expr);
+ var starCount = 0;
+ for (var w = 0; w < item.expr.length; w++) {
+ var wt = item.expr[w];
+ if (wt.v !== '*')
+ continue;
+ /* a `*` is a wildcard only at the start of an item or after '.';
+ anywhere else it is the multiplication operator */
+ if (w > 0 && item.expr[w - 1].v !== '.')
+ continue;
+ starCount++;
+ var srcName = null;
+ var exp = null;
+ if (w >= 1 && item.expr[w - 1].v === '.' && item.expr[w - 2] && item.expr[w - 2].type === 'word') {
+ srcName = item.expr[w - 2].v;
+ exp = colSourceByKey(sources, srcName);
+ if (!exp) {
+ diagnostics.push({ severity: 'warning', code: 'column_opaque',
+ message: 'Wildcard "' + srcName + '.*" does not match any source; it is not expanded.',
+ span: { start: item.expr[w - 2].pos, end: wt.end }, scope: 'region' });
+ }
+ }
+ var span = { start: wt.pos, end: wt.end };
+ var wc = { source: exp ? exp.key : null, span: span, expanded: false, columns: [] };
+ if (exp && exp.columnsKnown) {
+ wc.expanded = true;
+ wc.columns = exp.columns.slice();
+ }
+ else if (!exp) {
+ if (sources.length && sources.every(function (s) { return s.columnsKnown; })) {
+ wc.expanded = true;
+ var cols = [], seen = {};
+ sources.forEach(function (s) {
+ s.columns.forEach(function (c) {
+ var cu = c.toUpperCase();
+ if (!seen[cu]) {
+ seen[cu] = 1;
+ cols.push(c);
+ }
+ });
+ });
+ wc.columns = cols;
+ }
+ }
+ wildcards.push(wc);
+ if (wc.expanded) {
+ var owner = exp;
+ if (!owner && sources.length === 1)
+ owner = sources[0];
+ if (owner) {
+ owner.columns.forEach(function (c) {
+ if (exp) { /* qualified expansion: provable per-source columns */
+ outputs.push({ name: c, label: owner.key + '.*', span: itemSpan, resolution: 'exact',
+ bindings: [{ source: owner.key, column: c, span: span }] });
+ }
+ else {
+ outputs.push({ name: c, label: '*', span: itemSpan, resolution: 'exact',
+ bindings: [{ source: owner.key, column: c, span: span }] });
+ }
+ });
+ }
+ }
+ }
+ if (starCount)
+ return;
+ if (!item.expr.length)
+ return;
+ var scan = colScanRefs(item.expr, sources, diagnostics);
+ references = references.concat(scan.refs);
+ var resolution = 'exact';
+ var bindings = [];
+ var reason = undefined;
+ scan.bound.forEach(function (b) {
+ if (b.resolution === 'opaque') {
+ resolution = 'opaque';
+ reason = 'unsupported or unresolvable expression';
+ }
+ else if (b.resolution === 'ambiguous' && resolution === 'exact') {
+ resolution = 'ambiguous';
+ reason = 'ambiguous column reference; no binding invented';
+ }
+ if (b.resolution === 'exact' && b.source && b.span)
+ bindings.push({ source: b.source, column: b.name, span: b.span });
+ });
+ if (scan.opaqueSpans.length) {
+ resolution = 'opaque';
+ reason = 'subquery expression is opaque';
+ }
+ scan.opaqueSpans.forEach(function (sp) { opaqueCount += Math.max(1, colTokensInSpan(toks, sp)); });
+ var name = item.alias || colOutputName(item.expr, scan.refs);
+ outputs.push({ name: name, label: item.alias || clip(joinToks(item.expr, 40), 40),
+ span: itemSpan, bindings: bindings, resolution: resolution,
+ reason: reason });
+ });
+ return { outputs: outputs, sources: sources, references: references,
+ wildcards: wildcards, opaqueCount: opaqueCount, diagnostics: diagnostics };
+}
+/* Analyse one query (WITH … SELECT or plain SELECT) down to column level. */
+function colAnalyseToks(toks, ctx) {
+ if (!toks.length)
+ return null;
+ if (ctx.depth > 8)
+ return null;
+ var split = splitCtesColumn(toks);
+ var diagnostics = [];
+ var references = [];
+ var wildcards = [];
+ var opaqueCount = 0;
+ var sourcesAll = [];
+ var outputs = [];
+ var cteMap = {};
+ if (ctx.cteColumns)
+ Object.keys(ctx.cteColumns).forEach(function (k) { cteMap[k] = ctx.cteColumns[k]; });
+ split.ctes.forEach(function (cte) {
+ var child = { cteColumns: cteMap, catalogue: ctx.catalogue,
+ dialect: ctx.dialect, depth: ctx.depth + 1 };
+ var inner = colAnalyseToks(cte.body, child);
+ var cols = cte.colToks && cte.colToks.length
+ ? colNamesOf(cte.colToks)
+ : ((inner && inner.outputs.map(function (o) { return o.name; })) || []);
+ cteMap[cte.name.toUpperCase()] = cols;
+ if (inner) {
+ references = references.concat(inner.references);
+ wildcards = wildcards.concat(inner.wildcards);
+ opaqueCount += inner.opaqueCount;
+ inner.diagnostics.forEach(function (d) { diagnostics.push(d); });
+ inner.sources.forEach(function (s) { if (!colSourceByKey(sourcesAll, s.key))
+ sourcesAll.push(s); });
+ }
+ });
+ var finalToks = toks.slice(split.finalStart);
+ if (!finalToks.length || finalToks[0].u !== 'SELECT')
+ return null;
+ var arms = colSplitArms(finalToks);
+ var firstDone = false;
+ for (var a = 0; a < arms.length; a++) {
+ var arm = colAnalyseArm(arms[a], { cteColumns: cteMap, catalogue: ctx.catalogue,
+ dialect: ctx.dialect, depth: ctx.depth + 1 }, a === 0);
+ if (!arm)
+ continue;
+ references = references.concat(arm.references);
+ wildcards = wildcards.concat(arm.wildcards);
+ opaqueCount += arm.opaqueCount;
+ arm.diagnostics.forEach(function (d) { diagnostics.push(d); });
+ arm.sources.forEach(function (s) { if (!colSourceByKey(sourcesAll, s.key))
+ sourcesAll.push(s); });
+ if (!firstDone) {
+ outputs = arm.outputs;
+ firstDone = true;
+ }
+ }
+ return { sources: sourcesAll, outputs: outputs, wildcards: wildcards,
+ references: references, tokensConsumed: toks.length,
+ tokensOpaque: opaqueCount, opaqueCount: opaqueCount,
+ diagnostics: diagnostics };
+}
+/* Public entry point: analyse one query statement's column lineage. Returns
+ null when the tokens do not represent a SELECT query. */
+function analyseColumns(toks, opts) {
+ opts = opts || {};
+ var ctx = { cteColumns: {}, catalogue: opts.catalogue || null,
+ dialect: opts.dialect, depth: 0 };
+ return colAnalyseToks(toks || [], ctx);
+}
+//# sourceMappingURL=columns.js.map
\ No newline at end of file
diff --git a/dist/src/columns.js.map b/dist/src/columns.js.map
new file mode 100644
index 0000000..633db20
--- /dev/null
+++ b/dist/src/columns.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../src/columns.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/src/ir.js b/dist/src/ir.js
index 902c4ae..88892bf 100644
--- a/dist/src/ir.js
+++ b/dist/src/ir.js
@@ -2198,6 +2198,26 @@ function analyse(sql, opts) {
var tempFlowEdges = (graph.stats && graph.stats.dataflow) || 0;
for (var tfi = 0; tfi < tempFlowEdges; tfi++)
trackC('temp_flow', true);
+ /* v1.10.0 — column lineage foundations. Every query-bearing SELECT statement
+ is analysed at column level: scopes and bindings plus explicit ambiguous
+ and opaque column references, surfaced as region-scoped diagnostics.
+ Unsupported or unresolved references never invent a binding. */
+ var columnLineages = [];
+ walkAst(ast, function (st) {
+ if (st.type !== 'stmt' || !st.toks || !st.toks.length)
+ return;
+ var csplit = splitCTEs(st.toks);
+ var cwork = csplit.ctes.length || csplit.finalStart > 0
+ ? st.toks.slice(csplit.finalStart) : st.toks;
+ var chead = cwork[0] ? cwork[0].u : '';
+ if (chead !== 'SELECT')
+ return;
+ var cl = analyseColumns(st.toks, { catalogue: opts.catalogue, dialect: dialect });
+ if (!cl)
+ return;
+ columnLineages.push(cl);
+ cl.diagnostics.forEach(function (d) { diagnostics.push(d); });
+ }, 0);
return { dialect: dialect, detected: det, confidence: confidence,
confidenceFormulaVersion: confidenceFormulaVersion,
confidenceSignals: confidenceSignals,
@@ -2206,6 +2226,7 @@ function analyse(sql, opts) {
diagnostics: diagnostics, header: header, ast: ast, mode: selectedMode,
graph: selected, stats: selected.stats,
mermaid: toMermaid(selected, opts.dir || 'TD'),
- attribution: attribution, constructCoverage: constructCoverage };
+ attribution: attribution, constructCoverage: constructCoverage,
+ columns: columnLineages };
}
//# sourceMappingURL=ir.js.map
\ No newline at end of file
diff --git a/dist/src/ir.js.map b/dist/src/ir.js.map
index 23053a2..1e813c2 100644
--- a/dist/src/ir.js.map
+++ b/dist/src/ir.js.map
@@ -1 +1 @@
-{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/ir.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/ir.ts"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,yCAAyC;AACzC,SAAS,QAAQ,CAAC,IAAa,EAAE,GAAY;IAC3C,IAAI,CAAC,GAAC,EAAE,CAAC;IACT,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;QAC7B,IAAI,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC;QACvC,IAAI,OAAO,GAAG,CAAC,KAAG,CAAC,IAAI,CAAC,KAAG,GAAG,IAAE,CAAC,KAAG,GAAG,IAAE,CAAC,KAAG,GAAG,IAAE,CAAC,KAAG,GAAG,IAAE,CAAC,KAAG,IAAI;eAClD,IAAI,KAAG,GAAG,IAAE,IAAI,KAAG,GAAG,IAAE,IAAI,KAAG,IAAI;eACnC,CAAC,CAAC,KAAG,GAAG,IAAE,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAG,CAAC,OAAO,IAAE,CAAC,IAAI,KAAG,GAAG,IAAE,IAAI,KAAG,GAAG,CAAC,EAAC,CAAC;YACrC,IAAI,EAAE,GAAG,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACjC,IAAG,CAAC,EAAE,IAAE,CAAC,EAAE,CAAC,IAAI,KAAG,IAAI,IAAE,EAAE,CAAC,CAAC,KAAG,GAAG,CAAC;gBACjC,CAAC,EAAE,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC;gBAAE,OAAO,GAAC,IAAI,CAAC;QAC3G,CAAC;QACD,CAAC,IAAI,CAAC,OAAO,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,GAAG,CAAC,GAAC,CAAC,CAAC;QACxB,IAAG,GAAG,IAAE,CAAC,CAAC,MAAM,GAAC,GAAG,GAAC,EAAE;YAAE,MAAM;IACjC,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AAClB,CAAC;AACD,SAAS,YAAY,CAAC,IAAqB;IACzC,IAAG,CAAC,IAAI,IAAE,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,EAAC,KAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC;AAC1D,CAAC;AACD,IAAI,cAAc,GAAyB;IACzC,eAAe,EAAC,OAAO,EAAE,aAAa,EAAC,OAAO,EAAE,aAAa,EAAC,OAAO;IACrE,cAAc,EAAC,OAAO,EAAE,cAAc,EAAC,OAAO;IAC9C,gBAAgB,EAAC,OAAO,EAAE,0BAA0B,EAAC,OAAO;IAC5D,2BAA2B,EAAC,OAAO;IACnC,8BAA8B,EAAC,OAAO,EAAE,kBAAkB,EAAC,OAAO;IAClE,kBAAkB,EAAC,OAAO,EAAE,qBAAqB,EAAC,OAAO;IACzD,gBAAgB,EAAC,OAAO,EAAE,eAAe,EAAC,OAAO;IACjD,mBAAmB,EAAC,OAAO;CAC5B,CAAC;AACF,SAAS,gBAAgB,CAAC,IAAe;IACvC,IAAG,CAAC,IAAI,CAAC,MAAM,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,OAAO,IAAE,IAAI,CAAC,MAAM,KAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,IAAI,KAAK,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,IAAG,KAAK,CAAC,CAAC,KAAG,UAAU,IAAE,IAAI,CAAC,CAAC,CAAC;QAC9B,OAAO,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAC,CAAC;IAClF,IAAG,KAAK,CAAC,CAAC,KAAG,WAAW,IAAE,KAAK,CAAC,CAAC,KAAG,OAAO,IAAE,KAAK,CAAC,IAAI,KAAG,MAAM;QAC9D,OAAO,EAAC,IAAI,EAAC,iBAAiB,EAAC,IAAI,EAAC,OAAO,EAAC,CAAC;IAC/C,OAAO,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC,EAAC,IAAI,EAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,IAAE,EAAE,EAAC,CAAC;AACzD,CAAC;AACD,SAAS,qBAAqB,CAAC,IAAsB;IACnD,IAAI,GAAG,GAAY,CAAC,EAAE,CAAC,EAAE,KAAK,GAAC,CAAC,CAAC;IACjC,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG;QAC7B,IAAG,GAAG,CAAC,CAAC,KAAG,GAAG;YAAE,KAAK,EAAE,CAAC;aACnB,IAAG,GAAG,CAAC,CAAC,KAAG,GAAG;YAAE,KAAK,EAAE,CAAC;QAC7B,IAAG,GAAG,CAAC,CAAC,KAAG,IAAI,IAAE,KAAK,KAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;YACpC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AACD,SAAS,gBAAgB,CAAC,IAAsB,EAAE,KAAuB;IACvE,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAS,IAAI;QACnD,IAAG,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9B,IAAI,IAAI,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,IAAG,IAAI,KAAG,QAAQ;YAChB,OAAO,CAAC,gBAAgB,EAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAC,CAAC;gBACzD,CAAC,OAAO,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAC,CAAC,CAAC;QACjD,IAAI,IAAI,GAAC,IAAI,KAAG,UAAU,IAAE,IAAI,CAAC,CAAC,CAAC;YACjC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC,WAAW,EAAE;YAC3D,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAE,EAAE,CAAC,CAAC;QAC/B,IAAG,KAAK,CAAC,IAAI,IAAE,IAAI,KAAG,KAAK,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAC9C,IAAG,CAAC,IAAI,IAAE,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACpC,OAAO,IAAI,KAAG,KAAK,CAAC,IAAI;YACtB,CAAC,IAAI,CAAC,MAAM,KAAG,CAAC,IAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,KAAK,IAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,KAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AACL,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAsB;IAChD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAS,IAAI;QACnD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,QAAQ,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AACD,SAAS,uBAAuB,CAAC,IAAe,EAAE,UAAkB,EAChE,gBAAyB;IAC3B,IAAG,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,IAAI,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnB,IAAG,CAAC,QAAQ,EAAC,UAAU,EAAC,MAAM,EAAC,WAAW,EAAC,SAAS,EAAC,OAAO,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAC,CAAC;QACnF,OAAO,IAAI,CAAC;IACd,IAAI,SAAS,GAAC,IAAI,KAAG,MAAM,IAAE,IAAI,KAAG,WAAW,IAAE,IAAI,KAAG,SAAS;QAC/D,CAAC,IAAI,KAAG,UAAU,IAAE,IAAI,CAAC,IAAI,CAAC,UAAS,GAAG,IAAE,OAAO,GAAG,CAAC,CAAC,KAAG,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC;IACtE,IAAG,SAAS;QAAE,OAAO;YACnB,OAAO,EAAC,IAAI;YACZ,KAAK,EAAC,+CAA+C;YACrD,IAAI,EAAC,+BAA+B;YACpC,QAAQ,EAAC,OAAO;YAChB,OAAO,EAAC,uHAAuH;SAChI,CAAC;IACF,IAAG,IAAI,KAAG,OAAO,IAAE,IAAI,KAAG,OAAO;QAAE,OAAO;YACxC,OAAO,EAAC,IAAI;YACZ,KAAK,EAAC,2CAA2C;YACjD,IAAI,EAAC,uCAAuC;YAC5C,QAAQ,EAAC,OAAO;YAChB,OAAO,EAAC,kJAAkJ;SAC3J,CAAC;IACF,IAAG,gBAAgB;QAAE,OAAO;YAC1B,OAAO,EAAC,IAAI;YACZ,KAAK,EAAC,yCAAyC;YAC/C,IAAI,EAAC,wCAAwC;YAC7C,QAAQ,EAAC,OAAO;YAChB,OAAO,EAAC,6GAA6G;SACtH,CAAC;IACF,IAAI,IAAI,GAAC,MAAM,CAAC,UAAU,IAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAG,IAAI,KAAG,WAAW,IAAE,IAAI,KAAG,MAAM,IAAE,IAAI,KAAG,IAAI;QAAE,OAAO;YACxD,OAAO,EAAC,IAAI;YACZ,KAAK,EAAC,+CAA+C;YACrD,IAAI,EAAC,6BAA6B;YAClC,QAAQ,EAAC,OAAO;YAChB,OAAO,EAAC,2GAA2G;SACpH,CAAC;IACF,IAAG,IAAI,KAAG,IAAI;QAAE,OAAO;YACrB,OAAO,EAAC,KAAK;YACb,KAAK,EAAC,iCAAiC;YACvC,IAAI,EAAC,IAAI;YACT,QAAQ,EAAC,IAAI;YACb,OAAO,EAAC,EAAE;SACX,CAAC;IACF,OAAO;QACL,OAAO,EAAC,KAAK;QACb,KAAK,EAAC,gCAAgC;QACtC,IAAI,EAAC,sCAAsC;QAC3C,QAAQ,EAAC,SAAS;QAClB,OAAO,EAAC,qJAAqJ;KAC9J,CAAC;AACJ,CAAC;AACD,SAAS,2BAA2B,CAAC,IAAe,EAAE,MAAiB,EACnE,WAAyB,EAAE,gBAA0B;IACvD,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE;QAC5B,IAAG,EAAE,CAAC,IAAI,KAAG,MAAM,EAAC,CAAC;YACnB,IAAI,UAAU,GAAC,uBAAuB,CACpC,EAAE,CAAC,IAAI,EAAC,MAAM,CAAC,IAAI,IAAE,EAAE,EAAC,gBAAgB,KAAG,IAAI,CAAC,CAAC;YACnD,IAAG,UAAU,IAAE,UAAU,CAAC,IAAI,IAAE,UAAU,CAAC,QAAQ;gBACjD,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAC,UAAU,CAAC,QAAQ;oBAC5B,IAAI,EAAC,UAAU,CAAC,IAAI;oBACpB,OAAO,EAAC,UAAU,CAAC,OAAO;oBAC1B,IAAI,EAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC;iBAC3B,CAAC,CAAC;QACP,CAAC;QACD,IAAG,EAAE,CAAC,IAAI,KAAG,OAAO;YAClB,2BAA2B,CAAC,EAAE,CAAC,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,gBAAgB,CAAC,CAAC;aACtE,IAAG,EAAE,CAAC,IAAI,KAAG,IAAI,EAAC,CAAC;YACtB,IAAG,EAAE,CAAC,IAAI;gBAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,MAAM,EAAC,WAAW,EAAC,gBAAgB,CAAC,CAAC;YACvF,IAAG,EAAE,CAAC,IAAI;gBAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,MAAM,EAAC,WAAW,EAAC,gBAAgB,CAAC,CAAC;QACzF,CAAC;aAAM,IAAG,EAAE,CAAC,IAAI,KAAG,MAAM,EAAC,CAAC;YAC1B,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAS,MAAM;gBACjC,2BAA2B,CAAC,MAAM,CAAC,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,gBAAgB,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;YACH,IAAG,EAAE,CAAC,IAAI;gBAAE,2BAA2B,CAAC,EAAE,CAAC,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,gBAAgB,CAAC,CAAC;QACvF,CAAC;aAAM,IAAG,CAAC,EAAE,CAAC,IAAI,KAAG,OAAO,IAAE,EAAE,CAAC,IAAI,KAAG,KAAK,IAAE,EAAE,CAAC,IAAI,KAAG,MAAM;YACpD,EAAE,CAAC,IAAI,KAAG,QAAQ,CAAC,IAAE,EAAE,CAAC,IAAI;YACrC,2BAA2B,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,MAAM,EAAC,WAAW,EAAC,gBAAgB,CAAC,CAAC;aACxE,IAAG,EAAE,CAAC,IAAI,KAAG,KAAK,EAAC,CAAC;YACvB,2BAA2B,CAAC,EAAE,CAAC,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,IAAI,CAAC,CAAC;YAC7D,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAS,OAAO;gBAClC,2BAA2B,CAAC,OAAO,CAAC,IAAI,EAAC,MAAM,EAAC,WAAW,EAAC,IAAI,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAG,EAAE,CAAC,IAAI,KAAG,SAAS,IAAE,EAAE,CAAC,IAAI;YACpC,2BAA2B,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,MAAM,EAAC,WAAW,EAAC,gBAAgB,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC;AACD,SAAS,IAAI,CAAC,CAAS,EAAE,GAAW,IAAY,OAAO,CAAC,CAAC,MAAM,GAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,SAAS,KAAK,CAAC,IAAa,EAAE,CAAS;IACrC,IAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IACvB,IAAI,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC;IACvB,OAAM,IAAI,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG,IAAE,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC;QAAC,CAAC,IAAE,GAAG,GAAC,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC,IAAE,CAAC,CAAC;IAAC,CAAC;IACvE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,SAAS,CAAC,IAAa,EAAE,GAAW;IAC3C,IAAI,CAAC,GAAC,UAAS,CAAC,IAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,GAAC,UAAS,CAAC,IAAG,OAAO,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,IAAI,GAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,GAAC,IAAI,EAAE,CAAC,CAAC;IAC3B,IAAG,IAAI,KAAG,QAAQ,IAAE,IAAI,KAAG,SAAS,EAAC,CAAC;QACpC,CAAC,GAAC,CAAC,CAAC;QACJ,OAAM,CAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC;YAAE,CAAC,EAAE,CAAC;QAC7D,GAAG,GAAC,cAAc,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAG,IAAI,KAAG,QAAQ,EAAC,CAAC;QACzB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,IAAI,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC;QACzC,GAAG,GAAC,SAAS,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;SAAM,IAAG,IAAI,KAAG,QAAQ,EAAC,CAAC;QACzB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,GAAG,GAAC,cAAc,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAG,IAAI,KAAG,OAAO,EAAC,CAAC;QACxB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,GAAG,GAAC,QAAQ,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;SAAM,IAAG,IAAI,KAAG,MAAM,IAAE,IAAI,KAAG,SAAS,IAAE,IAAI,KAAG,MAAM,IAAE,IAAI,KAAG,SAAS,EAAC,CAAC;QAC1E,CAAC,GAAC,CAAC,CAAC;QACJ,IAAG,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAG,GAAG,IAAE,IAAI,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG;YAAE,CAAC,GAAC,CAAC,CAAC;QAC7D,GAAG,GAAC,CAAC,IAAI,KAAG,SAAS,CAAA,CAAC,CAAA,UAAU,CAAA,CAAC,CAAA,CAAC,IAAI,KAAG,MAAM,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,OAAO,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;SAAM,IAAG,IAAI,KAAG,QAAQ,EAAC,CAAC;QACzB,IAAI,IAAI,GAAC,CAAC,CAAC,EAAE,IAAI,GAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;QAC1B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;YAC7B,IAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG;gBAAE,CAAC,EAAE,CAAC;iBACnB,IAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG;gBAAE,CAAC,EAAE,CAAC;iBACxB,IAAG,CAAC,KAAG,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,MAAM,IAAE,IAAI,GAAC,CAAC;gBAAE,IAAI,GAAC,CAAC,CAAC;iBAC7C,IAAG,CAAC,KAAG,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,MAAM,IAAE,IAAI,GAAC,CAAC;gBAAE,IAAI,GAAC,CAAC,CAAC;QACpD,CAAC;QACD,IAAG,IAAI,IAAE,CAAC;YAAE,GAAG,GAAC,gBAAgB,GAAC,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC;aACtC,IAAG,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAG,GAAG;YAAE,GAAG,GAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,IAAI,GAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC;aACnF,IAAG,IAAI,IAAE,CAAC;YAAE,GAAG,GAAC,gBAAgB,GAAC,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC;IAClD,CAAC;SAAM,IAAG,IAAI,KAAG,SAAS,EAAC,CAAC;QAC1B,IAAI,MAAM,GAAC,CAAC,CAAC,CAAC;QACd,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE;YAAE,IAAG,CAAC,CAAC,CAAC,CAAC,KAAG,QAAQ,EAAC,CAAC;gBAAC,MAAM,GAAC,CAAC,CAAC;gBAAC,MAAM;YAAC,CAAC;QACtE,IAAG,MAAM,IAAE,CAAC;YAAE,GAAG,GAAC,iBAAiB,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,GAAC,EAAE,CAAC;QACZ,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,MAAM,IAAE,IAAI,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,EAAE;YAC1C,IAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAG,GAAG,IAAE,CAAC,CAAC,KAAG,CAAC,IAAE,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,IAAG,CAAC,GAAG,IAAE,IAAI,CAAC,MAAM;YAAE,GAAG,GAAC,UAAU,GAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAC,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC;IAC/E,CAAC;SAAM,IAAG,IAAI,KAAG,OAAO,IAAE,IAAI,KAAG,QAAQ,IAAE,IAAI,KAAG,UAAU,IAAE,IAAI,KAAG,WAAW,EAAC,CAAC;QAChF,GAAG,GAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC,GAAG,CAAC,EAAC,GAAG,CAAC,CAAC;IACnC,CAAC;SAAM,IAAG,IAAI,KAAG,OAAO,IAAE,IAAI,KAAG,QAAQ,IAAE,IAAI,KAAG,MAAM,EAAC,CAAC;QACxD,IAAI,IAAI,GAAC,CAAC,CAAC,EAAE,GAAG,GAAC,CAAC,CAAC;QACnB,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,MAAM,EAAC,EAAE,EAAE,EAAC,CAAC;YAChC,IAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAG,GAAG;gBAAE,GAAG,EAAE,CAAC;iBACtB,IAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAG,GAAG;gBAAE,GAAG,EAAE,CAAC;iBAC3B,IAAG,GAAG,KAAG,CAAC,IAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAG,IAAI,EAAC,CAAC;gBAAC,IAAI,GAAC,EAAE,CAAC;gBAAC,MAAM;YAAC,CAAC;QACxD,CAAC;QACD,IAAG,IAAI,GAAC,CAAC;YAAE,GAAG,GAAC,IAAI,GAAC,QAAQ,GAAC,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC;;YAClC,GAAG,GAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC,GAAG,CAAC,EAAC,GAAG,CAAC,CAAC;IACxC,CAAC;SAAM,IAAG,IAAI,KAAG,SAAS,EAAC,CAAC;QAC1B,GAAG,GAAC,UAAU,GAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,GAAG,GAAC,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC;IACzD,CAAC;SAAM,IAAG,IAAI,KAAG,MAAM,EAAC,CAAC;QACvB,GAAG,GAAC,OAAO,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;SAAM,IAAG,IAAI,KAAG,MAAM,IAAE,IAAI,KAAG,OAAO,IAAE,IAAI,KAAG,YAAY,IAAE,IAAI,KAAG,UAAU,EAAC,CAAC;QAC/E,GAAG,GAAC,IAAI,GAAC,GAAG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;SAAM,IAAG,IAAI,KAAG,OAAO,EAAC,CAAC;QACxB,IAAI,EAAE,GAAC,CAAC,CAAC,CAAC;QACV,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,MAAM,EAAC,EAAE,EAAE;YAAE,IAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAG,MAAM,EAAC,CAAC;gBAAC,EAAE,GAAC,EAAE,CAAC;gBAAC,MAAM;YAAC,CAAC;QAC1E,GAAG,GAAG,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,GAAC,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC,GAAG,CAAC,EAAC,GAAG,CAAC,CAAC;IACtE,CAAC;IACD,IAAG,CAAC,GAAG;QAAE,GAAG,GAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,MAAM,CAAC,CAAC,CAAC;SACb,OAAO,CAAC,IAAI,EAAC,MAAM,CAAC;SACpB,OAAO,CAAC,IAAI,EAAC,OAAO,CAAC;SACrB,OAAO,CAAC,IAAI,EAAC,QAAQ,CAAC;SACtB,OAAO,CAAC,IAAI,EAAC,MAAM,CAAC;SACpB,OAAO,CAAC,IAAI,EAAC,MAAM,CAAC;SACpB,OAAO,CAAC,KAAK,EAAC,OAAO,CAAC;SACtB,OAAO,CAAC,KAAK,EAAC,UAAU,CAAC;SACzB,OAAO,CAAC,UAAU,EAAC,GAAG,CAAC;SACvB,OAAO,CAAC,SAAS,EAAC,MAAM,CAAC;SACzB,OAAO,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,IAAI,uBAAuB,GAAC,CAAC,EAAE,cAAc,GAAC,CAAC,EAC3C,qBAAqB,GAAC,CAAC,EAAE,aAAa,GAAC,CAAC,CAAC;AAE7C,SAAS,iBAAiB,CAAC,IAAe,EAAE,KAAa,EAAE,GAAW;IACpE,IAAI,IAAI,GAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC;IACpB,IAAG,CAAC,GAAC,GAAG,IAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG,CAAC,EAAC,CAAC;QAC5C,IAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG;YAAE,IAAI,GAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,EAAE,CAAC;IACN,CAAC;IACD,IAAG,CAAC,IAAE,GAAG,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,KAAK,IAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,OAAO,EAAC,KAAK,EAAC,IAAI,GAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,IAAI,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC;AACtD,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAe,EAAE,KAAa,EAAE,GAAW;IACrE,OAAO,KAAK,GAAC,CAAC,GAAC,GAAG,IAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,YAAY;QACzC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG,IAAE,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG,CAAC;AACtD,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAe;IACxC,IAAI,KAAK,GAAC,CAAC,EAAE,GAAG,GAAC,IAAI,CAAC,MAAM,EAAE,OAAO,GAAC,IAAI,CAAC;IAC3C,OAAM,OAAO,IAAE,GAAG,GAAC,KAAK,IAAE,CAAC,IAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,GAAG,IAAE,IAAI,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG,EAAC,CAAC;QACrE,OAAO,GAAC,KAAK,CAAC;QACd,IAAI,KAAK,GAAC,CAAC,CAAC;QACZ,KAAI,IAAI,CAAC,GAAC,KAAK,EAAC,CAAC,GAAC,GAAG,EAAC,CAAC,EAAE,EAAC,CAAC;YACzB,IAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG;gBAAE,KAAK,EAAE,CAAC;iBACvB,IAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG;gBAAE,KAAK,EAAE,CAAC;YACjC,IAAG,KAAK,KAAG,CAAC,EAAC,CAAC;gBACZ,IAAG,CAAC,KAAG,GAAG,GAAC,CAAC,EAAC,CAAC;oBAAC,KAAK,EAAE,CAAC;oBAAC,GAAG,EAAE,CAAC;oBAAC,OAAO,GAAC,IAAI,CAAC;gBAAC,CAAC;gBAC9C,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,EAAE,GAAC,EAAE,EAAE,KAAK,GAAC,IAAI,CAAC;IACtB,IAAG,kBAAkB,CAAC,IAAI,EAAC,KAAK,EAAC,GAAG,CAAC,IAAE,KAAK,GAAC,CAAC,GAAC,GAAG,EAAC,CAAC;QAClD,EAAE,GAAC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,GAAC,iBAAiB,CAAC,IAAI,EAAC,KAAK,GAAC,CAAC,EAAC,GAAG,CAAC,CAAC;QAC1C,IAAG,CAAC,KAAK,IAAE,KAAK,CAAC,IAAI,KAAG,GAAG;YAAE,OAAO,IAAI,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,KAAK,GAAC,iBAAiB,CAAC,IAAI,EAAC,KAAK,EAAC,GAAG,CAAC,CAAC;QACxC,IAAG,CAAC,KAAK,IAAE,KAAK,CAAC,IAAI,IAAE,GAAG;YAAE,OAAO,IAAI,CAAC;QACxC,EAAE,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAG,CAAC,kBAAkB,CAAC,IAAI,EAAC,KAAK,CAAC,IAAI,GAAC,CAAC,EAAC,GAAG,CAAC,IAAE,KAAK,CAAC,IAAI,GAAC,CAAC,KAAG,GAAG;YAAE,OAAO,IAAI,CAAC;IACjF,CAAC;IACD,IAAG,CAAC,GAAG,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAC,CAAC;QAC7B,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,GAAG,GAAC,KAAK,CAAC,KAAK,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,uBAAuB,CAAA,CAAC;QACzC,CAAC,KAAK,CAAC,KAAK,KAAG,CAAC,CAAA,CAAC,CAAA,cAAc,CAAA,CAAC,CAAA,qBAAqB,CAAC,CAAC;IAC/D,IAAI,KAAK,GAAC,EAAE,KAAG,GAAG,CAAC;IACnB,IAAI,WAAW,GAAC,KAAK,CAAC,KAAK,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,eAAe,CAAA,CAAC;QACjC,CAAC,KAAK,CAAC,KAAK,KAAG,CAAC,CAAA,CAAC,CAAA,uBAAuB,CAAA,CAAC,CAAA,aAAa,CAAC,CAAC;IACxE,IAAI,QAAQ,GAAC,CAAC,KAAK,IAAE,KAAK,CAAC,KAAK,KAAG,CAAC;QAClC,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,CAAA,WAAW,GAAC,GAAG,CAAA,CAAC,CAAA,MAAM,GAAC,WAAW,GAAC,GAAG,CAAC,CAAC;IACnD,OAAO;QACL,IAAI,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,GAAC,KAAK,GAAC,QAAQ;QAC9C,UAAU,EAAC,KAAK,CAAA,CAAC,CAAA,GAAG,CAAA,CAAC,CAAA,CAAC,aAAa,GAAC,GAAG,CAAC;QACxC,WAAW,EAAC,KAAK,CAAA,CAAC,CAAA,CAAC,aAAa,GAAC,GAAG,CAAC,CAAA,CAAC,CAAA,GAAG;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAe;IACxC,IAAI,KAAK,GAAC,CAAC,EAAE,GAAG,GAAC,IAAI,CAAC,MAAM,EAAE,OAAO,GAAC,IAAI,CAAC;IAC3C,OAAM,OAAO,IAAE,GAAG,GAAC,KAAK,IAAE,CAAC,IAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,GAAG,IAAE,IAAI,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG,EAAC,CAAC;QACrE,OAAO,GAAC,KAAK,CAAC;QACd,IAAI,KAAK,GAAC,CAAC,CAAC;QACZ,KAAI,IAAI,CAAC,GAAC,KAAK,EAAC,CAAC,GAAC,GAAG,EAAC,CAAC,EAAE,EAAC,CAAC;YACzB,IAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG;gBAAE,KAAK,EAAE,CAAC;iBACvB,IAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG;gBAAE,KAAK,EAAE,CAAC;YACjC,IAAG,KAAK,KAAG,CAAC,EAAC,CAAC;gBACZ,IAAG,CAAC,KAAG,GAAG,GAAC,CAAC,EAAC,CAAC;oBAAC,KAAK,EAAE,CAAC;oBAAC,GAAG,EAAE,CAAC;oBAAC,OAAO,GAAC,IAAI,CAAC;gBAAC,CAAC;gBAC9C,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,EAAE,GAAC,EAAE,EAAE,KAAK,GAAC,IAAI,EAAE,UAAU,GAAC,KAAK,CAAC;IACxC,IAAG,IAAI,CAAC,KAAK,CAAC,IAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,aAAa,IAAE,KAAK,GAAC,CAAC,GAAC,GAAG,EAAC,CAAC;QAC1D,EAAE,GAAC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,GAAC,iBAAiB,CAAC,IAAI,EAAC,KAAK,GAAC,CAAC,EAAC,GAAG,CAAC,CAAC;QAC1C,UAAU,GAAC,IAAI,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,KAAK,GAAC,iBAAiB,CAAC,IAAI,EAAC,KAAK,EAAC,GAAG,CAAC,CAAC;QACxC,IAAG,KAAK,IAAE,KAAK,CAAC,IAAI,GAAC,CAAC,GAAC,GAAG,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC,CAAC,KAAG,aAAa,EAAC,CAAC;YAChE,EAAE,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,IAAG,KAAK,CAAC,IAAI,GAAC,CAAC,KAAG,GAAG;gBAAE,OAAO,IAAI,CAAC;QACrC,CAAC;IACH,CAAC;IACD,IAAG,CAAC,KAAK,IAAE,KAAK,CAAC,KAAK,GAAC,CAAC;QACrB,CAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,IAAG,CAAC,UAAU,EAAC,CAAC;QACd,IAAI,QAAQ,GAAyB;YACnC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI;SAChE,CAAC;QACF,EAAE,GAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;SAAM,IAAG,KAAK,CAAC,IAAI,KAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAExC,IAAI,CAAC,GAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAuB,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC;IAC9D,IAAI,SAAS,GAAuB,GAAG,EAAE,UAAU,GAAuB,GAAG,CAAC;IAC9E,IAAG,EAAE,KAAG,GAAG,EAAC,CAAC;QACX,SAAS,GAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;QACxB,UAAU,GAAC,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAA,CAAC,CAAA,GAAG,CAAC;IACxC,CAAC;SAAM,IAAG,EAAE,KAAG,IAAI,IAAE,EAAE,KAAG,IAAI,EAAC,CAAC;QAC9B,SAAS,GAAC,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAA,CAAC,CAAA,GAAG,CAAC;QACrC,UAAU,GAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;IAC3B,CAAC;SAAM,IAAG,EAAE,KAAG,GAAG,EAAC,CAAC;QAClB,SAAS,GAAC,EAAC,GAAG,EAAC,CAAC,GAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC;QAC7B,UAAU,GAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;IAC3B,CAAC;SAAM,IAAG,EAAE,KAAG,IAAI,EAAC,CAAC;QACnB,SAAS,GAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC;QAC3B,UAAU,GAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC;IAC7B,CAAC;SAAM,IAAG,EAAE,KAAG,GAAG,EAAC,CAAC;QAClB,SAAS,GAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC;QAC1B,UAAU,GAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,SAAS,GAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;QACxB,UAAU,GAAC,EAAC,GAAG,EAAC,CAAC,GAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC;IAChC,CAAC;IACD,IAAI,QAAQ,GAAC,CAAC,KAAG,CAAC,IAAE,CAAC,EAAE,KAAG,GAAG,CAAC;QAC5B,CAAC,CAAC,wBAAwB;QAC1B,CAAC,CAAC,CAAC,CAAC,KAAG,CAAC,IAAE,CAAC,EAAE,KAAG,GAAG,IAAE,EAAE,KAAG,IAAI,IAAE,EAAE,KAAG,IAAI,CAAC;YACxC,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,CAAC,CAAC,KAAG,CAAC,IAAE,EAAE,KAAG,GAAG,CAAA,CAAC,CAAA,qBAAqB,CAAA,CAAC,CAAA,oBAAoB,CAAC,CAAC,CAAC;IACpE,OAAO;QACL,IAAI,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,GAAC,KAAK,GAAC,QAAQ;QAC9C,SAAS,EAAC,SAAS;QACnB,UAAU,EAAC,UAAU;KACtB,CAAC;AACJ,CAAC;AAED,yCAAyC;AACzC,SAAS,UAAU,CAAC,GAAc,EAAE,MAAiB,EACjD,IAAuE;IACzE,IAAI,GAAC,IAAI,IAAE,EAAE,CAAC;IACd,IAAI,MAAM,GAAC,IAAI,CAAC,MAAM,IAAE,SAAS,EAAE,KAAK,GAAC,IAAI,CAAC,KAAK,KAAG,KAAK,CAAC;IAC5D,IAAI,OAAO,GAAC,IAAI,CAAC,OAAO,IAAE,MAAM,CAAC;IACjC,IAAI,KAAK,GAAC,IAAI,CAAC,KAAK,KAAG,IAAI,EAAE,MAAM,GAAC,IAAI,CAAC,MAAM,KAAG,IAAI,CAAC;IACvD,IAAI,cAAc,GAAe,IAAI,CAAC,WAAW,IAAE,EAAE,CAAC;IACtD,IAAI,OAAO,GAAY,EAAE,CAAC,CAAuB,6CAA6C;IAC9F,IAAI,WAAW,GAAY,EAAE,CAAC,CAAmB,gDAAgD;IACjG,IAAI,WAAW,GAAW,CAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,QAAQ,EAAC,QAAQ,CAAC,CAAC;IACxE,IAAI,eAAe,GAAW,CAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,EAAC,MAAM,CAAC,CAAC;IAC1F,IAAI,YAAY,GAAY,EAAE,EAAE,gBAAgB,GAAY,EAAE,CAAC;IAC/D,IAAI,WAAW,GAAmB,EAAE,CAAC;IACrC,IAAI,QAAQ,GAA0C,EAAE,CAAC;IACzD,IAAI,MAAM,GAAG,MAAM,KAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,IAAI,KAAK,GAAc,EAAE,EAAE,KAAK,GAAc,EAAE,EAAE,GAAG,GAAC,CAAC,CAAC;IACxD,IAAI,KAAK,GAAa,EAAC,IAAI,EAAC,CAAC,EAAE,MAAM,EAAC,CAAC,EAAE,IAAI,EAAC,CAAC,EAAE,GAAG,EAAC,CAAC,EAAE,IAAI,EAAC,CAAC,EAAE,KAAK,EAAC,CAAC,EAAE,MAAM,EAAC,CAAC,EAAE,QAAQ,EAAC,CAAC,EAAC,CAAC;IAC/F,IAAI,MAAM,GAAyB,EAAE,EAAE,KAAK,GAAmD,EAAE,CAAC;IAClG,IAAI,eAAe,GAAuE,EAAE,CAAC;IAE7F,SAAS,WAAW,CAAC,GAAW,EAAE,KAAa;QAC7C,IAAG,KAAK,KAAG,QAAQ;YAAE,OAAO,WAAW,CAAC;QACxC,IAAG,GAAG,KAAG,MAAM;YAAE,OAAO,MAAM,CAAC;QAC/B;;0BAEkB;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,SAAS,GAAG,CAAC,KAAa,EAAE,IAAa,EAAE,GAAW,EAAE,MAA0B,EAC9E,KAAgB,EAAE,MAAe;QACnC,IAAI,EAAE,GAAC,GAAG,GAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnB,IAAI,KAAK,GAAC,CAAC,IAAI,IAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAE,GAAG,CAAC;QAC3C,IAAI,UAAU,GAAC,KAAK,IAAE,KAAK,CAAC,MAAM;YAChC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC;YAC1F,CAAC,CAAC,SAAS,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,KAAK,EAAC,KAAK,EAAE,IAAI,EAAC,UAAU,CAAA,CAAC,CAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,KAAK;YAC/D,GAAG,EAAC,GAAG,EAAE,MAAM,EAAC,MAAM,IAAE,IAAI;YAC5B,KAAK,EAAC,UAAU;YAChB,UAAU,EAAC,MAAM,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,WAAW;YACtC,MAAM,EAAC,MAAM,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,MAAM,EAAC,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,SAAS,IAAI,CAAC,IAAmB,EAAE,EAAiB,EAAE,KAAc,EAChE,KAAc,EAAE,IAAe;QACjC,IAAG,CAAC,IAAI,IAAE,CAAC,EAAE;YAAE,OAAO;QACtB,IAAI,QAAQ,GAAC,KAAK,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,EAAE,KAAG,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAC,IAAI,IAAE,CAAC,QAAQ,CAAA,CAAC,CAAA,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAC,KAAK,IAAE,OAAO,CAAC,CAAA,CAAC,CAAA,SAAS,CAAC,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,IAAI,EAAE,EAAE,EAAC,EAAE,EAAE,KAAK,EAAC,KAAK,IAAE,EAAE,EAAE,KAAK,EAAC,KAAK,IAAE,OAAO,EAAE,IAAI,EAAC,QAAQ,EAAC,CAAC,CAAC;IACvF,CAAC;IACD,SAAS,cAAc,CAAC,IAAY,EAAE,QAAiB,EAAE,MAAgB;QACvE,IAAI,CAAC,GAAC,eAAe,CAAC,IAAI,CAAC,GAAC,eAAe,CAAC,IAAI,CAAC,IAAE,EAAC,QAAQ,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAC;QACpF,CAAC,CAAC,QAAQ,EAAE,CAAC;QACb,IAAG,MAAM;YAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,IAAG,QAAQ;YAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,SAAS,SAAS,CAAC,KAAY,EAAE,EAAU;QACzC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,MAAM,EAAC,CAAC,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxE,CAAC;IACD,SAAS,MAAM,CAAC,EAAiB;QAC/B,OAAO,MAAM,KAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAC,MAAM,CAAC,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC;IAC7F,CAAC;IACD,SAAS,MAAM,CAAC,EAAiB;QAC/B,IAAI,CAAC,GAAC,EAAE,CAAC,IAAI,IAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC;QAC1C,IAAG,CAAC,KAAG,WAAW,EAAC,CAAC;YAClB,IAAI,QAAQ,GAAC,uBAAuB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAG,QAAQ,KAAG,IAAI,IAAE,QAAQ,IAAE,EAAE;gBAAE,OAAO,QAAQ,CAAC;QACpD,CAAC;QACD,IAAG,CAAC,KAAG,OAAO,IAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACvB,CAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,OAAO,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC;YAAE,OAAO,QAAQ,CAAC;QACvF,IAAG,CAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,EAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAE,CAAC;YAAE,OAAO,QAAQ,CAAC;QACnF,IAAG,CAAC,KAAG,SAAS,IAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAS,GAAG,IAAE,OAAO,GAAG,CAAC,CAAC,KAAG,QAAQ,CAAC,CAAA,CAAC,CAAC;YAAE,OAAO,QAAQ,CAAC;QACzF,IAAG,CAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAE,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/F,IAAG,CAAC,MAAM,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAE,CAAC;YAAE,OAAO,MAAM,CAAC;QACpE,IAAG,CAAC,QAAQ,EAAC,UAAU,EAAC,MAAM,EAAC,WAAW,EAAC,SAAS,EAAC,OAAO,EAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAE,CAAC;YAAE,OAAO,MAAM,CAAC;QACnG,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,SAAS,iBAAiB,CAAC,GAAuB;QAChD,OAAM,GAAG,EAAC,CAAC;YACT,IAAG,GAAG,CAAC,UAAU,KAAG,SAAS;gBAAE,OAAO,GAAG,CAAC,UAAU,CAAC;YACrD,GAAG,GAAC,GAAG,CAAC,MAAM,CAAC;QACjB,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,SAAS,gBAAgB,CAAC,GAAuB;QAC/C,OAAM,GAAG,EAAC,CAAC;YACT,IAAG,GAAG,CAAC,SAAS,KAAG,SAAS;gBAAE,OAAO,GAAG,CAAC,SAAS,CAAC;YACnD,GAAG,GAAC,GAAG,CAAC,MAAM,CAAC;QACjB,CAAC;QACD,OAAO,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC;IAC1B,CAAC;IACD,SAAS,gBAAgB,CAAC,GAAuB;QAC/C,OAAM,GAAG,EAAC,CAAC;YACT,IAAG,GAAG,CAAC,SAAS,KAAG,SAAS;gBAAE,OAAO,GAAG,CAAC,SAAS,CAAC;YACnD,GAAG,GAAC,GAAG,CAAC,MAAM,CAAC;QACjB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,SAAS,iBAAiB,CAAC,GAAuB;QAChD,OAAM,GAAG,EAAC,CAAC;YACT,IAAG,GAAG,CAAC,UAAU,KAAG,SAAS;gBAAE,OAAO,GAAG,CAAC,UAAU,CAAC;YACrD,GAAG,GAAC,GAAG,CAAC,MAAM,CAAC;QACjB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,SAAS,uBAAuB,CAAC,GAAuB;QACtD,OAAM,GAAG,EAAC,CAAC;YACT,IAAG,GAAG,CAAC,gBAAgB;gBAAE,OAAO,IAAI,CAAC;YACrC,GAAG,GAAC,GAAG,CAAC,MAAM,CAAC;QACjB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,SAAS,cAAc,CAAC,GAAuB;QAC7C,OAAM,GAAG,EAAC,CAAC;YACT,IAAG,GAAG,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC5B,GAAG,GAAC,GAAG,CAAC,MAAM,CAAC;QACjB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;8EAI0E;IAC1E,IAAI,cAAc,GAAY,EAAE,CAAC;IACjC,SAAS,UAAU,CAAC,IAAY,IAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAG,GAAG,CAAC,CAAC,CAAC;IAC3E,SAAS,UAAU,CAAC,GAAuB,EAAE,IAAY;QACvD,IAAI,GAAG,GAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3B,OAAM,GAAG,EAAC,CAAC;YACT,IAAG,GAAG,CAAC,KAAK,IAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;gBAAE,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpD,GAAG,GAAC,GAAG,CAAC,MAAM,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,SAAS,iBAAiB,CAAC,GAAiB,EAAE,IAAuB;QACnE,IAAI,GAAG,GAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAG,cAAc,CAAC,GAAG,CAAC;YAAE,OAAO;QAC/B,cAAc,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC;QACtB,cAAc,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAC,qBAAqB;YAC7D,OAAO,EAAC,kBAAkB,GAAC,GAAG,CAAC,IAAI,GAAC,uCAAuC;gBACzE,sFAAsF;YACxF,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC;IAChC,CAAC;IACD,SAAS,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,IAAY;QAC1D,IAAG,MAAM,KAAG,IAAI;YAAE,OAAO;QACzB,IAAI,CAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,MAAM,CAAC,CAAC;QACtC,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnB,CAAC;IACD;yEACqE;IACrE,SAAS,aAAa,CAAC,EAAiB,EAAE,MAAc,EACpD,GAAuB;QACzB,IAAI,KAAK,GAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,GAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,MAAM,GAAsC,IAAI,CAAC;QACrD,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,IAAI;YAC/B,IAAG,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC7B,IAAI,GAAG,GAAC,UAAU,CAAC,GAAG,EAAC,IAAI,CAAC,CAAC;YAC7B,IAAG,CAAC,GAAG;gBAAE,OAAO;YAChB,IAAG,GAAG,CAAC,KAAK,EAAC,CAAC;gBAAC,iBAAiB,CAAC,GAAG,EAAC,IAAI,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACrD,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAC,MAAM,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,UAAS,IAAI;YAChC,IAAG,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC7B,IAAI,GAAG,GAAC,UAAU,CAAC,GAAG,EAAC,IAAI,CAAC,CAAC;YAC7B,IAAG,GAAG,IAAE,GAAG,CAAC,KAAK;gBAAE,iBAAiB,CAAC,GAAG,EAAC,IAAI,CAAC,CAAC;iBAC1C,IAAG,GAAG;gBAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAC,MAAM,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,GAAC,MAAM,IAAE,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAC,EAAC,EAAE,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,iEAAiE;IACjE,SAAS,eAAe,CAAC,GAAiC,EACtD,IAA0C;QAC5C,IAAG,CAAC,IAAI;YAAE,OAAO;QACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;YAClC,IAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAC,EAAC,EAAE,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS,aAAa,CAAC,IAA0C;QAC/D,IAAG,CAAC,IAAI,IAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACjD,IAAI,GAAG,GAA+B,EAAE,CAAC;QACzC,eAAe,CAAC,GAAG,EAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,SAAS,aAAa,CAAC,GAAuB,EAAE,MAAc,EAC1D,SAA+B;QACjC,OAAO,EAAC,MAAM,EAAC,GAAG,EAAC,QAAQ,EAAC,EAAE,EAAC,YAAY,EAAC,EAAE;YACtC,UAAU,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAC,CAAC;IACjD,CAAC;IACD,SAAS,eAAe,CAAC,MAAc;QACrC,IAAG,MAAM,KAAG,uBAAuB;YAAE,OAAO,oBAAoB,CAAC;QACjE,IAAG,MAAM,KAAG,cAAc;YAAE,OAAO,oBAAoB,CAAC;QACxD,IAAG,MAAM,KAAG,qBAAqB;YAAE,OAAO,iBAAiB,CAAC;QAC5D,IAAG,MAAM,KAAG,CAAC,uBAAuB,GAAC,qBAAqB,CAAC;YACzD,OAAO,gCAAgC,CAAC;QAC1C,IAAG,MAAM,KAAG,CAAC,cAAc,GAAC,qBAAqB,CAAC;YAAE,OAAO,mBAAmB,CAAC;QAC/E,IAAG,MAAM,KAAG,CAAC,uBAAuB,GAAC,cAAc,CAAC;YAAE,OAAO,iBAAiB,CAAC;QAC/E,OAAO,MAAM,KAAG,CAAC,CAAA,CAAC,CAAA,YAAY,CAAA,CAAC,CAAA,WAAW,CAAC;IAC7C,CAAC;IACD,SAAS,eAAe,CAAC,KAA2B;QAClD,IAAG,KAAK,CAAC,GAAG,KAAG,IAAI,IAAE,KAAK,CAAC,GAAG,GAAC,KAAK,CAAC,GAAG;YAAE,OAAO,YAAY,CAAC;QAC9D,IAAG,KAAK,CAAC,GAAG,KAAG,CAAC;YAAE,OAAO,0BAA0B,CAAC;QACpD,IAAG,KAAK,CAAC,GAAG,KAAG,CAAC,IAAE,KAAK,CAAC,GAAG,KAAG,CAAC;YAAE,OAAO,iCAAiC,CAAC;QAC1E,IAAG,KAAK,CAAC,GAAG,IAAE,CAAC,IAAE,KAAK,CAAC,GAAG,KAAG,IAAI;YAAE,OAAO,SAAS,GAAC,KAAK,CAAC,GAAG,GAAC,uBAAuB,CAAC;QACtF,IAAG,KAAK,CAAC,GAAG,KAAG,CAAC,IAAE,KAAK,CAAC,GAAG,KAAG,IAAI;YAAE,OAAO,+BAA+B,CAAC;QAC3E,IAAG,KAAK,CAAC,GAAG,KAAG,IAAI;YAAE,OAAO,SAAS,GAAC,KAAK,CAAC,GAAG,CAAC;QAChD,IAAG,KAAK,CAAC,GAAG,KAAG,KAAK,CAAC,GAAG;YAAE,OAAO,QAAQ,GAAC,KAAK,CAAC,GAAG,CAAC;QACpD,OAAO,QAAQ,GAAC,KAAK,CAAC,GAAG,GAAC,GAAG,GAAC,KAAK,CAAC,GAAG,CAAC;IAC1C,CAAC;IACD,SAAS,cAAc,CAAC,CAAuB,EAC3C,CAAuB;QACzB,IAAI,GAAG,GAAC,CAAC,CAAC,GAAG,KAAG,IAAI,CAAA,CAAC,CAAA,CAAC,CAAC,GAAG,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,GAAG,KAAG,IAAI,CAAA,CAAC,CAAA,CAAC,CAAC,GAAG,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,OAAO,EAAC,GAAG,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,GAAG,CAAC,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC;IAC7C,CAAC;IACD,SAAS,cAAc,CAAC,KAA2B;QACjD,IAAG,KAAK,CAAC,GAAG,KAAG,IAAI,IAAE,KAAK,CAAC,GAAG,GAAC,KAAK,CAAC,GAAG;YAAE,OAAO,CAAC,CAAC;QACnD,IAAG,KAAK,CAAC,GAAG,KAAG,CAAC;YAAE,OAAO,cAAc,CAAC;QACxC,IAAG,KAAK,CAAC,GAAG,IAAE,CAAC;YAAE,OAAO,uBAAuB,GAAC,qBAAqB,CAAC;QACtE,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,SAAS,cAAc,CAAC,KAA2B,EAAE,MAAc;QACjE,IAAG,MAAM,KAAG,CAAC;YAAE,OAAO,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;QACpC,IAAG,CAAC,MAAM,GAAC,cAAc,CAAC,KAAG,CAAC;YAAE,OAAO,cAAc,CAAC,KAAK,EAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,CAAC;QAC9E,IAAG,CAAC,MAAM,GAAC,CAAC,uBAAuB,GAAC,qBAAqB,CAAC,CAAC,KAAG,CAAC;YAC7D,OAAO,cAAc,CAAC,KAAK,EAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,SAAS,qBAAqB,CAAC,EAAiB;QAC9C,IAAI,IAAI,GAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAC,IAAI,CAAC,MAAM,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,EAAE,CAAC,GAAC,CAAC,EAAE,MAAM,GAAC,EAAE,CAAC;QAChE,IAAG,IAAI,KAAG,OAAO,IAAE,IAAI,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,aAAa;YAAE,CAAC,EAAE,CAAC;QAC3D,IAAG,IAAI,CAAC,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,MAAM,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,aAAa,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC;YAAE,CAAC,EAAE,CAAC;QACrF,IAAG,CAAC,IAAI,KAAG,UAAU,IAAE,IAAI,KAAG,MAAM,IAAE,IAAI,KAAG,WAAW,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC;YAChE,MAAM,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO;YACL,IAAI,EAAC,IAAI,KAAG,OAAO,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,CAAC,IAAI,KAAG,QAAQ,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC;gBACjD,CAAC,IAAI,KAAG,UAAU,CAAA,CAAC,CAAA,UAAU,CAAA,CAAC;oBAC9B,CAAC,CAAC,IAAI,KAAG,MAAM,IAAE,IAAI,KAAG,WAAW,CAAC,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC;YACtD,MAAM,EAAC,MAAM;YACb,YAAY,EAAC,CAAC,CAAC,MAAM,IAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAG,GAAG;SAC9C,CAAC;IACJ,CAAC;IACD,SAAS,mBAAmB,CAAC,EAAiB,EAAE,GAAuB;QACrE,IAAI,GAAG,GAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,KAAK,GAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC/E,IAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,CAAC;QAC/B,IAAI,MAAM,GAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,IAAI,GAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAG,IAAI,KAAG,UAAU,EAAC,CAAC;YACpB,IAAI,IAAI,GAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACxB,IAAG,MAAM,KAAG,uBAAuB;gBACjC,OAAO,GAAG,GAAC,CAAC,IAAI,CAAA,CAAC,CAAA,2BAA2B,CAAA,CAAC,CAAA,2BAA2B,CAAC,CAAC;YAC5E,IAAG,MAAM,KAAG,cAAc;gBAAE,OAAO,GAAG,GAAC,mCAAmC,CAAC;YAC3E,IAAG,IAAI,IAAE,CAAC,MAAM,GAAC,cAAc,CAAC,KAAG,CAAC;gBAClC,OAAO,GAAG,GAAC,mDAAmD,CAAC;YACjE,IAAG,IAAI;gBAAE,OAAO,GAAG,GAAC,oCAAoC,CAAC;YACzD,IAAG,MAAM,CAAC,YAAY,IAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC3D,OAAO,GAAG,GAAC,4BAA4B,GAAC,MAAM,CAAC,MAAM,GAAC,mBAAmB,CAAC;YAC5E,OAAO,GAAG,GAAC,wDAAwD,CAAC;QACtE,CAAC;QACD,IAAG,IAAI,KAAG,QAAQ,EAAC,CAAC;YAClB,IAAG,MAAM,KAAG,uBAAuB;gBACjC,OAAO,GAAG,GAAC,uCAAuC,CAAC;YACrD,IAAG,MAAM,KAAG,cAAc;gBAAE,OAAO,GAAG,GAAC,mCAAmC,CAAC;YAC3E,IAAG,KAAK,CAAC,GAAG,KAAG,CAAC,IAAE,KAAK,CAAC,GAAG,KAAG,CAAC;gBAC5B,CAAC,MAAM,GAAC,uBAAuB,CAAC,KAAG,CAAC;gBACrC,OAAO,GAAG,GAAC,0CAA0C,CAAC;YACxD,IAAG,KAAK,CAAC,GAAG,IAAE,CAAC,IAAE,CAAC,MAAM,GAAC,uBAAuB,CAAC,KAAG,CAAC;gBACnD,OAAO,GAAG,GAAC,wCAAwC,CAAC;YACtD,IAAG,MAAM,KAAG,qBAAqB;gBAC/B,OAAO,GAAG,GAAC,oDAAoD,CAAC;YAClE,IAAG,KAAK,CAAC,GAAG,IAAE,CAAC;gBACb,OAAO,GAAG,GAAC,8DAA8D,CAAC;YAC5E,OAAO,GAAG,GAAC,+CAA+C,CAAC;QAC7D,CAAC;QACD,IAAG,IAAI,KAAG,MAAM,IAAE,IAAI,KAAG,WAAW,EAAC,CAAC;YACpC,IAAG,MAAM,KAAG,uBAAuB;gBACjC,OAAO,GAAG,GAAC,oCAAoC,CAAC;YAClD,IAAG,MAAM,KAAG,cAAc;gBAAE,OAAO,GAAG,GAAC,mCAAmC,CAAC;YAC3E,OAAO,GAAG,GAAC,qBAAqB,GAAC,CAAC,MAAM,CAAC,MAAM,CAAA,CAAC,CAAA,GAAG,GAAC,MAAM,CAAC,MAAM,CAAA,CAAC,CAAA,EAAE,CAAC;gBAC9D,CAAC,MAAM,GAAC,uBAAuB,CAAA,CAAC,CAAA,iBAAiB,CAAA,CAAC,CAAA,EAAE,CAAC;gBACrD,mBAAmB,CAAC;QAC7B,CAAC;QACD,IAAG,IAAI,KAAG,OAAO,EAAC,CAAC;YACjB,IAAG,KAAK,CAAC,GAAG,KAAG,CAAC;gBAAE,OAAO,GAAG,GAAC,yCAAyC,CAAC;YACvE,IAAG,KAAK,CAAC,GAAG,IAAE,CAAC;gBAAE,OAAO,GAAG,GAAC,8CAA8C,CAAC;YAC3E,OAAO,GAAG,GAAC,gCAAgC,CAAC;QAC9C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,SAAS,iBAAiB,CAAC,EAAiB,EAAE,GAAuB;QACnE,IAAG,MAAM,CAAC,EAAE,CAAC,KAAG,MAAM;YAAE,OAAO,mBAAmB,CAAC,EAAE,EAAC,GAAG,CAAC,CAAC;QAC3D,IAAG,EAAE,CAAC,IAAI,CAAC,MAAM,IAAE,CAAC,IAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,KAAK,IAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,YAAY,EAAC,CAAC;YACvE,IAAI,SAAS,GAAC,cAAc,CAAC,GAAG,CAAC;gBAC/B,CAAC,CAAA,kDAAkD,CAAA,CAAC,CAAA,EAAE,CAAC;YACzD,IAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,IAAI;gBACpB,OAAO,MAAM,CAAC,EAAE,CAAC,GAAC,sCAAsC,GAAC,SAAS,CAAC;YACrE,IAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,KAAK;gBACrB,OAAO,MAAM,CAAC,EAAE,CAAC,GAAC,kDAAkD,GAAC,SAAS,CAAC;QACnF,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IACD,SAAS,4BAA4B,CAAC,EAAiB,EACnD,GAAuB;QACzB,IAAI,MAAM,GAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,IAAI,GAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAA,CAAC,CAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC;QACvE,IAAG,IAAI,KAAG,QAAQ;YAChB,OAAO,MAAM,KAAG,uBAAuB,IAAE,MAAM,KAAG,cAAc,CAAC;QACnE,IAAG,IAAI,KAAG,UAAU;YAAE,OAAO,MAAM,KAAG,cAAc,CAAC;QACrD,IAAG,IAAI,KAAG,MAAM,IAAE,IAAI,KAAG,WAAW;YAClC,OAAO,MAAM,KAAG,uBAAuB,IAAE,MAAM,KAAG,cAAc,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,SAAS,qBAAqB,CAAC,EAAiB;QAC9C,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAE,CAAC,IAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,KAAK,IAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,YAAY,CAAC;IAC9E,CAAC;IACD,SAAS,uBAAuB,CAAC,EAAiB,EAAE,GAAgB;QAClE,IAAG,EAAE,CAAC,IAAI,CAAC,MAAM,IAAE,CAAC,IAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,KAAK,IAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,YAAY,EAAC,CAAC;YACvE,IAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,IAAI;gBAAE,GAAG,CAAC,SAAS,GAAC,IAAI,CAAC;iBACtC,IAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,KAAK;gBAAE,GAAG,CAAC,SAAS,GAAC,KAAK,CAAC;YAClD,OAAO;QACT,CAAC;QACD,IAAG,MAAM,CAAC,EAAE,CAAC,KAAG,MAAM;YAAE,OAAO;QAC/B,IAAI,MAAM,GAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,KAAK,GAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAClE,IAAI,MAAM,GAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAClC,IAAG,MAAM,CAAC,IAAI,KAAG,OAAO,EAAC,CAAC;YACxB,GAAG,CAAC,SAAS,GAAC;gBACZ,GAAG,EAAC,KAAK,CAAC,GAAG,GAAC,CAAC;gBACf,GAAG,EAAC,KAAK,CAAC,GAAG,KAAG,IAAI,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,KAAK,CAAC,GAAG,GAAC,CAAC;aACtC,CAAC;YACF,GAAG,CAAC,UAAU,GAAC,KAAK,CAAC,GAAG,KAAG,CAAC;gBAC1B,CAAC,CAAC,qBAAqB;gBACvB,CAAC,CAAC,CAAC,MAAM,GAAC,cAAc;oBACtB,CAAC,CAAC,uBAAuB,GAAC,qBAAqB;oBAC/C,CAAC,CAAC,MAAM,CAAC,CAAC;QAChB,CAAC;aAAM,IAAG,MAAM,CAAC,IAAI,KAAG,QAAQ,EAAC,CAAC;YAChC,GAAG,CAAC,SAAS,GAAC;gBACZ,GAAG,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,CAAC,GAAG,GAAC,CAAC,CAAC;gBAC3B,GAAG,EAAC,KAAK,CAAC,GAAG,KAAG,IAAI,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,CAAC,GAAG,GAAC,CAAC,CAAC;aAClD,CAAC;YACF,IAAG,GAAG,CAAC,SAAS,CAAC,GAAG,KAAG,CAAC;gBAAE,GAAG,CAAC,UAAU,GAAC,cAAc,CAAC;iBACnD,IAAG,GAAG,CAAC,SAAS,CAAC,GAAG,IAAE,CAAC;gBAC1B,GAAG,CAAC,UAAU,GAAC,qBAAqB,CAAC;;gBAClC,GAAG,CAAC,UAAU,GAAC,cAAc,GAAC,qBAAqB,CAAC;YACzD,IAAG,GAAG,CAAC,SAAS,CAAC,GAAG,KAAG,CAAC;gBAAE,GAAG,CAAC,UAAU,GAAC,EAAE,CAAC;QAC9C,CAAC;aAAM,IAAG,MAAM,CAAC,IAAI,KAAG,UAAU,IAAE,CAAC,MAAM,CAAC,MAAM,EAAC,CAAC;YAClD,GAAG,CAAC,SAAS,GAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;YAC5B,GAAG,CAAC,UAAU,GAAC,cAAc,CAAC;YAC9B,GAAG,CAAC,UAAU,GAAC,EAAE,CAAC;QACpB,CAAC;aAAM,IAAG,MAAM,CAAC,IAAI,KAAG,MAAM,IAAE,MAAM,CAAC,YAAY,EAAC,CAAC;YACnD,IAAI,KAAK,GAAY,EAAE,EAAE,SAAS,GAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI,IAAE,KAAK,CAAC,IAAI,CAAC,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;YAC/D,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAC,CAAC,CAAC;YACvB,GAAG,CAAC,UAAU,GAAC,KAAK,CAAC;YACrB,GAAG,CAAC,UAAU,GAAC,qBAAqB,CAAC;YACrC,GAAG,CAAC,SAAS,GAAC,cAAc,CAAC,KAAK,EAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,SAAS,QAAQ,CAAC,GAAuB,EAAE,MAAsB;QAC/D,OAAM,GAAG,EAAC,CAAC;YACT,IAAG,GAAG,CAAC,IAAI,IAAE,CAAC,CAAC,MAAM;gBAClB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAG,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBAAE,OAAO,GAAG,CAAC,IAAI,CAAC;YAC3F,GAAG,GAAC,GAAG,CAAC,MAAM,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,iBAAiB,CAAC,OAAuB;QAChD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAE,CAAC;YAC5C,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,kBAAkB,CAAC,OAAuB,EAAE,IAAe;QAClE,IAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5C,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAE,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,SAAS,cAAc,CAAC,GAAuB;QAC7C,IAAI,KAAK,GAAmB,EAAE,EAAE,IAAI,GAAY,EAAE,CAAC;QACnD,OAAM,GAAG,EAAC,CAAC;YACT,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;gBACrC,IAAI,OAAO,GAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5B,IAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAC,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAC,CAAC,CAAC;oBAC7B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,GAAG,GAAC,GAAG,CAAC,MAAM,CAAC;QACjB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,kBAAkB,CAAC,OAAoB,EAAE,GAAgB;QAChE,IAAI,OAAO,GAAC,OAAO,CAAC,MAAM,CAAC,UAAS,IAAI;YACtC,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAE,CAAC,IAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAG,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO;QAC3B,OAAO,CAAC,OAAO,CAAC,UAAS,IAAI,IAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAS,OAAO;YAC1C,IAAI,QAAQ,GAAC,OAAO,CAAC,MAAM,CAAC,UAAS,IAAI,IAAE,OAAO,kBAAkB,CAAC,OAAO,EAAC,IAAI,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;YACtF,IAAI,QAAQ,GAAC,KAAK,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,CAAC,OAAO,CAAC,aAAa,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;YAC3E,QAAQ,CAAC,OAAO,CAAC,UAAS,MAAM;gBAC9B,IAAI,GAAG,GAAC,OAAO,CAAC,EAAE,GAAC,GAAG,GAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,IAAG,YAAY,CAAC,GAAG,CAAC;oBAAE,OAAO;gBAC7B,YAAY,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAC,OAAO,CAAC,EAAE,EAAC,OAAO,CAAC,KAAK,EAAC,QAAQ,CAAC,CAAC;gBAClD,IAAG,CAAC,OAAO,CAAC,aAAa;oBAAE,OAAO,CAAC,aAAa,GAAC,MAAM,CAAC,EAAE,CAAC;gBAC3D,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,mBAAmB;QAC1B,WAAW,CAAC,OAAO,CAAC,UAAS,OAAO;YAClC,IAAG,OAAO,CAAC,IAAI,KAAG,UAAU,IAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC;gBAAE,OAAO;YAClE,IAAI,OAAO,GAAY,EAAE,CAAC;YAC1B,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,UAAS,MAAM;gBAC3C,KAAK,CAAC,OAAO,CAAC,UAAS,IAAI;oBACzB,IAAG,IAAI,CAAC,IAAI,KAAG,MAAM,IAAE,IAAI,CAAC,KAAK,KAAG,OAAO,IAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC,CAAC;wBAC9D,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;wBACnB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAC,IAAI,CAAC,EAAE,EAAC,QAAQ,EAAC,QAAQ,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,QAAQ,CAAC,IAAe,EAAE,GAAuB,EAAE,KAAa;QACvE,IAAG,KAAK,GAAC,KAAK,CAAC,KAAK;YAAE,KAAK,CAAC,KAAK,GAAC,KAAK,CAAC;QACxC,IAAI,KAAK,GAAc,EAAC,MAAM,EAAC,GAAG,EAAE,QAAQ,EAAC,EAAE,EAAE,YAAY,EAAC,EAAE,EAAC,CAAC;QAClE,IAAI,KAAK,GAAgB,IAAI,EAAE,KAAK,GAAa,EAAE,EAAE,CAAC,GAAC,CAAC,EAAE,SAAS,GAAC,IAAI,CAAC;QACzE,OAAM,CAAC,GAAC,IAAI,CAAC,MAAM,EAAC,CAAC;YACnB,IAAI,EAAE,GAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAsB,EAAE,IAAI,GAAC,KAAK,CAAC,MAAM,CAAC;YAC1D,IAAG,EAAE,CAAC,IAAI,KAAG,IAAI,EAAC,CAAC;gBAAC,CAAC,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YACpC,IAAI,kBAAkB,GAAC,SAAS,IAAE,EAAE,CAAC,IAAI,KAAG,OAAO,CAAC;YACpD,IAAG,KAAK,IAAE,EAAE,CAAC,IAAI,KAAG,MAAM,IAAE,MAAM,CAAC,EAAE,CAAC,KAAG,MAAM;gBAC5C,CAAC,CAAC,OAAO,KAAG,MAAM,IAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC;gBACjD,IAAI,GAAG,GAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC;gBACrC,OAAM,CAAC,GAAC,IAAI,CAAC,MAAM,IAAE,GAAG,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC;oBACjC,IAAI,SAAS,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACtB,IAAG,SAAS,CAAC,IAAI,KAAG,MAAM,IAAE,MAAM,CAAC,SAAS,CAAC,KAAG,MAAM;wBACnD,CAAC,OAAO,KAAG,MAAM,IAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;wBAAE,MAAM;oBAC/D,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACpB,CAAC,EAAE,CAAC;gBACN,CAAC;gBACD,IAAG,GAAG,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC;oBACf,IAAI,OAAO,GAAC,EAAC,KAAK,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;wBACxB,GAAG,EAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC;oBAC9E,IAAI,EAAE,GAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EACnD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC5B,KAAK,CAAC,IAAI,IAAE,GAAG,CAAC,MAAM,CAAC;oBACvB,IAAG,kBAAkB,EAAC,CAAC;wBACrB;wFACgE;wBAChE,IAAI,QAAQ,GAAY,EAAE,EAAE,SAAS,GAA+B,EAAE,CAAC;wBACvE,GAAG,CAAC,OAAO,CAAC,UAAS,GAAG;4BACtB,IAAI,KAAK,GAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;4BACnC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;gCAC5B,IAAG,UAAU,CAAC,CAAC,CAAC;oCAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAC,CAAC,CAAC;4BAChD,CAAC,CAAC,CAAC;4BACH,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,UAAS,CAAC;gCAC7B,IAAG,UAAU,CAAC,CAAC,CAAC;oCACd,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAC,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,CAAC;4BAC1D,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;wBACH,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;4BACtC,IAAG,SAAS,CAAC,CAAC,CAAC;gCAAE,OAAO;4BACxB,IAAI,GAAG,GAAC,UAAU,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;4BAC5B,IAAG,CAAC,GAAG;gCAAE,OAAO;4BAChB,IAAG,GAAG,CAAC,KAAK;gCAAE,iBAAiB,CAAC,GAAG,EAAC,OAAO,CAAC,CAAC;;gCACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAC,EAAE,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACpC,CAAC,CAAC,CAAC;wBACH,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;4BACvC,IAAI,GAAG,GAAC,UAAU,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;4BAC5B,IAAG,GAAG,IAAE,GAAG,CAAC,KAAK;gCAAE,iBAAiB,CAAC,GAAG,EAAC,OAAO,CAAC,CAAC;iCAC7C,IAAG,GAAG;gCAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAC,EAAE,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAC5C,CAAC,CAAC,CAAC;wBACH,IAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAC,CAAC;4BAChC,KAAK,CAAC,KAAK,GAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC;4BAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;gCACtC,KAAK,CAAC,KAAsC,CAAC,CAAC,CAAC,GAAC,SAAS,CAAC,CAAC,CAAC,CAAC;4BAChE,CAAC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBACD,GAAG,GAAC,EAAC,KAAK,EAAC,EAAE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC;oBAChC,CAAC,GAAC,CAAC,CAAC;gBACN,CAAC;qBAAM,CAAC;oBAAC,GAAG,GAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBAAC,CAAC,EAAE,CAAC;gBAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBAAC,GAAG,GAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;YAClE,IAAG,CAAC,kBAAkB;gBACpB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI,IAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;YACrE,IAAG,EAAE,CAAC,IAAI,KAAG,SAAS,IAAE,kBAAkB;gBACxC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,CAAC,CAAC;YAC9C,IAAG,CAAC,GAAG,IAAE,CAAC,GAAG,CAAC,KAAK;gBAAE,SAAS;YAC9B,IAAG,GAAG,CAAC,QAAQ,EAAC,CAAC;gBACf,KAAK,CAAC,KAAK,GAAC,KAAK,CAAC,KAAK,IAAE,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;oBACzC,KAAK,CAAC,KAAsC,CAAC,CAAC,CAAC,GAAE,GAAG,CAAC,QAAyC,CAAC,CAAC,CAAC,CAAC;gBACrG,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAG,CAAC,KAAK;gBAAE,KAAK,GAAC,GAAG,CAAC,KAAK,CAAC;YAC3B,IAAG,CAAC,kBAAkB;gBAAE,SAAS;YACjC,IAAG,CAAC,SAAS;gBAAE,KAAK,GAAC,EAAE,CAAC;YACxB,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5B,KAAK,GAAC,GAAG,CAAC,KAAK,CAAC;YAChB,IAAG,OAAO,KAAG,MAAM,IAAE,EAAE,CAAC,IAAI,KAAG,MAAM,IAAE,KAAK,CAAC,MAAM;gBACjD,uBAAuB,CAAC,EAAE,EAAC,KAAK,CAAC,CAAC;YACpC,SAAS,GAAC,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC;QAC3B,CAAC;QACD,KAAK,GAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,OAAO,EAAC,KAAK,EAAC,KAAK,EAAE,KAAK,EAAC,KAAK,EAAE,QAAQ,EAAC,KAAK,CAAC,KAAK,IAAE,IAAI;YACpD,aAAa,EAAC,KAAK,CAAC,UAAU,IAAE,IAAI,EAAC,CAAC;IAChD,CAAC;IAED,SAAS,OAAO,CAAC,EAAW,EAAE,GAAuB,EAAE,KAAa,EAChE,SAAmB;QACrB,QAAO,EAAE,CAAC,IAAI,EAAC,CAAC;YACd,KAAK,OAAO,CAAC,CAAC,CAAC;gBACf,IAAI,EAAU,CAAC,MAAM,IAAE,OAAO,KAAG,KAAK,EAAC,CAAC;oBACtC,IAAI,EAAE,GAAC,GAAG,CAAC,QAAQ,EAAC,+BAA+B,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EACxD,iCAAiC,CAAC,CAAC;oBAC9C,IAAI,MAAM,GAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAC,CAAC,CAAC,CAAC;oBAC3C,IAAG,MAAM,CAAC,KAAK;wBAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;oBACxC,IAAI,EAAE,GAAa,EAAE,CAAC;oBACtB,IAAI,EAAE,GAAc,IAAI,CAAC;oBACzB,KAAI,IAAI,GAAG,GAAC,CAAC,EAAC,GAAG,GAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAC,GAAG,EAAE,EAAC,CAAC;wBAC3C,IAAI,GAAG,GAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC1B,IAAI,GAAG,GAAC,KAAK,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,EAAE,KAAG,GAAG,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5D,IAAI,MAAM,GAAC,GAAG,IAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;wBACvF,IAAG,MAAM,EAAC,CAAC;4BACT,IAAG,CAAC,EAAE;gCAAE,EAAE,GAAC,GAAG,CAAC,OAAO,EAAC,kCAAkC,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAC1D,sDAAsD,CAAC,CAAC;4BACvE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAC,EAAE,EAAC,GAAG,CAAC,KAAK,IAAE,MAAM,CAAC,CAAC;wBACpC,CAAC;;4BAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACtB,CAAC;oBACD,OAAO,EAAC,KAAK,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,EAAE,QAAQ,EAAC,MAAM,CAAC,QAAQ,IAAE,IAAI;wBAClD,aAAa,EAAC,MAAM,CAAC,aAAa,IAAE,IAAI,EAAC,CAAC;gBACpD,CAAC;gBACD,OAAO,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;YAEC,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACb,IAAI,aAAa,GAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,aAAa,GAAC,OAAO,KAAG,SAAS,IAAE,aAAa,KAAG,MAAM;oBAC3D,CAAC,CAAC,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAC,MAAM,CAAC,IAAI,IAAE,EAAE,EAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;oBAC/E,CAAC,CAAC,IAAI,CAAC;gBACT,IAAI,aAAa,GAAC,OAAO,KAAG,MAAM,CAAA,CAAC,CAAA,iBAAiB,CAAC,EAAE,EAAC,GAAG,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxE,IAAG,aAAa;oBAAE,aAAa,IAAE,KAAK,GAAC,aAAa,CAAC,KAAK,CAAC;gBAC3D,IAAI,kBAAkB,GAAC,aAAa,KAAG,MAAM;oBAC3C,CAAC,CAAC,OAAO,KAAG,MAAM,IAAE,4BAA4B,CAAC,EAAE,EAAC,GAAG,CAAC,CAAC;wBACxD,CAAC,OAAO,KAAG,SAAS,IAAE,CAAC,CAAC,aAAa,IAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClE,IAAI,EAAE,GAAC,GAAG,CAAC,kBAAkB,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,MAAM,EAAE,aAAa,EAChD,kBAAkB,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,aAAa,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1E,IAAI,UAAU,GAAC,SAAS,KAAG,KAAK,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,aAAa,CAAC,EAAE,EAAC,EAAE,EAAC,GAAG,CAAC,CAAC;gBAC/D,OAAO,EAAC,KAAK,EAAC,EAAE,EAAE,KAAK,EAAC,kBAAkB,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC;oBAC/C,QAAQ,EAAC,UAAU,EAAC,CAAC;YAC/B,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,EAAE,CAAC;gBAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7B,IAAI,GAAG,GAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EACtD,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7C,OAAO,EAAC,KAAK,EAAC,GAAG,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;YACvC,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,KAAK,CAAC,IAAI,EAAE,CAAC;gBAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7B,IAAI,OAAO,GAAC,GAAG,CAAC,MAAM,EAAC,mBAAmB,GAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EACxD,QAAQ,EAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChD,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC,CAAC,EAAC,EAAE,EAAC,OAAO,EAAC,CAAC,EAAC,CAAC;YAC9C,CAAC;YAED,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,KAAK,CAAC,MAAM,EAAE,CAAC;gBACf,IAAI,QAAQ,GAAC,OAAO,KAAG,MAAM,CAAA,CAAC,CAAA,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC;gBAC9D,IAAI,SAAS,GAAC,OAAO,KAAG,MAAM,IAAE,CAAC,QAAQ,CAAA,CAAC,CAAA,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC;gBAC1E,IAAI,cAAc,GAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,aAAa,GAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,SAAS,GAAC,QAAQ;oBACpB,CAAC,CAAC,cAAc,CAAC,aAAa,EAAC,cAAc,GAAC,QAAQ,CAAC,UAAU,CAAC;oBAClE,CAAC,CAAC,CAAC,SAAS,CAAA,CAAC,CAAA,cAAc,CAAC,aAAa,EAAC,SAAS,CAAC,SAAS,CAAC,CAAA,CAAC,CAAA,aAAa,CAAC,CAAC;gBAChF,IAAI,UAAU,GAAC,QAAQ;oBACrB,CAAC,CAAC,cAAc,CAAC,aAAa,EAAC,cAAc,GAAC,QAAQ,CAAC,WAAW,CAAC;oBACnE,CAAC,CAAC,CAAC,SAAS,CAAA,CAAC,CAAA,cAAc,CAAC,aAAa,EAAC,SAAS,CAAC,UAAU,CAAC,CAAA,CAAC,CAAA,aAAa,CAAC,CAAC;gBACjF,IAAI,UAAU,GAAC,QAAQ;oBACrB,CAAC,CAAC,cAAc,GAAC,QAAQ,CAAC,UAAU;oBACpC,CAAC,CAAC,CAAC,SAAS,CAAA,CAAC,CAAA,cAAc,GAAC,cAAc,CAAC,SAAS,CAAC,CAAA,CAAC,CAAA,cAAc,CAAC,CAAC;gBACxE,IAAI,WAAW,GAAC,QAAQ;oBACtB,CAAC,CAAC,cAAc,GAAC,QAAQ,CAAC,WAAW;oBACrC,CAAC,CAAC,CAAC,SAAS,CAAA,CAAC,CAAA,cAAc,GAAC,cAAc,CAAC,UAAU,CAAC,CAAA,CAAC,CAAA,cAAc,CAAC,CAAC;gBACzE,IAAI,aAAa,GAAC,QAAQ,CAAA,CAAC,CAAA,QAAQ,CAAC,IAAI,CAAA,CAAC;oBACvC,CAAC,SAAS,CAAA,CAAC,CAAA,SAAS,CAAC,IAAI,CAAA,CAAC,CAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,GAAC,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnE,IAAI,OAAO,GAAC,QAAQ,IAAE,SAAS;oBAC7B,CAAC,CAAC,aAAa,CAAC,GAAG,EAAC,UAAU,EAAC,SAAS,CAAC,CAAA,CAAC,CAAA,GAAG,CAAC;gBAChD,IAAI,QAAQ,GAAC,QAAQ,IAAE,SAAS;oBAC9B,CAAC,CAAC,aAAa,CAAC,GAAG,EAAC,WAAW,EAAC,UAAU,CAAC,CAAA,CAAC,CAAA,GAAG,CAAC;gBAClD,IAAI,CAAC,GAAC,EAAE,CAAC,IAAI,CAAA,CAAC,CAAA,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,GAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC;gBACtD,IAAI,CAAC,GAAC,EAAE,CAAC,IAAI,CAAA,CAAC,CAAA,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,GAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC;gBACvD,IAAI,EAAE,GAAa,EAAE,CAAC;gBACtB,IAAI,QAAQ,GAAC,QAAQ,CAAA,CAAC,CAAA,QAAQ,GAAC,eAAe,CAAC,UAAU,CAAC,CAAA,CAAC;oBACzD,CAAC,SAAS,CAAA,CAAC,CAAA,QAAQ,GAAC,eAAe,CAAC,SAAS,CAAC,CAAA,CAAC,CAAA,KAAK,CAAC,CAAC;gBACxD,IAAI,OAAO,GAAC,QAAQ,CAAA,CAAC,CAAA,OAAO,GAAC,eAAe,CAAC,WAAW,CAAC,CAAA,CAAC;oBACxD,CAAC,SAAS,CAAA,CAAC,CAAA,OAAO,GAAC,eAAe,CAAC,UAAU,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC;gBACvD,IAAG,CAAC,IAAE,CAAC,CAAC,KAAK,EAAC,CAAC;oBAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,QAAQ,CAAC,CAAC;oBAAC,EAAE,GAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAAC,CAAC;;oBAC7D,EAAE,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,CAAC,EAAE,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC;gBACrC,IAAG,CAAC,IAAE,CAAC,CAAC,KAAK,EAAC,CAAC;oBAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,OAAO,CAAC,CAAC;oBAAC,EAAE,GAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAAC,CAAC;;oBAC5D,EAAE,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,CAAC,EAAE,KAAK,EAAC,OAAO,EAAC,CAAC,CAAC;gBACpC,IAAI,OAAO,GAA+B,EAAE,CAAC;gBAC7C,eAAe,CAAC,OAAO,EAAC,CAAC,IAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACvC,eAAe,CAAC,OAAO,EAAC,CAAC,IAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACvC,OAAO,EAAC,KAAK,EAAC,CAAC,EAAE,KAAK,EAAC,EAAE;oBACjB,QAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC;YAC7D,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAC,CAAC;oBACtB,KAAK,CAAC,IAAI,EAAE,CAAC;oBACb,IAAI,EAAE,GAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,GAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAE,EAAE,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,MAAM,EACxD,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBACjC,OAAO,EAAC,KAAK,EAAC,EAAE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC;gBACrC,CAAC;gBACD,IAAI,MAAM,GAAC,EAAE,CAAC,GAAG,IAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAA,CAAC,CAAA,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAC,EAAE,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC;gBACxD,IAAI,KAAK,GAAgB,IAAI,EAAE,IAAI,GAAgB,IAAI,EAAE,KAAK,GAAa,EAAE,CAAC;gBAC9E,IAAI,SAAS,GAA+B,EAAE,CAAC;gBAC/C,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;oBACpC,KAAK,CAAC,MAAM,EAAE,CAAC;oBACf,IAAI,EAAE,GAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACtB,IAAI,GAAG,GAAC,CAAC,MAAM,CAAA,CAAC,CAAA,MAAM,GAAC,KAAK,CAAA,CAAC,CAAA,EAAE,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC;oBAC/D,IAAI,CAAC,GAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAC,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;oBAClE,IAAG,CAAC,KAAK;wBAAE,KAAK,GAAC,CAAC,CAAC;oBACnB,IAAG,IAAI;wBAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC7B,IAAI,EAAE,GAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAC,CAAC,CAAC,CAAC;oBACvC,eAAe,CAAC,SAAS,EAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;oBACvC,IAAG,EAAE,CAAC,KAAK,EAAC,CAAC;wBAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBAAC,KAAK,GAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;oBAAC,CAAC;;wBAClE,KAAK,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,CAAC,EAAE,KAAK,EAAC,KAAK,EAAC,CAAC,CAAC;oBACrC,IAAI,GAAC,CAAC,CAAC;gBACT,CAAC;gBACD,IAAG,EAAE,CAAC,IAAI,EAAC,CAAC;oBACV,IAAI,EAAE,GAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAC,CAAC,CAAC,CAAC;oBACvC,eAAe,CAAC,SAAS,EAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;oBACvC,IAAG,EAAE,CAAC,KAAK,EAAC,CAAC;wBAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;wBAAC,KAAK,GAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;oBAAC,CAAC;gBAC7E,CAAC;qBAAM,IAAG,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAC,IAAI,EAAC,CAAC,CAAC;gBAClD,OAAO,EAAC,KAAK,EAAC,KAAK,EAAE,KAAK,EAAC,KAAK;oBACxB,QAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC;YACjE,CAAC;YAED,KAAK,OAAO,CAAC;YACb,KAAK,KAAK,CAAC;YACX,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACb,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,KAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC;oBACnD,CAAC,CAAC,EAAE,CAAC,IAAI,KAAG,KAAK,CAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC;wBAC1D,CAAC,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,GAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,IAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/D,IAAI,KAAK,GAAc;oBACrB,IAAI,EAAC,EAAC,IAAI,EAAC,EAAE,EAAE,MAAM,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,CAAC,KAAK,IAAE,IAAI,EAAC;oBAC/C,MAAM,EAAC,GAAG,EAAE,QAAQ,EAAC,EAAE,EAAE,YAAY,EAAC,EAAE;iBACzC,CAAC;gBACF,IAAI,IAAI,GAAC,EAAE,CAAC,IAAI,CAAA,CAAC,CAAA,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC;gBACvD,IAAG,IAAI,IAAE,IAAI,CAAC,KAAK,EAAC,CAAC;oBAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAG,MAAM,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,KAAK,CAAC,CAAC;oBAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAAC,CAAC;;oBAC9F,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC1B,IAAI,IAAI,GAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACnC,IAAG,EAAE,CAAC,IAAI,KAAG,MAAM;oBAAE,IAAI,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,KAAK,EAAC,MAAM,EAAC,CAAC,CAAC;gBACtD,OAAO,EAAC,KAAK,EAAC,EAAE,EAAE,KAAK,EAAC,IAAI,EAAE,QAAQ,EAAC,aAAa,CAAC,IAAI,IAAE,IAAI,CAAC,QAAQ,CAAC,EAAC,CAAC;YAC7E,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,KAAK,CAAC,IAAI,EAAE,CAAC;gBACb,IAAI,EAAE,GAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,GAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,MAAM,EACzD,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClC,IAAI,MAAM,GAAc;oBACtB,IAAI,EAAC,EAAC,IAAI,EAAC,EAAE,EAAE,MAAM,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,CAAC,KAAK,IAAE,IAAI,EAAC;oBAC/C,MAAM,EAAC,GAAG,EAAE,QAAQ,EAAC,EAAE,EAAE,YAAY,EAAC,EAAE;iBACzC,CAAC;gBACF,IAAI,KAAK,GAAC,EAAE,CAAC,IAAI,CAAA,CAAC,CAAA,OAAO,CAAC,EAAE,CAAC,IAAI,EAAC,MAAM,EAAC,KAAK,GAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC;gBACvD,IAAG,KAAK,IAAE,KAAK,CAAC,KAAK,EAAC,CAAC;oBACrB,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC3B,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC5B,IAAI,WAAW,GAAa,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,CAAC,CAAC;oBAClD,OAAO,EAAC,KAAK,EAAC,KAAK,CAAC,KAAK,EAAC,KAAK,EAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;wBAC9D,QAAQ,EAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAC,CAAC;gBAClD,CAAC;gBACD,OAAO,EAAC,KAAK,EAAC,EAAE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,CAAC,EAAC,CAAC;YAClD,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAE,CAAC,CAAC;gBACnC,IAAI,MAAM,GAAC,GAAG,CAAC,QAAQ,EACrB,OAAO,KAAG,MAAM,CAAA,CAAC,CAAA,WAAW,CAAA,CAAC;oBAC7B,CAAC,OAAO,KAAG,SAAS,CAAA,CAAC,CAAA,wCAAwC,CAAA,CAAC,CAAA,aAAa,CAAC,EAC5E,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,kCAAkC,CAAC,CAAC;gBACzD,IAAI,IAAI,GAAC,KAAK,CAAC,MAAM,CAAC;gBACtB,IAAI,YAAY,GAAqB,OAAO,KAAG,SAAS;oBACtD,CAAC,CAAC,EAAC,MAAM,EAAC,GAAG,EAAC,QAAQ,EAAC,EAAE,EAAC,YAAY,EAAC,EAAE,EAAC,gBAAgB,EAAC,IAAI,EAAC;oBAChE,CAAC,CAAC,GAAG,CAAC;gBACR,IAAI,EAAE,GAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,GAAC,CAAC,CAAC,CAAC;gBAChD,IAAG,EAAE,CAAC,KAAK;oBAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,KAAK,GAAC,EAAE,CAAC,KAAK,CAAA,CAAC,CAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA,CAAC,CAAA,CAAC,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;gBAClD;;gDAEgC;gBAChC,IAAI,UAAU,GAAqB,YAAY,CAAC;gBAChD,IAAG,OAAO,KAAG,MAAM,EAAC,CAAC;oBACnB,UAAU,GAAC,EAAC,MAAM,EAAC,GAAG,EAAC,QAAQ,EAAC,EAAE,EAAC,YAAY,EAAC,EAAE,EAAC,OAAO,EAAC,IAAI,EAAC,CAAC;oBACjE,IAAG,EAAE,CAAC,aAAa,IAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,MAAM;wBACvD,UAAU,CAAC,UAAU,GAAC,EAAE,CAAC,aAAa,CAAC;gBAC3C,CAAC;gBACD,IAAI,QAAQ,GAA+B,EAAE,CAAC;gBAC9C,eAAe,CAAC,QAAQ,EAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAEtC,kFAAkF;gBAClF,IAAI,eAAe,GAAW,EAAE,EAAE,OAAO,GAAW,EAAE,CAAC;gBACvD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;oBAClC,IAAG,CAAC,CAAC,GAAG,KAAG,KAAK,IAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClD,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;gBACH,OAAO,GAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAG,KAAK;oBAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;wBAC5C,IAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAE,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;4BACjE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC;4BAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACjD,CAAC,CAAC,CAAC;gBAEH,IAAI,cAAc,GAAW,EAAE,EAAE,aAAa,GAAW,EAAE,CAAC;gBAC5D,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAC,EAAE,EAAE,EAAC,CAAC;oBACvC,IAAI,CAAC,GAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACtB,IAAI,IAAI,GAAC,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBACxE,IAAI,SAAS,GAAC,IAAI,KAAG,OAAO,CAAA,CAAC,CAAA,aAAa,CAAA,CAAC,CAAA,CAAC,OAAO,GAAC,IAAI,CAAC,CAAC;oBAC1D,IAAG,OAAO,KAAG,MAAM,IAAE,IAAI,KAAG,OAAO,IAAE,gBAAgB,CAAC,GAAG,CAAC,KAAG,IAAI;wBAC/D,SAAS,IAAE,mDAAmD,CAAC;oBACjE,IAAI,EAAE,GAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EACxC,yBAAyB,CAAC,CAAC;oBACtC,IAAG,IAAI,KAAG,OAAO,IAAE,OAAO,KAAG,MAAM;wBAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,IAAI,GAAC,iBAAiB,GAAC,IAAI,CAAC;oBACvF,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;gBAED,IAAI,gBAAgB,GAAY,cAAc,CAAC,GAAG,CAAC,cAAW,OAAO,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC;gBAC9E,IAAI,QAAQ,GAAgB,IAAI,EAAE,cAAc,GAAY,EAAE,CAAC;gBAC/D,IAAG,OAAO,KAAG,SAAS,EAAC,CAAC;oBACtB,IAAI,cAAc,GAAC,OAAO,CAAC,MAAM,CAAC,UAAS,EAAE,IAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;oBACvE,eAAe,CAAC,OAAO,CAAC,UAAS,EAAE;wBACjC,IAAI,KAAK,GAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;wBACvB,IAAG,CAAC,KAAK;4BAAE,OAAO;wBAClB,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAC,EAAE,EAAE,EAAC,CAAC;4BACvC,IAAG,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAC,KAAK,CAAC,EAAC,CAAC;gCAC/C,IAAI,CAAC,EAAE,EAAC,cAAc,CAAC,EAAE,CAAC,EAAC,EAAE,EAAC,QAAQ,CAAC,CAAC;gCACxC,gBAAgB,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC;gCAC1B,cAAc,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;gCACrB,MAAM;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC,CAAC,CAAC;oBACH,IAAG,cAAc,CAAC,MAAM,IAAE,cAAc,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC;wBACjD,QAAQ,GAAC,GAAG,CAAC,QAAQ,EAAC,UAAU,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EACrC,2BAA2B,CAAC,CAAC;wBAC1C,cAAc,CAAC,OAAO,CAAC,UAAS,EAAE,IAAE,IAAI,CAAC,EAAE,EAAC,QAAQ,EAAC,EAAE,EAAC,QAAQ,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;wBACrE,cAAc,CAAC,OAAO,CAAC,UAAS,EAAE,EAAC,KAAK;4BACtC,IAAI,CAAC,QAAQ,EAAC,EAAE,EAAC,aAAa,CAAC,KAAK,CAAC,EAAC,QAAQ,CAAC,CAAC;4BAChD,gBAAgB,CAAC,KAAK,CAAC,GAAC,IAAI,CAAC;wBAC/B,CAAC,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAG,cAAc,CAAC,MAAM,IAAE,cAAc,CAAC,MAAM,EAAC,CAAC;wBACtD,cAAc,CAAC,OAAO,CAAC,UAAS,EAAE,IAAE,IAAI,CAAC,EAAE,EAAC,cAAc,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,QAAQ,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;wBAC9E,gBAAgB,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC;oBAC3B,CAAC;oBACD,IAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAS,OAAO,IAAE,OAAO,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC,CAAC;wBAC9E,cAAc,CAAC,OAAO,CAAC,UAAS,EAAE,IAAE,cAAc,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;oBAC9D,IAAG,CAAC,KAAK,IAAE,CAAC,OAAO,CAAC,MAAM;wBACxB,cAAc,CAAC,OAAO,CAAC,UAAS,EAAE,EAAC,KAAK;4BACtC,IAAI,CAAC,MAAM,EAAC,EAAE,EAAC,OAAO,EAAC,QAAQ,CAAC,CAAC;4BACjC,gBAAgB,CAAC,KAAK,CAAC,GAAC,IAAI,CAAC;wBAC/B,CAAC,CAAC,CAAC;gBACP,CAAC;qBAAM,CAAC;oBACN,IAAG,KAAK,IAAE,OAAO,CAAC,MAAM,IAAE,cAAc,CAAC,MAAM,GAAC,CAAC;wBAC/C,QAAQ,GAAC,GAAG,CAAC,QAAQ,EAAC,UAAU,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EACrC,2BAA2B,CAAC,CAAC;oBAC5C,cAAc,CAAC,OAAO,CAAC,UAAS,EAAE,EAAC,KAAK;wBACtC,IAAG,QAAQ,EAAC,CAAC;4BACX,IAAI,CAAC,QAAQ,EAAC,EAAE,EAAC,aAAa,CAAC,KAAK,CAAC,KAAG,OAAO,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,aAAa,CAAC,KAAK,CAAC,EAAC,QAAQ,CAAC,CAAC;4BAClF,gBAAgB,CAAC,KAAK,CAAC,GAAC,IAAI,CAAC;wBAC/B,CAAC;6BAAM,IAAG,KAAK,IAAE,OAAO,CAAC,MAAM,EAAC,CAAC;4BAC/B,OAAO,CAAC,OAAO,CAAC,UAAS,EAAE,IAAE,IAAI,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,QAAQ,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;4BACxD,gBAAgB,CAAC,KAAK,CAAC,GAAC,IAAI,CAAC;wBAC/B,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,MAAM,EAAC,EAAE,EAAC,OAAO,EAAC,QAAQ,CAAC,CAAC;4BACjC,eAAe,CAAC,OAAO,CAAC,UAAS,EAAE,IAAE,IAAI,CAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,QAAQ,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;4BAChE,gBAAgB,CAAC,KAAK,CAAC,GAAC,IAAI,CAAC;wBAC/B,CAAC;oBACH,CAAC,CAAC,CAAC;oBACH,IAAG,QAAQ;wBAAE,OAAO,CAAC,OAAO,CAAC,UAAS,EAAE,IAAE,IAAI,CAAC,EAAE,EAAC,QAAQ,EAAC,EAAE,EAAC,QAAQ,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;oBAC3E,CAAC,KAAK,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,eAAe,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE,IAAE,cAAc,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;gBAC/E,CAAC;gBAED,KAAI,IAAI,OAAO,GAAC,CAAC,EAAC,OAAO,GAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAC,OAAO,EAAE,EAAC,CAAC;oBACtD,IAAI,gBAAgB,GAAC,KAAK,CAAC,MAAM,CAAC;oBAClC,IAAI,cAAc,GAAgB,IAAI,CAAC;oBACvC,IAAG,OAAO,KAAG,SAAS,EAAC,CAAC;wBACtB,IAAI,aAAa,GAAC,CAAC,sBAAsB,GAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAC,EAAE,CAAC;4BACvE,iDAAiD,CAAC,CAAC;wBACrD,cAAc,GAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAC1C,IAAI,EAAE,aAAa,EACnB,2CAA2C,CAAC,CAAC;oBAClE,CAAC;oBACD,IAAI,GAAG,GAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAC,UAAU,EAAC,KAAK,GAAC,CAAC,CAAC,CAAC;oBAC/D,eAAe,CAAC,QAAQ,EAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACvC,IAAG,gBAAgB,CAAC,OAAO,CAAC,IAAE,GAAG,CAAC,KAAK,EAAC,CAAC;wBACvC,IAAG,cAAc,EAAC,CAAC;4BACjB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAC,cAAc,CAAC,CAAC;4BAC7C,IAAI,CAAC,cAAc,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACjC,CAAC;;4BAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC/C,KAAK,GAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAChC,CAAC;yBAAM,IAAG,gBAAgB,CAAC,OAAO,CAAC,EAAC,CAAC;wBACnC,IAAG,cAAc,EAAC,CAAC;4BACjB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAC,cAAc,CAAC,CAAC;4BAC7C,KAAK,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,cAAc,EAAC,CAAC,CAAC;wBAClC,CAAC;;4BAAM,KAAK,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,cAAc,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC;oBAClD,CAAC;yBAAM,CAAC;wBACN,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAC,CAAC,CAAC;wBACvC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI,IAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;oBACjF,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE,IAAE,OAAO,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;gBAClE,OAAO,EAAC,KAAK,EAAC,MAAM,EAAE,KAAK,EAAC,KAAK;oBACzB,QAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC;YAC/D,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,IAAI,SAAS,GAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC;gBAC7C,IAAI,EAAE,GAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,GAAC,eAAe,GAAC,SAAS,EAAE,OAAO,EACpD,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnC,yEAAyE;gBACzE,IAAI,EAAE,GAAC,EAAE,CAAC,IAAI,CAAA,CAAC,CAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,GAAG,CAAA,CAAC,CAAA,GAAG,CAAC,MAAM,CAAA,CAAC,CAAA,IAAI,EAAC,KAAK,GAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC;gBACpE,IAAG,EAAE,IAAE,EAAE,CAAC,KAAK;oBAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,YAAY,GAAC,EAAE,CAAC,IAAI,KAAG,UAAU;oBACnC,CAAC,CAAC,gCAAgC;oBAClC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAG,MAAM,CAAA,CAAC,CAAA,8BAA8B,CAAA,CAAC,CAAA,qBAAqB,CAAC,CAAC;gBAC5E,IAAI,QAAQ,GAAC,GAAG,CAAC,QAAQ,EAAC,YAAY,EAAC,EAAE,CAAC,IAAI,KAAG,UAAU,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,OAAO,EAC5D,IAAI,EAAE,IAAI,EAAE,6BAA6B,CAAC,CAAC;gBAC5D,SAAS,CAAC,EAAE,IAAE,EAAE,CAAC,KAAK,CAAA,CAAC,CAAA,EAAE,CAAC,KAAK,CAAA,CAAC,CAAA,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,QAAQ,CAAC,CAAC;gBACpD,IAAG,GAAG,EAAC,CAAC;oBACN,IAAI,WAAW,GAAiB;wBAC9B,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,CAAC,IAAI,EAAC,KAAK,EAAC,SAAS,IAAE,WAAW;wBAC/C,YAAY,EAAC,CAAC,SAAS,IAAE,WAAW,CAAC,CAAC,WAAW,EAAE;wBACnD,SAAS,EAAC,EAAE,CAAC,IAAI,KAAG,UAAU,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,QAAQ;wBAC5C,aAAa,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAC,aAAa,EAAC,EAAE;qBACtD,CAAC;oBACF,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC/B,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC9B,IAAG,EAAE,CAAC,IAAI,KAAG,UAAU;wBACrB,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,QAAQ,EAAC,KAAK,EAAC,EAAE,CAAC,IAAI,KAAG,MAAM,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,cAAc,EAAC,CAAC,CAAC;gBACtF,CAAC;gBACD,OAAO,EAAC,KAAK,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE;oBACpB,QAAQ,EAAC,aAAa,CAAC,EAAE,IAAE,EAAE,CAAC,QAAQ,CAAC,EAAC,CAAC;YACnD,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,GAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,IAAE,QAAQ,EAAE,KAAK,EACvD,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjC,OAAO,EAAC,KAAK,EAAC,CAAC,EAAE,KAAK,EAAC,EAAE,EAAC,CAAC;YAC7B,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,EAAE,GAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,KAAK,EAC7C,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClC,IAAG,OAAO,KAAG,SAAS;oBAAE,QAAQ,CAAC,EAAE,CAAC,GAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC/D,OAAO,EAAC,KAAK,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,EAAC,CAAC;YAC9B,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,IAAI,OAAO,GAAoC;oBAC7C,MAAM,EAAC,oCAAoC;oBAC3C,IAAI,EAAC,oCAAoC;oBACzC,KAAK,EAAC,6BAA6B;oBACnC,QAAQ,EAAC,uBAAuB;iBACjC,CAAC;gBACF,IAAI,EAAE,GAAC,GAAG,CAAC,OAAO,EAAC,QAAQ,GAAC,EAAE,CAAC,MAAM,GAAC,KAAK,GAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EACnD,EAAE,CAAC,MAAM,KAAG,QAAQ,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,KAAK,EAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpE,OAAO,EAAC,KAAK,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,CAAC;YAC7B,CAAC;YAED,KAAK,OAAO,CAAC;YACb,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,OAAO,GAAC,EAAE,CAAC,IAAI,KAAG,OAAO,CAAC;gBAC9B,IAAI,CAAC,GAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC/B,IAAI,IAAI,GAAC,CAAC,EAAE,CAAC,IAAI,IAAE,CAAC,OAAO,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,GAAC,CAAC,EAAE,CAAC,MAAM,CAAA,CAAC,CAAA,GAAG,GAAC,EAAE,CAAC,MAAM,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC;gBAC5F,IAAG,EAAE,CAAC,IAAI,IAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC;oBAC1B,KAAK,CAAC,MAAM,EAAE,CAAC;oBACf,IAAI,EAAE,GAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAC,QAAQ,GAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,MAAM,EAC9D,EAAE,CAAC,IAAI,CAAC,CAAC;oBACpB,IAAG,CAAC,EAAC,CAAC;wBAAC,IAAG,OAAO;4BAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,KAAK,EAAC,KAAK,EAAC,CAAC,CAAC;;4BAAM,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBAAC,CAAC;yBAClF,IAAG,EAAE,CAAC,MAAM,EAAC,CAAC;wBAAC,IAAI,EAAE,GAAC,GAAG,CAAC,MAAM,EAAC,oBAAoB,GAAC,EAAE,CAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,aAAa,GAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAC,SAAS,CAAC,CAAC;wBAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;oBAAC,CAAC;oBACrL,OAAO,EAAC,KAAK,EAAC,EAAE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,KAAK,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC;gBACjD,CAAC;gBACD,IAAI,EAAE,GAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAG,CAAC,EAAC,CAAC;oBAAC,IAAG,OAAO;wBAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,CAAC;;wBAAM,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAAC,CAAC;qBAC1E,IAAG,EAAE,CAAC,MAAM,EAAC,CAAC;oBAAC,IAAI,EAAE,GAAC,GAAG,CAAC,MAAM,EAAC,oBAAoB,GAAC,EAAE,CAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,aAAa,GAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAC,SAAS,CAAC,CAAC;oBAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAAC,CAAC;gBACrL,OAAO,EAAC,KAAK,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,EAAC,CAAC;YAC9B,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,EAAE,GAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,GAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,GAAC,EAAE,CAAC;gBAClC,OAAO,EAAC,KAAK,EAAC,EAAE,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC;YACrC,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,GAAC,GAAG,CAAC,MAAM,EAAC,OAAO,GAAC,EAAE,CAAC,KAAK,EAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;gBACtD,KAAK,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,CAAC,EAAE,EAAE,EAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,EAAC,EAAE,CAAC,KAAK,EAAC,CAAC,CAAC;gBAChE,OAAO,EAAC,KAAK,EAAC,CAAC,EAAE,KAAK,EAAC,EAAE,EAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI;QACzB,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAA,CAAC,CAAA,GAAG,GAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAC,EAAE,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC;QACjE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IAC/D,IAAI,KAAK,GAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IACxE,IAAI,IAAI,GAAC,KAAK,CAAC;IAEf,IAAG,MAAM,CAAC,IAAI,IAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,CAAiB,gCAAgC;QACnF,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,IAAI,EAAE,GAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,MAAM,EACpD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChB,IAAI,GAAC,EAAE,CAAC;IACV,CAAC;IAED,IAAI,IAAI,GAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChC,IAAI,GAAG,GAAC,GAAG,CAAC,OAAO,EAAC,KAAK,EAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/D,IAAG,IAAI,KAAG,KAAK,EAAC,CAAC;QACf,IAAG,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;;YAAM,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;SAAM,IAAG,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,SAAS,CAAC,IAAI,CAAC,KAAK,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAA,CAAC,CAAA,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClD,mBAAmB,EAAE,CAAC;IAEtB,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,KAAK,CAAC,MAAM,EAAC,EAAE,EAAE;QAAE,IAAG,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,KAAG,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACnG,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,KAAK,CAAC,MAAM,EAAC,EAAE,EAAE;QAAE,IAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzH,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,KAAK,CAAC,MAAM,EAAC,EAAE,EAAE,EAAC,CAAC;QACjC,IAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC;YACxB,IAAI,GAAG,GAAC,GAAG,CAAC,MAAM,EAAC,oBAAoB,GAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAC/D,wBAAwB,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,IAAG,MAAM,EAAC,CAAC;QACT,IAAI,IAAI,GAAC,CAAC,CAAC;QACX,KAAK,CAAC,OAAO,CAAC,UAAS,CAAC;YACtB,IAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAE,CAAC,IAAE,CAAC,CAAC,GAAG,KAAG,QAAQ;gBAChD,CAAC,CAAC,IAAI,GAAC,CAAC,EAAE,IAAI,CAAC,GAAC,IAAI,GAAC,CAAC,CAAC,IAAI,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,GAAC,IAAI,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,UAAS,CAAC;QAClC,OAAO,CAAC,CAAC,GAAG,KAAG,KAAK,IAAE,CAAC,CAAC,GAAG,KAAG,KAAK,IAAE,CAAC,CAAC,GAAG,KAAG,MAAM,CAAC;IACtD,CAAC,CAAC,CAAC,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;IACrD,OAAO,EAAC,KAAK,EAAC,KAAK,EAAE,KAAK,EAAC,KAAK,EAAE,KAAK,EAAC,KAAK,EAAC,CAAC;AACjD,CAAC;AAED,0DAA0D;AAC1D,SAAS,WAAW,CAAC,IAAc;IACjC,IAAI,IAAI,GAAY,EAAE,EAAE,GAAG,GAAW,EAAE,CAAC;IACzC,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;QAC3B,IAAG,CAAC,CAAC;YAAE,OAAO;QACd,IAAI,GAAG,GAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxB,IAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC;YAAC,IAAI,CAAC,GAAG,CAAC,GAAC,CAAC,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,IAAa,EAAE,OAAiB;IACtD,IAAI,GAAC,IAAI,IAAE,EAAE,CAAC;IACd,IAAI,KAAK,GAAC,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;IAC9F,IAAI,IAAI,GAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC;IAC7D,IAAI,IAAI,GAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC;IAC9B,IAAI,KAAK,GAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;IAC7F,IAAI,MAAM,GAAC,EAAE,EAAE,KAAK,GAAC,EAAE,CAAC;IACxB,IAAI,GAAC,IAAI,CAAC;IACV,IAAI,CAAC,GAAC,CAAC,CAAC;IACR,IAAG,IAAI,KAAG,QAAQ,IAAE,IAAI,KAAG,SAAS,EAAC,CAAC;QACpC,OAAM,IAAI,CAAC,CAAC,CAAC,IAAE,CAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC;YAAE,CAAC,EAAE,CAAC;QAC3E,IAAG,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;SAAM,IAAG,IAAI,KAAG,QAAQ,EAAC,CAAC;QACzB,IAAG,IAAI,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,KAAK,EAAC,CAAC;YAC7B,CAAC,EAAE,CAAC;YAAC,IAAG,IAAI,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG,EAAC,CAAC;gBAAC,OAAM,IAAI,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG;oBAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;;gBACzE,CAAC,EAAE,CAAC;QACX,CAAC;QACD,IAAG,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;SAAM,IAAG,IAAI,KAAG,QAAQ,EAAC,CAAC;QACzB,IAAG,IAAI,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,MAAM;YAAE,CAAC,EAAE,CAAC;QACpC,IAAG,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;SAAM,IAAG,IAAI,KAAG,OAAO,EAAC,CAAC;QACxB,IAAG,IAAI,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,MAAM;YAAE,CAAC,EAAE,CAAC;QACpC,IAAG,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;SAAM,IAAG,IAAI,KAAG,UAAU,EAAC,CAAC;QAC3B,IAAG,IAAI,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,OAAO;YAAE,CAAC,EAAE,CAAC;QACrC,IAAG,IAAI,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;SAAM,IAAG,IAAI,KAAG,QAAQ,EAAC,CAAC;QACzB,IAAI,KAAK,GAAC,CAAC,CAAC;QACZ,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,MAAM,EAAC,EAAE,EAAE,EAAC,CAAC;YAChC,IAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAG,GAAG;gBAAE,KAAK,EAAE,CAAC;iBACxB,IAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAG,GAAG;gBAAE,KAAK,EAAE,CAAC;iBAC7B,IAAG,KAAK,KAAG,CAAC,IAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAG,MAAM,IAAE,IAAI,CAAC,EAAE,GAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAG,GAAG,EAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC;gBAAC,MAAM;YACvC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAG,IAAI,KAAG,QAAQ,IAAE,IAAI,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,OAAO,IAAE,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,IAAG,CAAC,MAAM,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAE,CAAC,IAAE,CAAC,OAAO,EAAC,CAAC;QACjE,IAAG,IAAI,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAG,GAAG,IAAE,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,KAAG,GAAG;YAAE,CAAC,IAAE,CAAC,CAAC;QAC1E,IAAG,IAAI,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,SAAS,GAAC,IAAI,KAAG,QAAQ,IAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAS,CAAC,IAAG,OAAO,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,EAAC,KAAK,EAAC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAC,WAAW,CAAC,KAAK,CAAC;QAC9E,SAAS,EAAC,SAAS,EAAE,OAAO,EAAC,CAAC,CAAC,OAAO,EAAC,CAAC;AAClD,CAAC;AAED,SAAS,OAAO,CAAC,IAAS,EAAE,KAAkD,EAAE,KAAc;IAC5F,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,EAAE;QAC5B,KAAK,CAAC,EAAE,EAAC,KAAK,IAAE,CAAC,CAAC,CAAC;QACnB,IAAG,EAAE,CAAC,IAAI,KAAG,OAAO;YAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAC,KAAK,EAAC,CAAC,KAAK,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;aACrD,IAAG,EAAE,CAAC,IAAI,KAAG,IAAI,EAAC,CAAC;YACtB,IAAG,EAAE,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,CAAC,KAAK,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;YAClD,IAAG,EAAE,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,CAAC,KAAK,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,IAAG,EAAE,CAAC,IAAI,KAAG,MAAM,EAAC,CAAC;YAC1B,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAC,KAAK,EAAC,CAAC,KAAK,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAC,KAAK,EAAC,CAAC,KAAK,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,IAAG,CAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAE,CAAC,IAAE,EAAE,CAAC,IAAI;YACpE,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,CAAC,KAAK,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;aACnC,IAAG,EAAE,CAAC,IAAI,KAAG,KAAK,EAAC,CAAC;YACvB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAC,KAAK,EAAC,CAAC,KAAK,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;YACpC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAC,KAAK,EAAC,CAAC,KAAK,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAG,EAAE,CAAC,IAAI,KAAG,SAAS,IAAE,EAAE,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,CAAC,KAAK,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,MAAsB,EAAE,IAAS;IACtD,IAAI,UAAU,GAAC,EAAE,EAAE,QAAQ,GAAC,EAAE,EAAE,KAAK,GAAC,EAAE,EAAE,MAAM,GAAC,EAAE,EAAE,KAAK,GAAC,EAAE,EAAE,UAAU,GAAC,EAAE,CAAC;IAC7E,OAAO,CAAC,MAAM,CAAC,GAAG,EAAC,UAAS,EAAE,EAAC,KAAK;QAClC,IAAI,SAAS,GAAmB,IAAI,CAAC;QACrC,IAAG,EAAE,CAAC,IAAI,KAAG,IAAI,IAAE,EAAE,CAAC,IAAI,KAAG,OAAO,IAAE,EAAE,CAAC,IAAI,KAAG,QAAQ;YAAE,SAAS,GAAC,EAAE,CAAC,IAAI,IAAE,IAAI,CAAC;aAC7E,IAAG,EAAE,CAAC,IAAI,KAAG,KAAK;YAAE,SAAS,GAAC,EAAE,CAAC,IAAI,IAAE,IAAI,CAAC;aAC5C,IAAG,EAAE,CAAC,IAAI,KAAG,MAAM;YAAE,SAAS,GAAC,EAAE,CAAC,GAAG,CAAC;QAC3C,IAAG,CAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAE,CAAC,EAAC,CAAC;YAClE,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAC,KAAK,EAAE,IAAI,EAAC,YAAY,CAAC,SAAS,CAAC,EAAC,CAAC,CAAC;QAC3E,CAAC;QACD,IAAG,MAAM,IAAI,EAAE,EAAC,CAAC;YACf,IAAI,KAAK,GAAC,EAAE,CAAC,IAAI,KAAG,SAAS;gBAC3B,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,KAAK,EAAC,EAAE,EAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAC,KAAK,EAAC;gBAC7D,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,IAAI,KAAG,SAAS,CAAC,CAAC;YAChD,IAAI,IAAI,GAAC,EAAC,IAAI,EAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC;gBAChE,KAAK,EAAC,KAAK,EAAE,KAAK,EAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAC,KAAK,CAAC,MAAM;gBACnD,KAAK,EAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAC,KAAK,CAAC,SAAS,EAAE,OAAO,EAAC,KAAK,CAAC,OAAO,EAAC,CAAC;YAC/E,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,KAAK,GAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAAC,MAAM,GAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACpE,KAAK,GAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChC,IAAG,KAAK,CAAC,SAAS;gBAAE,UAAU,CAAC,IAAI,CAAC,EAAC,SAAS,EAAC,UAAU,CAAC,MAAM,GAAC,CAAC,EAAC,IAAI,EAAC,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC;QACtF,CAAC;aAAM,IAAG,EAAE,CAAC,IAAI,KAAG,KAAK,IAAE,EAAE,CAAC,IAAI,IAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,CAAC,KAAG,QAAQ,CAAC,CAAA,CAAC,CAAC,EAAC,CAAC;YACrF,IAAI,EAAE,GAAC,uBAAuB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,EAAE,GAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAC1B,KAAK,GAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAAC,KAAK,GAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,EAAC,CAAC,CAAC,CAAC;IACL,OAAO;QACL,EAAE,EAAC,IAAI,IAAE,IAAI,CAAC,EAAE,IAAE,EAAE,EAAE,IAAI,EAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAE,CAAC,IAAI,IAAE,IAAI,CAAC,IAAI,CAAC,IAAE,QAAQ;QAC1E,IAAI,EAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAE,IAAI,IAAE,IAAI,CAAC,IAAI,IAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAC,WAAW,CAAC;QAClF,OAAO,EAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAC,IAAI,IAAE,IAAI,CAAC,IAAI,IAAE,EAAE,EAAE,MAAM,EAAC,IAAI,IAAE,IAAI,CAAC,GAAG,IAAE,EAAE;QAC3E,GAAG,EAAC,IAAI,IAAE,IAAI,CAAC,GAAG,IAAE,EAAE;QACtB,IAAI,EAAC,EAAC,KAAK,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,IAAI,IAAE,IAAI,CAAC,GAAG,IAAE,EAAE,CAAC,CAAC,MAAM,EAAC,EAAE,UAAU,EAAC,UAAU;QACrE,QAAQ,EAAC,QAAQ,EAAE,KAAK,EAAC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAC,WAAW,CAAC,MAAM,CAAC;QACvE,KAAK,EAAC,WAAW,CAAC,KAAK,CAAC,EAAE,UAAU,EAAC,UAAU;QAC/C,WAAW,EAAC,MAAM,CAAC,WAAW,IAAE,EAAE;KACnC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAa,EAAE,CAAS;IAC7C,IAAI,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC;IACnB,IAAG,CAAC,CAAC,IAAE,CAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,CAAC,EAAE,CAAC;IACJ,IAAG,CAAC,CAAC,CAAC,KAAG,QAAQ,IAAE,IAAI,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,IAAI,IAAE,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC;QACpD,CAAC,OAAO,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC;QAAE,CAAC,IAAE,CAAC,CAAC;IACrD,OAAM,IAAI,CAAC,CAAC,CAAC,IAAE,CAAC,MAAM,EAAC,WAAW,EAAC,cAAc,EAAC,QAAQ,EAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC;QAAE,CAAC,EAAE,CAAC;IACnG,IAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,EAAC,KAAK,EAAC,CAAC,EAAE,IAAI,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC;AAC9C,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,QAAiB;IACrD,GAAG,GAAC,MAAM,CAAC,GAAG,IAAE,EAAE,CAAC,CAAC;IACpB,IAAI,IAAI,GAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAC,EAAE,CAAC;IAClC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;QAC7B,IAAI,KAAK,GAAC,aAAa,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC;QAChC,IAAG,KAAK,EAAC,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC,GAAC,KAAK,CAAC,KAAK,CAAC;QAAC,CAAC;IACjD,CAAC;IACD,IAAG,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,QAAQ,IAAE,YAAY,EAAC,IAAI,EAAC,QAAQ;gBAC/C,IAAI,EAAC,QAAQ,IAAE,QAAQ,EAAC,KAAK,EAAC,CAAC,EAAC,GAAG,EAAC,GAAG,CAAC,MAAM,EAAC,GAAG,EAAC,GAAG,EAAC,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC,GAAG,CAAC,UAAS,CAAC,EAAC,KAAK;QAChC,IAAI,KAAK,GAAC,KAAK,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,GAAG,EAAE,GAAG,GAAC,KAAK,GAAC,CAAC,GAAC,MAAM,CAAC,MAAM,CAAA,CAAC,CAAA,MAAM,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,GAAG,CAAA,CAAC,CAAA,GAAG,CAAC,MAAM,CAAC;QACtF,OAAO,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,QAAQ,IAAE,YAAY,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAC,KAAK,EAAC,KAAK,EAAC,GAAG,EAAC,GAAG;YACzE,GAAG,EAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,GAAG,CAAC,EAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,OAAmB,EAAE,IAAqB;IACjE,IAAI,KAAK,GAAc,EAAE,EAAE,KAAK,GAAc,EAAE,EAAE,GAAG,GAAyB,EAAE,EAC5E,GAAG,GAAyB,EAAE,EAAE,GAAG,GAAC,CAAC,CAAC;IAC1C,SAAS,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,MAA0B,EAC9D,QAAwB,EAAE,UAA2B,EACrD,KAAgB,EAAE,MAAe,EACjC,UAAgC,EAAE,YAAqB;QACzD,IAAI,EAAE,GAAC,GAAG,GAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnB,IAAI,UAAU,GAAC,KAAK,IAAE,KAAK,CAAC,MAAM;YAChC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAS,CAAC,IAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC;YAC1F,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,IAAI,GAAY,EAAC,EAAE,EAAC,EAAE,EAAC,KAAK,EAAC,GAAG,KAAG,KAAK,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,MAAM,EAAC,IAAI,EAAC,UAAU,CAAA,CAAC;gBAC1D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,IAAI,EAAC,GAAG,EAAC,GAAG;YACpC,MAAM,EAAC,MAAM,IAAE,IAAI,EAAC,QAAQ,EAAC,QAAQ,IAAE,IAAI;YAC3C,KAAK,EAAC,UAAU;YAChB,MAAM,EAAC,MAAM,IAAE,SAAS;YACxB,UAAU,EAAC,UAAU,IAAE,CAAC,MAAM,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,CAAC,QAAQ,CAAA,CAAC,CAAA,UAAU,CAAA,CAAC,CAAA,WAAW,CAAC,CAAC,EAAC,CAAC;QACzF,IAAG,UAAU;YAAE,IAAI,CAAC,UAAU,GAAC,UAAU,CAAC;QAC1C,IAAG,YAAY;YAAE,IAAI,CAAC,YAAY,GAAC,YAAY,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,UAAS,CAAC;QACxB,IAAI,GAAG,GAAC,CAAC,CAAC,IAAI,KAAG,MAAM,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,IAAI,KAAG,QAAQ,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,MAAM,CAAC,CAAC;QACjE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAC,GAAG,EAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAE,EAAC,SAAS,EAChC,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,SAAS,MAAM,CAAC,IAAY,EAAE,IAAY;QACxC,IAAI,KAAK,GAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAClC,IAAG,KAAK;YAAE,OAAO,KAAK,CAAC;QACvB,IAAI,GAAG,GAAC,IAAI,GAAC,GAAG,GAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAC,CAAC;YACZ;;;8DAGkD;YAClD,IAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAG,GAAG,EAAC,CAAC;gBACvB,GAAG,CAAC,GAAG,CAAC,GAAC,GAAG,CAAC,IAAI,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,WAAW,EAAC,SAAS,EAC1C,6BAA6B,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,IAAI,MAAM,GAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAE,CAAC,CAAC;gBACrC,IAAI,GAAG,GAAC,IAAI,IAAE,IAAI,CAAC,SAAS,CAAC;gBAC7B,IAAI,GAAG,GAAC,GAAG,CAAA,CAAC,CAAA,gBAAgB,CAAC,GAAG,EAAC,IAAI,CAAC,CAAA,CAAC,CAAA,EAAC,UAAU,EAAC,UAAiC,EAAC,CAAC;gBACtF,IAAG,GAAG,CAAC,UAAU,KAAG,UAAU,IAAE,GAAG,CAAC,YAAY,EAAC,CAAC;oBAChD;;sFAEkE;oBAClE,GAAG,CAAC,GAAG,CAAC,GAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,KAAG,MAAM,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,KAAK,EAAE,IAAI,EAAE,IAAI,EACxD,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC/E,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,GAAG,CAAC,GAAC,GAAG,CAAC,MAAM,CAAA,CAAC,CAAA,YAAY,GAAC,IAAI,CAAA,CAAC,CAAA,IAAI,EAC7B,IAAI,KAAG,MAAM,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,UAAU,EAC/C,SAAS,EACT,GAAG,CAAC,UAAU,KAAG,UAAU;wBACzB,CAAC,CAAC,qDAAqD;wBACvD,CAAC,CAAC,SAAS,EACb,GAAG,CAAC,UAAU,KAAG,UAAU,CAAA,CAAC,CAAA,UAAU,CAAA,CAAC,CAAA,SAAS,EAChD,SAAS,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,UAAS,CAAC;QACxB,IAAI,IAAI,GAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACnC,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC;YACzC,EAAC,KAAK,EAAC,CAAC,CAAC,MAAM,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC;YAC5C,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,CAAC,OAAO,CAAC,UAAS,KAAK;YAChE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAS,IAAI;gBAC/B,IAAI,IAAI,GAAW,KAAK,CAAC,IAAI,KAAG,MAAM,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC;oBAC5C,CAAC,KAAK,CAAC,IAAI,KAAG,OAAO,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,YAAY,CAAC,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAC,MAAM,CAAC,IAAI,EAAC,KAAK,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,KAAK,CAAC,KAAK;oBACtD,KAAK,EAAC,KAAK,CAAC,IAAI,KAAG,OAAO,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,OAAO,EAAE,IAAI,EAAC,IAAI,EAAC,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC;YACpC,OAAO,EAAC,OAAO,CAAC,MAAM;YACtB,KAAK,EAAC,OAAO,CAAC,MAAM,CAAC,UAAS,CAAC,EAAC,CAAC,IAAE,OAAO,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA,CAAC,EAAC,CAAC,CAAC;YAC/D,MAAM,EAAC,OAAO,CAAC,MAAM,CAAC,UAAS,CAAC,EAAC,CAAC,IAAE,OAAO,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA,CAAC,EAAC,CAAC,CAAC;YACjE,KAAK,EAAC,OAAO,CAAC,MAAM,CAAC,UAAS,CAAC,EAAC,CAAC,IAAE,OAAO,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA,CAAC,EAAC,CAAC,CAAC;YAC/D,QAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM;SACjC,EAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAsB,EAAE,IAAqB;IAClE,IAAI,GAAC,IAAI,IAAE,EAAE,CAAC;IACd,IAAI,KAAK,GAAY,EAAE,CAAC;IACxB,CAAC,KAAK,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI;QAC/B,KAAK,GAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,GAAC,KAAK,CAAC,GAAG,CAAC,UAAS,IAAI,EAAC,KAAK;QACvC,IAAI,CAAC,EAAE,GAAC,SAAS,GAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,MAAM,GAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAE,IAAI,CAAC,IAAI,IAAE,CAAC,SAAS,GAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,EAAE,GAAC,aAAa,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC;QAClC,EAAE,CAAC,MAAM,GAAC,MAAM,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,GAAC,eAAe,CAAC,OAAO,EAAC,IAAI,CAAC,CAAC;IACxC,IAAI,QAAQ,GAAC,CAAC,IAAI,IAAE,IAAI,CAAC,oBAAoB,CAAC,IAAE,EAAE,CAAC;IACnD,OAAO,EAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAC,KAAK;QAC7C,WAAW,EAAC,OAAO,CAAC,MAAM,CAAC,UAAS,CAAC,EAAC,CAAC,IAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA,CAAC,EAAC,EAAE,CAAC;aAC1E,MAAM,CAAC,QAAQ,CAAC,EAAC,CAAC;AAC/B,CAAC;AAED,SAAS,wBAAwB,CAAC,GAAc;IAE9C,IAAI,SAAS,GAAY,EAAE,CAAC;IAC5B,OAAO,CAAC,GAAG,EAAC,UAAS,EAAE;QACrB,IAAG,EAAE,CAAC,IAAI,KAAG,OAAO,IAAE,EAAE,CAAC,KAAK;YAAE,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,GAAC,CAAC,CAAC;IACtE,CAAC,EAAC,CAAC,CAAC,CAAC;IACL,IAAI,GAAG,GAAgE,EAAE,CAAC;IAC1E,SAAS,IAAI,CAAC,IAAS,EAAE,KAAe;QACtC,CAAC,IAAI,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,EAAO;YACjC,IAAG,CAAC,EAAE,CAAC,IAAI,KAAG,OAAO,IAAE,EAAE,CAAC,IAAI,KAAG,UAAU,CAAC,IAAE,EAAE,CAAC,MAAM,EAAC,CAAC;gBACvD,IAAI,GAAG,GAAC,KAAK,CAAC,IAAI,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,KAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;gBAC7E,IAAG,CAAC,GAAG;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAC,EAAE,CAAC,IAAI,IAAE,IAAI,EAAC,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAG,EAAE,CAAC,IAAI,KAAG,MAAM,IAAE,EAAE,CAAC,KAAK,EAAC,CAAC;gBACpC,IAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;oBAC3C,GAAG,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,MAAM,EAAE,KAAK,EAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAC,EAAE,CAAC,IAAI,IAAE,IAAI,EAAC,CAAC,CAAC;YAChE,CAAC;iBAAM,IAAG,EAAE,CAAC,IAAI,KAAG,OAAO;gBAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;iBAC7C,IAAG,CAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAE,CAAC,IAAE,EAAE,CAAC,IAAI,EAAC,CAAC;gBACpE,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,CAAA,CAAC,CAAA,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA,CAAC,CAAA,KAAK,CAAC,CAAC;YACjF,CAAC;iBAAM,IAAG,EAAE,CAAC,IAAI,KAAG,IAAI,EAAC,CAAC;gBAAC,IAAG,EAAE,CAAC,IAAI;oBAAE,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,KAAK,CAAC,CAAC;gBAAC,IAAG,EAAE,CAAC,IAAI;oBAAE,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,KAAK,CAAC,CAAC;YAAC,CAAC;iBAC7F,IAAG,EAAE,CAAC,IAAI,KAAG,MAAM,EAAC,CAAC;gBAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAS,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;gBAAC,IAAG,EAAE,CAAC,IAAI;oBAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;YAAC,CAAC;iBAC/G,IAAG,EAAE,CAAC,IAAI,KAAG,KAAK,EAAC,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;gBAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAS,CAAC,IAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC;YAAC,CAAC;iBAClG,IAAG,EAAE,CAAC,IAAI,KAAG,SAAS,IAAE,EAAE,CAAC,IAAI;gBAAE,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,KAAK,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,GAAG,EAAC,EAAE,CAAC,CAAC;IACb,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;oDAEoD;AACpD,SAAS,cAAc,CAAC,UAAkB;IACxC,OAAO,UAAU,IAAE,IAAI,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,CAAC,UAAU,IAAE,GAAG,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;kDASkD;AAClD,SAAS,iBAAiB,CAAC,GAAc,EAAE,WAAyB,EAChE,iBAAyB,EAAE,QAAgB;IAE7C,IAAI,eAAe,GAA4B,EAAC,KAAK,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC;QAC3B,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,CAAC;IAClE,IAAI,YAAY,GAAC,CAAC,EAAE,cAAc,GAAC,CAAC,CAAC;IACrC,IAAI,YAAY,GAAyB,EAAC,QAAQ,EAAC,CAAC,EAAE,MAAM,EAAC,IAAI;QACvB,MAAM,EAAC,GAAG,EAAE,KAAK,EAAC,IAAI,EAAC,CAAC;IAClE,SAAS,QAAQ,CAAC,IAAuB,EAAE,IAAa;QAEtD,IAAG,CAAC,IAAI;YAAE,OAAO,UAAU,CAAC;QAC5B,SAAS,QAAQ,CAAC,QAA4B;YAC5C,OAAO,WAAW,CAAC,IAAI,CAAC,UAAS,CAAC;gBAChC,OAAO,CAAC,CAAC,KAAK,KAAG,QAAQ,IAAE,CAAC,CAAC,QAAQ,KAAG,QAAQ,IAAE,CAAC,CAAC,CAAC,CAAC,IAAI;oBACxD,CAAC,CAAC,IAAI,CAAC,KAAK,GAAC,IAAI,CAAC,GAAG,IAAE,CAAC,CAAC,IAAI,CAAC,GAAG,GAAC,IAAI,CAAC,KAAK,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAG,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;QACrC,IAAG,IAAI,CAAC,IAAI,KAAG,SAAS,IAAE,IAAI,CAAC,IAAI,KAAG,SAAS;YAAE,OAAO,QAAQ,CAAC;QACjE,IAAG,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAC;QACxC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,GAAG,EAAC,UAAS,EAAE;QACrB,IAAI,IAAI,GAAE,EAAU,CAAC,IAA6B,CAAC;QACnD,IAAI,IAAI,GAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAG,CAAC,IAAI,IAAE,CAAC,IAAI,CAAC,MAAM,IAAE,CAAC,IAAI;YAAE,OAAO;QACtC,IAAI,MAAM,GAAC,QAAQ,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC;QAC7B,eAAe,CAAC,KAAK,EAAE,CAAC;QACxB,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,YAAY,IAAE,IAAI,CAAC,MAAM,CAAC;QAC1B,cAAc,IAAE,IAAI,CAAC,MAAM,GAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC,EAAC,CAAC,CAAC,CAAC;IACL,IAAI,aAAa,GAAC,YAAY,CAAA,CAAC,CAAA,cAAc,GAAC,YAAY,CAAA,CAAC,CAAA,CAAC,CAAC;IAC7D,OAAO;QACL,UAAU,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC9B,iBAAiB,GAAC,aAAa,GAAC,CAAC,GAAG,GAAC,GAAG,GAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,OAAO,EAAC,OAAO;QACf,OAAO,EAAC,EAAC,OAAO,EAAC,iBAAiB,EAAE,QAAQ,EAAC,QAAQ;YACnD,aAAa,EAAC,aAAa,EAAE,eAAe,EAAC,eAAe,EAAC;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,IAAqB;IACjD,IAAI,GAAC,IAAI,IAAE,EAAE,CAAC;IACd,GAAG,GAAC,MAAM,CAAC,GAAG,IAAE,EAAE,CAAC,CAAC;IACpB,IAAI,GAAG,GAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,OAAO,GAAY,CAAC,IAAI,CAAC,OAAO,IAAE,IAAI,CAAC,OAAO,KAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;IAC1F,IAAI,IAAI,GAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,WAAW,GAAC,CAAC,IAAI,CAAC,WAAW,IAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/C,IAAI,MAAM,GAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,CAAC;IACb,IAAG,MAAM,CAAC,KAAK,KAAG,SAAS,EAAC,CAAC;QAC3B,QAAQ,GAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,WAAW,GAAC,MAAM,CAAC,WAAW,IAAE,CAAC,CAAC;QACtC,QAAQ,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,CAAC,CAAC,GAAG,IAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC,QAAQ,CAAC,WAAW,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;YAC3C,IAAI,OAAO,GAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,QAAQ,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,OAAO,EAAC,CAAC,CAAC,OAAO,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,CAAC;YAC5E,IAAG,CAAC,CAAC,IAAI;gBAAE,OAAO,CAAC,IAAI,GAAC,EAAC,KAAK,EAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAC,WAAW,EAAC,GAAG,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAC,WAAW,EAAC,CAAC;YACpF,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;;QACI,QAAQ,GAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,KAAK,CAAC,CAAC;IACxD,IAAI,CAAC,GAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3B,IAAI,GAAG,GAAC,UAAU,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC;IACzB,OAAM,GAAG,CAAC,MAAM,KAAG,CAAC,IAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,OAAO,IAAE,CAAE,GAAG,CAAC,CAAC,CAAe,CAAC,MAAM;QAAE,GAAG,GAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAiB,CAAC;IACzG,WAAW,GAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,IAAE,EAAE,CAAC,CAAC;IAClD,IAAI,SAAS,GAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAS,CAAC,IAAE,OAAO,CAAC,CAAC,CAAC,KAAG,GAAG,CAAC,CAAA,CAAC,CAAC,CAAC;IACzE,IAAG,SAAS,CAAC,MAAM,EAAC,CAAC;QACnB,IAAG,CAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,OAAO,CAAC;YAC/D,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,EAAC,CAAC;YAC/B,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,gBAAgB;gBACxD,OAAO,EAAC,6BAA6B,GAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,qEAAqE;gBAC1H,IAAI,EAAC,EAAC,KAAK,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC,EAAE,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC;QACzE,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,OAAO,EAAC,IAAI,EAAC,kBAAkB;YACxD,OAAO,EAAC,wBAAwB,GAAC,SAAS,CAAC,MAAM,GAAC,QAAQ,GAAC,CAAC,SAAS,CAAC,MAAM,KAAG,CAAC,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,QAAQ,CAAC;gBAC/F,2CAA2C;YAC7C,IAAI,EAAC,EAAC,KAAK,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,GAAG,EAAC;YACnE,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC;QACnB,GAAG,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,mCAAmC,EAAC,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,WAAW,GAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,WAAW,CAAC,CAAC;IAC1E,IAAI,QAAQ,GAAC,WAAW,CAAA,CAAC,CAAA,cAAc,GAAC,WAAW,CAAA,CAAC,CAAA,CAAC,CAAC;IACtD,IAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAE,IAAI,CAAC,OAAO,KAAG,MAAM,CAAC,IAAE,CAAC,GAAG,CAAC,SAAS,EAAC,CAAC;QACzD;;0EAEkE;QAClE,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,wBAAwB;YAChE,OAAO,EAAC,yFAAyF;YACjG,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,UAAU,EAAC,CAAC,CAAC;QAChC,IAAG,GAAG,CAAC,IAAI;YACT,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,mBAAmB;gBAC3D,OAAO,EAAC,+FAA+F;gBACvG,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,UAAU,EAAC,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,GAAG,EAAC,UAAS,EAAE;QACrB,IAAG,EAAE,CAAC,IAAI,KAAG,SAAS;YAAE,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,aAAa;gBAC7E,OAAO,EAAC,6FAA6F;gBACrG,IAAI,EAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC;IACjD,CAAC,EAAC,CAAC,CAAC,CAAC;IACL,wBAAwB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;QAC9C,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAE,IAAI,EAAC,iBAAiB;YAC1D,OAAO,EAAC,CAAC,CAAC,IAAI,KAAG,MAAM;gBACrB,CAAC,CAAC,eAAe,GAAC,CAAC,CAAC,KAAK,GAAC,6EAA6E;gBACvG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,OAAO;oBACjB,CAAC,CAAC,gBAAgB,GAAC,CAAC,CAAC,KAAK,GAAC,oEAAoE;oBAC/F,CAAC,CAAC,mBAAmB,GAAC,CAAC,CAAC,KAAK,GAAC,oEAAoE,CAAC;YACvG,IAAI,EAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH;yEACqE;IACrE,OAAO,CAAC,GAAG,EAAC,UAAS,EAAE;QACrB,IAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC,IAAI;YAAE,OAAO;QACrC,IAAI,MAAM,GAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAS,CAAC;YAC5B,IAAI,KAAK,GAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,OAAO,GAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAS,CAAC;gBACpC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAChD,CAAC,CAAC,CAAC;YACH,IAAG,CAAC,OAAO;gBAAE,OAAO;YACpB;;oDAEwC;YACxC,IAAI,MAAM,GAAC,CAAC,KAAK,CAAC,cAAc,IAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC;gBACnD,OAAO,CAAC,CAAC,UAAU,KAAG,QAAQ,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,IAAG,MAAM;gBACP,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,sBAAsB;oBAC9D,OAAO,EAAC,iBAAiB,GAAC,CAAC,CAAC,IAAI,GAAC,sEAAsE;oBACvG,IAAI,EAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC;;gBAE9C,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAC,eAAe;oBACpD,OAAO,EAAC,iBAAiB,GAAC,CAAC,CAAC,IAAI,GAAC,aAAa,EAAE,IAAI,EAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;oBACzE,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,EAAC,CAAC,CAAC,CAAC;IACL;;;kFAG8E;IAC9E,OAAO,CAAC,GAAG,EAAC,UAAS,EAAE;QACrB,IAAG,EAAE,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,EAAE,CAAC,IAAI,IAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACvD,IAAI,IAAI,GAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,IAAI,CAAC,cAAc,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;YAC1C,IAAG,CAAC,CAAC,UAAU,KAAG,QAAQ;gBACxB,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,eAAe;oBACvD,OAAO,EAAC,2BAA2B,GAAC,CAAC,CAAC,IAAI,GAAC,kFAAkF;oBAC7H,IAAI,EAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC;iBAC7B,IAAG,CAAC,CAAC,UAAU,KAAG,WAAW,IAAE,CAAC,CAAC,KAAK;gBACzC,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,iBAAiB;oBACzD,OAAO,EAAC,gBAAgB,GAAC,CAAC,CAAC,IAAI,GAAC,yEAAyE;oBACzG,IAAI,EAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,EAAC,CAAC,CAAC,CAAC;IACL;;;qDAGiD;IACjD,IAAG,IAAI,CAAC,oBAAoB;QAC1B,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,IAAG,IAAI,CAAC,SAAS,EAAC,CAAC;QACjB,OAAO,CAAC,GAAG,EAAC,UAAS,EAAE;YACrB,IAAG,EAAE,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,EAAE,CAAC,IAAI,IAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACvD,IAAI,KAAK,GAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC,KAAK,CAAC,cAAc,IAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC;gBAC3C,IAAI,EAAE,GAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAG,EAAE,CAAC,UAAU,KAAG,UAAU,EAAC,CAAC;oBAC7B,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,oBAAoB;wBAC5D,OAAO,EAAC,aAAa,GAAC,CAAC,CAAC,IAAI,GAAC,sEAAsE;wBACnG,IAAI,EAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC;gBAClC,CAAC;qBAAM,IAAG,EAAE,CAAC,UAAU,KAAG,UAAU,EAAC,CAAC;oBACpC,IAAI,IAAI,GAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;oBACxD,IAAG,IAAI,CAAC,MAAM;wBACZ,WAAW,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,mBAAmB;4BAC3D,OAAO,EAAC,aAAa,GAAC,CAAC,CAAC,IAAI,GAAC,6CAA6C;gCACxE,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAA,CAAC,CAAA,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC,GAAC,IAAI,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAC,iCAAiC;4BACjF,IAAI,EAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAC,QAAQ,EAAC,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,EAAC,CAAC,CAAC,CAAC;IACP,CAAC;IACD,IAAG,OAAO,KAAG,SAAS;QACpB,2BAA2B,CAAC,GAAG,EAAC,MAAM,EAAC,WAAW,EAAC,KAAK,CAAC,CAAC;IAC5D,WAAW,CAAC,OAAO,CAAC,UAAS,CAAC;QAC5B,IAAG,CAAC,CAAC,CAAC,KAAK;YAAE,CAAC,CAAC,KAAK,GAAC,QAAQ,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,GAAC,EAAC,MAAM,EAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,IAAI,CAAC,OAAO;QAC3E,KAAK,EAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAC,WAAW;QAC7D,SAAS,EAAC,IAAI,CAAC,SAAS,EAAC,CAAC;IACrC,IAAI,KAAK,GAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,IAAI,GAAC,IAAI,CAAC,IAAI,IAAE,MAAM,CAAC;IAC3B,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAG,CAAC,CAAC;IACnE,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,KAAG,CAAC,IAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,MAAM,CAAC;IAClD,IAAI,CAAC,GAAC,IAAI,CAAC;IACX,IAAG,IAAI,KAAG,OAAO,EAAC,CAAC;QACjB,CAAC,GAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAG,MAAM,IAAE,IAAI,KAAG,MAAM,IAAE,IAAI,EAAC,CAAC;QACrC,CAAC,GAAC,eAAe,CAAE,GAAG,CAAC,CAAC,CAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACjE,IAAG,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC;YAAE,CAAC,GAAC,IAAI,CAAC;IACvC,CAAC;IACD,IAAI,QAAQ,GAAC,CAAC,IAAE,KAAK,EAAE,YAAY,GAAmB,CAAC,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,MAAM,CAAC;IACvE,IAAI,iBAAiB,GAAC,CAAC,IAAI,CAAC,OAAO,IAAE,IAAI,CAAC,OAAO,KAAG,MAAM,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,GAAG,CAAC,KAAK,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC3F,IAAI,IAAI,GAAC,iBAAiB,CAAC,GAAG,EAAC,WAAW,EAAC,iBAAiB,EAAC,QAAQ,CAAC,CAAC;IACvE,IAAI,UAAU,GAAC,IAAI,CAAC,UAAU,EAAE,wBAAwB,GAAC,IAAI,CAAC,OAAO,EACjE,iBAAiB,GAAC,IAAI,CAAC,OAAO,CAAC;IAEnC,kGAAkG;IAClG,IAAI,WAAW,GAAmB,EAAC,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAC,CAAC,EAAC,OAAO,EAAC,CAAC;QACvE,UAAU,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,iBAAiB,EAAC,EAAE,EAAC,CAAC;IAC9C,IAAI,UAAU,GAAY,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,SAAS,cAAc,CAAC,IAAqB;QAC3C,IAAG,CAAC,IAAI,IAAE,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAC/B,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,WAAW,EAAC,EAAE,EAAE,EAAC,CAAC;YAChC,IAAG,UAAU,CAAC,EAAE,CAAC;gBAAE,SAAS;YAC5B,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,MAAM,EAAC,EAAE,EAAE;gBAC9B,IAAG,IAAI,CAAC,EAAE,CAAC,KAAG,QAAQ,CAAC,EAAE,CAAC,EAAC,CAAC;oBAAC,UAAU,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC;oBAAC,MAAM;gBAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,EAAC,UAAS,EAAE;QACrB,IAAG,MAAM,IAAI,EAAE,IAAE,EAAE,CAAC,IAAI,IAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC;YACxC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACxB,IAAG,EAAE,CAAC,IAAI,KAAG,SAAS,IAAE,EAAE,CAAC,IAAI,KAAG,SAAS;gBAAE,WAAW,CAAC,MAAM,IAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;;gBAC3E,WAAW,CAAC,QAAQ,IAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,CAAC;QACD,IAAG,EAAE,CAAC,IAAI,KAAG,IAAI,IAAE,EAAE,CAAC,IAAI,IAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC;YAC1C,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACxB,WAAW,CAAC,QAAQ,IAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC,CAAC;QACD,IAAG,CAAC,EAAE,CAAC,IAAI,KAAG,OAAO,IAAE,EAAE,CAAC,IAAI,KAAG,QAAQ,CAAC,IAAE,EAAE,CAAC,IAAI,IAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC;YACnE,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACxB,WAAW,CAAC,QAAQ,IAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC,CAAC;QACD,IAAG,EAAE,CAAC,IAAI,KAAG,KAAK,IAAE,EAAE,CAAC,IAAI,IAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC;YAC3C,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACxB,WAAW,CAAC,QAAQ,IAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC,CAAC;QACD,IAAG,EAAE,CAAC,IAAI,KAAG,MAAM,IAAE,EAAE,CAAC,GAAG,IAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAC,CAAC;YAC1C,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACvB,WAAW,CAAC,QAAQ,IAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;QACtC,CAAC;IACH,CAAC,EAAC,CAAC,CAAC,CAAC;IACL,oEAAoE;IACpE,KAAI,IAAI,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,WAAW,EAAC,EAAE,EAAE,EAAC,CAAC;QAChC,IAAG,UAAU,CAAC,EAAE,CAAC;YAAE,SAAS;QAC5B,IAAI,EAAE,GAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpB,IAAG,CAAC,EAAE;YAAE,SAAS;QACjB,IAAG,EAAE,CAAC,CAAC,KAAG,GAAG,EAAC,CAAC;YACb,WAAW,CAAC,OAAO,EAAE,CAAC;YACtB,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC;QAC/F,CAAC;aAAM,IAAG,CAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,QAAQ,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW;YAC3E,OAAO,EAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAE,CAAC,EAAC,CAAC;YACjE,WAAW,CAAC,OAAO,EAAE,CAAC;YACtB,WAAW,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAE,CAAC,CAAC,GAAC,CAAC,CAAC;QACvG,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,UAAU,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,IAAI,iBAAiB,GAAoB,EAAC,UAAU,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAC,CAAC;IACtF,SAAS,MAAM,CAAC,IAAY,EAAE,QAAiB,EAAE,MAAgB;QAC/D,IAAI,CAAC,GAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC;YACjE,EAAC,QAAQ,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAC;QACnC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACb,IAAG,MAAM;YAAE,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,IAAG,QAAQ;YAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/B,iBAAiB,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAG,MAAM;YAAE,iBAAiB,CAAC,MAAM,EAAE,CAAC;aACjC,IAAG,QAAQ;YAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,CAAC,GAAG,EAAC,UAAS,EAAE;QACrB,IAAG,EAAE,CAAC,IAAI,KAAG,IAAI,IAAE,EAAE,CAAC,IAAI,KAAG,MAAM;YAAE,MAAM,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;aACtD,IAAG,CAAC,OAAO,EAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,IAAE,CAAC;YAAE,MAAM,CAAC,MAAM,EAAC,IAAI,CAAC,CAAC;aAC5E,IAAG,EAAE,CAAC,IAAI,KAAG,KAAK;YAAE,MAAM,CAAC,SAAS,EAAC,IAAI,CAAC,CAAC;aAC3C,IAAG,EAAE,CAAC,IAAI,KAAG,SAAS;YAAE,MAAM,CAAC,SAAS,EAAC,IAAI,CAAC,CAAC;aAC/C,IAAG,EAAE,CAAC,IAAI,KAAG,SAAS;YAAE,MAAM,CAAC,SAAS,EAAC,KAAK,EAAC,IAAI,CAAC,CAAC;aACrD,IAAG,EAAE,CAAC,IAAI,KAAG,SAAS;YAAE,MAAM,CAAC,YAAY,EAAC,KAAK,EAAC,IAAI,CAAC,CAAC;IAC/D,CAAC,EAAC,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,GAAG,EAAC,UAAS,EAAE;QACrB,IAAG,MAAM,IAAI,EAAE,IAAE,EAAE,CAAC,IAAI,EAAC,CAAC;YACxB,IAAI,KAAK,GAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,MAAM,CAAC,KAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,IAAI,GAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAY,MAAM,CAAC,YAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,EAAC,CAAC,CAAC,CAAC;IACL,yEAAyE;IACzE,IAAI,aAAa,GAAC,CAAC,KAAK,CAAC,KAAK,IAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAE,CAAC,CAAC;IACzD,KAAI,IAAI,GAAG,GAAC,CAAC,EAAC,GAAG,GAAC,aAAa,EAAC,GAAG,EAAE;QAAE,MAAM,CAAC,WAAW,EAAC,IAAI,CAAC,CAAC;IAEhE;;;sEAGkE;IAClE,IAAI,cAAc,GAAkB,EAAE,CAAC;IACvC,OAAO,CAAC,GAAG,EAAC,UAAS,EAAE;QACrB,IAAG,EAAE,CAAC,IAAI,KAAG,MAAM,IAAE,CAAC,EAAE,CAAC,IAAI,IAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACvD,IAAI,MAAM,GAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,GAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAE,MAAM,CAAC,UAAU,GAAC,CAAC;YAC/C,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;QAC/C,IAAI,KAAK,GAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC;QACjC,IAAG,KAAK,KAAG,QAAQ;YAAE,OAAO;QAC5B,IAAI,EAAE,GAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAC,EAAC,SAAS,EAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAC,OAAO,EAAC,CAAC,CAAC;QAC3E,IAAG,CAAC,EAAE;YAAE,OAAO;QACf,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,UAAS,CAAC,IAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC,EAAC,CAAC,CAAC,CAAC;IAEL,OAAO,EAAC,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,GAAG,EAAE,UAAU,EAAC,UAAU;QACpD,wBAAwB,EAAC,wBAAwB;QACjD,iBAAiB,EAAC,iBAAiB;QACnC,iBAAiB,EAAC,iBAAiB,EAAE,QAAQ,EAAC,QAAQ;QACtD,cAAc,EAAC,cAAc,EAAC,WAAW,EAAC,WAAW;QACrD,WAAW,EAAC,WAAW,EAAE,MAAM,EAAC,MAAM,EAAE,GAAG,EAAC,GAAG,EAAE,IAAI,EAAC,YAAY;QAClE,KAAK,EAAC,QAAQ,EAAE,KAAK,EAAC,QAAQ,CAAC,KAAK;QACpC,OAAO,EAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,IAAE,IAAI,CAAC;QAC3C,WAAW,EAAC,WAAW,EAAE,iBAAiB,EAAC,iBAAiB;QAC5D,OAAO,EAAC,cAAc,EAAC,CAAC;AAClC,CAAC"}
\ No newline at end of file
diff --git a/dist/tests/columns.js b/dist/tests/columns.js
new file mode 100644
index 0000000..4390591
--- /dev/null
+++ b/dist/tests/columns.js
@@ -0,0 +1,348 @@
+"use strict";
+/* proc>flow v1.10.0 — column lineage foundations.
+ Fixtures assert exact input→output mappings and spans for qualified
+ references, aliases, projections, CTEs, derived tables, and catalogue-backed
+ wildcard expansion; that ambiguity never invents a column binding; and that
+ unsupported expressions become opaque with region-scoped diagnostics.
+ Multi-statement temp-table and inter-object column flow (v1.11.0) is out of
+ scope here; every fixture is a single query statement.
+
+ After this suite runs, PROCFLOW_COLUMN_PASS and PROCFLOW_COLUMN_RESULT gate
+ the golden suite (tests/tests.ts) and feed the fixture-corpus metrics. */
+(function () {
+ var results = [];
+ function record(name, pass, detail) {
+ results.push({ name: name, pass: pass, detail: pass ? '' : detail });
+ }
+ function hasDiag(list, code) {
+ return (list || []).some(function (d) { return d.code === code; });
+ }
+ var PROCFLOW_COLUMN_FIXTURES = [
+ {
+ name: 'qualified references, aliases, and JOIN predicates',
+ dialect: 'tsql',
+ sql: 'SELECT s.id AS sid, s.name, sc.name AS school FROM dbo.student s JOIN dbo.school sc ON sc.id = s.school_id;',
+ expect: {
+ sourceKeys: ['s', 'sc'],
+ outputs: [
+ { name: 'sid', resolution: 'exact', bindings: ['s.id'], spanText: 's.id AS sid' },
+ { name: 'name', resolution: 'exact', bindings: ['s.name'], spanText: 's.name' },
+ { name: 'school', resolution: 'exact', bindings: ['sc.name'], spanText: 'sc.name AS school' }
+ ],
+ refs: [
+ { text: 's.id', resolution: 'exact' },
+ { text: 'sc.id', resolution: 'exact' },
+ { text: 's.school_id', resolution: 'exact' }
+ ],
+ noDiagnostics: true
+ }
+ },
+ {
+ name: 'unqualified reference to a single source binds exactly',
+ dialect: 'tsql',
+ sql: 'SELECT id FROM dbo.student;',
+ expect: {
+ outputs: [{ name: 'id', resolution: 'exact', bindings: ['dbo.student.id'] }],
+ refs: [{ text: 'id', resolution: 'exact' }],
+ noDiagnostics: true
+ }
+ },
+ {
+ name: 'ambiguous unqualified reference invents no binding',
+ dialect: 'tsql',
+ sql: 'SELECT id FROM dbo.a a JOIN dbo.b b ON a.id = b.aid;',
+ expect: {
+ outputs: [{ name: 'id', resolution: 'ambiguous', bindings: [] }],
+ refs: [{ text: 'id', resolution: 'ambiguous' }],
+ diagnostics: ['column_ambiguous']
+ }
+ },
+ {
+ name: 'expression-level provenance maps every referenced column',
+ dialect: 'tsql',
+ sql: 'SELECT s.a + s.b AS total, s.a * 2 AS doubled, COUNT(*) AS n FROM dbo.t s;',
+ expect: {
+ outputs: [
+ { name: 'total', resolution: 'exact', bindings: ['s.a', 's.b'], spanText: 's.a + s.b AS total' },
+ { name: 'doubled', resolution: 'exact', bindings: ['s.a'] },
+ { name: 'n', resolution: 'exact', bindings: [] }
+ ],
+ refs: [
+ { text: 's.a', resolution: 'exact' },
+ { text: 's.b', resolution: 'exact' }
+ ],
+ noDiagnostics: true
+ }
+ },
+ {
+ name: 'CTE scopes carry explicit and computed column lists',
+ dialect: 'tsql',
+ sql: 'WITH c(i, j) AS (SELECT 1, 2), d AS (SELECT i AS a, j AS b FROM c) SELECT a, b FROM d;',
+ expect: {
+ sourceOf: { key: 'd', kind: 'cte', columns: ['a', 'b'] },
+ outputs: [
+ { name: 'a', resolution: 'exact', bindings: ['d.a'] },
+ { name: 'b', resolution: 'exact', bindings: ['d.b'] }
+ ],
+ noDiagnostics: true
+ }
+ },
+ {
+ name: 'derived-table inner sources provide the column scope',
+ dialect: 'tsql',
+ sql: 'SELECT x.id, x.name FROM (SELECT id, name FROM dbo.inner) x;',
+ expect: {
+ sourceOf: { key: 'x', kind: 'derived', columns: ['id', 'name'] },
+ outputs: [
+ { name: 'id', resolution: 'exact', bindings: ['x.id'] },
+ { name: 'name', resolution: 'exact', bindings: ['x.name'] }
+ ],
+ noDiagnostics: true
+ }
+ },
+ {
+ name: 'catalogue-backed wildcard expansion (qualified)',
+ dialect: 'tsql',
+ catalogue: 'dbo.student TABLE\nCOL dbo.student.Id\nCOL dbo.student.Name\nCOL dbo.student.Grade',
+ sql: 'SELECT s.* FROM dbo.student s;',
+ expect: {
+ wildcards: [{ source: 's', expanded: true, columns: ['Id', 'Name', 'Grade'] }],
+ outputs: [
+ { name: 'Id', resolution: 'exact', bindings: ['s.Id'] },
+ { name: 'Name', resolution: 'exact', bindings: ['s.Name'] },
+ { name: 'Grade', resolution: 'exact', bindings: ['s.Grade'] }
+ ],
+ noDiagnostics: true
+ }
+ },
+ {
+ name: 'catalogue-backed wildcard expansion (bare star)',
+ dialect: 'tsql',
+ catalogue: 'dbo.student TABLE\nCOL dbo.student.Id\nCOL dbo.student.Name',
+ sql: 'SELECT * FROM dbo.student;',
+ expect: {
+ wildcards: [{ source: null, expanded: true, columns: ['Id', 'Name'] }],
+ outputs: [
+ { name: 'Id', resolution: 'exact', bindings: ['dbo.student.Id'] },
+ { name: 'Name', resolution: 'exact', bindings: ['dbo.student.Name'] }
+ ],
+ noDiagnostics: true
+ }
+ },
+ {
+ name: 'wildcard without catalogue stays unexpanded',
+ dialect: 'tsql',
+ sql: 'SELECT t.* FROM dbo.student t;',
+ expect: {
+ wildcards: [{ source: 't', expanded: false, columns: [] }],
+ outputCount: 0,
+ noDiagnostics: true
+ }
+ },
+ {
+ name: 'scalar subquery projection is opaque with a region diagnostic',
+ dialect: 'tsql',
+ sql: 'SELECT s.id, (SELECT MAX(x) FROM dbo.meta) AS latest FROM dbo.student s;',
+ expect: {
+ outputs: [
+ { name: 'id', resolution: 'exact', bindings: ['s.id'] },
+ { name: 'latest', resolution: 'opaque', bindings: [] }
+ ],
+ diagnostics: ['column_opaque']
+ }
+ },
+ {
+ name: 'reference to a column outside a provable scope is opaque',
+ dialect: 'tsql',
+ sql: 'WITH c(i) AS (SELECT 1) SELECT c.nope FROM c;',
+ expect: {
+ outputs: [{ name: 'nope', resolution: 'opaque', bindings: [] }],
+ diagnostics: ['column_opaque']
+ }
+ },
+ {
+ name: 'predicate references bind with spans inside WHERE clauses',
+ dialect: 'tsql',
+ sql: 'SELECT s.id FROM dbo.student s WHERE s.active = 1 AND s.school_id IN (1, 2);',
+ expect: {
+ outputs: [{ name: 'id', resolution: 'exact', bindings: ['s.id'] }],
+ refs: [
+ { text: 's.id', resolution: 'exact' },
+ { text: 's.active', resolution: 'exact' },
+ { text: 's.school_id', resolution: 'exact' }
+ ],
+ noDiagnostics: true
+ }
+ },
+ {
+ name: 'recursive CTE binds its recursion column exactly',
+ dialect: 'tsql',
+ sql: 'WITH r(n) AS (SELECT 1 UNION ALL SELECT n + 1 FROM r WHERE n < 10) SELECT n FROM r;',
+ expect: {
+ outputs: [{ name: 'n', resolution: 'exact', bindings: ['r.n'] }],
+ refs: [{ text: 'n', resolution: 'exact' }],
+ noDiagnostics: true
+ }
+ },
+ {
+ name: 'SELECT DISTINCT TOP projection region',
+ dialect: 'tsql',
+ sql: 'SELECT DISTINCT TOP 5 s.id FROM dbo.student s ORDER BY s.id;',
+ expect: {
+ outputs: [{ name: 'id', resolution: 'exact', bindings: ['s.id'] }],
+ noDiagnostics: true
+ }
+ },
+ {
+ name: 'SELECT … INTO binds the projected columns',
+ dialect: 'tsql',
+ sql: 'SELECT id, name INTO #stage FROM dbo.student;',
+ expect: {
+ outputs: [
+ { name: 'id', resolution: 'exact', bindings: ['dbo.student.id'] },
+ { name: 'name', resolution: 'exact', bindings: ['dbo.student.name'] }
+ ],
+ noDiagnostics: true
+ }
+ }
+ ];
+ function spanText(sql, span) {
+ return span ? sql.slice(span.start, span.end) : '';
+ }
+ PROCFLOW_COLUMN_FIXTURES.forEach(function (f) {
+ try {
+ var cat = null;
+ if (f.catalogue)
+ cat = parseCatalogue(f.catalogue).catalogue;
+ var lin = analyseColumns(tokenize(f.sql), { catalogue: cat, dialect: f.dialect });
+ if (!lin) {
+ record(f.name + ' · mappings', false, 'column lineage was not produced');
+ return;
+ }
+ var e = f.expect, ok = true, detail = {};
+ if (e.sourceKeys) {
+ var keys = lin.sources.map(function (s) { return s.key.toUpperCase(); });
+ detail.sources = lin.sources.map(function (s) { return { key: s.key, kind: s.kind, cols: s.columns }; });
+ ok = ok && e.sourceKeys.every(function (k) { return keys.indexOf(k.toUpperCase()) >= 0; });
+ }
+ if (e.sourceOf) {
+ var src = null;
+ lin.sources.forEach(function (s) { if (s.key.toUpperCase() === e.sourceOf.key.toUpperCase())
+ src = s; });
+ detail.sourceOf = src && { key: src.key, kind: src.kind, cols: src.columns };
+ ok = ok && !!src && src.kind === e.sourceOf.kind &&
+ (e.sourceOf.columns === undefined || src.columns.join(',') === e.sourceOf.columns.join(','));
+ }
+ if (e.outputCount !== undefined) {
+ detail.outputCount = lin.outputs.length;
+ ok = ok && lin.outputs.length === e.outputCount;
+ }
+ (e.outputs || []).forEach(function (exp) {
+ var out = null;
+ lin.outputs.forEach(function (o) { if (o.name === exp.name)
+ out = o; });
+ var bindingTexts = (out ? out.bindings : []).map(function (b) { return b.source + '.' + b.column; });
+ var outputOk = !!out && (exp.resolution === undefined || out.resolution === exp.resolution) &&
+ (exp.bindings === undefined || bindingTexts.join('|') === exp.bindings.join('|')) &&
+ (exp.spanText === undefined || spanText(f.sql, out.span) === exp.spanText);
+ ok = ok && outputOk;
+ detail['output:' + exp.name] = out && { res: out.resolution, bindings: bindingTexts,
+ span: spanText(f.sql, out.span) };
+ });
+ (e.refs || []).forEach(function (exp) {
+ var ref = null;
+ lin.references.forEach(function (r) {
+ if (spanText(f.sql, r.span) === exp.text)
+ ref = r;
+ });
+ var refOk = !!ref && ref.resolution === exp.resolution &&
+ !!ref.span && ref.span.start >= 0 && ref.span.end > ref.span.start &&
+ ref.span.end <= f.sql.length;
+ ok = ok && refOk;
+ detail['ref:' + exp.text] = ref && { res: ref.resolution,
+ span: spanText(f.sql, ref.span) };
+ });
+ (e.wildcards || []).forEach(function (exp) {
+ var wc = null;
+ lin.wildcards.forEach(function (w) {
+ if ((w.source || null) === (exp.source || null))
+ wc = w;
+ });
+ var wcOk = !!wc && wc.expanded === exp.expanded &&
+ (exp.columns === undefined || wc.columns.join(',') === exp.columns.join(',')) &&
+ !!wc.span && wc.span.start >= 0 && wc.span.end > wc.span.start &&
+ wc.span.end <= f.sql.length;
+ ok = ok && wcOk;
+ detail['wildcard:' + (exp.source || '*')] = wc && { expanded: wc.expanded, cols: wc.columns,
+ span: spanText(f.sql, wc.span) };
+ });
+ if (e.diagnostics) {
+ (e.diagnostics || []).forEach(function (code) {
+ ok = ok && hasDiag(lin.diagnostics, code);
+ });
+ }
+ if (e.noDiagnostics) {
+ ok = ok && lin.diagnostics.length === 0;
+ detail.diagnostics = lin.diagnostics;
+ }
+ /* every region-scoped column diagnostic carries a valid span */
+ var spanOk = lin.diagnostics.every(function (d) {
+ return d.scope === 'region' && !!d.span && d.span.start >= 0 && d.span.end > d.span.start &&
+ d.span.end <= f.sql.length;
+ });
+ ok = ok && spanOk;
+ record(f.name + ' · mappings', ok, JSON.stringify(detail));
+ }
+ catch (err) {
+ record(f.name + ' · mappings', false, String(err && err.stack || err));
+ }
+ });
+ /* ---- integration: analyse() attaches column lineage and surfaces its
+ diagnostics as region-scoped findings ---- */
+ try {
+ var r = analyse('SELECT id FROM dbo.a a JOIN dbo.b b ON a.id = b.aid;', { dialect: 'tsql', mode: 'auto', group: false, sources: true });
+ var integrated = !!r.columns && r.columns.length === 1 &&
+ r.diagnostics.some(function (d) {
+ return d.code === 'column_ambiguous' && d.scope === 'region' &&
+ !!d.span && r.diagnostics.indexOf(d) >= 0 &&
+ 'SELECT id FROM dbo.a a JOIN dbo.b b ON a.id = b.aid;'
+ .slice(d.span.start, d.span.end) === 'id';
+ });
+ record('v1.10.0 analyse() attaches column lineage and findings', integrated, JSON.stringify({ columnCount: r.columns && r.columns.length,
+ diagnostics: r.diagnostics.map(function (d) { return d.code; }) }));
+ }
+ catch (err) {
+ record('v1.10.0 analyse() attaches column lineage and findings', false, String(err && err.stack || err));
+ }
+ try {
+ var clean = analyse('CREATE PROC dbo.clean_cols AS BEGIN\n' +
+ ' WITH r(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM r WHERE n<10)\n' +
+ ' SELECT n FROM r;\n' +
+ 'END', { dialect: 'tsql', mode: 'flow', group: false, sources: true });
+ var cleanOk = !clean.diagnostics.some(function (d) {
+ return d.code.indexOf('column_') === 0;
+ }) && (clean.columns || []).length === 1;
+ record('v1.10.0 clean single-statement column bindings emit no diagnostics', cleanOk, JSON.stringify({ diags: clean.diagnostics.map(function (d) { return d.code; }),
+ columns: clean.columns && clean.columns.length }));
+ }
+ catch (err) {
+ record('v1.10.0 clean single-statement column bindings emit no diagnostics', false, String(err && err.stack || err));
+ }
+ try {
+ var probe = analyse('SELECT s.id FROM dbo.student s WHERE s.active = 1;', { dialect: 'tsql', mode: 'auto', group: false, sources: true });
+ var columns = probe.columns && probe.columns[0];
+ var binding = columns && columns.outputs[0] && columns.outputs[0].bindings[0];
+ var provenanceOk = !!columns && columns.outputs.length === 1 &&
+ columns.outputs[0].resolution === 'exact' && !!binding &&
+ binding.source === 's' && binding.column === 'id' && !!binding.span;
+ record('v1.10.0 output binding carries source, column, and span', provenanceOk, JSON.stringify(columns && columns.outputs));
+ }
+ catch (err) {
+ record('v1.10.0 output binding carries source, column, and span', false, String(err && err.stack || err));
+ }
+ var passed = results.filter(function (r) { return r.pass; }).length;
+ window.PROCFLOW_COLUMN_RESULT = { passed: passed, total: results.length };
+ window.PROCFLOW_COLUMN_PASS = passed === results.length;
+ window.PROCFLOW_COLUMN_DETAIL = results;
+})();
+//# sourceMappingURL=columns.js.map
\ No newline at end of file
diff --git a/dist/tests/columns.js.map b/dist/tests/columns.js.map
new file mode 100644
index 0000000..d64d6c1
--- /dev/null
+++ b/dist/tests/columns.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"columns.js","sourceRoot":"","sources":["../../tests/columns.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/tests/metrics.js b/dist/tests/metrics.js
index 32f2fe4..a189696 100644
--- a/dist/tests/metrics.js
+++ b/dist/tests/metrics.js
@@ -1,13 +1,14 @@
"use strict";
-/* v1.9.0 — fixture-corpus metric publishing.
+/* v1.10.0 — fixture-corpus metric publishing.
Aggregates the "Metrics that matter" over the checked-in golden corpus,
including the v1.7.0 export-parity, export-traceability, and layout-budget
pass rates reported by tests/parity.ts, the v1.8.0 workspace
- persistence/dependency-filtering pass rate from tests/workspace.ts, and the
- v1.9.0 catalogue pass rate from tests/catalogue.ts.
+ persistence/dependency-filtering pass rate from tests/workspace.ts, the
+ v1.9.0 catalogue pass rate from tests/catalogue.ts, and the v1.10.0 column
+ lineage pass rate from tests/columns.ts.
Purely deterministic and fixture-only: no user inputs and no runtime
telemetry are ever collected. scripts/metrics.mjs drives this page to
- produce or verify docs/metrics-v1.9.0.json. */
+ produce or verify docs/metrics-v1.10.0.json. */
(function () {
var corpus = PROCFLOW_FIXTURES || [];
var totalTokens = 0, attributedAll = 0, unresolvedTokens = 0, opaqueTokens = 0, tailUnconsumed = 0;
@@ -92,7 +93,9 @@
workspace: window.PROCFLOW_WORKSPACE_RESULT
? window.PROCFLOW_WORKSPACE_RESULT.total : 0,
catalogue: window.PROCFLOW_CATALOGUE_RESULT
- ? window.PROCFLOW_CATALOGUE_RESULT.total : 0
+ ? window.PROCFLOW_CATALOGUE_RESULT.total : 0,
+ columns: window.PROCFLOW_COLUMN_RESULT
+ ? window.PROCFLOW_COLUMN_RESULT.total : 0
},
attributionRate: rate(attributedAll, totalTokens),
unresolvedTokenRate: rate(unresolvedTokens, totalTokens),
@@ -128,6 +131,13 @@
cataloguePassRate: window.PROCFLOW_CATALOGUE_RESULT
? rate(window.PROCFLOW_CATALOGUE_RESULT.passed, window.PROCFLOW_CATALOGUE_RESULT.total)
: 0,
+ /* v1.10.0 column lineage foundations: single-statement column fixtures
+ assert exact input→output mappings and spans, ambiguity never invents a
+ column binding, and unsupported expressions become opaque with
+ region-scoped diagnostics. */
+ columnPassRate: window.PROCFLOW_COLUMN_RESULT
+ ? rate(window.PROCFLOW_COLUMN_RESULT.passed, window.PROCFLOW_COLUMN_RESULT.total)
+ : 0,
aggregate: {
totalTokens: totalTokens,
accountedTokens: attributedAll,
diff --git a/dist/tests/metrics.js.map b/dist/tests/metrics.js.map
index 429684e..b2bc4a2 100644
--- a/dist/tests/metrics.js.map
+++ b/dist/tests/metrics.js.map
@@ -1 +1 @@
-{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../tests/metrics.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../tests/metrics.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/tests/tests.js b/dist/tests/tests.js
index 81a856f..e27d10a 100644
--- a/dist/tests/tests.js
+++ b/dist/tests/tests.js
@@ -805,6 +805,19 @@
catch (err) {
record('v1.9.0 catalogue import, resolution, diagnostics, and export fixtures', false, String(err && err.stack || err));
}
+ /* v1.10.0: column lineage foundations — scopes and bindings for qualified
+ references, aliases, projections, CTEs, derived tables, and catalogue-backed
+ wildcard expansion; expression-level provenance; explicit ambiguous and
+ opaque column references with region-scoped diagnostics. Runs ahead in
+ tests/columns.ts; gate the whole golden page on them. */
+ try {
+ record('v1.10.0 column scopes, bindings, wildcards, and diagnostics fixtures', window.PROCFLOW_COLUMN_PASS === true &&
+ !!window.PROCFLOW_COLUMN_RESULT &&
+ window.PROCFLOW_COLUMN_RESULT.passed === window.PROCFLOW_COLUMN_RESULT.total, window.PROCFLOW_COLUMN_RESULT);
+ }
+ catch (err) {
+ record('v1.10.0 column scopes, bindings, wildcards, and diagnostics fixtures', false, String(err && err.stack || err));
+ }
var passed = results.filter(function (r) { return r.pass; }).length;
document.body.className = passed === results.length ? 'pass' : 'fail';
document.getElementById('summary').textContent = passed + '/' + results.length + ' tests passed';
diff --git a/dist/tests/tests.js.map b/dist/tests/tests.js.map
index ee4bd45..555c766 100644
--- a/dist/tests/tests.js.map
+++ b/dist/tests/tests.js.map
@@ -1 +1 @@
-{"version":3,"file":"tests.js","sourceRoot":"","sources":["../../tests/tests.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"tests.js","sourceRoot":"","sources":["../../tests/tests.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/docs/PR_NOTE_1.10.0.md b/docs/PR_NOTE_1.10.0.md
new file mode 100644
index 0000000..69b54d5
--- /dev/null
+++ b/docs/PR_NOTE_1.10.0.md
@@ -0,0 +1,109 @@
+# PR: v1.10.0 — Column lineage foundations
+
+## Summary
+
+Implements the **v1.10.0 — Column lineage foundations** milestone from
+`ROADMAP.md` in full and nothing from v1.11.0 onwards: column **scopes and
+bindings** for qualified references, aliases, projections, CTEs, derived
+tables, and catalogue-backed wildcard expansion; **expression-level
+provenance** within one query statement; and **explicit ambiguous and opaque
+column references**. The golden suite grows from 208 to 209; fuzz (400) and UI
+(22) stay green; 18 column fixtures assert exact input→output mappings and
+spans, that ambiguity never invents a column binding, and that unsupported
+expressions become opaque with region-scoped diagnostics. Multi-statement
+temporary-table column flow, inter-object column flow, the column export
+contract (all v1.11.0), and RDL (v1.12.0) remain deferred.
+
+## What's included
+
+### Column-lineage module (`src/columns.ts`)
+
+A new runtime module (loaded after `ir.js`) that analyses one query statement
+down to column level:
+
+- **Scope builder** (`colParseSources` / `colRegionsOf` / `colSplitArms`):
+ parses the projection and FROM regions of each `SELECT` arm, splitting
+ comma-separated sources and `JOIN`/`APPLY` items, and records each source's
+ alias, underlying name, kind (`table` / `cte` / `derived` / `tabfunc` /
+ `opaque`), provable columns, and span.
+- **Provable scopes**: a CTE's explicit column list (`WITH r(n) AS …`) or
+ computed projection, a derived table's projection, a tabular function's
+ column-alias list, and catalogue columns (`catalogueColumnsFor` via
+ `resolveCatalogue`) turn into `columnsKnown` scope entries. Plain tables
+ without catalogue evidence stay `columnsKnown: false` (conservative).
+- **Binding** (`colBind`): qualified references bind to the exact scope key;
+ unqualified references bind only when exactly one candidate exists. Multiple
+ candidates → `column_ambiguous` (region-scoped, span-attached, **no binding
+ invented**); zero candidates, unknown qualifiers, missing columns in a
+ provable scope, and scalar subqueries → `column_opaque`.
+- **Projection items** (`colParseItems` / `colScanRefs`): aliases (`AS` and
+ bare trailing), expression-level provenance (`s.a + s.b AS total` maps
+ `total` to both inputs), `COUNT(*)` row aggregates (no invented column), and
+ predicate references (WHERE / GROUP BY / HAVING / ORDER BY / JOIN ON /
+ USING) all bind with spans.
+- **Wildcards**: `*` / `t.*` expand only when the catalogue (or a provable
+ scope) proves every contributing source's columns; otherwise they are
+ recorded unexpanded and never invent columns.
+- `analyseColumns(toks, opts)` is the public entry point; every region-scoped
+ diagnostic carries a valid source span.
+
+### Analysis integration (`src/ir.ts`)
+
+`analyse()` now walks the AST and column-analyses every query-bearing `SELECT`
+statement (including inside control flow), attaches the results as
+`result.columns: ColumnLineage[]`, and merges the region-scoped
+`column_ambiguous` / `column_opaque` diagnostics into the findings panel.
+Confidence, coverage, graphs, exports, and construct coverage are untouched:
+clean queries produce no new diagnostics, so all existing object-level
+fixtures remain green.
+
+### Types (`src/types.d.ts`)
+
+`ColumnSource`, `ColumnOutput`, `ColumnBinding`, `ColumnWildcard`,
+`ColumnReference`, `ColumnLineage`, `ColumnResolution`, `ColumnSourceKind`;
+`AnalysisResult.columns`; `PROCFLOW_COLUMN_PASS` / `_RESULT` / `_DETAIL`
+globals.
+
+## Fixtures and tests
+
+- `tests/columns.ts` (+ `tests/index.html`, `tests/metrics.html`, and
+ `columns.js` wiring) — 18 fixture-corpus records plus 3 integration records
+ covering qualified/unqualified bindings, aliases, JOIN predicates,
+ expression provenance, CTE scopes (explicit + computed), derived tables,
+ catalogue-backed wildcard expansion (qualified and bare `*`), unexpanded
+ wildcards without catalogue, scalar-subquery opacity, out-of-scope
+ references, WHERE predicates, recursive-CTE bindings, `DISTINCT TOP`, and
+ `SELECT … INTO`, plus the `analyse()` integration (attach + findings) and
+ the clean-binding/no-noise guard. Gates the golden page via
+ `PROCFLOW_COLUMN_PASS`.
+- `tests/tests.ts` — gates the golden page on the column suite.
+- `tests/metrics.ts` → `docs/metrics-v1.10.0.json` — adds `columnPassRate` and
+ the `columns` corpus count (18/18); the v1.9.0 snapshot is renamed to
+ v1.10.0 (old snapshot removed).
+- `examples/dbo.v1100_demo.sql` — a view + procedure + audit demo showing CTE
+ scopes, qualified/alias bindings, expression provenance, derived tables, the
+ ambiguous reference diagnostic, the opaque subquery diagnostic, and
+ catalogue-backed wildcard expansion (with a catalogue to paste).
+
+## Verification
+
+- `npm run typecheck` — passes
+- `npm run build` — passes
+- `npm run test:file` — passes (with `CHROME_PATH` set)
+- Golden suite — 209/209 (was 208)
+- Fuzz suite — 400 deterministic mutation cases
+- UI suite — 22/22
+- `npm run metrics` — snapshot is current; `docs/metrics-v1.10.0.json`
+ committed (v1.9.0 snapshot renamed), 100 % column pass rate
+- Local-only check clean; `dist/` committed in sync (adds
+ `dist/src/columns.js` and `dist/tests/columns.js`)
+
+## Not changed / deferred (per roadmap)
+
+- Everything from v1.11.0 onwards — multi-statement temporary-table column
+ flow, inter-object column flow through CTE/view boundaries, column export
+ parity/round-trip and layout, and RDL/report import — is out of scope.
+- Existing v1.1.0–v1.9.0 semantics are untouched; the corpus aggregates in
+ `docs/metrics-v1.10.0.json` are byte-identical to v1.9.0's for every
+ pre-existing metric, confirming no parser regression, and the full golden
+ suite stays green.
diff --git a/docs/RELEASE_NOTE_v1.10.0.md b/docs/RELEASE_NOTE_v1.10.0.md
new file mode 100644
index 0000000..e228bb7
--- /dev/null
+++ b/docs/RELEASE_NOTE_v1.10.0.md
@@ -0,0 +1,94 @@
+# proc>flow v1.10.0 — Column lineage foundations
+
+**Release date:** 2026-08-09
+
+ProcFlow v1.10.0 starts tracing **columns**, not just objects. Every
+query-bearing `SELECT` statement is now analysed at column level: which input
+columns each projected output derives from, with the exact source span. When a
+column cannot be proven, ProcFlow says so explicitly instead of guessing — an
+ambiguous reference never invents a binding, and an unsupported expression
+becomes opaque with a region-scoped diagnostic.
+
+This is the **foundations** release (ROADMAP v1.10.0): scopes and bindings
+within one query statement. Column flow across temporary tables, views, and
+object boundaries — and the column export contract — remain on the roadmap
+(v1.11.0).
+
+## Highlights
+
+- **Column scopes and bindings.** Qualified references (`s.id`), aliases,
+ unqualified references to a single source, `SELECT … INTO #temp`, and
+ expression-level provenance (`s.a + s.b AS total` maps `total` back to both
+ `s.a` and `s.b`) all bind to the exact input column with its span.
+- **CTE and derived-table scopes.** A CTE's explicit column list (`WITH r(n) AS
+ …`) or its computed projection, and a derived table's projection, become
+ provable column sets; references are verified against them.
+- **Catalogue-backed wildcard expansion.** With a catalogue loaded,
+ `SELECT t.*` expands to the catalogue's provable columns, each bound exactly.
+ Without catalogue evidence a wildcard stays unexpanded and never invents
+ columns.
+- **Ambiguity never invents a column edge.** An unqualified reference that
+ matches several sources (for example `SELECT id FROM a JOIN b`) is left
+ unresolved with a region-scoped `column_ambiguous` diagnostic at the exact
+ reference.
+- **Explicit opaque references.** Unresolvable references (an unknown qualifier,
+ a column outside a provable scope, a scalar subquery) become opaque with a
+ region-scoped `column_opaque` diagnostic.
+- **Diagnostics flow into the findings panel.** Column findings appear in
+ **Diagnostics** and never inflate informational counts; clean bindings
+ produce no noise.
+
+## Correctness baseline
+
+- TypeScript type-checking and a clean generated build;
+- 209 golden, graph, dependency, exporter, provenance, boundary, diagnostic,
+ confidence, export-parity, layout, workspace, catalogue, and column tests
+ (up from 208);
+- 400 deterministic mutation cases;
+- 22 browser interaction and local-runtime tests;
+- catalogue fixtures 13/13, column-lineage fixtures 18/18, workspace
+ persistence/filtering fixtures 13/13, export parity 20/20, layout budgets
+ 11/11, export traceability 69/69; and
+- the fixture-corpus metric snapshot in `docs/metrics-v1.10.0.json`: 100 %
+ attribution, 100 % semantic-edge coverage, 100 % provenance, 100 % region-span
+ ratio, 100 % export-parity, 100 % export-traceability, 100 % layout budgets,
+ 100 % workspace pass rate, 100 % catalogue pass rate, and 100 % column pass
+ rate.
+
+GitHub Actions continues to check that generated JavaScript is current, the
+vendored Mermaid runtime remains pinned, runtime application files contain no
+external URLs or network-submission APIs, browser storage is confined to the
+opt-in persistence module, the local-file smoke test passes, and the metric
+snapshot is current.
+
+## Compatibility and upgrade notes
+
+- The v1.10.0 analysis is a strict superset: object-level graphs, exports,
+ confidence, coverage, and diagnostics are unchanged for clean queries.
+ Column lineage adds bindings and findings, never renames or rewires existing
+ nodes and edges.
+- Exported `.drawio` files from earlier releases remain valid; column exports
+ arrive with v1.11.0.
+- Saved workspaces are unchanged (schema v2 from v1.9.0).
+- The local-only browser security model is unchanged.
+
+## Security and privacy (v1.10.0)
+
+- Column analysis runs entirely in the browser tab on the pasted/imported SQL.
+ Nothing is uploaded, executed, or sent to any API.
+- No new network, storage, or telemetry paths were added; the only runtime that
+ touches browser storage remains the opt-in workspace module.
+
+## Known limitations
+
+- Parsing is heuristic rather than compiler-grade.
+- Dynamic SQL remains opaque.
+- Column lineage is single-statement only: temporary-table producer→consumer
+ column flow, inter-object column flow through CTE/view boundaries, and the
+ final column export contract remain scheduled for v1.11.0.
+- RDL/report import remains scheduled for v1.12.0.
+
+Verify critical column bindings and dependency conclusions against the original
+SQL and the target database.
+
+See [README.md](../README.md) for usage and development guidance.
diff --git a/docs/metrics-v1.9.0.json b/docs/metrics-v1.10.0.json
similarity index 92%
rename from docs/metrics-v1.9.0.json
rename to docs/metrics-v1.10.0.json
index d3a3852..b1bc5c0 100644
--- a/docs/metrics-v1.9.0.json
+++ b/docs/metrics-v1.10.0.json
@@ -8,7 +8,8 @@
"parity": 10,
"layout": 11,
"workspace": 13,
- "catalogue": 13
+ "catalogue": 13,
+ "columns": 18
},
"attributionRate": 1,
"unresolvedTokenRate": 0.04432,
@@ -23,6 +24,7 @@
"layoutBudgetPassRate": 1,
"workspacePassRate": 1,
"cataloguePassRate": 1,
+ "columnPassRate": 1,
"aggregate": {
"totalTokens": 2685,
"accountedTokens": 2685,
diff --git a/examples/dbo.v1100_demo.sql b/examples/dbo.v1100_demo.sql
new file mode 100644
index 0000000..4e7b97f
--- /dev/null
+++ b/examples/dbo.v1100_demo.sql
@@ -0,0 +1,104 @@
+/*
+ v1.10.0 demo — column lineage foundations.
+
+ This script exercises the v1.10.0 territory (ROADMAP v1.10.0) in one
+ script: column scopes and bindings for qualified references, aliases,
+ projections, CTEs, derived tables, and catalogue-backed wildcard
+ expansion; expression-level provenance within one query statement; and
+ explicit ambiguous and opaque column references.
+
+ Every query-bearing SELECT statement is now analysed at column level.
+ The findings panel reports region-scoped diagnostics only when a binding
+ cannot be proven:
+
+ 1. Ambiguous — "SELECT StudentName FROM dbo.Student s JOIN dbo.Course c
+ ON ..." with no qualifier matches several sources; no binding is
+ invented (column_ambiguous).
+ 2. Opaque — a scalar subquery projection cannot be resolved at column
+ level in this release (column_opaque).
+
+ To see catalogue-backed wildcard expansion, paste this catalogue in the
+ Catalogue menu and Apply it, then re-run:
+
+ dbo.Student TABLE student
+ dbo.Course TABLE
+ COL dbo.Student.StudentId
+ COL dbo.Student.StudentName
+ COL dbo.Student.EnrolmentYear
+ COL dbo.Course.CourseId
+ COL dbo.Course.CourseName
+
+ Now "SELECT s.* FROM dbo.Student s" expands to the catalogue's provable
+ columns (StudentId, StudentName, EnrolmentYear), each bound exactly to
+ its input column with its source span. Without catalogue evidence the
+ wildcard stays unexpanded and never invents columns.
+
+ Multi-statement temporary-table column flow, inter-object column flow,
+ and the column export contract remain on the roadmap (v1.11.0).
+
+ This demo is an illustration, not an input to the fixture-corpus metrics
+ (docs/metrics-v1.10.0.json). No user input or runtime telemetry is
+ collected.
+*/
+CREATE VIEW dbo.v1100_student_courses AS
+-- CTE scope: the explicit column list (StudentId, StudentName, CourseName)
+-- is carried through, and each projected column binds to its exact input.
+WITH detail(StudentId, StudentName, CourseName) AS (
+ SELECT s.StudentId, s.StudentName, c.CourseName
+ FROM dbo.Student s
+ JOIN dbo.Course c ON c.CourseId = s.CourseId
+)
+SELECT d.StudentId, d.StudentName, d.CourseName
+FROM detail d;
+
+GO
+
+CREATE PROCEDURE dbo.v1100_column_lineage @Year INT
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Qualified references and aliases bind exactly, with spans.
+ SELECT s.StudentId AS StudentNumber,
+ s.StudentName AS StudentName
+ FROM dbo.Student s
+ WHERE s.EnrolmentYear = @Year;
+
+ -- Expression-level provenance: FullName maps back to both input columns.
+ SELECT s.FirstName + N' ' + s.LastName AS FullName
+ FROM dbo.Student s;
+
+ -- Derived-table scope: x exposes exactly the inner projection's columns.
+ SELECT x.StudentId, x.EnrolmentYear
+ FROM (SELECT StudentId, EnrolmentYear FROM dbo.Student) x;
+
+ -- Ambiguous: an unqualified column that matches several sources is left
+ -- unresolved with a region-scoped column_ambiguous diagnostic. No binding
+ -- is invented.
+ SELECT StudentId
+ FROM dbo.Student s
+ JOIN dbo.Course c ON c.CourseId = s.CourseId;
+
+ -- Opaque: the scalar subquery cannot be resolved at column level in this
+ -- release; its projection is marked opaque with a column_opaque
+ -- diagnostic. The rest of the statement still binds.
+ SELECT s.StudentName,
+ (SELECT MAX(AuditId) FROM dbo.v1100_audit) AS LastAuditId
+ FROM dbo.Student s;
+
+ -- Catalogue-backed wildcard expansion (paste the catalogue above): with
+ -- the catalogue applied, s.* expands to the provable columns, each bound
+ -- exactly. Without it, the wildcard stays unexpanded.
+ SELECT s.*
+ FROM dbo.Student s;
+
+ RETURN 0;
+END;
+
+GO
+
+CREATE PROCEDURE dbo.v1100_audit
+AS
+BEGIN
+ SELECT COUNT(*) AS Total FROM dbo.Student;
+END;
diff --git a/index.html b/index.html
index 91fbc21..3f20930 100644
--- a/index.html
+++ b/index.html
@@ -212,6 +212,7 @@ proc>flow
+
diff --git a/package.json b/package.json
index 9409117..8a34898 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "procflow",
- "version": "1.9.0",
+ "version": "1.10.0",
"private": true,
"description": "Local-first SQL control-flow and dependency visualiser",
"scripts": {
diff --git a/scripts/metrics.mjs b/scripts/metrics.mjs
index 7b41257..8df1fa6 100644
--- a/scripts/metrics.mjs
+++ b/scripts/metrics.mjs
@@ -11,7 +11,7 @@ import { fileURLToPath, pathToFileURL } from "node:url";
const repositoryRoot = dirname(dirname(fileURLToPath(import.meta.url)));
const metricsPage = join(repositoryRoot, "tests", "metrics.html");
-const snapshotFile = join(repositoryRoot, "docs", "metrics-v1.9.0.json");
+const snapshotFile = join(repositoryRoot, "docs", "metrics-v1.10.0.json");
const writeMode = process.argv.includes("--write");
const explicitBrowser = (process.env.CHROME_PATH || "").trim();
diff --git a/src/columns.ts b/src/columns.ts
new file mode 100644
index 0000000..e20579c
--- /dev/null
+++ b/src/columns.ts
@@ -0,0 +1,704 @@
+/* proc>flow: column lineage foundations (v1.10.0)
+ Column scopes and bindings for qualified references, aliases, projections,
+ CTEs, derived tables, and catalogue-backed wildcard expansion; expression-
+ level provenance within one query statement; explicit ambiguous and opaque
+ column references.
+
+ This module analyses a single query statement. It never invents a binding a
+ reviewer could not prove: an unqualified reference that matches several
+ sources is left unresolvable (`column_ambiguous`, no edge), and an expression
+ or reference that cannot be resolved statically becomes opaque with a
+ region-scoped `column_opaque` diagnostic. Multi-statement temporary-table
+ flow and inter-object column flow (v1.11.0) and the final column export
+ contract are deferred. */
+
+var COL_CLAUSE_START: StringSet = S(['FROM','WHERE','GROUP','HAVING','ORDER','LIMIT',
+ 'OFFSET','FETCH','UNION','EXCEPT','INTERSECT',
+ 'INTO','FOR','OPTION','RETURNING']);
+var COL_ARM_SEP: StringSet = S(['UNION','EXCEPT','INTERSECT']);
+var COL_JOIN_PREFIX: StringSet = S(['JOIN','APPLY','CROSS','INNER','LEFT','RIGHT',
+ 'FULL','OUTER','LATERAL']);
+/* Words inside an expression that are never column references. */
+var COL_REF_SKIP: StringSet = S(['SELECT','WHERE','GROUP','HAVING','ORDER','LIMIT',
+ 'OFFSET','FETCH','UNION','EXCEPT','INTERSECT','INTO','FOR','OPTION','RETURNING',
+ 'BY','ASC','DESC','ALL','ANY','AND','OR','NOT','AS','ON','IN','IS','NULL','WHEN',
+ 'THEN','ELSE','END','CASE','BETWEEN','LIKE','ILIKE','SIMILAR','DISTINCT','TOP',
+ 'VALUE','VALUES','EXISTS','LATERAL','OVER','PARTITION','WINDOW','CURRENT',
+ 'ROW','ROWS','RANGE','SET','FROM','JOIN','USING','ARRAY','FILTER','WITHIN',
+ 'TRUE','FALSE','INTERVAL','COLLATE',
+ /* data types cast inside expressions */
+ 'INT','INTEGER','BIGINT','SMALLINT','TINYINT','DECIMAL','NUMERIC','FLOAT','REAL',
+ 'DOUBLE','PRECISION','CHAR','NCHAR','VARCHAR','NVARCHAR','TEXT','CLOB','DATE',
+ 'DATETIME','DATETIME2','SMALLDATETIME','TIMESTAMP','TIME','BOOLEAN','BOOL','BIT',
+ 'BINARY','VARBINARY','BYTEA','UUID','GUID','MONEY','SMALLMONEY','JSON','XML','BLOB']);
+
+interface ColCtx {
+ cteColumns: Record;
+ catalogue?: Catalogue | null;
+ dialect?: Dialect;
+ depth: number;
+}
+
+/* CTE split that retains the explicit column list so CTE scopes can carry
+ provable columns (`WITH r(n) AS …` → r has exactly [n]). */
+function splitCtesColumn(toks: Token[]): {ctes: Array<{name: string; colToks: Token[];
+ body: Token[]; bodySpan: SourceSpan | null}>; finalStart: number; recursive?: boolean} {
+ var res: {ctes: Array<{name: string; colToks: Token[]; body: Token[]; bodySpan: SourceSpan | null}>;
+ finalStart: number; recursive?: boolean}={ctes:[], finalStart:0};
+ if(!toks.length||toks[0].u!=='WITH') return res;
+ var i=1;
+ if(toks[i]&&toks[i].u==='RECURSIVE'){ res.recursive=true; i++; }
+ while(i=0) i++;
+ if(!(toks[i]&&toks[i].v==='(')) break;
+ var start=i, d=0;
+ while(i0&&toks[i-1].v==='.')&&
+ t.v.charAt(0)!=='@'&&COL_REF_SKIP[t.u]===undefined){
+ out.push(t.v);
+ }
+ }
+ return out;
+}
+
+function catalogueColumnsFor(cat: Catalogue | null | undefined,
+ tableName: string): string[] {
+ if(!cat||!cat.columns||!cat.columns.length||!tableName) return [];
+ var resolved=resolveCatalogue(cat, tableName);
+ var canonical=resolved.resolution==='verified'&&resolved.resolvedName
+ ? resolved.resolvedName : tableName;
+ var norm=normalizeCatalogueName(canonical);
+ var out: string[]=[], seen: StringSet={};
+ cat.columns.forEach(function(c){
+ if(normalizeCatalogueName(c.table)!==norm) return;
+ var n=normalizeCatalogueName(c.name);
+ if(n&&!seen[n]){ seen[n]=1; out.push(c.name); }
+ });
+ return out;
+}
+
+function colTokensInSpan(toks: Token[], span: SourceSpan | null): number {
+ if(!span) return 0;
+ var n=0;
+ for(var i=0;ispan.start) n++;
+ }
+ return n;
+}
+
+function colSplitArms(toks: Token[]): Token[][] {
+ var arms: Token[][]=[], cur: Token[]=[], d=0;
+ for(var i=0;i=0; k++){
+ var t2=toks[k];
+ if(t2.v==='(') d2++;
+ else if(t2.v===')') d2--;
+ if(d2===0&&k>=proj&&COL_CLAUSE_START[t2.u]===1){
+ if(firstBoundary===toks.length) firstBoundary=k;
+ if(t2.u==='FROM'){ fromStart=k+1; break; }
+ /* INTO / FOR / OPTION may be followed by FROM — keep scanning */
+ }
+ }
+ projEnd=firstBoundary;
+ var fromEnd=toks.length;
+ if(fromStart>=0){
+ var d3=0;
+ for(var m=fromStart; mfromStart&&COL_CLAUSE_START[t3.u]===1){ fromEnd=m; break; }
+ }
+ }
+ return {proj:[projStart, projEndafter&&(COL_CLAUSE_START[t.u]===1||
+ (t.type==='word'&&COL_JOIN_PREFIX[t.u]===1&&t.u!=='CASCADE')||t.v===',')) return k;
+ }
+ return fromToks.length;
+ }
+
+ while(i0){
+ if(fromToks[j].v==='(') d++;
+ else if(fromToks[j].v===')') d--;
+ j++;
+ }
+ var inner=fromToks.slice(innerStart,j-1);
+ var k2=j;
+ while(k20){
+ if(fromToks[g].v==='(') dd++;
+ else if(fromToks[g].v===')') dd--;
+ if(dd>=1) innerAlias.push(fromToks[g]);
+ g++;
+ }
+ colAliasTok=innerAlias;
+ k2=g;
+ }
+ }
+ var headT=inner[0]?inner[0].u:'';
+ var kind: ColumnSourceKind='derived';
+ var derivedCols: string[]=[];
+ if(headT==='SELECT'){
+ var innerRes=colAnalyseToks(inner, {cteColumns:ctx.cteColumns,
+ catalogue:ctx.catalogue, dialect:ctx.dialect, depth:ctx.depth+1});
+ if(innerRes) derivedCols=innerRes.outputs.map(function(o){return o.name;});
+ } else if(headT==='VALUES'){
+ kind='opaque';
+ } else {
+ kind='opaque';
+ }
+ var columns=derivedCols.slice();
+ if(colAliasTok&&colAliasTok.length){
+ columns=colNamesOf(colAliasTok);
+ if(headT!=='SELECT'&&columns.length) kind='derived';
+ }
+ source={key:alias||'(derived)', name:alias||'(derived)', alias:alias,
+ kind:kind, columns:columns,
+ columnsKnown:kind==='derived'||columns.length>0,
+ span:spanOfTokens(fromToks.slice(start,k2))};
+ i=k2;
+ } else {
+ var q: string[]=[], kq=i;
+ while(kq=0) k3++;
+ var alias2: string | null=null;
+ var colAlias2: Token[] | null=null;
+ if(fromToks[k3]&&fromToks[k3].u==='AS') k3++;
+ if(fromToks[k3]&&fromToks[k3].type==='word'&&
+ COL_CLAUSE_START[fromToks[k3].u]===undefined&&
+ COL_JOIN_PREFIX[fromToks[k3].u]===undefined&&fromToks[k3].v!==';'){
+ alias2=fromToks[k3].v; k3++;
+ if(fromToks[k3]&&fromToks[k3].v==='('){
+ var dd2=1, g2=k3+1, innerAlias2: Token[]=[];
+ while(g20){
+ if(fromToks[g2].v==='(') dd2++;
+ else if(fromToks[g2].v===')') dd2--;
+ if(dd2>=1) innerAlias2.push(fromToks[g2]);
+ g2++;
+ }
+ colAlias2=innerAlias2;
+ k3=g2;
+ }
+ }
+ var kind2: ColumnSourceKind='table';
+ var cols2: string[]=[];
+ var uppers=name.toUpperCase();
+ if(ctx.cteColumns&&ctx.cteColumns[uppers]){
+ kind2='cte';
+ cols2=ctx.cteColumns[uppers].slice();
+ } else if(TABULAR_FUNCS[uppers]===1){
+ kind2='tabfunc';
+ } else if(ctx.catalogue){
+ cols2=catalogueColumnsFor(ctx.catalogue,name);
+ }
+ if(colAlias2&&colAlias2.length) cols2=colNamesOf(colAlias2);
+ source={key:alias2||name, name:name, alias:alias2, kind:kind2,
+ columns:cols2,
+ columnsKnown:kind2==='cte'||cols2.length>0||
+ (kind2==='tabfunc'&&!!(colAlias2&&colAlias2.length)),
+ span:spanOfTokens(fromToks.slice(start,k3))};
+ i=k3;
+ }
+
+ if(source) sources.push(source);
+
+ if(i0){
+ if(predToks[g3].v==='(') dd3++;
+ else if(predToks[g3].v===')') dd3--;
+ if(dd3>=1) pu.push(predToks[g3]);
+ g3++;
+ }
+ predToks=pu;
+ }
+ if(predToks.length) predicates.push(predToks);
+ i=predE;
+ } else if(i1){
+ diagnostics.push({severity:'warning', code:'column_ambiguous',
+ message:'Column reference "'+qualifier+'.'+col+'" matches more than one source; the binding is left unresolved.',
+ span:span, scope:'region'});
+ return {resolution:'ambiguous', source:null};
+ }
+ var src=matches[0];
+ if(src.columnsKnown){
+ var known=src.columns.some(function(c){return c.toUpperCase()===colUp;});
+ if(!known){
+ diagnostics.push({severity:'warning', code:'column_opaque',
+ message:'Column "'+col+'" is not among the known columns of "'+src.name+'"; the binding is opaque.',
+ span:span, scope:'region'});
+ return {resolution:'opaque', source:null};
+ }
+ }
+ return {resolution:'exact', source:src.key};
+ }
+ var candidates=sources.filter(function(s){
+ if(!s.columnsKnown) return true;
+ return s.columns.some(function(c){return c.toUpperCase()===colUp;});
+ });
+ if(candidates.length===1)
+ return {resolution:'exact', source:candidates[0].key};
+ if(candidates.length===0){
+ diagnostics.push({severity:'warning', code:'column_opaque',
+ message:'Column reference "'+col+'" matches no provable column in this query; the binding is opaque.',
+ span:span, scope:'region'});
+ return {resolution:'opaque', source:null};
+ }
+ var names=candidates.slice(0,4).map(function(s){return '"'+s.key+'"';}).join(', ');
+ diagnostics.push({severity:'warning', code:'column_ambiguous',
+ message:'Column reference "'+col+'" is ambiguous: it matches '+candidates.length+
+ ' sources ('+names+'…); no binding is invented.',
+ span:span, scope:'region'});
+ return {resolution:'ambiguous', source:null};
+}
+
+/* Scan an expression region for column references, binding each against the
+ scope. Scalar subqueries are opaque and skipped. */
+function colScanRefs(toks: Token[], sources: ColumnSource[], diagnostics: Diagnostic[]):
+ {refs: ColumnReference[]; bound: Array<{qualifier: string | null; name: string;
+ span: SourceSpan | null; resolution: ColumnResolution; source: string | null}>;
+ opaqueSpans: SourceSpan[]} {
+ var refs: ColumnReference[]=[], bound: Array<{qualifier: string | null; name: string;
+ span: SourceSpan | null; resolution: ColumnResolution; source: string | null}>=[];
+ var opaqueSpans: SourceSpan[]=[];
+ function addRef(qualifier: string | null, name: string, span: SourceSpan): void {
+ var res=colBind(qualifier,name,span,sources,diagnostics);
+ refs.push({qualifier:qualifier,name:name,span:span,resolution:res.resolution});
+ bound.push({qualifier:qualifier,name:name,span:span,resolution:res.resolution,
+ source:res.source});
+ }
+ var i=0;
+ while(i0){
+ if(toks[e].v==='(') d++;
+ else if(toks[e].v===')') d--;
+ e++;
+ }
+ var subSpan: SourceSpan={start:t.pos,end:toks[e-1].end};
+ opaqueSpans.push(subSpan);
+ diagnostics.push({severity:'warning', code:'column_opaque',
+ message:'A subquery expression cannot be resolved at column level in this version; its binding is opaque.',
+ span:subSpan, scope:'region'});
+ i=e;
+ continue;
+ }
+ i++; continue;
+ }
+ if(t.v==='*'||t.type!=='word'){ i++; continue; }
+ var u=t.u;
+ if(t.v.charAt(0)==='@'){ i++; continue; }
+ if(COL_REF_SKIP[u]===1){ i++; continue; }
+ if(toks[i+1]&&toks[i+1].v==='('){ i++; continue; } /* function call */
+ if(!(i>0&&toks[i-1].v==='.')){
+ if(toks[i+1]&&toks[i+1].v==='.'&&toks[i+2]&&toks[i+2].type==='word'){
+ var parts: string[]=[t.v], k=i+2;
+ while(toks[k+1]&&toks[k+1].v==='.'&&toks[k+2]&&toks[k+2].type==='word'){
+ parts.push(toks[k].v); k+=2;
+ }
+ parts.push(toks[k].v);
+ var last=parts[parts.length-1];
+ var q=parts.slice(0,parts.length-1).join('.');
+ addRef(q,last,{start:t.pos,end:toks[k].end});
+ i=k+1;
+ continue;
+ }
+ addRef(null,t.v,{start:t.pos,end:t.end});
+ }
+ i++;
+ }
+ return {refs:refs, bound:bound, opaqueSpans:opaqueSpans};
+}
+
+function colParseItems(projToks: Token[]):
+ Array<{expr: Token[]; alias: string | null; span: SourceSpan | null}> {
+ var items: Array<{expr: Token[]; alias: string | null; span: SourceSpan | null}>=[];
+ var cur: Token[]=[], d=0;
+ projToks.forEach(function(t){
+ if(t.v==='(') d++;
+ else if(t.v===')') d--;
+ if(t.v===','&&d===0){ items.push({expr:cur,alias:null,span:null}); cur=[]; return; }
+ cur.push(t);
+ });
+ items.push({expr:cur,alias:null,span:null});
+ var out: Array<{expr: Token[]; alias: string | null; span: SourceSpan | null}>=[];
+ items.forEach(function(item){
+ var toks=item.expr;
+ if(!toks.length) return;
+ var alias: string | null=null, expr: Token[]=toks.slice();
+ var asIx=-1, d2=0;
+ for(var i=0;i=0&&toks[asIx+1]){
+ alias=toks[asIx+1].v;
+ expr=toks.slice(0,asIx);
+ } else if(toks.length>=2){
+ var last=toks[toks.length-1];
+ var prev=toks[toks.length-2];
+ if(last.type==='word'&&prev.v!=='.'&&COL_REF_SKIP[last.u]===undefined&&
+ COL_CLAUSE_START[last.u]===undefined&&last.v!==';'){
+ alias=last.v;
+ expr=toks.slice(0,toks.length-1);
+ }
+ }
+ out.push({expr:expr, alias:alias, span:spanOfTokens(toks)});
+ });
+ return out;
+}
+
+function colOutputName(expr: Token[], refs: ColumnReference[]): string {
+ if(!expr.length) return '';
+ if(expr.length===1) return expr[0].v;
+ var lastWord: string | null=null;
+ for(var i=0;i=0 ? toks.slice(regions.from[0],regions.from[1]) : [];
+ var diagnostics: Diagnostic[]=[];
+ var parsed=colParseSources(fromToks,ctx);
+ var sources=parsed.sources;
+ var references: ColumnReference[]=[];
+ var wildcards: ColumnWildcard[]=[];
+ var opaqueCount=0;
+ var outputs: ColumnOutput[]=[];
+
+ function scanRegion(region: Token[]): void {
+ if(!region||!region.length) return;
+ var scan=colScanRefs(region,sources,diagnostics);
+ references=references.concat(scan.refs);
+ scan.opaqueSpans.forEach(function(sp){ opaqueCount+=Math.max(1,colTokensInSpan(toks,sp)); });
+ }
+
+ if(regions.from[0]>=0){
+ parsed.predicates.forEach(function(pred){ scanRegion(pred); });
+ var d=0;
+ for(var cl=regions.from[1]; cl0) continue;
+ if(COL_CLAUSE_START[t.u]===1&&
+ ['WHERE','GROUP','HAVING','ORDER','LIMIT','OFFSET','FETCH'].indexOf(t.u)>=0){
+ var dd=0, e=cl+1;
+ while(ecl+1&&((toks[e].type==='word'&&COL_CLAUSE_START[toks[e].u]===1)||
+ toks[e].v===',')) break;
+ e++;
+ }
+ while(e>cl+1&&toks[e-1].v===',') e--;
+ scanRegion(toks.slice(cl+1,e));
+ cl=e-1;
+ }
+ }
+ }
+
+ var items=colParseItems(projToks);
+ items.forEach(function(item){
+ var itemSpan=item.span||spanOfTokens(item.expr);
+ var starCount=0;
+ for(var w=0;w0&&item.expr[w-1].v!=='.') continue;
+ starCount++;
+ var srcName: string | null=null;
+ var exp: ColumnSource | null=null;
+ if(w>=1&&item.expr[w-1].v==='.'&&item.expr[w-2]&&item.expr[w-2].type==='word'){
+ srcName=item.expr[w-2].v;
+ exp=colSourceByKey(sources,srcName);
+ if(!exp){
+ diagnostics.push({severity:'warning', code:'column_opaque',
+ message:'Wildcard "'+srcName+'.*" does not match any source; it is not expanded.',
+ span:{start:item.expr[w-2].pos,end:wt.end}, scope:'region'});
+ }
+ }
+ var span: SourceSpan={start:wt.pos,end:wt.end};
+ var wc: ColumnWildcard={source:exp?exp.key:null, span:span, expanded:false, columns:[]};
+ if(exp&&exp.columnsKnown){
+ wc.expanded=true;
+ wc.columns=exp.columns.slice();
+ } else if(!exp){
+ if(sources.length&&sources.every(function(s){return s.columnsKnown;})){
+ wc.expanded=true;
+ var cols: string[]=[], seen: StringSet={};
+ sources.forEach(function(s){
+ s.columns.forEach(function(c){
+ var cu=c.toUpperCase();
+ if(!seen[cu]){ seen[cu]=1; cols.push(c); }
+ });
+ });
+ wc.columns=cols;
+ }
+ }
+ wildcards.push(wc);
+ if(wc.expanded){
+ var owner=exp;
+ if(!owner&&sources.length===1) owner=sources[0];
+ if(owner){
+ owner.columns.forEach(function(c){
+ if(exp){ /* qualified expansion: provable per-source columns */
+ outputs.push({name:c, label:owner.key+'.*', span:itemSpan, resolution:'exact',
+ bindings:[{source:owner.key, column:c, span:span}]});
+ } else {
+ outputs.push({name:c, label:'*', span:itemSpan, resolution:'exact',
+ bindings:[{source:owner.key, column:c, span:span}]});
+ }
+ });
+ }
+ }
+ }
+ if(starCount) return;
+
+ if(!item.expr.length) return;
+ var scan=colScanRefs(item.expr,sources,diagnostics);
+ references=references.concat(scan.refs);
+ var resolution: ColumnResolution='exact';
+ var bindings: ColumnBinding[]=[];
+ var reason: string | undefined=undefined;
+ scan.bound.forEach(function(b){
+ if(b.resolution==='opaque'){ resolution='opaque'; reason='unsupported or unresolvable expression'; }
+ else if(b.resolution==='ambiguous'&&resolution==='exact'){ resolution='ambiguous';
+ reason='ambiguous column reference; no binding invented'; }
+ if(b.resolution==='exact'&&b.source&&b.span)
+ bindings.push({source:b.source,column:b.name,span:b.span});
+ });
+ if(scan.opaqueSpans.length){ resolution='opaque'; reason='subquery expression is opaque'; }
+ scan.opaqueSpans.forEach(function(sp){ opaqueCount+=Math.max(1,colTokensInSpan(toks,sp)); });
+ var name=item.alias||colOutputName(item.expr,scan.refs);
+ outputs.push({name:name, label:item.alias||clip(joinToks(item.expr,40),40),
+ span:itemSpan, bindings:bindings, resolution:resolution,
+ reason:reason});
+ });
+
+ return {outputs:outputs, sources:sources, references:references,
+ wildcards:wildcards, opaqueCount:opaqueCount, diagnostics:diagnostics};
+}
+
+/* Analyse one query (WITH … SELECT or plain SELECT) down to column level. */
+function colAnalyseToks(toks: Token[], ctx: ColCtx): ColumnLineage | null {
+ if(!toks.length) return null;
+ if(ctx.depth>8) return null;
+ var split=splitCtesColumn(toks);
+ var diagnostics: Diagnostic[]=[];
+ var references: ColumnReference[]=[];
+ var wildcards: ColumnWildcard[]=[];
+ var opaqueCount=0;
+ var sourcesAll: ColumnSource[]=[];
+ var outputs: ColumnOutput[]=[];
+
+ var cteMap: Record={};
+ if(ctx.cteColumns)
+ Object.keys(ctx.cteColumns).forEach(function(k){ cteMap[k]=ctx.cteColumns[k]; });
+ split.ctes.forEach(function(cte){
+ var child: ColCtx={cteColumns:cteMap, catalogue:ctx.catalogue,
+ dialect:ctx.dialect, depth:ctx.depth+1};
+ var inner=colAnalyseToks(cte.body,child);
+ var cols=cte.colToks&&cte.colToks.length
+ ? colNamesOf(cte.colToks)
+ : ((inner&&inner.outputs.map(function(o){return o.name;}))||[]);
+ cteMap[cte.name.toUpperCase()]=cols;
+ if(inner){
+ references=references.concat(inner.references);
+ wildcards=wildcards.concat(inner.wildcards);
+ opaqueCount+=inner.opaqueCount;
+ inner.diagnostics.forEach(function(d){ diagnostics.push(d); });
+ inner.sources.forEach(function(s){ if(!colSourceByKey(sourcesAll,s.key)) sourcesAll.push(s); });
+ }
+ });
+
+ var finalToks=toks.slice(split.finalStart);
+ if(!finalToks.length||finalToks[0].u!=='SELECT') return null;
+ var arms=colSplitArms(finalToks);
+ var firstDone=false;
+ for(var a=0;a0
+ ? st.toks.slice(csplit.finalStart) : st.toks;
+ var chead=cwork[0]?cwork[0].u:'';
+ if(chead!=='SELECT') return;
+ var cl=analyseColumns(st.toks,{catalogue:opts.catalogue, dialect:dialect});
+ if(!cl) return;
+ columnLineages.push(cl);
+ cl.diagnostics.forEach(function(d){ diagnostics.push(d); });
+ },0);
+
return {dialect:dialect, detected:det, confidence:confidence,
confidenceFormulaVersion:confidenceFormulaVersion,
confidenceSignals:confidenceSignals,
@@ -1932,5 +1950,6 @@ function analyse(sql: string, opts?: AnalyseOptions): AnalysisResult {
diagnostics:diagnostics, header:header, ast:ast, mode:selectedMode,
graph:selected, stats:selected.stats,
mermaid:toMermaid(selected, opts.dir||'TD'),
- attribution:attribution, constructCoverage:constructCoverage};
+ attribution:attribution, constructCoverage:constructCoverage,
+ columns:columnLineages};
}
diff --git a/src/types.d.ts b/src/types.d.ts
index f2f7da3..8db5445 100644
--- a/src/types.d.ts
+++ b/src/types.d.ts
@@ -451,6 +451,9 @@ interface AnalysisResult {
mermaid: string;
attribution?: TokenAttribution;
constructCoverage?: ConstructCoverage;
+ /* v1.10.0 — column lineage foundations: one entry per query-bearing
+ statement that was column-analysed (single-statement scope). */
+ columns?: ColumnLineage[];
}
interface WorkspaceFile {
@@ -579,6 +582,78 @@ interface CatalogueParseResult {
columnCount: number;
}
+/* v1.10.0 — column lineage foundations.
+ Column scopes and bindings for qualified references, aliases, projections,
+ CTEs, derived tables, and catalogue-backed wildcard expansion; expression-
+ level provenance within one query statement; explicit ambiguous and opaque
+ column references. Inter-object column flow (v1.11.0) and the final column
+ export contract are deferred. */
+type ColumnResolution = 'exact' | 'ambiguous' | 'opaque';
+type ColumnSourceKind = 'table' | 'cte' | 'derived' | 'tabfunc' | 'opaque';
+
+/* One source (table, CTE, derived table, or tabular function) visible in a
+ query's scope. `columns` is authoritative only when `columnsKnown` is true:
+ for plain tables it is true only with catalogue evidence. */
+interface ColumnSource {
+ key: string;
+ name: string;
+ alias: string | null;
+ kind: ColumnSourceKind;
+ columns: string[];
+ columnsKnown: boolean;
+ span: SourceSpan | null;
+}
+
+/* One input column a projection output derives from. */
+interface ColumnBinding {
+ source: string;
+ column: string;
+ span: SourceSpan | null;
+}
+
+/* One projection item mapped to the input columns it reads. `resolution` is
+ 'exact' when every reference bound; 'ambiguous' when at least one reference
+ matched several sources (no edge is invented); 'opaque' when an expression
+ or reference could not be resolved statically. */
+interface ColumnOutput {
+ name: string;
+ label: string;
+ span: SourceSpan | null;
+ bindings: ColumnBinding[];
+ resolution: ColumnResolution;
+ reason?: string;
+}
+
+/* A wildcard reference (`*` or `alias.*`). It expands to concrete columns
+ only when the catalogue proves every contributing source's columns;
+ otherwise it is recorded unexpanded and never invents columns. */
+interface ColumnWildcard {
+ source: string | null;
+ span: SourceSpan | null;
+ expanded: boolean;
+ columns: string[];
+}
+
+/* One column reference inside a statement with its binding verdict. */
+interface ColumnReference {
+ qualifier: string | null;
+ name: string;
+ span: SourceSpan;
+ resolution: ColumnResolution;
+}
+
+/* The full column-lineage analysis of one query statement. */
+interface ColumnLineage {
+ sources: ColumnSource[];
+ outputs: ColumnOutput[];
+ wildcards: ColumnWildcard[];
+ references: ColumnReference[];
+ tokensConsumed: number;
+ tokensOpaque: number;
+ opaqueCount: number;
+ diagnostics: Diagnostic[];
+}
+
interface FixtureExpectation {
mode?: 'flow' | 'query';
branch?: number;
@@ -673,6 +748,15 @@ interface Window {
passed: number;
total: number;
};
+ /* v1.10.0 column-lineage suite results, published for the golden and metrics
+ pages. */
+ PROCFLOW_COLUMN_PASS?: boolean;
+ PROCFLOW_COLUMN_RESULT?: {
+ passed: number;
+ total: number;
+ };
+ /* v1.10.0 per-fixture column suite records, published for debugging. */
+ PROCFLOW_COLUMN_DETAIL?: Array<{name: string; pass: boolean; detail: unknown}>;
/* v1.8.0 opt-in workspace persistence globals (src/workspace.ts), exposed for
the browser UI tests. */
clearWorkspace(): void;
diff --git a/tests/columns.ts b/tests/columns.ts
new file mode 100644
index 0000000..368194c
--- /dev/null
+++ b/tests/columns.ts
@@ -0,0 +1,377 @@
+/* proc>flow v1.10.0 — column lineage foundations.
+ Fixtures assert exact input→output mappings and spans for qualified
+ references, aliases, projections, CTEs, derived tables, and catalogue-backed
+ wildcard expansion; that ambiguity never invents a column binding; and that
+ unsupported expressions become opaque with region-scoped diagnostics.
+ Multi-statement temp-table and inter-object column flow (v1.11.0) is out of
+ scope here; every fixture is a single query statement.
+
+ After this suite runs, PROCFLOW_COLUMN_PASS and PROCFLOW_COLUMN_RESULT gate
+ the golden suite (tests/tests.ts) and feed the fixture-corpus metrics. */
+(function(){
+ var results: Array<{name: string; pass: boolean; detail: unknown}>=[];
+ function record(name: string, pass: boolean, detail?: unknown): void {
+ results.push({name:name,pass:pass,detail:pass?'':detail});
+ }
+ function hasDiag(list: Diagnostic[], code: string): boolean {
+ return (list||[]).some(function(d){return d.code===code;});
+ }
+
+ interface ColFixtureExpect {
+ outputs?: Array<{
+ name: string;
+ resolution?: ColumnResolution;
+ bindings?: string[];
+ spanText?: string;
+ }>;
+ outputCount?: number;
+ wildcards?: Array<{source: string | null; expanded: boolean; columns?: string[]}>;
+ refs?: Array<{text: string; resolution: ColumnResolution}>;
+ sourceKeys?: string[];
+ sourceOf?: {key: string; kind: ColumnSourceKind; columns?: string[]};
+ diagnostics?: string[];
+ noDiagnostics?: boolean;
+ }
+ interface ColFixture {
+ name: string;
+ dialect: Dialect;
+ sql: string;
+ catalogue?: string;
+ expect: ColFixtureExpect;
+ }
+
+ var PROCFLOW_COLUMN_FIXTURES: ColFixture[] = [
+ {
+ name:'qualified references, aliases, and JOIN predicates',
+ dialect:'tsql',
+ sql:'SELECT s.id AS sid, s.name, sc.name AS school FROM dbo.student s JOIN dbo.school sc ON sc.id = s.school_id;',
+ expect:{
+ sourceKeys:['s','sc'],
+ outputs:[
+ {name:'sid', resolution:'exact', bindings:['s.id'], spanText:'s.id AS sid'},
+ {name:'name', resolution:'exact', bindings:['s.name'], spanText:'s.name'},
+ {name:'school', resolution:'exact', bindings:['sc.name'], spanText:'sc.name AS school'}
+ ],
+ refs:[
+ {text:'s.id', resolution:'exact'},
+ {text:'sc.id', resolution:'exact'},
+ {text:'s.school_id', resolution:'exact'}
+ ],
+ noDiagnostics:true
+ }
+ },
+ {
+ name:'unqualified reference to a single source binds exactly',
+ dialect:'tsql',
+ sql:'SELECT id FROM dbo.student;',
+ expect:{
+ outputs:[{name:'id', resolution:'exact', bindings:['dbo.student.id']}],
+ refs:[{text:'id', resolution:'exact'}],
+ noDiagnostics:true
+ }
+ },
+ {
+ name:'ambiguous unqualified reference invents no binding',
+ dialect:'tsql',
+ sql:'SELECT id FROM dbo.a a JOIN dbo.b b ON a.id = b.aid;',
+ expect:{
+ outputs:[{name:'id', resolution:'ambiguous', bindings:[]}],
+ refs:[{text:'id', resolution:'ambiguous'}],
+ diagnostics:['column_ambiguous']
+ }
+ },
+ {
+ name:'expression-level provenance maps every referenced column',
+ dialect:'tsql',
+ sql:'SELECT s.a + s.b AS total, s.a * 2 AS doubled, COUNT(*) AS n FROM dbo.t s;',
+ expect:{
+ outputs:[
+ {name:'total', resolution:'exact', bindings:['s.a','s.b'], spanText:'s.a + s.b AS total'},
+ {name:'doubled', resolution:'exact', bindings:['s.a']},
+ {name:'n', resolution:'exact', bindings:[]}
+ ],
+ refs:[
+ {text:'s.a', resolution:'exact'},
+ {text:'s.b', resolution:'exact'}
+ ],
+ noDiagnostics:true
+ }
+ },
+ {
+ name:'CTE scopes carry explicit and computed column lists',
+ dialect:'tsql',
+ sql:'WITH c(i, j) AS (SELECT 1, 2), d AS (SELECT i AS a, j AS b FROM c) SELECT a, b FROM d;',
+ expect:{
+ sourceOf:{key:'d', kind:'cte', columns:['a','b']},
+ outputs:[
+ {name:'a', resolution:'exact', bindings:['d.a']},
+ {name:'b', resolution:'exact', bindings:['d.b']}
+ ],
+ noDiagnostics:true
+ }
+ },
+ {
+ name:'derived-table inner sources provide the column scope',
+ dialect:'tsql',
+ sql:'SELECT x.id, x.name FROM (SELECT id, name FROM dbo.inner) x;',
+ expect:{
+ sourceOf:{key:'x', kind:'derived', columns:['id','name']},
+ outputs:[
+ {name:'id', resolution:'exact', bindings:['x.id']},
+ {name:'name', resolution:'exact', bindings:['x.name']}
+ ],
+ noDiagnostics:true
+ }
+ },
+ {
+ name:'catalogue-backed wildcard expansion (qualified)',
+ dialect:'tsql',
+ catalogue:'dbo.student TABLE\nCOL dbo.student.Id\nCOL dbo.student.Name\nCOL dbo.student.Grade',
+ sql:'SELECT s.* FROM dbo.student s;',
+ expect:{
+ wildcards:[{source:'s', expanded:true, columns:['Id','Name','Grade']}],
+ outputs:[
+ {name:'Id', resolution:'exact', bindings:['s.Id']},
+ {name:'Name', resolution:'exact', bindings:['s.Name']},
+ {name:'Grade', resolution:'exact', bindings:['s.Grade']}
+ ],
+ noDiagnostics:true
+ }
+ },
+ {
+ name:'catalogue-backed wildcard expansion (bare star)',
+ dialect:'tsql',
+ catalogue:'dbo.student TABLE\nCOL dbo.student.Id\nCOL dbo.student.Name',
+ sql:'SELECT * FROM dbo.student;',
+ expect:{
+ wildcards:[{source:null, expanded:true, columns:['Id','Name']}],
+ outputs:[
+ {name:'Id', resolution:'exact', bindings:['dbo.student.Id']},
+ {name:'Name', resolution:'exact', bindings:['dbo.student.Name']}
+ ],
+ noDiagnostics:true
+ }
+ },
+ {
+ name:'wildcard without catalogue stays unexpanded',
+ dialect:'tsql',
+ sql:'SELECT t.* FROM dbo.student t;',
+ expect:{
+ wildcards:[{source:'t', expanded:false, columns:[]}],
+ outputCount:0,
+ noDiagnostics:true
+ }
+ },
+ {
+ name:'scalar subquery projection is opaque with a region diagnostic',
+ dialect:'tsql',
+ sql:'SELECT s.id, (SELECT MAX(x) FROM dbo.meta) AS latest FROM dbo.student s;',
+ expect:{
+ outputs:[
+ {name:'id', resolution:'exact', bindings:['s.id']},
+ {name:'latest', resolution:'opaque', bindings:[]}
+ ],
+ diagnostics:['column_opaque']
+ }
+ },
+ {
+ name:'reference to a column outside a provable scope is opaque',
+ dialect:'tsql',
+ sql:'WITH c(i) AS (SELECT 1) SELECT c.nope FROM c;',
+ expect:{
+ outputs:[{name:'nope', resolution:'opaque', bindings:[]}],
+ diagnostics:['column_opaque']
+ }
+ },
+ {
+ name:'predicate references bind with spans inside WHERE clauses',
+ dialect:'tsql',
+ sql:'SELECT s.id FROM dbo.student s WHERE s.active = 1 AND s.school_id IN (1, 2);',
+ expect:{
+ outputs:[{name:'id', resolution:'exact', bindings:['s.id']}],
+ refs:[
+ {text:'s.id', resolution:'exact'},
+ {text:'s.active', resolution:'exact'},
+ {text:'s.school_id', resolution:'exact'}
+ ],
+ noDiagnostics:true
+ }
+ },
+ {
+ name:'recursive CTE binds its recursion column exactly',
+ dialect:'tsql',
+ sql:'WITH r(n) AS (SELECT 1 UNION ALL SELECT n + 1 FROM r WHERE n < 10) SELECT n FROM r;',
+ expect:{
+ outputs:[{name:'n', resolution:'exact', bindings:['r.n']}],
+ refs:[{text:'n', resolution:'exact'}],
+ noDiagnostics:true
+ }
+ },
+ {
+ name:'SELECT DISTINCT TOP projection region',
+ dialect:'tsql',
+ sql:'SELECT DISTINCT TOP 5 s.id FROM dbo.student s ORDER BY s.id;',
+ expect:{
+ outputs:[{name:'id', resolution:'exact', bindings:['s.id']}],
+ noDiagnostics:true
+ }
+ },
+ {
+ name:'SELECT … INTO binds the projected columns',
+ dialect:'tsql',
+ sql:'SELECT id, name INTO #stage FROM dbo.student;',
+ expect:{
+ outputs:[
+ {name:'id', resolution:'exact', bindings:['dbo.student.id']},
+ {name:'name', resolution:'exact', bindings:['dbo.student.name']}
+ ],
+ noDiagnostics:true
+ }
+ }
+ ];
+
+ function spanText(sql: string, span: SourceSpan | null): string {
+ return span?sql.slice(span.start,span.end):'';
+ }
+
+ PROCFLOW_COLUMN_FIXTURES.forEach(function(f){
+ try{
+ var cat=null;
+ if(f.catalogue) cat=parseCatalogue(f.catalogue).catalogue;
+ var lin=analyseColumns(tokenize(f.sql),{catalogue:cat, dialect:f.dialect});
+ if(!lin){ record(f.name+' · mappings',false,'column lineage was not produced'); return; }
+ var e=f.expect, ok=true, detail: any={};
+
+ if(e.sourceKeys){
+ var keys=lin.sources.map(function(s){return s.key.toUpperCase();});
+ detail.sources=lin.sources.map(function(s){return {key:s.key,kind:s.kind,cols:s.columns};});
+ ok=ok&&e.sourceKeys.every(function(k){return keys.indexOf(k.toUpperCase())>=0;});
+ }
+ if(e.sourceOf){
+ var src: ColumnSource | null=null;
+ lin.sources.forEach(function(s){ if(s.key.toUpperCase()===e.sourceOf!.key.toUpperCase()) src=s; });
+ detail.sourceOf=src&&{key:src.key,kind:src.kind,cols:src.columns};
+ ok=ok&&!!src&&src.kind===e.sourceOf.kind&&
+ (e.sourceOf.columns===undefined||src.columns.join(',')===e.sourceOf.columns.join(','));
+ }
+ if(e.outputCount!==undefined){
+ detail.outputCount=lin.outputs.length;
+ ok=ok&&lin.outputs.length===e.outputCount;
+ }
+ (e.outputs||[]).forEach(function(exp){
+ var out: ColumnOutput | null=null;
+ lin.outputs.forEach(function(o){ if(o.name===exp.name) out=o; });
+ var bindingTexts=(out?out.bindings:[]).map(function(b){return b.source+'.'+b.column;});
+ var outputOk=!!out&&(exp.resolution===undefined||out.resolution===exp.resolution)&&
+ (exp.bindings===undefined||bindingTexts.join('|')===exp.bindings.join('|'))&&
+ (exp.spanText===undefined||spanText(f.sql,out.span)===exp.spanText);
+ ok=ok&&outputOk;
+ detail['output:'+exp.name]=out&&{res:out.resolution,bindings:bindingTexts,
+ span:spanText(f.sql,out.span)};
+ });
+ (e.refs||[]).forEach(function(exp){
+ var ref: ColumnReference | null=null;
+ lin.references.forEach(function(r){
+ if(spanText(f.sql,r.span)===exp.text) ref=r;
+ });
+ var refOk=!!ref&&ref.resolution===exp.resolution&&
+ !!ref.span&&ref.span.start>=0&&ref.span.end>ref.span.start&&
+ ref.span.end<=f.sql.length;
+ ok=ok&&refOk;
+ detail['ref:'+exp.text]=ref&&{res:ref.resolution,
+ span:spanText(f.sql,ref.span)};
+ });
+ (e.wildcards||[]).forEach(function(exp){
+ var wc: ColumnWildcard | null=null;
+ lin.wildcards.forEach(function(w){
+ if((w.source||null)===(exp.source||null)) wc=w;
+ });
+ var wcOk=!!wc&&wc.expanded===exp.expanded&&
+ (exp.columns===undefined||wc.columns.join(',')===exp.columns.join(','))&&
+ !!wc.span&&wc.span.start>=0&&wc.span.end>wc.span.start&&
+ wc.span.end<=f.sql.length;
+ ok=ok&&wcOk;
+ detail['wildcard:'+(exp.source||'*')]=wc&&{expanded:wc.expanded,cols:wc.columns,
+ span:spanText(f.sql,wc.span)};
+ });
+ if(e.diagnostics){
+ (e.diagnostics||[]).forEach(function(code){
+ ok=ok&&hasDiag(lin.diagnostics,code);
+ });
+ }
+ if(e.noDiagnostics){
+ ok=ok&&lin.diagnostics.length===0;
+ detail.diagnostics=lin.diagnostics;
+ }
+ /* every region-scoped column diagnostic carries a valid span */
+ var spanOk=lin.diagnostics.every(function(d){
+ return d.scope==='region'&&!!d.span&&d.span.start>=0&&d.span.end>d.span.start&&
+ d.span.end<=f.sql.length;
+ });
+ ok=ok&&spanOk;
+ record(f.name+' · mappings',ok,JSON.stringify(detail));
+ }catch(err){
+ record(f.name+' · mappings',false,String(err&&err.stack||err));
+ }
+ });
+
+ /* ---- integration: analyse() attaches column lineage and surfaces its
+ diagnostics as region-scoped findings ---- */
+ try{
+ var r=analyse('SELECT id FROM dbo.a a JOIN dbo.b b ON a.id = b.aid;',
+ {dialect:'tsql',mode:'auto',group:false,sources:true});
+ var integrated=!!r.columns&&r.columns.length===1&&
+ r.diagnostics.some(function(d){
+ return d.code==='column_ambiguous'&&d.scope==='region'&&
+ !!d.span&&r.diagnostics.indexOf(d)>=0&&
+ 'SELECT id FROM dbo.a a JOIN dbo.b b ON a.id = b.aid;'
+ .slice(d.span.start,d.span.end)==='id';
+ });
+ record('v1.10.0 analyse() attaches column lineage and findings',
+ integrated,
+ JSON.stringify({columnCount:r.columns&&r.columns.length,
+ diagnostics:r.diagnostics.map(function(d){return d.code;})}));
+ }catch(err){
+ record('v1.10.0 analyse() attaches column lineage and findings',
+ false,String(err&&err.stack||err));
+ }
+
+ try{
+ var clean=analyse('CREATE PROC dbo.clean_cols AS BEGIN\n'+
+ ' WITH r(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM r WHERE n<10)\n'+
+ ' SELECT n FROM r;\n'+
+ 'END',
+ {dialect:'tsql',mode:'flow',group:false,sources:true});
+ var cleanOk=!clean.diagnostics.some(function(d){
+ return d.code.indexOf('column_')===0;
+ })&&(clean.columns||[]).length===1;
+ record('v1.10.0 clean single-statement column bindings emit no diagnostics',
+ cleanOk,
+ JSON.stringify({diags:clean.diagnostics.map(function(d){return d.code;}),
+ columns:clean.columns&&clean.columns.length}));
+ }catch(err){
+ record('v1.10.0 clean single-statement column bindings emit no diagnostics',
+ false,String(err&&err.stack||err));
+ }
+
+ try{
+ var probe=analyse('SELECT s.id FROM dbo.student s WHERE s.active = 1;',
+ {dialect:'tsql',mode:'auto',group:false,sources:true});
+ var columns=probe.columns&&probe.columns[0];
+ var binding=columns&&columns.outputs[0]&&columns.outputs[0].bindings[0];
+ var provenanceOk=!!columns&&columns.outputs.length===1&&
+ columns.outputs[0].resolution==='exact'&&!!binding&&
+ binding.source==='s'&&binding.column==='id'&&!!binding.span;
+ record('v1.10.0 output binding carries source, column, and span',
+ provenanceOk,
+ JSON.stringify(columns&&columns.outputs));
+ }catch(err){
+ record('v1.10.0 output binding carries source, column, and span',
+ false,String(err&&err.stack||err));
+ }
+
+ var passed=results.filter(function(r){return r.pass;}).length;
+ window.PROCFLOW_COLUMN_RESULT={passed:passed,total:results.length};
+ window.PROCFLOW_COLUMN_PASS=passed===results.length;
+ window.PROCFLOW_COLUMN_DETAIL=results;
+})();
diff --git a/tests/fuzz.html b/tests/fuzz.html
index f6ced0c..1296477 100644
--- a/tests/fuzz.html
+++ b/tests/fuzz.html
@@ -18,6 +18,7 @@ proc>flow mutation and fuzz tests
+
diff --git a/tests/index.html b/tests/index.html
index 23e8cbe..05cf87a 100644
--- a/tests/index.html
+++ b/tests/index.html
@@ -20,6 +20,7 @@ proc>flow golden tests
+
@@ -32,6 +33,7 @@ proc>flow golden tests
+
-proc>flow fixture-corpus metrics (v1.9.0)
+proc>flow fixture-corpus metrics (v1.10.0)
Running…
Deterministic, fixture-only aggregates of the "Metrics that matter".
No user inputs or runtime telemetry are collected.
@@ -20,6 +20,7 @@ proc>flow fixture-corpus metrics (v1.9.0)
+
@@ -32,6 +33,7 @@ proc>flow fixture-corpus metrics (v1.9.0)
+