@cloudcli-ai/cloudcli 1.37.2 → 1.37.4
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 +269 -0
- package/dist/assets/{abnfDiagram-N423BO3Z-C4UAoHJb.js → abnfDiagram-N423BO3Z-Dmkwx38H.js} +1 -1
- package/dist/assets/{arc-B8jF-ja9.js → arc-DLe9AYuO.js} +1 -1
- package/dist/assets/{architectureDiagram-T3A2C74G-C_Wur_CU.js → architectureDiagram-T3A2C74G-CBbbbNUW.js} +1 -1
- package/dist/assets/{blockDiagram-VBNYF7ZC-Cq4P1i8t.js → blockDiagram-VBNYF7ZC-CaMEaWu4.js} +1 -1
- package/dist/assets/{c4Diagram-5PPSVZJV-C1wG4eUj.js → c4Diagram-5PPSVZJV-DhjMgNnR.js} +1 -1
- package/dist/assets/channel-CWrmwsir.js +1 -0
- package/dist/assets/{chunk-2GRJ4B5K-B8fnBG6E.js → chunk-2GRJ4B5K-yjl3-F-i.js} +1 -1
- package/dist/assets/{chunk-2Q5K7J3B-WdfPooPJ.js → chunk-2Q5K7J3B-DsAYaWEP.js} +1 -1
- package/dist/assets/{chunk-5RXB4S5H-DhZJuG2E.js → chunk-5RXB4S5H-Bt5qmqOX.js} +1 -1
- package/dist/assets/{chunk-5VM5RSS4-B0rjslal.js → chunk-5VM5RSS4-yWrWVvUt.js} +1 -1
- package/dist/assets/{chunk-6Q2QTUOP-CG2Oj4jL.js → chunk-6Q2QTUOP-Dt66K5xb.js} +1 -1
- package/dist/assets/{chunk-GF5L2VYU-rrl2lRxY.js → chunk-GF5L2VYU-DA0vzaj4.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-CjVbrVMA.js → chunk-JWPE2WC7-CUkbx96V.js} +1 -1
- package/dist/assets/{chunk-KBJHAD2P-CRzKgU8S.js → chunk-KBJHAD2P-DWKxx1WH.js} +1 -1
- package/dist/assets/{chunk-RYQCIY6F-DBz4GTZF.js → chunk-RYQCIY6F-BqluplN0.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-wHxalsXk.js → chunk-XXDRQBXY-DelKg3Xf.js} +1 -1
- package/dist/assets/classDiagram-JCYQIIEL-COAGCC6w.js +1 -0
- package/dist/assets/classDiagram-v2-OCEON4UE-COAGCC6w.js +1 -0
- package/dist/assets/{cose-bilkent-JH36ORCC-s1hygY8e.js → cose-bilkent-JH36ORCC-DHV93-Em.js} +1 -1
- package/dist/assets/{cynefin-VYW2F7L2-C4LGV15i.js → cynefin-VYW2F7L2-B9HZgoGX.js} +1 -1
- package/dist/assets/{cynefinDiagram-MW4NZA55-C5uhu7B3.js → cynefinDiagram-MW4NZA55-hFjjEQg8.js} +1 -1
- package/dist/assets/{dagre-VZM6K2ZE-B-OBTewm.js → dagre-VZM6K2ZE-CpeVOC7V.js} +1 -1
- package/dist/assets/{diagram-7IWD3JNH-BjGKQxih.js → diagram-7IWD3JNH-D0H1UoRA.js} +1 -1
- package/dist/assets/{diagram-B4RE2ZJO-BMKz1X2L.js → diagram-B4RE2ZJO-6Y7BQUup.js} +1 -1
- package/dist/assets/{diagram-LBJQPF4R-DNh-GhKC.js → diagram-LBJQPF4R-C0nNOwht.js} +1 -1
- package/dist/assets/{diagram-Q27KOJAE-BaTG9jPT.js → diagram-Q27KOJAE-En6QlOVX.js} +1 -1
- package/dist/assets/{diagram-UB23O5K3-BUwo2OvJ.js → diagram-UB23O5K3-CmPiNeGD.js} +1 -1
- package/dist/assets/{ebnfDiagram-BXEA7PRR-DAZgfzX2.js → ebnfDiagram-BXEA7PRR-Bygzp1Qt.js} +1 -1
- package/dist/assets/{erDiagram-JOGREHBK-1w1CcGEb.js → erDiagram-JOGREHBK-CwScRfzl.js} +1 -1
- package/dist/assets/{flowDiagram-UKHOOZJN-D4EII8Jj.js → flowDiagram-UKHOOZJN-bKX-0xP6.js} +1 -1
- package/dist/assets/{ganttDiagram-PKOTCBZU-ChvJZAgB.js → ganttDiagram-PKOTCBZU-DtZPKXGd.js} +1 -1
- package/dist/assets/{gitGraphDiagram-DS77QQ5N-DtOn41S8.js → gitGraphDiagram-DS77QQ5N-CUOtdL1o.js} +1 -1
- package/dist/assets/index-CdjIFxM2.js +5004 -0
- package/dist/assets/index-DgafhGTF.css +32 -0
- package/dist/assets/{infoDiagram-6WML65LV-DN_PVEJZ.js → infoDiagram-6WML65LV-ciRQTS0h.js} +1 -1
- package/dist/assets/{ishikawaDiagram-WSZJBQD7-DbkF1kXb.js → ishikawaDiagram-WSZJBQD7-CgjhQZ84.js} +1 -1
- package/dist/assets/{journeyDiagram-NVQOT4AX-pJwmhddE.js → journeyDiagram-NVQOT4AX-BsbQSeIW.js} +1 -1
- package/dist/assets/{kanban-definition-27J2QSJJ-PPAPgNp5.js → kanban-definition-27J2QSJJ-CrwzY9Jw.js} +1 -1
- package/dist/assets/{linear-iPR-J9f7.js → linear-BUaCDr6l.js} +1 -1
- package/dist/assets/{mermaid.core-BEUL86Z6.js → mermaid.core-ClgdUU0j.js} +5 -5
- package/dist/assets/{mindmap-definition-FAOFIHXS-BvZoBib7.js → mindmap-definition-FAOFIHXS-BictljY1.js} +1 -1
- package/dist/assets/{pegDiagram-VL7TDLO6-DhYreaUd.js → pegDiagram-VL7TDLO6-BXdByy_U.js} +1 -1
- package/dist/assets/{pieDiagram-7S7Q4E2Y-CrOHlyD0.js → pieDiagram-7S7Q4E2Y-uZsMfkRX.js} +1 -1
- package/dist/assets/{quadrantDiagram-CIZ2JOQS-D4g5yH3t.js → quadrantDiagram-CIZ2JOQS-7lCv4QIj.js} +1 -1
- package/dist/assets/{railroadDiagram-AXF67PYL-Dj39lHlf.js → railroadDiagram-AXF67PYL-07dxIWbi.js} +1 -1
- package/dist/assets/{requirementDiagram-LRYGKXZP-1AS4Zgm_.js → requirementDiagram-LRYGKXZP-Cb31Yv1_.js} +1 -1
- package/dist/assets/{sankeyDiagram-W5VNT64P-CKlMn19P.js → sankeyDiagram-W5VNT64P-X0YPSyF9.js} +1 -1
- package/dist/assets/{sequenceDiagram-SI44F4Z6-B_j3qyvo.js → sequenceDiagram-SI44F4Z6-BdBxSIlP.js} +1 -1
- package/dist/assets/server.browser-CtX3Hdl5.js +27 -0
- package/dist/assets/{sizeCapture-X5ZJPWSS-Bp2Op16v.js → sizeCapture-X5ZJPWSS-DQM5xAyD.js} +1 -1
- package/dist/assets/{stateDiagram-OKZ733FA-C0cN6DoY.js → stateDiagram-OKZ733FA-DJ3xkLUF.js} +1 -1
- package/dist/assets/stateDiagram-v2-UEYNNEHI-vAaE4zNo.js +1 -0
- package/dist/assets/{swimlanes-SLNWSIFB-BEvXOV9b.js → swimlanes-SLNWSIFB-rjfYdW0w.js} +2 -2
- package/dist/assets/swimlanesDiagram-ULZ7WXOC-TV2IF4Nq.js +8 -0
- package/dist/assets/{timeline-definition-Z64GVDOM-zdJQinvZ.js → timeline-definition-Z64GVDOM-DZMra5do.js} +1 -1
- package/dist/assets/{vendor-codemirror-OwyKSvPE.js → vendor-codemirror-CYrSt7-U.js} +18 -18
- package/dist/assets/{vennDiagram-T6HMQDX7-DuF1uZMY.js → vennDiagram-T6HMQDX7-BevD8uu0.js} +1 -1
- package/dist/assets/{wardleyDiagram-T6FBY63Y-B9AlLQup.js → wardleyDiagram-T6FBY63Y-DsIyXB7z.js} +1 -1
- package/dist/assets/{xychartDiagram-ELKLHX3M-DTJX48Qg.js → xychartDiagram-ELKLHX3M-G3PlF3ko.js} +1 -1
- package/dist/index.html +3 -3
- package/dist-server/server/index.js +11 -4
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/modules/agent/agent.module.js +9 -2
- package/dist-server/server/modules/agent/agent.module.js.map +1 -1
- package/dist-server/server/modules/agent/agent.routes.js +177 -130
- package/dist-server/server/modules/agent/agent.routes.js.map +1 -1
- package/dist-server/server/modules/agent/tests/agent-run-registration.test.js +306 -0
- package/dist-server/server/modules/agent/tests/agent-run-registration.test.js.map +1 -0
- package/dist-server/server/modules/agent/tests/agent.routes.test.js +48 -2
- package/dist-server/server/modules/agent/tests/agent.routes.test.js.map +1 -1
- package/dist-server/server/modules/browser-use/browser-use.routes.js +39 -33
- package/dist-server/server/modules/browser-use/browser-use.routes.js.map +1 -1
- package/dist-server/server/modules/database/connection.js +1 -1
- package/dist-server/server/modules/database/connection.js.map +1 -1
- package/dist-server/server/modules/database/index.js +5 -0
- package/dist-server/server/modules/database/index.js.map +1 -1
- package/dist-server/server/modules/database/migrations.js +45 -1
- package/dist-server/server/modules/database/migrations.js.map +1 -1
- package/dist-server/server/modules/database/repositories/provider-models.js +60 -6
- package/dist-server/server/modules/database/repositories/provider-models.js.map +1 -1
- package/dist-server/server/modules/database/repositories/scheduled-messages.db.js +71 -0
- package/dist-server/server/modules/database/repositories/scheduled-messages.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/session-drafts.db.js +105 -0
- package/dist-server/server/modules/database/repositories/session-drafts.db.js.map +1 -0
- package/dist-server/server/modules/database/repositories/sessions.db.js +144 -5
- package/dist-server/server/modules/database/repositories/sessions.db.js.map +1 -1
- package/dist-server/server/modules/database/repositories/user-preferences.db.js +65 -0
- package/dist-server/server/modules/database/repositories/user-preferences.db.js.map +1 -0
- package/dist-server/server/modules/database/schema.js +99 -0
- package/dist-server/server/modules/database/schema.js.map +1 -1
- package/dist-server/server/modules/database/tests/provider-models.db.integration.test.js +99 -0
- package/dist-server/server/modules/database/tests/provider-models.db.integration.test.js.map +1 -1
- package/dist-server/server/modules/database/tests/sessions.db.integration.test.js +39 -0
- package/dist-server/server/modules/database/tests/sessions.db.integration.test.js.map +1 -1
- package/dist-server/server/modules/database/tests/user-preferences.db.integration.test.js +105 -0
- package/dist-server/server/modules/database/tests/user-preferences.db.integration.test.js.map +1 -0
- package/dist-server/server/modules/file-tree/file-tree.module.js +2 -1
- package/dist-server/server/modules/file-tree/file-tree.module.js.map +1 -1
- package/dist-server/server/modules/file-tree/file-tree.service.js +44 -7
- package/dist-server/server/modules/file-tree/file-tree.service.js.map +1 -1
- package/dist-server/server/modules/file-tree/tests/file-tree.service.test.js +126 -1
- package/dist-server/server/modules/file-tree/tests/file-tree.service.test.js.map +1 -1
- package/dist-server/server/modules/git/git-branch-diff.service.js +142 -0
- package/dist-server/server/modules/git/git-branch-diff.service.js.map +1 -0
- package/dist-server/server/modules/git/git-branch.service.js.map +1 -1
- package/dist-server/server/modules/git/git.routes.js +92 -5
- package/dist-server/server/modules/git/git.routes.js.map +1 -1
- package/dist-server/server/modules/git/tests/git-branch-diff.service.test.js +160 -0
- package/dist-server/server/modules/git/tests/git-branch-diff.service.test.js.map +1 -0
- package/dist-server/server/modules/projects/project-clone.routes.js +108 -0
- package/dist-server/server/modules/projects/project-clone.routes.js.map +1 -0
- package/dist-server/server/modules/projects/projects.routes.js +13 -66
- package/dist-server/server/modules/projects/projects.routes.js.map +1 -1
- package/dist-server/server/modules/projects/services/project-clone-request.service.js +36 -0
- package/dist-server/server/modules/projects/services/project-clone-request.service.js.map +1 -0
- package/dist-server/server/modules/projects/services/project-clone.service.js +86 -32
- package/dist-server/server/modules/projects/services/project-clone.service.js.map +1 -1
- package/dist-server/server/modules/projects/services/project-delete.service.js +12 -1
- package/dist-server/server/modules/projects/services/project-delete.service.js.map +1 -1
- package/dist-server/server/modules/projects/services/project-star.service.js +2 -2
- package/dist-server/server/modules/projects/services/project-star.service.js.map +1 -1
- package/dist-server/server/modules/projects/tests/project-clone.routes.test.js +191 -0
- package/dist-server/server/modules/projects/tests/project-clone.routes.test.js.map +1 -0
- package/dist-server/server/modules/projects/tests/project-clone.service.test.js +275 -0
- package/dist-server/server/modules/projects/tests/project-clone.service.test.js.map +1 -1
- package/dist-server/server/modules/providers/index.js +3 -0
- package/dist-server/server/modules/providers/index.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js +62 -9
- package/dist-server/server/modules/providers/list/claude/claude-auth.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-fork.provider.js +46 -0
- package/dist-server/server/modules/providers/list/claude/claude-fork.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/claude/claude-models.provider.js +31 -12
- package/dist-server/server/modules/providers/list/claude/claude-models.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-runtime.provider.js +472 -53
- package/dist-server/server/modules/providers/list/claude/claude-runtime.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js +38 -11
- package/dist-server/server/modules/providers/list/claude/claude-session-synchronizer.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js +1007 -60
- package/dist-server/server/modules/providers/list/claude/claude-sessions.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js +4 -1
- package/dist-server/server/modules/providers/list/claude/claude-skills.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/claude/claude.provider.js +2 -0
- package/dist-server/server/modules/providers/list/claude/claude.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-app-server.client.js +204 -0
- package/dist-server/server/modules/providers/list/codex/codex-app-server.client.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-fork.provider.js +32 -0
- package/dist-server/server/modules/providers/list/codex/codex-fork.provider.js.map +1 -0
- package/dist-server/server/modules/providers/list/codex/codex-models.provider.js +47 -0
- package/dist-server/server/modules/providers/list/codex/codex-models.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-runtime.provider.js +71 -53
- package/dist-server/server/modules/providers/list/codex/codex-runtime.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js +8 -0
- package/dist-server/server/modules/providers/list/codex/codex-session-synchronizer.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js +1621 -431
- package/dist-server/server/modules/providers/list/codex/codex-sessions.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/codex/codex.provider.js +2 -0
- package/dist-server/server/modules/providers/list/codex/codex.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-auth.provider.js +9 -2
- package/dist-server/server/modules/providers/list/cursor/cursor-auth.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-runtime.provider.js +16 -8
- package/dist-server/server/modules/providers/list/cursor/cursor-runtime.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js +274 -9
- package/dist-server/server/modules/providers/list/opencode/opencode-models.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-runtime.provider.js +5 -2
- package/dist-server/server/modules/providers/list/opencode/opencode-runtime.provider.js.map +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js +19 -2
- package/dist-server/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.js.map +1 -1
- package/dist-server/server/modules/providers/provider.routes.js +134 -2
- package/dist-server/server/modules/providers/provider.routes.js.map +1 -1
- package/dist-server/server/modules/providers/services/claude-cli-liveness.service.js +100 -0
- package/dist-server/server/modules/providers/services/claude-cli-liveness.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/claude-settings-permissions.service.js +97 -0
- package/dist-server/server/modules/providers/services/claude-settings-permissions.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/provider-capabilities.service.js +23 -1
- package/dist-server/server/modules/providers/services/provider-capabilities.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/provider-models.service.js +59 -5
- package/dist-server/server/modules/providers/services/provider-models.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/provider-runtime.service.js +8 -0
- package/dist-server/server/modules/providers/services/provider-runtime.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/provider-token-usage.service.js +139 -35
- package/dist-server/server/modules/providers/services/provider-token-usage.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/session-conversations-search.service.js +2 -4
- package/dist-server/server/modules/providers/services/session-conversations-search.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/session-history-cache.service.js +91 -0
- package/dist-server/server/modules/providers/services/session-history-cache.service.js.map +1 -0
- package/dist-server/server/modules/providers/services/session-synchronizer.service.js +105 -32
- package/dist-server/server/modules/providers/services/session-synchronizer.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/sessions-watcher.service.js +3 -60
- package/dist-server/server/modules/providers/services/sessions-watcher.service.js.map +1 -1
- package/dist-server/server/modules/providers/services/sessions.service.js +252 -12
- package/dist-server/server/modules/providers/services/sessions.service.js.map +1 -1
- package/dist-server/server/modules/providers/tests/claude-auth.test.js +183 -0
- package/dist-server/server/modules/providers/tests/claude-auth.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/claude-background-work.test.js +172 -0
- package/dist-server/server/modules/providers/tests/claude-background-work.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-compaction.test.js +84 -0
- package/dist-server/server/modules/providers/tests/claude-compaction.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-message-model.test.js +123 -0
- package/dist-server/server/modules/providers/tests/claude-message-model.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-models.test.js +39 -0
- package/dist-server/server/modules/providers/tests/claude-models.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-runtime-hold.test.js +265 -0
- package/dist-server/server/modules/providers/tests/claude-runtime-hold.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-sessions.test.js +1815 -33
- package/dist-server/server/modules/providers/tests/claude-sessions.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/claude-settings-permissions.test.js +228 -0
- package/dist-server/server/modules/providers/tests/claude-settings-permissions.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-subagent-echo.test.js +16 -0
- package/dist-server/server/modules/providers/tests/claude-subagent-echo.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/claude-token-budget.test.js +85 -0
- package/dist-server/server/modules/providers/tests/claude-token-budget.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-message-editing.test.js +338 -0
- package/dist-server/server/modules/providers/tests/codex-message-editing.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-models.test.js +25 -0
- package/dist-server/server/modules/providers/tests/codex-models.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-runtime.test.js +83 -0
- package/dist-server/server/modules/providers/tests/codex-runtime.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-session-fork.test.js +54 -0
- package/dist-server/server/modules/providers/tests/codex-session-fork.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/codex-sessions.test.js +354 -15
- package/dist-server/server/modules/providers/tests/codex-sessions.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/cursor-auth.test.js +167 -0
- package/dist-server/server/modules/providers/tests/cursor-auth.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/opencode-models.test.js +196 -4
- package/dist-server/server/modules/providers/tests/opencode-models.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/opencode-sessions.test.js +19 -1
- package/dist-server/server/modules/providers/tests/opencode-sessions.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/provider-capabilities.service.test.js +30 -0
- package/dist-server/server/modules/providers/tests/provider-capabilities.service.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/provider-models.service.test.js +79 -1
- package/dist-server/server/modules/providers/tests/provider-models.service.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/provider-token-usage.service.test.js +164 -1
- package/dist-server/server/modules/providers/tests/provider-token-usage.service.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/provider.routes.test.js +190 -1
- package/dist-server/server/modules/providers/tests/provider.routes.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/session-fork.test.js +113 -0
- package/dist-server/server/modules/providers/tests/session-fork.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/session-history-cache.service.test.js +139 -0
- package/dist-server/server/modules/providers/tests/session-history-cache.service.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/session-orphan-prune.test.js +90 -0
- package/dist-server/server/modules/providers/tests/session-orphan-prune.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/session-synchronizer-coalescing.test.js +122 -0
- package/dist-server/server/modules/providers/tests/session-synchronizer-coalescing.test.js.map +1 -0
- package/dist-server/server/modules/providers/tests/sessions.service.test.js +219 -1
- package/dist-server/server/modules/providers/tests/sessions.service.test.js.map +1 -1
- package/dist-server/server/modules/providers/tests/skills.test.js +15 -3
- package/dist-server/server/modules/providers/tests/skills.test.js.map +1 -1
- package/dist-server/server/modules/scheduled-messages/index.js +5 -0
- package/dist-server/server/modules/scheduled-messages/index.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/scheduled-messages.routes.js +47 -0
- package/dist-server/server/modules/scheduled-messages/scheduled-messages.routes.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.js +175 -0
- package/dist-server/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/services/scheduled-messages.service.js +95 -0
- package/dist-server/server/modules/scheduled-messages/services/scheduled-messages.service.js.map +1 -0
- package/dist-server/server/modules/scheduled-messages/tests/scheduled-messages.test.js +290 -0
- package/dist-server/server/modules/scheduled-messages/tests/scheduled-messages.test.js.map +1 -0
- package/dist-server/server/modules/taskmaster/taskmaster.routes.js +23 -23
- package/dist-server/server/modules/taskmaster/taskmaster.routes.js.map +1 -1
- package/dist-server/server/modules/taskmaster/tests/taskmaster.routes.test.js +48 -0
- package/dist-server/server/modules/taskmaster/tests/taskmaster.routes.test.js.map +1 -1
- package/dist-server/server/modules/user/tests/user.service.test.js +70 -0
- package/dist-server/server/modules/user/tests/user.service.test.js.map +1 -1
- package/dist-server/server/modules/user/user.module.js +10 -1
- package/dist-server/server/modules/user/user.module.js.map +1 -1
- package/dist-server/server/modules/user/user.routes.js +44 -0
- package/dist-server/server/modules/user/user.routes.js.map +1 -1
- package/dist-server/server/modules/user/user.service.js +75 -0
- package/dist-server/server/modules/user/user.service.js.map +1 -1
- package/dist-server/server/modules/voice/tests/voice.service.test.js +3 -2
- package/dist-server/server/modules/voice/tests/voice.service.test.js.map +1 -1
- package/dist-server/server/modules/websocket/index.js +7 -0
- package/dist-server/server/modules/websocket/index.js.map +1 -1
- package/dist-server/server/modules/websocket/services/chat-run-registry.service.js +37 -49
- package/dist-server/server/modules/websocket/services/chat-run-registry.service.js.map +1 -1
- package/dist-server/server/modules/websocket/services/chat-session-writer.service.js +35 -5
- package/dist-server/server/modules/websocket/services/chat-session-writer.service.js.map +1 -1
- package/dist-server/server/modules/websocket/services/chat-websocket.service.js +204 -10
- package/dist-server/server/modules/websocket/services/chat-websocket.service.js.map +1 -1
- package/dist-server/server/modules/websocket/services/session-upsert-broadcast.service.js +94 -0
- package/dist-server/server/modules/websocket/services/session-upsert-broadcast.service.js.map +1 -0
- package/dist-server/server/modules/websocket/services/shell-websocket.service.js +236 -20
- package/dist-server/server/modules/websocket/services/shell-websocket.service.js.map +1 -1
- package/dist-server/server/modules/websocket/tests/chat-background-subscribe.test.js +137 -0
- package/dist-server/server/modules/websocket/tests/chat-background-subscribe.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/chat-edit-send.test.js +263 -0
- package/dist-server/server/modules/websocket/tests/chat-edit-send.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/chat-run-registry.test.js +29 -3
- package/dist-server/server/modules/websocket/tests/chat-run-registry.test.js.map +1 -1
- package/dist-server/server/modules/websocket/tests/chat-stop-task.test.js +96 -0
- package/dist-server/server/modules/websocket/tests/chat-stop-task.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/session-upsert-broadcast.test.js +106 -0
- package/dist-server/server/modules/websocket/tests/session-upsert-broadcast.test.js.map +1 -0
- package/dist-server/server/modules/websocket/tests/shell-websocket.service.test.js +500 -0
- package/dist-server/server/modules/websocket/tests/shell-websocket.service.test.js.map +1 -1
- package/dist-server/server/shared/claude-cli-path.js +22 -5
- package/dist-server/server/shared/claude-cli-path.js.map +1 -1
- package/dist-server/server/shared/index.js +3 -0
- package/dist-server/server/shared/index.js.map +1 -0
- package/dist-server/server/shared/message-unification.js +376 -0
- package/dist-server/server/shared/message-unification.js.map +1 -0
- package/dist-server/server/shared/tests/claude-cli-path.test.js +45 -1
- package/dist-server/server/shared/tests/claude-cli-path.test.js.map +1 -1
- package/dist-server/server/shared/tests/message-unification.test.js +174 -0
- package/dist-server/server/shared/tests/message-unification.test.js.map +1 -0
- package/dist-server/server/shared/tests/read-only-roots.test.js +124 -0
- package/dist-server/server/shared/tests/read-only-roots.test.js.map +1 -0
- package/dist-server/server/shared/tests/strip-ansi-sequences.test.js +31 -0
- package/dist-server/server/shared/tests/strip-ansi-sequences.test.js.map +1 -0
- package/dist-server/server/shared/utils.js +160 -0
- package/dist-server/server/shared/utils.js.map +1 -1
- package/electron/desktopWindow.js +6 -0
- package/electron/viewHost.js +25 -2
- package/package.json +20 -17
- package/server/index.ts +16 -5
- package/server/modules/agent/agent.module.ts +11 -1
- package/server/modules/agent/agent.routes.ts +200 -142
- package/server/modules/agent/tests/agent-run-registration.test.ts +348 -0
- package/server/modules/agent/tests/agent.routes.test.ts +51 -2
- package/server/modules/browser-use/browser-use.routes.ts +96 -33
- package/server/modules/database/connection.ts +2 -1
- package/server/modules/database/index.ts +10 -0
- package/server/modules/database/migrations.ts +51 -0
- package/server/modules/database/repositories/provider-models.ts +79 -6
- package/server/modules/database/repositories/scheduled-messages.db.ts +127 -0
- package/server/modules/database/repositories/session-drafts.db.ts +171 -0
- package/server/modules/database/repositories/sessions.db.ts +204 -3
- package/server/modules/database/repositories/user-preferences.db.ts +80 -0
- package/server/modules/database/schema.ts +103 -0
- package/server/modules/database/tests/provider-models.db.integration.test.ts +113 -0
- package/server/modules/database/tests/sessions.db.integration.test.ts +52 -0
- package/server/modules/database/tests/user-preferences.db.integration.test.ts +135 -0
- package/server/modules/file-tree/file-tree.module.ts +2 -1
- package/server/modules/file-tree/file-tree.service.ts +49 -7
- package/server/modules/file-tree/tests/file-tree.service.test.ts +163 -1
- package/server/modules/git/git-branch-diff.service.ts +204 -0
- package/server/modules/git/git-branch.service.ts +2 -12
- package/server/modules/git/git.routes.ts +100 -6
- package/server/modules/git/tests/git-branch-diff.service.test.ts +210 -0
- package/server/modules/projects/project-clone.routes.ts +142 -0
- package/server/modules/projects/projects.routes.ts +16 -81
- package/server/modules/projects/services/project-clone-request.service.ts +56 -0
- package/server/modules/projects/services/project-clone.service.ts +102 -34
- package/server/modules/projects/services/project-delete.service.ts +13 -1
- package/server/modules/projects/services/project-star.service.ts +2 -2
- package/server/modules/projects/tests/project-clone.routes.test.ts +246 -0
- package/server/modules/projects/tests/project-clone.service.test.ts +376 -0
- package/server/modules/providers/index.ts +4 -0
- package/server/modules/providers/list/claude/claude-auth.provider.ts +81 -11
- package/server/modules/providers/list/claude/claude-fork.provider.ts +57 -0
- package/server/modules/providers/list/claude/claude-models.provider.ts +37 -17
- package/server/modules/providers/list/claude/claude-runtime.provider.js +510 -54
- package/server/modules/providers/list/claude/claude-session-synchronizer.provider.ts +40 -14
- package/server/modules/providers/list/claude/claude-sessions.provider.ts +1195 -63
- package/server/modules/providers/list/claude/claude-skills.provider.ts +4 -1
- package/server/modules/providers/list/claude/claude.provider.ts +3 -0
- package/server/modules/providers/list/codex/codex-app-server.client.ts +243 -0
- package/server/modules/providers/list/codex/codex-fork.provider.ts +40 -0
- package/server/modules/providers/list/codex/codex-models.provider.ts +47 -0
- package/server/modules/providers/list/codex/{codex-runtime.provider.js → codex-runtime.provider.ts} +105 -70
- package/server/modules/providers/list/codex/codex-session-synchronizer.provider.ts +9 -0
- package/server/modules/providers/list/codex/codex-sessions.provider.ts +1847 -455
- package/server/modules/providers/list/codex/codex.provider.ts +3 -0
- package/server/modules/providers/list/cursor/cursor-auth.provider.ts +10 -2
- package/server/modules/providers/list/cursor/cursor-runtime.provider.js +17 -8
- package/server/modules/providers/list/cursor/cursor-session-synchronizer.provider.ts +0 -1
- package/server/modules/providers/list/opencode/opencode-models.provider.ts +297 -9
- package/server/modules/providers/list/opencode/opencode-runtime.provider.js +5 -2
- package/server/modules/providers/list/opencode/opencode-session-synchronizer.provider.ts +30 -2
- package/server/modules/providers/provider.routes.ts +162 -2
- package/server/modules/providers/services/claude-cli-liveness.service.ts +121 -0
- package/server/modules/providers/services/claude-settings-permissions.service.ts +127 -0
- package/server/modules/providers/services/provider-capabilities.service.ts +40 -1
- package/server/modules/providers/services/provider-models.service.ts +71 -4
- package/server/modules/providers/services/provider-runtime.service.ts +11 -0
- package/server/modules/providers/services/provider-token-usage.service.ts +166 -39
- package/server/modules/providers/services/session-conversations-search.service.ts +2 -5
- package/server/modules/providers/services/session-history-cache.service.ts +150 -0
- package/server/modules/providers/services/session-synchronizer.service.ts +125 -38
- package/server/modules/providers/services/sessions-watcher.service.ts +3 -64
- package/server/modules/providers/services/sessions.service.ts +309 -17
- package/server/modules/providers/tests/claude-auth.test.ts +208 -0
- package/server/modules/providers/tests/claude-background-work.test.ts +213 -0
- package/server/modules/providers/tests/claude-compaction.test.ts +101 -0
- package/server/modules/providers/tests/claude-message-model.test.ts +160 -0
- package/server/modules/providers/tests/claude-models.test.ts +87 -0
- package/server/modules/providers/tests/claude-runtime-hold.test.ts +309 -0
- package/server/modules/providers/tests/claude-sessions.test.ts +2167 -37
- package/server/modules/providers/tests/claude-settings-permissions.test.ts +271 -0
- package/server/modules/providers/tests/claude-subagent-echo.test.ts +25 -0
- package/server/modules/providers/tests/claude-token-budget.test.ts +104 -0
- package/server/modules/providers/tests/codex-message-editing.test.ts +419 -0
- package/server/modules/providers/tests/codex-models.test.ts +37 -0
- package/server/modules/providers/tests/codex-runtime.test.ts +94 -0
- package/server/modules/providers/tests/codex-session-fork.test.ts +59 -0
- package/server/modules/providers/tests/codex-sessions.test.ts +396 -15
- package/server/modules/providers/tests/cursor-auth.test.ts +187 -0
- package/server/modules/providers/tests/opencode-models.test.ts +266 -8
- package/server/modules/providers/tests/opencode-sessions.test.ts +40 -1
- package/server/modules/providers/tests/provider-capabilities.service.test.ts +37 -0
- package/server/modules/providers/tests/provider-models.service.test.ts +99 -1
- package/server/modules/providers/tests/provider-token-usage.service.test.ts +188 -1
- package/server/modules/providers/tests/provider.routes.test.ts +230 -1
- package/server/modules/providers/tests/session-fork.test.ts +173 -0
- package/server/modules/providers/tests/session-history-cache.service.test.ts +165 -0
- package/server/modules/providers/tests/session-orphan-prune.test.ts +107 -0
- package/server/modules/providers/tests/session-synchronizer-coalescing.test.ts +136 -0
- package/server/modules/providers/tests/sessions.service.test.ts +303 -1
- package/server/modules/providers/tests/skills.test.ts +21 -5
- package/server/modules/scheduled-messages/index.ts +8 -0
- package/server/modules/scheduled-messages/scheduled-messages.routes.ts +68 -0
- package/server/modules/scheduled-messages/services/scheduled-message-dispatcher.service.ts +216 -0
- package/server/modules/scheduled-messages/services/scheduled-messages.service.ts +121 -0
- package/server/modules/scheduled-messages/tests/scheduled-messages.test.ts +354 -0
- package/server/modules/taskmaster/taskmaster.routes.ts +23 -33
- package/server/modules/taskmaster/tests/taskmaster.routes.test.ts +57 -0
- package/server/modules/user/tests/user.service.test.ts +90 -0
- package/server/modules/user/user.module.ts +10 -1
- package/server/modules/user/user.routes.ts +44 -0
- package/server/modules/user/user.service.ts +105 -0
- package/server/modules/voice/tests/voice.service.test.ts +3 -2
- package/server/modules/websocket/README.md +4 -2
- package/server/modules/websocket/index.ts +8 -0
- package/server/modules/websocket/services/chat-run-registry.service.ts +45 -54
- package/server/modules/websocket/services/chat-session-writer.service.ts +36 -6
- package/server/modules/websocket/services/chat-websocket.service.ts +302 -16
- package/server/modules/websocket/services/session-upsert-broadcast.service.ts +108 -0
- package/server/modules/websocket/services/shell-websocket.service.ts +276 -22
- package/server/modules/websocket/tests/chat-background-subscribe.test.ts +167 -0
- package/server/modules/websocket/tests/chat-edit-send.test.ts +309 -0
- package/server/modules/websocket/tests/chat-run-registry.test.ts +34 -3
- package/server/modules/websocket/tests/chat-stop-task.test.ts +127 -0
- package/server/modules/websocket/tests/session-upsert-broadcast.test.ts +138 -0
- package/server/modules/websocket/tests/shell-websocket.service.test.ts +629 -0
- package/server/shared/claude-cli-path.ts +24 -6
- package/server/shared/index.ts +3 -0
- package/server/shared/interfaces.ts +91 -0
- package/server/shared/message-unification.ts +449 -0
- package/server/shared/tests/claude-cli-path.test.ts +58 -1
- package/server/shared/tests/message-unification.test.ts +218 -0
- package/server/shared/tests/read-only-roots.test.ts +139 -0
- package/server/shared/tests/strip-ansi-sequences.test.ts +42 -0
- package/server/shared/types.ts +382 -7
- package/server/shared/utils.ts +176 -0
- package/dist/assets/channel-_falYbU1.js +0 -1
- package/dist/assets/classDiagram-JCYQIIEL-Dn-3CfpR.js +0 -1
- package/dist/assets/classDiagram-v2-OCEON4UE-Dn-3CfpR.js +0 -1
- package/dist/assets/index-CzPLBvXT.css +0 -32
- package/dist/assets/index-DFkBBuSA.js +0 -1549
- package/dist/assets/stateDiagram-v2-UEYNNEHI-BvBxUUrZ.js +0 -1
- package/dist/assets/swimlanesDiagram-ULZ7WXOC-CsE-x4YK.js +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-sessions.test.js","sourceRoot":"","sources":["../../../../../server/modules/providers/tests/claude-sessions.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6DAA6D,CAAC;AAErG,MAAM,UAAU,GAAG,WAAW,CAAC;AAE/B,MAAM,UAAU,GAAG;IACjB,qFAAqF;IACrF,EAAE;IACF,iDAAiD;IACjD,EAAE;IACF,kEAAkE;CACnE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,IAAI,CAAC,uEAAuE,EAAE,GAAG,EAAE;IACjF,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAE9C,6EAA6E;IAC7E,4DAA4D;IAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CACpC;QACE,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,0BAA0B;QACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE;KACzE,EACD,UAAU,CACX,CAAC;IACF,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE3B,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CACzC;QACE,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,0BAA0B;QACrC,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE;KACzE,EACD,UAAU,CACX,CAAC;IACF,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACrE,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAE9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CACxC;QACE,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,0BAA0B;QACrC,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;SACnG;KACF,EACD,UAAU,CACX,CAAC;IAEF,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"claude-sessions.test.js","sourceRoot":"","sources":["../../../../../server/modules/providers/tests/claude-sessions.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,6DAA6D,CAAC;AACrG,OAAO,EAAE,yBAAyB,EAAE,MAAM,yEAAyE,CAAC;AACpH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,KAAK,UAAU,oBAAoB,CAAC,OAAmC;IACrE,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACvD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAEnF,eAAe,EAAE,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,kBAAkB,EAAE,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,eAAe,EAAE,CAAC;QAClB,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,oBAAoB,CAAC;QACnD,CAAC;QACD,MAAM,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC;IAC3B,EAAU,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;IACxC,OAAO,GAAG,EAAE;QACT,EAAU,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAC9B,OAAe,EACf,QAAgB,EAChB,KAAe;IAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG;QACX,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAC7E,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QACnG,IAAI,CAAC,SAAS,CAAC;YACb,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK;YAClB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE;YAClD,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,0BAA0B;YACrC,GAAG,EAAE,iBAAiB;YACtB,SAAS,EAAE,gBAAgB;SAC5B,CAAC;KACH,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,GAAG,kBAAkB,CAAC;AACtC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AACpC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAE1C;;;;GAIG;AACH,KAAK,UAAU,0BAA0B,CAAC,gBAAwB;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,UAAU,QAAQ,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC/E,MAAM,KAAK,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG;QAClB;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE;gBACP,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,UAAU;wBAChB,EAAE,EAAE,iBAAiB;wBACrB,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE;qBAC3F,CAAC;aACH;SACF;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,iBAAiB;wBAC9B,OAAO,EAAE,kEAAkE;qBAC5E,CAAC;aACH;YACD,aAAa,EAAE;gBACb,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,gBAAgB;gBACxB,OAAO,EAAE,QAAQ;gBACjB,WAAW,EAAE,iBAAiB;gBAC9B,aAAa,EAAE,eAAe;aAC/B;SACF;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,gBAAgB;YACtB,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;4BACJ,qBAAqB;4BACrB,YAAY,QAAQ,YAAY;4BAChC,gBAAgB,iBAAiB,gBAAgB;4BACjD,4BAA4B;4BAC5B,qDAAqD;4BACrD,6CAA6C;4BAC7C,sBAAsB;yBACvB,CAAC,IAAI,CAAC,IAAI,CAAC;qBACb,CAAC;aACH;SACF;KACF,CAAC;IACF,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEvG,MAAM,UAAU,GAAG;QACjB;YACE,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE;gBACP,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE;oBAC9C,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE;iBACpG;aACF;SACF;QACD;YACE,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;aAC7F;SACF;KACF,CAAC;IACF,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,QAAQ,QAAQ,CAAC,EACvD,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAChE,MAAM,CACP,CAAC;IACF,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,QAAQ,YAAY,CAAC,EAC3D,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EACrH,MAAM,CACP,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,IAAI,CAAC,kFAAkF,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC1H,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE3E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAE9D,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAEnG,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE;gBAC1E,iBAAiB,EAAE,UAAU;aAC9B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CACjF,CAAC;YAEF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAC;YAChE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC9C,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;YAChE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAErD,wEAAwE;YACxE,iEAAiE;YACjE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+EAA+E,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACvH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAE9D,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAEnG,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE;gBAC1E,iBAAiB,EAAE,UAAU;aAC9B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CACjF,CAAC;YAEF,yEAAyE;YACzE,+BAA+B;YAC/B,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;YAE1E,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC7C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACpG,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,SAAS,EAAE,yDAAyD,CAAC,CAAC;QACxG,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,KAAK,UAAU,6BAA6B,CAC1C,UAAkB,EAClB,SAA+B;IAE/B,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,IAAI,EAAE,iBAAiB;YACvB,SAAS;YACT,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;SACrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC;AAED,KAAK,MAAM,SAAS,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAU,EAAE,CAAC;IACvD,IAAI,CAAC,0BAA0B,SAAS,mDAAmD,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QAC9H,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;QAEtF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,6BAA6B,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAE3D,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;gBACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACrC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBAEnG,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE;oBAC1E,iBAAiB,EAAE,UAAU;iBAC9B,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CACjF,CAAC;gBAEF,qEAAqE;gBACrE,oEAAoE;gBACpE,sEAAsE;gBACtE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;gBAC1E,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBAEtD,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC7C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACpG,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,SAAS,EAAE,yDAAyD,CAAC,CAAC;YACxG,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,CAAC,2FAA2F,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACnI,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,6BAA6B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC1D,4EAA4E;QAC5E,4EAA4E;QAC5E,qCAAqC;QACrC,MAAM,SAAS,CACb,UAAU,EACV,GAAG,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC;YAChE,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,EAAE;SACzF,CAAC,IAAI,EACN,MAAM,CACP,CAAC;QAEF,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAEnG,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE;gBAC1E,iBAAiB,EAAE,UAAU;aAC9B,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CACP,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,qBAAqB,CAAC,EAC7E,4CAA4C,CAC7C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oFAAoF,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC5H,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAEnF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC9D,sEAAsE;QACtE,yEAAyE;QACzE,yEAAyE;QACzE,8CAA8C;QAC9C,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/E,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACtF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAwB,CAAC;QACtE,MAAM,OAAO,GAAG;YACd,GAAG,SAAS;YACZ,IAAI,EAAE,gBAAgB;YACtB,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;6BACpC,OAAO,CAAC,4BAA4B,EAAE,0BAA0B,CAAC;6BACjE,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC;6BACxC,OAAO,CAAC,2BAA2B,EAAE,kEAAkE,CAAC;qBAC5G,CAAC;aACH;SACF,CAAC;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClH,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEjE,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAEnG,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE;gBAC1E,iBAAiB,EAAE,UAAU;aAC9B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CACjF,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;YAC1E,MAAM,CAAC,EAAE,CACP,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,EAC5F,mEAAmE,CACpE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,kFAAkF;AAClF,KAAK,UAAU,oBAAoB,CAAC,UAAkB;IACpD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,SAAS,CACb,UAAU,EACV,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAC/F,MAAM,CACP,CAAC;AACJ,CAAC;AAED,IAAI,CAAC,+EAA+E,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACvH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEvC,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAEnG,uEAAuE;YACvE,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE;gBACzH,iBAAiB,EAAE,UAAU;aAC9B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CACjF,CAAC;YAEF,yEAAyE;YACzE,0EAA0E;YAC1E,yEAAyE;YACzE,gEAAgE;YAChE,wEAAwE;YACxE,wDAAwD;YACxD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,wDAAwD,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oFAAoF,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC5H,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAEhF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEvC,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAEnG,sEAAsE;YACtE,uEAAuE;YACvE,sEAAsE;YACtE,gBAAgB;YAChB,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE;gBAC7G,iBAAiB,EAAE,UAAU;aAC9B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CACjF,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,wDAAwD,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2FAA2F,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACnI,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAEjF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEvC,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAEnG,wEAAwE;YACxE,yEAAyE;YACzE,sEAAsE;YACtE,qEAAqE;YACrE,cAAc;YACd,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE;gBAC1H,iBAAiB,EAAE,UAAU;aAC9B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CACjF,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2FAA2F,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACnI,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAChF,MAAM,YAAY,GAAG,eAAe,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEvC,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,sEAAsE;YACtE,qEAAqE;YACrE,sEAAsE;YACtE,sEAAsE;YACtE,sBAAsB;YACtB,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAErG,KAAK,MAAM,MAAM,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC;gBAChD,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,CAAC;oBAC/C,mBAAmB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;iBAC3G,CAAC,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC;gBACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CACjF,CAAC;gBAEF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,MAAM,oBAAoB,CAAC,CAAC;YACpG,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,sFAAsF;AACtF,KAAK,UAAU,sBAAsB,CAAC,gBAAwB;IAC5D,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACnG,CAAC;AAED,KAAK,MAAM,QAAQ,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAU,EAAE,CAAC;IACxD,IAAI,CAAC,4BAA4B,QAAQ,wEAAwE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QACpJ,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,8BAA8B,CAAC,CAAC,CAAC;QAEvF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,6BAA6B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC1D,MAAM,SAAS,CACb,UAAU,EACV,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,4BAA4B,EAAE,WAAW,QAAQ,WAAW,CAAC,EAC1G,MAAM,CACP,CAAC;YACF,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAC;YAEvC,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;gBACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACrC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBAEnG,gEAAgE;gBAChE,qEAAqE;gBACrE,kEAAkE;gBAClE,qEAAqE;gBACrE,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE;oBAC7G,iBAAiB,EAAE,UAAU;iBAC9B,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CACjF,CAAC;gBAEF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC;gBAC1E,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACnD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC/C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;gBACjE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;gBACzD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,mDAAmD,CAAC,CAAC;YACxG,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,CAAC,sGAAsG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC9I,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE/E,IAAI,CAAC;QACH,iEAAiE;QACjE,sEAAsE;QACtE,yCAAyC;QACzC,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAEvC,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAEnG,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE;gBAC7G,iBAAiB,EAAE,UAAU;aAC9B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CACjF,CAAC;YAEF,qEAAqE;YACrE,uDAAuD;YACvD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uEAAuE,EAAE,GAAG,EAAE;IACjF,qEAAqE;IACrE,6EAA6E;IAC7E,sEAAsE;IACtE,wEAAwE;IACxE,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,sBAAsB,EAAE,CAAC,gBAAgB,CAAC;QACjE,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,UAAU;QACtB,kBAAkB,EAAE,IAAI;QACxB,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,iBAAiB;oBAC9B,OAAO,EAAE,kEAAkE;iBAC5E,CAAC;SACH;QACD,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE;KAChF,EAAE,UAAU,CAAC,CAAC;IAEf,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAE,UAAU,EAAE,aAAmD,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;IAChF,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,2EAA2E;IAC3E,+CAA+C;IAC/C,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,sBAAsB,EAAE,CAAC,gBAAgB,CAAC;QACjE,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,UAAU;QACtB,kBAAkB,EAAE,IAAI;QACxB,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC;SACrG;QACD,eAAe,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;KAChF,EAAE,UAAU,CAAC,CAAC;IAEf,MAAM,SAAS,GAAG,UAAU,EAAE,aAAyE,CAAC;IACxG,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,MAAM,EAAE,8BAA8B,CAAC,CAAC;IAC7G,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,IAAI,EAAE,EAAE,0BAA0B,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AACtD,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAChD,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAC1C,MAAM,gBAAgB,GAAG,WAAW,CAAC;AACrC,MAAM,eAAe,GAAG;IACtB,uBAAuB;IACvB,wCAAwC;IACxC,wDAAwD;IACxD,mFAAmF;IACnF,GAAG;CACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;GAIG;AACH,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC;IACnD,qBAAqB;IACrB,YAAY,gBAAgB,YAAY;IACxC,gBAAgB,oBAAoB,gBAAgB;IACpD,uCAAuC,gBAAgB,uBAAuB;IAC9E,WAAW,MAAM,WAAW;IAC5B,sFAAsF;IACtF,yFAAyF;IACzF,sBAAsB;CACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AASb;;;;;;;GAOG;AACH,KAAK,UAAU,0BAA0B,CACvC,gBAAwB,EACxB,EAAE,YAAY,EAAE,OAAO,EAA0B;IAEjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,mBAAmB,QAAQ,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IAClH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,+BAA+B,eAAe,KAAK,CAAC,CAAC;IAEjJ,MAAM,WAAW,GAA8B;QAC7C;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,gBAAgB;YACtB,SAAS,EAAE,mBAAmB;YAC9B,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE;gBACP,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,UAAU;wBAChB,EAAE,EAAE,oBAAoB;wBACxB,IAAI,EAAE,UAAU;wBAChB,KAAK,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,sCAAsC,EAAE;qBACxF,CAAC;aACH;SACF;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,gBAAgB;YACtB,SAAS,EAAE,mBAAmB;YAC9B,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,aAAa;wBACnB,WAAW,EAAE,oBAAoB;wBACjC,OAAO,EAAE,6CAA6C,gBAAgB,oEAAoE,aAAa,kBAAkB,UAAU,EAAE;qBACtL,CAAC;aACH;YACD,aAAa,EAAE;gBACb,MAAM,EAAE,gBAAgB;gBACxB,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,gBAAgB;gBAC1B,YAAY,EAAE,6BAA6B;gBAC3C,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE,sCAAsC;gBAC/C,aAAa;gBACb,UAAU;aACX;SACF;KACF,CAAC;IAEF,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QAC5B,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,yBAAyB;YAC/B,SAAS,EAAE,mBAAmB;YAC9B,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;SACpG,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;QACnC,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,iBAAiB;YACvB,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,0BAA0B;YACrC,SAAS,EAAE,mBAAmB;YAC9B,OAAO,EAAE,wBAAwB,CAAC,WAAW,CAAC;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEvG,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG;YACnB,EAAE,IAAI,EAAE,UAAU,EAAE;YACpB,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE;YACrG,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE;YACxG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;YACzF,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE;YAC/D,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;SAC7G,CAAC;QACF,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,EACzC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAClE,MAAM,CACP,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,MAAM,YAAY,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAU,EAAE,CAAC;IAClE,IAAI,CAAC,qCAAqC,YAAY,8CAA8C,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QACvI,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC,CAAC,CAAC;QAExF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAE/F,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;gBACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACrC,UAAU,CAAC,aAAa,CAAC,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBAE5G,mEAAmE;gBACnE,mCAAmC;gBACnC,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,mBAAmB,EAAE;oBACtH,iBAAiB,EAAE,mBAAmB;iBACvC,CAAC,CAAC;gBACH,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACvC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,oBAAoB,CACpF,CAAC;gBAEF,uEAAuE;gBACvE,wEAAwE;gBACxE,sEAAsE;gBACtE,mCAAmC;gBACnC,MAAM,CAAC,KAAK,CACV,WAAW,EAAE,UAAU,EAAE,OAAO,EAChC,wEAAwE,CACzE,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;gBACzD,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,6BAA6B,CAAC,CAAC;gBACzE,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;gBAC5D,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,CAAC,CAAC;gBACzF,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,IAAI,EAAE,EAAE,kDAAkD,CAAC,CAAC;gBAE1G,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC7C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CACpG,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,SAAS,EAAE,yDAAyD,CAAC,CAAC;YACxG,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,CAAC,+EAA+E,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACvH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAEnF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvG,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAE5G,wEAAwE;YACxE,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC,YAAY,CAAC,mBAAmB,EAAE;gBAClI,iBAAiB,EAAE,mBAAmB;aACvC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACvC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,oBAAoB,CACpF,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,wDAAwD,CAAC,CAAC;YAC7G,sEAAsE;YACtE,iEAAiE;YACjE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE;gBAC9C,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE;gBACrF,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;gBACrF,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE;aACzF,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACtH,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2FAA2F,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACnI,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,+BAA+B,CAAC,CAAC,CAAC;IAExF,IAAI,CAAC;QACH,mEAAmE;QACnE,wEAAwE;QACxE,wEAAwE;QACxE,oEAAoE;QACpE,aAAa;QACb,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvG,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAE5G,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,mBAAmB,EAAE;gBACtH,iBAAiB,EAAE,mBAAmB;aACvC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACvC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,oBAAoB,CACpF,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACzD,MAAM,CAAC,SAAS,CACd,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAC1D,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CACnC,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACtH,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mGAAmG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC3I,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAElF,IAAI,CAAC;QACH,gEAAgE;QAChE,uEAAuE;QACvE,sBAAsB;QACtB,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAExG,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAE5G,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,mBAAmB,EAAE;gBACtH,iBAAiB,EAAE,mBAAmB;aACvC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACvC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,oBAAoB,CACpF,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACpD,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QACtH,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gFAAgF,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACxH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAClF,MAAM,SAAS,GAAG,qBAAqB,CAAC;IACxC,MAAM,SAAS,GAAG,iBAAiB,CAAC;IAEpC,IAAI,CAAC;QACH,oEAAoE;QACpE,qEAAqE;QACrE,wDAAwD;QACxD,MAAM,IAAI,GAAG;YACX;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,kBAAkB;gBACxB,SAAS;gBACT,SAAS,EAAE,0BAA0B;gBACrC,OAAO,EAAE;oBACP,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;iBACzH;aACF;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY;gBAClB,SAAS;gBACT,SAAS,EAAE,0BAA0B;gBACrC,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,aAAa;4BACnB,WAAW,EAAE,SAAS;4BACtB,OAAO,EAAE,oJAAoJ;yBAC9J,CAAC;iBACH;gBACD,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE;aACtI;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,0BAA0B;gBACrC,SAAS;gBACT,OAAO,EAAE;oBACP,qBAAqB;oBACrB,8BAA8B;oBAC9B,gBAAgB,SAAS,gBAAgB;oBACzC,wDAAwD;oBACxD,4BAA4B;oBAC5B,sFAAsF;oBACtF,sBAAsB;iBACvB,CAAC,IAAI,CAAC,IAAI,CAAC;aACb;SACF,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;QACjE,MAAM,SAAS,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAElG,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;YAElG,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE;gBAC5G,iBAAiB,EAAE,SAAS;aAC7B,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACnC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CACzE,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,mEAAmE,CAAC,CAAC;YAEhH,mEAAmE;YACnE,uEAAuE;YACvE,mDAAmD;YACnD,MAAM,SAAS,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9G,MAAM,UAAU,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE;gBAC/G,iBAAiB,EAAE,SAAS;aAC7B,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAC5C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CACzE,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,IAAI,EAAE,EAAE,6DAA6D,CAAC,CAAC;QACxH,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gFAAgF,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACxH,0EAA0E;IAC1E,0EAA0E;IAC1E,mEAAmE;IACnE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAEtF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvG,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QACnG,MAAM,OAAO,GAAG,mBAAmB,CAAC;QACpC,MAAM,IAAI,GAAG;YACX,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE;YAChK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC5C,WAAW,EAAE,IAAI;gBACjB,OAAO;gBACP,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,OAAO,KAAK,GAAG,CAAC,EAAE;gBACxB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE;gBACzF,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;aACzH,CAAC,CAAC;SACJ,CAAC;QACF,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,OAAO,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/H,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAE5G,MAAM,IAAI,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC;iBACjH,yBAAyB,CAAC,mBAAmB,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+FAA+F,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACvI,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,iCAAiC,CAAC,CAAC,CAAC;IAE1F,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvG,2EAA2E;QAC3E,+DAA+D;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QACnG,MAAM,OAAO,GAAG,mBAAmB,CAAC;QACpC,MAAM,IAAI,GAAG;YACX,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE;YAChK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE;SACtU,CAAC;QACF,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,OAAO,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/H,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAE5G,oEAAoE;YACpE,iCAAiC;YACjC,MAAM,IAAI,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC;iBACjH,yBAAyB,CAAC,mBAAmB,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YAC5E,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACjH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAClF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAElD,wEAAwE;YACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC;iBACrH,yBAAyB,CAAC,mBAAmB,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAEhD,uEAAuE;YACvE,4CAA4C;YAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,CAAC,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;iBAClF,yBAAyB,CAAC,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;YACxF,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oEAAoE,EAAE,GAAG,EAAE;IAC9E,yEAAyE;IACzE,uEAAuE;IACvE,0EAA0E;IAC1E,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAC9C,MAAM,SAAS,GAAG,CAAC,GAA4B,EAAE,EAAE,CACjD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;IAElJ,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QAC1B,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,sCAAsC;QACnD,SAAS,EAAE,gBAAgB;QAC3B,aAAa,EAAE,6BAA6B;KAC7C,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,6BAA6B,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,sCAAsC,CAAC,CAAC;IAE3E,MAAM,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;QAC3B,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,sCAAsC;QACnD,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;QACnE,OAAO,EAAE,YAAY;KACtB,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7F,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAE9C,0EAA0E;IAC1E,wDAAwD;IACxD,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QAC1B,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,gBAAgB;QACzB,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE;KACzD,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAEzC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;QAC/B,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,oBAAoB;QACjC,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,mEAAmE;QAC5E,WAAW,EAAE,0BAA0B,gBAAgB,SAAS;KACjE,CAAC,CAAC;IACH,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE,mEAAmE,CAAC,CAAC;IACzG,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,EAAE,0BAA0B,gBAAgB,SAAS,CAAC,CAAC;IAE5F,4DAA4D;IAC5D,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACpF,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sEAAsE,EAAE,GAAG,EAAE;IAChF,0EAA0E;IAC1E,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,yDAAyD;IACzD,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAC;IAC9C,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAC3C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,mBAAmB;QAC/B,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,sCAAsC;QAC/C,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;QACpE,cAAc,EAAE,eAAe;QAC/B,iBAAiB,EAAE;YACjB;gBACE,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,OAAO;gBACnB,OAAO,EAAE,mBAAmB;gBAC5B,KAAK,EAAE,iBAAiB;gBACxB,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,iBAAiB;gBAC5B,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,EAAE;gBACb,UAAU,EAAE,OAAO;gBACnB,aAAa,EAAE,6CAA6C;aAC7D;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,eAAe;gBACtB,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,OAAO;gBACnB,OAAO,EAAE,mBAAmB;gBAC5B,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,iBAAiB;gBAC5B,YAAY,EAAE,MAAM;gBACpB,eAAe,EAAE,YAAY;gBAC7B,aAAa,EAAE,mDAAmD;gBAClE,cAAc,EAAE,iBAAiB;gBACjC,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,EAAE;aACd;YACD,wDAAwD;YACxD,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE;YACtG,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE;YACtI,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE;SACxH;KACF,EAAE,mBAAmB,CAAC,CAAC;IAExB,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9F,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,yDAAyD,CAAC,CAAC;IACnH,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE;QACjC;YACE,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,mBAAmB;YAC5B,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,iBAAiB;YAC5B,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;YAC1B,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,OAAO;YACnB,aAAa,EAAE,6CAA6C;SAC7D;QACD;YACE,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,mBAAmB;YAC5B,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,iBAAiB;YAC5B,YAAY,EAAE,MAAM;YACpB,eAAe,EAAE,YAAY;YAC7B,aAAa,EAAE,mDAAmD;YAClE,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,SAAS;YACrB,aAAa,EAAE,SAAS;SACzB;QACD;YACE,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;YAC1B,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,aAAa,EAAE,SAAS;SACzB;QACD;YACE,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,mBAAmB;YAC5B,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,iBAAiB;YAC5B,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;YAC1B,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,aAAa,EAAE,SAAS;SACzB;QACD;YACE,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,mBAAmB;YAC5B,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,SAAS;YACpB,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;YAC1B,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,SAAS;YACrB,aAAa,EAAE,SAAS;SACzB;KACF,CAAC,CAAC;IAEH,0EAA0E;IAC1E,iDAAiD;IACjD,MAAM,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAC5C,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,mBAAmB;QAC/B,IAAI,EAAE,iCAAiC;QACvC,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,oBAAoB;QACjC,WAAW,EAAE,sBAAsB;QACnC,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;QACpE,cAAc,EAAE,eAAe;KAChC,EAAE,mBAAmB,CAAC,CAAC;IACxB,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACzD,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAE3C,iDAAiD;IACjD,MAAM,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAChD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,mBAAmB;QAC/B,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE,iBAAiB;QAC9B,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;QACxD,cAAc,EAAE,MAAM;KACvB,EAAE,mBAAmB,CAAC,CAAC;IACxB,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2EAA2E,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACnH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEvC,uEAAuE;QACvE,oEAAoE;QACpE,oEAAoE;QACpE,sDAAsD;QACtD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC;QAE5F,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,QAAQ,QAAQ,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,SAAS,CACb,SAAS,EACT,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAC9F,MAAM,CACP,CAAC;QAEF,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAEnG,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE;gBAC1E,iBAAiB,EAAE,UAAU;aAC9B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CACjF,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4DAA4D,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACpG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE5E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAE9D,qEAAqE;QACrE,iDAAiD;QACjD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,QAAQ,QAAQ,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,QAAQ;aACtB,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2E,CAAC;YACzG,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC;gBAChD,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBAChC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,SAAS,CAAC,SAAS,EAAE,GAAG,QAAQ,IAAI,EAAE,MAAM,CAAC,CAAC;QAEpD,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YAEnG,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE;gBAC1E,iBAAiB,EAAE,UAAU;aAC9B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CACjF,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YAEnF,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,EAAE,sCAAsC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YACjG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,kBAAkB,EAAE,wCAAwC,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C;;;;GAIG;AACH,KAAK,UAAU,qBAAqB,CAAC,gBAAwB;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,eAAe,QAAQ,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG;QACX;YACE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe;YACtE,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE;SAC7E;QACD;YACE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe;YAC3E,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE;SAC1G;QACD;YACE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe;YACtE,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,EAAE;SACvF;QACD;YACE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe;YAC3E,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,EAAE;SACnH;QACD,8CAA8C;QAC9C;YACE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe;YACvE,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,EAAE;SACrF;QACD;YACE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe;YAC7E,SAAS,EAAE,0BAA0B;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,EAAE;SAChH;KACF,CAAC;IAEF,MAAM,SAAS,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClG,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,IAAI,CAAC,2EAA2E,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACnH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE/E,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAE7D,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;YAE1G,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE;gBAC/E,iBAAiB,EAAE,eAAe;aACnC,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEjE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE;gBACtB,cAAc;gBACd,cAAc;gBACd,sBAAsB;gBACtB,oBAAoB;aACrB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAE1D;;;;GAIG;AACH,MAAM,aAAa,GAAG;IACpB,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB;QAC5E,SAAS,EAAE,0BAA0B;QACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE;KAC9E;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB;QACjF,SAAS,EAAE,0BAA0B;QACrC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE;KAC3G;IACD,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB;QAC5E,SAAS,EAAE,0BAA0B;QACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE;KAC5E;IACD,UAAU,EAAE;QACV,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB;QACjF,SAAS,EAAE,0BAA0B;QACrC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE;KACzG;IACD,2EAA2E;IAC3E,yBAAyB;IACzB,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB;QAC5E,SAAS,EAAE,0BAA0B;QACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE;KAChF;IACD,cAAc,EAAE;QACd,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB;QACjF,SAAS,EAAE,0BAA0B;QACrC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE;KAC7G;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB;QAC5E,SAAS,EAAE,0BAA0B;QACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE;KAC/E;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB;QACjF,SAAS,EAAE,0BAA0B;QACrC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,EAAE;KACnH;CACF,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC;IACvC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB;CACxF,CAAC,CAAC;AAEH,KAAK,UAAU,6BAA6B,CAAC,IAAc;IACzD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAErF,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,qBAAqB,QAAQ,CAAC,CAAC;QAC7E,MAAM,SAAS,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAElG,IAAI,KAAK,GAAc,EAAE,CAAC;QAC1B,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CACtB,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,6BAA6B,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,CACnG,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,YAAY,CAAC,qBAAqB,EAAE;gBACrF,iBAAiB,EAAE,qBAAqB;aACzC,CAAC,CAAC;YACH,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AACvD,MAAM,aAAa,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;AAE7D,IAAI,CAAC,qEAAqE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC7G,MAAM,CAAC,GAAG,aAAa,CAAC;IACxB,8EAA8E;IAC9E,gDAAgD;IAChD,MAAM,KAAK,GAAG,MAAM,6BAA6B,CAAC;QAChD,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU;QAC1D,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,kBAAkB;KACzE,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC,CAAC;AACrH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4DAA4D,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACpG,MAAM,CAAC,GAAG,aAAa,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,6BAA6B,CAAC;QAChD,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC;QAC3E,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,kBAAkB,EAAE,SAAS,CAAC,IAAI,CAAC;KAC1F,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC,CAAC;AACrH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qEAAqE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC7G,MAAM,CAAC,GAAG,aAAa,CAAC;IACxB,2EAA2E;IAC3E,+DAA+D;IAC/D,MAAM,KAAK,GAAG,MAAM,6BAA6B,CAAC;QAChD,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC;QAC3E,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,kBAAkB,EAAE,SAAS,CAAC,IAAI,CAAC;QACzF,SAAS,CAAC,IAAI,CAAC;KAChB,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sEAAsE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC9G,MAAM,CAAC,GAAG,aAAa,CAAC;IACxB,4EAA4E;IAC5E,4EAA4E;IAC5E,MAAM,KAAK,GAAG,MAAM,6BAA6B,CAAC;QAChD,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC;QAC3E,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,cAAc;KACnC,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kDAAkD,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC1F,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,yBAAyB,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;QACjE,0EAA0E;QAC1E,2EAA2E;QAC3E,sEAAsE;QACtE,MAAM,IAAI,GAAG;YACX;gBACE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS;gBACrD,SAAS,EAAE,0BAA0B;gBACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE;aAC9E;YACD;gBACE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS;gBAC3D,SAAS,EAAE,0BAA0B;gBACrC,OAAO,EAAE;oBACP,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe;oBACzC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;iBACxF;aACF;YACD;gBACE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS;gBACvD,SAAS,EAAE,0BAA0B;gBACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE;aAC/G;YACD;gBACE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS;gBACvD,SAAS,EAAE,0BAA0B;gBACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE;aAC/G;SACF,CAAC;QACF,MAAM,SAAS,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAElG,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;YAEpG,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE;gBACzE,iBAAiB,EAAE,SAAS;aAC7B,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,CACV,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,eAAe,CAAC,EACvE,IAAI,CACL,CAAC;YACF,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAChF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+DAA+D,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACvG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAE9E,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAE7D,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;YAC1G,MAAM,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAC;YAE9C,qEAAqE;YACrE,yEAAyE;YACzE,uBAAuB;YACvB,MAAM,CAAC,SAAS,CACd,MAAM,QAAQ,CAAC,iBAAiB,CAAC,eAAe,EAAE,KAAK,CAAC,EACxD,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CACvC,CAAC;YAEF,sEAAsE;YACtE,MAAM,CAAC,SAAS,CACd,MAAM,QAAQ,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,EACvD,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CACvC,CAAC;YAEF,MAAM,CAAC,SAAS,CACd,MAAM,QAAQ,CAAC,iBAAiB,CAAC,eAAe,EAAE,mBAAmB,CAAC,EACtE,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CACxC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4DAA4D,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACpG,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAE7D,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;YAE1G,MAAM,OAAO,GAAG,MAAM,IAAI,sBAAsB,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE;gBAC/E,iBAAiB,EAAE,eAAe;aACnC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC/E,MAAM,CAAC,SAAS,CACd,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,EACrD,CAAC,IAAI,EAAE,KAAK,CAAC,CACd,CAAC;YACF,sEAAsE;YACtE,uBAAuB;YACvB,MAAM,CAAC,KAAK,CACV,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC,EACzF,KAAK,CACN,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qEAAqE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC7G,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,4BAA4B,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;QACjE,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,MAAM,IAAI,GAAG;YACX;gBACE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS;gBACtD,SAAS,EAAE,0BAA0B;gBACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;aACtE;YACD;gBACE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS;gBAC5D,SAAS,EAAE,0BAA0B;gBACrC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;aAChG;YACD;gBACE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS;gBAC9D,SAAS,EAAE,0BAA0B;aACtC;YACD;gBACE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS;gBACxD,SAAS,EAAE,0BAA0B;gBACrC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE;aAC9E;SACF,CAAC;QACF,MAAM,SAAS,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAElG,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;YAEjG,MAAM,CAAC,SAAS,CACd,MAAM,IAAI,sBAAsB,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,EACtE,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CACxC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,IAAI,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;IACzF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,SAAS,CACb,QAAQ,EACR;YACE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;YAC9D,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;SAC7D,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACP,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAEnE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;IACnE,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3F,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;IACjE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;IACxE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,SAAS,CACb,QAAQ,EACR;YACE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;YAC/D,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;YACjD,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;SAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,MAAM,CACP,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAE9E,IAAI,CAAC,wEAAwE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAChH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC1E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,gEAAgE;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EACtC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,GAAG,IAAI,EACjG,MAAM,CACP,CAAC;QAEF,wDAAwD;QACxD,MAAM,iBAAiB,CAAC,aAAa,EAAE,sBAAsB,EAAE;YAC7D,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;YAChG,IAAI,CAAC,SAAS,CAAC;gBACb,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE;gBAC1E,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,OAAO;aACd,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;SACjG,CAAC,CAAC;QAEH,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,YAAY,GAAG,IAAI,yBAAyB,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CACjD,CAAC;YAEF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,MAAO,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qFAAqF,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC7H,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAEpE,MAAM,iBAAiB,CAAC,aAAa,EAAE,sBAAsB,EAAE;YAC7D,IAAI,CAAC,SAAS,CAAC;gBACb,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;gBACzE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,OAAO;aACd,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;YACrG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;SACjG,CAAC,CAAC;QAEH,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,YAAY,GAAG,IAAI,yBAAyB,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CACjD,CAAC;YAEF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,MAAO,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oFAAoF,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC5H,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EACtC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,GAAG,IAAI,EACxF,MAAM,CACP,CAAC;QAEF,gEAAgE;QAChE,MAAM,iBAAiB,CAAC,aAAa,EAAE,sBAAsB,EAAE;YAC7D,IAAI,CAAC,SAAS,CAAC;gBACb,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;gBACzE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,OAAO;aACd,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,YAAY,GAAG,IAAI,yBAAyB,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CACjD,CAAC;YAEF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,MAAO,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,uBAAuB,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kFAAkF,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC1H,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAEpE,6CAA6C;QAC7C,MAAM,iBAAiB,CAAC,aAAa,EAAE,sBAAsB,EAAE;YAC7D,IAAI,CAAC,SAAS,CAAC;gBACb,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;gBACzE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,OAAO;aACd,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,YAAY,GAAG,IAAI,yBAAyB,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CACjD,CAAC;YAEF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,MAAO,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,yBAAyB,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,yDAAyD;AACzD,8EAA8E;AAE9E,IAAI,CAAC,yFAAyF,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACjI,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EACtC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,GAAG,IAAI,EACvF,MAAM,CACP,CAAC;QAEF,+CAA+C;QAC/C,MAAM,iBAAiB,CAAC,aAAa,EAAE,sBAAsB,EAAE;YAC7D,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;YAC5F,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;SACjG,CAAC,CAAC;QAEH,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,sEAAsE;YACtE,UAAU,CAAC,aAAa,CACtB,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,qBAAqB,CACtB,CAAC;YAEF,MAAM,YAAY,GAAG,IAAI,yBAAyB,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CACjD,CAAC;YAEF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,MAAO,CAAC,CAAC;YACnD,yEAAyE;YACzE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sFAAsF,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC9H,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAEpE,sEAAsE;QACtE,MAAM,iBAAiB,CAAC,aAAa,EAAE,sBAAsB,EAAE;YAC7D,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;YACtG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;SACjG,CAAC,CAAC;QAEH,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,2DAA2D;YAC3D,UAAU,CAAC,aAAa,CACtB,gBAAgB,EAChB,QAAQ,EACR,aAAa,EACb,yBAAyB,CAC1B,CAAC;YAEF,MAAM,YAAY,GAAG,IAAI,yBAAyB,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CACjD,CAAC;YAEF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAClB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,MAAO,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,0BAA0B,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,IAAI,CAAC,4CAA4C,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IACpF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QAEpE,iDAAiD;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAC7E,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,YAAY,EAAE,eAAe,EAAE;YACrD,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;SAC7F,CAAC,CAAC;QAEH,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,YAAY,GAAG,IAAI,yBAAyB,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAC/C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CACzC,CAAC;YAEF,iEAAiE;YACjE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,cAAc,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;IAC/E,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;QACpC,MAAM,YAAY,GAAG,IAAI,yBAAyB,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;QAC1E,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import { once } from 'node:events';
|
|
3
|
+
import { mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
|
|
4
|
+
import os from 'node:os';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import test from 'node:test';
|
|
7
|
+
import express from 'express';
|
|
8
|
+
import providerRouter from '../../../modules/providers/provider.routes.js';
|
|
9
|
+
import { claudeSettingsPermissionsService } from '../../../modules/providers/services/claude-settings-permissions.service.js';
|
|
10
|
+
const withHome = async (run) => {
|
|
11
|
+
const homeDir = await mkdtemp(path.join(os.tmpdir(), 'claude-settings-permissions-'));
|
|
12
|
+
// os.homedir() reads HOME on POSIX and USERPROFILE on Windows.
|
|
13
|
+
const overridden = { HOME: homeDir, USERPROFILE: homeDir, CLAUDE_CONFIG_DIR: undefined };
|
|
14
|
+
const original = Object.fromEntries(Object.keys(overridden).map((key) => [key, process.env[key]]));
|
|
15
|
+
const setEnv = (values) => {
|
|
16
|
+
for (const [key, value] of Object.entries(values)) {
|
|
17
|
+
if (value === undefined) {
|
|
18
|
+
delete process.env[key];
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
process.env[key] = value;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
setEnv(overridden);
|
|
26
|
+
try {
|
|
27
|
+
await run(homeDir);
|
|
28
|
+
}
|
|
29
|
+
finally {
|
|
30
|
+
setEnv(original);
|
|
31
|
+
await rm(homeDir, { recursive: true, force: true });
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const writeSettings = async (filePath, content) => {
|
|
35
|
+
await mkdir(path.dirname(filePath), { recursive: true });
|
|
36
|
+
await writeFile(filePath, typeof content === 'string' || Buffer.isBuffer(content) ? content : JSON.stringify(content));
|
|
37
|
+
};
|
|
38
|
+
const bySource = (sources, scope) => {
|
|
39
|
+
const source = sources.find((entry) => entry.scope === scope);
|
|
40
|
+
assert.ok(source, `expected a ${scope} source`);
|
|
41
|
+
return source;
|
|
42
|
+
};
|
|
43
|
+
test('lists the allow, deny and ask rules of ~/.claude/settings.json and the managed file', async () => {
|
|
44
|
+
await withHome(async (homeDir) => {
|
|
45
|
+
const userFile = path.join(homeDir, '.claude', 'settings.json');
|
|
46
|
+
const managedFile = path.join(homeDir, 'managed', 'managed-settings.json');
|
|
47
|
+
await writeSettings(userFile, {
|
|
48
|
+
env: { ANTHROPIC_API_KEY: 'sk-secret' },
|
|
49
|
+
permissions: {
|
|
50
|
+
allow: ['Bash(npm run test:*)', 'Read', 'Read', ' ', 42],
|
|
51
|
+
deny: ['Bash(rm:*)'],
|
|
52
|
+
ask: ['WebFetch'],
|
|
53
|
+
defaultMode: 'acceptEdits',
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
await writeSettings(managedFile, { permissions: { deny: ['WebSearch'] } });
|
|
57
|
+
const sources = await claudeSettingsPermissionsService.listRuleSources(managedFile);
|
|
58
|
+
assert.deepEqual(bySource(sources, 'user'), {
|
|
59
|
+
scope: 'user',
|
|
60
|
+
path: userFile,
|
|
61
|
+
status: 'ok',
|
|
62
|
+
// Duplicates, blanks and non-strings are dropped; order is kept.
|
|
63
|
+
allow: ['Bash(npm run test:*)', 'Read'],
|
|
64
|
+
deny: ['Bash(rm:*)'],
|
|
65
|
+
ask: ['WebFetch'],
|
|
66
|
+
});
|
|
67
|
+
assert.deepEqual(bySource(sources, 'managed'), {
|
|
68
|
+
scope: 'managed',
|
|
69
|
+
path: managedFile,
|
|
70
|
+
status: 'ok',
|
|
71
|
+
allow: [],
|
|
72
|
+
deny: ['WebSearch'],
|
|
73
|
+
ask: [],
|
|
74
|
+
});
|
|
75
|
+
// Nothing but the rule lists leaves the server (the env block holds secrets).
|
|
76
|
+
assert.doesNotMatch(JSON.stringify(sources), /sk-secret|acceptEdits/);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
test('reports missing files as empty instead of failing', async () => {
|
|
80
|
+
await withHome(async (homeDir) => {
|
|
81
|
+
const sources = await claudeSettingsPermissionsService.listRuleSources(path.join(homeDir, 'nowhere', 'managed-settings.json'));
|
|
82
|
+
for (const source of sources) {
|
|
83
|
+
assert.equal(source.status, 'missing');
|
|
84
|
+
assert.deepEqual([source.allow, source.deny, source.ask], [[], [], []]);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
test('reports invalid JSON, non-object JSON and unreadable paths as invalid without throwing', async () => {
|
|
89
|
+
await withHome(async (homeDir) => {
|
|
90
|
+
const userFile = path.join(homeDir, '.claude', 'settings.json');
|
|
91
|
+
const managedFile = path.join(homeDir, 'managed', 'managed-settings.json');
|
|
92
|
+
await writeSettings(userFile, '{ "permissions": { "allow": ["Read"], }');
|
|
93
|
+
await writeSettings(managedFile, '["Read"]');
|
|
94
|
+
let sources = await claudeSettingsPermissionsService.listRuleSources(managedFile);
|
|
95
|
+
assert.equal(bySource(sources, 'user').status, 'invalid');
|
|
96
|
+
assert.deepEqual(bySource(sources, 'user').allow, []);
|
|
97
|
+
assert.equal(bySource(sources, 'managed').status, 'invalid');
|
|
98
|
+
// A directory where the file should be cannot be read either.
|
|
99
|
+
await rm(userFile);
|
|
100
|
+
await mkdir(userFile);
|
|
101
|
+
sources = await claudeSettingsPermissionsService.listRuleSources(managedFile);
|
|
102
|
+
assert.equal(bySource(sources, 'user').status, 'invalid');
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
test('reports a file under a path that is not a directory as missing', async () => {
|
|
106
|
+
await withHome(async (homeDir) => {
|
|
107
|
+
// ~/.claude is a plain file, so ~/.claude/settings.json cannot exist (ENOTDIR).
|
|
108
|
+
await writeFile(path.join(homeDir, '.claude'), 'not a directory');
|
|
109
|
+
const sources = await claudeSettingsPermissionsService.listRuleSources(path.join(homeDir, 'none.json'));
|
|
110
|
+
assert.equal(bySource(sources, 'user').status, 'missing');
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
test('reads files saved with a byte order mark, as the CLI does', async () => {
|
|
114
|
+
await withHome(async (homeDir) => {
|
|
115
|
+
const userFile = path.join(homeDir, '.claude', 'settings.json');
|
|
116
|
+
const managedFile = path.join(homeDir, 'managed', 'managed-settings.json');
|
|
117
|
+
const settings = JSON.stringify({ permissions: { allow: ['Bash(git status)'], deny: ['Bash(rm:*)'] } });
|
|
118
|
+
// UTF-8 with BOM (older Notepad) and UTF-16LE with BOM (Windows PowerShell 5.1 Out-File).
|
|
119
|
+
await writeSettings(userFile, Buffer.concat([Buffer.from([0xef, 0xbb, 0xbf]), Buffer.from(settings, 'utf8')]));
|
|
120
|
+
await writeSettings(managedFile, Buffer.concat([Buffer.from([0xff, 0xfe]), Buffer.from(settings, 'utf16le')]));
|
|
121
|
+
const sources = await claudeSettingsPermissionsService.listRuleSources(managedFile);
|
|
122
|
+
for (const scope of ['user', 'managed']) {
|
|
123
|
+
const source = bySource(sources, scope);
|
|
124
|
+
assert.equal(source.status, 'ok', `${scope} file`);
|
|
125
|
+
assert.deepEqual(source.allow, ['Bash(git status)']);
|
|
126
|
+
assert.deepEqual(source.deny, ['Bash(rm:*)']);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
test('treats an empty or whitespace-only file as valid with no rules, as the CLI does', async () => {
|
|
131
|
+
await withHome(async (homeDir) => {
|
|
132
|
+
const userFile = path.join(homeDir, '.claude', 'settings.json');
|
|
133
|
+
const managedFile = path.join(homeDir, 'managed', 'managed-settings.json');
|
|
134
|
+
await writeSettings(userFile, '');
|
|
135
|
+
await writeSettings(managedFile, ' \n\t\r\n');
|
|
136
|
+
const sources = await claudeSettingsPermissionsService.listRuleSources(managedFile);
|
|
137
|
+
for (const source of sources) {
|
|
138
|
+
assert.equal(source.status, 'ok', `${source.scope} file`);
|
|
139
|
+
assert.deepEqual([source.allow, source.deny, source.ask], [[], [], []]);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
test('reports a file over the CLI 2 MB limit as invalid, since the CLI skips it', async () => {
|
|
144
|
+
await withHome(async (homeDir) => {
|
|
145
|
+
const userFile = path.join(homeDir, '.claude', 'settings.json');
|
|
146
|
+
await writeSettings(userFile, { permissions: { allow: ['Read'] }, padding: 'x'.repeat(2 * 1024 * 1024) });
|
|
147
|
+
const sources = await claudeSettingsPermissionsService.listRuleSources(path.join(homeDir, 'none.json'));
|
|
148
|
+
assert.equal(bySource(sources, 'user').status, 'invalid');
|
|
149
|
+
assert.deepEqual(bySource(sources, 'user').allow, []);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
test('a settings file without a permissions block is valid and adds no rules', async () => {
|
|
153
|
+
await withHome(async (homeDir) => {
|
|
154
|
+
const userFile = path.join(homeDir, '.claude', 'settings.json');
|
|
155
|
+
await writeSettings(userFile, { model: 'opus' });
|
|
156
|
+
let sources = await claudeSettingsPermissionsService.listRuleSources(path.join(homeDir, 'none.json'));
|
|
157
|
+
assert.equal(bySource(sources, 'user').status, 'ok');
|
|
158
|
+
assert.deepEqual(bySource(sources, 'user').allow, []);
|
|
159
|
+
// A rule list that is not an array adds no rules either.
|
|
160
|
+
await writeSettings(userFile, { permissions: { allow: 'Read' } });
|
|
161
|
+
sources = await claudeSettingsPermissionsService.listRuleSources(path.join(homeDir, 'none.json'));
|
|
162
|
+
assert.equal(bySource(sources, 'user').status, 'ok');
|
|
163
|
+
assert.deepEqual(bySource(sources, 'user').allow, []);
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
test('reads the managed file from the fixed path the CLI uses on each OS', async () => {
|
|
167
|
+
const expected = {
|
|
168
|
+
darwin: '/Library/Application Support/ClaudeCode/managed-settings.json',
|
|
169
|
+
win32: 'C:\\Program Files\\ClaudeCode\\managed-settings.json',
|
|
170
|
+
linux: '/etc/claude-code/managed-settings.json',
|
|
171
|
+
};
|
|
172
|
+
const originalPlatform = Object.getOwnPropertyDescriptor(process, 'platform');
|
|
173
|
+
assert.ok(originalPlatform);
|
|
174
|
+
await withHome(async () => {
|
|
175
|
+
try {
|
|
176
|
+
for (const [platform, managedPath] of Object.entries(expected)) {
|
|
177
|
+
Object.defineProperty(process, 'platform', { ...originalPlatform, value: platform });
|
|
178
|
+
const sources = await claudeSettingsPermissionsService.listRuleSources();
|
|
179
|
+
assert.equal(bySource(sources, 'managed').path, managedPath, platform);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
finally {
|
|
183
|
+
Object.defineProperty(process, 'platform', originalPlatform);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
test('follows CLAUDE_CONFIG_DIR like the CLI does', async () => {
|
|
188
|
+
await withHome(async (homeDir) => {
|
|
189
|
+
const configDir = path.join(homeDir, 'custom-claude');
|
|
190
|
+
await writeSettings(path.join(configDir, 'settings.json'), { permissions: { allow: ['Edit'] } });
|
|
191
|
+
process.env.CLAUDE_CONFIG_DIR = configDir;
|
|
192
|
+
const sources = await claudeSettingsPermissionsService.listRuleSources(path.join(homeDir, 'none.json'));
|
|
193
|
+
assert.equal(bySource(sources, 'user').path, path.join(configDir, 'settings.json'));
|
|
194
|
+
assert.deepEqual(bySource(sources, 'user').allow, ['Edit']);
|
|
195
|
+
// A relative value would resolve against the server's cwd, not the CLI's
|
|
196
|
+
// project folder, so the reader keeps the default location instead.
|
|
197
|
+
process.env.CLAUDE_CONFIG_DIR = 'custom-claude';
|
|
198
|
+
const fallback = await claudeSettingsPermissionsService.listRuleSources(path.join(homeDir, 'none.json'));
|
|
199
|
+
assert.equal(bySource(fallback, 'user').path, path.join(homeDir, '.claude', 'settings.json'));
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
test('GET /api/providers/claude/settings-permissions serves the sources and never writes the files', async () => {
|
|
203
|
+
await withHome(async (homeDir) => {
|
|
204
|
+
const userFile = path.join(homeDir, '.claude', 'settings.json');
|
|
205
|
+
const original = JSON.stringify({ permissions: { allow: ['Bash(git status)'] } });
|
|
206
|
+
await writeSettings(userFile, original);
|
|
207
|
+
const app = express().use('/api/providers', providerRouter);
|
|
208
|
+
const server = app.listen(0, '127.0.0.1');
|
|
209
|
+
await once(server, 'listening');
|
|
210
|
+
try {
|
|
211
|
+
const { port } = server.address();
|
|
212
|
+
const response = await fetch(`http://127.0.0.1:${port}/api/providers/claude/settings-permissions`);
|
|
213
|
+
const payload = await response.json();
|
|
214
|
+
assert.equal(response.status, 200);
|
|
215
|
+
assert.equal(payload.success, true);
|
|
216
|
+
const user = bySource(payload.data.sources, 'user');
|
|
217
|
+
assert.equal(user.path, userFile);
|
|
218
|
+
assert.deepEqual(user.allow, ['Bash(git status)']);
|
|
219
|
+
assert.equal(await readFile(userFile, 'utf8'), original);
|
|
220
|
+
}
|
|
221
|
+
finally {
|
|
222
|
+
await new Promise((resolve, reject) => {
|
|
223
|
+
server.close((error) => error ? reject(error) : resolve());
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
//# sourceMappingURL=claude-settings-permissions.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-settings-permissions.test.js","sourceRoot":"","sources":["../../../../../server/modules/providers/tests/claude-settings-permissions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import test from 'node:test';
|
|
3
|
+
import { isSubagentPromptEcho } from '../../../modules/providers/list/claude/claude-runtime.provider.js';
|
|
4
|
+
test('a subagent prompt echo is suppressed', () => {
|
|
5
|
+
// The Agent tool card already shows this prompt, and the transcript keeps the
|
|
6
|
+
// turn in the subagent sidechain, so streaming it stacked a duplicate user
|
|
7
|
+
// bubble that vanished on reload.
|
|
8
|
+
assert.equal(isSubagentPromptEcho({ kind: 'text', role: 'user', parentToolUseId: 'toolu_1', content: 'Investigate' }), true);
|
|
9
|
+
});
|
|
10
|
+
test('the session prompt is kept', () => {
|
|
11
|
+
assert.equal(isSubagentPromptEcho({ kind: 'text', role: 'user', content: 'Hello' }), false);
|
|
12
|
+
});
|
|
13
|
+
test('subagent tool traffic is kept', () => {
|
|
14
|
+
assert.equal(isSubagentPromptEcho({ kind: 'tool_result', toolId: 'toolu_2', parentToolUseId: 'toolu_1' }), false);
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=claude-subagent-echo.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-subagent-echo.test.js","sourceRoot":"","sources":["../../../../../server/modules/providers/tests/claude-subagent-echo.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;AAElG,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,8EAA8E;IAC9E,2EAA2E;IAC3E,kCAAkC;IAClC,MAAM,CAAC,KAAK,CACV,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,EACxG,IAAI,CACL,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACtC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;IACzC,MAAM,CAAC,KAAK,CACV,oBAAoB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,EAC5F,KAAK,CACN,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import assert from 'node:assert/strict';
|
|
2
|
+
import test from 'node:test';
|
|
3
|
+
import { extractCumulativeTokenBudget, extractTokenBudget, } from '../../../modules/providers/list/claude/claude-runtime.provider.js';
|
|
4
|
+
test('assistant usage produces a cumulative budget', () => {
|
|
5
|
+
const budget = extractTokenBudget({
|
|
6
|
+
type: 'assistant',
|
|
7
|
+
message: {
|
|
8
|
+
usage: {
|
|
9
|
+
input_tokens: 12,
|
|
10
|
+
cache_read_input_tokens: 40_000,
|
|
11
|
+
cache_creation_input_tokens: 2_000,
|
|
12
|
+
output_tokens: 500,
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
assert.ok(budget);
|
|
17
|
+
assert.equal(budget.inputTokens, 42_012);
|
|
18
|
+
assert.equal(budget.outputTokens, 500);
|
|
19
|
+
assert.equal(budget.used, 42_512);
|
|
20
|
+
});
|
|
21
|
+
test('system task events with tool-usage shaped usage emit no budget', () => {
|
|
22
|
+
// task_progress/task_notification carry usage {total_tokens, tool_uses,
|
|
23
|
+
// duration_ms}; reading Anthropic keys off it produced a used: 0 budget
|
|
24
|
+
// that flashed "0" in the composer mid-generation.
|
|
25
|
+
const budget = extractTokenBudget({
|
|
26
|
+
type: 'system',
|
|
27
|
+
subtype: 'task_progress',
|
|
28
|
+
task_id: 't-1',
|
|
29
|
+
usage: { total_tokens: 5_000, tool_uses: 3, duration_ms: 1_200 },
|
|
30
|
+
});
|
|
31
|
+
assert.equal(budget, null);
|
|
32
|
+
});
|
|
33
|
+
test('subagent messages emit no budget for the parent session', () => {
|
|
34
|
+
// A subagent's usage is its own context window; surfacing it made the
|
|
35
|
+
// session counter drop to the subagent's number and bounce back.
|
|
36
|
+
const budget = extractTokenBudget({
|
|
37
|
+
type: 'assistant',
|
|
38
|
+
parent_tool_use_id: 'toolu_123',
|
|
39
|
+
message: { usage: { input_tokens: 900, output_tokens: 10 } },
|
|
40
|
+
});
|
|
41
|
+
assert.equal(budget, null);
|
|
42
|
+
});
|
|
43
|
+
test('a turn-ending result emits no budget', () => {
|
|
44
|
+
// `result.usage` is the turn's bill: every request it made, summed, each
|
|
45
|
+
// subagent's included. A four-request turn therefore reports roughly four
|
|
46
|
+
// times the context the conversation holds, so publishing it made the
|
|
47
|
+
// counter leap when the turn ended and fall back on the next turn's first
|
|
48
|
+
// assistant message.
|
|
49
|
+
const budget = extractTokenBudget({
|
|
50
|
+
type: 'result',
|
|
51
|
+
usage: {
|
|
52
|
+
input_tokens: 18,
|
|
53
|
+
cache_creation_input_tokens: 8_138,
|
|
54
|
+
cache_read_input_tokens: 40_460,
|
|
55
|
+
output_tokens: 166,
|
|
56
|
+
},
|
|
57
|
+
modelUsage: {
|
|
58
|
+
'claude-sonnet-5': { inputTokens: 929, outputTokens: 177 },
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
assert.equal(budget, null);
|
|
62
|
+
});
|
|
63
|
+
test('the cumulative reader stays available for SDK builds with no assistant usage', () => {
|
|
64
|
+
const fromUsage = extractCumulativeTokenBudget({
|
|
65
|
+
type: 'result',
|
|
66
|
+
usage: { input_tokens: 18, cache_read_input_tokens: 40_460, output_tokens: 166 },
|
|
67
|
+
});
|
|
68
|
+
assert.ok(fromUsage);
|
|
69
|
+
assert.equal(fromUsage.used, 40_644);
|
|
70
|
+
const fromModelUsage = extractCumulativeTokenBudget({
|
|
71
|
+
type: 'result',
|
|
72
|
+
modelUsage: {
|
|
73
|
+
'claude-sonnet-5': { cumulativeInputTokens: 1_000, cumulativeOutputTokens: 200 },
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
assert.ok(fromModelUsage);
|
|
77
|
+
assert.equal(fromModelUsage.used, 1_200);
|
|
78
|
+
});
|
|
79
|
+
test('the cumulative reader ignores anything that is not a result', () => {
|
|
80
|
+
assert.equal(extractCumulativeTokenBudget({
|
|
81
|
+
type: 'assistant',
|
|
82
|
+
message: { usage: { input_tokens: 10, output_tokens: 2 } },
|
|
83
|
+
}), null);
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=claude-token-budget.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-token-budget.test.js","sourceRoot":"","sources":["../../../../../server/modules/providers/tests/claude-token-budget.test.ts"],"names":[],"mappings":"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"}
|