hledger-lsp 0.2.0 → 0.2.2

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 (38) hide show
  1. package/out/features/codeActions.d.ts.map +1 -1
  2. package/out/features/codeActions.js +5 -2
  3. package/out/features/codeActions.js.map +1 -1
  4. package/out/features/codeLens.d.ts.map +1 -1
  5. package/out/features/codeLens.js +4 -1
  6. package/out/features/codeLens.js.map +1 -1
  7. package/out/features/foldingRanges.d.ts.map +1 -1
  8. package/out/features/foldingRanges.js +4 -1
  9. package/out/features/foldingRanges.js.map +1 -1
  10. package/out/features/formatter.d.ts +7 -10
  11. package/out/features/formatter.d.ts.map +1 -1
  12. package/out/features/formatter.js +124 -265
  13. package/out/features/formatter.js.map +1 -1
  14. package/out/features/inlayHints.d.ts +11 -10
  15. package/out/features/inlayHints.d.ts.map +1 -1
  16. package/out/features/inlayHints.js +131 -126
  17. package/out/features/inlayHints.js.map +1 -1
  18. package/out/features/semanticTokens.js +6 -6
  19. package/out/features/semanticTokens.js.map +1 -1
  20. package/out/features/symbols.d.ts.map +1 -1
  21. package/out/features/symbols.js +5 -2
  22. package/out/features/symbols.js.map +1 -1
  23. package/out/features/validator.d.ts.map +1 -1
  24. package/out/features/validator.js +32 -19
  25. package/out/features/validator.js.map +1 -1
  26. package/out/parser/ast.js +6 -6
  27. package/out/parser/ast.js.map +1 -1
  28. package/out/server.js +108 -39
  29. package/out/server.js.map +1 -1
  30. package/out/utils/amountFormatter.d.ts +31 -11
  31. package/out/utils/amountFormatter.d.ts.map +1 -1
  32. package/out/utils/amountFormatter.js +147 -70
  33. package/out/utils/amountFormatter.js.map +1 -1
  34. package/out/utils/runningBalanceCalculator.d.ts +44 -0
  35. package/out/utils/runningBalanceCalculator.d.ts.map +1 -0
  36. package/out/utils/runningBalanceCalculator.js +163 -0
  37. package/out/utils/runningBalanceCalculator.js.map +1 -0
  38. package/package.json +1 -1
package/out/server.js CHANGED
@@ -309,6 +309,10 @@ documents.onDidOpen(async (e) => {
309
309
  connection.console.log(`Lazy-initializing WorkspaceManager with directory: ${workspaceUri}`);
310
310
  await initializeWorkspaceManager([workspaceUri]);
311
311
  }
312
+ // Validate the newly opened document
313
+ // Note: If workspace was just initialized above, this document was already validated
314
+ // during initialization, but it's harmless to validate again
315
+ await validateTextDocument(e.document);
312
316
  });
313
317
  // Only keep settings for open documents
314
318
  documents.onDidClose(e => {
@@ -330,7 +334,7 @@ documents.onDidChangeContent(change => {
330
334
  const dependents = (0, deps_1.getDependents)(vscode_uri_1.URI.parse(change.document.uri));
331
335
  if (dependents) {
332
336
  for (const dependentUri of dependents) {
333
- const dependentDoc = documents.get(dependentUri.toString());
337
+ const dependentDoc = getDocument(dependentUri.toString());
334
338
  if (dependentDoc) {
335
339
  validateTextDocument(dependentDoc);
336
340
  }
@@ -353,7 +357,8 @@ documents.onDidChangeContent(change => {
353
357
  const affectedDocs = allDocs.filter(doc => {
354
358
  const docRoot = workspaceManager.getRootForFile(vscode_uri_1.URI.parse(doc.uri));
355
359
  const isSameRoot = docRoot === changedRoot;
356
- const isDifferentFile = doc.uri !== change.document.uri;
360
+ // Normalize URIs for comparison to handle encoding differences
361
+ const isDifferentFile = vscode_uri_1.URI.parse(doc.uri).toString() !== vscode_uri_1.URI.parse(change.document.uri).toString();
357
362
  return isSameRoot && isDifferentFile;
358
363
  });
359
364
  // Re-validate affected documents (updates diagnostics)
@@ -385,17 +390,42 @@ connection.onDidChangeWatchedFiles(async (params) => {
385
390
  }
386
391
  });
387
392
  // dependency tracking moved to src/server/deps.ts
393
+ /**
394
+ * Helper function to get a document from the collection with fuzzy URI matching
395
+ * Handles differences in URI encoding between VSCode and Neovim
396
+ */
397
+ function getDocument(uri) {
398
+ // Try 1: Exact match
399
+ let doc = documents.get(uri);
400
+ if (doc)
401
+ return doc;
402
+ // Try 2: Normalized URI
403
+ const normalized = vscode_uri_1.URI.parse(uri).toString();
404
+ if (normalized !== uri) {
405
+ doc = documents.get(normalized);
406
+ if (doc)
407
+ return doc;
408
+ }
409
+ // Try 3: Search all documents with normalized comparison
410
+ for (const openDoc of documents.all()) {
411
+ if (vscode_uri_1.URI.parse(openDoc.uri).toString() === normalized) {
412
+ return openDoc;
413
+ }
414
+ }
415
+ return undefined;
416
+ }
388
417
  // Create a file reader that uses in-memory documents when available
389
418
  // This ensures we see unsaved changes in the editor
390
419
  const fileReader = (uri) => {
391
- // Try to find document with exact URI
392
- let openDoc = documents.get(uri.toString());
420
+ const uriString = uri.toString();
421
+ // Try to find the document with fuzzy URI matching
422
+ const openDoc = getDocument(uriString);
393
423
  if (openDoc) {
394
- connection.console.debug(`[FileReader] Using in-memory document: ${uri} (version: ${openDoc.version})`);
424
+ connection.console.debug(`[FileReader] Using in-memory document: ${uriString} (version: ${openDoc.version})`);
395
425
  return openDoc;
396
426
  }
397
427
  // Fall back to reading from disk
398
- // connection.console.debug(`[FileReader] Reading from disk: ${uri}`);
428
+ connection.console.debug(`[FileReader] Reading from disk: ${uriString} (not found in ${documents.all().length} open documents)`);
399
429
  return (0, uri_1.defaultFileReader)(uri);
400
430
  };
401
431
  async function validateTextDocument(textDocument) {
@@ -436,7 +466,7 @@ async function validateTextDocument(textDocument) {
436
466
  // Provide completion items
437
467
  connection.onCompletion(async (textDocumentPosition) => {
438
468
  try {
439
- const document = documents.get(textDocumentPosition.textDocument.uri);
469
+ const document = getDocument(textDocumentPosition.textDocument.uri);
440
470
  if (!document) {
441
471
  return [];
442
472
  }
@@ -459,7 +489,7 @@ connection.onCompletionResolve((item) => {
459
489
  });
460
490
  // Provide hover information
461
491
  connection.onHover(async (params, token) => {
462
- const document = documents.get(params.textDocument.uri);
492
+ const document = getDocument(params.textDocument.uri);
463
493
  if (!document)
464
494
  return null;
465
495
  const parsed = parseDocument(document);
@@ -469,7 +499,7 @@ connection.onHover(async (params, token) => {
469
499
  });
470
500
  // Provide definition locations (go-to-definition)
471
501
  connection.onDefinition((params) => {
472
- const document = documents.get(params.textDocument.uri);
502
+ const document = getDocument(params.textDocument.uri);
473
503
  if (!document)
474
504
  return null;
475
505
  // Parse document with includes using server's fileReader
@@ -479,7 +509,7 @@ connection.onDefinition((params) => {
479
509
  });
480
510
  // Provide references (find all usages)
481
511
  connection.onReferences((params) => {
482
- const document = documents.get(params.textDocument.uri);
512
+ const document = getDocument(params.textDocument.uri);
483
513
  if (!document)
484
514
  return null;
485
515
  // Parse document with includes using server's fileReader
@@ -488,7 +518,7 @@ connection.onReferences((params) => {
488
518
  });
489
519
  // Provide document symbols (outline view)
490
520
  connection.onDocumentSymbol((params) => {
491
- const document = documents.get(params.textDocument.uri);
521
+ const document = getDocument(params.textDocument.uri);
492
522
  if (!document)
493
523
  return [];
494
524
  // Parse document with includes using server's fileReader
@@ -510,7 +540,7 @@ connection.onWorkspaceSymbol((params) => {
510
540
  });
511
541
  // Provide code actions (quick fixes and refactorings)
512
542
  connection.onCodeAction((params) => {
513
- const document = documents.get(params.textDocument.uri);
543
+ const document = getDocument(params.textDocument.uri);
514
544
  if (!document)
515
545
  return [];
516
546
  // Parse document with includes
@@ -522,7 +552,7 @@ connection.onCodeAction((params) => {
522
552
  // Provide document formatting
523
553
  connection.onDocumentFormatting(async (params) => {
524
554
  try {
525
- const document = documents.get(params.textDocument.uri);
555
+ const document = getDocument(params.textDocument.uri);
526
556
  if (!document)
527
557
  return [];
528
558
  // Parse document
@@ -531,7 +561,7 @@ connection.onDocumentFormatting(async (params) => {
531
561
  const settings = await getDocumentSettings(vscode_uri_1.URI.parse(params.textDocument.uri));
532
562
  const formattingOptions = settings?.formatting || {};
533
563
  console.log(`Formatting`);
534
- return formatter_1.formattingProvider.formatDocument(document, parsed, params.options, formattingOptions);
564
+ return formatter_1.formattingProvider.formatDocument(document, parsed, params.options, formattingOptions, settings);
535
565
  }
536
566
  catch (error) {
537
567
  connection.console.error(`Error in document formatting: ${error}`);
@@ -541,7 +571,7 @@ connection.onDocumentFormatting(async (params) => {
541
571
  // Provide range formatting
542
572
  connection.onDocumentRangeFormatting(async (params) => {
543
573
  try {
544
- const document = documents.get(params.textDocument.uri);
574
+ const document = getDocument(params.textDocument.uri);
545
575
  if (!document)
546
576
  return [];
547
577
  // Parse document
@@ -549,7 +579,7 @@ connection.onDocumentRangeFormatting(async (params) => {
549
579
  // Get formatting settings
550
580
  const settings = await getDocumentSettings(vscode_uri_1.URI.parse(params.textDocument.uri));
551
581
  const formattingOptions = settings?.formatting || {};
552
- return formatter_1.formattingProvider.formatRange(document, params.range, parsed, params.options, formattingOptions);
582
+ return formatter_1.formattingProvider.formatRange(document, params.range, parsed, params.options, formattingOptions, settings);
553
583
  }
554
584
  catch (error) {
555
585
  connection.console.error(`Error in range formatting: ${error}`);
@@ -559,7 +589,7 @@ connection.onDocumentRangeFormatting(async (params) => {
559
589
  // Provide on-type formatting
560
590
  connection.onDocumentOnTypeFormatting(async (params) => {
561
591
  try {
562
- const document = documents.get(params.textDocument.uri);
592
+ const document = getDocument(params.textDocument.uri);
563
593
  if (!document)
564
594
  return [];
565
595
  // Parse document
@@ -567,7 +597,7 @@ connection.onDocumentOnTypeFormatting(async (params) => {
567
597
  // Get formatting settings
568
598
  const settings = await getDocumentSettings(vscode_uri_1.URI.parse(params.textDocument.uri));
569
599
  const formattingOptions = settings?.formatting || {};
570
- return formatter_1.formattingProvider.formatOnType(document, params.position, params.ch, parsed, params.options, formattingOptions);
600
+ return formatter_1.formattingProvider.formatOnType(document, params.position, params.ch, parsed, params.options, formattingOptions, settings);
571
601
  }
572
602
  catch (error) {
573
603
  connection.console.error(`Error in on-type formatting: ${error}`);
@@ -576,7 +606,7 @@ connection.onDocumentOnTypeFormatting(async (params) => {
576
606
  });
577
607
  // Provide semantic tokens
578
608
  connection.languages.semanticTokens.on((params) => {
579
- const document = documents.get(params.textDocument.uri);
609
+ const document = getDocument(params.textDocument.uri);
580
610
  if (!document)
581
611
  return { data: [] };
582
612
  // Parse document
@@ -587,9 +617,11 @@ connection.languages.semanticTokens.on((params) => {
587
617
  // Provide inlay hints
588
618
  connection.languages.inlayHint.on(async (params) => {
589
619
  try {
590
- const document = documents.get(params.textDocument.uri);
591
- if (!document)
620
+ const document = getDocument(params.textDocument.uri);
621
+ if (!document) {
622
+ connection.console.warn(`[InlayHint] Document not found: ${params.textDocument.uri}`);
592
623
  return [];
624
+ }
593
625
  // Get settings for inlay hints
594
626
  const settings = await getDocumentSettings(vscode_uri_1.URI.parse(params.textDocument.uri));
595
627
  const parsed = parseDocument(document);
@@ -604,7 +636,7 @@ connection.languages.inlayHint.on(async (params) => {
604
636
  // Provide code lenses
605
637
  connection.onCodeLens(async (params) => {
606
638
  try {
607
- const document = documents.get(params.textDocument.uri);
639
+ const document = getDocument(params.textDocument.uri);
608
640
  if (!document)
609
641
  return [];
610
642
  // CodeLens always needs workspace state for accurate transaction counts and balances
@@ -621,7 +653,7 @@ connection.onCodeLens(async (params) => {
621
653
  });
622
654
  // Prepare rename - validate that position is on a renameable item
623
655
  connection.onPrepareRename((params) => {
624
- const document = documents.get(params.textDocument.uri);
656
+ const document = getDocument(params.textDocument.uri);
625
657
  if (!document)
626
658
  return null;
627
659
  const parsed = parseDocument(document);
@@ -646,7 +678,7 @@ connection.onPrepareRename((params) => {
646
678
  });
647
679
  // Rename request - perform the actual rename
648
680
  connection.onRenameRequest((params) => {
649
- const document = documents.get(params.textDocument.uri);
681
+ const document = getDocument(params.textDocument.uri);
650
682
  if (!document)
651
683
  return null;
652
684
  const parsed = parseDocument(document);
@@ -658,7 +690,7 @@ connection.onRenameRequest((params) => {
658
690
  });
659
691
  // Provide folding ranges
660
692
  connection.onFoldingRanges((params) => {
661
- const document = documents.get(params.textDocument.uri);
693
+ const document = getDocument(params.textDocument.uri);
662
694
  if (!document)
663
695
  return [];
664
696
  // Parse document
@@ -667,7 +699,7 @@ connection.onFoldingRanges((params) => {
667
699
  });
668
700
  // Provide document links
669
701
  connection.onDocumentLinks((params) => {
670
- const document = documents.get(params.textDocument.uri);
702
+ const document = getDocument(params.textDocument.uri);
671
703
  if (!document)
672
704
  return [];
673
705
  // Parse document
@@ -676,7 +708,7 @@ connection.onDocumentLinks((params) => {
676
708
  });
677
709
  // Provide selection ranges
678
710
  connection.onSelectionRanges((params) => {
679
- const document = documents.get(params.textDocument.uri);
711
+ const document = getDocument(params.textDocument.uri);
680
712
  if (!document)
681
713
  return [];
682
714
  // Parse document
@@ -688,7 +720,7 @@ connection.onExecuteCommand(async (params) => {
688
720
  connection.console.log(`[ExecuteCommand] ${params.command}`);
689
721
  if (params.command === 'hledger.addBalanceAssertion' || params.command === 'hledger.insertBalanceAssertion') {
690
722
  const [uri, line, account, amounts] = params.arguments;
691
- const document = documents.get(uri);
723
+ const document = getDocument(uri);
692
724
  if (!document) {
693
725
  return;
694
726
  }
@@ -730,25 +762,58 @@ connection.onExecuteCommand(async (params) => {
730
762
  });
731
763
  }
732
764
  else if (params.command === 'hledger.insertInferredAmount') {
733
- const [uri, line, account, amountText] = params.arguments;
734
- const document = documents.get(uri);
765
+ const [uri, line, accountEnd, quantity, commodity] = params.arguments;
766
+ const document = getDocument(uri);
735
767
  if (!document) {
736
768
  return;
737
769
  }
770
+ // Get parsed document and settings for proper formatting
771
+ const parsed = parseDocument(document);
772
+ const settings = await getDocumentSettings(vscode_uri_1.URI.parse(uri));
738
773
  // Get the line text
739
774
  const lineText = document.getText({
740
775
  start: { line, character: 0 },
741
776
  end: { line, character: Number.MAX_SAFE_INTEGER }
742
777
  });
743
- // Find where to insert the amount - after the account name
744
- // Skip leading whitespace and find account name
745
- const accountPos = lineText.indexOf(account);
746
- if (accountPos === -1) {
747
- return;
778
+ // Calculate padding and insertion position using same logic as inlay hints
779
+ const { getAmountLayout, formatAmount } = await Promise.resolve().then(() => __importStar(require('./utils/amountFormatter')));
780
+ const options = {
781
+ indentation: 4,
782
+ maxAccountWidth: 42,
783
+ maxCommodityWidth: 4,
784
+ maxAmountWidth: 12,
785
+ minSpacing: 2,
786
+ decimalAlignColumn: 52,
787
+ assertionDecimalAlignColumn: 70,
788
+ signPosition: 'after-symbol',
789
+ ...settings?.formatting
790
+ };
791
+ const amount = { quantity, commodity };
792
+ const layout = getAmountLayout(amount, parsed, options);
793
+ const preDecimalWidth = layout.commodityBefore.length +
794
+ (layout.spaceBetweenCommodityAndAmount && layout.commodityBefore ? 1 : 0) +
795
+ (layout.isNegative ? 1 : 0) +
796
+ layout.amountIntegerString.length;
797
+ const commentMatch = lineText.match(/\s*[;#]/);
798
+ const endOfContent = commentMatch && commentMatch.index !== undefined
799
+ ? commentMatch.index
800
+ : lineText.trimEnd().length;
801
+ const afterAccount = lineText.substring(accountEnd, endOfContent);
802
+ const existingWhitespace = afterAccount.length;
803
+ const targetColumn = options.decimalAlignColumn;
804
+ const requiredSpacing = Math.max(options.minSpacing, targetColumn - accountEnd - preDecimalWidth);
805
+ let insertPos;
806
+ let padding;
807
+ if (existingWhitespace >= requiredSpacing) {
808
+ insertPos = accountEnd + requiredSpacing;
809
+ padding = '';
748
810
  }
749
- const insertPos = accountPos + account.length;
750
- // Build the amount text with proper spacing
751
- const insertText = ` ${amountText}`;
811
+ else {
812
+ insertPos = endOfContent;
813
+ padding = ' '.repeat(Math.max(options.minSpacing, requiredSpacing - existingWhitespace));
814
+ }
815
+ const amountText = formatAmount(quantity, commodity, parsed, settings?.formatting);
816
+ const insertText = `${padding}${amountText}`;
752
817
  // Create and apply the edit
753
818
  await connection.workspace.applyEdit({
754
819
  changes: {
@@ -768,7 +833,7 @@ connection.onExecuteCommand(async (params) => {
768
833
  }
769
834
  else if (params.command === 'hledger.convertToTotalCost') {
770
835
  const [uri, line, account, totalCostText] = params.arguments;
771
- const document = documents.get(uri);
836
+ const document = getDocument(uri);
772
837
  if (!document) {
773
838
  return;
774
839
  }
@@ -834,6 +899,10 @@ connection.onExecuteCommand(async (params) => {
834
899
  return [];
835
900
  }
836
901
  }
902
+ else if (params.command === 'hledger.insertCost') {
903
+ // Future command implementation placeholder
904
+ connection.console.log(`[ExecuteCommand] insertCost command not yet implemented`);
905
+ }
837
906
  });
838
907
  // Make the text document manager listen on the connection
839
908
  documents.listen(connection);
package/out/server.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,19 @@
1
1
  /**
2
2
  * Utilities for formatting amounts with proper commodity placement
3
3
  */
4
- import { ParsedDocument } from '../types';
5
- /**
6
- * Format an amount with proper commodity placement based on commodity format info
7
- *
8
- * @param quantity - The numeric amount
9
- * @param commodity - The commodity symbol/name
10
- * @param parsed - ParsedDocument to look up commodity format information
11
- * @returns Formatted amount string (e.g., "$50.00", "50.00 USD")
12
- */
4
+ import { ParsedDocument, Amount } from '../types';
13
5
  import { HledgerSettings } from '../server/settings';
14
- type FormattingOptions = HledgerSettings['formatting'];
6
+ export type FormattingOptions = HledgerSettings['formatting'];
7
+ export interface AmountLayout {
8
+ commodityBefore: string;
9
+ isNegative: boolean;
10
+ negativeSignBefore: boolean;
11
+ amountIntegerString: string;
12
+ amountDecimalString: string;
13
+ demicalMark: string;
14
+ commodityAfter: string;
15
+ spaceBetweenCommodityAndAmount: boolean;
16
+ }
15
17
  /**
16
18
  * Format an amount with proper commodity placement based on commodity format info
17
19
  *
@@ -21,6 +23,24 @@ type FormattingOptions = HledgerSettings['formatting'];
21
23
  * @param options - Formatting options (e.g. sign position)
22
24
  * @returns Formatted amount string (e.g., "$50.00", "50.00 USD")
23
25
  */
26
+ export interface AmountWidths {
27
+ commodityBefore: number;
28
+ spaceBetweenCommodityBeforeAndAmount: number;
29
+ negativeSign: number;
30
+ integer: number;
31
+ decimalMark: number;
32
+ decimal: number;
33
+ spaceBetweenAmountAndCommodityAfter: number;
34
+ commodityAfter: number;
35
+ }
24
36
  export declare function formatAmount(quantity: number, commodity: string, parsed: ParsedDocument, options?: FormattingOptions): string;
25
- export {};
37
+ /**
38
+ * Calculate the layout components for an amount
39
+ */
40
+ export declare function getAmountLayout(amount: Amount, parsed: ParsedDocument, options: Required<FormattingOptions>): AmountLayout;
41
+ /**
42
+ * Render the layout into a string, optionally using provided widths for alignment/padding.
43
+ * If widths are not provided, segments are joined without extra padding.
44
+ */
45
+ export declare function renderAmountLayout(layout: AmountLayout, widths?: AmountWidths): string;
26
46
  //# sourceMappingURL=amountFormatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"amountFormatter.d.ts","sourceRoot":"","sources":["../../src/utils/amountFormatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C;;;;;;;GAOG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,KAAK,iBAAiB,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;AAEvD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CA6E7H"}
1
+ {"version":3,"file":"amountFormatter.d.ts","sourceRoot":"","sources":["../../src/utils/amountFormatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,EAAU,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,8BAA8B,EAAE,OAAO,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC,EAAE,MAAM,CAAC;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC,EAAE,MAAM,CAAC;IAC5C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAwB7H;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAiG1H;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAuCtF"}