@gettrace/cli 1.3.8 → 1.4.9

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.
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Per-file async write-lock for the Trace IDE bridge.
3
+ *
4
+ * Problem: Node.js is single-threaded but WebSocket message handlers are
5
+ * async. Two EDIT_FILE messages arriving in quick succession will both
6
+ * start processing, and if a second message begins its read after the first
7
+ * has written but before the first's `await autoFormat` resolves, the second
8
+ * write lands on correctly-updated content. The real risk is a future where
9
+ * parallelism is added — e.g., multiple WS connections dispatching concurrent
10
+ * edits to the same file — where without a lock, the second write overwrites
11
+ * the first silently.
12
+ *
13
+ * Solution: Promise-chain semaphore keyed on the absolute file path.
14
+ * Each caller waits for the previous write to the same file to fully complete
15
+ * (including the async autoFormat step) before starting its own write.
16
+ *
17
+ * Usage:
18
+ * await withFileLock(filePath, async () => {
19
+ * fs.writeFileSync(filePath, newContent, 'utf-8');
20
+ * await autoFormat(filePath, projectPath);
21
+ * });
22
+ */
23
+ export declare function withFileLock<T>(filePath: string, fn: () => Promise<T>): Promise<T>;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Per-file async write-lock for the Trace IDE bridge.
3
+ *
4
+ * Problem: Node.js is single-threaded but WebSocket message handlers are
5
+ * async. Two EDIT_FILE messages arriving in quick succession will both
6
+ * start processing, and if a second message begins its read after the first
7
+ * has written but before the first's `await autoFormat` resolves, the second
8
+ * write lands on correctly-updated content. The real risk is a future where
9
+ * parallelism is added — e.g., multiple WS connections dispatching concurrent
10
+ * edits to the same file — where without a lock, the second write overwrites
11
+ * the first silently.
12
+ *
13
+ * Solution: Promise-chain semaphore keyed on the absolute file path.
14
+ * Each caller waits for the previous write to the same file to fully complete
15
+ * (including the async autoFormat step) before starting its own write.
16
+ *
17
+ * Usage:
18
+ * await withFileLock(filePath, async () => {
19
+ * fs.writeFileSync(filePath, newContent, 'utf-8');
20
+ * await autoFormat(filePath, projectPath);
21
+ * });
22
+ */
23
+ // Map: absolute filePath → the Promise representing the current (or last) write.
24
+ const _locks = new Map();
25
+ export async function withFileLock(filePath, fn) {
26
+ // Grab any in-progress write for this file (or a resolved no-op if none).
27
+ const prior = _locks.get(filePath) ?? Promise.resolve();
28
+ // Create a "hold" promise that keeps this slot in the chain alive
29
+ // until our fn() completes and we call release().
30
+ let release;
31
+ const hold = new Promise(resolve => (release = resolve));
32
+ // Register this write as the current holder for this path.
33
+ // Anyone queueing after us will wait on `hold`.
34
+ _locks.set(filePath, hold);
35
+ try {
36
+ await prior; // Wait for any preceding write to finish
37
+ return await fn(); // Execute our write (includes autoFormat await)
38
+ }
39
+ finally {
40
+ release(); // Unblock the next write in the chain
41
+ // Clean up the map if nothing queued behind us
42
+ if (_locks.get(filePath) === hold) {
43
+ _locks.delete(filePath);
44
+ }
45
+ }
46
+ }
47
+ //# sourceMappingURL=file-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../src/file-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,iFAAiF;AACjF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,QAAgB,EAChB,EAAoB;IAEpB,0EAA0E;IAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAExD,kEAAkE;IAClE,kDAAkD;IAClD,IAAI,OAAoB,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAE/D,2DAA2D;IAC3D,gDAAgD;IAChD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE3B,IAAI,CAAC;QACD,MAAM,KAAK,CAAC,CAAO,yCAAyC;QAC5D,OAAO,MAAM,EAAE,EAAE,CAAC,CAAC,gDAAgD;IACvE,CAAC;YAAS,CAAC;QACP,OAAO,EAAE,CAAC,CAAS,sCAAsC;QACzD,+CAA+C;QAC/C,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Auto-format a project file after agent writes.
3
+ *
4
+ * Cascade: Prettier → ESLint --fix
5
+ *
6
+ * - Prettier handles JS/TS/CSS/HTML/JSON/Markdown formatting.
7
+ * - ESLint --fix handles import ordering, unused imports, and React-specific
8
+ * rules that Prettier does not enforce (runs only if Prettier is absent or
9
+ * fails its own config check).
10
+ *
11
+ * Both are discovered from the *project's own* node_modules — not a global
12
+ * install — so they respect the project's configured rules and parser options.
13
+ *
14
+ * Errors from either formatter are intentionally swallowed: a format failure
15
+ * must never block an agent's write. The function returns:
16
+ * 'prettier' — Prettier ran successfully
17
+ * 'eslint' — ESLint ran successfully (Prettier was absent/failed)
18
+ * null — file type is not formattable, or no formatter found
19
+ */
20
+ export declare function autoFormat(filePath: string, projectPath: string): Promise<string | null>;
package/dist/format.js ADDED
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Auto-format a project file after agent writes.
3
+ *
4
+ * Cascade: Prettier → ESLint --fix
5
+ *
6
+ * - Prettier handles JS/TS/CSS/HTML/JSON/Markdown formatting.
7
+ * - ESLint --fix handles import ordering, unused imports, and React-specific
8
+ * rules that Prettier does not enforce (runs only if Prettier is absent or
9
+ * fails its own config check).
10
+ *
11
+ * Both are discovered from the *project's own* node_modules — not a global
12
+ * install — so they respect the project's configured rules and parser options.
13
+ *
14
+ * Errors from either formatter are intentionally swallowed: a format failure
15
+ * must never block an agent's write. The function returns:
16
+ * 'prettier' — Prettier ran successfully
17
+ * 'eslint' — ESLint ran successfully (Prettier was absent/failed)
18
+ * null — file type is not formattable, or no formatter found
19
+ */
20
+ import * as fs from 'fs';
21
+ import * as path from 'path';
22
+ import { exec } from 'child_process';
23
+ import { promisify } from 'util';
24
+ const execAsync = promisify(exec);
25
+ const JS_EXTS = new Set(['.js', '.jsx', '.ts', '.tsx', '.mjs', '.cjs', '.mts', '.cts']);
26
+ const CSS_EXTS = new Set(['.css', '.scss', '.less']);
27
+ const HTML_EXTS = new Set(['.html', '.htm', '.vue', '.svelte']);
28
+ const ALL_FORMATTABLE = new Set([
29
+ ...JS_EXTS, ...CSS_EXTS, ...HTML_EXTS,
30
+ '.json', '.md', '.yaml', '.yml',
31
+ ]);
32
+ export async function autoFormat(filePath, projectPath) {
33
+ const ext = path.extname(filePath).toLowerCase();
34
+ if (!ALL_FORMATTABLE.has(ext))
35
+ return null;
36
+ // ── 1. Prettier (first choice) ────────────────────────────────────────────
37
+ // Handles JS/TS/CSS/HTML/JSON/Markdown. Respects .prettierrc / prettier.config.js.
38
+ const prettierBin = path.join(projectPath, 'node_modules', '.bin', 'prettier');
39
+ if (fs.existsSync(prettierBin)) {
40
+ try {
41
+ await execAsync(`"${prettierBin}" --write "${filePath}"`, { cwd: projectPath });
42
+ return 'prettier';
43
+ }
44
+ catch {
45
+ // Prettier config error or unparseable file — fall through to ESLint.
46
+ }
47
+ }
48
+ // ── 2. ESLint --fix (JS/TS only) ─────────────────────────────────────────
49
+ // Handles import ordering (eslint-plugin-import), unused imports
50
+ // (eslint-plugin-unused-imports), and React-specific rules that Prettier
51
+ // does not enforce. Runs after Prettier so lint rules don't fight formatting.
52
+ if (JS_EXTS.has(ext)) {
53
+ const eslintBin = path.join(projectPath, 'node_modules', '.bin', 'eslint');
54
+ if (fs.existsSync(eslintBin)) {
55
+ try {
56
+ // --fix mutates the file; lint violations that can't be auto-fixed
57
+ // are reported to stderr (ignored here) but the file is still improved.
58
+ await execAsync(`"${eslintBin}" --fix "${filePath}"`, { cwd: projectPath });
59
+ return 'eslint';
60
+ }
61
+ catch {
62
+ // Lint violations are expected — fixable ones were still applied.
63
+ }
64
+ }
65
+ }
66
+ return null;
67
+ }
68
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACxF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC5B,GAAG,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,SAAS;IACrC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,WAAmB;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,6EAA6E;IAC7E,mFAAmF;IACnF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/E,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACD,MAAM,SAAS,CAAC,IAAI,WAAW,cAAc,QAAQ,GAAG,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAChF,OAAO,UAAU,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACL,sEAAsE;QAC1E,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,iEAAiE;IACjE,yEAAyE;IACzE,8EAA8E;IAC9E,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACD,mEAAmE;gBACnE,wEAAwE;gBACxE,MAAM,SAAS,CAAC,IAAI,SAAS,YAAY,QAAQ,GAAG,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC5E,OAAO,QAAQ,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACL,kEAAkE;YACtE,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
package/dist/index.js CHANGED
@@ -10,6 +10,9 @@ import * as fs from 'fs';
10
10
  import * as path from 'path';
11
11
  import { exec, spawn } from 'child_process';
12
12
  import { promisify } from 'util';
13
+ import { withFileLock } from './file-lock.js';
14
+ import { autoFormat } from './format.js';
15
+ import { searchCode } from './search.js';
13
16
  const execAsync = promisify(exec);
14
17
  // ============================================
15
18
  // TERMINAL BUFFER
@@ -86,7 +89,7 @@ function detectDevCommand(projectPath, override) {
86
89
  };
87
90
  return { command: runCmd[pm] ?? `npm run ${script}`, pm, script };
88
91
  }
89
- const VERSION = '1.3.8';
92
+ const VERSION = '1.4.8';
90
93
  /** Levenshtein distance for fuzzy block matching */
91
94
  function levenshtein(a, b) {
92
95
  if (a === '' || b === '')
@@ -424,29 +427,10 @@ function fuzzyReplace(content, oldString, newString, replaceAll = false) {
424
427
  return { error: 'Found multiple matches for oldString. Provide more surrounding context to make the match unique.' };
425
428
  }
426
429
  // ============================================
427
- // AUTO-FORMAT: Detect & run project formatters
430
+ // AUTO-FORMAT imported from ./format
431
+ // Cascade: Prettier → ESLint --fix
432
+ // (function body lives in src/format.ts)
428
433
  // ============================================
429
- async function autoFormat(filePath, projectPath) {
430
- const ext = path.extname(filePath).toLowerCase();
431
- const cssExts = ['.css', '.scss', '.less'];
432
- const jsExts = ['.js', '.jsx', '.ts', '.tsx', '.mjs', '.cjs', '.mts', '.cts'];
433
- const htmlExts = ['.html', '.htm', '.vue', '.svelte'];
434
- const allFormattable = [...cssExts, ...jsExts, ...htmlExts, '.json', '.md', '.yaml', '.yml'];
435
- if (!allFormattable.includes(ext))
436
- return null;
437
- // Check for Prettier in project
438
- const prettierBin = path.join(projectPath, 'node_modules', '.bin', 'prettier');
439
- if (fs.existsSync(prettierBin)) {
440
- try {
441
- await execAsync(`"${prettierBin}" --write "${filePath}"`, { cwd: projectPath });
442
- return 'prettier';
443
- }
444
- catch (e) {
445
- // Prettier failed, that's okay
446
- }
447
- }
448
- return null;
449
- }
450
434
  program
451
435
  .name('trace')
452
436
  .description('Trace IDE Bridge — connect your codebase and dev server to the Trace extension')
@@ -634,6 +618,14 @@ function attachMessageHandler(ws, projectPath) {
634
618
  // Line-number prefixed output (like OpenCode)
635
619
  const numbered = sliced.map((line, i) => `${startIdx + i + 1}: ${line}`).join('\n');
636
620
  const truncated = endIdx < allLines.length;
621
+ // ── READ TOKEN ───────────────────────────────────────────────
622
+ // Agents pass this back in EDIT_FILE / REPLACE_LINES to prove
623
+ // the file hasn't changed since they last read it. If the token
624
+ // mismatches on a subsequent write, the write is rejected so
625
+ // stale line numbers cannot corrupt the file.
626
+ const _rtStat = fs.statSync(filePath);
627
+ const _readToken = `${Math.round(_rtStat.mtimeMs)}-${_rtStat.size}`;
628
+ // ─────────────────────────────────────────────────────────────
637
629
  response.data = {
638
630
  content: numbered,
639
631
  rawContent: rawContent,
@@ -641,6 +633,7 @@ function attachMessageHandler(ws, projectPath) {
641
633
  path: filePath,
642
634
  totalLines: allLines.length,
643
635
  showing: { from: offset, to: endIdx, truncated },
636
+ readToken: _readToken,
644
637
  };
645
638
  }
646
639
  else {
@@ -731,9 +724,12 @@ function attachMessageHandler(ws, projectPath) {
731
724
  break;
732
725
  case 'SEARCH_CODE':
733
726
  try {
734
- const query = message.query;
735
- const matches = searchInFiles(projectPath, query, 20);
736
- response.data = { matches };
727
+ const { matches, engine } = await searchCode(projectPath, message.query, {
728
+ isRegex: message.isRegex || false,
729
+ caseSensitive: message.caseSensitive !== false,
730
+ maxResults: message.maxResults || 20,
731
+ });
732
+ response.data = { matches, engine };
737
733
  }
738
734
  catch (e) {
739
735
  response.error = e.message;
@@ -1099,11 +1095,13 @@ function attachMessageHandler(ws, projectPath) {
1099
1095
  if (!fs.existsSync(dirPath)) {
1100
1096
  fs.mkdirSync(dirPath, { recursive: true });
1101
1097
  }
1102
- fs.writeFileSync(filePath, message.content, 'utf-8');
1103
- // Auto-format after write
1104
- const formatter = await autoFormat(filePath, projectPath);
1105
- response.data = { success: true, path: filePath, formatted: formatter, undoAvailable: true };
1106
- console.log(chalk.blue('ℹ') + ` Wrote file: ${message.filePath}` + (formatter ? chalk.dim(` (formatted with ${formatter})`) : '') + chalk.dim(' [undo saved]'));
1098
+ await withFileLock(filePath, async () => {
1099
+ fs.writeFileSync(filePath, message.content, 'utf-8');
1100
+ // Auto-format after write
1101
+ const formatter = await autoFormat(filePath, projectPath);
1102
+ response.data = { success: true, path: filePath, formatted: formatter, undoAvailable: true };
1103
+ console.log(chalk.blue('ℹ') + ` Wrote file: ${message.filePath}` + (formatter ? chalk.dim(` (formatted with ${formatter})`) : '') + chalk.dim(' [undo saved]'));
1104
+ });
1107
1105
  }
1108
1106
  }
1109
1107
  catch (e) {
@@ -1228,6 +1226,23 @@ function attachMessageHandler(ws, projectPath) {
1228
1226
  response.error = 'File not found: "' + message.filePath + '".' + hint;
1229
1227
  }
1230
1228
  else {
1229
+ // ── READ TOKEN DRIFT GUARD ───────────────────────────────────
1230
+ // If the caller passed readToken from their last READ_FILE,
1231
+ // validate the file hasn't changed (mtime + size). Stale
1232
+ // content from a prior read is the #1 cause of silent data
1233
+ // corruption on multi-step agent edits.
1234
+ if (message.readToken) {
1235
+ const _eStat = fs.statSync(filePath);
1236
+ const _eToken = `${Math.round(_eStat.mtimeMs)}-${_eStat.size}`;
1237
+ if (_eToken !== message.readToken) {
1238
+ response.error =
1239
+ 'File has changed since last read (readToken mismatch). ' +
1240
+ 'Re-read the file with read_project_file to get fresh content ' +
1241
+ 'and line numbers before editing. The file was NOT modified.';
1242
+ break;
1243
+ }
1244
+ }
1245
+ // ──────────────────────────────────────────────────────────
1231
1246
  const content = fs.readFileSync(filePath, 'utf-8');
1232
1247
  // Snapshot before edit
1233
1248
  undoStack.push({ filePath, prevContent: content, operation: 'EDIT_FILE', timestamp: Date.now(), relativePath: message.filePath });
@@ -1241,19 +1256,38 @@ function attachMessageHandler(ws, projectPath) {
1241
1256
  response.error = result.error;
1242
1257
  }
1243
1258
  else {
1244
- fs.writeFileSync(filePath, result.result, 'utf-8');
1245
- // Auto-format after edit
1246
- const formatter = await autoFormat(filePath, projectPath);
1247
- response.data = {
1248
- success: true,
1249
- path: filePath,
1250
- strategy: result.strategy,
1251
- formatted: formatter,
1252
- undoAvailable: true,
1253
- };
1254
- const strategyLabel = result.strategy === 'exact' ? '' : chalk.dim(` [${result.strategy}]`);
1255
- const formatLabel = formatter ? chalk.dim(` (${formatter})`) : '';
1256
- console.log(chalk.blue('ℹ') + ` Edited file: ${message.filePath}${strategyLabel}${formatLabel}` + chalk.dim(' [undo saved]'));
1259
+ // ── LAYER 5: JSX content validation ──────────────
1260
+ const _jsExts = ['.js', '.jsx', '.tsx', '.ts'];
1261
+ if (_jsExts.some(ext => filePath.endsWith(ext))) {
1262
+ const _repl = message.replacement || '';
1263
+ const _bo = (_repl.match(/\{/g) || []).length;
1264
+ const _bc = (_repl.match(/\}/g) || []).length;
1265
+ const _po = (_repl.match(/\(/g) || []).length;
1266
+ const _pc = (_repl.match(/\)/g) || []).length;
1267
+ if (_bo !== _bc || _po !== _pc) {
1268
+ undoStack.pop();
1269
+ response.error = `JSX validation failed: unbalanced syntax in replacement content ` +
1270
+ `(braces: ${_bo} open / ${_bc} close, parens: ${_po} open / ${_pc} close). ` +
1271
+ `Fix the replacement content before writing. The file was NOT modified.`;
1272
+ break;
1273
+ }
1274
+ }
1275
+ // ─────────────────────────────────────────────────
1276
+ await withFileLock(filePath, async () => {
1277
+ fs.writeFileSync(filePath, result.result, 'utf-8');
1278
+ // Auto-format after edit
1279
+ const formatter = await autoFormat(filePath, projectPath);
1280
+ response.data = {
1281
+ success: true,
1282
+ path: filePath,
1283
+ strategy: result.strategy,
1284
+ formatted: formatter,
1285
+ undoAvailable: true,
1286
+ };
1287
+ const strategyLabel = result.strategy === 'exact' ? '' : chalk.dim(` [${result.strategy}]`);
1288
+ const formatLabel = formatter ? chalk.dim(` (${formatter})`) : '';
1289
+ console.log(chalk.blue('ℹ') + ` Edited file: ${message.filePath}${strategyLabel}${formatLabel}` + chalk.dim(' [undo saved]'));
1290
+ });
1257
1291
  }
1258
1292
  }
1259
1293
  }
@@ -1271,6 +1305,22 @@ function attachMessageHandler(ws, projectPath) {
1271
1305
  response.error = 'File not found: ' + message.filePath;
1272
1306
  }
1273
1307
  else {
1308
+ // ── READ TOKEN DRIFT GUARD ──────────────────────────────────
1309
+ // Stale line numbers are the primary failure mode of
1310
+ // REPLACE_LINES. readToken proves the file is exactly
1311
+ // the version the agent read before computing its range.
1312
+ if (message.readToken) {
1313
+ const _rStat = fs.statSync(filePath);
1314
+ const _rToken = `${Math.round(_rStat.mtimeMs)}-${_rStat.size}`;
1315
+ if (_rToken !== message.readToken) {
1316
+ response.error =
1317
+ 'File has changed since last read (readToken mismatch). ' +
1318
+ 'Re-read the file with read_project_file to get fresh line numbers ' +
1319
+ 'before replacing. The file was NOT modified.';
1320
+ break;
1321
+ }
1322
+ }
1323
+ // ────────────────────────────────────────────────────────────
1274
1324
  const content = fs.readFileSync(filePath, 'utf-8');
1275
1325
  const lines = content.split('\n');
1276
1326
  const startLine = Math.max(1, message.startLine || 1);
@@ -1294,29 +1344,50 @@ function attachMessageHandler(ws, projectPath) {
1294
1344
  undoStack.shift();
1295
1345
  const oldLineCount = endLine - startLine + 1;
1296
1346
  const newLines = (message.newContent || '').split('\n');
1297
- // splice: remove old range, insert new lines
1298
- lines.splice(startLine - 1, oldLineCount, ...newLines);
1299
- const newContent = lines.join('\n');
1300
- fs.writeFileSync(filePath, newContent, 'utf-8');
1301
- // Auto-format
1302
- const formatter = await autoFormat(filePath, projectPath);
1303
- const lineDelta = newLines.length - oldLineCount;
1304
- response.data = {
1305
- success: true,
1306
- path: filePath,
1307
- linesReplaced: `${startLine}-${endLine}`,
1308
- oldLineCount,
1309
- newLineCount: newLines.length,
1310
- lineDelta: lineDelta,
1311
- totalLines: lines.length,
1312
- formatted: formatter,
1313
- undoAvailable: true,
1314
- hint: lineDelta !== 0
1315
- ? `Line count changed by ${lineDelta > 0 ? '+' : ''}${lineDelta}. Adjust subsequent line numbers if making more edits.`
1316
- : null
1317
- };
1318
- const formatLabel = formatter ? chalk.dim(` (${formatter})`) : '';
1319
- console.log(chalk.blue('ℹ') + ` Replaced lines ${startLine}-${endLine} in ${message.filePath} (${oldLineCount}→${newLines.length} lines)${formatLabel}` + chalk.dim(' [undo saved]'));
1347
+ // ── LAYER 5: JSX content validation ──────────────
1348
+ // Reject replacement content with unbalanced
1349
+ // braces or parens before it touches disk.
1350
+ const _jsExts = ['.js', '.jsx', '.tsx', '.ts'];
1351
+ if (_jsExts.some(ext => filePath.endsWith(ext))) {
1352
+ const _nc = message.newContent || '';
1353
+ const _bo = (_nc.match(/\{/g) || []).length;
1354
+ const _bc = (_nc.match(/\}/g) || []).length;
1355
+ const _po = (_nc.match(/\(/g) || []).length;
1356
+ const _pc = (_nc.match(/\)/g) || []).length;
1357
+ if (_bo !== _bc || _po !== _pc) {
1358
+ undoStack.pop();
1359
+ response.error = `JSX validation failed: unbalanced syntax in replacement content ` +
1360
+ `(braces: ${_bo} open / ${_bc} close, parens: ${_po} open / ${_pc} close). ` +
1361
+ `Fix the replacement content before writing. The file was NOT modified.`;
1362
+ break;
1363
+ }
1364
+ }
1365
+ // ─────────────────────────────────────────────────
1366
+ // splice + write inside lock
1367
+ await withFileLock(filePath, async () => {
1368
+ lines.splice(startLine - 1, oldLineCount, ...newLines);
1369
+ const newContent = lines.join('\n');
1370
+ fs.writeFileSync(filePath, newContent, 'utf-8');
1371
+ // Auto-format
1372
+ const formatter = await autoFormat(filePath, projectPath);
1373
+ const lineDelta = newLines.length - oldLineCount;
1374
+ response.data = {
1375
+ success: true,
1376
+ path: filePath,
1377
+ linesReplaced: `${startLine}-${endLine}`,
1378
+ oldLineCount,
1379
+ newLineCount: newLines.length,
1380
+ lineDelta: lineDelta,
1381
+ totalLines: lines.length,
1382
+ formatted: formatter,
1383
+ undoAvailable: true,
1384
+ hint: lineDelta !== 0
1385
+ ? `Line count changed by ${lineDelta > 0 ? '+' : ''}${lineDelta}. Adjust subsequent line numbers if making more edits.`
1386
+ : null
1387
+ };
1388
+ const formatLabel = formatter ? chalk.dim(` (${formatter})`) : '';
1389
+ console.log(chalk.blue('ℹ') + ` Replaced lines ${startLine}-${endLine} in ${message.filePath} (${oldLineCount}→${newLines.length} lines)${formatLabel}` + chalk.dim(' [undo saved]'));
1390
+ });
1320
1391
  }
1321
1392
  }
1322
1393
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,+CAA+C;AAC/C,2BAA2B;AAC3B,+DAA+D;AAC/D,+CAA+C;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,+CAA+C;AAC/C,kBAAkB;AAClB,mDAAmD;AACnD,+CAA+C;AAC/C,iDAAiD;AACjD,+CAA+C;AAE/C,MAAM,cAAc;IACR,KAAK,GAAa,EAAE,CAAC;IACZ,SAAS,GAAG,GAAG,CAAC;IAEjC,IAAI,CAAC,KAAa;QACd,mDAAmD;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,SAAS;YACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,CAAC,CAAC,GAAG,GAAG;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,KAAK;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;CACJ;AAED,+DAA+D;AAC/D,MAAM,oBAAoB,GAAG,IAAI,cAAc,EAAE,CAAC;AAClD,IAAI,UAAU,GAAwB,IAAI,CAAC;AAE3C,+CAA+C;AAC/C,wBAAwB;AACxB,8CAA8C;AAC9C,8CAA8C;AAC9C,+CAA+C;AAE/C,SAAS,gBAAgB,CAAC,WAAmB,EAAE,QAAiB;IAC5D,yDAAyD;IACzD,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACjE,CAAC;IAED,2CAA2C;IAC3C,IAAI,EAAE,GAAG,KAAK,CAAC;IACf,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAAE,EAAE,GAAG,KAAK,CAAC;SAC9D,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAAE,EAAE,GAAG,MAAM,CAAC;SACzE,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAAE,EAAE,GAAG,MAAM,CAAC;IAEzE,+BAA+B;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACvD,IAAI,OAAO,GAA2B,EAAE,CAAC;IACzC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,mDAAmD;IACnD,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;IAE3D,6BAA6B;IAC7B,MAAM,MAAM,GAA2B;QACnC,GAAG,EAAE,WAAW,MAAM,EAAE;QACxB,IAAI,EAAE,YAAY,MAAM,EAAE;QAC1B,IAAI,EAAE,QAAQ,MAAM,EAAE;QACtB,GAAG,EAAE,WAAW,MAAM,EAAE;KAC3B,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,WAAW,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACtE,CAAC;AACD,MAAM,OAAO,GAAG,OAAO,CAAC;AASxB,oDAAoD;AACpD,SAAS,WAAW,CAAC,CAAS,EAAE,CAAS;IACrC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACzD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAClF,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACrG,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,yCAAyC;AACzC,MAAM,cAAc,GAAa,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI;IACtD,MAAM,IAAI,CAAC;AACf,CAAC,CAAC;AAEF,qDAAqD;AACrD,MAAM,mBAAmB,GAAa,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI;IAC1D,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,WAAW,CAAC,GAAG,EAAE,CAAC;IAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClE,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACxD,OAAO,GAAG,KAAK,CAAC;gBAChB,MAAM;YACV,CAAC;QACL,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAAE,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACjE,IAAI,GAAG,GAAG,KAAK,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,GAAG,IAAI,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;gBACnC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;oBAAE,GAAG,IAAI,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,mBAAmB,GAAa,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI;IAC1D,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO;IACnC,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,WAAW,CAAC,GAAG,EAAE,CAAC;IAElE,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9D,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC;IAC3C,MAAM,UAAU,GAA6C,EAAE,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,WAAW;YAAE,SAAS;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;gBACzC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEpC,gDAAgD;IAChD,IAAI,SAAS,GAAkD,IAAI,CAAC;IACpE,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACrD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;QACnE,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtD,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClD,IAAI,MAAM,KAAK,CAAC;oBAAE,SAAS;gBAC3B,UAAU,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,YAAY,CAAC;YACxE,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,UAAU,GAAG,GAAG,CAAC;QACrB,CAAC;QACD,IAAI,UAAU,GAAG,aAAa,EAAE,CAAC;YAC7B,aAAa,GAAG,UAAU,CAAC;YAC3B,SAAS,GAAG,IAAI,CAAC;QACrB,CAAC;IACL,CAAC;IAED,IAAI,aAAa,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE;YAAE,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACnF,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5D,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO;gBAAE,GAAG,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;AACL,CAAC,CAAC;AAEF,gEAAgE;AAChE,MAAM,4BAA4B,GAAa,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI;IACnE,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,cAAc,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC;QACf,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;gBACjD,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF,qDAAqD;AACrD,MAAM,2BAA2B,GAAa,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI;IAClE,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC,CAAC;IACF,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,cAAc,EAAE,CAAC;YACzC,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF,iDAAiD;AACjD,MAAM,wBAAwB,GAAa,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI;IAC/D,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE,CACrC,GAAG,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAClD,QAAQ,CAAC,EAAE,CAAC;YACR,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC;YAAC,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC;YAAC,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC;YACpE,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC;YAAC,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC;YAAC,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC;YACjE,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC;YAAC,KAAK,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC;YAAC,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC;YACrE,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC;QAC1B,CAAC;IACL,CAAC,CAAC,CAAC;IACP,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,MAAM,aAAa,CAAC;IAEzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,aAAa;YAAE,MAAM,KAAK,CAAC;IACvD,CAAC;AACL,CAAC,CAAC;AAEF,qDAAqD;AACrD,MAAM,uBAAuB,GAAa,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO;IAC7B,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,OAAO,CAAC;IAE7C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,OAAO;YAAE,MAAM,KAAK,CAAC;IAC9C,CAAC;AACL,CAAC,CAAC;AAEF,gFAAgF;AAChF,MAAM,oBAAoB,GAAa,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO;IACjC,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,GAAG,EAAE,CAAC;IAE5D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,SAAS;YAAE,SAAS;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACtC,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChD,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;oBACzC,IAAI,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;oBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC7C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;wBAC1D,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACjC,KAAK,EAAE,CAAC;4BACR,IAAI,EAAE,KAAK,EAAE;gCAAE,QAAQ,EAAE,CAAC;wBAC9B,CAAC;oBACL,CAAC;oBACD,IAAI,KAAK,KAAK,CAAC,IAAI,QAAQ,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC;wBACzC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC5B,OAAO;oBACX,CAAC;gBACL,CAAC;gBACD,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF,8CAA8C;AAC9C,MAAM,uBAAuB,GAAa,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI;IAC9D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,MAAM;QACtB,MAAM,IAAI,CAAC;QACX,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IAC9B,CAAC;AACL,CAAC,CAAC;AAEF,oFAAoF;AACpF,MAAM,yBAAyB,GAAa,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI;IAChE,mEAAmE;IACnE,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,EAAE,CACxC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1C,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,aAAa;QAAE,OAAO;IAE3B,6CAA6C;IAC7C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3C,iEAAiE;QACjE,iDAAiD;QACjD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEnC,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,aAAa;gBAAE,SAAS;YAEvD,uDAAuD;YACvD,kCAAkC;YAClC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;YAClB,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpC,aAAa,EAAE,CAAC;gBACpB,CAAC;gBACD,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,YAAY,IAAI,aAAa,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oBAC/E,QAAQ,GAAG,CAAC,CAAC;oBACb,MAAM;gBACV,CAAC;gBACD,gDAAgD;gBAChD,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC;oBAAE,MAAM;YAChD,CAAC;YAED,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;gBAChB,mCAAmC;gBACnC,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAC3D,MAAM,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE1E,IAAI,QAAQ,GAAG,iBAAiB,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC;gBAC7D,IAAI,QAAQ,EAAE,CAAC;oBACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACxC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;4BACtD,QAAQ,GAAG,KAAK,CAAC;4BACjB,MAAM;wBACV,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACX,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChC,OAAO;gBACX,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF,iEAAiE;AACjE,SAAS,YAAY,CAAC,OAAe,EAAE,SAAiB,EAAE,SAAiB,EAAE,UAAU,GAAG,KAAK;IAC3F,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,oDAAoD,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,SAAS,GAAyB;QACpC,CAAC,OAAO,EAAE,cAAc,CAAC;QACzB,CAAC,cAAc,EAAE,mBAAmB,CAAC;QACrC,CAAC,cAAc,EAAE,mBAAmB,CAAC;QACrC,CAAC,uBAAuB,EAAE,4BAA4B,CAAC;QACvD,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;QACrD,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;QAC/C,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;QAC7C,CAAC,eAAe,EAAE,oBAAoB,CAAC;QACvC,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;QAC7C,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;KACrD,CAAC;IAEF,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,SAAS;YAC3B,QAAQ,GAAG,KAAK,CAAC;YAEjB,IAAI,UAAU,EAAE,CAAC;gBACb,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC7E,CAAC;YACD,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS,CAAC,sCAAsC;YACzE,OAAO;gBACH,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC1F,QAAQ,EAAE,IAAI;aACjB,CAAC;QACN,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,6JAA6J,EAAE,CAAC;IACpL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,kGAAkG,EAAE,CAAC;AACzH,CAAC;AAED,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAE/C,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,WAAmB;IAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAE7F,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,gCAAgC;IAChC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/E,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACD,MAAM,SAAS,CAAC,IAAI,WAAW,cAAc,QAAQ,GAAG,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAChF,OAAO,UAAU,CAAC;QACtB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,+BAA+B;QACnC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,OAAO;KACF,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,gFAAgF,CAAC;KAC7F,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,+CAA+C;AAC/C,qBAAqB;AACrB,+CAA+C;AAC/C,8CAA8C;AAC9C,mDAAmD;AACnD,+CAA+C;AAE/C,OAAO;KACF,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,sDAAsD,CAAC;KACnE,QAAQ,CAAC,WAAW,EAAE,yDAAyD,CAAC;KAChF,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,EAAE,MAAM,CAAC;KACpE,MAAM,CAAC,KAAK,EAAE,eAAmC,EAAE,OAAyB,EAAE,EAAE;IAC7E,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAE/E,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,2EAA2E;IAC3E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAa,CAAC;IAE9C,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACpC,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,6DAA6D;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE;QAC5B,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,IAAI;QACX,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE;KAC5C,CAAC,CAAC;IAEH,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,2DAA2D;QAC3D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,0CAA0C;QAC1C,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,sDAAsD;QACtD,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,yCAAyC,IAAI,IAAI,CAAC;QAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,UAAU,GAAG,IAAI,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,uCAAuC,GAAG,CAAC,OAAO,IAAI,CAAC;QACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACrB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,gCAAgC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAa,EAAE,EAAE;QACnC,WAAW,EAAE,CAAC;QACd,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,yBAAyB,WAAW,UAAU,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAE5G,+EAA+E;QAC/E,oBAAoB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAEtC,4EAA4E;QAC5E,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAChB,WAAW,EAAE,CAAC;YACd,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,4BAA4B,WAAW,UAAU,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YAC1B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1D,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,gDAAgD,CAAC,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACnC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEP,+CAA+C;AAC/C,yBAAyB;AACzB,kDAAkD;AAClD,iDAAiD;AACjD,+CAA+C;AAE/C,SAAS,oBAAoB,CAAC,EAAa,EAAE,WAAmB;IAC5D,4BAA4B;IAC5B,MAAM,SAAS,GAAwH,EAAE,CAAC;IAE1I,oDAAoD;IACpD,IAAI,WAAW,GAAQ,EAAE,WAAW,EAAE,CAAC;IACvC,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;QACzG,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAEf,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;QAC5B,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5C,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;YAE7B,IAAI,QAAQ,GAAQ,EAAE,EAAE,EAAE,CAAC;YAE3B,QAAQ,IAAI,EAAE,CAAC;gBACX,KAAK,kBAAkB;oBACnB,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;oBAC5B,MAAM;gBAEV,KAAK,WAAW;oBACZ,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC7D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;4BACpC,QAAQ,CAAC,KAAK,GAAG,eAAe,CAAC;wBACrC,CAAC;6BAAM,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACjC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;4BACnC,yDAAyD;4BACzD,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gCAChB,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gCACtC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gCACvD,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gCAC7C,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gCACjB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oCACrB,QAAQ,CAAC,KAAK,GAAG,4BAA4B,OAAO,CAAC,QAAQ,EAAE,CAAC;oCAChE,MAAM;gCACV,CAAC;4BACL,CAAC;4BACD,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;4BACtD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;4BACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;4BACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;4BACzC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,CAAC,CAAC;4BAC3D,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;4BAChD,8CAA8C;4BAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACpF,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;4BAC3C,QAAQ,CAAC,IAAI,GAAG;gCACZ,OAAO,EAAE,QAAQ;gCACjB,UAAU,EAAE,UAAU;gCACtB,MAAM,EAAE,IAAI;gCACZ,IAAI,EAAE,QAAQ;gCACd,UAAU,EAAE,QAAQ,CAAC,MAAM;gCAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;6BACnD,CAAC;wBACN,CAAC;6BAAM,CAAC;4BACJ,qCAAqC;4BACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BACnC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;4BACrC,IAAI,WAAW,GAAa,EAAE,CAAC;4BAC/B,IAAI,CAAC;gCACD,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;qCAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;qCACzG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qCACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;4BACjE,CAAC;4BAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;4BACf,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;wBACnD,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,KAAK,YAAY;oBACb,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC7D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;4BACpC,QAAQ,CAAC,KAAK,GAAG,eAAe,CAAC;wBACrC,CAAC;6BAAM,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACjC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;4BACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;4BACxD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;4BACrF,QAAQ,CAAC,IAAI,GAAG;gCACZ,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;gCAC9B,SAAS,EAAE,KAAK,GAAG,CAAC;gCACpB,OAAO,EAAE,GAAG;gCACZ,UAAU,EAAE,KAAK,CAAC,MAAM;6BAC3B,CAAC;wBACN,CAAC;6BAAM,CAAC;4BACJ,QAAQ,CAAC,KAAK,GAAG,gBAAgB,CAAC;wBACtC,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,KAAK,mBAAmB;oBACpB,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC7D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;4BACpC,QAAQ,CAAC,KAAK,GAAG,eAAe,CAAC;wBACrC,CAAC;6BAAM,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACjC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;4BACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAClC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;4BACrC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;4BAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;4BACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,CAAC,CAAC;4BAE9D,QAAQ,CAAC,IAAI,GAAG;gCACZ,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oCAC7C,MAAM,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC;oCACrB,OAAO,EAAE,IAAI;oCACb,OAAO,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,UAAU;iCACxC,CAAC,CAAC;gCACH,SAAS,EAAE,UAAU;gCACrB,QAAQ,EAAE,OAAO,CAAC,QAAQ;6BAC7B,CAAC;wBACN,CAAC;6BAAM,CAAC;4BACJ,QAAQ,CAAC,KAAK,GAAG,gBAAgB,CAAC;wBACtC,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,KAAK,eAAe;oBAChB,IAAI,CAAC;wBACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;wBACjC,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;wBAC7C,QAAQ,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC;oBAC7B,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,KAAK,aAAa;oBACd,IAAI,CAAC;wBACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;wBAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;wBACtD,QAAQ,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC;oBAChC,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,KAAK,YAAY;oBACb,IAAI,CAAC;wBACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;wBACtC,wDAAwD;wBACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAClF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;wBAC5C,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;wBACpF,MAAM,KAAK,GAAa,EAAE,CAAC;wBAE3B,SAAS,SAAS,CAAC,GAAW;4BAC1B,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU;gCAAE,OAAO;4BACvC,IAAI,CAAC;gCACD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gCAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oCACvB,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU;wCAAE,MAAM;oCACtC,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;wCAAE,SAAS;oCACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oCACtC,IAAI,CAAC;wCACD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wCACnC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;4CACrB,SAAS,CAAC,QAAQ,CAAC,CAAC;wCACxB,CAAC;6CAAM,CAAC;4CACJ,6CAA6C;4CAC7C,MAAM,WAAW,GAAG,CAAC,QAAQ,IAAI,IAAI,KAAK,QAAQ;gDAC9C,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;4CACvD,IAAI,WAAW,EAAE,CAAC;gDACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;4CACrD,CAAC;wCACL,CAAC;oCACL,CAAC;oCAAC,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;gCAC9B,CAAC;4BACL,CAAC;4BAAC,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;wBAC9B,CAAC;wBAED,SAAS,CAAC,WAAW,CAAC,CAAC;wBACvB,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;oBAC1B,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;gBACL,iEAAiE;gBAEjE,KAAK,gBAAgB;oBACjB,IAAI,CAAC;wBACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;wBACvD,IAAI,IAAI,GAA2B,EAAE,CAAC;wBACtC,IAAI,OAAO,GAA2B,EAAE,CAAC;wBACzC,IAAI,OAAO,GAAG,EAAE,CAAC;wBAEjB,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;4BACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;4BAC1D,IAAI,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;4BAC9B,OAAO,GAAG,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;4BACpC,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;wBAC7B,CAAC;wBAED,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;wBAExC,8BAA8B;wBAC9B,IAAI,SAAS,GAAG,MAAM,CAAC;wBACvB,IAAI,OAAO,CAAC,MAAM,CAAC;4BAAE,SAAS,GAAG,SAAS,CAAC;6BACtC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC;4BAAE,SAAS,GAAG,MAAM,CAAC;6BAC5D,IAAI,OAAO,CAAC,QAAQ,CAAC;4BAAE,SAAS,GAAG,QAAQ,CAAC;6BAC5C,IAAI,OAAO,CAAC,kBAAkB,CAAC;4BAAE,SAAS,GAAG,OAAO,CAAC;6BACrD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,eAAe,CAAC;4BAAE,SAAS,GAAG,QAAQ,CAAC;6BACxE,IAAI,OAAO,CAAC,KAAK,CAAC;4BAAE,SAAS,GAAG,KAAK,CAAC;6BACtC,IAAI,OAAO,CAAC,eAAe,CAAC;4BAAE,SAAS,GAAG,SAAS,CAAC;6BACpD,IAAI,OAAO,CAAC,OAAO,CAAC;4BAAE,SAAS,GAAG,OAAO,CAAC;wBAE/C,+BAA+B;wBAC/B,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;wBACrG,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;wBAEzC,4BAA4B;wBAC5B,IAAI,OAAO,GAAG,WAAW,CAAC;wBAC1B,IAAI,OAAO,CAAC,aAAa,CAAC;4BAAE,OAAO,GAAG,UAAU,CAAC;6BAC5C,IAAI,OAAO,CAAC,mBAAmB,CAAC;4BAAE,OAAO,GAAG,mBAAmB,CAAC;6BAChE,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC;4BAAE,OAAO,GAAG,SAAS,CAAC;6BACjF,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC;4BAAE,OAAO,GAAG,MAAM,CAAC;wBACnE,+CAA+C;wBAE/C,8CAA8C;wBAC9C,IAAI,MAAM,GAAkB,IAAI,CAAC;wBACjC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;4BAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gCACnG,MAAM,GAAG,KAAK,CAAC;4BACnB,CAAC;iCAAM,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;gCAC9G,MAAM,GAAG,OAAO,CAAC;4BACrB,CAAC;wBACL,CAAC;wBAED,mCAAmC;wBACnC,MAAM,SAAS,GAAG,CAAC,UAAoB,EAAiB,EAAE;4BACtD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gCACzB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oCAAE,OAAO,CAAC,CAAC;4BAC3D,CAAC;4BACD,OAAO,IAAI,CAAC;wBAChB,CAAC,CAAC;wBAEF,MAAM,UAAU,GAAG,SAAS,CAAC;4BACzB,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB;4BAC/D,gBAAgB,EAAE,gBAAgB,EAAE,eAAe;4BACnD,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,gBAAgB;4BAC9E,aAAa,EAAE,aAAa,EAAE,YAAY;4BAC1C,cAAc,EAAE,cAAc,EAAE,aAAa;4BAC7C,YAAY;yBACf,CAAC,CAAC;wBAEH,MAAM,eAAe,GAAG,SAAS,CAAC;4BAC9B,qBAAqB,EAAE,oBAAoB;4BAC3C,iBAAiB,EAAE,gBAAgB;4BACnC,eAAe,EAAE,wBAAwB,EAAE,uBAAuB;4BAClE,aAAa,EAAE,gBAAgB;4BAC/B,oBAAoB,EAAE,mBAAmB;4BACzC,eAAe,EAAE,cAAc;4BAC/B,WAAW,EAAE,YAAY;yBAC5B,CAAC,CAAC;wBAEH,gFAAgF;wBAChF,IAAI,aAAa,GAAG,SAAS,CAAC;4BAC1B,gBAAgB,EAAE,oBAAoB,EAAE,YAAY;4BACpD,QAAQ,EAAE,YAAY;yBACzB,CAAC,CAAC;wBAEH,0BAA0B;wBAC1B,IAAI,cAAc,GAAkB,IAAI,CAAC;wBACzC,IAAI,eAAe,GAAkB,IAAI,CAAC;wBAC1C,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;4BACzB,cAAc,GAAG,SAAS,CAAC;gCACvB,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB;6BAC3F,CAAC,CAAC;4BACH,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;wBACrD,CAAC;wBAED,2DAA2D;wBAC3D,IAAI,gBAAgB,GAAG,gBAAgB,CAAC;wBACxC,IAAI,aAAa,GAAG,SAAS,CAAC;wBAC9B,IAAI,mBAAmB,GAAkB,IAAI,CAAC;wBAC9C,IAAI,mBAAmB,GAAkB,IAAI,CAAC;wBAE9C,IAAI,aAAa,EAAE,CAAC;4BAChB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;4BACtD,IAAI,CAAC;gCACD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC7C,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC/G,CAAC;gCACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oCACnB,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oCACzD,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oCACpE,qDAAqD;oCACrD,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oCAE/D,kBAAkB;oCAClB,IAAI,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wCAC1C,gBAAgB,GAAG,sBAAsB,CAAC;wCAC1C,aAAa,GAAG,SAAS,CAAC;oCAC9B,CAAC;yCAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wCACzC,gBAAgB,GAAG,sBAAsB,CAAC;wCAC1C,aAAa,GAAG,OAAO,CAAC;oCAC5B,CAAC;yCAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wCACzE,gBAAgB,GAAG,gBAAgB,CAAC;oCACxC,CAAC;oCACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;wCAAE,aAAa,GAAG,SAAS,CAAC;yCACzD,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;wCAAE,aAAa,GAAG,OAAO,CAAC;oCAE1F,+CAA+C;oCAC/C,IAAI,+DAA+D,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wCAC7E,OAAO,GAAG,aAAa,CAAC;oCAC5B,CAAC;gCACL,CAAC;4BACL,CAAC;4BAAC,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;wBAC9B,CAAC;wBAED,qEAAqE;wBACrE,IAAI,OAAO,KAAK,WAAW,IAAI,UAAU,EAAE,CAAC;4BACxC,IAAI,CAAC;gCACD,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;gCAChF,IAAI,+DAA+D,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oCACnF,OAAO,GAAG,aAAa,CAAC;gCAC5B,CAAC;4BACL,CAAC;4BAAC,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;wBAC9B,CAAC;wBAED,mDAAmD;wBACnD,IAAI,kBAAkB,GAAkB,IAAI,CAAC;wBAC7C,IAAI,eAAe,EAAE,CAAC;4BAClB,IAAI,CAAC;gCACD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC;gCAC9E,kBAAkB,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACjE,CAAC;4BAAC,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;wBAC9B,CAAC;wBAED,mEAAmE;wBACnE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;4BACtB,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa;4BACvD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU;4BAC/C,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe;yBACvD,CAAC,CAAC;wBACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;4BAC1B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS;4BAC/C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc;4BAChE,OAAO,EAAE,QAAQ;yBACpB,CAAC,CAAC;wBACH,MAAM,SAAS,GAAa,EAAE,CAAC;wBAC/B,MAAM,cAAc,GAAG,GAAG,CAAC;wBAC3B,uEAAuE;wBACvE,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;wBAEpD,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,MAAc,EAAE,KAAa,EAAE,EAAE;4BAC7D,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,cAAc;gCAAE,OAAO;4BAC5D,IAAI,CAAC;gCACD,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gCACrF,sCAAsC;gCACtC,MAAM,MAAM,GAAG,OAAO;qCACjB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;qCACzD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oCACX,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;wCAAE,OAAO,CAAC,CAAC,CAAC;oCACnD,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE;wCAAE,OAAO,CAAC,CAAC;oCAClD,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gCACxC,CAAC,CAAC,CAAC;gCAEP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;oCAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oCACxB,MAAM,MAAM,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;oCACvC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;oCAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;oCAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;oCAE5D,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wCACtB,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;4CAAE,SAAS;wCACxC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;wCACtD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oCAC1D,CAAC;yCAAM,CAAC;wCACJ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;wCACnD,2EAA2E;wCAC3E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;wCACpE,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;4CACvD,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wCACtE,CAAC;wCACD,mDAAmD;wCACnD,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CACzC,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;4CAC/D,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;4CAChF,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CACvC,CAAC,EAAE,CAAC;4CACD,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;wCACzD,CAAC;oCACL,CAAC;gCACL,CAAC;4BACL,CAAC;4BAAC,OAAO,CAAC,EAAE,CAAC,CAAC,4BAA4B,CAAC,CAAC;wBAChD,CAAC,CAAC;wBAEF,2DAA2D;wBAC3D,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;wBAC5F,MAAM,aAAa,GAAa,EAAE,CAAC;wBACnC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;4BAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gCAC9C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAC7B,CAAC;wBACL,CAAC;wBAED,mCAAmC;wBACnC,IAAI,CAAC;4BACD,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;4BACzE,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;gCAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CACxB,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;oCAC/D,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;oCAChF,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CACtE,EAAE,CAAC;oCACA,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gCAC/B,CAAC;4BACL,CAAC;wBACL,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;wBAE1B,8BAA8B;wBAC9B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;4BAC/B,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;4BAC3B,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC3B,CAAC;wBAED,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAEvE,uDAAuD;wBACvD,0DAA0D;wBAC1D,sEAAsE;wBACtE,6DAA6D;wBAC7D,IAAI,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;4BAC7B,IAAI,OAAO,GAAG,EAAE,CAAC;4BACjB,IAAI,SAAS,GAAG,CAAC,CAAC;4BAClB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;gCACrD,IAAI,KAAK,GAAG,SAAS,EAAE,CAAC;oCAAC,SAAS,GAAG,KAAK,CAAC;oCAAC,OAAO,GAAG,GAAG,CAAC;gCAAC,CAAC;4BAChE,CAAC;4BACD,IAAI,SAAS,GAAG,CAAC;gCAAE,aAAa,GAAG,OAAO,CAAC;wBAC/C,CAAC;wBAED,QAAQ,CAAC,IAAI,GAAG;4BACZ,SAAS;4BACT,UAAU;4BACV,OAAO;4BACP,MAAM;4BACN,GAAG;4BACH,OAAO;4BAEP,qBAAqB;4BACrB,UAAU;4BACV,eAAe;4BACf,aAAa;4BACb,cAAc;4BACd,eAAe;4BAEf,mBAAmB;4BACnB,gBAAgB;4BAChB,aAAa;4BACb,mBAAmB;4BACnB,mBAAmB;4BAEnB,cAAc;4BACd,kBAAkB;4BAElB,mBAAmB;4BACnB,WAAW;yBACd,CAAC;wBAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,sBAAsB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACpM,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,wDAAwD;gBAExD,qBAAqB;gBACrB,0DAA0D;gBAC1D,2DAA2D;gBAC3D,mDAAmD;gBAEnD,KAAK,YAAY;oBACb,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC7D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;4BACpC,QAAQ,CAAC,KAAK,GAAG,qCAAqC,CAAC;wBAC3D,CAAC;6BAAM,CAAC;4BACJ,wBAAwB;4BACxB,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;4BACxF,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;4BAC1H,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE;gCAAE,SAAS,CAAC,KAAK,EAAE,CAAC;4BAE7C,+CAA+C;4BAC/C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gCAC5B,MAAM,YAAY,GAAW,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;gCACnD,MAAM,KAAK,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;gCACvD,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;gCACxD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oCACnB,kDAAkD;oCAClD,SAAS,CAAC,GAAG,EAAE,CAAC;oCAChB,QAAQ,CAAC,KAAK,GAAG,6CAA6C,KAAK,eAAe,MAAM,wCAAwC,CAAC;oCACjI,MAAM;gCACV,CAAC;4BACL,CAAC;4BAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gCAC1B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;4BAC/C,CAAC;4BACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;4BACrD,0BAA0B;4BAC1B,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;4BAC1D,QAAQ,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;4BAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,gBAAgB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;wBACpK,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,KAAK,aAAa;oBACd,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC7D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;4BACpC,QAAQ,CAAC,KAAK,GAAG,qCAAqC,CAAC;wBAC3D,CAAC;6BAAM,CAAC;4BACJ,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;4BAC5C,MAAM,UAAU,GAAW,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;4BAEjD,+CAA+C;4BAC/C,IAAI,SAAS,EAAE,CAAC;gCACZ,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;gCACrD,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;gCACtD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;oCACnB,QAAQ,CAAC,KAAK,GAAG,6CAA6C,KAAK,eAAe,MAAM,0CAA0C,CAAC;oCACnI,MAAM;gCACV,CAAC;4BACL,CAAC;4BAED,yBAAyB;4BACzB,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;4BACxF,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;4BAC3H,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE;gCAAE,SAAS,CAAC,KAAK,EAAE,CAAC;4BAE7C,yDAAyD;4BACzD,IAAI,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gCACpC,oDAAoD;gCACpD,MAAM,WAAW,GAAG,qCAAqC,CAAC;gCAC1D,MAAM,UAAU,GAAa,EAAE,CAAC;gCAChC,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;oCAC1D,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oCAC9B,OAAO,EAAE,CAAC;gCACd,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gCAEV,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oCACxB,uDAAuD;oCACvD,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oCAC9C,IAAI,iBAAiB,GAAG,CAAC,CAAC,CAAC;oCAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wCAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;wCACxC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;4CAClE,iBAAiB,GAAG,CAAC,CAAC;wCAC1B,CAAC;wCACD,oEAAoE;wCACpE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;4CACrK,MAAM;wCACV,CAAC;oCACL,CAAC;oCAED,yDAAyD;oCACzD,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;oCAE5E,+EAA+E;oCAC/E,MAAM,SAAS,GAAG,iBAAiB,GAAG,CAAC,CAAC;oCACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oCACnD,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oCACjD,MAAM,MAAM,GAAG;wCACX,GAAG,QAAQ;wCACX,GAAG,cAAc;wCACjB,GAAG,SAAS;wCACZ,EAAE,EAAE,YAAY;wCAChB,WAAW;qCACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oCAEb,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;oCAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,6BAA6B,cAAc,CAAC,MAAM,yBAAyB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gCACjI,CAAC;qCAAM,CAAC;oCACJ,4CAA4C;oCAC5C,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC;gCAC9D,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACJ,2CAA2C;gCAC3C,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC;4BAC5D,CAAC;4BAED,2BAA2B;4BAC3B,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;4BAC1D,QAAQ,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;4BAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,mBAAmB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;wBACvK,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,KAAK,WAAW;oBACZ,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC7D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;4BACpC,QAAQ,CAAC,KAAK,GAAG,qCAAqC,CAAC;wBAC3D,CAAC;6BAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAClC,0DAA0D;4BAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BACtD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;4BACjD,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;4BAE9D,+CAA+C;4BAC/C,MAAM,WAAW,GAAa,EAAE,CAAC;4BACjC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;4BACrG,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gCAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gCAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oCACxB,IAAI,CAAC;wCACD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAS,CAAa,CAAC;wCAC7E,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;4CAClC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAW,CAAC,CAAC;4CACzC,0DAA0D;4CAC1D,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,GAAG,GAAG,CAAC;gDACrC,KAAK,KAAK,aAAa,EAAE,CAAC;gDAC1B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAW,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;4CACtE,CAAC;wCACL,CAAC;oCACL,CAAC;oCAAC,OAAO,CAAC,EAAE,CAAC,CAAC,0BAA0B,CAAC,CAAC;gCAC9C,CAAC;4BACL,CAAC;4BAED,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;gCAC/B,CAAC,CAAC,iBAAiB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG;gCAChE,CAAC,CAAC,sGAAsG,CAAC;4BAC7G,QAAQ,CAAC,KAAK,GAAG,mBAAmB,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;wBAC1E,CAAC;6BAAM,CAAC;4BACJ,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;4BAEnD,uBAAuB;4BACvB,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;4BAClI,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE;gCAAE,SAAS,CAAC,KAAK,EAAE,CAAC;4BAE7C,gEAAgE;4BAChE,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,CAAC;4BACvG,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;gCACpB,mDAAmD;gCACnD,SAAS,CAAC,GAAG,EAAE,CAAC;gCAChB,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;4BAClC,CAAC;iCAAM,CAAC;gCACJ,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gCACnD,yBAAyB;gCACzB,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gCAC1D,QAAQ,CAAC,IAAI,GAAG;oCACZ,OAAO,EAAE,IAAI;oCACb,IAAI,EAAE,QAAQ;oCACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;oCACzB,SAAS,EAAE,SAAS;oCACpB,aAAa,EAAE,IAAI;iCACtB,CAAC;gCACF,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;gCAC5F,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gCAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,iBAAiB,OAAO,CAAC,QAAQ,GAAG,aAAa,GAAG,WAAW,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;4BAClI,CAAC;wBACL,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,KAAK,eAAe;oBAChB,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC7D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;4BACpC,QAAQ,CAAC,KAAK,GAAG,qCAAqC,CAAC;wBAC3D,CAAC;6BAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAClC,QAAQ,CAAC,KAAK,GAAG,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;wBAC3D,CAAC;6BAAM,CAAC;4BACJ,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;4BACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;4BAClC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;4BACtD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;4BAErE,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gCAC3B,QAAQ,CAAC,KAAK,GAAG,cAAc,SAAS,wBAAwB,KAAK,CAAC,MAAM,SAAS,CAAC;4BAC1F,CAAC;iCAAM,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;gCAC7B,QAAQ,CAAC,KAAK,GAAG,yBAAyB,SAAS,YAAY,OAAO,GAAG,CAAC;4BAC9E,CAAC;iCAAM,CAAC;gCACJ,oBAAoB;gCACpB,SAAS,CAAC,IAAI,CAAC;oCACX,QAAQ;oCACR,WAAW,EAAE,OAAO;oCACpB,SAAS,EAAE,eAAe;oCAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oCACrB,YAAY,EAAE,OAAO,CAAC,QAAQ;iCACjC,CAAC,CAAC;gCACH,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE;oCAAE,SAAS,CAAC,KAAK,EAAE,CAAC;gCAE7C,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC;gCAC7C,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gCAExD,6CAA6C;gCAC7C,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC;gCACvD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACpC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;gCAEhD,cAAc;gCACd,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gCAE1D,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC;gCACjD,QAAQ,CAAC,IAAI,GAAG;oCACZ,OAAO,EAAE,IAAI;oCACb,IAAI,EAAE,QAAQ;oCACd,aAAa,EAAE,GAAG,SAAS,IAAI,OAAO,EAAE;oCACxC,YAAY;oCACZ,YAAY,EAAE,QAAQ,CAAC,MAAM;oCAC7B,SAAS,EAAE,SAAS;oCACpB,UAAU,EAAE,KAAK,CAAC,MAAM;oCACxB,SAAS,EAAE,SAAS;oCACpB,aAAa,EAAE,IAAI;oCACnB,IAAI,EAAE,SAAS,KAAK,CAAC;wCACjB,CAAC,CAAC,yBAAyB,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,wDAAwD;wCACvH,CAAC,CAAC,IAAI;iCACb,CAAC;gCAEF,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gCAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,mBAAmB,SAAS,IAAI,OAAO,OAAO,OAAO,CAAC,QAAQ,KAAK,YAAY,IAAI,QAAQ,CAAC,MAAM,UAAU,WAAW,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;4BAC1L,CAAC;wBACL,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,KAAK,WAAW;oBACZ,IAAI,CAAC;wBACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACzB,QAAQ,CAAC,KAAK,GAAG,6DAA6D,CAAC;wBACnF,CAAC;6BAAM,CAAC;4BACJ,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,EAAG,CAAC;4BAClC,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gCAChC,4CAA4C;gCAC5C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oCACnC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oCACjC,QAAQ,CAAC,IAAI,GAAG;wCACZ,OAAO,EAAE,IAAI;wCACb,MAAM,EAAE,QAAQ,CAAC,SAAS;wCAC1B,IAAI,EAAE,QAAQ,CAAC,YAAY;wCAC3B,MAAM,EAAE,wBAAwB;wCAChC,SAAS,EAAE,SAAS,CAAC,MAAM;qCAC9B,CAAC;oCACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,QAAQ,CAAC,YAAY,mBAAmB,CAAC,CAAC;gCAChG,CAAC;qCAAM,CAAC;oCACJ,QAAQ,CAAC,IAAI,GAAG;wCACZ,OAAO,EAAE,IAAI;wCACb,MAAM,EAAE,QAAQ,CAAC,SAAS;wCAC1B,IAAI,EAAE,QAAQ,CAAC,YAAY;wCAC3B,MAAM,EAAE,cAAc;wCACtB,SAAS,EAAE,SAAS,CAAC,MAAM;qCAC9B,CAAC;gCACN,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACJ,2BAA2B;gCAC3B,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gCACnE,QAAQ,CAAC,IAAI,GAAG;oCACZ,OAAO,EAAE,IAAI;oCACb,MAAM,EAAE,QAAQ,CAAC,SAAS;oCAC1B,IAAI,EAAE,QAAQ,CAAC,YAAY;oCAC3B,MAAM,EAAE,UAAU;oCAClB,SAAS,EAAE,SAAS,CAAC,MAAM;iCAC9B,CAAC;gCACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,mBAAmB,QAAQ,CAAC,YAAY,cAAc,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;4BACjH,CAAC;wBACL,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,KAAK,aAAa;oBACd,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC7D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;4BACpC,QAAQ,CAAC,KAAK,GAAG,qCAAqC,CAAC;4BACvD,MAAM;wBACV,CAAC;wBACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC3B,QAAQ,CAAC,KAAK,GAAG,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;4BACvD,MAAM;wBACV,CAAC;wBAED,2DAA2D;wBAC3D,wDAAwD;wBACxD,4DAA4D;wBAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;wBACxC,MAAM,kBAAkB,GAA2B;4BAC/C,uBAAuB;4BACvB,cAAc,EAAE,mBAAmB,EAAE,WAAW;4BAChD,gBAAgB,EAAE,WAAW,EAAE,UAAU;4BACzC,yBAAyB;4BACzB,eAAe,EAAE,oBAAoB,EAAE,eAAe;4BACtD,oBAAoB;4BACpB,iBAAiB,EAAG,iBAAiB;4BACrC,iBAAiB,EAAE,mBAAmB;4BACtC,kBAAkB,EAAE,kBAAkB;4BACtC,oBAAoB,EAAE,kBAAkB;4BACxC,qBAAqB,EAAE,oBAAoB;4BAC3C,qBAAqB,EAAE,mBAAmB;4BAC1C,WAAW,EAAE,aAAa,EAAE,UAAU;4BACtC,YAAY;4BACZ,MAAM,EAAE,YAAY,EAAE,iBAAiB;4BACvC,kBAAkB,EAAE,cAAc;4BAClC,qCAAqC;4BACrC,2BAA2B;4BAC3B,yBAAyB;4BACzB,8BAA8B;4BAC9B,wBAAwB;4BACxB,yBAAyB;4BACzB,kBAAkB;4BAClB,YAAY,EAAE,oBAAoB,EAAE,qBAAqB;4BACzD,YAAY,EAAE,gBAAgB;yBACjC,CAAC;wBAEF,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC5C,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;4BAC9C,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC1C,CAAC;wBAEF,IAAI,WAAW,EAAE,CAAC;4BACd,QAAQ,CAAC,KAAK,GAAG,uBAAuB,OAAO,CAAC,QAAQ,0KAA0K,CAAC;4BACnO,MAAM;wBACV,CAAC;wBACD,2DAA2D;wBAE3D,0DAA0D;wBAC1D,2DAA2D;wBAC3D,0DAA0D;wBAC1D,wDAAwD;wBACxD,mDAAmD;wBACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;wBACxD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC3B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;4BAC5C,yCAAyC;4BACzC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;4BAC3D,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gCAC/B,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;gCACnD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oCAC/B,EAAE,CAAC,cAAc,CAAC,aAAa,EAAE,wDAAwD,CAAC,CAAC;gCAC/F,CAAC;4BACL,CAAC;wBACL,CAAC;wBACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBAC7B,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;wBAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;wBAEjD,4CAA4C;wBAC5C,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACvD,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAC/G,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE;4BAAE,SAAS,CAAC,KAAK,EAAE,CAAC;wBAE7C,kCAAkC;wBAClC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;wBACnC,2DAA2D;wBAE3D,QAAQ,CAAC,IAAI,GAAG;4BACZ,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,OAAO,CAAC,QAAQ;4BACzB,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;4BACnD,aAAa,EAAE,IAAI;4BACnB,IAAI,EAAE,+GAA+G;yBACxH,CAAC;wBACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,OAAO,CAAC,QAAQ,mBAAmB,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBACrI,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAGV,KAAK,aAAa;oBACd,IAAI,CAAC;wBACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC3D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;4BACvE,QAAQ,CAAC,KAAK,GAAG,qCAAqC,CAAC;wBAC3D,CAAC;6BAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;4BACjC,QAAQ,CAAC,KAAK,GAAG,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;wBAC1D,CAAC;6BAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;4BAChC,QAAQ,CAAC,KAAK,GAAG,yBAAyB,GAAG,OAAO,CAAC,OAAO,GAAG,+CAA+C,CAAC;wBACnH,CAAC;6BAAM,CAAC;4BACJ,mEAAmE;4BACnE,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;4BACtD,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;4BACnI,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE;gCAAE,SAAS,CAAC,KAAK,EAAE,CAAC;4BAE7C,sCAAsC;4BACtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;4BACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;gCAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;4BAExE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;4BAChC,QAAQ,CAAC,IAAI,GAAG;gCACZ,OAAO,EAAE,IAAI;gCACb,OAAO,EAAE,OAAO,CAAC,OAAO;gCACxB,OAAO,EAAE,OAAO,CAAC,OAAO;gCACxB,aAAa,EAAE,IAAI;6BACtB,CAAC;4BACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,OAAO,CAAC,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;wBACpH,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,gDAAgD;gBAEhD,KAAK,WAAW;oBACZ,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;wBAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;wBAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,gBAAgB,IAAI,IAAI,IAAI,iBAAiB,QAAQ,GAAG,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;wBACnH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;wBAChF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;wBACrF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;wBACpF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;wBAClF,QAAQ,CAAC,IAAI,GAAG;4BACZ,MAAM,EAAE,UAAU;4BAClB,MAAM;4BACN,KAAK;4BACL,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAK,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAClE,OAAO,EAAE,OAAO;yBACnB,CAAC;oBACN,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,qBAAqB,CAAC,CAAC,OAAO,EAAE,CAAC;oBACtD,CAAC;oBACD,MAAM;gBAEV,KAAK,oBAAoB;oBACrB,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;wBAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;wBAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,0BAA0B,IAAI,4DAA4D,QAAQ,GAAG,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;wBAChK,QAAQ,CAAC,IAAI,GAAG;4BACZ,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE;gCAC7D,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCACtD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4BAC3C,CAAC,CAAC;yBACL,CAAC;oBACN,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;oBACpD,CAAC;oBACD,MAAM;gBAEV,KAAK,aAAa;oBACd,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;4BACnD,MAAM,WAAW,GAAG,qDAAqD,CAAC;4BAC1E,MAAM,OAAO,GAAG,EAAE,CAAC;4BACnB,IAAI,KAAK,CAAC;4BACV,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gCAClD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC3B,CAAC;4BACD,QAAQ,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC;wBAChC,CAAC;6BAAM,CAAC;4BACJ,QAAQ,CAAC,KAAK,GAAG,gBAAgB,CAAC;wBACtC,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,KAAK,aAAa;oBACd,IAAI,CAAC;wBACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;wBAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,gBAAgB,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;wBACnF,QAAQ,CAAC,IAAI,GAAG;4BACZ,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE;gCACzE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCAC9B,OAAO;oCACH,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;oCACd,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oCACxB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;iCAC3C,CAAC;4BACN,CAAC,CAAC;yBACL,CAAC;oBACN,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;4BAAE,QAAQ,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;4BAC5C,QAAQ,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC;oBACtD,CAAC;oBACD,MAAM;gBAEV,KAAK,cAAc;oBACf,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;wBAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;4BACnD,MAAM,QAAQ,GAAG,2DAA2D,CAAC;4BAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;4BACvB,IAAI,KAAK,CAAC;4BACV,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gCAC/C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvB,CAAC;4BACD,QAAQ,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClD,CAAC;6BAAM,CAAC;4BACJ,QAAQ,CAAC,KAAK,GAAG,gBAAgB,CAAC;wBACtC,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBACd,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBAEV,+CAA+C;gBAE/C,KAAK,qBAAqB,CAAC,CAAC,CAAC;oBACzB,8DAA8D;oBAC9D,kEAAkE;oBAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;oBAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACnD,QAAQ,CAAC,IAAI,GAAG;wBACZ,KAAK,EAAE,MAAM;wBACb,UAAU,EAAE,oBAAoB,CAAC,MAAM;wBACvC,aAAa,EAAE,UAAU,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM;qBAC3D,CAAC;oBACF,MAAM;gBACV,CAAC;gBAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBACpB,QAAQ,CAAC,IAAI,GAAG;wBACZ,OAAO,EAAE,UAAU,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM;wBAClD,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,IAAI;qBAC/B,CAAC;oBACF,MAAM;gBACV,CAAC;gBAED;oBACI,QAAQ,CAAC,KAAK,GAAG,yBAAyB,IAAI,EAAE,CAAC;YACzD,CAAC;YAED,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEtC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;IACL,CAAC,CAAC,CAAC;AACf,CAAC;AAED,+CAA+C;AAC/C,6CAA6C;AAC7C,+CAA+C;AAE/C,OAAO;KACF,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACvC,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,uEAAuE,CAAC;KACpF,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;IAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAEf,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,2BAA2B,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAa,EAAE,EAAE;QACnC,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,yBAAyB,WAAW,UAAU,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAE5G,uCAAuC;QACvC,oBAAoB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAEtC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAChB,WAAW,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,4BAA4B,WAAW,UAAU,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,oBAAoB,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAG5B,wBAAwB;AACxB,SAAS,WAAW,CAAC,GAAW,EAAE,KAAa,EAAE,YAAY,GAAG,CAAC;IAC7D,IAAI,YAAY,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IAEvC,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAEhG,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACpC,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAEpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBAClE,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;gBAC1B,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,oBAAoB;YACxB,CAAC;QACL,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,yBAAyB;IAC7B,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,iCAAiC;AACjC,SAAS,aAAa,CAAC,GAAW,EAAE,KAAa,EAAE,UAAkB;IACjE,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/F,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEpF,SAAS,SAAS,CAAC,UAAkB;QACjC,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU;YAAE,OAAO;QAEzC,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU;oBAAE,OAAO;gBACzC,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAEpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC7C,IAAI,CAAC;oBACD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACnC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;wBACrB,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACxB,CAAC;yBAAM,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBACpD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;4BACnE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gCAC3B,OAAO,CAAC,IAAI,CAAC;oCACT,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;oCAClC,IAAI,EAAE,CAAC,GAAG,CAAC;oCACX,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;iCAC7C,CAAC,CAAC;4BACP,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,SAAS;gBACb,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,SAAS;QACb,CAAC;IACL,CAAC;IAED,SAAS,CAAC,GAAG,CAAC,CAAC;IACf,OAAO,OAAO,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Code search engine for the Trace IDE bridge.
3
+ *
4
+ * Strategy:
5
+ * 1. ripgrep (rg) — tried first. 10-100x faster than an FS walk, natively
6
+ * supports regex and case-insensitive matching. Outputs JSON per match.
7
+ * Falls back gracefully if rg is not installed.
8
+ * 2. FS walk — same behaviour as the original searchInFiles() in index.ts,
9
+ * extended with optional regex and case-insensitive matching.
10
+ *
11
+ * Public API:
12
+ * searchCode(projectPath, query, opts?)
13
+ * → { matches: SearchMatch[], engine: 'ripgrep' | 'fs' }
14
+ *
15
+ * The `engine` field is returned to callers so they can include it in
16
+ * tool responses — agents can see which path ran and adjust expectations.
17
+ */
18
+ export interface SearchMatch {
19
+ file: string;
20
+ line: number;
21
+ content: string;
22
+ }
23
+ export interface SearchOptions {
24
+ isRegex?: boolean;
25
+ caseSensitive?: boolean;
26
+ maxResults?: number;
27
+ }
28
+ export declare function searchCode(projectPath: string, query: string, opts?: SearchOptions): Promise<{
29
+ matches: SearchMatch[];
30
+ engine: 'ripgrep' | 'fs';
31
+ }>;
package/dist/search.js ADDED
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Code search engine for the Trace IDE bridge.
3
+ *
4
+ * Strategy:
5
+ * 1. ripgrep (rg) — tried first. 10-100x faster than an FS walk, natively
6
+ * supports regex and case-insensitive matching. Outputs JSON per match.
7
+ * Falls back gracefully if rg is not installed.
8
+ * 2. FS walk — same behaviour as the original searchInFiles() in index.ts,
9
+ * extended with optional regex and case-insensitive matching.
10
+ *
11
+ * Public API:
12
+ * searchCode(projectPath, query, opts?)
13
+ * → { matches: SearchMatch[], engine: 'ripgrep' | 'fs' }
14
+ *
15
+ * The `engine` field is returned to callers so they can include it in
16
+ * tool responses — agents can see which path ran and adjust expectations.
17
+ */
18
+ import * as fs from 'fs';
19
+ import * as path from 'path';
20
+ import { exec } from 'child_process';
21
+ import { promisify } from 'util';
22
+ const execAsync = promisify(exec);
23
+ // ── ripgrep path ──────────────────────────────────────────────────────────────
24
+ async function searchWithRipgrep(projectPath, query, opts) {
25
+ const flags = [
26
+ '--json',
27
+ '--line-number',
28
+ opts.isRegex ? '' : '--fixed-strings',
29
+ opts.caseSensitive ? '--case-sensitive' : '--ignore-case',
30
+ `--max-count=${opts.maxResults}`,
31
+ // Exclude directories that are never source code
32
+ '--glob', '!node_modules/**',
33
+ '--glob', '!.git/**',
34
+ '--glob', '!dist/**',
35
+ '--glob', '!build/**',
36
+ '--glob', '!.next/**',
37
+ '--glob', '!coverage/**',
38
+ '--glob', '!.cache/**',
39
+ '--glob', '!.turbo/**',
40
+ ].filter(Boolean);
41
+ // Shell-safe: escape backslashes and double-quotes in the query
42
+ const escapedQuery = query.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
43
+ const cmd = `rg ${flags.join(' ')} "${escapedQuery}"`;
44
+ const { stdout } = await execAsync(cmd, {
45
+ cwd: projectPath,
46
+ maxBuffer: 10 * 1024 * 1024, // 10 MB — generous for large codebases
47
+ });
48
+ const matches = [];
49
+ for (const line of stdout.split('\n')) {
50
+ const trimmed = line.trim();
51
+ if (!trimmed || !trimmed.startsWith('{'))
52
+ continue;
53
+ try {
54
+ const obj = JSON.parse(trimmed);
55
+ if (obj.type !== 'match')
56
+ continue;
57
+ matches.push({
58
+ file: path.relative(projectPath, obj.data.path.text),
59
+ line: obj.data.line_number,
60
+ content: obj.data.lines.text.trimEnd().substring(0, 200),
61
+ });
62
+ if (matches.length >= opts.maxResults)
63
+ break;
64
+ }
65
+ catch {
66
+ // Skip malformed JSON lines (ripgrep guarantees valid JSON but be safe)
67
+ }
68
+ }
69
+ return matches;
70
+ }
71
+ // ── FS walk fallback ──────────────────────────────────────────────────────────
72
+ const FS_SEARCH_EXTENSIONS = new Set([
73
+ '.js', '.ts', '.jsx', '.tsx', '.vue', '.svelte',
74
+ '.css', '.scss', '.sass', '.less',
75
+ '.html', '.htm', '.json', '.md',
76
+ ]);
77
+ const FS_IGNORE_DIRS = new Set([
78
+ 'node_modules', '.git', 'dist', 'build',
79
+ '.next', '.nuxt', '.svelte-kit', '.cache',
80
+ 'coverage', '.turbo', '.vercel', '.output',
81
+ ]);
82
+ /** Build a line-matcher function from query + options. */
83
+ function buildMatcher(query, opts) {
84
+ if (opts.isRegex) {
85
+ try {
86
+ const re = new RegExp(query, opts.caseSensitive ? '' : 'i');
87
+ return (line) => re.test(line);
88
+ }
89
+ catch {
90
+ // Invalid regex — treat as a literal string (safe fallback)
91
+ }
92
+ }
93
+ if (opts.caseSensitive) {
94
+ return (line) => line.includes(query);
95
+ }
96
+ const lowerQuery = query.toLowerCase();
97
+ return (line) => line.toLowerCase().includes(lowerQuery);
98
+ }
99
+ function searchWithFs(projectPath, query, opts) {
100
+ const results = [];
101
+ const matcher = buildMatcher(query, opts);
102
+ function walkDir(dir) {
103
+ if (results.length >= opts.maxResults)
104
+ return;
105
+ let entries;
106
+ try {
107
+ entries = fs.readdirSync(dir);
108
+ }
109
+ catch {
110
+ return;
111
+ }
112
+ for (const entry of entries) {
113
+ if (results.length >= opts.maxResults)
114
+ return;
115
+ if (FS_IGNORE_DIRS.has(entry) || entry.startsWith('.'))
116
+ continue;
117
+ const fullPath = path.join(dir, entry);
118
+ let stat;
119
+ try {
120
+ stat = fs.statSync(fullPath);
121
+ }
122
+ catch {
123
+ continue;
124
+ }
125
+ if (stat.isDirectory()) {
126
+ walkDir(fullPath);
127
+ }
128
+ else if (FS_SEARCH_EXTENSIONS.has(path.extname(entry).toLowerCase())) {
129
+ let content;
130
+ try {
131
+ content = fs.readFileSync(fullPath, 'utf-8');
132
+ }
133
+ catch {
134
+ continue;
135
+ }
136
+ const lines = content.split('\n');
137
+ for (let i = 0; i < lines.length && results.length < opts.maxResults; i++) {
138
+ if (matcher(lines[i])) {
139
+ results.push({
140
+ file: path.relative(projectPath, fullPath),
141
+ line: i + 1,
142
+ content: lines[i].trim().substring(0, 200),
143
+ });
144
+ }
145
+ }
146
+ }
147
+ }
148
+ }
149
+ walkDir(projectPath);
150
+ return results;
151
+ }
152
+ // ── Public API ────────────────────────────────────────────────────────────────
153
+ export async function searchCode(projectPath, query, opts = {}) {
154
+ const resolved = {
155
+ isRegex: opts.isRegex ?? false,
156
+ caseSensitive: opts.caseSensitive ?? true,
157
+ maxResults: opts.maxResults ?? 20,
158
+ };
159
+ // Try ripgrep first — falls back to FS walk if rg is not installed
160
+ try {
161
+ const matches = await searchWithRipgrep(projectPath, query, resolved);
162
+ return { matches, engine: 'ripgrep' };
163
+ }
164
+ catch {
165
+ const matches = searchWithFs(projectPath, query, resolved);
166
+ return { matches, engine: 'fs' };
167
+ }
168
+ }
169
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gettrace/cli",
3
- "version": "1.3.8",
3
+ "version": "1.4.9",
4
4
  "description": "Trace IDE Bridge for connecting local filesystem to Trace browser extensions.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -47,4 +47,4 @@
47
47
  "dist",
48
48
  "README.md"
49
49
  ]
50
- }
50
+ }