code-auditor-mcp 3.7.0 → 3.8.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 (121) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +43 -1
  3. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  4. package/dist/analyzers/cross-language/SchemaValidator.js +122 -43
  5. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  6. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +2 -2
  7. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +6 -7
  8. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  9. package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
  10. package/dist/analyzers/ruleRegistry.js +19 -18
  11. package/dist/analyzers/ruleRegistry.js.map +1 -1
  12. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +9 -1
  13. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  14. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +63 -44
  15. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  16. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  17. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +76 -28
  18. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  19. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +73 -13
  20. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  21. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +12 -2
  22. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  23. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +30 -18
  24. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  25. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -8
  26. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  27. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +54 -45
  28. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  29. package/dist/analyzers/universal/functionConcerns.d.ts +9 -4
  30. package/dist/analyzers/universal/functionConcerns.d.ts.map +1 -1
  31. package/dist/analyzers/universal/functionConcerns.js +25 -11
  32. package/dist/analyzers/universal/functionConcerns.js.map +1 -1
  33. package/dist/analyzers/universal/schema/codeAnalysis.js +4 -4
  34. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  35. package/dist/analyzers/universal/schema/jsonSchema.js +124 -11
  36. package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
  37. package/dist/auditRouter.d.ts.map +1 -1
  38. package/dist/auditRouter.js +4 -6
  39. package/dist/auditRouter.js.map +1 -1
  40. package/dist/auditRunner.js +1 -1
  41. package/dist/auditRunner.js.map +1 -1
  42. package/dist/cli.js +284 -75
  43. package/dist/cli.js.map +1 -1
  44. package/dist/config/configLoader.d.ts.map +1 -1
  45. package/dist/config/configLoader.js +23 -0
  46. package/dist/config/configLoader.js.map +1 -1
  47. package/dist/config/defaults.d.ts +3 -0
  48. package/dist/config/defaults.d.ts.map +1 -1
  49. package/dist/config/defaults.js +30 -8
  50. package/dist/config/defaults.js.map +1 -1
  51. package/dist/conventions/conventionMiner.d.ts +18 -3
  52. package/dist/conventions/conventionMiner.d.ts.map +1 -1
  53. package/dist/conventions/conventionMiner.js +130 -12
  54. package/dist/conventions/conventionMiner.js.map +1 -1
  55. package/dist/daemon/core.d.ts +128 -0
  56. package/dist/daemon/core.d.ts.map +1 -0
  57. package/dist/daemon/core.js +700 -0
  58. package/dist/daemon/core.js.map +1 -0
  59. package/dist/daemon/lspServer.d.ts +51 -0
  60. package/dist/daemon/lspServer.d.ts.map +1 -0
  61. package/dist/daemon/lspServer.js +168 -0
  62. package/dist/daemon/lspServer.js.map +1 -0
  63. package/dist/daemon/main.d.ts +34 -0
  64. package/dist/daemon/main.d.ts.map +1 -0
  65. package/dist/daemon/main.js +147 -0
  66. package/dist/daemon/main.js.map +1 -0
  67. package/dist/daemon/resolve.d.ts +41 -0
  68. package/dist/daemon/resolve.d.ts.map +1 -0
  69. package/dist/daemon/resolve.js +90 -0
  70. package/dist/daemon/resolve.js.map +1 -0
  71. package/dist/daemon/socketClient.d.ts +21 -0
  72. package/dist/daemon/socketClient.d.ts.map +1 -0
  73. package/dist/daemon/socketClient.js +60 -0
  74. package/dist/daemon/socketClient.js.map +1 -0
  75. package/dist/daemon/socketServer.d.ts +33 -0
  76. package/dist/daemon/socketServer.d.ts.map +1 -0
  77. package/dist/daemon/socketServer.js +106 -0
  78. package/dist/daemon/socketServer.js.map +1 -0
  79. package/dist/daemon/types.d.ts +78 -0
  80. package/dist/daemon/types.d.ts.map +1 -0
  81. package/dist/daemon/types.js +10 -0
  82. package/dist/daemon/types.js.map +1 -0
  83. package/dist/dataPaths.d.ts +21 -0
  84. package/dist/dataPaths.d.ts.map +1 -1
  85. package/dist/dataPaths.js +27 -0
  86. package/dist/dataPaths.js.map +1 -1
  87. package/dist/hooks/core.d.ts.map +1 -1
  88. package/dist/hooks/core.js +21 -4
  89. package/dist/hooks/core.js.map +1 -1
  90. package/dist/languages/RuntimeManager.js +10 -0
  91. package/dist/languages/RuntimeManager.js.map +1 -1
  92. package/dist/languages/go/analyzer +0 -0
  93. package/dist/languages/go/analyzer-src/analyzer.go +166 -35
  94. package/dist/languages/go/analyzer-src/solid.go +80 -172
  95. package/dist/languages/go/analyzer-src/types.go +18 -18
  96. package/dist/ledger.d.ts +1 -1
  97. package/dist/ledger.d.ts.map +1 -1
  98. package/dist/ledger.js +3 -3
  99. package/dist/ledger.js.map +1 -1
  100. package/dist/mcpAuditJobs.js +1 -1
  101. package/dist/mcpAuditJobs.js.map +1 -1
  102. package/dist/nextFileIncremental.d.ts +9 -3
  103. package/dist/nextFileIncremental.d.ts.map +1 -1
  104. package/dist/nextFileIncremental.js +32 -6
  105. package/dist/nextFileIncremental.js.map +1 -1
  106. package/dist/pipeline.d.ts +26 -0
  107. package/dist/pipeline.d.ts.map +1 -1
  108. package/dist/pipeline.js +86 -10
  109. package/dist/pipeline.js.map +1 -1
  110. package/dist/pipelineAdapters.d.ts +1 -1
  111. package/dist/pipelineAdapters.js +1 -1
  112. package/dist/reporting/csvReportGenerator.js +1 -1
  113. package/dist/ruleAliases.d.ts.map +1 -1
  114. package/dist/ruleAliases.js +41 -2
  115. package/dist/ruleAliases.js.map +1 -1
  116. package/dist/types.d.ts +23 -1
  117. package/dist/types.d.ts.map +1 -1
  118. package/dist/types.js.map +1 -1
  119. package/package.json +5 -2
  120. package/plugin/.claude-plugin/plugin.json +1 -1
  121. package/plugin/skills/code-auditor/SKILL.md +6 -6
@@ -194,18 +194,7 @@ function buildDatabaseCall(node, ast, scan) {
194
194
  const hasOrgFilter = hasOrganizationFilter(nodeText, config);
195
195
  const { hasFilter, isPureWrite } = detectQueryFiltering(nodeText);
196
196
  const security = withRuleTiming('sql-injection-risk', () => checkQuerySecurity(node, nodeText, ast, scan));
197
- let callType = 'unknown';
198
- if (isSqlQuery) {
199
- callType = 'sql';
200
- }
201
- else if (isOrmCall) {
202
- for (const [dbType, importInfo] of dbImports) {
203
- if (importInfo.hasImports) {
204
- callType = dbType;
205
- break;
206
- }
207
- }
208
- }
197
+ const callType = classifyCallType(isSqlQuery, isOrmCall, dbImports);
209
198
  return {
210
199
  type: callType,
211
200
  method: extractMethodName(node, adapter, sourceCode),
@@ -213,6 +202,7 @@ function buildDatabaseCall(node, ast, scan) {
213
202
  line: node.location.start.line,
214
203
  column: node.location.start.column,
215
204
  tables,
205
+ queryText: nodeText,
216
206
  hasOrganizationFilter: hasOrgFilter,
217
207
  hasFilter,
218
208
  isPureWrite,
@@ -221,6 +211,22 @@ function buildDatabaseCall(node, ast, scan) {
221
211
  enclosingFunction: findEnclosingFunctionName(node, adapter),
222
212
  };
223
213
  }
214
+ /**
215
+ * Classify a SQL/ORM candidate as the concrete database call type: `sql` for a
216
+ * raw SQL query, or the ORM type name (e.g. `knex`) resolved from the first
217
+ * imported DB driver; `unknown` when neither applies.
218
+ */
219
+ function classifyCallType(isSqlQuery, isOrmCall, dbImports) {
220
+ if (isSqlQuery)
221
+ return 'sql';
222
+ if (isOrmCall) {
223
+ for (const [dbType, importInfo] of dbImports) {
224
+ if (importInfo.hasImports)
225
+ return dbType;
226
+ }
227
+ }
228
+ return 'unknown';
229
+ }
224
230
  /**
225
231
  * True when a call_expression node carries a template-literal argument and so
226
232
  * should be skipped in favour of the template string (path 2) itself.
@@ -250,13 +256,26 @@ function extractDatabaseCalls(ast, scan) {
250
256
  }
251
257
  return calls;
252
258
  }
259
+ /**
260
+ * True when the query text contains a nested SELECT — i.e. at least two `SELECT`
261
+ * keywords. Scoped to a single query statement's text, not the whole file.
262
+ */
263
+ function hasNestedSelect(queryText) {
264
+ const upper = queryText.toUpperCase();
265
+ const first = upper.indexOf('SELECT');
266
+ if (first === -1)
267
+ return false;
268
+ return upper.indexOf('SELECT', first + 1) !== -1;
269
+ }
253
270
  /**
254
271
  * Analyze a database query
255
272
  */
256
- function analyzeQuery(call, sourceCode, config) {
273
+ function analyzeQuery(call, config) {
257
274
  const hasJoins = call.tables.length > 1;
258
- const hasSubquery = sourceCode.includes('SELECT') && sourceCode.includes('FROM') &&
259
- sourceCode.lastIndexOf('SELECT') !== sourceCode.indexOf('SELECT');
275
+ // A subquery is a nested SELECT detected on the *query's own text*, not the
276
+ // whole file (the old `sourceCode` heuristic read two unrelated queries in one
277
+ // file as a subquery).
278
+ const hasSubquery = hasNestedSelect(call.queryText);
260
279
  let complexity = 'simple';
261
280
  if (hasSubquery || call.tables.length > 3) {
262
281
  complexity = 'complex';
@@ -265,7 +284,7 @@ function analyzeQuery(call, sourceCode, config) {
265
284
  complexity = 'moderate';
266
285
  }
267
286
  let performanceRisk = 'low';
268
- if (call.tables.length > (config.performanceThresholds?.joinedTableCount || 4)) {
287
+ if (hasSubquery || call.tables.length > (config.performanceThresholds?.joinedTableCount || 4)) {
269
288
  performanceRisk = 'high';
270
289
  }
271
290
  else if (isUnfilteredQuery(call) && call.tables.length > 0) {
@@ -308,9 +327,15 @@ function checkViolations(call, analysis, ctx) {
308
327
  if (config.checkOrgFilters && !call.hasOrganizationFilter && call.tables.length > 0 && requiresOrgFilter(call.tables, config)) {
309
328
  push(`Query on ${call.tables.join(', ')} missing organization/tenant filter`, { severity: 'warning', rule: 'missing-org-filter' });
310
329
  }
311
- // Performance: Complex Query
330
+ // Performance: Complex Query — a subquery or many joined tables, named honestly.
312
331
  if (analysis.performanceRisk === 'high') {
313
- push(`Query references ${call.tables.length} tables`, { severity: 'warning', rule: 'complex-query' });
332
+ const reasons = [];
333
+ if (analysis.hasSubquery)
334
+ reasons.push('contains a subquery');
335
+ if (call.tables.length > (config.performanceThresholds?.joinedTableCount || 4)) {
336
+ reasons.push(`references ${call.tables.length} tables`);
337
+ }
338
+ push(`Query ${reasons.join(' and ')}`, { severity: 'warning', rule: 'complex-query' });
314
339
  }
315
340
  // Performance: Unfiltered Query
316
341
  if (isUnfilteredQuery(call) && analysis.performanceRisk === 'medium') {
@@ -835,19 +860,42 @@ function hasOrganizationFilter(text, config) {
835
860
  return positionalRe.test(text);
836
861
  }
837
862
  /**
838
- * True when a query applies *any* row-limiting filter, not merely a tenant/
839
- * organization predicate. The `unfiltered-query` rule is about reads that
840
- * sweep an unbounded result set; a WHERE/HAVING/LIMIT clause, or a JOIN ... ON
841
- * predicate (which the organization-pattern heuristic never sees), is enough
842
- * to show the query is deliberately scoped. Evaluated on comment-stripped
843
- * text so prose in `//` or `/* *`/ comments cannot fabricate a filter.
863
+ * True when a query applies a *row-limiting* filter: a WHERE carrying a real
864
+ * predicate, a HAVING, or a LIMIT. The `unfiltered-query` rule is about reads
865
+ * that sweep an unbounded result set. A `JOIN ... ON` predicate scopes *how*
866
+ * rows match, not *which* rows come back, so it is not a filter; and a
867
+ * tautological `WHERE 1=1` (the placeholder prepended so callers can append
868
+ * `AND x = ?`) limits nothing, so it is not a filter either. Evaluated on
869
+ * comment-stripped text so prose in `//` or `/* *`/ comments cannot fabricate
870
+ * a filter.
844
871
  */
845
872
  function hasQueryFilter(text) {
846
873
  const upper = text.toUpperCase();
847
- return /\bWHERE\b/.test(upper)
874
+ return (/\bWHERE\b/.test(upper) && !whereClauseIsTautology(text))
848
875
  || /\bHAVING\b/.test(upper)
849
- || /\bLIMIT\b/.test(upper)
850
- || /\bON\b/.test(upper);
876
+ || /\bLIMIT\b/.test(upper);
877
+ }
878
+ /**
879
+ * True when the WHERE clause is a bare tautology — `WHERE 1=1` (or `1 = 1`,
880
+ * `TRUE`, or the same repeated under `AND`) — that limits nothing. A WHERE
881
+ * body carrying any real predicate (`WHERE id = ?`, or `WHERE 1=1 AND
882
+ * active = ?`) is not a tautology.
883
+ */
884
+ function whereClauseIsTautology(text) {
885
+ const upper = text.toUpperCase();
886
+ const whereMatch = /\bWHERE\b/.exec(upper);
887
+ if (!whereMatch)
888
+ return false;
889
+ const afterWhere = upper.slice(whereMatch.index + 'WHERE'.length);
890
+ // Body up to the next row-limiting clause keyword.
891
+ const body = afterWhere.split(/\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|LIMIT|OFFSET|UNION)\b/)[0];
892
+ // Drop the SQL-string terminator + call-argument closer (`"), "); …) so the
893
+ // predicate is judged on the clause text alone.
894
+ const stripped = body.replace(/["'`)\s;]+$/g, '').replace(/^\s+/, '').replace(/\s+$/, '');
895
+ // A dangling AND/OR left by a dynamic builder still filters nothing.
896
+ const clean = stripped.replace(/^(?:AND|OR)\s+/i, '').replace(/\s+(?:AND|OR)$/i, '');
897
+ const alwaysTrue = '(?:1\\s*=\\s*1|TRUE)';
898
+ return new RegExp(`^${alwaysTrue}(?:\\s+AND\\s+${alwaysTrue})*$`, 'i').test(clean);
851
899
  }
852
900
  /**
853
901
  * True when a SQL statement contains a SELECT — a read verb. True for a bare
@@ -1345,7 +1393,7 @@ export class UniversalDataAccessAnalyzer extends UniversalAnalyzer {
1345
1393
  // Analyze each database call, tracking symbol ordinals for stable fingerprints.
1346
1394
  const symbolOrdinals = new Map();
1347
1395
  for (const call of extractDatabaseCalls(ast, scan)) {
1348
- const analysis = analyzeQuery(call, sourceCode, finalConfig);
1396
+ const analysis = analyzeQuery(call, finalConfig);
1349
1397
  violations.push(...checkViolations(call, analysis, {
1350
1398
  filePath: ast.filePath,
1351
1399
  config: finalConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalDataAccessAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalDataAccessAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UniversalDataAccessAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalDataAccessAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,eAAe,GAGhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAG;IACnB,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAC/D,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;CACtC,CAAC;AAmFF,MAAM,CAAC,MAAM,0BAA0B,GAA6B;IAClE,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,IAAI;IAEvB,SAAS,EAAE;QACT,SAAS,EAAE;YACT,IAAI,EAAE,kBAAkB;YACxB,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC;YAC/G,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;YAC3E,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;SAC7D;KACF;IACD,oBAAoB,EAAE;QACpB,gBAAgB;QAChB,iBAAiB;QACjB,OAAO;QACP,QAAQ;QACR,UAAU;QACV,WAAW;QACX,WAAW;QACX,YAAY;KACb;IACD,gDAAgD;IAChD,eAAe,EAAE,EAAE,EAAG,oCAAoC;IAC1D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAG,SAAS;IACxF,OAAO,EAAE,EAAE,EAAY,wDAAwD;IAC/E,aAAa,EAAE;QACb,GAAG,EAAE;YACH,kDAAkD;YAClD,gDAAgD;YAChD,wCAAwC,EAAG,gDAAgD;YAC3F,qCAAqC,EAAO,eAAe;YAC3D,yCAAyC;YACzC,0CAA0C;YAC1C,0CAA0C;SAC3C;QACD,GAAG,EAAE,CAAC,iDAAiD,EAAE,iDAAiD,EAAE,wCAAwC,EAAE,wCAAwC,EAAE,0CAA0C,CAAC;QAC3O,YAAY,EAAE,CAAC,oDAAoD,CAAC;KACrE;IACD,qBAAqB,EAAE;QACrB,iBAAiB,EAAE,CAAC;QACpB,oBAAoB,EAAE,CAAC;QACvB,gBAAgB,EAAE,CAAC;KACpB;IACD,gBAAgB,EAAE;QAChB,iBAAiB,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,sBAAsB,CAAC;QAC3D,oBAAoB,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC;KACzE;IACD,6EAA6E;IAC7E,+EAA+E;IAC/E,kFAAkF;IAClF,cAAc,EAAE,CAAC,GAAG,gBAAgB,CAAC;IACrC,+EAA+E;IAC/E,wEAAwE;IACxE,eAAe,EAAE,CAAC,GAAG,iBAAiB,CAAC;IACvC,aAAa,EAAE,CAAC,GAAG,oBAAoB,CAAC;IACxC,cAAc,EAAE,CAAC,GAAG,gBAAgB,CAAC;IACrC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7B,uEAAuE;IACvE,cAAc,EAAE,CAAC,WAAW,CAAC;CAC9B,CAAC;AAmFF;;;;;GAKG;AACH,SAAS,aAAa,CACpB,IAAY,EACZ,QAA0C,EAC1C,OAAe,EACf,cAAiD;IAEjD,MAAM,CAAC,GAAc;QACnB,IAAI;QACJ,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,OAAO;QACP,IAAI,EAAE,cAAc,CAAC,IAAI;QACzB,QAAQ,EAAE,aAAa;KACxB,CAAC;IACF,IAAI,cAAc,CAAC,MAAM;QAAE,CAAC,CAAC,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC;IAClE,IAAI,cAAc,CAAC,UAAU;QAAE,CAAC,CAAC,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;IACxE,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,OAAkC,EAClC,MAAgC;IAEhC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuD,CAAC;IAEjF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE;QACpE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACpC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CACtE,CAAC;QAEF,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE;YACpB,UAAU;YACV,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;SACvE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CACxB,IAAa,EACb,OAAwB,EACxB,UAAkB,EAClB,iBAAqC;IAErC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtE,2DAA2D;IAC3D,IAAI,iBAAiB,IAAI,2BAA2B,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACnG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6EAA6E;IAC7E,iEAAiE;IACjE,IAAI,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACrC,OAAO,6BAA6B,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACrF,CAAC;IAED,wEAAwE;IACxE,4EAA4E;IAC5E,8CAA8C;IAC9C,IAAI,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,KAAgB,EAAE,OAAwB;IACtE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAqB,CAAC;IACjD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAChC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7E,IAAI,eAAe,EAAE,CAAC;gBACpB,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACxB,IAAa,EACb,GAAQ,EACR,IAA2B;IAE3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAE1D,yEAAyE;IACzE,8EAA8E;IAC9E,IAAI,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7D,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE3C,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,cAAc,CAAC,oBAAoB,EAAE,GAAG,EAAE,CACzD,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAEpE,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;QACpD,IAAI,EAAE,GAAG,CAAC,QAAQ;QAClB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;QAC9B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;QAClC,MAAM;QACN,SAAS,EAAE,QAAQ;QACnB,qBAAqB,EAAE,YAAY;QACnC,SAAS;QACT,WAAW;QACX,qBAAqB,EAAE,QAAQ,CAAC,aAAa;QAC7C,mBAAmB,EAAE,QAAQ,CAAC,aAAa;QAC3C,iBAAiB,EAAE,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,UAAmB,EACnB,SAAkB,EAClB,SAAmE;IAEnE,IAAI,UAAU;QAAE,OAAO,KAAK,CAAC;IAC7B,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,SAAS,EAAE,CAAC;YAC7C,IAAI,UAAU,CAAC,UAAU;gBAAE,OAAO,MAAM,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CAAC,IAAa,EAAE,OAAwB;IAC3E,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,CAC5C,CAAC;IACF,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,GAAQ,EACR,IAA2B;IAE3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;QACtC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC;KAClF,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE5D,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,SAAiB;IACxC,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,IAAkB,EAClB,MAAgC;IAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,8EAA8E;IAC9E,+EAA+E;IAC/E,uBAAuB;IACvB,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEpD,IAAI,UAAU,GAAsC,QAAQ,CAAC;IAC7D,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;SAAM,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,UAAU,GAAG,UAAU,CAAC;IAC1B,CAAC;IAED,IAAI,eAAe,GAA8B,KAAK,CAAC;IACvD,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9F,eAAe,GAAG,MAAM,CAAC;IAC3B,CAAC;SAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,eAAe,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,UAAU;QACV,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ;QACR,WAAW;QACX,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;QACjD,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,eAAe;KAChB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,IAAkB,EAClB,QAAuB,EACvB,GAA0B;IAE1B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC;IACjD,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,iBAAiB,IAAI,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9F,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,IAAuD,EAAE,EAAE,CACxF,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAEnH,sEAAsE;IACtE,uEAAuE;IACvE,IAAI,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzD,IAAI,CAAC,mCAAmC,IAAI,CAAC,MAAM,8BAA8B,EAAE;YACjF,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,oBAAoB;YAC1B,UAAU,EAAE;gBACV,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,0CAA0C,IAAI,CAAC,MAAM,6JAA6J;gBAC3N,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;gBACtB,KAAK,EAAE,CAAC,QAAQ,CAAC;gBACjB,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACnB;SACF,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAC9H,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACrI,CAAC;IAED,iFAAiF;IACjF,IAAI,QAAQ,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;QACxC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,QAAQ,CAAC,WAAW;YAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,SAAS,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,gCAAgC;IAChC,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;QACrE,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,kFAAkF;AAClF,SAAS,UAAU,CACjB,MAAc,EACd,MAAc,EACd,cAAmC;IAEnC,MAAM,UAAU,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1D,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxC,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,GAAQ,EACR,OAAwB,EACxB,UAAkB,EAClB,MAAgC;IAEhC,MAAM,UAAU,GAAgB,EAAE,CAAC;IAGnC,yCAAyC;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;QACzC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC;KACjD,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEpD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACnD,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,GAAG,MAAM,uBAAuB,CAAC;YACjD,MAAM,KAAK,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACxD,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAExD,UAAU,CAAC,IAAI,CAAC,aAAa,CAC3B,GAAG,CAAC,QAAQ,EACZ,IAAI,CAAC,QAAQ,CAAC,KAAK,EACnB,qJAAqJ,EACrJ,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,iCAAiC;aACxG,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAa,EAAE,OAAwB;IAC7D,OAAO,IAAI,CAAC,IAAI,KAAK,iBAAiB;QAC/B,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAAC;AACxC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAa,EAAE,OAAwB;IAChE,OAAO,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC;AACzC,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAa,EAAE,OAAwB;IACnE,8DAA8D;IAC9D,OAAO,IAAI,CAAC,IAAI,KAAK,sBAAsB;QACpC,IAAI,CAAC,IAAI,KAAK,mBAAmB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAChE,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,IAAI,KAAK,GAAkB,IAAI,CAAC,CAAC,uCAAuC;IACxE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACb,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzB,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,IAAI,EAAE,CAAC;YACV,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,GAAG,IAAI,IAAI,CAAC;gBACZ,CAAC,IAAI,CAAC,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,EAAE,KAAK,KAAK;gBAAE,KAAK,GAAG,IAAI,CAAC;YAC/B,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC3C,KAAK,GAAG,EAAE,CAAC;YACX,GAAG,IAAI,EAAE,CAAC;YACV,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/B,yCAAyC;YACzC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;gBAAE,CAAC,IAAI,CAAC,CAAC;YACzC,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/B,wCAAwC;YACxC,CAAC,IAAI,CAAC,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;gBAAE,CAAC,IAAI,CAAC,CAAC;YAClE,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QAED,GAAG,IAAI,EAAE,CAAC;QACV,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,6BAA6B,CACpC,IAAa,EACb,OAAwB,EACxB,UAAkB,EAClB,iBAAqC;IAErC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAE/C,kEAAkE;IAClE,kEAAkE;IAClE,6DAA6D;IAC7D,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,iBAAiB;YAAE,OAAO,KAAK,CAAC;QACnF,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,eAAe,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QAClH,CAAC;QACD,+DAA+D;QAC/D,oBAAoB;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,oBAAoB,CAC3B,IAAa,EACb,OAAwB,EACxB,UAAkB;IAElB,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAE/B,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAElF,6EAA6E;IAC7E,IAAI,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAErE,2EAA2E;IAC3E,IAAI,2BAA2B,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4DAA4D;AAC5D,SAAS,iBAAiB,CAAC,IAAa,EAAE,OAAwB;IAChE,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QACpE,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,CAAC;IACD,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sFAAsF;AACtF,SAAS,gBAAgB,CAAC,IAAa,EAAE,OAAwB;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,mBAAmB,CACpD,CAAC;IACF,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAC9C,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,kBAAkB,CACnD,CAAC;IACF,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,mBAAmB,CACpD,IAAI,IAAI,CAAC;AACZ,CAAC;AAED,4DAA4D;AAC5D,SAAS,WAAW,CAAC,IAAa,EAAE,IAAY,EAAE,OAAwB,EAAE,UAAkB;IAC5F,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;AAChE,CAAC;AAED,oEAAoE;AACpE,SAAS,kBAAkB,CAAC,IAAa,EAAE,OAAwB,EAAE,UAAkB;IACrF,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,qBAAqB,CACtD,CAAC;IACF,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,sEAAsE;AACtE,SAAS,iBAAiB,CAAC,IAAa,EAAE,OAAwB;IAChE,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,CAC5C,CAAC;IACF,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,gBAAgB,CACjD,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,SAAS,SAAS,CAAC,IAAa,EAAE,OAAwB;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,CAC5C,CAAC;IACF,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IACpB,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAClE,CAAC,MAAM,CAAC;AACX,CAAC;AAED,iFAAiF;AACjF,SAAS,iBAAiB,CACxB,WAAoB,EACpB,OAAwB,EACxB,UAAkB;IAElB,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,mBAAmB;QAAE,OAAO,KAAK,CAAC;IACzF,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC/C,OAAO,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,iBAAiB,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,aAAa,CACpB,IAAa,EACb,OAAwB,EACxB,UAAkB;IAElB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/E,uEAAuE;IACvE,oEAAoE;IACpE,yEAAyE;IACzE,OAAO,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAC1B,IAAa,EACb,OAAwB,EACxB,UAAkB;IAElB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzD,mEAAmE;IACnE,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,+BAA+B,CACtC,IAAa,EACb,OAAwB,EACxB,UAAkB,EAClB,YAAsB;IAEtB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAElE,6DAA6D;IAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACrE,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAE3E,qEAAqE;IACrE,qCAAqC;IACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC;IAC3E,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAErD,oEAAoE;IACpE,oEAAoE;IACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CACvD,CAAC;IACF,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,2BAA2B,CAClC,WAAoB,EACpB,OAAwB,EACxB,UAAkB;IAElB,4EAA4E;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,OAAO,GAAkB,IAAI,CAAC;IAElC,IAAI,UAAU,KAAK,qBAAqB,EAAE,CAAC;QACzC,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,YAAY,CAC7C,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,KAAK,uBAAuB,EAAE,CAAC;QAClD,yBAAyB;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,CACF,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,YAAY;YACvC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,mBAAmB,CACjD,CAAC;QACF,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,oEAAoE;IACpE,MAAM,MAAM,GAAG,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,IAAI,MAAM,CAC5B,MAAM,CAAC,GAAG,CAAA,KAAK,OAAO,aAAa,EACnC,GAAG,CACJ,CAAC;IAEF,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAChC,IAAa,EACb,OAAwB;IAExB,IAAI,OAAO,GAAmB,IAAI,CAAC;IACnC,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC1C,IACE,IAAI,KAAK,sBAAsB;YAC/B,IAAI,KAAK,qBAAqB;YAC9B,IAAI,KAAK,gBAAgB;YACzB,IAAI,KAAK,mBAAmB,EAC5B,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,2DAA2D,CAAC;AAEjF;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAErD;mFACmF;AACnF,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI;SACR,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAClD,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,6BAA6B;IAC7B,MAAM,WAAW,GAAG;QAClB,aAAa;QACb,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;QAClB,mBAAmB;QACnB,eAAe;QACf,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,mBAAmB;QACnB,eAAe;QACf,kBAAkB;QAClB,mBAAmB;QACnB,aAAa;QACb,cAAc;QACd,aAAa;QACb,iBAAiB;QACjB,kBAAkB;QAClB,kBAAkB;QAClB,eAAe;QACf,mBAAmB;QACnB,kBAAkB;QAClB,cAAc;QACd,iBAAiB;KAClB,CAAC;IAEF,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,oEAAoE;AACpE,SAAS,oBAAoB,CAC3B,IAAY,EACZ,QAA8B,EAC9B,MAAmB;IAEnB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,MAAgC;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,kDAAkD;IAClD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAEjC,6BAA6B;IAC7B,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAClE,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAElE,gEAAgE;IAChE,2EAA2E;IAC3E,MAAM,kBAAkB,GAAG,+CAA+C,CAAC;IAC3E,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACzD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,MAAM,cAAc,GAAG,0DAA0D,CAAC;IAClF,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,2EAA2E;IAC3E,qCAAqC;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,MAAgC;IAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC,oBAAoB,IAAI,EAAE,CAAC;IAEnD,+CAA+C;IAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;QAChC,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ;YACtD,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAEzD,0EAA0E;IAC1E,yEAAyE;IACzE,gFAAgF;IAChF,uEAAuE;IACvE,8EAA8E;IAC9E,yEAAyE;IACzE,4EAA4E;IAC5E,8DAA8D;IAC9D,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtF,+CAA+C;IAC/C,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,MAAM,GAAG,6DAA6D,EACtE,GAAG,CACJ,CAAC;IACF,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,0EAA0E;IAC1E,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,gFAAgF,GAAG,YAAY,EAC/F,GAAG,CACJ,CAAC;IACF,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;WAC5D,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;WACxB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,IAAY;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,mDAAmD;IACnD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,4EAA4E;IAC5E,gDAAgD;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1F,qEAAqE;IACrE,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACrF,MAAM,UAAU,GAAG,sBAAsB,CAAC;IAC1C,OAAO,IAAI,MAAM,CAAC,IAAI,UAAU,iBAAiB,UAAU,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACpE,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;AAC1D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,IAAkB;IAC3C,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAC7B,IAAa,EACb,OAAwB,EACxB,UAAkB,EAClB,MAAgC;IAEhC,IAAI,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,IAAI,+BAA+B,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACzG,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CACxB,IAAiB,EACjB,GAAQ,EACR,IAA2B;IAE3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7C,iEAAiE;IACjE,mEAAmE;IACnE,uEAAuE;IACvE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1D,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,CACxE,CAAC;QACF,IAAI,SAAS;YAAE,OAAO,IAAI,CAAC;IAC7B,CAAC;IAED,0EAA0E;IAC1E,yEAAyE;IACzE,kEAAkE;IAClE,yEAAyE;IACzE,4EAA4E;IAC5E,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yEAAyE;IACzE,kCAAkC;IAClC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,oBAAoB;YACxD,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wEAAwE;IACxE,4CAA4C;IAC5C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAa,EACb,IAAY,EACZ,GAAQ,EACR,IAA2B;IAE3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7C,2EAA2E;IAC3E,8DAA8D;IAC9D,IAAI,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;QAC9D,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IACvD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IACvD,CAAC;IAED,gEAAgE;IAChE,IAAI,CAAC,OAAO,CAAC,2BAA2B,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QACrE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IACD,0EAA0E;IAC1E,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7E,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC;SACzD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SACnD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IAED,OAAO;QACL,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,wCAAwC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KACpG,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,QAAiB,EACjB,OAAwB,EACxB,UAAkB;IAElB,gEAAgE;IAChE,8DAA8D;IAC9D,wEAAwE;IACxE,0EAA0E;IAC1E,wEAAwE;IACxE,gCAAgC;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC/B,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,mBAAmB,IAAI,CAAC,KAAK,YAAY,CAAC;IACzD,CAAC,CAAC,CAAC;IACH,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,UAAU,KAAK,mBAAmB,EAAE,CAAC;YACvC,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,qBAAqB,CAAC,CAAC;YAC5E,IAAI,IAAI;gBAAE,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,OAAO,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,yDAAyD;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3D,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC3C,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9B,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAa,EAAE,OAAwB,EAAE,UAAkB;IACpF,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE3C,yEAAyE;IACzE,wEAAwE;IACxE,IAAI,QAAQ,KAAK,iBAAiB,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE,CAAC;YAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC3C,IAAI,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,iBAAiB,EAAE,CAAC;gBACpE,OAAO,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,oEAAoE;IACpE,uEAAuE;IACvE,sEAAsE;IACtE,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;QACnC,OAAO,2BAA2B,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,iBAAiB,CAAC,MAAgB,EAAE,MAAgC;IAC3E,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;IACrD,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;IAC/G,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IAErC,oEAAoE;IACpE,yDAAyD;IACzD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC7E,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAEvC,qDAAqD;QACrD,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,kEAAkE;QAClE,OAAO,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,IAAa,EAAE,OAAwB;IAC9D,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC;AACnE,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,QAAQ,GAAG;QACf,eAAe;QACf,gBAAgB;QAChB,aAAa;QACb,sBAAsB;QACtB,kCAAkC;KACnC,CAAC;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,uEAAuE;AAEvE;;;GAGG;AACH,SAAS,gBAAgB,CACvB,GAAQ,EACR,IAA2B;IAE3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IACxD,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,yDAAyD;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;QACrC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC;KAC7E,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE/C,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE;YAAE,SAAS;QAEvD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,qEAAqE;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3C,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACzE,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QACrC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEvB,MAAM,GAAG,GAAG,UAAU,CAAC,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAC7F,iCAAiC;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;QAErF,UAAU,CAAC,IAAI,CAAC,aAAa,CAC3B,GAAG,CAAC,QAAQ,EACZ,IAAI,CAAC,QAAQ,CAAC,KAAK,EACnB,6BAA6B,QAAQ,GAAG;YACxC,iBAAiB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK;YAC3D,mFAAmF,EACnF,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,CACzD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,0EAA0E;AAC1E,SAAS,2BAA2B,CAClC,IAAa,EACb,OAAwB,EACxB,UAAkB,EAClB,iBAAoC;IAEpC,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;QAClC,eAAe,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;AACzG,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CACnB,IAAa,EACb,OAAwB,EACxB,UAAkB,EAClB,iBAAqC;IAErC,gEAAgE;IAChE,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5D,qDAAqD;QACrD,IAAI,2BAA2B,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC;YAC9E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,8DAA8D;QAC9D,8DAA8D;QAC9D,IAAI,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE,CAAC;gBAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC3C,IAAI,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,iBAAiB,EAAE,CAAC;oBACpE,OAAO,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,uEAAuE;IACvE,sEAAsE;IACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEvD,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3I,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CACxB,IAAa,EACb,OAAwB;IAExB,IAAI,OAAO,GAAmB,IAAI,CAAC;IACnC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,UAAU,GAAc,EAAE,CAAC;IAEjC,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,MAAM;QAEnB,kDAAkD;QAClD,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,+DAA+D;QAC/D,IAAI,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YACxC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,8DAA8D;IAC9D,yCAAyC;IACzC,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QACvB,KAAK,EAAE,UAAU,CAAC,MAAM;KACzB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,IAAa,EAAE,OAAwB;IACjE,4BAA4B;IAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAElD,kFAAkF;IAClF,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;IAClE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC3C,CAAC,CAAC,IAAI,KAAK,qBAAqB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CACxD,CAAC;IACF,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAEhC,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,qBAAqB;QAC5E,CAAC,CAAE,YAAoB,CAAC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC;QACrE,CAAC,CAAC,EAAE,CAAC;IAEP,mFAAmF;IACnF,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAEhH,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,UAAU,IAAI,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEtE,OAAO,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,IAAa,EAAE,OAAwB;IAC9D,qBAAqB;IACrB,IAAK,IAAY,CAAC,IAAI;QAAE,OAAQ,IAAY,CAAC,IAAI,CAAC;IAClD,IAAK,IAAY,CAAC,IAAI;QAAE,OAAQ,IAAY,CAAC,IAAI,CAAC;IAElD,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAK,KAAa,CAAC,IAAI;YAAE,OAAQ,KAAa,CAAC,IAAI,CAAC;QACpD,IAAK,KAAa,CAAC,IAAI;YAAE,OAAQ,KAAa,CAAC,IAAI,CAAC;IACtD,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,yBAAyB,CAAC,IAAa,EAAE,OAAwB;IACxE,IAAI,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE1C,+DAA+D;QAC/D,IACE,IAAI,KAAK,gBAAgB;YACzB,IAAI,KAAK,sBAAsB;YAC/B,IAAI,KAAK,qBAAqB;YAC9B,IAAI,KAAK,gCAAgC;YACzC,IAAI,KAAK,+BAA+B,EACxC,CAAC;YACD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;QACxB,CAAC;QAED,wCAAwC;QACxC,IAAI,IAAI,KAAK,mBAAmB,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;QACxB,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAAa,EAAE,OAAwB;IAC1D,2BAA2B;IAC3B,IAAK,IAAY,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAQ,IAAY,CAAC,IAAI,CAAC;IAC5F,IAAK,IAAY,CAAC,IAAI,IAAI,OAAQ,IAAY,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAQ,IAAY,CAAC,IAAI,CAAC;IAC5F,+EAA+E;IAC/E,MAAM,OAAO,GAAI,IAAI,CAAC,GAAW,EAAE,IAAI,CAAC;IACxC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAEtE,qDAAqD;IACrD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC7C,IACE,SAAS,KAAK,YAAY;gBAC1B,SAAS,KAAK,qBAAqB,EACnC,CAAC;gBACD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACzC,IAAI,IAAI;oBAAE,OAAO,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,iBAAiB;IACvD,IAAI,GAAG,aAAa,CAAC;IACrB,WAAW,GAAG,+DAA+D,CAAC;IAC9E,QAAQ,GAAG,UAAU,CAAC;IAErB,KAAK,CAAC,UAAU,CACxB,GAAQ,EACR,OAAwB,EACxB,MAAgC,EAChC,UAAkB;QAElB,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,EAAE,GAAG,0BAA0B,EAAE,GAAG,MAAM,EAAE,CAAC;QAEjE,2EAA2E;QAC3E,MAAM,aAAa,GAAkB,WAAW,CAAC,SAAS,EAAE,IAAI,IAAI,QAAQ,CAAC;QAC7E,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE;YACzE,IAAI,EAAE,aAAa;YACnB,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,cAAc,EAAE,WAAW,CAAC,cAAc;SAC3C,CAAC,CAAC;QACH,MAAM,SAAS,GAAqC,MAAc,CAAC,iBAAiB,CAAC;QACrF,IAAI,SAAS;YAAE,SAAS,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QAE3D,uEAAuE;QACvE,MAAM,IAAI,GAA0B;YAClC,OAAO;YACP,UAAU;YACV,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;YACvE,MAAM,EAAE,WAAW;YACnB,iBAAiB;SAClB,CAAC;QAEF,gFAAgF;QAChF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;QACjD,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACjD,UAAU,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE;gBACjD,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,MAAM,EAAE,WAAW;gBACnB,cAAc;aACf,CAAC,CAAC,CAAC;QACN,CAAC;QAED,uDAAuD;QACvD,UAAU,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAChD,UAAU,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;QAEhF,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
@@ -141,7 +141,10 @@ function checkFileHeader(ast, adapter, config, fileHeaders) {
141
141
  if (matchesAnyGlob(ast.filePath, skipGlobs))
142
142
  return violations;
143
143
  const fileDoc = getFileDocumentation(ast, adapter);
144
- if (!fileDoc || fileDoc.length < config.minDescriptionLength) {
144
+ // Spec-49 a file header is a leading comment that documents the file's
145
+ // *purpose* (a @fileoverview/@file/@module/@overview/@purpose marker), not any
146
+ // comment of ≥N characters. A license block is not a header.
147
+ if (!fileDoc || !isFileHeaderDoc(fileDoc)) {
145
148
  violations.push(makeViolation(ast.filePath, { line: 1, column: 1 }, 'File lacks a leading documentation comment', { severity: 'warning', rule: 'file-documentation' }));
146
149
  }
147
150
  return violations;
@@ -182,18 +185,19 @@ function shouldSkipFunction(node, func, scan, ast) {
182
185
  function checkFunctionDocumentation(ast, adapter, config, func) {
183
186
  const violations = [];
184
187
  const doc = func.jsDoc || '';
185
- if (!doc || doc.length < config.minDescriptionLength) {
188
+ // Spec-49 the check measures whether the doc comment is substantive
189
+ // (descriptive prose, not a placeholder marker), not its character length.
190
+ if (!isSubstantiveDoc(doc)) {
186
191
  // Methods lacking any documentation are reported by the class loop as
187
192
  // method-documentation — skip here so a public method is not
188
193
  // double-reported as both function-documentation and method-documentation.
189
194
  if (func.isMethod) {
190
195
  return violations;
191
196
  }
192
- // R1.6 — Audience-reason message (a doc comment shorter than the minimum
193
- // length is reported as missing; the check measures presence + length).
197
+ // R1.6 — Audience-reason message.
194
198
  const reason = func.isExported
195
- ? `exported function '${func.name}' lacks a doc comment of at least ${config.minDescriptionLength} characters`
196
- : `function '${func.name}' lacks a doc comment of at least ${config.minDescriptionLength} characters`;
199
+ ? `exported function '${func.name}' lacks a documentation comment`
200
+ : `function '${func.name}' lacks a documentation comment`;
197
201
  violations.push(makeViolation(ast.filePath, func.location.start, reason, { severity: 'warning', rule: 'function-documentation', symbol: func.name }));
198
202
  return violations;
199
203
  }
@@ -253,8 +257,9 @@ function analyzeClassDocumentation(ast, scan) {
253
257
  continue;
254
258
  }
255
259
  const doc = cls.jsDoc || '';
256
- if (!doc || doc.length < config.minDescriptionLength) {
257
- violations.push(makeViolation(ast.filePath, cls.location.start, `Class '${cls.name}' lacks a doc comment of at least ${config.minDescriptionLength} characters`, { severity: 'warning', rule: 'class-documentation', symbol: cls.name }));
260
+ // Spec-49 substantive content, not character length.
261
+ if (!isSubstantiveDoc(doc)) {
262
+ violations.push(makeViolation(ast.filePath, cls.location.start, `Class '${cls.name}' lacks a documentation comment`, { severity: 'warning', rule: 'class-documentation', symbol: cls.name }));
258
263
  }
259
264
  // Method documentation
260
265
  violations.push(...checkClassMethodDocumentation(ast, cls, scan));
@@ -276,8 +281,9 @@ function checkClassMethodDocumentation(ast, cls, scan) {
276
281
  }
277
282
  }
278
283
  const methodDoc = method.jsDoc || '';
279
- if (!methodDoc || methodDoc.length < config.minDescriptionLength) {
280
- violations.push(makeViolation(ast.filePath, method.location.start, `public method '${cls.name}.${method.name}' lacks a doc comment of at least ${config.minDescriptionLength} characters`, { severity: 'warning', rule: 'method-documentation', symbol: `${cls.name}.${method.name}` }));
284
+ // Spec-49 substantive content, not character length.
285
+ if (!isSubstantiveDoc(methodDoc)) {
286
+ violations.push(makeViolation(ast.filePath, method.location.start, `public method '${cls.name}.${method.name}' lacks a documentation comment`, { severity: 'warning', rule: 'method-documentation', symbol: `${cls.name}.${method.name}` }));
281
287
  }
282
288
  }
283
289
  return violations;
@@ -511,10 +517,64 @@ function getFirstChildOfType(node, types) {
511
517
  */
512
518
  function getFileDocumentation(ast, adapter) {
513
519
  const firstChild = ast.root.children?.[0];
514
- if (firstChild) {
515
- return adapter.getDocumentation(firstChild);
520
+ if (!firstChild)
521
+ return null;
522
+ // When the leading node is itself a comment, that comment IS the candidate
523
+ // file header. `getDocumentation` looks for a comment *preceding* its
524
+ // argument, so passing the comment node itself would wrongly return null.
525
+ if (firstChild.type === 'comment') {
526
+ const text = firstChild.raw?.text;
527
+ return text ? text.trim() : null;
516
528
  }
517
- return null;
529
+ return adapter.getDocumentation(firstChild);
530
+ }
531
+ // ---------------------------------------------------------------------------
532
+ // Spec-49 — documentation substance. The four documentation rules previously
533
+ // reduced to `jsDoc.length < minDescriptionLength` (presence + character
534
+ // length). The real signal is *content*: a comment is documentation only when
535
+ // it says something descriptive, and a placeholder (`TODO`/`FIXME`/…) or a
536
+ // bare license block is not.
537
+ // ---------------------------------------------------------------------------
538
+ /**
539
+ * Placeholder markers that are never documentation, regardless of length.
540
+ * Anchored to the *start* of the stripped comment so a descriptive doc that
541
+ * merely mentions "placeholder"/"stub" mid-sentence (e.g. "falls back to the
542
+ * placeholder card") is not mistaken for a placeholder comment. A bare
543
+ * `/** TODO *​/` or `/** PLACEHOLDER *​/` leads with the marker and still fires.
544
+ */
545
+ const PLACEHOLDER_DOC_PATTERN = /^@?\s*(TODO|FIXME|XXX|TBD|WIP|STUB|PLACEHOLDER)\b/i;
546
+ /** File-header markers — the signal that a leading comment documents the file's purpose. */
547
+ const FILE_HEADER_PATTERN = /@(fileoverview|file|module|module-desc|overview|purpose)\b/i;
548
+ /** Stop words that do not by themselves constitute descriptive content. */
549
+ const DOC_STOP_WORDS = new Set([
550
+ 'the', 'a', 'an', 'this', 'that', 'these', 'those', 'and', 'or', 'of', 'to',
551
+ 'in', 'on', 'for', 'with', 'is', 'are', 'was', 'were', 'be', 'been', 'by',
552
+ 'as', 'at', 'from', 'it', 'its',
553
+ ]);
554
+ /** True when the leading comment carries a file-header marker. */
555
+ function isFileHeaderDoc(doc) {
556
+ return FILE_HEADER_PATTERN.test(doc);
557
+ }
558
+ /** True when the doc comment contains substantive descriptive prose. */
559
+ function isSubstantiveDoc(doc) {
560
+ // Raw prose: strip comment delimiters and leading asterisks only.
561
+ const raw = doc
562
+ .replace(/\/\*\*?|\*\//g, ' ')
563
+ .replace(/^\s*\*+\s?/gm, ' ');
564
+ const trimmed = raw.trim();
565
+ if (!trimmed)
566
+ return false;
567
+ // A placeholder marker — with or without the `@` sigil — is never documentation.
568
+ if (PLACEHOLDER_DOC_PATTERN.test(trimmed))
569
+ return false;
570
+ // Strip remaining @tags and punctuation, then require at least one
571
+ // descriptive word (≥2 chars, not a stop word).
572
+ const prose = trimmed
573
+ .replace(/@\w+\s*(\{[^}]*\})?/g, ' ')
574
+ .replace(/[^A-Za-z0-9]+/g, ' ')
575
+ .toLowerCase();
576
+ const words = prose.split(/\s+/).filter((w) => w.length >= 2 && !DOC_STOP_WORDS.has(w));
577
+ return words.length > 0;
518
578
  }
519
579
  /**
520
580
  * Find a node by its location via BFS.
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalDocumentationAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalDocumentationAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UniversalDocumentationAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalDocumentationAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export interface SOLIDAnalyzerConfig {
23
23
  classMethodsThreshold?: number;
24
24
  classAggregateComplexity?: number;
25
25
  checkDependencyInversion?: boolean;
26
- checkInterfaceSegregation?: boolean;
26
+ checkInterfaceSize?: boolean;
27
27
  checkLiskovSubstitution?: boolean;
28
28
  skipTestFiles?: boolean;
29
29
  }
@@ -85,7 +85,17 @@ export declare class UniversalSOLIDAnalyzer extends UniversalAnalyzer {
85
85
  */
86
86
  private checkFunctionComplexity;
87
87
  /**
88
- * Analyze an interface for Interface Segregation Principle
88
+ * Analyze an interface for size (`interface-size`).
89
+ *
90
+ * Spec-49: the old `solid/interface-segregation` rule claimed to detect the
91
+ * Interface Segregation Principle (clients forced to depend on methods they
92
+ * do not use) from a raw member count. Member count is a *size* reading, not
93
+ * a segregation reading — a 21-member interface may be perfectly segregated,
94
+ * and a 3-member interface may be unsegregated. The honest computation for
95
+ * ISP (client-usage sets: which callers use which disjoint subsets of an
96
+ * interface's methods) needs the call graph, which the per-file AST analyzer
97
+ * does not have, so that reading is blocked (see the ledger). What remains is
98
+ * the size signal under an honest name.
89
99
  */
90
100
  private analyzeInterface;
91
101
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalSOLIDAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalSOLIDAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,eAAe,EAAmD,MAAM,0BAA0B,CAAC;AAGtH;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mHAAmH;IACnH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,EAAE,mBAqBlC,CAAC;AAsEF;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,WAAW,4CAA4C;IAChE,QAAQ,CAAC,QAAQ,kBAAkB;IAEnC,UAAgB,UAAU,CACxB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CAkCtB;IAED;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,cAAc;IA6CtB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAyCzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,0BAA0B;IA2BlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,uBAAuB;IAwB/B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,uBAAuB;IAkC/B,6EAA6E;IAC7E,OAAO,CAAC,YAAY;IAUpB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgBhC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,sBAAsB;CA+B/B"}
1
+ {"version":3,"file":"UniversalSOLIDAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/universal/UniversalSOLIDAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,eAAe,EAAmD,MAAM,0BAA0B,CAAC;AAGtH;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mHAAmH;IACnH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,EAAE,mBAqBlC,CAAC;AAuEF;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;IAC3D,QAAQ,CAAC,IAAI,WAAW;IACxB,QAAQ,CAAC,WAAW,4CAA4C;IAChE,QAAQ,CAAC,QAAQ,kBAAkB;IAEnC,UAAgB,UAAU,CACxB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CAkCtB;IAED;;OAEG;IACH,OAAO,CAAC,YAAY;IAepB;;OAEG;IACH,OAAO,CAAC,cAAc;IA6CtB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAyCzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,0BAA0B;IA6BlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,uBAAuB;IAwB/B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,uBAAuB;IAkC/B,6EAA6E;IAC7E,OAAO,CAAC,YAAY;IAUpB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgBhC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,sBAAsB;CA+B/B"}