@ninebix/nmt-system 1.0.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +30 -22
  2. package/dashboard-lite/index.html +458 -0
  3. package/dist/bin/nmt.js +225 -6
  4. package/dist/bin/nmt.js.map +1 -1
  5. package/dist/src/api/cli-server.d.ts.map +1 -1
  6. package/dist/src/api/cli-server.js +327 -30
  7. package/dist/src/api/cli-server.js.map +1 -1
  8. package/dist/src/cli/commands/db.d.ts +33 -0
  9. package/dist/src/cli/commands/db.d.ts.map +1 -0
  10. package/dist/src/cli/commands/db.js +197 -0
  11. package/dist/src/cli/commands/db.js.map +1 -0
  12. package/dist/src/cli/commands/infer.d.ts.map +1 -1
  13. package/dist/src/cli/commands/infer.js +8 -2
  14. package/dist/src/cli/commands/infer.js.map +1 -1
  15. package/dist/src/cli/commands/learn.d.ts.map +1 -1
  16. package/dist/src/cli/commands/learn.js +25 -1
  17. package/dist/src/cli/commands/learn.js.map +1 -1
  18. package/dist/src/cli/commands/sync.d.ts +14 -0
  19. package/dist/src/cli/commands/sync.d.ts.map +1 -1
  20. package/dist/src/cli/commands/sync.js +12 -7
  21. package/dist/src/cli/commands/sync.js.map +1 -1
  22. package/dist/src/connectors/index.d.ts +11 -0
  23. package/dist/src/connectors/index.d.ts.map +1 -0
  24. package/dist/src/connectors/index.js +24 -0
  25. package/dist/src/connectors/index.js.map +1 -0
  26. package/dist/src/connectors/mongodb-connector.d.ts +29 -0
  27. package/dist/src/connectors/mongodb-connector.d.ts.map +1 -0
  28. package/dist/src/connectors/mongodb-connector.js +286 -0
  29. package/dist/src/connectors/mongodb-connector.js.map +1 -0
  30. package/dist/src/connectors/mysql-connector.d.ts +29 -0
  31. package/dist/src/connectors/mysql-connector.d.ts.map +1 -0
  32. package/dist/src/connectors/mysql-connector.js +357 -0
  33. package/dist/src/connectors/mysql-connector.js.map +1 -0
  34. package/dist/src/connectors/types.d.ts +174 -0
  35. package/dist/src/connectors/types.d.ts.map +1 -0
  36. package/dist/src/connectors/types.js +6 -0
  37. package/dist/src/connectors/types.js.map +1 -0
  38. package/dist/src/core/attractor-model.d.ts +6 -2
  39. package/dist/src/core/attractor-model.d.ts.map +1 -1
  40. package/dist/src/core/attractor-model.js +260 -16
  41. package/dist/src/core/attractor-model.js.map +1 -1
  42. package/dist/src/core/hnsw-index.d.ts.map +1 -1
  43. package/dist/src/core/hnsw-index.js +16 -9
  44. package/dist/src/core/hnsw-index.js.map +1 -1
  45. package/dist/src/core/neuron-graph.d.ts +130 -1
  46. package/dist/src/core/neuron-graph.d.ts.map +1 -1
  47. package/dist/src/core/neuron-graph.js +299 -1
  48. package/dist/src/core/neuron-graph.js.map +1 -1
  49. package/dist/src/core/probabilistic-neuron.d.ts.map +1 -1
  50. package/dist/src/core/probabilistic-neuron.js +24 -4
  51. package/dist/src/core/probabilistic-neuron.js.map +1 -1
  52. package/dist/src/core/probabilistic-orchestrator.d.ts.map +1 -1
  53. package/dist/src/core/probabilistic-orchestrator.js +17 -13
  54. package/dist/src/core/probabilistic-orchestrator.js.map +1 -1
  55. package/dist/src/extensions/clustering/index.d.ts +0 -7
  56. package/dist/src/extensions/clustering/index.d.ts.map +1 -1
  57. package/dist/src/extensions/clustering/index.js.map +1 -1
  58. package/dist/src/mcp/server.js +4 -0
  59. package/dist/src/mcp/server.js.map +1 -1
  60. package/dist/src/services/db-bridge.d.ts +46 -0
  61. package/dist/src/services/db-bridge.d.ts.map +1 -0
  62. package/dist/src/services/db-bridge.js +524 -0
  63. package/dist/src/services/db-bridge.js.map +1 -0
  64. package/dist/src/services/embedding-provider.d.ts +11 -1
  65. package/dist/src/services/embedding-provider.d.ts.map +1 -1
  66. package/dist/src/services/embedding-provider.js +78 -21
  67. package/dist/src/services/embedding-provider.js.map +1 -1
  68. package/dist/src/services/four-stage-learning.d.ts.map +1 -1
  69. package/dist/src/services/four-stage-learning.js +20 -9
  70. package/dist/src/services/four-stage-learning.js.map +1 -1
  71. package/dist/src/services/ingestion.d.ts +20 -1
  72. package/dist/src/services/ingestion.d.ts.map +1 -1
  73. package/dist/src/services/ingestion.js +92 -62
  74. package/dist/src/services/ingestion.js.map +1 -1
  75. package/dist/src/services/query.d.ts +57 -3
  76. package/dist/src/services/query.d.ts.map +1 -1
  77. package/dist/src/services/query.js +264 -42
  78. package/dist/src/services/query.js.map +1 -1
  79. package/dist/src/services/text-embedding.d.ts +1 -1
  80. package/dist/src/services/text-embedding.d.ts.map +1 -1
  81. package/dist/src/services/text-embedding.js +62 -3
  82. package/dist/src/services/text-embedding.js.map +1 -1
  83. package/dist/src/storage/neuron-store.d.ts +12 -1
  84. package/dist/src/storage/neuron-store.d.ts.map +1 -1
  85. package/dist/src/storage/neuron-store.js +12 -1
  86. package/dist/src/storage/neuron-store.js.map +1 -1
  87. package/dist/src/sync/change-journal.d.ts.map +1 -1
  88. package/dist/src/sync/change-journal.js +63 -37
  89. package/dist/src/sync/change-journal.js.map +1 -1
  90. package/dist/src/sync/state-sync.d.ts +5 -0
  91. package/dist/src/sync/state-sync.d.ts.map +1 -1
  92. package/dist/src/sync/state-sync.js +9 -2
  93. package/dist/src/sync/state-sync.js.map +1 -1
  94. package/dist/src/types/index.d.ts +73 -3
  95. package/dist/src/types/index.d.ts.map +1 -1
  96. package/dist/src/types/index.js +7 -0
  97. package/dist/src/types/index.js.map +1 -1
  98. package/dist/src/utils/hash.d.ts.map +1 -1
  99. package/dist/src/utils/hash.js +3 -3
  100. package/dist/src/utils/hash.js.map +1 -1
  101. package/package.json +5 -1
@@ -389,6 +389,9 @@ export class AttractorModel {
389
389
  const cameFrom = new Map();
390
390
  // Track edge costs for bottleneck analysis
391
391
  const edgeCosts = new Map();
392
+ // Track depth per node to avoid repeated path reconstruction
393
+ const depthMap = new Map();
394
+ depthMap.set(startId, 0);
392
395
  // Main A* loop
393
396
  while (!openSet.isEmpty() && result.nodesExplored < this.maxSearchNodes) {
394
397
  const current = openSet.dequeue();
@@ -417,8 +420,8 @@ export class AttractorModel {
417
420
  }
418
421
  // Add to closed set
419
422
  closedSet.add(current.id);
420
- // Check depth limit
421
- const depth = this.reconstructPath(current.id, cameFrom).length - 1;
423
+ // Check depth limit using tracked depth
424
+ const depth = depthMap.get(current.id) ?? 0;
422
425
  if (depth >= maxDepth)
423
426
  continue;
424
427
  // Expand neighbors
@@ -452,6 +455,7 @@ export class AttractorModel {
452
455
  cameFrom.set(synapse.targetId, current.id);
453
456
  gScores.set(synapse.targetId, tentativeG);
454
457
  edgeCosts.set(`${current.id}:${synapse.targetId}`, adjustedCost);
458
+ depthMap.set(synapse.targetId, depth + 1);
455
459
  // Calculate heuristic
456
460
  const h = this.calculateHeuristic(neighborEmbedding, goal.embedding);
457
461
  const f = tentativeG + this.heuristicWeight * h;
@@ -561,31 +565,245 @@ export class AttractorModel {
561
565
  return results;
562
566
  }
563
567
  /**
564
- * A* search with path exclusion for k-best paths
568
+ * A* search with path exclusion for k-best paths (Yen's algorithm variant)
569
+ *
570
+ * Penalizes edges used by excluded paths to force exploration of alternatives.
565
571
  */
566
572
  async aStarSearchWithExclusion(startId, goal, maxDepth, excludedPaths) {
567
- // Similar to aStarSearch but with path exclusion
568
- const result = await this.aStarSearch(startId, goal, maxDepth);
569
- // If the found path is excluded, try again with penalty
570
- if (result.found && excludedPaths.has(result.path.join(':'))) {
571
- // Add penalty and retry - this is simplified
572
- result.found = false;
573
+ // Build a set of excluded edges from previously found paths
574
+ const excludedEdges = new Set();
575
+ for (const pathKey of excludedPaths) {
576
+ const nodes = pathKey.split(':');
577
+ for (let i = 0; i < nodes.length - 1; i++) {
578
+ excludedEdges.add(`${nodes[i]}:${nodes[i + 1]}`);
579
+ }
580
+ }
581
+ // Run A* with edge penalties
582
+ const result = {
583
+ found: false, path: [], totalCost: Infinity,
584
+ nodesExplored: 0, pathProbability: 0, bottlenecks: []
585
+ };
586
+ const startEmbedding = this.embeddingCache.get(startId)
587
+ ?? (await this.store.getNeuron(startId))?.embedding;
588
+ if (!startEmbedding)
589
+ return result;
590
+ this.embeddingCache.set(startId, startEmbedding);
591
+ const startH = this.calculateHeuristic(startEmbedding, goal.embedding);
592
+ const openSet = new PriorityQueue();
593
+ openSet.enqueue({ id: startId, parent: null, g: 0, h: startH, f: this.heuristicWeight * startH });
594
+ const closedSet = new Set();
595
+ const gScores = new Map();
596
+ gScores.set(startId, 0);
597
+ const cameFrom = new Map();
598
+ const edgeCosts = new Map();
599
+ while (!openSet.isEmpty() && result.nodesExplored < this.maxSearchNodes) {
600
+ const current = openSet.dequeue();
601
+ result.nodesExplored++;
602
+ if (closedSet.has(current.id))
603
+ continue;
604
+ let currentEmbedding = this.embeddingCache.get(current.id);
605
+ if (!currentEmbedding) {
606
+ const node = await this.store.getNeuron(current.id);
607
+ if (!node)
608
+ continue;
609
+ currentEmbedding = node.embedding;
610
+ this.embeddingCache.set(current.id, currentEmbedding);
611
+ }
612
+ const similarity = cosineSimilarity(currentEmbedding, goal.embedding);
613
+ if (similarity > 0.9) {
614
+ const candidatePath = this.reconstructPath(current.id, cameFrom);
615
+ const candidateKey = candidatePath.join(':');
616
+ // Reject if this exact path was already found
617
+ if (!excludedPaths.has(candidateKey)) {
618
+ result.found = true;
619
+ result.totalCost = current.g;
620
+ result.path = candidatePath;
621
+ result.pathProbability = this.calculatePathProbability(result.path, edgeCosts);
622
+ result.bottlenecks = this.identifyAStarBottlenecks(result.path, edgeCosts);
623
+ return result;
624
+ }
625
+ }
626
+ closedSet.add(current.id);
627
+ const depth = this.reconstructPath(current.id, cameFrom).length - 1;
628
+ if (depth >= maxDepth)
629
+ continue;
630
+ const outgoing = await this.store.getOutgoingSynapses(current.id);
631
+ for (const synapse of outgoing) {
632
+ if (closedSet.has(synapse.targetId))
633
+ continue;
634
+ let neighborEmbedding = this.embeddingCache.get(synapse.targetId);
635
+ if (!neighborEmbedding) {
636
+ const neighborNode = await this.store.getNeuron(synapse.targetId);
637
+ if (!neighborNode)
638
+ continue;
639
+ neighborEmbedding = neighborNode.embedding;
640
+ this.embeddingCache.set(synapse.targetId, neighborEmbedding);
641
+ }
642
+ let edgeCost = 1 - synapse.weight;
643
+ const currentToGoal = 1 - cosineSimilarity(currentEmbedding, goal.embedding);
644
+ const neighborToGoal = 1 - cosineSimilarity(neighborEmbedding, goal.embedding);
645
+ const attractorBonus = Math.max(0, currentToGoal - neighborToGoal) * 0.5;
646
+ edgeCost = Math.max(0.01, edgeCost - attractorBonus);
647
+ // Penalize excluded edges to force alternative paths
648
+ const edgeKey = `${current.id}:${synapse.targetId}`;
649
+ if (excludedEdges.has(edgeKey)) {
650
+ edgeCost += 2.0;
651
+ }
652
+ const tentativeG = current.g + edgeCost;
653
+ const existingG = gScores.get(synapse.targetId) ?? Infinity;
654
+ if (tentativeG < existingG) {
655
+ cameFrom.set(synapse.targetId, current.id);
656
+ gScores.set(synapse.targetId, tentativeG);
657
+ edgeCosts.set(edgeKey, edgeCost);
658
+ const h = this.calculateHeuristic(neighborEmbedding, goal.embedding);
659
+ openSet.enqueue({ id: synapse.targetId, parent: current.id, g: tentativeG, h, f: tentativeG + this.heuristicWeight * h });
660
+ }
661
+ }
573
662
  }
574
663
  return result;
575
664
  }
576
665
  /**
577
666
  * Bidirectional A* search for faster pathfinding
578
667
  *
579
- * Searches from both start and goal simultaneously
668
+ * Runs forward A* from start and backward BFS from the goal's nearest neurons,
669
+ * meeting in the middle for faster convergence on large graphs.
670
+ * Falls back to standard A* when no backward anchors can be identified.
580
671
  */
581
672
  async bidirectionalAStarSearch(startId, attractorId, maxDepth = 10) {
582
673
  const attractor = this.attractors.get(attractorId);
583
674
  if (!attractor) {
584
675
  return { found: false, path: [], totalCost: Infinity, nodesExplored: 0, pathProbability: 0, bottlenecks: [] };
585
676
  }
586
- // For now, delegate to standard A* (full bidirectional needs goal node ID)
587
- // In a full implementation, you'd need to identify goal nodes first
588
- return this.aStarSearch(startId, attractor, maxDepth);
677
+ // Identify goal-side anchor nodes: neurons highly similar to the attractor
678
+ const allNeuronIds = await this.store.getAllNeuronIds();
679
+ const goalAnchors = [];
680
+ for (const nid of allNeuronIds) {
681
+ let emb = this.embeddingCache.get(nid);
682
+ if (!emb) {
683
+ const n = await this.store.getNeuron(nid);
684
+ if (!n)
685
+ continue;
686
+ emb = n.embedding;
687
+ this.embeddingCache.set(nid, emb);
688
+ }
689
+ const sim = cosineSimilarity(emb, attractor.embedding);
690
+ if (sim > 0.85) {
691
+ goalAnchors.push({ id: nid, similarity: sim });
692
+ }
693
+ }
694
+ // No anchors near the goal -- fall back to standard A*
695
+ if (goalAnchors.length === 0) {
696
+ return this.aStarSearch(startId, attractor, maxDepth);
697
+ }
698
+ // Build backward reachability from goal anchors (BFS up to maxDepth/2)
699
+ const backwardReach = new Map(); // nodeId -> path to goal anchor
700
+ const backwardDepth = Math.max(2, Math.floor(maxDepth / 2));
701
+ for (const anchor of goalAnchors) {
702
+ const queue = [{ id: anchor.id, path: [anchor.id] }];
703
+ const visited = new Set([anchor.id]);
704
+ while (queue.length > 0) {
705
+ const current = queue.shift();
706
+ if (current.path.length > backwardDepth)
707
+ continue;
708
+ const incoming = await this.store.getIncomingSynapses(current.id);
709
+ for (const syn of incoming) {
710
+ if (visited.has(syn.sourceId))
711
+ continue;
712
+ visited.add(syn.sourceId);
713
+ const path = [syn.sourceId, ...current.path];
714
+ // Keep shortest path per node
715
+ if (!backwardReach.has(syn.sourceId) || backwardReach.get(syn.sourceId).length > path.length) {
716
+ backwardReach.set(syn.sourceId, path);
717
+ }
718
+ queue.push({ id: syn.sourceId, path });
719
+ }
720
+ }
721
+ }
722
+ // Forward A* from start, checking for meeting points with backward reach
723
+ const result = {
724
+ found: false, path: [], totalCost: Infinity,
725
+ nodesExplored: 0, pathProbability: 0, bottlenecks: []
726
+ };
727
+ const startNode = await this.store.getNeuron(startId);
728
+ if (!startNode)
729
+ return this.aStarSearch(startId, attractor, maxDepth);
730
+ this.embeddingCache.set(startId, startNode.embedding);
731
+ const startH = this.calculateHeuristic(startNode.embedding, attractor.embedding);
732
+ const openSet = new PriorityQueue();
733
+ openSet.enqueue({ id: startId, parent: null, g: 0, h: startH, f: this.heuristicWeight * startH });
734
+ const closedSet = new Set();
735
+ const gScores = new Map();
736
+ gScores.set(startId, 0);
737
+ const cameFrom = new Map();
738
+ const edgeCosts = new Map();
739
+ while (!openSet.isEmpty() && result.nodesExplored < this.maxSearchNodes) {
740
+ const current = openSet.dequeue();
741
+ result.nodesExplored++;
742
+ if (closedSet.has(current.id))
743
+ continue;
744
+ // Check if current node is a meeting point with backward reach
745
+ if (backwardReach.has(current.id)) {
746
+ const forwardPath = this.reconstructPath(current.id, cameFrom);
747
+ const backwardPath = backwardReach.get(current.id);
748
+ // Stitch: forward path + backward path (skip duplicate meeting node)
749
+ result.found = true;
750
+ result.path = [...forwardPath, ...backwardPath.slice(1)];
751
+ result.totalCost = current.g;
752
+ result.pathProbability = this.calculatePathProbability(result.path, edgeCosts);
753
+ result.bottlenecks = this.identifyAStarBottlenecks(result.path, edgeCosts);
754
+ return result;
755
+ }
756
+ // Standard A* goal check (similarity > 0.9)
757
+ let currentEmbedding = this.embeddingCache.get(current.id);
758
+ if (!currentEmbedding) {
759
+ const node = await this.store.getNeuron(current.id);
760
+ if (!node)
761
+ continue;
762
+ currentEmbedding = node.embedding;
763
+ this.embeddingCache.set(current.id, currentEmbedding);
764
+ }
765
+ const similarity = cosineSimilarity(currentEmbedding, attractor.embedding);
766
+ if (similarity > 0.9) {
767
+ result.found = true;
768
+ result.totalCost = current.g;
769
+ result.path = this.reconstructPath(current.id, cameFrom);
770
+ result.pathProbability = this.calculatePathProbability(result.path, edgeCosts);
771
+ result.bottlenecks = this.identifyAStarBottlenecks(result.path, edgeCosts);
772
+ return result;
773
+ }
774
+ closedSet.add(current.id);
775
+ const depth = this.reconstructPath(current.id, cameFrom).length - 1;
776
+ if (depth >= maxDepth)
777
+ continue;
778
+ const outgoing = await this.store.getOutgoingSynapses(current.id);
779
+ for (const synapse of outgoing) {
780
+ if (closedSet.has(synapse.targetId))
781
+ continue;
782
+ let neighborEmbedding = this.embeddingCache.get(synapse.targetId);
783
+ if (!neighborEmbedding) {
784
+ const neighborNode = await this.store.getNeuron(synapse.targetId);
785
+ if (!neighborNode)
786
+ continue;
787
+ neighborEmbedding = neighborNode.embedding;
788
+ this.embeddingCache.set(synapse.targetId, neighborEmbedding);
789
+ }
790
+ const edgeCost = 1 - synapse.weight;
791
+ const currentToGoal = 1 - cosineSimilarity(currentEmbedding, attractor.embedding);
792
+ const neighborToGoal = 1 - cosineSimilarity(neighborEmbedding, attractor.embedding);
793
+ const attractorBonus = Math.max(0, currentToGoal - neighborToGoal) * 0.5;
794
+ const adjustedCost = Math.max(0.01, edgeCost - attractorBonus);
795
+ const tentativeG = current.g + adjustedCost;
796
+ const existingG = gScores.get(synapse.targetId) ?? Infinity;
797
+ if (tentativeG < existingG) {
798
+ cameFrom.set(synapse.targetId, current.id);
799
+ gScores.set(synapse.targetId, tentativeG);
800
+ edgeCosts.set(`${current.id}:${synapse.targetId}`, adjustedCost);
801
+ const h = this.calculateHeuristic(neighborEmbedding, attractor.embedding);
802
+ openSet.enqueue({ id: synapse.targetId, parent: current.id, g: tentativeG, h, f: tentativeG + this.heuristicWeight * h });
803
+ }
804
+ }
805
+ }
806
+ return result;
589
807
  }
590
808
  /**
591
809
  * Clear embedding cache to free memory
@@ -761,11 +979,37 @@ export class AttractorModel {
761
979
  }
762
980
  // ==================== Private Methods ====================
763
981
  updateProbabilityField(attractor) {
982
+ const gradient = new Map();
983
+ const reachableStates = [];
984
+ const pathProbabilities = [];
985
+ // Compute gradient: similarity-based influence for cached embeddings
986
+ for (const [neuronId, embedding] of this.embeddingCache.entries()) {
987
+ const similarity = cosineSimilarity(embedding, attractor.embedding);
988
+ const influence = similarity * attractor.strength;
989
+ if (influence > 0.05) {
990
+ gradient.set(neuronId, influence);
991
+ reachableStates.push(neuronId);
992
+ }
993
+ }
994
+ // Compute path probabilities from recorded transitions
995
+ for (const transition of this.transitions) {
996
+ if (transition.attractorInfluence) {
997
+ const influence = transition.attractorInfluence.get(attractor.id);
998
+ if (influence && influence > 0.1) {
999
+ pathProbabilities.push({
1000
+ path: [transition.from, transition.to],
1001
+ probability: influence,
1002
+ estimatedSteps: 1,
1003
+ bottlenecks: [],
1004
+ });
1005
+ }
1006
+ }
1007
+ }
764
1008
  const field = {
765
1009
  attractor,
766
- gradient: new Map(),
767
- reachableStates: [],
768
- pathProbabilities: []
1010
+ gradient,
1011
+ reachableStates,
1012
+ pathProbabilities,
769
1013
  };
770
1014
  this.fields.set(attractor.id, field);
771
1015
  }
@@ -1 +1 @@
1
- {"version":3,"file":"attractor-model.js","sourceRoot":"","sources":["../../../src/core/attractor-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA0E1D;;GAEG;AACH,MAAM,aAAa;IACT,KAAK,GAAQ,EAAE,CAAC;IAExB,OAAO,CAAC,IAAO;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAErD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAG,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,GAAG,CAAC,SAA+B;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,SAA+B,EAAE,OAAU;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC5B,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,MAAM;YAC5D,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YAC5F,KAAK,GAAG,WAAW,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,KAAa;QAC9B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAC5B,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5E,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9E,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;YACD,IAAI,QAAQ,KAAK,KAAK;gBAAE,MAAM;YAE9B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACtF,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,OAAO,cAAc;IACjB,KAAK,CAAe;IACpB,aAAa,CAAS;IACtB,eAAe,CAAS;IACxB,SAAS,CAAS;IAClB,eAAe,CAAS;IAEhC,uBAAuB;IACf,eAAe,CAAS;IACxB,cAAc,CAAS;IAE/B,oBAAoB;IACZ,UAAU,GAAyB,IAAI,GAAG,EAAE,CAAC;IAErD,qBAAqB;IACb,MAAM,GAAgC,IAAI,GAAG,EAAE,CAAC;IAExD,gBAAgB;IACR,YAAY,GAAmB,EAAE,CAAC;IAClC,WAAW,GAAsB,EAAE,CAAC;IAE5C,6BAA6B;IACrB,iBAAiB,GAAgB,IAAI,CAAC;IAE9C,4BAA4B;IACpB,cAAc,GAA4B,IAAI,GAAG,EAAE,CAAC;IAE5D,YAAY,OAA8B;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,GAAG,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,eAAe,CACb,EAAQ,EACR,IAAY,EACZ,WAAmB,EACnB,SAAuB,EACvB,UAA6H,EAAE;QAE/H,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/C,mCAAmC;YACnC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,SAAS,GAAc;YAC3B,EAAE;YACF,IAAI;YACJ,WAAW;YACX,SAAS;YACT,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe;YAClD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;YACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;YAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE;YAC1C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAEvC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,EAAQ;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,EAAQ,EAAE,OAA2B;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAEvC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,kBAAkB,CAAC,cAA4B;QAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAgB,CAAC;QAE3C,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YAEzE,gEAAgE;YAChE,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC;YAChC,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;YAElF,4BAA4B;YAC5B,MAAM,kBAAkB,GAAG,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnD,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,kBAAkB,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,cAA4B;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAE3D,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,QAAQ,GAAqB,IAAI,CAAC;QAEtC,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;YACzC,IAAI,SAAS,GAAG,YAAY,EAAE,CAAC;gBAC7B,YAAY,GAAG,SAAS,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gCAAgC,CACpC,eAAqB,EACrB,YAAoB;QAEpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QAE/B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAgB,CAAC;QAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErE,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,4CAA4C;YAC5C,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YAEhF,yEAAyE;YACzE,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAEzE,KAAK,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,iBAAiB,EAAE,CAAC;gBAC1D,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC/D,+CAA+C;gBAC/C,cAAc,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC;YAChD,CAAC;YAED,4BAA4B;YAC5B,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAE3C,uBAAuB;YACvB,MAAM,WAAW,GAAG,cAAc,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,cAAc,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YAC9E,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,0BAA0B;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC;gBACvC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,mBAAmB,CACvB,eAAqB,EACrB,WAAiB,EACjB,WAAmB,EAAE;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE5E,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAE/B,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,eAAe;YACnC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YACtC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACnD,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,WAAW,CACf,OAAa,EACb,IAAe,EACf,WAAmB,EAAE;QAErB,oBAAoB;QACpB,MAAM,MAAM,GAAgB;YAC1B,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,QAAQ;YACnB,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;YAClB,WAAW,EAAE,EAAE;SAChB,CAAC;QAEF,iBAAiB;QACjB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS;YAAE,OAAO,MAAM,CAAC;QAE9B,wBAAwB;QACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAEtD,8BAA8B;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE5E,2BAA2B;QAC3B,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YACxB,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;YACrB,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;YAC3B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,uCAAuC;QACvC,MAAM,OAAO,GAAG,IAAI,aAAa,EAAa,CAAC;QAC/C,OAAO,CAAC,OAAO,CAAC;YACd,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,IAAI;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM;SACjC,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAQ,CAAC;QAElC,sBAAsB;QACtB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAExB,gDAAgD;QAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAc,CAAC;QAEvC,2CAA2C;QAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE5C,eAAe;QACf,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACxE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAG,CAAC;YACnC,MAAM,CAAC,aAAa,EAAE,CAAC;YAEvB,4BAA4B;YAC5B,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAE,SAAS;YAExC,6BAA6B;YAC7B,IAAI,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;gBAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YACxD,CAAC;YAED,2CAA2C;YAC3C,MAAM,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACtE,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;gBACrB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;gBACpB,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACzD,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC/E,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC3E,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,oBAAoB;YACpB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE1B,oBAAoB;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACpE,IAAI,KAAK,IAAI,QAAQ;gBAAE,SAAS;YAEhC,mBAAmB;YACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAElE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAE9C,yBAAyB;gBACzB,IAAI,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAClE,IAAI,CAAC,YAAY;wBAAE,SAAS;oBAC5B,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;gBAC/D,CAAC;gBAED,mDAAmD;gBACnD,qDAAqD;gBACrD,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBAEpC,mEAAmE;gBACnE,MAAM,aAAa,GAAG,CAAC,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7E,MAAM,cAAc,GAAG,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC;gBAEzE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAAC,CAAC;gBAE/D,8BAA8B;gBAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC;gBAE5C,+BAA+B;gBAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;gBAC5D,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;oBAC3B,mBAAmB;oBACnB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;oBAEjE,sBAAsB;oBACtB,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrE,MAAM,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;oBAEhD,kBAAkB;oBAClB,OAAO,CAAC,OAAO,CAAC;wBACd,EAAE,EAAE,OAAO,CAAC,QAAQ;wBACpB,MAAM,EAAE,OAAO,CAAC,EAAE;wBAClB,CAAC,EAAE,UAAU;wBACb,CAAC;wBACD,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACK,kBAAkB,CAAC,SAAuB,EAAE,aAA2B;QAC7E,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC9D,8EAA8E;QAC9E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAAY,EAAE,QAAyB;QAC7D,MAAM,IAAI,GAAW,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,OAAO,GAAG,MAAM,CAAC;QAErB,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,IAAY,EAAE,SAA8B;QAC3E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAE9B,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;YAC3C,8CAA8C;YAC9C,0CAA0C;YAC1C,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,wBAAwB,CAC9B,IAAY,EACZ,SAA8B;QAE9B,MAAM,WAAW,GAAiD,EAAE,CAAC;QAErE,8BAA8B;QAC9B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,SAAS,IAAI,IAAI,CAAC;YAClB,SAAS,EAAE,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1D,gDAAgD;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,IAAI,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;gBACzB,WAAW,CAAC,IAAI,CAAC;oBACf,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBACnB,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAEpE,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CACxB,eAAqB,EACrB,WAAiB,EACjB,IAAY,CAAC,EACb,WAAmB,EAAE;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAE1B,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAChD,eAAe,EACf,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,MAAM;YAEzB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CACpC,OAAa,EACb,IAAe,EACf,QAAgB,EAChB,aAA0B;QAE1B,iDAAiD;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE/D,wDAAwD;QACxD,IAAI,MAAM,CAAC,KAAK,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7D,6CAA6C;YAC7C,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,wBAAwB,CAC5B,OAAa,EACb,WAAiB,EACjB,WAAmB,EAAE;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QAChH,CAAC;QAED,2EAA2E;QAC3E,oEAAoE;QACpE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAAY,EACZ,IAAU;QAEV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,sDAAsD;QACtD,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;QAEjE,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAgB,CAAC;QACnD,KAAK,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,cAAc,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,CAAC;YACrC,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAElD,uEAAuE;YACvE,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACnD,IAAI,SAAS,EAAE,CAAC;oBACd,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAoB;YAClC,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,IAAI;YACR,WAAW;YACX,kBAAkB;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAElC,uBAAuB;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAC5D,EAAE,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAC5C;YACD,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;YAC9D,uBAAuB,EAAE,IAAI,GAAG,EAAE;SACnC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,4BAA4B,CAAC,eAAqB;QACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YAE5E,gDAAgD;YAChD,MAAM,OAAO,GAAG,GAAG,GAAG,SAAS,CAAC,WAAW,GAAG,GAAG,GAAG,UAAU,CAAC;YAC/D,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,SAAS,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,eAAe;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAC5D,MAAM,gBAAgB,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAEhE,IAAI,gBAAgB,GAAG,EAAE,EAAE,CAAC;gBAC1B,cAAc;gBACd,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;gBAErC,8BAA8B;gBAC9B,IAAI,SAAS,CAAC,QAAQ,GAAG,IAAI,IAAI,SAAS,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;aAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,QAAQ;QAQN,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,aAAa,IAAI,SAAS,CAAC,QAAQ,CAAC;YACpC,gBAAgB,IAAI,SAAS,CAAC,WAAW,CAAC;YAC1C,IAAI,SAAS,CAAC,QAAQ,GAAG,GAAG;gBAAE,WAAW,EAAE,CAAC;QAC9C,CAAC;QAED,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YACrC,gBAAgB,EAAE,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;YACpC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YACtC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpF,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3F,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS;QACP,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClE,GAAG,CAAC;gBACJ,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;aACnC,CAAC,CAAC;YACH,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAG,6BAA6B;YAC1E,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,CAAC,IAAS;QACZ,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAExB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,SAAS,GAAc;gBAC3B,GAAG,CAAC;gBACJ,SAAS,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;aACzC,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YACrC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC;IAC1D,CAAC;IAED,4DAA4D;IAEpD,sBAAsB,CAAC,SAAoB;QACjD,MAAM,KAAK,GAAqB;YAC9B,SAAS;YACT,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,eAAe,EAAE,EAAE;YACnB,iBAAiB,EAAE,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,qBAAqB;QAC3B,IAAI,OAAO,GAAqB,IAAI,CAAC;QACrC,IAAI,YAAY,GAAG,QAAQ,CAAC;QAE5B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;YAC1F,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;gBACzB,YAAY,GAAG,KAAK,CAAC;gBACrB,OAAO,GAAG,SAAS,CAAC;YACtB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,IAAY;QACtC,8DAA8D;QAC9D,wDAAwD;QACxD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,IAAY;QAKhC,MAAM,SAAS,GAA6C,EAAE,CAAC;QAC/D,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;YAEhD,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,SAAS,IAAI,IAAI,CAAC;QACpB,CAAC;QAED,OAAO;YACL,SAAS;YACT,SAAS;YACT,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACjE,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA8B;IACjE,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"attractor-model.js","sourceRoot":"","sources":["../../../src/core/attractor-model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA0E1D;;GAEG;AACH,MAAM,aAAa;IACT,KAAK,GAAQ,EAAE,CAAC;IAExB,OAAO,CAAC,IAAO;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAErD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAG,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,GAAG,CAAC,SAA+B;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,SAA+B,EAAE,OAAU;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC5B,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,MAAM;YAC5D,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YAC5F,KAAK,GAAG,WAAW,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,KAAa;QAC9B,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAC5B,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5E,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9E,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;YACD,IAAI,QAAQ,KAAK,KAAK;gBAAE,MAAM;YAE9B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACtF,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,OAAO,cAAc;IACjB,KAAK,CAAe;IACpB,aAAa,CAAS;IACtB,eAAe,CAAS;IACxB,SAAS,CAAS;IAClB,eAAe,CAAS;IAEhC,uBAAuB;IACf,eAAe,CAAS;IACxB,cAAc,CAAS;IAE/B,oBAAoB;IACZ,UAAU,GAAyB,IAAI,GAAG,EAAE,CAAC;IAErD,qBAAqB;IACb,MAAM,GAAgC,IAAI,GAAG,EAAE,CAAC;IAExD,gBAAgB;IACR,YAAY,GAAmB,EAAE,CAAC;IAClC,WAAW,GAAsB,EAAE,CAAC;IAE5C,6BAA6B;IACrB,iBAAiB,GAAgB,IAAI,CAAC;IAE9C,4BAA4B;IACpB,cAAc,GAA4B,IAAI,GAAG,EAAE,CAAC;IAE5D,YAAY,OAA8B;QACxC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,GAAG,CAAC;QAClD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,eAAe,CACb,EAAQ,EACR,IAAY,EACZ,WAAmB,EACnB,SAAuB,EACvB,UAA6H,EAAE;QAE/H,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/C,mCAAmC;YACnC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,SAAS,GAAc;YAC3B,EAAE;YACF,IAAI;YACJ,WAAW;YACX,SAAS;YACT,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe;YAClD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,GAAG;YACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;YAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE;YAC1C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAEvC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,EAAQ;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,EAAQ,EAAE,OAA2B;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAEvC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,kBAAkB,CAAC,cAA4B;QAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAgB,CAAC;QAE3C,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YAEzE,gEAAgE;YAChE,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,CAAC;YAChC,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;YAElF,4BAA4B;YAC5B,MAAM,kBAAkB,GAAG,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnD,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,kBAAkB,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,cAA4B;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAE3D,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,QAAQ,GAAqB,IAAI,CAAC;QAEtC,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;YACzC,IAAI,SAAS,GAAG,YAAY,EAAE,CAAC;gBAC7B,YAAY,GAAG,SAAS,CAAC;gBACzB,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gCAAgC,CACpC,eAAqB,EACrB,YAAoB;QAEpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QAE/B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAgB,CAAC;QAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAErE,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,4CAA4C;YAC5C,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YAEhF,yEAAyE;YACzE,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAEzE,KAAK,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,iBAAiB,EAAE,CAAC;gBAC1D,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC/D,+CAA+C;gBAC/C,cAAc,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC;YAChD,CAAC;YAED,4BAA4B;YAC5B,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAE3C,uBAAuB;YACvB,MAAM,WAAW,GAAG,cAAc,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,cAAc,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YAC9E,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,0BAA0B;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC;gBACvC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,mBAAmB,CACvB,eAAqB,EACrB,WAAiB,EACjB,WAAmB,EAAE;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE5E,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAE/B,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,eAAe;YACnC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YACtC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACnD,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,WAAW,CACf,OAAa,EACb,IAAe,EACf,WAAmB,EAAE;QAErB,oBAAoB;QACpB,MAAM,MAAM,GAAgB;YAC1B,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,QAAQ;YACnB,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;YAClB,WAAW,EAAE,EAAE;SAChB,CAAC;QAEF,iBAAiB;QACjB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS;YAAE,OAAO,MAAM,CAAC;QAE9B,wBAAwB;QACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAEtD,8BAA8B;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE5E,2BAA2B;QAC3B,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YACxB,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;YACrB,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;YAC3B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,uCAAuC;QACvC,MAAM,OAAO,GAAG,IAAI,aAAa,EAAa,CAAC;QAC/C,OAAO,CAAC,OAAO,CAAC;YACd,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,IAAI;YACZ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM;SACjC,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAQ,CAAC;QAElC,sBAAsB;QACtB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAExB,gDAAgD;QAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAc,CAAC;QAEvC,2CAA2C;QAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE5C,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgB,CAAC;QACzC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEzB,eAAe;QACf,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACxE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAG,CAAC;YACnC,MAAM,CAAC,aAAa,EAAE,CAAC;YAEvB,4BAA4B;YAC5B,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAE,SAAS;YAExC,6BAA6B;YAC7B,IAAI,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;gBAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YACxD,CAAC;YAED,2CAA2C;YAC3C,MAAM,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACtE,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;gBACrB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;gBACpB,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACzD,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC/E,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC3E,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,oBAAoB;YACpB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE1B,wCAAwC;YACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAI,KAAK,IAAI,QAAQ;gBAAE,SAAS;YAEhC,mBAAmB;YACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAElE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAE9C,yBAAyB;gBACzB,IAAI,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAClE,IAAI,CAAC,YAAY;wBAAE,SAAS;oBAC5B,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;gBAC/D,CAAC;gBAED,mDAAmD;gBACnD,qDAAqD;gBACrD,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBAEpC,mEAAmE;gBACnE,MAAM,aAAa,GAAG,CAAC,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7E,MAAM,cAAc,GAAG,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC;gBAEzE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAAC,CAAC;gBAE/D,8BAA8B;gBAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC;gBAE5C,+BAA+B;gBAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;gBAC5D,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;oBAC3B,mBAAmB;oBACnB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;oBACjE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBAE1C,sBAAsB;oBACtB,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrE,MAAM,CAAC,GAAG,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;oBAEhD,kBAAkB;oBAClB,OAAO,CAAC,OAAO,CAAC;wBACd,EAAE,EAAE,OAAO,CAAC,QAAQ;wBACpB,MAAM,EAAE,OAAO,CAAC,EAAE;wBAClB,CAAC,EAAE,UAAU;wBACb,CAAC;wBACD,CAAC;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACK,kBAAkB,CAAC,SAAuB,EAAE,aAA2B;QAC7E,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC9D,8EAA8E;QAC9E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAAY,EAAE,QAAyB;QAC7D,MAAM,IAAI,GAAW,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,OAAO,GAAG,MAAM,CAAC;QAErB,OAAO,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,IAAY,EAAE,SAA8B;QAC3E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QAE9B,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;YAC3C,8CAA8C;YAC9C,0CAA0C;YAC1C,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,wBAAwB,CAC9B,IAAY,EACZ,SAA8B;QAE9B,MAAM,WAAW,GAAiD,EAAE,CAAC;QAErE,8BAA8B;QAC9B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,SAAS,IAAI,IAAI,CAAC;YAClB,SAAS,EAAE,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1D,gDAAgD;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,IAAI,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;gBACzB,WAAW,CAAC,IAAI,CAAC;oBACf,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;oBACnB,gBAAgB,EAAE,IAAI;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAEpE,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CACxB,eAAqB,EACrB,WAAiB,EACjB,IAAY,CAAC,EACb,WAAmB,EAAE;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAE1B,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAChD,eAAe,EACf,SAAS,EACT,QAAQ,EACR,SAAS,CACV,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,MAAM;YAEzB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,wBAAwB,CACpC,OAAa,EACb,IAAe,EACf,QAAgB,EAChB,aAA0B;QAE1B,4DAA4D;QAC5D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,MAAM,MAAM,GAAgB;YAC1B,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ;YAC3C,aAAa,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE;SACtD,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;eAClD,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC;QACtD,IAAI,CAAC,cAAc;YAAE,OAAO,MAAM,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,aAAa,EAAa,CAAC;QAC/C,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM,EAAE,CAAC,CAAC;QAElG,MAAM,SAAS,GAAG,IAAI,GAAG,EAAQ,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAc,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE5C,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACxE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAG,CAAC;YACnC,MAAM,CAAC,aAAa,EAAE,CAAC;YAEvB,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAE,SAAS;YAExC,IAAI,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;gBAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACtE,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;gBACrB,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACjE,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7C,8CAA8C;gBAC9C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;oBACrC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;oBACpB,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;oBAC7B,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC;oBAC5B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAC/E,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAC3E,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACpE,IAAI,KAAK,IAAI,QAAQ;gBAAE,SAAS;YAEhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAE9C,IAAI,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAClE,IAAI,CAAC,YAAY;wBAAE,SAAS;oBAC5B,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;gBAC/D,CAAC;gBAED,IAAI,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBAClC,MAAM,aAAa,GAAG,CAAC,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7E,MAAM,cAAc,GAAG,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC/E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC;gBACzE,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAAC,CAAC;gBAErD,qDAAqD;gBACrD,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACpD,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC/B,QAAQ,IAAI,GAAG,CAAC;gBAClB,CAAC;gBAED,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC;gBACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;gBAC5D,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;oBAC3B,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAC1C,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACjC,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBACrE,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5H,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,wBAAwB,CAC5B,OAAa,EACb,WAAiB,EACjB,WAAmB,EAAE;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QAChH,CAAC;QAED,2EAA2E;QAC3E,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QACxD,MAAM,WAAW,GAAuC,EAAE,CAAC;QAE3D,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,CAAC,CAAC;oBAAE,SAAS;gBACjB,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;QAED,uEAAuE;QACvE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAgB,CAAC,CAAC,gCAAgC;QAC/E,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;QAE5D,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,KAAK,GAAiC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACnF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAE3C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;gBAC/B,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,aAAa;oBAAE,SAAS;gBAElD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAClE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;wBAAE,SAAS;oBACxC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC1B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC7C,8BAA8B;oBAC9B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC9F,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBACxC,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,MAAM,MAAM,GAAgB;YAC1B,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ;YAC3C,aAAa,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE;SACtD,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,IAAI,aAAa,EAAa,CAAC;QAC/C,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,GAAG,MAAM,EAAE,CAAC,CAAC;QAElG,MAAM,SAAS,GAAG,IAAI,GAAG,EAAQ,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgB,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAc,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE5C,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACxE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAG,CAAC;YACnC,MAAM,CAAC,aAAa,EAAE,CAAC;YAEvB,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAAE,SAAS;YAExC,+DAA+D;YAC/D,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBAClC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC/D,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAE,CAAC;gBACpD,qEAAqE;gBACrE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;gBACpB,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzD,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;gBAC7B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC/E,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC3E,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,4CAA4C;YAC5C,IAAI,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;gBAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3E,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;gBACrB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;gBACpB,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACzD,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC/E,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC3E,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACpE,IAAI,KAAK,IAAI,QAAQ;gBAAE,SAAS;YAEhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAE9C,IAAI,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAClE,IAAI,CAAC,YAAY;wBAAE,SAAS;oBAC5B,iBAAiB,GAAG,YAAY,CAAC,SAAS,CAAC;oBAC3C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;gBAC/D,CAAC;gBAED,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBACpC,MAAM,aAAa,GAAG,CAAC,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;gBAClF,MAAM,cAAc,GAAG,CAAC,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;gBACpF,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC;gBACzE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAAC,CAAC;gBAE/D,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC;gBAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;gBAC5D,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;oBAC3B,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;oBACjE,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;oBAC1E,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5H,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAAY,EACZ,IAAU;QAEV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,sDAAsD;QACtD,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;QAEjE,+BAA+B;QAC/B,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAgB,CAAC;QACnD,KAAK,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,cAAc,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,CAAC;YACrC,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAElD,uEAAuE;YACvE,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACnD,IAAI,SAAS,EAAE,CAAC;oBACd,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAoB;YAClC,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,IAAI;YACR,WAAW;YACX,kBAAkB;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAElC,uBAAuB;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAC5D,EAAE,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAC5C;YACD,iBAAiB,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE;YAC9D,uBAAuB,EAAE,IAAI,GAAG,EAAE;SACnC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,4BAA4B,CAAC,eAAqB;QACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YAE5E,gDAAgD;YAChD,MAAM,OAAO,GAAG,GAAG,GAAG,SAAS,CAAC,WAAW,GAAG,GAAG,GAAG,UAAU,CAAC;YAC/D,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,SAAS,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,eAAe;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;YAC5D,MAAM,gBAAgB,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAEhE,IAAI,gBAAgB,GAAG,EAAE,EAAE,CAAC;gBAC1B,cAAc;gBACd,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC;gBAErC,8BAA8B;gBAC9B,IAAI,SAAS,CAAC,QAAQ,GAAG,IAAI,IAAI,SAAS,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;aAC7B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,QAAQ;QAQN,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,aAAa,IAAI,SAAS,CAAC,QAAQ,CAAC;YACpC,gBAAgB,IAAI,SAAS,CAAC,WAAW,CAAC;YAC1C,IAAI,SAAS,CAAC,QAAQ,GAAG,GAAG;gBAAE,WAAW,EAAE,CAAC;QAC9C,CAAC;QAED,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YACrC,gBAAgB,EAAE,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;YACpC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YACtC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpF,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAC3F,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS;QACP,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClE,GAAG,CAAC;gBACJ,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;aACnC,CAAC,CAAC;YACH,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAG,6BAA6B;YAC1E,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,CAAC,IAAS;QACZ,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAExB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,SAAS,GAAc;gBAC3B,GAAG,CAAC;gBACJ,SAAS,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;aACzC,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YACrC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC;IAC1D,CAAC;IAED,4DAA4D;IAEpD,sBAAsB,CAAC,SAAoB;QACjD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgB,CAAC;QACzC,MAAM,eAAe,GAAW,EAAE,CAAC;QACnC,MAAM,iBAAiB,GAAsB,EAAE,CAAC;QAEhD,qEAAqE;QACrE,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;YAClE,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC;YAClD,IAAI,SAAS,GAAG,IAAI,EAAE,CAAC;gBACrB,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAClC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,UAAU,CAAC,kBAAkB,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAClE,IAAI,SAAS,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;oBACjC,iBAAiB,CAAC,IAAI,CAAC;wBACrB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;wBACtC,WAAW,EAAE,SAAS;wBACtB,cAAc,EAAE,CAAC;wBACjB,WAAW,EAAE,EAAE;qBAChB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAqB;YAC9B,SAAS;YACT,QAAQ;YACR,eAAe;YACf,iBAAiB;SAClB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAEO,qBAAqB;QAC3B,IAAI,OAAO,GAAqB,IAAI,CAAC;QACrC,IAAI,YAAY,GAAG,QAAQ,CAAC;QAE5B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;YAC1F,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;gBACzB,YAAY,GAAG,KAAK,CAAC;gBACrB,OAAO,GAAG,SAAS,CAAC;YACtB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,IAAY;QACtC,8DAA8D;QAC9D,wDAAwD;QACxD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,IAAY;QAKhC,MAAM,SAAS,GAA6C,EAAE,CAAC;QAC/D,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;YAEhD,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,SAAS,IAAI,IAAI,CAAC;QACpB,CAAC;QAED,OAAO;YACL,SAAS;YACT,SAAS;YACT,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACjE,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA8B;IACjE,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hnsw-index.d.ts","sourceRoot":"","sources":["../../../src/core/hnsw-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,QAAQ,EAER,aAAa,EACb,YAAY,EAEb,MAAM,mBAAmB,CAAC;AAc3B;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM;IAc5C;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI;IAsF/C;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAoBnE;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO;IAiCzB;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO;IAItB;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS;IAIvC;;OAEG;IACH,SAAS,IAAI,IAAI,EAAE;IAInB;;OAEG;IACH,SAAS,IAAI,aAAa;IAkC1B;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS;IA8ClD;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,YAAY;IA4BpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAiEnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,QAAQ,EAAE,MAAM,CAAC;KAClB;CAgCF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAEvE"}
1
+ {"version":3,"file":"hnsw-index.d.ts","sourceRoot":"","sources":["../../../src/core/hnsw-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,QAAQ,EAER,aAAa,EACb,YAAY,EAEb,MAAM,mBAAmB,CAAC;AAc3B;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,GAAE,OAAO,CAAC,UAAU,CAAM;IAc5C;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI;IAsF/C;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAoBnE;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO;IAiCzB;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO;IAItB;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS;IAIvC;;OAEG;IACH,SAAS,IAAI,IAAI,EAAE;IAInB;;OAEG;IACH,SAAS,IAAI,aAAa;IAkC1B;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS;IA8ClD;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,YAAY;IA4BpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAuEnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,QAAQ,IAAI;QACV,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5C,QAAQ,EAAE,MAAM,CAAC;KAClB;CAgCF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,SAAS,CAEvE"}
@@ -314,12 +314,22 @@ export class HNSWIndex {
314
314
  candidates.push({ id: entryId, score: entrySim, distance: 1 - entrySim });
315
315
  results.push({ id: entryId, score: entrySim, distance: 1 - entrySim });
316
316
  visited.add(entryId);
317
+ // Helper: insert into sorted array (descending by score) using binary search
318
+ const sortedInsert = (arr, item) => {
319
+ let lo = 0, hi = arr.length;
320
+ while (lo < hi) {
321
+ const mid = (lo + hi) >>> 1;
322
+ if (arr[mid].score > item.score)
323
+ lo = mid + 1;
324
+ else
325
+ hi = mid;
326
+ }
327
+ arr.splice(lo, 0, item);
328
+ };
317
329
  while (candidates.length > 0) {
318
- // Get candidate with highest similarity
319
- candidates.sort((a, b) => b.score - a.score);
330
+ // Get candidate with highest similarity (first element, already sorted)
320
331
  const current = candidates.shift();
321
332
  // Check if worst result is better than current candidate
322
- results.sort((a, b) => b.score - a.score);
323
333
  if (results.length >= ef && current.score < results[results.length - 1].score) {
324
334
  break;
325
335
  }
@@ -339,20 +349,17 @@ export class HNSWIndex {
339
349
  continue;
340
350
  const sim = this.similarity(query, neighbor.embedding);
341
351
  const result = { id: neighborId, score: sim, distance: 1 - sim };
342
- // Add to candidates if better than worst result or results not full
352
+ // Add to candidates/results if better than worst result or not full
343
353
  if (results.length < ef || sim > results[results.length - 1].score) {
344
- candidates.push(result);
345
- results.push(result);
354
+ sortedInsert(candidates, result);
355
+ sortedInsert(results, result);
346
356
  // Keep only ef best results
347
357
  if (results.length > ef) {
348
- results.sort((a, b) => b.score - a.score);
349
358
  results.pop();
350
359
  }
351
360
  }
352
361
  }
353
362
  }
354
- // Return sorted results
355
- results.sort((a, b) => b.score - a.score);
356
363
  return results;
357
364
  }
358
365
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"hnsw-index.js","sourceRoot":"","sources":["../../../src/core/hnsw-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hnsw-index.js","sourceRoot":"","sources":["../../../src/core/hnsw-index.ts"],"names":[],"mappings":"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"}