@metaobjectsdev/metadata 1.0.2 → 1.0.4-rc.1

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 (93) hide show
  1. package/dist/core/parser-yaml.d.ts.map +1 -1
  2. package/dist/core/parser-yaml.js +4 -0
  3. package/dist/core/parser-yaml.js.map +1 -1
  4. package/dist/core/relationship/derive-m2m-fields.d.ts +3 -1
  5. package/dist/core/relationship/derive-m2m-fields.d.ts.map +1 -1
  6. package/dist/core/relationship/derive-m2m-fields.js +110 -15
  7. package/dist/core/relationship/derive-m2m-fields.js.map +1 -1
  8. package/dist/core/relationship/find-reference.d.ts +21 -5
  9. package/dist/core/relationship/find-reference.d.ts.map +1 -1
  10. package/dist/core/relationship/find-reference.js +29 -10
  11. package/dist/core/relationship/find-reference.js.map +1 -1
  12. package/dist/core/relationship/relationship-definition.embedded.js +8 -8
  13. package/dist/core/relationship/relationship-definition.embedded.js.map +1 -1
  14. package/dist/core/relationship/resolve-relationship-reference.d.ts +27 -0
  15. package/dist/core/relationship/resolve-relationship-reference.d.ts.map +1 -0
  16. package/dist/core/relationship/resolve-relationship-reference.js +84 -0
  17. package/dist/core/relationship/resolve-relationship-reference.js.map +1 -0
  18. package/dist/errors.d.ts +1 -1
  19. package/dist/errors.d.ts.map +1 -1
  20. package/dist/errors.js +31 -0
  21. package/dist/errors.js.map +1 -1
  22. package/dist/index.d.ts +8 -5
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +9 -4
  25. package/dist/index.js.map +1 -1
  26. package/dist/json-path.d.ts +14 -0
  27. package/dist/json-path.d.ts.map +1 -1
  28. package/dist/json-path.js +13 -0
  29. package/dist/json-path.js.map +1 -1
  30. package/dist/library/embedded-library.generated.d.ts +2 -0
  31. package/dist/library/embedded-library.generated.d.ts.map +1 -1
  32. package/dist/library/embedded-library.generated.js +11 -1
  33. package/dist/library/embedded-library.generated.js.map +1 -1
  34. package/dist/library/index.d.ts +2 -0
  35. package/dist/library/index.d.ts.map +1 -0
  36. package/dist/library/index.js +24 -0
  37. package/dist/library/index.js.map +1 -0
  38. package/dist/library/library-sources.d.ts +99 -6
  39. package/dist/library/library-sources.d.ts.map +1 -1
  40. package/dist/library/library-sources.js +165 -43
  41. package/dist/library/library-sources.js.map +1 -1
  42. package/dist/loader/meta-data-loader.d.ts +44 -21
  43. package/dist/loader/meta-data-loader.d.ts.map +1 -1
  44. package/dist/loader/meta-data-loader.js +118 -88
  45. package/dist/loader/meta-data-loader.js.map +1 -1
  46. package/dist/loader/sources/file-source.d.ts +7 -1
  47. package/dist/loader/sources/file-source.d.ts.map +1 -1
  48. package/dist/loader/sources/file-source.js +3 -2
  49. package/dist/loader/sources/file-source.js.map +1 -1
  50. package/dist/loader/validation-passes.d.ts +2 -0
  51. package/dist/loader/validation-passes.d.ts.map +1 -1
  52. package/dist/loader/validation-passes.js +162 -22
  53. package/dist/loader/validation-passes.js.map +1 -1
  54. package/dist/naming.d.ts +7 -0
  55. package/dist/naming.d.ts.map +1 -1
  56. package/dist/naming.js +10 -0
  57. package/dist/naming.js.map +1 -1
  58. package/dist/parser-core.d.ts +103 -0
  59. package/dist/parser-core.d.ts.map +1 -1
  60. package/dist/parser-core.js +202 -18
  61. package/dist/parser-core.js.map +1 -1
  62. package/dist/scope.d.ts +16 -0
  63. package/dist/scope.d.ts.map +1 -0
  64. package/dist/scope.js +78 -0
  65. package/dist/scope.js.map +1 -0
  66. package/dist/serializer-json.d.ts +1 -0
  67. package/dist/serializer-json.d.ts.map +1 -1
  68. package/dist/serializer-json.js +43 -1
  69. package/dist/serializer-json.js.map +1 -1
  70. package/dist/vocabulary-rewrite-yaml.d.ts +2 -0
  71. package/dist/vocabulary-rewrite-yaml.d.ts.map +1 -0
  72. package/dist/vocabulary-rewrite-yaml.js +22 -0
  73. package/dist/vocabulary-rewrite-yaml.js.map +1 -0
  74. package/package.json +7 -7
  75. package/src/core/parser-yaml.ts +4 -0
  76. package/src/core/relationship/derive-m2m-fields.ts +115 -15
  77. package/src/core/relationship/find-reference.ts +34 -11
  78. package/src/core/relationship/relationship-definition.embedded.ts +8 -8
  79. package/src/core/relationship/resolve-relationship-reference.ts +99 -0
  80. package/src/errors.ts +31 -0
  81. package/src/index.ts +18 -5
  82. package/src/json-path.ts +16 -1
  83. package/src/library/embedded-library.generated.ts +12 -1
  84. package/src/library/index.ts +23 -0
  85. package/src/library/library-sources.ts +197 -47
  86. package/src/loader/meta-data-loader.ts +154 -102
  87. package/src/loader/sources/file-source.ts +10 -2
  88. package/src/loader/validation-passes.ts +181 -23
  89. package/src/naming.ts +11 -0
  90. package/src/parser-core.ts +319 -22
  91. package/src/scope.ts +97 -0
  92. package/src/serializer-json.ts +46 -1
  93. package/src/vocabulary-rewrite-yaml.ts +21 -0
@@ -226,8 +226,14 @@ function splitTypeKey(key, registry) {
226
226
  * - Absolute path (::foo::bar) → prepended with base: "acme" + "::foo" → "acme::foo::bar"
227
227
  * - Relative parent (..) → handled in super resolution, not here
228
228
  * - No leading :: → used as-is
229
+ *
230
+ * Exported so `declaredTopLevelKeys` (meta-data-loader.ts) — the structural
231
+ * pre-parse walk that must produce the SAME resolution key `rootChildResolutionKey`
232
+ * below computes — reuses this rather than reimplementing it. A second copy is
233
+ * exactly how the two silently disagreed on a relative (`::`-prefixed) `package`
234
+ * before task 17's fix-round-1 caught it against a real fixture.
229
235
  */
230
- function expandPackageForPath(basePkg, pkgPath) {
236
+ export function expandPackageForPath(basePkg, pkgPath) {
231
237
  if (basePkg.trim() === "" || !pkgPath.startsWith(PACKAGE_SEPARATOR)) {
232
238
  return pkgPath;
233
239
  }
@@ -283,6 +289,9 @@ let _currentSourceId;
283
289
  // and preserved through core/yaml-desugar.ts).
284
290
  let _currentFormat = "json";
285
291
  let _currentYamlPosition;
292
+ // ADR-0055 — sink for overlay declarations deferred out of the walk. Set at
293
+ // buildTree entry; same synchronous-buildTree reentrancy argument as the others.
294
+ let _pendingOverlays;
286
295
  /** FR5a/FR5b — stamp the source-provenance envelope on a freshly-created
287
296
  * node. No-op when invoked outside buildTree's setup (defensive — the
288
297
  * module-level state will always be populated during a normal parse).
@@ -325,6 +334,7 @@ export function buildTree(parsed, opts) {
325
334
  const warnings = [];
326
335
  const errors = [];
327
336
  const envelopeWarnings = [];
337
+ const pendingOverlays = [];
328
338
  const strict = opts.strict ?? false;
329
339
  const source = opts.sourceName;
330
340
  _deferSuperResolution = opts.deferSuperResolution === true;
@@ -333,6 +343,24 @@ export function buildTree(parsed, opts) {
333
343
  // emit envelope warnings without threading another parameter through the
334
344
  // entire walk. Safe because buildTree is fully synchronous.
335
345
  _currentEnvelopeWarnings = envelopeWarnings;
346
+ // ADR-0055 — overlay declarations are queued here as the walk meets them.
347
+ _pendingOverlays = pendingOverlays;
348
+ /** ADR-0055 — a caller that is not deferring gets its own queue drained here,
349
+ * so "queue, then apply" is the only path through the parser and a single
350
+ * document is order-independent on its own. */
351
+ const finishParse = (r) => {
352
+ if (opts.deferOverlays !== true && pendingOverlays.length > 0) {
353
+ const drained = applyPendingOverlays(pendingOverlays, {
354
+ registry: opts.registry,
355
+ strict,
356
+ });
357
+ errors.push(...drained.errors);
358
+ warnings.push(...drained.warnings);
359
+ envelopeWarnings.push(...drained.envelopeWarnings);
360
+ pendingOverlays.length = 0;
361
+ }
362
+ return { root: r, warnings, errors, envelopeWarnings, pendingOverlays };
363
+ };
336
364
  // FR5a — start a fresh JSONPath stack rooted at "$"; sourceId is the
337
365
  // source's id (from FileSource / InMemoryStringSource via opts.sourceName).
338
366
  // Falls back to "<unknown>" when no name was supplied (e.g. ad-hoc parseJson
@@ -433,7 +461,7 @@ export function buildTree(parsed, opts) {
433
461
  parseNodeInto(rootDataObj, opts.intoRoot, opts.intoRoot, // accumulating root for super resolution
434
462
  contextPkg, opts.registry, warnings, errors, strict, source, rootKey);
435
463
  _currentPath.pop();
436
- return { root: opts.intoRoot, warnings, errors, envelopeWarnings };
464
+ return finishParse(opts.intoRoot);
437
465
  }
438
466
  // --- Fresh root mode: create a new root from the JSON ---
439
467
  // The cast is safe within the core provider: `metadata.root` is the only
@@ -447,7 +475,7 @@ export function buildTree(parsed, opts) {
447
475
  "", // no inherited context pkg yet for the root itself
448
476
  opts.registry, warnings, errors, strict, source, rootKey);
449
477
  _currentPath.pop();
450
- return { root, warnings, errors, envelopeWarnings };
478
+ return finishParse(root);
451
479
  }
452
480
  finally {
453
481
  _deferSuperResolution = false;
@@ -457,6 +485,7 @@ export function buildTree(parsed, opts) {
457
485
  _currentSourceId = undefined;
458
486
  _currentFormat = "json";
459
487
  _currentYamlPosition = undefined;
488
+ _pendingOverlays = undefined;
460
489
  }
461
490
  }
462
491
  // ---------------------------------------------------------------------------
@@ -623,7 +652,16 @@ function parseNodeInto(nodeData, target, accumRoot, inheritedContextPkg, registr
623
652
  // "merged"` envelope. Last-writer-wins is preserved for non-conflicting
624
653
  // cases (one side unset, same value, etc.) — those carry through to the
625
654
  // existing applyInlineAttrsAndUnknownKeys logic below.
626
- if (fr5cActive && preMergeAttrSnapshot !== undefined) {
655
+ //
656
+ // FR-043 Amendment 2 — `overlay: true` LICENSES the override. The conflict error
657
+ // exists to catch two files that collided without knowing about each other; the flag
658
+ // is the author saying "I know about the other declaration and I mean to change it".
659
+ // The loader already treats the flag specially (find-or-throw versus create-or-find),
660
+ // so honouring it here makes it mean ONE thing rather than two. An unmarked
661
+ // redeclaration still merges and still errors, which is the case FR5c was written for.
662
+ if (fr5cActive &&
663
+ preMergeAttrSnapshot !== undefined &&
664
+ nodeData[RESERVED_KEY_OVERLAY] !== true) {
627
665
  detectAttrMergeConflicts(target, nodeData, preMergeAttrSnapshot, newContributorFile, errors, path);
628
666
  }
629
667
  // Apply inline attrs (not reserved keys — those stay on the existing model)
@@ -698,7 +736,9 @@ function parseNodeInto(nodeData, target, accumRoot, inheritedContextPkg, registr
698
736
  * non-empty value. If so, emit ERR_MERGE_CONFLICT with a `format: "merged"`
699
737
  * envelope naming both contributors. The merge itself proceeds (existing
700
738
  * last-writer-wins) so the loader sees one canonical tree; the error
701
- * surfaces the conflict so a consumer can fix the metadata. */
739
+ * surfaces the conflict so a consumer can fix the metadata.
740
+ *
741
+ * NOT called for an `overlay: true` declaration — see the call site. */
702
742
  function detectAttrMergeConflicts(target, nodeData, preAttrs, newContributorFile, errors, path) {
703
743
  const existingFiles = "files" in target.source ? [...target.source.files] : [];
704
744
  function isEmptyValue(v) {
@@ -806,6 +846,87 @@ function createOrFindMetaData(type, subType, nodeData, parent, accumRoot, inheri
806
846
  // merge pair (mirrors the Java parser, which searches root children by
807
847
  // "pkg::name"). Nested children stay bare-name matched — they are scoped
808
848
  // by their parent, and packages don't disambiguate siblings inside a node.
849
+ if (isOverlayNode) {
850
+ // ADR-0055 — an overlay is ALWAYS queued, never applied during the walk, and
851
+ // deliberately not conditioned on whether its target happens to exist yet.
852
+ //
853
+ // Applying it when the base is already present and queueing only on a miss is
854
+ // the "retry-on-miss" variant the ADR rejected: it would leave output
855
+ // dependent on whether a base had been parsed yet, which is the fragility
856
+ // being removed. G1 — every plain declaration, from every source, precedes
857
+ // every overlay — only holds if the queue is unconditional.
858
+ //
859
+ // This node is the OUTERMOST overlay on this branch and we do NOT descend
860
+ // into it, so its whole subtree — nested overlays included — rides along and
861
+ // is applied as one unit (G3). Returning undefined is what keeps the caller
862
+ // from addChild-ing a node that was never created; the overlay contributes
863
+ // nothing until the drain.
864
+ {
865
+ if (_pendingOverlays !== undefined) {
866
+ _pendingOverlays.push({
867
+ type,
868
+ subType,
869
+ name,
870
+ nodeData,
871
+ parent,
872
+ accumRoot,
873
+ inheritedContextPkg,
874
+ sourceName: source,
875
+ sourceId: _currentSourceId ?? "<unknown>",
876
+ path,
877
+ errorSource: errSource(),
878
+ pathSegments: _currentPath?.snapshot() ?? [],
879
+ format: _currentFormat,
880
+ ...(_currentYamlPosition !== undefined ? { yamlPosition: _currentYamlPosition } : {}),
881
+ });
882
+ return undefined;
883
+ }
884
+ // No queue means we are already INSIDE applyPendingOverlays, applying a
885
+ // queued unit. A nested overlay within that unit resolves find-or-fail
886
+ // right here (§2.2): by now its parent is complete, and there is no later
887
+ // pass left to defer to. This is also the door a caller outside any
888
+ // buildTree run would take.
889
+ const nested = findOverlayTarget(parent, type, name, nodeData, inheritedContextPkg);
890
+ if (nested === undefined) {
891
+ errors.push(new ParseError(overlayNoTargetMessage(type, name), {
892
+ code: "ERR_OVERLAY_NO_TARGET",
893
+ source: errSource(),
894
+ }));
895
+ return undefined;
896
+ }
897
+ nested.setIsMerge(true);
898
+ parseNodeInto(nodeData, nested, accumRoot, inheritedContextPkg, registry, warnings, errors, strict, source, path);
899
+ return nested;
900
+ }
901
+ }
902
+ // Only the non-overlay path needs the target here; a queued overlay resolves
903
+ // its own target at application time, against the completed tree.
904
+ const existing = findOverlayTarget(parent, type, name, nodeData, inheritedContextPkg);
905
+ // Default: no operator → silently reuse existing or create new.
906
+ if (existing !== undefined) {
907
+ parseNodeInto(nodeData, existing, accumRoot, inheritedContextPkg, registry, warnings, errors, strict, source, path);
908
+ return existing;
909
+ }
910
+ // Not found (or unnamed) → create new
911
+ return parseNodeFresh(type, subType, nodeData, accumRoot, inheritedContextPkg, registry, warnings, errors, strict, source, path, parent.type, parent);
912
+ }
913
+ // ---------------------------------------------------------------------------
914
+ // ADR-0055 — deferred overlay application.
915
+ // ---------------------------------------------------------------------------
916
+ /** The node an `overlay: true` declaration re-opens, or undefined.
917
+ *
918
+ * ADR-0039 sanctioned own read: an overlay targets the AUTHORED declaration
919
+ * layer (an own child), never the resolved/inherited view.
920
+ *
921
+ * ROOT-LEVEL lookups are PACKAGE-QUALIFIED: two files declaring the same
922
+ * (type, name) under different packages are DISTINCT root nodes, never a merge
923
+ * pair (mirrors the Java parser, which searches root children by "pkg::name").
924
+ * Nested children stay bare-name matched — they are scoped by their parent, and
925
+ * packages do not disambiguate siblings inside a node.
926
+ *
927
+ * One implementation, shared by the walk and by {@link applyPendingOverlays},
928
+ * so "what does this overlay target" cannot drift between the two. */
929
+ function findOverlayTarget(parent, type, name, nodeData, inheritedContextPkg) {
809
930
  let existing = name !== "" ? parent.ownChildByTypeAndName(type, name) : undefined;
810
931
  if (existing !== undefined && parent instanceof MetaRoot) {
811
932
  const candidateKey = rootChildResolutionKey(nodeData, inheritedContextPkg, name);
@@ -817,21 +938,84 @@ function createOrFindMetaData(type, subType, nodeData, parent, accumRoot, inheri
817
938
  .find((c) => c.type === type && c.name === name && c.resolutionKey() === candidateKey);
818
939
  }
819
940
  }
820
- if (isOverlayNode) {
821
- if (existing === undefined) {
822
- throw new ParseError(`Overlay operation requested for [${type}:${name}] but no existing metadata found to merge into`, { code: "ERR_OVERLAY_NO_TARGET", source: errSource() });
823
- }
824
- existing.setIsMerge(true);
825
- parseNodeInto(nodeData, existing, accumRoot, inheritedContextPkg, registry, warnings, errors, strict, source, path);
826
- return existing;
941
+ return existing;
942
+ }
943
+ /** The one wording for a missing overlay target, shared by the defensive
944
+ * in-walk path and the deferred pass, so the two cannot drift. */
945
+ function overlayNoTargetMessage(type, name) {
946
+ return `Overlay operation requested for [${type}:${name}] but no existing metadata found to merge into`;
947
+ }
948
+ /** The declaration's own address, for the resolved envelope's `referrer`. */
949
+ function overlayReferrer(item) {
950
+ if (item.parent instanceof MetaRoot) {
951
+ return rootChildResolutionKey(item.nodeData, item.inheritedContextPkg, item.name);
827
952
  }
828
- // Default: no operator silently reuse existing or create new.
829
- if (existing !== undefined) {
830
- parseNodeInto(nodeData, existing, accumRoot, inheritedContextPkg, registry, warnings, errors, strict, source, path);
831
- return existing;
953
+ // ADR-0029 addressing a nested overlay is named relative to its parent.
954
+ return `${item.parent.name}.${item.name}`;
955
+ }
956
+ /**
957
+ * ADR-0055 — apply queued `overlay: true` declarations against the complete tree.
958
+ *
959
+ * Called once, after every source has been parsed and BEFORE deferred super
960
+ * resolution (G5), with every source's queue concatenated in parse order — which
961
+ * is already "source order, then declaration order within a source" (G2).
962
+ *
963
+ * Each element is applied independently: a missing target is recorded and the
964
+ * element skipped, so one bad overlay no longer takes its whole source down with
965
+ * it (the eager throw aborted the entire document, losing every sibling
966
+ * declaration and cascading into ERR_UNRESOLVED_SUPER).
967
+ */
968
+ export function applyPendingOverlays(pending, opts) {
969
+ const errors = [];
970
+ const warnings = [];
971
+ const envelopeWarnings = [];
972
+ const strict = opts.strict ?? false;
973
+ for (const item of pending) {
974
+ try {
975
+ // Re-enter the walk state this declaration was queued under. The walk that
976
+ // built it has unwound, so without this anything constructed now would be
977
+ // stamped with the wrong provenance and an error would name the wrong
978
+ // location (or none at all).
979
+ _currentPath = JsonPathBuilder.fromSegments(item.pathSegments);
980
+ _currentSourceId = item.sourceId;
981
+ _currentFormat = item.format;
982
+ _currentYamlPosition = item.yamlPosition;
983
+ _currentErrors = errors;
984
+ _currentEnvelopeWarnings = envelopeWarnings;
985
+ // Anything the overlay contributes may `extends` a node in any source; the
986
+ // loader resolves every ref after this pass.
987
+ _deferSuperResolution = true;
988
+ const target = findOverlayTarget(item.parent, item.type, item.name, item.nodeData, item.inheritedContextPkg);
989
+ if (target === undefined) {
990
+ errors.push(new ParseError(overlayNoTargetMessage(item.type, item.name), {
991
+ code: "ERR_OVERLAY_NO_TARGET",
992
+ // ADR-0009 FR5d — a reference that did not resolve, reported with the
993
+ // declaration's own files/jsonPath.
994
+ source: resolvedSource(item.errorSource, overlayReferrer(item), `${item.type}:${item.name}`),
995
+ }));
996
+ continue; // parseNodeInto was never entered — no partial state to unwind
997
+ }
998
+ target.setIsMerge(true);
999
+ parseNodeInto(item.nodeData, target, item.accumRoot, item.inheritedContextPkg, opts.registry, warnings, errors, strict, item.sourceName, item.path);
1000
+ }
1001
+ catch (err) {
1002
+ // Per-element, as the loader already does per-source: a strict-mode
1003
+ // reportProblem or a registry error must not abandon the remaining queue.
1004
+ errors.push(err instanceof ParseError
1005
+ ? err
1006
+ : new ParseError(`Failed to apply overlay for [${item.type}:${item.name}]: ${String(err)}`, { code: "ERR_UNKNOWN", source: item.errorSource }));
1007
+ }
1008
+ finally {
1009
+ _currentPath = undefined;
1010
+ _currentSourceId = undefined;
1011
+ _currentFormat = "json";
1012
+ _currentYamlPosition = undefined;
1013
+ _currentErrors = undefined;
1014
+ _currentEnvelopeWarnings = undefined;
1015
+ _deferSuperResolution = false;
1016
+ }
832
1017
  }
833
- // Not found (or unnamed) → create new
834
- return parseNodeFresh(type, subType, nodeData, accumRoot, inheritedContextPkg, registry, warnings, errors, strict, source, path, parent.type, parent);
1018
+ return { errors, warnings, envelopeWarnings };
835
1019
  }
836
1020
  // ---------------------------------------------------------------------------
837
1021
  // applyReservedKeys — apply package, extends, abstract, isArray to a model.
@@ -1 +1 @@
1
- {"version":3,"file":"parser-core.js","sourceRoot":"","sources":["../src/parser-core.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,qEAAqE;AACrE,gBAAgB;AAChB,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,4EAA4E;AAC5E,yEAAyE;AACzE,qCAAqC;AACrC,EAAE;AACF,+CAA+C;AAC/C,4EAA4E;AAC5E,4EAA4E;AAC5E,mFAAmF;AACnF,EAAE;AACF,4EAA4E;AAC5E,cAAc;AACd,EAAE;AACF,wCAAwC;AACxC,+EAA+E;AAC/E,yCAAyC;AAEzC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAkB,MAAM,aAAa,CAAC;AACzD,8EAA8E;AAC9E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,cAAc,EAA0D,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAqB,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAkDzE,8EAA8E;AAC9E,8DAA8D;AAC9D,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,8EAA8E;AAC9E,iFAAiF;AACjF,gEAAgE;AAChE,8EAA8E;AAE9E,MAAM,UAAU,SAAS;IACvB,IAAI,YAAY,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACjE,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,uEAAuE;QACvE,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,CAAC,gBAAgB,CAAC;gBACzB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;gBACjC,GAAG,CAAC,oBAAoB,KAAK,SAAS;oBACpC,CAAC,CAAC,EAAE,YAAY,EAAE,oBAAoB,EAAE;oBACxC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,CAAC,gBAAgB,CAAC;YACzB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;SAClC,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AACnD,CAAC;AAED,8EAA8E;AAC9E,mFAAmF;AACnF,8EAA8E;AAE9E,SAAS,aAAa,CACpB,GAAW,EACX,MAAe,EACf,QAAkB,EAClB,IAAe;IAEf,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,UAAU,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,8EAA8E;AAC9E,gDAAgD;AAChD,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,8EAA8E;AAC9E,wEAAwE;AACxE,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAE9E,SAAS,2BAA2B,CAClC,QAAgB,EAChB,QAAiB,EACjB,MAAe,EACf,QAAkB,EAClB,IAAY;IAEZ,IAAI,cAAc,KAAK,MAAM;QAAE,OAAO;IACtC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO;IACzC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAAE,OAAO;IACrC,MAAM,GAAG,GACP,uBAAuB,QAAQ,QAAQ,QAAQ,OAAO,IAAI,qBAAqB;QAC/E,0EAA0E;QAC1E,6EAA6E,CAAC;IAChF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,UAAU,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,cAAc,CAAC,IAAI,CACjB,IAAI,UAAU,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CACpF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,mFAAmF;AACnF,EAAE;AACF,uFAAuF;AACvF,0FAA0F;AAC1F,yFAAyF;AACzF,2FAA2F;AAC3F,qCAAqC;AACrC,EAAE;AACF,gFAAgF;AAChF,2FAA2F;AAC3F,uFAAuF;AACvF,qFAAqF;AACrF,iDAAiD;AACjD;;;;;;;;;;;GAWG;AACH,SAAS,mBAAmB,CAAC,IAAY,EAAE,QAAsB;IAC/D,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,OAAO,CACL,IAAI,IAAI,IAAI,YAAY,kCAAkC,YAAY,kBAAkB;QACxF,gFAAgF;QAChF,4CAA4C,IAAI,mBAAmB,CACpE,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,0BAA0B,CAAC,IAAY,EAAE,QAAsB;IACtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3F,MAAM,GAAG,GAAG;QACV,QAAQ,CAAC,MAAM,GAAG,CAAC;YACjB,CAAC,CAAC,mBAAmB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC5E,CAAC,CAAC,uBAAuB,IAAI,aAAa;KAC7C,CAAC;IACF,GAAG,CAAC,IAAI,CACN,6DAA6D;QAC3D,8DAA8D,CACjE,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4FAA4F;AAC5F,2FAA2F;AAC3F,mFAAmF;AACnF,6FAA6F;AAC7F,qCAAqC;AACrC,EAAE;AACF,6FAA6F;AAC7F,4FAA4F;AAC5F,yFAAyF;AACzF,yFAAyF;AACzF,+CAA+C;AAC/C,EAAE;AACF,4FAA4F;AAC5F,0FAA0F;AAC1F,uDAAuD;AACvD,SAAS,qBAAqB,CAAC,IAAY;IACzC,OAAO,CACL,SAAS,IAAI,6CAA6C,IAAI,aAAa,CAC5E,CAAC;AACJ,CAAC;AAgBD;;;;;;;;;;;;;;;GAeG;AACH,SAAS,iBAAiB,CAAC,IAAY,EAAE,QAAsB;IAC7D,OAAO,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,QAAsB;IACvD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,kEAAkE;QAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACzF,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClE,4EAA4E;IAC5E,4EAA4E;IAC5E,0DAA0D;IAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,8EAA8E;AAC9E,wCAAwC;AACxC,8EAA8E;AAE9E;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,OAAe,EAAE,OAAe;IAC5D,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,GAAG,OAAO,CAAC;AAC3B,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAC7B,QAAiC,EACjC,mBAA2B,EAC3B,IAAY;IAEZ,MAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAC9C,MAAM,GAAG,GACP,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE;QACzC,CAAC,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,MAAM,CAAC;QACnD,CAAC,CAAC,mBAAmB,CAAC;IAC1B,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,iBAAiB,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,wEAAwE;AACxE,0EAA0E;AAC1E,2EAA2E;AAC3E,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAElC,iEAAiE;AACjE,wEAAwE;AACxE,wEAAwE;AACxE,6DAA6D;AAC7D,sEAAsE;AACtE,yBAAyB;AACzB,IAAI,cAAwC,CAAC;AAE7C,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,oEAAoE;AACpE,IAAI,wBAAqD,CAAC;AAE1D,sEAAsE;AACtE,0EAA0E;AAC1E,uEAAuE;AACvE,yEAAyE;AACzE,gCAAgC;AAChC,sEAAsE;AACtE,wBAAwB;AACxB,IAAI,YAAyC,CAAC;AAC9C,IAAI,gBAAoC,CAAC;AACzC,wEAAwE;AACxE,2EAA2E;AAC3E,0EAA0E;AAC1E,6EAA6E;AAC7E,+CAA+C;AAC/C,IAAI,cAAc,GAAoB,MAAM,CAAC;AAC7C,IAAI,oBAA8C,CAAC;AAEnD;;;;;;qEAMqE;AACrE,SAAS,kBAAkB,CAAC,IAAc;IACxC,IAAI,YAAY,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO;IACzE,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC;YACb,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,CAAC,gBAAgB,CAAC;YACzB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;YACjC,GAAG,CAAC,oBAAoB,KAAK,SAAS;gBACpC,CAAC,CAAC,EAAE,YAAY,EAAE,oBAAoB,EAAE;gBACxC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,IAAI,CAAC,SAAS,CAAC;QACb,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,CAAC,gBAAgB,CAAC;QACzB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,MAAe,EAAE,IAAkB;IAC3D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,gBAAgB,GAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,KAAK,IAAI,CAAC;IAC3D,cAAc,GAAG,MAAM,CAAC;IACxB,uEAAuE;IACvE,yEAAyE;IACzE,4DAA4D;IAC5D,wBAAwB,GAAG,gBAAgB,CAAC;IAC5C,qEAAqE;IACrE,4EAA4E;IAC5E,6EAA6E;IAC7E,qBAAqB;IACrB,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,gBAAgB,GAAG,MAAM,IAAI,WAAW,CAAC;IACzC,uEAAuE;IACvE,oEAAoE;IACpE,cAAc,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC;IAC7C,oBAAoB,GAAG,SAAS,CAAC;IAEjC,IAAI,CAAC;QACH,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,UAAU,CAAC,sCAAsC,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC1H,CAAC;QAED,MAAM,QAAQ,GAAG,MAAiC,CAAC;QAEnD,8CAA8C;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC;QAE/E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,UAAU,CAAC,mDAAmD,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACvI,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,UAAU,CAClB,uEAAuE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAChG,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAC1D,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEnC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjF,mEAAmE;YACnE,oEAAoE;YACpE,YAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;YACxB,YAAa,CAAC,GAAG,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,CAClB,sBAAsB,OAAO,0BAA0B,EACvD,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,GAAG,EAAE,CAClD,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,QAAmC,CAAC;QACxD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,GACpE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEvC,qFAAqF;QACrF,sFAAsF;QACtF,+DAA+D;QAC/D,2FAA2F;QAC3F,2FAA2F;QAC3F,uDAAuD;QACvD,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;eAC/C,CAAC,CAAC,WAAW,KAAK,YAAY,IAAI,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;mBAC7E,CAAC,CAAC,YAAY,IAAI,WAAW,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;YAC9C,YAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;YACxB,YAAa,CAAC,GAAG,EAAE,CAAC;YACpB,MAAM,YAAY;gBAChB,CAAC,CAAC,IAAI,UAAU,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE;oBAC/C,IAAI,EAAE,+BAA+B;oBACrC,MAAM,EAAE,GAAG;oBACX,WAAW,EAAE,0BAA0B,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC;iBACjE,CAAC;gBACJ,CAAC,CAAC,IAAI,UAAU,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE;oBAC9C,IAAI,EAAE,qBAAqB;oBAC3B,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;QACT,CAAC;QAED,qEAAqE;QACrE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;gBACnE,CAAC,CAAC,qBAA8B;gBAChC,CAAC,CAAC,kBAA2B,CAAC;YAChC,YAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;YACxB,YAAa,CAAC,GAAG,EAAE,CAAC;YACpB,kFAAkF;YAClF,6EAA6E;YAC7E,kEAAkE;YAClE,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC1D,MAAM,IAAI,UAAU,CAClB,sBAAsB,QAAQ,IAAI,WAAW,MAAM;gBACjD,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAC9E;gBACE,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,GAAG;gBACX,GAAG,CAAC,WAAW,KAAK,SAAS;oBAC3B,CAAC,CAAC,EAAE,WAAW,EAAE,qBAAqB,CAAC,WAAW,CAAC,EAAE;oBACrD,CAAC,CAAC,EAAE,CAAC;aACR,CACF,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,4EAA4E;QAC5E,yEAAyE;QACzE,yEAAyE;QACzE,kDAAkD;QAClD,YAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YAC9B,oBAAoB,GAAG,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,yEAAyE;YACzE,4EAA4E;YAC5E,yEAAyE;YACzE,+CAA+C;YAC/C,MAAM,UAAU,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/F,aAAa,CACX,WAAW,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,QAAQ,EAAE,yCAAyC;YACxD,UAAU,EACV,IAAI,CAAC,QAAQ,EACb,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,CACR,CAAC;YACF,YAAa,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QACrE,CAAC;QAED,2DAA2D;QAC3D,yEAAyE;QACzE,4EAA4E;QAC5E,oEAAoE;QACpE,yEAAyE;QACzE,yEAAyE;QACzE,2EAA2E;QAC3E,sFAAsF;QACtF,MAAM,IAAI,GAAG,cAAc,CACzB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EAAE,4CAA4C;QACvD,EAAE,EAAS,mDAAmD;QAC9D,IAAI,CAAC,QAAQ,EACb,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,CACI,CAAC;QACd,YAAa,CAAC,GAAG,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACtD,CAAC;YAAS,CAAC;QACT,qBAAqB,GAAG,KAAK,CAAC;QAC9B,cAAc,GAAG,SAAS,CAAC;QAC3B,wBAAwB,GAAG,SAAS,CAAC;QACrC,YAAY,GAAG,SAAS,CAAC;QACzB,gBAAgB,GAAG,SAAS,CAAC;QAC7B,cAAc,GAAG,MAAM,CAAC;QACxB,oBAAoB,GAAG,SAAS,CAAC;IACnC,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,8DAA8D;AAC9D,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,kEAAkE;AAClE,EAAE;AACF,2EAA2E;AAC3E,wEAAwE;AACxE,8EAA8E;AAE9E,SAAS,cAAc,CACrB,IAAY,EACZ,OAAe,EACf,QAAiC,EACjC,SAA+B,EAC/B,mBAA2B,EAC3B,QAAsB,EACtB,QAAkB,EAClB,MAAoB,EACpB,MAAe,EACf,MAA0B,EAC1B,IAAY,EACZ,UAAmB,EAAE,4DAA4D;AACjF,MAAiB;IAEjB,mCAAmC;IACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACjC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;YACrC,OAAO,GAAG,YAAY,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,iBAAiB,IAAI,IAAI,OAAO,oBAAoB,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;YACpF,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3D,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC5C,IAAI,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtD,2BAA2B;IAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAE,CAAC;IAC1C,0EAA0E;IAC1E,yEAAyE;IACzE,wEAAwE;IACxE,6EAA6E;IAC7E,sEAAsE;IACtE,gEAAgE;IAChE,IAAI,IAAI,KAAK,EAAE,IAAI,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACxE,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC;IACzB,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,yEAAyE;IACzE,0EAA0E;IAC1E,uEAAuE;IACvE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE1B,2EAA2E;IAC3E,0EAA0E;IAC1E,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,2EAA2E;IAC3E,mFAAmF;IACnF,IAAI,mBAAmB,KAAK,EAAE,EAAE,CAAC;QAC/B,KAAK,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;IACnD,CAAC;IAED,oEAAoE;IACpE,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAExF,6DAA6D;IAC7D,iEAAiE;IACjE,qDAAqD;IACrD,4FAA4F;IAC5F,4FAA4F;IAC5F,2CAA2C;IAC3C,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,mBAAmB,KAAK,EAAE,EAAE,CAAC;QAC9D,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,IAAI,IAAI,KAAK,UAAU,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YACtD,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,KAAK,cAAc,IAAI,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACxF,aAAa,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,IAAI,mBAAmB,CAAC;IAE1D,kEAAkE;IAClE,yEAAyE;IACzE,oEAAoE;IACpE,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACtF,2EAA2E;QAC3E,2EAA2E;QAC3E,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClG,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,sEAAsE;YACtE,sEAAsE;YACtE,mDAAmD;YACnD,EAAE;YACF,+DAA+D;YAC/D,sEAAsE;YACtE,2EAA2E;YAC3E,yEAAyE;YACzE,8CAA8C;YAC9C,IACE,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACnC,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,EAC3C,CAAC;gBACD,MAAM,IAAI,UAAU,CAClB,uBAAuB,KAAK,CAAC,QAAQ,QAAQ,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,4BAA4B,KAAK,CAAC,GAAG,EAAE,QAAQ,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,MAAM,4BAA4B,EAAE,EAChM;oBACE,IAAI,EAAE,6BAA6B;oBACnC,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;iBACjE,CACF,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,+DAA+D;YAC/D,mCAAmC;YACnC,MAAM,IAAI,UAAU,CAClB,mBAAmB,KAAK,CAAC,QAAQ,6BAA6B,MAAM,IAAI,WAAW,GAAG,EACtF;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;aACjE,CACF,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACnE,6DAA6D;QAC7D,aAAa,CACX,wBAAwB,KAAK,CAAC,QAAQ,yCAAyC,EAC/E,MAAM,EACN,QAAQ,EACR,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,8BAA8B,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE1F,2BAA2B;IAC3B,qEAAqE;IACrE,MAAM,cAAc,GAAG,SAAS,IAAI,KAAK,CAAC;IAC1C,MAAM,wBAAwB,GAAG,KAAK,CAAC,OAAO,IAAI,mBAAmB,CAAC;IACtE,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,wBAAwB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAE7H,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,qEAAqE;AACrE,8EAA8E;AAE9E,SAAS,aAAa,CACpB,QAAiC,EACjC,MAAgB,EAChB,SAAmB,EACnB,mBAA2B,EAC3B,QAAsB,EACtB,QAAkB,EAClB,MAAoB,EACpB,MAAe,EACf,MAA0B,EAC1B,IAAY;IAEZ,4EAA4E;IAC5E,4EAA4E;IAC5E,uEAAuE;IACvE,sEAAsE;IACtE,MAAM,kBAAkB,GAAG,gBAAgB,IAAI,WAAW,CAAC;IAC3D,MAAM,YAAY,GAAG,MAAM,YAAY,QAAQ,CAAC;IAChD,0EAA0E;IAC1E,0EAA0E;IAC1E,uEAAuE;IACvE,2EAA2E;IAC3E,MAAM,UAAU,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;IAEvD,IAAI,aAAiC,CAAC;IACtC,IAAI,oBAAwD,CAAC;IAC7D,IAAI,UAAU,EAAE,CAAC;QACf,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC3C,2EAA2E;QAC3E,wEAAwE;QACxE,6BAA6B;QAC7B,qEAAqE;QACrE,4CAA4C;QAC5C,oBAAoB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,4EAA4E;IAC5E,uEAAuE;IACvE,sEAAsE;IACtE,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,uDAAuD;IACvD,IAAI,UAAU,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACrD,wBAAwB,CACtB,MAAM,EACN,QAAQ,EACR,oBAAoB,EACpB,kBAAkB,EAClB,MAAM,EACN,IAAI,CACL,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,8BAA8B,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3F,4EAA4E;IAC5E,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,YAAY,GAAG,mBAAmB,CAAC;IAEzC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAE7G,2EAA2E;IAC3E,2EAA2E;IAC3E,wEAAwE;IACxE,sEAAsE;IACtE,wEAAwE;IACxE,6EAA6E;IAC7E,IAAI,UAAU,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAA4B,CAAC;QACvE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAA4B,CAAC;QACzE,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAEpD,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,MAAM,aAAa,GAAG,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAErE,IAAI,OAAO,EAAE,CAAC;YACZ,6DAA6D;YAC7D,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACtE,mEAAmE;YACnE,wEAAwE;YACxE,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,YAAY,GAAkB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1D,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB;aACrD,CAAC,CAAC,CAAC;YACJ,MAAM,YAAY,GAAgB;gBAChC,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,QAAQ;gBACf,QAAQ,EACN,UAAU,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;oBACvD,CAAC,CAAC,QAAQ,CAAC,QAAQ;oBACnB,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC;gBACvC,YAAY;aACb,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;aAAM,IACL,aAAa,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAC3C,CAAC;YACD,yDAAyD;YACzD,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;YACtE,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,YAAY,GAAkB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1D,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB;aACrD,CAAC,CAAC,CAAC;YACJ,MAAM,UAAU,GAAgB;gBAC9B,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,QAAQ;gBACf,QAAQ,EACN,UAAU,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;oBACvD,CAAC,CAAC,QAAQ,CAAC,QAAQ;oBACnB,CAAC,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC;gBACvC,YAAY;aACb,CAAC;YACF,wBAAwB,EAAE,IAAI,CAAC;gBAC7B,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,4BAA4B,MAAM,CAAC,GAAG,EAAE,0BAA0B;gBAC3E,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;gEAKgE;AAChE,SAAS,wBAAwB,CAC/B,MAAgB,EAChB,QAAiC,EACjC,QAAgC,EAChC,kBAA0B,EAC1B,MAAoB,EACpB,IAAY;IAEZ,MAAM,aAAa,GACjB,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3D,SAAS,YAAY,CAAC,CAAU;QAC9B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,eAAe,CAAC,CAAY,EAAE,CAAY;QACjD,0CAA0C;QAC1C,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;YAClC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IACE,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EACxD,CAAC;YACD,oEAAoE;YACpE,iCAAiC;YACjC,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM;oBAAE,OAAO,KAAK,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAClC,IAAI,IAAI,CAAC,SAAS,CAAE,CAA6B,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC;wBACtD,IAAI,CAAC,SAAS,CAAE,CAA6B,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,EAAE,CAAC;wBAC3D,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,SAAS;QAC3C,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QAE1C,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,WAAW,KAAK,SAAS;YAAE,SAAS;QACxC,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,WAAW,CAAC;YAAE,SAAS;QACnE,yEAAyE;QACzE,+CAA+C;QAC/C,IAAI,eAAe,CAAC,WAAW,EAAE,SAAsB,CAAC;YAAE,SAAS;QAEnE,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACtE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,YAAY,GAAkB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,mBAAmB;SACrD,CAAC,CAAC,CAAC;QACJ,MAAM,cAAc,GAAgB;YAClC,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,GAAG,YAAY,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI,WAAW,GAAG,QAAQ,EAAE;YACzE,YAAY;SACb,CAAC;QACF,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,SAAS,WAAW,GAAG,QAAQ,8BAA8B;YAC3D,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,0BAA0B;YACxD,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,MAAM,CAAC,GAAG,EAAE,EAAE,EACnD,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,cAAc,EAAE,CACvD,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,+CAA+C;AAC/C,EAAE;AACF,gFAAgF;AAChF,6DAA6D;AAC7D,8EAA8E;AAE9E,SAAS,oBAAoB,CAC3B,IAAY,EACZ,OAAe,EACf,QAAiC,EACjC,MAAgB,EAChB,SAAmB,EACnB,mBAA2B,EAC3B,QAAsB,EACtB,QAAkB,EAClB,MAAoB,EACpB,MAAe,EACf,MAA0B,EAC1B,IAAY;IAEZ,8EAA8E;IAC9E,uCAAuC;IACvC,MAAM,aAAa,GAAG,QAAQ,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC;IAE9D,sEAAsE;IACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAExD,yEAAyE;IACzE,iEAAiE;IACjE,yEAAyE;IACzE,8EAA8E;IAC9E,EAAE;IACF,yEAAyE;IACzE,yEAAyE;IACzE,uEAAuE;IACvE,yEAAyE;IACzE,2EAA2E;IAC3E,IAAI,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,YAAY,QAAQ,EAAE,CAAC;QACzD,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;QACjF,IAAI,QAAQ,CAAC,aAAa,EAAE,KAAK,YAAY,EAAE,CAAC;YAC9C,qEAAqE;YACrE,oEAAoE;YACpE,QAAQ,GAAG,MAAM;iBACd,WAAW,EAAE;iBACb,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,aAAa,EAAE,KAAK,YAAY,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,UAAU,CAClB,oCAAoC,IAAI,IAAI,IAAI,gDAAgD,EAChG,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CACvD,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gEAAgE;IAChE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,sCAAsC;IACtC,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxJ,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,EAAE;AACF,0EAA0E;AAC1E,8EAA8E;AAE9E,SAAS,iBAAiB,CACxB,KAAe,EACf,QAAiC,EACjC,MAAe,EACf,MAA0B,EAC1B,IAAY,EACZ,QAAkB,EAClB,UAAmB;IAEnB,UAAU;IACV,MAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,aAAa,CAAC,IAAI,oBAAoB,yBAAyB,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QACjH,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACjG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,MAAM,UAAU,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAClD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,aAAa,CAAC,IAAI,oBAAoB,yBAAyB,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CAAC;QACnH,CAAC;aAAM,CAAC;YACN,mEAAmE;YACnE,2EAA2E;YAC3E,2BAA2B,CAAC,IAAI,oBAAoB,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC7F,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,MAAM,WAAW,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACpD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,OAAO,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,aAAa,CAAC,IAAI,qBAAqB,0BAA0B,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QACnH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACnD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,OAAO,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,aAAa,CAAC,IAAI,qBAAqB,0BAA0B,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QACnH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,kFAAkF;AAClF,EAAE;AACF,+DAA+D;AAC/D,6CAA6C;AAC7C,8EAA8E;AAE9E,SAAS,8BAA8B,CACrC,KAAe,EACf,QAAiC,EACjC,MAAe,EACf,MAA0B,EAC1B,IAAY,EACZ,QAAkB,EAClB,QAAsB;IAEtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,+EAA+E;QAC/E,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAErC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1G,aAAa,CACX,gBAAgB,GAAG,QAAQ,WAAW,OAAO,IAAI,yBAAyB,WAAW,YAAY,EACjG,MAAM,EAAE,QAAQ,EAAE,kBAAkB,CACrC,CAAC;YACF,SAAS;QACX,CAAC;QAED,wEAAwE;QACxE,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE/C,0EAA0E;QAC1E,qEAAqE;QACrE,mEAAmE;QACnE,wEAAwE;QACxE,kEAAkE;QAClE,wCAAwC;QACxC,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1G,MAAM,GAAG,GACP,4BAA4B,QAAQ,iBAAiB,WAAW,YAAY;gBAC5E,MAAM,WAAW,OAAO,IAAI,kBAAkB,CAAC;YACjD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,UAAU,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,qEAAqE;YACrE,gEAAgE;YAChE,oEAAoE;YACpE,uEAAuE;YACvE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,cAAc,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;YAC/F,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE7B,4EAA4E;QAC5E,0EAA0E;QAC1E,iEAAiE;QACjE,IAAI,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,2BAA2B,CAAC,GAAG,WAAW,GAAG,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAChE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,aAAa,CACX,gCAAgC,WAAW,GAAG,QAAQ,QAAQ,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,EAC/F,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CACvC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,gFAAgF;AAChF,8DAA8D;AAC9D,8EAA8E;AAE9E,SAAS,eAAe,CACtB,KAAe,EACf,QAAgB,EAChB,MAAe,EACf,QAAsB;IAEtB,uEAAuE;IACvE,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,WAAW,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC3F,IAAI,OAAe,CAAC;IACpB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACxD,6EAA6E;QAC7E,6EAA6E;QAC7E,0EAA0E;QAC1E,6EAA6E;QAC7E,OAAO,GAAG,wBAAwB,CAAC;IACrC,CAAC;SAAM,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACtE,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,8EAA8E;QAC9E,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,8EAA8E;IAC9E,0EAA0E;IAC1E,MAAM,GAAG,GAAG,OAAO,KAAK,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjG,MAAM,IAAI,GAAG,OAAO,KAAK,wBAAwB,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAC9B,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC;QACpD,CAAC,CAAC,GAAG,KAAK,SAAS;YACjB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;YACnC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAa,CAAC;IAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,6EAA6E;AAC7E,6EAA6E;AAC7E,0EAA0E;AAC1E,kDAAkD;AAClD,SAAS,0BAA0B,CAAC,GAAY;IAC9C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,4BAA4B,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,uBAAuB,CAAC;IACnF,OAAO,gBAAgB,CAAC,GAAgB,CAAC,CAAC;AAC5C,CAAC;AAED,8EAA8E;AAC9E,yDAAyD;AACzD,8EAA8E;AAE9E,SAAS,eAAe,CACtB,MAAgB,EAChB,QAAiC,EACjC,SAAmB,EACnB,mBAA2B,EAC3B,QAAsB,EACtB,QAAkB,EAClB,MAAoB,EACpB,MAAe,EACf,MAA0B,EAC1B,IAAY;IAEZ,MAAM,WAAW,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACpD,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO;IAEtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,aAAa,CAAC,IAAI,qBAAqB,yBAAyB,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,0BAA0B,CAAC,CAAC;QACtH,OAAO;IACT,CAAC;IAED,wEAAwE;IACxE,0EAA0E;IAC1E,0EAA0E;IAC1E,YAAY,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAE7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,qBAAqB,IAAI,CAAC,GAAG,CAAC;QAC3D,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACvF,aAAa,CAAC,YAAY,SAAS,oBAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,0BAA0B,CAAC,CAAC;YACvG,YAAY,EAAE,GAAG,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,UAAqC,CAAC;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE3C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GACP,SAAS,CAAC,MAAM,KAAK,CAAC;gBACpB,CAAC,CAAC,YAAY,SAAS,0BAA0B;gBACjD,CAAC,CAAC,YAAY,SAAS,uBAAuB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,kDAAkD,CAAC;YACzH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,0BAA0B,CAAC,CAAC;YACjE,YAAY,EAAE,GAAG,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;QACjD,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChC,kEAAkE;QAClE,qEAAqE;QACrE,qEAAqE;QACrE,6BAA6B;QAC7B,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;QAC/C,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;YAC9B,oBAAoB,GAAG,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACpF,aAAa,CACX,kBAAkB,QAAQ,QAAQ,aAAa,yBAAyB,EACxE,MAAM,EAAE,QAAQ,EAAE,0BAA0B,CAC7C,CAAC;YACF,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,wBAAwB;YAC7C,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,kBAAkB;YACvC,oBAAoB,GAAG,iBAAiB,CAAC,CAAC,8BAA8B;YACxE,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,SAAoC,CAAC;QAC1D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEjG,IAAI,YAAY,GAAG,eAAe,CAAC;QACnC,0FAA0F;QAC1F,2FAA2F;QAC3F,mFAAmF;QACnF,2FAA2F;QAC3F,yFAAyF;QACzF,wEAAwE;QACxE,IAAI,CAAC,YAAY,KAAK,YAAY,IAAI,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;eAC1E,CAAC,CAAC,QAAQ,IAAI,YAAY,KAAK,EAAE,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CACT,QAAQ;gBACN,CAAC,CAAC,IAAI,UAAU,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE;oBAChD,IAAI,EAAE,+BAA+B;oBACrC,MAAM,EAAE,SAAS,EAAE;oBACnB,WAAW,EAAE,0BAA0B,CAAC,SAAS,EAAE,QAAQ,CAAC;iBAC7D,CAAC;gBACJ,CAAC,CAAC,IAAI,UAAU,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE;oBAC/C,IAAI,EAAE,qBAAqB;oBAC3B,MAAM,EAAE,SAAS,EAAE;iBACpB,CAAC,CACP,CAAC;YACF,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,wBAAwB;YAC7C,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,kBAAkB;YACvC,oBAAoB,GAAG,iBAAiB,CAAC,CAAC,8BAA8B;YACxE,SAAS,CAAC,kBAAkB;QAC9B,CAAC;QAED,iDAAiD;QACjD,uEAAuE;QACvE,sEAAsE;QACtE,2CAA2C;QAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;gBACvD,YAAY,GAAG,YAAY,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,GAAG,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;oBAC5E,CAAC,CAAC,qBAA8B;oBAChC,CAAC,CAAC,kBAA2B,CAAC;gBAChC,6EAA6E;gBAC7E,2EAA2E;gBAC3E,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBAC7D,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CACZ,iBAAiB,SAAS,IAAI,YAAY,MAAM;oBAC9C,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAChF,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAC7C,CACF,CAAC;gBACF,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,wBAAwB;gBAC7C,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,kBAAkB;gBACvC,oBAAoB,GAAG,iBAAiB,CAAC,CAAC,8BAA8B;gBACxE,SAAS,CAAC,kBAAkB;YAC9B,CAAC;QACH,CAAC;QAED,uFAAuF;QACvF,kFAAkF;QAClF,sFAAsF;QACtF,qFAAqF;QACrF,uFAAuF;QACvF,iDAAiD;QACjD,kDAAkD;QAClD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACnH,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,MAAM,UAAU,GAAG,oBAAoB,CACrC,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,MAAM,EACN,aAAa,CACd,CAAC;YAEF,yEAAyE;YACzE,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3E,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,wBAAwB;QAC7C,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,kBAAkB;QACvC,oBAAoB,GAAG,iBAAiB,CAAC,CAAC,8BAA8B;IAC1E,CAAC;IACD,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,yBAAyB;AAChD,CAAC;AAED,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAC9E,EAAE;AACF,iFAAiF;AACjF,6EAA6E;AAC7E,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,+EAA+E;AAC/E,mEAAmE;AAEnE,SAAS,cAAc,CACrB,MAAgB,EAChB,QAAgB,EAChB,WAAmB,EACnB,QAAiC,EACjC,QAAsB,EACtB,QAAkB,EAClB,MAAe,EACf,MAA0B,EAC1B,IAAY;IAEZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAE/C,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACpD,aAAa,CACX,iBAAiB,IAAI,0BAA0B,iBAAiB,UAAU,EAC1E,MAAM,EAAE,QAAQ,EAAE,2BAA2B,CAC9C,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,aAAa,CACX,eAAe,QAAQ,QAAQ,IAAI,gBAAgB,kBAAkB,GAAG,EACxE,MAAM,EAAE,QAAQ,EAAE,2BAA2B,CAC9C,CAAC;QACF,OAAO;IACT,CAAC;IAED,2EAA2E;IAC3E,MAAM,eAAe,GACnB,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC;QAC1E,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,YAAY,CAAC;IACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;QACjC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC3C,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,QAAQ,CAAC,CAAa,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,aAAa,CACX,iCAAiC,QAAQ,cAAc,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,EACxF,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CACvC,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"parser-core.js","sourceRoot":"","sources":["../src/parser-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /** A consumer-side output filter over fully-qualified node names. */
2
+ export interface Scope {
3
+ /** Absent or empty means "everything". */
4
+ readonly include?: readonly string[];
5
+ /** Applied after `include`. */
6
+ readonly exclude?: readonly string[];
7
+ }
8
+ export interface CompiledScope {
9
+ readonly include: readonly RegExp[];
10
+ readonly exclude: readonly RegExp[];
11
+ }
12
+ export declare function compilePattern(pattern: string): RegExp;
13
+ export declare function compileScope(scope: Scope): CompiledScope;
14
+ /** True when `fqn` is inside the scope. An empty `include` means everything. */
15
+ export declare function matchesScope(fqn: string, compiled: CompiledScope): boolean;
16
+ //# sourceMappingURL=scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"AAoBA,qEAAqE;AACrE,MAAM,WAAW,KAAK;IACpB,0CAA0C;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAuCD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAYtD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAKxD;AAED,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAI1E"}
package/dist/scope.js ADDED
@@ -0,0 +1,78 @@
1
+ // server/typescript/packages/metadata/src/scope.ts
2
+ //
3
+ // FR-023 §4.3 — the scope-pattern grammar. Moved here from
4
+ // `@metaobjectsdev/sdk` so `codegen-ts`'s publisher generator
5
+ // (`sharedModelFile()`) can select its exports with the same patterns
6
+ // without taking a dependency on sdk. `@metaobjectsdev/sdk` re-exports
7
+ // `compileScope` / `matchesScope` / `Scope` / `CompiledScope` from here
8
+ // unchanged, so existing importers of the scope API from sdk keep working.
9
+ //
10
+ // A pure, no-I/O module deciding whether a fully-qualified node name falls
11
+ // inside a consumer's declared `include`/`exclude` scope. Source resolution
12
+ // and discovery (later phase-1 tasks) build on this; a cross-language
13
+ // conformance corpus pins its semantics, so exact pattern behavior matters.
14
+ //
15
+ // Uses no `node:` imports — stays browser-safe like the rest of the root
16
+ // entry (see `test/browser-safety.test.ts`).
17
+ import { PACKAGE_SEPARATOR } from "./shared/structural.js";
18
+ import { ParseError } from "./errors.js";
19
+ import { codeSource } from "./source.js";
20
+ /** One package segment: any run of characters containing no separator char. */
21
+ const SEGMENT = "[^:]+";
22
+ /** One or more segments, separator-joined — the `**` expansion. */
23
+ const SEGMENTS = `${SEGMENT}(?:${PACKAGE_SEPARATOR}${SEGMENT})*`;
24
+ function escapeLiteral(text) {
25
+ return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
26
+ }
27
+ /** Compile one segment. `**` spans segments; `*` never crosses a separator. */
28
+ function compileSegment(segment, pattern) {
29
+ if (segment.length === 0) {
30
+ throw new ParseError(`empty segment in scope pattern "${pattern}"`, {
31
+ code: "ERR_SCOPE_PATTERN_INVALID",
32
+ source: codeSource("compileSegment"),
33
+ });
34
+ }
35
+ // A segment surviving the split on the two-character PACKAGE_SEPARATOR
36
+ // ("::") can still contain a lone ":" when the pattern has an odd colon
37
+ // run — e.g. "acme:::Order".split("::") => ["acme", ":Order"]. SEGMENT
38
+ // ([^:]+) already excludes ":" from a well-formed segment, so a leftover
39
+ // ":" here means the separator was malformed, not that ":" is meant
40
+ // literally. Left unchecked, escapeLiteral treats it as a literal
41
+ // character and compiles a regex requiring three colons in a row — which
42
+ // no legal "::"-joined fully-qualified name can ever contain, so the
43
+ // pattern silently matches nothing instead of failing loud.
44
+ if (segment.includes(":")) {
45
+ throw new ParseError(`scope pattern "${pattern}" has a malformed separator (an odd run of ":") — segments are joined by "::", never a single ":"`, { code: "ERR_SCOPE_PATTERN_INVALID", source: codeSource("compileSegment") });
46
+ }
47
+ if (segment === "**")
48
+ return `(?:${SEGMENTS})`;
49
+ // `*` inside a segment matches any characters except the separator char.
50
+ return segment.split("*").map(escapeLiteral).join("[^:]*");
51
+ }
52
+ export function compilePattern(pattern) {
53
+ if (pattern.length === 0) {
54
+ throw new ParseError(`scope pattern must not be empty`, {
55
+ code: "ERR_SCOPE_PATTERN_INVALID",
56
+ source: codeSource("compilePattern"),
57
+ });
58
+ }
59
+ const body = pattern
60
+ .split(PACKAGE_SEPARATOR)
61
+ .map((segment) => compileSegment(segment, pattern))
62
+ .join(PACKAGE_SEPARATOR);
63
+ return new RegExp(`^${body}$`);
64
+ }
65
+ export function compileScope(scope) {
66
+ return {
67
+ include: (scope.include ?? []).map(compilePattern),
68
+ exclude: (scope.exclude ?? []).map(compilePattern),
69
+ };
70
+ }
71
+ /** True when `fqn` is inside the scope. An empty `include` means everything. */
72
+ export function matchesScope(fqn, compiled) {
73
+ const included = compiled.include.length === 0 || compiled.include.some((re) => re.test(fqn));
74
+ if (!included)
75
+ return false;
76
+ return !compiled.exclude.some((re) => re.test(fqn));
77
+ }
78
+ //# sourceMappingURL=scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"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"}
@@ -13,4 +13,5 @@ export declare function canonicalSerialize(model: MetaData): string;
13
13
  * Used by the conformance harness's expected-effective fixtures.
14
14
  */
15
15
  export declare function canonicalSerializeEffective(model: MetaData): string;
16
+ export declare function serializeSharedDocument(nodes: readonly MetaData[]): string;
16
17
  //# sourceMappingURL=serializer-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializer-json.d.ts","sourceRoot":"","sources":["../src/serializer-json.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAkCjE,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAK9E;AAUD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAUzD;AAgGD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAY1D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAUnE"}
1
+ {"version":3,"file":"serializer-json.d.ts","sourceRoot":"","sources":["../src/serializer-json.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAmCjE,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAK9E;AAUD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAUzD;AAgGD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAY1D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAUnE;AAwHD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CA4B1E"}