@sunub/obsidian-mcp-server 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +217 -25
- package/build/cli/AppContainer.d.ts +1 -0
- package/build/cli/AppContainer.js +197 -0
- package/build/cli/AppContainer.js.map +1 -0
- package/build/cli/config/SettingContext.d.ts +1 -0
- package/build/cli/config/SettingContext.js +2 -0
- package/build/cli/config/SettingContext.js.map +1 -0
- package/build/cli/config/mcpServersConfig.d.ts +18 -0
- package/build/cli/config/mcpServersConfig.js +119 -0
- package/build/cli/config/mcpServersConfig.js.map +1 -0
- package/build/cli/config/settingSchema.d.ts +180 -0
- package/build/cli/config/settingSchema.js +128 -0
- package/build/cli/config/settingSchema.js.map +1 -0
- package/build/cli/context/InputContext.d.ts +12 -0
- package/build/cli/context/InputContext.js +10 -0
- package/build/cli/context/InputContext.js.map +1 -0
- package/build/cli/context/KeypressContext.d.ts +30 -0
- package/build/cli/context/KeypressContext.js +200 -0
- package/build/cli/context/KeypressContext.js.map +1 -0
- package/build/cli/context/KeypressContext.util.d.ts +7 -0
- package/build/cli/context/KeypressContext.util.js +474 -0
- package/build/cli/context/KeypressContext.util.js.map +1 -0
- package/build/cli/hooks/useAtCompletion.d.ts +12 -0
- package/build/cli/hooks/useAtCompletion.js +5 -0
- package/build/cli/hooks/useAtCompletion.js.map +1 -0
- package/build/cli/hooks/useCommandCompletion.d.ts +59 -0
- package/build/cli/hooks/useCommandCompletion.js +344 -0
- package/build/cli/hooks/useCommandCompletion.js.map +1 -0
- package/build/cli/hooks/useCompletion.d.ts +22 -0
- package/build/cli/hooks/useCompletion.js +84 -0
- package/build/cli/hooks/useCompletion.js.map +1 -0
- package/build/cli/hooks/useDispatcher.d.ts +6 -0
- package/build/cli/hooks/useDispatcher.js +286 -0
- package/build/cli/hooks/useDispatcher.js.map +1 -0
- package/build/cli/hooks/useFocus.d.ts +2 -0
- package/build/cli/hooks/useFocus.js +3 -0
- package/build/cli/hooks/useFocus.js.map +1 -0
- package/build/cli/hooks/useInputHistory.d.ts +24 -0
- package/build/cli/hooks/useInputHistory.js +159 -0
- package/build/cli/hooks/useInputHistory.js.map +1 -0
- package/build/cli/hooks/useKeyMatchers.d.ts +17 -0
- package/build/cli/hooks/useKeyMatchers.js +13 -0
- package/build/cli/hooks/useKeyMatchers.js.map +1 -0
- package/build/cli/hooks/useKeypress.d.ts +19 -0
- package/build/cli/hooks/useKeypress.js +28 -0
- package/build/cli/hooks/useKeypress.js.map +1 -0
- package/build/cli/hooks/useLlmStream.d.ts +12 -0
- package/build/cli/hooks/useLlmStream.js +365 -0
- package/build/cli/hooks/useLlmStream.js.map +1 -0
- package/build/cli/hooks/useMcpClient.d.ts +10 -0
- package/build/cli/hooks/useMcpClient.js +100 -0
- package/build/cli/hooks/useMcpClient.js.map +1 -0
- package/build/cli/hooks/useMcpManager.d.ts +22 -0
- package/build/cli/hooks/useMcpManager.js +86 -0
- package/build/cli/hooks/useMcpManager.js.map +1 -0
- package/build/cli/hooks/usePromptCompletion.d.ts +19 -0
- package/build/cli/hooks/usePromptCompletion.js +13 -0
- package/build/cli/hooks/usePromptCompletion.js.map +1 -0
- package/build/cli/hooks/useRagContext.d.ts +6 -0
- package/build/cli/hooks/useRagContext.js +83 -0
- package/build/cli/hooks/useRagContext.js.map +1 -0
- package/build/cli/hooks/useShellCompletion.d.ts +18 -0
- package/build/cli/hooks/useShellCompletion.js +10 -0
- package/build/cli/hooks/useShellCompletion.js.map +1 -0
- package/build/cli/hooks/useSlashCompletion.d.ts +21 -0
- package/build/cli/hooks/useSlashCompletion.js +11 -0
- package/build/cli/hooks/useSlashCompletion.js.map +1 -0
- package/build/cli/hooks/useTerminalSize.d.ts +9 -0
- package/build/cli/hooks/useTerminalSize.js +26 -0
- package/build/cli/hooks/useTerminalSize.js.map +1 -0
- package/build/cli/index.js +27 -0
- package/build/cli/index.js.map +1 -0
- package/build/cli/key/keyBindings.d.ts +152 -0
- package/build/cli/key/keyBindings.js +630 -0
- package/build/cli/key/keyBindings.js.map +1 -0
- package/build/cli/key/keyMatchers.d.ts +27 -0
- package/build/cli/key/keyMatchers.js +33 -0
- package/build/cli/key/keyMatchers.js.map +1 -0
- package/build/cli/key/text-buffer.js +918 -0
- package/build/cli/key/text-buffer.js.map +1 -0
- package/build/cli/reference/HistoryItemDisplay.d.ts +23 -0
- package/build/cli/reference/HistoryItemDisplay.js +63 -0
- package/build/cli/reference/HistoryItemDisplay.js.map +1 -0
- package/build/cli/reference/InputContext.d.ts +17 -0
- package/build/cli/reference/InputContext.js +16 -0
- package/build/cli/reference/InputContext.js.map +1 -0
- package/build/cli/reference/KerypressContext.d.ts +37 -0
- package/build/cli/reference/KerypressContext.js +791 -0
- package/build/cli/reference/KerypressContext.js.map +1 -0
- package/build/cli/reference/MainContent.d.ts +6 -0
- package/build/cli/reference/MainContent.js +207 -0
- package/build/cli/reference/MainContent.js.map +1 -0
- package/build/cli/reference/UIStateContext.d.ts +188 -0
- package/build/cli/reference/UIStateContext.js +16 -0
- package/build/cli/reference/UIStateContext.js.map +1 -0
- package/build/cli/reference/useGeminiStream.d.ts +42 -0
- package/build/cli/reference/useGeminiStream.js +1404 -0
- package/build/cli/reference/useGeminiStream.js.map +1 -0
- package/build/cli/services/McpClientService.d.ts +32 -0
- package/build/cli/services/McpClientService.js +123 -0
- package/build/cli/services/McpClientService.js.map +1 -0
- package/build/cli/services/McpManager.d.ts +28 -0
- package/build/cli/services/McpManager.js +146 -0
- package/build/cli/services/McpManager.js.map +1 -0
- package/build/cli/tmp.js +27 -0
- package/build/cli/tmp.js.map +1 -0
- package/build/cli/ui/ConnectionStatus.d.ts +13 -0
- package/build/cli/ui/ConnectionStatus.js +24 -0
- package/build/cli/ui/ConnectionStatus.js.map +1 -0
- package/build/cli/ui/HelpCommands.d.ts +5 -0
- package/build/cli/ui/HelpCommands.js +11 -0
- package/build/cli/ui/HelpCommands.js.map +1 -0
- package/build/cli/ui/HistoryItemDisplay.d.ts +9 -0
- package/build/cli/ui/HistoryItemDisplay.js +38 -0
- package/build/cli/ui/HistoryItemDisplay.js.map +1 -0
- package/build/cli/ui/InputPrompt-bestcase.d.ts +63 -0
- package/build/cli/ui/InputPrompt-bestcase.js +1301 -0
- package/build/cli/ui/InputPrompt-bestcase.js.map +1 -0
- package/build/cli/ui/InputPrompt.d.ts +12 -0
- package/build/cli/ui/InputPrompt.js +145 -0
- package/build/cli/ui/InputPrompt.js.map +1 -0
- package/build/cli/ui/InputPrompt.tmp.d.ts +7 -0
- package/build/cli/ui/InputPrompt.tmp.js +215 -0
- package/build/cli/ui/InputPrompt.tmp.js.map +1 -0
- package/build/cli/ui/MainContent.d.ts +10 -0
- package/build/cli/ui/MainContent.js +24 -0
- package/build/cli/ui/MainContent.js.map +1 -0
- package/build/cli/ui/MouseContext.d.ts +1 -0
- package/build/cli/ui/MouseContext.js +2 -0
- package/build/cli/ui/MouseContext.js.map +1 -0
- package/build/cli/ui/SuggestionsDisplay.d.ts +25 -0
- package/build/cli/ui/SuggestionsDisplay.js +45 -0
- package/build/cli/ui/SuggestionsDisplay.js.map +1 -0
- package/build/cli/ui/ThinkingIndicator.d.ts +2 -0
- package/build/cli/ui/ThinkingIndicator.js +16 -0
- package/build/cli/ui/ThinkingIndicator.js.map +1 -0
- package/build/cli/ui/layout/DefaultAppLayout.d.ts +2 -0
- package/build/cli/ui/layout/DefaultAppLayout.js +6 -0
- package/build/cli/ui/layout/DefaultAppLayout.js.map +1 -0
- package/build/cli/ui/shared/ExpandableText.d.ts +14 -0
- package/build/cli/ui/shared/ExpandableText.js +19 -0
- package/build/cli/ui/shared/ExpandableText.js.map +1 -0
- package/build/cli/utils/commandUtils.d.ts +11 -0
- package/build/cli/utils/commandUtils.js +16 -0
- package/build/cli/utils/commandUtils.js.map +1 -0
- package/build/cli/utils/debugLogger.d.ts +12 -0
- package/build/cli/utils/debugLogger.js +52 -0
- package/build/cli/utils/debugLogger.js.map +1 -0
- package/build/cli/utils/historyStorage.d.ts +13 -0
- package/build/cli/utils/historyStorage.js +64 -0
- package/build/cli/utils/historyStorage.js.map +1 -0
- package/build/cli/utils/textUtil.d.ts +68 -0
- package/build/cli/utils/textUtil.js +236 -0
- package/build/cli/utils/textUtil.js.map +1 -0
- package/build/db.js +55 -0
- package/build/db.js.map +1 -0
- package/build/index.js +4 -0
- package/build/index.js.map +1 -0
- package/build/tools/create_document_with_properties/index.d.ts +60 -0
- package/build/tools/create_document_with_properties/index.js +7 -1
- package/build/tools/create_document_with_properties/index.js.map +1 -0
- package/build/tools/create_document_with_properties/params.d.ts +66 -0
- package/build/tools/generate_property/index.js +6 -0
- package/build/tools/generate_property/index.js.map +1 -0
- package/build/tools/index.d.ts +184 -0
- package/build/tools/organize_attachments/index.js +7 -1
- package/build/tools/organize_attachments/index.js.map +1 -0
- package/build/tools/organize_attachments/params.d.ts +122 -0
- package/build/tools/vault/index.js +17 -3
- package/build/tools/vault/index.js.map +1 -0
- package/build/tools/vault/params.d.ts +115 -0
- package/build/tools/vault/types/collect_context.d.ts +1340 -0
- package/build/tools/vault/types/list_all.d.ts +387 -0
- package/build/tools/vault/types/read_specific.d.ts +297 -0
- package/build/tools/vault/types/search.d.ts +598 -0
- package/build/tools/vault/utils/actions/collect_context.js +26 -1
- package/build/tools/vault/utils/actions/collect_context.js.map +1 -0
- package/build/tools/vault/utils/actions/index_rag.js +27 -0
- package/build/tools/vault/utils/actions/index_rag.js.map +1 -0
- package/build/tools/vault/utils/actions/list_all.js +1 -0
- package/build/tools/vault/utils/actions/list_all.js.map +1 -0
- package/build/tools/vault/utils/actions/load_memory.js +23 -13
- package/build/tools/vault/utils/actions/load_memory.js.map +1 -0
- package/build/tools/vault/utils/actions/read.js +2 -1
- package/build/tools/vault/utils/actions/read.js.map +1 -0
- package/build/tools/vault/utils/actions/search.js +2 -1
- package/build/tools/vault/utils/actions/search.js.map +1 -0
- package/build/tools/vault/utils/actions/search_semantic.js +54 -0
- package/build/tools/vault/utils/actions/search_semantic.js.map +1 -0
- package/build/tools/vault/utils/actions/stats.js +1 -0
- package/build/tools/vault/utils/actions/stats.js.map +1 -0
- package/build/tools/vault/utils/document.js +1 -0
- package/build/tools/vault/utils/document.js.map +1 -0
- package/build/tools/write_property/index.d.ts +58 -0
- package/build/tools/write_property/index.js +7 -1
- package/build/tools/write_property/index.js.map +1 -0
- package/build/utils/DirectoryWalker.d.ts +6 -0
- package/build/utils/DirectoryWalker.js +7 -0
- package/build/utils/DirectoryWalker.js.map +1 -0
- package/build/utils/Indexer.d.ts +18 -0
- package/build/utils/Indexer.js +5 -9
- package/build/utils/Indexer.js.map +1 -0
- package/build/utils/LLMClient.d.ts +37 -0
- package/build/utils/LLMClient.js +82 -0
- package/build/utils/LLMClient.js.map +1 -0
- package/build/utils/RAGIndexer.d.ts +22 -0
- package/build/utils/RAGIndexer.js +206 -0
- package/build/utils/RAGIndexer.js.map +1 -0
- package/build/utils/RerankerClient.d.ts +27 -0
- package/build/utils/RerankerClient.js +69 -0
- package/build/utils/RerankerClient.js.map +1 -0
- package/build/utils/VaultManger/VaultManager.d.ts +34 -0
- package/build/utils/VaultManger/VaultManager.js +1 -0
- package/build/utils/VaultManger/VaultManager.js.map +1 -0
- package/build/utils/VaultManger/VaultPathError.d.ts +6 -0
- package/build/utils/VaultManger/VaultPathError.js +1 -0
- package/build/utils/VaultManger/VaultPathError.js.map +1 -0
- package/build/utils/VaultManger/index.d.ts +3 -0
- package/build/utils/VaultManger/index.js +1 -0
- package/build/utils/VaultManger/index.js.map +1 -0
- package/build/utils/VaultManger/types.d.ts +16 -0
- package/build/utils/VaultManger/types.js +1 -0
- package/build/utils/VaultManger/types.js.map +1 -0
- package/build/utils/VaultWatcher.d.ts +8 -0
- package/build/utils/VaultWatcher.js +96 -0
- package/build/utils/VaultWatcher.js.map +1 -0
- package/build/utils/VectorDB.d.ts +53 -0
- package/build/utils/VectorDB.js +243 -0
- package/build/utils/VectorDB.js.map +1 -0
- package/build/utils/createToolError.d.ts +2 -0
- package/build/utils/createToolError.js +1 -0
- package/build/utils/createToolError.js.map +1 -0
- package/build/utils/getVaultManager.d.ts +2 -0
- package/build/utils/getVaultManager.js +2 -1
- package/build/utils/getVaultManager.js.map +1 -0
- package/build/utils/processor/LinkExtractor.d.ts +2 -0
- package/build/utils/processor/LinkExtractor.js +1 -0
- package/build/utils/processor/LinkExtractor.js.map +1 -0
- package/build/utils/processor/MatterParser.d.ts +2 -0
- package/build/utils/processor/MatterParser.js +12 -3
- package/build/utils/processor/MatterParser.js.map +1 -0
- package/build/utils/processor/types.d.ts +100 -0
- package/package.json +29 -3
- package/build/config.js +0 -55
- package/build/server.js +0 -32
- package/build/tools/create_document_with_properties/params.js +0 -32
- package/build/tools/generate_property/params.js +0 -54
- package/build/tools/index.js +0 -12
- package/build/tools/organize_attachments/params.js +0 -60
- package/build/tools/organize_attachments/utils.js +0 -65
- package/build/tools/vault/metrics.js +0 -126
- package/build/tools/vault/params.js +0 -141
- package/build/tools/vault/types/collect_context.js +0 -102
- package/build/tools/vault/types/list_all.js +0 -52
- package/build/tools/vault/types/read_specific.js +0 -40
- package/build/tools/vault/types/search.js +0 -58
- package/build/tools/vault/utils/constants.js +0 -2
- package/build/tools/vault/utils/shared.js +0 -74
- package/build/tools/vault/utils.js +0 -6
- package/build/tools/write_property/params.js +0 -51
- package/build/utils/processor/types.js +0 -27
- package/build/utils/semaphore.js +0 -25
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGeminiStream.js","sourceRoot":"","sources":["../../../src/cli/reference/useGeminiStream.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAe7B,OAAO,EACN,wBAAwB,EACxB,YAAY,EACZ,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,0BAA0B,EAC1B,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,WAAW,EACX,mBAAmB,EACnB,IAAI,EACJ,4BAA4B,EAC5B,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,EACf,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,IAAI,qBAAqB,EACxC,uBAAuB,EACvB,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAiC,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAW9C,OAAO,EACN,WAAW,EACX,4BAA4B,EAC5B,cAAc,EACd,cAAc,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,IAAI,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAMN,gBAAgB,GAChB,MAAM,uBAAuB,CAAC;AAY/B,MAAM,WAAW,GAAG,CAAC,IAAY,EAAW,EAAE,CAC7C,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,yBAAyB,CAAC;AAEvE,IAAK,sBAIJ;AAJD,WAAK,sBAAsB;IAC1B,6EAAS,CAAA;IACT,qFAAa,CAAA;IACb,qEAAK,CAAA;AACN,CAAC,EAJI,sBAAsB,KAAtB,sBAAsB,QAI1B;AAED,MAAM,2BAA2B,GAChC,2JAA2J,CAAC;AAC7J,MAAM,0BAA0B,GAC/B,yHAAyH,CAAC;AAE3H,SAAS,uBAAuB,CAC/B,QAA6D;IAE7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAiC,CAAC;IAC5D,MAAM,OAAO,GAAY,QAAQ,EAAE,IAAI,CAAC;IACxC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO;QACN,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI;QACjD,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,EAAE;KAC1C,CAAC;AACH,CAAC;AAED,SAAS,iCAAiC,CACzC,QAAyB;IAEzB,OAAO,CACN,QAAQ,CAAC,MAAM,KAAK,kBAAkB,CAAC,SAAS;QAChD,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAChC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,QAAwB;IAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC;IACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC/B,YAAqB,EACrB,SAA4B;IAE5B,IACC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,kBAAkB,CAAC,gBAAgB,CAAC,EACxE,CAAC;QACF,OAAO,cAAc,CAAC,sBAAsB,CAAC;IAC9C,CAAC;IAED,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QAC7C,4CAA4C;QAC5C,IACC,EAAE,CAAC,MAAM,KAAK,kBAAkB,CAAC,SAAS;YAC1C,EAAE,CAAC,MAAM,KAAK,kBAAkB,CAAC,SAAS;YAC1C,EAAE,CAAC,MAAM,KAAK,kBAAkB,CAAC,UAAU,EAC1C,CAAC;YACF,OAAO,IAAI,CAAC;QACb,CAAC;QAED,4EAA4E;QAC5E,0DAA0D;QAC1D,IACC,EAAE,CAAC,MAAM,KAAK,kBAAkB,CAAC,OAAO;YACxC,EAAE,CAAC,MAAM,KAAK,kBAAkB,CAAC,KAAK;YACtC,EAAE,CAAC,MAAM,KAAK,kBAAkB,CAAC,SAAS,EACzC,CAAC;YACF,OAAO,CAAE,EAA0D;iBACjE,yBAAyB,CAAC;QAC7B,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;QACrC,OAAO,cAAc,CAAC,UAAU,CAAC;IAClC,CAAC;IAED,OAAO,cAAc,CAAC,IAAI,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,YAA0B,EAC1B,OAAsB,EACtB,OAA2C,EAC3C,MAAc,EACd,QAAwB,EACxB,cAAyC,EACzC,kBAEiD,EACjD,eAAwB,EACxB,kBAAgD,EAChD,WAAoC,EACpC,oBAAyC,EACzC,2BAAoC,EACpC,8BAA6E,EAC7E,cAAuD,EACvD,oBAA8C,EAC9C,aAAqB,EACrB,cAAsB,EACtB,cAAwB,EACxB,eAAqC,EACpC,EAAE;IACH,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAC7C,IAAI,CACJ,CAAC;IACF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,KAAK,MAAM,CAAC;IAC1E,MAAM,2BAA2B,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,+BAA+B,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,+BAA+B,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,kBAAkB,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,gBAAgB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IACrD,MAAM,uBAAuB,GAAG,MAAM,CACrC,MAAM,CAAC,eAAe,EAAE,CACxB,CAAC;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC,GACrD,cAAc,CAAU,KAAK,CAAC,CAAC;IAChC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,GACtC,cAAc,CAAwB,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,GACvE,cAAc,CAA8B,IAAI,CAAC,CAAC;IAEnD,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GACxD,QAAQ,CAAS,CAAC,CAAC,CAAC;IACrB,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,GACpE,cAAc,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,GACxE,cAAc,CAAU,IAAI,CAAC,CAAC;IAC/B,MAAM,uBAAuB,GAAG,MAAM,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IAC/D,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE,CAAC;IAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC;YAC9B,OAAO;QACR,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,kBAAkB,GAAG,CAAC,OAA4B,EAAE,EAAE;YAC3D,IAAI,gBAAgB,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC1D,OAAO;YACR,CAAC;YACD,cAAc,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QAC1D,OAAO,GAAG,EAAE;YACX,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QAC5D,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,MAAM,CACL,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,GAAG,gBAAgB,CACnB,KAAK,EAAE,+BAA+B,EAAE,EAAE;QACzC,iFAAiF;QACjF,IAAI,+BAA+B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,8DAA8D;YAC9D,MAAM,WAAW,GAAG,+BAA+B,CAAC,MAAM,CACzD,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAC5D,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,oBAAoB,GACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,KAAK,IAAI,CAAC;gBAChD,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBACnD,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAE7D,IAAI,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC;gBAC9C,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,CAAC;oBAC5B,4EAA4E;oBAC5E,oCAAoC;oBACpC,MAAM,gBAAgB,GAAG,aAAa,CACrC,4BAA4B,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EACtD,oBAAoB,CACpB,CAAC;oBACF,MAAM,cAAc,GAAG,aAAa,CACnC,4BAA4B,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAC/C,oBAAoB,CACpB,CAAC;oBACF,IAAI,CAAC,gBAAgB,IAAI,cAAc,EAAE,CAAC;wBACzC,SAAS,GAAG,IAAI,CAAC;oBAClB,CAAC;gBACF,CAAC;gBAED,OAAO,CACN,4BAA4B,CAAC,WAAgC,EAAE;oBAC9D,SAAS;oBACT,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;oBACjC,cAAc,EAAE,KAAK;iBACrB,CAAC,CACF,CAAC;YACH,CAAC;YAED,0EAA0E;YAC1E,sBAAsB,CAAC,EAAE,CAAC,CAAC;YAE3B,iEAAiE;YACjE,IAAI,CAAC;gBACJ,MAAM,YAAY,GACjB,MAAM,CAAC,eAAe,EAAE,CAAC,uBAAuB,EAAE;oBAClD,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM;qBACJ,eAAe,EAAE;qBACjB,OAAO,EAAE;qBACT,wBAAwB,CACxB,YAAY,EACZ,+BAA+B,CAC/B,CAAC;gBAEH,MAAM,0BAA0B,CAC/B,MAAM,EACN,+BAA+B,CAC/B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,WAAW,CAAC,IAAI,CACf,oDAAoD,KAAK,EAAE,CAC3D,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,MAAM,oBAAoB,CAAC,+BAA+B,CAAC,CAAC;QAC7D,CAAC;IACF,CAAC,EACD,MAAM,EACN,kBAAkB,CAClB,CAAC;IAEF,MAAM,2BAA2B,GAAG,OAAO,CAAC,GAAG,EAAE;QAChD,MAAM,2BAA2B,GAAG,SAAS,CAAC,IAAI,CACjD,iCAAiC,CACjC,CAAC;QACF,OAAO,2BAA2B,EAAE,GAAG,CAAC;IACzC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,WAAW,CACzB,KAAK,EAAE,IAAmB,EAAE,EAAE;QAC7B,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,IAAI,CAAC;QACX,eAAe,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,EACD,CAAC,eAAe,CAAC,CACjB,CAAC;IAEF,MAAM,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,GACf,GAAG,qBAAqB,CACxB,OAAO,EACP,qBAAqB,EACrB,MAAM,EACN,cAAc,EACd,MAAM,EACN,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,2BAA2B,CAC3B,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,uBAAuB,CAAC,YAAY,EAAE,SAAS,CAAC,EACtD,CAAC,YAAY,EAAE,SAAS,CAAC,CACzB,CAAC;IAEF,kDAAkD;IAClD,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CACzC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CACnD,CAAC;YACF,IAAI,UAAU,EAAE,CAAC;gBAChB,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;gBAChC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACF,CAAC;aAAM,IAAI,cAAc,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;YACnD,4CAA4C;YAC5C,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YAChC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC,EAAE;QACF,SAAS;QACT,oBAAoB;QACpB,oBAAoB;QACpB,qBAAqB;QACrB,cAAc;KACd,CAAC,CAAC;IAEH,iDAAiD;IACjD,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,WAAW,GAAsB,EAAE,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,SAAS;YAElE,IACC,EAAE,CAAC,MAAM,KAAK,SAAS;gBACvB,EAAE,CAAC,MAAM,KAAK,OAAO;gBACrB,EAAE,CAAC,MAAM,KAAK,WAAW,EACxB,CAAC;gBACF,qFAAqF;gBACrF,sEAAsE;gBACtE,6EAA6E;gBAC7E,yEAAyE;gBACzE,8EAA8E;gBAC9E,kDAAkD;gBAClD,gEAAgE;gBAChE,wEAAwE;gBACxE,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC;gBAC7C,IAAI,OAAO,EAAE,CAAC;oBACb,IAAI,oBAAoB,GAAG,IAAI,CAAC;oBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;wBAC5B,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;4BACtC,IACC,MAAM,CAAC,MAAM,KAAK,SAAS;gCAC3B,MAAM,CAAC,MAAM,KAAK,OAAO;gCACzB,MAAM,CAAC,MAAM,KAAK,WAAW,EAC5B,CAAC;gCACF,oBAAoB,GAAG,KAAK,CAAC;gCAC7B,MAAM;4BACP,CAAC;wBACF,CAAC;6BAAM,CAAC;4BACP,oCAAoC;4BACpC,MAAM;wBACP,CAAC;oBACF,CAAC;oBAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAC3B,2DAA2D;wBAC3D,MAAM;oBACP,CAAC;gBACF,CAAC;gBAED,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACP,oDAAoD;gBACpD,MAAM;YACP,CAAC;QACF,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,OAAO,CAAC;YACxD,MAAM,oBAAoB,GACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,KAAK,IAAI,CAAC;YAEhD,MAAM,MAAM,GAAwB,EAAE,CAAC;YACvC,IAAI,YAAY,GAAsB,EAAE,CAAC;YAEzC,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;gBAC9B,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAEjC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;oBAClC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACP,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC1B,YAAY,GAAG,EAAE,CAAC;oBACnB,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnB,CAAC;YACF,CAAC;YACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3B,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC;gBACpD,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC9C,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACxD,MAAM,aAAa,GAAG,cAAc,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBAE9D,MAAM,aAAa,GAClB,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;oBACpC,CAAC,CAAC,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC;oBAC/B,CAAC,CAAC,IAAI,CAAC;gBACT,MAAM,aAAa,GAClB,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC9B,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC5C,CAAC,CAAC,IAAI,CAAC;gBAET,MAAM,WAAW,GAAG,4BAA4B,CAAC,KAAK,EAAE;oBACvD,GAAG,4BAA4B,CAC9B,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,EACxC,gBAAgB,EAChB,CAAC,CAAC,cAAc,EAChB,EAAE,EACF,eAAe,CACf;iBACD,CAAC,CAAC;gBAEH,qDAAqD;gBACrD,MAAM,gBAAgB,GACrB,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;oBAC9B,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;gBAE3D,IAAI,aAAa,GAAG,KAAK,CAAC;gBAC1B,IAAI,aAAa,EAAE,CAAC;oBACnB,MAAM,eAAe,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;oBACpE,aAAa;wBACZ,eAAe,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;4BAClC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;gBAChE,CAAC;gBAED,IAAI,cAAc,GAAG,KAAK,CAAC;gBAC3B,IAAI,aAAa,EAAE,CAAC;oBACnB,MAAM,eAAe,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;oBACpE,cAAc;wBACb,eAAe,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;4BAClC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;gBAChE,CAAC;gBAED,WAAW,CAAC,SAAS;oBACpB,cAAc,IAAI,CAAC,CAAC,gBAAgB,IAAI,cAAc,CAAC,CAAC;gBACzD,WAAW,CAAC,YAAY,GAAG,gBAAgB;oBAC1C,CAAC,CAAC,aAAa,IAAI,CAAC,aAAa;oBACjC,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC;gBAElC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtB,CAAC;YAED,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAEhC,0EAA0E;YAC1E,oFAAoF;YACpF,IACC,qBAAqB,CAAC,OAAO;gBAC7B,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EACtD,CAAC;gBACF,gBAAgB;YACjB,CAAC;iBAAM,CAAC;gBACP,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;IACF,CAAC,EAAE;QACF,SAAS;QACT,oBAAoB;QACpB,qBAAqB;QACrB,oBAAoB;QACpB,qBAAqB;QACrB,OAAO;QACP,gBAAgB;QAChB,cAAc;QACd,eAAe;QACf,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB;KACrC,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAA2B,EAAE;QAClE,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CACtC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CACjD,CAAC;QAEF,MAAM,KAAK,GAA2B,EAAE,CAAC;QAEzC,MAAM,UAAU,GAAG,4BAA4B,CAC9C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,EACxC,gBAAgB,EAChB,CAAC,CAAC,cAAc,EAChB,EAAE,EACF,eAAe,CACf,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,oEAAoE;YACpE,+EAA+E;YAC/E,IAAI,cAAc,GAAG,iBAAiB,CAAC,IAAI,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACrB,MAAM,mBAAmB,GAAG,SAAS;qBACnC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;qBACxD,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9C,IAAI,mBAAmB,EAAE,CAAC;oBACzB,cAAc,GAAG,IAAI,CAAC;gBACvB,CAAC;YACF,CAAC;YAED,KAAK,CAAC,IAAI,CACT,4BAA4B,CAAC,cAAc,EAAE;gBAC5C,SAAS,EAAE,cAAc;gBACzB,YAAY,EAAE,KAAK,EAAE,4CAA4C;gBACjE,GAAG,UAAU;aACb,CAAC,CACF,CAAC;QACH,CAAC;QACD,sEAAsE;QACtE,kEAAkE;QAClE,4FAA4F;QAC5F,MAAM,WAAW,GAChB,SAAS,CAAC,MAAM,GAAG,CAAC;YACpB,SAAS,CAAC,KAAK,CACd,CAAC,EAAE,EAAE,EAAE,CACN,EAAE,CAAC,MAAM,KAAK,SAAS;gBACvB,EAAE,CAAC,MAAM,KAAK,OAAO;gBACrB,EAAE,CAAC,MAAM,KAAK,WAAW,CAC1B,CAAC;QAEH,MAAM,SAAS,GACd,SAAS,CAAC,MAAM,GAAG,CAAC;YACpB,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAEnE,MAAM,aAAa,GAAG,CAAC,EAAmB,EAAE,EAAE;YAC7C,mEAAmE;YACnE,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC1D,OAAO,KAAK,CAAC;YACd,CAAC;YAED,sEAAsE;YACtE,6DAA6D;YAC7D,MAAM,aAAa,GAAG,4BAA4B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,aAAa,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;gBACjD,OAAO,KAAK,CAAC;YACd,CAAC;YAED,yEAAyE;YACzE,8DAA8D;YAC9D,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QAEF,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,KAAK,IAAI,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1D,oBAAoB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC;oBACtD,CAAC,CAAC,KAAK,CAAC;gBACT,MAAM;YACP,CAAC;QACF,CAAC;QAED,IACC,SAAS,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,CAAC,WAAW,IAAI,SAAS,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;YAC7B,CAAC,oBAAoB,EACpB,CAAC;YACF,KAAK,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,YAAqB;gBAC3B,KAAK,EAAE,EAAiC;gBACxC,SAAS,EAAE,KAAK;gBAChB,YAAY,EAAE,IAAI;gBAClB,GAAG,UAAU;aACb,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC,EAAE;QACF,SAAS;QACT,iBAAiB;QACjB,gBAAgB;QAChB,cAAc;QACd,eAAe;QACf,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB;KACrC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,CACL,gCAAgC,EAChC,mCAAmC,EACnC,GAAG,QAAQ,CAEF,IAAI,CAAC,CAAC;IAEhB,MAAM,WAAW,GAChB,gBAAgB,IAAI,2BAA2B,IAAI,SAAS,CAAC;IAE9D,MAAM,uBAAuB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAC5D,SAAS,CAAC,GAAG,EAAE;QACd,IACC,gBAAgB,CAAC,OAAO;YACxB,uBAAuB,CAAC,OAAO,KAAK,IAAI;YACxC,gBAAgB,KAAK,IAAI,EACxB,CAAC;YACF,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;YAChE,eAAe,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;QACD,uBAAuB,CAAC,OAAO,GAAG,gBAAgB,CAAC;IACpD,CAAC,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE;QACd,IACC,MAAM,CAAC,eAAe,EAAE,KAAK,YAAY,CAAC,IAAI;YAC9C,cAAc,KAAK,cAAc,CAAC,IAAI,EACrC,CAAC;YACF,MAAM,oBAAoB,GAAG,OAAO,CAAC,aAAa,CACjD,CAAC,IAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CACrD,CAAC;YAEF,MAAM,SAAS,GACd,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,oBAAoB,CAAC;YAEzE,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBACnB,4BAA4B,CAC3B,MAAM,EACN,IAAI,yBAAyB,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,SAAS,CAAC,CAClE,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,cAAc,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACF,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,+BAA+B,GAAG,WAAW,CAClD,CAAC,oBAA6B,EAAE,EAAE;QACjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC1B,OAAO;QACR,CAAC;QACD,IAAI,2BAA2B,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO;QACR,CAAC;QACD,IAAI,+BAA+B,CAAC,OAAO,EAAE,CAAC;YAC7C,OAAO;QACR,CAAC;QAED,OAAO,CACN;YACC,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,2BAA2B;SACjC,EACD,oBAAoB,CACpB,CAAC;QACF,+BAA+B,CAAC,OAAO,GAAG,IAAI,CAAC;IAChD,CAAC,EACD,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAC9B,CAAC;IAEF,MAAM,+BAA+B,GAAG,WAAW,CAClD,CAAC,oBAA6B,EAAE,EAAE;QACjC,IAAI,CAAC,mBAAmB,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;YACnD,OAAO;QACR,CAAC;QACD,IACC,+BAA+B,CAAC,OAAO;YACvC,+BAA+B,CAAC,OAAO,EACtC,CAAC;YACF,OAAO;QACR,CAAC;QAED,OAAO,CACN;YACC,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,0BAA0B;SAChC,EACD,oBAAoB,CACpB,CAAC;QACF,+BAA+B,CAAC,OAAO,GAAG,IAAI,CAAC;IAChD,CAAC,EACD,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,CACtC,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7C,IACC,cAAc,KAAK,cAAc,CAAC,UAAU;YAC5C,cAAc,KAAK,cAAc,CAAC,sBAAsB,EACvD,CAAC;YACF,OAAO;QACR,CAAC;QACD,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO;QACR,CAAC;QACD,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;QAChC,cAAc,CAAC,IAAI,CAAC,CAAC;QAErB,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,kBAAkB,GAAG,CAAC,SAAS,CAAC,IAAI,CACzC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO,CACxD,CAAC;QAEF,wEAAwE;QACxE,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;YACjC,kBAAkB,CAAC,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;QACpD,CAAC;QAED,+BAA+B;QAC/B,+DAA+D;QAC/D,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,qEAAqE;QACrE,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEtD,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,cAAc,GACnB,qBAAqB,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;gBACnD,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CACpC,CAAC;YAEH,kFAAkF;YAClF,0DAA0D;YAC1D,IAAI,cAAc,EAAE,CAAC;gBACpB,uEAAuE;gBACvE,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAA+B,CAAC;gBACxE,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACjD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;wBACtC,OAAO;4BACN,GAAG,IAAI;4BACP,MAAM,EAAE,kBAAkB,CAAC,SAAS;4BACpC,aAAa,EAAE,IAAI,CAAC,aAAa;yBACjC,CAAC;oBACH,CAAC;oBACD,OAAO,IAAI,CAAC;gBACb,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,YAAY,EAA0B,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;QACF,CAAC;QACD,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAE5B,2DAA2D;QAC3D,mEAAmE;QACnE,iEAAiE;QACjE,IAAI,kBAAkB,EAAE,CAAC;YACxB,uEAAuE;YACvE,yCAAyC;YACzC,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACvB,OAAO,CAAC;oBACP,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,IAAI,EAAE,oBAAoB;iBAC1B,CAAC,CAAC;gBACH,eAAe,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACF,CAAC;QAED,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,EAAE;QACF,cAAc;QACd,OAAO;QACP,qBAAqB;QACrB,cAAc;QACd,qBAAqB;QACrB,oBAAoB;QACpB,kBAAkB;QAClB,SAAS;QACT,gBAAgB;QAChB,eAAe;KACf,CAAC,CAAC;IAEH,WAAW,CACV,CAAC,GAAG,EAAE,EAAE;QACP,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9C,oBAAoB,EAAE,CAAC;QACxB,CAAC;IACF,CAAC,EACD;QACC,QAAQ,EACP,cAAc,KAAK,cAAc,CAAC,UAAU;YAC5C,cAAc,KAAK,cAAc,CAAC,sBAAsB;KACzD,CACD,CAAC;IAEF,MAAM,qBAAqB,GAAG,WAAW,CACxC,KAAK,EACJ,KAAoB,EACpB,oBAA4B,EAC5B,WAAwB,EACxB,SAAiB,EAIf,EAAE;QACJ,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QACpD,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5D,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QACpD,CAAC;QAED,IAAI,wBAAwB,GAAyB,IAAI,CAAC;QAE1D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,MAAM,EAAE,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAE/D,IAAI,CAAC,eAAe,EAAE,CAAC;gBACtB,gCAAgC;gBAChC,MAAM,kBAAkB,GAAG,cAAc,CAAC,YAAY,CAAC;oBACtD,CAAC,CAAC,MAAM,kBAAkB,CAAC,YAAY,CAAC;oBACxC,CAAC,CAAC,KAAK,CAAC;gBAET,IAAI,kBAAkB,EAAE,CAAC;oBACxB,QAAQ,kBAAkB,CAAC,IAAI,EAAE,CAAC;wBACjC,KAAK,eAAe,CAAC,CAAC,CAAC;4BACtB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAC7C,kBAAkB,CAAC;4BACpB,MAAM,eAAe,GAAwB;gCAC5C,MAAM,EAAE,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gCAC1E,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,QAAQ;gCACd,iBAAiB,EAAE,IAAI;gCACvB,SAAS;6BACT,CAAC;4BACF,MAAM,iBAAiB,CAAC,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,CAAC;4BAExD,IAAI,gBAAgB,EAAE,CAAC;gCACtB,wBAAwB,GAAG,gBAAgB,CAAC;gCAC5C,OAAO;oCACN,WAAW,EAAE,wBAAwB;oCACrC,aAAa,EAAE,IAAI;iCACnB,CAAC;4BACH,CAAC;4BAED,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;wBACpD,CAAC;wBACD,KAAK,eAAe,CAAC,CAAC,CAAC;4BACtB,wBAAwB,GAAG,kBAAkB,CAAC,OAAO,CAAC;4BAEtD,OAAO;gCACN,WAAW,EAAE,wBAAwB;gCACrC,aAAa,EAAE,IAAI;6BACnB,CAAC;wBACH,CAAC;wBACD,KAAK,SAAS,CAAC,CAAC,CAAC;4BAChB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;wBACpD,CAAC;wBACD,OAAO,CAAC,CAAC,CAAC;4BACT,MAAM,WAAW,GAAU,kBAAkB,CAAC;4BAC9C,MAAM,IAAI,KAAK,CACd,wCAAwC,WAAW,EAAE,CACrD,CAAC;wBACH,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;YAED,IAAI,eAAe,IAAI,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;gBACtE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;YACpD,CAAC;YAED,qDAAqD;YACrD,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B,uEAAuE;gBACvE,OAAO,CACN,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAC9C,oBAAoB,CACpB,CAAC;gBAEF,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC;oBAC7C,KAAK,EAAE,YAAY;oBACnB,MAAM;oBACN,OAAO;oBACP,cAAc;oBACd,SAAS,EAAE,oBAAoB;oBAC/B,MAAM,EAAE,WAAW;oBACnB,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAqB;iBAChE,CAAC,CAAC;gBACH,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;oBAC3B,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBACtC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;gBACpD,CAAC;gBACD,wBAAwB,GAAG,eAAe,CAAC,cAAc,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACP,0BAA0B;gBAC1B,OAAO,CACN,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAC9C,oBAAoB,CACpB,CAAC;gBACF,wBAAwB,GAAG,YAAY,CAAC;YACzC,CAAC;QACF,CAAC;aAAM,CAAC;YACP,+DAA+D;YAC/D,wBAAwB,GAAG,KAAK,CAAC;QAClC,CAAC;QAED,IAAI,wBAAwB,KAAK,IAAI,EAAE,CAAC;YACvC,cAAc,CACb,2DAA2D,CAC3D,CAAC;YACF,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QACpD,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACvE,CAAC,EACD;QACC,MAAM;QACN,OAAO;QACP,cAAc;QACd,kBAAkB;QAClB,kBAAkB;QAClB,MAAM;QACN,eAAe;QACf,iBAAiB;QACjB,QAAQ;KACR,CACD,CAAC;IAEF,gCAAgC;IAEhC,MAAM,kBAAkB,GAAG,WAAW,CACrC,CACC,UAAiC,EACjC,0BAAkC,EAClC,oBAA4B,EACnB,EAAE;QACX,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,4DAA4D;YAC5D,OAAO,EAAE,CAAC;QACX,CAAC;QACD,IAAI,sBAAsB,GAAG,0BAA0B,GAAG,UAAU,CAAC;QACrE,IACC,qBAAqB,CAAC,OAAO,EAAE,IAAI,KAAK,QAAQ;YAChD,qBAAqB,CAAC,OAAO,EAAE,IAAI,KAAK,gBAAgB,EACvD,CAAC;YACF,wDAAwD;YACxD,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;gBACnC,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAC9D,CAAC;YACD,qBAAqB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACpD,sBAAsB,GAAG,UAAU,CAAC;QACrC,CAAC;QACD,kEAAkE;QAClE,8DAA8D;QAC9D,MAAM,UAAU,GAAG,sBAAsB,CAAC,sBAAsB,CAAC,CAAC;QAClE,IAAI,UAAU,KAAK,sBAAsB,CAAC,MAAM,EAAE,CAAC;YAClD,uDAAuD;YACvD,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChC,uEAAuE;gBACvE,IAAI,EAAE,IAAI,EAAE,IAAmC;gBAC/C,IAAI,EAAE,sBAAsB;aAC5B,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACP,+DAA+D;YAC/D,2EAA2E;YAC3E,0EAA0E;YAC1E,wEAAwE;YACxE,+EAA+E;YAC/E,8EAA8E;YAC9E,8EAA8E;YAC9E,0DAA0D;YAC1D,MAAM,UAAU,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YACnE,MAAM,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC/D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,CACN;oBACC,uEAAuE;oBACvE,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,IAElB;oBACnB,IAAI,EAAE,UAAU;iBAChB,EACD,oBAAoB,CACpB,CAAC;YACH,CAAC;YACD,qBAAqB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACnE,sBAAsB,GAAG,SAAS,CAAC;QACpC,CAAC;QACD,OAAO,sBAAsB,CAAC;IAC/B,CAAC,EACD,CAAC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,CACvD,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACrC,CAAC,UAA0B,EAAE,qBAA6B,EAAE,EAAE;QAC7D,UAAU,CAAC,UAAU,CAAC,CAAC;QAEvB,IAAI,qBAAqB,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC;YAChD,OAAO,CAAC;gBACP,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;aACI,CAAC,CAAC;QAC3B,CAAC;IACF,CAAC,EACD,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAC/B,CAAC;IAEF,MAAM,wBAAwB,GAAG,WAAW,CAC3C,CAAC,oBAA4B,EAAE,EAAE;QAChC,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO;QACR,CAAC;QACD,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,qBAAqB,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACzD,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAC3D,CAAC,IAAI,EAAE,EAAE,CACR,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAAC,UAAU;oBAC7C,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAAC,SAAS;oBAC5C,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAAC,gBAAgB;oBACnD,IAAI,CAAC,MAAM,KAAK,kBAAkB,CAAC,SAAS;oBAC3C,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,kBAAkB,CAAC,SAAS,EAAE;oBACnD,CAAC,CAAC,IAAI,CACR,CAAC;gBAEF,MAAM,WAAW,GAAyB;oBACzC,GAAG,qBAAqB,CAAC,OAAO;oBAChC,KAAK,EAAE,YAAY;iBACnB,CAAC;gBACF,OAAO,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAC9D,CAAC;YACD,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CACN,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAC/D,oBAAoB,CACpB,CAAC;QACF,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC;IACrD,CAAC,EACD;QACC,OAAO;QACP,qBAAqB;QACrB,qBAAqB;QACrB,UAAU;QACV,eAAe;KACf,CACD,CAAC;IAEF,MAAM,gBAAgB,GAAG,WAAW,CACnC,CAAC,UAAiC,EAAE,oBAA4B,EAAE,EAAE;QACnE,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAC7D,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,+BAA+B,CAAC,oBAAoB,CAAC,CAAC;QACtD,OAAO,CACN;YACC,IAAI,EAAE,WAAW,CAAC,KAAK;YACvB,IAAI,EAAE,sBAAsB,CAC3B,UAAU,CAAC,KAAK,EAChB,MAAM,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAC5C,SAAS,EACT,MAAM,CAAC,QAAQ,EAAE,EACjB,0BAA0B,CAC1B;SACD,EACD,oBAAoB,CACpB,CAAC;QACF,+BAA+B,CAAC,oBAAoB,CAAC,CAAC;QACtD,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,sCAAsC;IACzD,CAAC,EACD;QACC,OAAO;QACP,qBAAqB;QACrB,qBAAqB;QACrB,MAAM;QACN,UAAU;QACV,+BAA+B;QAC/B,+BAA+B;KAC/B,CACD,CAAC;IAEF,MAAM,mBAAmB,GAAG,WAAW,CACtC,CAAC,IAAY,EAAE,oBAA4B,EAAE,EAAE;QAC9C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,OAAO;QACR,CAAC;QAED,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAC7D,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,oBAAoB,CAAC,CAAC;IACjE,CAAC,EACD,CAAC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CACjE,CAAC;IAEF,MAAM,mBAAmB,GAAG,WAAW,CACtC,CAAC,KAAgC,EAAE,oBAA4B,EAAE,EAAE;QAClE,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,MAAM,oBAAoB,GAEtB;YACH,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,SAAS;YACnD,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS;YAC9B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,yCAAyC;YACpE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,yCAAyC;YAChE,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,4CAA4C;YACvE,CAAC,YAAY,CAAC,QAAQ,CAAC,EACtB,+CAA+C;YAChD,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,0CAA0C;YACpE,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAChC,6CAA6C;YAC9C,CAAC,YAAY,CAAC,IAAI,CAAC,EAClB,wEAAwE;YACzE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,qCAAqC;YAC3D,CAAC,YAAY,CAAC,uBAAuB,CAAC,EACrC,kDAAkD;YACnD,CAAC,YAAY,CAAC,YAAY,CAAC,EAC1B,kDAAkD;YACnD,CAAC,YAAY,CAAC,oBAAoB,CAAC,EAClC,+CAA+C;YAChD,CAAC,YAAY,CAAC,wBAAwB,CAAC,EACtC,mDAAmD;YACpD,CAAC,YAAY,CAAC,QAAQ,CAAC,EACtB,kDAAkD;SACnD,CAAC;QAEF,MAAM,OAAO,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,CACN;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,OAAO,OAAO,EAAE;aACtB,EACD,oBAAoB,CACpB,CAAC;QACH,CAAC;IACF,CAAC,EACD,CAAC,OAAO,CAAC,CACT,CAAC;IAEF,MAAM,0BAA0B,GAAG,WAAW,CAC7C,CACC,UAAoD,EACpD,oBAA4B,EAC3B,EAAE;QACH,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAC7D,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CACpC,CAAC,CAAC,UAAU,EAAE,kBAAkB,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CACrD,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAC/B,CAAC,CAAC,UAAU,EAAE,aAAa,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAChD,CAAC;QAEF,OAAO,CACN;YACC,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,2BAA2B,kBAAkB,QAAQ,aAAa,IAAI;YAC5E,aAAa,EAAE,gCAAgC;YAC/C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;YAC3B,YAAY,EAAE,CAAC;SACI,EACpB,oBAAoB,CACpB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAC/D,CAAC;IAEF,MAAM,0BAA0B,GAAG,WAAW,CAC7C,GAAG,EAAE,CACJ,OAAO,CAAC;QACP,IAAI,EAAE,MAAM;QACZ,IAAI,EACH,wDAAwD,MAAM,CAAC,kBAAkB,EAAE,IAAI;YACvF,qDAAqD;KACtD,CAAC,EACH,CAAC,OAAO,EAAE,MAAM,CAAC,CACjB,CAAC;IAEF,MAAM,oCAAoC,GAAG,WAAW,CACvD,CAAC,0BAAkC,EAAE,mBAA2B,EAAE,EAAE;QACnE,cAAc,CAAC,IAAI,CAAC,CAAC;QAErB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE5C,MAAM,uBAAuB,GAC5B,KAAK,GAAG,CAAC,IAAI,mBAAmB,GAAG,KAAK,GAAG,IAAI,CAAC;QAEjD,IAAI,IAAI,GAAG,yBAAyB,0BAA0B,mDAAmD,mBAAmB,CAAC,cAAc,EAAE,gBAAgB,CAAC;QAEtK,IAAI,uBAAuB,EAAE,CAAC;YAC7B,IAAI;gBACH,4GAA4G,CAAC;QAC/G,CAAC;QAED,OAAO,CAAC;YACP,IAAI,EAAE,MAAM;YACZ,IAAI;SACJ,CAAC,CAAC;IACJ,CAAC,EACD,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CACjC,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CACvC,CAAC,UAAkB,EAAE,oBAA4B,EAAE,EAAE;QACpD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;YAC7C,OAAO;QACR,CAAC;QACD,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAC7D,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CACN;YACC,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,UAAU;SACG,EACrB,oBAAoB,CACpB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CACjE,CAAC;IAEF,MAAM,gCAAgC,GAAG,WAAW,CACnD,CACC,MAAc,EACd,oBAA4B,EAC5B,aAAsB,EACtB,cAAwB,EACvB,EAAE;QACH,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAC7D,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CACN;YACC,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,4BAA4B,aAAa,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE;SACnE,EACD,oBAAoB,CACpB,CAAC;QACF,+BAA+B,CAAC,oBAAoB,CAAC,CAAC;QACtD,IAAI,cAAc,EAAE,CAAC;YACpB,OAAO,CACN;gBACC,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,wCAAwC;aAC9C,EACD,oBAAoB,CACpB,CAAC;QACH,CAAC;QACD,eAAe,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,EACD;QACC,OAAO;QACP,qBAAqB;QACrB,qBAAqB;QACrB,eAAe;QACf,+BAA+B;KAC/B,CACD,CAAC;IAEF,MAAM,gCAAgC,GAAG,WAAW,CACnD,CACC,MAAc,EACd,oBAA4B,EAC5B,aAAsB,EACtB,cAAwB,EACvB,EAAE;QACH,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;YAC7D,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CACN;YACC,IAAI,EAAE,WAAW,CAAC,OAAO;YACzB,IAAI,EAAE,4BAA4B,aAAa,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE;SACnE,EACD,oBAAoB,CACpB,CAAC;QACF,+BAA+B,CAAC,oBAAoB,CAAC,CAAC;QACtD,IAAI,cAAc,EAAE,CAAC;YACpB,OAAO,CACN;gBACC,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,wCAAwC;aAC9C,EACD,oBAAoB,CACpB,CAAC;QACH,CAAC;IACF,CAAC,EACD;QACC,OAAO;QACP,qBAAqB;QACrB,qBAAqB;QACrB,+BAA+B;KAC/B,CACD,CAAC;IAEF,MAAM,yBAAyB,GAAG,WAAW,CAC5C,KAAK,EACJ,MAAkC,EAClC,oBAA4B,EAC5B,MAAmB,EACe,EAAE;QACpC,IAAI,mBAAmB,GAAG,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAA0B,EAAE,CAAC;QACnD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAClC,IACC,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,OAAO;gBAC5C,UAAU,CAAC,OAAO,KAAK,IAAI,EAC1B,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACpB,KAAK,qBAAqB,CAAC,OAAO;oBACjC,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtC,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;oBACtD,MAAM;gBACP,KAAK,qBAAqB,CAAC,OAAO;oBACjC,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtC,mBAAmB,GAAG,kBAAkB,CACvC,KAAK,CAAC,KAAK,EACX,mBAAmB,EACnB,oBAAoB,CACpB,CAAC;oBACF,MAAM;gBACP,KAAK,qBAAqB,CAAC,eAAe;oBACzC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACnC,MAAM;gBACP,KAAK,qBAAqB,CAAC,aAAa;oBACvC,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;oBAC/C,MAAM;gBACP,KAAK,qBAAqB,CAAC,KAAK;oBAC/B,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;oBACpD,MAAM;gBACP,KAAK,qBAAqB,CAAC,qBAAqB;oBAC/C,gCAAgC,CAC/B,KAAK,CAAC,KAAK,CAAC,MAAM,EAClB,oBAAoB,EACpB,KAAK,CAAC,KAAK,CAAC,aAAa,EACzB,KAAK,CAAC,KAAK,CAAC,cAAc,CAC1B,CAAC;oBACF,MAAM;gBACP,KAAK,qBAAqB,CAAC,qBAAqB;oBAC/C,gCAAgC,CAC/B,KAAK,CAAC,KAAK,CAAC,MAAM,EAClB,oBAAoB,EACpB,KAAK,CAAC,KAAK,CAAC,aAAa,EACzB,KAAK,CAAC,KAAK,CAAC,cAAc,CAC1B,CAAC;oBACF,MAAM;gBACP,KAAK,qBAAqB,CAAC,cAAc;oBACxC,0BAA0B,CAAC,KAAK,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;oBAC9D,MAAM;gBACP,KAAK,qBAAqB,CAAC,oBAAoB,CAAC;gBAChD,KAAK,qBAAqB,CAAC,gBAAgB;oBAC1C,aAAa;oBACb,MAAM;gBACP,KAAK,qBAAqB,CAAC,eAAe;oBACzC,0BAA0B,EAAE,CAAC;oBAC7B,MAAM;gBACP,KAAK,qBAAqB,CAAC,yBAAyB;oBACnD,oCAAoC,CACnC,KAAK,CAAC,KAAK,CAAC,0BAA0B,EACtC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAC/B,CAAC;oBACF,MAAM;gBACP,KAAK,qBAAqB,CAAC,QAAQ;oBAClC,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;oBACjD,MAAM;gBACP,KAAK,qBAAqB,CAAC,QAAQ;oBAClC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;oBACvD,MAAM;gBACP,KAAK,qBAAqB,CAAC,SAAS;oBACnC,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;oBACxD,MAAM;gBACP,KAAK,qBAAqB,CAAC,YAAY;oBACtC,kEAAkE;oBAClE,iDAAiD;oBACjD,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC/B,MAAM;gBACP,KAAK,qBAAqB,CAAC,KAAK,CAAC;gBACjC,KAAK,qBAAqB,CAAC,aAAa;oBACvC,mCAAmC;oBACnC,MAAM;gBACP,OAAO,CAAC,CAAC,CAAC;oBACT,kCAAkC;oBAClC,MAAM,WAAW,GAAU,KAAK,CAAC;oBACjC,OAAO,WAAW,CAAC;gBACpB,CAAC;YACF,CAAC;QACF,CAAC;QACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;gBACnC,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBAC7D,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,sBAAsB,CAAC,SAAS,CAAC;IACzC,CAAC,EACD;QACC,kBAAkB;QAClB,kBAAkB;QAClB,UAAU;QACV,wBAAwB;QACxB,gBAAgB;QAChB,iBAAiB;QACjB,0BAA0B;QAC1B,mBAAmB;QACnB,0BAA0B;QAC1B,oCAAoC;QACpC,mBAAmB;QACnB,oBAAoB;QACpB,gCAAgC;QAChC,gCAAgC;QAChC,OAAO;QACP,qBAAqB;QACrB,qBAAqB;QACrB,UAAU;KACV,CACD,CAAC;IACF,MAAM,WAAW,GAAG,WAAW,CAC9B,KAAK,EACJ,KAAoB,EACpB,OAAqC,EACrC,SAAkB,EACjB,EAAE,CACH,iBAAiB,CAChB;QACC,SAAS,EAAE,OAAO,EAAE,cAAc;YACjC,CAAC,CAAC,kBAAkB,CAAC,YAAY;YACjC,CAAC,CAAC,kBAAkB,CAAC,UAAU;QAChC,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE;KAChC,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE;QACpC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QAE3B,IACC,CAAC,eAAe,CAAC,OAAO;YACvB,cAAc,KAAK,cAAc,CAAC,UAAU;YAC5C,cAAc,KAAK,cAAc,CAAC,sBAAsB,CAAC;YAC1D,CAAC,OAAO,EAAE,cAAc;YAExB,OAAO;QACR,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QACjD,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC;QAEnC,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAExC,wEAAwE;QACxE,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;YAC9B,8BAA8B,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,qBAAqB,CAC3B,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CACxC,CAAC;YACF,2BAA2B,CAAC,OAAO,GAAG,CAAC,CAAC;YACxC,+BAA+B,CAAC,OAAO,GAAG,KAAK,CAAC;YAChD,+BAA+B,CAAC,OAAO,GAAG,KAAK,CAAC;QACjD,CAAC;QAED,kBAAkB,CAAC,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC;QACtD,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;QAEjC,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,SAAS,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE,WAAW,cAAc,EAAE,EAAE,CAAC;QACnE,CAAC;QACD,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,MAAM,qBAAqB,CACjE,KAAK,EACL,oBAAoB,EACpB,WAAW,EACX,SAAU,CACV,CAAC;YAEF,IAAI,CAAC,aAAa,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC5C,OAAO;YACR,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;gBAC9B,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;oBACrC,wCAAwC;oBACxC,MAAM,UAAU,GAAG,WAAW,CAAC;oBAC/B,aAAa,CACZ,MAAM,EACN,IAAI,eAAe,CAClB,UAAU,CAAC,MAAM,EACjB,SAAU,EACV,MAAM,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAC5C,UAAU,CACV,CACD,CAAC;gBACH,CAAC;gBACD,cAAc,EAAE,CAAC;gBACjB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,2CAA2C;YAC9D,CAAC;YAED,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,CAAC;YAEnB,kEAAkE;YAClE,YAAY,CAAC,OAAO,GAAG,WAAW,CAAC;YACnC,eAAe,CAAC,OAAO,GAAG,SAAU,CAAC;YAErC,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAC5C,WAAW,EACX,WAAW,EACX,SAAU,EACV,SAAS,EACT,KAAK,EACL,KAAK,CACL,CAAC;gBACF,MAAM,gBAAgB,GAAG,MAAM,yBAAyB,CACvD,MAAM,EACN,oBAAoB,EACpB,WAAW,CACX,CAAC;gBAEF,IAAI,gBAAgB,KAAK,sBAAsB,CAAC,aAAa,EAAE,CAAC;oBAC/D,OAAO;gBACR,CAAC;gBAED,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;oBACnC,OAAO,CAAC,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;oBAC7D,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBACD,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;oBAC7B,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;oBAChC,2EAA2E;oBAC3E,mCAAmC,CAAC;wBACnC,UAAU,EAAE,KAAK,EAAE,MAElB,EAAE,EAAE;4BACJ,mCAAmC,CAAC,IAAI,CAAC,CAAC;4BAE1C,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gCACxC,MAAM;qCACJ,eAAe,EAAE;qCACjB,uBAAuB,EAAE;qCACzB,iBAAiB,EAAE,CAAC;gCACtB,OAAO,CAAC;oCACP,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE,wEAAwE;iCAC9E,CAAC,CAAC;gCAEH,IAAI,YAAY,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,CAAC;oCACrD,MAAM,WAAW,CAChB,YAAY,CAAC,OAAO,EACpB,EAAE,cAAc,EAAE,IAAI,EAAE,EACxB,eAAe,CAAC,OAAO,CACvB,CAAC;gCACH,CAAC;4BACF,CAAC;iCAAM,CAAC;gCACP,OAAO,CAAC;oCACP,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE,mIAAmI;iCACzI,CAAC,CAAC;4BACJ,CAAC;wBACF,CAAC;qBACD,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACzB,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC3B,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;oBACxC,WAAW,CAAC,qCAAqC,CAAC,CAAC;gBACpD,CAAC;qBAAM;gBACN,4GAA4G;gBAC5G,KAAK,YAAY,uBAAuB;oBACxC,KAAK,CAAC,WAAW,EAChB,CAAC;oBACF,8DAA8D;gBAC/D,CAAC;qBAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC/D,+BAA+B,CAAC,oBAAoB,CAAC,CAAC;oBACtD,OAAO,CACN;wBACC,IAAI,EAAE,WAAW,CAAC,KAAK;wBACvB,IAAI,EAAE,sBAAsB,CAC3B,eAAe,CAAC,KAAK,CAAC,IAAI,eAAe,EACzC,MAAM,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAC5C,SAAS,EACT,MAAM,CAAC,QAAQ,EAAE,EACjB,0BAA0B,CAC1B;qBACD,EACD,oBAAoB,CACpB,CAAC;oBACF,+BAA+B,CAAC,oBAAoB,CAAC,CAAC;gBACvD,CAAC;YACF,CAAC;oBAAS,CAAC;gBACV,IAAI,gBAAgB,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;oBAC1C,eAAe,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CACD,EACF;QACC,cAAc;QACd,8BAA8B;QAC9B,qBAAqB;QACrB,yBAAyB;QACzB,qBAAqB;QACrB,OAAO;QACP,qBAAqB;QACrB,YAAY;QACZ,WAAW;QACX,MAAM;QACN,cAAc;QACd,cAAc;QACd,UAAU;QACV,+BAA+B;QAC/B,+BAA+B;QAC/B,eAAe;QACf,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe;QACxC,eAAe;KACf,CACD,CAAC;IAEF,MAAM,wBAAwB,GAAG,WAAW,CAC3C,KAAK,EAAE,eAA6B,EAAE,EAAE;QACvC,IACC,uBAAuB,CAAC,OAAO,KAAK,YAAY,CAAC,IAAI;YACrD,eAAe,KAAK,YAAY,CAAC,IAAI;YACrC,cAAc,KAAK,cAAc,CAAC,IAAI,EACrC,CAAC;YACF,IAAI,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACJ,MAAM,YAAY,CAAC,UAAU,CAAC;wBAC7B,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE;4BACN;gCACC,IAAI,EAAE,sBAAsB,CAAC,eAAe,EAAE,IAAI,CAAC;6BACnD;yBACD;qBACD,CAAC,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,cAAc,CACb,6CAA6C,eAAe,CAAC,KAAK,CAAC,EAAE,CACrE,CAAC;oBACF,OAAO,CAAC;wBACP,IAAI,EAAE,WAAW,CAAC,KAAK;wBACvB,IAAI,EAAE,4JAA4J;qBAClK,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;QACD,uBAAuB,CAAC,OAAO,GAAG,eAAe,CAAC;QAElD,wEAAwE;QACxE,IACC,eAAe,KAAK,YAAY,CAAC,IAAI;YACrC,eAAe,KAAK,YAAY,CAAC,SAAS,EACzC,CAAC;YACF,IAAI,qBAAqB,GAAG,SAAS,CAAC,MAAM,CAC3C,CAAC,IAAI,EAAkC,EAAE,CACxC,IAAI,CAAC,MAAM,KAAK,mBAAmB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAC/D,CAAC;YAEF,oEAAoE;YACpE,IAAI,eAAe,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;gBAChD,qBAAqB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7D,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CACtC,CAAC;YACH,CAAC;YAED,6DAA6D;YAC7D,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;gBAC1C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACxB,IAAI,CAAC;wBACJ,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC;4BACpC,IAAI,EAAE,cAAc,CAAC,0BAA0B;4BAC/C,aAAa,EAAE,IAAI,CAAC,aAAa;4BACjC,SAAS,EAAE,IAAI;4BACf,wBAAwB,EAAE,KAAK;4BAC/B,OAAO,EAAE,uBAAuB,CAAC,WAAW;yBAC5C,CAAC,CAAC;oBACJ,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,WAAW,CAAC,IAAI,CACf,oCAAoC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAC1D,KAAK,CACL,CAAC;oBACH,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC,EACD,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC,CAC1E,CAAC;IAEF,MAAM,oBAAoB,GAAG,WAAW,CACvC,KAAK,EAAE,+BAAkD,EAAE,EAAE;QAC5D,MAAM,8BAA8B,GACnC,+BAA+B,CAAC,MAAM,CACrC,CACC,EAAmB,EACyC,EAAE;YAC9D,MAAM,eAAe,GACpB,EAAE,CAAC,MAAM,KAAK,SAAS;gBACvB,EAAE,CAAC,MAAM,KAAK,OAAO;gBACrB,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC;YAE3B,IAAI,eAAe,EAAE,CAAC;gBACrB,MAAM,wBAAwB,GAAG,EAEN,CAAC;gBAC5B,OAAO,CACN,wBAAwB,CAAC,QAAQ,EAAE,aAAa,KAAK,SAAS,CAC9D,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CACD,CAAC;QAEH,gEAAgE;QAChE,MAAM,WAAW,GAAG,8BAA8B,CAAC,MAAM,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAClC,CAAC;QACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,oBAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAE/D,IAAI,YAAY,EAAE,CAAC;gBAClB,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBAChC,8DAA8D;oBAC9D,oEAAoE;oBACpE,+DAA+D;oBAC/D,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;wBACpD,SAAS;oBACV,CAAC;oBAED,wEAAwE;oBACxE,oEAAoE;oBACpE,kEAAkE;oBAClE,MAAM,YAAY,CAAC,UAAU,CAAC;wBAC7B,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACN;gCACC,YAAY,EAAE;oCACb,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;oCACvB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;iCACvB;6BACD;yBACD;qBACD,CAAC,CAAC;oBACH,MAAM,YAAY,CAAC,UAAU,CAAC;wBAC7B,IAAI,EAAE,MAAM;wBACZ,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;qBAClC,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;QAED,4EAA4E;QAC5E,MAAM,wBAAwB,GAAG,8BAA8B,CAAC,MAAM,CACrE,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa;YAChC,CAAC,CAAC,MAAM,KAAK,SAAS;YACtB,CAAC,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CACvD,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,8BAA8B,EAAE,CAAC;YACvD,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,gBAAgB,EAAE,CAAC;gBACtB,sBAAsB,CACrB,gBAAgB,CAAC,GAAG,EACpB,gBAAgB,CAAC,OAAO,EACxB,gBAAgB,CAAC,aAAa,CAC9B,CAAC;YACH,CAAC;QACF,CAAC;QAED,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,kDAAkD;YAClD,KAAK,oBAAoB,EAAE,CAAC;YAC5B,uEAAuE;YACvE,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACtC,uBAAuB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CACrD,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,8BAA8B,CAAC,MAAM,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CACnC,CAAC;QAEF,IAAI,mBAAmB,EAAE,CAAC;YACzB,sEAAsE;YACtE,2BAA2B,CAAC,OAAO,IAAI,WAAW,CAAC,MAAM,CACxD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,kBAAkB,CAAC,KAAK,CAC9C,CAAC,MAAM,CAAC;QACV,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACR,CAAC;QAED,4DAA4D;QAC5D,MAAM,iBAAiB,GAAG,WAAW,CAAC,IAAI,CACzC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,KAAK,aAAa,CAAC,cAAc,CAC9D,CAAC;QAEF,IAAI,iBAAiB,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;YACvC,+BAA+B,EAAE,CAAC;YAClC,OAAO,CAAC;gBACP,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,4BAA4B,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE;aAC5E,CAAC,CAAC;YACH,+BAA+B,EAAE,CAAC;YAClC,eAAe,CAAC,KAAK,CAAC,CAAC;YAEvB,MAAM,wBAAwB,GAAG,WAAW,CAAC,GAAG,CAC/C,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CACrC,CAAC;YACF,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;YAC/C,OAAO;QACR,CAAC;QAED,sEAAsE;QACtE,uFAAuF;QACvF,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CACzC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CACrC,CAAC;QACF,MAAM,2BAA2B,GAChC,eAAe,CAAC,MAAM,GAAG,CAAC;YAC1B,eAAe,CAAC,KAAK,CACpB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,kBAAkB,CAAC,SAAS,CAClD,CAAC;QACH,MAAM,iBAAiB,GACtB,WAAW,CAAC,MAAM,GAAG,CAAC;YACtB,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAEvE,IAAI,2BAA2B,IAAI,iBAAiB,EAAE,CAAC;YACtD,gEAAgE;YAChE,kFAAkF;YAClF,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC/B,OAAO,CAAC;oBACP,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,IAAI,EAAE,oBAAoB;iBAC1B,CAAC,CAAC;YACJ,CAAC;YACD,eAAe,CAAC,KAAK,CAAC,CAAC;YAEvB,IAAI,YAAY,EAAE,CAAC;gBAClB,gEAAgE;gBAChE,+CAA+C;gBAC/C,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CACxC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAC7C,CAAC;gBACF,mEAAmE;gBACnE,YAAY,CAAC,UAAU,CAAC;oBACvB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,aAAa;iBACpB,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,wBAAwB,GAAG,WAAW,CAAC,GAAG,CAC/C,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CACrC,CAAC;YACF,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;YAC/C,OAAO;QACR,CAAC;QAED,MAAM,eAAe,GAAW,WAAW,CAAC,OAAO,CAClD,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAC7C,CAAC;QAEF,IAAI,eAAe,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;YACnC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACjC,eAAe,CAAC,OAAO,CAAC;oBACvB,IAAI,EAAE,2BAA2B,CAAC,QAAQ,CAAC;iBAC3C,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,MAAM,wBAAwB,GAAG,WAAW,CAAC,GAAG,CAC/C,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CACrC,CAAC;QAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CACjC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CACxC,CAAC;QAEF,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;QAE/C,0DAA0D;QAC1D,IAAI,2BAA2B,EAAE,CAAC;YACjC,OAAO;QACR,CAAC;QAED,mEAAmE;QACnE,WAAW,CACV,eAAe,EACf;YACC,cAAc,EAAE,IAAI;SACpB,EACD,UAAU,CAAC,CAAC,CAAC,CACb,CAAC;IACH,CAAC,EACD;QACC,WAAW;QACX,oBAAoB;QACpB,YAAY;QACZ,oBAAoB;QACpB,2BAA2B;QAC3B,OAAO;QACP,sBAAsB;QACtB,eAAe;QACf,mBAAmB;QACnB,+BAA+B;QAC/B,+BAA+B;QAC/B,eAAe;KACf,CACD,CAAC;IAEF,MAAM,mBAAmB,GAAG,OAAO,CAClC,GAAG,EAAE,CACJ,CAAC,kBAAkB,EAAE,GAAG,qBAAqB,CAAC,CAAC,MAAM,CACpD,CAAC,CAAC,EAA6B,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAC/D,EACF,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAC3C,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,uBAAuB,GAAG,KAAK,IAAI,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAAE,CAAC;gBACvC,OAAO;YACR,CAAC;YACD,MAAM,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAC3C,CAAC,QAAQ,EAAE,EAAE,CACZ,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC1C,QAAQ,CAAC,MAAM,KAAK,kBAAkB,CAAC,gBAAgB,CACxD,CAAC;YAEF,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjB,cAAc,CACb,qIAAqI,CACrI,CAAC;oBACF,OAAO;gBACR,CAAC;gBAED,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,MAAM,0BAA0B,CAGtE,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAC/C,UAAU,EACV,YAAY,EACZ,OAAO,CACP,CAAC;gBAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBAChC,CAAC;gBAED,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACjC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,4BAA4B,EAAE,CAAC;oBACpE,IAAI,CAAC;wBACJ,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBACnD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,kBAAkB,EAAE,CAAC;4BACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;4BACpD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACvC,CAAC;oBACF,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,cAAc,CACb,oCAAoC,eAAe,CAAC,KAAK,CAAC,EAAE,CAC5D,CAAC;oBACH,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC,CAAC;QACF,mEAAmE;QACnE,uBAAuB,EAAE,CAAC;IAC3B,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAE3E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC9B,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,CACtB,CAAC;IAEF,OAAO;QACN,cAAc;QACd,WAAW;QACX,SAAS;QACT,mBAAmB;QACnB,OAAO;QACP,oBAAoB;QACpB,gBAAgB,EAAE,SAAS;QAC3B,wBAAwB;QACxB,WAAW;QACX,gCAAgC;QAChC,cAAc;QACd,mBAAmB;QACnB,uBAAuB;QACvB,qBAAqB;QACrB,0BAA0B;QAC1B,eAAe;QACf,qBAAqB;QACrB,WAAW;KACX,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { McpToolResult } from "../types.js";
|
|
2
|
+
export interface McpConnectionOptions {
|
|
3
|
+
command: string;
|
|
4
|
+
args?: string[];
|
|
5
|
+
env?: Record<string, string>;
|
|
6
|
+
cwd?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface McpToolInputSchema {
|
|
9
|
+
type: string;
|
|
10
|
+
properties?: Record<string, {
|
|
11
|
+
type?: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
}>;
|
|
14
|
+
required?: string[];
|
|
15
|
+
}
|
|
16
|
+
export interface McpToolInfo {
|
|
17
|
+
name: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
inputSchema?: McpToolInputSchema;
|
|
20
|
+
}
|
|
21
|
+
export declare class McpClientService {
|
|
22
|
+
private client;
|
|
23
|
+
private transport;
|
|
24
|
+
private _isConnected;
|
|
25
|
+
get isConnected(): boolean;
|
|
26
|
+
connect(options: McpConnectionOptions): Promise<void>;
|
|
27
|
+
listTools(): Promise<McpToolInfo[]>;
|
|
28
|
+
callTool(name: string, args: Record<string, unknown>): Promise<McpToolResult>;
|
|
29
|
+
disconnect(): Promise<void>;
|
|
30
|
+
private ensureConnected;
|
|
31
|
+
private cleanupResources;
|
|
32
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { Client } from "@modelcontextprotocol/sdk/client";
|
|
2
|
+
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
3
|
+
import { debugLogger } from "../utils/debugLogger.js";
|
|
4
|
+
const MAX_RETRIES = 3;
|
|
5
|
+
const RETRY_DELAY_MS = 1000;
|
|
6
|
+
export class McpClientService {
|
|
7
|
+
client = null;
|
|
8
|
+
transport = null;
|
|
9
|
+
_isConnected = false;
|
|
10
|
+
get isConnected() {
|
|
11
|
+
return this._isConnected;
|
|
12
|
+
}
|
|
13
|
+
async connect(options) {
|
|
14
|
+
if (this._isConnected) {
|
|
15
|
+
debugLogger.debug("[McpClient] Already connected, skipping.");
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
let lastError = null;
|
|
19
|
+
for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
|
|
20
|
+
try {
|
|
21
|
+
debugLogger.debug(`[McpClient] Connection attempt ${attempt}/${MAX_RETRIES}...`);
|
|
22
|
+
this.transport = new StdioClientTransport({
|
|
23
|
+
command: options.command,
|
|
24
|
+
args: options.args,
|
|
25
|
+
env: Object.fromEntries(Object.entries({ ...process.env, ...options.env }).filter((entry) => entry[1] !== undefined)),
|
|
26
|
+
cwd: options.cwd,
|
|
27
|
+
stderr: "pipe",
|
|
28
|
+
});
|
|
29
|
+
this.client = new Client({
|
|
30
|
+
name: "obsidian-cli-agent",
|
|
31
|
+
version: "1.0.0",
|
|
32
|
+
});
|
|
33
|
+
this.transport.stderr?.on("data", (chunk) => {
|
|
34
|
+
const text = chunk.toString().trim();
|
|
35
|
+
if (!text) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (!text.startsWith("File added:") &&
|
|
39
|
+
!text.startsWith("Frontmatter")) {
|
|
40
|
+
debugLogger.debug(`[McpServer:stderr] ${text}`);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
await this.client.connect(this.transport);
|
|
44
|
+
this._isConnected = true;
|
|
45
|
+
debugLogger.info("[McpClient] Successfully connected to MCP server.");
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
lastError = err instanceof Error ? err : new Error(String(err));
|
|
50
|
+
debugLogger.error(`[McpClient] Connection attempt ${attempt} failed:`, lastError.message);
|
|
51
|
+
await this.cleanupResources();
|
|
52
|
+
if (attempt < MAX_RETRIES) {
|
|
53
|
+
await sleep(RETRY_DELAY_MS * attempt);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
throw new Error(`MCP 서버 연결 실패 (${MAX_RETRIES}회 시도): ${lastError?.message ?? "Unknown error"}`);
|
|
58
|
+
}
|
|
59
|
+
async listTools() {
|
|
60
|
+
this.ensureConnected();
|
|
61
|
+
const client = this.client;
|
|
62
|
+
const result = await client.listTools();
|
|
63
|
+
return result.tools.map((tool) => ({
|
|
64
|
+
name: tool.name,
|
|
65
|
+
description: tool.description,
|
|
66
|
+
inputSchema: tool.inputSchema,
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
async callTool(name, args) {
|
|
70
|
+
this.ensureConnected();
|
|
71
|
+
const client = this.client;
|
|
72
|
+
debugLogger.debug(`[McpClient] Calling tool: ${name}`, JSON.stringify(args).slice(0, 200));
|
|
73
|
+
try {
|
|
74
|
+
const result = await client.callTool({ name, arguments: args });
|
|
75
|
+
debugLogger.debug(`[McpClient] Tool ${name} completed (isError: ${result.isError ?? false})`);
|
|
76
|
+
return {
|
|
77
|
+
isError: result.isError ?? false,
|
|
78
|
+
content: (result.content ?? []),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
83
|
+
debugLogger.error(`[McpClient] Tool ${name} failed:`, errorMessage);
|
|
84
|
+
return {
|
|
85
|
+
isError: true,
|
|
86
|
+
content: [{ type: "text", text: `도구 실행 실패: ${errorMessage}` }],
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
async disconnect() {
|
|
91
|
+
debugLogger.info("[McpClient] Disconnecting...");
|
|
92
|
+
try {
|
|
93
|
+
if (this.client) {
|
|
94
|
+
await this.client.close();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
debugLogger.error("[McpClient] Error during client close:", err);
|
|
99
|
+
}
|
|
100
|
+
await this.cleanupResources();
|
|
101
|
+
debugLogger.info("[McpClient] Disconnected.");
|
|
102
|
+
}
|
|
103
|
+
ensureConnected() {
|
|
104
|
+
if (!this._isConnected || !this.client) {
|
|
105
|
+
throw new Error("MCP 클라이언트가 연결되지 않았습니다. connect()를 먼저 호출하세요.");
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async cleanupResources() {
|
|
109
|
+
try {
|
|
110
|
+
if (this.transport) {
|
|
111
|
+
await this.transport.close();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch { }
|
|
115
|
+
this.client = null;
|
|
116
|
+
this.transport = null;
|
|
117
|
+
this._isConnected = false;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function sleep(ms) {
|
|
121
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=McpClientService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"McpClientService.js","sourceRoot":"","sources":["../../../src/cli/services/McpClientService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { McpServerConfig } from "../config/mcpServersConfig.js";
|
|
2
|
+
import type { McpConnectionState, McpToolResult } from "../types.js";
|
|
3
|
+
import type { McpToolInfo } from "./McpClientService.js";
|
|
4
|
+
export interface ServerConnectionInfo {
|
|
5
|
+
state: McpConnectionState;
|
|
6
|
+
toolCount: number;
|
|
7
|
+
error: Error | null;
|
|
8
|
+
}
|
|
9
|
+
export declare class McpManager {
|
|
10
|
+
private services;
|
|
11
|
+
private configs;
|
|
12
|
+
private connectionStates;
|
|
13
|
+
private connectionErrors;
|
|
14
|
+
private toolRegistry;
|
|
15
|
+
private serverTools;
|
|
16
|
+
get connections(): Map<string, ServerConnectionInfo>;
|
|
17
|
+
get allTools(): McpToolInfo[];
|
|
18
|
+
get toolsByServer(): Map<string, McpToolInfo[]>;
|
|
19
|
+
get isPartiallyReady(): boolean;
|
|
20
|
+
get connectedCount(): number;
|
|
21
|
+
get serverCount(): number;
|
|
22
|
+
get errors(): Map<string, Error>;
|
|
23
|
+
connectAll(serverConfigs: McpServerConfig[], onStateChange?: () => void): Promise<void>;
|
|
24
|
+
disconnectAll(): Promise<void>;
|
|
25
|
+
callTool(name: string, args: Record<string, unknown>): Promise<McpToolResult>;
|
|
26
|
+
private connectSingle;
|
|
27
|
+
private registerTools;
|
|
28
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { debugLogger } from "../utils/debugLogger.js";
|
|
2
|
+
import { McpClientService } from "./McpClientService.js";
|
|
3
|
+
export class McpManager {
|
|
4
|
+
services = new Map();
|
|
5
|
+
configs = new Map();
|
|
6
|
+
connectionStates = new Map();
|
|
7
|
+
connectionErrors = new Map();
|
|
8
|
+
toolRegistry = new Map();
|
|
9
|
+
serverTools = new Map();
|
|
10
|
+
get connections() {
|
|
11
|
+
const result = new Map();
|
|
12
|
+
for (const [name] of this.configs) {
|
|
13
|
+
result.set(name, {
|
|
14
|
+
state: this.connectionStates.get(name) ?? "disconnected",
|
|
15
|
+
toolCount: this.serverTools.get(name)?.length ?? 0,
|
|
16
|
+
error: this.connectionErrors.get(name) ?? null,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
get allTools() {
|
|
22
|
+
return Array.from(this.toolRegistry.values()).map((entry) => entry.tool);
|
|
23
|
+
}
|
|
24
|
+
get toolsByServer() {
|
|
25
|
+
return new Map(this.serverTools);
|
|
26
|
+
}
|
|
27
|
+
get isPartiallyReady() {
|
|
28
|
+
for (const state of this.connectionStates.values()) {
|
|
29
|
+
if (state === "connected")
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
get connectedCount() {
|
|
35
|
+
let count = 0;
|
|
36
|
+
for (const state of this.connectionStates.values()) {
|
|
37
|
+
if (state === "connected")
|
|
38
|
+
count++;
|
|
39
|
+
}
|
|
40
|
+
return count;
|
|
41
|
+
}
|
|
42
|
+
get serverCount() {
|
|
43
|
+
return this.configs.size;
|
|
44
|
+
}
|
|
45
|
+
get errors() {
|
|
46
|
+
return new Map(this.connectionErrors);
|
|
47
|
+
}
|
|
48
|
+
async connectAll(serverConfigs, onStateChange) {
|
|
49
|
+
for (const config of serverConfigs) {
|
|
50
|
+
this.configs.set(config.name, config);
|
|
51
|
+
this.connectionStates.set(config.name, "connecting");
|
|
52
|
+
const service = new McpClientService();
|
|
53
|
+
this.services.set(config.name, service);
|
|
54
|
+
}
|
|
55
|
+
onStateChange?.();
|
|
56
|
+
const results = await Promise.allSettled(serverConfigs.map((config) => this.connectSingle(config, onStateChange)));
|
|
57
|
+
const succeeded = results.filter((r) => r.status === "fulfilled").length;
|
|
58
|
+
const failed = results.filter((r) => r.status === "rejected").length;
|
|
59
|
+
debugLogger.info(`[McpManager] 연결 완료: ${succeeded}/${serverConfigs.length} 성공, ${failed} 실패`);
|
|
60
|
+
}
|
|
61
|
+
async disconnectAll() {
|
|
62
|
+
debugLogger.info("[McpManager] 모든 서버 연결 해제 중...");
|
|
63
|
+
const disconnectPromises = [];
|
|
64
|
+
for (const [name, service] of this.services) {
|
|
65
|
+
disconnectPromises.push(service.disconnect().catch((err) => {
|
|
66
|
+
debugLogger.error(`[McpManager] "${name}" 연결 해제 실패:`, err);
|
|
67
|
+
}));
|
|
68
|
+
}
|
|
69
|
+
await Promise.allSettled(disconnectPromises);
|
|
70
|
+
this.services.clear();
|
|
71
|
+
this.configs.clear();
|
|
72
|
+
this.connectionStates.clear();
|
|
73
|
+
this.connectionErrors.clear();
|
|
74
|
+
this.toolRegistry.clear();
|
|
75
|
+
this.serverTools.clear();
|
|
76
|
+
debugLogger.info("[McpManager] 모든 서버 연결 해제 완료.");
|
|
77
|
+
}
|
|
78
|
+
async callTool(name, args) {
|
|
79
|
+
const route = this.toolRegistry.get(name);
|
|
80
|
+
if (!route) {
|
|
81
|
+
return {
|
|
82
|
+
isError: true,
|
|
83
|
+
content: [
|
|
84
|
+
{
|
|
85
|
+
type: "text",
|
|
86
|
+
text: `도구 "${name}"을(를) 찾을 수 없습니다. /tools 명령으로 사용 가능한 도구를 확인하세요.`,
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
const service = this.services.get(route.serverName);
|
|
92
|
+
if (!service?.isConnected) {
|
|
93
|
+
return {
|
|
94
|
+
isError: true,
|
|
95
|
+
content: [
|
|
96
|
+
{
|
|
97
|
+
type: "text",
|
|
98
|
+
text: `도구 "${name}"의 서버 "${route.serverName}"이(가) 연결되지 않았습니다.`,
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return service.callTool(name, args);
|
|
104
|
+
}
|
|
105
|
+
async connectSingle(config, onStateChange) {
|
|
106
|
+
const service = this.services.get(config.name);
|
|
107
|
+
if (!service)
|
|
108
|
+
return;
|
|
109
|
+
const options = {
|
|
110
|
+
command: config.command,
|
|
111
|
+
args: config.args,
|
|
112
|
+
env: config.env,
|
|
113
|
+
cwd: config.cwd,
|
|
114
|
+
};
|
|
115
|
+
try {
|
|
116
|
+
await service.connect(options);
|
|
117
|
+
this.connectionStates.set(config.name, "connected");
|
|
118
|
+
onStateChange?.();
|
|
119
|
+
const tools = await service.listTools();
|
|
120
|
+
this.serverTools.set(config.name, tools);
|
|
121
|
+
this.registerTools(config.name, tools);
|
|
122
|
+
debugLogger.info(`[McpManager] "${config.name}" 연결 완료 — ${tools.length}개 도구: ${tools.map((t) => t.name).join(", ")}`);
|
|
123
|
+
onStateChange?.();
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
127
|
+
this.connectionStates.set(config.name, "error");
|
|
128
|
+
this.connectionErrors.set(config.name, error);
|
|
129
|
+
debugLogger.error(`[McpManager] "${config.name}" 연결 실패:`, error.message);
|
|
130
|
+
onStateChange?.();
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
registerTools(serverName, tools) {
|
|
135
|
+
for (const tool of tools) {
|
|
136
|
+
if (this.toolRegistry.has(tool.name)) {
|
|
137
|
+
const existing = this.toolRegistry.get(tool.name);
|
|
138
|
+
debugLogger.warn(`[McpManager] 도구 이름 충돌: "${tool.name}" — ` +
|
|
139
|
+
`"${existing?.serverName}" (기존) vs "${serverName}" (무시됨)`);
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
this.toolRegistry.set(tool.name, { serverName, tool });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=McpManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"McpManager.js","sourceRoot":"","sources":["../../../src/cli/services/McpManager.ts"],"names":[],"mappings":"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"}
|
package/build/cli/tmp.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// @ts-nocheck
|
|
3
|
+
import { render, Text } from "ink";
|
|
4
|
+
import { useMemo, useState } from "react";
|
|
5
|
+
import { InputContext } from "./context/InputContext.js";
|
|
6
|
+
import { KeypressProvider } from "./context/KeypressContext.js";
|
|
7
|
+
import { useTextBuffer } from "./key/text-buffer.js";
|
|
8
|
+
import { InputPrompt } from "./ui/InputPrompt.js";
|
|
9
|
+
function App() {
|
|
10
|
+
const [submitText, setSubmitText] = useState("");
|
|
11
|
+
const buffer = useTextBuffer();
|
|
12
|
+
const inputState = useMemo(() => ({
|
|
13
|
+
buffer,
|
|
14
|
+
userMessages: inputHistory,
|
|
15
|
+
shellModeActive,
|
|
16
|
+
showEscapePrompt,
|
|
17
|
+
copyModeEnabled,
|
|
18
|
+
inputWidth,
|
|
19
|
+
suggestionsWidth,
|
|
20
|
+
}), [buffer]);
|
|
21
|
+
return (_jsx(KeypressProvider, { children: _jsxs(InputContext.Provider, { value: inputState, children: [_jsxs(Text, { children: ["You submitted: ", submitText] }), _jsx(InputPrompt, { onSubmit: (text) => setSubmitText(text) })] }) }));
|
|
22
|
+
}
|
|
23
|
+
function start() {
|
|
24
|
+
render(_jsx(App, {}));
|
|
25
|
+
}
|
|
26
|
+
start();
|
|
27
|
+
//# sourceMappingURL=tmp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tmp.js","sourceRoot":"","sources":["../../src/cli/tmp.tsx"],"names":[],"mappings":";AAAA,cAAc;AAEd,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,SAAS,GAAG;IACX,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,MAAM,UAAU,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,CAAC;QACN,MAAM;QACN,YAAY,EAAE,YAAY;QAC1B,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,UAAU;QACV,gBAAgB;KAChB,CAAC,EACF,CAAC,MAAM,CAAC,CACR,CAAC;IAEF,OAAO,CACN,KAAC,gBAAgB,cAChB,MAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,UAAU,aACvC,MAAC,IAAI,kCAAiB,UAAU,IAAQ,EACxC,KAAC,WAAW,IAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,GAAI,IACjC,GACN,CACnB,CAAC;AACH,CAAC;AACD,SAAS,KAAK;IACb,MAAM,CAAC,KAAC,GAAG,KAAG,CAAC,CAAC;AACjB,CAAC;AAED,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConnectionStatus — 다중 MCP 서버 연결 상태 표시기
|
|
3
|
+
*
|
|
4
|
+
* 터미널 상단에 각 MCP 서버의 연결 상태를 시각적으로 표시합니다.
|
|
5
|
+
*/
|
|
6
|
+
import type React from "react";
|
|
7
|
+
import type { ServerConnectionInfo } from "../services/McpManager.js";
|
|
8
|
+
interface ConnectionStatusProps {
|
|
9
|
+
connections: Map<string, ServerConnectionInfo>;
|
|
10
|
+
errors: Map<string, Error>;
|
|
11
|
+
}
|
|
12
|
+
export declare const ConnectionStatus: React.FC<ConnectionStatusProps>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* ConnectionStatus — 다중 MCP 서버 연결 상태 표시기
|
|
4
|
+
*
|
|
5
|
+
* 터미널 상단에 각 MCP 서버의 연결 상태를 시각적으로 표시합니다.
|
|
6
|
+
*/
|
|
7
|
+
import { Box, Text } from "ink";
|
|
8
|
+
const STATE_CONFIG = {
|
|
9
|
+
connected: { symbol: "●", color: "green", label: "Connected" },
|
|
10
|
+
connecting: { symbol: "○", color: "yellow", label: "Connecting..." },
|
|
11
|
+
disconnected: { symbol: "◌", color: "gray", label: "Disconnected" },
|
|
12
|
+
error: { symbol: "✖", color: "red", label: "Error" },
|
|
13
|
+
};
|
|
14
|
+
export const ConnectionStatus = ({ connections, errors, }) => {
|
|
15
|
+
if (connections.size === 0) {
|
|
16
|
+
return (_jsx(Box, { paddingX: 1, marginBottom: 1, children: _jsx(Text, { color: "gray", children: "\u25CC MCP \uC11C\uBC84\uAC00 \uC124\uC815\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4" }) }));
|
|
17
|
+
}
|
|
18
|
+
return (_jsx(Box, { paddingX: 1, marginBottom: 1, flexDirection: "column", children: Array.from(connections.entries()).map(([serverName, info]) => {
|
|
19
|
+
const config = STATE_CONFIG[info.state];
|
|
20
|
+
const serverError = errors.get(serverName);
|
|
21
|
+
return (_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: config.color, children: [config.symbol, " ", serverName] }), _jsxs(Text, { color: "gray", children: [" — ", config.label] }), info.state === "connected" && info.toolCount > 0 && (_jsxs(Text, { color: "gray", children: [" (", info.toolCount, " tools)"] })), info.state === "error" && serverError && (_jsxs(Text, { color: "red", children: [" (", serverError.message, ")"] }))] }, serverName));
|
|
22
|
+
}) }));
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=ConnectionStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectionStatus.js","sourceRoot":"","sources":["../../../src/cli/ui/ConnectionStatus.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAUhC,MAAM,YAAY,GAGd;IACH,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE;IAC9D,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE;IACpE,YAAY,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE;IACnE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;CACpD,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EACjE,WAAW,EACX,MAAM,GACN,EAAE,EAAE;IACJ,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CACN,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,YAChC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,sGAA4B,GACzC,CACN,CAAC;IACH,CAAC;IAED,OAAO,CACN,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,YACvD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;YAC7D,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAE3C,OAAO,CACN,MAAC,GAAG,IAAkB,aAAa,EAAC,KAAK,aACxC,MAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,aACvB,MAAM,CAAC,MAAM,OAAG,UAAU,IACrB,EACP,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,aAChB,KAAK,EACL,MAAM,CAAC,KAAK,IACP,EACN,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CACpD,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,mBAAI,IAAI,CAAC,SAAS,eAAe,CACnD,EACA,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,WAAW,IAAI,CACzC,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,mBAAI,WAAW,CAAC,OAAO,SAAS,CACjD,KAbQ,UAAU,CAcd,CACN,CAAC;QACH,CAAC,CAAC,GACG,CACN,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
import tools from "../../tools/index.js";
|
|
4
|
+
import { SLASH_COMMANDS } from "../constants.js";
|
|
5
|
+
export function HelpCommands({ width }) {
|
|
6
|
+
return (_jsxs(Box, { flexDirection: "column", padding: 1, borderStyle: "round", borderColor: "gray", width: width ? width - 2 : undefined, children: [_jsx(Text, { bold: true, color: "yellow", children: "\uD83D\uDCA1 Slash Commands:" }), SLASH_COMMANDS.map((item) => (_jsxs(Box, { marginLeft: 2, children: [_jsx(Box, { width: 20, children: _jsx(Text, { color: "cyan", children: item.command }) }), _jsxs(Text, { children: ["\u2014 ", item.desc] })] }, item.command))), _jsx(Box, { marginTop: 1, children: _jsx(Text, { bold: true, color: "yellow", children: "\uD83D\uDEE0 MCP Tools (Internal):" }) }), Object.entries(tools).map(([name, info]) => {
|
|
7
|
+
const tool = info;
|
|
8
|
+
return (_jsxs(Box, { flexDirection: "column", marginLeft: 2, marginTop: 0, children: [_jsx(Text, { color: "magenta", children: tool.name }), _jsx(Box, { marginLeft: 2, children: _jsx(Text, { color: "gray", italic: true, children: tool.shorthandDescription.en }) })] }, name));
|
|
9
|
+
}), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", children: "\uC790\uC5F0\uC5B4 \uC9C8\uBB38\uC740 \uC2AC\uB798\uC2DC \uC5C6\uC774 \uC785\uB825\uD558\uBA74 RAG \uAE30\uBC18\uC73C\uB85C \uB2F5\uBCC0\uD569\uB2C8\uB2E4." }) })] }));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=HelpCommands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpCommands.js","sourceRoot":"","sources":["../../../src/cli/ui/HelpCommands.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,KAAK,MAAM,sBAAsB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAcjD,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAqB;IACxD,OAAO,CACN,MAAC,GAAG,IACH,aAAa,EAAC,QAAQ,EACtB,OAAO,EAAE,CAAC,EACV,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,MAAM,EAClB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,aAEpC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,QAAQ,6CAElB,EACN,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC7B,MAAC,GAAG,IAAoB,UAAU,EAAE,CAAC,aACpC,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,YACb,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,IAAI,CAAC,OAAO,GAAQ,GACnC,EACN,MAAC,IAAI,0BAAI,IAAI,CAAC,IAAI,IAAQ,KAJjB,IAAI,CAAC,OAAO,CAKhB,CACN,CAAC,EAEF,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,QAAQ,mDAElB,GACF,EACL,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;gBAC3C,MAAM,IAAI,GAAG,IAA2B,CAAC;gBACzC,OAAO,CACN,MAAC,GAAG,IAAY,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,aACjE,KAAC,IAAI,IAAC,KAAK,EAAC,SAAS,YAAE,IAAI,CAAC,IAAI,GAAQ,EACxC,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,YACjB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,kBACvB,IAAI,CAAC,oBAAoB,CAAC,EAAE,GACvB,GACF,KANG,IAAI,CAOR,CACN,CAAC;YACH,CAAC,CAAC,EAEF,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,4KAEX,GACF,IACD,CACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type React from "react";
|
|
2
|
+
import type { ContentRenderer, HistoryItem } from "../types.js";
|
|
3
|
+
interface HistoryItemDisplayProps {
|
|
4
|
+
item: HistoryItem;
|
|
5
|
+
width: number;
|
|
6
|
+
contentRenderer?: ContentRenderer;
|
|
7
|
+
}
|
|
8
|
+
export declare const HistoryItemDisplay: React.FC<HistoryItemDisplayProps>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from "ink";
|
|
3
|
+
const renderPlainText = (content, _width) => content;
|
|
4
|
+
const LABEL_MAP = {
|
|
5
|
+
user: {
|
|
6
|
+
type: "user",
|
|
7
|
+
label: "▶ You",
|
|
8
|
+
fontColor: "#F1F5F9",
|
|
9
|
+
backgroundColor: "#313d4c",
|
|
10
|
+
highlightColor: "#F1F5F9",
|
|
11
|
+
},
|
|
12
|
+
assistant: {
|
|
13
|
+
type: "assistant",
|
|
14
|
+
label: "◀ Assistant",
|
|
15
|
+
fontColor: "white",
|
|
16
|
+
backgroundColor: "",
|
|
17
|
+
highlightColor: "magenta",
|
|
18
|
+
},
|
|
19
|
+
error: {
|
|
20
|
+
type: "error",
|
|
21
|
+
label: "✖ Error",
|
|
22
|
+
highlightColor: "red",
|
|
23
|
+
fontColor: "white",
|
|
24
|
+
backgroundColor: "red",
|
|
25
|
+
},
|
|
26
|
+
info: {
|
|
27
|
+
type: "info",
|
|
28
|
+
label: "ℹ Info",
|
|
29
|
+
highlightColor: "yellow",
|
|
30
|
+
fontColor: "white",
|
|
31
|
+
backgroundColor: "red",
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
export const HistoryItemDisplay = ({ item, width, contentRenderer = renderPlainText, }) => {
|
|
35
|
+
const { label, fontColor, backgroundColor, highlightColor, type } = LABEL_MAP[item.type];
|
|
36
|
+
return (_jsx(Box, { width: width, flexDirection: "column", paddingLeft: 1, paddingRight: 1, marginTop: 1, marginBottom: 1, backgroundColor: backgroundColor, children: type === "user" ? (_jsxs(_Fragment, { children: [_jsx(Text, { bold: true, color: highlightColor, children: label }), _jsx(Text, { color: fontColor, children: contentRenderer(item.content, width) })] })) : (_jsxs(_Fragment, { children: [_jsx(Box, { paddingBottom: 1, children: _jsx(Text, { bold: true, color: highlightColor, children: label }) }), _jsx(Text, { color: fontColor, children: contentRenderer(item.content, width) })] })) }));
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=HistoryItemDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HistoryItemDisplay.js","sourceRoot":"","sources":["../../../src/cli/ui/HistoryItemDisplay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAMhC,MAAM,eAAe,GAAoB,CAAC,OAAe,EAAE,MAAc,EAAE,EAAE,CAC5E,OAAO,CAAC;AAQT,MAAM,SAAS,GASX;IACH,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,SAAS;QACpB,eAAe,EAAE,SAAS;QAC1B,cAAc,EAAE,SAAS;KACzB;IACD,SAAS,EAAE;QACV,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,OAAO;QAClB,eAAe,EAAE,EAAE;QACnB,cAAc,EAAE,SAAS;KACzB;IACD,KAAK,EAAE;QACN,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,KAAK;QACrB,SAAS,EAAE,OAAO;QAClB,eAAe,EAAE,KAAK;KACtB;IACD,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,QAAQ;QACf,cAAc,EAAE,QAAQ;QACxB,SAAS,EAAE,OAAO;QAClB,eAAe,EAAE,KAAK;KACtB;CACD,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CAAC,EACrE,IAAI,EACJ,KAAK,EACL,eAAe,GAAG,eAAe,GACjC,EAAE,EAAE;IACJ,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,GAChE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEtB,OAAO,CACN,KAAC,GAAG,IACH,KAAK,EAAE,KAAK,EACZ,aAAa,EAAC,QAAQ,EACtB,WAAW,EAAE,CAAC,EACd,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,CAAC,EACZ,YAAY,EAAE,CAAC,EACf,eAAe,EAAE,eAAe,YAE/B,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAClB,8BACC,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,cAAc,YAC9B,KAAK,GACA,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,YAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAQ,IACnE,CACH,CAAC,CAAC,CAAC,CACH,8BACC,KAAC,GAAG,IAAC,aAAa,EAAE,CAAC,YACpB,KAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,cAAc,YAC9B,KAAK,GACA,GACF,EACN,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,YAAG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAQ,IACnE,CACH,GACI,CACN,CAAC;AACH,CAAC,CAAC"}
|