@helix3/helix-cli 0.1.18-helix3.332 → 0.1.18-helix3.333

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -67,7 +67,7 @@ The token is stored in `~/.helix/credentials.json` (mode `600`). It's sent as
67
67
  | `helix character import <body.glb> [--map <json>] [--fit source\|canonical] [--provenance <json>]` | Convert one self-contained third-party humanoid through the public `helix-humanoid@1` pipeline. The command rejects external/remote resources and resource bombs before parsing, generates bounded LODs, and emits a source/license/transformation/checksum receipt beside the output. `--fit canonical` aligns the rest skeleton/proportions; it does not prove that Base Male-targeted garments fit a different body surface. |
68
68
  | `helix character fit <addon.glb> --body <base.glb> -o <out.glb> (--slot-type <character.x@1>\|--hidden-regions <globs\|none>) [--clearance-mm 3]` | Pose-aware poke-through fit for a packaged character add-on (every LOD): across the canonical pose set, pushes garment geometry out along the body-facing normal to a minimum clearance, smoothed so hems and silhouettes keep their shape. Gated inside the stage by the poke-through measurement: the output is the fitted mesh only when it is strictly better (exit 0), otherwise a byte-identical copy of the input (exit 3). Bridge add-on imports run the same stage automatically; `helix item publish-version --fit-body <base.glb>` runs it before shipping a corrected mesh. |
69
69
  | `helix character ear-clearance <addon.glb> --body <base.glb> (-o <out.glb>\|--check) [--target-mm 4] [--trigger-mm 1.5] [--max-push-mm 18] [--json]` | Head-zone check and fix for headwear / mask / hair / eyewear: finds the base body's ears, measures the clearance to the OUTERMOST garment layer around each (horizontal ray from the head axis, per LOD; only samples the garment wraps on all four sides count, so a mask that stops in front of the ear or a cap above it is not a defect) and, when a wrapped ear has < 1.5 mm, pushes the garment smoothly outward (Gaussian field, sigma 22 mm, horizontal only, <= 18 mm total, every LOD). Kept only when no ear pokes afterwards. `--check` writes nothing and exits 3 when an ear pokes through. `helix character fit` and `helix item publish-version --fit-body` run it automatically for head-zone slot types (`--no-ear-clearance` skips it; `--ear-clearance` forces it); `publish-version` refuses a mesh whose ears still poke after the fix. The pose-aware fit cannot do this job on a thin head shell. |
70
- | `helix character derive-hide <addon.glb> --body <base.glb> --slot-type <character.x@1> [--threshold 98] [--ops-out ops.json] [--json]` | Measures which of the slot's granted body regions the garment fully occludes (bind pose; a body vertex counts when garment is in front of it along its outward normal within 60 mm; the least-covered LOD decides) and prints the `hide` ops that follow, with the measured share of every region left visible. A region is hidden only at >= 98 %; partly covered regions stay visible and the pose-aware fit keeps their skin from poking through. Bridge add-on conform does this automatically when the profile names no `hideRegions`; use this command with `helix item publish-version --ops <ops.json>` to correct an already-published garment. |
70
+ | `helix character derive-hide <addon.glb> --body <base.glb> --slot-type <character.x@1> [--threshold 98] [--ops-out ops.json] [--json]` | Measures which of the slot's granted body regions the garment fully occludes (bind pose; a body vertex counts when garment is in front of it along its outward normal within 60 mm; the least-covered LOD decides) and prints the `hide` ops that follow, with the measured share of every region left visible. A region is hidden only at >= 98 % AND when no triangle the hide would collapse (engine rule: >= 2 corners hidden) reaches a body vertex the garment does not cover (the sawtooth under a hem or collar); partly covered regions stay visible and the pose-aware fit keeps their skin from poking through. Bridge add-on conform does this automatically when the profile names no `hideRegions`; use this command with `helix item publish-version --ops <ops.json>` to correct an already-published garment. |
71
71
  | `helix character retarget-animation <clip.fbx\|clip.glb>` | Retarget a raw Mixamo/Meshy clip directly to `helix-humanoid@1`. FBX conversion is deterministic and runs inside the CLI; no hidden Blender/DCC pre-export is required. |
72
72
  | `helix pack scaffold\|validate\|publish <dir>` | Locomotion packs — the replacement movement clips a player equips as a character add-on in the `character.locomotion@1` clip-set slot. `scaffold` writes `anims/clip-meta.json` plus a README carrying the per-clip contract; `validate` runs the whole gate offline in **one** pass (clip-meta schema, one GLB per entry with exactly one animation, measured length against the declared duration, the gait-only vocabulary, the `strideSpeed` bands, and walk < run < sprint); `publish` uploads each clip GLB as a public Vault animation, records the returned pins in `anims/pins.json`, then publishes the **meshless** add-on whose ops pin those versions — a re-run reuses every unchanged pin, so an interrupted publish resumes. The governing rule of the slot: a pack may change how a walk *looks*; it may never change how far that walk *gets you*. Partial packs are valid products down to a single clip. `--dry-run` stops before any network call and works logged out. |
73
73
  | `helix world audit\|source-audit\|perf-gate\|prove-live` | Run the blocking world QA, performance, and deployed-build identity gates. |
@@ -73,6 +73,17 @@ export interface HideCoverageReport {
73
73
  /** Vertices whose region could not be placed (never counted toward any region). */
74
74
  unclassifiedVertices: number;
75
75
  regions: RegionCoverage[];
76
+ /**
77
+ * Per body LOD, what the hole-edge check needs (see `pruneHoleEdges`). Not enumerable, so JSON dumps of a
78
+ * report stay small; absent on a hand-built report, in which case the check is skipped.
79
+ */
80
+ lodSurfaces?: LodSurface[];
81
+ }
82
+ /** One body LOD as the engine's hide op sees it: labelled vertices, triangles, and which vertices a garment covers. */
83
+ export interface LodSurface {
84
+ regions: Array<string | null>;
85
+ triangles: Uint32Array;
86
+ occluded: Uint8Array;
76
87
  }
77
88
  /**
78
89
  * Per-region occlusion of the base body by `garment`. Both documents must be in their authored (bind) pose.
@@ -88,10 +99,12 @@ export interface DerivedHide {
88
99
  granted: string[];
89
100
  /** Granted regions the garment occludes (>= threshold). */
90
101
  hidden: string[];
91
- /** Granted regions left visible, each with the measured occluded fraction. */
102
+ /** Granted regions left visible, each with the measured occluded fraction (and `holeEdge` when the region met the
103
+ * threshold but hiding it would have left a bare triangle corner at its hole edge — see `pruneHoleEdges`). */
92
104
  visible: Array<{
93
105
  region: string;
94
106
  fraction: number;
107
+ holeEdge?: boolean;
95
108
  }>;
96
109
  /** `hidden` collapsed to the grant's own globs where both sides are hidden (`body_thigh_*`). */
97
110
  hideNodes: string[];
@@ -104,6 +117,18 @@ export interface DerivedHide {
104
117
  }
105
118
  /** Collapse concrete regions back to the grant's globs: `body_thigh_l` + `body_thigh_r` -> `body_thigh_*`. */
106
119
  export declare function collapseRegionsToGlobs(hidden: readonly string[], grantGlobs: readonly string[]): string[];
120
+ /**
121
+ * HOLE-EDGE CHECK. The region fraction alone lets a handful of bare vertices through (98 % of 363 torso vertices
122
+ * is seven of them), and those are exactly the ones on a hem: the engine collapses every triangle with >= 2
123
+ * corners in a hidden region, so a collapsed triangle whose third corner (or any corner) is NOT under the
124
+ * garment opens a notch in the skin the fabric does not cross — the black sawtooth under a jacket hem or a
125
+ * collar (Bomber Jacket, Clare Top, Casual Blazer, Black Shorts). So after the threshold: collapse triangles
126
+ * with the engine's rule at every LOD, and while any corner of a collapsed triangle is bare, drop the hidden
127
+ * region carrying the most such corners and recompute. A region dropped here is left visible (the push-out fit
128
+ * then handles its skin); a vertex facing the body itself already counts as covered. Returns the regions
129
+ * dropped. Skipped when the report carries no surfaces (a hand-built one).
130
+ */
131
+ export declare function pruneHoleEdges(hidden: string[], coverage: HideCoverageReport): string[];
107
132
  /** The regions of `slotType`'s platform grant that `coverage` shows the garment fully occludes. */
108
133
  export declare function deriveHideFromCoverage(slotType: string, coverage: HideCoverageReport, threshold?: number): DerivedHide;
109
134
  /** One human line per granted region, for terminal output. */
@@ -4,6 +4,7 @@ exports.DEFAULT_CONE_DEG = exports.DEFAULT_BACKOFF_M = exports.DEFAULT_STANDOFF_
4
4
  exports.measureHideCoverage = measureHideCoverage;
5
5
  exports.measureHideCoverageFiles = measureHideCoverageFiles;
6
6
  exports.collapseRegionsToGlobs = collapseRegionsToGlobs;
7
+ exports.pruneHoleEdges = pruneHoleEdges;
7
8
  exports.deriveHideFromCoverage = deriveHideFromCoverage;
8
9
  exports.formatDerivedHide = formatDerivedHide;
9
10
  const core_1 = require("@gltf-transform/core");
@@ -133,6 +134,7 @@ function bodyVertices(body, lod) {
133
134
  const positions = [];
134
135
  const normals = [];
135
136
  const regions = [];
137
+ const triangles = [];
136
138
  let baked = 0, total = 0;
137
139
  for (const node of nodes) {
138
140
  for (const prim of node.getMesh().listPrimitives()) {
@@ -140,6 +142,13 @@ function bodyVertices(body, lod) {
140
142
  if (!posed || !posed.normals)
141
143
  continue;
142
144
  const count = posed.positions.length / 3;
145
+ const base = positions.length / 3;
146
+ if (prim.getMode() === 4) {
147
+ const idx = prim.getIndices()?.getArray() ?? null;
148
+ const n = idx ? idx.length : count;
149
+ for (let k = 0; k + 2 < n; k += 3)
150
+ triangles.push(base + (idx ? idx[k] : k), base + (idx ? idx[k + 1] : k + 1), base + (idx ? idx[k + 2] : k + 2));
151
+ }
143
152
  const regionAttr = prim.getAttribute('_REGION');
144
153
  const labelNames = node.getSkin()?.listJoints().map((j) => j.getName()) ?? [];
145
154
  const inf = regionAttr ? null : (0, posing_1.readInfluences)(prim, count);
@@ -165,7 +174,7 @@ function bodyVertices(body, lod) {
165
174
  throw new Error('hide coverage: the base body GLB has no skinned mesh with NORMALs — pass the HELIX base body (Base Male / Base Female).');
166
175
  if (baked !== 0 && baked !== total)
167
176
  throw new Error('hide coverage: only some base-body primitives carry a baked _REGION attribute — use a body GLB baked by `helix character bake-body-regions`.');
168
- return { positions: Float64Array.from(positions), normals: Float64Array.from(normals), regions, regionSource: baked > 0 ? '_REGION' : 'dominant-joint' };
177
+ return { triangles: Uint32Array.from(triangles), positions: Float64Array.from(positions), normals: Float64Array.from(normals), regions, regionSource: baked > 0 ? '_REGION' : 'dominant-joint' };
169
178
  }
170
179
  /** Unit directions: the normal plus `coneDeg`-tilted copies toward four tangents. */
171
180
  function rayFan(n, coneDeg) {
@@ -192,6 +201,8 @@ function rayFan(n, coneDeg) {
192
201
  /** Occlusion of one body LOD's vertices by one garment LOD's surface, per region. */
193
202
  function measureLodPair(verts, grid, bodyGrid, standoffM, backoffM, coneDeg, inScope) {
194
203
  const rows = new Map();
204
+ // Occlusion of EVERY vertex (in scope or not): the hole-edge check needs the neighbours of a hidden region too.
205
+ const occludedFlags = new Uint8Array(verts.regions.length);
195
206
  let unclassified = 0;
196
207
  const reach = backoffM + standoffM;
197
208
  const o = [0, 0, 0];
@@ -199,16 +210,19 @@ function measureLodPair(verts, grid, bodyGrid, standoffM, backoffM, coneDeg, inS
199
210
  const region = verts.regions[i];
200
211
  if (region === null) {
201
212
  unclassified++;
213
+ occludedFlags[i] = 1;
202
214
  continue;
203
215
  }
204
- if (inScope && !inScope(region))
205
- continue;
206
- let row = rows.get(region);
207
- if (!row) {
208
- row = { vertices: 0, occluded: 0, selfOccluded: 0, bareMin: [Infinity, Infinity, Infinity], bareMax: [-Infinity, -Infinity, -Infinity] };
209
- rows.set(region, row);
216
+ const scoped = !inScope || inScope(region);
217
+ let row;
218
+ if (scoped) {
219
+ row = rows.get(region);
220
+ if (!row) {
221
+ row = { vertices: 0, occluded: 0, selfOccluded: 0, bareMin: [Infinity, Infinity, Infinity], bareMax: [-Infinity, -Infinity, -Infinity] };
222
+ rows.set(region, row);
223
+ }
224
+ row.vertices++;
210
225
  }
211
- row.vertices++;
212
226
  let hit = false;
213
227
  const n = [verts.normals[i * 3], verts.normals[i * 3 + 1], verts.normals[i * 3 + 2]];
214
228
  o[0] = verts.positions[i * 3] - n[0] * backoffM;
@@ -229,15 +243,20 @@ function measureLodPair(verts, grid, bodyGrid, standoffM, backoffM, coneDeg, inS
229
243
  for (const d of rayFan(n, SELF_OCCLUSION_CONE_DEG)) {
230
244
  if (bodyGrid.firstHitAlong(start, d, standoffM, 1e-4) !== null) {
231
245
  hit = true;
232
- row.selfOccluded++;
246
+ if (row)
247
+ row.selfOccluded++;
233
248
  break;
234
249
  }
235
250
  }
236
251
  }
237
252
  if (hit) {
238
- row.occluded++;
253
+ occludedFlags[i] = 1;
254
+ if (row)
255
+ row.occluded++;
239
256
  continue;
240
257
  }
258
+ if (!row)
259
+ continue;
241
260
  for (let k = 0; k < 3; k++) {
242
261
  const v = verts.positions[i * 3 + k];
243
262
  if (v < row.bareMin[k])
@@ -246,7 +265,7 @@ function measureLodPair(verts, grid, bodyGrid, standoffM, backoffM, coneDeg, inS
246
265
  row.bareMax[k] = v;
247
266
  }
248
267
  }
249
- return { unclassified, rows };
268
+ return { unclassified, rows, occluded: occludedFlags };
250
269
  }
251
270
  /**
252
271
  * Per-region occlusion of the base body by `garment`. Both documents must be in their authored (bind) pose.
@@ -267,6 +286,7 @@ function measureHideCoverage(garment, body, options = {}) {
267
286
  const tally = new Map();
268
287
  let regionSource = '_REGION';
269
288
  let unclassified = 0;
289
+ const lodSurfaces = [];
270
290
  for (let k = 0; k < lods; k++) {
271
291
  const verts = bodyVertices(body, Math.min(k, bodyLods - 1));
272
292
  regionSource = verts.regionSource;
@@ -274,6 +294,7 @@ function measureHideCoverage(garment, body, options = {}) {
274
294
  const pair = measureLodPair(verts, grids[Math.min(k, grids.length - 1)], bodyGrid, standoffM, backoffM, coneDeg, inScope);
275
295
  if (k === 0)
276
296
  unclassified = pair.unclassified;
297
+ lodSurfaces.push({ regions: verts.regions, triangles: verts.triangles, occluded: pair.occluded });
277
298
  for (const [region, row] of pair.rows) {
278
299
  let t = tally.get(region);
279
300
  if (!t) {
@@ -303,7 +324,9 @@ function measureHideCoverage(garment, body, options = {}) {
303
324
  };
304
325
  })
305
326
  .sort((a, b) => (order.get(a.region) ?? 99) - (order.get(b.region) ?? 99));
306
- return { standoffM, backoffM, coneDeg, lods, regionSource, unclassifiedVertices: unclassified, regions };
327
+ const report = { standoffM, backoffM, coneDeg, lods, regionSource, unclassifiedVertices: unclassified, regions };
328
+ Object.defineProperty(report, 'lodSurfaces', { value: lodSurfaces, enumerable: false });
329
+ return report;
307
330
  }
308
331
  /** `measureHideCoverage` on two GLB files (meshopt-compressed renditions included). */
309
332
  async function measureHideCoverageFiles(garmentPath, bodyPath, options = {}) {
@@ -334,6 +357,53 @@ function collapseRegionsToGlobs(hidden, grantGlobs) {
334
357
  out.push(r);
335
358
  return out;
336
359
  }
360
+ /**
361
+ * HOLE-EDGE CHECK. The region fraction alone lets a handful of bare vertices through (98 % of 363 torso vertices
362
+ * is seven of them), and those are exactly the ones on a hem: the engine collapses every triangle with >= 2
363
+ * corners in a hidden region, so a collapsed triangle whose third corner (or any corner) is NOT under the
364
+ * garment opens a notch in the skin the fabric does not cross — the black sawtooth under a jacket hem or a
365
+ * collar (Bomber Jacket, Clare Top, Casual Blazer, Black Shorts). So after the threshold: collapse triangles
366
+ * with the engine's rule at every LOD, and while any corner of a collapsed triangle is bare, drop the hidden
367
+ * region carrying the most such corners and recompute. A region dropped here is left visible (the push-out fit
368
+ * then handles its skin); a vertex facing the body itself already counts as covered. Returns the regions
369
+ * dropped. Skipped when the report carries no surfaces (a hand-built one).
370
+ */
371
+ function pruneHoleEdges(hidden, coverage) {
372
+ const surfaces = coverage.lodSurfaces;
373
+ const dropped = [];
374
+ if (!surfaces || surfaces.length === 0)
375
+ return dropped;
376
+ for (;;) {
377
+ if (hidden.length === 0)
378
+ return dropped;
379
+ const hid = new Set(hidden);
380
+ const score = new Map();
381
+ for (const surface of surfaces) {
382
+ const { regions, triangles, occluded } = surface;
383
+ for (let t = 0; t + 2 < triangles.length; t += 3) {
384
+ const corners = [triangles[t], triangles[t + 1], triangles[t + 2]];
385
+ const hiddenCorners = corners.filter((c) => { const r = regions[c]; return r !== null && r !== undefined && hid.has(r); });
386
+ if (hiddenCorners.length < 2)
387
+ continue;
388
+ const bare = corners.filter((c) => occluded[c] === 0).length;
389
+ if (bare === 0)
390
+ continue;
391
+ for (const c of hiddenCorners)
392
+ score.set(regions[c], (score.get(regions[c]) ?? 0) + bare / hiddenCorners.length);
393
+ }
394
+ }
395
+ if (score.size === 0)
396
+ return dropped;
397
+ let worst = '', worstScore = -1;
398
+ for (const [region, v] of score)
399
+ if (v > worstScore) {
400
+ worst = region;
401
+ worstScore = v;
402
+ }
403
+ hidden.splice(hidden.indexOf(worst), 1);
404
+ dropped.push(worst);
405
+ }
406
+ }
337
407
  /** The regions of `slotType`'s platform grant that `coverage` shows the garment fully occludes. */
338
408
  function deriveHideFromCoverage(slotType, coverage, threshold = exports.DEFAULT_COVERAGE_THRESHOLD) {
339
409
  const grantGlobs = (0, bodyRegionHide_1.defaultHideRegionsForSlotType)(slotType);
@@ -350,6 +420,9 @@ function deriveHideFromCoverage(slotType, coverage, threshold = exports.DEFAULT_
350
420
  else
351
421
  visible.push({ region, fraction: row.fraction });
352
422
  }
423
+ for (const region of pruneHoleEdges(hidden, coverage))
424
+ visible.push({ region, fraction: measured.get(region).fraction, holeEdge: true });
425
+ visible.sort((a, b) => granted.indexOf(a.region) - granted.indexOf(b.region));
353
426
  const hideNodes = collapseRegionsToGlobs(hidden, grantGlobs);
354
427
  return {
355
428
  slotType,
@@ -369,7 +442,7 @@ function formatDerivedHide(derived) {
369
442
  const rows = new Map(derived.coverage.regions.map((r) => [r.region, r]));
370
443
  for (const region of derived.granted) {
371
444
  const row = rows.get(region);
372
- lines.push(` ${derived.hidden.includes(region) ? 'HIDE ' : 'visible'} ${region.padEnd(17)} ${pct(row.fraction).padStart(6)} (${row.vertices} vertices${row.perLod.length > 1 ? `; per LOD ${row.perLod.map(pct).join(' / ')}` : ''})`);
445
+ lines.push(` ${derived.hidden.includes(region) ? 'HIDE ' : 'visible'} ${region.padEnd(17)} ${pct(row.fraction).padStart(6)}${derived.visible.find((v) => v.region === region)?.holeEdge ? ' hole-edge' : ''} (${row.vertices} vertices${row.perLod.length > 1 ? `; per LOD ${row.perLod.map(pct).join(' / ')}` : ''})`);
373
446
  }
374
447
  lines.push(derived.hideNodes.length > 0 ? ` ops: ${JSON.stringify(derived.ops)}` : ' ops: [] (nothing is fully occluded — nothing hidden; the push-out fit handles the visible skin)');
375
448
  return lines.join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"hideCoverage.js","sourceRoot":"","sources":["../../src/character/hideCoverage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hideCoverage.js","sourceRoot":"","sources":["../../src/character/hideCoverage.ts"],"names":[],"mappings":";;;AA6TA,kDAqDC;AAGD,4DAMC;AAsBD,wDAeC;AAaD,wCAyBC;AAGD,wDA0BC;AAGD,8CAUC;AAhfD,+CAAwF;AACxF,2DAA4D;AAC5D,iDAA+C;AAC/C,qDAAqF;AACrF,gDAAqD;AACrD,sDAA0D;AAC1D,oDAAsI;AAEtI;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEU,QAAA,0BAA0B,GAAG,IAAI,CAAC;AAClC,QAAA,kBAAkB,GAAG,IAAI,CAAC;AAC1B,QAAA,iBAAiB,GAAG,IAAI,CAAC;AACtC;gHACgH;AACnG,QAAA,gBAAgB,GAAG,GAAG,CAAC;AACpC,kGAAkG;AAClG,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,oGAAoG;AACpG,MAAM,uBAAuB,GAAG,EAAE,CAAC;AA+DnC,yGAAyG;AACzG,SAAS,gBAAgB,CAAC,KAAmD;IAC3E,MAAM,GAAG,GAAW,EAAE,CAAC;IACvB,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,QAAkB;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC;IAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;IACrG,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,cAAc,CAAC,IAAU,EAAE,IAAe,EAAE,WAAoB;IACvE,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,IAAI,GAAG,IAAA,iBAAQ,EAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,WAAW,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAA,iBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5G,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAc,CAAC;IAChD,IAAI,IAAI;QAAE,OAAO,IAAA,wBAAe,EAAC,IAAI,EAAE,WAAW,EAAE,IAAA,uBAAc,EAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAA,sBAAa,EAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IACtH,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;QACnE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAE,CAAC;QAC9E,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAE,CAAC;QAClF,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAE,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAE,CAAC;QACnF,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;YACvH,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;YACvH,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,GAAG,KAAK,CAAC,EAAE,CAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;YACxH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED,mGAAmG;AACnG,SAAS,aAAa,CAAC,KAAsB;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;gBAAE,SAAS;YACnC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC;YAClD,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC1F,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;gBAC5G,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;gBAC5G,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC1F,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAAE,SAAS;gBAC9C,MAAM,CAAC,IAAI,CACT,CAAC,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EACvC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EACvC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CACxC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,YAAY,CAAC,IAAc,EAAE,GAAW;IAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,IAAc,EAAE,GAAW;IAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAG,CAAC,cAAc,EAAE,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,SAAS;YACvC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACzC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC;gBAClD,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;oBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxJ,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;YAC9E,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,uBAAc,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5D,KAAK,EAAE,CAAC;YACR,IAAI,UAAU;gBAAE,KAAK,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;gBAClG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;gBAC1F,IAAI,UAAU,EAAE,CAAC;oBACf,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC9B,OAAO,CAAC,IAAI,CAAC,mCAAkB,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,GAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;oBAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,uBAAc,EAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yHAAyH,CAAC,CAAC;IACvK,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8IAA8I,CAAC,CAAC;IACpM,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;AACnM,CAAC;AAED,qFAAqF;AACrF,SAAS,MAAM,CAAC,CAAoB,EAAE,OAAe;IACnD,MAAM,GAAG,GAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;IACrE,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAC7B,MAAM,GAAG,GAA6B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACrH,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACvC,EAAE,IAAI,EAAE,CAAC;IAAC,EAAE,IAAI,EAAE,CAAC;IAAC,EAAE,IAAI,EAAE,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,EAAE,CAAC;IAC/F,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;IACvF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAU,EAAE,CAAC;QACjE,GAAG,CAAC,IAAI,CAAC;YACP,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;YACjC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;YACjC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAUD,qFAAqF;AACrF,SAAS,cAAc,CACrB,KAAmB,EACnB,IAAkB,EAClB,QAAsB,EACtB,SAAiB,EACjB,QAAgB,EAChB,OAAe,EACf,OAAoD;IAEpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC5C,gHAAgH;IAChH,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;QACjC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAAC,YAAY,EAAE,CAAC;YAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACxE,MAAM,MAAM,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,GAA4B,CAAC;QACjC,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxB,CAAC;YACD,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,CAAC;QACD,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,QAAQ,CAAC;QAClD,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,QAAQ,CAAC;QACtD,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,QAAQ,CAAC;QACtD,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;oBAAC,GAAG,GAAG,IAAI,CAAC;oBAAC,MAAM;gBAAC,CAAC;YACtE,CAAC;QACH,CAAC;QACD,uGAAuG;QACvG,oFAAoF;QACpF,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,qBAAqB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,qBAAqB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,qBAAqB,CAAC,CAAC;YAClM,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,uBAAuB,CAAC,EAAE,CAAC;gBACnD,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBAAC,GAAG,GAAG,IAAI,CAAC;oBAAC,IAAI,GAAG;wBAAE,GAAG,CAAC,YAAY,EAAE,CAAC;oBAAC,MAAM;gBAAC,CAAC;YACrH,CAAC;QACH,CAAC;QACD,IAAI,GAAG,EAAE,CAAC;YAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,IAAI,GAAG;gBAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QACrE,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAE,CAAC;YACtC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE;gBAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE;gBAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,SAAgB,mBAAmB,CAAC,OAAiB,EAAE,IAAc,EAAE,UAA+B,EAAE;IACtG,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,0BAAkB,CAAC;IAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,yBAAiB,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,wBAAgB,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,0BAAiB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1G,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,mBAAY,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,wBAAc,CAAC,CAAC,CAAC;IACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IACzD,+FAA+F;IAC/F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6G,CAAC;IACnI,IAAI,YAAY,GAAuC,SAAS,CAAC;IACjE,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5D,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,mBAAY,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,wBAAc,CAAC,CAAC;QAChH,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3H,IAAI,CAAC,KAAK,CAAC;YAAE,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9C,WAAW,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClG,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1B,IAAI,CAAC,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;gBAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAAC,CAAC;YACzI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC7B,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,mCAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAqB,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;QACnB,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;QACnE,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE;YACxB,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YAC7B,YAAY,EAAE,SAAS;YACvB,MAAM;YACN,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAA6B,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAA6B,EAAE,CAAC,CAAC,CAAC,IAAI;SACpJ,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAuB,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;IACrI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IACxF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uFAAuF;AAChF,KAAK,UAAU,wBAAwB,CAAC,WAAmB,EAAE,QAAgB,EAAE,UAA+B,EAAE;IACrH,MAAM,8BAAc,CAAC,KAAK,CAAC;IAC3B,MAAM,EAAE,GAAG,IAAI,aAAM,EAAE,CAAC,kBAAkB,CAAC,2BAAc,CAAC,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,8BAAc,EAAE,CAAC,CAAC;IACvH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,mBAAmB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC;AAqBD,8GAA8G;AAC9G,SAAgB,sBAAsB,CAAC,MAAyB,EAAE,UAA6B;IAC7F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS;QAClC,MAAM,KAAK,GAAG,IAAA,0BAAiB,EAAC,CAAC,IAAI,CAAC,CAAE,CAAC;QACzC,MAAM,OAAO,GAAG,mCAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,KAAK,MAAM,CAAC,IAAI,OAAO;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,mCAAkB;QAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpF,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,cAAc,CAAC,MAAgB,EAAE,QAA4B;IAC3E,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC;IACtC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACvD,SAAS,CAAC;QACR,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAE,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;gBACtE,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3H,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;oBAAE,SAAS;gBACvC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC7D,IAAI,IAAI,KAAK,CAAC;oBAAE,SAAS;gBACzB,KAAK,MAAM,CAAC,IAAI,aAAa;oBAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACrH,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QACrC,IAAI,KAAK,GAAG,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;QAChC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,KAAK;YAAE,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC;gBAAC,KAAK,GAAG,MAAM,CAAC;gBAAC,UAAU,GAAG,CAAC,CAAC;YAAC,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,SAAgB,sBAAsB,CAAC,QAAgB,EAAE,QAA4B,EAAE,SAAS,GAAG,kCAA0B;IAC3H,MAAM,UAAU,GAAG,IAAA,8CAA6B,EAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAA,0BAAiB,EAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,2GAA2G;IAC3G,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,mCAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAoE,EAAE,CAAC;IACpF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAClC,IAAI,GAAG,CAAC,QAAQ,IAAI,SAAS;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;YAC9C,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1I,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAE,OAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAI,OAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1G,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7D,OAAO;QACL,QAAQ;QACR,SAAS;QACT,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,GAAG,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QAClE,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,SAAgB,iBAAiB,CAAC,OAAoB;IACpD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9D,MAAM,KAAK,GAAG,CAAC,QAAQ,OAAO,CAAC,QAAQ,yCAAyC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,gCAAgC,OAAO,CAAC,QAAQ,CAAC,IAAI,2BAA2B,CAAC,CAAC;IACxL,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,QAAQ,YAAY,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9T,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,mGAAmG,CAAC,CAAC;IACzL,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}