@mirnoorata/codexa 0.4.0 → 0.5.0

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.
Files changed (42) hide show
  1. package/README.md +5 -2
  2. package/dist/cli.js +3 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/indexer/external-facts.d.ts +2 -1
  5. package/dist/indexer/external-facts.js +16 -0
  6. package/dist/indexer/external-facts.js.map +1 -1
  7. package/dist/indexer/freshness.d.ts +6 -1
  8. package/dist/indexer/freshness.js +13 -3
  9. package/dist/indexer/freshness.js.map +1 -1
  10. package/dist/indexer.js +46 -15
  11. package/dist/indexer.js.map +1 -1
  12. package/dist/mcp/compaction.js +5 -0
  13. package/dist/mcp/compaction.js.map +1 -1
  14. package/dist/mcp-repo-root.js +37 -9
  15. package/dist/mcp-repo-root.js.map +1 -1
  16. package/dist/query/change-plan.js +11 -0
  17. package/dist/query/change-plan.js.map +1 -1
  18. package/dist/query/complexity.d.ts +27 -0
  19. package/dist/query/complexity.js +226 -0
  20. package/dist/query/complexity.js.map +1 -0
  21. package/dist/query/post-edit/decision.js +17 -6
  22. package/dist/query/post-edit/decision.js.map +1 -1
  23. package/dist/query/post-edit.js +12 -0
  24. package/dist/query/post-edit.js.map +1 -1
  25. package/dist/risk-ingest.d.ts +2 -2
  26. package/dist/risk-ingest.js +152 -63
  27. package/dist/risk-ingest.js.map +1 -1
  28. package/dist/scip-import.d.ts +3 -0
  29. package/dist/scip-import.js +569 -0
  30. package/dist/scip-import.js.map +1 -0
  31. package/dist/static-analysis.d.ts +2 -1
  32. package/dist/static-analysis.js +353 -37
  33. package/dist/static-analysis.js.map +1 -1
  34. package/dist/symbol-report-ingest.d.ts +10 -1
  35. package/dist/symbol-report-ingest.js +256 -23
  36. package/dist/symbol-report-ingest.js.map +1 -1
  37. package/dist/types.d.ts +33 -1
  38. package/dist/types.js.map +1 -1
  39. package/integrations/.claude-plugin/marketplace.json +1 -1
  40. package/integrations/claude-code/.claude-plugin/plugin.json +1 -1
  41. package/package.json +3 -3
  42. package/plugins/codexa/.codex-plugin/plugin.json +1 -1
@@ -2,11 +2,14 @@ import { promises as fs } from "node:fs";
2
2
  import path from "node:path";
3
3
  import { buildIndexLocked } from "./indexer.js";
4
4
  import { loadExternalRiskSignalReport } from "./risk-ingest.js";
5
+ import { CODEXA_SCIP_SYMBOL_REPORT_GENERATOR, convertScipJsonReportToSymbolReport } from "./scip-import.js";
5
6
  import { validateCodexaSymbolReportFile } from "./symbol-report-ingest.js";
6
7
  import { isSubpath, normalizePath, stableId } from "./util.js";
7
8
  import { runCommand } from "./command.js";
8
9
  const STATIC_ANALYSIS_DIR = ".codex/static-analysis";
9
10
  const CODEQL_DB_DIR = ".codex/cache/codeql-db";
11
+ const MAX_GENERATED_SYMBOL_REPORT_BYTES = 2 * 1024 * 1024;
12
+ const CODEXA_CODEQL_SARIF_GENERATOR = "codexa-codeql-runner";
10
13
  export async function updateStaticAnalysisReports(repoInput, options = {}) {
11
14
  const repoRoot = path.resolve(repoInput);
12
15
  const timeoutMs = options.timeoutMs ?? 600_000;
@@ -27,6 +30,11 @@ export async function updateStaticAnalysisReports(repoInput, options = {}) {
27
30
  for (const source of options.symbolReports ?? []) {
28
31
  reports.push(await importSymbolReport(repoRoot, source));
29
32
  }
33
+ const scipReports = options.scipReports ?? [];
34
+ if (scipReports.length > 0) {
35
+ const importedScipReports = await importScipReports(repoRoot, scipReports);
36
+ reports.push(...importedScipReports);
37
+ }
30
38
  if (options.runSemgrep) {
31
39
  const run = await runSemgrep(repoRoot, options.semgrepConfigs ?? ["p/default"], timeoutMs);
32
40
  runs.push(run);
@@ -71,7 +79,7 @@ async function importReport(repoRoot, kind, sourceInput) {
71
79
  };
72
80
  }
73
81
  const destination = path.join(targetDir, reportFileName(kind, source));
74
- await fs.copyFile(source, destination);
82
+ await copyFileAtomic(source, destination);
75
83
  return {
76
84
  kind,
77
85
  source,
@@ -83,22 +91,227 @@ async function importSymbolReport(repoRoot, sourceInput) {
83
91
  await validateCodexaSymbolReportFile(repoRoot, sourceInput);
84
92
  return importReport(repoRoot, "symbol-report", sourceInput);
85
93
  }
94
+ async function importScipReports(repoRoot, sourceInputs) {
95
+ const staged = [];
96
+ let staleBackups = [];
97
+ try {
98
+ for (const sourceInput of sourceInputs) {
99
+ const source = path.resolve(sourceInput);
100
+ const report = await convertScipJsonReportToSymbolReport(repoRoot, sourceInput);
101
+ const destination = scipReportDestination(repoRoot, sourceInput);
102
+ const temp = temporaryPath(destination);
103
+ await fs.mkdir(path.dirname(destination), { recursive: true });
104
+ const stagedReport = { source, destination, temp, ready: false };
105
+ staged.push(stagedReport);
106
+ await writeValidatedSymbolReportTemp(repoRoot, temp, report);
107
+ stagedReport.ready = true;
108
+ }
109
+ const readyReports = staged.filter((report) => report.ready);
110
+ staleBackups = await stageStaleGeneratedScipReports(repoRoot, readyReports.map((report) => report.destination));
111
+ await publishStagedFiles(readyReports);
112
+ await discardStagedFileBackups(staleBackups);
113
+ staleBackups = [];
114
+ }
115
+ catch (error) {
116
+ await Promise.all(staged.map((entry) => fs.rm(entry.temp, { force: true }).catch(() => undefined)));
117
+ await restoreStagedFileBackups(staleBackups);
118
+ throw error;
119
+ }
120
+ return staged.filter((report) => report.ready).map((entry) => ({
121
+ kind: "scip",
122
+ source: entry.source,
123
+ path: normalizePath(path.relative(repoRoot, entry.destination)),
124
+ copied: true
125
+ }));
126
+ }
127
+ function scipReportDestination(repoRoot, sourceInput) {
128
+ const source = path.resolve(sourceInput);
129
+ return path.join(repoRoot, STATIC_ANALYSIS_DIR, reportFileName("scip", source).replace(/\.[^.]+$/i, ".symbols.json"));
130
+ }
131
+ async function stageStaleGeneratedScipReports(repoRoot, currentDestinations) {
132
+ const targetDir = path.join(repoRoot, STATIC_ANALYSIS_DIR);
133
+ await fs.mkdir(targetDir, { recursive: true });
134
+ const keep = new Set(currentDestinations.map((destination) => path.basename(destination)));
135
+ const entries = await fs.readdir(targetDir).catch(() => []);
136
+ const staleReportCandidates = entries.filter((entry) => /^scip-.*\.symbols\.json$/u.test(entry) && !keep.has(entry)).map((entry) => path.join(targetDir, entry));
137
+ const backups = [];
138
+ try {
139
+ for (const staleReport of staleReportCandidates) {
140
+ const staleStat = await lstatIfExists(staleReport);
141
+ if (staleStat && !staleStat.isFile()) {
142
+ throw new Error(`Stale generated SCIP report is not a file: ${normalizePath(staleReport)}`);
143
+ }
144
+ }
145
+ const staleReports = [];
146
+ for (const staleReport of staleReportCandidates) {
147
+ if (await isCodexaGeneratedScipSymbolReport(staleReport)) {
148
+ staleReports.push(staleReport);
149
+ }
150
+ }
151
+ for (const staleReport of staleReports) {
152
+ const staleStat = await lstatIfExists(staleReport);
153
+ if (!staleStat) {
154
+ continue;
155
+ }
156
+ const backup = temporaryPath(staleReport);
157
+ await fs.rename(staleReport, backup);
158
+ backups.push({ destination: staleReport, backup });
159
+ }
160
+ return backups;
161
+ }
162
+ catch (error) {
163
+ await restoreStagedFileBackups(backups);
164
+ throw error;
165
+ }
166
+ }
167
+ async function isCodexaGeneratedScipSymbolReport(reportPath) {
168
+ let parsed;
169
+ try {
170
+ parsed = JSON.parse(await fs.readFile(reportPath, "utf8"));
171
+ }
172
+ catch {
173
+ return false;
174
+ }
175
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
176
+ return false;
177
+ }
178
+ const record = parsed;
179
+ if (record.schemaVersion !== 1 || !Array.isArray(record.symbols)) {
180
+ return false;
181
+ }
182
+ if (record.generatedBy === CODEXA_SCIP_SYMBOL_REPORT_GENERATOR) {
183
+ return true;
184
+ }
185
+ return false;
186
+ }
187
+ async function writeValidatedSymbolReportAtomic(repoRoot, destination, value) {
188
+ const temp = temporaryPath(destination);
189
+ try {
190
+ await writeValidatedSymbolReportTemp(repoRoot, temp, value);
191
+ await fs.rename(temp, destination);
192
+ }
193
+ catch (error) {
194
+ await fs.rm(temp, { force: true }).catch(() => undefined);
195
+ throw error;
196
+ }
197
+ }
198
+ async function writeValidatedSymbolReportTemp(repoRoot, temp, value) {
199
+ const content = `${JSON.stringify(value, null, 2)}\n`;
200
+ if (Buffer.byteLength(content, "utf8") > MAX_GENERATED_SYMBOL_REPORT_BYTES) {
201
+ throw new Error(`Generated symbol report exceeds ${MAX_GENERATED_SYMBOL_REPORT_BYTES} bytes: ${normalizePath(path.basename(temp))}`);
202
+ }
203
+ await fs.writeFile(temp, content, "utf8");
204
+ await validateCodexaSymbolReportFile(repoRoot, temp);
205
+ }
206
+ async function copyFileAtomic(source, destination) {
207
+ const temp = temporaryPath(destination);
208
+ try {
209
+ await fs.copyFile(source, temp);
210
+ await fs.rename(temp, destination);
211
+ }
212
+ catch (error) {
213
+ await fs.rm(temp, { force: true }).catch(() => undefined);
214
+ throw error;
215
+ }
216
+ }
217
+ async function writeFileAtomic(destination, content) {
218
+ const temp = temporaryPath(destination);
219
+ try {
220
+ await fs.writeFile(temp, content, "utf8");
221
+ await fs.rename(temp, destination);
222
+ }
223
+ catch (error) {
224
+ await fs.rm(temp, { force: true }).catch(() => undefined);
225
+ throw error;
226
+ }
227
+ }
228
+ async function publishStagedFiles(entries) {
229
+ const destinations = new Set();
230
+ const backups = [];
231
+ const published = [];
232
+ try {
233
+ for (const entry of entries) {
234
+ if (destinations.has(entry.destination)) {
235
+ throw new Error(`Duplicate static analysis report destination: ${normalizePath(entry.destination)}`);
236
+ }
237
+ destinations.add(entry.destination);
238
+ const tempStat = await fs.lstat(entry.temp);
239
+ if (!tempStat.isFile()) {
240
+ throw new Error(`Static analysis staged report is not a file: ${normalizePath(entry.temp)}`);
241
+ }
242
+ const destinationStat = await lstatIfExists(entry.destination);
243
+ if (destinationStat && !destinationStat.isFile()) {
244
+ throw new Error(`Static analysis report destination is not a file: ${normalizePath(entry.destination)}`);
245
+ }
246
+ }
247
+ for (const entry of entries) {
248
+ const destinationStat = await lstatIfExists(entry.destination);
249
+ if (!destinationStat) {
250
+ continue;
251
+ }
252
+ const backup = temporaryPath(entry.destination);
253
+ await fs.rename(entry.destination, backup);
254
+ backups.push({ destination: entry.destination, backup });
255
+ }
256
+ for (const entry of entries) {
257
+ await fs.rename(entry.temp, entry.destination);
258
+ published.push({ destination: entry.destination });
259
+ }
260
+ await Promise.all(backups.map((backup) => fs.rm(backup.backup, { force: true }).catch(() => undefined)));
261
+ }
262
+ catch (error) {
263
+ await Promise.all(published.map((entry) => fs.rm(entry.destination, { force: true }).catch(() => undefined)));
264
+ await restoreStagedFileBackups(backups);
265
+ throw error;
266
+ }
267
+ }
268
+ async function discardStagedFileBackups(backups) {
269
+ await Promise.all(backups.map((backup) => fs.rm(backup.backup, { force: true }).catch(() => undefined)));
270
+ }
271
+ async function restoreStagedFileBackups(backups) {
272
+ for (const backup of backups.reverse()) {
273
+ await fs.rename(backup.backup, backup.destination).catch(() => undefined);
274
+ }
275
+ }
276
+ async function lstatIfExists(target) {
277
+ try {
278
+ return await fs.lstat(target);
279
+ }
280
+ catch (error) {
281
+ if (error.code === "ENOENT") {
282
+ return undefined;
283
+ }
284
+ throw error;
285
+ }
286
+ }
287
+ function temporaryPath(destination) {
288
+ return `${destination}.${process.pid}.${stableId("tmp", destination, Date.now(), process.hrtime.bigint().toString())}.tmp`;
289
+ }
86
290
  async function runSemgrep(repoRoot, configs, timeoutMs) {
87
291
  const output = path.join(repoRoot, STATIC_ANALYSIS_DIR, "semgrep.json");
292
+ const tempOutput = temporaryPath(output);
88
293
  await fs.mkdir(path.dirname(output), { recursive: true });
89
294
  const args = [
90
295
  "scan",
91
296
  ...configs.flatMap((config) => ["--config", config]),
92
297
  "--json",
93
298
  "--json-output",
94
- output,
299
+ tempOutput,
95
300
  "--metrics=off",
96
301
  repoRoot
97
302
  ];
98
- await runExternal("semgrep", args, { cwd: repoRoot, timeoutMs });
303
+ try {
304
+ await runExternal("semgrep", args, { cwd: repoRoot, timeoutMs });
305
+ await validateSemgrepReportFile(tempOutput);
306
+ await publishStagedFiles([{ temp: tempOutput, destination: output }]);
307
+ }
308
+ catch (error) {
309
+ await fs.rm(tempOutput, { force: true }).catch(() => undefined);
310
+ throw error;
311
+ }
99
312
  return {
100
313
  tool: "semgrep",
101
- command: commandForDisplay("semgrep", args),
314
+ command: commandForDisplay("semgrep", args.map((arg) => (arg === tempOutput ? output : arg))),
102
315
  reports: [normalizePath(path.relative(repoRoot, output))]
103
316
  };
104
317
  }
@@ -112,37 +325,106 @@ async function runCodeql(repoRoot, languages, suite, timeoutMs) {
112
325
  await fs.mkdir(path.dirname(dbRoot), { recursive: true });
113
326
  const createArgs = ["database", "create", dbRoot, "--db-cluster", `--language=${selected.join(",")}`, "--source-root", repoRoot, "--no-run-unnecessary-builds"];
114
327
  await runExternal("codeql", createArgs, { cwd: repoRoot, timeoutMs });
115
- const reports = [];
116
- for (const language of selected) {
117
- const dbPath = await findCodeqlDatabase(dbRoot, language);
118
- if (!dbPath) {
119
- continue;
328
+ const stagedReports = [];
329
+ let staleBackups = [];
330
+ try {
331
+ for (const language of selected) {
332
+ const dbPath = await findCodeqlDatabase(dbRoot, language);
333
+ if (!dbPath) {
334
+ continue;
335
+ }
336
+ const suiteLanguage = codeqlSuiteLanguage(language);
337
+ const output = path.join(repoRoot, STATIC_ANALYSIS_DIR, `codeql-${suiteLanguage}.sarif`);
338
+ const tempOutput = temporaryPath(output);
339
+ await fs.mkdir(path.dirname(output), { recursive: true });
340
+ const analyzeArgs = [
341
+ "database",
342
+ "analyze",
343
+ dbPath,
344
+ `codeql/${suiteLanguage}-queries:codeql-suites/${suiteLanguage}-${suite}.qls`,
345
+ "--format=sarif-latest",
346
+ `--output=${tempOutput}`,
347
+ `--sarif-category=${language}`,
348
+ "--download"
349
+ ];
350
+ const stagedReport = { output, tempOutput, ready: false };
351
+ stagedReports.push(stagedReport);
352
+ await runExternal("codeql", analyzeArgs, { cwd: repoRoot, timeoutMs });
353
+ await validateSarifReportFile(tempOutput);
354
+ await markCodeqlSarifReport(tempOutput);
355
+ stagedReport.ready = true;
120
356
  }
121
- const suiteLanguage = codeqlSuiteLanguage(language);
122
- const output = path.join(repoRoot, STATIC_ANALYSIS_DIR, `codeql-${suiteLanguage}.sarif`);
123
- await fs.mkdir(path.dirname(output), { recursive: true });
124
- const analyzeArgs = [
125
- "database",
126
- "analyze",
127
- dbPath,
128
- `codeql/${suiteLanguage}-queries:codeql-suites/${suiteLanguage}-${suite}.qls`,
129
- "--format=sarif-latest",
130
- `--output=${output}`,
131
- `--sarif-category=${language}`,
132
- "--download"
133
- ];
134
- await runExternal("codeql", analyzeArgs, { cwd: repoRoot, timeoutMs });
135
- reports.push(normalizePath(path.relative(repoRoot, output)));
357
+ const readyReports = stagedReports.filter((report) => report.ready);
358
+ if (readyReports.length === 0) {
359
+ throw new Error(`CodeQL database create completed, but no matching databases were found under ${normalizePath(path.relative(repoRoot, dbRoot))}.`);
360
+ }
361
+ staleBackups = await stageStaleGeneratedCodeqlReports(repoRoot, readyReports.map((report) => report.output));
362
+ await publishStagedFiles(readyReports.map((report) => ({ temp: report.tempOutput, destination: report.output })));
363
+ await discardStagedFileBackups(staleBackups);
364
+ staleBackups = [];
136
365
  }
137
- if (reports.length === 0) {
138
- throw new Error(`CodeQL database create completed, but no matching databases were found under ${normalizePath(path.relative(repoRoot, dbRoot))}.`);
366
+ catch (error) {
367
+ await Promise.all(stagedReports.map((report) => fs.rm(report.tempOutput, { force: true }).catch(() => undefined)));
368
+ await restoreStagedFileBackups(staleBackups);
369
+ throw error;
139
370
  }
371
+ const reports = stagedReports.filter((report) => report.ready).map((report) => normalizePath(path.relative(repoRoot, report.output)));
140
372
  return {
141
373
  tool: "codeql",
142
374
  command: `${commandForDisplay("codeql", createArgs)} && codeql database analyze ...`,
143
375
  reports
144
376
  };
145
377
  }
378
+ async function stageStaleGeneratedCodeqlReports(repoRoot, currentDestinations) {
379
+ const targetDir = path.join(repoRoot, STATIC_ANALYSIS_DIR);
380
+ await fs.mkdir(targetDir, { recursive: true });
381
+ const keep = new Set(currentDestinations.map((destination) => path.basename(destination)));
382
+ const entries = await fs.readdir(targetDir).catch(() => []);
383
+ const staleReportCandidates = entries.filter((entry) => /^codeql-(?:javascript|python)\.sarif$/u.test(entry) && !keep.has(entry)).map((entry) => path.join(targetDir, entry));
384
+ const backups = [];
385
+ try {
386
+ for (const staleReport of staleReportCandidates) {
387
+ const staleStat = await lstatIfExists(staleReport);
388
+ if (staleStat && !staleStat.isFile()) {
389
+ throw new Error(`Stale generated CodeQL report is not a file: ${normalizePath(staleReport)}`);
390
+ }
391
+ }
392
+ const staleReports = [];
393
+ for (const staleReport of staleReportCandidates) {
394
+ if (await isCodexaGeneratedCodeqlReport(staleReport)) {
395
+ staleReports.push(staleReport);
396
+ }
397
+ }
398
+ for (const staleReport of staleReports) {
399
+ const staleStat = await lstatIfExists(staleReport);
400
+ if (!staleStat) {
401
+ continue;
402
+ }
403
+ const backup = temporaryPath(staleReport);
404
+ await fs.rename(staleReport, backup);
405
+ backups.push({ destination: staleReport, backup });
406
+ }
407
+ return backups;
408
+ }
409
+ catch (error) {
410
+ await restoreStagedFileBackups(backups);
411
+ throw error;
412
+ }
413
+ }
414
+ async function isCodexaGeneratedCodeqlReport(reportPath) {
415
+ let parsed;
416
+ try {
417
+ parsed = JSON.parse(await fs.readFile(reportPath, "utf8"));
418
+ }
419
+ catch {
420
+ return false;
421
+ }
422
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
423
+ return false;
424
+ }
425
+ const properties = parsed.properties;
426
+ return Boolean(properties && typeof properties === "object" && !Array.isArray(properties) && properties.generatedBy === CODEXA_CODEQL_SARIF_GENERATOR);
427
+ }
146
428
  async function runShellcheck(repoRoot, timeoutMs) {
147
429
  const output = path.join(repoRoot, STATIC_ANALYSIS_DIR, "shellcheck.json");
148
430
  await fs.mkdir(path.dirname(output), { recursive: true });
@@ -161,7 +443,8 @@ async function runShellcheck(repoRoot, timeoutMs) {
161
443
  env: externalScannerEnv(),
162
444
  timeoutMs,
163
445
  maxBufferBytes: 16 * 1024 * 1024,
164
- okExitCodes: [0, 1]
446
+ okExitCodes: [0, 1],
447
+ killProcessGroup: true
165
448
  });
166
449
  if (result.ok) {
167
450
  const parsed = parseShellcheckComments(result.stdout);
@@ -191,7 +474,8 @@ async function runExternal(command, args, options) {
191
474
  env: externalScannerEnv(),
192
475
  timeoutMs: options.timeoutMs,
193
476
  maxBufferBytes: 16 * 1024 * 1024,
194
- okExitCodes: [0]
477
+ okExitCodes: [0],
478
+ killProcessGroup: true
195
479
  });
196
480
  if (result.ok) {
197
481
  return;
@@ -375,26 +659,58 @@ async function writeShellcheckRiskReport(output, repoRoot, comments, files) {
375
659
  }
376
660
  ];
377
661
  });
378
- await fs.writeFile(output, `${JSON.stringify({
662
+ await writeFileAtomic(output, `${JSON.stringify({
379
663
  tool: "shellcheck",
380
664
  generatedAt: new Date().toISOString(),
381
665
  files,
382
666
  risks
383
- }, null, 2)}\n`, "utf8");
667
+ }, null, 2)}\n`);
384
668
  }
385
669
  function normalizeShellcheckPath(filePath, repoRoot) {
386
- if (path.isAbsolute(filePath)) {
387
- if (!isSubpath(filePath, repoRoot)) {
388
- return undefined;
389
- }
390
- return normalizePath(path.relative(repoRoot, filePath));
670
+ const absolutePath = path.isAbsolute(filePath) ? path.resolve(filePath) : path.resolve(repoRoot, filePath);
671
+ if (!isSubpath(absolutePath, repoRoot)) {
672
+ return undefined;
391
673
  }
392
- const normalized = normalizePath(filePath);
393
- if (normalized === ".." || normalized.startsWith("../") || path.isAbsolute(normalized)) {
674
+ const normalized = normalizePath(path.relative(repoRoot, absolutePath));
675
+ if (!normalized || normalized === ".." || normalized.startsWith("../") || path.isAbsolute(normalized)) {
394
676
  return undefined;
395
677
  }
396
678
  return normalized;
397
679
  }
680
+ async function validateSemgrepReportFile(filePath) {
681
+ const parsed = await parseJsonReportFile(filePath, "Semgrep JSON report");
682
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
683
+ throw new Error("Semgrep produced a malformed JSON report.");
684
+ }
685
+ }
686
+ async function validateSarifReportFile(filePath) {
687
+ const parsed = await parseJsonReportFile(filePath, "SARIF report");
688
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed) || !Array.isArray(parsed.runs)) {
689
+ throw new Error("CodeQL produced a malformed SARIF report.");
690
+ }
691
+ }
692
+ async function markCodeqlSarifReport(filePath) {
693
+ const parsed = await parseJsonReportFile(filePath, "SARIF report");
694
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
695
+ throw new Error("CodeQL produced a malformed SARIF report.");
696
+ }
697
+ const record = parsed;
698
+ const properties = record.properties && typeof record.properties === "object" && !Array.isArray(record.properties) ? record.properties : {};
699
+ record.properties = { ...properties, generatedBy: CODEXA_CODEQL_SARIF_GENERATOR };
700
+ await fs.writeFile(filePath, `${JSON.stringify(record, null, 2)}\n`, "utf8");
701
+ }
702
+ async function parseJsonReportFile(filePath, label) {
703
+ try {
704
+ const stat = await fs.lstat(filePath);
705
+ if (!stat.isFile()) {
706
+ throw new Error(`${label} is not a regular file`);
707
+ }
708
+ return JSON.parse(await fs.readFile(filePath, "utf8"));
709
+ }
710
+ catch (error) {
711
+ throw new Error(`${label} is not valid JSON: ${error.message}`);
712
+ }
713
+ }
398
714
  function stringValue(value) {
399
715
  return typeof value === "string" && value.trim() ? value.trim() : undefined;
400
716
  }
@@ -1 +1 @@
1
- {"version":3,"file":"static-analysis.js","sourceRoot":"","sources":["../src/static-analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"static-analysis.js","sourceRoot":"","sources":["../src/static-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAqC,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,mCAAmC,EAAE,mCAAmC,EAAE,MAAM,kBAAkB,CAAC;AAC5G,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AACrD,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAC/C,MAAM,iCAAiC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1D,MAAM,6BAA6B,GAAG,sBAAsB,CAAC;AAyC7D,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,SAAiB,EAAE,UAAiC,EAAE;IACtG,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC;IAC/C,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAwB,EAAE,CAAC;IAErC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,MAAM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IAC9C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,mBAAmB,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,IAAI,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3F,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAChJ,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC,uBAAuB,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,IAAI,eAAe,EAAE,SAAS,CAAC,CAAC;QACzJ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,MAAM,EAAE,yBAAyB,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1J,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAqB,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACjJ,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,4BAA4B,CAAC,QAAQ,EAAE,yBAAyB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3H,MAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/G,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;QAC/B,IAAI;QACJ,eAAe;QACf,KAAK;QACL,IAAI,EAAE,2BAA2B,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC;KAChI,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAkC,EAAE,WAAmB;IACnG,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,mDAAmD,WAAW,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,IAAI,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,IAAI;YACJ,MAAM;YACN,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACvE,MAAM,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1C,OAAO;QACL,IAAI;QACJ,MAAM;QACN,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzD,MAAM,EAAE,IAAI;KACb,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,WAAmB;IACrE,MAAM,8BAA8B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC5D,OAAO,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,QAAgB,EAAE,YAAsB;IACvE,MAAM,MAAM,GAAiF,EAAE,CAAC;IAChG,IAAI,YAAY,GAAmD,EAAE,CAAC;IACtE,IAAI,CAAC;QACH,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAChF,MAAM,WAAW,GAAG,qBAAqB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACjE,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1B,MAAM,8BAA8B,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7D,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7D,YAAY,GAAG,MAAM,8BAA8B,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAChH,MAAM,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAC;QAC7C,YAAY,GAAG,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpG,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,EAAE,MAAe;QACrB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,EAAE,IAAI;KACb,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB,EAAE,WAAmB;IAClE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;AACxH,CAAC;AAED,KAAK,UAAU,8BAA8B,CAAC,QAAgB,EAAE,mBAA6B;IAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACjK,MAAM,OAAO,GAAmD,EAAE,CAAC;IACnE,IAAI,CAAC;QACH,KAAK,MAAM,WAAW,IAAI,qBAAqB,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,8CAA8C,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QACD,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,WAAW,IAAI,qBAAqB,EAAE,CAAC;YAChD,IAAI,MAAM,iCAAiC,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iCAAiC,CAAC,UAAkB;IACjE,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,mCAAmC,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,gCAAgC,CAAC,QAAgB,EAAE,WAAmB,EAAE,KAAc;IACnG,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,8BAA8B,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,8BAA8B,CAAC,QAAgB,EAAE,IAAY,EAAE,KAAc;IAC1F,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACtD,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,iCAAiC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,mCAAmC,iCAAiC,WAAW,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACvI,CAAC;IACD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1C,MAAM,8BAA8B,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,WAAmB;IAC/D,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,WAAmB,EAAE,OAAe;IACjE,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1C,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAAqD;IACrF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,OAAO,GAAmD,EAAE,CAAC;IACnE,MAAM,SAAS,GAAmC,EAAE,CAAC;IACrD,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,iDAAiD,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACvG,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,gDAAgD,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/F,CAAC;YACD,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/D,IAAI,eAAe,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CAAC,qDAAqD,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC3G,CAAC;QACH,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/D,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/C,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC3G,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9G,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,OAAkC;IACxE,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,OAAuD;IAC7F,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACvC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAc;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB;IACxC,OAAO,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;AAC7H,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,OAAiB,EAAE,SAAiB;IAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG;QACX,MAAM;QACN,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpD,QAAQ;QACR,eAAe;QACf,UAAU;QACV,eAAe;QACf,QAAQ;KACT,CAAC;IACF,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,MAAM,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7F,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,SAAmB,EAAE,KAAa,EAAE,SAAiB;IAC9F,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,6BAA6B,CAAC,CAAC;IAChK,MAAM,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IAEtE,MAAM,aAAa,GAAkE,EAAE,CAAC;IACxF,IAAI,YAAY,GAAmD,EAAE,CAAC;IACtE,IAAI,CAAC;QACH,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YACD,MAAM,aAAa,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,UAAU,aAAa,QAAQ,CAAC,CAAC;YACzF,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,WAAW,GAAG;gBAClB,UAAU;gBACV,SAAS;gBACT,MAAM;gBACN,UAAU,aAAa,0BAA0B,aAAa,IAAI,KAAK,MAAM;gBAC7E,uBAAuB;gBACvB,YAAY,UAAU,EAAE;gBACxB,oBAAoB,QAAQ,EAAE;gBAC9B,YAAY;aACb,CAAC;YACF,MAAM,YAAY,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC1D,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,MAAM,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;YACvE,MAAM,uBAAuB,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACxC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,gFAAgF,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACrJ,CAAC;QACD,YAAY,GAAG,MAAM,gCAAgC,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7G,MAAM,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAClH,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAC;QAC7C,YAAY,GAAG,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnH,MAAM,wBAAwB,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtI,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,GAAG,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,iCAAiC;QACpF,OAAO;KACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gCAAgC,CAAC,QAAgB,EAAE,mBAA6B;IAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,wCAAwC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9K,MAAM,OAAO,GAAmD,EAAE,CAAC;IACnE,IAAI,CAAC;QACH,KAAK,MAAM,WAAW,IAAI,qBAAqB,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,gDAAgD,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;QACD,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,WAAW,IAAI,qBAAqB,EAAE,CAAC;YAChD,IAAI,MAAM,6BAA6B,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;YACnD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,6BAA6B,CAAC,UAAkB;IAC7D,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAI,MAAmC,CAAC,UAAU,CAAC;IACnE,OAAO,OAAO,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAK,UAAsC,CAAC,WAAW,KAAK,6BAA6B,CAAC,CAAC;AACtL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,SAAiB;IAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAC3E,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,CAAC,eAAe,EAAE,GAAG,KAAK,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,yBAAyB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7D,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,2CAA2C;YACpD,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE;QAClD,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,kBAAkB,EAAE;QACzB,SAAS;QACT,cAAc,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAChC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACnB,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,yBAAyB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC;YAC9C,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAI,MAAM,CAAC,KAA2C,EAAE,IAAI,CAAC;IACvE,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,oGAAoG,CAAC,CAAC;IACxH,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,KAAK,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACjF,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAe,EAAE,IAAc,EAAE,OAA2C;IACrG,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE;QAC7C,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,kBAAkB,EAAE;QACzB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,cAAc,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QAChC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChB,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAI,MAAM,CAAC,KAA2C,EAAE,IAAI,CAAC;IACvE,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,0FAA0F,CAAC,CAAC;IACxH,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,oBAAoB,OAAO,CAAC,SAAS,KAAK,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,oDAAoD,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACjF,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,UAAU,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,OAAO,GAAG;QACd,MAAM;QACN,MAAM;QACN,MAAM;QACN,SAAS;QACT,OAAO;QACP,QAAQ;QACR,KAAK;QACL,MAAM;QACN,MAAM;QACN,QAAQ;QACR,YAAY;QACZ,SAAS;KACV,CAAC;IACF,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;IACH,CAAC;IACD,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC;IAC9B,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC;IAC9B,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC;IAClC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,IAAkC,EAAE,MAAc;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC;IACnH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,SAAiB;IACnE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE;QACxG,GAAG,EAAE,QAAQ;QACb,GAAG,EAAE,kBAAkB,EAAE;QACzB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC;QACtC,cAAc,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;QAC/B,WAAW,EAAE,CAAC,CAAC,CAAC;KACjB,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACrH,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,wBAAwB,CAAC,YAAY,CAAC,EAAE,CAAC;YACrE,SAAS;QACX,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACvE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,QAAgB;IACrD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7H,KAAK,UAAU,IAAI,CAAC,WAAmB,EAAE,KAAa;QACpD,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrD,IAAI,OAA2E,CAAC;QAChF,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACjF,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC3B,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE;gBACtC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE;aAC7B,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACtC,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAAC,YAAoB;IACpD,OAAO,CACL,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC;QAClC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;QAChC,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACvC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/B,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,YAAoB;IACvC,OAAO,4BAA4B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,YAAoB;IACjD,IAAI,MAAiC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5F,OAAO,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAUD,SAAS,uBAAuB,CAAC,MAAc;IAC7C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAI,MAAiC,CAAC,QAAQ,CAAC;QAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,MAAc,EAAE,QAAgB,EAAE,QAA6B,EAAE,KAAe;IACvH,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,oBAAoB,CAAC;QACrE,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,OAAO;YACL;gBACE,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC/B,MAAM,EAAE,gBAAgB,IAAI,EAAE;gBAC9B,QAAQ;gBACR,UAAU,EAAE,eAAe;gBAC3B,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC;gBAChC,MAAM,EAAE,OAAO;aAChB;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,eAAe,CACnB,MAAM,EACN,GAAG,IAAI,CAAC,SAAS,CACf;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,KAAK;QACL,KAAK;KACN,EACD,IAAI,EACJ,CAAC,CACF,IAAI,CACN,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAgB,EAAE,QAAgB;IACjE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC3G,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACtG,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,QAAgB;IACvD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAC1E,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,QAAgB;IACrD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,MAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1H,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,QAAgB;IACnD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAqC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvK,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;IAClF,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,QAAgB,EAAE,KAAa;IAChE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,wBAAwB,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,uBAAwB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAyB;IACnD,MAAM,UAAU,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC;IACxC,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,OAA+B;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAmB;IACnD,MAAM,OAAO,GAA2B;QACtC,UAAU,EAAE,uBAAuB;QACnC,UAAU,EAAE,uBAAuB;QACnC,EAAE,EAAE,uBAAuB;QAC3B,EAAE,EAAE,uBAAuB;QAC3B,EAAE,EAAE,QAAQ;KACb,CAAC;IACF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACtK,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAgB;IAChE,MAAM,UAAU,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACvG,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAgB;IAChD,IAAI,QAAQ,KAAK,uBAAuB,EAAE,CAAC;QACzC,OAAO,CAAC,uBAAuB,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CAAC,QAAQ,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,OAAO,QAAQ,KAAK,uBAAuB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxE,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,IAAc;IACxD,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,SAAS,2BAA2B,CAClC,QAAgB,EAChB,OAA+B,EAC/B,IAAyB,EACzB,eAAuB,EACvB,WAA2C,EAC3C,KAA8B;IAE9B,MAAM,KAAK,GAAG;QACZ,+BAA+B;QAC/B,SAAS,QAAQ,EAAE;QACnB,sBAAsB,OAAO,CAAC,MAAM,EAAE;QACtC,+BAA+B,eAAe,EAAE;QAChD,KAAK,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,MAAM,WAAW,KAAK,CAAC,OAAO,CAAC,MAAM,aAAa,KAAK,CAAC,UAAU,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC,oBAAoB;KACjJ,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;QACtC,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,SAAS,QAAQ,CAAC;YACzF,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,UAAU,QAAQ,CAAC;YAC9F,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,sJAAsJ,CAAC,CAAC;IACvK,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -3,6 +3,15 @@ export interface ExternalSymbolFacts {
3
3
  files: FileFact[];
4
4
  symbols: SymbolFact[];
5
5
  graphEdges: GraphEdgeFact[];
6
+ reportHashes: Record<string, string>;
7
+ diagnostics: ExternalSymbolReportDiagnostic[];
8
+ }
9
+ export interface ExternalSymbolReportDiagnostic {
10
+ path: string;
11
+ reason: "report-too-large" | "invalid-json" | "invalid-symbol-report";
12
+ sizeBytes?: number;
13
+ limitBytes?: number;
6
14
  }
7
15
  export declare function validateCodexaSymbolReportFile(repoRoot: string, sourceInput: string): Promise<void>;
8
- export declare function loadExternalSymbolReportFacts(repoRoot: string, snapshotId: string, indexedAt: string, dirtyFiles: Set<string>): Promise<ExternalSymbolFacts>;
16
+ export declare function loadExternalSymbolReportFacts(repoRoot: string, snapshotId: string, indexedAt: string, dirtyFiles: Set<string>, knownSymbolReportPaths?: Set<string>, candidateExtraPaths?: Set<string>): Promise<ExternalSymbolFacts>;
17
+ export declare function externalSymbolReportSnapshot(repoRoot: string, knownSymbolReportPaths?: Set<string>, candidateExtraPaths?: Set<string>): Promise<Pick<ExternalSymbolFacts, "reportHashes" | "diagnostics">>;