ds-mcp-flowise 1.1.5 → 1.1.7

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.
package/README.md CHANGED
@@ -231,6 +231,12 @@ The key is to include phrases like:
231
231
  - "with the flowise MCP"
232
232
  - "use flowise search"
233
233
 
234
+ **Pro tip for proper edge connections:** Ask Claude to look at a template first to understand the edge format:
235
+
236
+ > "Use flowise tools to get a template for a simple chatbot, then use that as a reference to build me a chatflow with Ollama"
237
+
238
+ Templates contain properly formatted edges with `sourceHandle`, `targetHandle`, and `type: "buttonedge"` that Flowise requires.
239
+
234
240
  ## What's Included
235
241
 
236
242
  - **311 Flowise nodes** with full schemas
package/dist/index.js CHANGED
@@ -78,6 +78,110 @@ function queryOne(sql, params = []) {
78
78
  const results = query(sql, params);
79
79
  return results.length > 0 ? results[0] : null;
80
80
  }
81
+ // Load nodes data for edge generation
82
+ let nodesData = [];
83
+ function loadNodesData() {
84
+ const possiblePaths = [
85
+ path.join(__dirname, '..', 'data', 'nodes.json'),
86
+ path.join(__dirname, '..', '..', 'data', 'nodes.json'),
87
+ path.join(process.cwd(), 'data', 'nodes.json'),
88
+ ];
89
+ for (const p of possiblePaths) {
90
+ if (fs.existsSync(p)) {
91
+ nodesData = JSON.parse(fs.readFileSync(p, 'utf-8'));
92
+ return;
93
+ }
94
+ }
95
+ }
96
+ // Get node info from loaded data
97
+ function getNodeInfo(nodeName) {
98
+ return nodesData.find(n => n.name === nodeName || n.name.toLowerCase() === nodeName.toLowerCase());
99
+ }
100
+ // Create a proper Flowise edge with all required fields
101
+ function createFlowiseEdge(sourceNodeId, sourceNodeType, targetNodeId, targetNodeType, targetInputName) {
102
+ const sourceNode = getNodeInfo(sourceNodeType);
103
+ const targetNode = getNodeInfo(targetNodeType);
104
+ if (!sourceNode || !targetNode) {
105
+ // Fallback to simple edge if node info not found
106
+ return {
107
+ source: sourceNodeId,
108
+ target: targetNodeId,
109
+ type: 'buttonedge',
110
+ id: `${sourceNodeId}-${targetNodeId}`,
111
+ data: { label: '' }
112
+ };
113
+ }
114
+ // Get source output info (baseClasses)
115
+ const sourceBaseClasses = sourceNode.baseClasses || [sourceNode.name];
116
+ const sourceHandle = `${sourceNodeId}-output-${sourceNodeType}-${sourceBaseClasses.join('|')}`;
117
+ // Get target input info
118
+ const targetInput = targetNode.inputs?.find((i) => i.name === targetInputName);
119
+ const targetType = targetInput?.type || sourceBaseClasses[0];
120
+ const targetHandle = `${targetNodeId}-input-${targetInputName}-${targetType}`;
121
+ const edgeId = `${sourceHandle}-${targetHandle}`;
122
+ return {
123
+ source: sourceNodeId,
124
+ sourceHandle,
125
+ target: targetNodeId,
126
+ targetHandle,
127
+ type: 'buttonedge',
128
+ id: edgeId,
129
+ data: { label: '' }
130
+ };
131
+ }
132
+ // Create a proper Flowise node with all required fields
133
+ function createFlowiseNode(id, nodeType, position, inputValues = {}) {
134
+ const nodeInfo = getNodeInfo(nodeType);
135
+ if (!nodeInfo) {
136
+ // Fallback to basic node
137
+ return {
138
+ id,
139
+ position,
140
+ type: 'customNode',
141
+ data: {
142
+ id,
143
+ label: nodeType,
144
+ name: nodeType,
145
+ type: nodeType,
146
+ inputs: inputValues,
147
+ outputs: {}
148
+ }
149
+ };
150
+ }
151
+ // Build the data object with proper structure
152
+ const data = {
153
+ id,
154
+ label: nodeInfo.label || nodeType,
155
+ name: nodeInfo.name,
156
+ type: nodeInfo.name,
157
+ baseClasses: nodeInfo.baseClasses || [],
158
+ category: nodeInfo.category || '',
159
+ description: nodeInfo.description || '',
160
+ inputs: {},
161
+ outputs: {},
162
+ inputParams: nodeInfo.inputs || [],
163
+ inputAnchors: [],
164
+ outputAnchors: []
165
+ };
166
+ // Set input values
167
+ for (const input of (nodeInfo.inputs || [])) {
168
+ if (inputValues[input.name] !== undefined) {
169
+ data.inputs[input.name] = inputValues[input.name];
170
+ }
171
+ else if (input.default !== undefined) {
172
+ data.inputs[input.name] = input.default;
173
+ }
174
+ else {
175
+ data.inputs[input.name] = '';
176
+ }
177
+ }
178
+ return {
179
+ id,
180
+ position,
181
+ type: 'customNode',
182
+ data
183
+ };
184
+ }
81
185
  // === FLOWISE API HELPERS ===
82
186
  async function flowiseApiRequest(endpoint, method = 'GET', body) {
83
187
  if (!FLOWISE_API_URL) {
@@ -553,7 +657,8 @@ function validateFlow(nodes, edges) {
553
657
  }
554
658
  function generateFlowSkeleton(useCase, chatModel) {
555
659
  const model = chatModel || 'chatOpenAI';
556
- const skeletons = {
660
+ // Define skeleton blueprints with connection info (sourceId, sourceType, targetId, targetType, targetInputName)
661
+ const blueprints = {
557
662
  simple_chatbot: {
558
663
  description: 'A basic chatbot with memory',
559
664
  nodes: [
@@ -561,9 +666,9 @@ function generateFlowSkeleton(useCase, chatModel) {
561
666
  { id: 'memory_0', type: 'bufferMemory', position: { x: 100, y: 400 } },
562
667
  { id: 'chain_0', type: 'conversationChain', position: { x: 400, y: 300 } },
563
668
  ],
564
- edges: [
565
- { source: 'chatModel_0', target: 'chain_0' },
566
- { source: 'memory_0', target: 'chain_0' },
669
+ connections: [
670
+ { sourceId: 'chatModel_0', sourceType: model, targetId: 'chain_0', targetType: 'conversationChain', targetInput: 'model' },
671
+ { sourceId: 'memory_0', sourceType: 'bufferMemory', targetId: 'chain_0', targetType: 'conversationChain', targetInput: 'memory' },
567
672
  ],
568
673
  },
569
674
  rag_chatbot: {
@@ -576,12 +681,12 @@ function generateFlowSkeleton(useCase, chatModel) {
576
681
  { id: 'memory_0', type: 'bufferMemory', position: { x: 400, y: 500 } },
577
682
  { id: 'chain_0', type: 'conversationalRetrievalQAChain', position: { x: 1000, y: 300 } },
578
683
  ],
579
- edges: [
580
- { source: 'chatModel_0', target: 'chain_0' },
581
- { source: 'embeddings_0', target: 'vectorStore_0' },
582
- { source: 'vectorStore_0', target: 'retriever_0' },
583
- { source: 'retriever_0', target: 'chain_0' },
584
- { source: 'memory_0', target: 'chain_0' },
684
+ connections: [
685
+ { sourceId: 'chatModel_0', sourceType: model, targetId: 'chain_0', targetType: 'conversationalRetrievalQAChain', targetInput: 'model' },
686
+ { sourceId: 'embeddings_0', sourceType: 'openAIEmbeddings', targetId: 'vectorStore_0', targetType: 'pinecone', targetInput: 'embeddings' },
687
+ { sourceId: 'vectorStore_0', sourceType: 'pinecone', targetId: 'retriever_0', targetType: 'vectorStoreRetriever', targetInput: 'vectorStore' },
688
+ { sourceId: 'retriever_0', sourceType: 'vectorStoreRetriever', targetId: 'chain_0', targetType: 'conversationalRetrievalQAChain', targetInput: 'vectorStoreRetriever' },
689
+ { sourceId: 'memory_0', sourceType: 'bufferMemory', targetId: 'chain_0', targetType: 'conversationalRetrievalQAChain', targetInput: 'memory' },
585
690
  ],
586
691
  },
587
692
  conversational_agent: {
@@ -590,14 +695,14 @@ function generateFlowSkeleton(useCase, chatModel) {
590
695
  { id: 'chatModel_0', type: model, position: { x: 100, y: 200 } },
591
696
  { id: 'memory_0', type: 'bufferMemory', position: { x: 100, y: 400 } },
592
697
  { id: 'tool_0', type: 'calculator', position: { x: 400, y: 100 } },
593
- { id: 'tool_1', type: 'searchApi', position: { x: 400, y: 300 } },
698
+ { id: 'tool_1', type: 'serpAPI', position: { x: 400, y: 300 } },
594
699
  { id: 'agent_0', type: 'conversationalAgent', position: { x: 700, y: 200 } },
595
700
  ],
596
- edges: [
597
- { source: 'chatModel_0', target: 'agent_0' },
598
- { source: 'memory_0', target: 'agent_0' },
599
- { source: 'tool_0', target: 'agent_0' },
600
- { source: 'tool_1', target: 'agent_0' },
701
+ connections: [
702
+ { sourceId: 'chatModel_0', sourceType: model, targetId: 'agent_0', targetType: 'conversationalAgent', targetInput: 'model' },
703
+ { sourceId: 'memory_0', sourceType: 'bufferMemory', targetId: 'agent_0', targetType: 'conversationalAgent', targetInput: 'memory' },
704
+ { sourceId: 'tool_0', sourceType: 'calculator', targetId: 'agent_0', targetType: 'conversationalAgent', targetInput: 'tools' },
705
+ { sourceId: 'tool_1', sourceType: 'serpAPI', targetId: 'agent_0', targetType: 'conversationalAgent', targetInput: 'tools' },
601
706
  ],
602
707
  },
603
708
  document_qa: {
@@ -610,12 +715,12 @@ function generateFlowSkeleton(useCase, chatModel) {
610
715
  { id: 'vectorStore_0', type: 'memoryVectorStore', position: { x: 400, y: 300 } },
611
716
  { id: 'chain_0', type: 'retrievalQAChain', position: { x: 700, y: 300 } },
612
717
  ],
613
- edges: [
614
- { source: 'chatModel_0', target: 'chain_0' },
615
- { source: 'embeddings_0', target: 'vectorStore_0' },
616
- { source: 'docLoader_0', target: 'textSplitter_0' },
617
- { source: 'textSplitter_0', target: 'vectorStore_0' },
618
- { source: 'vectorStore_0', target: 'chain_0' },
718
+ connections: [
719
+ { sourceId: 'chatModel_0', sourceType: model, targetId: 'chain_0', targetType: 'retrievalQAChain', targetInput: 'model' },
720
+ { sourceId: 'embeddings_0', sourceType: 'openAIEmbeddings', targetId: 'vectorStore_0', targetType: 'memoryVectorStore', targetInput: 'embeddings' },
721
+ { sourceId: 'docLoader_0', sourceType: 'pdfFile', targetId: 'textSplitter_0', targetType: 'recursiveCharacterTextSplitter', targetInput: 'document' },
722
+ { sourceId: 'textSplitter_0', sourceType: 'recursiveCharacterTextSplitter', targetId: 'vectorStore_0', targetType: 'memoryVectorStore', targetInput: 'document' },
723
+ { sourceId: 'vectorStore_0', sourceType: 'memoryVectorStore', targetId: 'chain_0', targetType: 'retrievalQAChain', targetInput: 'vectorStoreRetriever' },
619
724
  ],
620
725
  },
621
726
  api_agent: {
@@ -626,10 +731,10 @@ function generateFlowSkeleton(useCase, chatModel) {
626
731
  { id: 'tool_1', type: 'requestsGet', position: { x: 400, y: 300 } },
627
732
  { id: 'agent_0', type: 'openAIFunctionAgent', position: { x: 700, y: 200 } },
628
733
  ],
629
- edges: [
630
- { source: 'chatModel_0', target: 'agent_0' },
631
- { source: 'tool_0', target: 'agent_0' },
632
- { source: 'tool_1', target: 'agent_0' },
734
+ connections: [
735
+ { sourceId: 'chatModel_0', sourceType: model, targetId: 'agent_0', targetType: 'openAIFunctionAgent', targetInput: 'model' },
736
+ { sourceId: 'tool_0', sourceType: 'customTool', targetId: 'agent_0', targetType: 'openAIFunctionAgent', targetInput: 'tools' },
737
+ { sourceId: 'tool_1', sourceType: 'requestsGet', targetId: 'agent_0', targetType: 'openAIFunctionAgent', targetInput: 'tools' },
633
738
  ],
634
739
  },
635
740
  multi_agent: {
@@ -640,18 +745,26 @@ function generateFlowSkeleton(useCase, chatModel) {
640
745
  { id: 'worker_0', type: 'worker', position: { x: 700, y: 100 } },
641
746
  { id: 'worker_1', type: 'worker', position: { x: 700, y: 300 } },
642
747
  ],
643
- edges: [
644
- { source: 'chatModel_0', target: 'supervisor_0' },
645
- { source: 'supervisor_0', target: 'worker_0' },
646
- { source: 'supervisor_0', target: 'worker_1' },
748
+ connections: [
749
+ { sourceId: 'chatModel_0', sourceType: model, targetId: 'supervisor_0', targetType: 'supervisor', targetInput: 'model' },
750
+ { sourceId: 'supervisor_0', sourceType: 'supervisor', targetId: 'worker_0', targetType: 'worker', targetInput: 'supervisor' },
751
+ { sourceId: 'supervisor_0', sourceType: 'supervisor', targetId: 'worker_1', targetType: 'worker', targetInput: 'supervisor' },
647
752
  ],
648
753
  },
649
754
  };
650
- const skeleton = skeletons[useCase];
651
- if (!skeleton) {
652
- return JSON.stringify({ error: `Unknown use case: ${useCase}` });
755
+ const blueprint = blueprints[useCase];
756
+ if (!blueprint) {
757
+ return JSON.stringify({ error: `Unknown use case: ${useCase}. Available: ${Object.keys(blueprints).join(', ')}` });
653
758
  }
654
- return JSON.stringify(skeleton, null, 2);
759
+ // Generate proper Flowise nodes
760
+ const nodes = blueprint.nodes.map(n => createFlowiseNode(n.id, n.type, n.position, n.inputs || {}));
761
+ // Generate proper Flowise edges with full handle info
762
+ const edges = blueprint.connections.map(c => createFlowiseEdge(c.sourceId, c.sourceType, c.targetId, c.targetType, c.targetInput));
763
+ return JSON.stringify({
764
+ description: blueprint.description,
765
+ nodes,
766
+ edges,
767
+ }, null, 2);
655
768
  }
656
769
  // === FLOWISE API IMPLEMENTATIONS ===
657
770
  async function flowiseTestConnection() {
@@ -923,8 +1036,11 @@ async function main() {
923
1036
  const dbPath = findDatabasePath();
924
1037
  const dbBuffer = fs.readFileSync(dbPath);
925
1038
  db = new SQL.Database(dbBuffer);
1039
+ // Load nodes data for edge generation
1040
+ loadNodesData();
926
1041
  console.error('DS-MCP-FLOWISE server started');
927
1042
  console.error(`Database loaded from: ${dbPath}`);
1043
+ console.error(`Nodes data loaded: ${nodesData.length} nodes`);
928
1044
  if (FLOWISE_API_URL) {
929
1045
  console.error(`Flowise API configured: ${FLOWISE_API_URL}`);
930
1046
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,SAAuB,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,8BAA8B;AAC9B,SAAS,OAAO;IACd,MAAM,QAAQ,GAAG;QACf,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;KACzC,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxC,MAAM,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAChD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACnC,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;wBACjB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;oBACzC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED,OAAO,EAAE,CAAC;AAEV,4BAA4B;AAC5B,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;AAC1D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;AAE1D,qBAAqB;AACrB,SAAS,gBAAgB;IACvB,MAAM,aAAa,GAAG;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC;KAC/C,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;AAC5F,CAAC;AAED,2BAA2B;AAC3B,IAAI,EAAY,CAAC;AAEjB,wDAAwD;AACxD,SAAS,KAAK,CAAC,GAAW,EAAE,SAAgB,EAAE;IAC5C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,OAAO,GAAU,EAAE,CAAC;IAC1B,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,CAAC;IACZ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6BAA6B;AAC7B,SAAS,QAAQ,CAAC,GAAW,EAAE,SAAgB,EAAE;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED,8BAA8B;AAE9B,KAAK,UAAU,iBAAiB,CAC9B,QAAgB,EAChB,SAAiB,KAAK,EACtB,IAAU;IAEV,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,QAAQ,EAAE,CAAC;IAEtE,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,eAAe,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM;QACN,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,oBAAoB;AACpB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,EAAE;KACZ;CACF,CACF,CAAC;AAEF,2BAA2B;AAE3B,MAAM,KAAK,GAAG;IACZ,uBAAuB;IACvB;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,6DAA6D;QAC1E,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,+GAA+G;QAC5H,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oEAAoE;iBAClF;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6CAA6C;iBAC3D;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,sJAAsJ;QACnK,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qEAAqE;iBACnF;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4DAA4D;iBAC1E;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yCAAyC;iBACvD;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,oGAAoG;QACjH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC;oBACtD,WAAW,EAAE,yBAAyB;iBACvC;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yCAAyC;iBACvD;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,qGAAqG;QAClH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yEAAyE;iBACvF;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,6HAA6H;QAC1I,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kDAAkD;iBAChE;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;oBAC3B,WAAW,EAAE,oEAAoE;iBAClF;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,4FAA4F;QACzG,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,oDAAoD;oBACjE,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;qBACf;iBACF;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,8CAA8C;oBAC3D,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;SAC7B;KACF;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,uGAAuG;QACpH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,gBAAgB;wBAChB,aAAa;wBACb,sBAAsB;wBACtB,aAAa;wBACb,WAAW;wBACX,aAAa;qBACd;oBACD,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4DAA4D;iBAC1E;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;IAED,oBAAoB;IACpB;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,sHAAsH;QACnI,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,+EAA+E;QAC5F,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iBAAiB;iBAC/B;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;KACF;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,8GAA8G;QAC3H,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uBAAuB;iBACrC;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,uBAAuB;oBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1B;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,uBAAuB;oBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1B;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,gDAAgD;iBAC9D;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;SACrC;KACF;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sCAAsC;iBACpD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,+BAA+B;oBAC5C,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1B;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,+BAA+B;oBAC5C,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1B;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,yCAAyC;iBACvD;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;KACF;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2BAA2B;iBACzC;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;KACF;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,8GAA8G;QAC3H,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;KACF;CACF,CAAC;AAEF,+BAA+B;AAE/B,SAAS,cAAc;IACrB,MAAM,UAAU,GAAG,KAAK,CAAC;;;;GAIxB,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,SAAS,CAAC,QAAiB,EAAE,MAAe;IACnD,IAAI,GAAG,GAAG,4DAA4D,CAAC;IACvE,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,IAAI,QAAQ,EAAE,CAAC;QACb,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,UAAU,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,IAAI,MAAM,GAAG,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,GAAG,IAAI,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG,IAAI,2BAA2B,CAAC;IAEnC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,oCAAoC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC;;;;;GAKpB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,MAAM,GAAG;QACb,GAAG,IAAI;QACP,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;QACnD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;QAChE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YAC9B,IAAI,EAAE,CAAC,CAAC,UAAU;YAClB,KAAK,EAAE,CAAC,CAAC,WAAW;YACpB,IAAI,EAAE,CAAC,CAAC,UAAU;YAClB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7B,OAAO,EAAE,CAAC,CAAC,aAAa;YACxB,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;YACjD,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;SAC/C,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,WAAW,CAAC,WAAmB,EAAE,QAAgB,EAAE;IAC1D,MAAM,UAAU,GAAG,IAAI,WAAW,GAAG,CAAC;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC;;;;;GAKrB,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5D,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,aAAa,CAAC,IAAa,EAAE,MAAe;IACnD,IAAI,GAAG,GAAG,yDAAyD,CAAC;IACpE,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,IAAI,IAAI,EAAE,CAAC;QACT,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,UAAU,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,MAAM,GAAG,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,GAAG,IAAI,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG,IAAI,sBAAsB,CAAC;IAE9B,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAErC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QAC/C,GAAG,CAAC;QACJ,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;KACnD,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,wCAAwC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,aAAa,IAAI,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,GAAG,QAAQ;QACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;QAChE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QACjC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;KAClC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB,EAAE,YAAoB,QAAQ;IACzE,MAAM,IAAI,GAAG,QAAQ,CAAC,+CAA+C,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEnF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,QAAQ,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAa,CAAC;IAEtE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,wDAAwD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3F,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAEhF,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE;YAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAa,CAAC;YACvE,OAAO,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YAClB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,CAAC;QAEJ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,KAAK,CAAC;;;;KAIvB,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAC7C,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CACnC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YACjB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAErF,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAY,EAAE,KAAY;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,6BAA6B,CAAC,CAAC;YAC1D,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,oCAAoC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,cAAc,QAAQ,kBAAkB,CAAC,CAAC;QACxD,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,6CAA6C,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,6CAA6C,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;QAC1B,MAAM;QACN,QAAQ;KACT,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe,EAAE,SAAkB;IAC/D,MAAM,KAAK,GAAG,SAAS,IAAI,YAAY,CAAC;IAExC,MAAM,SAAS,GAAwB;QACrC,cAAc,EAAE;YACd,WAAW,EAAE,6BAA6B;YAC1C,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAChE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACtE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;aAC3E;YACD,KAAK,EAAE;gBACL,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;gBAC5C,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE;aAC1C;SACF;QACD,WAAW,EAAE;YACX,WAAW,EAAE,wCAAwC;YACrD,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAChE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAC9E,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACvE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACjF,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACtE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;aACzF;YACD,KAAK,EAAE;gBACL,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;gBAC5C,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE;gBACnD,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE;gBAClD,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;gBAC5C,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE;aAC1C;SACF;QACD,oBAAoB,EAAE;YACpB,WAAW,EAAE,6BAA6B;YAC1C,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAChE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACtE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAClE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACjE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;aAC7E;YACD,KAAK,EAAE;gBACL,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;gBAC5C,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE;gBACzC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;gBACvC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;aACxC;SACF;QACD,WAAW,EAAE;YACX,WAAW,EAAE,6BAA6B;YAC1C,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAChE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAC9E,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACpE,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAC9F,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAChF,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;aAC1E;YACD,KAAK,EAAE;gBACL,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;gBAC5C,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE;gBACnD,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE;gBACnD,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE;gBACrD,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE;aAC/C;SACF;QACD,SAAS,EAAE;YACT,WAAW,EAAE,0BAA0B;YACvC,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAChE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAClE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACnE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;aAC7E;YACD,KAAK,EAAE;gBACL,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE;gBAC5C,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;gBACvC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;aACxC;SACF;QACD,WAAW,EAAE;YACX,WAAW,EAAE,kCAAkC;YAC/C,KAAK,EAAE;gBACL,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAChE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBACxE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;gBAChE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;aACjE;YACD,KAAK,EAAE;gBACL,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;gBACjD,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE;gBAC9C,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE;aAC/C;SACF;KACF,CAAC;IAEF,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,qBAAqB,OAAO,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,sCAAsC;AAEtC,KAAK,UAAU,qBAAqB;IAClC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,8FAA8F;SACtG,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,eAAe;YACpB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACjE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,SAAS,EAAE,KAAK;YAChB,GAAG,EAAE,eAAe;YACpB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;SACrB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAExD,wCAAwC;IACxC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC;QAC1C,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;QACrB,WAAW,EAAE,EAAE,CAAC,WAAW;QAC3B,WAAW,EAAE,EAAE,CAAC,WAAW;KAC5B,CAAC,CAAC,CAAC;IAEJ,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,EAAU;IAC1C,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,IAAY,EACZ,KAAY,EACZ,KAAY,EACZ,WAAoB,KAAK;IAEzB,MAAM,QAAQ,GAAG;QACf,IAAI;QACJ,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC1C,QAAQ;KACT,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvE,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,OAAO,EAAE,IAAI;QACb,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,aAAa,IAAI,yBAAyB;QACnD,GAAG,EAAE,GAAG,eAAe,cAAc,MAAM,CAAC,EAAE,EAAE;KACjD,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACd,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,EAAU,EACV,IAAa,EACb,KAAa,EACb,KAAa,EACb,QAAkB;IAElB,MAAM,UAAU,GAAQ,EAAE,CAAC;IAE3B,IAAI,IAAI;QAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;IACjC,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACnB,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS;QAAE,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAE3D,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC9E,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,OAAO,EAAE,IAAI;QACb,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,gCAAgC;KAC1C,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACd,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,EAAU;IAC7C,MAAM,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,YAAY,EAAE,wBAAwB;KAChD,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACd,CAAC;AAED,2BAA2B;AAE3B,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,EAAE,KAAK;CACb,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,IAAI,MAAc,CAAC;QAEnB,QAAQ,IAAI,EAAE,CAAC;YACb,uBAAuB;YACvB,KAAK,iBAAiB;gBACpB,MAAM,GAAG,cAAc,EAAE,CAAC;gBAC1B,MAAM;YACR,KAAK,YAAY;gBACf,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,QAAkB,EAAE,IAAI,EAAE,MAAgB,CAAC,CAAC;gBACrE,MAAM;YACR,KAAK,iBAAiB;gBACpB,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,IAAc,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,cAAc;gBACjB,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,KAAe,EAAE,IAAI,EAAE,KAAe,CAAC,CAAC;gBACnE,MAAM;YACR,KAAK,gBAAgB;gBACnB,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE,IAAc,EAAE,IAAI,EAAE,MAAgB,CAAC,CAAC;gBACrE,MAAM;YACR,KAAK,cAAc;gBACjB,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,IAAc,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,uBAAuB;gBAC1B,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,SAAmB,EAAE,IAAI,EAAE,SAAmB,CAAC,CAAC;gBACnF,MAAM;YACR,KAAK,eAAe;gBAClB,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,KAAc,EAAE,IAAI,EAAE,KAAc,CAAC,CAAC;gBAClE,MAAM;YACR,KAAK,wBAAwB;gBAC3B,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAkB,EAAE,IAAI,EAAE,UAAoB,CAAC,CAAC;gBACpF,MAAM;YAER,oBAAoB;YACpB,KAAK,yBAAyB;gBAC5B,MAAM,GAAG,MAAM,qBAAqB,EAAE,CAAC;gBACvC,MAAM;YACR,KAAK,wBAAwB;gBAC3B,MAAM,GAAG,MAAM,oBAAoB,EAAE,CAAC;gBACtC,MAAM;YACR,KAAK,sBAAsB;gBACzB,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,EAAY,CAAC,CAAC;gBACtD,MAAM;YACR,KAAK,yBAAyB;gBAC5B,MAAM,GAAG,MAAM,qBAAqB,CAClC,IAAI,EAAE,IAAc,EACpB,IAAI,EAAE,KAAc,EACpB,IAAI,EAAE,KAAc,EACpB,IAAI,EAAE,QAAmB,CAC1B,CAAC;gBACF,MAAM;YACR,KAAK,yBAAyB;gBAC5B,MAAM,GAAG,MAAM,qBAAqB,CAClC,IAAI,EAAE,EAAY,EAClB,IAAI,EAAE,IAAc,EACpB,IAAI,EAAE,KAAc,EACpB,IAAI,EAAE,KAAc,EACpB,IAAI,EAAE,QAAmB,CAC1B,CAAC;gBACF,MAAM;YACR,KAAK,yBAAyB;gBAC5B,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,EAAY,CAAC,CAAC;gBACzD,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SAC1C,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3E,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,oBAAoB;AAEpB,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAChE,SAAS,EAAE;QACT;YACE,GAAG,EAAE,sBAAsB;YAC3B,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,qCAAqC;SACnD;QACD;YACE,GAAG,EAAE,iBAAiB;YACtB,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,gCAAgC;SAC9C;QACD;YACE,GAAG,EAAE,qBAAqB;YAC1B,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,2BAA2B;SACzC;KACF;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACpE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/B,IAAI,OAAe,CAAC;IAEpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,sBAAsB;YACzB,OAAO,GAAG,cAAc,EAAE,CAAC;YAC3B,MAAM;QACR,KAAK,iBAAiB;YACpB,OAAO,GAAG,SAAS,EAAE,CAAC;YACtB,MAAM;QACR,KAAK,qBAAqB;YACxB,OAAO,GAAG,aAAa,EAAE,CAAC;YAC1B,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,kBAAkB;AAElB,MAAM,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,EAAE;QACP;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,uCAAuC;YACpD,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,6BAA6B;oBAC1C,QAAQ,EAAE,IAAI;iBACf;aACF;SACF;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,yCAAyC;YACtD,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,0BAA0B;oBACvC,QAAQ,EAAE,IAAI;iBACf;aACF;SACF;KACF;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACjE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,0CAA0C,IAAI,EAAE,WAAW;;;;;;;qEAOR;qBAC1D;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC/B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,4CAA4C,IAAI,EAAE,WAAW;;;;;;;qEAOV;qBAC1D;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,uBAAuB;AAEvB,KAAK,UAAU,IAAI;IACjB,sBAAsB;IACtB,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACzC,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;IAEjD,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,eAAe,EAAE,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAC;IACrG,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ds-mcp-flowise",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "MCP server for building and managing Flowise chatflows and agentflows. Provides AI assistants with comprehensive knowledge of Flowise nodes, tools for workflow creation, and direct API integration to deploy chatflows.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -99,6 +99,134 @@ function queryOne(sql: string, params: any[] = []): any | null {
99
99
  return results.length > 0 ? results[0] : null;
100
100
  }
101
101
 
102
+ // Load nodes data for edge generation
103
+ let nodesData: any[] = [];
104
+
105
+ function loadNodesData() {
106
+ const possiblePaths = [
107
+ path.join(__dirname, '..', 'data', 'nodes.json'),
108
+ path.join(__dirname, '..', '..', 'data', 'nodes.json'),
109
+ path.join(process.cwd(), 'data', 'nodes.json'),
110
+ ];
111
+
112
+ for (const p of possiblePaths) {
113
+ if (fs.existsSync(p)) {
114
+ nodesData = JSON.parse(fs.readFileSync(p, 'utf-8'));
115
+ return;
116
+ }
117
+ }
118
+ }
119
+
120
+ // Get node info from loaded data
121
+ function getNodeInfo(nodeName: string): any | null {
122
+ return nodesData.find(n => n.name === nodeName || n.name.toLowerCase() === nodeName.toLowerCase());
123
+ }
124
+
125
+ // Create a proper Flowise edge with all required fields
126
+ function createFlowiseEdge(
127
+ sourceNodeId: string,
128
+ sourceNodeType: string,
129
+ targetNodeId: string,
130
+ targetNodeType: string,
131
+ targetInputName: string
132
+ ): any {
133
+ const sourceNode = getNodeInfo(sourceNodeType);
134
+ const targetNode = getNodeInfo(targetNodeType);
135
+
136
+ if (!sourceNode || !targetNode) {
137
+ // Fallback to simple edge if node info not found
138
+ return {
139
+ source: sourceNodeId,
140
+ target: targetNodeId,
141
+ type: 'buttonedge',
142
+ id: `${sourceNodeId}-${targetNodeId}`,
143
+ data: { label: '' }
144
+ };
145
+ }
146
+
147
+ // Get source output info (baseClasses)
148
+ const sourceBaseClasses = sourceNode.baseClasses || [sourceNode.name];
149
+ const sourceHandle = `${sourceNodeId}-output-${sourceNodeType}-${sourceBaseClasses.join('|')}`;
150
+
151
+ // Get target input info
152
+ const targetInput = targetNode.inputs?.find((i: any) => i.name === targetInputName);
153
+ const targetType = targetInput?.type || sourceBaseClasses[0];
154
+ const targetHandle = `${targetNodeId}-input-${targetInputName}-${targetType}`;
155
+
156
+ const edgeId = `${sourceHandle}-${targetHandle}`;
157
+
158
+ return {
159
+ source: sourceNodeId,
160
+ sourceHandle,
161
+ target: targetNodeId,
162
+ targetHandle,
163
+ type: 'buttonedge',
164
+ id: edgeId,
165
+ data: { label: '' }
166
+ };
167
+ }
168
+
169
+ // Create a proper Flowise node with all required fields
170
+ function createFlowiseNode(
171
+ id: string,
172
+ nodeType: string,
173
+ position: { x: number; y: number },
174
+ inputValues: Record<string, any> = {}
175
+ ): any {
176
+ const nodeInfo = getNodeInfo(nodeType);
177
+
178
+ if (!nodeInfo) {
179
+ // Fallback to basic node
180
+ return {
181
+ id,
182
+ position,
183
+ type: 'customNode',
184
+ data: {
185
+ id,
186
+ label: nodeType,
187
+ name: nodeType,
188
+ type: nodeType,
189
+ inputs: inputValues,
190
+ outputs: {}
191
+ }
192
+ };
193
+ }
194
+
195
+ // Build the data object with proper structure
196
+ const data: any = {
197
+ id,
198
+ label: nodeInfo.label || nodeType,
199
+ name: nodeInfo.name,
200
+ type: nodeInfo.name,
201
+ baseClasses: nodeInfo.baseClasses || [],
202
+ category: nodeInfo.category || '',
203
+ description: nodeInfo.description || '',
204
+ inputs: {},
205
+ outputs: {},
206
+ inputParams: nodeInfo.inputs || [],
207
+ inputAnchors: [],
208
+ outputAnchors: []
209
+ };
210
+
211
+ // Set input values
212
+ for (const input of (nodeInfo.inputs || [])) {
213
+ if (inputValues[input.name] !== undefined) {
214
+ data.inputs[input.name] = inputValues[input.name];
215
+ } else if (input.default !== undefined) {
216
+ data.inputs[input.name] = input.default;
217
+ } else {
218
+ data.inputs[input.name] = '';
219
+ }
220
+ }
221
+
222
+ return {
223
+ id,
224
+ position,
225
+ type: 'customNode',
226
+ data
227
+ };
228
+ }
229
+
102
230
  // === FLOWISE API HELPERS ===
103
231
 
104
232
  async function flowiseApiRequest(
@@ -636,7 +764,12 @@ function validateFlow(nodes: any[], edges: any[]): string {
636
764
  function generateFlowSkeleton(useCase: string, chatModel?: string): string {
637
765
  const model = chatModel || 'chatOpenAI';
638
766
 
639
- const skeletons: Record<string, any> = {
767
+ // Define skeleton blueprints with connection info (sourceId, sourceType, targetId, targetType, targetInputName)
768
+ const blueprints: Record<string, {
769
+ description: string;
770
+ nodes: Array<{ id: string; type: string; position: { x: number; y: number }; inputs?: Record<string, any> }>;
771
+ connections: Array<{ sourceId: string; sourceType: string; targetId: string; targetType: string; targetInput: string }>;
772
+ }> = {
640
773
  simple_chatbot: {
641
774
  description: 'A basic chatbot with memory',
642
775
  nodes: [
@@ -644,9 +777,9 @@ function generateFlowSkeleton(useCase: string, chatModel?: string): string {
644
777
  { id: 'memory_0', type: 'bufferMemory', position: { x: 100, y: 400 } },
645
778
  { id: 'chain_0', type: 'conversationChain', position: { x: 400, y: 300 } },
646
779
  ],
647
- edges: [
648
- { source: 'chatModel_0', target: 'chain_0' },
649
- { source: 'memory_0', target: 'chain_0' },
780
+ connections: [
781
+ { sourceId: 'chatModel_0', sourceType: model, targetId: 'chain_0', targetType: 'conversationChain', targetInput: 'model' },
782
+ { sourceId: 'memory_0', sourceType: 'bufferMemory', targetId: 'chain_0', targetType: 'conversationChain', targetInput: 'memory' },
650
783
  ],
651
784
  },
652
785
  rag_chatbot: {
@@ -659,12 +792,12 @@ function generateFlowSkeleton(useCase: string, chatModel?: string): string {
659
792
  { id: 'memory_0', type: 'bufferMemory', position: { x: 400, y: 500 } },
660
793
  { id: 'chain_0', type: 'conversationalRetrievalQAChain', position: { x: 1000, y: 300 } },
661
794
  ],
662
- edges: [
663
- { source: 'chatModel_0', target: 'chain_0' },
664
- { source: 'embeddings_0', target: 'vectorStore_0' },
665
- { source: 'vectorStore_0', target: 'retriever_0' },
666
- { source: 'retriever_0', target: 'chain_0' },
667
- { source: 'memory_0', target: 'chain_0' },
795
+ connections: [
796
+ { sourceId: 'chatModel_0', sourceType: model, targetId: 'chain_0', targetType: 'conversationalRetrievalQAChain', targetInput: 'model' },
797
+ { sourceId: 'embeddings_0', sourceType: 'openAIEmbeddings', targetId: 'vectorStore_0', targetType: 'pinecone', targetInput: 'embeddings' },
798
+ { sourceId: 'vectorStore_0', sourceType: 'pinecone', targetId: 'retriever_0', targetType: 'vectorStoreRetriever', targetInput: 'vectorStore' },
799
+ { sourceId: 'retriever_0', sourceType: 'vectorStoreRetriever', targetId: 'chain_0', targetType: 'conversationalRetrievalQAChain', targetInput: 'vectorStoreRetriever' },
800
+ { sourceId: 'memory_0', sourceType: 'bufferMemory', targetId: 'chain_0', targetType: 'conversationalRetrievalQAChain', targetInput: 'memory' },
668
801
  ],
669
802
  },
670
803
  conversational_agent: {
@@ -673,14 +806,14 @@ function generateFlowSkeleton(useCase: string, chatModel?: string): string {
673
806
  { id: 'chatModel_0', type: model, position: { x: 100, y: 200 } },
674
807
  { id: 'memory_0', type: 'bufferMemory', position: { x: 100, y: 400 } },
675
808
  { id: 'tool_0', type: 'calculator', position: { x: 400, y: 100 } },
676
- { id: 'tool_1', type: 'searchApi', position: { x: 400, y: 300 } },
809
+ { id: 'tool_1', type: 'serpAPI', position: { x: 400, y: 300 } },
677
810
  { id: 'agent_0', type: 'conversationalAgent', position: { x: 700, y: 200 } },
678
811
  ],
679
- edges: [
680
- { source: 'chatModel_0', target: 'agent_0' },
681
- { source: 'memory_0', target: 'agent_0' },
682
- { source: 'tool_0', target: 'agent_0' },
683
- { source: 'tool_1', target: 'agent_0' },
812
+ connections: [
813
+ { sourceId: 'chatModel_0', sourceType: model, targetId: 'agent_0', targetType: 'conversationalAgent', targetInput: 'model' },
814
+ { sourceId: 'memory_0', sourceType: 'bufferMemory', targetId: 'agent_0', targetType: 'conversationalAgent', targetInput: 'memory' },
815
+ { sourceId: 'tool_0', sourceType: 'calculator', targetId: 'agent_0', targetType: 'conversationalAgent', targetInput: 'tools' },
816
+ { sourceId: 'tool_1', sourceType: 'serpAPI', targetId: 'agent_0', targetType: 'conversationalAgent', targetInput: 'tools' },
684
817
  ],
685
818
  },
686
819
  document_qa: {
@@ -693,12 +826,12 @@ function generateFlowSkeleton(useCase: string, chatModel?: string): string {
693
826
  { id: 'vectorStore_0', type: 'memoryVectorStore', position: { x: 400, y: 300 } },
694
827
  { id: 'chain_0', type: 'retrievalQAChain', position: { x: 700, y: 300 } },
695
828
  ],
696
- edges: [
697
- { source: 'chatModel_0', target: 'chain_0' },
698
- { source: 'embeddings_0', target: 'vectorStore_0' },
699
- { source: 'docLoader_0', target: 'textSplitter_0' },
700
- { source: 'textSplitter_0', target: 'vectorStore_0' },
701
- { source: 'vectorStore_0', target: 'chain_0' },
829
+ connections: [
830
+ { sourceId: 'chatModel_0', sourceType: model, targetId: 'chain_0', targetType: 'retrievalQAChain', targetInput: 'model' },
831
+ { sourceId: 'embeddings_0', sourceType: 'openAIEmbeddings', targetId: 'vectorStore_0', targetType: 'memoryVectorStore', targetInput: 'embeddings' },
832
+ { sourceId: 'docLoader_0', sourceType: 'pdfFile', targetId: 'textSplitter_0', targetType: 'recursiveCharacterTextSplitter', targetInput: 'document' },
833
+ { sourceId: 'textSplitter_0', sourceType: 'recursiveCharacterTextSplitter', targetId: 'vectorStore_0', targetType: 'memoryVectorStore', targetInput: 'document' },
834
+ { sourceId: 'vectorStore_0', sourceType: 'memoryVectorStore', targetId: 'chain_0', targetType: 'retrievalQAChain', targetInput: 'vectorStoreRetriever' },
702
835
  ],
703
836
  },
704
837
  api_agent: {
@@ -709,10 +842,10 @@ function generateFlowSkeleton(useCase: string, chatModel?: string): string {
709
842
  { id: 'tool_1', type: 'requestsGet', position: { x: 400, y: 300 } },
710
843
  { id: 'agent_0', type: 'openAIFunctionAgent', position: { x: 700, y: 200 } },
711
844
  ],
712
- edges: [
713
- { source: 'chatModel_0', target: 'agent_0' },
714
- { source: 'tool_0', target: 'agent_0' },
715
- { source: 'tool_1', target: 'agent_0' },
845
+ connections: [
846
+ { sourceId: 'chatModel_0', sourceType: model, targetId: 'agent_0', targetType: 'openAIFunctionAgent', targetInput: 'model' },
847
+ { sourceId: 'tool_0', sourceType: 'customTool', targetId: 'agent_0', targetType: 'openAIFunctionAgent', targetInput: 'tools' },
848
+ { sourceId: 'tool_1', sourceType: 'requestsGet', targetId: 'agent_0', targetType: 'openAIFunctionAgent', targetInput: 'tools' },
716
849
  ],
717
850
  },
718
851
  multi_agent: {
@@ -723,20 +856,32 @@ function generateFlowSkeleton(useCase: string, chatModel?: string): string {
723
856
  { id: 'worker_0', type: 'worker', position: { x: 700, y: 100 } },
724
857
  { id: 'worker_1', type: 'worker', position: { x: 700, y: 300 } },
725
858
  ],
726
- edges: [
727
- { source: 'chatModel_0', target: 'supervisor_0' },
728
- { source: 'supervisor_0', target: 'worker_0' },
729
- { source: 'supervisor_0', target: 'worker_1' },
859
+ connections: [
860
+ { sourceId: 'chatModel_0', sourceType: model, targetId: 'supervisor_0', targetType: 'supervisor', targetInput: 'model' },
861
+ { sourceId: 'supervisor_0', sourceType: 'supervisor', targetId: 'worker_0', targetType: 'worker', targetInput: 'supervisor' },
862
+ { sourceId: 'supervisor_0', sourceType: 'supervisor', targetId: 'worker_1', targetType: 'worker', targetInput: 'supervisor' },
730
863
  ],
731
864
  },
732
865
  };
733
866
 
734
- const skeleton = skeletons[useCase];
735
- if (!skeleton) {
736
- return JSON.stringify({ error: `Unknown use case: ${useCase}` });
867
+ const blueprint = blueprints[useCase];
868
+ if (!blueprint) {
869
+ return JSON.stringify({ error: `Unknown use case: ${useCase}. Available: ${Object.keys(blueprints).join(', ')}` });
737
870
  }
738
871
 
739
- return JSON.stringify(skeleton, null, 2);
872
+ // Generate proper Flowise nodes
873
+ const nodes = blueprint.nodes.map(n => createFlowiseNode(n.id, n.type, n.position, n.inputs || {}));
874
+
875
+ // Generate proper Flowise edges with full handle info
876
+ const edges = blueprint.connections.map(c =>
877
+ createFlowiseEdge(c.sourceId, c.sourceType, c.targetId, c.targetType, c.targetInput)
878
+ );
879
+
880
+ return JSON.stringify({
881
+ description: blueprint.description,
882
+ nodes,
883
+ edges,
884
+ }, null, 2);
740
885
  }
741
886
 
742
887
  // === FLOWISE API IMPLEMENTATIONS ===
@@ -1062,8 +1207,12 @@ async function main() {
1062
1207
  const dbBuffer = fs.readFileSync(dbPath);
1063
1208
  db = new SQL.Database(dbBuffer);
1064
1209
 
1210
+ // Load nodes data for edge generation
1211
+ loadNodesData();
1212
+
1065
1213
  console.error('DS-MCP-FLOWISE server started');
1066
1214
  console.error(`Database loaded from: ${dbPath}`);
1215
+ console.error(`Nodes data loaded: ${nodesData.length} nodes`);
1067
1216
 
1068
1217
  if (FLOWISE_API_URL) {
1069
1218
  console.error(`Flowise API configured: ${FLOWISE_API_URL}`);