@flighthq/tool-capture 0.3.1-next.970.9691e7b → 0.3.1-next.975.01aea94

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,12 @@
1
+ /** The three kinds of evidence a capture target can carry. Each is independently losable. */
2
+ export type CaptureBaselineEvidenceKind = 'fingerprint' | 'oracle' | 'screenshot';
1
3
  export interface CaptureBaselineCoverageManifest {
2
- schemaVersion: 1;
3
- /** Sorted `entry/renderer` identities, keyed by subject (`functional`, `examples`). */
4
- subjects: Record<string, string[]>;
4
+ schemaVersion: 2;
5
+ /**
6
+ * Per subject (`functional`, `examples`): each `entry/renderer` identity mapped to the sorted evidence
7
+ * kinds it carries. A target with no evidence at all is absent rather than mapped to an empty list.
8
+ */
9
+ subjects: Record<string, Record<string, CaptureBaselineEvidenceKind[]>>;
5
10
  }
6
11
  export interface CaptureBaselineCoverageDiff {
7
12
  /** Identities covered now that the manifest does not record. */
@@ -11,10 +16,11 @@ export interface CaptureBaselineCoverageDiff {
11
16
  /** Identities the manifest records that this run never visited. Only meaningful whole-repo. */
12
17
  absent: string[];
13
18
  }
14
- export declare const CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION = 1;
19
+ export declare const CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION = 2;
20
+ export declare const CAPTURE_BASELINE_EVIDENCE_KINDS: readonly CaptureBaselineEvidenceKind[];
15
21
  /** Where the committed pin lives — one file, keyed by subject, beside the reachability baseline. */
16
22
  export declare function captureBaselineCoverageManifestPath(root: string): string;
17
- export declare function createCaptureBaselineCoverageManifest(subjects: Readonly<Record<string, readonly string[]>>): CaptureBaselineCoverageManifest;
23
+ export declare function createCaptureBaselineCoverageManifest(subjects: Readonly<Record<string, Readonly<Record<string, readonly CaptureBaselineEvidenceKind[]>>>>): CaptureBaselineCoverageManifest;
18
24
  /**
19
25
  * Diffs observed coverage against the manifest for one subject.
20
26
  *
@@ -29,13 +35,21 @@ export declare function createCaptureBaselineCoverageManifest(subjects: Readonly
29
35
  * absence check entirely (any entry could have been excluded), and `activeRenderers` narrows it to the
30
36
  * renderers this run actually ran, so `--renderer=webgl` does not report every canvas pin as vanished.
31
37
  */
32
- export declare function diffCaptureBaselineCoverage(manifest: Readonly<CaptureBaselineCoverageManifest>, subject: string, covered: readonly string[], visited: readonly string[], scope: Readonly<{
38
+ export declare function diffCaptureBaselineCoverage(manifest: Readonly<CaptureBaselineCoverageManifest>, subject: string, covered: Readonly<Record<string, readonly CaptureBaselineEvidenceKind[]>>, visited: readonly string[], scope: Readonly<{
33
39
  entryFiltered: boolean;
34
40
  activeRenderers: readonly string[] | null;
35
41
  undetermined?: readonly string[];
42
+ /**
43
+ * The evidence kinds this run was able to observe. A run that never looked at screenshots must not
44
+ * report every screenshot pin as lost — the same not-observed-is-not-absent rule the other two scope
45
+ * fields apply to entries and renderers, applied to the third axis.
46
+ */
47
+ kinds?: readonly CaptureBaselineEvidenceKind[];
36
48
  }>): CaptureBaselineCoverageDiff;
37
49
  /** `entry/renderer`, the identity a manifest pins. */
38
50
  export declare function formatCaptureBaselineCoverageIdentity(entry: string, renderer: string): string;
51
+ /** `entry/renderer#kind` — the unit a loss is named in. `#` because a renderer id may contain `:`. */
52
+ export declare function formatCaptureBaselineEvidenceIdentity(identity: string, kind: CaptureBaselineEvidenceKind): string;
39
53
  /**
40
54
  * True when the diff records something the operator must accept or repair — in EITHER direction.
41
55
  *
@@ -47,6 +61,8 @@ export declare function formatCaptureBaselineCoverageIdentity(entry: string, ren
47
61
  * both halves. The sibling registrar manifest fails in both directions for the same reason.
48
62
  */
49
63
  export declare function isCaptureBaselineCoverageFailure(diff: Readonly<CaptureBaselineCoverageDiff>): boolean;
64
+ /** Every `target#kind` a manifest pins for one subject, sorted. */
65
+ export declare function listCaptureBaselineEvidence(manifest: Readonly<CaptureBaselineCoverageManifest>, subject: string): string[];
50
66
  /** The committed pin, or an empty manifest when none exists yet. A missing file is not an error. */
51
67
  export declare function readCaptureBaselineCoverageManifest(root: string): CaptureBaselineCoverageManifest;
52
68
  /**
@@ -60,5 +76,5 @@ export declare function readCaptureBaselineCoverageManifest(root: string): Captu
60
76
  * determined that identity to be uncovered. Everything else is carried forward. One flaky target therefore
61
77
  * cannot quietly retire a pin, and cannot block the whole acceptance either.
62
78
  */
63
- export declare function writeCaptureBaselineCoverageManifest(root: string, subject: string, identities: readonly string[], activeRenderers?: readonly string[] | null, determined?: readonly string[] | null): CaptureBaselineCoverageManifest;
79
+ export declare function writeCaptureBaselineCoverageManifest(root: string, subject: string, covered: Readonly<Record<string, readonly CaptureBaselineEvidenceKind[]>>, activeRenderers?: readonly string[] | null, determined?: readonly string[] | null, observedKinds?: readonly CaptureBaselineEvidenceKind[] | null): CaptureBaselineCoverageManifest;
64
80
  //# sourceMappingURL=captureBaselineCoverageManifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"captureBaselineCoverageManifest.d.ts","sourceRoot":"","sources":["../src/captureBaselineCoverageManifest.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,CAAC,CAAC;IACjB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,2BAA2B;IAC1C,gEAAgE;IAChE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,qFAAqF;IACrF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,+FAA+F;IAC/F,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,0CAA0C,IAAI,CAAC;AAE5D,oGAAoG;AACpG,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GACpD,+BAA+B,CAIjC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,CAAC,+BAA+B,CAAC,EACnD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,QAAQ,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC,CAAC,GACD,2BAA2B,CAkB7B;AAED,sDAAsD;AACtD,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7F;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,QAAQ,CAAC,2BAA2B,CAAC,GAAG,OAAO,CAErG;AAED,oGAAoG;AACpG,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,MAAM,GAAG,+BAA+B,CAMjG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,eAAe,GAAE,SAAS,MAAM,EAAE,GAAG,IAAW,EAChD,UAAU,GAAE,SAAS,MAAM,EAAE,GAAG,IAAW,GAC1C,+BAA+B,CAcjC"}
1
+ {"version":3,"file":"captureBaselineCoverageManifest.d.ts","sourceRoot":"","sources":["../src/captureBaselineCoverageManifest.ts"],"names":[],"mappings":"AAqCA,6FAA6F;AAC7F,MAAM,MAAM,2BAA2B,GAAG,aAAa,GAAG,QAAQ,GAAG,YAAY,CAAC;AAElF,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,CAAC,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,2BAA2B;IAC1C,gEAAgE;IAChE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,qFAAqF;IACrF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,+FAA+F;IAC/F,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,0CAA0C,IAAI,CAAC;AAE5D,eAAO,MAAM,+BAA+B,EAAE,SAAS,2BAA2B,EAIjF,CAAC;AAEF,oGAAoG;AACpG,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC,GACnG,+BAA+B,CAcjC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,CAAC,+BAA+B,CAAC,EACnD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,2BAA2B,EAAE,CAAC,CAAC,EACzE,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,QAAQ,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;CAChD,CAAC,GACD,2BAA2B,CAiC7B;AAED,sDAAsD;AACtD,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7F;AAED,sGAAsG;AACtG,wBAAgB,qCAAqC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,GAAG,MAAM,CAEjH;AAED;;;;;;;;;GASG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,QAAQ,CAAC,2BAA2B,CAAC,GAAG,OAAO,CAErG;AAED,mEAAmE;AACnE,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,QAAQ,CAAC,+BAA+B,CAAC,EACnD,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,CAKV;AAED,oGAAoG;AACpG,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,MAAM,GAAG,+BAA+B,CAejG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,2BAA2B,EAAE,CAAC,CAAC,EACzE,eAAe,GAAE,SAAS,MAAM,EAAE,GAAG,IAAW,EAChD,UAAU,GAAE,SAAS,MAAM,EAAE,GAAG,IAAW,EAC3C,aAAa,GAAE,SAAS,2BAA2B,EAAE,GAAG,IAAW,GAClE,+BAA+B,CAuBjC"}
@@ -22,17 +22,41 @@
22
22
  // The manifest records only that a target HAD a comparable baseline, never what the baseline contained.
23
23
  // It is a pin on the SHAPE of the evidence, not on the evidence, so re-baselining a scene is not a
24
24
  // manifest change and does not need acceptance.
25
+ //
26
+ // ★ ONE DEFECT, THREE TIERS, ONE MANIFEST. The pipeline records which evidence EXISTS and never records
27
+ // which evidence SHOULD exist, so wherever evidence is optional its absence is indistinguishable from
28
+ // satisfaction. That surfaced independently in three tiers over the SAME target set — a missing
29
+ // fingerprint skips the regression comparison, a missing `sha256` leaves `changed` null so
30
+ // `--fail-on-changed` cannot fire, and a missing (or misspelled) `assertRender` export silently runs no
31
+ // oracle. They are not three defects: they are three kinds of evidence about one row, and a target's
32
+ // evidence profile is ONE fact. Three parallel manifests would be three places for that fact to drift
33
+ // apart, so the kinds are COLUMNS on one row here, and a loss is named as `target#kind`.
25
34
  import { existsSync, readFileSync, writeFileSync } from 'node:fs';
26
35
  import { join } from 'node:path';
27
- export const CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION = 1;
36
+ export const CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION = 2;
37
+ export const CAPTURE_BASELINE_EVIDENCE_KINDS = [
38
+ 'fingerprint',
39
+ 'oracle',
40
+ 'screenshot',
41
+ ];
28
42
  /** Where the committed pin lives — one file, keyed by subject, beside the reachability baseline. */
29
43
  export function captureBaselineCoverageManifestPath(root) {
30
44
  return join(root, 'scripts', 'capture-baseline-coverage-manifest.json');
31
45
  }
32
46
  export function createCaptureBaselineCoverageManifest(subjects) {
33
47
  const out = {};
34
- for (const [subject, identities] of Object.entries(subjects))
35
- out[subject] = [...identities].sort();
48
+ for (const [subject, targets] of Object.entries(subjects)) {
49
+ const row = {};
50
+ // A target with no evidence at all is ABSENT rather than pinned-with-nothing: pinning an empty row
51
+ // would assert "this target is known to carry no evidence", which is the claim the manifest exists
52
+ // to make impossible to state by accident.
53
+ for (const identity of Object.keys(targets).sort()) {
54
+ const kinds = [...new Set(targets[identity])].sort();
55
+ if (kinds.length > 0)
56
+ row[identity] = kinds;
57
+ }
58
+ out[subject] = row;
59
+ }
36
60
  return { schemaVersion: CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION, subjects: out };
37
61
  }
38
62
  /**
@@ -50,18 +74,24 @@ export function createCaptureBaselineCoverageManifest(subjects) {
50
74
  * renderers this run actually ran, so `--renderer=webgl` does not report every canvas pin as vanished.
51
75
  */
52
76
  export function diffCaptureBaselineCoverage(manifest, subject, covered, visited, scope) {
53
- const pinned = new Set(manifest.subjects[subject] ?? []);
54
- const coveredSet = new Set(covered);
77
+ const kindObserved = (kind) => scope.kinds === undefined || scope.kinds.includes(kind);
78
+ const pinnedRows = manifest.subjects[subject] ?? {};
79
+ const pinned = new Set(Object.entries(pinnedRows).flatMap(([identity, kinds]) => kinds.filter(kindObserved).map((kind) => formatCaptureBaselineEvidenceIdentity(identity, kind))));
80
+ const coveredSet = new Set(Object.entries(covered).flatMap(([identity, kinds]) => [...kinds].filter(kindObserved).map((kind) => formatCaptureBaselineEvidenceIdentity(identity, kind))));
55
81
  const visitedSet = new Set(visited);
82
+ const targetOf = (evidence) => evidence.slice(0, evidence.lastIndexOf('#'));
56
83
  const rendererOf = (identity) => identity.slice(identity.lastIndexOf('/') + 1);
57
84
  const rendererActive = (identity) => scope.activeRenderers === null || scope.activeRenderers.includes(rendererOf(identity));
58
- const gained = covered.filter((identity) => !pinned.has(identity)).sort();
59
- const lost = [...pinned].filter((identity) => visitedSet.has(identity) && !coveredSet.has(identity)).sort();
85
+ const gained = [...coveredSet].filter((evidence) => !pinned.has(evidence)).sort();
86
+ const lost = [...pinned].filter((evidence) => visitedSet.has(targetOf(evidence)) && !coveredSet.has(evidence)).sort();
60
87
  const undeterminedSet = new Set(scope.undetermined ?? []);
61
88
  const absent = scope.entryFiltered
62
89
  ? []
63
90
  : [...pinned]
64
- .filter((identity) => rendererActive(identity) && !visitedSet.has(identity) && !undeterminedSet.has(identity))
91
+ .filter((evidence) => {
92
+ const identity = targetOf(evidence);
93
+ return rendererActive(identity) && !visitedSet.has(identity) && !undeterminedSet.has(identity);
94
+ })
65
95
  .sort();
66
96
  return { gained, lost, absent };
67
97
  }
@@ -69,6 +99,10 @@ export function diffCaptureBaselineCoverage(manifest, subject, covered, visited,
69
99
  export function formatCaptureBaselineCoverageIdentity(entry, renderer) {
70
100
  return `${entry}/${renderer}`;
71
101
  }
102
+ /** `entry/renderer#kind` — the unit a loss is named in. `#` because a renderer id may contain `:`. */
103
+ export function formatCaptureBaselineEvidenceIdentity(identity, kind) {
104
+ return `${identity}#${kind}`;
105
+ }
72
106
  /**
73
107
  * True when the diff records something the operator must accept or repair — in EITHER direction.
74
108
  *
@@ -82,14 +116,30 @@ export function formatCaptureBaselineCoverageIdentity(entry, renderer) {
82
116
  export function isCaptureBaselineCoverageFailure(diff) {
83
117
  return diff.gained.length > 0 || diff.lost.length > 0 || diff.absent.length > 0;
84
118
  }
119
+ /** Every `target#kind` a manifest pins for one subject, sorted. */
120
+ export function listCaptureBaselineEvidence(manifest, subject) {
121
+ const targets = manifest.subjects[subject] ?? {};
122
+ return Object.entries(targets)
123
+ .flatMap(([identity, kinds]) => kinds.map((kind) => formatCaptureBaselineEvidenceIdentity(identity, kind)))
124
+ .sort();
125
+ }
85
126
  /** The committed pin, or an empty manifest when none exists yet. A missing file is not an error. */
86
127
  export function readCaptureBaselineCoverageManifest(root) {
87
128
  const path = captureBaselineCoverageManifestPath(root);
88
129
  if (!existsSync(path))
89
130
  return createCaptureBaselineCoverageManifest({});
90
131
  const parsed = JSON.parse(readFileSync(path, 'utf8'));
91
- const subjects = parsed.subjects;
92
- return createCaptureBaselineCoverageManifest(subjects ?? {});
132
+ const subjects = parsed.subjects ?? {};
133
+ const migrated = {};
134
+ for (const [subject, value] of Object.entries(subjects)) {
135
+ // Schema 1 pinned a bare identity list, and every identity in it meant "has a comparable fingerprint"
136
+ // because that was the only evidence kind the manifest knew about. Read it as exactly that claim
137
+ // rather than as a target with all three, which would manufacture pins nobody ever accepted.
138
+ migrated[subject] = Array.isArray(value)
139
+ ? Object.fromEntries(value.map((identity) => [identity, ['fingerprint']]))
140
+ : value;
141
+ }
142
+ return createCaptureBaselineCoverageManifest(migrated);
93
143
  }
94
144
  /**
95
145
  * Rewrites ONE subject's pin, preserving every other subject — an update run covers the subject it ran and
@@ -102,19 +152,26 @@ export function readCaptureBaselineCoverageManifest(root) {
102
152
  * determined that identity to be uncovered. Everything else is carried forward. One flaky target therefore
103
153
  * cannot quietly retire a pin, and cannot block the whole acceptance either.
104
154
  */
105
- export function writeCaptureBaselineCoverageManifest(root, subject, identities, activeRenderers = null, determined = null) {
155
+ export function writeCaptureBaselineCoverageManifest(root, subject, covered, activeRenderers = null, determined = null, observedKinds = null) {
106
156
  const existing = readCaptureBaselineCoverageManifest(root);
107
157
  const determinedSet = determined === null ? null : new Set(determined);
108
- const carried = (existing.subjects[subject] ?? []).filter((identity) => {
158
+ const previous = existing.subjects[subject] ?? {};
159
+ const merged = {};
160
+ for (const [identity, kinds] of Object.entries(previous)) {
109
161
  const renderer = identity.slice(identity.lastIndexOf('/') + 1);
110
- if (activeRenderers !== null && !activeRenderers.includes(renderer))
111
- return true;
112
- return determinedSet !== null && !determinedSet.has(identity);
113
- });
114
- const manifest = createCaptureBaselineCoverageManifest({
115
- ...existing.subjects,
116
- [subject]: [...new Set([...carried, ...identities])],
117
- });
162
+ const rendererOutOfScope = activeRenderers !== null && !activeRenderers.includes(renderer);
163
+ const notDetermined = determinedSet !== null && !determinedSet.has(identity);
164
+ // Carry forward every kind this run could not speak for: a renderer it did not run, a target it
165
+ // never settled, or an evidence kind it never observed. A run retires only what it positively
166
+ // determined to be gone, on all three axes.
167
+ const carried = kinds.filter((kind) => rendererOutOfScope || notDetermined || (observedKinds !== null && !observedKinds.includes(kind)));
168
+ if (carried.length > 0)
169
+ merged[identity] = carried;
170
+ }
171
+ for (const [identity, kinds] of Object.entries(covered)) {
172
+ merged[identity] = [...new Set([...(merged[identity] ?? []), ...kinds])];
173
+ }
174
+ const manifest = createCaptureBaselineCoverageManifest({ ...existing.subjects, [subject]: merged });
118
175
  writeFileSync(captureBaselineCoverageManifestPath(root), `${JSON.stringify(manifest, null, 2)}\n`);
119
176
  return manifest;
120
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"captureBaselineCoverageManifest.js","sourceRoot":"","sources":["../src/captureBaselineCoverageManifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"captureBaselineCoverageManifest.js","sourceRoot":"","sources":["../src/captureBaselineCoverageManifest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"captureValidation.d.ts","sourceRoot":"","sources":["../src/captureValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"captureValidation.d.ts","sourceRoot":"","sources":["../src/captureValidation.ts"],"names":[],"mappings":"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"}
@@ -903,10 +903,14 @@ export async function runCaptureValidation(input) {
903
903
  // identity that ran and no longer has a baseline is named individually, instead of being absorbed into
904
904
  // an "uncovered" count that still satisfies the floor as long as one other target compared.
905
905
  const coverageDiff = options.gateRegression && !options.updateCoverage
906
- ? diffCaptureBaselineCoverage(readCaptureBaselineCoverageManifest(options.root), options.subject, [...new Set(coveredIdentities)], [...new Set(visitedIdentities)], {
906
+ ? diffCaptureBaselineCoverage(readCaptureBaselineCoverageManifest(options.root), options.subject, Object.fromEntries([...new Set(coveredIdentities)].map((identity) => [identity, ['fingerprint']])), [...new Set(visitedIdentities)], {
907
907
  entryFiltered,
908
908
  activeRenderers: options.rendererFilter.length > 0 ? [...options.rendererFilter] : null,
909
909
  undetermined: [...new Set(undeterminedIdentities)],
910
+ // Validation observes the FINGERPRINT column and nothing else. Without this the screenshot
911
+ // and oracle pins would read as lost on every validate run — absence of observation reported
912
+ // as absence of evidence, which is the defect this manifest exists to prevent.
913
+ kinds: ['fingerprint'],
910
914
  })
911
915
  : { gained: [], lost: [], absent: [] };
912
916
  const coverageFailed = isCaptureBaselineCoverageFailure(coverageDiff);
@@ -924,7 +928,7 @@ export async function runCaptureValidation(input) {
924
928
  return createResult(true);
925
929
  }
926
930
  const identities = [...new Set(coveredIdentities)];
927
- writeCaptureBaselineCoverageManifest(options.root, options.subject, identities, options.rendererFilter.length > 0 ? [...options.rendererFilter] : null, [...new Set(visitedIdentities)]);
931
+ writeCaptureBaselineCoverageManifest(options.root, options.subject, Object.fromEntries(identities.map((identity) => [identity, ['fingerprint']])), options.rendererFilter.length > 0 ? [...options.rendererFilter] : null, [...new Set(visitedIdentities)], ['fingerprint']);
928
932
  if (!options.quiet)
929
933
  console.log(`\ncapture baseline coverage manifest updated — ${identities.length} identit${identities.length === 1 ? 'y' : 'ies'} pinned for ${options.subject}`);
930
934
  }
@@ -1 +1 @@
1
- {"version":3,"file":"captureValidation.js","sourceRoot":"","sources":["../src/captureValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"captureValidation.js","sourceRoot":"","sources":["../src/captureValidation.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,6EAA6E;AAC7E,oGAAoG;AACpG,8DAA8D;AAC9D,EAAE;AACF,iGAAiG;AACjG,wGAAwG;AACxG,oGAAoG;AACpG,qGAAqG;AACrG,oGAAoG;AACpG,EAAE;AACF,kGAAkG;AAClG,sGAAsG;AACtG,qGAAqG;AACrG,oFAAoF;AACpF,4EAA4E;AAC5E,EAAE;AACF,uGAAuG;AACvG,wGAAwG;AACxG,sBAAsB;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACL,2BAA2B,EAC3B,qCAAqC,EACrC,gCAAgC,EAChC,mCAAmC,EACnC,oCAAoC,GACrC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEvG,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAE5G,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAkI1D,SAAS,cAAc,CAAC,KAAa,EAAE,QAAgB;IACrD,OAAO,GAAG,KAAK,KAAK,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAsB,EACtB,cAAiC,EACjC,YAAoE;IAEpE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/F,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;QACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,qBAAqB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACjH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,CAAS;IACpC,MAAM,UAAU,GAAG,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,SAAS,OAAO,CACd,KAAsF,EACtF,YAAyC,EACzC,CAAS,EACT,CAAS,EACT,KAAa,EACb,SAAiB;IAEjB,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;IAClE,IAAI,IAAI,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACjH,CAAC;AAED,qGAAqG;AACrG,uGAAuG;AACvG,gGAAgG;AAChG,MAAM,UAAU,6BAA6B,CAC3C,aAAqB,EACrB,SAAkB,EAClB,wBAA2C,EAAE;IAE7C,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS;YACd,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,2FAA2F,CAAC;IAClG,CAAC;IACD,kGAAkG;IAClG,mGAAmG;IACnG,qGAAqG;IACrG,oFAAoF;IACpF,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,uCAAuC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,uHAAuH,CAAC;IACxM,CAAC;IACD,IAAI,aAAa,KAAK,CAAC;QAAE,OAAO,mEAAmE,CAAC;IACpG,OAAO,kDAAkD,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAuB,EACvB,OAAe,EACf,KAAsB,EACtB,QAAgB,EAChB,OAAe;IAEf,oGAAoG;IACpG,mGAAmG;IACnG,gGAAgG;IAChG,oGAAoG;IACpG,8FAA8F;IAC9F,sEAAsE;IACtE,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,IAAI,GAAgB,IAAI,CAAC;IAC7B,IAAI,CAAC;QACH,oGAAoG;QACpG,uEAAuE;QACvE,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,OAAO;gBAAE,SAAS,KAAK,2BAA2B,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QACH,gCAAgC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,EAAE;YACrC,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,mBAAmB,EAAE;SAC/B,CAAC,CAAC;QACH,kGAAkG;QAClG,oGAAoG;QACpG,sGAAsG;QACtG,oGAAoG;QACpG,sGAAsG;QACtG,0FAA0F;QAC1F,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACxC,MAAM,yBAAyB,GAAG,MAAM,IAAI;aACzC,eAAe,CACd,GAAG,EAAE;YACH,MAAM,CAAC,GAAG,MAGT,CAAC;YACF,MAAM,YAAY,GAAG,CAAC,CAAC,gBAAgB,CAAC;YACxC,OAAO,CACL,YAAY,EAAE,KAAK,KAAK,QAAQ;gBAChC,YAAY,EAAE,KAAK,KAAK,QAAQ;gBAChC,CAAC,YAAY,EAAE,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,CAAC,0BAA0B,KAAK,UAAU,CAAC;gBACtF,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,CAC7C,CAAC;QACJ,CAAC,EACD,IAAI,EACJ,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CACjD;aACA,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,yBAAyB,IAAI,CAAC,MAAM,6BAA6B,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI;iBACP,eAAe,CACd,GAAG,EAAE;gBACH,MAAM,YAAY,GAAI,MAAyD,CAAC,gBAAgB,CAAC;gBACjG,OAAO,CACL,YAAY,EAAE,KAAK,KAAK,QAAQ;oBAChC,YAAY,EAAE,KAAK,KAAK,QAAQ;oBAChC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,CAC7C,CAAC;YACJ,CAAC,EACD,IAAI,EACJ,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CACjD;iBACA,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,MAAM,IAAI;aAC5B,QAAQ,CAAC,GAAG,EAAE,CAAE,MAAyD,CAAC,gBAAgB,IAAI,IAAI,CAAC;aACnG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,YAAY,EAAE,eAAe,KAAK,SAAS,IAAI,YAAY,CAAC,eAAe,KAAK,wBAAwB,EAAE,CAAC;YAC7G,OAAO;gBACL,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,oBAAoB,YAAY,CAAC,eAAe,yBAAyB,wBAAwB,EAAE;gBAC3G,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,EAAE,KAAK,KAAK,QAAQ,IAAI,YAAY,CAAC,WAAW;YAC9D,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACnG,IAAI,YAAY,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACzF,CAAC;QACH,CAAC;QACD,uGAAuG;QACvG,gGAAgG;QAChG,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAG,YAAY,EAAE,KAAK,IAAI,aAAa,IAAI,SAAS,IAAI,OAAO,CAAC;QAC5E,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;YAClC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,wBAAwB,MAAM,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7G,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,MAAM,IAAI,+BAA+B,CAAC,YAAY,EAAE,QAAQ,CAAC;YACzE,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qGAAqG;QACrG,IAAI,oBAAoB,CAAC,GAAG,CAAC;YAC3B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzF,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACxD,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAU;IAC7C,MAAM,MAAM,GAAG,MAAM,IAAI;SACtB,cAAc,CAAC,GAAG,EAAE,CAClB,MAA2F,CAAC,UAAU,EAAE,IAAI;QAC7G,KAAK;QACH,CAAC,CAAE,MAAyE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO;QACrG,CAAC,CAAC,IAAI,CACT;SACA,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC;IACpC,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,yBAAyB,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;YACnB,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC;YAClC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;YACpC,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/E,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAC5E,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,kBAAkB,CAAC;YAC/B,IAAI,WAAW,GAAG,GAAG,QAAQ,GAAG,CAAC;YACjC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;gBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC;gBACvD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;gBAC/E,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;oBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;oBACtD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;oBAC9E,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACvB,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAClD,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;4BACjD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;4BAC1C,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAE,CAAC;4BAC3B,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;4BAC/B,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;4BAC/B,KAAK,EAAE,CAAC;wBACV,CAAC;oBACH,CAAC;oBACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;wBACvB,MAAM,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;wBACxD,WAAW,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAE,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAE,CAAC;oBAC9D,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,uGAAuG;AACvG,uFAAuF;AACvF,EAAE;AACF,qGAAqG;AACrG,uGAAuG;AACvG,sGAAsG;AACtG,uGAAuG;AACvG,mGAAmG;AACnG,8DAA8D;AAC9D,EAAE;AACF,qGAAqG;AACrG,oGAAoG;AACpG,uGAAuG;AACvG,MAAM,UAAU,+BAA+B,CAC7C,YAA8E,EAC9E,QAAgB;IAEhB,MAAM,MAAM,GAAG,UAAU,QAAQ,SAAS,mBAAmB,EAAE,IAAI,CAAC;IACpE,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,gEAAgE,MAAM,2CAA2C,CAAC;IAC3H,CAAC;IACD,IAAI,YAAY,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,iDAAiD,MAAM,wCAAwC,CAAC;IACzG,CAAC;IACD,IAAI,YAAY,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,gDAAgD,MAAM,iCAAiC,CAAC;IACjG,CAAC;IACD,mGAAmG;IACnG,uGAAuG;IACvG,0GAA0G;IAC1G,kBAAkB;IAClB,MAAM,KAAK,GAAI,YAAmC,CAAC,KAAK,CAAC;IACzD,MAAM,KAAK,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,GAAG,CAAC;IAChE,OAAO,kCAAkC,KAAK,cAAc,YAAY,CAAC,KAAK,MAAM,MAAM,kDAAkD,CAAC;AAC/I,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAA8G,EAC9G,KAAK,GAAG,EAAE;IAEV,MAAM,QAAQ,GAAG,MAAM;SACpB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC;SAChF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC,CAAC;SACrG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAE,CAAC,QAAQ,CAAC;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3G,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC/C,OAAO;QACL,8BAA8B,QAAQ,CAAC,MAAM,qBAAqB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACvF,GAAG,KAAK;QACR,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAAoC;IACjF,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,GAAG,CAAC,mBAAmB,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,4FAA4F;AAC5F,mGAAmG;AACnG,oGAAoG;AACpG,EAAE;AACF,kGAAkG;AAClG,oGAAoG;AACpG,kGAAkG;AAClG,kFAAkF;AAClF,MAAM,UAAU,kCAAkC,CAAC,GAAwC;IACzF,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IACzD,OAAO,GAAG,CAAC,qBAAqB,KAAK,CAAC,IAAI,GAAG,CAAC,mBAAmB,GAAG,CAAC,CAAC;AACxE,CAAC;AAsBD,KAAK,UAAU,YAAY,CACzB,KAAsB,EACtB,UAAkB,EAClB,YAAoB,EACpB,SAAwB,EACxB,OAAmD,EACnD,OAAqC;IAErC,MAAM,MAAM,GAAgB;QAC1B,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAAE;QACX,kBAAkB,EAAE,CAAC;QACrB,mBAAmB,EAAE,CAAC;QACtB,cAAc,EAAE,CAAC;QACjB,eAAe,EAAE,CAAC;QAClB,gBAAgB,EAAE,CAAC;QACnB,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE9F,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAE3F,wGAAwG;IACxG,+FAA+F;IAC/F,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,sDAAsD,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAC5H,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,wCAAwC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;SACxF,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAE,KAAa,EAAE,OAAe,EAAU,EAAE,CAC9E,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,OAAe,EAAE,KAA4B,EAAU,EAAE,CACzG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAE7D,IAAI,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,YAAY,CAAC,IAAI,CACtB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,qCAAqC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAC5F,CAAC;QACF,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,SAAS;YACT,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,yBAAyB;SACnC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,SAAS,EAAE;YAAE,MAAM;QACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,QAAQ;YACpB,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;YAC3E,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC;QAC7D,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM;QAC/B,IAAI,KAAK,CAAC,OAAO;YAAE,MAAM;QACzB,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC9E,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,KAAK,CAAC,MAAM;iBACtB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC/D,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,KAAK,CAAC,MAAM;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,oGAAoG;YACpG,mGAAmG;YACnG,iGAAiG;YACjG,qDAAqD;YACrD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtF,SAAS;QACX,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACtC,mGAAmG;QACnG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEjF,+FAA+F;QAC/F,wFAAwF;QACxF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEtF,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;YACzE,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM;YAChC,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM;YAC1B,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3F,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBACrE,MAAM,IAAI,GAAG,mDAAmD,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;gBACrG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,IAAI;oBACb,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;iBAClG,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,oGAAoG;YACpG,qGAAqG;YACrG,iGAAiG;YACjG,gGAAgG;YAChG,oGAAoG;YACpG,gCAAgC;YAChC,IAAI,2BAA2B,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,GACR,oGAAoG,CAAC;gBACvG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,IAAI,EAAE,UAAU;oBAChB,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,kGAAkG;YAClG,0FAA0F;YAC1F,8FAA8F;YAC9F,8FAA8F;YAC9F,8FAA8F;YAC9F,MAAM,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YACzE,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YAC9G,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC7F,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;YAClG,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;YACrE,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,kBAAkB;aAC5B,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjF,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACvG,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,mCAAmC,CAAC,CAAC,CAAC;YACvF,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,yBAAyB;aACnC,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,kGAAkG;QAClG,+FAA+F;QAC/F,qFAAqF;QACrF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC9C,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACpC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,iCAAiC,CAAC,CAAC,CAAC;YACpF,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,iCAAiC;aAC3C,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAChH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,uBAAuB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACjD,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,OAAO,CAAC,mBAAmB;aACvC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,yBAAyB,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAC7F,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChB,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAC/G,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACpG,MAAM,SAAS,GAAG,gCAAgC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;gBAC1F,MAAM,OAAO,GAAG,cAAc,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,mBAAmB,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;gBACxG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC1D,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,QAAQ;oBAChB,OAAO;oBACP,QAAQ,EAAE,IAAI;oBACd,SAAS,EAAE,OAAO,CAAC,mBAAmB;oBACtC,gBAAgB,EAAE,SAAS,CAAC,MAAM;oBAClC,kBAAkB;oBAClB,iBAAiB;iBAClB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAC/F,CAAC;gBACF,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,QAAQ,CAAC;oBACrB,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,cAAc,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,mBAAmB,EAAE;oBACzE,QAAQ,EAAE,IAAI;oBACd,SAAS,EAAE,OAAO,CAAC,mBAAmB;iBACvC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,SAAS,EAAE;QAAE,OAAO,MAAM,CAAC;IAE/B,+FAA+F;IAC/F,YAAY;IACZ,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAW,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3F,MAAM,KAAK,GAA+E,EAAE,CAAC;IAC7F,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,uGAAuG;IACvG,qGAAqG;IACrG,MAAM,qBAAqB,GAAa,EAAE,CAAC;IAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChG,iGAAiG;YACjG,gGAAgG;YAChG,gGAAgG;YAChG,0FAA0F;YAC1F,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,4FAA4F;gBAC5F,wFAAwF;gBACxF,8FAA8F;gBAC9F,iCAAiC;gBACjC,EAAE;gBACF,6FAA6F;gBAC7F,gGAAgG;gBAChG,qFAAqF;gBACrF,0FAA0F;gBAC1F,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC/D,qBAAqB,CAAC,IAAI,CAAC,GAAG,SAAS,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;oBAChE,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;oBACvC,6FAA6F;oBAC7F,6FAA6F;oBAC7F,2FAA2F;oBAC3F,oFAAoF;oBACpF,MAAM,KAAK,GAAG,GAAG,SAAS,mBAAmB,KAAK,CAAC,SAAS,UAAU,CAAC;oBACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC5C,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;wBACxG,CAAC;oBACH,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;oBAC/B,IAAI,QAAQ,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;wBACjC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;oBAC7G,CAAC;gBACH,CAAC;gBACD,SAAS;YACX,CAAC;YACD,mGAAmG;YACnG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC5G,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,qGAAqG;IACrG,wGAAwG;IACxG,uGAAuG;IACvG,wFAAwF;IACxF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/F,MAAM,CAAC,eAAe,EAAE,CAAC;QACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACjB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,SAAS,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,6BAA6B,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,qBAAqB,CAAC;SAChG,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAChF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC3B,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,UAAU,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBAChE,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,MAAM,QAAQ,GAAG,KAAK;iBACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;gBACzF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBAChB,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM,CAAC,cAAc,EAAE,CAAC;oBACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;wBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;wBACjB,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,QAAQ;wBAChB,OAAO,EAAE,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;wBAClE,QAAQ,EAAE,CAAC,CAAC,IAAI;wBAChB,SAAS,EAAE,CAAC,CAAC,SAAS;qBACvB,CAAC,CAAC;oBACH,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACrB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,QAAQ;oBAChB,OAAO,EAAE,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;oBAClE,QAAQ,EAAE,CAAC,CAAC,IAAI;oBAChB,SAAS,EAAE,CAAC,CAAC,SAAS;iBACvB,CAAC,CAAC;gBACH,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YAC5C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACjF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oGAAoG;AACpG,qGAAqG;AACrG,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,SAAS,gCAAgC,CACvC,kBAAiC,EACjC,iBAAgC;IAEhC,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO;YACL,OAAO,EAAE,2EAA2E;YACpF,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;IACD,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE,6EAA6E;YACtF,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;IACD,IAAI,kBAAkB,KAAK,iBAAiB,EAAE,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE,yEAAyE;YAClF,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO,EAAE,6EAA6E;QACtF,MAAM,EAAE,WAAW;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAyC;IAEzC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;QAC1B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAO,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClG,sGAAsG;IACtG,0FAA0F;IAC1F,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC;IACxE,MAAM,OAAO,GAAqC;QAChD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1C,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,EAAE;QAC1C,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;QACpD,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK;QAC7B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK;QAC3B,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,KAAK;QACrD,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,KAAK;QAC7C,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,IAAI;QAC5C,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;QACpC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,CAAC;QAC7C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,IAAI,4BAA4B;QAC9E,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,wBAAwB;QAClE,eAAe,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;QACrD,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;QAClC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;QACtC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;QACtC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,IAAI,EAAE;KACzD,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC;IACvD,MAAM,QAAQ,GACZ,KAAK,CAAC,cAAc;QACpB,CAAC,MAAM,aAAa,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACtF,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IACtC,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IAExC,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,MAAM,GAA6B,EAAE,CAAC;IAC5C,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,MAAM,sBAAsB,GAAa,EAAE,CAAC;IAE5C,IAAI,CAAC;QACH,iGAAiG;QACjG,yFAAyF;QACzF,gEAAgE;QAChE,MAAM,OAAO,GAAuB,IAAI,GAAG,EAAE,CAAC;QAC9C,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAChD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,YAAY,CAAC;iBACrE,MAAM,CACL,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,SAAS,CACvG;iBACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAChD,CAAC;QACF,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU;YAC7C,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1E,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,KAAK,IAAI,EAAE;YACxD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;gBACpB,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;gBACpC,IAAI,GAAG,KAAK,SAAS;oBAAE,OAAO;gBAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACzG,IAAI,MAAmC,CAAC;gBACxC,IAAI,OAAO,CAAC,kBAAkB,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBACzG,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACtG,CAAC;qBAAM,IAAI,OAAO,CAAC,kBAAkB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAChE,MAAM,GAAG,KAAK,CAAC;gBACjB,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACjF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,IAAI,EAAE;gBAC/D,OAAO,IAAI,EAAE,CAAC;oBACZ,IAAI,SAAS,EAAE;wBAAE,MAAM;oBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,GAAG;wBAAE,MAAM;oBAChB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBACrG,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC;oBAChD,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;oBACxC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC;oBAC1C,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,CAAC;oBAClD,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC;oBAC5C,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;oBACpC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;oBACpC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;oBAC1B,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC9B,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC1C,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC1C,sBAAsB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;oBACpD,sBAAsB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;oBACpD,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC1C,iBAAiB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;oBAC1C,IAAI,CAAC,OAAO,CAAC,KAAK;wBAAE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM;4BAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;gBACnE,IAAI,SAAS,EAAE;oBAAE,MAAM;gBACvB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAChH,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC;gBAChD,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC;gBACxC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC;gBAC1C,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,CAAC;gBAClD,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC;gBAC5C,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;gBACpC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;gBACpC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;gBAC1B,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK;oBAAE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM;wBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,WAAW;YAAE,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvD,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5E,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,KAAK;YAChB,OAAO,CAAC,GAAG,CACT,IAAI;gBACF,iBAAiB,CAAC,YAAY,GAAG,CAAC,EAAE;oBAClC,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC;oBACxD,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;oBAC9C,kBAAkB,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC;iBAC1D,CAAC;gBACF,IAAI,CACP,CAAC;QACJ,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,YAAY,4DAA4D,CAAC,CAAC,CAAC;YACnG,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,KAAK;YAChB,OAAO,CAAC,GAAG,CACT,IAAI;gBACF,iBAAiB,CAAC,YAAY,GAAG,CAAC,EAAE;oBAClC,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;oBAC9C,kBAAkB,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC;iBAC1D,CAAC;gBACF,EAAE,CAAC,GAAG,CAAC,kCAAkC,CAAC;gBAC1C,IAAI,CACP,CAAC;QACJ,OAAO,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,sGAAsG;IACtG,iGAAiG;IACjG,MAAM,wBAAwB,GAAG,kCAAkC,CAAC;QAClE,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,WAAW;QACX,qBAAqB,EAAE,gBAAgB,GAAG,kBAAkB;QAC5D,mBAAmB;KACpB,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,8BAA8B,CAAC;QAC1D,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW;QACX,iBAAiB,EAAE,YAAY,GAAG,cAAc;QAChD,eAAe;QACf,mBAAmB,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM;KACnD,CAAC,CAAC;IACH,gGAAgG;IAChG,uGAAuG;IACvG,4FAA4F;IAC5F,MAAM,YAAY,GAChB,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc;QAC/C,CAAC,CAAC,2BAA2B,CACzB,mCAAmC,CAAC,OAAO,CAAC,IAAI,CAAC,EACjD,OAAO,CAAC,OAAO,EACf,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,aAAsB,CAAC,CAAC,CAAC,CAAC,EAC3G,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAC/B;YACE,aAAa;YACb,eAAe,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;YACvF,YAAY,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAClD,2FAA2F;YAC3F,6FAA6F;YAC7F,+EAA+E;YAC/E,KAAK,EAAE,CAAC,aAAa,CAAC;SACvB,CACF;QACH,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC3C,MAAM,cAAc,GAAG,gCAAgC,CAAC,YAAY,CAAC,CAAC;IACtE,qGAAqG;IACrG,wGAAwG;IACxG,wGAAwG;IACxG,kGAAkG;IAClG,sGAAsG;IACtG,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,oGAAoG;QACpG,qGAAqG;QACrG,iGAAiG;QACjG,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC,CAAC;YAC9G,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,oCAAoC,CAClC,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,OAAO,EACf,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,aAAsB,CAAC,CAAC,CAAC,CAAC,EACtF,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EACtE,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAC/B,CAAC,aAAa,CAAC,CAChB,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,KAAK;YAChB,OAAO,CAAC,GAAG,CACT,kDAAkD,UAAU,CAAC,MAAM,WAAW,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,eAAe,OAAO,CAAC,OAAO,EAAE,CACpJ,CAAC;IACN,CAAC;IACD,MAAM,MAAM,GACV,cAAc;QACd,kBAAkB,GAAG,CAAC;QACtB,cAAc,GAAG,CAAC;QAClB,YAAY,GAAG,CAAC;QAChB,oBAAoB;QACpB,wBAAwB,CAAC;IAC3B,IAAI,CAAC,OAAO,CAAC,KAAK;QAChB,OAAO,CAAC,GAAG,CACT,IAAI;YACF,iBAAiB,CAAC,MAAM,EAAE;gBACxB,kBAAkB,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,CAAC;gBACjE,kBAAkB,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,CAAC;gBACnE,kBAAkB,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC;gBACzD,kBAAkB,CAAC,cAAc,EAAE,eAAe,EAAE,MAAM,CAAC;gBAC3D,kBAAkB,CAAC,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC/F,kBAAkB,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC3G,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;gBAC9C,kBAAkB,CAAC,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC;aAC1D,CAAC;YACF,IAAI,CACP,CAAC;IACJ,kGAAkG;IAClG,kGAAkG;IAClG,iGAAiG;IACjG,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE7D,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,QAAQ,yCAAyC,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,QAAQ,uCAAuC,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,QAAQ,mCAAmC,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CACX,EAAE,CAAC,GAAG,CACJ,qPAAqP,CACtP,CACF,CAAC;IACJ,CAAC;IAED,wGAAwG;IACxG,yDAAyD;IACzD,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI;QAC3C,CAAC,QAAQ,EAAE,eAAe,EAAE,oBAAoB,CAAC;QACjD,CAAC,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;KACrD,EAAE,CAAC;QACX,IAAI,SAAS,KAAK,CAAC;YAAE,SAAS;QAC9B,MAAM,KAAK,GAAG;YACZ,GAAG,IAAI,GAAG,CACR,MAAM;iBACH,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;iBAC5G,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAC/B;SACF,CAAC;QACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,KAAK,KAAK,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,IAAI,wBAAwB,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CACX,EAAE,CAAC,GAAG,CACJ,wCAAwC,mBAAmB,QAAQ,mBAAmB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,sKAAsK,CACjR,CACF,CAAC;IACJ,CAAC;IACD,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CACX,EAAE,CAAC,GAAG,CACJ,wCAAwC,eAAe,QAAQ,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,yCAAyC,CAC5I,CACF,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,IAAI,GAAG,CAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAC9G,EAAE,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAE5B,SAAS,YAAY,CAAC,UAAmB;QACvC,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,KAAK,KAAK;YACxB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,OAAO,CACL,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,EAChC,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACnG,CAAC;QACR,MAAM,MAAM,GAA4B;YACtC,OAAO,EAAE,WAAW;YACpB,YAAY;YACZ,cAAc;YACd,YAAY;YACZ,eAAe;YACf,kBAAkB;YAClB,mBAAmB;YACnB,gBAAgB;YAChB,UAAU;YACV,OAAO;YACP,OAAO;YACP,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG;YACnE,UAAU;YACV,MAAM;SACP,CAAC;QACF,IAAI,UAAU,KAAK,IAAI;YAAE,kBAAkB,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/tool-capture",
3
- "version": "0.3.1-next.970.9691e7b",
3
+ "version": "0.3.1-next.975.01aea94",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -42,10 +42,10 @@
42
42
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
43
43
  },
44
44
  "dependencies": {
45
- "@flighthq/capture": "0.3.1-next.970.9691e7b",
46
- "@flighthq/render-wgpu": "0.3.1-next.970.9691e7b",
47
- "@flighthq/bitmap": "0.3.1-next.970.9691e7b",
48
- "@flighthq/types": "0.3.1-next.970.9691e7b",
45
+ "@flighthq/capture": "0.3.1-next.975.01aea94",
46
+ "@flighthq/render-wgpu": "0.3.1-next.975.01aea94",
47
+ "@flighthq/bitmap": "0.3.1-next.975.01aea94",
48
+ "@flighthq/types": "0.3.1-next.975.01aea94",
49
49
  "@playwright/test": "^1.50.0",
50
50
  "picocolors": "^1.1.1"
51
51
  },
@@ -1,9 +1,12 @@
1
- import { mkdirSync, mkdtempSync, readFileSync } from 'node:fs';
1
+ import { mkdirSync, mkdtempSync, readFileSync, writeFileSync } from 'node:fs';
2
2
  import { tmpdir } from 'node:os';
3
3
  import { join } from 'node:path';
4
4
 
5
5
  import {
6
6
  CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION,
7
+ CAPTURE_BASELINE_EVIDENCE_KINDS,
8
+ formatCaptureBaselineEvidenceIdentity,
9
+ listCaptureBaselineEvidence,
7
10
  captureBaselineCoverageManifestPath,
8
11
  createCaptureBaselineCoverageManifest,
9
12
  diffCaptureBaselineCoverage,
@@ -13,10 +16,19 @@ import {
13
16
  writeCaptureBaselineCoverageManifest,
14
17
  } from './captureBaselineCoverageManifest';
15
18
 
19
+ const ALL = ['fingerprint', 'oracle', 'screenshot'] as const;
16
20
  const manifest = createCaptureBaselineCoverageManifest({
17
- functional: ['svg-image/webgl', 'svg-image/canvas', 'node-alpha/canvas'],
18
- examples: ['text/canvas'],
21
+ functional: {
22
+ 'svg-image/webgl': ALL,
23
+ 'svg-image/canvas': ALL,
24
+ 'node-alpha/canvas': ALL,
25
+ },
26
+ examples: { 'text/canvas': ALL },
19
27
  });
28
+ const everything = (
29
+ identities: readonly string[],
30
+ ): Record<string, readonly ('fingerprint' | 'oracle' | 'screenshot')[]> =>
31
+ Object.fromEntries(identities.map((identity) => [identity, ALL]));
20
32
 
21
33
  describe('CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION', () => {
22
34
  it('is the schema the manifest is written with', () => {
@@ -24,6 +36,12 @@ describe('CAPTURE_BASELINE_COVERAGE_MANIFEST_VERSION', () => {
24
36
  });
25
37
  });
26
38
 
39
+ describe('CAPTURE_BASELINE_EVIDENCE_KINDS', () => {
40
+ it('is the three evidence kinds, sorted', () => {
41
+ expect(CAPTURE_BASELINE_EVIDENCE_KINDS).toEqual(['fingerprint', 'oracle', 'screenshot']);
42
+ });
43
+ });
44
+
27
45
  describe('captureBaselineCoverageManifestPath', () => {
28
46
  it('pins the manifest beside the reachability baseline', () => {
29
47
  expect(captureBaselineCoverageManifestPath('/repo')).toBe('/repo/scripts/capture-baseline-coverage-manifest.json');
@@ -32,11 +50,15 @@ describe('captureBaselineCoverageManifestPath', () => {
32
50
 
33
51
  describe('createCaptureBaselineCoverageManifest', () => {
34
52
  it('sorts identities so the committed file has a stable diff', () => {
35
- expect(manifest.subjects.functional).toEqual(['node-alpha/canvas', 'svg-image/canvas', 'svg-image/webgl']);
53
+ expect(Object.keys(manifest.subjects.functional)).toEqual([
54
+ 'node-alpha/canvas',
55
+ 'svg-image/canvas',
56
+ 'svg-image/webgl',
57
+ ]);
36
58
  });
37
59
 
38
60
  it('keeps subjects separate', () => {
39
- expect(manifest.subjects.examples).toEqual(['text/canvas']);
61
+ expect(manifest.subjects.examples).toEqual({ 'text/canvas': ['fingerprint', 'oracle', 'screenshot'] });
40
62
  });
41
63
  });
42
64
 
@@ -46,7 +68,7 @@ describe('diffCaptureBaselineCoverage', () => {
46
68
  const FILTERED = { entryFiltered: true, activeRenderers: null };
47
69
 
48
70
  it('reports nothing when observed coverage matches the pin', () => {
49
- const diff = diffCaptureBaselineCoverage(manifest, 'functional', all, all, WHOLE);
71
+ const diff = diffCaptureBaselineCoverage(manifest, 'functional', everything(all), all, WHOLE);
50
72
  expect(diff).toEqual({ gained: [], lost: [], absent: [] });
51
73
  expect(isCaptureBaselineCoverageFailure(diff)).toBe(false);
52
74
  });
@@ -55,16 +77,16 @@ describe('diffCaptureBaselineCoverage', () => {
55
77
  // zero-floor is satisfied and the run stays green. Here that loss is named.
56
78
  it('NAMES a target that ran but is no longer covered', () => {
57
79
  const covered = ['svg-image/canvas', 'node-alpha/canvas'];
58
- const diff = diffCaptureBaselineCoverage(manifest, 'functional', covered, all, WHOLE);
59
- expect(diff.lost).toEqual(['svg-image/webgl']);
80
+ const diff = diffCaptureBaselineCoverage(manifest, 'functional', everything(covered), all, WHOLE);
81
+ expect(diff.lost).toEqual(['svg-image/webgl#fingerprint', 'svg-image/webgl#oracle', 'svg-image/webgl#screenshot']);
60
82
  expect(isCaptureBaselineCoverageFailure(diff)).toBe(true);
61
83
  });
62
84
 
63
85
  // The manifest is an exact set: an unaccepted gain ages the pin, so it must be accepted, not ignored.
64
86
  it('names new coverage as a gain AND fails on it', () => {
65
87
  const covered = [...all, 'svg-text/webgl'];
66
- const diff = diffCaptureBaselineCoverage(manifest, 'functional', covered, covered, WHOLE);
67
- expect(diff.gained).toEqual(['svg-text/webgl']);
88
+ const diff = diffCaptureBaselineCoverage(manifest, 'functional', everything(covered), covered, WHOLE);
89
+ expect(diff.gained).toEqual(['svg-text/webgl#fingerprint', 'svg-text/webgl#oracle', 'svg-text/webgl#screenshot']);
68
90
  expect(diff.lost).toEqual([]);
69
91
  expect(isCaptureBaselineCoverageFailure(diff)).toBe(true);
70
92
  });
@@ -73,10 +95,16 @@ describe('diffCaptureBaselineCoverage', () => {
73
95
  // check reconciles and reports clean. Only an exact set names the half that left and the half that came.
74
96
  it('catches a SAME-COUNT swap, naming both halves', () => {
75
97
  const covered = ['svg-image/canvas', 'node-alpha/canvas', 'svg-text/webgl'];
76
- const diff = diffCaptureBaselineCoverage(manifest, 'functional', covered, [...all, 'svg-text/webgl'], WHOLE);
77
- expect(covered.length).toBe(manifest.subjects.functional.length);
78
- expect(diff.lost).toEqual(['svg-image/webgl']);
79
- expect(diff.gained).toEqual(['svg-text/webgl']);
98
+ const diff = diffCaptureBaselineCoverage(
99
+ manifest,
100
+ 'functional',
101
+ everything(covered),
102
+ [...all, 'svg-text/webgl'],
103
+ WHOLE,
104
+ );
105
+ expect(covered.length).toBe(Object.keys(manifest.subjects.functional).length);
106
+ expect(diff.lost).toEqual(['svg-image/webgl#fingerprint', 'svg-image/webgl#oracle', 'svg-image/webgl#screenshot']);
107
+ expect(diff.gained).toEqual(['svg-text/webgl#fingerprint', 'svg-text/webgl#oracle', 'svg-text/webgl#screenshot']);
80
108
  expect(isCaptureBaselineCoverageFailure(diff)).toBe(true);
81
109
  });
82
110
 
@@ -85,25 +113,35 @@ describe('diffCaptureBaselineCoverage', () => {
85
113
  it('reports a vanished target as absent ONLY on a whole-repo run', () => {
86
114
  const covered = ['svg-image/canvas', 'svg-image/webgl'];
87
115
  const visited = covered;
88
- expect(diffCaptureBaselineCoverage(manifest, 'functional', covered, visited, WHOLE).absent).toEqual([
89
- 'node-alpha/canvas',
116
+ expect(diffCaptureBaselineCoverage(manifest, 'functional', everything(covered), visited, WHOLE).absent).toEqual([
117
+ 'node-alpha/canvas#fingerprint',
118
+ 'node-alpha/canvas#oracle',
119
+ 'node-alpha/canvas#screenshot',
90
120
  ]);
91
- expect(diffCaptureBaselineCoverage(manifest, 'functional', covered, visited, FILTERED).absent).toEqual([]);
121
+ expect(diffCaptureBaselineCoverage(manifest, 'functional', everything(covered), visited, FILTERED).absent).toEqual(
122
+ [],
123
+ );
92
124
  });
93
125
 
94
126
  // A scoped run must still be able to fail: it visited the target and found no baseline.
95
127
  it('still reports a loss on a scoped run for a target it actually visited', () => {
96
- const diff = diffCaptureBaselineCoverage(manifest, 'functional', [], ['svg-image/webgl'], FILTERED);
97
- expect(diff.lost).toEqual(['svg-image/webgl']);
128
+ const diff = diffCaptureBaselineCoverage(manifest, 'functional', {}, ['svg-image/webgl'], FILTERED);
129
+ expect(diff.lost).toEqual(['svg-image/webgl#fingerprint', 'svg-image/webgl#oracle', 'svg-image/webgl#screenshot']);
98
130
  expect(isCaptureBaselineCoverageFailure(diff)).toBe(true);
99
131
  });
100
132
 
101
133
  // --renderer=webgl must not report every canvas pin as vanished.
102
134
  it('narrows the absence check to the renderers the run actually ran', () => {
103
- const diff = diffCaptureBaselineCoverage(manifest, 'functional', ['svg-image/webgl'], ['svg-image/webgl'], {
104
- entryFiltered: false,
105
- activeRenderers: ['webgl'],
106
- });
135
+ const diff = diffCaptureBaselineCoverage(
136
+ manifest,
137
+ 'functional',
138
+ everything(['svg-image/webgl']),
139
+ ['svg-image/webgl'],
140
+ {
141
+ entryFiltered: false,
142
+ activeRenderers: ['webgl'],
143
+ },
144
+ );
107
145
  expect(diff.absent).toEqual([]);
108
146
  expect(diff.lost).toEqual([]);
109
147
  });
@@ -114,7 +152,7 @@ describe('diffCaptureBaselineCoverage', () => {
114
152
  const diff = diffCaptureBaselineCoverage(
115
153
  manifest,
116
154
  'functional',
117
- ['svg-image/canvas', 'node-alpha/canvas'],
155
+ everything(['svg-image/canvas', 'node-alpha/canvas']),
118
156
  ['svg-image/canvas', 'node-alpha/canvas'],
119
157
  {
120
158
  entryFiltered: false,
@@ -128,8 +166,60 @@ describe('diffCaptureBaselineCoverage', () => {
128
166
  });
129
167
 
130
168
  it('treats an unknown subject as an empty pin rather than throwing', () => {
131
- const diff = diffCaptureBaselineCoverage(manifest, 'reference', ['a/canvas'], ['a/canvas'], WHOLE);
132
- expect(diff).toEqual({ gained: ['a/canvas'], lost: [], absent: [] });
169
+ const diff = diffCaptureBaselineCoverage(manifest, 'reference', everything(['a/canvas']), ['a/canvas'], WHOLE);
170
+ expect(diff).toEqual({
171
+ gained: ['a/canvas#fingerprint', 'a/canvas#oracle', 'a/canvas#screenshot'],
172
+ lost: [],
173
+ absent: [],
174
+ });
175
+ expect(isCaptureBaselineCoverageFailure(diff)).toBe(true);
176
+ });
177
+ });
178
+
179
+ describe('evidence-kind scope', () => {
180
+ const all = ['svg-image/webgl', 'svg-image/canvas', 'node-alpha/canvas'];
181
+
182
+ // ★ The rule that makes ONE manifest over three tiers safe. A validate run observes fingerprints and
183
+ // nothing else; without this it would report every screenshot and oracle pin as lost on every run —
184
+ // absence of OBSERVATION reported as absence of EVIDENCE, which is the defect being fixed.
185
+ it('does not report a kind the run never observed', () => {
186
+ const diff = diffCaptureBaselineCoverage(
187
+ manifest,
188
+ 'functional',
189
+ Object.fromEntries(all.map((identity) => [identity, ['fingerprint'] as const])),
190
+ all,
191
+ { entryFiltered: false, activeRenderers: null, kinds: ['fingerprint'] },
192
+ );
193
+ expect(diff).toEqual({ gained: [], lost: [], absent: [] });
194
+ });
195
+
196
+ // Same run, same data, WITHOUT declaring the observed kind: the two unobserved columns read as lost.
197
+ // This is the control — it shows the guard above is load-bearing rather than decorative.
198
+ it('DOES report them when the run fails to declare what it observed', () => {
199
+ const diff = diffCaptureBaselineCoverage(
200
+ manifest,
201
+ 'functional',
202
+ Object.fromEntries(all.map((identity) => [identity, ['fingerprint'] as const])),
203
+ all,
204
+ { entryFiltered: false, activeRenderers: null },
205
+ );
206
+ expect(diff.lost).toContain('svg-image/webgl#oracle');
207
+ expect(diff.lost).toContain('svg-image/webgl#screenshot');
208
+ expect(diff.lost).not.toContain('svg-image/webgl#fingerprint');
209
+ });
210
+
211
+ // One target losing ONE of its three columns is the erosion this consolidation must still catch.
212
+ it('names the single lost column, not the whole target', () => {
213
+ const covered: Record<string, readonly ('fingerprint' | 'oracle' | 'screenshot')[]> = {
214
+ 'svg-image/webgl': ['fingerprint', 'screenshot'],
215
+ 'svg-image/canvas': ALL,
216
+ 'node-alpha/canvas': ALL,
217
+ };
218
+ const diff = diffCaptureBaselineCoverage(manifest, 'functional', covered, all, {
219
+ entryFiltered: false,
220
+ activeRenderers: null,
221
+ });
222
+ expect(diff.lost).toEqual(['svg-image/webgl#oracle']);
133
223
  expect(isCaptureBaselineCoverageFailure(diff)).toBe(true);
134
224
  });
135
225
  });
@@ -140,12 +230,36 @@ describe('formatCaptureBaselineCoverageIdentity', () => {
140
230
  });
141
231
  });
142
232
 
233
+ describe('formatCaptureBaselineEvidenceIdentity', () => {
234
+ // `#`, not `:` — a renderer id may itself contain a colon (`flight:webgl`), so a colon separator
235
+ // would make the target and the kind ambiguous to split.
236
+ it('joins target and kind with a separator no renderer id contains', () => {
237
+ expect(formatCaptureBaselineEvidenceIdentity('svg-image/flight:webgl', 'oracle')).toBe(
238
+ 'svg-image/flight:webgl#oracle',
239
+ );
240
+ });
241
+ });
242
+
143
243
  describe('isCaptureBaselineCoverageFailure', () => {
144
244
  it('is true in every direction and false only for an exact match', () => {
145
245
  expect(isCaptureBaselineCoverageFailure({ gained: [], lost: [], absent: [] })).toBe(false);
146
- expect(isCaptureBaselineCoverageFailure({ gained: ['x/canvas'], lost: [], absent: [] })).toBe(true);
147
- expect(isCaptureBaselineCoverageFailure({ gained: [], lost: ['x/canvas'], absent: [] })).toBe(true);
148
- expect(isCaptureBaselineCoverageFailure({ gained: [], lost: [], absent: ['x/canvas'] })).toBe(true);
246
+ expect(isCaptureBaselineCoverageFailure({ gained: ['x/canvas#oracle'], lost: [], absent: [] })).toBe(true);
247
+ expect(isCaptureBaselineCoverageFailure({ gained: [], lost: ['x/canvas#fingerprint'], absent: [] })).toBe(true);
248
+ expect(isCaptureBaselineCoverageFailure({ gained: [], lost: [], absent: ['x/canvas#screenshot'] })).toBe(true);
249
+ });
250
+ });
251
+
252
+ describe('listCaptureBaselineEvidence', () => {
253
+ it('flattens every pinned target into its individual evidence units', () => {
254
+ expect(listCaptureBaselineEvidence(manifest, 'examples')).toEqual([
255
+ 'text/canvas#fingerprint',
256
+ 'text/canvas#oracle',
257
+ 'text/canvas#screenshot',
258
+ ]);
259
+ });
260
+
261
+ it('is empty for a subject the manifest does not pin', () => {
262
+ expect(listCaptureBaselineEvidence(manifest, 'reference')).toEqual([]);
149
263
  });
150
264
  });
151
265
 
@@ -158,8 +272,25 @@ describe('readCaptureBaselineCoverageManifest', () => {
158
272
  it('round-trips what was written', () => {
159
273
  const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
160
274
  mkdirSync(join(root, 'scripts'));
161
- writeCaptureBaselineCoverageManifest(root, 'functional', ['b/canvas', 'a/webgl']);
162
- expect(readCaptureBaselineCoverageManifest(root).subjects.functional).toEqual(['a/webgl', 'b/canvas']);
275
+ writeCaptureBaselineCoverageManifest(root, 'functional', everything(['b/canvas', 'a/webgl']));
276
+ expect(Object.keys(readCaptureBaselineCoverageManifest(root).subjects.functional)).toEqual(['a/webgl', 'b/canvas']);
277
+ });
278
+ });
279
+
280
+ describe('schema 1 migration', () => {
281
+ // Schema 1 knew only fingerprints, so a bare identity list means fingerprint-only. Reading it as all
282
+ // three would manufacture screenshot and oracle pins nobody ever accepted, and the next run would
283
+ // report them as losses.
284
+ it('reads a v1 identity list as fingerprint evidence only', () => {
285
+ const root = mkdtempSync(join(tmpdir(), 'flight-coverage-v1-'));
286
+ mkdirSync(join(root, 'scripts'));
287
+ writeFileSync(
288
+ join(root, 'scripts', 'capture-baseline-coverage-manifest.json'),
289
+ JSON.stringify({ schemaVersion: 1, subjects: { functional: ['a/webgl', 'b/canvas'] } }),
290
+ );
291
+ const read = readCaptureBaselineCoverageManifest(root);
292
+ expect(read.schemaVersion).toBe(2);
293
+ expect(read.subjects.functional).toEqual({ 'a/webgl': ['fingerprint'], 'b/canvas': ['fingerprint'] });
163
294
  });
164
295
  });
165
296
 
@@ -168,56 +299,70 @@ describe('writeCaptureBaselineCoverageManifest', () => {
168
299
  it('rewrites ONE subject and preserves the others', () => {
169
300
  const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
170
301
  mkdirSync(join(root, 'scripts'));
171
- writeCaptureBaselineCoverageManifest(root, 'examples', ['text/canvas']);
172
- const manifest = writeCaptureBaselineCoverageManifest(root, 'functional', ['a/webgl']);
173
- expect(manifest.subjects).toEqual({ examples: ['text/canvas'], functional: ['a/webgl'] });
302
+ writeCaptureBaselineCoverageManifest(root, 'examples', everything(['text/canvas']));
303
+ const manifest = writeCaptureBaselineCoverageManifest(root, 'functional', everything(['a/webgl']));
304
+ expect(Object.keys(manifest.subjects.examples)).toEqual(['text/canvas']);
305
+ expect(Object.keys(manifest.subjects.functional)).toEqual(['a/webgl']);
174
306
  });
175
307
 
176
308
  // The regression tier runs --renderer=canvas,webgl,webgpu. Such a run must not retire dom pins.
177
309
  it('carries pins for renderers the update run did not cover', () => {
178
310
  const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
179
311
  mkdirSync(join(root, 'scripts'));
180
- writeCaptureBaselineCoverageManifest(root, 'functional', ['a/dom', 'a/canvas']);
181
- const manifest = writeCaptureBaselineCoverageManifest(root, 'functional', ['a/canvas'], ['canvas', 'webgl']);
182
- expect(manifest.subjects.functional).toEqual(['a/canvas', 'a/dom']);
312
+ writeCaptureBaselineCoverageManifest(root, 'functional', everything(['a/dom', 'a/canvas']));
313
+ const manifest = writeCaptureBaselineCoverageManifest(root, 'functional', everything(['a/canvas']), [
314
+ 'canvas',
315
+ 'webgl',
316
+ ]);
317
+ expect(Object.keys(manifest.subjects.functional)).toEqual(['a/canvas', 'a/dom']);
183
318
  });
184
319
 
185
320
  // One flaky target must not retire its own pin: the run never determined it, so the pin stands.
186
321
  it('carries forward a pin the run did not determine', () => {
187
322
  const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
188
323
  mkdirSync(join(root, 'scripts'));
189
- writeCaptureBaselineCoverageManifest(root, 'examples', ['collision/webgpu', 'collision/canvas']);
190
- const manifestAfter = writeCaptureBaselineCoverageManifest(root, 'examples', ['collision/canvas'], null, [
191
- 'collision/canvas',
192
- ]);
193
- expect(manifestAfter.subjects.examples).toEqual(['collision/canvas', 'collision/webgpu']);
324
+ writeCaptureBaselineCoverageManifest(root, 'examples', everything(['collision/webgpu', 'collision/canvas']));
325
+ const manifestAfter = writeCaptureBaselineCoverageManifest(
326
+ root,
327
+ 'examples',
328
+ everything(['collision/canvas']),
329
+ null,
330
+ ['collision/canvas'],
331
+ );
332
+ expect(Object.keys(manifestAfter.subjects.examples)).toEqual(['collision/canvas', 'collision/webgpu']);
194
333
  });
195
334
 
196
335
  // Determined AND uncovered is a real retirement, and must still go through.
197
336
  it('retires a pin the run determined to be uncovered', () => {
198
337
  const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
199
338
  mkdirSync(join(root, 'scripts'));
200
- writeCaptureBaselineCoverageManifest(root, 'examples', ['collision/webgpu', 'collision/canvas']);
201
- const manifestAfter = writeCaptureBaselineCoverageManifest(root, 'examples', ['collision/canvas'], null, [
202
- 'collision/canvas',
203
- 'collision/webgpu',
204
- ]);
205
- expect(manifestAfter.subjects.examples).toEqual(['collision/canvas']);
339
+ writeCaptureBaselineCoverageManifest(root, 'examples', everything(['collision/webgpu', 'collision/canvas']));
340
+ const manifestAfter = writeCaptureBaselineCoverageManifest(
341
+ root,
342
+ 'examples',
343
+ everything(['collision/canvas']),
344
+ null,
345
+ ['collision/canvas', 'collision/webgpu'],
346
+ );
347
+ expect(Object.keys(manifestAfter.subjects.examples)).toEqual(['collision/canvas']);
206
348
  });
207
349
 
208
350
  // With no renderer scope the run speaks for the whole subject, so a dropped target really is retired.
209
351
  it('retires a target on an unscoped update', () => {
210
352
  const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
211
353
  mkdirSync(join(root, 'scripts'));
212
- writeCaptureBaselineCoverageManifest(root, 'functional', ['a/dom', 'a/canvas']);
213
- const manifest = writeCaptureBaselineCoverageManifest(root, 'functional', ['a/canvas']);
214
- expect(manifest.subjects.functional).toEqual(['a/canvas']);
354
+ writeCaptureBaselineCoverageManifest(root, 'functional', everything(['a/dom', 'a/canvas']));
355
+ const manifest = writeCaptureBaselineCoverageManifest(root, 'functional', everything(['a/canvas']), null, [
356
+ 'a/canvas',
357
+ 'a/dom',
358
+ ]);
359
+ expect(Object.keys(manifest.subjects.functional)).toEqual(['a/canvas']);
215
360
  });
216
361
 
217
362
  it('writes a trailing newline so the format gate never churns it', () => {
218
363
  const root = mkdtempSync(join(tmpdir(), 'flight-coverage-'));
219
364
  mkdirSync(join(root, 'scripts'));
220
- writeCaptureBaselineCoverageManifest(root, 'functional', ['a/webgl']);
365
+ writeCaptureBaselineCoverageManifest(root, 'functional', everything(['a/webgl']));
221
366
  expect(readFileSync(captureBaselineCoverageManifestPath(root), 'utf8').endsWith('}\n')).toBe(true);
222
367
  });
223
368
  });
@@ -284,7 +284,9 @@ describe('runCaptureValidation', () => {
284
284
  expect(result.regressionFailures).toBe(1);
285
285
  expect(result.shouldFail).toBe(true);
286
286
  // A target with a FAILING comparison still has baseline evidence, so it is still covered.
287
- expect(readCaptureBaselineCoverageManifest(root).subjects.functional).toEqual(['sample/canvas']);
287
+ expect(readCaptureBaselineCoverageManifest(root).subjects.functional).toEqual({
288
+ 'sample/canvas': ['fingerprint'],
289
+ });
288
290
  });
289
291
 
290
292
  // The blanket refusal this replaces was too coarse: one flaky target blocked every acceptance. The
@@ -293,7 +295,7 @@ describe('runCaptureValidation', () => {
293
295
  it('keeps the pin of a target it could not load, instead of retiring it', async () => {
294
296
  const { root, kill } = createRegressionFixture('export const scene = 1;\n', sha256('export const scene = 1;\n'));
295
297
  mkdirSync(join(root, 'scripts'), { recursive: true });
296
- writeCaptureBaselineCoverageManifest(root, 'functional', ['sample/canvas']);
298
+ writeCaptureBaselineCoverageManifest(root, 'functional', { 'sample/canvas': ['fingerprint'] });
297
299
  const result = await runCaptureValidation({
298
300
  subject: 'functional',
299
301
  entries: [{ name: 'sample', renderers: ['canvas'] }],
@@ -310,7 +312,9 @@ describe('runCaptureValidation', () => {
310
312
  });
311
313
  expect(result.loadFailures).toBeGreaterThan(0);
312
314
  expect(result.shouldFail).toBe(true);
313
- expect(readCaptureBaselineCoverageManifest(root).subjects.functional).toEqual(['sample/canvas']);
315
+ expect(readCaptureBaselineCoverageManifest(root).subjects.functional).toEqual({
316
+ 'sample/canvas': ['fingerprint'],
317
+ });
314
318
  });
315
319
 
316
320
  it('yields NO PAIRS when a declared parity reference is skipped, instead of falling back to all-pairs', async () => {