@cyanheads/secedgar-mcp-server 0.15.11 → 0.15.13

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 (85) hide show
  1. package/AGENTS.md +14 -12
  2. package/CLAUDE.md +14 -12
  3. package/Dockerfile +4 -4
  4. package/README.md +39 -39
  5. package/changelog/0.15.x/0.15.12.md +33 -0
  6. package/changelog/0.15.x/0.15.13.md +33 -0
  7. package/dist/config/server-config.d.ts.map +1 -1
  8. package/dist/config/server-config.js +47 -0
  9. package/dist/config/server-config.js.map +1 -1
  10. package/dist/mcp-server/prompts/definitions/company-analysis.prompt.js +1 -1
  11. package/dist/mcp-server/prompts/definitions/company-analysis.prompt.js.map +1 -1
  12. package/dist/mcp-server/tools/definitions/company-search.tool.d.ts +7 -0
  13. package/dist/mcp-server/tools/definitions/company-search.tool.d.ts.map +1 -1
  14. package/dist/mcp-server/tools/definitions/company-search.tool.js +76 -19
  15. package/dist/mcp-server/tools/definitions/company-search.tool.js.map +1 -1
  16. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts +7 -0
  17. package/dist/mcp-server/tools/definitions/compare-companies.tool.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/definitions/compare-companies.tool.js +132 -38
  19. package/dist/mcp-server/tools/definitions/compare-companies.tool.js.map +1 -1
  20. package/dist/mcp-server/tools/definitions/dataframe-query.tool.d.ts +10 -4
  21. package/dist/mcp-server/tools/definitions/dataframe-query.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/dataframe-query.tool.js +11 -4
  23. package/dist/mcp-server/tools/definitions/dataframe-query.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts +7 -0
  25. package/dist/mcp-server/tools/definitions/fetch-frames.tool.d.ts.map +1 -1
  26. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js +8 -0
  27. package/dist/mcp-server/tools/definitions/fetch-frames.tool.js.map +1 -1
  28. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts +7 -0
  29. package/dist/mcp-server/tools/definitions/find-holders.tool.d.ts.map +1 -1
  30. package/dist/mcp-server/tools/definitions/find-holders.tool.js +8 -0
  31. package/dist/mcp-server/tools/definitions/find-holders.tool.js.map +1 -1
  32. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.d.ts +7 -0
  33. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.d.ts.map +1 -1
  34. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.js +8 -0
  35. package/dist/mcp-server/tools/definitions/get-beneficial-owners.tool.js.map +1 -1
  36. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts +9 -2
  37. package/dist/mcp-server/tools/definitions/get-filing.tool.d.ts.map +1 -1
  38. package/dist/mcp-server/tools/definitions/get-filing.tool.js +308 -54
  39. package/dist/mcp-server/tools/definitions/get-filing.tool.js.map +1 -1
  40. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts +10 -3
  41. package/dist/mcp-server/tools/definitions/get-financials.tool.d.ts.map +1 -1
  42. package/dist/mcp-server/tools/definitions/get-financials.tool.js +110 -41
  43. package/dist/mcp-server/tools/definitions/get-financials.tool.js.map +1 -1
  44. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.d.ts +7 -0
  45. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.d.ts.map +1 -1
  46. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.js +8 -0
  47. package/dist/mcp-server/tools/definitions/get-fund-holdings.tool.js.map +1 -1
  48. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts +7 -0
  49. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.d.ts.map +1 -1
  50. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js +8 -0
  51. package/dist/mcp-server/tools/definitions/get-insider-transactions.tool.js.map +1 -1
  52. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts +7 -0
  53. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.d.ts.map +1 -1
  54. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js +8 -0
  55. package/dist/mcp-server/tools/definitions/get-institutional-holdings.tool.js.map +1 -1
  56. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts +7 -0
  57. package/dist/mcp-server/tools/definitions/get-material-events.tool.d.ts.map +1 -1
  58. package/dist/mcp-server/tools/definitions/get-material-events.tool.js +8 -0
  59. package/dist/mcp-server/tools/definitions/get-material-events.tool.js.map +1 -1
  60. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts +7 -0
  61. package/dist/mcp-server/tools/definitions/get-snapshot.tool.d.ts.map +1 -1
  62. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js +8 -0
  63. package/dist/mcp-server/tools/definitions/get-snapshot.tool.js.map +1 -1
  64. package/dist/mcp-server/tools/definitions/index.d.ts +104 -7
  65. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  66. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts +7 -0
  67. package/dist/mcp-server/tools/definitions/search-filings.tool.d.ts.map +1 -1
  68. package/dist/mcp-server/tools/definitions/search-filings.tool.js +8 -0
  69. package/dist/mcp-server/tools/definitions/search-filings.tool.js.map +1 -1
  70. package/dist/services/canvas-bridge/canvas-bridge.d.ts +2 -2
  71. package/dist/services/canvas-bridge/canvas-bridge.js +2 -2
  72. package/dist/services/edgar/concept-series.d.ts +20 -8
  73. package/dist/services/edgar/concept-series.d.ts.map +1 -1
  74. package/dist/services/edgar/concept-series.js +74 -23
  75. package/dist/services/edgar/concept-series.js.map +1 -1
  76. package/dist/services/edgar/edgar-api-service.d.ts +21 -11
  77. package/dist/services/edgar/edgar-api-service.d.ts.map +1 -1
  78. package/dist/services/edgar/edgar-api-service.js +133 -34
  79. package/dist/services/edgar/edgar-api-service.js.map +1 -1
  80. package/dist/services/edgar/filing-to-text.d.ts +106 -6
  81. package/dist/services/edgar/filing-to-text.d.ts.map +1 -1
  82. package/dist/services/edgar/filing-to-text.js +570 -66
  83. package/dist/services/edgar/filing-to-text.js.map +1 -1
  84. package/package.json +9 -9
  85. package/server.json +4 -4
@@ -5,7 +5,7 @@
5
5
  import { tool, z } from '@cyanheads/mcp-ts-core';
6
6
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
7
7
  import { filingArchiveUrl, getEdgarApiService } from '../../../services/edgar/edgar-api-service.js';
8
- import { detectHeadings, filingToExtract, foldForHeadingMatch, getExtractCache, setExtractCache, windowText, } from '../../../services/edgar/filing-to-text.js';
8
+ import { detectHeadings, filingToExtract, foldForHeadingMatch, getExtractCache, headingKey, isTocHeading, MARKER_TITLE_RE, matchSectionLine, setExtractCache, windowText, withoutSubItemLabel, } from '../../../services/edgar/filing-to-text.js';
9
9
  const MAX_DOCUMENTS_IN_FORMAT = 10;
10
10
  /**
11
11
  * Per-category cap on the catalog rendered into an error message. Distinct from
@@ -43,7 +43,7 @@ const documentEntrySchema = z
43
43
  })
44
44
  .describe('One document entry from the filing.');
45
45
  export const getFilingTool = tool('secedgar_get_filing', {
46
- description: "Fetch a specific filing's metadata and document content by accession number. Returns the primary document as readable text. Use offset/next_offset for multi-page access to large filings (10-K, S-1 can exceed 1M chars): pass the next_offset from a truncated response to read the next page. Use section to jump directly to a heading (e.g. 'risk factors', 'item 7') without needing an offset.",
46
+ description: "Fetch a specific filing's metadata and document content by accession number. Returns the primary document as readable text. Use offset/next_offset for multi-page access to large filings (10-K, S-1 can exceed 1M chars): pass the next_offset from a truncated response as offset, without section, to read the next page. Use section to jump directly to a heading (e.g. 'risk factors', 'item 7') without needing an offset.",
47
47
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
48
48
  // Agent-facing disclosure of the content window. `content_truncated` types the
49
49
  // fact on the wire; this carries how much of the document the page actually
@@ -52,7 +52,7 @@ export const getFilingTool = tool('secedgar_get_filing', {
52
52
  notice: z
53
53
  .string()
54
54
  .optional()
55
- .describe('How to read the next page, and which file was read when the archive does not serve the indexed primary.'),
55
+ .describe('How to read the next page, which file was read when the archive does not serve the indexed primary, when section landed on a document line rather than a detected heading, and how many headings were detected when the outline lists fewer.'),
56
56
  truncated: z
57
57
  .boolean()
58
58
  .optional()
@@ -94,8 +94,8 @@ export const getFilingTool = tool('secedgar_get_filing', {
94
94
  {
95
95
  reason: 'section_not_found',
96
96
  code: JsonRpcErrorCode.NotFound,
97
- when: 'The section string did not match any detected heading in the document',
98
- recovery: 'Pick a heading from the outline in the error message, or use offset paging instead.',
97
+ when: 'The section string matched no detected heading and no line of the document',
98
+ recovery: 'Pick a heading from the outline in the error message, pass a subheading exactly as the document prints it, or use offset paging instead.',
99
99
  },
100
100
  {
101
101
  reason: 'rate_limited',
@@ -105,6 +105,14 @@ export const getFilingTool = tool('secedgar_get_filing', {
105
105
  retryable: true,
106
106
  thrownBy: 'service',
107
107
  },
108
+ {
109
+ reason: 'sec_unreachable',
110
+ code: JsonRpcErrorCode.ServiceUnavailable,
111
+ when: 'The last of three attempts to reach SEC EDGAR got no HTTP response — the connection failed, or no response headers arrived within 15 seconds',
112
+ recovery: 'Retry the same call in a minute — SEC EDGAR could not be reached, and nothing in the request needs to change.',
113
+ retryable: true,
114
+ thrownBy: 'service',
115
+ },
108
116
  ],
109
117
  input: z.object({
110
118
  accession_number: z
@@ -136,12 +144,12 @@ export const getFilingTool = tool('secedgar_get_filing', {
136
144
  .int()
137
145
  .min(0)
138
146
  .default(0)
139
- .describe('Character offset into the extracted document text. Pass next_offset from a truncated response to continue reading the next page. Default 0 reads from the beginning.'),
147
+ .describe('Character offset into the extracted document text. Pass next_offset from a truncated response to continue reading the next page, and leave section out: section takes precedence over offset. Default 0 reads from the beginning.'),
140
148
  section: z
141
149
  .string()
142
150
  .min(1)
143
151
  .optional()
144
- .describe("Jump to a named section by case-insensitive substring match against detected headings (e.g. 'risk factors', 'item 7', 'certain relationships'). A value ending in a number matches only that number: 'item 1' reaches Item 1 and Item 1A, never Items 10–16. Matching also ignores whitespace and quote-style differences, so a heading copied from the outline resolves whether it carries the filing's non-breaking spaces and curly quotes or plain ones. Takes precedence over offset when both are provided. On a miss, the error message includes the detected outline so you can pick the correct heading."),
152
+ .describe("Jump to a named section, matched against every detected heading and the document's own lines (e.g. 'risk factors', 'item 7', 'item 2.02', 'certain relationships'). The first match wins, in this order: a heading equal to the value, or whose title after its Item/Part marker equals it; the first Item or Part heading containing it; a document line equal to it — a subheading the outline omits ('Liquidity and Capital Resources'); the first other heading containing it; a document line starting with it. In a proxy statement (DEF 14A and its variants), whose ITEM headings are ballot proposals, the first heading of any kind containing the value comes before both document-line steps. Within each heading step a body heading wins over a table-of-contents row, which lands only when nothing else at that step matches. A line landing says so in the notice; table-of-contents rows and wrapped cross-references are never line landings. A leading 20-F sub-item label on a heading or line ('3D.', 'B.') is ignored, so 'risk factors' reaches '3D. RISK FACTORS'; the value itself is matched as given. A value ending in a number matches only that number: 'item 1' reaches Item 1 and Item 1A, never Items 10–16, and 'part i' never reaches Part II. Every step ignores case, whitespace, and quote style, so a heading copied from the outline resolves whether it carries the filing's non-breaking spaces and curly quotes or plain ones; the steps comparing a whole heading or line (equal to, starting with) also ignore the punctuation between an Item or Part marker and its title, so 'Item 1A Risk Factors' reaches 'Item 1A. – Risk Factors'. Takes precedence over offset when both are provided, so leave it out when paging on with next_offset. On a miss, the error message includes the detected outline so you can pick the correct heading."),
145
153
  }),
146
154
  output: z.object({
147
155
  accession_number: z.string().describe('Filing accession number, normalized to dash format.'),
@@ -192,7 +200,7 @@ export const getFilingTool = tool('secedgar_get_filing', {
192
200
  next_offset: z
193
201
  .number()
194
202
  .optional()
195
- .describe('Offset of the next page, to pass as offset; present while content_truncated is true.'),
203
+ .describe('Offset of the next page, to pass as offset without section; present while content_truncated is true.'),
196
204
  outline: z
197
205
  .array(z
198
206
  .object({
@@ -203,7 +211,7 @@ export const getFilingTool = tool('secedgar_get_filing', {
203
211
  })
204
212
  .describe('One detected heading with its offset.'))
205
213
  .optional()
206
- .describe('Up to 50 headings, on the first page of a truncated response (offset=0, no section); pass a heading offset as offset, or its text as section.'),
214
+ .describe('Up to 50 detected headings, on the first page of a truncated response (offset=0, no section). Past 50, Item and Part headings come first (bare TOC copies of titled ones dropped), then the earliest others; the notice gives the detected count. Pass a heading offset as offset, or its text as section.'),
207
215
  filing_url: z.string().describe('Direct URL to the filing on SEC.gov.'),
208
216
  }),
209
217
  async handler(input, ctx) {
@@ -331,29 +339,61 @@ export const getFilingTool = tool('secedgar_get_filing', {
331
339
  filingPrimaryName = cached.document;
332
340
  }
333
341
  }
342
+ // Form, filing date, and period come from the submissions feed's recent window when
343
+ // the accession sits in it. An older filing takes them from its own SEC header: the
344
+ // index-headers page already fetched above, or — only when that page is missing —
345
+ // the bare `.hdr.sgml` header, the one extra request this path can cost (#126).
346
+ // Read before `section` resolves, which ranks a proxy statement's headings apart.
347
+ const { submissions, headers } = records;
348
+ const recent = submissions.filings.recent;
349
+ const idx = recent.accessionNumber.indexOf(accn);
350
+ const header = idx >= 0
351
+ ? undefined
352
+ : (headers?.submission ?? (await api.tryGetSubmissionHeader(resolvedCik, accn)));
353
+ const form = idx >= 0 ? recent.form[idx] : header?.form;
354
+ const filingDate = idx >= 0 ? recent.filingDate[idx] : header?.filingDate;
355
+ const periodEnding = idx >= 0 ? recent.reportDate[idx] : header?.periodOfReport;
334
356
  // Determine effective offset (section wins over raw offset)
335
357
  let effectiveOffset = input.offset ?? 0;
358
+ let lineNotice;
336
359
  if (input.section) {
337
- const headings = detectHeadings(fullText, 50);
338
- // Fold both operands (Unicode whitespace runs, typographic quotes) so a
339
- // heading re-sent from a rendered outline still matches the bytes it came
340
- // from. The outline the error renders below stays verbatim (#106).
341
- const needle = foldForHeadingMatch(input.section);
342
- const match = headings.find((h) => sectionMatches(foldForHeadingMatch(h.heading), needle));
343
- if (!match) {
360
+ // Every detected heading is a candidate; the 50-entry cap is the
361
+ // rendered outline's alone (#169).
362
+ const headings = detectHeadings(fullText);
363
+ // A value of whitespace alone folds to an empty needle, which every
364
+ // heading contains and every line starts with, so it fails before
365
+ // resolution rather than landing unasked on whatever comes first.
366
+ const blank = foldForHeadingMatch(input.section) === '';
367
+ const landing = blank
368
+ ? undefined
369
+ : resolveSection(fullText, headings, input.section, PROXY_FORM_RE.test(form ?? ''));
370
+ if (landing?.source === 'line') {
371
+ lineNotice = `No detected heading matches section '${input.section}', so this page starts at the first document line that does.`;
372
+ }
373
+ else if (landing?.source === 'line-over-heading') {
374
+ lineNotice = `No detected heading equals section '${input.section}', so this page starts at the first document line that does, ahead of headings that only contain it.`;
375
+ }
376
+ if (landing === undefined) {
344
377
  // Render the outline into the message itself — clients reliably see only
345
378
  // message + recovery hint, not error data (#70).
346
- const outlineBlock = headings.length > 0 ? `\n\nOutline:\n${renderOutline(headings)}` : '';
379
+ const outline = selectOutline(headings);
380
+ const outlineLabel = outline.length < headings.length
381
+ ? `Outline (${outline.length} of ${headings.length} detected headings):`
382
+ : 'Outline:';
383
+ const outlineBlock = outline.length > 0 ? `\n\n${outlineLabel}\n${renderOutline(outline)}` : '';
347
384
  const hint = headings.length > 0
348
- ? 'Pick a heading from the outline above and pass it as section.'
385
+ ? 'Pick a heading from the outline above and pass it as section; a subheading the outline omits matches when passed exactly as the document prints it.'
349
386
  : 'No headings were detected in this document — use offset paging instead.';
350
- throw ctx.fail('section_not_found', `Section '${input.section}' not found in this document.${outlineBlock}`, {
387
+ const problem = blank
388
+ ? `Section is blank: ${describeBlankSection(input.section)}, leaving nothing to match.`
389
+ : `Section '${input.section}' not found in this document.`;
390
+ throw ctx.fail('section_not_found', `${problem}${outlineBlock}`, {
351
391
  section: input.section,
352
- outline: headings,
392
+ outline,
353
393
  recovery: { hint },
354
394
  });
355
395
  }
356
- effectiveOffset = match.offset;
396
+ effectiveOffset = landing.offset;
357
397
  }
358
398
  // Validate offset
359
399
  if (effectiveOffset >= fullText.length && fullText.length > 0) {
@@ -363,41 +403,36 @@ export const getFilingTool = tool('secedgar_get_filing', {
363
403
  });
364
404
  }
365
405
  const { text, truncated, totalLength, nextOffset } = windowText(fullText, effectiveOffset, input.content_limit);
366
- // `notice` is last-wins across notice/truncated, so the fallback disclosure
367
- // rides inside the truncation guidance when both apply.
406
+ // Emit outline on first-page truncated responses (not on subsequent pages or section jumps)
407
+ const shouldEmitOutline = truncated && effectiveOffset === 0 && !input.section;
408
+ const detected = shouldEmitOutline ? detectHeadings(fullText) : undefined;
409
+ const outline = detected && selectOutline(detected);
410
+ // `notice` is last-wins across notice/truncated, so the fallback disclosure,
411
+ // the line-landing note, and the outline cut ride inside the truncation
412
+ // guidance. The outline is emitted only on a truncated page, so the cut
413
+ // always has guidance to join.
368
414
  const fallbackNotice = unservedPrimary
369
415
  ? `The filing index names ${unservedPrimary} as the primary document, but the SEC archive does not serve it, so this text is the full submission file ${targetName}.`
370
416
  : undefined;
371
417
  if (truncated) {
372
- const paging = `Showing ${text.length} of ${totalLength} characters. Pass next_offset (${nextOffset ?? '?'}) as offset to read the next page, or jump with section.`;
418
+ // section outranks offset, so a caller who keeps it reads this page again.
419
+ const nextPage = input.section
420
+ ? 'as offset without section to read the next page — section takes precedence over offset.'
421
+ : 'as offset to read the next page, or jump with section.';
422
+ const paging = `Showing ${text.length} of ${totalLength} characters. Pass next_offset (${nextOffset ?? '?'}) ${nextPage}`;
423
+ const outlineCut = detected && outline && outlineCutNote(outline, detected);
373
424
  ctx.enrich.truncated({
374
425
  shown: text.length,
375
426
  cap: input.content_limit,
376
- guidance: fallbackNotice ? `${fallbackNotice} ${paging}` : paging,
427
+ guidance: [fallbackNotice, lineNotice, paging, outlineCut].filter(Boolean).join(' '),
377
428
  });
378
429
  }
379
- else if (fallbackNotice) {
380
- ctx.enrich.notice(fallbackNotice);
430
+ else if (fallbackNotice || lineNotice) {
431
+ ctx.enrich.notice([fallbackNotice, lineNotice].filter(Boolean).join(' '));
381
432
  }
382
- // Emit outline on first-page truncated responses (not on subsequent pages or section jumps)
383
- const shouldEmitOutline = truncated && effectiveOffset === 0 && !input.section;
384
- const outline = shouldEmitOutline ? detectHeadings(fullText, 50) : undefined;
385
433
  // Headers give canonical document types; without them categorization falls
386
434
  // back to name-pattern inference.
387
- const { submissions, headers } = records;
388
435
  const documents = categorizeDocuments(index.directory.item, filingPrimaryName, headers?.documents ?? null, input.include_xbrl);
389
- // Form, filing date, and period come from the submissions feed's recent window when
390
- // the accession sits in it. An older filing takes them from its own SEC header: the
391
- // index-headers page already fetched above, or — only when that page is missing —
392
- // the bare `.hdr.sgml` header, the one extra request this path can cost (#126).
393
- const recent = submissions.filings.recent;
394
- const idx = recent.accessionNumber.indexOf(accn);
395
- const header = idx >= 0
396
- ? undefined
397
- : (headers?.submission ?? (await api.tryGetSubmissionHeader(resolvedCik, accn)));
398
- const form = idx >= 0 ? recent.form[idx] : header?.form;
399
- const filingDate = idx >= 0 ? recent.filingDate[idx] : header?.filingDate;
400
- const periodEnding = idx >= 0 ? recent.reportDate[idx] : header?.periodOfReport;
401
436
  ctx.log.info('Filing retrieved', {
402
437
  accessionNumber: accn,
403
438
  cik: resolvedCik,
@@ -455,25 +490,244 @@ export const getFilingTool = tool('secedgar_get_filing', {
455
490
  });
456
491
  /**
457
492
  * Whether a folded `section` needle matches a folded heading: a substring match,
458
- * except that a needle ending in a digit never continues into a longer number —
459
- * `item 1` matches `Item 1.` and `Item 1A`, never `Item 12`. Plain-text outlines
460
- * keep their TOC rows (they are worded differently from the body heading, so
461
- * dedup leaves them), and a TOC row for Item 10–16 precedes the body Item 1, so
462
- * a bare substring test landed `item 1` on the wrong Item (#136). Every
463
- * occurrence is checked, not just the first.
493
+ * except that a needle ending in a number never continues into a longer one.
494
+ * A trailing digit never runs on into another digit — `item 1` matches `Item 1.`
495
+ * and `Item 1A`, never `Item 12`. Plain-text outlines keep their TOC rows (they
496
+ * are worded differently from the body heading, so dedup leaves them), and a TOC
497
+ * row for Item 10–16 precedes the body Item 1, so a bare substring test landed
498
+ * `item 1` on the wrong Item (#136). A trailing roman numeral (`part i`, a word
499
+ * of `i`, `v`, and `x`) ends at a space, punctuation, or the heading's end, so
500
+ * `part i` never matches `PART II`, `PART III`, or `PART IV` — a 10-Q printing
501
+ * Part I only in its table of contents otherwise landed `part i` on its body
502
+ * `PART II - OTHER INFORMATION`. Every occurrence is checked, not just the first.
464
503
  */
465
504
  function sectionMatches(heading, needle) {
466
- const bounded = /\d$/.test(needle);
467
- for (let at = heading.indexOf(needle); at !== -1; at = heading.indexOf(needle, at + 1)) {
468
- if (!bounded || !/\d/.test(heading.charAt(at + needle.length)))
469
- return true;
505
+ const continuation = /\d$/.test(needle)
506
+ ? /\d/
507
+ : /(?:^|\s)[ivx]{1,4}$/.test(needle)
508
+ ? /[\p{L}\p{N}]/u
509
+ : undefined;
510
+ const at = heading.indexOf(needle);
511
+ if (at === -1)
512
+ return false;
513
+ if (continuation === undefined || !continuation.test(heading.charAt(at + needle.length))) {
514
+ return true;
515
+ }
516
+ return occursBeforeBoundary(heading, needle, at + 1, continuation);
517
+ }
518
+ /**
519
+ * Whether `needle` occurs in `heading` at or after `from` with no `continuation`
520
+ * character after it, over every occurrence in one Knuth–Morris–Pratt pass.
521
+ * Reached only after a first occurrence that runs on.
522
+ */
523
+ function occursBeforeBoundary(heading, needle, from, continuation) {
524
+ const fallback = new Int32Array(needle.length);
525
+ for (let i = 1, k = 0; i < needle.length; i++) {
526
+ while (k > 0 && needle[i] !== needle[k])
527
+ k = fallback[k - 1] ?? 0;
528
+ if (needle[i] === needle[k])
529
+ k++;
530
+ fallback[i] = k;
531
+ }
532
+ for (let i = from, k = 0; i < heading.length; i++) {
533
+ while (k > 0 && heading[i] !== needle[k])
534
+ k = fallback[k - 1] ?? 0;
535
+ if (heading[i] === needle[k])
536
+ k++;
537
+ if (k === needle.length) {
538
+ if (!continuation.test(heading.charAt(i + 1)))
539
+ return true;
540
+ k = fallback[k - 1] ?? 0;
541
+ }
470
542
  }
471
543
  return false;
472
544
  }
545
+ /**
546
+ * Where `section` lands, over every detected heading (#169) and the document's
547
+ * own lines (#166), in five tiers — first hit wins (#177):
548
+ * 1. Exact — the first heading whose {@link headingKey} equals the needle's, or
549
+ * whose title after its Item/Part marker does; failing that, the first equal
550
+ * once a leading 20-F sub-item label is removed ("D. RISK FACTORS", #175), so
551
+ * an earlier "A. RISK FACTORS" never takes "risk factors" from "Item 1A. Risk
552
+ * Factors". The needle is compared as given. A bare marker ("ITEM 1.", "Part
553
+ * II") has no title and is never a candidate here. This tier keeps "risk
554
+ * factors" on "Item 1A. Risk Factors." when an earlier all-caps heading
555
+ * merely contains the words.
556
+ * 2. The first Item or Part heading that {@link sectionMatches}: a value inside
557
+ * an Item title names that Item ("compensation" → "Item 11. Executive
558
+ * Compensation"), where a line equal to it is often a table-row label.
559
+ * 3. A document line equal to the value ({@link matchSectionLine}).
560
+ * 4. The first other heading that {@link sectionMatches}. One that merely holds
561
+ * the word ("NOTE 3. BUSINESS COMBINATIONS" for "business", "COST OF
562
+ * REVENUES" for "revenue") ranks after a line printing the value alone.
563
+ * 5. A document line starting with the value.
564
+ *
565
+ * Inside each heading tier, a heading on a table-of-contents row
566
+ * ({@link isTocHeading}) ranks after every body heading of the tier, and lands
567
+ * only when it is the tier's one match (#174) — in tier 1, after the labelled
568
+ * body headings too, so a TOC row equal as printed never outranks a body "D.
569
+ * RISK FACTORS". TOC rows that survive dedup — a bare marker over its title and
570
+ * page cells, a row worded apart from its body heading — otherwise came first
571
+ * by offset and took every `item N` in a 20-F whose TOC prints one cell per
572
+ * line. They are not pushed behind the line tiers: a body heading over a page
573
+ * number reads as a TOC row too, and behind the line tiers CCC's `item 6` left
574
+ * its body "Item 6. Reserved." for a bare TOC marker line. The line tiers skip
575
+ * TOC rows already.
576
+ *
577
+ * The line tiers share one pass over the text, run only when tiers 1 and 2 miss.
578
+ *
579
+ * A proxy statement (`proxy`) keeps tier 1, then every heading containing the
580
+ * value, then the line tiers: its ITEM headings are ballot proposals, not the
581
+ * Regulation S-K item taxonomy, and its lines equal to a value are mostly table
582
+ * cells. Tiers 2–4 there took Goldman Sachs' DEF 14A `compensation` from the
583
+ * CD&A to "ITEM 2. … SAY ON PAY" 151,000 characters on, and `summary` from
584
+ * "EXECUTIVE SUMMARY" to a Pay versus Performance column header.
585
+ */
586
+ function resolveSection(text, headings, section, proxy) {
587
+ /**
588
+ * The earliest heading of the best rank `rank` gives (0, then 1; undefined is
589
+ * no match), every body heading ahead of every TOC row.
590
+ */
591
+ const best = (rank) => {
592
+ const earliest = [];
593
+ for (const h of headings) {
594
+ const r = rank(h);
595
+ if (r === undefined)
596
+ continue;
597
+ const slot = r + (isTocHeading(text, h) ? 2 : 0);
598
+ if (slot === 0)
599
+ return h;
600
+ earliest[slot] ??= h;
601
+ }
602
+ return earliest.find((h) => h !== undefined);
603
+ };
604
+ /** The first heading `matches` accepts, a body heading ahead of every TOC row. */
605
+ const first = (matches) => best((h) => (matches(h) ? 0 : undefined));
606
+ const exactNeedle = headingKey(section);
607
+ const exact = best((h) => {
608
+ const key = headingKey(h.heading);
609
+ const title = MARKER_TITLE_RE.exec(key)?.[2];
610
+ if (title === '')
611
+ return;
612
+ if (key === exactNeedle || title === exactNeedle)
613
+ return 0;
614
+ const labelled = [key, title].some((k) => k !== undefined && withoutSubItemLabel(k) === exactNeedle);
615
+ return labelled ? 1 : undefined;
616
+ });
617
+ if (exact)
618
+ return { offset: exact.offset, source: 'heading' };
619
+ // Fold both operands (Unicode whitespace runs, typographic quotes) so a
620
+ // heading re-sent from a rendered outline still matches the bytes it came
621
+ // from (#106).
622
+ const needle = foldForHeadingMatch(section);
623
+ const contains = (h) => sectionMatches(foldForHeadingMatch(h.heading), needle);
624
+ if (proxy) {
625
+ const heading = first(contains);
626
+ if (heading)
627
+ return { offset: heading.offset, source: 'heading' };
628
+ const line = matchSectionLine(text, section);
629
+ return line ? { offset: line.offset, source: 'line' } : undefined;
630
+ }
631
+ const itemOrPart = first((h) => STRUCTURAL_HEADING_RE.test(h.heading) && contains(h));
632
+ if (itemOrPart)
633
+ return { offset: itemOrPart.offset, source: 'heading' };
634
+ const line = matchSectionLine(text, section);
635
+ // Tier 2 missed, so any heading containing the value is a non-Item one.
636
+ const other = first(contains);
637
+ if (line?.equal)
638
+ return { offset: line.offset, source: other ? 'line-over-heading' : 'line' };
639
+ if (other)
640
+ return { offset: other.offset, source: 'heading' };
641
+ if (line)
642
+ return { offset: line.offset, source: 'line' };
643
+ return;
644
+ }
645
+ /**
646
+ * A blank `section` described by its length and the code points it holds, each
647
+ * named once in order of first appearance ("its 2 characters are all whitespace
648
+ * (U+0009, U+000A)"), since the value itself prints as nothing. Every character
649
+ * a fold strips is in the BMP, so a code unit is its code point.
650
+ */
651
+ function describeBlankSection(section) {
652
+ const codes = new Set(Array.from(section, (c) => `U+${c.charCodeAt(0).toString(16).toUpperCase().padStart(4, '0')}`));
653
+ const count = section.length === 1 ? 'its 1 character is' : `its ${section.length} characters are all`;
654
+ return `${count} whitespace (${[...codes].join(', ')})`;
655
+ }
656
+ /** A proxy or information statement form: DEF 14A, DEFA14A, DEFM14A, PRE 14A, PREM14C, … */
657
+ const PROXY_FORM_RE = /^(?:DEF|PRE)[ACMNR]? ?14[AC]\b/;
658
+ /** Most headings an outline renders, on the first page and in a section_not_found message. */
659
+ const OUTLINE_MAX_ENTRIES = 50;
660
+ /** An Item or Part heading, bare marker included — the document's structure. */
661
+ const STRUCTURAL_HEADING_RE = /^(?:items?\s+\d|part\s+[ivx]{1,4}\b)/i;
662
+ /**
663
+ * The Item and Part headings an outline keeps. Past {@link OUTLINE_MAX_ENTRIES}
664
+ * of them, each bare marker that a later titled heading for the same Item or
665
+ * Part repeats is left out — the table-of-contents copy of a body heading. A
666
+ * 20-F whose TOC renders every Item as a bare marker (31 of them in DRDGOLD's
667
+ * FY2026 20-F) otherwise filled the cut with TOC copies and pushed the body's
668
+ * Items 16A–19 out. A bare marker no titled heading repeats stays.
669
+ */
670
+ function outlineStructuralHeadings(headings) {
671
+ const structural = headings.filter((h) => STRUCTURAL_HEADING_RE.test(h.heading));
672
+ if (structural.length <= OUTLINE_MAX_ENTRIES)
673
+ return structural;
674
+ const titledLater = new Set();
675
+ const kept = [];
676
+ for (const h of [...structural].reverse()) {
677
+ const [, marker, title] = MARKER_TITLE_RE.exec(headingKey(h.heading)) ?? [];
678
+ if (marker !== undefined && title === '' && titledLater.has(marker))
679
+ continue;
680
+ if (marker !== undefined && title)
681
+ titledLater.add(marker);
682
+ kept.push(h);
683
+ }
684
+ return kept.reverse();
685
+ }
686
+ /**
687
+ * The outline for a document's detected headings: all of them up to
688
+ * {@link OUTLINE_MAX_ENTRIES}; past it, every Item and Part heading the outline
689
+ * keeps ({@link outlineStructuralHeadings}) plus the earliest other headings up
690
+ * to the cap, in offset order. A cut by offset alone let a heavy 10-K's
691
+ * financial-statement captions push Items 9B–16 out (#169).
692
+ */
693
+ function selectOutline(headings) {
694
+ if (headings.length <= OUTLINE_MAX_ENTRIES)
695
+ return headings;
696
+ const structural = new Set(outlineStructuralHeadings(headings));
697
+ let otherSlots = OUTLINE_MAX_ENTRIES - structural.size;
698
+ const outline = [];
699
+ for (const h of headings) {
700
+ if (structural.has(h))
701
+ outline.push(h);
702
+ else if (otherSlots > 0 && !STRUCTURAL_HEADING_RE.test(h.heading)) {
703
+ outline.push(h);
704
+ otherSlots--;
705
+ }
706
+ }
707
+ return outline.slice(0, OUTLINE_MAX_ENTRIES);
708
+ }
709
+ /**
710
+ * The guidance sentence disclosing an outline cut, or undefined when nothing was
711
+ * cut. It claims every Item and Part heading only when the outline holds them,
712
+ * and names the bare TOC copies {@link outlineStructuralHeadings} left out.
713
+ */
714
+ function outlineCutNote(outline, detected) {
715
+ if (outline.length === detected.length)
716
+ return;
717
+ const kept = outlineStructuralHeadings(detected).length;
718
+ const structural = detected.filter((h) => STRUCTURAL_HEADING_RE.test(h.heading)).length;
719
+ const scope = kept > OUTLINE_MAX_ENTRIES
720
+ ? ''
721
+ : kept < structural
722
+ ? ', every Item and Part heading among them, bare table-of-contents copies of titled ones aside'
723
+ : ', every Item and Part heading among them';
724
+ return `The outline lists ${outline.length} of ${detected.length} detected headings${scope}; section matches all of them.`;
725
+ }
473
726
  /**
474
727
  * Render outline entries as ` [offset] HEADING` lines. Shared by format()
475
728
  * and the section_not_found error message, so both surfaces read identically.
476
- * detectHeadings caps entries (50), which bounds the rendered block.
729
+ * Both render a {@link selectOutline} cut, which bounds the block at
730
+ * {@link OUTLINE_MAX_ENTRIES} entries.
477
731
  */
478
732
  function renderOutline(outline) {
479
733
  return outline.map((h) => ` [${h.offset}] ${h.heading}`).join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"get-filing.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-filing.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE7F,OAAO,EAEL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,UAAU,GACX,MAAM,oCAAoC,CAAC;AAG5C,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC;;;;;GAKG;AACH,MAAM,oBAAoB,GACxB,6EAA6E,CAAC;AAChF,MAAM,kBAAkB,GAAG,gCAAgC,CAAC;AAC5D,0FAA0F;AAC1F,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAoFvC,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IACzE,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,CACP,iJAAiJ,CAClJ;IACH,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;IAC1F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IAC3D,MAAM,EAAE,CAAC;SACN,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,8EAA8E,CAAC;CAC5F,CAAC;KACD,QAAQ,CAAC,qCAAqC,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE;IACvD,WAAW,EACT,uYAAuY;IACzY,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAE9E,+EAA+E;IAC/E,4EAA4E;IAC5E,uEAAuE;IACvE,UAAU,EAAE;QACV,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,yGAAyG,CAC1G;QACH,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,wEAAwE,CAAC;QACrF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC3F,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAC7E;IAED,MAAM,EAAE;QACN;YACE,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,yEAAyE;YAC/E,QAAQ,EAAE,0EAA0E;SACrF;QACD;YACE,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,sEAAsE;YAC5E,QAAQ,EAAE,mEAAmE;SAC9E;QACD;YACE,MAAM,EAAE,iBAAiB;YACzB,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,+FAA+F;YACrG,QAAQ,EAAE,6EAA6E;SACxF;QACD;YACE,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,gEAAgE;YACtE,QAAQ,EAAE,kEAAkE;SAC7E;QACD;YACE,MAAM,EAAE,qBAAqB;YAC7B,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,6DAA6D;YACnE,QAAQ,EAAE,+EAA+E;SAC1F;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,uEAAuE;YAC7E,QAAQ,EACN,qFAAqF;SACxF;QACD;YACE,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,gBAAgB,CAAC,WAAW;YAClC,IAAI,EAAE,yIAAyI;YAC/I,QAAQ,EACN,0HAA0H;YAC5H,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,SAAS;SACpB;KACF;IAED,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,gBAAgB,EAAE,CAAC;aAChB,MAAM,EAAE;aACR,KAAK,CACJ,iCAAiC,EACjC,6FAA6F,CAC9F;aACA,QAAQ,CACP,0LAA0L,CAC3L;QACH,GAAG,EAAE,CAAC;aACH,MAAM,EAAE;aACR,KAAK,CAAC,YAAY,EAAE,+BAA+B,CAAC;aACpD,QAAQ,EAAE;aACV,QAAQ,CACP,2OAA2O,CAC5O;QACH,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,IAAI,CAAC;aACT,GAAG,CAAC,MAAM,CAAC;aACX,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CACP,8VAA8V,CAC/V;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,sPAAsP,CACvP;QACH,YAAY,EAAE,CAAC;aACZ,OAAO,EAAE;aACT,OAAO,CAAC,KAAK,CAAC;aACd,QAAQ,CACP,ubAAub,CACxb;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,OAAO,CAAC,CAAC,CAAC;aACV,QAAQ,CACP,sKAAsK,CACvK;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,EAAE;aACV,QAAQ,CACP,mlBAAmlB,CACplB;KACJ,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC5F,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,mHAAmH,CACpH;QACH,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,uFAAuF,CACxF;QACH,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0EAA0E,CAAC;QACvF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACxE,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,0JAA0J,CAC3J;QACH,gBAAgB,EAAE,CAAC;aAChB,MAAM,EAAE;aACR,QAAQ,CACP,mMAAmM,CACpM;QACH,kBAAkB,EAAE,CAAC;aAClB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,sFAAsF,CACvF;QACH,SAAS,EAAE,CAAC;aACT,MAAM,CAAC;YACN,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC,mBAAmB,CAAC;iBAC1B,QAAQ,CAAC,uEAAuE,CAAC;YACpF,QAAQ,EAAE,CAAC;iBACR,KAAK,CAAC,mBAAmB,CAAC;iBAC1B,QAAQ,CACP,sKAAsK,CACvK;YACH,SAAS,EAAE,CAAC;iBACT,KAAK,CAAC,mBAAmB,CAAC;iBAC1B,QAAQ,CAAC,qEAAqE,CAAC;YAClF,IAAI,EAAE,CAAC;iBACJ,KAAK,CAAC,mBAAmB,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CACP,gFAAgF,CACjF;SACJ,CAAC;aACD,QAAQ,CACP,6KAA6K,CAC9K;QACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC3E,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QAC1F,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAChF,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,sFAAsF,CACvF;QACH,OAAO,EAAE,CAAC;aACP,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACtD,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,wEAAwE,CAAC;SACtF,CAAC;aACD,QAAQ,CAAC,uCAAuC,CAAC,CACrD;aACA,QAAQ,EAAE;aACV,QAAQ,CACP,+IAA+I,CAChJ;QACH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;KACxE,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;QAEjC,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,IAAI,gBAAgB,CAAC;QACvD,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,WAAW,EAAE,CAAC;QAE1C,4DAA4D;QAC5D,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAA8B,CAAC;QAEtE,IAAI,QAAgB,CAAC;QACrB,IAAI,WAAmB,CAAC;QACxB,IAAI,KAAkB,CAAC;QACvB,IAAI,UAAkB,CAAC;QACvB,IAAI,iBAAyB,CAAC;QAC9B,IAAI,eAAmC,CAAC;QACxC,IAAI,OAAsB,CAAC;QAE3B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,QAAQ,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;oBAC3C,wEAAwE;oBACxE,0EAA0E;oBAC1E,qEAAqE;oBACrE,wEAAwE;oBACxE,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;oBACxD,iEAAiE;oBACjE,sEAAsE;oBACtE,2CAA2C;oBAC3C,uEAAuE;oBACvE,mEAAmE;oBACnE,oEAAoE;oBACpE,uDAAuD;oBACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS;wBAC7B,CAAC,CAAC,iBAAiB,IAAI,4EAA4E;wBACnG,CAAC,CAAC,WAAW;4BACX,CAAC,CAAC,iBAAiB,WAAW,iLAAiL;4BAC/M,CAAC,CAAC,YAAY;gCACZ,CAAC,CAAC,sCAAsC;gCACxC,CAAC,CAAC,mEAAmE,CAAC;oBAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS;wBAChC,CAAC,CAAC,0EAA0E;wBAC5E,CAAC,CAAC,2BAA2B,CAAC;oBAChC,MAAM,GAAG,CAAC,IAAI,CACZ,oBAAoB,EACpB,aAAa,QAAQ,CAAC,iBAAiB,KAAK,OAAO,GAAG,YAAY,EAAE,EACpE;wBACE,kBAAkB,EAAE,QAAQ,CAAC,iBAAiB;wBAC9C,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE;qBACnB,CACF,CAAC;gBACJ,CAAC;gBACD,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBACxC,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;oBACxD,MAAM,IAAI,GAAG,WAAW;wBACtB,CAAC,CAAC,iBAAiB,WAAW,kIAAkI;wBAChK,CAAC,CAAC,oIAAoI,CAAC;oBACzI,MAAM,GAAG,CAAC,IAAI,CACZ,iBAAiB,EACjB,aAAa,QAAQ,CAAC,iBAAiB,UAAU,QAAQ,CAAC,YAAY,qCAAqC,YAAY,EAAE,EACzH;wBACE,kBAAkB,EAAE,QAAQ,CAAC,iBAAiB;wBAC9C,aAAa,EAAE,QAAQ,CAAC,YAAY;wBACpC,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE;qBACnB,CACF,CAAC;gBACJ,CAAC;gBACD,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACrC,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC/D,MAAM,GAAG,CAAC,IAAI,CACZ,cAAc,EACd,uCAAuC,IAAI,IAAI,YAAY,EAAE,EAC7D;wBACE,gBAAgB,EAAE,IAAI;wBACtB,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,QAAQ,EAAE;4BACR,sEAAsE;4BACtE,sEAAsE;4BACtE,oEAAoE;4BACpE,wBAAwB;4BACxB,IAAI,EAAE,YAAY;gCAChB,CAAC,CAAC,yHAAyH;gCAC3H,CAAC,CAAC,mFAAmF;yBACxF;qBACF,CACF,CAAC;gBACJ,CAAC;gBACD,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW;oBACpC,CAAC,CAAC,SAAS,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG;oBACpD,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW;oBACvC,CAAC,CAAC,kDAAkD;oBACpD,CAAC,CAAC,kEAAkE,CAAC;gBACvE,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,IAAI,cAAc,SAAS,GAAG,EAAE;oBAC5E,gBAAgB,EAAE,IAAI;oBACtB,GAAG,EAAE,QAAQ,CAAC,WAAW;oBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;iBACjC,CAAC,CAAC;YACL,CAAC;YAED,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC;YAC3B,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YACvB,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;YACjC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YAC/C,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;YAC3C,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YAE3B,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;YAC1F,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,4EAA4E;YAC5E,gFAAgF;YAChF,8EAA8E;YAC9E,4EAA4E;YAC5E,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpF,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;gBACrB,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,IAAI,0BAA0B,EAAE;oBAC5E,gBAAgB,EAAE,IAAI;oBACtB,GAAG,EAAE,KAAK,CAAC,GAAG;iBACf,CAAC,CAAC;YACL,CAAC;YACD,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC;YACzB,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;YAC3B,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;YAC/B,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;YACvB,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC7B,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,CAAC;YACnD,4EAA4E;YAC5E,IACE,CAAC,KAAK,CAAC,QAAQ;gBACf,MAAM,CAAC,QAAQ,KAAK,GAAG,IAAI,MAAM;gBACjC,MAAM,CAAC,QAAQ,KAAK,YAAY,CAAC,iBAAiB,EAClD,CAAC;gBACD,eAAe,GAAG,YAAY,CAAC,iBAAiB,CAAC;gBACjD,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC;YACtC,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,IAAI,eAAe,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QAExC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC9C,wEAAwE;YACxE,0EAA0E;YAC1E,mEAAmE;YACnE,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC3F,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,yEAAyE;gBACzE,iDAAiD;gBACjD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3F,MAAM,IAAI,GACR,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACjB,CAAC,CAAC,+DAA+D;oBACjE,CAAC,CAAC,yEAAyE,CAAC;gBAChF,MAAM,GAAG,CAAC,IAAI,CACZ,mBAAmB,EACnB,YAAY,KAAK,CAAC,OAAO,gCAAgC,YAAY,EAAE,EACvE;oBACE,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,EAAE,IAAI,EAAE;iBACnB,CACF,CAAC;YACJ,CAAC;YACD,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,CAAC;QAED,kBAAkB;QAClB,IAAI,eAAe,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,GAAG,CAAC,IAAI,CACZ,qBAAqB,EACrB,UAAU,eAAe,sDAAsD,QAAQ,CAAC,MAAM,IAAI,EAClG;gBACE,MAAM,EAAE,eAAe;gBACvB,oBAAoB,EAAE,QAAQ,CAAC,MAAM;aACtC,CACF,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAC7D,QAAQ,EACR,eAAe,EACf,KAAK,CAAC,aAAa,CACpB,CAAC;QAEF,4EAA4E;QAC5E,wDAAwD;QACxD,MAAM,cAAc,GAAG,eAAe;YACpC,CAAC,CAAC,0BAA0B,eAAe,6GAA6G,UAAU,GAAG;YACrK,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,WAAW,IAAI,CAAC,MAAM,OAAO,WAAW,kCAAkC,UAAU,IAAI,GAAG,0DAA0D,CAAC;YACrK,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,GAAG,EAAE,KAAK,CAAC,aAAa;gBACxB,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM;aAClE,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,cAAc,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;QAED,4FAA4F;QAC5F,MAAM,iBAAiB,GAAG,SAAS,IAAI,eAAe,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC/E,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7E,2EAA2E;QAC3E,kCAAkC;QAClC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAEzC,MAAM,SAAS,GAAG,mBAAmB,CACnC,KAAK,CAAC,SAAS,CAAC,IAAI,EACpB,iBAAiB,EACjB,OAAO,EAAE,SAAS,IAAI,IAAI,EAC1B,KAAK,CAAC,YAAY,CACnB,CAAC;QAEF,oFAAoF;QACpF,oFAAoF;QACpF,kFAAkF;QAClF,gFAAgF;QAChF,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,MAAM,GACV,GAAG,IAAI,CAAC;YACN,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,IAAI,CAAC,MAAM,GAAG,CAAC,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAErF,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC;QACxD,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC;QAC1E,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC;QAEhF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC/B,eAAe,EAAE,IAAI;YACrB,GAAG,EAAE,WAAW;YAChB,aAAa,EAAE,WAAW;YAC1B,MAAM,EAAE,eAAe;YACvB,cAAc,EAAE,GAAG,IAAI,CAAC;YACxB,eAAe,EAAE,OAAO,KAAK,IAAI;YACjC,eAAe;SAChB,CAAC,CAAC;QAEH,MAAM,iBAAiB,GACrB,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtF,OAAO;YACL,gBAAgB,EAAE,IAAI;YACtB,IAAI,EAAE,IAAI,IAAI,SAAS;YACvB,WAAW,EAAE,UAAU,IAAI,SAAS;YACpC,YAAY,EAAE,WAAW,CAAC,IAAI,IAAI,SAAS;YAC3C,GAAG,EAAE,WAAW;YAChB,aAAa,EAAE,YAAY,IAAI,SAAS;YACxC,gBAAgB,EAAE,iBAAiB;YACnC,kBAAkB,EAAE,iBAAiB;YACrC,SAAS;YACT,OAAO,EAAE,IAAI;YACb,iBAAiB,EAAE,SAAS;YAC5B,oBAAoB,EAAE,WAAW;YACjC,WAAW,EAAE,UAAU;YACvB,OAAO;YACP,UAAU,EAAE,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC;SAC5D,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,IAAI,gBAAgB,CAAC;QACvD,MAAM,MAAM,GAAG,KAAK,SAAS,QAAQ,MAAM,SAAS,MAAM,CAAC,GAAG,GAAG,CAAC;QAElE,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACzF,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,QAAQ,GAAG,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC;QAE7C,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB;YACxC,CAAC,CAAC,YAAY,MAAM,CAAC,gBAAgB,iBAAiB,MAAM,CAAC,kBAAkB,EAAE;YACjF,CAAC,CAAC,YAAY,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,iBAAiB;YAC5C,CAAC,CAAC,6BAA6B,MAAM,CAAC,WAAW,IAAI,GAAG,GAAG;YAC3D,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,GAAG,cAAc,MAAM,CAAC,gBAAgB,MAAM,QAAQ,MAAM,MAAM,CAAC,oBAAoB,SAAS,aAAa,EAAE,CAAC;QAE1H,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,WAAW,GACf,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACzC,CAAC,CAAC,iBAAiB,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YAClD,CAAC,CAAC,EAAE,CAAC;QAET,MAAM,GAAG,GAAG,UAAU,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1C,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,GAAG,MAAM,KAAK,QAAQ,KAAK,IAAI,GAAG,IAAI,GAAG,WAAW,GAAG,GAAG,OAAO,oBAAoB,KAAK,MAAM,CAAC,OAAO,KAAK,kBAAkB,EAAE;aACxI;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,OAAe,EAAE,MAAc;IACrD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACvF,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IAC9E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,OAAmD;IACxE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,qBAAqB,CAAC,SAA+B;IAC5D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,OAAwB,EAAQ,EAAE;QACpE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC;;;;;WAKG;QACH,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC;aACvB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;aACrE,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChG,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC9C,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,OAAO,CAAC,MAAM,YAAY,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5C,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,SAAS,CAAC,IAAI;QAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAExD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,kCAAkC,sBAAsB,0BAA0B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACjH,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAAC,KAAa;IAC7C,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CACjC,GAA0C,EAC1C,eAAuB,EACvB,WAA+B,EAC/B,iBAAqC;IAErC,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IACpF,yFAAyF;IACzF,IAAI,WAA6E,CAAC;IAClF,mFAAmF;IACnF,IAAI,QAES,CAAC;IACd,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAE/B,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,iFAAiF;QACjF,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;QACnE,WAAW,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QACjC,IAAI,iBAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC;YAAE,SAAS;QAE1F,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAC/E,IAAI,CAAC,iBAAiB;YAAE,SAAS;QAEjC,MAAM,UAAU,GAAG,iBAAiB,IAAI,iBAAiB,CAAC;QAC1D,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;QAE3D;;;;;;WAMG;QACH,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;QACpF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;YACxF,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,iBAAiB;gBACvB,iBAAiB,EAAE,UAAU;gBAC7B,YAAY;gBACZ,SAAS;aACV,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QAC9E,IAAI,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;QACxF,IAAI,iBAAiB;YAAE,kBAAkB,GAAG,IAAI,CAAC;;YAC5C,QAAQ,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACjE,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,UAAU,GAAG,GAAG,eAAe,MAAM,CAAC;IAC5C,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QACvF,IAAI,IAAI,EAAE,CAAC;YACT,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,IAAI;gBACJ,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,UAAU,EAAE,UAAU;gBACtB,iBAAiB,EAAE,UAAU;gBAC7B,eAAe,EAAE,QAAQ,CAAC,OAAO;gBACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAC9D,CAAC;IAED,kFAAkF;IAClF,MAAM,gBAAgB,GACpB,mBAAmB,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACrF,MAAM,SAAS,GAAG,mBAAmB,CACnC,WAAW,CAAC,KAAK,EACjB,gBAAgB,EAChB,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI,EAC9C,KAAK,CACN,CAAC;IAEF,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,oBAAoB;YAC1B,iBAAiB;YACjB,SAAS,EAAE,kBAAkB;YAC7B,SAAS;SACV,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;AACxD,CAAC;AAWD;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAC9B,GAA0C,EAC1C,eAAuB,EACvB,GAAW,EACX,iBAAqC;IAErC,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC;IACnC,IAAI,iBAAiB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IAC/E,IAAI,CAAC,iBAAiB;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IAE7C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAC9B,GAA0C,EAC1C,GAAW,EACX,eAAuB;IAEvB,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC/C,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC;QACvB,GAAG,CAAC,mBAAmB,CAAC,GAAG,EAAE,eAAe,CAAC;KAC9C,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,GAA0C,EAC1C,eAAuB,EACvB,WAA+B;IAE/B,IAAI,WAAW;QAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CACxF,EAAE,EACF,GAAG,CACJ,CAAC;IAEF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,oGAAoG;AACpG,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC;;;;;;GAMG;AACH,SAAS,mBAAmB,CAC1B,KAAwB,EACxB,eAAuB,EACvB,OAAsB;IAEtB,MAAM,MAAM,GAAG,oBAAoB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,IAAI,CAChE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAC3D,CAAC;IACF,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,CAAC,IAAI,EAAE,EAAE,CACP,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CACjC,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEnE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CACP,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3F,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,kBAAkB,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IAEjE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACjG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEnE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACjF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,eAAuB,EACvB,EAAE,OAAO,EAAE,WAAW,EAAiB;IAEvC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,MAAM,IAAI,GAAG,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;IACtC,MAAM,KAAK,GACT,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAwB;IAClD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CACpB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAClF,CAAC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAC1B,KAAwB,EACxB,WAAmB,EACnB,OAAiD,EACjD,WAAoB;IAEpB,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,SAAS,GAAoB,EAAE,CAAC;IACtC,MAAM,IAAI,GAAoB,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAkB;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI;YACJ,WAAW,EAAE,MAAM,EAAE,WAAW;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS;YACzE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACpD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjG,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,gBAAgB;IAChB,SAAS;IACT,YAAY;IACZ,uBAAuB;IACvB,mBAAmB;CACpB,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,IAAY,EAAE,IAAY;IAChD,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,mBAAmB;IAC/D,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,YAAY;IAC3E,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,uBAAuB;IAClE,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,kBAAkB;IACzD,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,uBAAuB;IACnE,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gDAAgD;AAChF,CAAC;AAED;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,0DAA0D,CAAC;AAExF;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAA4B;IACjD,CAAC,iCAAiC,EAAE,SAAS,CAAC;IAC9C,CAAC,SAAS,EAAE,KAAK,CAAC;IAClB,CAAC,mBAAmB,EAAE,QAAQ,CAAC;CAChC,CAAC;AAEF,kFAAkF;AAClF,SAAS,kBAAkB,CAAC,IAAY;IACtC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,iBAAiB,EAAE,CAAC;QACjD,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;IACvC,CAAC;IACD,OAAO;AACT,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,IAAY,EAAE,IAAwB;IACxD,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACjG,CAAC;AAED,qEAAqE;AACrE,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC;IACpD,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC;IACzE,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,eAAe,CAAC;IACrD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC;IAC/C,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,aAAa,CAAC;IACpD,IAAI,IAAI,KAAK,gBAAgB;QAAE,OAAO,eAAe,CAAC;IACtD,IAAI,IAAI,KAAK,mBAAmB;QAAE,OAAO,gBAAgB,CAAC;IAC1D,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,mBAAmB,CAAC;IAC5E,IAAI,IAAI,KAAK,uBAAuB;QAAE,OAAO,kBAAkB,CAAC;IAChE,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,6EAA6E;IAC7E,8EAA8E;IAC9E,2EAA2E;IAC3E,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,qBAAqB,CAAC,IAA0B;IACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,MAAM,MAAM,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,MAAM,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,aAAa,CAAC,OAAwB;IAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,QAAQ;SAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GAAG;YACX,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;YAC1B,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI;YAC1C,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI;SAC5C;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC;IAC/B,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,GAAG,IAAI,MAAM,IAAI,CAAC,MAAM,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"get-filing.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-filing.tool.ts"],"names":[],"mappings":"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"}