@hualinge/relay-web 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +31 -0
- package/dist/assets/AgentsPage-2u2kFBCH.js +68 -0
- package/dist/assets/AgentsPage-2u2kFBCH.js.map +1 -0
- package/dist/assets/AgentsPage-BGbbVmeL.css +1 -0
- package/dist/assets/Alert-D88Fk6to.js +2 -0
- package/dist/assets/Alert-D88Fk6to.js.map +1 -0
- package/dist/assets/AppModal-BYZTSuch.js +2 -0
- package/dist/assets/AppModal-BYZTSuch.js.map +1 -0
- package/dist/assets/CenteredLoadingState-DHor-9vF.js +2 -0
- package/dist/assets/CenteredLoadingState-DHor-9vF.js.map +1 -0
- package/dist/assets/ChannelsPage-CbI0kqkd.js +2 -0
- package/dist/assets/ChannelsPage-CbI0kqkd.js.map +1 -0
- package/dist/assets/EmptyDataState-6mNx2Xhl.js +2 -0
- package/dist/assets/EmptyDataState-6mNx2Xhl.js.map +1 -0
- package/dist/assets/HelpPrompt-BPzDcC8F.js +2 -0
- package/dist/assets/HelpPrompt-BPzDcC8F.js.map +1 -0
- package/dist/assets/HomePage-t78sDDUj.js +2 -0
- package/dist/assets/HomePage-t78sDDUj.js.map +1 -0
- package/dist/assets/InspirationPage-BTqLpcHY.js +3 -0
- package/dist/assets/InspirationPage-BTqLpcHY.js.map +1 -0
- package/dist/assets/ModelsPage-YF0gpUxy.js +2 -0
- package/dist/assets/ModelsPage-YF0gpUxy.js.map +1 -0
- package/dist/assets/NameInitialIcon-DP-6_HQY.js +7 -0
- package/dist/assets/NameInitialIcon-DP-6_HQY.js.map +1 -0
- package/dist/assets/NoSearchResultsState-BiiYdZ_Z.js +2 -0
- package/dist/assets/NoSearchResultsState-BiiYdZ_Z.js.map +1 -0
- package/dist/assets/OverflowTooltip-CE5PjAb-.js +2 -0
- package/dist/assets/OverflowTooltip-CE5PjAb-.js.map +1 -0
- package/dist/assets/PasswordField-DmzjtnCg.js +2 -0
- package/dist/assets/PasswordField-DmzjtnCg.js.map +1 -0
- package/dist/assets/RefreshButton-BzYzeo5A.js +2 -0
- package/dist/assets/RefreshButton-BzYzeo5A.js.map +1 -0
- package/dist/assets/RightContentHeader-DoNDQ9Lo.js +3 -0
- package/dist/assets/RightContentHeader-DoNDQ9Lo.js.map +1 -0
- package/dist/assets/SchedulePage-CfW6lZVI.js +2 -0
- package/dist/assets/SchedulePage-CfW6lZVI.js.map +1 -0
- package/dist/assets/SearchInput-tux8xXH1.js +2 -0
- package/dist/assets/SearchInput-tux8xXH1.js.map +1 -0
- package/dist/assets/SkillAvatar-DwGvsY4f.js +2 -0
- package/dist/assets/SkillAvatar-DwGvsY4f.js.map +1 -0
- package/dist/assets/SkillsPage-ppqwKMvj.js +2 -0
- package/dist/assets/SkillsPage-ppqwKMvj.js.map +1 -0
- package/dist/assets/SkillsTab-c_As1DIr.css +1 -0
- package/dist/assets/SkillsTab-kY7MNdxy.js +2 -0
- package/dist/assets/SkillsTab-kY7MNdxy.js.map +1 -0
- package/dist/assets/Tab-FE0F2EQP.js +2 -0
- package/dist/assets/Tab-FE0F2EQP.js.map +1 -0
- package/dist/assets/ThreadPage-B0jElW5R.js +53 -0
- package/dist/assets/ThreadPage-B0jElW5R.js.map +1 -0
- package/dist/assets/UploadSkillModal-DHZL12vm.js +8 -0
- package/dist/assets/UploadSkillModal-DHZL12vm.js.map +1 -0
- package/dist/assets/XlsxDocumentPreview-BY-ht09K.js +5 -0
- package/dist/assets/XlsxDocumentPreview-BY-ht09K.js.map +1 -0
- package/dist/assets/_commonjs-dynamic-modules-TDtrdbi3.js +2 -0
- package/dist/assets/_commonjs-dynamic-modules-TDtrdbi3.js.map +1 -0
- package/dist/assets/chat-input-options-CpkOtPgQ.js +2 -0
- package/dist/assets/chat-input-options-CpkOtPgQ.js.map +1 -0
- package/dist/assets/docx-preview-zfB-orwa.js +28 -0
- package/dist/assets/docx-preview-zfB-orwa.js.map +1 -0
- package/dist/assets/exceljs.min-BY7KKJsM.js +58 -0
- package/dist/assets/exceljs.min-BY7KKJsM.js.map +1 -0
- package/dist/assets/helpers-CCilgpNy.js +2 -0
- package/dist/assets/helpers-CCilgpNy.js.map +1 -0
- package/dist/assets/hub-agent-editor.client-2DmCRGuY.js +2 -0
- package/dist/assets/hub-agent-editor.client-2DmCRGuY.js.map +1 -0
- package/dist/assets/hub-agent-editor.payload-D4sgJRSH.js +4 -0
- package/dist/assets/hub-agent-editor.payload-D4sgJRSH.js.map +1 -0
- package/dist/assets/hub-tag-editor-BBdd-aHK.js +2 -0
- package/dist/assets/hub-tag-editor-BBdd-aHK.js.map +1 -0
- package/dist/assets/index-Bed0I5IL.css +1 -0
- package/dist/assets/index-Bxf2_cvh.js +2 -0
- package/dist/assets/index-Bxf2_cvh.js.map +1 -0
- package/dist/assets/index-Cb4fQgom.js +103 -0
- package/dist/assets/index-Cb4fQgom.js.map +1 -0
- package/dist/assets/index-DQ2vVjmV.js +30 -0
- package/dist/assets/index-DQ2vVjmV.js.map +1 -0
- package/dist/assets/index-UBJEdbMO.js +2 -0
- package/dist/assets/index-UBJEdbMO.js.map +1 -0
- package/dist/assets/jszip.min-DPdj3o0t.js +13 -0
- package/dist/assets/jszip.min-DPdj3o0t.js.map +1 -0
- package/dist/assets/quick-actions-DzZE-zyP.js +2 -0
- package/dist/assets/quick-actions-DzZE-zyP.js.map +1 -0
- package/dist/assets/skill-options-cache-D1BJGTCU.js +2 -0
- package/dist/assets/skill-options-cache-D1BJGTCU.js.map +1 -0
- package/dist/assets/status-helpers-BILdm2MI.js +2 -0
- package/dist/assets/status-helpers-BILdm2MI.js.map +1 -0
- package/dist/assets/thread-title-Cerb2mHa.js +2 -0
- package/dist/assets/thread-title-Cerb2mHa.js.map +1 -0
- package/dist/assets/thread-utils-Ct3yp4R3.js +2 -0
- package/dist/assets/thread-utils-Ct3yp4R3.js.map +1 -0
- package/dist/assets/useAgentData-D-k9cXfg.js +2 -0
- package/dist/assets/useAgentData-D-k9cXfg.js.map +1 -0
- package/dist/assets/useEscapeKey-CEQ6-8GR.js +2 -0
- package/dist/assets/useEscapeKey-CEQ6-8GR.js.map +1 -0
- package/dist/assets/useExpertCatalog-BZdw1CYs.js +2 -0
- package/dist/assets/useExpertCatalog-BZdw1CYs.js.map +1 -0
- package/dist/assets/usePromptBlocks-5sz8Qh51.js +2 -0
- package/dist/assets/usePromptBlocks-5sz8Qh51.js.map +1 -0
- package/dist/assets/useSocket-YigidotN.css +1 -0
- package/dist/assets/useSocket-y3-zWhVL.js +11 -0
- package/dist/assets/useSocket-y3-zWhVL.js.map +1 -0
- package/dist/assets/utils--_pbLpCq.js +2 -0
- package/dist/assets/utils--_pbLpCq.js.map +1 -0
- package/dist/assets/vad-web-C_R267y1.js +2 -0
- package/dist/assets/vad-web-C_R267y1.js.map +1 -0
- package/dist/avatars/agent-avatar-1.png +0 -0
- package/dist/avatars/agent-avatar-2.png +0 -0
- package/dist/avatars/agent-avatar-3.png +0 -0
- package/dist/avatars/agent-avatar-4.png +0 -0
- package/dist/avatars/agent-avatar-5.png +0 -0
- package/dist/avatars/agent-avatar-6.png +0 -0
- package/dist/avatars/agent-avatar-7.png +0 -0
- package/dist/avatars/agent-avatar-8.png +0 -0
- package/dist/avatars/agent-avatar-9.png +0 -0
- package/dist/avatars/agentteams.png +0 -0
- package/dist/avatars/antig-opus.png +0 -0
- package/dist/avatars/antigravity.png +0 -0
- package/dist/avatars/assistant.svg +17 -0
- package/dist/avatars/codex-kawaii.png +0 -0
- package/dist/avatars/codex.png +0 -0
- package/dist/avatars/codex_box.png +0 -0
- package/dist/avatars/codex_iquid.png +0 -0
- package/dist/avatars/dare.png +0 -0
- package/dist/avatars/gemini-kawaii.png +0 -0
- package/dist/avatars/gemini.png +0 -0
- package/dist/avatars/gemini25.png +0 -0
- package/dist/avatars/gpt52.png +0 -0
- package/dist/avatars/jiuwenclaw.png +0 -0
- package/dist/avatars/office.svg +17 -0
- package/dist/avatars/opencode.png +0 -0
- package/dist/avatars/opus-45.png +0 -0
- package/dist/avatars/opus-kawaii.png +0 -0
- package/dist/avatars/opus.png +0 -0
- package/dist/avatars/sonnet.png +0 -0
- package/dist/favicon.ico +0 -0
- package/dist/icons/arrow-left.svg +3 -0
- package/dist/icons/arrow-right.svg +3 -0
- package/dist/icons/attach.svg +9 -0
- package/dist/icons/chart/dislike.svg +3 -0
- package/dist/icons/chart/disliked.svg +3 -0
- package/dist/icons/chart/folder.svg +15 -0
- package/dist/icons/chart/home-loading.webp +0 -0
- package/dist/icons/chart/like.svg +3 -0
- package/dist/icons/chart/liked.svg +5 -0
- package/dist/icons/chart/loading.svg +26 -0
- package/dist/icons/chart/success.svg +7 -0
- package/dist/icons/check-line.svg +3 -0
- package/dist/icons/chevron-left.svg +3 -0
- package/dist/icons/chevron-right.svg +3 -0
- package/dist/icons/collapse.svg +14 -0
- package/dist/icons/common-delete.svg +4 -0
- package/dist/icons/common-folder.svg +4 -0
- package/dist/icons/copy.svg +4 -0
- package/dist/icons/cross-line.svg +4 -0
- package/dist/icons/data-analysis.svg +7 -0
- package/dist/icons/data-visualization.svg +10 -0
- package/dist/icons/deep-research.svg +4 -0
- package/dist/icons/document-processing.svg +5 -0
- package/dist/icons/edit.svg +4 -0
- package/dist/icons/expand.svg +6 -0
- package/dist/icons/expert-debate.svg +4 -0
- package/dist/icons/eye.svg +4 -0
- package/dist/icons/favicon.svg +7 -0
- package/dist/icons/file-docx.svg +60 -0
- package/dist/icons/file-folder.svg +4 -0
- package/dist/icons/file-gitignore.svg +35 -0
- package/dist/icons/file-html.svg +6 -0
- package/dist/icons/file-ini.svg +63 -0
- package/dist/icons/file-json.svg +4 -0
- package/dist/icons/file-md.svg +68 -0
- package/dist/icons/file-py.svg +4 -0
- package/dist/icons/file-sh.svg +7 -0
- package/dist/icons/file-txt.svg +37 -0
- package/dist/icons/file-zip.svg +21 -0
- package/dist/icons/file.svg +4 -0
- package/dist/icons/files-csv.svg +14 -0
- package/dist/icons/files-docx.svg +10 -0
- package/dist/icons/files-pdf.svg +14 -0
- package/dist/icons/files-ppt.svg +14 -0
- package/dist/icons/files-txt.svg +16 -0
- package/dist/icons/files-xlsx.svg +14 -0
- package/dist/icons/financial-services.svg +8 -0
- package/dist/icons/flie-html.svg +60 -0
- package/dist/icons/guided-mode.svg +9 -0
- package/dist/icons/icon-192x192.png +0 -0
- package/dist/icons/icon-512x512.png +0 -0
- package/dist/icons/icon-arrow-down.svg +4 -0
- package/dist/icons/icon-arrow-up.svg +4 -0
- package/dist/icons/icon-clear-all.svg +3 -0
- package/dist/icons/icon-close.svg +4 -0
- package/dist/icons/icon-code.svg +38 -0
- package/dist/icons/icon-drag-file.svg +26 -0
- package/dist/icons/icon-help.svg +4 -0
- package/dist/icons/icon-md.svg +53 -0
- package/dist/icons/icon-refresh.svg +4 -0
- package/dist/icons/icon-toggle.svg +6 -0
- package/dist/icons/icon-top.svg +7 -0
- package/dist/icons/icon-upload.svg +5 -0
- package/dist/icons/information.svg +6 -0
- package/dist/icons/inspiration/icon-excel.svg +14 -0
- package/dist/icons/inspiration/icon-inspiration.svg +5 -0
- package/dist/icons/inspiration/icon-markdown.svg +12 -0
- package/dist/icons/inspiration/icon-word.svg +10 -0
- package/dist/icons/link.svg +6 -0
- package/dist/icons/lock.svg +4 -0
- package/dist/icons/menu/agents.svg +39 -0
- package/dist/icons/menu/channels.svg +4 -0
- package/dist/icons/menu/icon-inspiration.svg +5 -0
- package/dist/icons/menu/models.svg +4 -0
- package/dist/icons/menu/new-chat.svg +59 -0
- package/dist/icons/menu/schedule.svg +4 -0
- package/dist/icons/menu/skills.svg +4 -0
- package/dist/icons/message-error.svg +6 -0
- package/dist/icons/message-prompt.svg +9 -0
- package/dist/icons/message-success.svg +6 -0
- package/dist/icons/message-warn.svg +8 -0
- package/dist/icons/more-trigger.svg +4 -0
- package/dist/icons/nss/1.svg +14 -0
- package/dist/icons/nss/2.svg +14 -0
- package/dist/icons/nss/3.svg +14 -0
- package/dist/icons/outline.svg +6 -0
- package/dist/icons/query_the_optical_power_border.svg +99 -0
- package/dist/icons/schedule.svg +4 -0
- package/dist/icons/settings-feedback/feedback-bug.svg +20 -0
- package/dist/icons/settings-feedback/feedback-file.svg +4 -0
- package/dist/icons/settings-feedback/feedback-idea.svg +14 -0
- package/dist/icons/settings-feedback/settings-gear.svg +4 -0
- package/dist/icons/settings-feedback/settings-link.svg +4 -0
- package/dist/icons/settings-feedback/settings-memory.svg +7 -0
- package/dist/icons/settings-feedback/settings-privacy.svg +37 -0
- package/dist/icons/settings-feedback/settings-search.svg +2 -0
- package/dist/icons/slides.svg +4 -0
- package/dist/icons/status/info-error.svg +9 -0
- package/dist/icons/style-template.svg +11 -0
- package/dist/icons/tool-error.svg +4 -0
- package/dist/icons/userprofile/help.svg +5 -0
- package/dist/icons/userprofile/keep-awake.svg +4 -0
- package/dist/icons/userprofile/question.svg +4 -0
- package/dist/icons/userprofile/security.svg +7 -0
- package/dist/icons/userprofile/style-template.svg +11 -0
- package/dist/icons/userprofile/theme.svg +14 -0
- package/dist/icons/userprofile/usage.svg +4 -0
- package/dist/icons/userprofile/version.svg +85 -0
- package/dist/icons/video-generation.svg +4 -0
- package/dist/images/OfficeClaw.svg +21 -0
- package/dist/images/add.svg +4 -0
- package/dist/images/agent-management-icons/agent-check.svg +23 -0
- package/dist/images/agent-management-icons/agent-close.svg +4 -0
- package/dist/images/agent-management-icons/agent-collab.svg +4 -0
- package/dist/images/agent-management-icons/agent-delete.svg +18 -0
- package/dist/images/agent-management-icons/agent-edit.svg +18 -0
- package/dist/images/agent-management-icons/agent-more.svg +4 -0
- package/dist/images/agent-management-icons/agent-persona.svg +4 -0
- package/dist/images/agent-management-icons/agent-random-avatar.svg +39 -0
- package/dist/images/agent-management-icons/agent-refresh.svg +4 -0
- package/dist/images/agent-management-icons/agent-skills.svg +4 -0
- package/dist/images/agent-management-icons/agent-template.svg +12 -0
- package/dist/images/agent-management-icons/anchor-current.svg +5 -0
- package/dist/images/agent-management-icons/anchor-other.svg +4 -0
- package/dist/images/chat-empty-agent.svg +12 -0
- package/dist/images/chat-empty-im.svg +14 -0
- package/dist/images/connectors/dingtalk.png +0 -0
- package/dist/images/connectors/dingtalk.svg +18 -0
- package/dist/images/connectors/feishu.png +0 -0
- package/dist/images/connectors/feishu.svg +12 -0
- package/dist/images/connectors/imessage.png +0 -0
- package/dist/images/connectors/wecom-agent.png +0 -0
- package/dist/images/connectors/wecom-bot.png +0 -0
- package/dist/images/connectors/weixin.png +0 -0
- package/dist/images/connectors/weixin.svg +19 -0
- package/dist/images/connectors/xiaoyi.png +0 -0
- package/dist/images/connectors/xiaoyi.svg +12 -0
- package/dist/images/create-agent-random-avatar.svg +39 -0
- package/dist/images/deepseek.svg +1 -0
- package/dist/images/default-ppt-template.png +0 -0
- package/dist/images/file-browser-tree/code.svg +60 -0
- package/dist/images/file-browser-tree/gitignore.svg +35 -0
- package/dist/images/file-browser-tree/image.svg +12 -0
- package/dist/images/file-browser-tree/markdown.svg +68 -0
- package/dist/images/file-browser-tree/pdf.svg +4 -0
- package/dist/images/file-browser-tree/ppt.svg +4 -0
- package/dist/images/file-browser-tree/public-file.svg +37 -0
- package/dist/images/file-browser-tree/word.svg +60 -0
- package/dist/images/file-browser-tree/xlsx.svg +4 -0
- package/dist/images/html-preview-toolbar/copy.svg +4 -0
- package/dist/images/html-preview-toolbar/open-external.svg +4 -0
- package/dist/images/html-preview-toolbar/refresh.svg +4 -0
- package/dist/images/information.svg +4 -0
- package/dist/images/inspiration/blue-bg.png +0 -0
- package/dist/images/inspiration/doc-example.png +0 -0
- package/dist/images/inspiration/excel-example.png +0 -0
- package/dist/images/inspiration/green-bg.png +0 -0
- package/dist/images/inspiration/markdown-example.png +0 -0
- package/dist/images/inspiration/orange-bg.png +0 -0
- package/dist/images/inspiration/purple-bg.png +0 -0
- package/dist/images/inspiration/task-bg.png +0 -0
- package/dist/images/inspiration-bg.png +0 -0
- package/dist/images/inspiration-products/default.svg +11 -0
- package/dist/images/invitation-background-4x.png +0 -0
- package/dist/images/kimi.svg +1 -0
- package/dist/images/link-blue.svg +4 -0
- package/dist/images/link.svg +4 -0
- package/dist/images/lobster.svg +118 -0
- package/dist/images/login1.svg +93 -0
- package/dist/images/login2.svg +80 -0
- package/dist/images/login3.svg +44 -0
- package/dist/images/login4.svg +18 -0
- package/dist/images/mode-default-icon.svg +22 -0
- package/dist/images/no-data.svg +26 -0
- package/dist/images/no-search-results.svg +25 -0
- package/dist/images/ppt-preview/placeholder-main.webp +0 -0
- package/dist/images/ppt-preview/placeholder-thumb.webp +0 -0
- package/dist/images/ppt-template/dark-tech.png +0 -0
- package/dist/images/ppt-template/huawei.png +0 -0
- package/dist/images/ppt-template/light-tech.png +0 -0
- package/dist/images/ppt-template/paper-humanities.png +0 -0
- package/dist/images/ppt-template/template-default.png +0 -0
- package/dist/images/ppt-template/template-error.png +0 -0
- package/dist/images/ppt-template/template-generate-bg.svg +9639 -0
- package/dist/images/qwen.svg +1 -0
- package/dist/images/task-list/empty-state.svg +4 -0
- package/dist/images/task-list.svg +1 -0
- package/dist/images/vendor.svg +4 -0
- package/dist/images/version-bg.svg +85 -0
- package/dist/images/version.svg +9 -0
- package/dist/images/zhipu.svg +1 -0
- package/dist/index.html +74 -0
- package/dist/loading-point-style.webp +0 -0
- package/dist/loading-small.webp +0 -0
- package/dist/manifest.json +25 -0
- package/package.json +126 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
var zx=Object.defineProperty;var Bx=(t,e,n)=>e in t?zx(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Pr=(t,e,n)=>Bx(t,typeof e!="symbol"?e+"":e,n);import{r as m,j as l,B as Ft,u as Ut,f as xd,e as I0,g as L0,i as X0,h as Z0,k as D0,c as E,l as Du,m as vo,n as So,o as q0,p as Vx,d as bd,q as Fx,s as Vn,t as Ux,v as Yx,_ as Gx,b as yd,C as Tr,w as W0,x as qu,y as vd,z as Hx,A as Kx,D as Jx}from"./index-Cb4fQgom.js";import{u as Zn,r as z0,g as $a,a as B0,b as Sd,c as e2,f as V0}from"./useAgentData-D-k9cXfg.js";import{u as wd}from"./useExpertCatalog-BZdw1CYs.js";import{h as ja,t as t2,u as n2,f as Wu,a as i2,b as zu,S as s2}from"./status-helpers-BILdm2MI.js";import{A as wo,a as G,d as vi,c as F0,O as Aa}from"./OverflowTooltip-CE5PjAb-.js";import{M as St,e as r2,a as a2,s as o2,j as U0,C as Bu,p as Na,c as Y0,n as l2,S as c2,d as d2,f as u2,g as h2,h as f2,i as Ho,k as G0,l as p2,t as O2,m as Ko,o as m2,D as g2,b as Vu,q as Fu,r as Uu,u as H0}from"./hub-agent-editor.payload-D4sgJRSH.js";import{L as kd,C as x2}from"./CenteredLoadingState-DHor-9vF.js";import{t as b2,l as y2,f as v2,r as Yu,b as S2,a as Ui,u as hs,c as K0,P as J0,d as w2,D as k2,e as Ra,H as Q2,M as eO,g as C2,h as P2,i as T2,X as $2,j as tO}from"./XlsxDocumentPreview-BY-ht09K.js";import{D as nO,b as j2,L as Qd,r as iO,i as sO,n as A2,p as N2,c as R2,d as _2,g as M2,e as E2,f as I2,h as L2,j as X2,T as Gu,k as Rt,l as Z2,M as Cd,a as rO,m as D2,u as q2,C as W2}from"./useSocket-y3-zWhVL.js";import{i as z2,d as B2,u as V2}from"./index-UBJEdbMO.js";import{s as F2,a as U2}from"./thread-title-Cerb2mHa.js";import{C as Y2,S as G2}from"./SkillsTab-kY7MNdxy.js";import{b as H2,u as aO}from"./hub-agent-editor.client-2DmCRGuY.js";import{T as ti}from"./hub-tag-editor-BBdd-aHK.js";import{Q as K2,a as J2}from"./helpers-CCilgpNy.js";import"./useEscapeKey-CEQ6-8GR.js";import"./AppModal-BYZTSuch.js";import"./Tab-FE0F2EQP.js";import"./EmptyDataState-6mNx2Xhl.js";import"./NoSearchResultsState-BiiYdZ_Z.js";import"./SearchInput-tux8xXH1.js";import"./quick-actions-DzZE-zyP.js";import"./usePromptBlocks-5sz8Qh51.js";import"./skill-options-cache-D1BJGTCU.js";import"./index-DQ2vVjmV.js";import"./chat-input-options-CpkOtPgQ.js";import"./SkillAvatar-DwGvsY4f.js";import"./NameInitialIcon-DP-6_HQY.js";const _s="__ungrouped__";function e5(t,e,n="paragraph"){return t?e?n==="append"?`${t}${e}`:`${t}
|
|
2
|
+
|
|
3
|
+
${e}`:t:e}function la(t){var e,n;return{...t,toolEvents:t.toolEvents.map(i=>({...i})),...(e=t.thinkingChunks)!=null&&e.length?{thinkingChunks:t.thinkingChunks.map(i=>({...i}))}:{},...(n=t.textChunks)!=null&&n.length?{textChunks:t.textChunks.map(i=>({...i}))}:{}}}function Hu(t,e){return t?e?e===t||e.startsWith(t)?e:t.startsWith(e)?t:e.length>=t.length?e:t:t:e}function t5(t,e){var i,s;if(t.length===0)return e.map(r=>({...r}));if(e.length===0)return t.map(r=>({...r}));const n=new Map;for(const r of t)n.set(r.id,{...r});for(const r of e){const a=n.get(r.id);if(!a){n.set(r.id,{...r});continue}r.type==="tool_result"&&(((i=r.detail)==null?void 0:i.trim().length)??0)>(((s=a.detail)==null?void 0:s.trim().length)??0)&&n.set(r.id,{...r})}return[...n.values()].sort((r,a)=>r.timestamp-a.timestamp||0)}function n5(t,e){const n=typeof e.title=="string"?e.title.trim():"",i=typeof t.title=="string"?t.title.trim():"",s=n.length>0?e.title:i.length>0?t.title:void 0,r=Ku(t.thinkingChunks,e.thinkingChunks),a=Ku(t.textChunks,e.textChunks);return{taskId:e.taskId,...s!==void 0?{title:s}:{},...e.taskIndex!==void 0?{}:t.taskIndex!==void 0?{taskIndex:t.taskIndex}:{},...e.totalTasks!==void 0?{}:t.totalTasks!==void 0?{totalTasks:t.totalTasks}:{},thinking:Hu(t.thinking,e.thinking),text:Hu(t.text,e.text),toolEvents:t5(t.toolEvents,e.toolEvents),...r!==void 0?{thinkingChunks:r}:{},...a!==void 0?{textChunks:a}:{}}}function i5(t,e){var r;if(!((r=e==null?void 0:e.segments)!=null&&r.length))return{v:1,segments:t.segments.map(a=>la(a))};const n=new Map(e.segments.map(a=>[a.taskId,a])),i=new Set(t.segments.map(a=>a.taskId)),s=t.segments.map(a=>{const o=n.get(a.taskId);return o?n5(o,a):la(a)});for(const a of e.segments)i.has(a.taskId)||s.push(la(a));return{v:1,segments:s}}function s5(t){const e=[];for(const n of t){const i=e[e.length-1];i&&i.timestamp===n.timestamp&&i.text===n.text||e.push(n)}return e}function Ku(t,e){if(!(t!=null&&t.length))return e!=null&&e.length?e.map(r=>({...r})):void 0;if(!(e!=null&&e.length))return t.map(r=>({...r}));if(t.length<=e.length&&t.every((r,a)=>{const o=e[a];return o!==void 0&&r.timestamp===o.timestamp&&r.text===o.text}))return e.map(r=>({...r}));const i=[...t,...e].map(r=>({...r})).sort((r,a)=>r.timestamp-a.timestamp||0),s=s5(i);return s.length?s:void 0}class Ju{constructor(){Pr(this,"segments",[]);Pr(this,"indexByTaskId",new Map);Pr(this,"stack",[])}reset(){this.segments.length=0,this.indexByTaskId.clear(),this.stack=[]}loadFromExtra(e){this.reset();for(const n of e.segments){const i=la(n),s=this.segments.length;this.indexByTaskId.set(i.taskId,s),this.segments.push(i)}}resolveKey(e){var n;return((n=e.taskContext)==null?void 0:n.id)??this.stack[this.stack.length-1]??_s}isTaskScopedText(e){return this.resolveKey(e)!==_s}ensureSegmentByKey(e,n){let i=this.indexByTaskId.get(e);if(i===void 0)return i=this.segments.length,this.indexByTaskId.set(e,i),this.segments.push({taskId:e,...n!=null&&n.title?{title:n.title}:{},...(n==null?void 0:n.index)!==void 0?{taskIndex:n.index}:{},...(n==null?void 0:n.total)!==void 0?{totalTasks:n.total}:{},thinking:"",toolEvents:[],text:""}),this.segments[i];const s=this.segments[i];return n&&(n.title&&(s.title=n.title),n.index!==void 0&&(s.taskIndex=n.index),n.total!==void 0&&(s.totalTasks=n.total)),s}onBoundary(e){var n,i;if(e.taskPhase==="start"&&((n=e.taskContext)!=null&&n.id)){this.stack.push(e.taskContext.id),this.ensureSegmentByKey(e.taskContext.id,e.taskContext);return}if(e.taskPhase==="complete"&&((i=e.taskContext)!=null&&i.id)){const s=this.stack.lastIndexOf(e.taskContext.id);s>=0&&this.stack.splice(s)}}appendText(e,n){if(!n)return;const i=this.resolveKey(e),s=this.ensureSegmentByKey(i);s.text+=n;const r=typeof e.timestamp=="number"&&Number.isFinite(e.timestamp)&&e.timestamp>0?e.timestamp:Date.now();s.textChunks||(s.textChunks=[]),s.textChunks.push({timestamp:r,text:n})}appendThinking(e,n,i="append"){if(!n)return;const s=this.resolveKey(e),r=this.ensureSegmentByKey(s);r.thinking=e5(r.thinking,n,i);const a=typeof e.timestamp=="number"&&Number.isFinite(e.timestamp)&&e.timestamp>0?e.timestamp:Date.now();r.thinkingChunks||(r.thinkingChunks=[]),r.thinkingChunks.push({timestamp:a,text:n})}findSegmentForToolResult(e){for(const n of this.segments){const i=n.toolEvents.filter(r=>r.type==="tool_use"&&r.toolCallId===e).length;if(i===0)continue;if(n.toolEvents.filter(r=>r.type==="tool_result"&&r.toolCallId===e).length<i)return n}for(const n of this.segments)if(n.toolEvents.some(i=>i.type==="tool_use"&&i.toolCallId===e))return n}appendTool(e,n){if(n.type==="tool_result"&&n.toolCallId){const r=this.findSegmentForToolResult(n.toolCallId);if(r){r.toolEvents.push(n);return}}const i=this.resolveKey(e);this.ensureSegmentByKey(i,e.taskContext).toolEvents.push(n)}ingestStreamMessage(e,n){if(!(e.type==="session_init"||e.type==="done")){if(e.taskPhase==="start"||e.taskPhase==="complete"){this.onBoundary(e);return}n&&this.appendTool(e,n)}}toExtra(){if(this.segments.length===0)return;const e=this.segments.some(i=>i.taskId!==_s),n=this.segments.some(i=>{var s,r;return i.thinking.length>0||(((s=i.thinkingChunks)==null?void 0:s.length)??0)>0||(((r=i.textChunks)==null?void 0:r.length)??0)>0||i.toolEvents.length>0||i.text.length>0});if(!(!e&&!n))return{v:1,segments:this.segments.map(i=>{var s,r;return{...i,toolEvents:i.toolEvents.map(a=>({...a})),...(s=i.thinkingChunks)!=null&&s.length?{thinkingChunks:i.thinkingChunks.map(a=>({...a}))}:{},...(r=i.textChunks)!=null&&r.length?{textChunks:i.textChunks.map(a=>({...a}))}:{}}})}}}function eh(t){return((t??"").replace(/^@/,"").trim().slice(0,1)||"智").toUpperCase()}function r5(t){return/^(https?:\/\/|\/|data:image)/.test(t)}function ko({agentId:t,size:e=32,status:n,showRing:i=!1}){var S;const[s,r]=m.useState(!1),{getAgentById:a}=Zn(),{getExpertById:o}=wd(),c=a(t),d=c?null:o(t),u=c??d,h=n==="streaming",f=n==="error",p=(u==null?void 0:u.color.primary)??"#9CA3AF",O=h&&u?`0 0 10px ${ja(p,.5)}`:void 0,{avatarRaw:g,resolvedSrc:x,showImage:b}=m.useMemo(()=>{var A;const P=((A=u==null?void 0:u.avatar)==null?void 0:A.trim())??"",w=`/avatars/${t}.png`,C=P||w,Q=C.startsWith("/uploads/")?`${wo}${C}`:C,T=r5(Q);return{avatarRaw:P,resolvedSrc:Q,showImage:T}},[u==null?void 0:u.avatar,t]),y=e<=16?10:e<=24?11:12;return l.jsx("div",{className:`answer-avatar rounded-full flex-shrink-0 flex items-center justify-center transition-shadow duration-300 overflow-hidden ${i?"ring-2 ":""}${h?"animate-pulse":""}`,style:{width:e,height:e,"--tw-ring-color":f?"#ef4444":p,boxShadow:O},children:b&&!s?l.jsx("img",{src:x,alt:(u==null?void 0:u.displayName)??t,width:e,height:e,className:"h-full w-full object-cover bg-gray-100",onError:()=>r(!0)}):l.jsx("div",{className:"flex h-full w-full items-center justify-center rounded-full font-semibold text-white",style:{backgroundColor:((S=u==null?void 0:u.color)==null?void 0:S.primary)??"#7AAEFF",fontSize:y,lineHeight:1},"aria-hidden":b?!0:void 0,title:(u==null?void 0:u.displayName)??t,children:b&&s?eh((u==null?void 0:u.displayName)??t):g||eh((u==null?void 0:u.displayName)??t)})})}const th=[{key:"allow-once",label:"本次允许",granted:!0,scope:"once",testId:"authorization-card-allow-once",variant:"default"},{key:"allow-always",label:"总是允许",granted:!0,scope:"global",testId:"authorization-card-allow-always",color:"default"},{key:"deny",label:"拒绝",granted:!1,scope:"once",testId:"authorization-card-deny",variant:"danger"}];function a5(t){const e=t.replace(/\r\n/g,`
|
|
4
|
+
`).trim();if(!e)return{title:null,body:t};const n=e.split(`
|
|
5
|
+
`).map(r=>r.trim()).filter(Boolean);if(n.length===0)return{title:null,body:t};const[i,...s]=n;return{title:i||null,body:s.join(`
|
|
6
|
+
`)}}function o5({request:t,onRespond:e,onOpenSecurityManagement:n}){const[i,s]=m.useState(null),r=m.useMemo(()=>a5(t.reason),[t.reason]),a=r.title??t.action,o=r.title&&r.body?r.body:t.reason,c=m.useMemo(()=>th.find(u=>u.key===i)??null,[i]),d=async u=>{if(!i){s(u.key);try{await Promise.resolve(e(t.requestId,u.granted,u.scope)),s(null)}catch{s(null)}}};return l.jsxs("div",{"data-testid":"authorization-card",className:"w-[calc(100%-56px)] max-w-[480px] rounded-[12px] bg-[var(--surface-card-muted)] px-6 py-5 text-[var(--text-primary)]",style:{marginLeft:"56px"},children:[l.jsxs("div",{className:"min-w-0",children:[l.jsxs("div",{"data-testid":"authorization-card-header",className:"flex items-center gap-2",children:[l.jsx("img",{src:"/icons/userprofile/security.svg",alt:"","aria-hidden":"true",className:"h-[20px] w-[20px] shrink-0"}),l.jsx("div",{"data-testid":"authorization-card-title",className:"min-w-0 flex-1 text-[14px] font-semibold leading-6 text-[var(--text-primary)]",children:a})]}),l.jsx("div",{"data-testid":"authorization-card-description",className:"mt-2 whitespace-pre-wrap break-words text-[12px] leading-6 text-[var(--text-secondary)]",children:o}),l.jsxs("p",{"data-testid":"authorization-card-helper",className:"text-[12px] leading-6 text-[var(--text-secondary)]",children:["您可随时在",l.jsx("button",{type:"button","data-testid":"authorization-card-security-management",onClick:n,className:"mx-[1px] inline bg-transparent p-0 text-[12px] leading-6 text-[var(--text-accent)]",children:"安全管理"}),"中配置或修改安全策略"]})]}),l.jsx("div",{className:"mt-4 flex flex-wrap items-center gap-3",children:c?l.jsx(Ft,{variant:"default",disabled:!0,"data-testid":"authorization-card-submitting-action",children:c.label}):th.map(u=>l.jsx(Ft,{variant:u.variant??"default","data-testid":u.testId,onClick:()=>void d(u),className:u.className,children:u.label},u.key))})]})}const nh="",oO="office-claw:bubble-expand:v1";function l5(t){if(!t)return{};try{const e=JSON.parse(t);return!e||typeof e!="object"||Array.isArray(e)?{}:e}catch{return{}}}function lO(){return typeof window>"u"?{}:l5(localStorage.getItem(oO))}function c5(t){if(!(typeof window>"u"))try{localStorage.setItem(oO,JSON.stringify(t))}catch{}}function zs(t,e,n){return`${t}${nh}${e}${nh}${n}`}function _n(t){const e=lO()[t];return typeof e=="boolean"?e:void 0}function Bs(t,e){const n=lO();n[t]=e,c5(n)}function Or({className:t="w-5 h-5"}){return l.jsx("span",{"aria-hidden":"true",className:`relative inline-block ${t}`,children:l.jsx("img",{src:"/loading-point-style.webp",alt:"",className:"absolute inset-0 h-full w-full object-contain",draggable:!1})})}function Pd({expanded:t}){return l.jsxs(l.Fragment,{children:[l.jsx("svg",{"aria-hidden":"true",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"rgb(31, 31, 31)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"transition-transform duration-150 flex-shrink-0",style:{display:"none",transform:t?"rotate(-90deg)":"rotate(90deg)"},children:l.jsx("polyline",{points:"9 18 15 12 9 6"})}),l.jsxs("svg",{"aria-hidden":"true",style:{transform:t?"rotate(-180deg)":"rotate(0deg)"},viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",width:"16.000000",height:"16.000000",fill:"none",children:[l.jsx("rect",{id:"收起-regular",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000"}),l.jsx("path",{id:"路径",d:"M6.3 0C6.6866 0 7 0.313401 7 0.7L7 6.5C7 6.77614 6.77614 7 6.5 7C6.22386 7 6 6.77614 6 6.5L6 1L0.5 1C0.25454 1 0.0503915 0.823125 0.00805569 0.589876L0 0.5C0 0.223858 0.223858 0 0.5 0L6.3 0Z",fill:"rgb(128,128,128)",fillRule:"nonzero",transform:"matrix(-0.707107,0.707107,-0.707107,-0.707107,12.9492,6)"})]})]})}function Qo({className:t}){return l.jsxs("svg",{"aria-hidden":"true",className:t,viewBox:"0 0 16 16",width:"18",height:"18",xmlns:"http://www.w3.org/2000/svg",children:[l.jsx("circle",{cx:"8",cy:"8",r:"6.75",fill:"none",stroke:"#9CA3AF",strokeWidth:"1.25"}),l.jsx("rect",{x:"5.25",y:"5.25",width:"5.5",height:"5.5",rx:"0.75",fill:"#9CA3AF"})]})}function d5(){return l.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",width:"16.000000",height:"16.000000",fill:"none",children:[l.jsx("mask",{id:"mask_5",width:"16.000000",height:"16.000008",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"mask431_3429",children:l.jsx("path",{id:"减去顶层",d:"M16 0L0 0L0 16L16 16L16 0ZM7.39177 11.0114L12.4626 5.67807C12.6556 5.47511 12.6478 5.16407 12.4448 4.97104C12.2419 4.77814 11.9308 4.78597 11.738 4.98894L7.0288 9.94191L4.52863 7.32161C4.33543 7.11897 4.0244 7.11181 3.82177 7.30501C3.61913 7.49837 3.6118 7.80941 3.80517 8.01188L6.66763 11.0119C6.7827 11.1325 6.89927 11.1942 7.01693 11.1969C7.13477 11.1997 7.27117 11.1263 7.39177 11.0114Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"})})})}),l.jsx("mask",{id:"mask_4",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"clip431_3420",children:l.jsx("rect",{id:"support",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(0,0,0)"})})})}),l.jsx("defs",{children:l.jsx("filter",{id:"pixso_custom_mask_type_alpha",children:l.jsx("feColorMatrix",{type:"matrix",values:"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 "})})}),l.jsx("mask",{id:"mask_3",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"clip431_3419",children:l.jsx("rect",{id:"ic_public_success-成功/base/ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(0,0,0)"})})})}),l.jsx("rect",{id:"ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"ic_public_success-成功/base/ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(255,255,255)",fillOpacity:"0"}),l.jsx("g",{id:"clip path group",mask:"url(#mask_3)",children:l.jsxs("g",{id:"组合 5142",children:[l.jsx("g",{id:"clip path group",mask:"url(#mask_4)",children:l.jsxs("g",{id:"组合 5143",children:[l.jsx("path",{id:"path1",d:"M1.66378e-05 7.9924C1.66378e-05 6.7424 -0.0033167 5.4924 1.66378e-05 4.2424C-0.0033167 3.63574 0.07335 3.0324 0.220017 2.44907C0.546683 1.20907 1.35335 0.469071 2.59668 0.185737C3.21335 0.052404 3.85335 -0.0109293 4.48668 -0.000929316C6.88002 -0.000929316 9.27668 -0.000929316 11.68 -0.000929316C12.2833 -0.00426265 12.8867 0.0590707 13.4767 0.205737C14.7533 0.515737 15.52 1.3224 15.81 2.59907C15.9434 3.19907 16.0033 3.80907 15.9967 4.42907C15.9967 6.8524 15.9967 9.27574 15.9967 11.6957C16 12.2957 15.9333 12.8924 15.79 13.4757C15.4767 14.7557 14.6667 15.5157 13.3934 15.8091C12.77 15.9424 12.1367 16.0057 11.5033 15.9957C9.11668 15.9957 6.72668 15.9957 4.34335 15.9957C3.73335 16.0024 3.12335 15.9324 2.53335 15.7924C1.25002 15.4824 0.476683 14.6691 0.186683 13.3857C0.0400166 12.7391 1.66378e-05 12.0891 1.66378e-05 11.4324C1.66378e-05 10.2857 1.66378e-05 9.13574 1.66378e-05 7.9924Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"}),l.jsx("circle",{id:"path2",cx:"8",cy:"8",r:"8",fill:"rgb(255,255,255)",fillOpacity:"0"})]})}),l.jsx("ellipse",{id:"path3",rx:"7.333333",ry:"7.333102",cx:"8.00008202",cy:"7.99911785",stroke:"rgb(92,179,0)",strokeWidth:"1"}),l.jsx("path",{id:"path6",d:"M4.16675 7.66732L7.02675 10.6673L12.0967 5.33398",fillRule:"nonzero",stroke:"rgb(92,179,0)",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1"}),l.jsx("g",{id:"mask",mask:"url(#mask_5)",children:l.jsx("g",{id:"组合 5144",children:l.jsx("ellipse",{id:"path4",rx:"8.000000",ry:"7.999748",cx:"8",cy:"7.99974823",fill:"rgb(255,255,255)",fillOpacity:"0"})})}),l.jsx("path",{id:"path6 (边框)",d:"M12.4601 5.67729L7.39005 11.0106C7.27005 11.124 7.13339 11.1973 7.01672 11.1973C6.89672 11.194 6.78005 11.1306 6.66672 11.0106L3.80339 8.01062C3.61005 7.80729 3.61672 7.49729 3.82005 7.30396C4.02339 7.11062 4.33339 7.11729 4.52672 7.32062L7.02672 9.94062L11.7367 4.98729C11.9301 4.78396 12.2401 4.77729 12.4434 4.97062C12.6467 5.16396 12.6534 5.47396 12.4601 5.67729Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"})]})})]})}function u5(){return l.jsxs("svg",{"aria-hidden":"true",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"#64748B",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0",children:[l.jsx("circle",{cx:"11",cy:"4",r:"2"}),l.jsx("circle",{cx:"18",cy:"8",r:"2"}),l.jsx("circle",{cx:"20",cy:"16",r:"2"}),l.jsx("path",{d:"M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z"})]})}function h5(){return l.jsxs("svg",{viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",width:"16.000000",height:"16.000000",fill:"none",children:[l.jsx("rect",{id:"插件-extension",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000"}),l.jsx("path",{id:"矢量_1506",d:"M6.5 3L6.5 2.75C6.5 2.58 6.52 2.42 6.55 2.27C6.58 2.13 6.62 2 6.68 1.87C6.73 1.75 6.8 1.62 6.87 1.51C6.95 1.38 7.05 1.27 7.16 1.16C7.27 1.05 7.39 0.96 7.51 0.87C7.62 0.8 7.75 0.73 7.87 0.68C8 0.62 8.13 0.58 8.27 0.55C8.42 0.52 8.58 0.5 8.75 0.5C8.92 0.5 9.08 0.52 9.23 0.55C9.37 0.58 9.5 0.62 9.63 0.68C9.75 0.73 9.88 0.8 9.99 0.87C10.12 0.95 10.23 1.05 10.34 1.16C10.45 1.27 10.54 1.39 10.63 1.51C10.71 1.62 10.77 1.75 10.82 1.87C10.87 2 10.92 2.13 10.94 2.26C10.98 2.42 11 2.58 11 2.75L11 3L12.5 3C12.65 3 12.79 3.02 12.93 3.05C13.05 3.08 13.17 3.11 13.28 3.16C13.39 3.21 13.5 3.27 13.6 3.33C13.71 3.4 13.82 3.49 13.91 3.59C14.01 3.69 14.09 3.79 14.17 3.9C14.24 4 14.29 4.11 14.34 4.22C14.39 4.33 14.43 4.45 14.45 4.57C14.48 4.71 14.5 4.85 14.5 5L14.5 12.5C14.5 12.65 14.48 12.79 14.45 12.93C14.42 13.05 14.39 13.17 14.34 13.28C14.29 13.39 14.23 13.5 14.17 13.6C14.1 13.71 14.01 13.82 13.91 13.91C13.81 14.01 13.71 14.09 13.6 14.17C13.5 14.24 13.39 14.29 13.28 14.34C13.17 14.39 13.05 14.43 12.93 14.45C12.79 14.48 12.65 14.5 12.5 14.5L10.51 14.5L10.5 14.5C10.22 14.5 10 14.28 10 14L10 13.25C10 13.15 9.99 13.06 9.97 12.96C9.95 12.89 9.93 12.82 9.9 12.76C9.87 12.69 9.84 12.63 9.8 12.57C9.75 12.5 9.7 12.43 9.63 12.37C9.57 12.31 9.5 12.25 9.43 12.2C9.37 12.16 9.3 12.13 9.24 12.1C9.17 12.07 9.11 12.05 9.04 12.03C8.94 12.01 8.85 12 8.75 12C8.65 12 8.56 12.01 8.46 12.03C8.39 12.05 8.32 12.07 8.26 12.1C8.19 12.13 8.13 12.16 8.07 12.2C8 12.25 7.93 12.3 7.87 12.37C7.81 12.43 7.75 12.5 7.7 12.57C7.66 12.63 7.63 12.7 7.6 12.76C7.57 12.83 7.55 12.89 7.53 12.96C7.51 13.05 7.5 13.15 7.5 13.25L7.5 14C7.5 14.28 7.28 14.5 7 14.5L6.99 14.5L5 14.5C4.85 14.5 4.71 14.48 4.57 14.45C4.45 14.42 4.33 14.39 4.22 14.34C4.11 14.29 4 14.24 3.9 14.17C3.79 14.1 3.68 14.01 3.59 13.91C3.49 13.81 3.41 13.71 3.33 13.6C3.26 13.5 3.21 13.39 3.16 13.28C3.11 13.17 3.07 13.05 3.05 12.93C3.02 12.79 3 12.65 3 12.5L3 10.5L2.75 10.5C2.58 10.5 2.42 10.48 2.27 10.45C2.13 10.42 2 10.38 1.87 10.32C1.74 10.27 1.62 10.2 1.51 10.13C1.38 10.05 1.27 9.95 1.16 9.84C1.05 9.73 0.96 9.61 0.87 9.49C0.8 9.38 0.73 9.25 0.68 9.13C0.62 9 0.58 8.87 0.55 8.73C0.52 8.58 0.5 8.42 0.5 8.25C0.5 8.08 0.52 7.92 0.55 7.77C0.58 7.63 0.62 7.5 0.68 7.37C0.73 7.25 0.8 7.12 0.87 7.01C0.95 6.88 1.05 6.77 1.16 6.66C1.27 6.55 1.39 6.46 1.51 6.37C1.62 6.3 1.75 6.23 1.87 6.18C2 6.12 2.13 6.08 2.27 6.05C2.42 6.02 2.58 6 2.75 6L3 6L3 5C3 4.85 3.02 4.71 3.05 4.57C3.08 4.45 3.11 4.33 3.16 4.22C3.21 4.11 3.26 4 3.33 3.9C3.4 3.79 3.49 3.68 3.59 3.59C3.69 3.49 3.79 3.41 3.9 3.33C4 3.26 4.11 3.21 4.22 3.16C4.33 3.11 4.45 3.07 4.57 3.05C4.71 3.02 4.85 3 5 3L6.5 3ZM7 4L5 4C4.92 4 4.84 4.01 4.77 4.03C4.72 4.04 4.66 4.06 4.61 4.08C4.56 4.1 4.51 4.13 4.46 4.16C4.4 4.2 4.34 4.24 4.29 4.29C4.24 4.34 4.2 4.4 4.16 4.46C4.13 4.51 4.1 4.56 4.08 4.61C4.06 4.66 4.04 4.71 4.03 4.77C4.01 4.84 4 4.92 4 5L4 6.5C4 6.78 3.78 7 3.5 7L2.75 7C2.65 7 2.56 7.01 2.46 7.03C2.4 7.05 2.33 7.07 2.26 7.1C2.2 7.13 2.13 7.16 2.07 7.2C2 7.25 1.93 7.3 1.87 7.37C1.8 7.43 1.75 7.5 1.7 7.57C1.66 7.63 1.63 7.7 1.6 7.76C1.57 7.83 1.55 7.9 1.53 7.96C1.51 8.06 1.5 8.15 1.5 8.25C1.5 8.35 1.51 8.44 1.53 8.54C1.55 8.6 1.57 8.67 1.6 8.74C1.63 8.8 1.66 8.87 1.7 8.93C1.75 9 1.8 9.07 1.87 9.13C1.93 9.2 2 9.25 2.07 9.3C2.13 9.34 2.2 9.37 2.26 9.4C2.33 9.43 2.39 9.45 2.46 9.47C2.56 9.49 2.65 9.5 2.75 9.5L3.5 9.5C3.78 9.5 4 9.72 4 10L4 12.5C4 12.58 4.01 12.66 4.03 12.73C4.04 12.78 4.06 12.84 4.08 12.89C4.1 12.94 4.13 13 4.16 13.04C4.2 13.1 4.24 13.15 4.29 13.2C4.34 13.25 4.4 13.29 4.45 13.33C4.5 13.36 4.55 13.39 4.6 13.41C4.65 13.43 4.7 13.45 4.76 13.46C4.84 13.49 4.92 13.5 5 13.5L6.5 13.5L6.5 13.25C6.5 13.08 6.52 12.92 6.55 12.77C6.58 12.64 6.62 12.51 6.68 12.38C6.73 12.25 6.8 12.13 6.87 12.02C6.95 11.89 7.05 11.78 7.16 11.67C7.27 11.56 7.39 11.47 7.51 11.38C7.62 11.3 7.75 11.24 7.87 11.19C8 11.14 8.13 11.09 8.26 11.07C8.42 11.02 8.58 11 8.75 11C8.92 11 9.08 11.02 9.23 11.05C9.36 11.08 9.49 11.12 9.62 11.17C9.75 11.22 9.87 11.29 9.98 11.36C10.11 11.44 10.22 11.54 10.33 11.65C10.44 11.76 10.53 11.88 10.62 12C10.7 12.11 10.76 12.24 10.81 12.36C10.86 12.49 10.91 12.62 10.94 12.75C10.97 12.91 10.99 13.07 10.99 13.23L10.99 13.48L12.49 13.48C12.57 13.48 12.65 13.47 12.72 13.45C12.77 13.44 12.83 13.42 12.88 13.4C12.93 13.38 12.99 13.35 13.03 13.32C13.09 13.28 13.14 13.24 13.19 13.19C13.24 13.14 13.28 13.08 13.32 13.03C13.35 12.98 13.38 12.93 13.4 12.88C13.42 12.83 13.44 12.78 13.45 12.72C13.47 12.65 13.48 12.57 13.48 12.49L13.48 5C13.48 4.92 13.47 4.84 13.45 4.77C13.44 4.72 13.42 4.66 13.4 4.61C13.38 4.56 13.35 4.5 13.32 4.46C13.28 4.4 13.24 4.35 13.19 4.3C13.14 4.25 13.09 4.21 13.03 4.17C12.98 4.14 12.93 4.11 12.88 4.09C12.83 4.07 12.78 4.05 12.72 4.04C12.66 4.01 12.58 4 12.5 4L10.51 4L10.5 4C10.22 4 10 3.78 10 3.5L10 2.75C10 2.65 9.99 2.56 9.97 2.46C9.95 2.4 9.93 2.33 9.9 2.26C9.87 2.2 9.84 2.13 9.8 2.07C9.75 2 9.7 1.93 9.63 1.87C9.57 1.8 9.5 1.75 9.43 1.7C9.37 1.66 9.3 1.63 9.24 1.6C9.17 1.57 9.1 1.55 9.04 1.53C8.94 1.51 8.85 1.5 8.75 1.5C8.65 1.5 8.56 1.51 8.46 1.53C8.4 1.55 8.33 1.57 8.26 1.6C8.2 1.63 8.13 1.66 8.07 1.7C8 1.75 7.93 1.8 7.87 1.87C7.8 1.93 7.75 2 7.7 2.07C7.66 2.13 7.63 2.2 7.6 2.26C7.57 2.33 7.55 2.4 7.53 2.46C7.51 2.56 7.5 2.65 7.5 2.75L7.5 3.5C7.5 3.78 7.28 4 7 4Z",fill:"rgb(128,128,128)"})]})}function f5(){return l.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"none",children:[l.jsx("mask",{id:"mask_5",width:"16.000000",height:"16.000008",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"mask431_3429",children:l.jsx("path",{id:"减去顶层",d:"M16 0L0 0L0 16L16 16L16 0ZM7.39177 11.0114L12.4626 5.67807C12.6556 5.47511 12.6478 5.16407 12.4448 4.97104C12.2419 4.77814 11.9308 4.78597 11.738 4.98894L7.0288 9.94191L4.52863 7.32161C4.33543 7.11897 4.0244 7.11181 3.82177 7.30501C3.61913 7.49837 3.6118 7.80941 3.80517 8.01188L6.66763 11.0119C6.7827 11.1325 6.89927 11.1942 7.01693 11.1969C7.13477 11.1997 7.27117 11.1263 7.39177 11.0114Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"})})})}),l.jsx("mask",{id:"mask_4",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"clip431_3420",children:l.jsx("rect",{id:"support",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(0,0,0)"})})})}),l.jsx("defs",{children:l.jsx("filter",{id:"pixso_custom_mask_type_alpha",children:l.jsx("feColorMatrix",{type:"matrix",values:"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 "})})}),l.jsx("mask",{id:"mask_3",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"clip431_3419",children:l.jsx("rect",{id:"ic_public_success-成功/base/ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(0,0,0)"})})})}),l.jsx("rect",{id:"ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"ic_public_success-成功/base/ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(255,255,255)",fillOpacity:"0"}),l.jsx("g",{id:"clip path group",mask:"url(#mask_3)",children:l.jsxs("g",{id:"组合 5142",children:[l.jsx("g",{id:"clip path group",mask:"url(#mask_4)",children:l.jsxs("g",{id:"组合 5143",children:[l.jsx("path",{id:"path1",d:"M1.66378e-05 7.9924C1.66378e-05 6.7424 -0.0033167 5.4924 1.66378e-05 4.2424C-0.0033167 3.63574 0.07335 3.0324 0.220017 2.44907C0.546683 1.20907 1.35335 0.469071 2.59668 0.185737C3.21335 0.052404 3.85335 -0.0109293 4.48668 -0.000929316C6.88002 -0.000929316 9.27668 -0.000929316 11.68 -0.000929316C12.2833 -0.00426265 12.8867 0.0590707 13.4767 0.205737C14.7533 0.515737 15.52 1.3224 15.81 2.59907C15.9434 3.19907 16.0033 3.80907 15.9967 4.42907C15.9967 6.8524 15.9967 9.27574 15.9967 11.6957C16 12.2957 15.9333 12.8924 15.79 13.4757C15.4767 14.7557 14.6667 15.5157 13.3934 15.8091C12.77 15.9424 12.1367 16.0057 11.5033 15.9957C9.11668 15.9957 6.72668 15.9957 4.34335 15.9957C3.73335 16.0024 3.12335 15.9324 2.53335 15.7924C1.25002 15.4824 0.476683 14.6691 0.186683 13.3857C0.0400166 12.7391 1.66378e-05 12.0891 1.66378e-05 11.4324C1.66378e-05 10.2857 1.66378e-05 9.13574 1.66378e-05 7.9924Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"}),l.jsx("circle",{id:"path2",cx:"8",cy:"8",r:"8",fill:"rgb(255,255,255)",fillOpacity:"0"})]})}),l.jsx("ellipse",{id:"path3",rx:"7.333333",ry:"7.333102",cx:"8.00008202",cy:"7.99911785",stroke:"rgb(92,179,0)",strokeWidth:"1"}),l.jsx("path",{id:"path6",d:"M4.16675 7.66732L7.02675 10.6673L12.0967 5.33398",fillRule:"nonzero",stroke:"rgb(92,179,0)",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1"}),l.jsx("g",{id:"mask",mask:"url(#mask_5)",children:l.jsx("g",{id:"组合 5144",children:l.jsx("ellipse",{id:"path4",rx:"8.000000",ry:"7.999748",cx:"8",cy:"7.99974823",fill:"rgb(255,255,255)",fillOpacity:"0"})})}),l.jsx("path",{id:"path6 (边框)",d:"M12.4601 5.67729L7.39005 11.0106C7.27005 11.124 7.13339 11.1973 7.01672 11.1973C6.89672 11.194 6.78005 11.1306 6.66672 11.0106L3.80339 8.01062C3.61005 7.80729 3.61672 7.49729 3.82005 7.30396C4.02339 7.11062 4.33339 7.11729 4.52672 7.32062L7.02672 9.94062L11.7367 4.98729C11.9301 4.78396 12.2401 4.77729 12.4434 4.97062C12.6467 5.16396 12.6534 5.47396 12.4601 5.67729Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"})]})})]})}function p5(){return l.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"none",children:[l.jsx("mask",{id:"mask_2",width:"16.000000",height:"16.000008",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"mask431_3429",children:l.jsx("path",{id:"减去顶层",d:"M16 0L0 0L0 16L16 16L16 0ZM7.39177 11.0114L12.4626 5.67807C12.6556 5.47511 12.6478 5.16407 12.4448 4.97104C12.2419 4.77814 11.9308 4.78597 11.738 4.98894L7.0288 9.94191L4.52863 7.32161C4.33543 7.11897 4.0244 7.11181 3.82177 7.30501C3.61913 7.49837 3.6118 7.80941 3.80517 8.01188L6.66763 11.0119C6.7827 11.1325 6.89927 11.1942 7.01693 11.1969C7.13477 11.1997 7.27117 11.1263 7.39177 11.0114Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"})})})}),l.jsx("mask",{id:"mask_1",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsxs("g",{id:"clip431_3420",children:[l.jsx("rect",{id:"support",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(0,0,0)"}),l.jsx("path",{id:"合并",d:"M9.72492 10.2286C9.65951 10.2286 9.59888 10.217 9.54302 10.1939C9.48689 10.1707 9.43559 10.1359 9.38909 10.0894L7.1 7.80031L4.81091 10.0894C4.76441 10.1359 4.7131 10.1707 4.65697 10.1939Q4.57318 10.2286 4.47508 10.2286Q4.37698 10.2286 4.29319 10.1939C4.23706 10.1707 4.18575 10.1359 4.13925 10.0894C4.09254 10.0427 4.05758 9.99115 4.03438 9.93476C4.01146 9.87908 4 9.81869 4 9.75358C4 9.68846 4.01146 9.62807 4.03438 9.57239Q4.06919 9.48781 4.13925 9.41775L6.42835 7.12866L4.13925 4.83957Q4.06919 4.7695 4.03438 4.68493Q4 4.60141 4 4.50374Q4 4.40607 4.03438 4.32256L4.03438 4.32256Q4.06919 4.23798 4.13925 4.16791Q4.20932 4.09785 4.2939 4.06304Q4.37741 4.02866 4.47508 4.02866Q4.57275 4.02866 4.65627 4.06304Q4.74084 4.09785 4.81091 4.16791L7.1 6.457L9.38909 4.16791C9.50103 4.05597 9.61298 4 9.72492 4C9.83686 4 9.9488 4.05597 10.0607 4.16791C10.1075 4.21462 10.1424 4.26617 10.1656 4.32255C10.1885 4.37823 10.2 4.43863 10.2 4.50374Q10.2 4.60141 10.1656 4.68493C10.1424 4.74131 10.1075 4.79286 10.0607 4.83957L7.77165 7.12866L10.0607 9.41775C10.1075 9.46446 10.1424 9.51601 10.1656 9.57239C10.1885 9.62807 10.2 9.68847 10.2 9.75358C10.2 9.81869 10.1885 9.87909 10.1656 9.93477C10.1424 9.99115 10.1075 10.0427 10.0607 10.0894C10.0142 10.1359 9.96293 10.1707 9.90681 10.1939C9.85095 10.217 9.79032 10.2286 9.72492 10.2286Z",fill:"rgb(255,255,255)",fillRule:"evenodd"})]})})}),l.jsx("defs",{children:l.jsx("filter",{id:"pixso_custom_mask_type_alpha",children:l.jsx("feColorMatrix",{type:"matrix",values:"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 "})})}),l.jsx("mask",{id:"mask_0",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"clip431_3419",children:l.jsx("rect",{id:"ic_public_success-成功/base/ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(0,0,0)"})})})}),l.jsx("rect",{id:"ic_public_error",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"ic_public_success-成功/base/ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(255,255,255)",fillOpacity:"0"}),l.jsx("g",{id:"clip path group",mask:"url(#mask_0)",children:l.jsxs("g",{id:"组合 5142",children:[l.jsx("g",{id:"clip path group",mask:"url(#mask_1)",children:l.jsxs("g",{id:"组合 5143",children:[l.jsx("path",{id:"path1",d:"M1.66378e-05 7.9924C1.66378e-05 6.7424 -0.0033167 5.4924 1.66378e-05 4.2424C-0.0033167 3.63574 0.07335 3.0324 0.220017 2.44907C0.546683 1.20907 1.35335 0.469071 2.59668 0.185737C3.21335 0.052404 3.85335 -0.0109293 4.48668 -0.000929316C6.88002 -0.000929316 9.27668 -0.000929316 11.68 -0.000929316C12.2833 -0.00426265 12.8867 0.0590707 13.4767 0.205737C14.7533 0.515737 15.52 1.3224 15.81 2.59907C15.9434 3.19907 16.0033 3.80907 15.9967 4.42907C15.9967 6.8524 15.9967 9.27574 15.9967 11.6957C16 12.2957 15.9333 12.8924 15.79 13.4757C15.4767 14.7557 14.6667 15.5157 13.3934 15.8091C12.77 15.9424 12.1367 16.0057 11.5033 15.9957C9.11668 15.9957 6.72668 15.9957 4.34335 15.9957C3.73335 16.0024 3.12335 15.9324 2.53335 15.7924C1.25002 15.4824 0.476683 14.6691 0.186683 13.3857C0.0400166 12.7391 1.66378e-05 12.0891 1.66378e-05 11.4324C1.66378e-05 10.2857 1.66378e-05 9.13574 1.66378e-05 7.9924Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"}),l.jsx("circle",{id:"path2",cx:"8",cy:"8",r:"8",fill:"rgb(255,255,255)",fillOpacity:"0"})]})}),l.jsx("ellipse",{id:"path3",rx:"7.333333",ry:"7.333102",cx:"8.00008202",cy:"7.99911785",stroke:"rgb(242,48,48)",strokeWidth:"1"}),l.jsx("g",{id:"mask",mask:"url(#mask_2)",children:l.jsx("g",{id:"组合 5144",children:l.jsx("ellipse",{id:"path4",rx:"8.000000",ry:"7.999748",cx:"8",cy:"7.99974823",fill:"rgb(255,255,255)",fillOpacity:"0"})})}),l.jsx("path",{id:"path6 (边框)",d:"M12.4601 5.67729L7.39005 11.0106C7.27005 11.124 7.13339 11.1973 7.01672 11.1973C6.89672 11.194 6.78005 11.1306 6.66672 11.0106L3.80339 8.01062C3.61005 7.80729 3.61672 7.49729 3.82005 7.30396C4.02339 7.11062 4.33339 7.11729 4.52672 7.32062L7.02672 9.94062L11.7367 4.98729C11.9301 4.78396 12.2401 4.77729 12.4434 4.97062C12.6467 5.16396 12.6534 5.47396 12.4601 5.67729Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"}),l.jsx("path",{id:"合并",d:"M10.7249 11.2286C10.6595 11.2286 10.5989 11.217 10.543 11.1939C10.4869 11.1707 10.4356 11.1359 10.3891 11.0894L8.1 8.80031L5.81091 11.0894C5.76441 11.1359 5.7131 11.1707 5.65697 11.1939Q5.57318 11.2286 5.47508 11.2286Q5.37698 11.2286 5.29319 11.1939C5.23706 11.1707 5.18575 11.1359 5.13925 11.0894C5.09254 11.0427 5.05758 10.9911 5.03438 10.9348C5.01146 10.8791 5 10.8187 5 10.7536C5 10.6885 5.01146 10.6281 5.03438 10.5724Q5.06919 10.4878 5.13925 10.4177L7.42835 8.12866L5.13925 5.83957Q5.06919 5.7695 5.03438 5.68493Q5 5.60141 5 5.50374Q5 5.40607 5.03438 5.32256L5.03438 5.32256Q5.06919 5.23798 5.13925 5.16791Q5.20932 5.09785 5.2939 5.06304Q5.37741 5.02866 5.47508 5.02866Q5.57275 5.02866 5.65627 5.06304Q5.74084 5.09785 5.81091 5.16791L8.1 7.457L10.3891 5.16791C10.501 5.05597 10.613 5 10.7249 5C10.8369 5 10.9488 5.05597 11.0607 5.16791C11.1075 5.21462 11.1424 5.26617 11.1656 5.32255C11.1885 5.37823 11.2 5.43863 11.2 5.50374Q11.2 5.60141 11.1656 5.68493C11.1424 5.74131 11.1075 5.79286 11.0607 5.83957L8.77165 8.12866L11.0607 10.4177C11.1075 10.4645 11.1424 10.516 11.1656 10.5724C11.1885 10.6281 11.2 10.6885 11.2 10.7536C11.2 10.8187 11.1885 10.8791 11.1656 10.9348C11.1424 10.9912 11.1075 11.0427 11.0607 11.0894C11.0142 11.1359 10.9629 11.1707 10.9068 11.1939C10.8509 11.217 10.7903 11.2286 10.7249 11.2286Z",fill:"rgb(242,48,48)",fillRule:"evenodd"})]})})]})}function O5({summary:t,status:e,expanded:n,thinkingMode:i,onToggle:s}){return l.jsxs("button",{type:"button","data-testid":"cli-output-toggle",onClick:s,className:"cli-output-button w-full flex items-center gap-2 text-[14px] transition-colors",children:[e==="streaming"&&l.jsx(Or,{className:"w-4 h-4 flex-shrink-0"}),e==="done"&&l.jsx(f5,{}),e==="interrupted"&&l.jsx(Qo,{className:"flex-shrink-0"}),e==="failed"&&l.jsx(p5,{}),l.jsx("span",{className:"text-[16px] font-bold font-sans",children:t}),l.jsx("span",{style:{color:"rgb(31, 31, 31)"},children:l.jsx(Pd,{expanded:n})}),l.jsx("span",{className:"ml-auto hidden items-center gap-1",style:{color:"#64748B",fontSize:10},children:i==="debug"?l.jsxs(l.Fragment,{children:[l.jsx(u5,{}),l.jsx("span",{children:"shared"})]}):l.jsx("span",{children:"private"})})]})}function m5({event:t,rowExpanded:e,hasDetail:n,showLoading:i,showError:s,showStopped:r,accentLight:a,isActive:o,onToggleExpand:c}){var d,u;return l.jsxs("button",{type:"button",className:"w-full text-left cursor-pointer flex",onClick:c,children:[l.jsxs("div",{className:"flex items-center gap-2 mr-2",children:[i?l.jsx(kd,{className:"w-4 h-4 flex-shrink-0"}):l.jsx(h5,{}),l.jsxs("span",{className:"truncate",style:{color:"rgb(89, 89, 89)"},children:[l.jsx("span",{className:"font-[14px]",children:(d=t.label)==null?void 0:d.split(" ")[0]}),((u=t.label)==null?void 0:u.includes(" "))&&l.jsx("span",{style:{color:o?a:"#64748B",display:"none"},children:` ${t.label.split(" ").slice(1).join(" ")}`})]})]}),s&&l.jsx("span",{className:"text-[12px] px-1 mr-2 rounded-[2px] bg-[rgb(252,227,224)] text-[rgb(242,48,48)]",children:"调用异常"}),r&&l.jsx("span",{className:"text-[12px] mr-2 text-[#94A3B8]",children:"已停止"}),n&&l.jsx(Pd,{expanded:e})]})}function g5({event:t,resultDetail:e,isActive:n,status:i,hasResultMatch:s,persistExpandKey:r,onUserInteract:a,accent:o}){var S;const c=r?_n(r):void 0,[d,u]=m.useState(()=>c??!1),h=m.useRef(c!==void 0),f=e!=null&&e.trim().length>0?e:(S=t.detail)!=null&&S.trim()?t.detail:void 0,p=f!=null&&f.length>0,{shouldRenderMarkdown:O,showLoading:g,showError:x,showStopped:b}=b2(i,t,e,s),y=y2(o,.6);return l.jsxs("div",{"data-testid":`tool-row-${t.id}`,className:"w-full text-left rounded text-[11px] flex flex-col gap-2",style:{padding:"4px 0",borderRadius:4},children:[l.jsx(m5,{event:t,rowExpanded:d,hasDetail:p,showLoading:g,showError:x,showStopped:b,accentLight:y,isActive:n,onToggleExpand:()=>{h.current=!0,u(P=>{const w=!P;return r&&Bs(r,w),w}),a==null||a()}}),d&&p&&f&&l.jsx("div",{className:`w-[calc(100%-24px)] mt-1 break-words [overflow-wrap:anywhere] text-[12px] rounded-lg bg-[rgb(248_248_248)] p-[12px]${O?"":" whitespace-pre-wrap"}`,style:{color:"#64748B"},children:O?l.jsx(St,{content:f,disableCommandPrefix:!0}):f})]})}function x5({toolUses:t,toolResults:e,extraToolResults:n,lastToolId:i,status:s,toolRowPersistScope:r,onUserInteract:a,accent:o}){const[c,d]=m.useState(!0),u=m.useRef(!1),h=`${t.length} tool${t.length>1?"s":""}`;return l.jsxs("div",{className:"pt-1 pb-1",children:[l.jsxs("button",{type:"button","data-testid":"tools-section-toggle",className:"w-full hidden items-center gap-1.5 py-1.5 text-[12px] rounded transition-colors",style:{color:"#94A3B8"},onClick:()=>{u.current=!0,d(f=>!f),a()},children:[l.jsx("span",{children:c?h:`${h} (collapsed)`}),l.jsx(Pd,{expanded:c})]}),c&&l.jsx("div",{className:"space-y-0.5",children:t.map((f,p)=>{const O=v2(f,e,p,n);return l.jsx(g5,{event:f,resultDetail:O==null?void 0:O.detail,isActive:f.id===i,status:s,hasResultMatch:O!=null,persistExpandKey:r?zs(r.threadId,r.messageId,`tool:${f.id}`):void 0,onUserInteract:a,accent:o},f.id)})})]})}function cO({width:t=16,height:e=16,...n}){return l.jsxs("svg",{width:t,height:e,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",...n,"aria-hidden":!0,children:[l.jsx("rect",{id:"文件夹-folder",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000"}),l.jsx("path",{id:"形状结合",d:"M5.32031 2.17969C5.48979 2.17969 5.65381 2.23963 5.78336 2.3489L7.98328 4.20369L12.9091 4.20407C13.7389 4.20407 14.4204 4.8394 14.4935 5.65017L14.5 5.79497L14.5 11.3413C14.5 12.8225 13.2993 14.0231 11.8182 14.0231L4.18191 14.0231C2.70094 14.0229 1.50035 12.8224 1.5 11.3414L1.5 3.7441L1.50859 3.59777C1.5957 2.79393 2.27603 2.17957 3.09018 2.17969L5.32031 2.17969ZM13.4997 7.39969L2.49902 7.39969L2.5 11.3412C2.50021 12.2329 3.19419 12.9625 4.07142 13.0195L4.18199 13.0231L11.8182 13.0231C12.7471 13.0231 13.5 12.2702 13.5 11.3413L13.4997 7.39969ZM5.21728 3.17969L3.09011 3.17969C2.78788 3.17969 2.53501 3.40799 2.50498 3.67812L2.49937 3.77055L2.49902 6.39969L13.4997 6.39969L13.5 5.79497C13.5 5.49373 13.2746 5.24513 12.9833 5.20867L12.9091 5.20407L7.87974 5.20407C7.71026 5.20407 7.54623 5.14413 7.41668 5.03485L5.21728 3.17969Z",fill:"rgb(25,25,25)",fillRule:"nonzero"})]})}function Vs({width:t=16,height:e=16,...n}){return l.jsx("svg",{width:t,height:e,viewBox:"0 0 16.2673 16.2673",fill:"none",xmlns:"http://www.w3.org/2000/svg",...n,"aria-hidden":!0,children:l.jsx("path",{fill:"currentColor",fillRule:"nonzero",transform:"matrix(0.999858 0.0168466 -0.0168466 0.999858 1.66809 2.20746)",d:"M3.81828 0C3.98772 0 4.1517 0.0599236 4.28122 0.169172L6.478 2.022L11.4008 2.0227C12.2302 2.0227 12.9112 2.65767 12.9843 3.46798L12.9908 3.6127L12.9907 4.216L13.6391 4.21663L13.7626 4.22557C14.0338 4.27753 14.2115 4.53952 14.1596 4.81073L13.0108 10.8057C12.9993 10.8661 12.9773 10.9218 12.9471 10.9714C12.6555 11.5117 12.0462 11.8345 11.4008 11.8345L2.68082 11.8345C1.20085 11.8343 0.00106351 10.6346 0.000718276 9.15453L0 1.58991C0 0.711781 0.711863 0 1.59 0L3.81828 0ZM13.0633 5.216L3.152 5.216L2.0962 10.7299C2.2783 10.7975 2.47529 10.8344 2.6809 10.8345L11.4008 10.8345C11.668 10.8345 11.8887 10.7435 12.0063 10.5974L13.0633 5.216ZM3.715 1L1.59 1C1.29671 1 1.05344 1.21391 1.00772 1.49418L1 1.58986L1.00072 9.15436C1.00079 9.45657 1.08064 9.74015 1.22034 9.98516L2.24806 4.62254C2.25354 4.59396 2.26135 4.56642 2.27125 4.54007C2.27663 4.52849 2.29689 4.4827 2.30313 4.47161C2.31207 4.45959 2.35474 4.39649 2.36486 4.38508C2.37554 4.37663 2.45096 4.30775 2.46224 4.30024C2.53624 4.25649 2.64651 4.21663 2.73913 4.21663L11.9907 4.216L11.9908 3.6127C11.9908 3.28686 11.7267 3.0227 11.4008 3.0227L6.37559 3.0227C6.20615 3.0227 6.04217 2.96278 5.91265 2.85353L3.715 1Z"})})}function dO({menuTriggerTestId:t,openTestId:e,openFolderTestId:n,supportsSystemOpen:i,canOpenFile:s,canOpenFolder:r,isOpening:a,isOpeningFolder:o,isOpeningAction:c,onOpenDefault:d,onOpenFolder:u,onViewAllFiles:h}){const f=m.useMemo(()=>{const p=[];return i&&p.push({label:a?"打开中…":"默认应用打开",testId:e,disabled:c||!s,icon:l.jsx("img",{src:"/images/file-browser-tree/public-file.svg",alt:"","aria-hidden":!0,className:"size-4 shrink-0"}),onClick:d}),p.push({label:o?"打开中…":"在文件夹中显示",testId:n,disabled:c||!r,icon:l.jsx("span",{className:"flex size-4 items-center justify-center text-[#8C8C8C]",children:l.jsx(Vs,{width:16,height:16})}),onClick:u}),p.push({label:"查看此任务所有文件",testId:"cli-output-file-card-view-all",icon:l.jsx("span",{className:"flex size-4 items-center justify-center text-[#8C8C8C]",children:l.jsxs("svg",{viewBox:"0 0 14.4 14.4",width:"14.400024",height:"14.399994",fill:"none",children:[l.jsx("rect",{id:"ic_public_collecting_files",width:"14.400001",height:"14.400001",x:"0.000000",y:"0.000000"}),l.jsx("path",{id:"path1",d:"M-9.44e-06 7.19401C-9.44e-06 6.06901 -0.00300944 4.94401 -9.44e-06 3.81901C-0.00300944 3.27301 0.0659906 2.73001 0.197991 2.20501C0.494991 1.08901 1.22099 0.426006 2.33699 0.168006C2.89499 0.0480059 3.46799 -0.0089941 4.03799 5.90092e-06C6.19499 5.90092e-06 8.35199 5.90092e-06 10.512 5.90092e-06C11.055 -0.0029941 11.598 0.0570059 12.129 0.186006C13.278 0.465006 13.968 1.19401 14.229 2.34001C14.349 2.88001 14.403 3.43201 14.397 3.98701C14.397 6.16801 14.397 8.34901 14.397 10.527C14.4 11.067 14.34 11.607 14.214 12.132C13.932 13.281 13.2 13.965 12.057 14.229C11.496 14.349 10.926 14.406 10.353 14.397C8.20499 14.397 6.05699 14.397 3.90899 14.397C3.35999 14.403 2.81399 14.34 2.27999 14.214C1.12499 13.935 0.431991 13.203 0.170991 12.051C0.0359906 11.466 -9.44e-06 10.881 -9.44e-06 10.29C-9.44e-06 9.25801 -9.44e-06 8.22601 -9.44e-06 7.19401Z",fill:"rgb(255,255,255)","fill-opacity":"0",fillRule:"evenodd"}),l.jsx("circle",{id:"path2",cx:"7.20000029",cy:"7.20000029",r:"7.20000029",fill:"rgb(255,255,255)","fill-opacity":"0"}),l.jsx("path",{id:"path3",d:"M12.7499 8.25002L12.7499 2.85002C12.7499 1.85402 11.9429 1.05002 10.9499 1.05002L3.4499 1.05002C2.4539 1.05002 1.6499 1.85402 1.6499 2.85002L1.6499 8.25002",fillRule:"nonzero",stroke:"rgb(25,25,25)","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"0.900000036"}),l.jsx("path",{id:"path4",d:"M13.65 8.25L13.65 11.55C13.65 12.543 12.843 13.35 11.85 13.35L2.55 13.35C1.554 13.35 0.75 12.543 0.75 11.55L0.75 8.25L5.4 8.25C5.4 9.243 6.204 10.05 7.2 10.05C8.193 10.05 9 9.243 9 8.25L13.65 8.25Z",fillRule:"nonzero",stroke:"rgb(25,25,25)","stroke-linejoin":"round","stroke-width":"0.900000036"}),l.jsx("path",{id:"路径 21",d:"M4.04993 5.85001L7.64993 5.85001",stroke:"rgb(25,25,25)","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"0.900000036"}),l.jsx("path",{id:"路径 21",d:"M4.04993 3.45001L10.3499 3.45001",stroke:"rgb(25,25,25)","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"0.900000036"}),l.jsx("path",{id:"减去顶层",d:"M5.03146 8.70001L0.599976 8.70001L0.599976 11.55C0.599976 12.7927 1.60735 13.8 2.84998 13.8L11.55 13.8C12.7926 13.8 13.8 12.7927 13.8 11.55L13.8 8.70001L9.36724 8.70001C9.17706 9.72436 8.2788 10.5 7.19935 10.5C6.11992 10.5 5.22163 9.72436 5.03146 8.70001Z",fill:"rgb(255,255,255)","fill-opacity":"0",fillRule:"evenodd"}),l.jsx("path",{id:"减去顶层",d:"M10.95 0.600006L3.44995 0.600006C2.20718 0.600006 1.19995 1.60738 1.19995 2.85001L1.19995 7.80001L5.39995 7.80001C5.54995 7.80001 5.66245 7.83751 5.73745 7.91251C5.81245 7.98751 5.84995 8.10001 5.84995 8.25001C5.84995 8.35117 5.86073 8.44992 5.88229 8.54626L5.88229 8.54629C5.88263 8.54787 5.88298 8.54945 5.88334 8.55103C5.90074 8.62711 5.92495 8.70172 5.956 8.77486C6.02428 8.93629 6.12094 9.07939 6.24574 9.20422C6.37057 9.32902 6.51382 9.42568 6.67525 9.49411C6.74818 9.52501 6.82291 9.54919 6.89908 9.56647C6.99664 9.58888 7.09711 9.60001 7.19995 9.60001C7.30288 9.60001 7.40317 9.58882 7.50082 9.56647C7.57699 9.54919 7.65172 9.52501 7.72465 9.49411C7.88608 9.42568 8.02933 9.32902 8.15416 9.20422C8.27896 9.07939 8.37562 8.93629 8.4439 8.77486C8.47495 8.70178 8.49898 8.6272 8.51656 8.55103C8.51692 8.54945 8.51727 8.54787 8.51761 8.54629L8.51761 8.54626C8.53917 8.44992 8.54995 8.35117 8.54995 8.25001C8.54995 8.10001 8.58745 7.98751 8.66245 7.91251C8.73745 7.83751 8.84995 7.80001 8.99995 7.80001L13.2 7.80001L13.2 2.85001C13.2 1.60738 12.1927 0.600006 10.95 0.600006ZM10.95 2.70001L3.44995 2.70001C3.19795 2.70001 2.99995 2.89801 2.99995 3.15001C2.99995 3.40201 3.19795 3.60001 3.44995 3.60001L10.95 3.60001C11.202 3.60001 11.4 3.40201 11.4 3.15001C11.4 2.89801 11.202 2.70001 10.95 2.70001ZM3.44995 5.10001L7.64995 5.10001C7.90195 5.10001 8.09995 5.29801 8.09995 5.55001C8.09995 5.80201 7.90195 6.00001 7.64995 6.00001L3.44995 6.00001C3.19795 6.00001 2.99995 5.80201 2.99995 5.55001C2.99995 5.29801 3.19795 5.10001 3.44995 5.10001Z",fill:"rgb(255,255,255)","fill-opacity":"0",fillRule:"evenodd"})]})}),onClick:h}),p},[s,r,a,c,o,d,u,h,n,e,i]);return l.jsx(nO,{align:"right",menuWidth:216,menuItemClassName:"flex h-8 w-full items-center gap-2 px-3 text-left text-sm text-[#191919] transition-colors hover:bg-[#F5F5F7] disabled:cursor-not-allowed disabled:opacity-40",trigger:l.jsx("button",{type:"button","data-testid":t,className:"flex size-7 shrink-0 items-center justify-center rounded-lg bg-transparent text-[#191919] transition-colors hover:bg-[#F5F5F7]","aria-label":"更多操作",children:l.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[l.jsx("circle",{cx:"4",cy:"8",r:"1.25"}),l.jsx("circle",{cx:"8",cy:"8",r:"1.25"}),l.jsx("circle",{cx:"12",cy:"8",r:"1.25"})]})}),options:f})}const uO="cli-output-doc-card mt-2 max-w-[485px] font-sans box-border flex items-center gap-4 rounded-xl bg-white px-5 py-4 transition-[border-color] duration-200";function hO(t){return t?"border border-solid border-[#2E7CF6]":"border border-solid border-gray-200 hover:border-[#BFDBFE]"}const fO="mt-2 max-w-[485px] font-sans flex items-center gap-4 rounded-xl border border-solid border-gray-200 bg-white px-5 py-4";function b5({width:t=24,height:e=24,className:n}){return l.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/2000/svg",width:t,height:e,fill:"none",className:n,children:[l.jsx("rect",{id:"MD",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"矩形",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsx("g",{id:"ic_normal_white_grid_pptx",children:l.jsxs("g",{id:"编组-236",children:[l.jsx("path",{id:"矩形备份-24",d:"M25.8325 3.33496L34.5825 12.085L27.7373 12.085C26.6853 12.085 25.8325 11.2322 25.8325 10.1802L25.8325 3.33496L25.8325 3.33496Z",fill:"rgb(199,201,254)",fillRule:"evenodd"}),l.jsx("path",{id:"矩形备份-23",d:"M25.9558 3.33496L25.9409 10.176C25.9386 11.228 26.7895 12.0827 27.8415 12.085L34.6867 12.085L34.6867 33.335C34.6867 35.1759 33.1943 36.6683 31.3534 36.6683L8.85335 36.6683C7.0124 36.6683 5.52002 35.1759 5.52002 33.335L5.52002 6.66829C5.52002 4.82735 7.0124 3.33496 8.85335 3.33496L25.9558 3.33496L25.9558 3.33496Z",fill:"rgb(116,121,244)",fillRule:"evenodd"})]})}),l.jsx("path",{id:"矢量 111",d:"M11.1118 28.3333L11.1118 20L15.2785 26.6667L19.4451 20L19.4451 28.3333",stroke:"rgb(255,255,255)",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.31428576"}),l.jsx("path",{id:"矢量 112",d:"M22.7783 28.3333C24.0712 28.3333 24.3044 28.3333 25.2783 28.3333C28.6114 28.3334 29.4454 26.0067 29.445 23.9521C29.4446 21.8975 28.6115 19.9996 25.2783 20C21.9452 20.0004 23.7158 20 22.7783 20L22.7783 28.3333Z",stroke:"rgb(255,255,255)",strokeLinejoin:"round",strokeWidth:"1.31428576"})]})}function y5({width:t=24,height:e=24,className:n}){return l.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/2000/svg",width:t,height:e,fill:"none",className:n,children:[l.jsx("rect",{id:"word",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"矩形",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsxs("g",{id:"ic_normal_white_grid_doc",children:[l.jsx("path",{id:"矩形备份-6",d:"M33.4961 11.251L34.3294 11.251L34.3294 12.0843L33.4961 12.0843L33.4961 11.251Z",fill:"rgb(255,255,255)",fillRule:"evenodd"}),l.jsx("path",{id:"矩形备份-23",d:"M25.9558 3.33496L25.9409 10.176C25.9386 11.228 26.7895 12.0827 27.8415 12.085L34.6867 12.085L34.6867 33.335C34.6867 35.1759 33.1943 36.6683 31.3534 36.6683L8.85335 36.6683C7.0124 36.6683 5.52002 35.1759 5.52002 33.335L5.52002 6.66829C5.52002 4.82735 7.0124 3.33496 8.85335 3.33496L25.9558 3.33496L25.9558 3.33496Z",fill:"rgb(59,140,250)",fillRule:"evenodd"}),l.jsx("path",{id:"矩形备份-24",d:"M25.8325 3.33496L34.5825 12.085L27.7373 12.085C26.6853 12.085 25.8325 11.2322 25.8325 10.1802L25.8325 3.33496L25.8325 3.33496Z",fill:"rgb(173,205,249)",fillRule:"evenodd"}),l.jsx("path",{id:"路径-4",d:"M14.791 20.001L16.9162 28.4886C16.965 28.6837 17.239 28.6927 17.3006 28.5013L19.8444 20.5938C19.904 20.4087 20.1659 20.4088 20.2253 20.594L22.7574 28.4917C22.819 28.684 23.0944 28.6742 23.1422 28.478L25.2077 20.001",fillRule:"evenodd",stroke:"rgb(255,255,255)",strokeLinecap:"round",strokeWidth:"1.80555582"})]})]})}function v5({width:t=24,height:e=24,className:n}){return l.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/2000/svg",width:t,height:e,fill:"none",className:n,children:[l.jsx("rect",{id:"excel",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"矩形",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsxs("g",{id:"ic_normal_white_grid_xls",children:[l.jsx("path",{id:"矩形备份-77",d:"M25.8325 3.33496L34.5825 12.085L27.7373 12.085C26.6853 12.085 25.8325 11.2322 25.8325 10.1802L25.8325 3.33496L25.8325 3.33496Z",fill:"rgb(126,237,193)",fillRule:"evenodd"}),l.jsx("path",{id:"矩形备份-23",d:"M25.9558 3.33496L25.9409 10.176C25.9386 11.228 26.7895 12.0827 27.8415 12.085L34.6867 12.085L34.6867 33.335C34.6867 35.1759 33.1943 36.6683 31.3534 36.6683L8.85335 36.6683C7.0124 36.6683 5.52002 35.1759 5.52002 33.335L5.52002 6.66829C5.52002 4.82735 7.0124 3.33496 8.85335 3.33496L25.9558 3.33496L25.9558 3.33496Z",fill:"rgb(6,187,115)",fillRule:"evenodd"}),l.jsx("g",{id:"编组-3",children:l.jsxs("g",{id:"编组-2",children:[l.jsx("path",{id:"路径-5",d:"M0 0L12.2267 0",stroke:"rgb(255,255,255)",strokeLinecap:"round",strokeWidth:"1.80555582",transform:"matrix(0.573677,0.819082,-0.819082,0.573677,16.4517,18.4229)"}),l.jsx("path",{id:"路径-5",d:"M0 0L12.2267 0",stroke:"rgb(255,255,255)",strokeLinecap:"round",strokeWidth:"1.80555582",transform:"matrix(-0.573677,0.819082,-0.819082,-0.573677,23.6001,18.4746)"})]})})]})]})}function S5({width:t=24,height:e=24,className:n}){return l.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/2000/svg",width:t,height:e,fill:"none",className:n,children:[l.jsx("rect",{id:"pdf",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"矩形",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsxs("g",{id:"ic_normal_white_grid_pdf",children:[l.jsx("path",{id:"矩形备份-47",d:"M25.8325 3.33496L34.5825 12.085L27.7373 12.085C26.6853 12.085 25.8325 11.2322 25.8325 10.1802L25.8325 3.33496L25.8325 3.33496Z",fill:"rgb(255,191,190)",fillRule:"evenodd"}),l.jsx("path",{id:"矩形备份-23",d:"M25.9558 3.33496L25.9409 10.176C25.9386 11.228 26.7895 12.0827 27.8415 12.085L34.6867 12.085L34.6867 33.335C34.6867 35.1759 33.1943 36.6683 31.3534 36.6683L8.85335 36.6683C7.0124 36.6683 5.52002 35.1759 5.52002 33.335L5.52002 6.66829C5.52002 4.82735 7.0124 3.33496 8.85335 3.33496L25.9558 3.33496L25.9558 3.33496Z",fill:"rgb(255,76,72)",fillRule:"evenodd"}),l.jsxs("g",{id:"编组",children:[l.jsx("path",{id:"多边形",d:"M23.343 27.6338L16.7632 27.6338L20.0531 21.9355L23.343 27.6338Z",fillRule:"evenodd",stroke:"rgb(255,255,255)",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.35416675"}),l.jsx("path",{id:"路径",d:"M20.1496 21.4246C20.962 20.4724 21.3683 19.7558 21.3683 19.2749C21.3683 18.5255 20.7795 17.918 20.0533 17.918C19.327 17.918 18.7383 18.5255 18.7383 19.2749C18.7383 19.7557 19.1442 20.4718 19.956 21.4235",fillRule:"evenodd",stroke:"rgb(255,255,255)",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.35416675"}),l.jsx("path",{id:"路径备份",d:"M1.41132 3.50664C2.22376 2.55445 2.62998 1.83788 2.62998 1.35692C2.62998 0.607515 2.04124 0 1.31499 0C0.588741 0 0 0.607515 0 1.35692C0 1.83769 0.405893 2.55388 1.21768 3.50549",fillRule:"evenodd",stroke:"rgb(255,255,255)",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.35416675",transform:"matrix(-0.5,0.866025,-0.866025,-0.5,27.4893,28.4678)"}),l.jsx("path",{id:"路径备份-2",d:"M1.41132 3.50664C2.22376 2.55445 2.62998 1.83788 2.62998 1.35692C2.62998 0.607515 2.04124 0 1.31499 0C0.588741 0 0 0.607515 0 1.35692C0 1.83769 0.405893 2.55388 1.21768 3.50549",fillRule:"evenodd",stroke:"rgb(255,255,255)",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.35416675",transform:"matrix(-0.5,-0.866025,0.866025,-0.5,13.9326,30.7461)"})]})]})]})}function Jo({width:t=24,height:e=24,className:n}){return l.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/2000/svg",width:t,height:e,fill:"none",className:n,children:[l.jsx("rect",{id:"text",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"矩形",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsxs("g",{id:"编组-89",children:[l.jsx("rect",{id:"矩形",width:"33.333332",height:"33.333336",x:"3.333496",y:"3.333984"}),l.jsxs("g",{id:"ic_normal_white_grid_documents",children:[l.jsx("path",{id:"矩形备份-81",d:"M25.8335 3.33398L34.5835 12.084L27.7383 12.084C26.6863 12.084 25.8335 11.2312 25.8335 10.1792L25.8335 3.33398L25.8335 3.33398Z",fill:"rgb(199,201,254)",fillRule:"evenodd"}),l.jsx("path",{id:"矩形备份-23",d:"M25.9568 3.33398L25.9418 10.1751C25.9395 11.227 26.7905 12.0817 27.8424 12.084L34.6877 12.084L34.6877 33.334C34.6877 35.1749 33.1953 36.6673 31.3543 36.6673L8.85433 36.6673C7.01338 36.6673 5.521 35.1749 5.521 33.334L5.521 6.66732C5.521 4.82637 7.01338 3.33398 8.85433 3.33398L25.9568 3.33398L25.9568 3.33398Z",fill:"rgb(116,121,244)",fillRule:"evenodd"}),l.jsxs("g",{id:"编组-249",children:[l.jsx("rect",{id:"矩形",width:"15.625000",height:"1.666667",x:"12.187500",y:"18.541992",rx:"0.833333",fill:"rgb(255,255,255)"}),l.jsx("rect",{id:"矩形备份",width:"15.625000",height:"1.666667",x:"12.187500",y:"23.541992",rx:"0.833333",fill:"rgb(255,255,255)"}),l.jsx("rect",{id:"矩形备份-2",width:"9.479168",height:"1.666667",x:"12.187500",y:"28.541992",rx:"0.833333",fill:"rgb(255,255,255)"})]})]})]})]})}function w5({width:t=24,height:e=24,className:n}){return l.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/2000/svg",width:t,height:e,fill:"none",className:n,children:[l.jsx("rect",{id:"ppt",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"矩形",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsxs("g",{id:"ic_normal_white_grid_pptx",children:[l.jsxs("g",{id:"编组-236",children:[l.jsx("path",{id:"矩形备份-24",d:"M25.8325 3.33496L34.5825 12.085L27.7373 12.085C26.6853 12.085 25.8325 11.2322 25.8325 10.1802L25.8325 3.33496L25.8325 3.33496Z",fill:"rgb(254,201,176)",fillRule:"evenodd"}),l.jsx("path",{id:"矩形备份-23",d:"M25.9558 3.33496L25.9409 10.176C25.9386 11.228 26.7895 12.0827 27.8415 12.085L34.6867 12.085L34.6867 33.335C34.6867 35.1759 33.1943 36.6683 31.3534 36.6683L8.85335 36.6683C7.0124 36.6683 5.52002 35.1759 5.52002 33.335L5.52002 6.66829C5.52002 4.82735 7.0124 3.33496 8.85335 3.33496L25.9558 3.33496L25.9558 3.33496Z",fill:"rgb(255,119,55)",fillRule:"evenodd"})]}),l.jsxs("g",{id:"编组-2",children:[l.jsx("path",{id:"路径-7",d:"M20.5487 18.5439L16.7193 18.5439C16.4596 18.5439 16.249 18.7545 16.249 19.0143L16.249 29.8838",fillRule:"evenodd",stroke:"rgb(255,255,255)",strokeLinecap:"round",strokeWidth:"1.91840291"}),l.jsx("path",{id:"路径",d:"M16.96 24.9265L20.5947 24.9265C22.348 24.9265 23.7693 23.5051 23.7693 21.7518C23.7693 19.9985 22.348 18.5439 20.5947 18.5439",fillRule:"evenodd",stroke:"rgb(255,255,255)",strokeLinecap:"round",strokeWidth:"1.91840291"})]})]})]})}function k5({width:t=24,height:e=24,className:n}){return l.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/2000/svg",width:t,height:e,fill:"none",className:n,children:[l.jsx("defs",{children:l.jsx("clipPath",{id:"clipPath_0",children:l.jsx("rect",{width:"16.666666",height:"16.666666",x:"11.666992",y:"15.000000",fill:"rgb(255,255,255)"})})}),l.jsx("rect",{id:"html",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"矩形",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsxs("g",{id:"ic_normal_white_grid_xls",children:[l.jsx("path",{id:"矩形备份-77",d:"M25.8325 3.33496L34.5825 12.085L27.7373 12.085C26.6853 12.085 25.8325 11.2322 25.8325 10.1802L25.8325 3.33496L25.8325 3.33496Z",fill:"rgb(138,228,225)",fillRule:"evenodd"}),l.jsx("path",{id:"矩形备份-23",d:"M25.9558 3.33496L25.9409 10.176C25.9386 11.228 26.7895 12.0827 27.8415 12.085L34.6867 12.085L34.6867 33.335C34.6867 35.1759 33.1943 36.6683 31.3534 36.6683L8.85335 36.6683C7.0124 36.6683 5.52002 35.1759 5.52002 33.335L5.52002 6.66829C5.52002 4.82735 7.0124 3.33496 8.85335 3.33496L25.9558 3.33496L25.9558 3.33496Z",fill:"rgb(11,184,178)",fillRule:"evenodd"}),l.jsxs("g",{id:"ic_public_earth_net",clipPath:"url(#clipPath_0)",children:[l.jsx("rect",{id:"ic_public_earth_net",width:"16.666666",height:"16.666666",x:"11.666992",y:"15.000000"}),l.jsxs("g",{id:"ic_public_earth_net-地球/base/ic_public_earth_net",children:[l.jsx("path",{id:"path4",d:"M24.9636 19.1818C25.2745 19.1818 25.5829 19.1924 25.8885 19.2133C26.5919 20.3052 27 21.605 27 23C27 26.866 23.866 30 20 30C17.07 30 14.5605 28.1999 13.517 25.6452C15.8572 21.7715 20.108 19.1818 24.9636 19.1818ZM20 16C20.3226 16 20.6401 16.0218 20.9511 16.0641C23.1353 20.0274 23.2524 25.003 20.8248 29.2077C20.6695 29.4767 20.5063 29.7382 20.3356 29.9922C20.2243 29.9973 20.1124 30 20 30C16.134 30 13 26.866 13 23C13 19.134 16.134 16 20 16ZM20 16C23.866 16 27 19.134 27 23C27 24.6174 26.4515 26.1066 25.5303 27.2919C21.0063 27.2014 16.639 24.815 14.2115 20.6105C14.056 20.341 13.9108 20.0683 13.776 19.793C14.9394 17.5401 17.2899 16 20 16Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"}),l.jsx("path",{id:"path4",d:"M25.8885 19.2133C26.5919 20.3052 27 21.605 27 23C27 26.866 23.866 30 20 30C17.07 30 14.5605 28.1999 13.517 25.6452C15.8572 21.7715 20.108 19.1818 24.9636 19.1818C25.2745 19.1818 25.5829 19.1924 25.8885 19.2133ZM20 30C16.134 30 13 26.866 13 23C13 19.134 16.134 16 20 16C20.3226 16 20.6401 16.0218 20.9511 16.0641C23.1353 20.0274 23.2524 25.003 20.8248 29.2077C20.6695 29.4767 20.5063 29.7382 20.3356 29.9922C20.2243 29.9973 20.1124 30 20 30M20 16C23.866 16 27 19.134 27 23M27 23C27 24.6174 26.4515 26.1066 25.5303 27.2919C21.0063 27.2014 16.639 24.815 14.2115 20.6105C14.056 20.341 13.9108 20.0683 13.776 19.793C14.9394 17.5401 17.2899 16 20 16",fillRule:"evenodd",stroke:"rgb(255,255,255)",strokeLinejoin:"round",strokeWidth:"1.20000005"}),l.jsx("path",{id:"path5",d:"M20 30C23.866 30 27 26.866 27 23C27 19.134 23.866 16 20 16C16.134 16 13 19.134 13 23C13 26.866 16.134 30 20 30Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"nonzero"}),l.jsx("path",{id:"path5",d:"M27 23C27 19.134 23.866 16 20 16C16.134 16 13 19.134 13 23C13 26.866 16.134 30 20 30C23.866 30 27 26.866 27 23Z",fillRule:"nonzero",stroke:"rgb(255,255,255)",strokeLinejoin:"round",strokeWidth:"1.20000005"})]})]})]})]})}function Q5({width:t=24,height:e=24,className:n}){return l.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/2000/svg",width:t,height:e,fill:"none",className:n,children:[l.jsx("path",{d:"M25.9558 3.33496L25.9409 10.176C25.9386 11.228 26.7895 12.0827 27.8415 12.085L34.6867 12.085L34.6867 33.335C34.6867 35.1759 33.1943 36.6683 31.3534 36.6683L8.85335 36.6683C7.0124 36.6683 5.52002 35.1759 5.52002 33.335L5.52002 6.66829C5.52002 4.82735 7.0124 3.33496 8.85335 3.33496L25.9558 3.33496Z",fill:"rgb(108,182,255)",fillRule:"evenodd"}),l.jsx("path",{d:"M25.8325 3.33496L34.5825 12.085L27.7373 12.085C26.6853 12.085 25.8325 11.2322 25.8325 10.1802L25.8325 3.33496Z",fill:"rgb(191,225,255)",fillRule:"evenodd"}),l.jsx("circle",{cx:"14.5",cy:"18.5",r:"2.5",stroke:"rgb(255,255,255)",strokeWidth:"1.4",fill:"none"}),l.jsx("path",{d:"M9 29L15.5 21L19.5 25.5L23 22L31 29Z",fill:"rgb(255,255,255)",fillOpacity:"0.9",fillRule:"evenodd"})]})}const Td={markdown:{badgeLabel:"MD",cardTestId:"cli-output-markdown-card",openTestId:"cli-output-markdown-open",openFolderTestId:"cli-output-markdown-open-folder",Icon:b5},docx:{badgeLabel:"DOC",cardTestId:"cli-output-word-card",openTestId:"cli-output-word-open",openFolderTestId:"cli-output-word-open-folder",Icon:y5},xlsx:{badgeLabel:"XLS",cardTestId:"cli-output-excel-card",openTestId:"cli-output-excel-open",openFolderTestId:"cli-output-excel-open-folder",Icon:v5},pdf:{badgeLabel:"PDF",cardTestId:"cli-output-pdf-card",openTestId:"cli-output-pdf-open",openFolderTestId:"cli-output-pdf-open-folder",Icon:S5},txt:{badgeLabel:"TXT",cardTestId:"cli-output-txt-card",openTestId:"cli-output-txt-open",openFolderTestId:"cli-output-txt-open-folder",Icon:Jo},ppt:{badgeLabel:"PPT",cardTestId:"cli-output-ppt-card",openTestId:"cli-output-ppt-open",openFolderTestId:"cli-output-ppt-open-folder",Icon:w5},html:{badgeLabel:"HTML",cardTestId:"cli-output-html-card",openTestId:"cli-output-html-open",openFolderTestId:"cli-output-html-open-folder",Icon:k5},image:{badgeLabel:"IMG",cardTestId:"cli-output-image-card",openTestId:"cli-output-image-open",openFolderTestId:"cli-output-image-open-folder",Icon:Q5},code:{badgeLabel:"CODE",cardTestId:"cli-output-code-card",openTestId:"cli-output-code-open",openFolderTestId:"cli-output-code-open-folder",Icon:Jo},other:{badgeLabel:"FILE",cardTestId:"cli-output-other-card",openTestId:"cli-output-other-open",openFolderTestId:"cli-output-other-open-folder",Icon:Jo}};async function C5(t){const{isCancelled:e,isAbsoluteFilePath:n,projectPath:i,setDefaultProjectPath:s,setFileStatus:r}=t;if(!n&&!(i&&i!=="default"))try{const a=await G("/api/projects/cwd");if(!a.ok){e()||r("error");return}const o=await a.json();!e()&&typeof o.path=="string"&&o.path.trim()?s(o.path.trim()):e()||r("error")}catch{e()||(s(null),r("error"))}}function P5(t){const{isCancelled:e,status:n,scheduleRetry:i,setFileStatus:s,httpStatus:r}=t;e()||(n==="streaming"&&i(),s(r===404?"not-found":"error"))}function T5(t){const{isCancelled:e,status:n,scheduleRetry:i,setGeneratedAt:s,setFileStatus:r}=t;e()||(s(null),r("error"),n==="streaming"&&i())}async function $5(t){const{isCancelled:e,resolvedPath:n,needsDefaultProjectPath:i,effectiveProjectPath:s,status:r,scheduleRetry:a,setGeneratedAt:o,setFileStatus:c}=t;if(n&&!(i&&!s))try{const d=await G("/api/projects/local-file-meta",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:n,...s?{projectPath:s}:{}})});if(!d.ok){P5({isCancelled:e,status:r,scheduleRetry:a,setFileStatus:c,httpStatus:d.status});return}const u=await d.json();if(e())return;c("exists");const h=u.generatedAt;if(typeof h=="number"&&Number.isFinite(h))o(Math.trunc(h));else if(typeof h=="string"&&h.trim()){const f=Number(h);Number.isFinite(f)&&o(Math.trunc(f))}}catch{T5({isCancelled:e,status:r,scheduleRetry:a,setGeneratedAt:o,setFileStatus:c})}}function j5(t,e,n){const[i,s]=m.useState(!1),[r,a]=m.useState(!1),[o,c]=m.useState(null),[d,u]=m.useState("checking"),h=m.useRef(null),[f,p]=m.useState(null),O=Ut(M=>M.addToast),{badgeLabel:g,cardTestId:x,openTestId:b,openFolderTestId:y,Icon:S}=Td[t.kind],P=m.useMemo(()=>{var M;return(M=t.name)!=null&&M.trim()?t.name.trim():xd(t.path)||"未命名文件"},[t.name,t.path]),w=m.useMemo(()=>I0(t.path,e,f),[f,t.path,e]),C=m.useMemo(()=>w?L0(w):null,[w]),Q=m.useMemo(()=>X0(t.path),[t.path]),T=m.useMemo(()=>Q?null:e&&e!=="default"?e:f,[f,Q,e]),A=!Q&&(!e||e==="default"),$=!!w&&(!A||!!T),N=!!C&&(!A||!!T),R=!!(w&&Z0(w)),z=i||r;m.useEffect(()=>{let M=!1;return C5({isCancelled:()=>M,isAbsoluteFilePath:Q,projectPath:e,setDefaultProjectPath:p,setFileStatus:u}),()=>{M=!0}},[Q,e]),m.useEffect(()=>{let M=!1;const L=()=>M,F=()=>{$5({isCancelled:L,resolvedPath:w,needsDefaultProjectPath:A,effectiveProjectPath:T,status:n,scheduleRetry:()=>{h.current=setTimeout(F,1e3)},setGeneratedAt:c,setFileStatus:u})};return F(),()=>{h.current&&(clearTimeout(h.current),h.current=null),M=!0}},[T,A,w,n]);async function I(){if(!(i||!w||!$||!R)){s(!0);try{const M=await G("/api/projects/open-local",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:w,...T?{projectPath:T}:{}})});if(!M.ok){const L=await M.json().catch(()=>null),F=typeof(L==null?void 0:L.error)=="string"&&L.error.trim()?L.error.trim():"无法在系统中打开该文件";O({type:"error",title:"打开失败",message:F,duration:4e3})}}finally{s(!1)}}}async function B(){if(!(r||!C||!N)){a(!0);try{const M=await G("/api/projects/open-local-folder",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:C,...T?{projectPath:T}:{}})});if(!M.ok){const L=await M.json().catch(()=>null),F=typeof(L==null?void 0:L.error)=="string"&&L.error.trim()?L.error.trim():"无法在文件管理器中打开该文件夹";O({type:"error",title:"打开文件夹失败",message:F,duration:4e3})}}finally{a(!1)}}}return{badgeLabel:g,cardTestId:x,openTestId:b,openFolderTestId:y,Icon:S,displayName:P,resolvedPath:w,fileStatus:d,status:n,generatedAt:o,file:t,canOpenFile:$,canOpenFolder:N,supportsSystemOpen:R,effectiveProjectPath:T,isOpeningAction:z,isOpening:i,isOpeningFolder:r,handleOpen:I,handleOpenFolder:B}}function A5(t,e){return D0(t??e.fallbackGeneratedAt??null)}function N5({file:t,projectPath:e,status:n}){const{cardTestId:i,openTestId:s,openFolderTestId:r,Icon:a,displayName:o,resolvedPath:c,fileStatus:d,generatedAt:u,canOpenFile:h,canOpenFolder:f,supportsSystemOpen:p,isOpeningAction:O,isOpening:g,isOpeningFolder:x,handleOpen:b,handleOpenFolder:y}=j5(t,e,n),S=E(N=>N.openFileBrowserPanel),P=E(N=>N.openFileBrowserPanelWithFile),w=E(N=>c?N.rightPanelMode==="fileBrowser"&&N.fileBrowserSelectedPath===c:!1),Q=((Du(t.kind)??Du(vo(t.path,t.name)))!==null||t.kind==="code"||t.kind==="txt")&&!!c,T=()=>{c&&P(c)},A=l.jsx(dO,{menuTriggerTestId:`${i}-menu-trigger`,openTestId:s,openFolderTestId:r,supportsSystemOpen:p,canOpenFile:h,canOpenFolder:f,isOpening:g,isOpeningFolder:x,isOpeningAction:O,onOpenDefault:()=>void b(),onOpenFolder:()=>void y(),onViewAllFiles:()=>S("workspace")});if(c&&d==="checking"&&n==="streaming")return l.jsx(_a,{testId:`${i}-loading`,className:fO,icon:l.jsx(kd,{className:"h-5 w-5"}),displayName:o,subtitle:"正在验证文件...",titleClassName:"truncate text-sm font-semibold text-gray-600",subtitleClassName:"mt-1 text-sm leading-4 text-gray-400"});const $=hO(w);return l.jsx(_a,{testId:i,className:`${uO} ${$} ${Q?"cursor-pointer":""}`,onClick:Q?T:void 0,icon:l.jsx(a,{width:24,height:24}),displayName:o,subtitle:A5(u,t),actions:A})}function _a({testId:t,className:e,onClick:n,onKeyDown:i,tabIndex:s,icon:r,displayName:a,subtitle:o,titleClassName:c="truncate text-sm font-semibold text-[#191919]",subtitleClassName:d="mt-1 text-sm leading-4 text-[#808080]",actions:u}){return l.jsxs("div",{"data-testid":t,className:e,onClick:n,onKeyDown:i,tabIndex:i!=null||s!=null?s??0:void 0,children:[l.jsx("div",{className:"flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-xl",children:r}),l.jsxs("div",{className:"min-w-0 flex-1",children:[l.jsx("div",{className:c,title:a,children:a}),l.jsx("div",{className:d,children:o})]}),u?l.jsx("div",{className:"flex flex-shrink-0 items-center self-center",children:u}):null]})}function $r(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}function R5(t){const{rightPanelMode:e,activePptPagesDir:n,cardPagesDir:i,fileBrowserSelectedPath:s}=t;if(!n)return!1;if(e==="pptStudio"){const r=$r(n),a=$r(i);return r===a||r.endsWith(a)||a.endsWith(r)}if(e==="fileBrowser"){if(!s||vo(s)!=="ppt")return!1;const a=$r(n),o=$r(i);return a===o||a.endsWith(o)||o.endsWith(a)}return!1}const _5=({width:t=24,height:e=24,className:n})=>l.jsx("svg",{"aria-hidden":"true",viewBox:"0 0 24 24",width:t,height:e,className:n,fill:"none",xmlns:"http://www.w3.org/2000/svg",children:l.jsx("path",{fillRule:"evenodd",fill:"rgb(128,128,128)",d:"M14.475 0.81C14.25 0.75 13.995 0.75 13.755 0.75L6 0.75C5.715 0.75 5.445 0.765 5.19 0.825C4.965 0.885 4.74 0.945 4.53 1.035C4.32 1.125 4.125 1.23 3.93 1.365C3.72 1.5 3.525 1.665 3.345 1.845C3.165 2.025 3 2.22 2.865 2.43C2.73 2.625 2.625 2.82 2.535 3.03C2.445 3.24 2.385 3.465 2.325 3.69C2.25 3.945 2.25 4.215 2.25 4.5L2.25 19.5C2.25 19.77 2.25 20.04 2.325 20.295C2.385 20.52 2.445 20.745 2.535 20.955C2.625 21.165 2.73 21.36 2.865 21.555C3 21.765 3.165 21.96 3.345 22.14C3.69 22.485 4.08 22.755 4.53 22.95C4.995 23.145 5.49 23.25 6 23.25L18 23.25C18.27 23.25 18.54 23.22 18.795 23.16C19.02 23.1 19.245 23.04 19.455 22.95C19.905 22.755 20.295 22.485 20.64 22.14C20.985 21.795 21.255 21.405 21.45 20.955C21.645 20.49 21.75 19.995 21.75 19.5L21.75 8.73C21.75 8.49 21.72 8.25 21.675 8.01C21.63 7.77 21.555 7.53 21.45 7.305C21.36 7.065 21.24 6.855 21.105 6.645C20.97 6.45 20.82 6.255 20.64 6.09L16.395 1.845C16.05 1.485 15.645 1.215 15.18 1.035C14.955 0.929998 14.715 0.854998 14.475 0.809998L14.475 0.81ZM6 2.25L13.905 2.25C13.995 2.25 14.16 2.265 14.265 2.295L14.265 6C14.265 6.15 14.28 6.315 14.31 6.465C14.34 6.6 14.385 6.735 14.43 6.87C14.49 7.005 14.55 7.125 14.625 7.23C14.715 7.365 14.805 7.47 14.91 7.59C15.03 7.695 15.135 7.785 15.27 7.875C15.375 7.95 15.51 8.01 15.63 8.07C15.915 8.19 16.2 8.25 16.515 8.25L20.205 8.295C20.235 8.445 20.25 8.58 20.25 8.73L20.25 19.5C20.25 19.665 20.22 19.83 20.19 20.01C20.16 20.13 20.115 20.25 20.07 20.37C19.95 20.64 19.785 20.88 19.59 21.09C19.38 21.285 19.14 21.45 18.87 21.57C18.585 21.69 18.3 21.75 18 21.75L6 21.75C5.82 21.75 5.655 21.72 5.475 21.69C5.355 21.66 5.235 21.615 5.115 21.57C4.995 21.51 4.875 21.45 4.77 21.375C4.635 21.3 4.515 21.195 4.395 21.09C4.2 20.88 4.035 20.64 3.915 20.37C3.795 20.085 3.75 19.8 3.75 19.5L3.75 4.5C3.75 4.32 3.75 4.155 3.795 3.975C3.825 3.855 3.87 3.735 3.915 3.615C3.975 3.495 4.035 3.375 4.11 3.27C4.185 3.135 4.29 3.015 4.395 2.895C4.515 2.79 4.635 2.685 4.77 2.61C4.875 2.535 4.995 2.475 5.115 2.415C5.235 2.37 5.355 2.325 5.475 2.295C5.655 2.25 5.82 2.25 6 2.25L6 2.25ZM15.75 6L15.75 3.3L19.14 6.69L16.5 6.75C16.395 6.75 16.29 6.72 16.2 6.69C16.11 6.645 16.035 6.6 15.96 6.525C15.885 6.45 15.84 6.375 15.795 6.285C15.765 6.195 15.75 6.09 15.75 6L15.75 6ZM17.25 11.25C17.25 10.83 16.92 10.5 16.5 10.5L7.5 10.5C7.08 10.5 6.75 10.83 6.75 11.25C6.75 11.67 7.08 12 7.5 12L16.5 12C16.92 12 17.25 11.67 17.25 11.25ZM17.25 14.25C17.25 13.83 16.92 13.5 16.5 13.5L7.5 13.5C7.08 13.5 6.75 13.83 6.75 14.25C6.75 14.67 7.08 15 7.5 15L16.5 15C16.92 15 17.25 14.67 17.25 14.25ZM12.75 16.5C13.17 16.5 13.5 16.83 13.5 17.25C13.5 17.67 13.17 18 12.75 18L7.5 18C7.08 18 6.75 17.67 6.75 17.25C6.75 16.83 7.08 16.5 7.5 16.5L12.75 16.5Z"})}),M5=({width:t=24,height:e=24,className:n})=>l.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/2000/svg",width:t,height:e,fill:"none",className:n,children:[l.jsx("rect",{id:"ppt",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"矩形",width:"40.000000",height:"40.000000",x:"0.000000",y:"0.000000"}),l.jsxs("g",{id:"ic_normal_white_grid_pptx",children:[l.jsxs("g",{id:"编组-236",children:[l.jsx("path",{id:"矩形备份-24",d:"M25.8325 3.33496L34.5825 12.085L27.7373 12.085C26.6853 12.085 25.8325 11.2322 25.8325 10.1802L25.8325 3.33496L25.8325 3.33496Z",fill:"rgb(254,201,176)",fillRule:"evenodd"}),l.jsx("path",{id:"矩形备份-23",d:"M25.9558 3.33496L25.9409 10.176C25.9386 11.228 26.7895 12.0827 27.8415 12.085L34.6867 12.085L34.6867 33.335C34.6867 35.1759 33.1943 36.6683 31.3534 36.6683L8.85335 36.6683C7.0124 36.6683 5.52002 35.1759 5.52002 33.335L5.52002 6.66829C5.52002 4.82735 7.0124 3.33496 8.85335 3.33496L25.9558 3.33496L25.9558 3.33496Z",fill:"rgb(255,119,55)",fillRule:"evenodd"})]}),l.jsxs("g",{id:"编组-2",children:[l.jsx("path",{id:"路径-7",d:"M20.5487 18.5439L16.7193 18.5439C16.4596 18.5439 16.249 18.7545 16.249 19.0143L16.249 29.8838",fillRule:"evenodd",stroke:"rgb(255,255,255)",strokeLinecap:"round",strokeWidth:"1.91840291"}),l.jsx("path",{id:"路径",d:"M16.96 24.9265L20.5947 24.9265C22.348 24.9265 23.7693 23.5051 23.7693 21.7518C23.7693 19.9985 22.348 18.5439 20.5947 18.5439",fillRule:"evenodd",stroke:"rgb(255,255,255)",strokeLinecap:"round",strokeWidth:"1.91840291"})]})]})]});function E5(t){return t==="streaming"?{streaming:!0,stalledMessage:"",stalledTone:""}:t==="failed"?{streaming:!1,stalledMessage:"生成失败,未收到成品文件。",stalledTone:"text-red-700"}:{streaming:!1,stalledMessage:"任务已结束,但未收到可下载的演示文稿(可能未推送文件或连接中断)。若仍需要,请重新发起生成。",stalledTone:"text-gray-600"}}function I5({displayName:t,status:e,interactiveBaseClass:n,onOpenPreview:i,onContainerKey:s}){const{streaming:r,stalledMessage:a,stalledTone:o}=E5(e);return l.jsxs("div",{"data-testid":"cli-output-ppt-card",role:"button",tabIndex:0,onClick:i,onKeyDown:s,className:`cli-output-doc-card ${n}`,children:[l.jsx("div",{className:"flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-xl",title:"文件",children:l.jsx(_5,{width:24,height:24})}),l.jsx("div",{className:"min-w-0 flex-1",children:r?l.jsx("div",{className:"text-sm text-[#191919]",children:"正在生成中..."}):l.jsxs(l.Fragment,{children:[l.jsx("div",{className:"truncate text-sm font-semibold text-[#191919]",title:t,children:t}),l.jsx("div",{className:`mt-1 text-sm leading-snug ${o}`,children:a})]})})]})}function L5({pagesDir:t,projectPath:e,status:n,linkedPptFile:i}){const s=E(X=>X.pptStudioSessions[t]),r=E(X=>X.openFileBrowserPanelWithFile),a=E(X=>X.openFileBrowserPanel),o=E(X=>R5({rightPanelMode:X.rightPanelMode,activePptPagesDir:X.activePptPagesDir,cardPagesDir:t,fileBrowserSelectedPath:X.fileBrowserSelectedPath})),[c,d]=m.useState(!1),[u,h]=m.useState(!1),[f,p]=m.useState(null),[O,g]=m.useState("checking"),x=m.useRef(null),[b,y]=m.useState(null),S=i==null?void 0:i.path,P=m.useMemo(()=>{var X;return i?i.name.trim()||xd(i.path)||"未命名文件":(X=s==null?void 0:s.deckTitle)!=null&&X.trim()?`${s.deckTitle.replace(/\.pptx?$/i,"")}.pptx`:(()=>{const ne=t.split("/");return`${ne[ne.length-2]||"幻灯片"}.pptx`})()},[i,t,s==null?void 0:s.deckTitle]),w=m.useMemo(()=>S?I0(S,e,b):null,[b,S,e]),C=m.useMemo(()=>w?L0(w):null,[w]),Q=m.useMemo(()=>S?X0(S):!1,[S]),T=m.useMemo(()=>Q?null:e&&e!=="default"?e:b,[b,Q,e]),A=!Q&&(!e||e==="default"),$=!!w&&(!A||!!T),N=!!C&&(!A||!!T),R=Ut(X=>X.addToast),z=!!(w&&Z0(w)),I=c||u;m.useEffect(()=>{let X=!1;async function ne(){if(S&&!Q&&!(e&&e!=="default"))try{const ue=await G("/api/projects/cwd");if(!ue.ok){X||g("error");return}const je=await ue.json();!X&&typeof je.path=="string"&&je.path.trim()?y(je.path.trim()):X||g("error")}catch{X||(y(null),g("error"))}}return ne(),()=>{X=!0}},[Q,S,e]),m.useEffect(()=>{if(!S||!w){p(null);return}let X=!1;g("checking");async function ne(){if(w&&!(A&&!T))try{const ue=await G("/api/projects/local-file-meta",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:w,...T?{projectPath:T}:{}})});if(!ue.ok){X||(n==="streaming"&&(x.current=setTimeout(ne,1e3)),g(ue.status===404?"not-found":"error"));return}const je=await ue.json();!X&&typeof je.generatedAt=="number"&&(p(je.generatedAt),g("exists"))}catch{X||(p(null),g("error"),n==="streaming"&&(x.current=setTimeout(ne,1e3)))}}return ne(),()=>{x.current&&(clearTimeout(x.current),x.current=null),X=!0}},[T,S,A,w,n]);const B=()=>{w?r(w):a()};async function M(){if(!(c||!w||!$||!z)){d(!0);try{const X=await G("/api/projects/open-local",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:w,...T?{projectPath:T}:{}})});if(!X.ok){const ne=await X.json().catch(()=>null),ue=typeof(ne==null?void 0:ne.error)=="string"&&ne.error.trim()?ne.error.trim():"无法在系统中打开该文件";R({type:"error",title:"打开失败",message:ue,duration:4e3})}}finally{d(!1)}}}async function L(){if(!(u||!C||!N)){h(!0);try{const X=await G("/api/projects/open-local-folder",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:C,...T?{projectPath:T}:{}})});if(!X.ok){const ne=await X.json().catch(()=>null),ue=typeof(ne==null?void 0:ne.error)=="string"&&ne.error.trim()?ne.error.trim():"无法在文件管理器中打开该文件夹";R({type:"error",title:"打开文件夹失败",message:ue,duration:4e3})}}finally{h(!1)}}}const F=X=>{(X.key==="Enter"||X.key===" ")&&(X.preventDefault(),B())},de=`${uO} ${hO(o)} cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-blue-200`;if(i&&w&&O==="checking"&&n==="streaming")return l.jsx(_a,{testId:"cli-output-ppt-card-loading",className:`${fO} cursor-pointer outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-blue-200`,onClick:B,onKeyDown:F,tabIndex:0,icon:l.jsx(kd,{className:"h-5 w-5"}),displayName:P,subtitle:"正在验证文件...",titleClassName:"truncate text-sm font-semibold text-gray-600",subtitleClassName:"mt-1 text-sm leading-4 text-gray-400"});if(!!!i)return l.jsx(I5,{displayName:P,status:n,interactiveBaseClass:de,onOpenPreview:B,onContainerKey:F});const ae=P,J=D0(f??(i==null?void 0:i.fallbackGeneratedAt)??null);return l.jsx(_a,{testId:"cli-output-ppt-card",className:de,onClick:B,onKeyDown:F,tabIndex:0,icon:l.jsx(M5,{width:24,height:24}),displayName:ae,subtitle:J,actions:i?l.jsx(dO,{menuTriggerTestId:"cli-output-ppt-card-menu-trigger",openTestId:"cli-output-ppt-open",openFolderTestId:"cli-output-ppt-open-folder",supportsSystemOpen:z,canOpenFile:$,canOpenFolder:N,isOpening:c,isOpeningFolder:u,isOpeningAction:I,onOpenDefault:()=>void M(),onOpenFolder:()=>void L(),onViewAllFiles:()=>a("workspace")}):void 0})}function el(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}function X5({events:t,status:e,currentThreadId:n,workspaceWorktreeId:i}){const[s,r]=m.useState(null),a=m.useMemo(()=>r2(t),[t]),o=m.useMemo(()=>a2(t),[t]),c=a.length>0||o.length>0,d=m.useMemo(()=>a.map(f=>{const p=f.htmlFiles.map(O=>`${O.filePath}-${O.pageNumber}-${O.lastTouchedAt}`).join(",");return`${f.pagesDir}:${p}`}).join("|"),[a]),u=m.useMemo(()=>o.map(f=>`${f.pagesDir}:${f.expectedSlideCount??""}`).join("|"),[o]),h=E(f=>f.threads);return m.useEffect(()=>{let f=!1;const p=h.find(g=>g.id===n);if(!p||p.projectPath&&p.projectPath!=="default"){r(null);return}if(!c)return;async function O(){try{const g=await G("/api/projects/cwd");if(!g.ok)return;const x=await g.json();!f&&typeof x.path=="string"&&x.path.trim()&&r(x.path.trim())}catch{f||r(null)}}return O(),()=>{f=!0}},[n,c,h]),m.useEffect(()=>{if(!c)return;const f=E.getState(),p=h.find(g=>g.id===n),O=p!=null&&p.projectPath&&p.projectPath!=="default"?p.projectPath:s;if(O){for(const{pagesDir:g,htmlFiles:x}of a){const b=el(g);let y=f.pptStudioSessions[g],S=g;if(!y){const A=Object.entries(f.pptStudioSessions).find(([$])=>{const N=el($);return N.endsWith(b)||b.endsWith(N)});A&&(S=A[0],y=A[1])}const P=x.length>0?Math.max(...x.map(A=>A.pageNumber)):0,w=o.find(A=>el(A.pagesDir)===b),C=w==null?void 0:w.expectedSlideCount,Q=C!=null&&C>0&&!Number.isNaN(C)?Math.max(C,P):Math.max((y==null?void 0:y.expectedSlideCount)??0,P),T=x.map(({filePath:A,pageNumber:$,lastTouchedAt:N})=>({slideId:`slide-${$}`,pageNumber:$,htmlPath:A,title:null,blockCount:null,updatedAt:N,url:null,sha256:null}));f.upsertPptStudioSlides(n,{projectRoot:O,pagesDir:S,deckTitle:(y==null?void 0:y.deckTitle)??"",expectedSlideCount:Q,status:(y==null?void 0:y.status)??"generating",slides:T},{source:e==="streaming"?"live":"recovery"})}for(const{pagesDir:g,expectedSlideCount:x}of o)f.pptStudioSessions[g]||f.upsertPptStudioSlides(n,{projectRoot:O,pagesDir:g,deckTitle:"",...x!==void 0?{expectedSlideCount:x}:{},status:"generating",slides:[]},{source:e==="streaming"?"live":"recovery"})}},[n,s,c,d,u,e,h]),[...a.map(f=>({pagesDir:f.pagesDir})),...o.map(f=>({pagesDir:f.pagesDir}))]}function pO({events:t,status:e,suppressedGeneratedFileNames:n,projectPath:i}){const s=E(p=>p.currentThreadId),r=E(p=>p.workspaceWorktreeId),a=m.useMemo(()=>{const p=new Set((n??[]).map(O=>O.toLowerCase()));return So(t).filter(O=>!p.has(O.name.toLowerCase()))},[t,n]),o=X5({events:t,status:e,currentThreadId:s,workspaceWorktreeId:r}),c=m.useMemo(()=>{var p;return o.length>0?((p=o[o.length-1])==null?void 0:p.pagesDir)??null:null},[o]),d=E(p=>c?Yu(p.pptStudioSessions,c):null),u=E(p=>{var g;if(!c)return;const O=Yu(p.pptStudioSessions,c);return(g=p.pptStudioSessions[O])==null?void 0:g.deckTitle}),h=m.useMemo(()=>c?q0(a,c,u):void 0,[a,c,u]),f=m.useMemo(()=>h?a.filter(p=>p.path!==h.path):a,[h,a]);return f.length===0&&!(c&&d!=null)?null:l.jsxs("div",{className:"cli-output-attachments mt-2 space-y-2","data-testid":"cli-output-attachments",children:[f.map(p=>l.jsx(N5,{file:p,projectPath:i,status:e},`${p.kind}:${p.path}`)),c&&d!=null?l.jsx(L5,{pagesDir:d,projectPath:i,status:e,linkedPptFile:h}):null]})}function Z5({status:t,defaultExpanded:e,hasPendingAuthorization:n,persistExpandKey:i}){const s=typeof window<"u"&&new URLSearchParams(window.location.search).get("export")==="true",r=t==="streaming"||s||n,[a,o]=m.useState(()=>{if(i&&!r){const f=_n(i);if(f!==void 0)return f}return r||e}),c=m.useRef(!!(i&&_n(i)!==void 0&&!r)),d=m.useRef(!1);m.useLayoutEffect(()=>{if(!i||r)return;const f=_n(i);f!==void 0&&(c.current=!0,o(f))},[i,r]);const u=m.useRef(t);return m.useEffect(()=>{u.current==="streaming"&&t!=="streaming"&&!c.current&&!n&&o(!1),u.current=t},[n,t]),m.useEffect(()=>{r&&o(!0)},[r]),m.useLayoutEffect(()=>{if(!d.current){d.current=!0;return}typeof window<"u"&&window.dispatchEvent(new Event("office-claw:chat-layout-changed"))},[a]),{expanded:a,userInteracted:c,handleToggle:()=>{c.current=!0,o(f=>{const p=!f;return i&&Bs(i,p),p})}}}function OO({events:t,status:e,message:n,threadId:i,toolRowPersistScope:s,suppressedGeneratedFileNames:r,thinkingMode:a,defaultExpanded:o=!1,breedColor:c,projectPath:d,authorizationRequests:u,onAuthorizationRespond:h,onOpenSecurityManagement:f,flatToolsDisplay:p=!1,persistExpandKey:O,extraToolResults:g}){var M;const x=((u==null?void 0:u.length)??0)>0,b=O??(!p&&i&&(n!=null&&n.id)?zs(i,n.id,"cli-outer"):void 0),{expanded:y,userInteracted:S,handleToggle:P}=Z5({status:e,defaultExpanded:o,hasPendingAuthorization:x,persistExpandKey:b}),w=p?!0:y,C=s??(i&&(n!=null&&n.id)?{threadId:i,messageId:n.id}:void 0);if(t.length===0)return null;const Q=S2(t,e),T=t.filter(L=>L.kind==="tool_use"),A=t.filter(L=>L.kind==="tool_result"),$=t.filter(L=>L.kind==="text"),N=e==="streaming"?(M=[...t].reverse().find(L=>L.kind==="tool_use"))==null?void 0:M.id:void 0,R=c||"#7C3AED",z=$.map(L=>L.content).join(`
|
|
7
|
+
`),I=!p||z.trim().length>0,B=e==="interrupted"&&z.trim().length>0&&!z.trimEnd().endsWith("(用户停止)")?`${z.trimEnd()} (用户停止)`:z;return l.jsxs("div",{className:"cli-output-container overflow-hidden",children:[T.length>0&&!p&&l.jsx(O5,{summary:Q,status:e,expanded:w,thinkingMode:a,onToggle:P}),w&&l.jsxs("div",{"data-testid":"cli-output-body",children:[T.length>0&&l.jsx(x5,{toolUses:T,toolResults:A,extraToolResults:g,lastToolId:N,status:e,toolRowPersistScope:C,onUserInteract:()=>{S.current=!0},accent:R}),u&&u.length>0&&h&&l.jsx("div",{"data-testid":"cli-output-authorization",className:"space-y-3 pt-3",children:u.map(L=>l.jsx(o5,{request:L,onRespond:h,onOpenSecurityManagement:f},L.requestId))}),$.length>0&&T.length>0&&l.jsx("div",{style:{padding:"8px 12px 4px 12px",fontFamily:"JetBrains Mono, monospace",fontSize:10,color:"#475569",display:"none"},children:"─── stdout ───"})]}),(T.length>0||(n==null?void 0:n.thinking))&&!p&&l.jsx("div",{className:"h-0 border-t-[1px] border-[#F0F0F0] my-3"}),p&&T.length>0&&z.trim().length>0&&l.jsx("div",{className:"h-0 border-t-[1px] border-[#F0F0F0] my-2"}),I?l.jsx("div",{className:"cli-output-md pb-2 text-base leading-relaxed","data-testid":"cli-output-markdown",children:l.jsx("div",{children:l.jsx(St,{content:B})})}):null,p?null:l.jsx(pO,{events:t,status:e,suppressedGeneratedFileNames:r,projectPath:d})]})}const D5={opus:{bg:"bg-[var(--color-opus-bg)]",bar:"bg-[var(--color-opus-primary)]"},codex:{bg:"bg-[var(--color-codex-bg)]",bar:"bg-[var(--color-codex-primary)]"},gemini:{bg:"bg-[var(--color-gemini-bg)]",bar:"bg-[var(--color-gemini-primary)]"}},q5={bg:"bg-gray-100 dark:bg-gray-800",bar:"bg-gray-400"};function W5({block:t,agentId:e}){const n=m.useRef(null),i=m.useRef(null),[s,r]=m.useState(!1),[a,o]=m.useState(0),[c,d]=m.useState(t.durationSec??0),[u,h]=m.useState(null),f=!!t.text;m.useEffect(()=>{if(!t.url||!t.url.startsWith("/api/")){t.url&&h(t.url);return}let g=!1;return G(t.url).then(x=>x.ok?x.blob():null).then(x=>{if(!g&&x){const b=URL.createObjectURL(x);i.current=b,h(b)}}).catch(()=>{}),()=>{g=!0,i.current&&(URL.revokeObjectURL(i.current),i.current=null)}},[t.url]),m.useEffect(()=>{const g=n.current;if(!g)return;const x=()=>r(!0),b=()=>r(!1),y=()=>{r(!1),o(0)},S=()=>{g.duration>0&&o(g.currentTime/g.duration)},P=()=>{g.duration>0&&g.duration<1/0&&d(g.duration)};return g.addEventListener("play",x),g.addEventListener("pause",b),g.addEventListener("ended",y),g.addEventListener("timeupdate",S),g.addEventListener("loadedmetadata",P),()=>{g.removeEventListener("play",x),g.removeEventListener("pause",b),g.removeEventListener("ended",y),g.removeEventListener("timeupdate",S),g.removeEventListener("loadedmetadata",P)}},[]);const p=()=>{const g=n.current;g&&(s?g.pause():g.play())},O=g=>{if(g<=0)return"";if(g<60)return`${Math.round(g)}"`;const x=Math.floor(g/60),b=Math.round(g%60);return`${x}:${b.toString().padStart(2,"0")}`};if(f){const g=(e?D5[e]:void 0)??q5,x=c>0?Math.min(200,Math.max(80,80+c*12)):120;return l.jsxs("div",{className:"space-y-0.5",children:[l.jsxs("button",{onClick:p,className:`flex items-center gap-2 rounded-2xl px-3 py-1.5 transition-colors cursor-pointer ${g.bg} hover:opacity-80`,style:{width:`${x}px`},title:s?"暂停语音":"播放语音","aria-label":s?"暂停语音":"播放语音",children:[l.jsx("span",{className:"flex-shrink-0",children:s?l.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"opacity-70",children:[l.jsx("path",{d:"M11 5L6 9H2v6h4l5 4V5z"}),l.jsx("path",{d:"M15.54 8.46a5 5 0 0 1 0 7.07"}),l.jsx("path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14",className:"animate-pulse"})]}):l.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"opacity-50",children:[l.jsx("path",{d:"M11 5L6 9H2v6h4l5 4V5z"}),l.jsx("path",{d:"M15.54 8.46a5 5 0 0 1 0 7.07"})]})}),l.jsx("div",{className:"flex-1 flex items-center gap-[3px]",children:Array.from({length:6}).map((b,y)=>l.jsx("div",{className:`rounded-full transition-all duration-150 ${s&&a>y/6?`h-3 ${g.bar}`:`h-1.5 ${g.bar} opacity-30`}`,style:{width:"3px"}},y))}),c>0&&l.jsx("span",{className:"text-[11px] text-gray-500 dark:text-gray-400 flex-shrink-0 tabular-nums",children:O(c)})]}),l.jsx("div",{className:"text-[11px] text-gray-400 dark:text-gray-500 pl-1 max-w-[420px] whitespace-pre-wrap break-words leading-relaxed",children:t.text}),u&&l.jsx("audio",{ref:n,src:u,preload:"metadata"})]})}return l.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900/40 px-3 py-2",children:[l.jsx("button",{onClick:p,className:"flex-shrink-0 w-8 h-8 rounded-full bg-blue-500 hover:bg-blue-600 text-white flex items-center justify-center transition-colors",title:s?"暂停":"播放","aria-label":s?"Pause":"Play",children:s?l.jsxs("svg",{width:"12",height:"14",viewBox:"0 0 12 14",fill:"currentColor",children:[l.jsx("rect",{x:"1",y:"0",width:"3",height:"14",rx:"1"}),l.jsx("rect",{x:"8",y:"0",width:"3",height:"14",rx:"1"})]}):l.jsx("svg",{width:"12",height:"14",viewBox:"0 0 12 14",fill:"currentColor",children:l.jsx("path",{d:"M0 0L12 7L0 14V0Z"})})}),l.jsxs("div",{className:"flex-1 min-w-0",children:[t.title&&l.jsx("div",{className:"text-xs font-medium text-gray-700 dark:text-gray-300 truncate",children:t.title}),l.jsx("div",{className:"mt-1 h-1 bg-gray-200 dark:bg-gray-700 rounded-full overflow-hidden",children:l.jsx("div",{className:"h-full bg-blue-400 rounded-full transition-[width] duration-200",style:{width:`${a*100}%`}})})]}),c>0&&l.jsx("span",{className:"text-[10px] text-gray-400 flex-shrink-0 tabular-nums",children:O(c)}),u&&l.jsx("audio",{ref:n,src:u,preload:"none"})]})}const ih={info:"border-l-blue-400 bg-blue-50 dark:bg-blue-950/30",success:"border-l-green-400 bg-green-50 dark:bg-green-950/30",warning:"border-l-yellow-400 bg-yellow-50 dark:bg-yellow-950/30",danger:"border-l-red-400 bg-red-50 dark:bg-red-950/30"};function z5({block:t,messageId:e}){const n=ih[t.tone??"info"]??ih.info,[i,s]=m.useState(!1),[r,a]=m.useState(null),o=m.useCallback(async(c,d)=>{if(!(c!=="tts-resynthesize"||!e||!d)){s(!0),a(null);try{const u=await G("/api/tts/resynthesize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:d.text,agentId:d.agentId})});if(!u.ok){const f=await u.json().catch(()=>({}));throw new Error(f.error??`HTTP ${u.status}`)}const h=await u.json();E.getState().updateRichBlock(e,t.id,{kind:"audio",title:void 0,bodyMarkdown:void 0,tone:void 0,fields:void 0,actions:void 0,url:h.audioUrl,text:d.text,durationSec:h.durationSec,mimeType:"audio/wav"})}catch(u){a(u instanceof Error?u.message:"重新合成失败")}finally{s(!1)}}},[e,t.id]);return l.jsxs("div",{className:`border-l-4 rounded-r-lg p-3 ${n}`,children:[l.jsx("div",{className:"font-medium text-sm",children:t.title}),t.bodyMarkdown&&l.jsx("div",{className:"mt-1 text-xs text-gray-600 dark:text-gray-300 [&_.markdown-content]:text-xs [&_p]:mb-1 [&_p:last-child]:mb-0",children:l.jsx(St,{content:t.bodyMarkdown,className:"!text-xs",disableCommandPrefix:!0})}),t.fields&&t.fields.length>0&&l.jsx("div",{className:"mt-2 grid grid-cols-1 sm:grid-cols-2 gap-1",children:t.fields.map((c,d)=>l.jsxs("div",{className:"text-xs",children:[l.jsxs("span",{className:"text-gray-500",children:[c.label,":"]})," ",l.jsx("span",{className:"font-mono break-all",children:c.value})]},d))}),t.actions&&t.actions.length>0&&l.jsx("div",{className:"mt-2 flex gap-2",children:t.actions.map((c,d)=>l.jsx("button",{type:"button",disabled:i,onClick:()=>o(c.action,c.payload),className:"text-xs px-2 py-1 rounded bg-yellow-100 dark:bg-yellow-900/40 hover:bg-yellow-200 dark:hover:bg-yellow-800/50 text-yellow-800 dark:text-yellow-200 border border-yellow-300 dark:border-yellow-700 disabled:opacity-50 transition-colors",children:i?"合成中...":c.label},d))}),r&&l.jsx("div",{className:"mt-1 text-xs text-red-500",children:r})]})}function B5({block:t}){const e=Array.isArray(t.items)?t.items:[];return l.jsxs("div",{className:"rounded-lg border border-gray-200 dark:border-gray-700 p-3",children:[t.title&&l.jsx("div",{className:"font-medium text-sm mb-2",children:t.title}),l.jsx("ul",{className:"space-y-1",children:e.map(n=>l.jsxs("li",{className:"flex items-start gap-2 text-sm",children:[l.jsx("span",{className:"mt-0.5 text-base leading-none",children:n.checked?"☑":"☐"}),l.jsx("span",{className:n.checked?"line-through text-gray-400":"",children:n.text})]},n.id))})]})}function V5(t){if(!t.trim())return[];const e=[],n=t.split(`
|
|
8
|
+
`);let i=null,s=null,r=0,a=0;for(const o of n){const c=o.match(/^diff --git a\/(.+?) b\/(.+)$/);if(c){i={path:c[2],hunks:[]},e.push(i),s=null;continue}if(o.startsWith("+++ b/")&&i){i.path=o.slice(6);continue}if(o.startsWith("--- ")||o.startsWith("+++ ")||o.startsWith("index ")||o.startsWith("new file")||o.startsWith("deleted file"))continue;const d=o.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@(.*)/);if(d&&i){r=parseInt(d[1],10),a=parseInt(d[2],10),s={header:o,lines:[]},i.hunks.push(s),s.lines.push({type:"header",content:d[3]||"",oldLine:null,newLine:null});continue}s&&(o.startsWith("+")?s.lines.push({type:"add",content:o.slice(1),oldLine:null,newLine:a++}):o.startsWith("-")?s.lines.push({type:"remove",content:o.slice(1),oldLine:r++,newLine:null}):(o.startsWith(" ")||o==="")&&s.lines.push({type:"context",content:o.slice(1),oldLine:r++,newLine:a++}))}return e}function F5(t){const e=[];let n=0;for(;n<t.length;){const i=t[n];if(i.type==="header"){e.push({left:i,right:i}),n++;continue}if(i.type==="context"){e.push({left:i,right:i}),n++;continue}const s=[],r=[];for(;n<t.length&&t[n].type==="remove";)s.push(t[n++]);for(;n<t.length&&t[n].type==="add";)r.push(t[n++]);const a=Math.max(s.length,r.length);for(let o=0;o<a;o++)e.push({left:s[o]??null,right:r[o]??null})}return e}const hc={add:"bg-green-900/30 text-green-300",remove:"bg-red-900/30 text-red-300",context:"text-gray-400",header:"bg-blue-900/20 text-blue-400 italic"},Ma={add:"bg-green-900/40 text-green-500",remove:"bg-red-900/40 text-red-500",context:"text-gray-600",header:"bg-blue-900/20 text-blue-500"},U5={add:"+",remove:"-",context:" ",header:""};function Y5({hunks:t}){return l.jsx("table",{className:"w-full text-[11px] font-mono border-collapse",children:l.jsx("tbody",{children:t.map((e,n)=>e.lines.map((i,s)=>l.jsxs("tr",{className:hc[i.type],children:[l.jsx("td",{className:`w-10 text-right px-1.5 select-none border-r border-gray-700/50 ${Ma[i.type]}`,children:i.oldLine??""}),l.jsx("td",{className:`w-10 text-right px-1.5 select-none border-r border-gray-700/50 ${Ma[i.type]}`,children:i.newLine??""}),l.jsxs("td",{className:"px-2 whitespace-pre overflow-x-auto",children:[l.jsx("span",{className:"select-none text-gray-600 mr-1",children:U5[i.type]}),i.content]})]},`${n}-${s}`)))})})}function G5({hunks:t}){const e=m.useMemo(()=>t.flatMap(n=>F5(n.lines)),[t]);return l.jsx("table",{className:"w-full text-[11px] font-mono border-collapse",children:l.jsx("tbody",{children:e.map((n,i)=>{var s,r,a,o;return l.jsxs("tr",{children:[l.jsx("td",{className:`w-8 text-right px-1 select-none border-r border-gray-700/50 ${n.left?Ma[n.left.type]:"bg-gray-900/50"}`,children:((s=n.left)==null?void 0:s.oldLine)??""}),l.jsx("td",{className:`w-1/2 px-2 whitespace-pre overflow-x-auto ${n.left?hc[n.left.type]:"bg-gray-900/50"}`,children:((r=n.left)==null?void 0:r.content)??""}),l.jsx("td",{className:`w-8 text-right px-1 select-none border-l border-r border-gray-700/50 ${n.right?Ma[n.right.type]:"bg-gray-900/50"}`,children:((a=n.right)==null?void 0:a.newLine)??""}),l.jsx("td",{className:`w-1/2 px-2 whitespace-pre overflow-x-auto ${n.right?hc[n.right.type]:"bg-gray-900/50"}`,children:((o=n.right)==null?void 0:o.content)??""})]},i)})})})}function H5({diff:t,filePath:e,compact:n}){const[i,s]=m.useState("unified"),r=m.useMemo(()=>V5(t),[t]),a=e?r.filter(o=>o.path===e):r;return a.length===0?l.jsx("div",{className:"p-4 text-center text-gray-500 text-xs",children:t.trim()?"No parseable diff hunks found":"No changes"}):l.jsxs("div",{className:"flex flex-col gap-2",children:[!n&&l.jsxs("div",{className:"flex items-center gap-1 px-2 py-1",children:[l.jsx("button",{type:"button",onClick:()=>s("unified"),className:`px-2 py-0.5 rounded text-[10px] font-medium transition-colors ${i==="unified"?"bg-cocreator-primary/80 text-white":"text-gray-500 hover:text-gray-300 hover:bg-white/10"}`,children:"Unified"}),l.jsx("button",{type:"button",onClick:()=>s("split"),className:`px-2 py-0.5 rounded text-[10px] font-medium transition-colors ${i==="split"?"bg-cocreator-primary/80 text-white":"text-gray-500 hover:text-gray-300 hover:bg-white/10"}`,children:"Side-by-side"}),l.jsxs("span",{className:"ml-auto text-[10px] text-gray-500",children:[a.length," file",a.length!==1?"s":""," changed"]})]}),a.map(o=>l.jsxs("div",{className:"rounded border border-gray-700/50 overflow-hidden",children:[!n&&l.jsx("div",{className:"bg-[#1E1E24] px-3 py-1.5 text-[11px] font-mono text-gray-300 border-b border-gray-700/50 truncate",children:o.path}),l.jsx("div",{className:"overflow-x-auto bg-[#16161c]",children:i==="unified"?l.jsx(Y5,{hunks:o.hunks}):l.jsx(G5,{hunks:o.hunks})})]},o.path))]})}function K5({block:t}){return l.jsxs("div",{className:"rounded-lg border border-gray-700/50 overflow-hidden",children:[l.jsx("div",{className:"bg-[#1E1E24] px-3 py-1.5 text-[11px] font-mono text-gray-300 border-b border-gray-700/50 truncate",children:t.filePath}),l.jsx(H5,{diff:t.diff,compact:!0})]})}const J5={pdf:"📄",doc:"📝",docx:"📝",xls:"📊",xlsx:"📊",xlsm:"📊",xlsb:"📊",ppt:"📎",pptx:"📎",md:"📋",txt:"📋"};function eb(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function tb(t){return/^\/uploads\//.test(t)||/^https:\/\//.test(t)}function nb(t){if(t.worktreeId&&t.workspacePath)return t.workspacePath;if(!t.url.startsWith("/api/workspace/download?"))return null;const e=t.url.split("?")[1];return e?new URLSearchParams(e).get("path"):null}function ib({block:t}){var o;const e=((o=t.fileName.split(".").pop())==null?void 0:o.toLowerCase())??"",n=J5[e]??"📎",i=tb(t.url)?t.url:void 0,s=m.useMemo(()=>nb(t),[t]),r=s!=null,a=r?"历史 workspace 文件,能力已下线":t.fileSize!=null?eb(t.fileSize):t.mimeType??"附件";return l.jsxs("div",{className:"flex items-center gap-3 rounded-2xl border border-[#E9E5DF] bg-[#FBF9F6] px-4 py-3 shadow-[0_1px_2px_rgba(15,23,42,0.03)]",children:[l.jsx("div",{className:"flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-xl bg-[#FFF1E8] text-lg text-[#C96A22]",children:n}),l.jsxs("div",{className:"min-w-0 flex-1",children:[l.jsx("div",{className:"truncate text-sm font-semibold text-[#1F2937]",children:t.fileName}),l.jsx("div",{className:"text-xs text-[#8C8C8C]",children:a}),s?l.jsxs("div",{className:"mt-1 break-all text-[11px] text-[#A3A3A3]",children:["位置: ",s]}):null]}),r?l.jsx("span",{className:"inline-flex flex-shrink-0 items-center rounded-full border border-[#E5D7C9] bg-[#F5EEE8] px-4 py-1.5 text-xs font-medium text-[#8C6B55]",children:"已下线"}):l.jsx("a",{href:i,download:i?t.fileName:void 0,className:"inline-flex flex-shrink-0 items-center rounded-full border border-[#D2CDC4] bg-white px-4 py-1.5 text-xs font-medium text-[#3F3B37] transition-colors hover:bg-[#F4F1EC]",children:"下载"})]})}function sb({block:t}){const e=t.height??300;return l.jsxs("div",{className:"rounded-lg border border-gray-200 dark:border-gray-700 overflow-hidden",children:[t.title&&l.jsx("div",{className:"px-3 py-1.5 text-xs font-medium text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700",children:t.title}),l.jsx("iframe",{srcDoc:t.html,sandbox:"allow-scripts",title:t.title??"Interactive Widget",style:{width:"100%",height:`${e}px`,border:"none"},referrerPolicy:"no-referrer"})]})}const rb={sparkle:"M12 2l2.4 7.2L22 12l-7.6 2.8L12 22l-2.4-7.2L2 12l7.6-2.8Z",idea:"M12 2a7 7 0 015 11.9V16a2 2 0 01-2 2h-6a2 2 0 01-2-2v-2.1A7 7 0 0112 2zm-2 18h4m-2 0v2",wand:"M15 4l5 5-11 11H4v-5L15 4zm-2.5 2.5l5 5",chat:"M21 11.5a8.38 8.38 0 01-.9 3.8 8.5 8.5 0 01-7.6 4.7 8.38 8.38 0 01-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 01-.9-3.8 8.5 8.5 0 014.7-7.6 8.38 8.38 0 013.8-.9h.5a8.48 8.48 0 018 8v.5z",send:"M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z",game:"M6 11h4m-2-2v4m5-1h.01M15 8h.01M21 15a2 2 0 01-2 2H5a2 2 0 01-2-2V9a2 2 0 012-2h14a2 2 0 012 2v6z",dice:"M4 4h16v16H4zm4.5 4.5h.01m7 0h.01m-3.5 3.5h.01m-3.5 3.5h.01m7 0h.01",shuffle:"M16 3l4 4-4 4M20 7H4m4 14l-4-4 4-4M4 17h16",chart:"M18 20V10M12 20V4M6 20v-6",trending:"M23 6l-9.5 9.5-5-5L1 18",target:"M12 12m-10 0a10 10 0 1020 0 10 10 0 10-20 0m4 0a6 6 0 1012 0 6 6 0 10-12 0m4 0a2 2 0 104 0 2 2 0 10-4 0",globe:"M12 2a10 10 0 100 20 10 10 0 000-20zm0 0c-2.5 2.7-4 6.2-4 10s1.5 7.3 4 10m0-20c2.5 2.7 4 6.2 4 10s-1.5 7.3-4 10M2 12h20",scale:"M12 4v16m-7-2h14M5 8h5m4 0h5m-14 0l-2.5 4.5A2.5 2.5 0 005 16a2.5 2.5 0 002.5-3.5L5 8zm14 0l2.5 4.5A2.5 2.5 0 0119 16a2.5 2.5 0 01-2.5-3.5L19 8z",trophy:"M8 4h8v3a4 4 0 01-8 0V4zm-3 1h3v2a3 3 0 01-3 3H4a3 3 0 01-3-3V5h4zm14 0h4v2a3 3 0 01-3 3h-1a3 3 0 01-3-3V5h3zM12 11v4m-4 5h8m-7-2v2m6-2v2",architecture:"M3 7h18M3 17h18M6 7v10m12-10v10M9 7v10m6-10v10M5 17h14v3H5zM10 2h4v3h-4z",code:"M8 8l-4 4 4 4m8-8 4 4-4 4m-4-9-2 10",bug:"M8 9V7a4 4 0 118 0v2m-8 0h8M12 9v11m-6-7H3m3 4H2m16-4h3m-3 4h4M8 12a4 4 0 008 0v3a4 4 0 01-8 0v-3z",flame:"M12 3s4 3.5 4 7a4 4 0 11-8 0c0-2.5 1.5-4.5 4-7zm0 8c1.5 1 2.5 2.2 2.5 3.8a2.5 2.5 0 11-5 0c0-1.6 1-2.8 2.5-3.8z",bolt:"M13 2L4 13h6l-1 9 9-11h-6l1-9z",tool:"M21 3l-4.2 4.2a4 4 0 01-5.6 5.6L4 20l-2-2 7.2-7.2a4 4 0 005.6-5.6L19 1l2 2z",backpack:"M7 8V6a5 5 0 0110 0v2m-10 0h10a2 2 0 012 2v9a3 3 0 01-3 3H8a3 3 0 01-3-3v-9a2 2 0 012-2zm3 0h4m-4 6h4",graduation:"M12 3L2 8l10 5 10-5-10-5zm-6 7v4c0 1.8 2.7 3 6 3s6-1.2 6-3v-4",utensils:"M4 2v8m3-8v8M4 6h3m3-4h2v20m4-20v9a3 3 0 01-3 3h-1v8m5-20h2m0 0v9a3 3 0 01-3 3",sun:"M12 3v2m0 14v2m9-9h-2M5 12H3m15.36 6.36-1.42-1.42M7.05 7.05 5.64 5.64m12.72 0-1.42 1.41M7.05 16.95l-1.41 1.41M12 7a5 5 0 100 10 5 5 0 000-10z",palette:"M12 2a10 10 0 000 20c.55 0 1-.45 1-1 0-.28-.11-.53-.3-.7a1.49 1.49 0 01-.7-1.3c0-.83.67-1.5 1.5-1.5H16a6 6 0 006-6c0-5.52-4.48-10-10-10z",moon:"M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z",coffee:"M18 8h1a4 4 0 010 8h-1M2 8h16v9a4 4 0 01-4 4H6a4 4 0 01-4-4V8zm0-4h16",cat:"M12 20c-4.42 0-8-2.69-8-6s3.58-8 8-8 8 4.69 8 8-3.58 6-8 6zm-2-8h.01M14 12h.01M9 16s1.5 2 3 2 3-2 3-2M7 3l2 3m8-3l-2 3",heart:"M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z",leaf:"M17 8C8 10 5.9 16.17 3.82 21.34l1.89.66L17 8zm-7 4A5 5 0 0120 8",paw:"M12 18c-1 0-2-.5-2.5-1.5S9 14 9 13s1-2.5 3-2.5 3 1.5 3 2.5-.5 2.5-1 3.5S13 18 12 18zm-4-7a2 2 0 110-4 2 2 0 010 4zm8 0a2 2 0 110-4 2 2 0 010 4zm-10 4a2 2 0 110-4 2 2 0 010 4zm12 0a2 2 0 110-4 2 2 0 010 4z",check:"M5 13l4 4L19 7",cross:"M18 6L6 18M6 6l12 12",plus:"M12 5v14m-7-7h14",search:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z",star:"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z",tree:"M12 22V8m0 0l-4 4m4-4l4 4M8 2l4 6 4-6",test:"M14.5 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V7.5L14.5 2zM14 2v6h6m-4 5H8m8 4H8m2-8H8"};function mO({name:t,className:e="w-5 h-5"}){const n=rb[t];return n?l.jsx("svg",{className:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.75,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:l.jsx("path",{d:n})}):null}function gO(t,e,n,i,s,r){if(t==="confirm"){const d=n[0]==="__confirm__"?"确认":"取消";return s?`${d} — ${s}`:d}const o=n.map(d=>e.find(u=>u.id===d)).filter(Boolean).map(d=>d.emoji?`${d.emoji} ${d.label}`:d.label);if(r){const d=o.length>0?`${o.join(", ")}:${r}`:r;return s?`${d}(${s})`:d}if(i)return i.replace("{selection}",o.join(", "));const c=`我选了:${o.join(", ")}`;return s?`${c}(${s})`:c}function ab(t,e,n){return G(`/api/messages/${t}/block-state`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:vi(),blockId:e,...n})})}function ob(t){window.dispatchEvent(new CustomEvent("office-claw:interactive-send",{detail:{text:t}}))}function $d({opt:t,className:e="w-5 h-5"}){return t.icon?l.jsx(mO,{name:t.icon,className:`${e} text-amber-600 dark:text-amber-400 shrink-0`}):t.emoji?l.jsx("span",{className:"text-base shrink-0 leading-none",children:t.emoji}):null}function lb({options:t,disabled:e,selectedIds:n,onSelect:i,hideSubmit:s,onCustomText:r}){const[a,o]=m.useState(null),[c,d]=m.useState(""),u=e?n[0]??null:a,h=a?t.find(g=>g.id===a):null,f=!e&&(h==null?void 0:h.customInput),p=g=>{e||(o(g),d(""),r&&r(""),s&&i([g]))},O=()=>{a&&(f&&r&&r(c),i([a]))};return l.jsxs("div",{className:"space-y-2",children:[t.map(g=>{const x=u===g.id;return l.jsxs("button",{type:"button",disabled:e,onClick:()=>p(g.id),className:`w-full text-left px-4 py-3 rounded-xl border-[1.5px] text-sm transition-all flex items-center gap-2.5
|
|
9
|
+
${x?"border-amber-500 bg-amber-50 dark:bg-amber-950/30":e?"border-gray-200 dark:border-gray-700 opacity-50 cursor-not-allowed":"border-gray-200 dark:border-gray-700 hover:border-amber-300 hover:bg-amber-50/50 dark:hover:bg-amber-950/20 cursor-pointer"}`,children:[l.jsx($d,{opt:g}),l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsx("span",{className:`font-semibold ${x?"text-amber-700 dark:text-amber-400":""}`,children:g.label}),g.description&&l.jsx("span",{className:"block text-xs text-gray-500 dark:text-gray-400 mt-0.5",children:g.description})]}),x&&l.jsx("svg",{className:"w-5 h-5 text-amber-600 shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:l.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})]},g.id)}),f&&l.jsx("div",{className:"mt-1",children:l.jsx("input",{type:"text",value:c,onChange:g=>{d(g.target.value),r&&r(g.target.value)},onKeyDown:g=>{g.key==="Enter"&&!g.nativeEvent.isComposing&&c.trim()&&O()},placeholder:(h==null?void 0:h.customInputPlaceholder)??"输入你的想法...",className:"ui-input ui-input-warning w-full px-4 py-2.5 rounded-xl text-sm"})}),!e&&!s&&a&&l.jsxs("button",{type:"button",disabled:f&&!c.trim(),onClick:O,className:`mt-2 w-full py-2.5 rounded-full text-sm font-semibold transition-colors flex items-center justify-center gap-1.5
|
|
10
|
+
${f&&!c.trim()?"bg-gray-200 dark:bg-gray-700 text-gray-400 cursor-not-allowed":"bg-amber-600 text-white hover:bg-amber-700"}`,children:[l.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:l.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}),"确认选择"]})]})}function cb({options:t,disabled:e,selectedIds:n,maxSelect:i,onSelect:s,hideSubmit:r}){const[a,o]=m.useState(new Set(n)),c=d=>{e||o(u=>{const h=new Set(u);return h.has(d)?h.delete(d):(!i||h.size<i)&&h.add(d),r&&s([...h]),h})};return l.jsxs("div",{className:"space-y-2",children:[t.map(d=>{const u=a.has(d.id);return l.jsxs("button",{type:"button",disabled:e,onClick:()=>c(d.id),className:`flex items-center gap-2.5 w-full px-4 py-3 rounded-xl border-[1.5px] text-sm transition-all text-left
|
|
11
|
+
${u?"border-amber-500 bg-amber-50 dark:bg-amber-950/30":"border-gray-200 dark:border-gray-700 hover:border-amber-300"}
|
|
12
|
+
${e?"opacity-50 cursor-not-allowed":"cursor-pointer"}`,children:[l.jsx("span",{className:`shrink-0 w-5 h-5 rounded-md flex items-center justify-center transition-colors ${u?"bg-amber-600":"border-[1.5px] border-gray-300 dark:border-gray-600"}`,children:u&&l.jsx("svg",{className:"w-3.5 h-3.5 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:3,children:l.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})}),l.jsx($d,{opt:d}),l.jsx("span",{className:`font-semibold ${u?"text-amber-700 dark:text-amber-400":""}`,children:d.label})]},d.id)}),!e&&!r&&a.size>0&&l.jsxs("button",{type:"button",onClick:()=>s([...a]),className:"mt-2 w-full py-2.5 bg-amber-600 text-white rounded-full text-sm font-semibold hover:bg-amber-700 transition-colors flex items-center justify-center gap-1.5",children:[l.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:l.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}),"确认选择 (",a.size,")"]})]})}function db({options:t,disabled:e,selectedIds:n,allowRandom:i,onSelect:s,pendingMode:r}){var g;const[a,o]=m.useState(null),[c,d]=m.useState(null),u=m.useRef(!1),h=x=>{e||u.current||(d(x),o(null),r&&s([x]))},f=()=>{c&&s([c])},p=m.useCallback(()=>{if(e||u.current||t.length===0)return;u.current=!0;const x=12;let b=0;const y=()=>{var P,w;const S=b%t.length;if(o((P=t[S])==null?void 0:P.id),b++,b<x){const C=50+b*25;setTimeout(y,C)}else{const C=Math.floor(Math.random()*t.length),Q=(w=t[C])==null?void 0:w.id;o(Q),d(Q),u.current=!1,r&&setTimeout(()=>s([Q]),400)}};y()},[e,t,s,r]),O=new Map;for(const x of t){const b=x.group??"";O.has(b)||O.set(b,[]),(g=O.get(b))==null||g.push(x)}return l.jsxs("div",{children:[[...O.entries()].map(([x,b])=>l.jsxs("div",{children:[x&&l.jsx("div",{className:"text-xs text-gray-500 mb-1 mt-2 font-medium",children:x}),l.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-2.5",children:b.map(y=>{const S=n.includes(y.id),P=c===y.id,w=a===y.id;return l.jsxs("button",{type:"button",disabled:e,onClick:()=>h(y.id),className:`p-4 rounded-2xl border-[1.5px] text-center text-sm transition-all
|
|
13
|
+
${S||P?"border-amber-500 bg-amber-50 dark:bg-amber-950/30 ring-2 ring-amber-400/50":w?"border-amber-400 bg-amber-50/80 dark:bg-amber-950/20 scale-105":e?"border-gray-200 dark:border-gray-700 opacity-50 cursor-not-allowed":"border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50 hover:border-amber-300 hover:shadow-sm cursor-pointer"}`,children:[(y.icon||y.emoji)&&l.jsx("div",{className:"mb-1.5 flex justify-center",children:l.jsx($d,{opt:y,className:"w-7 h-7"})}),l.jsx("div",{className:`font-semibold ${S||P?"text-amber-700 dark:text-amber-400":""}`,children:y.label}),y.description&&l.jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400 mt-0.5",children:y.description})]},y.id)})})]},x)),!e&&(i||c)&&l.jsxs("div",{className:"flex gap-2 mt-2",children:[i&&!e&&l.jsxs("button",{type:"button",onClick:p,className:"px-4 py-1.5 bg-gradient-to-r from-amber-500 to-orange-500 text-white rounded-lg text-sm hover:from-amber-600 hover:to-orange-600 transition-all",children:[l.jsx(mO,{name:"shuffle",className:"w-4 h-4 inline-block"})," 随机抽"]}),!e&&!r&&c&&l.jsxs("button",{type:"button",onClick:f,className:"flex-1 py-2.5 bg-amber-600 text-white rounded-full text-sm font-semibold hover:bg-amber-700 transition-colors flex items-center justify-center gap-1.5",children:[l.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:l.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}),"确认选择"]})]})]})}function ub({options:t,disabled:e,selectedIds:n,onSelect:i,pendingMode:s}){const r=t.find(h=>h.id==="__confirm__")??{label:"确认"},a=t.find(h=>h.id==="__cancel__")??{label:"取消"},[o,c]=m.useState(null),d=e?n[0]:s?o:n[0],u=h=>{e||(s?(c(h),i([h])):i([h]))};return l.jsxs("div",{className:"flex gap-3",children:[l.jsxs("button",{type:"button",disabled:e,onClick:()=>u("__cancel__"),className:`flex-1 px-4 py-2.5 rounded-xl text-sm font-semibold transition-all border-[1.5px] flex items-center justify-center gap-1.5
|
|
14
|
+
${d==="__cancel__"?"bg-red-50 dark:bg-red-950/30 border-red-400 text-red-600 dark:text-red-400":e&&d?"bg-gray-100 dark:bg-gray-800 border-gray-200 dark:border-gray-700 text-gray-400 opacity-50 cursor-not-allowed":e?"bg-gray-100 dark:bg-gray-800 border-gray-200 dark:border-gray-700 text-gray-400 cursor-not-allowed":"bg-red-50/50 dark:bg-red-950/10 border-red-200 dark:border-red-800 text-red-500 hover:bg-red-50 hover:border-red-300 cursor-pointer"}`,children:[d!=="__cancel__"&&l.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:l.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})}),a.label]}),l.jsxs("button",{type:"button",disabled:e,onClick:()=>u("__confirm__"),className:`flex-1 px-4 py-2.5 rounded-xl text-sm font-semibold transition-all border-[1.5px] flex items-center justify-center gap-1.5
|
|
15
|
+
${d==="__confirm__"?"bg-green-50 dark:bg-green-950/30 border-green-500 text-green-600 dark:text-green-400":e&&d?"bg-gray-100 dark:bg-gray-800 border-gray-200 dark:border-gray-700 text-gray-400 opacity-50 cursor-not-allowed":e?"bg-gray-100 dark:bg-gray-800 border-gray-200 dark:border-gray-700 text-gray-400 cursor-not-allowed":"bg-green-50/50 dark:bg-green-950/10 border-green-200 dark:border-green-800 text-green-600 hover:bg-green-50 hover:border-green-300 cursor-pointer"}`,children:[d!=="__confirm__"&&l.jsx("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:l.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}),r.label]})]})}function xO({block:t,messageId:e,pendingMode:n,onPendingChange:i,onCustomTextChange:s,groupDisabled:r,groupSelectedIds:a}){const[o,c]=m.useState(t.disabled??!1),[d,u]=m.useState(t.selectedIds??[]),h=m.useRef(""),f=r??o,p=a??d,O=m.useCallback(x=>{h.current=x,s&&s(x)},[s]),g=m.useCallback(async x=>{if(f)return;if(n&&i){i(x);return}c(!0),u(x);const b=h.current,y=gO(t.interactiveType,t.options,x,t.messageTemplate,t.title,b||void 0);ob(y),e&&(E.getState().updateRichBlock(e,t.id,{disabled:!0,selectedIds:x}),ab(e,t.id,{disabled:!0,selectedIds:x}).catch(()=>{}))},[f,t,e,n,i]);return l.jsxs("div",{className:"rounded-2xl border border-gray-200 dark:border-gray-700 p-4",children:[t.title&&l.jsx("div",{className:"font-semibold text-sm mb-1",children:t.title}),t.description&&l.jsx("div",{className:"text-xs text-gray-500 dark:text-gray-400 mb-3",children:t.description}),t.interactiveType==="select"&&l.jsx(lb,{options:t.options,disabled:f,selectedIds:p,onSelect:g,hideSubmit:n,onCustomText:O}),t.interactiveType==="multi-select"&&l.jsx(cb,{options:t.options,disabled:f,selectedIds:p,maxSelect:t.maxSelect,onSelect:g,hideSubmit:n}),t.interactiveType==="card-grid"&&l.jsx(db,{options:t.options,disabled:f,selectedIds:p,allowRandom:t.allowRandom,onSelect:g,pendingMode:n}),t.interactiveType==="confirm"&&l.jsx(ub,{options:t.options,disabled:f,selectedIds:p,onSelect:g,pendingMode:n})]})}function hb(t,e,n){return G(`/api/messages/${t}/block-state`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:vi(),blockId:e,...n})})}function fb(t){window.dispatchEvent(new CustomEvent("office-claw:interactive-send",{detail:{text:t}}))}function pb(t,e,n){const i=[];for(const s of t){const r=e.get(s.id);if(!r||r.length===0)continue;const a=n==null?void 0:n.get(s.id),o=gO(s.interactiveType,s.options,r,s.messageTemplate,s.title,a||void 0);i.push(o)}return i.join(`
|
|
16
|
+
`)}function Ob(t,e){return!e||e.length===0?!1:t.options.some(n=>n.customInput&&e.includes(n.id))}function mb({blocks:t,messageId:e}){const n=t.every(p=>p.disabled),[i,s]=m.useState(n),[r,a]=m.useState(()=>{const p=new Map;for(const O of t)O.selectedIds&&O.selectedIds.length>0&&p.set(O.id,O.selectedIds);return p}),[o,c]=m.useState(()=>new Map),d=m.useCallback((p,O)=>{a(g=>{const x=new Map(g);return O.length===0?x.delete(p):x.set(p,O),x})},[]),u=m.useCallback((p,O)=>{c(g=>{const x=new Map(g);return O?x.set(p,O):x.delete(p),x})},[]),h=t.every(p=>{var g;const O=r.get(p.id);return!(!O||O.length===0||Ob(p,O)&&!((g=o.get(p.id))!=null&&g.trim()))}),f=m.useCallback(()=>{if(!h||i)return;s(!0);const p=pb(t,r,o);if(fb(p),e)for(const O of t){const g=r.get(O.id)??[];E.getState().updateRichBlock(e,O.id,{disabled:!0,selectedIds:g}),hb(e,O.id,{disabled:!0,selectedIds:g}).catch(()=>{})}},[h,i,t,r,o,e]);return l.jsxs("div",{className:"space-y-3 rounded-2xl border-2 border-dashed border-amber-200 dark:border-amber-800/50 p-3",children:[t.map(p=>l.jsx(xO,{block:p,messageId:e,pendingMode:!i,onPendingChange:O=>d(p.id,O),onCustomTextChange:O=>u(p.id,O),groupDisabled:i,groupSelectedIds:i?r.get(p.id):void 0},p.id)),!i&&l.jsxs("button",{type:"button",disabled:!h,onClick:f,className:`w-full py-2.5 rounded-full text-sm font-semibold transition-all flex items-center justify-center gap-2
|
|
17
|
+
${h?"bg-amber-600 text-white hover:bg-amber-700 cursor-pointer":"bg-gray-100 dark:bg-gray-800 text-gray-400 cursor-not-allowed"}`,children:["全部提交",l.jsxs("span",{className:`px-2 py-0.5 rounded-full text-xs font-semibold ${h?"bg-white/20 text-white":"bg-amber-100 dark:bg-amber-900/50 text-amber-600 dark:text-amber-400"}`,children:[r.size,"/",t.length]})]})]})}function gb({block:t}){const e=Array.isArray(t.items)?t.items:[],[n,i]=m.useState(null);return l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:"rounded-lg border border-gray-200 dark:border-gray-700 p-3",children:[t.title&&l.jsx("div",{className:"font-medium text-sm mb-2",children:t.title}),l.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:e.map((s,r)=>l.jsxs("figure",{className:"relative group space-y-1",children:[l.jsx("button",{type:"button",onClick:()=>i(r),className:"block w-full rounded focus:outline-2 focus:outline-blue-400","aria-label":`Enlarge ${s.alt??"image"}`,children:l.jsx("img",{src:s.url,alt:s.alt??"",className:"rounded w-full object-cover max-h-48 cursor-pointer hover:opacity-90 transition-opacity"})}),l.jsx(j2,{url:s.url}),s.caption&&l.jsx("figcaption",{className:"text-xs text-gray-500 dark:text-gray-400",children:s.caption})]},r))})]}),n!==null&&e[n]&&l.jsx(Qd,{url:e[n].url,alt:e[n].alt??"",caption:e[n].caption,onClose:()=>i(null)})]})}function xb({block:t,agentId:e,messageId:n}){switch(t.kind){case"card":return l.jsx(z5,{block:t,messageId:n});case"diff":return l.jsx(K5,{block:t});case"checklist":return l.jsx(B5,{block:t});case"media_gallery":return l.jsx(gb,{block:t});case"audio":return l.jsx(W5,{block:t,agentId:e});case"interactive":return l.jsx(xO,{block:t,messageId:n});case"html_widget":return l.jsx(sb,{block:t});case"file":return l.jsx(ib,{block:t});default:return l.jsxs("div",{className:"rounded-lg border border-gray-200 dark:border-gray-700 px-3 py-2 text-xs text-gray-400",children:["未知富块类型: ",t.kind]})}}function bb(t){const e=[];let n=[];for(const i of t)i.kind==="interactive"&&!i.groupId?n.push(i):n.length>0&&(e.push(n),n=[]);return n.length>0&&e.push(n),e}function yb(t){var c,d;const e=[],n=new Map,i=new Map,s=new Set,r=new Map,a=new Map;for(const u of bb(t))if(u.length>=2){const h=`__auto_${(c=u[0])==null?void 0:c.id}`;a.set(h,u);for(const f of u)s.add(f.id),r.set(f.id,h)}for(let u=0;u<t.length;u++){const h=t[u];h.kind==="interactive"&&h.groupId&&(n.has(h.groupId)||(n.set(h.groupId,[]),i.set(h.groupId,u)),(d=n.get(h.groupId))==null||d.push(h))}const o=new Set;for(let u=0;u<t.length;u++){const h=t[u];if(h.kind==="interactive"&&h.groupId){const f=h.groupId;i.get(f)===u&&e.push({grouped:!0,groupId:f,blocks:n.get(f)})}else if(h.kind==="interactive"&&s.has(h.id)){const f=r.get(h.id);o.has(f)||(e.push({grouped:!0,groupId:f,blocks:a.get(f)}),o.add(f))}else e.push(h)}return e}function bO({blocks:t,agentId:e,messageId:n}){if(t.length===0)return null;const i=yb(t);return l.jsx("div",{className:"mt-2 space-y-2",children:i.map(s=>"grouped"in s?l.jsx(mb,{blocks:s.blocks,messageId:n},s.groupId):l.jsx(xb,{block:s,agentId:e,messageId:n},s.id))})}const ca={name:"ME",aliases:[],mentionPatterns:["@co-creator"],color:{primary:"#815b5b",secondary:"#FFDDD2"}};let da=null,Ts=null;const ua=new Set;function yO(t){da=t,z0(t.mentionPatterns);for(const e of ua)e(t)}async function vb(){var n;const t=await G("/api/config");if(!t.ok)throw new Error(`failed to load co-creator config: ${t.status}`);return((n=(await t.json().catch(()=>({}))).config)==null?void 0:n.coCreator)??ca}function vO(){const[t,e]=m.useState(()=>da??ca);return m.useEffect(()=>{if(ua.add(e),da)return e(da),()=>{ua.delete(e)};Ts||(Ts=vb().then(i=>(yO(i),i)).catch(i=>{throw Ts=null,i}));let n=!1;return Ts.then(i=>{n||e(i)}).catch(()=>{n||(z0(ca.mentionPatterns),e(ca))}),()=>{n=!0,ua.delete(e)}},[]),t}function Sb(t){yO(t),Ts=Promise.resolve(t)}function wb(t,e){var r,a,o,c,d,u,h,f;if(t.visibility==="whisper"&&((r=t.whisperTo)!=null&&r.length))return{type:"whisper",targets:t.whisperTo,arrow:"→"};if((o=(a=t.extra)==null?void 0:a.crossPost)!=null&&o.sourceThreadId)return{type:"crossPost",targets:[t.extra.crossPost.sourceThreadId.replace(/^thread_/,"").slice(0,8)],arrow:"↗"};if((u=(d=(c=t.source)==null?void 0:c.meta)==null?void 0:d.targets)!=null&&u.length)return{type:"mention",targets:t.source.meta.targets,arrow:"→"};if((f=(h=t.extra)==null?void 0:h.targetAgents)!=null&&f.length)return{type:"mention",targets:t.extra.targetAgents,arrow:"→"};if(t.origin==="stream"||t.origin!=="callback")return null;const{toAgent:n,re:i}=e(),s=new Set;i.lastIndex=0;for(let p=i.exec(t.content);p!==null;p=i.exec(t.content)){const O=p[1].toLowerCase(),g=n[O];g&&g!=="__co-creator__"&&s.add(g)}return s.size>0?{type:"mention",targets:[...s],arrow:"→"}:null}function kb(t){if(!Number.isFinite(t)||t<0)return"0s";if(t<1e3)return`${Math.round(t)}ms`;const e=Math.floor(t/1e3),n=Math.floor(e/3600),i=Math.floor(e%3600/60),s=e%60;return n>0?`${n}h${String(i).padStart(2,"0")}m${String(s).padStart(2,"0")}s`:i>0?`${i}m${String(s).padStart(2,"0")}s`:`${s}s`}function Qb(t){return t!=null&&t.length?t.filter(e=>e.type==="tool_use").length:0}function Cb(t){var n,i;const e=[t.timestamp];for(const s of t.toolEvents??[])typeof s.timestamp=="number"&&Number.isFinite(s.timestamp)&&e.push(s.timestamp);for(const s of((i=(n=t.extra)==null?void 0:n.taskRuns)==null?void 0:i.segments)??[]){for(const r of s.thinkingChunks??[])typeof r.timestamp=="number"&&Number.isFinite(r.timestamp)&&e.push(r.timestamp);for(const r of s.textChunks??[])typeof r.timestamp=="number"&&Number.isFinite(r.timestamp)&&e.push(r.timestamp);for(const r of s.toolEvents??[])typeof r.timestamp=="number"&&Number.isFinite(r.timestamp)&&e.push(r.timestamp)}return Math.max(...e)}function Pb(t){var n,i;const e=[];for(const s of t.toolEvents??[])typeof s.timestamp=="number"&&Number.isFinite(s.timestamp)&&s.timestamp>0&&e.push(s.timestamp);for(const s of((i=(n=t.extra)==null?void 0:n.taskRuns)==null?void 0:i.segments)??[])for(const r of s.toolEvents??[])typeof r.timestamp=="number"&&Number.isFinite(r.timestamp)&&r.timestamp>0&&e.push(r.timestamp);return e.length===0?null:Math.min(...e)}function Tb(t,e,n,i){var u,h,f,p;const s=(h=(u=t.extra)==null?void 0:u.stream)==null?void 0:h.invocationId,r=!!(s&&(n==null?void 0:n.invocationId)===s);if(e==="streaming"){const O=r&&(n==null?void 0:n.startedAt)||s&&i||t.timestamp;return Math.max(0,Date.now()-O)}const a=(p=(f=t.extra)==null?void 0:f.stream)==null?void 0:p.durationMs;if((e==="done"||e==="failed")&&typeof a=="number"&&Number.isFinite(a)&&a>0)return a;if((e==="done"||e==="failed")&&r&&(n==null?void 0:n.durationMs)!=null){const O=n.durationMs;if(typeof O=="number"&&Number.isFinite(O)&&O>0)return O}const o=Cb(t),c=Pb(t),d=r&&(n==null?void 0:n.startedAt)||c||t.timestamp;return o<d?null:o-d}function $b(t,e,n,i){if(e==="streaming")return"思考执行中";if(e==="interrupted")return"已停止思考执行";const s=Qb(t.toolEvents),r=Tb(t,e,n,i),a=r!=null&&r>0?`,耗时${kb(r)}`:"";return`思考执行完成(已调用${s}个工具${a})`}const jb={ragdoll:{radius:"rounded-2xl rounded-bl-sm"},"maine-coon":{radius:"rounded-2xl rounded-br-sm",font:"font-mono"},siamese:{radius:"rounded-2xl rounded-tr-sm"},"dragon-li":{radius:"rounded-lg rounded-tl-sm",font:"font-mono"}},Ab={radius:"rounded-2xl"};function Nb(t){const e=new Date(t),n=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0"),s=String(e.getHours()).padStart(2,"0"),r=String(e.getMinutes()).padStart(2,"0");return`${n}/${i} ${s}:${r}`}function SO(t){if(!t.startsWith("/api/workspace/download?")&&!t.startsWith("/api/workspace/file/raw?"))return null;const e=t.split("?")[1];if(!e)return null;const i=new URLSearchParams(e).get("path");return i?decodeURIComponent(i):null}function wO(t){const e=t.replace(/\\/g,"/");return e.slice(e.lastIndexOf("/")+1).toLowerCase()}function Rb(t,e){return!(t!=null&&t.length)||e.size===0?t:t.filter(n=>{if(n.type!=="file")return!0;const i=SO(n.url),s=i?wO(i):n.fileName.toLowerCase();return!e.has(s)})}function _b(t,e){return!(t!=null&&t.length)||e.size===0?t:t.filter(n=>{if(n.kind!=="file")return!0;const i=n.workspacePath??SO(n.url),s=i?wO(i):n.fileName.toLowerCase();return!e.has(s)})}function Mb({className:t="w-5 h-5"}){return l.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[l.jsx("path",{d:"M4 10v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-9"}),l.jsx("path",{d:"M2 10h20"}),l.jsx("line",{x1:"9",y1:"10",x2:"15",y2:"10",strokeWidth:"3"}),l.jsx("rect",{x:"9",y:"3",width:"6",height:"8",rx:"1",strokeWidth:"1.5"}),l.jsx("line",{x1:"11",y1:"5.5",x2:"13",y2:"5.5",strokeWidth:"1"}),l.jsx("line",{x1:"11",y1:"7.5",x2:"13",y2:"7.5",strokeWidth:"1"})]})}function Eb({className:t="w-5 h-5"}){return l.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:t,children:l.jsx("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.42 2.865 8.17 6.839 9.49.5.092.682-.217.682-.482 0-.237-.008-.866-.013-1.7-2.782.604-3.369-1.34-3.369-1.34-.454-1.156-1.11-1.464-1.11-1.464-.908-.62.069-.608.069-.608 1.003.07 1.531 1.03 1.531 1.03.892 1.529 2.341 1.087 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.11-4.555-4.943 0-1.091.39-1.984 1.029-2.683-.103-.253-.446-1.27.098-2.647 0 0 .84-.269 2.75 1.025A9.578 9.578 0 0 1 12 6.836a9.59 9.59 0 0 1 2.504.337c1.909-1.294 2.747-1.025 2.747-1.025.546 1.377.203 2.394.1 2.647.64.699 1.028 1.592 1.028 2.683 0 3.842-2.339 4.687-4.566 4.935.359.309.678.919.678 1.852 0 1.336-.012 2.415-.012 2.743 0 .267.18.578.688.48C19.138 20.167 22 16.418 22 12c0-5.523-4.477-10-10-10z"})})}function Ib({className:t="w-5 h-5"}){return l.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[l.jsx("circle",{cx:"12",cy:"12",r:"3"}),l.jsx("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"})]})}function Lb({className:t="w-5 h-5"}){return l.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[l.jsx("path",{d:"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"}),l.jsx("circle",{cx:"9",cy:"7",r:"4"}),l.jsx("path",{d:"M23 21v-2a4 4 0 0 0-3-3.87"}),l.jsx("path",{d:"M16 3.13a4 4 0 0 1 0 7.75"})]})}function zn({src:t,alt:e,className:n="w-5 h-5"}){return l.jsx("img",{src:t,alt:e,className:`${n} rounded object-cover`})}function Xb(t){return new Date(t).toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit"})}function Zb({blocks:t}){const[e,n]=m.useState(null);return l.jsxs(l.Fragment,{children:[t.map((i,s)=>{if(i.type==="text")return l.jsx(St,{content:i.text},s);if(i.type==="image"){const r=i.url.startsWith("/uploads/")?`${wo}${i.url}`:i.url,a=r.startsWith("/")||r.startsWith("http://")||r.startsWith("https://");return l.jsx("img",{src:r,alt:"attached image",className:"max-w-full sm:max-w-sm rounded-lg mt-2 border border-gray-200 cursor-pointer hover:opacity-90 transition-opacity",onClick:()=>a&&n(r)},s)}return null}),e&&l.jsx(Qd,{url:e,alt:"attached image",onClose:()=>n(null)})]})}const sh={avatar:"bg-blue-100 ring-blue-200",label:"text-blue-700",labelLink:"text-blue-700 hover:text-blue-900",bubble:"border border-blue-200 bg-blue-50"};function Db({connector:t,fallbackIcon:e}){switch(t){case"scheduler":return l.jsx(zn,{src:"/icons/scheduled-task.svg",alt:"定时任务",className:"w-5 h-5"});case"feishu":return l.jsx(zn,{src:"/images/connectors/feishu.png",alt:"Feishu",className:"w-5 h-5"});case"imessage":return l.jsx(zn,{src:"/images/connectors/imessage.png",alt:"iMessage",className:"w-5 h-5"});case"weixin":return l.jsx(zn,{src:"/images/connectors/weixin.png",alt:"WeChat",className:"w-5 h-5"});case"dingtalk":return l.jsx(zn,{src:"/images/connectors/dingtalk.png",alt:"DingTalk",className:"w-5 h-5"});case"wecom-bot":return l.jsx(zn,{src:"/images/connectors/wecom-bot.png",alt:"WeCom",className:"w-5 h-5"});case"wecom-agent":return l.jsx(zn,{src:"/images/connectors/wecom-agent.png",alt:"WeCom Agent",className:"w-5 h-5"});case"github-review":case"github-ci":return e!=="github"&&e!=="🔔"?l.jsx("span",{children:e}):l.jsx(Eb,{className:"w-4 h-4"});case"vote-result":return l.jsx(Mb,{className:"w-4 h-4"});case"multi-mention-result":return l.jsx(Lb,{className:"w-4 h-4"});case"system-command":return l.jsx(Ib,{className:"w-4 h-4"});default:return e.startsWith("/")||e.startsWith("http")?l.jsx(zn,{src:e,alt:"connector",className:"w-5 h-5"}):l.jsx("span",{children:e})}}function qb(t){if(!t)return sh;const e=Vx(t);return(e==null?void 0:e.tailwindTheme)??sh}function Wb({message:t}){var o,c;const e=t.source;if(!e)return null;const n=qb(e.connector),i=t.contentBlocks&&t.contentBlocks.length>0,s=(c=(o=t.extra)==null?void 0:o.rich)==null?void 0:c.blocks,r=e.url,a=r&&/^https?:\/\//.test(r)?r:void 0;return l.jsxs("div",{"data-message-id":t.id,className:"flex gap-2 mb-4 items-start",children:[l.jsx("div",{className:`w-8 h-8 rounded-full flex-shrink-0 flex items-center justify-center text-base ${n.avatar}`,children:l.jsx(Db,{connector:e.connector,fallbackIcon:e.icon})}),l.jsxs("div",{className:"max-w-[85%] md:max-w-[75%] min-w-0",children:[l.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[a?l.jsx("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:`text-xs font-semibold hover:underline ${n.labelLink}`,children:e.label}):l.jsx("span",{className:`text-xs font-semibold ${n.label}`,children:e.label}),e.sender&&l.jsxs("span",{className:"text-xs text-gray-500",children:[e.sender.name||e.sender.id," 说"]}),l.jsx("span",{className:"text-xs text-gray-400",children:Xb(t.timestamp)})]}),l.jsxs("div",{className:`${n.bubble} rounded-2xl rounded-bl-sm px-4 py-3 overflow-hidden`,children:[i?l.jsx(Zb,{blocks:t.contentBlocks}):l.jsx(St,{content:t.content}),s&&s.length>0&&l.jsx(bO,{blocks:s})]})]})]})}const zb="/api/workspace/download?",Bb="/api/workspace/file/raw?";function rh(t){return t.startsWith("/uploads/")||t.startsWith("/api/")?`${wo}${t}`:t}function ah(t){if(!t.startsWith(zb)&&!t.startsWith(Bb))return null;const e=t.split("?")[1];return e?new URLSearchParams(e).get("path"):null}function tl({blocks:t,enableSkillAndQuickActionTokens:e=!1,showFileAction:n=!0}){const[i,s]=m.useState(null),[r,a]=m.useState(null),o=(c,d)=>{var h;const u=((h=c.split(".").pop())==null?void 0:h.toLowerCase())??"";return u==="pdf"?"/icons/files-pdf.svg":u==="doc"||u==="docx"?"/icons/files-docx.svg":u==="xls"||u==="xlsx"||u==="xlsm"||u==="xlsb"?"/icons/files-xlsx.svg":u==="ppt"||u==="pptx"?"/icons/files-ppt.svg":u==="md"?"/icons/file-md.svg":u==="csv"?"/icons/files-csv.svg":u==="txt"?"/icons/files-txt.svg":"/icons/file-html.svg"};return l.jsxs(l.Fragment,{children:[t.map((c,d)=>{if(c.type==="text")return l.jsx(St,{content:c.text,enableSkillAndQuickActionTokens:e},d);if(c.type==="image"){const u=ah(c.url);if(u)return l.jsxs("div",{className:"mt-2 rounded-lg border border-dashed border-[var(--border-default)] bg-[var(--surface-panel)] px-3 py-2 text-sm text-[var(--text-label-secondary)]",children:["历史 workspace 图片,能力已下线",l.jsx("div",{className:"mt-1 break-all text-xs",children:u})]},d);const h=rh(c.url);return l.jsx("img",{src:h,alt:"attached image",className:"mt-2 max-w-full cursor-pointer rounded-lg border border-[var(--border-default)] transition-opacity hover:opacity-90 sm:max-w-sm",onClick:()=>s(h)},d)}if(c.type==="file"){const u=rh(c.url),h=ah(c.url),f=n&&!h&&z2(u);return l.jsxs("div",{className:"mt-2 flex max-w-full items-center gap-3 rounded-lg border border-[var(--border-default)] bg-[var(--surface-panel)] px-3 py-2",children:[l.jsx("img",{src:o(c.fileName,c.mimeType),alt:"","aria-hidden":"true",className:"h-8 w-8 shrink-0"}),l.jsxs("div",{className:"min-w-0 flex-1",children:[l.jsx("div",{className:"truncate text-sm text-[var(--text-primary)]",children:c.fileName}),l.jsx("div",{className:"text-xs text-[var(--text-label-secondary)]",children:h?"历史 workspace 文件,能力已下线":c.mimeType||"file"}),h?l.jsx("div",{className:"mt-1 break-all text-[11px] text-[var(--text-label-secondary)]",children:h}):null]}),f?l.jsx("button",{type:"button",className:"shrink-0 rounded-full border border-[var(--border-default)] px-3 py-1 text-xs text-[var(--text-primary)] transition-colors hover:bg-[var(--overlay-item-hover-bg)]",onClick:()=>{a(c.url),B2(u,c.fileName).catch(p=>{console.error("下载失败:",p),alert(`下载失败:${p instanceof Error?p.message:"未知错误"}`)}).finally(()=>a(p=>p===c.url?null:p))},children:r===c.url?"下载中...":"下载"}):!h&&n?l.jsx("a",{href:u,target:"_blank",rel:"noreferrer",className:"shrink-0 rounded-full border border-[var(--border-default)] px-3 py-1 text-xs text-[var(--text-primary)] transition-colors hover:bg-[var(--overlay-item-hover-bg)]",children:"下载"}):null]},d)}return null}),i&&l.jsx(Qd,{url:i,alt:"attached image",onClose:()=>s(null)})]})}function Vb({direction:t,getAgentById:e}){const n=t.targets.map(a=>{if(t.type==="crossPost")return a;const o=e(a);return o?`@${o.displayName}`:`@${a}`}),i=`${t.arrow} ${n.join(" + ")}`,s=t.type!=="crossPost"?e(t.targets[0]):void 0,r=(s==null?void 0:s.color.primary)??"#9B7EBD";return l.jsx("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full whitespace-nowrap",style:{backgroundColor:`${r}20`,color:r},children:i})}function Fb({className:t="w-4 h-4"}){return l.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[l.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),l.jsx("path",{d:"M14 2v6h6"}),l.jsx("path",{d:"M9 15.5l1.5 1.5 4.5-4.5"})," "]})}function Ub({className:t="w-4 h-4"}){return l.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[l.jsx("path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"}),l.jsx("path",{d:"M16 2l1 1-1 1"})," ",l.jsx("line",{x1:"4",y1:"22",x2:"4",y2:"15"})]})}function Yb({className:t="w-4 h-4"}){return l.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:l.jsx("path",{d:"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"})})}function Gb({className:t="w-4 h-4"}){return l.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[l.jsx("circle",{cx:"12",cy:"12",r:"4"}),l.jsx("circle",{cx:"12",cy:"12",r:"0.5",fill:"currentColor"})," ",l.jsx("line",{x1:"1.05",y1:"12",x2:"7",y2:"12"}),l.jsx("line",{x1:"17.01",y1:"12",x2:"22.96",y2:"12"})]})}const Hb={decision:{icon:Fb,label:"决策"},phase:{icon:Ub,label:"阶段"},discussion:{icon:Yb,label:"讨论"},commit:{icon:Gb,label:"提交"}},Kb={draft:{label:"草稿",className:"border-dashed opacity-80",badge:"bg-gray-100 text-gray-500 border-gray-200"},pending:{label:"待审",className:"ring-1 ring-amber-400/30",badge:"bg-amber-100 text-amber-700 border-amber-200 animate-pulse"},published:{label:"正式",className:"",badge:""},archived:{label:"归档",className:"grayscale-[0.5] opacity-60",badge:"bg-gray-200 text-gray-600"}},Jb={high:{bg:"bg-emerald-900/50",text:"text-emerald-300",label:"高置信度"},mid:{bg:"bg-amber-900/50",text:"text-amber-300",label:"中置信度"},low:{bg:"bg-slate-700",text:"text-slate-400",label:"低置信度"}};function ey({result:t}){const e=Hb[t.sourceType],n=Jb[t.confidence],i=t.status?Kb[t.status]:null,s=e.icon,r=t.snippet.length>160?`${t.snippet.slice(0,160)}...`:t.snippet;return l.jsxs("div",{className:`flex gap-2.5 p-3 rounded-xl bg-slate-900/80 border border-slate-700 hover:border-slate-500 hover:shadow-sm transition-all duration-200 group relative ${(i==null?void 0:i.className)??""}`,children:[l.jsx("div",{className:"flex-shrink-0 mt-0.5",children:l.jsx("div",{className:"w-8 h-8 rounded-lg bg-slate-700 flex items-center justify-center text-slate-300 group-hover:scale-110 transition-transform",children:l.jsx(s,{className:"w-4 h-4"})})}),l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsxs("div",{className:"flex items-start justify-between gap-2",children:[l.jsx("div",{className:"flex flex-col gap-0.5 min-w-0",children:l.jsx("h4",{className:`text-xs font-bold text-slate-100 leading-snug line-clamp-2 ${t.status==="archived"?"line-through decoration-gray-400/50":""}`,children:t.title})}),l.jsxs("div",{className:"flex flex-col items-end gap-1 flex-shrink-0",children:[l.jsx("span",{className:`text-[9px] font-bold px-1.5 py-0.5 rounded-full uppercase tracking-wider ${n.bg} ${n.text}`,children:n.label}),(i==null?void 0:i.badge)&&l.jsx("span",{className:`text-[8px] font-black px-1 py-0.25 rounded border ${i.badge}`,children:i.label})]})]}),l.jsx("p",{className:"text-[11px] text-slate-400 leading-relaxed mt-1.5 line-clamp-2",children:r}),l.jsxs("div",{className:"flex items-center gap-2 mt-2 pt-2 border-t border-slate-700",children:[l.jsx("span",{className:"text-[10px] text-slate-400 font-bold",children:e.label}),l.jsx("span",{className:"text-[10px] text-gray-300",children:"·"}),l.jsx("span",{className:"text-[10px] text-gray-400 truncate font-mono opacity-70 italic",children:t.anchor})]})]})]})}function ty({data:t}){return l.jsx("div",{className:"flex justify-center mb-6",children:l.jsxs("div",{className:"bg-slate-800/90 backdrop-blur-sm border border-slate-600 rounded-2xl px-5 pt-4 pb-4 max-w-lg w-full shadow-sm shadow-slate-900/30",children:[l.jsxs("div",{className:"flex items-center justify-between mb-3 px-0.5",children:[l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("span",{className:"text-xs font-black text-slate-200 tracking-wide uppercase",children:"Hindsight 检索结果"}),l.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full bg-slate-600 text-slate-300 font-bold",children:t.results.length})]}),t.degraded&&l.jsxs("div",{className:"flex items-center gap-1 text-[10px] font-bold text-amber-400 animate-pulse",children:[l.jsx("span",{children:"⚠️"}),l.jsx("span",{children:"局部模式"})]})]}),t.degraded&&l.jsxs("div",{className:"text-[10px] text-amber-300 bg-amber-950/30 border border-amber-800/40 rounded-lg px-3 py-2 mb-3 leading-relaxed italic",children:["“","哎呀,有些记忆暂时找不到了,正在为您从本地文档中努力搜寻...","”"]}),t.results.length===0?l.jsx("div",{className:"text-xs text-slate-400 text-center py-6 font-medium italic",children:"暂未找到相关证据"}):l.jsx("div",{className:"space-y-2",children:t.results.map((e,n)=>l.jsx(ey,{result:e},`${e.anchor}-${n}`))})]})})}function jr(t){return String(t).padStart(2,"0")}function ny(t){const e=new Date(t);return`${e.getFullYear()}-${jr(e.getMonth()+1)}-${jr(e.getDate())} ${jr(e.getHours())}:${jr(e.getMinutes())}`}function iy({agentId:t,label:e,timestamp:n,status:i="pending"}){return l.jsxs("div",{"data-testid":"intent-recognition-placeholder",className:"answer-group group flex gap-3 pb-2 pt-1 items-start",children:[l.jsx(ko,{agentId:t,size:32}),l.jsxs("div",{className:"min-w-0 max-w-[85%] md:max-w-[75%]",children:[l.jsxs("div",{className:"mb-1 flex items-center gap-3 text-xs text-[rgb(128_128_128)]",children:[l.jsx("span",{children:e}),l.jsx("span",{"data-testid":"intent-recognition-time",children:ny(n)})]}),l.jsxs("div",{className:"flex items-center gap-3 text-[16px] text-[#1F1F1F] md:text-[18px]",children:[i==="pending"?l.jsx(Or,{className:"w-4 h-4 flex-shrink-0"}):l.jsx("span",{"aria-hidden":"true",className:"inline-block h-2 w-2 flex-shrink-0 rounded-full bg-[#94A3B8]"}),l.jsx("span",{className:"text-[16px]",children:i==="pending"?"正在识别你的需求...":"已停止对话"})]})]})]})}function sy({replyPreview:t,replyToId:e,getAgentById:n}){const i=vO(),{senderAgentId:s,content:r,deleted:a}=t,o=s?n(s):void 0,c=a?"":o?`@${o.displayName}`:s?`@${s}`:i.name,d=a?"消息已删除":r,u=(o==null?void 0:o.color.primary)??"#9B7EBD",h=()=>{const f=document.querySelector(`[data-message-id="${CSS.escape(e)}"]`);f&&(f.scrollIntoView({behavior:"smooth",block:"center"}),f.classList.add("ring-2","ring-offset-1"),setTimeout(()=>f.classList.remove("ring-2","ring-offset-1"),1500))};return l.jsxs("button",{type:"button",onClick:h,className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full whitespace-nowrap max-w-[200px] truncate cursor-pointer hover:opacity-80 transition-opacity",style:{backgroundColor:`${u}20`,color:u},title:a?"消息已删除":`${c}: ${r}`,children:["↩ ",c,c&&!a?": ":"",d]})}function ry(t){const e=[];for(const n of t)n.kind==="tool_use"?e.push([n]):e.length>0?e[e.length-1].push(n):e.push([n]);return e}function ay(t){const e=[];for(const n of t){if(n.kind==="thinking"){const i=e[e.length-1];if((i==null?void 0:i.kind)==="thinking"){i.content+=n.content;continue}e.push({...n});continue}e.push({...n})}return e}function oy(t){const e=[];for(const n of t){if(n.kind==="streamText"){const i=e[e.length-1];if((i==null?void 0:i.kind)==="streamText"){i.content+=n.content;continue}e.push({...n});continue}e.push({...n})}return e}function ly(t){const e=[];for(const n of t){if(n.kind==="tools"){const i=e[e.length-1];if((i==null?void 0:i.kind)==="tools"){i.events.push(...n.events);continue}e.push({...n,events:[...n.events]});continue}e.push({...n})}return e}function cy(t,e){const n=t.map(i=>i.timestamp).filter(i=>typeof i=="number"&&Number.isFinite(i));return n.length>0?Math.min(...n)-1:typeof e=="number"&&Number.isFinite(e)?e:0}function dy(t,e){const n=t.map(i=>i.timestamp).filter(i=>typeof i=="number"&&Number.isFinite(i));return n.length>0?Math.min(...n)-2:typeof e=="number"&&Number.isFinite(e)?e:0}function uy(t,e,n){var h,f;const s=(t.thinkingChunks&&t.thinkingChunks.length>0?t.thinkingChunks.map(p=>({timestamp:p.timestamp,text:p.text})):(h=t.thinking)!=null&&h.trim()?[{timestamp:cy(e,n),text:t.thinking}]:[]).map((p,O)=>({kind:"thinking",key:`th-${t.taskId}-${O}-${p.timestamp}`,ts:p.timestamp,content:p.text})),a=(t.textChunks&&t.textChunks.length>0?t.textChunks.map(p=>({timestamp:p.timestamp,text:p.text})):(f=t.text)!=null&&f.trim()?[{timestamp:dy(e,n),text:t.text}]:[]).map((p,O)=>({kind:"streamText",key:`tx-${t.taskId}-${O}-${p.timestamp}`,ts:p.timestamp,content:p.text})),c=ry(e).map((p,O)=>{var g,x;return{kind:"tools",key:`to-${t.taskId}-${O}-${((g=p[0])==null?void 0:g.timestamp)??0}`,ts:((x=p[0])==null?void 0:x.timestamp)??0,events:p}}),d=[...s,...a,...c].map((p,O)=>({e:p,order:O}));d.sort((p,O)=>p.e.ts!==O.e.ts?p.e.ts-O.e.ts:p.order-O.order);const u=d.map(p=>p.e);return ly(oy(ay(u)))}const Ar=12e4;function hy({expanded:t,color:e}){return l.jsxs(l.Fragment,{children:[l.jsx("svg",{"aria-hidden":"true",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:e||"#6B7280",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"flex-shrink-0 transition-transform duration-150",style:{display:"none",transform:t?"rotate(-90deg)":"rotate(90deg)"},children:l.jsx("polyline",{points:"9 18 15 12 9 6"})}),l.jsxs("svg",{style:{transform:t?"rotate(-180deg)":"rotate(0deg)"},viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",width:"16.000000",height:"16.000000",fill:"none",children:[l.jsx("rect",{id:"收起-regular",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000"}),l.jsx("path",{id:"路径",d:"M6.3 0C6.6866 0 7 0.313401 7 0.7L7 6.5C7 6.77614 6.77614 7 6.5 7C6.22386 7 6 6.77614 6 6.5L6 1L0.5 1C0.25454 1 0.0503915 0.823125 0.00805569 0.589876L0 0.5C0 0.223858 0.223858 0 0.5 0L6.3 0Z",fill:"rgb(128,128,128)",fillRule:"nonzero",transform:"matrix(-0.707107,0.707107,-0.707107,-0.707107,12.9492,6)"})]})]})}function kO({content:t,className:e,label:n="深度思考中",defaultExpanded:i=!1,expandInExport:s=!0,status:r,events:a,inline:o=!1,persistExpandKey:c}){const d=typeof window<"u"&&new URLSearchParams(window.location.search).get("export")==="true",u=d&&s||i,h=m.useRef(!!(c&&!o&&_n(c)!==void 0&&r!=="streaming")),[f,p]=m.useState(()=>{if(c&&!o&&r!=="streaming"){const T=_n(c);if(T!==void 0)return T}return u}),O=m.useRef(r),g=m.useRef(!1),x=m.useRef(!1),b=a.filter(T=>T.kind==="tool_use");m.useEffect(()=>{if(d){p(d&&s||i),O.current=r;return}const T=O.current;if(O.current=r,r==="streaming"){g.current=!1,p(!0);return}if(T==="streaming"&&(r==="done"||r==="failed"||r==="interrupted")){g.current=!0,h.current||p(!1);return}!g.current&&!h.current&&p(i)},[i,s,d,r]),m.useLayoutEffect(()=>{if(!x.current){x.current=!0;return}typeof window<"u"&&window.dispatchEvent(new Event("office-claw:chat-layout-changed"))},[f]);const y=60,S=t,P=r==="streaming",w=P&&S.length>Ar,C=w?S.slice(-Ar):S,Q=S.length>y?`${S.slice(0,y)}…`:S;return o?l.jsx("div",{className:`task-inline-thinking overflow-hidden${b.length>0?" pb-2":""}`,children:l.jsx("div",{className:"text-[12px] leading-relaxed cli-output-md text-[#595959] mb-1 mt-1",children:P?l.jsxs("div",{"data-testid":"thinking-inline-streaming",className:`whitespace-pre-wrap break-words text-[12px] leading-relaxed text-[#595959] ${e??""}`,children:[w&&l.jsxs("div",{className:"mb-2 text-[11px] text-[#8C8C8C]",children:["仅展示最近 ",Ar.toLocaleString()," 个字符,完整思考将在结束后保留。"]}),C]}):l.jsx(St,{content:S,className:e})})}):l.jsxs("div",{className:`thinking-output-container overflow-hidden pt-2${b.length>0?" pb-4":""}`,children:[l.jsxs("button",{type:"button","data-testid":"thinking-toggle",onClick:()=>{h.current=!0,p(T=>{const A=!T;return c&&Bs(c,A),A})},className:"thinking-button w-full flex items-center gap-2 px-2 text-[14px] font-mono transition-colors",children:[r==="streaming"&&l.jsx(Or,{className:"w-4 h-4 flex-shrink-0"}),r==="interrupted"&&l.jsx(Qo,{className:"w-5 h-5 flex-shrink-0 mt-[1px]"}),r==="done"&&l.jsxs("svg",{className:"mt-[2px]",viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"none",children:[l.jsx("mask",{id:"mask_5",width:"16.000000",height:"16.000008",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"mask431_3429",children:l.jsx("path",{id:"减去顶层",d:"M16 0L0 0L0 16L16 16L16 0ZM7.39177 11.0114L12.4626 5.67807C12.6556 5.47511 12.6478 5.16407 12.4448 4.97104C12.2419 4.77814 11.9308 4.78597 11.738 4.98894L7.0288 9.94191L4.52863 7.32161C4.33543 7.11897 4.0244 7.11181 3.82177 7.30501C3.61913 7.49837 3.6118 7.80941 3.80517 8.01188L6.66763 11.0119C6.7827 11.1325 6.89927 11.1942 7.01693 11.1969C7.13477 11.1997 7.27117 11.1263 7.39177 11.0114Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"})})})}),l.jsx("mask",{id:"mask_4",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"clip431_3420",children:l.jsx("rect",{id:"support",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(0,0,0)"})})})}),l.jsx("defs",{children:l.jsx("filter",{id:"pixso_custom_mask_type_alpha",children:l.jsx("feColorMatrix",{type:"matrix",values:"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 "})})}),l.jsx("mask",{id:"mask_3",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"clip431_3419",children:l.jsx("rect",{id:"ic_public_success-成功/base/ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(0,0,0)"})})})}),l.jsx("rect",{id:"ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"ic_public_success-成功/base/ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(255,255,255)",fillOpacity:"0"}),l.jsx("g",{id:"clip path group",mask:"url(#mask_3)",children:l.jsxs("g",{id:"组合 5142",children:[l.jsx("g",{id:"clip path group",mask:"url(#mask_4)",children:l.jsxs("g",{id:"组合 5143",children:[l.jsx("path",{id:"path1",d:"M1.66378e-05 7.9924C1.66378e-05 6.7424 -0.0033167 5.4924 1.66378e-05 4.2424C-0.0033167 3.63574 0.07335 3.0324 0.220017 2.44907C0.546683 1.20907 1.35335 0.469071 2.59668 0.185737C3.21335 0.052404 3.85335 -0.0109293 4.48668 -0.000929316C6.88002 -0.000929316 9.27668 -0.000929316 11.68 -0.000929316C12.2833 -0.00426265 12.8867 0.0590707 13.4767 0.205737C14.7533 0.515737 15.52 1.3224 15.81 2.59907C15.9434 3.19907 16.0033 3.80907 15.9967 4.42907C15.9967 6.8524 15.9967 9.27574 15.9967 11.6957C16 12.2957 15.9333 12.8924 15.79 13.4757C15.4767 14.7557 14.6667 15.5157 13.3934 15.8091C12.77 15.9424 12.1367 16.0057 11.5033 15.9957C9.11668 15.9957 6.72668 15.9957 4.34335 15.9957C3.73335 16.0024 3.12335 15.9324 2.53335 15.7924C1.25002 15.4824 0.476683 14.6691 0.186683 13.3857C0.0400166 12.7391 1.66378e-05 12.0891 1.66378e-05 11.4324C1.66378e-05 10.2857 1.66378e-05 9.13574 1.66378e-05 7.9924Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"}),l.jsx("circle",{id:"path2",cx:"8",cy:"8",r:"8",fill:"rgb(255,255,255)",fillOpacity:"0"})]})}),l.jsx("ellipse",{id:"path3",rx:"7.333333",ry:"7.333102",cx:"8.00008202",cy:"7.99911785",stroke:"rgb(92,179,0)",strokeWidth:"1"}),l.jsx("path",{id:"path6",d:"M4.16675 7.66732L7.02675 10.6673L12.0967 5.33398",fillRule:"nonzero",stroke:"rgb(92,179,0)",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1"}),l.jsx("g",{id:"mask",mask:"url(#mask_5)",children:l.jsx("g",{id:"组合 5144",children:l.jsx("ellipse",{id:"path4",rx:"8.000000",ry:"7.999748",cx:"8",cy:"7.99974823",fill:"rgb(255,255,255)",fillOpacity:"0"})})}),l.jsx("path",{id:"path6 (边框)",d:"M12.4601 5.67729L7.39005 11.0106C7.27005 11.124 7.13339 11.1973 7.01672 11.1973C6.89672 11.194 6.78005 11.1306 6.66672 11.0106L3.80339 8.01062C3.61005 7.80729 3.61672 7.49729 3.82005 7.30396C4.02339 7.11062 4.33339 7.11729 4.52672 7.32062L7.02672 9.94062L11.7367 4.98729C11.9301 4.78396 12.2401 4.77729 12.4434 4.97062C12.6467 5.16396 12.6534 5.47396 12.4601 5.67729Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"})]})})]}),r==="failed"&&l.jsxs("svg",{viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"none",children:[l.jsx("mask",{id:"mask_2",width:"16.000000",height:"16.000008",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"mask431_3429",children:l.jsx("path",{id:"减去顶层",d:"M16 0L0 0L0 16L16 16L16 0ZM7.39177 11.0114L12.4626 5.67807C12.6556 5.47511 12.6478 5.16407 12.4448 4.97104C12.2419 4.77814 11.9308 4.78597 11.738 4.98894L7.0288 9.94191L4.52863 7.32161C4.33543 7.11897 4.0244 7.11181 3.82177 7.30501C3.61913 7.49837 3.6118 7.80941 3.80517 8.01188L6.66763 11.0119C6.7827 11.1325 6.89927 11.1942 7.01693 11.1969C7.13477 11.1997 7.27117 11.1263 7.39177 11.0114Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"})})})}),l.jsx("mask",{id:"mask_1",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsxs("g",{id:"clip431_3420",children:[l.jsx("rect",{id:"support",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(0,0,0)"}),l.jsx("path",{id:"合并",d:"M9.72492 10.2286C9.65951 10.2286 9.59888 10.217 9.54302 10.1939C9.48689 10.1707 9.43559 10.1359 9.38909 10.0894L7.1 7.80031L4.81091 10.0894C4.76441 10.1359 4.7131 10.1707 4.65697 10.1939Q4.57318 10.2286 4.47508 10.2286Q4.37698 10.2286 4.29319 10.1939C4.23706 10.1707 4.18575 10.1359 4.13925 10.0894C4.09254 10.0427 4.05758 9.99115 4.03438 9.93476C4.01146 9.87908 4 9.81869 4 9.75358C4 9.68846 4.01146 9.62807 4.03438 9.57239Q4.06919 9.48781 4.13925 9.41775L6.42835 7.12866L4.13925 4.83957Q4.06919 4.7695 4.03438 4.68493Q4 4.60141 4 4.50374Q4 4.40607 4.03438 4.32256L4.03438 4.32256Q4.06919 4.23798 4.13925 4.16791Q4.20932 4.09785 4.2939 4.06304Q4.37741 4.02866 4.47508 4.02866Q4.57275 4.02866 4.65627 4.06304Q4.74084 4.09785 4.81091 4.16791L7.1 6.457L9.38909 4.16791C9.50103 4.05597 9.61298 4 9.72492 4C9.83686 4 9.9488 4.05597 10.0607 4.16791C10.1075 4.21462 10.1424 4.26617 10.1656 4.32255C10.1885 4.37823 10.2 4.43863 10.2 4.50374Q10.2 4.60141 10.1656 4.68493C10.1424 4.74131 10.1075 4.79286 10.0607 4.83957L7.77165 7.12866L10.0607 9.41775C10.1075 9.46446 10.1424 9.51601 10.1656 9.57239C10.1885 9.62807 10.2 9.68847 10.2 9.75358C10.2 9.81869 10.1885 9.87909 10.1656 9.93477C10.1424 9.99115 10.1075 10.0427 10.0607 10.0894C10.0142 10.1359 9.96293 10.1707 9.90681 10.1939C9.85095 10.217 9.79032 10.2286 9.72492 10.2286Z",fill:"rgb(255,255,255)",fillRule:"evenodd"})]})})}),l.jsx("defs",{children:l.jsx("filter",{id:"pixso_custom_mask_type_alpha",children:l.jsx("feColorMatrix",{type:"matrix",values:"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 "})})}),l.jsx("mask",{id:"mask_0",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",maskUnits:"userSpaceOnUse",children:l.jsx("g",{filter:"url(#pixso_custom_mask_type_alpha)",children:l.jsx("g",{id:"clip431_3419",children:l.jsx("rect",{id:"ic_public_success-成功/base/ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(0,0,0)"})})})}),l.jsx("rect",{id:"ic_public_error",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000"}),l.jsx("rect",{id:"ic_public_success-成功/base/ic_public_success",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000",fill:"rgb(255,255,255)",fillOpacity:"0"}),l.jsx("g",{id:"clip path group",mask:"url(#mask_0)",children:l.jsxs("g",{id:"组合 5142",children:[l.jsx("g",{id:"clip path group",mask:"url(#mask_1)",children:l.jsxs("g",{id:"组合 5143",children:[l.jsx("path",{id:"path1",d:"M1.66378e-05 7.9924C1.66378e-05 6.7424 -0.0033167 5.4924 1.66378e-05 4.2424C-0.0033167 3.63574 0.07335 3.0324 0.220017 2.44907C0.546683 1.20907 1.35335 0.469071 2.59668 0.185737C3.21335 0.052404 3.85335 -0.0109293 4.48668 -0.000929316C6.88002 -0.000929316 9.27668 -0.000929316 11.68 -0.000929316C12.2833 -0.00426265 12.8867 0.0590707 13.4767 0.205737C14.7533 0.515737 15.52 1.3224 15.81 2.59907C15.9434 3.19907 16.0033 3.80907 15.9967 4.42907C15.9967 6.8524 15.9967 9.27574 15.9967 11.6957C16 12.2957 15.9333 12.8924 15.79 13.4757C15.4767 14.7557 14.6667 15.5157 13.3934 15.8091C12.77 15.9424 12.1367 16.0057 11.5033 15.9957C9.11668 15.9957 6.72668 15.9957 4.34335 15.9957C3.73335 16.0024 3.12335 15.9324 2.53335 15.7924C1.25002 15.4824 0.476683 14.6691 0.186683 13.3857C0.0400166 12.7391 1.66378e-05 12.0891 1.66378e-05 11.4324C1.66378e-05 10.2857 1.66378e-05 9.13574 1.66378e-05 7.9924Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"}),l.jsx("circle",{id:"path2",cx:"8",cy:"8",r:"8",fill:"rgb(255,255,255)",fillOpacity:"0"})]})}),l.jsx("ellipse",{id:"path3",rx:"7.333333",ry:"7.333102",cx:"8.00008202",cy:"7.99911785",stroke:"rgb(242,48,48)",strokeWidth:"1"}),l.jsx("g",{id:"mask",mask:"url(#mask_2)",children:l.jsx("g",{id:"组合 5144",children:l.jsx("ellipse",{id:"path4",rx:"8.000000",ry:"7.999748",cx:"8",cy:"7.99974823",fill:"rgb(255,255,255)",fillOpacity:"0"})})}),l.jsx("path",{id:"path6 (边框)",d:"M12.4601 5.67729L7.39005 11.0106C7.27005 11.124 7.13339 11.1973 7.01672 11.1973C6.89672 11.194 6.78005 11.1306 6.66672 11.0106L3.80339 8.01062C3.61005 7.80729 3.61672 7.49729 3.82005 7.30396C4.02339 7.11062 4.33339 7.11729 4.52672 7.32062L7.02672 9.94062L11.7367 4.98729C11.9301 4.78396 12.2401 4.77729 12.4434 4.97062C12.6467 5.16396 12.6534 5.47396 12.4601 5.67729Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"evenodd"}),l.jsx("path",{id:"合并",d:"M10.7249 11.2286C10.6595 11.2286 10.5989 11.217 10.543 11.1939C10.4869 11.1707 10.4356 11.1359 10.3891 11.0894L8.1 8.80031L5.81091 11.0894C5.76441 11.1359 5.7131 11.1707 5.65697 11.1939Q5.57318 11.2286 5.47508 11.2286Q5.37698 11.2286 5.29319 11.1939C5.23706 11.1707 5.18575 11.1359 5.13925 11.0894C5.09254 11.0427 5.05758 10.9911 5.03438 10.9348C5.01146 10.8791 5 10.8187 5 10.7536C5 10.6885 5.01146 10.6281 5.03438 10.5724Q5.06919 10.4878 5.13925 10.4177L7.42835 8.12866L5.13925 5.83957Q5.06919 5.7695 5.03438 5.68493Q5 5.60141 5 5.50374Q5 5.40607 5.03438 5.32256L5.03438 5.32256Q5.06919 5.23798 5.13925 5.16791Q5.20932 5.09785 5.2939 5.06304Q5.37741 5.02866 5.47508 5.02866Q5.57275 5.02866 5.65627 5.06304Q5.74084 5.09785 5.81091 5.16791L8.1 7.457L10.3891 5.16791C10.501 5.05597 10.613 5 10.7249 5C10.8369 5 10.9488 5.05597 11.0607 5.16791C11.1075 5.21462 11.1424 5.26617 11.1656 5.32255C11.1885 5.37823 11.2 5.43863 11.2 5.50374Q11.2 5.60141 11.1656 5.68493C11.1424 5.74131 11.1075 5.79286 11.0607 5.83957L8.77165 8.12866L11.0607 10.4177C11.1075 10.4645 11.1424 10.516 11.1656 10.5724C11.1885 10.6281 11.2 10.6885 11.2 10.7536C11.2 10.8187 11.1885 10.8791 11.1656 10.9348C11.1424 10.9912 11.1075 11.0427 11.0607 11.0894C11.0142 11.1359 10.9629 11.1707 10.9068 11.1939C10.8509 11.217 10.7903 11.2286 10.7249 11.2286Z",fill:"rgb(242,48,48)",fillRule:"evenodd"})]})})]}),l.jsx("span",{className:"text-[16px] font-bold font-sans",style:{color:"rgb(31, 31, 31)"},children:n}),l.jsx("span",{style:{color:"rgb(31, 31, 31)"},children:l.jsx(hy,{expanded:f,color:"rgb(31, 31, 31)"})}),!f&&l.jsx("span",{className:"hidden truncate max-w-[240px]",style:{color:"rgb(31, 31, 31)"},children:Q})]}),f&&l.jsx("div",{className:"thinking-output-body",children:l.jsx("div",{style:{padding:"8px 0 8px 28px"},className:"text-[12px] leading-relaxed cli-output-md text-[#595959]",children:P?l.jsxs("div",{"data-testid":"thinking-streaming-body",className:`whitespace-pre-wrap break-words text-[12px] leading-relaxed text-[#595959] ${e??""}`,children:[w&&l.jsxs("div",{className:"mb-2 text-[11px] text-[#8C8C8C]",children:["仅展示最近 ",Ar.toLocaleString()," 个字符,完整思考将在结束后保留。"]}),C]}):l.jsx(St,{content:S,className:e})})})]})}const fy="分析检索";function oh({expanded:t,className:e}){return l.jsx("svg",{"aria-hidden":!0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:`flex-shrink-0 text-gray-400 transition-transform duration-150 ${t?"rotate-180":""} ${e}`,children:l.jsx("polyline",{points:"6 9 12 15 18 9"})})}function py(t){var i;return!t.taskId||t.taskId===_s?fy:((i=t.title)==null?void 0:i.trim())||t.taskId}function Oy(t){for(let e=t.length-1;e>=0;e--){const n=t[e];if((n==null?void 0:n.kind)==="streamText")return n.key}}function my(t,e){const{cliStatus:n,isLastSegment:i,entryKey:s,lastStreamTextKey:r}=e;return n==="interrupted"&&i&&s===r&&t.trim().length>0&&!t.trimEnd().endsWith("(用户停止)")?`${t.trimEnd()} (用户停止)`:t}function gy({cliStatus:t,isLastVisibleTask:e}){return t==="streaming"&&e?l.jsx(Or,{className:"w-[18px] h-[18px] flex-shrink-0"}):t==="interrupted"&&e?l.jsx(Qo,{className:"w-[18px] h-[18px] flex-shrink-0"}):t==="failed"&&e?l.jsx("span",{className:"flex h-[18px] w-[18px] flex-shrink-0 items-center justify-center text-red-500 text-xs font-bold","aria-hidden":!0,children:"!"}):l.jsx(d5,{})}function xy({threadId:t,taskRuns:e,message:n,cliStatus:i,thinkingFontClass:s,breedColor:r,thinkingMode:a,thinkingLabel:o,projectPath:c,suppressedGeneratedFileNames:d,pendingAuthRequests:u,onAuthRespond:h,onOpenSecurityManagement:f}){const p=m.useRef(i),O=m.useMemo(()=>zs(t,n.id,"thinking-exec"),[t,n.id]),g=m.useRef(_n(O)!==void 0),[x,b]=m.useState(()=>{const N=_n(O);return N!==void 0?N:i==="streaming"}),[y,S]=m.useState({});m.useEffect(()=>{const N=p.current;if(p.current=i,i==="streaming"){b(!0);return}!g.current&&N==="streaming"&&(i==="done"||i==="failed"||i==="interrupted")&&b(!1)},[i]);const P=(N,R)=>`${N.taskId}:${R}`,w=N=>zs(t,n.id,`task:${N}`),C=N=>{if(Object.prototype.hasOwnProperty.call(y,N))return y[N]!==!1;const R=_n(w(N));return R!==void 0?R:!0},Q=N=>{const R=!C(N);Bs(w(N),R),S(z=>({...z,[N]:R}))},T=m.useMemo(()=>e.segments.flatMap(N=>Ui(N.toolEvents??[],void 0).filter(R=>R.kind==="tool_result")),[e]),A=e.segments.map((N,R)=>({seg:N,i:R})).filter(({seg:N})=>{var de,ce,ae;const R=N.toolEvents??[],I=Ui(R,void 0,{padUnmatchedToolResults:i==="done"}).length>0,B=!!((de=N.thinking)!=null&&de.trim())||!!(N.thinkingChunks&&N.thinkingChunks.length>0),M=!!((ce=N.text)!=null&&ce.trim())||!!(N.textChunks&&N.textChunks.length>0),L=!N.taskId||N.taskId===_s,F=B||I||M;return L?F:F||!!((ae=N.title)!=null&&ae.trim())}),$=i==="streaming"?l.jsx(Or,{className:"w-[18px] h-[18px] flex-shrink-0"}):i==="interrupted"?l.jsx(Qo,{className:"w-[18px] h-[18px] flex-shrink-0"}):null;return l.jsxs("div",{className:"thinking-execution border-b border-[rgba(240,240,240,1)] pb-3",children:[l.jsxs("button",{type:"button",className:"flex gap-1 pt-2 items-center",onClick:()=>{g.current=!0,b(N=>{const R=!N;return Bs(O,R),R})},children:[$,l.jsx("span",{className:"text-[16px] text-[rgb(89,89,89)]",children:o??"思考执行中"}),l.jsx(oh,{expanded:x})]}),x&&l.jsx("div",{className:"task-list flex flex-col gap-2.5 pt-2",children:A.map(({seg:N,i:R},z)=>{const I=P(N,R),B=py(N),M=z===A.length-1,L=M?i:"done",F=N.toolEvents??[],de=Ui(F,void 0,{padUnmatchedToolResults:i==="done"||!M}),ce=uy(N,de,n.timestamp),ae=Oy(ce),J=C(I),X=M,ne=J&&!X;return l.jsxs("div",{className:"task-item relative flex gap-1 items-stretch",children:[ne?l.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute left-[9px] z-0 w-px bg-[rgb(219,219,219)]",style:{top:"calc(18px + 8px)",bottom:"calc(-0.625rem + 8px)"}}):null,l.jsx("div",{className:"relative z-[1] flex w-[18px] shrink-0 flex-col items-center",children:l.jsx("div",{className:"flex h-[18px] w-[18px] shrink-0 items-center justify-center bg-white",children:l.jsx(gy,{cliStatus:i,isLastVisibleTask:X})})}),l.jsxs("div",{className:"min-w-0 flex-1",children:[l.jsxs("button",{type:"button",className:"flex items-center gap-2 text-left",onClick:()=>Q(I),children:[l.jsx("span",{className:"text-[12px] text-gray-800 flex-1 min-w-0 truncate",children:B}),l.jsx(oh,{expanded:J})]}),J?l.jsx("div",{className:"pt-2 pl-1",children:ce.map(ue=>ue.kind==="thinking"?l.jsx(kO,{status:L,events:[],content:ue.content,className:s,defaultExpanded:!0,expandInExport:!1,breedColor:r,inline:!0},ue.key):ue.kind==="streamText"?l.jsx("div",{className:"task-inline-stream-text overflow-hidden pb-1 pt-1 text-[12px] leading-relaxed text-[#595959]",children:l.jsx(St,{content:my(ue.content,{cliStatus:i,isLastSegment:X,entryKey:ue.key,lastStreamTextKey:ae}),className:s})},ue.key):l.jsx(OO,{events:ue.events,status:L,message:n,threadId:t,suppressedGeneratedFileNames:d,thinkingMode:a,defaultExpanded:!0,flatToolsDisplay:!0,breedColor:r,projectPath:c,authorizationRequests:u,onAuthorizationRespond:h,onOpenSecurityManagement:f,extraToolResults:T},ue.key))}):null]})]},I)})})]})}function by({className:t,style:e}){return l.jsxs("svg",{className:t,style:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[l.jsx("circle",{cx:"12",cy:"12",r:"10"}),l.jsx("path",{d:"m15 9-6 6"}),l.jsx("path",{d:"m9 9 6 6"})]})}function yy({className:t,style:e}){return l.jsx("svg",{className:t,style:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("path",{d:"m6 9 6 6 6-6"})})}function lh(t){return new Date(t).toLocaleTimeString()}function vy(t){const e=Math.floor(t/1e3),n=Math.floor(e/60),i=e%60;return`${t}ms (${n}m ${i}s)`}function nl(t,e=32){return t.length>e?`${t.slice(0,e)}...`:t}function Sy({errorMessage:t,diagnostics:e,description:n}){const[i,s]=m.useState(!1),r=[{key:"silenceDuration",value:vy(e.silenceDurationMs)},{key:"processAlive",value:e.processAlive?"true (at timeout)":"false"}];return e.lastEventType&&r.push({key:"lastEventType",value:e.lastEventType}),e.firstEventAt&&r.push({key:"firstEventAt",value:lh(e.firstEventAt)}),e.lastEventAt&&r.push({key:"lastEventAt",value:lh(e.lastEventAt)}),e.cliSessionId&&r.push({key:"cliSessionId",value:nl(e.cliSessionId),purple:!0}),e.invocationId&&r.push({key:"invocationId",value:nl(e.invocationId),purple:!0}),e.rawArchivePath&&r.push({key:"rawArchivePath",value:nl(e.rawArchivePath),purple:!0}),l.jsxs("div",{"data-testid":"timeout-diagnostics",className:"flex flex-col gap-2.5",children:[l.jsxs("div",{className:"flex items-center gap-2.5 rounded-[10px]",style:{backgroundColor:"#FFF0ED",border:"1px solid #D0806833",padding:"10px 14px"},children:[l.jsx(by,{className:"w-4 h-4 flex-shrink-0",style:{color:"#D08068"}}),l.jsxs("div",{className:"flex flex-col gap-0.5 min-w-0",children:[l.jsx("span",{className:"text-[13px] font-semibold",style:{color:"#1A1918"},children:t}),n&&l.jsx("span",{className:"text-xs",style:{color:"#6D6C6A",lineHeight:1.4},children:n})]})]}),l.jsxs("button",{"data-testid":"diagnostics-toggle",onClick:()=>s(!i),className:"flex items-center gap-1.5 cursor-pointer bg-transparent border-none p-0",children:[l.jsx(yy,{className:"w-3.5 h-3.5 transition-transform",style:{color:"#9C9B99",transform:i?"rotate(180deg)":void 0}}),l.jsx("span",{className:"text-xs font-semibold",style:{color:"#9C9B99"},children:"Diagnostics"})]}),i&&l.jsx("div",{"data-testid":"diagnostics-panel",className:"rounded-lg",style:{backgroundColor:"#1E1D1C",padding:"12px 14px"},children:l.jsx("div",{className:"flex flex-col gap-1",children:r.map(a=>l.jsxs("div",{className:"flex gap-2",children:[l.jsx("span",{className:"text-[11px] font-medium",style:{color:"#9C9B99"},children:a.key}),l.jsx("span",{className:"text-[11px]",style:{color:a.purple?"#C4A0E8":"#D89575"},children:a.value})]},a.key))})})]})}function wy({message:t,threadId:e,getAgentById:n,suppressedGeneratedFileNames:i,pendingAuthRequests:s,onAuthRespond:r,onOpenSecurityManagement:a}){var Y,le,me,Ee,Ae,De,Ie,Ye,Ve,Ge,v,U,_,Z,te,D,he,pe,we,xe,be;const o=vO(),{getExpertById:c}=wd(),d=bd(),u=E(oe=>oe.threads),h=E(oe=>oe.hasActiveInvocation),f=E(oe=>oe.targetAgents),p=E(oe=>{var ye,He;return t.agentId?(He=(ye=oe.agentInvocations)==null?void 0:ye[t.agentId])==null?void 0:He.invocationId:void 0}),O=E(oe=>{var ye;return t.agentId?(ye=oe.agentInvocations)==null?void 0:ye[t.agentId]:void 0}),g=(le=(Y=t.extra)==null?void 0:Y.stream)==null?void 0:le.invocationId,x=E(oe=>{var ye;return g?(ye=oe.activeInvocations[g])==null?void 0:ye.startedAt:void 0}),b=E(oe=>oe.uiThinkingExpandedByDefault),y=t.type==="user"&&!t.agentId,S=t.type==="system",P=t.type==="connector",w=P&&((me=t.source)==null?void 0:me.connector)==="startup-reconciler",C=w?"assistant":t.agentId,Q=C?n(C)??c(C):void 0,T=Q?(()=>{const oe=jb[Q.breedId??""]??Ab,ye=Q.variantLabel?`${Q.displayName}(${Q.variantLabel})`:`${Q.displayName}`,He=t.origin==="callback";return{label:ye,font:oe.font,radius:oe.radius,bgColor:He?t2(Q.color.primary,.08):Q.color.secondary,borderColor:He?ja(Q.color.primary,.12):ja(Q.color.primary,.3)}})():null,A=E(oe=>oe.threads.find(ye=>ye.id===oe.currentThreadId)),$=e??(A==null?void 0:A.id)??"default",N=t.contentBlocks&&t.contentBlocks.length>0,R=t.content.trim().length>0,z=t.visibility==="whisper",I=z&&!!t.revealedAt,B=Q?wb(t,()=>({toAgent:Sd(),re:B0()})):null,M=t.origin==="stream",L=!!(t.isStreaming&&t.agentId&&(p||h&&f.includes(t.agentId))),F=(Ee=t.extra)==null?void 0:Ee.taskRuns,de=(F==null?void 0:F.v)===1&&(((Ae=F.segments)==null?void 0:Ae.length)??0)>0,ce=((Ie=(De=t.extra)==null?void 0:De.stream)==null?void 0:Ie.userStopped)===!0,ae=ce&&t.content.trim().length>0&&!t.content.trimEnd().endsWith("(用户停止)")?" (用户停止)":"",J=M?t.content:void 0,X=Ui(t.toolEvents,J,{padUnmatchedToolResults:!L&&t.variant!=="error"&&!ce}),ne=X.length>0,ue=L?"streaming":t.variant==="error"?"failed":ce?"interrupted":"done",je=$b(t,ue,O,x),ve=ne?So(X):[],$e=new Set([...ve.map(oe=>oe.name.toLowerCase()),...(i??[]).map(oe=>oe.toLowerCase())]),Qe=Rb(t.contentBlocks,$e),H=_b((Ve=(Ye=t.extra)==null?void 0:Ye.rich)==null?void 0:Ve.blocks,$e),V=!!(Qe&&Qe.length>0);if(t.variant==="intent_recognition"){const oe=((Ge=$a().find(xt=>{var tt;return((tt=xt.roster)==null?void 0:tt.available)!==!1}))==null?void 0:Ge.id)??((v=$a()[0])==null?void 0:v.id)??"",ye=t.agentId??oe,He=t.agentId?Q:ye?n(ye):void 0;return l.jsx(iy,{agentId:ye,label:(t.agentId?T==null?void 0:T.label:void 0)??(He==null?void 0:He.displayName)??t.agentId??ye??"主智能体",timestamp:t.timestamp,status:t.content==="stopped"?"stopped":"pending"})}if(S){if(t.variant==="evidence"&&t.evidence)return l.jsx(ty,{data:t.evidence});const oe=!t.variant&&t.content.trim().startsWith("Error:"),ye=t.variant==="error"||oe||!!((U=t.extra)!=null&&U.errorFallback),He=t.variant==="warning",xt=t.variant==="tool",tt=t.variant==="a2a_followup";if(ye&&((_=t.extra)!=null&&_.timeoutDiagnostics))return l.jsx("div",{"data-message-id":t.id,className:"flex justify-center mb-3",children:l.jsx("div",{className:"max-w-[85%] w-full",children:l.jsx(Sy,{errorMessage:t.content,diagnostics:t.extra.timeoutDiagnostics})})});const Qt=xt?"text-gray-400 bg-gray-50/50 font-mono text-xs py-1":tt?"text-purple-700 bg-purple-50 border border-purple-200":He?"text-amber-800 bg-amber-50 border border-amber-200":ye?"text-red-500 bg-red-50 rounded-full":"text-blue-700 bg-blue-50 hidden";return l.jsx("div",{"data-message-id":t.id,className:`flex justify-center ${xt?"mb-1":"mb-3"}`,children:l.jsxs("div",{className:`text-sm px-4 py-2 rounded-lg whitespace-pre-wrap text-left max-w-[85%] ${Qt}`,children:[tt&&l.jsx("span",{className:"mr-1",children:"🔗"}),He&&l.jsx("span",{className:"mr-1",children:"⚠️"}),ye?l.jsx(St,{content:t.content,disableCommandPrefix:!0}):t.content,tt&&l.jsx("span",{className:"block mt-1 text-xs text-purple-500",children:"输入 @智能体 跟进 来发起 follow-up"})]})})}if(P&&t.source&&!w)return l.jsx(Wb,{message:t});if(y){const oe=(Z=o.avatar)==null?void 0:Z.trim();return l.jsx("div",{"data-message-id":t.id,className:"user-question-group flex justify-end gap-2 mb-[8px] items-start",children:l.jsxs("div",{className:"max-w-[75%] flex flex-col items-end gap-1 min-w-0",children:[l.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-500 px-1 max-w-full",children:[oe?l.jsx("img",{src:oe,alt:o.name,className:"h-5 w-5 rounded-full object-cover flex-shrink-0"}):null,z&&l.jsx("span",{className:`flex-shrink-0 px-1.5 py-0.5 rounded ${I?"bg-gray-100 text-gray-500":"bg-amber-100 text-amber-600"}`,children:I?"已揭秘":`悄悄话 → ${((te=t.whisperTo)==null?void 0:te.map(ye=>{const He=n(ye)??c(ye);return He?He.displayName:ye}).join(", "))??""}`})]}),l.jsx("div",{className:`rounded-[24px] rounded-tr-sm px-4 py-3 w-full ${z&&!I?"bg-amber-50 text-amber-900 border border-dashed border-amber-300":""}`,style:!z||I?{backgroundColor:"var(--chat-user-bubble-bg)",color:"rgb(25, 25, 25)"}:void 0,children:N?l.jsx(tl,{blocks:t.contentBlocks,enableSkillAndQuickActionTokens:!0,showFileAction:!1}):l.jsx(St,{content:t.content,enableSkillAndQuickActionTokens:!0})})]})})}return!L&&!R&&!ne&&!N&&!((pe=(he=(D=t.extra)==null?void 0:D.rich)==null?void 0:he.blocks)!=null&&pe.length)&&!((we=t.extra)!=null&&we.crossPost)&&!t.thinking&&!de?null:l.jsxs("div",{"data-message-id":t.id,className:"answer-group group flex gap-3 mb-[8px] items-start",children:[Q&&l.jsx(ko,{agentId:C,size:32,status:L?"streaming":void 0,showRing:!1}),l.jsxs("div",{className:"answer-container max-w-[85%] md:max-w-[75%] min-w-0",children:[T&&l.jsxs("div",{className:"answer-header flex flex-col gap-1 min-w-0",children:[l.jsxs("div",{className:"flex items-center gap-2 min-w-0 text-[rgb(128_128_128)]",children:[l.jsx("span",{className:"text-xs",children:T.label}),l.jsx("span",{className:"text-xs text-gray-400",children:Nb(t.timestamp)}),z&&l.jsx("span",{className:`text-xs px-1.5 py-0.5 rounded ${I?"bg-gray-100 text-gray-500":"bg-amber-100 text-amber-600"}`,children:I?"已揭秘":`悄悄话 → ${((xe=t.whisperTo)==null?void 0:xe.map(oe=>{const ye=n(oe)??c(oe);return ye?ye.displayName:oe}).join(", "))??""}`}),!z&&B&&l.jsx(Vb,{direction:B,getAgentById:n}),t.replyTo&&t.replyPreview&&l.jsx(sy,{replyPreview:t.replyPreview,replyToId:t.replyTo,getAgentById:n})]}),((be=t.extra)==null?void 0:be.crossPost)&&(()=>{var tt,Qt;const oe=(tt=t.extra.crossPost)==null?void 0:tt.sourceThreadId,ye=((Qt=u.find(Ct=>Ct.id===oe))==null?void 0:Qt.title)??"未命名会话",He=oe.replace(/^thread_/,"").slice(0,8),xt=T==null?void 0:T.label;return l.jsxs("a",{href:`/thread/${oe}`,onClick:Ct=>{Ct.preventDefault(),Ct.stopPropagation(),d(`/thread/${oe}`)},className:"inline-flex items-center gap-1.5 border px-3 py-1 rounded-full bg-[#FDF6ED] border-[#E8DCCF] text-[#8D6E63] hover:bg-[#F5EDE0] transition-colors cursor-pointer w-fit max-w-full",title:oe,"aria-label":`跳转到来源 thread ${oe}`,children:[l.jsx("span",{className:"text-[10px] font-semibold","aria-hidden":!0,children:"📮"}),l.jsxs("span",{className:"min-w-0 truncate",children:[xt&&l.jsxs("span",{className:"font-medium",children:[xt," · "]}),He," · ",ye]})]})})()]}),l.jsxs("div",{className:`answer-body overflow-hidden ${T?`${T.font??""}`:"bg-white border-gray-200"}`,children:[de&&F?l.jsxs("div",{className:"flex flex-col gap-3",children:[l.jsx(xy,{threadId:$,taskRuns:F,message:t,cliStatus:ue,thinkingLabel:je,thinkingFontClass:T==null?void 0:T.font,breedColor:Q==null?void 0:Q.color.primary,thinkingMode:A==null?void 0:A.thinkingMode,projectPath:A==null?void 0:A.projectPath,suppressedGeneratedFileNames:i,pendingAuthRequests:s,onAuthRespond:r,onOpenSecurityManagement:a}),!M&&V?l.jsx(tl,{blocks:Qe}):!M&&R?l.jsx(St,{content:t.content,className:T==null?void 0:T.font,enableSkillAndQuickActionTokens:!1}):M&&R?l.jsx(St,{content:`${t.content.trimEnd()}${ae}`,className:T==null?void 0:T.font,enableSkillAndQuickActionTokens:!1}):null,l.jsx(pO,{events:X,status:ue,suppressedGeneratedFileNames:i,projectPath:A==null?void 0:A.projectPath})]}):l.jsxs(l.Fragment,{children:[ne&&M?null:!M&&V?l.jsx(tl,{blocks:Qe}):!M&&R?l.jsx(St,{content:t.content,className:T==null?void 0:T.font,enableSkillAndQuickActionTokens:!1}):M&&R?l.jsx(St,{content:`${t.content.trimEnd()}${ae}`,className:T==null?void 0:T.font,enableSkillAndQuickActionTokens:!1}):null,t.thinking&&l.jsx(kO,{status:ue,events:X,content:t.thinking,className:T==null?void 0:T.font,label:je,defaultExpanded:b,expandInExport:!1,breedColor:Q==null?void 0:Q.color.primary,persistExpandKey:zs($,t.id,"thinking-standalone")}),ne&&l.jsx(OO,{events:X,status:ue,message:t,threadId:$,suppressedGeneratedFileNames:i,thinkingMode:A==null?void 0:A.thinkingMode,defaultExpanded:b,breedColor:Q==null?void 0:Q.color.primary,projectPath:A==null?void 0:A.projectPath,authorizationRequests:s,onAuthorizationRespond:r,onOpenSecurityManagement:a})]}),H&&H.length>0&&l.jsx(bO,{blocks:H,agentId:t.agentId,messageId:t.id}),L&&!M&&l.jsx("span",{className:"inline-block w-1.5 h-4 bg-current animate-pulse ml-0.5 rounded-full opacity-50"})]})]})]})}function ky(t,e){return t.message===e.message&&t.threadId===e.threadId&&t.getAgentById===e.getAgentById&&t.suppressedGeneratedFileNames===e.suppressedGeneratedFileNames&&t.pendingAuthRequests===e.pendingAuthRequests&&t.onAuthRespond===e.onAuthRespond&&t.onOpenSecurityManagement===e.onOpenSecurityManagement}const QO=m.memo(wy,ky);QO.displayName="ChatMessage";const ch="draft-";function fc(t){var e,n;if((n=(e=t.extra)==null?void 0:e.stream)!=null&&n.invocationId)return t.extra.stream.invocationId;if(t.id.startsWith(ch))return t.id.slice(ch.length)}function dh(t,e){var i,s;if(t.type!=="assistant"||t.origin!=="stream"||!t.agentId)return!1;if(t.isStreaming)return!0;const n=fc(t);return n?(i=e.activeInvocations)!=null&&i[n]?!0:e.hasActiveInvocation&&((s=e.agentInvocations[t.agentId])==null?void 0:s.invocationId)===n:!1}const Qy=300*1e3;let Cy=0;const uh=F0("NEXT_PUBLIC_DEBUG_SKIP_FILE_CHANGE_UI")==="1";function hh(t,e){var i,s;const n=new Set;for(const r of Object.keys(t))r&&n.add(r);for(const r of e){if(r.type!=="assistant"||!r.isStreaming)continue;const a=(s=(i=r.extra)==null?void 0:i.stream)==null?void 0:s.invocationId;typeof a=="string"&&a.trim().length>0&&n.add(a)}return[...n]}function fh(t,e){e.length!==0&&G(`/api/threads/${encodeURIComponent(t)}/stream-stopped`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({invocationIds:e})}).catch(()=>{})}function Py(t,e){return t.length<=e?t:`${t.slice(0,e)}…`}function ph(t,e){try{const n=JSON.stringify(t);return Py(n,e)}catch{return"[unserializable input]"}}function Ty(t,e){if(e!=null){if(t==="send_file_to_user")try{return JSON.stringify(e)}catch{return ph(e,200)}return ph(e,200)}}function $y(t){var e;return((e=$a().find(n=>n.id===t))==null?void 0:e.displayName)??t}function Nr(t,e){var i,s;const n={...(i=t.extra)!=null&&i.crossPost?{crossPost:t.extra.crossPost}:{},...(s=t.extra)!=null&&s.errorFallback?{errorFallback:t.extra.errorFallback}:{},...e?{stream:{invocationId:e}}:{}};return Object.keys(n).length>0?n:void 0}function bs(t){return{type:t.type,agentId:t.agentId,content:t.content,taskContext:t.taskContext,taskPhase:t.taskPhase,toolName:t.toolName,toolInput:t.toolInput,toolCallId:t.toolCallId,timestamp:t.timestamp}}function ys(t,e){if(!t)return;const n=Object.entries(t);for(let i=n.length-1;i>=0;i--){const[s,r]=n[i];if(r.agentId===e)return s}}function jy(){const{addMessage:t,appendToMessage:e,appendToolEvent:n,appendRichBlock:i,replaceMessageId:s,patchMessage:r,patchThreadMessage:a,removeMessage:o,setStreaming:c,setLoading:d,setHasActiveInvocation:u,addActiveInvocation:h,removeActiveInvocation:f,clearAllActiveInvocations:p,setIntentMode:O,setAgentStatus:g,clearAgentStatuses:x,setAgentInvocation:b,setMessageUsage:y,setMessageMetadata:S,setMessageThinking:P,setMessageStreamInvocation:w,setMessageStreamExecutionDuration:C,upsertPptStudioSlides:Q,setPptStudioStatus:T,requestStreamCatchUp:A}=E(),$=m.useRef(new Map),N=m.useRef(new Map),R=m.useRef(new Map),z=m.useRef(new Map),I=m.useRef(new Set),B=m.useRef(new Set),M=m.useRef(new Map),L=m.useCallback(v=>{var D;const U=M.current.get(v);if(U)return U;const _=new Ju,Z=E.getState().messages.find(he=>he.id===v),te=(D=Z==null?void 0:Z.extra)==null?void 0:D.taskRuns;return(te==null?void 0:te.v)===1&&te.segments.length>0&&_.loadFromExtra(te),M.current.set(v,_),_},[]),F=m.useCallback(v=>{var D;const U=M.current.get(v),_=U==null?void 0:U.toExtra();if(!_)return;const Z=E.getState().messages.find(he=>he.id===v),te=i5(_,(D=Z==null?void 0:Z.extra)==null?void 0:D.taskRuns);r(v,{extra:{...Z==null?void 0:Z.extra,taskRuns:te}})},[r]),de=m.useRef(new Map),ce=m.useRef(null),ae=m.useRef(null),J=m.useCallback(()=>{ce.current&&clearTimeout(ce.current);const v=E.getState().currentThreadId;ae.current=v,ce.current=setTimeout(()=>{ce.current=null,ae.current=null;const U=E.getState();if(!(U.currentThreadId===v)){const Z=U.getThreadState(v);for(const te of Z.messages)te.type==="assistant"&&te.isStreaming&&U.setThreadMessageStreaming(v,te.id,!1);U.resetThreadInvocationState(v),U.addMessageToThread(v,{id:`sysinfo-timeout-${Date.now()}`,type:"system",variant:"info",content:"⏱ Response timed out. The operation may still be running in the background.",timestamp:Date.now()});return}d(!1),p(),O(null),x();for(const Z of $.current.values())c(Z.id,!1);$.current.clear(),t({id:`sysinfo-timeout-${Date.now()}`,type:"system",variant:"info",content:"⏱ Response timed out. The operation may still be running in the background.",timestamp:Date.now()})},Qy)},[d,p,O,x,c,t]),X=m.useCallback(v=>{v&&ae.current&&ae.current!==v||ce.current&&(clearTimeout(ce.current),ce.current=null,ae.current=null)},[]);m.useEffect(()=>()=>{ce.current&&(clearTimeout(ce.current),ce.current=null),ae.current=null},[]);const ne=m.useCallback(v=>{var te,D;const U=E.getState(),_=(D=(te=U.agentInvocations)==null?void 0:te[v])==null?void 0:D.invocationId;if(_)return{invocationId:_,source:"agentInvocations"};const Z=ys(U.activeInvocations,v);return Z?{invocationId:Z,source:"activeInvocations"}:{source:"none"}},[]),ue=m.useCallback((v,U,_)=>{const Z=E.getState();return Fx({agentId:v,invocationId:U,eventTimestamp:_,agentInvocations:Z.agentInvocations,activeInvocations:Z.activeInvocations,existingMessages:Z.messages})},[]),je=m.useCallback((v,U,_)=>{_&&Vn({event:"bubble_lifecycle",threadId:E.getState().currentThreadId,timestamp:Date.now(),action:"create",reason:"active_late_bind",agentId:v,messageId:U,invocationId:_,origin:"stream"})},[]),ve=m.useCallback(v=>ne(v).invocationId,[ne]),$e=m.useCallback((v,U)=>{var D,he,pe,we;const _=E.getState().messages;for(let xe=_.length-1;xe>=0;xe--){const be=_[xe];if(be.type==="assistant"&&be.agentId===v&&be.isStreaming)return{id:be.id,needsStreamingRestore:!1}}if(U)for(let xe=_.length-1;xe>=0;xe--){const be=_[xe];if(!(be.type!=="assistant"||be.agentId!==v)&&((he=(D=be.extra)==null?void 0:D.stream)==null?void 0:he.invocationId)===U)return{id:be.id,needsStreamingRestore:!be.isStreaming}}const Z=ve(v);if(Z)for(let xe=_.length-1;xe>=0;xe--){const be=_[xe];if(!(be.type!=="assistant"||be.agentId!==v)&&((we=(pe=be.extra)==null?void 0:pe.stream)==null?void 0:we.invocationId)===Z)return{id:be.id,needsStreamingRestore:!be.isStreaming}}const te=E.getState();for(let xe=_.length-1;xe>=0;xe--){const be=_[xe];if(be.type!=="assistant"||be.agentId!==v||be.origin!=="stream")continue;const oe=fc(be);if(oe&&!(U&&oe!==U)&&!(!be.isStreaming&&!dh(be,te)))return{id:be.id,needsStreamingRestore:!be.isStreaming}}return null},[ve]),Qe=m.useCallback((v,U)=>{var Z,te;const _=E.getState().messages;for(let D=_.length-1;D>=0;D-=1){const he=_[D];if((he==null?void 0:he.type)==="assistant"&&he.agentId===v&&he.origin==="stream"&&((te=(Z=he.extra)==null?void 0:Z.stream)==null?void 0:te.invocationId)===U)return{id:he.id}}return null},[]),H=m.useCallback(v=>{var te,D,he;const U=E.getState().messages,_=(te=$.current.get(v))==null?void 0:te.id;if(_){const pe=U.find(we=>{var xe,be;return we.id===_&&we.type==="assistant"&&we.agentId===v&&we.origin==="stream"&&!((be=(xe=we.extra)==null?void 0:xe.stream)!=null&&be.invocationId)});if(pe)return{id:pe.id}}for(let pe=U.length-1;pe>=0;pe-=1){const we=U[pe];if((we==null?void 0:we.type)==="assistant"&&we.agentId===v&&we.origin==="stream"&&we.isStreaming&&!((he=(D=we.extra)==null?void 0:D.stream)!=null&&he.invocationId))return{id:we.id}}const Z=z.current.get(v);if(Z){const pe=U.find(we=>we.id===Z&&we.type==="assistant"&&we.agentId===v&&we.origin==="stream");if(pe)return{id:pe.id}}return null},[]),V=m.useCallback((v,U,_)=>{const Z=E.getState(),te=Z.currentThreadId,D=Z.messages,he=$.current.get(v);if(he!=null&&he.id){if(te&&he.threadId!==te)return $.current.delete(v),null;const we=D.find(xe=>xe.id===he.id&&xe.type==="assistant");if(we)return _!=null&&_.ensureStreaming&&!we.isStreaming&&c(we.id,!0),U&&S(we.id,U),we.id;$.current.delete(v)}const pe=$e(v,_==null?void 0:_.preferredInvocationId);return pe?($.current.set(v,{id:pe.id,agentId:v,threadId:te}),_!=null&&_.ensureStreaming&&pe.needsStreamingRestore&&c(pe.id,!0),U&&S(pe.id,U),pe.id):null},[$e,S,c]),Y=m.useCallback((v,U,_)=>{const Z=V(v,U,{ensureStreaming:!0,..._?{preferredInvocationId:_}:{}});if(Z)return Z;const D=E.getState().currentThreadId,he=`msg-${Date.now()}-${v}`,pe=ne(v),we=pe.invocationId;return $.current.set(v,{id:he,agentId:v,threadId:D}),t({id:he,type:"assistant",agentId:v,content:"",origin:"stream",...U?{metadata:U}:{},...we?{extra:{stream:{invocationId:we}}}:{},timestamp:ue(v,we),isStreaming:!0}),pe.source==="activeInvocations"&&je(v,he,we),he},[t,ne,V,je,ue]),le=m.useCallback((v,U)=>{const _=N.current.get(v);if(!_)return!1;const Z=U??ve(v);return Z&&Z!==_?(N.current.delete(v),!1):(Vn({event:"bubble_lifecycle",threadId:E.getState().currentThreadId,timestamp:Date.now(),action:"drop",reason:"late_stream_after_callback_replace",agentId:v,invocationId:_,origin:"stream"}),!0)},[ve]),me=m.useCallback((v,U)=>{const _=R.current.get(v);_!==void 0&&(U&&_===U||R.current.delete(v))},[]),Ee=m.useCallback((v,U)=>{const _=E.getState().currentThreadId;_&&iO(_,v,U)},[]),Ae=m.useCallback((v,U)=>{const _=R.current.get(v);if(_===void 0)return!1;const Z=U??ve(v)??null;return Z&&_!==Z?(R.current.delete(v),!1):(Vn({event:"bubble_lifecycle",threadId:E.getState().currentThreadId,timestamp:Date.now(),action:"drop",reason:"late_stream_after_terminal_error",agentId:v,invocationId:_??void 0,origin:"stream"}),!0)},[ve]),De=m.useCallback(v=>{var Z,te,D,he,pe,we,xe,be,oe,ye,He,xt,tt,Qt,Ct,Zt,Cn,pi;const U=E.getState().currentThreadId;if(v.threadId&&U&&v.threadId!==U){Vn({event:"agent_message",threadId:v.threadId,storeThreadId:U,timestamp:Date.now(),agentId:v.agentId,invocationId:v.invocationId,action:"ignored_cross_thread",origin:v.origin});return}const _=$.current.get(v.agentId);if(_&&U&&_.threadId!==U&&($.current.delete(v.agentId),Vn({event:"bubble_lifecycle",threadId:_.threadId,timestamp:Date.now(),action:"invalidate",reason:"active_ref_thread_mismatch",agentId:v.agentId,messageId:_.id,origin:"stream"})),J(),!(v.invocationId&&B.current.has(v.invocationId)&&v.type!=="done")&&!sO(v)){if(v.type==="text"&&v.content){const Ne=(Z=v.extra)==null?void 0:Z.errorFallback;if(v.origin!=="callback"&&!Ne&&(le(v.agentId,v.invocationId)||Ae(v.agentId,v.invocationId)))return;if(g(v.agentId,Ne?"error":"streaming"),b(v.agentId,{livenessWarning:void 0}),v.origin!=="callback"&&I.current.add(v.agentId),v.origin==="callback"){const Ce=v.invocationId??ve(v.agentId),ke=Ce?Qe(v.agentId,Ce):H(v.agentId);if(ke){const j=v.messageId??ke.id;j!==ke.id&&s(ke.id,j),r(j,{content:v.content,origin:"callback",isStreaming:!1,...v.metadata?{metadata:v.metadata}:{},...Nr(v,Ce)?{extra:Nr(v,Ce)}:{},...v.mentionsUser?{mentionsUser:!0}:{},...v.replyTo?{replyTo:v.replyTo}:{},...v.replyPreview?{replyPreview:v.replyPreview}:{}}),$.current.delete(v.agentId),z.current.delete(v.agentId),Ce&&N.current.set(v.agentId,Ce)}else{const j=v.messageId??`msg-${Date.now()}-${v.agentId}-cb-${++Cy}`;t({id:j,type:"assistant",agentId:v.agentId,content:v.content,origin:"callback",...v.metadata?{metadata:v.metadata}:{},...Nr(v,Ce)?{extra:Nr(v,Ce)}:{},...v.mentionsUser?{mentionsUser:!0}:{},...v.replyTo?{replyTo:v.replyTo}:{},...v.replyPreview?{replyPreview:v.replyPreview}:{},timestamp:ue(v.agentId,Ce,v.timestamp)}),Ce&&N.current.set(v.agentId,Ce)}Ee("messages","callback_message")}else{const Ce=V(v.agentId,v.metadata,{ensureStreaming:!0,...v.invocationId?{preferredInvocationId:v.invocationId}:{}});if(Ce){const ke=L(Ce),j=bs(v);ke.isTaskScopedText(j)?(ke.appendText(j,v.content),F(Ce)):e(Ce,v.content),(v.replyTo||v.replyPreview)&&r(Ce,{...v.replyTo?{replyTo:v.replyTo}:{},...v.replyPreview?{replyPreview:v.replyPreview}:{}})}else{const ke=`msg-${Date.now()}-${v.agentId}`,j=ne(v.agentId),lt=j.invocationId,K=E.getState().currentThreadId;$.current.set(v.agentId,{id:ke,agentId:v.agentId,threadId:K??"default"});const ge=L(ke),Te=bs(v),_e=ge.isTaskScopedText(Te);t({id:ke,type:"assistant",agentId:v.agentId,content:_e?"":v.content,origin:"stream",...v.metadata?{metadata:v.metadata}:{},...lt?{extra:{stream:{invocationId:lt}}}:{},...v.replyTo?{replyTo:v.replyTo}:{},...v.replyPreview?{replyPreview:v.replyPreview}:{},timestamp:ue(v.agentId,lt,v.timestamp),isStreaming:!0}),_e&&(ge.appendText(Te,v.content),F(ke)),j.source==="activeInvocations"&&je(v.agentId,ke,lt)}}}else if(v.type==="tool_use"){if(v.origin!=="callback"&&Ae(v.agentId,v.invocationId))return;g(v.agentId,"streaming"),I.current.add(v.agentId);const Ne=v.toolName??"unknown",Ce=Ty(Ne,v.toolInput),ke=Ne==="file_change";if(ke&&(console.info("[agent_message] file_change tool_use received",{agentId:v.agentId,activeRefCount:$.current.size,skipUi:uh,detail:Ce??null}),uh)){console.warn("[agent_message] file_change UI append skipped",{agentId:v.agentId,reason:"NEXT_PUBLIC_DEBUG_SKIP_FILE_CHANGE_UI=1"});return}const j=Y(v.agentId,v.metadata,v.invocationId),lt=v.toolCallId??`tool-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,K=typeof v.timestamp=="number"&&Number.isFinite(v.timestamp)?v.timestamp:Date.now();n(j,{id:lt,type:"tool_use",label:`${v.agentId} → ${Ne}`,...Ce?{detail:Ce}:{},...v.toolCallId?{toolCallId:v.toolCallId}:{},timestamp:K});const ge={id:lt,type:"tool_use",label:`${v.agentId} → ${Ne}`,...Ce?{detail:Ce}:{},timestamp:K,...v.toolCallId?{toolCallId:v.toolCallId}:{}};L(j).appendTool(bs(v),ge),F(j),ke&&console.info("[agent_message] file_change tool_use appended",{agentId:v.agentId,messageId:j,activeRefCount:$.current.size})}else if(v.type==="tool_result"){if(v.origin!=="callback"&&Ae(v.agentId,v.invocationId))return;g(v.agentId,"streaming");const Ne=Y(v.agentId,v.metadata,v.invocationId),Ce=v.toolCallId??`toolr-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,ke=Date.now();n(Ne,{id:Ce,type:"tool_result",label:`${v.agentId} ← ${v.toolName??"result"}`,detail:v.content??"",...v.toolCallId?{toolCallId:v.toolCallId}:{},timestamp:ke});const j={id:Ce,type:"tool_result",label:`${v.agentId} ← ${v.toolName??"result"}`,detail:v.content??"",timestamp:ke,...v.toolCallId?{toolCallId:v.toolCallId}:{}};L(Ne).appendTool(bs(v),j),F(Ne)}else if(v.type==="done"){const Ne=E.getState().messages.filter(Te=>Te.type==="assistant"&&Te.agentId===v.agentId).at(-1),Ce=!!((te=Ne==null?void 0:Ne.extra)!=null&&te.errorFallback);g(v.agentId,Ce?"error":"done");const ke=((he=(D=$a())==null?void 0:D.find(Te=>Te.id===v.agentId))==null?void 0:he.displayName)??v.agentId,j=v.threadId??E.getState().currentThreadId??void 0;A2({title:Ce?`${ke} 出错`:`${ke} 完成`,body:Ce?"任务执行出错":"任务已完成",type:Ce?"error":"success",threadId:j});const lt=R.current.has(v.agentId),K=(we=(pe=E.getState().agentInvocations)==null?void 0:pe[v.agentId])==null?void 0:we.taskProgress;(xe=K==null?void 0:K.tasks)!=null&&xe.length&&b(v.agentId,{taskProgress:{...K,snapshotStatus:K.snapshotStatus==="interrupted"||Ce?"interrupted":"completed",lastUpdate:Date.now()}});const ge=V(v.agentId);if(ge)c(ge,!1),z.current.set(v.agentId,ge),$.current.delete(v.agentId),M.current.delete(ge);else{for(const Te of E.getState().messages)Te.type==="assistant"&&Te.agentId===v.agentId&&Te.isStreaming&&c(Te.id,!1);if(v.invocationId){const Te=E.getState().messages.find(_e=>{var Dt,ht;return _e.type==="assistant"&&_e.agentId===v.agentId&&((ht=(Dt=_e.extra)==null?void 0:Dt.stream)==null?void 0:ht.invocationId)===v.invocationId});Te&&(z.current.set(v.agentId,Te.id),M.current.delete(Te.id))}$.current.delete(v.agentId)}if(b(v.agentId,{invocationId:void 0}),v.invocationId){const _e=E.getState().activeInvocations[v.invocationId];(_e==null?void 0:_e.agentId)===v.agentId&&f(v.invocationId),f(`${v.invocationId}-${v.agentId}`);const Dt=E.getState(),ht=ys(Dt.activeInvocations,v.agentId);ht!=null&&ht.startsWith("hydrated-")&&f(ht)}else{const Te=ys(E.getState().activeInvocations,v.agentId);Te?f(Te):Object.keys(E.getState().activeInvocations??{}).length===0&&u(!1)}if(v.isFinal){if(Object.keys(E.getState().activeInvocations??{}).length===0&&(X(),d(!1),O(null),x()),!ge&&I.current.has(v.agentId)&&!lt){const _e=E.getState().currentThreadId;_e&&A(_e)}Ee("panels","done_final"),I.current.delete(v.agentId)}}else if(v.type==="system_info"){I.current.add(v.agentId);let Ne=v.content??"",Ce="info",ke=!1;try{const j=N2(Ne);if(!j)throw new Error("not parseable system_info");if((j==null?void 0:j.type)==="invocation_created"){const K=j.agentId??v.agentId,ge=typeof j.invocationId=="string"?j.invocationId:void 0;me(K,ge)}else if(v.origin!=="callback"&&Ae(v.agentId,v.invocationId))return;const lt=v.threadId??E.getState().currentThreadId;if((j==null?void 0:j.type)==="ppt_studio_page"){const K=R2(j);K&&(Q(lt,K),ke=!0)}else if((j==null?void 0:j.type)==="ppt_studio_export"){const K=_2(j.status);K&&(T(lt,K),ke=!0)}else if((j==null?void 0:j.type)==="a2a_followup_available")Ne=j.mentions.map(ge=>`${ge.mentionedBy} @了 ${ge.agentId}`).join("、"),Ce="a2a_followup";else if((j==null?void 0:j.type)==="recoverable_pause"){const K=j.agentId??v.agentId,ge=K?(oe=(be=E.getState().agentInvocations)==null?void 0:be[K])==null?void 0:oe.taskProgress:void 0;K&&b(K,{taskProgress:{tasks:(ge==null?void 0:ge.tasks)??[],lastUpdate:Date.now(),snapshotStatus:"interrupted",interruptReason:typeof j.interruptReason=="string"?j.interruptReason:"recoverable_pause",...ge!=null&&ge.lastInvocationId?{lastInvocationId:ge.lastInvocationId}:{}},...typeof j.sessionId=="string"?{sessionId:j.sessionId}:{}}),Ne=typeof j.message=="string"&&j.message.trim()?j.message:"上次运行已暂停,可继续执行或放弃当前会话。",Ce="info"}else if((j==null?void 0:j.type)==="invocation_created"){const K=j.agentId??v.agentId;z.current.delete(K);const ge=typeof j.invocationId=="string"?j.invocationId:void 0;if(K&&ge){B.current.delete(ge),d(!0),g(K,"streaming"),h(ge,K,"execute"),b(K,{invocationId:ge,startedAt:Date.now(),taskProgress:{tasks:[],lastUpdate:Date.now(),snapshotStatus:"running",lastInvocationId:ge}});const Te=V(K,void 0,{preferredInvocationId:ge});Te&&w(Te,ge),ke=!0}}else if((j==null?void 0:j.type)==="invocation_metrics"){if(j.kind==="session_started")b(v.agentId,{sessionId:j.sessionId,invocationId:j.invocationId,startedAt:Date.now(),taskProgress:{tasks:[],lastUpdate:0},...j.sessionSeq!==void 0?{sessionSeq:j.sessionSeq,sessionSealed:!1}:{}});else if(j.kind==="invocation_complete"){const K=typeof j.invocationId=="string"?j.invocationId:void 0,ge=typeof j.durationMs=="number"&&Number.isFinite(j.durationMs)?j.durationMs:void 0;if(b(v.agentId,{...ge!==void 0?{durationMs:ge}:{},sessionId:j.sessionId}),ge!==void 0&&ge>=0&&K){const Te=E.getState(),_e=Te.messages.find(ht=>{var Mi,gs;return ht.type==="assistant"&&ht.agentId===v.agentId&&((gs=(Mi=ht.extra)==null?void 0:Mi.stream)==null?void 0:gs.invocationId)===K}),Dt=(_e==null?void 0:_e.id)??((ye=$.current.get(v.agentId))==null?void 0:ye.id);if(Dt){const ht=Te.messages.find(Mi=>Mi.id===Dt);((xt=(He=ht==null?void 0:ht.extra)==null?void 0:He.stream)==null?void 0:xt.invocationId)===K&&C(Dt,ge)}}}ke=!0}else if((j==null?void 0:j.type)==="invocation_usage"){b(v.agentId,{usage:j.usage});const K=$.current.get(v.agentId);K&&y(K.id,j.usage),ke=!0}else if((j==null?void 0:j.type)==="context_health"){const K=j.agentId??v.agentId;K&&(b(K,{contextHealth:j.health}),ke=!0)}else if((j==null?void 0:j.type)==="rate_limit"){const K=j.agentId??v.agentId;K&&b(K,{rateLimit:{...typeof j.utilization=="number"?{utilization:j.utilization}:{},...typeof j.resetsAt=="string"?{resetsAt:j.resetsAt}:{}}}),ke=!0}else if((j==null?void 0:j.type)==="compact_boundary"){const K=j.agentId??v.agentId;K&&b(K,{compactBoundary:{...typeof j.preTokens=="number"?{preTokens:j.preTokens}:{}}}),ke=!0}else if((j==null?void 0:j.type)==="task_progress"){const K=j.agentId??v.agentId,ge=typeof j.invocationId=="string"?j.invocationId:(Qt=(tt=E.getState().agentInvocations)==null?void 0:tt[K])==null?void 0:Qt.invocationId,Te=j.tasks??[];b(K,{taskProgress:{tasks:Te,lastUpdate:Date.now(),snapshotStatus:"running",...ge?{lastInvocationId:ge}:{}}}),ke=!0}else if((j==null?void 0:j.type)==="web_search"){g(v.agentId,"streaming");const K=typeof j.count=="number"?j.count:1,ge=Y(v.agentId,v.metadata,v.invocationId);n(ge,{id:`toolws-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,type:"tool_use",label:`${v.agentId} → web_search${K>1?` x${K}`:""}`,timestamp:Date.now()}),ke=!0}else if((j==null?void 0:j.type)==="task_boundary"){const K=Y(v.agentId,v.metadata,v.invocationId),ge=typeof j.taskId=="string"?j.taskId.trim():"";if(K&&ge){const Te=j.phase==="complete"?"complete":"start";L(K).onBoundary({type:"system_info",agentId:v.agentId,taskPhase:Te,taskContext:{id:ge,title:typeof j.title=="string"?j.title:void 0,index:typeof j.taskIndex=="number"?j.taskIndex:void 0,total:typeof j.totalTasks=="number"?j.totalTasks:void 0}}),F(K)}ke=!0}else if((j==null?void 0:j.type)==="thinking"){const K=j.text??"";if(K){const ge=typeof j.agentId=="string"&&j.agentId.trim().length>0?j.agentId.trim():v.agentId,Te=Y(ge,v.metadata,v.invocationId);P(Te,K);const _e=j.mergeStrategy==="append"?"append":"paragraph";L(Te).appendThinking(bs({...v,agentId:ge}),K,_e),F(Te)}ke=!0}else if((j==null?void 0:j.type)==="liveness_warning"){const K=j.level;g(v.agentId,K),b(v.agentId,{livenessWarning:{level:K,state:j.state,silenceDurationMs:j.silenceDurationMs,cpuTimeMs:typeof j.cpuTimeMs=="number"?j.cpuTimeMs:void 0,processAlive:j.processAlive,receivedAt:Date.now()}}),ke=!0}else if((j==null?void 0:j.type)==="timeout_diagnostics")v.agentId&&de.current.set(v.agentId,j),ke=!0;else if((j==null?void 0:j.type)==="warning"){const K=typeof j.message=="string"?j.message:"";Ne=K?`⚠️ ${K}`:"⚠️ Warning",Ce="warning"}else if((j==null?void 0:j.type)==="processing_status")j.status==="idle"||g(v.agentId,"streaming"),ke=!0;else if((j==null?void 0:j.type)==="strategy_allow_compress"||(j==null?void 0:j.type)==="resume_failure_stats")ke=!0;else if((j==null?void 0:j.type)==="silent_completion")Ne=(typeof j.detail=="string"?j.detail:"")||`${v.agentId} completed without a text response.`;else if((j==null?void 0:j.type)==="invocation_preempted")Ne="This response was superseded by a newer request.";else if((j==null?void 0:j.type)==="rich_block"){let K;if(j.messageId){const ge=E.getState().messages.find(Te=>Te.id===j.messageId);ge&&(K=ge.id)}if(!K){const ge=E.getState().messages;for(let Te=ge.length-1;Te>=0;Te--){const _e=ge[Te];if(!(_e.type!=="assistant"||_e.agentId!==v.agentId)){if(_e.origin==="stream"&&_e.isStreaming)break;if(_e.origin==="callback"){K=_e.id;break}}}}K||(K=Y(v.agentId,v.metadata,v.invocationId)),j.block&&i(K,j.block),Ee("messages","rich_block"),ke=!0}else if((j==null?void 0:j.type)==="session_seal_requested"){b(j.agentId,{sessionSeq:j.sessionSeq,sessionSealed:!0});const K=(Ct=j.healthSnapshot)!=null&&Ct.fillRatio?Math.round(j.healthSnapshot.fillRatio*100):"?";Ne=`${j.agentId} 的会话 #${j.sessionSeq} 已封存(上下文 ${K}%),下次调用将自动创建新会话`}}catch{if(v.origin!=="callback"&&Ae(v.agentId,v.invocationId))return}ke||t({id:`sysinfo-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,type:"system",variant:Ce,content:Ne,timestamp:Date.now()})}else if(v.type==="error"){console.warn("[useAgentMessages] Received raw error event (backend not upgraded or error in transformation)",{agentId:v.agentId}),g(v.agentId,"error"),R.current.set(v.agentId,v.invocationId??ve(v.agentId)??null);const Ne=(Cn=(Zt=E.getState().agentInvocations)==null?void 0:Zt[v.agentId])==null?void 0:Cn.taskProgress;(pi=Ne==null?void 0:Ne.tasks)!=null&&pi.length&&b(v.agentId,{taskProgress:{...Ne,snapshotStatus:"interrupted",interruptReason:v.error??"Unknown error",lastUpdate:Date.now()}});const Ce=V(v.agentId);Ce&&(c(Ce,!1),$.current.delete(v.agentId)),v.agentId&&de.current.delete(v.agentId),Vn({event:"agent_message",threadId:E.getState().currentThreadId,timestamp:Date.now(),agentId:v.agentId,invocationId:v.invocationId,reason:v.error??"Unknown error",action:"error_fallback_frontend_degradation",origin:v.origin});const ke=M2({...v,agentDisplayName:$y(v.agentId)});if(E2(v)?t({id:`rate-limit-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,type:"system",variant:"error",content:I2(),timestamp:Date.now()}):L2(v)?t({id:`daily-quota-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,type:"system",variant:"error",content:X2(),timestamp:Date.now()}):Ut.getState().addToast({type:"error",title:ke.title,message:ke.message,threadId:E.getState().currentThreadId,duration:8e3}),v.isFinal){if(X(),d(!1),v.invocationId){f(v.invocationId);const j=E.getState(),lt=ys(j.activeInvocations,v.agentId);lt!=null&<.startsWith("hydrated-")&&f(lt)}else{const j=ys(E.getState().activeInvocations,v.agentId);j?f(j):u(!1)}O(null);for(const j of $.current.values())c(j.id,!1);$.current.clear()}}}},[t,e,n,L,F,i,c,d,h,f,O,g,x,b,P,w,C,s,r,J,X,Qe,H,ve,ne,V,Y,me,je,le,Ae,u,y,A,Ee,o,ue]),Ie=m.useCallback((v,U)=>{var pe,we;v(U);const _=E.getState();if(!(U===_.currentThreadId)){X(U);const xe=_.getThreadState(U),be=hh(xe.activeInvocations,xe.messages);for(const oe of xe.messages)oe.type==="assistant"&&oe.isStreaming&&(a(U,oe.id,{extra:{stream:{...(pe=oe.extra)==null?void 0:pe.stream,userStopped:!0}}}),_.setThreadMessageStreaming(U,oe.id,!1));_.resetThreadInvocationState(U),fh(U,be);return}X(U);const te=hh(_.activeInvocations??{},_.messages);d(!1),p(),O(null),x();for(const xe of E.getState().messages)xe.type==="assistant"&&xe.isStreaming&&(r(xe.id,{extra:{stream:{...(we=xe.extra)==null?void 0:we.stream,userStopped:!0}}}),c(xe.id,!1));$.current.clear(),M.current.clear(),N.current.clear(),z.current.clear(),I.current.clear(),de.current.clear();const D=_.activeInvocations??{},he=new Set(Object.values(D).map(xe=>xe.agentId));for(const xe of he)b(xe,{invocationId:void 0});for(const[xe]of Object.entries(D))B.current.add(xe);R.current.clear(),fh(U,te)},[d,p,c,r,a,O,x,X,b]),Ye=m.useCallback(()=>{$.current.clear(),M.current.clear(),N.current.clear(),z.current.clear(),I.current.clear(),R.current.clear(),de.current.clear(),B.current.clear(),X()},[X]),Ve=m.useCallback(v=>{var Z;const U=E.getState();if(U.currentThreadId!==v)return;const _=new Map;for(let te=U.messages.length-1;te>=0;te--){const D=U.messages[te];!D||D.type!=="assistant"||!D.agentId||D.origin!=="stream"||dh(D,U)&&(_.has(D.agentId)||_.set(D.agentId,D))}for(const[te,D]of _){$.current.set(te,{id:D.id,agentId:te,threadId:v});const he=(Z=D.extra)==null?void 0:Z.taskRuns;if((he==null?void 0:he.v)===1&&he.segments.length>0){const pe=new Ju;pe.loadFromExtra(he),M.current.set(D.id,pe)}D.isStreaming||c(D.id,!0),Vn({event:"bubble_lifecycle",threadId:v,timestamp:Date.now(),action:"recover",reason:"thread_switch_rehydrate",agentId:te,messageId:D.id,invocationId:fc(D),origin:"stream"})}},[c]),Ge=m.useCallback(v=>{$.current.clear(),M.current.clear(),N.current.clear(),z.current.clear(),I.current.clear(),R.current.clear(),de.current.clear(),X(),Ve(v)},[X,Ve]);return{handleAgentMessage:De,handleStop:Ie,resetRefs:Ye,resetRefsForThreadSwitch:Ge,rehydrateStreamingRefs:Ve,resetTimeout:J,clearDoneTimeout:X}}function CO(t){const[e,n]=m.useState([]),i=m.useCallback(async()=>{try{const o=await G(`/api/ask-user-question/pending?threadId=${encodeURIComponent(t)}`);if(!o.ok)return;const c=await o.json();n(c.pending??[])}catch{}},[t]);m.useEffect(()=>{i()},[i]);const s=m.useCallback(async o=>{const c=await G("/api/ask-user-question/respond",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({requestId:o.request_id,...o.source?{source:o.source}:{},answers:o.answers})});if(!c.ok)throw new Error(`Failed to submit ask_user_question response: ${c.status}`);n(d=>d.filter(u=>u.requestId!==o.request_id))},[]),r=m.useCallback(o=>{n(c=>c.some(u=>u.requestId===o.requestId)?c.map(u=>u.requestId===o.requestId?o:u):[...c,o])},[]),a=m.useCallback(o=>{n(c=>c.filter(d=>d.requestId!==o.requestId))},[]);return{pendingQuestion:e[0]??null,pendingQuestions:e,submitAnswer:s,fetchPending:i,handleQuestionRequest:r,handleQuestionResponse:a}}function Ay(t){const[e,n]=m.useState([]),[i,s]=m.useState(null),r=m.useRef(0),a=V2(p=>p.syncThreadPending),o=m.useMemo(()=>e.filter(p=>p.threadId===t),[e,t]),c=m.useCallback(async()=>{const p=t,O=++r.current;try{const g=await G(`/api/authorization/pending?threadId=${p}`);if(g.ok){const x=await g.json();if(O!==r.current)return;n(x.pending??[]),s(p)}}catch{}},[t]);m.useEffect(()=>{n([]),s(null),c()},[c]),m.useEffect(()=>{i!==t&&o.length===0||a(t,o.map(p=>p.requestId))},[o,i,a,t]);const d=m.useCallback(async(p,O,g,x)=>{try{(await G("/api/authorization/respond",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({requestId:p,granted:O,scope:g,...x?{reason:x}:{}})})).ok&&n(y=>y.filter(S=>S.requestId!==p))}catch{}},[]),u=m.useCallback(p=>{n(O=>O.some(g=>g.requestId===p.requestId)?O:[...O,p])},[]),h=m.useCallback(p=>{n(O=>O.filter(g=>g.requestId!==p.requestId))},[]),f=m.useCallback(()=>{n([])},[]);return{pending:o,respond:d,clearPending:f,handleAuthRequest:u,handleAuthResponse:h,fetchPending:c}}function jd(t){var e,n;if((n=(e=t.extra)==null?void 0:e.stream)!=null&&n.invocationId)return t.extra.stream.invocationId;if(t.id.startsWith("draft-"))return t.id.slice(6)}function Ny(t){return t.id.startsWith("draft-")?"draft":t.origin==="stream"||t.isStreaming?"stream":t.origin==="callback"?"callback":"history"}function Ry(t){if(t.type!=="assistant"||!t.agentId)return;const e=jd(t);if(e)return`${t.agentId}:${e}:text`}function _y(t){const e=Ny(t),n=e==="draft"||e==="stream";return{key:Ry(t),agentId:t.agentId,invocationId:jd(t),bubbleKind:"text",originPhase:e,isAuthoritative:!n,isLocalOnly:n,isUnstable:n}}function My(t){const e=new Set;for(const n of t){if(n.type!=="assistant")continue;const i=_y(n);if(i.isUnstable)return!0;const s=i.key;if(s){if(e.has(s))return!0;e.add(s)}}return!1}const Fs=Ux(t=>({tasks:[],setTasks:e=>t({tasks:e}),addTask:e=>t(n=>n.tasks.some(i=>i.id===e.id)?n:{tasks:[...n.tasks,e]}),updateTask:e=>t(n=>n.tasks.some(s=>s.id===e.id)?{tasks:n.tasks.map(s=>s.id===e.id?e:s)}:{tasks:[...n.tasks,e]}),removeTask:e=>t(n=>({tasks:n.tasks.filter(i=>i.id!==e)})),clearTasks:()=>t({tasks:[]})})),Kt=new Map,Ey=24,Iy=90,Ly=new Set(["weixin","xiaoyi","feishu","dingtalk"]);function Xy(t){return typeof t=="string"&&Ly.has(t)}function Zy(t){return t.scrollHeight-t.clientHeight-t.scrollTop<=Ey}function il(t,e){Kt.set(t,{top:e.scrollTop,anchor:Zy(e)?"bottom":"offset"})}const Dy=50,qy=1e4,Wy=300,Oh=180,zy=2e4,mh=12e3,By=24,Vy=12e4,Fy=12,Uy=3,Yy=45e3,Gy=12,Hy=3;function Rr(t){return typeof t=="object"&&t!==null&&"name"in t&&t.name==="AbortError"}function Ky(t){if(!(!Array.isArray(t)||t.length===0))return t.map(e=>{if(!e||typeof e!="object")return null;const n=e,i=typeof n.id=="string"?n.id:"",s=n.type==="tool_use"||n.type==="tool_result"?n.type:null,r=typeof n.label=="string"?n.label:"",a=typeof n.timestamp=="number"?n.timestamp:Date.now();if(!i||!s||!r)return null;let o;if(typeof n.detail=="string")o=n.detail;else if(n.detail!==void 0)try{o=JSON.stringify(n.detail)}catch{o=String(n.detail)}return{id:i,type:s,label:r,...o?{detail:o}:{},timestamp:a,...typeof n.toolCallId=="string"?{toolCallId:n.toolCallId}:{}}}).filter(e=>e!==null)}function PO(t){return jd(t)}function gh(t,e){return t.id.startsWith("draft-")?!!t.isStreaming:t.type==="assistant"&&t.origin==="stream"?e.isStreaming===!0?!!t.isStreaming:!1:!!t.isStreaming}function Jy(t,e){return t.map(n=>{var s;if(n.type!=="assistant"||n.origin!=="stream"||!n.isStreaming||!n.id.startsWith("draft-")||!n.agentId)return n;const i=(s=e[n.agentId])==null?void 0:s.invocationId;if(i){const r=n.id.slice(6);if(i===r)return n}return{...n,isStreaming:!1}})}function TO(t,e){var n,i,s;if((i=(n=t.extra)==null?void 0:n.stream)!=null&&i.invocationId)return t.extra.stream.invocationId;if(t.id.startsWith("draft-"))return t.id.slice(6);if(!(t.type!=="assistant"||t.origin!=="stream"||!t.isStreaming||!t.agentId))return(s=e[t.agentId])==null?void 0:s.invocationId}function xh(t){return(t==null?void 0:t.replace(/\s+/g," ").trim().toLowerCase())??""}function ev(t,e){const n=xh(t.content),i=xh(e.content);if(!n||!i)return!1;if(n===i)return!0;const s=n.length<=i.length?n:i,r=s===n?i:n;return s.length>=By&&r.startsWith(s)}function tv(t,e){var i,s;if(!((i=t.toolEvents)!=null&&i.length)||!((s=e.toolEvents)!=null&&s.length))return!1;const n=new Set(t.toolEvents.map(r=>r.id));return e.toolEvents.some(r=>n.has(r.id))}function _r(t,e,n){return Math.abs(Ea(t)-Ea(e))<=n}function bh(t,e){for(let n=e-1;n>=0;n--){const i=t[n];if(i&&(i.type==="user"||i.type==="connector"))return i.id}}function nv(t,e,n,i,s,r,a){if(t.type!=="assistant"||i.type!=="assistant"||!t.agentId||t.agentId!==i.agentId||t.replyTo&&i.replyTo&&t.replyTo!==i.replyTo)return!1;const o=!!t.replyTo&&t.replyTo===i.replyTo,c=TO(t,a),d=PO(i),u=!!c&&!!d&&c!==d,h=ev(t,i),f=tv(t,i),p=bh(n,e),O=bh(r,s),x=o||!!p&&p===O,b=t.origin==="stream"&&!t.isStreaming;return x?b?_r(t,i,Vy):_r(t,i,zy)||h||f:u?!1:!!(f&&_r(t,i,mh)||h&&_r(t,i,mh))}function iv(t,e,n,i,s,r){for(let a=i.length-1;a>=0;a--){const o=s[a];if(o&&nv(t,e,n,o,a,i,r))return a}}function yh(t){var e,n,i,s;return[t.content.length,((e=t.thinking)==null?void 0:e.length)??0,((n=t.toolEvents)==null?void 0:n.length)??0,((s=(i=t.extra)==null?void 0:i.rich)==null?void 0:s.blocks.length)??0]}function vh(t){return t.origin==="callback"?2:t.origin==="stream"?1:0}function Ea(t){return t.deliveredAt??t.timestamp}function Sh(t,e){const n=vh(t),i=vh(e);if(n!==i)return n>i;if(n===2)return Ea(t)>Ea(e);const s=yh(t),r=yh(e);for(let a=0;a<s.length;a++)if(s[a]!==r[a])return s[a]>r[a];return!1}function sv(t,e,n){if(e.length===0)return{messages:t,stats:{preservedLocalCount:0,reconciledToHistoryCount:0,replacedHistoryCount:0}};const i=new Set(t.map(u=>u.id)),s=[...t],r=new Map;for(let u=0;u<t.length;u++){const h=t[u],f=h.agentId?PO(h):void 0;!h.agentId||!f||r.set(`${h.agentId}:${f}`,u)}let a=0,o=0,c=0;for(let u=0;u<e.length;u++){const h=e[u];if(i.has(h.id))continue;const f=h.agentId?TO(h,n):void 0,p=h.agentId&&f?`${h.agentId}:${f}`:void 0;if(p){const g=r.get(p);if(g!==void 0){const x=s[g];Sh(h,x)?(s[g]={...h,isStreaming:gh(h,x)},c++):o++;continue}}const O=iv(h,u,e,t,s,n);if(O!==void 0){const g=s[O];Sh(h,g)?(s[O]={...h,isStreaming:gh(h,g)},c++):o++;continue}s.push(h),a++}const d=s.sort(Yx);return{messages:Jy(d,n),stats:{preservedLocalCount:a,reconciledToHistoryCount:o,replacedHistoryCount:c}}}function rv(t){const{messages:e,isLoadingHistory:n,hasMore:i,prependHistory:s,replaceMessages:r,setLoadingHistory:a,clearMessages:o,addMessageToThread:c,setAgentInvocation:d,replaceThreadTargetAgents:u,updateThreadAgentStatus:h,setQueue:f,setQueuePaused:p,addActiveInvocation:O,setHasActiveInvocation:g}=E(),{setTasks:x}=Fs(),b=m.useRef(null),y=m.useRef(null),S=m.useRef(null),P=m.useRef(0),w=m.useRef(null),C=m.useRef(null),Q=m.useRef(null),T=m.useRef(!1),A=m.useRef(null),$=m.useRef({messages:!1,panels:!1}),N=m.useRef(null),R=m.useRef(null),z=m.useRef(new Map),I=m.useRef(!1),B=m.useRef(null),M=m.useRef(t);M.current=t;const L=m.useCallback(()=>{C.current!==null&&(cancelAnimationFrame(C.current),C.current=null)},[]),F=m.useCallback(()=>{A.current!==null&&(clearTimeout(A.current),A.current=null)},[]),de=m.useCallback(V=>{L();let Y=Iy;const le=M.current,me=()=>{if(M.current!==le){C.current=null;return}const Ee=y.current;if(!Ee){C.current=null;return}const Ae=Math.max(0,Ee.scrollHeight-Ee.clientHeight),De=V.anchor==="bottom"?Ae:Math.min(V.top,Ae);Ee.scrollTop=De;const Ie=V.anchor==="bottom"?Ae>0:Ae>=V.top,Ye=Math.abs(Ee.scrollTop-De)<=1;if(Ie&&Ye||Y<=0){il(le,Ee),C.current=null;return}Y-=1,C.current=requestAnimationFrame(me)};C.current=requestAnimationFrame(me)},[L]),ce=m.useCallback(async(V,Y)=>{var Ee;if(I.current)return;const le=B.current;if(!le)return;I.current=!0,(Y==null?void 0:Y.replaceSource)!=="live_refresh"&&a(!0);const me=t;try{const De=typeof window<"u"&&new URLSearchParams(window.location.search).get("export")==="true"?qy:Dy,Ie=new URLSearchParams({limit:String(De)});V&&Ie.set("before",V),Ie.set("threadId",me);const Ye=await G(`/api/messages?${Ie}`,{signal:le.signal});if(!Ye.ok||M.current!==me)return;const Ve=await Ye.json(),Ge=(Ve.messages??[]).filter(D=>!sO(D)).map(D=>{var he,pe,we,xe;return{id:D.id,type:D.type==="system"?"system":D.source?Xy(D.source.connector)?"user":"connector":D.agentId?"assistant":"user",agentId:D.agentId,content:D.content,...D.contentBlocks?{contentBlocks:D.contentBlocks}:{},...D.toolEvents?{toolEvents:Ky(D.toolEvents)}:{},...D.metadata?{metadata:D.metadata}:{},...D.origin?{origin:D.origin}:{},...D.thinking?{thinking:D.thinking}:{},...(he=D.extra)!=null&&he.rich||(pe=D.extra)!=null&&pe.crossPost||(we=D.extra)!=null&&we.stream||(xe=D.extra)!=null&&xe.taskRuns?{extra:{...D.extra.rich?{rich:D.extra.rich}:{},...D.extra.crossPost?{crossPost:D.extra.crossPost}:{},...D.extra.stream?{stream:D.extra.stream}:{},...D.extra.taskRuns?{taskRuns:D.extra.taskRuns}:{}}}:{},...D.visibility?{visibility:D.visibility}:{},...D.whisperTo?{whisperTo:D.whisperTo}:{},...D.revealedAt?{revealedAt:D.revealedAt}:{},...D.deliveredAt?{deliveredAt:D.deliveredAt}:{},...D.source?{source:D.source}:{},...D.mentionsUser?{mentionsUser:!0}:{},...D.replyTo?{replyTo:D.replyTo}:{},...D.replyPreview?{replyPreview:D.replyPreview}:{},...D.isDraft?{isStreaming:!0}:{},timestamp:D.timestamp}}),v=!V,U=N.current,_=!!(v&&U&&U.threadId!==me&&U.count>=Fy&&Ge.length<=Uy),Z=_&&U?`${U.threadId}->${me}:${Ge.length}`:null,te=_&&U?`当前会话 threadId=${me},上一会话 threadId=${U.threadId}。当前仅加载到 ${Ge.length} 条消息;如果感觉内容消失,请检查是否切到了新线程。`:null;if(v&&(N.current={threadId:me,count:Ge.length}),Y!=null&&Y.replace){const D=E.getState(),he=sv(Ge,D.messages,D.agentInvocations),pe=he.messages;if(Vn({event:"history_replace",threadId:me,action:he.stats.preservedLocalCount>0||he.stats.replacedHistoryCount>0?"merge_local":he.stats.reconciledToHistoryCount>0?"reconcile_history":"replace_exact",queueLength:pe.length,reason:[`history=${Ge.length}`,`current=${D.messages.length}`,`preservedLocal=${he.stats.preservedLocalCount}`,`reconciledToHistory=${he.stats.reconciledToHistoryCount}`,`replacedHistory=${he.stats.replacedHistoryCount}`].join(",")}),!!(v&&(Y==null?void 0:Y.replaceSource)==="live_refresh"&&D.messages.length>=Gy&&pe.length<=Hy)){const be=Date.now(),oe=z.current.get(me)??0;be-oe>=Yy&&(z.current.set(me,be),c(me,{id:`sysinfo-reconnect-drop-${be}`,type:"system",variant:"info",content:`当前会话 threadId=${me} 在重连补拉后消息从 ${D.messages.length} 条降到 ${pe.length} 条。已自动发起一次重试补拉;如仍异常,请确认是否切到了其他线程。`,timestamp:be}),iO(me,"messages","reconnect-drop-retry"));return}r(pe,Ve.hasMore??!1,me),me===M.current&&(T.current=!0,Kt.set(me,{top:0,anchor:"bottom"}));const xe=pe.filter(be=>{var oe,ye;return be.type==="assistant"&&(be.isStreaming||be.id.startsWith("draft-"))&&((ye=(oe=be.extra)==null?void 0:oe.stream)==null?void 0:ye.invocationId)});for(const be of xe){const oe=be.extra.stream.invocationId,ye=be.agentId;ye&&oe&&(d(ye,{invocationId:oe}),(Ee=D.activeInvocations)!=null&&Ee[oe]||O(oe,ye,"execute"))}xe.length>0&&g(!0),te&&Z&&R.current!==Z&&(c(me,{id:`sysinfo-thread-switch-${Date.now()}`,type:"system",variant:"info",content:te,timestamp:Date.now()}),R.current=Z);return}s(Ge,Ve.hasMore??!1,me),!V&&me===M.current&&(T.current=!0),te&&Z&&R.current!==Z&&(c(me,{id:`sysinfo-thread-switch-${Date.now()}`,type:"system",variant:"info",content:te,timestamp:Date.now()}),R.current=Z)}catch(Ae){if(Rr(Ae))return}finally{B.current===le&&M.current===me&&(I.current=!1,a(!1))}},[a,s,r,c,d,O,g,t]),ae=m.useCallback(async()=>{const V=t,Y=B.current;if(Y)try{const le=await G(`/api/tasks?threadId=${encodeURIComponent(V)}`,{signal:Y.signal});if(!le.ok||B.current!==Y||M.current!==V)return;const me=await le.json();x(me.tasks??[])}catch(le){if(Rr(le))return}},[t,x]),J=m.useCallback(async()=>{const V=t,Y=B.current;if(Y)try{const le=await G(`/api/threads/${encodeURIComponent(V)}/task-progress`,{signal:Y.signal});if(!le.ok||B.current!==Y||M.current!==V)return;const me=await le.json();if(me.taskProgress){const Ee=[];for(const[De,Ie]of Object.entries(me.taskProgress)){d(De,{taskProgress:{tasks:Ie.tasks.map(Ge=>({id:Ge.id,subject:Ge.subject,status:Ge.status==="in_progress"?"in_progress":Ge.status==="completed"?"completed":"pending",...Ge.activeForm?{activeForm:Ge.activeForm}:{}})),lastUpdate:Ie.updatedAt??Date.now(),...Ie.status?{snapshotStatus:Ie.status}:{},...Ie.lastInvocationId?{lastInvocationId:Ie.lastInvocationId}:{},...Ie.interruptReason?{interruptReason:Ie.interruptReason}:{}}});const Ye=Ie.tasks.length>0,Ve=Ie.status==="completed";Ye&&!Ve&&Ee.push(De)}const Ae=E.getState().targetAgents;Ee.length>0&&Ae.length===0&&u(V,Ee)}}catch(le){if(Rr(le))return}},[t,d,u]),X=m.useCallback(async()=>{const V=t,Y=B.current;if(Y)try{const le=await G(`/api/threads/${encodeURIComponent(V)}/queue`,{signal:Y.signal});if(!le.ok||B.current!==Y||M.current!==V)return;const me=await le.json();f(V,me.queue),p(V,me.paused,me.pauseReason);const Ee=E.getState();if(me.activeInvocations&&me.activeInvocations.length>0){u(V,me.activeInvocations);for(const Ae of me.activeInvocations)h(V,Ae,"streaming");Ee.setThreadHasActiveInvocation(V,!0)}else if(Ee.clearThreadActiveInvocation(V),u(V,[]),Ee.currentThreadId===V)for(const Ae of Ee.messages)Ae.type==="assistant"&&Ae.isStreaming&&Ee.setStreaming(Ae.id,!1);else{const Ae=Ee.threadStates[V];if(Ae!=null&&Ae.messages)for(const De of Ae.messages)De.type==="assistant"&&De.isStreaming&&Ee.setThreadMessageStreaming(V,De.id,!1)}}catch(le){if(Rr(le))return}},[t,f,p,h]),ne=m.useCallback(()=>{F();const V=$.current;if(!V.messages&&!V.panels)return;const Y=B.current;if(!Y||Y.signal.aborted||M.current!==t||I.current){A.current=setTimeout(()=>{ne()},Oh);return}$.current={messages:!1,panels:!1},V.messages&&ce(void 0,{replace:!0,replaceSource:"live_refresh"}),V.panels&&(ae(),J(),X())},[F,ce,X,J,ae,t]),ue=m.useCallback((V="all")=>{(V==="all"||V==="messages")&&($.current.messages=!0),(V==="all"||V==="panels")&&($.current.panels=!0),A.current===null&&(A.current=setTimeout(()=>{ne()},Oh))},[ne]);m.useEffect(()=>{const V=Y=>{const le=Y.detail;!le||le.threadId!==t||ue(le.scope??"all")};return window.addEventListener(Gu,V),()=>window.removeEventListener(Gu,V)},[ue,t]),m.useEffect(()=>{var v;(v=B.current)==null||v.abort(),B.current=new AbortController,I.current=!1,F(),L(),$.current={messages:!1,panels:!1},T.current=!0,P.current=0,S.current=null,w.current=null,Kt.set(t,{top:0,anchor:"bottom"});const V=B.current,Y=E.getState(),le=Y.threadStates[t],me=le&&le.messages.length>0,Ee=Y.currentThreadId===t,Ae=(le==null?void 0:le.hasActiveInvocation)===!0,De=le?My(le.messages):!1;let Ie=!1;const Ye=()=>{Ie||(Ie=!0,!(B.current!==V||M.current!==t)&&(V.signal.aborted||(ae(),J())))},Ve=setTimeout(()=>{Ye()},Wy);return(async()=>{try{me?(Ae||le&&le.unreadCount>0||De)&&await ce(void 0,{replace:!0,replaceSource:"bootstrap_or_cache"}):(Ee&&o(),await ce())}finally{X(),Ye()}})(),()=>{var U;clearTimeout(Ve),L(),F(),$.current={messages:!1,panels:!1},(U=B.current)==null||U.abort()}},[t,F,L,o,ce,X,J,ae]),m.useEffect(()=>{if(!T.current||E.getState().currentThreadId!==t||n||e.length===0&&i)return;T.current=!1;let Y=0;const le=requestAnimationFrame(()=>{Y=requestAnimationFrame(()=>{de({top:0,anchor:"bottom"})})});return()=>{cancelAnimationFrame(le),Y&&cancelAnimationFrame(Y)}},[t,n,e.length,i,de,e]);const je=E(V=>V.streamCatchUpVersion),ve=E(V=>V.streamCatchUpThreadId);m.useEffect(()=>{if(je===0||ve!==t)return;const V=setTimeout(()=>{ce(void 0,{replace:!0,replaceSource:"stream_catchup"})},600);return()=>clearTimeout(V)},[je,ve,t,ce]);const $e=m.useCallback((V="smooth")=>{var le;(le=b.current)==null||le.scrollIntoView({behavior:V});const Y=y.current;Y&&Kt.set(t,{top:Y.scrollTop,anchor:"bottom"})},[t]),Qe=m.useCallback((V="auto")=>{var Y;((Y=Kt.get(t))==null?void 0:Y.anchor)==="bottom"&&(Q.current!==null&&cancelAnimationFrame(Q.current),Q.current=requestAnimationFrame(()=>{var me;Q.current=null,(me=b.current)==null||me.scrollIntoView({behavior:V});const le=y.current;le&&Kt.set(t,{top:le.scrollTop,anchor:"bottom"})}))},[t]);return m.useEffect(()=>{const V=y.current;V&&n&&(w.current=V.scrollHeight)},[n]),m.useEffect(()=>{var De;const V=y.current;if(e.length===0||E.getState().currentThreadId!==t)return;const le=P.current,me=S.current,Ee=e[0].id;if(P.current=e.length,S.current=Ee,le===0){de(Kt.get(t)??{top:0,anchor:"bottom"});return}if(me&&Ee!==me&&V&&w.current!==null){const Ie=V.scrollHeight-w.current;V.scrollTop+=Ie,w.current=null,il(t,V);return}if(e.length>le){const Ie=Kt.get(t);(Ie==null?void 0:Ie.anchor)==="bottom"&&((De=b.current)==null||De.scrollIntoView({behavior:"smooth"}),V&&Kt.set(t,{top:V.scrollTop,anchor:"bottom"}));return}const Ae=Kt.get(t);if((Ae==null?void 0:Ae.anchor)==="bottom"){if(Q.current!==null)return;Q.current=requestAnimationFrame(()=>{var Ye;Q.current=null,(Ye=b.current)==null||Ye.scrollIntoView({behavior:"auto"});const Ie=y.current;Ie&&Kt.set(t,{top:Ie.scrollTop,anchor:"bottom"})})}},[e,de,t]),m.useEffect(()=>()=>{Q.current!==null&&(cancelAnimationFrame(Q.current),Q.current=null),F()},[F]),{handleScroll:m.useCallback(()=>{const V=y.current;if(V&&(E.getState().currentThreadId===M.current&&il(M.current,V),!(!i||n)&&V.scrollTop<80&&e.length>0)){const Y=e.find(le=>!le.id.startsWith("draft-"));Y&&ce(`${Y.deliveredAt??Y.timestamp}:${Y.id}`)}},[i,n,e,ce]),scrollContainerRef:y,messagesEndRef:b,scrollToBottom:$e,followLayoutChangeIfPinned:Qe,isLoadingHistory:n,hasMore:i}}function av(t){const[e,n]=m.useState({});m.useEffect(()=>{let s=!1;n({});async function r(){try{const a=await G(`/api/feedback/by-thread/${encodeURIComponent(t)}`);if(!a.ok||s)return;const o=await a.json();s||n(o)}catch{s||n({})}}return r(),()=>{s=!0}},[t]);const i=m.useCallback(async(s,r,a)=>{const o=await G("/api/feedback",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messageId:s,vote:r,...a?{reason:a}:{}})});if(!o.ok)throw new Error(`Feedback submit failed: HTTP ${o.status}`);const c=await o.json();n(d=>({...d,[s]:{vote:c.vote,reason:c.reason??null,timestamp:c.timestamp??Date.now()}}))},[]);return{feedbackByMessageId:e,submitFeedback:i}}function ov({threadId:t,userId:e,handleAgentMessage:n,resetTimeout:i,clearDoneTimeout:s,handleAuthRequest:r,handleAuthResponse:a,handleAskUserQuestionRequest:o,handleAskUserQuestionResponse:c,onNavigateToThread:d}){const{updateThreadTitle:u,setLoading:h,setHasActiveInvocation:f,setIntentMode:p,setTargetAgents:O,removeThreadMessage:g}=E(),{addTask:x,updateTask:b}=Fs();return m.useMemo(()=>({clearDoneTimeout:s,onMessage:y=>(n(y),!0),onThreadCreated:y=>{typeof window<"u"&&window.dispatchEvent(new CustomEvent("office-claw:threads-refresh")),y.source==="connector_command"&&y.threadId&&(d==null||d(y.threadId))},onThreadUpdated:y=>u(y.threadId,y.title),onIntentMode:y=>{h(!0),f(!0),p(y.mode),O(y.targetAgents??[])},onTaskCreated:y=>x(y),onTaskUpdated:y=>b(y),onHeartbeat:y=>{y.threadId===t&&i()},onMessageDeleted:y=>g(y.threadId,y.messageId),onMessageRestored:()=>{},onThreadBranched:()=>{},onAuthorizationRequest:r,onAuthorizationResponse:a,onAskUserQuestionRequest:o,onAskUserQuestionResponse:c}),[n,u,h,f,p,O,x,b,g,i,s,r,a,o,c,d,t,e])}function lv(){return{processCommand:m.useCallback(async(e,n)=>!1,[])}}const wh=30,cv=new Set(["未命名会话","未命名对话"]);function dv(t){const e=new Set(Object.keys(Sd()).map(i=>i.toLowerCase())),n=F2(t,e);return n?n.length>wh?`${n.slice(0,wh)}...`:n:null}function uv(t,e){if(!t||t==="default")return!1;const n=(e==null?void 0:e.trim())??"";return n.length===0||cv.has(n)}function hv(t,e){const{addMessage:n,addMessageToThread:i,removeMessage:s,removeThreadMessage:r,replaceThreadMessageId:a,updateThreadLastActive:o,setLoading:c,setHasActiveInvocation:d,setThreadLoading:u,setThreadHasActiveInvocation:h}=E(),{processCommand:f}=lv(),[p,O]=m.useState("idle"),[g,x]=m.useState(null),b=e==null?void 0:e.resetRefs,y=m.useCallback(async(w,C)=>{const Q=dv(C);if(!Q)return;const T=E.getState(),A=(T.threads??[]).find($=>$.id===w);if(!A){typeof window<"u"&&window.dispatchEvent(new CustomEvent("office-claw:threads-refresh"));return}if(uv(w,A.title)){T.updateThreadTitle(w,Q);try{const $=await G(`/api/threads/${w}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:Q})});if(!$.ok)return;const N=await $.json().catch(()=>null),R=typeof(N==null?void 0:N.title)=="string"&&N.title.trim().length>0?N.title:Q;E.getState().updateThreadTitle(w,R)}catch{}}},[]),S=m.useCallback(()=>{var C;if((C=globalThis.crypto)!=null&&C.randomUUID)return globalThis.crypto.randomUUID();const w=Q=>Array.from({length:Q},()=>Math.floor(Math.random()*16).toString(16)).join("");return[w(8),w(4),`4${w(3)}`,`${["8","9","a","b"][Math.floor(Math.random()*4)]}${w(3)}`,w(12)].join("-")},[]);return{handleSend:m.useCallback(async(w,C,Q,T,A,$)=>{var J,X,ne,ue,je;const N=t??E.getState().currentThreadId,R=Q??N,z=!!(C&&C.length>0),I=A==="queue";if(I||b==null||b(),x(null),O(z?"uploading":"idle"),await f(w,R))return;const M=S(),L=`user-${M}`,F=Date.now();o(R,F);const de={id:L,type:"user",content:w,timestamp:F,...T?{visibility:T.visibility,whisperTo:T.whisperTo}:{}};C&&C.length>0&&(de.contentBlocks=[{type:"text",text:w},...C.map(ve=>{const $e=URL.createObjectURL(ve);return ve.type.startsWith("image/")?{type:"image",url:$e}:{type:"file",url:$e,fileName:ve.name,mimeType:ve.type,fileSize:ve.size}})]),I||(R!==N?i(R,de):n(de)),I||(R!==N?(u(R,!0),h(R,!0)):(c(!0),d(!0)));const ce=ve=>(ve==null?void 0:ve.status)==="game_started"&&ve.gameThreadId?(r(R,L),u(R,!1),h(R,!1),!0):(ve==null?void 0:ve.status)!=="queued"||I?!1:(R!==N?r(R,L):s(L),!0),ae=ve=>{var H;if(!I||!ve||ve.status==="queued"||ve.status==="duplicate"||ve.status==="game_started")return!1;const $e=(H=ve.userMessageId)==null?void 0:H.trim(),Qe=$e?{...de,id:$e}:de;return R!==N?i(R,Qe):n(Qe),!0};try{const ve=A?{deliveryMode:A}:{};if(C&&C.length>0){const $e=new FormData;if($e.append("content",w),$e.append("threadId",R),$e.append("idempotencyKey",M),A&&$e.append("deliveryMode",A),$!=null&&$.resumeAgentId&&$e.append("resumeAgentId",$.resumeAgentId),$!=null&&$.interactiveAsk&&$e.append("interactive_ask","true"),$!=null&&$.pptContext&&$e.append("pptContext",JSON.stringify($.pptContext)),$!=null&&$.pptTemplateId&&$e.append("pptTemplateId",$.pptTemplateId),(J=$==null?void 0:$.mentionRefs)!=null&&J.length&&$e.append("mentionRefs",JSON.stringify($.mentionRefs)),T){$e.append("visibility",T.visibility);for(const Y of T.whisperTo)$e.append("whisperTo",Y)}for(const Y of C)$e.append(Y.type.startsWith("image/")?"images":"attachments",Y);const Qe=await G("/api/messages",{method:"POST",body:$e});if(!Qe.ok){const Y=await Qe.json().catch(()=>null);throw new Error((Y==null?void 0:Y.detail)??`Server error: ${Qe.status}`)}const H=await Qe.json().catch(()=>null);I&&((X=$==null?void 0:$.onQueueResult)==null||X.call($,{status:H==null?void 0:H.status,entryId:H==null?void 0:H.entryId,merged:H==null?void 0:H.merged})),!ae(H)&&!ce(H)&&(H!=null&&H.userMessageId)&&a(R,L,H.userMessageId)}else{const $e=await G("/api/messages",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:w,threadId:R,idempotencyKey:M,...T?{visibility:T.visibility,whisperTo:T.whisperTo}:{},...ve,...$!=null&&$.resumeAgentId?{resumeAgentId:$.resumeAgentId}:{},...$!=null&&$.interactiveAsk?{interactive_ask:!0}:{},...$!=null&&$.pptContext?{pptContext:$.pptContext}:{},...$!=null&&$.pptTemplateId?{pptTemplateId:$.pptTemplateId}:{},...(ne=$==null?void 0:$.mentionRefs)!=null&&ne.length?{mentionRefs:$.mentionRefs}:{}})});if(!$e.ok){const V=await $e.json().catch(()=>null);throw new Error((V==null?void 0:V.detail)??`Server error: ${$e.status}`)}const Qe=await $e.json().catch(()=>null);I&&((ue=$==null?void 0:$.onQueueResult)==null||ue.call($,{status:Qe==null?void 0:Qe.status,entryId:Qe==null?void 0:Qe.entryId,merged:Qe==null?void 0:Qe.merged})),!ae(Qe)&&!ce(Qe)&&(Qe!=null&&Qe.userMessageId)&&a(R,L,Qe.userMessageId)}await y(R,w),O("idle"),x(null)}catch(ve){I&&((je=$==null?void 0:$.onQueueResult)==null||je.call($,{status:"failed"})),!I&&A!=="force"&&(u(R,!1),h(R,!1));const Qe=ve instanceof Error?ve.message:"Unknown";z?(O("failed"),x(Qe)):O("idle");const H={id:`err-${Date.now()}`,type:"system",variant:"error",content:`Failed to send message: ${Qe}`,timestamp:Date.now()};R!==N?i(R,H):n(H)}},[b,f,n,i,s,r,a,o,c,d,u,h,t,S,y]),uploadStatus:p,uploadError:g}}function fv(){m.useEffect(()=>{function t(e){if(!e.metaKey&&!e.ctrlKey)return;const n=E.getState();if(e.key==="\\"){e.preventDefault(),n.setViewMode(n.viewMode==="single"?"split":"single");return}if(n.viewMode!=="split")return;const i=["1","2","3","4"].indexOf(e.key);if(i<0)return;e.preventDefault();const s=n.splitPaneThreadIds[i];s&&n.setSplitPaneTarget(s)}return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[])}const $O=(F0("NEXT_PUBLIC_JSDELIVR_HOST")||"https://cdn.jsdelivr.net").replace(/\/+$/,""),pv=`${$O}/npm/onnxruntime-web@1.22.0/dist/`,Ov=`${$O}/npm/@ricky0123/vad-web@0.0.30/dist/`;function mv(){var e;const t=Rt.getState();((e=t.session)==null?void 0:e.playbackState)==="playing"&&t.stopAllAudio()}function gv(){const t=Rt(r=>{var a;return((a=r.session)==null?void 0:a.voiceMode)??!1}),e=Rt(r=>{var a;return((a=r.session)==null?void 0:a.playbackState)??"idle"}),n=m.useRef(null),[i,s]=m.useState("inactive");return m.useEffect(()=>{if(!t){n.current&&(n.current.destroy().catch(()=>{}),n.current=null,s("inactive"));return}let r=!1;async function a(){s("loading");try{const{MicVAD:o}=await Gx(async()=>{const{MicVAD:d}=await import("./vad-web-C_R267y1.js");return{MicVAD:d}},[]);if(r)return;const c=await o.new({model:"v5",baseAssetPath:Ov,onnxWASMBasePath:pv,startOnLoad:!1,onSpeechStart:mv,onSpeechEnd:()=>{},onVADMisfire:()=>{}});if(r){await c.destroy();return}n.current=c,s("paused")}catch(o){r||(console.error("[VAD] Initialisation failed:",o),s("error"))}}return a(),()=>{r=!0,n.current&&(n.current.destroy().catch(()=>{}),n.current=null,s("inactive"))}},[t]),m.useEffect(()=>{const r=n.current;!r||i==="loading"||i==="error"||(e==="playing"?r.listening||r.start().then(()=>{s("listening")}).catch(a=>{console.error("[VAD] start() failed:",a),s("error")}):r.listening&&r.pause().then(()=>{s("paused")}).catch(()=>{}))},[e,i]),{vadState:i}}async function*xv(t,e){var a;const n=await G("/api/tts/stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:e});if(!n.ok){const o=await n.text().catch(()=>"unknown");throw new Error(`TTS stream failed: ${n.status} ${o}`)}const i=(a=n.body)==null?void 0:a.getReader();if(!i)throw new Error("ReadableStream not available");const s=new TextDecoder;let r="";try{for(;;){const{done:o,value:c}=await i.read();if(o)break;r+=s.decode(c,{stream:!0});const d=r.split(`
|
|
18
|
+
|
|
19
|
+
`);r=d.pop();for(const u of d){const h=u.split(`
|
|
20
|
+
`).find(p=>p.startsWith("data: "));if(!h)continue;const f=JSON.parse(h.slice(6));if(f.type==="error")throw new Error(f.error??"TTS stream error");if(yield f,f.type==="done")return}}}finally{i.releaseLock()}}function bv(t,e="audio/wav"){const n=atob(t),i=new Uint8Array(n.length);for(let s=0;s<n.length;s++)i[s]=n.charCodeAt(s);return new Blob([i],{type:e})}let Yn=null,ha=null,hn=null,pc=[],Kn=null;function jO(){if(Yn)return Yn;const t=document.createElement("audio");return t.id="voice-autoplay-audio",t.style.display="none",t.preload="auto",document.body.appendChild(t),Yn=t,t}function Qi(){hn==null||hn.abort(),hn=null,Kn==null||Kn(),Kn=null,Yn&&(Yn.pause(),Yn.removeAttribute("src"),Yn.onended=null,Yn.onerror=null),ha&&(URL.revokeObjectURL(ha),ha=null);for(const t of pc)URL.revokeObjectURL(t);pc=[]}function yv(t){var e;return!!((e=t.text)!=null&&e.trim())&&!t.url}async function vv(t,e){var h;Qi(),AO();const{markPlayed:n,setPlaybackState:i,confirmAutoplayUnlocked:s}=Rt.getState();function r(){const{session:f}=Rt.getState();return!(f!=null&&f.voiceMode)||f.sessionId!==e}hn=new AbortController;const a=jO(),o=[];let c=!1,d=!1;const u=()=>{if(o.length===0){d&&i("idle");return}const f=o.shift();a.src=f,a.play().catch(()=>i("idle"))};a.onended=u,a.onerror=()=>i("idle");try{i("playing");for await(const f of xv({text:t.text,agentId:(h=Rt.getState().session)==null?void 0:h.activeCatId},hn.signal)){if(hn.signal.aborted||r())break;if(f.type==="chunk"&&f.audioBase64){const p=f.format==="mp3"?"audio/mpeg":"audio/wav",O=bv(f.audioBase64,p),g=URL.createObjectURL(O);pc.push(g),c?(o.push(g),a.ended&&u()):(c=!0,a.src=g,await a.play(),s(),n(t.id))}}d=!0,o.length===0&&(!c||a.ended)&&i("idle")}catch{hn!=null&&hn.signal.aborted||i("idle")}}async function Sv(t,e){Qi(),AO();const{markPlayed:n,setPlaybackState:i,confirmAutoplayUnlocked:s}=Rt.getState();function r(){const{session:a}=Rt.getState();return!(a!=null&&a.voiceMode)||a.sessionId!==e}try{let a;if(t.url.startsWith("/api/")){const c=await G(t.url);if(!c.ok)return;if(r()){Qi();return}const d=await c.blob();a=URL.createObjectURL(d),ha=a}else a=t.url;if(r()){Qi();return}const o=jO();o.src=a,i("playing"),o.onended=()=>{i("idle")},o.onerror=()=>{i("idle")},await o.play(),s(),n(t.id)}catch{i("idle")}}function kh(t){var e,n,i,s;for(let r=0;r<t.length;r++){const a=t[r];if(a.type!=="assistant")continue;const o=(n=(e=a.extra)==null?void 0:e.rich)==null?void 0:n.blocks;if(!o)continue;const c=(s=(i=a.extra)==null?void 0:i.stream)==null?void 0:s.invocationId;if(c&&Rt.getState().isLiveStreamedInvocation(c)){for(const u of o)u.kind==="audio"&&Rt.getState().markPlayed(u.id);continue}const d=o.filter(u=>u.kind==="audio");for(const u of d)if(!Rt.getState().hasPlayed(u.id))return u}return null}function AO(){Kn==null||Kn(),Kn=Rt.getState().registerStopCallback("autoplay",()=>{Qi(),Rt.getState().setPlaybackState("idle")})}function Qh(t,e){yv(t)?vv(t,e):Sv(t,e)}function wv(){const t=E(a=>a.messages),e=E(a=>a.currentThreadId),n=Rt(a=>a.session),i=m.useRef(t.length),s=m.useRef(null),r=m.useRef(e);m.useEffect(()=>{if(!(n!=null&&n.voiceMode)){i.current=t.length,s.current=null,r.current=e;return}if(n.liveStreamActive){i.current=t.length;return}if(e!==n.boundThreadId){i.current=0,r.current=e;return}const a=r.current!==e;if(r.current=e,a){i.current=t.length;return}const o=s.current!==n.sessionId;if(s.current=n.sessionId,o){const u=kh(t);i.current=t.length,u&&Qh(u,n.sessionId);return}const c=i.current;if(i.current=t.length,t.length<=c)return;const d=kh(t.slice(c));d&&Qh(d,n.sessionId)},[t,n,e]),m.useEffect(()=>(n!=null&&n.voiceMode||Qi(),()=>Qi()),[n==null?void 0:n.voiceMode])}function kv(t,e,n){const s=e.slice(-3).map(a=>{var h,f;const o=a.thinking?a.thinking.length:0,c=a.toolEvents?a.toolEvents.length:0,d=a.contentBlocks?a.contentBlocks.length:0,u=(f=(h=a.extra)==null?void 0:h.rich)!=null&&f.blocks?a.extra.rich.blocks.length:0;return`${a.id}:${a.content.length}:${o}:${c}:${d}:${u}:${a.isStreaming?1:0}`}).join("|"),r=n===void 0?"":String(n);return`${t}:${e.length}:${s}:${r}`}const Yi="其他";function sl(t,e){return e<=0||t<0?0:t>e-1?e-1:t}function Ch(...t){return t.filter(Boolean).join(" ")}function Qv(t){return t.some(e=>e.label===Yi)?t:[...t,{label:Yi}]}function rl(t,e){return t.map((n,i)=>{var a,o,c;const s=(a=e[i])==null?void 0:a.selectedOption,r=(c=(o=e[i])==null?void 0:o.customInput)==null?void 0:c.trim();return{question:n.question,selected_options:s?[s]:[],custom_input:s===Yi&&r?r:null}})}function Cv({requestId:t,source:e,questions:n,currentPage:i,defaultPage:s=0,onPageChange:r,expiresAtMs:a,onSubmit:o,onCancel:c,className:d}){var de,ce;const u=typeof i=="number",[h,f]=m.useState(()=>sl(s,n.length)),[p,O]=m.useState([]),[g,x]=m.useState("pending"),b=m.useRef(null),y=m.useRef(null),S=sl(u?i??0:h,n.length),P=n[S],w=m.useId(),C=n.length,Q=S>0,T=S<C-1,A=T?"下一步":"确认",[$,N]=m.useState(0);m.useEffect(()=>{if(!a)return;const ae=setInterval(()=>N(J=>J+1),1e3);return()=>clearInterval(ae)},[a]);const R=m.useMemo(()=>a?Math.max(0,Math.floor((a-Date.now())/1e3)):null,[a,$]);m.useEffect(()=>{R===0&&g==="pending"&&(x("skipped"),setTimeout(()=>{c==null||c({request_id:t,source:e,answers:rl(n,p)})},1200))},[R,g,t,e,n,p,c]);const z=m.useMemo(()=>P?Qv(P.options):[],[P]),I=(de=p[S])==null?void 0:de.selectedOption,B=((ce=p[S])==null?void 0:ce.customInput)??"";m.useEffect(()=>{var ae,J;I===Yi&&((ae=b.current)==null||ae.focus({preventScroll:!0}),(J=y.current)==null||J.scrollTo({top:y.current.scrollHeight,behavior:"smooth"}),setTimeout(()=>{var X;(X=L.current)==null||X.scrollIntoView({behavior:"smooth",block:"end"})},50))},[I]);const M=m.useMemo(()=>Ch("flex w-full flex-1 min-h-0 bg-white rounded-[15px] flex-col overflow-hidden px-5 py-4 text-[var(--text-primary)]",d),[d]),L=m.useRef(null),F=ae=>{const J=sl(ae,C);u||f(J),r==null||r(J),setTimeout(()=>{var X;(X=L.current)==null||X.scrollIntoView({behavior:"smooth",block:"end"})},50)};return P==null?null:l.jsx("div",{ref:L,className:"w-[560px] max-w-[85%] max-h-[318px] flex flex-col relative rounded-[16px] shadow-[var(--card-shadow)] p-[1px] bg-[linear-gradient(to_right,#FAC4FF_0%,#8086FE_27%,#EF83FA_57%,#FFCFCF_80%,#FFDEDE_100%)]",children:l.jsxs("section",{className:M,"aria-labelledby":w,"data-testid":"ask-user-question-card-root",children:[l.jsxs("header",{className:"mb-4 flex shrink-0 items-start justify-between gap-4",children:[l.jsx("h2",{id:w,className:"min-w-0 flex-1 text-[16px] font-semibold leading-[1.4] text-[var(--text-primary)]",children:P.question}),l.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[l.jsxs("span",{className:"text-[14px]","data-testid":"ask-user-question-card-page-indicator",children:[S+1," / ",C]}),l.jsxs("div",{className:"flex items-center gap-1",children:[l.jsx("button",{type:"button","aria-label":"上一页","data-testid":"ask-user-question-card-prev",className:"inline-flex h-4 w-4 items-center justify-center rounded-full text-[var(--text-secondary)] transition-colors hover:bg-[var(--surface-card-muted)] hover:text-[var(--text-primary)] disabled:cursor-not-allowed disabled:opacity-40",disabled:!Q,onClick:()=>F(S-1),children:l.jsx("svg",{className:"h-4 w-4",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true",children:l.jsx("path",{d:"M11.5 5L6.5 10L11.5 15",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"})})}),l.jsx("button",{type:"button","aria-label":"下一页","data-testid":"ask-user-question-card-next",className:"inline-flex h-4 w-4 items-center justify-center rounded-full text-[var(--text-secondary)] transition-colors hover:bg-[var(--surface-card-muted)] hover:text-[var(--text-primary)] disabled:cursor-not-allowed disabled:opacity-40",disabled:!T,onClick:()=>F(S+1),children:l.jsx("svg",{className:"h-4 w-4",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true",children:l.jsx("path",{d:"M8.5 5L13.5 10L8.5 15",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round"})})})]})]})]}),l.jsx("div",{ref:y,className:"min-h-0 flex-1 overflow-y-auto py-1 pr-1","data-testid":"ask-user-question-card-options",children:l.jsxs("div",{className:"flex flex-col gap-1",children:[z.map(ae=>{const J=I===ae.label;return l.jsx("button",{type:"button",disabled:ae.disabled,"data-testid":`ask-user-question-card-option-${ae.label}`,className:Ch("flex min-h-[38px] w-full items-center rounded-[8px] border border-[1px] px-4 py-2 transition-[border-color,background-color,box-shadow,color] duration-200",J?"border-[var(--connector-tab-border-selected)] bg-[var(--surface-panel)]":"border-transparent bg-[#fafafa] hover:border-[var(--border-default)] hover:bg-[var(--surface-panel)]",ae.disabled&&"cursor-not-allowed opacity-50"),"aria-pressed":J,onClick:()=>{ae.disabled||O(X=>{var ue;const ne=[...X];return ne[S]={selectedOption:ae.label,customInput:((ue=ne[S])==null?void 0:ue.customInput)??""},ne})},children:l.jsx("span",{className:"block text-[14px] leading-[1.5] text-[var(--text-primary)] text-left",children:ae.description?`${ae.label} (${ae.description})`:ae.label})},ae.label)}),I===Yi?l.jsx("input",{ref:b,type:"text",className:"ui-input mt-2 w-full rounded-[8px] px-3 py-2 text-[14px]",placeholder:"请输入","data-testid":"ask-user-question-card-other-input",value:B,onChange:ae=>{const J=ae.target.value;O(X=>{const ne=[...X];return ne[S]={selectedOption:Yi,customInput:J},ne})}}):null]})}),l.jsx("footer",{className:"mt-4 flex shrink-0 items-center gap-3",children:g==="pending"?l.jsxs(l.Fragment,{children:[l.jsx(Ft,{variant:"default",onClick:()=>{x("skipped"),setTimeout(()=>{c==null||c({request_id:t,source:e,answers:rl(n,p)})},1200)},children:R!=null?`跳过 (${R}s)`:"跳过"}),l.jsx(Ft,{color:"major",onClick:()=>{if(T){F(S+1);return}x("confirmed"),setTimeout(()=>{o({request_id:t,source:e,answers:rl(n,p)})},1200)},children:A})]}):l.jsx(Ft,{variant:"default",disabled:!0,children:g==="skipped"?"已跳过":"已确认"})})]})})}function Pv(t){const e=t.split(`
|
|
21
|
+
`),n=[];let i=!1;const s=/^###\s*P(\d+):\s*(.+)$/;for(let r=0;r<e.length;r++){const a=e[r];if(a.match(/^##\s*页面规划/)){i=!0;continue}if(i&&a.match(/^##\s/)&&!a.match(/^##\s*页面规划/)&&(i=!1),i){const o=a.match(s);if(o){const c=parseInt(o[1],10),d=o[2].trim();n.push({pageNumber:c,displayText:`P${c}: ${d}`,fullLine:a,lineIndex:r})}}}return n.sort((r,a)=>r.pageNumber-a.pageNumber)}function Tv(t,e,n){const i=t.split(`
|
|
22
|
+
`),s=n.match(/^P\d+:\s*(.+)$/),r=s?s[1]:n,a=i[e.lineIndex].startsWith("###");return i[e.lineIndex]=a?`### P${e.pageNumber}: ${r}`:`P${e.pageNumber}: ${r}`,i.join(`
|
|
23
|
+
`)}const $v="outline_confirm",jv="outline_use_edited",Av=300;function Mr(...t){return t.filter(Boolean).join(" ")}function Nv({content:t,isEditing:e,editedContent:n,onStartEdit:i,onConfirmEdit:s,onCancelEdit:r,onContentChange:a}){return l.jsx("div",{className:"flex items-center group hover:bg-gray-50 px-2 py-1.5 rounded min-h-[32px]",children:e?l.jsx(l.Fragment,{children:l.jsxs("div",{className:"relative flex-1",children:[l.jsx("input",{type:"text",value:n,onChange:o=>a(o.target.value),className:"ui-input w-full pr-12 text-[14px]",autoFocus:!0}),l.jsxs("div",{className:"absolute right-2 top-1/2 -translate-y-1/2 flex items-center gap-1",children:[l.jsx("button",{type:"button",onClick:s,className:"flex items-center justify-center w-[20px] h-[20px] hover:bg-gray-200 rounded",title:"确认",children:l.jsx("img",{src:"/icons/check-line.svg",alt:"确认",className:"w-[14px] h-[14px]"})}),l.jsx("button",{type:"button",onClick:r,className:"flex items-center justify-center w-[20px] h-[20px] hover:bg-gray-200 rounded",title:"取消",children:l.jsx("img",{src:"/icons/cross-line.svg",alt:"取消",className:"w-[14px] h-[14px]"})})]})]})}):l.jsxs(l.Fragment,{children:[l.jsx("span",{className:"flex-1 text-[14px] text-[var(--text-primary)] truncate",children:t}),l.jsx("button",{type:"button",onClick:i,className:"opacity-0 group-hover:opacity-100 ml-2 flex items-center justify-center w-[24px] h-[24px] hover:bg-gray-200 rounded transition-opacity",title:"编辑",children:l.jsx("img",{src:"/icons/edit.svg",alt:"编辑",className:"w-[14px] h-[14px]"})})]})})}function Rv({requestId:t,source:e,questions:n,onSubmit:i,className:s}){var ce,ae;const r=(ce=n[0])==null?void 0:ce.preview,a=(r==null?void 0:r.text)??"",o=(r==null?void 0:r.title)||((ae=n[0])==null?void 0:ae.header)||"大纲审阅",c=E(J=>J.openOutlinePreview),d=E(J=>J.activeOutlinePreview),u=E(J=>J.setOutlinePreviewConfirmed),h=E(J=>J.updateOutlinePreviewText),[f,p]=m.useState(!1),[O,g]=m.useState(a),[x,b]=m.useState(Av),[y,S]=m.useState(!1),P=m.useRef(!1),[w,C]=m.useState(null),[Q,T]=m.useState(""),A=m.useMemo(()=>Pv(O),[O]),$=A.length>0;m.useEffect(()=>{(d==null?void 0:d.requestId)===t&&(d==null?void 0:d.isConfirmed)===!0&&p(!0)},[d,t]);const N=f||(d==null?void 0:d.requestId)===t&&(d==null?void 0:d.isConfirmed)===!0;m.useEffect(()=>{if(y||f)return;const J=setInterval(()=>{b(X=>Math.max(0,X-1))},1e3);return()=>clearInterval(J)},[y,f]);const R=m.useCallback(()=>{S(!0),C(null),T(""),c({requestId:t,source:e,initialText:O,title:o,isConfirmed:f})},[c,t,e,O,o,f]),z=m.useCallback(()=>{var ue;p(!0),d&&d.requestId===t&&u(!0);const J=O.trim()!==a.trim(),X=J?jv:$v,ne=J?O.trim():null;i({request_id:t,source:e,answers:[{question:((ue=n[0])==null?void 0:ue.question)??"",selected_options:[X],custom_input:ne}]})},[d,u,i,t,e,n,O,a]);m.useEffect(()=>{x===0&&!f&&!y&&!P.current&&(P.current=!0,z())},[x,f,y,z]);const I=m.useCallback(J=>{var X;S(!0),C(J),T(((X=A[J])==null?void 0:X.displayText)??"")},[A]),B=m.useCallback(()=>{C(null),T("")},[]),M=m.useCallback(()=>{if(w===null)return;const J=A[w];if(!J)return;const X=Tv(O,J,Q);g(X),d&&d.requestId===t&&h(X),C(null),T("")},[w,Q,O,A,d,t,h]),L=m.useCallback(J=>{T(J)},[]),F=Mr("flex flex-col flex-1 min-h-0 bg-white rounded-[15px] overflow-hidden px-5 py-4 text-[var(--text-primary)]",s),de=m.useMemo(()=>x>0&&!N&&!y?`确认 (${x}s)`:"确认",[x,N,y]);return l.jsx("div",{className:Mr("max-w-[85%] flex flex-col relative rounded-[16px] border border-[var(--content-header-border)]",$?"w-[560px] max-h-[588px]":"w-auto"),children:l.jsxs("section",{className:F,"data-testid":"outline-preview-card-root",children:[l.jsx("header",{className:Mr("flex shrink-0 items-center justify-between gap-4",$?"mb-3":""),children:l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("img",{src:"/icons/outline.svg",alt:"大纲",className:"w-[24px] h-[24px]"}),l.jsx("h2",{className:"min-w-0 flex-1 text-[16px] font-semibold leading-[1.4] text-[var(--text-primary)]",children:o})]})}),$&&l.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto py-1 pr-1","data-testid":"outline-preview-card-content",children:A.map((J,X)=>l.jsx(Nv,{content:J.displayText,isEditing:w===X,editedContent:Q,onStartEdit:()=>I(X),onConfirmEdit:M,onCancelEdit:B,onContentChange:L},J.pageNumber))}),l.jsxs("footer",{className:Mr("flex shrink-0 items-center gap-3",$?"mt-4":"mt-2"),children:[l.jsx(Ft,{variant:"default",onClick:R,"data-testid":"outline-preview-card-open-panel",children:"查看详情"}),l.jsx(Ft,{color:"major",onClick:z,disabled:N,"data-testid":"outline-preview-card-confirm",children:N?"已确认":de})]})]})})}function NO(){const[t,e]=m.useState({clients:[],clientLabels:{},uiHints:{hiddenHubTabs:[],hiddenEnvCategories:[],hideSkillMountStatus:!1,hideAgentGuides:!1},loading:!0,error:null});return m.useEffect(()=>{let n=!1;return G("/api/available-clients").then(async i=>{if(!i.ok)throw new Error(`Failed to load available clients (${i.status})`);return await i.json()}).then(i=>{if(!n){const s=Object.fromEntries(i.clients.filter(r=>r.label.trim().length>0).map(r=>[r.id,r.label]));e({clients:i.clients,clientLabels:{...s,...i.clientLabels??{}},uiHints:i.uiHints??{hiddenHubTabs:[],hiddenEnvCategories:[],hideSkillMountStatus:!1,hideAgentGuides:!1},loading:!1,error:null})}}).catch(i=>{n||e({clients:[],clientLabels:{},uiHints:{hiddenHubTabs:[],hiddenEnvCategories:[],hideSkillMountStatus:!1,hideAgentGuides:!1},loading:!1,error:i instanceof Error?i.message:String(i)})}),()=>{n=!0}},[]),t}const _v={settings:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2zM12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6z",activity:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36-3.18-11.64A2 2 0 0 0 10.13 9H9.87a2 2 0 0 0-1.93 1.46L6.59 15H2",users:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75",sparkles:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.064 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0zM20 3v4M22 5h-4","chart-pie":"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95V12h9zM21.95 13.001c.055.55-.398.998-.95.998H12V5.002c0-.552-.449-1.005-.998-.95A10 10 0 1 0 21.95 13.002z",trophy:"M6 9H4.5a2.5 2.5 0 0 1 0-5H6M18 9h1.5a2.5 2.5 0 0 0 0-5H18M4 22h16M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22M18 2H6v7a6 6 0 0 0 12 0V2z",folder:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z","user-cog":"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM19.7 14.4l-.9-.3a2 2 0 0 1 0-3.8l.9-.3a.5.5 0 0 0 .2-.8l-.6-.7a2 2 0 0 1-2.7-2.7l-.7-.6a.5.5 0 0 0-.8.2l-.3.9a2 2 0 0 1-3.8 0l-.3-.9a.5.5 0 0 0-.8-.2",mic:"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3zM19 10v2a7 7 0 0 1-14 0v-2M12 19v3",bell:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9M10.3 21a1.94 1.94 0 0 0 3.4 0",timer:"M10 2h4M12 14l3-3M12 22a8 8 0 1 0 0-16 8 8 0 0 0 0 16z",shield:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z","heart-pulse":"M19.5 12.572l-7.5 7.428-7.5-7.428A5 5 0 0 1 12 6.006a5 5 0 0 1 7.5 6.572zM12 6l1 5h2l1-2 1.5 4H21",terminal:"M4 17l6-6-6-6M12 19h8"};function Ph({name:t,className:e="w-5 h-5"}){const n=_v[t];return n?l.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:e,children:l.jsx("path",{d:n})}):null}function Mv({expanded:t,className:e="w-4 h-4"}){return l.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:`${e} transition-transform duration-200 ${t?"rotate-90":""}`,children:l.jsx("path",{d:"M9 18l6-6-6-6"})})}const Ad=[{id:"agents",label:"成员协作",icon:"users",color:"var(--color-opus-primary)",preview:"总览 · 能力 · 配额 · 技能",tabs:[{id:"agents",label:"总览",icon:"users"},{id:"capabilities",label:"能力中心",icon:"sparkles"},{id:"routing",label:"配额看板",icon:"chart-pie"},{id:"skills",label:"技能扩展",icon:"sparkles"}]},{id:"settings",label:"系统配置",icon:"settings",color:"var(--color-cocreator-primary)",preview:"账号 · 语音 · 通知",tabs:[{id:"system",label:"系统配置",icon:"settings"},{id:"env",label:"环境 & 文件",icon:"folder"},{id:"provider-profiles",label:"账号配置",icon:"user-cog"},{id:"voice",label:"语音设置",icon:"mic"},{id:"notify",label:"通知",icon:"bell"}]},{id:"monitor",label:"监控与治理",icon:"activity",color:"var(--color-gemini-primary)",preview:"治理 · 救援 · 命令速查",tabs:[{id:"governance",label:"治理看板",icon:"shield"},{id:"rescue",label:"通用智能体救援",icon:"activity"},{id:"commands",label:"命令速查",icon:"terminal"}]}],Ev=Ad.flatMap(t=>t.tabs);function Iv(t){return Ad.find(e=>e.tabs.some(n=>n.id===t))}function Lv(t,e){return t==="quota"?"routing":t==="cats"||t==="strategy"||e(t)?"agents":t}function Xv({group:t,expanded:e,activeTab:n,onToggle:i,onSelectTab:s}){return l.jsxs("div",{className:"rounded-xl bg-[var(--surface-panel)] shadow-[var(--card-shadow)]",children:[l.jsxs("button",{onClick:i,className:"flex w-full items-center gap-3 rounded-xl px-4 py-3 text-left transition-colors hover:bg-[var(--overlay-item-hover-bg)]",children:[l.jsx("span",{className:"flex-shrink-0",style:{color:t.color},children:l.jsx(Ph,{name:t.icon,className:"h-5 w-5"})}),l.jsx("span",{className:"text-sm font-semibold text-[var(--text-primary)]",children:t.label}),l.jsx("span",{className:"flex-1"}),e?null:l.jsx("span",{className:"hidden max-w-[180px] truncate text-xs text-[var(--text-label-secondary)] sm:inline",children:t.preview}),l.jsx("span",{className:"min-w-[20px] rounded-full px-1.5 py-0.5 text-center text-xs font-medium",style:{color:t.color,backgroundColor:`color-mix(in srgb, ${t.color} 14%, transparent)`},children:t.tabs.length}),l.jsx(Mv,{expanded:e,className:"h-4 w-4 flex-shrink-0 text-[var(--text-label-secondary)]"})]}),e?l.jsx("div",{className:"px-2 pb-2",children:t.tabs.map(r=>{const a=r.id===n;return l.jsxs("button",{onClick:()=>s(r.id),className:"flex w-full items-center gap-3 rounded-lg px-4 py-2.5 text-left text-sm transition-colors",style:a?{backgroundColor:`color-mix(in srgb, ${t.color} 10%, transparent)`,color:t.color}:{},children:[l.jsx("span",{style:a?{color:t.color}:{color:"var(--text-label-secondary)"},children:l.jsx(Ph,{name:r.icon,className:"h-4 w-4"})}),l.jsx("span",{className:a?"font-medium":"text-[var(--text-secondary)]",children:r.label})]},r.id)})}):null]})}function Zv(t){const e=t==null?void 0:t.trim();return e&&(e.startsWith("/uploads/")||e.startsWith("/avatars/"))?e:null}function RO(t,e){return e!=null&&e[t]?e[t]:t==="openai"?"OpenAI":t==="anthropic"?"Anthropic":t==="google"?"Gemini":t==="dare"?"Office Agent":t==="opencode"?"OpenCode":t==="relayclaw"?"Assistant Agent":t==="antigravity"?"Antigravity":t}function Dv(t,e,n){if(t.embeddedRuntimeKind==="agentteams_acp")return"Assistant Agent";if(n!=null&&n[t.provider])return n[t.provider];if(t.provider==="relayclaw")return"Assistant Agent";if(t.provider==="dare")return"Office Agent";const i=(t.accountRef??t.providerProfileId??"").toLowerCase();return i.includes("claude")?"Claude":i.includes("codex")?"Codex":i.includes("gemini")?"Gemini":i.includes("opencode")?"OpenCode":i.includes("dare")?"Office Agent":i.includes("jiu")||i.includes("modelarts")?"ModelArts":t.provider==="antigravity"?"Antigravity":t.source==="runtime"&&t.provider==="openai"?"OpenAI-Compatible":RO((e==null?void 0:e.provider)??t.provider,n)}function Th(t){return t.replace(/-migrated-\d+$/,"")}function qv(t){var i,s;const e=((i=t.accountRef)==null?void 0:i.trim())??((s=t.providerProfileId)==null?void 0:s.trim())??"";if(t.embeddedRuntimeKind==="agentteams_acp"){const r=e?Th(e):"";return r?`内置 Runtime · API Key · ${r}`:"内置 Runtime · 待绑定 API Key"}if(!e)return RO(t.provider);const n=Th(e);return n==="claude"||n==="codex"||n==="gemini"||n==="dare"||n==="opencode"?"内置 OAuth 账号":`API Key · ${n}`}function Wv(t,e,n){return t.provider==="antigravity"?`Antigravity · ${(e==null?void 0:e.model)??t.defaultModel} · CLI Bridge`:`${Dv(t,e,n)} · ${(e==null?void 0:e.model)??t.defaultModel} · ${qv(t)}`}function zv(t){var e;return((e=t.roster)==null?void 0:e.available)===!1?{enabled:!1,label:"未启用",className:"border border-[var(--border-default)] bg-[var(--surface-card-muted)] text-[var(--text-secondary)]"}:{enabled:!0,label:"已启用",className:"ui-status-success"}}function _O(t,e=3){const n=t.slice(0,e),i=t.length-n.length;return i>0?`${n.join(" ")} +${i}`:n.join(" ")}function Bv({coCreator:t,onEdit:e}){var r;const n=((r=t.color)==null?void 0:r.primary)??"#D4A76A",i=Zv(t.avatar),s=e?"ui-card-muted ui-card-hover":"ui-card-muted";return l.jsxs("section",{role:e?"button":void 0,tabIndex:e?0:void 0,onClick:()=>e==null?void 0:e(),onKeyDown:a=>{e&&(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),e())},className:s,children:[l.jsxs("div",{className:"flex items-center justify-between gap-3",children:[l.jsxs("div",{className:"flex items-center gap-2.5",children:[l.jsx("div",{className:"flex h-8 w-8 items-center justify-center overflow-hidden rounded-full text-[11px] font-bold text-white",style:{backgroundColor:n},children:i?l.jsx("img",{src:i,alt:`${t.name} avatar`,className:"h-full w-full object-cover"}):"ME"}),l.jsx("h3",{className:"text-base font-bold text-[var(--text-primary)]",children:t.name})]}),l.jsxs("span",{className:"ui-status-warning flex items-center gap-1 rounded-[var(--radius-pill)] px-2.5 py-1 text-[11px] font-semibold",children:[l.jsx("svg",{className:"h-3 w-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:l.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z"})}),"Owner"]})]}),l.jsxs("p",{className:"mt-2.5 text-[13px] text-[var(--text-secondary)]",children:["别名: ",t.aliases.join(" · ")||"无"," · 仅可编辑,不可新增或删除"]}),l.jsx("p",{className:"mt-2 text-[13px] text-[var(--text-accent)]",children:_O(t.mentionPatterns,2)})]})}function Vv({onAddMember:t}){return l.jsxs("div",{className:"flex items-center justify-between gap-3",children:[l.jsx("p",{className:"text-[13px] text-[var(--text-secondary)]",children:"全部 · 订阅 · API Key · 未启用"}),l.jsx(Ft,{onClick:t,children:"+ 添加成员"})]})}function Fv({member:t,configAgent:e,clientLabels:n,onEdit:i,onToggleAvailability:s,togglingAvailability:r=!1}){const a=zv(t),o=[t.breedDisplayName??t.displayName,t.nickname].filter(Boolean).join(" · "),c=i?"ui-card ui-card-hover":"ui-card";return l.jsxs("section",{role:i?"button":void 0,tabIndex:i?0:void 0,onClick:()=>i==null?void 0:i(t),onKeyDown:d=>{i&&(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),i(t))},className:c,children:[l.jsxs("div",{className:"flex items-start justify-between gap-3",children:[l.jsx("div",{children:l.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[l.jsx("h3",{className:"text-[17px] font-bold text-[var(--text-primary)]",children:o}),t.source==="runtime"?l.jsx("span",{className:"ui-badge-muted text-[var(--text-accent)]",children:"动态创建"}):null]})}),l.jsx("button",{type:"button",onClick:d=>{d.stopPropagation(),s==null||s(t)},disabled:!s||r,"aria-pressed":a.enabled,className:`rounded-[var(--radius-pill)] px-2.5 py-1 text-[11px] font-semibold transition ${a.className} disabled:cursor-default`,children:r?"切换中...":a.label})]}),l.jsx("p",{className:"mt-2.5 text-[13px] text-[var(--text-secondary)]",children:Wv(t,e,n)}),l.jsx("p",{className:"mt-2 text-[13px] text-[var(--text-accent)]",children:_O(t.mentionPatterns)})]})}function Er({title:t,children:e}){return l.jsxs("section",{className:"rounded-lg border border-gray-200 bg-gray-50/70 p-3",children:[l.jsx("h3",{className:"text-xs font-semibold text-gray-700 mb-2",children:t}),e]})}function on({label:t,value:e}){const n=typeof e=="boolean"?e?"是":"否":String(e);return l.jsxs("div",{className:"flex justify-between text-xs text-gray-700",children:[l.jsx("span",{children:t}),l.jsx("span",{className:"font-medium text-right",children:n})]})}function Uv({config:t,members:e,clientLabels:n,onAddMember:i,onEditCoCreator:s,onEditMember:r,onToggleAvailability:a,togglingAgentId:o}){return l.jsxs("div",{className:"space-y-4",children:[l.jsx(Vv,{onAddMember:i}),t.coCreator?l.jsx(Bv,{coCreator:t.coCreator,onEdit:s}):null,l.jsx("div",{className:"space-y-3",children:e.map(c=>l.jsx(Fv,{member:c,configAgent:t.agents[c.id],clientLabels:n,onEdit:r,onToggleAvailability:a,togglingAvailability:o===c.id},c.id))}),l.jsx("p",{className:"text-[13px] text-[#B59A88]",children:"点击任意卡片进入成员配置 →"}),e.length===0&&l.jsx("p",{className:"text-sm text-gray-400",children:"未找到成员配置数据"})]})}function Yv({config:t,hiddenHubTabs:e}){const n=e==null?void 0:e.includes("capabilities");return l.jsxs(l.Fragment,{children:[l.jsx(Er,{title:"A2A 互调",children:l.jsxs("div",{className:"space-y-1.5",children:[l.jsx(on,{label:"启用",value:t.a2a.enabled}),l.jsx(on,{label:"最大深度",value:t.a2a.maxDepth})]})}),l.jsx(Er,{title:"记忆 (F3-lite)",children:l.jsxs("div",{className:"space-y-1.5",children:[l.jsx(on,{label:"启用",value:t.memory.enabled}),l.jsx(on,{label:"每线程最大 key 数",value:t.memory.maxKeysPerThread})]})}),t.codexExecution&&!n?l.jsx(Er,{title:"Codex 推理执行",children:l.jsxs("div",{className:"space-y-1.5",children:[l.jsx(on,{label:"Model",value:t.codexExecution.model}),l.jsx(on,{label:"Auth Mode",value:t.codexExecution.authMode}),l.jsx(on,{label:"Pass --model Arg",value:t.codexExecution.passModelArg})]})}):null,l.jsx(Er,{title:"治理 & 降级",children:l.jsxs("div",{className:"space-y-1.5",children:[l.jsx(on,{label:"降级策略启用",value:t.governance.degradationEnabled}),l.jsx(on,{label:"Done 超时",value:`${t.governance.doneTimeoutMs/1e3}s`}),l.jsx(on,{label:"Heartbeat 间隔",value:`${t.governance.heartbeatIntervalMs/1e3}s`})]})})]})}function Nd({label:t,required:e=!1,tone:n="neutral",children:i}){const s=n==="success"?"text-[#5B7A5C]":"text-[#8A776B]";return l.jsxs("label",{className:"flex flex-col gap-1.5 text-[#5C4B42] sm:flex-row sm:items-center sm:gap-3",children:[l.jsxs("span",{className:`text-[13px] font-semibold ${s} sm:w-[140px] sm:shrink-0`,children:[t,e&&l.jsx("span",{className:"ml-0.5 text-[#E29578]",children:"*"})]}),l.jsx("div",{className:"min-w-0 flex-1",children:i})]})}function Ti({title:t,description:e,tone:n="neutral",children:i}){const s={neutral:"border-[#F1E7DF] bg-[#FFFDFC]",success:"border-[#CFE5D5] bg-[#F2FAF4]",error:"border-red-400 bg-red-50 animate-[shake_0.3s_ease-in-out]"},r=s[n]??s.neutral;return l.jsxs("section",{className:`rounded-[20px] border p-[18px] transition-colors ${r}`,children:[l.jsxs("div",{className:"space-y-1",children:[l.jsx("h4",{className:"text-[17px] font-bold text-[#2D2118]",children:t}),e?l.jsx("p",{className:"text-[14px] leading-6 text-[#7F7168]",children:e}):null]}),l.jsx("div",{className:"mt-3 space-y-3",children:i})]})}function rt({label:t,ariaLabel:e,value:n,onChange:i,inputMode:s,placeholder:r,required:a=!1,tone:o="neutral"}){const c=o==="success"?"ui-input-success":"ui-input-soft";return l.jsx(Nd,{label:t,required:a,tone:o,children:l.jsx("input",{"aria-label":e??t,value:n,onChange:d=>i(d.target.value),className:`ui-input ${c} w-full rounded-[10px] px-3.5 py-2 text-[14px] leading-5 transition`,inputMode:s,placeholder:r,required:a})})}function Gv({label:t,ariaLabel:e,value:n,onChange:i,placeholder:s,tone:r="neutral"}){const a=r==="success"?"ui-textarea-success":"ui-textarea-soft";return l.jsx(Nd,{label:t,tone:r,children:l.jsx("textarea",{"aria-label":e??t,value:n,onChange:o=>i(o.target.value),className:`ui-textarea ${a} min-h-[92px] w-full rounded-[10px] px-3.5 py-2 text-[14px] leading-5 transition`,placeholder:s})})}function Gn({label:t,ariaLabel:e,value:n,options:i,onChange:s,disabled:r=!1,required:a=!1,tone:o="neutral"}){const c=o==="success"?"border-[#CFE5D5] bg-[#E8F5E9] focus:border-[#77A777] focus:ring-[#CFE5D5]":"border-[#E8DCCF] bg-[#F7F3F0] focus:border-[#D49266] focus:ring-[#F5D2B8]";return l.jsx(Nd,{label:t,required:a,tone:o,children:l.jsx("select",{"aria-label":e??t,value:n,onChange:d=>s(d.target.value),disabled:r,required:a,className:`w-full rounded-[10px] border px-3.5 py-2 text-[14px] leading-5 text-[#2D2118] outline-none transition focus:ring-2 disabled:cursor-not-allowed disabled:opacity-60 ${c}`,children:i.map(d=>l.jsx("option",{value:d.value,children:d.label},d.value))})})}function $h({label:t,value:e,onChange:n,hint:i}){const s=Number.parseFloat(e),r=Number.isFinite(s)?Math.min(Math.max(s,0),1):0;return l.jsxs("label",{className:"flex flex-col gap-2 text-[#5C4B42] sm:flex-row sm:items-start sm:gap-3",children:[l.jsx("div",{className:"sm:w-[140px] sm:shrink-0 sm:pt-1",children:l.jsx("span",{className:"text-[13px] font-semibold text-[#5B7A5C]",children:t})}),l.jsxs("div",{className:"min-w-0 flex-1 space-y-2",children:[l.jsx("div",{className:"flex items-center justify-between gap-3",children:l.jsxs("span",{className:"rounded-full bg-white/80 px-2 py-0.5 text-xs font-semibold text-[#5B7A5C]",children:[(r*100).toFixed(0),"%"]})}),l.jsx("input",{type:"range","aria-label":t,min:"0",max:"1",step:"0.01",value:r,onChange:a=>n(a.target.value),className:"w-full accent-[#77A777]"}),l.jsx("p",{className:"text-xs leading-5 text-[#6C7A6D]",children:i})]})]})}function MO(){return l.jsxs("div",{className:"rounded-[16px] border border-[#FFE0B2] bg-[#FFF3E0] px-4 py-3",children:[l.jsx("p",{className:"text-[13px] font-bold text-[#E65100]",children:"运行时持久化"}),l.jsx("p",{className:"mt-1 text-xs leading-5 text-[#BF360C]",children:"所有配置修改在运行时即时生效,并自动持久化到 `.office-claw/office-claw-catalog.json` 文件。重启后自动恢复,无需手动保存。"})]})}function Hv(t){const e=t.trim();return e&&(e.startsWith("/uploads/")||e.startsWith("/avatars/"))?e:null}function Kv(t){return t.trim().toLowerCase().replace(/[\s_]+/g,"-").replace(/[^a-z0-9\u4e00-\u9fff-]/g,"").slice(0,40)}function Jv(t){return Y0(t.mentionPatterns).map(l2).filter(Boolean)}function eS({member:t,form:e,hasError:n,avatarUploading:i,onChange:s,onAvatarUpload:r}){const a=o2(e.strengths),o=m.useRef(null),c=Hv(e.avatar);return l.jsxs(Ti,{title:"身份信息",tone:n?"error":"neutral",children:[t?l.jsx(rt,{label:"名称",ariaLabel:"Name",value:e.name,onChange:d=>s({name:d,displayName:d})}):l.jsxs(l.Fragment,{children:[l.jsx(rt,{label:"名称",ariaLabel:"Name",value:e.name,onChange:d=>{s({name:d,displayName:d,agentId:Kv(d)})},required:!0,placeholder:"成员显示名称,如 我的助手"}),l.jsx("input",{type:"hidden","aria-label":"Agent ID",value:e.agentId})]}),l.jsx(rt,{label:"昵称",ariaLabel:"Nickname",value:e.nickname,onChange:d=>s({nickname:d}),placeholder:"可选,用户自定义昵称"}),l.jsx(rt,{label:"角色描述",ariaLabel:"Description",value:e.roleDescription,onChange:d=>s({roleDescription:d}),required:!0,placeholder:"角色定位,如 代码审查专家"}),l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("span",{className:"w-[140px] shrink-0 text-[13px] font-medium text-[#5C4B42]",children:"Avatar"}),l.jsxs("button",{type:"button",onClick:()=>{var d;return(d=o.current)==null?void 0:d.click()},className:"flex items-center gap-2 rounded-lg border border-[#E8DCCF] bg-[#F7F3F0] px-3 py-1.5 text-sm text-[#5C4B42] transition hover:border-[#D49266]",children:[l.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center overflow-hidden rounded-full border border-[#E8DCCF] bg-white text-[10px] text-[#8A776B]",children:c?l.jsx("img",{src:c,alt:"Avatar preview",className:"h-full w-full object-cover rounded-full"}):l.jsx("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",role:"img","aria-label":"Default avatar",children:l.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2Zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8Zm-2-9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm4 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"})})}),l.jsx("span",{children:i?"上传中…":"点击上传"})]}),l.jsx("input",{ref:o,type:"file",accept:"image/png,image/jpeg,image/webp",className:"hidden",onChange:d=>{var h;const u=(h=d.target.files)==null?void 0:h[0];u&&r(u).finally(()=>{o.current&&(o.current.value="")})}}),l.jsx("input",{"aria-label":"Avatar",value:e.avatar,onChange:d=>s({avatar:d.target.value}),className:"sr-only"})]}),l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("span",{className:"w-[140px] shrink-0 text-[13px] font-medium text-[#5C4B42]",children:"Background Color"}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("label",{title:"Primary",children:l.jsx("input",{type:"color","aria-label":"Background Color Primary",value:e.colorPrimary,onChange:d=>s({colorPrimary:d.target.value}),className:"h-8 w-8 cursor-pointer rounded border-0 bg-transparent p-0"})}),l.jsx("label",{title:"Secondary",children:l.jsx("input",{type:"color","aria-label":"Background Color Secondary",value:e.colorSecondary,onChange:d=>s({colorSecondary:d.target.value}),className:"h-8 w-8 cursor-pointer rounded border-0 bg-transparent p-0"})})]})]}),l.jsx(rt,{label:"擅长领域",ariaLabel:"Team Strengths",value:e.teamStrengths,onChange:d=>s({teamStrengths:d}),placeholder:"如 架构设计、安全分析"}),l.jsx(rt,{label:"性格特征",ariaLabel:"Personality",value:e.personality,onChange:d=>s({personality:d}),placeholder:"如 温柔但有主见"}),l.jsx(rt,{label:"注意事项",ariaLabel:"Caution",value:e.caution,onChange:d=>s({caution:d}),placeholder:"可选,留空表示无特殊注意"}),l.jsxs("div",{className:"flex items-start gap-3",children:[l.jsx("span",{className:"w-[140px] shrink-0 pt-1 text-[13px] font-medium text-[#5C4B42]",children:"Strengths"}),l.jsx("div",{className:"min-w-0 flex-1",children:l.jsx(ti,{tags:a,onChange:d=>s({strengths:U0(d)}),addLabel:"+ 选择",placeholder:"输入标签,例如 security",emptyLabel:"(无)"})}),l.jsx("input",{"aria-label":"Strengths",value:e.strengths,onChange:d=>s({strengths:d.target.value}),className:"sr-only"})]}),l.jsxs("div",{className:"rounded-[10px] border border-dashed border-[#DCC9B8] bg-[#F7F3F0] px-3 py-2",children:[l.jsx("p",{className:"text-[13px] font-semibold text-[#8A776B]",children:"▸ Voice Config (点击展开)"}),l.jsx("p",{className:"mt-0.5 text-[11px] leading-4 text-[#B59A88]",children:"需对接和启用语音功能后才支持配置"})]})]})}const tS=["anthropic","openai","openrouter","google","azure","deepseek"];function nS(t){const e=new Set(tS);for(const n of t){const i=n.indexOf("/");i>0&&e.add(n.slice(0,i))}return[...e].sort()}function iS({label:t,ariaLabel:e,value:n,onChange:i,suggestions:s,required:r=!1,placeholder:a}){const o=`combo-${t.replace(/\s+/g,"-").toLowerCase()}`;return l.jsxs("label",{className:"flex flex-col gap-1.5 text-[#5C4B42] sm:flex-row sm:items-center sm:gap-3",children:[l.jsxs("span",{className:"text-[13px] font-semibold text-[#8A776B] sm:w-[140px] sm:shrink-0",children:[t,r&&l.jsx("span",{className:"ml-0.5 text-[#E29578]",children:"*"})]}),l.jsxs("div",{className:"min-w-0 flex-1",children:[l.jsx("input",{"aria-label":e??t,value:n,onChange:c=>i(c.target.value),list:o,className:"ui-input ui-input-soft w-full rounded-[10px] px-3.5 py-2 text-[14px] leading-5 transition",placeholder:a}),l.jsx("datalist",{id:o,children:s.map(c=>l.jsx("option",{value:c},c))})]})]})}function sS(t,e,n,i){if(i!=null&&i.embeddedAcpRuntime||!e||e.builtin||!e.baseUrl)return null;const s=e.baseUrl.replace(/\/+$/,""),r=/\/v1$/i.test(s);if(t==="relayclaw")return`jiuwen 会启动本地 sidecar,并把该 OpenAI-compatible 端点注入为 API_BASE: ${s}`;const o={anthropic:{cli:"claude",pathSuffix:"/v1/messages"},opencode:{cli:"opencode",pathSuffix:"/messages"},openai:{cli:"codex",pathSuffix:"/responses"},google:{cli:"gemini",pathSuffix:`/models/${n||"..."}:generateContent`},dare:{cli:"dare",pathSuffix:"/chat/completions"}}[t];if(!o)return null;const c=`${s}${o.pathSuffix}`;let d="";return t==="anthropic"&&r&&(d=`
|
|
24
|
+
注意: base URL 末尾的 /v1 会导致路径重复(/v1/v1/messages),建议去掉 /v1 后缀`),t==="google"&&(d=`
|
|
25
|
+
注意: Gemini CLI 不支持自定义 API 端点,只能调用 Google 官方 API。如需使用第三方代理(如 OpenRouter),请改用 OpenCode 或 Claude 作为 Client`),`${o.cli} CLI 实际调用: ${c}${d}`}function rS({form:t,hasError:e,modelOptions:n,availableProfiles:i,embeddedAcpRuntime:s=!1,loadingProfiles:r,availableClientIds:a,clientLabels:o,onChange:c}){const d=i,u=i.find(g=>g.id===t.accountRef),h=sS(t.client,u,t.defaultModel,{embeddedAcpRuntime:s}),p=(a?Bu.filter(g=>g.value==="acp"||a.has(g.value)):Bu).map(g=>{const x=s&&g.value==="acp"?"Assistant Agent":(o==null?void 0:o[g.value])??g.label;return x===g.label?g:{...g,label:x}}),O=m.useMemo(()=>nS((u==null?void 0:u.models)??[]),[u==null?void 0:u.models]);return l.jsx(Ti,{title:"认证与模型",tone:e?"error":"neutral",children:l.jsxs("div",{className:"space-y-2",children:[l.jsx(Gn,{label:"Client",value:t.client,options:p,onChange:g=>c({client:g}),required:!0}),t.client==="antigravity"?l.jsxs(l.Fragment,{children:[l.jsx(rt,{label:"CLI Command",value:t.commandArgs,onChange:g=>c({commandArgs:g}),required:!0,placeholder:"启动命令参数"}),l.jsx(rt,{label:"Model",value:t.defaultModel,onChange:g=>c({defaultModel:g}),required:!0,placeholder:"模型标识符"})]}):l.jsxs(l.Fragment,{children:[l.jsx(Gn,{label:"认证信息",value:t.accountRef,options:[{value:"",label:r?"加载中…":"请选择认证方式"},...d.filter(g=>!(t.client==="google"&&!g.builtin)).map(g=>({value:g.id,label:g.source==="model_config"?`${g.displayName}(模型配置)`:g.builtin?`${g.displayName}(内置)`:g.kind==="acp"?`${g.displayName}(ACP)`:`${g.displayName}(API Key)`}))],onChange:g=>c({accountRef:g,defaultModel:""}),disabled:r,required:!0}),h?l.jsx("div",{className:"rounded-[10px] border border-dashed border-[#DCC9B8] bg-[#F7F3F0] px-3 py-2",children:l.jsx("p",{className:"whitespace-pre-wrap text-[11px] leading-4 text-[#8A776B]",children:h})}):null,n.length>0?l.jsx(Gn,{label:"Model",value:t.defaultModel,options:n.map(g=>({value:g,label:g})),onChange:g=>c({defaultModel:g}),required:!0}):l.jsx(rt,{label:"Model",value:t.defaultModel,onChange:g=>c({defaultModel:g}),required:!0,placeholder:t.client==="acp"?s?"模型标识符,如 gpt-5.4 或 glm-4.7":"显示标签,可留如 relay-teams/default":t.client==="opencode"?"例如 openai/gpt-5.4 或 openrouter/google/gemini-3-flash-preview":"模型标识符,如 claude-sonnet-4-5"}),t.client==="opencode"&&(u==null?void 0:u.authType)==="api_key"?l.jsx(iS,{label:"Provider 名称",ariaLabel:"OC Provider Name",value:t.ocProviderName,onChange:g=>c({ocProviderName:g}),suggestions:O,required:!0,placeholder:"如 anthropic、openai、openrouter、maas"}):null,t.client==="opencode"&&t.defaultModel.trim()&&!t.defaultModel.includes("/")&&!t.ocProviderName.trim()?l.jsx("div",{className:"rounded-[10px] border border-dashed border-[#DCC9B8] bg-[#F7F3F0] px-3 py-2",children:l.jsx("p",{className:"text-[11px] leading-4 text-[#8A776B]",children:"建议使用 `providerId/modelId` 格式(例如 `openai/gpt-5.4`),部分 provider 需要前缀才能正确路由。"})}):null]})]})})}function aS({form:t,onChange:e}){const n=t.embeddedAcpEnvText.trim().length>0&&!Na(t.embeddedAcpEnvText)?"环境变量格式无效":null;return l.jsxs(Ti,{title:"ACP 配置",children:[l.jsx(rt,{label:"EXE Path",ariaLabel:"EXE Path",value:t.embeddedAcpExecutablePath??"",onChange:i=>e({embeddedAcpExecutablePath:i}),placeholder:"留空使用 tools/python/python.exe"}),l.jsx(rt,{label:"ACP Args",ariaLabel:"ACP Args",value:t.embeddedAcpArgs,onChange:i=>e({embeddedAcpArgs:i}),placeholder:"留空使用 -m relay_teams gateway acp stdio"}),l.jsx(rt,{label:"ACP CWD",ariaLabel:"ACP CWD",value:t.embeddedAcpCwd,onChange:i=>e({embeddedAcpCwd:i}),placeholder:"可选工作目录"}),l.jsx(Gv,{label:"ACP Env",ariaLabel:"ACP Env",value:t.embeddedAcpEnvText,onChange:i=>e({embeddedAcpEnvText:i}),placeholder:"每行 KEY=value"}),n?l.jsx("p",{className:"text-xs text-red-600 sm:pl-[152px]",children:n}):null]})}function oS({form:t,hasError:e,onChange:n}){const i=Jv(t);return l.jsxs(Ti,{title:"别名与 @ 路由",tone:e?"error":"neutral",children:[l.jsx(ti,{tags:i,onChange:s=>n({mentionPatterns:U0(s)}),addLabel:"+ 添加",placeholder:"@砚砚",emptyLabel:"(至少添加 1 个别名,否则无法 @)",minCount:1}),l.jsx("textarea",{"aria-label":"Aliases",value:t.mentionPatterns,onChange:s=>n({mentionPatterns:s.target.value}),placeholder:"@codex, @办公智能体",className:"sr-only"})]})}function lS({member:t,form:e,strategyForm:n,loadingStrategy:i,strategyError:s,codexSettings:r,loadingCodexSettings:a,codexSettingsError:o,codexSettingsEditable:c,showCodexSettings:d,onChange:u,onStrategyChange:h,onCodexChange:f}){const p=r??{sandboxMode:"workspace-write",approvalPolicy:"on-request",authMode:"oauth"};return l.jsxs(Ti,{title:"高级运行时参数",description:"contextBudget + Session 策略 + Client 特有参数。标有 (Codex) 的参数仅在选择对应 Client 时显示。",tone:"success",children:[l.jsx("p",{className:"text-xs leading-5 text-[#6C7A6D]",children:"上下文预算会随成员配置一起持久化到运行时 catalog。4 项要么全部留空,要么全部填写。"}),l.jsxs("div",{className:"space-y-2",children:[l.jsx(rt,{label:"Max Prompt Tokens",value:e.maxPromptTokens,onChange:O=>u({maxPromptTokens:O}),inputMode:"numeric",tone:"success",placeholder:"留空默认 48000"}),l.jsx(rt,{label:"Max Context Tokens",value:e.maxContextTokens,onChange:O=>u({maxContextTokens:O}),inputMode:"numeric",tone:"success",placeholder:"留空默认 128000"}),l.jsx(rt,{label:"Max Messages",value:e.maxMessages,onChange:O=>u({maxMessages:O}),inputMode:"numeric",tone:"success",placeholder:"留空默认 50"}),l.jsx(rt,{label:"Max Content Length Per Msg",ariaLabel:"Max Content Length Per Msg",value:e.maxContentLengthPerMsg,onChange:O=>u({maxContentLengthPerMsg:O}),inputMode:"numeric",tone:"success",placeholder:"留空默认 16000"}),l.jsx(Gn,{label:"Session Chain",value:e.sessionChain,options:c2,onChange:O=>u({sessionChain:O}),tone:"success"}),e.client==="opencode"?l.jsxs("div",{className:"space-y-1",children:[l.jsx(rt,{label:"OpenCode Provider 名称",value:e.ocProviderName,onChange:O=>u({ocProviderName:O}),tone:"success",placeholder:"例如 maas、deepseek(留空 = 使用内置 provider)"}),l.jsx("p",{className:"text-[11px] leading-4 text-[#8A776B]",children:"自定义 API Key 认证时需要。运行时自动组装为 provider/model 格式路由到 opencode CLI。"})]}):null,e.client==="openai"||e.client==="opencode"?l.jsxs("div",{className:"space-y-1",children:[l.jsx("p",{className:"text-sm font-medium text-[#3D2E22]",children:"额外 CLI 参数"}),l.jsx(ti,{tags:e.cliConfigArgs,onChange:O=>u({cliConfigArgs:O}),addLabel:"+ 添加参数",placeholder:e.client==="opencode"?"例如 --variant low":'例如 --config model_reasoning_effort="low"',emptyLabel:"无额外参数",tone:"green"}),l.jsxs("p",{className:"text-[11px] leading-4 text-[#8A776B]",children:["每条直接追加到 CLI 命令,不做隐式转换。 参考:",e.client==="opencode"?l.jsx("a",{href:"https://opencode.ai/docs/cli",target:"_blank",rel:"noreferrer",className:"underline",children:"OpenCode CLI"}):l.jsx("a",{href:"https://github.com/openai/codex",target:"_blank",rel:"noreferrer",className:"underline",children:"Codex CLI"})]})]}):null]}),t?l.jsxs("div",{className:"space-y-3 rounded-2xl border border-[#DCE9E0] bg-white/80 p-4",children:[i?l.jsx("p",{className:"text-sm text-[#7F7168]",children:"Session 策略加载中..."}):null,s?l.jsx("p",{className:"rounded-xl bg-red-50 px-3 py-2 text-sm text-red-600",children:s}):null,n?l.jsxs("div",{className:"space-y-4",children:[l.jsx("div",{className:"rounded-2xl border border-[#CFE5D5] bg-[#F5FBF6] px-4 py-3 text-xs leading-5 text-[#6C7A6D]",children:"阈值基于 context 填充率 = 当前 tokens / Max Context Tokens。拖动滑条调节百分比。"}),l.jsxs("div",{className:"space-y-2",children:[l.jsx(Gn,{label:"Session Strategy",value:n.strategy,options:d2.filter(O=>O.value!=="hybrid"||n.hybridCapable),onChange:O=>h({strategy:O}),tone:"success"}),l.jsx($h,{label:"Session Warn Threshold",value:n.warnThreshold,onChange:O=>h({warnThreshold:O}),hint:"context 填充到此比例时前端弹出警告提示"}),l.jsx($h,{label:"Session Action Threshold",value:n.actionThreshold,onChange:O=>h({actionThreshold:O}),hint:"context 填充到此比例时触发 Session 策略动作(如 handoff 换 session)"}),n.strategy==="hybrid"?l.jsx(rt,{label:"Max Compressions",value:n.maxCompressions,onChange:O=>h({maxCompressions:O}),inputMode:"numeric",tone:"success"}):null]})]}):null]}):null,d?l.jsxs("div",{className:"space-y-3 rounded-2xl border border-[#DCE9E0] bg-white/80 p-4",children:[a?l.jsx("p",{className:"text-sm text-[#7F7168]",children:"Codex 运行参数加载中..."}):null,o?l.jsx("p",{className:"rounded-xl bg-red-50 px-3 py-2 text-sm text-red-600",children:o}):null,!a&&!c?l.jsx("p",{className:"rounded-xl border border-[#F5D2B8] bg-[#FFF4EC] px-3 py-2 text-xs leading-5 text-[#C27D52]",children:"Codex 配置基线未加载成功,以下 3 项已禁用;请刷新后重试,避免保存时误以为已生效。"}):null,l.jsx("p",{className:"text-center text-xs font-semibold text-[#B59A88]",children:"── Codex 专属 (仅 Client=Codex 时显示) ──"}),l.jsx("p",{className:"rounded-xl border border-[#CFE5D5] bg-[#F5FBF6] px-3 py-2 text-xs leading-5 text-[#6C7A6D]",children:"成员资料与 Codex 执行参数收敛到同一个入口保存。保存后会分别写入成员 overlay 与全局运行配置。"}),l.jsxs("div",{className:"space-y-2",children:[l.jsx(Gn,{label:"Codex Sandbox (Codex)",ariaLabel:"Codex Sandbox",value:p.sandboxMode,options:u2,onChange:O=>f({sandboxMode:O}),disabled:!c,tone:"success"}),l.jsx(Gn,{label:"Codex Approval (Codex)",ariaLabel:"Codex Approval",value:p.approvalPolicy,options:h2,onChange:O=>f({approvalPolicy:O}),disabled:!c,tone:"success"}),l.jsx(Gn,{label:"Codex Auth Mode (Codex)",ariaLabel:"Codex Auth Mode",value:p.authMode,options:f2,onChange:O=>f({authMode:O}),disabled:!c,tone:"success"})]})]}):null]})}function cS(t,e){if(!t||!e)return t;const n=G0(t);return{...t,displayName:e.displayName||t.displayName,accountRef:n?t.accountRef||t.providerProfileId:e.accountRef||e.providerProfileId||t.accountRef||t.providerProfileId,providerProfileId:n?t.providerProfileId||t.accountRef:e.providerProfileId||e.accountRef||t.providerProfileId||t.accountRef,provider:e.provider||t.provider,defaultModel:e.model||t.defaultModel,embeddedAcpConfig:e.embeddedAcpConfig||t.embeddedAcpConfig,embeddedAcpExecutablePath:e.embeddedAcpExecutablePath||t.embeddedAcpExecutablePath}}function dS(t,e){if(!e||e==="default")return t;const n=new URLSearchParams({projectPath:e});return`${t}?${n.toString()}`}function uS(t,e){const n=[...t],i=new Set(t.map(s=>s.id));for(const s of e)s.kind!=="acp"||i.has(s.id)||(n.push(s),i.add(s.id));return n}function hS(t,e){const n=[...t],i=new Set(t.map(s=>s.id));for(const s of e)i.has(s.id)||(n.push(s),i.add(s.id));return n}async function fS(t,e,n){const i="/api/model-config-profiles",s=dS("/api/provider-profiles",t),r=e==="acp"&&!(n!=null&&n.embeddedAcpRuntime);async function a(){const d=await G(s);if(!d.ok)throw new Error(`账号配置加载失败 (${d.status})`);return(await d.json()).providers}let o;try{o=await G(i)}catch{const d=await a();return n!=null&&n.embeddedAcpRuntime?d:r?d.filter(u=>u.kind==="acp"):d}if(!o.ok){if(o.status===404)return n!=null&&n.embeddedAcpRuntime?a():[];throw new Error(`模型配置加载失败 (${o.status})`)}const c=await o.json();if(n!=null&&n.embeddedAcpRuntime){const d=await a();return hS(c.providers,d)}return c.exists?r?uS(c.providers,await a()):c.providers:r?(await a()).filter(d=>d.kind==="acp"):c.fallbackToProviderProfiles?a():[]}function pS({member:t,configAgent:e,draft:n,open:i,onClose:s,onSaved:r}){const a=yd(),{clients:o,clientLabels:c}=NO(),d=E(_=>_.currentProjectPath),u=m.useMemo(()=>new Set(o.map(_=>_.id)),[o]),h=m.useMemo(()=>cS(t,e),[t,e]),[f,p]=m.useState([]),[O,g]=m.useState(!1),[x,b]=m.useState(!1),[y,S]=m.useState(!1),[P,w]=m.useState(!1),[C,Q]=m.useState(null),[T,A]=m.useState(null),[$,N]=m.useState(null),[R,z]=m.useState(!1),[I,B]=m.useState(!1),[M,L]=m.useState({}),[F,de]=m.useState(()=>Ho(h,n)),[ce,ae]=m.useState(null),[J,X]=m.useState(null),[ne,ue]=m.useState(!1),[je,ve]=m.useState(null),[$e,Qe]=m.useState(null),H=m.useMemo(()=>G0(h),[h]),V=m.useMemo(()=>p2(F.client,f,{embeddedAcpRuntime:H}),[H,F.client,f]),Y=m.useMemo(()=>V.find(_=>_.id===F.accountRef)??null,[V,F.accountRef]),le=m.useMemo(()=>{if(F.client==="antigravity")return[];if(F.client==="acp"&&!H)return[];const _=F.defaultModel.trim(),Z=(Y==null?void 0:Y.models)??[];return _&&!Z.includes(_)?[_,...Z]:Z},[H,F.client,F.defaultModel,Y]),me=F.client==="openai",Ee=!me||$e!==null;if(m.useEffect(()=>{i&&(de(Ho(h,n)),L({}),Q(null),A(null),N(null),ue(!1),Qe(null),B(!1))},[i,h,n]),m.useEffect(()=>{if(!i)return;let _=!1;return g(!0),Promise.resolve().then(()=>fS(d,F.client,{embeddedAcpRuntime:H})).then(Z=>{_||p(Z)}).catch(Z=>{_||Q(Z instanceof Error?Z.message:"账号配置加载失败")}).finally(()=>{_||g(!1)}),()=>{_=!0}},[d,H,F.client,i]),m.useEffect(()=>{if(!i||!h){ae(null),X(null),ue(!1),b(!1);return}let _=!1;return ae(null),X(null),b(!0),G("/api/config/session-strategy").then(async Z=>{if(!Z.ok)throw new Error(`Session 策略加载失败 (${Z.status})`);return await Z.json()}).then(Z=>{var he;if(_)return;const te=((he=Z.agents)==null?void 0:he.find(pe=>pe.agentId===h.id))??null,D=te?O2(te):null;ae(D),X(D),ue(!!(te!=null&&te.hasOverride))}).catch(Z=>{_||A(Z instanceof Error?Z.message:"Session 策略加载失败")}).finally(()=>{_||b(!1)}),()=>{_=!0}},[i,h]),m.useEffect(()=>{if(!i||!me){ve(null),Qe(null),S(!1);return}let _=!1;return S(!0),Promise.resolve().then(()=>G("/api/config")).then(async Z=>{if(!Z.ok)throw new Error(`Codex 运行参数加载失败 (${Z.status})`);return await Z.json()}).then(Z=>{if(_)return;const te=Ko(Z.config);ve(te),Qe(te)}).catch(Z=>{if(!_){const te=Ko();ve(D=>D??te),N(Z instanceof Error?Z.message:"Codex 运行参数加载失败")}}).finally(()=>{_||S(!1)}),()=>{_=!0}},[i,h,me]),m.useEffect(()=>{if(F.client==="antigravity"){de(_=>_.accountRef===""?_:{..._,accountRef:""});return}de(_=>{if(_.accountRef.trim().length===0&&(t||!n)||V.length===0)return _;const Z=m2(_.client),te=V.find(D=>D.id===_.accountRef)??(Z?V.find(D=>D.id===Z):null)??V[0]??null;return!te||_.accountRef===te.id?_:{..._,accountRef:te.id}})},[V,t,n,F.client]),m.useEffect(()=>{if(F.client==="antigravity"||le.length===0)return;const _=F.defaultModel.trim();_.length>0&&le.includes(_)||de(Z=>{if(Z.client==="antigravity")return Z;const te=Z.defaultModel.trim();return te.length>0&&le.includes(te)?Z:{...Z,defaultModel:le[0]??""}})},[F.client,F.defaultModel,le]),m.useEffect(()=>{F.client==="antigravity"&&(F.commandArgs.trim().length>0||de(_=>_.client!=="antigravity"||_.commandArgs.trim().length>0?_:{..._,commandArgs:g2}))},[F.client,F.commandArgs]),!i)return null;const Ae=!1,De=_=>{B(!0),de(Z=>({...Z,..._})),_.mentionPatterns!==void 0&&L(Z=>({...Z,routing:!1})),(_.name!==void 0||_.roleDescription!==void 0)&&L(Z=>({...Z,identity:!1})),(_.defaultModel!==void 0||_.client!==void 0)&&L(Z=>({...Z,account:!1}))},Ie=_=>{B(!0),ae(Z=>Z&&{...Z,..._})},Ye=_=>{B(!0),ve(Z=>({...Z??Ko(),..._}))},Ve=async()=>{if(!I){s();return}await a({title:"关闭确认",message:"有未保存的修改,确定要关闭吗?"})&&s()},Ge=async _=>{w(!0),Q(null);try{De({avatar:await aO(_)})}catch(Z){Q(Z instanceof Error?Z.message:"头像上传失败")}finally{w(!1)}},v=async()=>{var he;const _={},Z=[];if(t||(F.name.trim()||(_.identity=!0,Z.push("名称")),F.roleDescription.trim()||(_.identity=!0,Z.push("角色描述")),F.defaultModel.trim()?F.client==="opencode"&&(Y==null?void 0:Y.authType)==="api_key"&&!F.ocProviderName.trim()&&(_.account=!0,Z.push("OpenCode API Key 认证需填写 Provider 名称")):(_.account=!0,Z.push("Model")),Y0(F.mentionPatterns).length===0&&(_.routing=!0,Z.push("别名"))),Object.keys(_).length>0){L(_),Q(`请填写必填字段:${Z.join("、")}`);return}L({}),z(!0),Q(null);const te=[],D=async()=>{for(const pe of te.reverse())await pe().catch(()=>{})};try{const pe=Vu(F,h),we=h?Vu(Ho(h,null),h):null,xe=h&&ce?Fu(ce):null,be=h&&J?Fu(J):null,oe=h&&xe?JSON.stringify(xe)!==JSON.stringify(be):!1;if(h&&oe&&xe){const tt=await G(`/api/config/session-strategy/${h.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(xe)});if(!tt.ok){const Qt=await tt.json().catch(()=>({}));Q(Qt.error??`Session 策略保存失败 (${tt.status})`);return}ne&&be?te.push(async()=>{await G(`/api/config/session-strategy/${h.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(be)})}):te.push(async()=>{await G(`/api/config/session-strategy/${h.id}`,{method:"DELETE"})})}const ye=await G(h?`/api/agents/${h.id}`:"/api/agents",{method:h?"PATCH":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(pe)});if(!ye.ok){await D();const tt=await ye.json().catch(()=>({}));Q(tt.error??`保存失败 (${ye.status})`);return}const xt=((he=(await ye.json().catch(()=>({}))).agent)==null?void 0:he.id)??(h==null?void 0:h.id)??null;if(xt&&(h&&we?te.push(async()=>{await G(`/api/agents/${xt}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(we)})}):h||te.push(async()=>{await G(`/api/agents/${xt}`,{method:"DELETE"})})),me&&je&&$e){const tt=Uu(je,$e),Qt=Uu($e,je),Ct=[];for(const Zt of tt){const Cn=await G("/api/config",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(Zt)});if(!Cn.ok){const pi=Qt.filter(Ce=>Ct.includes(Ce.key));for(const Ce of pi.reverse())await G("/api/config",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(Ce)}).catch(()=>{});await D();const Ne=await Cn.json().catch(()=>({}));Q(Ne.error??`Codex 运行参数保存失败 (${Cn.status})`);return}Ct.push(Zt.key)}}await r(),s()}catch(pe){await D(),Q(pe instanceof Error?pe.message:"保存失败")}finally{z(!1)}},U=async()=>{if(!(!t||!await a({title:"删除确认",message:`确认删除成员「${t.displayName}」吗?此操作不可撤销。`,variant:"danger",confirmLabel:"删除"}))){z(!0),Q(null);try{const Z=await G(`/api/agents/${t.id}`,{method:"DELETE"});if(!Z.ok){const te=await Z.json().catch(()=>({}));Q(te.error??`删除失败 (${Z.status})`);return}await r(),s()}catch(Z){Q(Z instanceof Error?Z.message:"删除失败")}finally{z(!1)}}};return l.jsx("div",{className:"fixed inset-0 z-[60] flex items-center justify-center bg-black/40 px-4",children:l.jsxs("div",{className:"flex max-h-[88vh] w-full max-w-[560px] flex-col rounded-[32px] border border-[#F0DDCD] bg-[#FFF8F2] shadow-2xl",children:[l.jsxs("div",{className:"flex shrink-0 items-start justify-between border-b border-[#F0DDCD] px-7 py-5",children:[l.jsx("div",{children:l.jsxs("p",{className:"text-[13px] font-semibold text-[#77A777]",children:["成员协作 > 总览 > ",t?"编辑成员":"添加成员"]})}),l.jsxs("div",{className:"flex items-center gap-2",children:[t&&t.source==="runtime"?l.jsx("button",{type:"button",onClick:U,disabled:R,className:"rounded-full bg-red-50 p-2 text-red-600 transition hover:bg-red-100 disabled:opacity-50","aria-label":"删除成员",children:l.jsx("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 fill-none stroke-current","aria-hidden":"true",children:l.jsx("path",{d:"M3.5 4.5h9m-7.5 0V3.25h5V4.5m-5.5 0 .5 8h5l.5-8m-4 2v4m2-4v4",strokeWidth:"1.25",strokeLinecap:"round",strokeLinejoin:"round"})})}):null,l.jsx("button",{type:"button",onClick:Ve,className:"text-2xl leading-none text-[#B59A88]","aria-label":"关闭",children:"×"})]})]}),l.jsxs("div",{className:"min-h-0 flex-1 space-y-4 overflow-y-auto px-7 py-5",children:[l.jsx(eS,{member:t,form:F,hasError:M.identity,avatarUploading:P,onChange:De,onAvatarUpload:Ge}),l.jsx(rS,{form:F,hasError:M.account,modelOptions:le,availableProfiles:V,embeddedAcpRuntime:H,loadingProfiles:O,availableClientIds:u.size>0?u:void 0,clientLabels:Object.keys(c).length>0?c:void 0,onChange:De}),H?l.jsx(aS,{form:F,onChange:De}):null,l.jsx(oS,{form:F,hasError:M.routing,onChange:De}),l.jsx(lS,{member:t,form:F,strategyForm:ce,loadingStrategy:x,strategyError:T,codexSettings:je,loadingCodexSettings:y,codexSettingsError:$,codexSettingsEditable:Ee,showCodexSettings:me,onChange:De,onStrategyChange:Ie,onCodexChange:Ye}),l.jsx(MO,{}),C?l.jsx("p",{className:"rounded-2xl bg-red-50 px-4 py-3 text-sm text-red-600",children:C}):null]}),l.jsxs("div",{className:"flex shrink-0 items-center justify-between border-t border-[#F0DDCD] bg-[#FFF3EA] px-7 py-4",children:[l.jsx("div",{className:"text-xs leading-5 text-[#8A776B]",children:H2({loadingProfiles:O,loadingStrategy:x,loadingCodexSettings:y})}),l.jsxs("div",{className:"flex gap-2",children:[l.jsx("button",{type:"button",onClick:Ve,className:"rounded-full bg-[#F7F3F0] px-5 py-2.5 text-sm font-semibold text-[#8A776B] transition hover:bg-[#F7EEE6]",children:"取消"}),l.jsx("button",{type:"button",onClick:v,disabled:R||Ae,className:"rounded-full bg-[#D49266] px-5 py-2.5 text-sm font-semibold text-white transition hover:bg-[#C88254] disabled:opacity-50",children:R?"保存中…":t?"保存修改":"保存"})]})]})]})})}function OS(t){return t.detectedBy==="api_error_entry"?"已命中 Invalid signature API error":"已命中救援规则"}async function jh(t){return t.json()}function mS(){const t=Ut(b=>b.addToast),[e,n]=m.useState(!0),[i,s]=m.useState(null),[r,a]=m.useState(!1),[o,c]=m.useState([]),[d,u]=m.useState([]),[h,f]=m.useState(null),p=m.useCallback(async()=>{n(!0),s(null);try{const b=await G("/api/claude-rescue/sessions"),y=await jh(b);if(!b.ok){s(y.error??`扫描失败 (${b.status})`);return}const S=[...y.sessions??[]].sort((P,w)=>P.sessionId.localeCompare(w.sessionId));c(S),u(S.map(P=>P.sessionId))}catch{s("网络错误")}finally{n(!1)}},[]);m.useEffect(()=>{p()},[p]);const O=m.useMemo(()=>o.filter(b=>d.includes(b.sessionId)),[d,o]),g=m.useCallback(b=>{u(y=>y.includes(b)?y.filter(S=>S!==b):[...y,b].sort())},[]),x=m.useCallback(async()=>{if(!(O.length===0||r)){a(!0),s(null);try{const b=await G("/api/claude-rescue/rescue",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({sessionIds:O.map(S=>S.sessionId)})}),y=await jh(b);if(!b.ok){const S=y.error??`救援失败 (${b.status})`;s(S),t({type:"error",title:"通用智能体救援失败",message:S,duration:5e3});return}f(y),t({type:y.rescuedCount>0?"success":"info",title:y.rescuedCount>0?"通用智能体已救活":"通用智能体无需救活",message:y.rescuedCount>0?`救活 ${y.rescuedCount} 只通用智能体,跳过 ${y.skippedCount} 只。`:"没有需要动刀的坏 session。",duration:3500}),await p()}catch{s("网络错误"),t({type:"error",title:"通用智能体救援失败",message:"网络错误",duration:5e3})}finally{a(!1)}}},[t,r,p,O]);return l.jsxs("section",{className:"rounded-lg border border-amber-200 bg-amber-50/70 p-3 space-y-3",children:[l.jsxs("div",{className:"space-y-1",children:[l.jsxs("div",{className:"flex items-center justify-between gap-3",children:[l.jsx("h4",{className:"text-xs font-semibold text-amber-900",children:"通用智能体救援中心"}),l.jsx("button",{type:"button",onClick:()=>{p()},disabled:e||r,className:"px-2.5 py-1 rounded border border-amber-300 bg-white text-xs text-amber-800 hover:bg-amber-100 disabled:opacity-50",children:e?"扫描中...":"重新扫描"})]}),l.jsx("p",{className:"text-xs text-amber-800",children:"专治 Claude session 的坏 thinking signature。执行前会自动备份 transcript,只会移除纯 thinking-only assistant turn。"}),l.jsx("p",{className:"text-[11px] text-amber-700",children:"扫描范围:当前机器上的 `~/.claude/projects/**/*.jsonl`"})]}),i&&l.jsx("div",{className:"rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-xs text-red-700",children:i}),h&&l.jsxs("div",{className:"rounded-lg border border-emerald-200 bg-emerald-50 px-3 py-2 text-xs text-emerald-800 space-y-1",children:[l.jsxs("p",{className:"font-medium",children:["刚刚救活 ",h.rescuedCount," 只通用智能体"]}),l.jsxs("p",{children:["跳过 ",h.skippedCount," 只,处理 ",h.results.length," 个 session。"]})]}),e?l.jsx("p",{className:"text-xs text-amber-700",children:"扫描中..."}):o.length===0?l.jsx("p",{className:"text-xs text-amber-700",children:"暂未发现坏掉的通用智能体 session"}):l.jsxs("div",{className:"space-y-3",children:[l.jsxs("div",{className:"space-y-1",children:[l.jsxs("p",{className:"text-xs font-medium text-amber-900",children:["检测到 ",o.length," 只通用智能体 session 需要救援"]}),l.jsx("p",{className:"text-[11px] text-amber-700",children:"先勾选要动刀的 session,再执行一键救活。"})]}),l.jsx("div",{className:"space-y-2",children:o.map(b=>{const y=d.includes(b.sessionId);return l.jsxs("label",{className:"flex items-start gap-2 rounded-lg border border-amber-200 bg-white px-3 py-2 text-xs text-gray-700",children:[l.jsx("input",{type:"checkbox",checked:y,onChange:()=>g(b.sessionId),className:"mt-0.5"}),l.jsxs("span",{className:"space-y-0.5",children:[l.jsx("span",{className:"block font-medium text-gray-900",children:b.sessionId}),l.jsxs("span",{className:"block text-amber-800",children:["纯 thinking turn:",b.removableThinkingTurns," 条"]}),l.jsx("span",{className:"block break-all text-gray-500",children:b.transcriptPath}),l.jsx("span",{className:"block text-gray-500",children:OS(b)})]})]},b.sessionId)})}),l.jsx("button",{type:"button",onClick:()=>{x()},disabled:r||O.length===0,className:"px-3 py-1.5 rounded bg-amber-600 text-white text-xs hover:bg-amber-700 disabled:opacity-50",children:r?"救援中...":`一键救活 ${O.length} 只通用智能体`})]})]})}const Ei={name:"ME",aliases:[],mentionPatterns:["@co-creator"],avatar:"",color:{primary:"#D4A76A",secondary:"#FFF8F0"}};function al(t){const e=t.trim();return e?e.startsWith("@")?e:`@${e}`:""}function ol(t){return Array.from(new Set(t.filter(Boolean)))}function gS({open:t,coCreator:e,onClose:n,onSaved:i}){var $,N;const s=e??Ei,[r,a]=m.useState(s.name),[o,c]=m.useState(s.avatar??""),[d,u]=m.useState((($=s.color)==null?void 0:$.primary)??Ei.color.primary),[h,f]=m.useState(((N=s.color)==null?void 0:N.secondary)??Ei.color.secondary),[p,O]=m.useState(s.aliases),[g,x]=m.useState(s.mentionPatterns),[b,y]=m.useState(null),[S,P]=m.useState(!1),[w,C]=m.useState(!1),Q=m.useRef(null);if(m.useEffect(()=>{var z,I;if(!t)return;const R=e??Ei;a(R.name),c(R.avatar??""),u(((z=R.color)==null?void 0:z.primary)??Ei.color.primary),f(((I=R.color)==null?void 0:I.secondary)??Ei.color.secondary),O(R.aliases),x(R.mentionPatterns),y(null)},[t,e]),!t)return null;const T=async R=>{C(!0),y(null);try{c(await aO(R))}catch(z){y(z instanceof Error?z.message:"头像上传失败")}finally{C(!1)}},A=async()=>{const R=r.trim(),z=ol(g.map(al));if(!R){y("Co-Creator 名称不能为空");return}if(z.length===0){y("至少保留一个可用的 @ 标签");return}P(!0),y(null);try{const I=await G("/api/config/co-creator",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:R,aliases:ol(p.map(B=>B.trim())),mentionPatterns:z,avatar:o.trim()||null,color:{primary:d,secondary:h}})});if(!I.ok){const B=await I.json().catch(()=>({}));y(B.error??`保存失败 (${I.status})`);return}Sb({name:R,aliases:ol(p.map(B=>B.trim())),mentionPatterns:z,avatar:o.trim()||"",color:{primary:d,secondary:h}}),await i(),n()}catch(I){y(I instanceof Error?I.message:"保存失败")}finally{P(!1)}};return l.jsx("div",{className:"fixed inset-0 z-[70] flex items-center justify-center bg-black/40 px-4",children:l.jsxs("div",{className:"flex max-h-[88vh] w-full max-w-3xl flex-col rounded-[28px] border border-[#EFDCCB] bg-[#FDF8F3] shadow-2xl",children:[l.jsxs("div",{className:"flex shrink-0 items-start justify-between border-b border-[#F0DDCD] px-6 py-5",children:[l.jsxs("div",{children:[l.jsxs("p",{className:"text-xs font-semibold text-[#D18A61]",children:["成员协作 > 总览 > ",s.name]}),l.jsxs("h3",{className:"mt-2 text-2xl font-bold text-[#2D2118]",children:["编辑 ",s.name]}),l.jsx("p",{className:"mt-1 text-sm text-[#8A776B]",children:"可维护头像、别名、被 @ 标签与卡片背景色。"})]}),l.jsx("button",{type:"button",onClick:n,className:"text-2xl leading-none text-[#B59A88]","aria-label":"关闭",children:"×"})]}),l.jsxs("div",{className:"min-h-0 flex-1 space-y-4 overflow-y-auto px-6 py-5",children:[l.jsx(MO,{}),l.jsxs(Ti,{title:"身份信息",children:[l.jsx(rt,{label:"名称",ariaLabel:"Owner Name",value:r,onChange:a,required:!0,placeholder:"Owner 显示名称"}),l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("span",{className:"w-[140px] shrink-0 text-[13px] font-medium text-[#5C4B42]",children:"Avatar"}),l.jsxs("button",{type:"button",onClick:()=>{var R;return(R=Q.current)==null?void 0:R.click()},className:"flex items-center gap-2 rounded-lg border border-[#E8DCCF] bg-[#F7F3F0] px-3 py-1.5 text-sm text-[#5C4B42] transition hover:border-[#D49266]",children:[l.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center overflow-hidden rounded-full border border-[#E8DCCF] bg-white text-[10px] text-[#8A776B]",children:o?l.jsx("img",{src:o,alt:"Owner avatar preview",className:"h-full w-full object-cover"}):"ME"}),l.jsx("span",{children:w?"上传中…":"点击上传"})]}),o?l.jsx("button",{type:"button",onClick:()=>c(""),className:"text-xs text-[#8A776B] hover:text-[#E29578]",children:"清除"}):null,l.jsx("input",{ref:Q,type:"file",accept:"image/png,image/jpeg,image/webp",className:"hidden",onChange:R=>{var I;const z=(I=R.target.files)==null?void 0:I[0];z&&T(z).finally(()=>{Q.current&&(Q.current.value="")})}})]}),l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("span",{className:"w-[140px] shrink-0 text-[13px] font-medium text-[#5C4B42]",children:"Background Color"}),l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("label",{title:"Primary",children:l.jsx("input",{type:"color","aria-label":"Owner Color Primary",value:d,onChange:R=>u(R.target.value),className:"h-8 w-8 cursor-pointer rounded border-0 bg-transparent p-0"})}),l.jsx("label",{title:"Secondary",children:l.jsx("input",{type:"color","aria-label":"Owner Color Secondary",value:h,onChange:R=>f(R.target.value),className:"h-8 w-8 cursor-pointer rounded border-0 bg-transparent p-0"})})]})]})]}),l.jsxs(Ti,{title:"别名与 @ 路由",children:[l.jsxs("div",{className:"flex items-start gap-3",children:[l.jsx("span",{className:"w-[140px] shrink-0 pt-1 text-[13px] font-medium text-[#5C4B42]",children:"别名"}),l.jsx("div",{className:"min-w-0 flex-1",children:l.jsx(ti,{tags:p,onChange:O,addLabel:"+ 添加",placeholder:"例如 共创伙伴",emptyLabel:"(无)",tone:"orange"})})]}),l.jsxs("div",{className:"flex items-start gap-3",children:[l.jsx("span",{className:"w-[140px] shrink-0 pt-1 text-[13px] font-medium text-[#5C4B42]",children:"@ 标签"}),l.jsx("div",{className:"min-w-0 flex-1",children:l.jsx(ti,{tags:g,onChange:R=>x(R.map(al).filter(Boolean)),addLabel:"+ 添加",placeholder:"@co-creator",emptyLabel:"(至少保留 1 个,否则无法 @)",tone:"green",normalize:al,minCount:1})})]})]}),b?l.jsx("p",{className:"rounded-2xl bg-red-50 px-4 py-3 text-sm text-red-600",children:b}):null]}),l.jsxs("div",{className:"flex shrink-0 items-center justify-between border-t border-[#F0DDCD] bg-[#FFF3EA] px-6 py-4",children:[l.jsx("button",{type:"button",onClick:n,className:"rounded-xl bg-white px-4 py-2 text-sm text-[#6A5A50] transition hover:bg-[#F7EEE6]",children:"取消"}),l.jsx("button",{type:"button",onClick:A,disabled:S,className:"rounded-xl bg-[#D49266] px-4 py-2 text-sm font-semibold text-white transition hover:bg-[#C88254] disabled:opacity-50",children:S?"保存中...":"保存"})]})]})})}const xS={connector:"跨平台"},bS=[{name:"/where",usage:"/where",description:"查看当前会话",category:"connector"},{name:"/new",usage:"/new [标题名]",description:"创建新会话并切换",category:"connector"},{name:"/threads",usage:"/threads",description:"列出最近的会话",category:"connector"},{name:"/use",usage:"/use [序号]",description:"切换到指定会话",category:"connector"}],yS=[{keys:"⌥V (Option+V)",description:"切换语音录入",context:"全局"},{keys:"⌘\\ (Cmd+\\)",description:"切换单屏 / 分屏",context:"全局"},{keys:"⌘1 / ⌘2 / ⌘3 / ⌘4",description:"选择分屏窗格",context:"分屏模式"}];function Ah({title:t,children:e}){return l.jsxs("section",{className:"rounded-lg border border-gray-200 bg-gray-50/70 p-3",children:[l.jsx("h3",{className:"text-xs font-semibold text-gray-700 mb-2",children:t}),e]})}function vS({category:t,label:e}){const n=bS.filter(i=>i.category===t);return n.length===0?null:l.jsxs("div",{className:"mb-3 last:mb-0",children:[l.jsx("p",{className:"text-[11px] font-semibold text-gray-500 uppercase tracking-wide mb-1.5",children:e}),l.jsx("div",{className:"space-y-1",children:n.map(i=>l.jsxs("div",{className:"flex items-baseline gap-3 text-xs",children:[l.jsx("code",{className:"font-mono text-blue-600 bg-blue-50 px-1.5 py-0.5 rounded shrink-0",children:i.usage}),l.jsx("span",{className:"text-gray-600",children:i.description})]},i.name+i.usage))})]})}function SS(){const t=["general","memory","knowledge","game","task","vote","connector"];return l.jsxs(l.Fragment,{children:[l.jsx(Ah,{title:"斜杠命令",children:t.map(e=>l.jsx(vS,{category:e,label:xS[e]},e))}),l.jsx(Ah,{title:"快捷键",children:l.jsx("div",{className:"space-y-1.5",children:yS.map(e=>l.jsxs("div",{className:"flex items-baseline gap-3 text-xs",children:[l.jsx("kbd",{className:"font-mono text-gray-700 bg-gray-200 px-1.5 py-0.5 rounded shrink-0",children:e.keys}),l.jsx("span",{className:"text-gray-600",children:e.description}),e.context!=="全局"&&l.jsxs("span",{className:"text-[10px] text-gray-400 ml-auto",children:["(",e.context,")"]})]},e.keys))})})]})}const wS=[/^\.env/,/\.pem$/,/\.key$/,/^id_rsa/];function kS(t,e){return t.startsWith(e+"/")||t===e}function QS(t){return wS.some(e=>e.test(t))}function CS(t,e){return t.startsWith(e+"/")?t.slice(e.length+1):t}function EO(t,e,n){if(!kS(t,e))return{kind:"outside",relPath:t};const i=CS(t,e),s=i.split("/").pop()??i;return!n&&QS(s)?{kind:"denied",relPath:i}:{kind:n?"dir-inside":"file",relPath:i}}function Rd({title:t,children:e}){return l.jsxs("section",{className:"rounded-[20px] border border-[#F1E7DF] bg-[#FFFDFC] p-[18px]",children:[l.jsx("h3",{className:"text-[17px] font-bold text-[#2D2118]",children:t}),l.jsx("div",{className:"mt-3",children:e})]})}function PS(){return l.jsxs("section",{className:"rounded-[20px] border border-[#F1E7DF] bg-[#FFFDFC] p-[18px]",children:[l.jsx("p",{className:"text-[13px] font-semibold text-[#E29578]",children:"系统配置 > 环境 & 文件"}),l.jsx("p",{className:"mt-2 text-[14px] leading-6 text-[#8A776B]",children:"当前环境变量、配置文件、数据目录三段式不变。新增:变量值可直接编辑,保存后自动回填 .env。"})]})}function ll({absPath:t,reason:e}){return l.jsx("span",{className:"text-xs text-gray-400 shrink-0 cursor-default",title:`${e}
|
|
26
|
+
${t}`,children:"受保护"})}function IO({classification:t,absPath:e}){switch(t.kind){case"file":case"dir-inside":return l.jsx(ll,{absPath:e,reason:"workspace 能力已下线,无法在 Hub 中打开"});case"denied":return l.jsx(ll,{absPath:e,reason:"受安全策略保护,无法在 Hub 中打开"});case"outside":return l.jsx(ll,{absPath:e,reason:"位于项目目录外部,无法在 Hub 中打开"})}}function TS(t){return[{name:"office-claw-template.json",path:`${t}/office-claw-template.json`,desc:"智能体模板(只读 seed)",isDir:!1},{name:".office-claw/office-claw-catalog.json",path:`${t}/.office-claw/office-claw-catalog.json`,desc:"运行时成员真相源",isDir:!1},{name:".env",path:`${t}/.env`,desc:"可编辑环境变量真相源(不含认证凭证)",isDir:!1},{name:".env.local",path:`${t}/.env.local`,desc:"本地环境变量覆盖",isDir:!1},{name:"start-dev.sh",path:`${t}/scripts/start-dev.sh`,desc:"开发启动脚本",isDir:!1},{name:"CLAUDE.md",path:`${t}/CLAUDE.md`,desc:"通用智能体项目指引",isDir:!1},{name:"AGENTS.md",path:`${t}/AGENTS.md`,desc:"办公智能体项目指引",isDir:!1},{name:"GEMINI.md",path:`${t}/GEMINI.md`,desc:"协作智能体项目指引",isDir:!1}]}const $S=new Set(["API_SERVER_PORT"]);function Nh(t){const e=[];return $S.has(t.name)&&e.push("写回 .env 后需重启相关服务生效。"),t.maskMode==="url"&&e.push("当前值已做凭证脱敏;修改时请填写完整连接串。"),e.length>0?e.join(" "):null}function Ms(t){return t.runtimeEditable!==!1&&!t.sensitive}function _d(t){return t.maskMode==="url"&&typeof t.currentValue=="string"&&t.currentValue.includes("***")}function cl(t){return _d(t)?"":t.currentValue??""}function jS(t){return[{name:"审计日志",path:t.auditLogs,desc:"EventAuditLog 输出",isDir:!0},{name:"运行日志",path:t.runtimeLogs,desc:"Pino 结构化 runtime log",isDir:!0},{name:"CLI 归档",path:t.cliArchive,desc:"CLI 原始输出归档",isDir:!0},{name:"Redis 开发沙盒",path:t.redisDevSandbox,desc:"开发用 Redis 数据",isDir:!0},{name:"上传目录",path:t.uploads,desc:"文件上传存储",isDir:!0}]}const AS=new Set(["CLAUDE.md","AGENTS.md","GEMINI.md"]);function NS({projectRoot:t,hideAgentGuides:e}){const n=m.useMemo(()=>{const i=TS(t);return e?i.filter(s=>!AS.has(s.name)):i},[t,e]);return l.jsx(Rd,{title:"配置文件",children:l.jsx("div",{className:"space-y-2",children:n.map(i=>{const s=EO(i.path,t,i.isDir);return l.jsxs("div",{className:"flex items-baseline gap-2 rounded-[12px] border border-[#F3E8DE] bg-white px-3 py-2",children:[l.jsx("code",{className:"shrink-0 rounded bg-[#F7F3F0] px-1.5 py-0.5 font-mono text-xs text-[#6A5A50]",children:i.name}),l.jsx("span",{className:"text-xs text-[#8A776B]",children:i.desc}),l.jsx(IO,{classification:s,absPath:i.path})]},i.name)})})})}function RS({categories:t,variables:e,drafts:n,isDirty:i,saveState:s,hiddenCategories:r,onDraftChange:a,onSave:o}){const c=r?new Set(r):null,d=Object.entries(t).filter(([u])=>!(c!=null&&c.has(u))).map(([u,h])=>({key:u,label:h,vars:e.filter(f=>f.category===u)})).filter(u=>u.vars.length>0);return l.jsxs(Rd,{title:"环境变量",children:[l.jsx("div",{className:"mb-3 rounded-[12px] border border-[#D7E9D7] bg-[#F6FBF6] px-3 py-2 text-xs leading-5 text-[#5B7A5C]",children:"变量值可直接编辑,保存后自动回填 `.env`。写回 .env 后需重启相关服务生效;URL 型连接串当前值已脱敏,修改时请填写完整值。"}),l.jsx("div",{className:"space-y-3",children:d.map(u=>l.jsxs("div",{children:[l.jsx("p",{className:"mb-1.5 text-[11px] font-semibold uppercase tracking-wide text-[#77A777]",children:u.label}),l.jsx("div",{className:"space-y-1",children:u.vars.map(h=>l.jsxs("div",{className:"grid gap-2 rounded-[12px] border border-[#F3E8DE] bg-white px-3 py-2 text-xs md:grid-cols-[minmax(0,1fr)_220px]",children:[l.jsxs("div",{className:"min-w-0 space-y-1",children:[l.jsxs("div",{className:"flex items-baseline gap-1.5 min-w-0",children:[l.jsx("code",{className:"shrink-0 font-mono text-[#6A5A50]",children:h.name}),l.jsx("span",{className:"truncate text-[#B59A88]",children:h.description})]}),l.jsxs("div",{className:"text-[11px] text-[#B59A88]",children:["默认: ",h.defaultValue]}),!Ms(h)&&l.jsx("div",{className:`font-mono text-[11px] ${h.currentValue?"text-[#6A5A50]":"text-[#D4C5BA]"}`,children:h.currentValue??"未设置"})]}),Ms(h)?l.jsxs("div",{className:"space-y-1",children:[l.jsx("input",{"aria-label":h.name,value:n[h.name]??"",onChange:f=>a(h.name,f.target.value),placeholder:_d(h)?"保持当前值(已脱敏)":h.defaultValue,className:"ui-input ui-input-soft rounded-[10px] px-3 py-2 font-mono text-xs"}),Nh(h)?l.jsx("div",{className:"text-[11px] leading-5 text-[#B59A88]",children:Nh(h)}):null]}):l.jsx("div",{className:"rounded-[10px] border border-dashed border-[#E8DCCF] bg-[#F7F3F0] px-3 py-2 text-[11px] text-[#8A776B]",children:"只读变量(认证凭证 / 仅启动期生效)"})]},h.name))})]},u.key))}),l.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-3",children:[l.jsx("button",{type:"button",onClick:o,disabled:!i||s.saving,className:"rounded-full bg-[#D49266] px-4 py-2 text-xs font-semibold text-white hover:bg-[#c47f52] disabled:cursor-not-allowed disabled:opacity-50",children:s.saving?"保存中...":"保存到 .env"}),s.error&&l.jsx("span",{className:"text-xs text-red-600",children:s.error}),s.success&&l.jsx("span",{className:"text-xs text-green-600",children:s.success})]})]})}function _S({dataDirs:t,projectRoot:e}){const n=m.useMemo(()=>jS(t),[t]);return l.jsx(Rd,{title:"数据目录",children:l.jsx("div",{className:"space-y-2",children:n.map(i=>{const s=EO(i.path,e,i.isDir);return l.jsxs("div",{className:"flex items-baseline gap-2 rounded-[12px] border border-[#F3E8DE] bg-white px-3 py-2",children:[l.jsx("span",{className:"shrink-0 text-xs font-medium text-[#6A5A50]",children:i.name}),l.jsx("span",{className:"text-xs text-[#8A776B]",children:i.desc}),l.jsx(IO,{classification:s,absPath:i.path})]},i.name)})})})}function MS({hiddenCategories:t,hideAgentGuides:e}){const[n,i]=m.useState(null),[s,r]=m.useState(null),[a,o]=m.useState({}),c=m.useRef(!1),[d,u]=m.useState({saving:!1,error:null,success:null});if(m.useEffect(()=>{G("/api/config/env-summary").then(async x=>{if(x.ok){const b=await x.json();i(b),o(Object.fromEntries(b.variables.filter(Ms).map(y=>[y.name,cl(y)])))}else r("环境信息加载失败")}).catch(()=>r("环境信息加载失败"))},[]),s)return l.jsx("p",{className:"text-sm text-red-500 bg-red-50 rounded-lg px-3 py-2",children:s});if(!n)return l.jsx("p",{className:"text-sm text-gray-400",children:"加载中..."});const f=n.variables.filter(Ms).map(x=>({name:x.name,value:a[x.name]??"",baselineValue:cl(x),maskedUrl:_d(x)})).filter(x=>x.value!==x.baselineValue).filter(x=>!x.maskedUrl||x.value.trim().length>0).map(({name:x,value:b})=>({name:x,value:b})),p=f.length>0,O=(x,b)=>{o(y=>({...y,[x]:b})),u(y=>({...y,error:null,success:null}))},g=async()=>{if(!c.current){if(!p){u({saving:!1,error:null,success:"当前没有待写回的变更"});return}c.current=!0,u({saving:!0,error:null,success:null});try{const x=await G("/api/config/env",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({updates:f})}),b=await x.json().catch(()=>({}));if(!x.ok){u({saving:!1,error:b.error??"保存失败",success:null});return}const y=Array.isArray(b.summary)?b.summary:n.variables.map(S=>{const P=f.find(w=>w.name===S.name);return P?{...S,currentValue:P.value||null}:S});i(S=>S&&{...S,variables:y}),o(Object.fromEntries(y.filter(Ms).map(S=>[S.name,cl(S)]))),u({saving:!1,error:null,success:"已写回 .env 并刷新摘要;部分变量需重启相关服务生效"})}catch{u({saving:!1,error:"保存失败",success:null})}finally{c.current=!1}}};return l.jsxs("div",{className:"space-y-4",children:[l.jsx(PS,{}),l.jsx(RS,{categories:n.categories,variables:n.variables,drafts:a,isDirty:p,saveState:d,hiddenCategories:t,onDraftChange:O,onSave:g}),l.jsx(NS,{projectRoot:n.paths.projectRoot,hideAgentGuides:e}),l.jsx(_S,{dataDirs:n.paths.dataDirs,projectRoot:n.paths.projectRoot})]})}const ES={healthy:{bg:"bg-green-50",text:"text-green-700",label:"正常"},stale:{bg:"bg-yellow-50",text:"text-yellow-700",label:"过期"},missing:{bg:"bg-red-50",text:"text-red-700",label:"缺失"}};function IS(){const[t,e]=m.useState([]),[n,i]=m.useState(!0),[s,r]=m.useState(null),a=m.useCallback(async()=>{i(!0),r(null);try{const o=await G("/api/governance/health");if(!o.ok){r("加载治理状态失败");return}const c=await o.json();e(c.projects)}catch{r("网络错误")}finally{i(!1)}},[]);return m.useEffect(()=>{a()},[a]),n?l.jsx("p",{className:"text-sm text-gray-400",children:"加载治理状态中..."}):s?l.jsx("p",{className:"text-sm text-red-500 bg-red-50 rounded-lg px-3 py-2",children:s}):t.length===0?l.jsxs("div",{className:"text-center py-8 text-gray-400",children:[l.jsx("p",{className:"text-sm",children:"暂无外部项目治理记录"}),l.jsx("p",{className:"text-xs mt-1",children:"当智能体首次被派遣到外部项目时,治理规则会自动同步"})]}):l.jsxs("div",{className:"space-y-3",children:[l.jsxs("div",{className:"flex items-center justify-between",children:[l.jsx("h3",{className:"text-sm font-semibold text-gray-700",children:"外部项目治理状态"}),l.jsx("button",{type:"button",onClick:a,className:"text-xs text-blue-500 hover:text-blue-700",children:"刷新"})]}),l.jsx("div",{className:"border rounded-lg overflow-hidden",children:l.jsxs("table",{className:"w-full text-sm",children:[l.jsx("thead",{className:"bg-gray-50 text-left",children:l.jsxs("tr",{children:[l.jsx("th",{className:"px-3 py-2 font-medium text-gray-600",children:"项目路径"}),l.jsx("th",{className:"px-3 py-2 font-medium text-gray-600",children:"状态"}),l.jsx("th",{className:"px-3 py-2 font-medium text-gray-600",children:"版本"}),l.jsx("th",{className:"px-3 py-2 font-medium text-gray-600",children:"上次同步"})]})}),l.jsx("tbody",{className:"divide-y divide-gray-100",children:t.map(o=>{const c={bg:"bg-gray-50",text:"text-gray-500",label:o.status},d=ES[o.status]??c,u=o.projectPath.split(/[/\\]/).slice(-2).join("/"),h=o.lastSyncedAt?new Date(o.lastSyncedAt).toLocaleDateString("zh-CN"):"—";return l.jsxs("tr",{className:"hover:bg-gray-50",children:[l.jsx("td",{className:"px-3 py-2 font-mono text-xs",title:o.projectPath,children:u}),l.jsx("td",{className:"px-3 py-2",children:l.jsx("span",{className:`inline-block px-2 py-0.5 rounded text-xs font-medium ${d.bg} ${d.text}`,children:d.label})}),l.jsx("td",{className:"px-3 py-2 text-xs text-gray-500",children:o.packVersion??"—"}),l.jsx("td",{className:"px-3 py-2 text-xs text-gray-500",children:h})]},o.projectPath)})})]})})]})}const LS=[{value:"",label:"(未设置)"},{value:"openai_compatible",label:"openai_compatible"},{value:"bigmodel",label:"bigmodel"},{value:"minimax",label:"minimax"},{value:"echo",label:"echo"}];function XS({profile:t,busy:e,onSave:n,onDelete:i}){const s=yd(),[r,a]=m.useState(!1),[o,c]=m.useState(t.displayName),[d,u]=m.useState(t.provider??""),[h,f]=m.useState(t.model),[p,O]=m.useState(t.baseUrl),[g,x]=m.useState(""),b=m.useCallback(()=>{c(t.displayName),u(t.provider??""),f(t.model),O(t.baseUrl),x(""),a(!0)},[t.baseUrl,t.displayName,t.model,t.provider]);return r?l.jsxs("div",{className:"space-y-3 rounded-[20px] border border-[#D9D6F5] bg-[#F6F5FF] p-[18px]",children:[l.jsx("input",{value:o,onChange:y=>c(y.target.value),placeholder:"显示名",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsx("select",{value:d,onChange:y=>u(y.target.value),className:"w-full rounded border border-[#D9D6F5] bg-white px-3 py-2 text-sm",children:LS.map(y=>l.jsx("option",{value:y.value,children:y.label},y.value))}),l.jsx("input",{value:h,onChange:y=>f(y.target.value),placeholder:"模型名",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsx("input",{value:p,onChange:y=>O(y.target.value),placeholder:"Base URL",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsx("input",{type:"password",autoComplete:"off",value:g,onChange:y=>x(y.target.value),placeholder:t.hasApiKey?"已配置(留空保持不变)":"API Key",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsxs("div",{className:"flex gap-2",children:[l.jsx("button",{type:"button",onClick:async()=>{await n(t.id,{displayName:o.trim(),provider:d||null,model:h.trim(),baseUrl:p.trim(),...g.trim()?{apiKey:g.trim()}:{}}),a(!1)},disabled:e,className:"rounded bg-[#5C5AB1] px-3 py-1.5 text-xs font-medium text-white disabled:opacity-50",children:e?"保存中...":"保存"}),l.jsx("button",{type:"button",onClick:()=>a(!1),disabled:e,className:"rounded border border-gray-200 px-3 py-1.5 text-xs text-gray-600",children:"取消"})]})]}):l.jsx("div",{className:"rounded-[20px] border border-[#D9D6F5] bg-[#F6F5FF] p-[18px]",children:l.jsxs("div",{className:"flex items-start justify-between gap-3",children:[l.jsxs("div",{className:"space-y-2",children:[l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("span",{className:"text-base font-bold text-[#2D2118]",children:t.displayName}),l.jsx("span",{className:"rounded-full bg-white px-2.5 py-1 text-[11px] font-semibold text-[#5C5AB1]",children:t.provider??"(未设置)"})]}),l.jsxs("p",{className:"text-sm text-[#6B679C]",children:[t.model," · ",t.baseUrl]})]}),l.jsxs("div",{className:"flex gap-1.5",children:[l.jsx("button",{type:"button",className:"rounded-full bg-white px-3 py-1.5 text-xs font-semibold text-[#5C5AB1]",onClick:b,disabled:e,children:"编辑"}),l.jsx("button",{type:"button",className:"rounded-full bg-red-50 px-3 py-1.5 text-xs font-semibold text-red-600",onClick:async()=>{await s({title:"删除确认",message:`确认删除 ACP Model Profile「${t.displayName}」吗?`,variant:"danger",confirmLabel:"删除"})&&i(t.id)},disabled:e,children:"删除"})]})]})})}function ZS({profiles:t,busyId:e,onSave:n,onDelete:i}){return l.jsxs("div",{className:"space-y-4",children:[l.jsx("p",{className:"text-sm font-semibold text-[#5C5AB1]",children:"ACP Model Profiles"}),t.map(s=>l.jsx(XS,{profile:s,busy:e===s.id,onSave:n,onDelete:i},s.id))]})}const DS=[{value:"self_managed",label:"Agent Teams 自管"},{value:"clowder_default_profile",label:"OfficeClaw 下发 default"}];function Rh(t){var n,i;if(t.builtin)return null;if(t.kind==="acp"){const s=((n=t.args)==null?void 0:n.join(" "))??"",r=t.cwd?` · cwd=${t.cwd}`:"";return`${t.command??"(未设置)"} ${s}`.trim()+r}return`${((i=t.baseUrl)==null?void 0:i.replace(/^https?:\/\//,""))??"(未设置)"} · ${t.hasApiKey?"已配置":"未配置"}`}function _h(t){return t.kind!=="acp"&&!t.builtin}function qS({profile:t,busy:e,acpModelProfiles:n=[],onSave:i,onDelete:s,onTest:r}){const a=yd(),[o,c]=m.useState(!1),[d,u]=m.useState(t.displayName),[h,f]=m.useState(t.protocol??"anthropic"),[p,O]=m.useState(t.baseUrl??""),[g,x]=m.useState(""),[b,y]=m.useState(t.models??[]),[S,P]=m.useState(t.command??""),[w,C]=m.useState((t.args??[]).join(" ")),[Q,T]=m.useState(t.cwd??""),[A,$]=m.useState(""),[N,R]=m.useState(t.modelAccessMode??"self_managed"),[z,I]=m.useState(t.defaultModelProfileRef??""),B=m.useCallback(()=>{u(t.displayName),f(t.protocol??"anthropic"),O(t.baseUrl??""),x(""),y(t.models??[]),P(t.command??""),C((t.args??[]).join(" ")),T(t.cwd??""),$(""),R(t.modelAccessMode??"self_managed"),I(t.defaultModelProfileRef??""),c(!0)},[t.args,t.baseUrl,t.command,t.cwd,t.defaultModelProfileRef,t.displayName,t.modelAccessMode,t.models,t.protocol]),M=m.useCallback(async()=>{if(t.kind==="acp"){const L=Na(A);await i({displayName:d.trim(),command:S.trim(),args:H0(w),cwd:Q.trim()||null,...L?{env:L}:{},modelAccessMode:N,defaultModelProfileRef:N==="clowder_default_profile"&&z.trim()||null})}else await i({displayName:d.trim(),..._h(t)?{protocol:h,baseUrl:p.trim()}:{},...g.trim()?{apiKey:g.trim()}:{},models:b});c(!1)},[g,w,p,S,Q,A,z,d,N,b,h,i,t.authType,t.id,t.kind]);return o?l.jsxs("div",{className:"space-y-3 rounded-2xl border border-[#E5EAF2] bg-[#F8FAFD] p-4",children:[l.jsxs("div",{className:"space-y-2",children:[l.jsx("input",{value:d,onChange:L=>u(L.target.value),placeholder:"账号显示名",autoComplete:"off",className:"ui-input w-full rounded px-3 py-2 text-sm"}),t.kind==="acp"?l.jsxs(l.Fragment,{children:[l.jsx("input",{value:S,onChange:L=>P(L.target.value),placeholder:"命令",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsx("textarea",{value:w,onChange:L=>C(L.target.value),rows:3,placeholder:"参数按空格分隔",className:"ui-textarea w-full rounded px-3 py-2 text-sm"}),l.jsx("input",{value:Q,onChange:L=>T(L.target.value),placeholder:"可选 cwd",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsx("textarea",{value:A,onChange:L=>$(L.target.value),rows:3,placeholder:"每行 KEY=value;留空保持现有值",className:"ui-textarea w-full rounded px-3 py-2 text-sm"}),l.jsx("select",{value:N,onChange:L=>R(L.target.value),className:"w-full rounded border border-[#DCE2EB] bg-white px-3 py-2 text-sm",children:DS.map(L=>l.jsx("option",{value:L.value,children:L.label},L.value))}),N==="clowder_default_profile"?l.jsxs("select",{value:z,onChange:L=>I(L.target.value),className:"w-full rounded border border-[#DCE2EB] bg-white px-3 py-2 text-sm",children:[l.jsx("option",{value:"",children:"选择 ACP Model Profile"}),n.map(L=>l.jsx("option",{value:L.id,children:L.displayName},L.id))]}):null]}):_h(t)?l.jsxs(l.Fragment,{children:[l.jsxs("select",{value:h,onChange:L=>f(L.target.value),className:"w-full rounded border border-[#DCE2EB] bg-white px-3 py-2 text-sm",children:[l.jsx("option",{value:"anthropic",children:"Anthropic"}),l.jsx("option",{value:"openai",children:"OpenAI"}),l.jsx("option",{value:"google",children:"Google"})]}),l.jsx("input",{value:p,onChange:L=>O(L.target.value),placeholder:"API 服务地址,如 https://api.example.com/v1",autoComplete:"off",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsx("input",{type:"password",autoComplete:"off",value:g,onChange:L=>x(L.target.value),placeholder:t.hasApiKey?"已配置 sk-••••••••(留空保持不变)":"sk-xxxxxxxxxxxxxxxx",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsxs("div",{className:"space-y-2",children:[l.jsx("p",{className:"text-xs font-semibold text-[#6E7785]",children:"可用模型"}),l.jsx(ti,{tags:b,tone:"purple",addLabel:"+ 添加模型",placeholder:"输入模型名,如 gpt-4o",emptyLabel:"(至少添加 1 个模型)",minCount:1,onChange:y})]})]}):null]}),l.jsxs("div",{className:"flex gap-2",children:[l.jsx("button",{type:"button",onClick:M,disabled:e,className:"rounded bg-[#111418] px-3 py-1.5 text-xs font-medium text-white hover:bg-[#2A3038] disabled:opacity-50",children:e?"保存中...":"保存"}),l.jsx("button",{type:"button",onClick:()=>c(!1),disabled:e,className:"rounded border border-[#D8DEE8] px-3 py-1.5 text-xs text-[#647083] hover:bg-[#F5F7FB]",children:"取消"})]})]}):l.jsx("div",{className:"rounded-2xl border border-[#E5EAF2] bg-white p-4 shadow-[0_1px_2px_rgba(15,23,42,0.04)]",children:l.jsxs("div",{className:"flex items-start justify-between gap-3",children:[l.jsxs("div",{className:"min-w-0 space-y-2",children:[l.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[l.jsx("span",{className:"text-base font-semibold text-[#2D3545]",children:t.displayName}),t.builtin?l.jsxs("span",{className:"text-[11px] font-semibold text-[#7A8495] flex items-center gap-0.5",children:[l.jsx("svg",{className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:l.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z"})}),"内置"]}):null,t.builtin?null:l.jsx("span",{className:`rounded-full px-2.5 py-1 text-[11px] font-semibold ${t.kind==="acp"?"bg-[#E8EEFF] text-[#4E63A6]":"bg-[#EEF3FF] text-[#5970B6]"}`,children:t.kind==="acp"?"acp":"api_key"})]}),Rh(t)?l.jsx("p",{className:"text-sm text-[#727D8F]",children:Rh(t)}):null,t.kind==="acp"?l.jsxs("p",{className:"text-xs leading-5 text-[#727D8F]",children:["模型接入: ",t.modelAccessMode==="clowder_default_profile"?"OfficeClaw default profile":"Agent Teams 自管"]}):l.jsxs("div",{className:"space-y-2",children:[l.jsx("p",{className:"text-xs font-semibold text-[#6E7785]",children:"可用模型"}),l.jsx(ti,{tags:t.models??[],tone:t.builtin?"orange":"purple",addLabel:"+ 添加",placeholder:"输入模型名",emptyLabel:"(暂无模型)",minCount:1,onChange:L=>{e||i({displayName:t.displayName,...t.authType==="api_key"?{baseUrl:t.baseUrl??""}:{},models:L})}})]})]}),l.jsxs("div",{className:"flex shrink-0 flex-wrap gap-1.5",children:[t.builtin?null:l.jsx("button",{type:"button",className:"rounded-full border border-[#D9DFEA] bg-[#F8FAFD] px-3 py-1.5 text-xs font-semibold text-[#697487]",onClick:B,disabled:e,children:"编辑"}),!t.builtin&&r?l.jsx("button",{type:"button",className:"rounded-full border border-[#CDEAD4] bg-[#EDF9F1] px-3 py-1.5 text-xs font-semibold text-[#2F8A4A]",onClick:()=>void r(),disabled:e,children:"测试"}):null,t.builtin?null:l.jsx("button",{type:"button",className:"rounded-full border border-[#F8D1D1] bg-[#FFF3F3] px-3 py-1.5 text-xs font-semibold text-[#D14646]",onClick:async()=>{await a({title:"删除确认",message:`确认删除账号「${t.displayName}」吗?该操作不可撤销。`,variant:"danger",confirmLabel:"删除"})&&s()},disabled:e,children:"删除"})]})]})})}function WS(){return l.jsxs("div",{className:"rounded-2xl border border-[#E6EAF2] bg-[#F8FAFD] p-4",children:[l.jsx("p",{className:"text-[13px] font-semibold text-[#637188]",children:"系统配置 > 账号配置"}),l.jsx("p",{className:"mt-2 text-[13px] leading-6 text-[#7E8899]",children:"每个账号可添加或删除模型。"})]})}const zS=[{value:"anthropic",label:"Anthropic"},{value:"openai",label:"OpenAI"},{value:"google",label:"Google"}],BS=[{value:"openai_compatible",label:"openai_compatible"},{value:"bigmodel",label:"bigmodel"},{value:"minimax",label:"minimax"},{value:"echo",label:"echo"}],VS=[{value:"self_managed",label:"Agent Teams 自管"},{value:"clowder_default_profile",label:"OfficeClaw 下发 default profile"}];function FS({kind:t,displayName:e,baseUrl:n,apiKey:i,protocol:s,models:r,command:a,args:o,cwd:c,envText:d,modelAccessMode:u,defaultModelProfileRef:h,acpModelProfiles:f,protocolOptions:p=zS,busy:O,onKindChange:g,onDisplayNameChange:x,onBaseUrlChange:b,onApiKeyChange:y,onProtocolChange:S,onModelsChange:P,onCommandChange:w,onArgsChange:C,onCwdChange:Q,onEnvTextChange:T,onModelAccessModeChange:A,onDefaultModelProfileRefChange:$,onCreate:N,defaultExpanded:R=!1}){const z=t==="acp"?e.trim().length>0&&a.trim().length>0&&(u!=="clowder_default_profile"||h.trim().length>0):e.trim().length>0&&n.trim().length>0&&i.trim().length>0&&r.length>0,[I,B]=m.useState(R);return l.jsxs("div",{className:"p-4",children:[l.jsxs("button",{type:"button",onClick:()=>B(M=>!M),className:"flex w-full items-center justify-between text-left",children:[l.jsx("h4",{className:"text-base font-semibold text-[#2E3440]",children:t==="acp"?"+ 新建 ACP Provider":"+ 新建 API Key 账号"}),l.jsx("span",{className:"text-sm text-[#8A93A2]",children:I?"▾ 收起":"▸ 展开"})]}),I&&l.jsxs("div",{className:"mt-4 space-y-3",children:[l.jsxs("select",{value:t,onChange:M=>g(M.target.value),className:"w-full rounded border border-[#DCE2EB] bg-white px-3 py-2 text-sm",children:[l.jsx("option",{value:"api_key",children:"API Key"}),l.jsx("option",{value:"acp",children:"ACP"})]}),l.jsx("input",{value:e,onChange:M=>x(M.target.value),placeholder:t==="acp"?"Provider 显示名,如 relay-teams-local":"账号显示名,如 my-glm",autoComplete:"off",className:"ui-input w-full rounded px-3 py-2 text-sm"}),t==="acp"?l.jsxs(l.Fragment,{children:[l.jsx("input",{value:a,onChange:M=>w(M.target.value),placeholder:"命令,如 uv",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsx("textarea",{value:o,onChange:M=>C(M.target.value),rows:3,placeholder:"参数按空格分隔,例如 -m relay_teams gateway acp stdio",className:"ui-textarea w-full rounded px-3 py-2 text-sm"}),l.jsx("input",{value:c,onChange:M=>Q(M.target.value),placeholder:"可选 cwd",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsx("textarea",{value:d,onChange:M=>T(M.target.value),rows:3,placeholder:"可选环境变量,每行 KEY=value",className:"ui-textarea w-full rounded px-3 py-2 text-sm"}),l.jsx("select",{value:u,onChange:M=>A(M.target.value),className:"w-full rounded border border-[#DCE2EB] bg-white px-3 py-2 text-sm",children:VS.map(M=>l.jsx("option",{value:M.value,children:M.label},M.value))}),u==="clowder_default_profile"?l.jsxs("select",{value:h,onChange:M=>$(M.target.value),className:"w-full rounded border border-[#DCE2EB] bg-white px-3 py-2 text-sm",children:[l.jsx("option",{value:"",children:"选择 ACP Model Profile"}),f.map(M=>l.jsx("option",{value:M.id,children:M.displayName},M.id))]}):null]}):l.jsxs(l.Fragment,{children:[l.jsx("select",{value:s,onChange:M=>S(M.target.value),className:"w-full rounded border border-[#DCE2EB] bg-white px-3 py-2 text-sm",children:p.map(M=>l.jsx("option",{value:M.value,children:M.label},M.value))}),l.jsx("input",{value:n,onChange:M=>b(M.target.value),placeholder:"API 服务地址,如 https://api.example.com/v1",autoComplete:"off",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsx("input",{type:"password",autoComplete:"off",value:i,onChange:M=>y(M.target.value),placeholder:"sk-xxxxxxxxxxxxxxxx",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsxs("div",{className:"space-y-2",children:[l.jsx("p",{className:"text-xs font-semibold text-[#6E7785]",children:"可用模型 *"}),l.jsx(ti,{tags:r,tone:"purple",addLabel:"+ 添加模型",placeholder:"输入模型名,如 gpt-4o",emptyLabel:"(至少添加 1 个模型)",onChange:P,minCount:0})]})]}),l.jsx("button",{type:"button",onClick:N,disabled:O||!z,className:"rounded bg-[#111418] px-3 py-1.5 text-xs font-medium text-white hover:bg-[#2A3038] disabled:opacity-50",children:O?"创建中...":"创建"})]})]})}function US({displayName:t,provider:e,model:n,baseUrl:i,apiKey:s,busy:r,onDisplayNameChange:a,onProviderChange:o,onModelChange:c,onBaseUrlChange:d,onApiKeyChange:u,onCreate:h}){const[f,p]=m.useState(!1),O=m.useMemo(()=>t.trim().length>0&&n.trim().length>0&&i.trim().length>0&&s.trim().length>0,[s,i,t,n]);return l.jsxs("div",{className:"rounded-2xl border border-[#E6EAF2] bg-[#F8FAFD] p-4",children:[l.jsxs("button",{type:"button",onClick:()=>p(g=>!g),className:"flex w-full items-center justify-between text-left",children:[l.jsx("h4",{className:"text-base font-semibold text-[#2E3440]",children:"+ 新建 ACP Model Profile"}),l.jsx("span",{className:"text-sm text-[#8A93A2]",children:f?"▾ 收起":"▸ 展开"})]}),f?l.jsxs("div",{className:"mt-4 space-y-3",children:[l.jsx("input",{value:t,onChange:g=>a(g.target.value),placeholder:"显示名,如 gateway-default-openai",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsxs("select",{value:e,onChange:g=>o(g.target.value),className:"w-full rounded border border-[#DCE2EB] bg-white px-3 py-2 text-sm",children:[l.jsx("option",{value:"",children:"留空自动推断"}),BS.map(g=>l.jsx("option",{value:g.value,children:g.label},g.value))]}),l.jsx("input",{value:n,onChange:g=>c(g.target.value),placeholder:"模型名,如 gpt-4.1",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsx("input",{value:i,onChange:g=>d(g.target.value),placeholder:"Base URL",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsx("input",{type:"password",autoComplete:"off",value:s,onChange:g=>u(g.target.value),placeholder:"API Key",className:"ui-input w-full rounded px-3 py-2 text-sm"}),l.jsx("button",{type:"button",onClick:h,disabled:r||!O,className:"rounded bg-[#111418] px-3 py-1.5 text-xs font-medium text-white hover:bg-[#2A3038] disabled:opacity-50",children:r?"创建中...":"创建"})]}):null]})}const Mh=[{client:"anthropic",id:"claude",displayName:"Claude (OAuth)",models:[]},{client:"openai",id:"codex",displayName:"Codex (OAuth)",models:[]},{client:"google",id:"gemini",displayName:"Gemini (OAuth)",models:[]},{client:"dare",id:"dare",displayName:"Dare (client-auth)",models:[]},{client:"opencode",id:"opencode",displayName:"OpenCode (client-auth)",models:[]}];function Eh(t){if(t.client)return t.client;if(t.oauthLikeClient==="dare"||t.oauthLikeClient==="opencode")return t.oauthLikeClient;const e=`${t.id} ${t.provider??""} ${t.displayName} ${t.name}`.toLowerCase();if(e.includes("claude"))return"anthropic";if(e.includes("codex"))return"openai";if(e.includes("gemini"))return"google";if(e.includes("dare"))return"dare";if(e.includes("opencode"))return"opencode"}function YS(t,e){const n=t.map(r=>{if(!r.builtin)return r;const a=Eh(r);return a?{...r,client:a}:r}),i=new Set(n.filter(r=>r.builtin).map(r=>Eh(r)).filter(Boolean)),s=e===void 0?Mh:Mh.filter(r=>e.includes(r.client));for(const r of s)i.has(r.client)||n.push({id:r.id,provider:r.id,displayName:r.displayName,name:r.displayName,authType:"oauth",kind:"builtin",builtin:!0,mode:"subscription",client:r.client,models:r.models,hasApiKey:!1,createdAt:"",updatedAt:"",...r.client==="dare"||r.client==="opencode"?{oauthLikeClient:r.client}:{}});return n}function Es(t){return t.id}const Ih="-m relay_teams gateway acp stdio";function dl(t){if(!t)return"tools/python/python.exe";const e=t.replace(/[\\/]+$/,""),n=e.includes("\\")?"\\":"/";return`${e}${n}tools${n}python${n}python.exe`}function GS(t){const[e,n]=m.useState("api_key"),[i,s]=m.useState(""),[r,a]=m.useState("anthropic"),[o,c]=m.useState(""),[d,u]=m.useState(""),[h,f]=m.useState([]),[p,O]=m.useState(dl(t.mutationProjectPath)),[g,x]=m.useState(Ih),[b,y]=m.useState(""),[S,P]=m.useState(""),[w,C]=m.useState("self_managed"),[Q,T]=m.useState(""),[A,$]=m.useState(""),[N,R]=m.useState(""),[z,I]=m.useState(""),[B,M]=m.useState(""),[L,F]=m.useState("");m.useEffect(()=>{O(X=>{const ne=X.trim();return ne.length===0||ne==="relay-teams"||ne==="tools/python/python.exe"||/[\\/]tools[\\/]python[\\/]python\.exe$/i.test(ne)?dl(t.mutationProjectPath):X}),y(X=>X==="/opt/workspace/relay-teams"?"":X)},[t.mutationProjectPath]);const de=m.useCallback(()=>{s(""),a("anthropic"),c(""),u(""),f([]),O(dl(t.mutationProjectPath)),x(Ih),y(""),P(""),C("self_managed"),T("")},[t.mutationProjectPath]),ce=m.useCallback(()=>{$(""),R(""),I(""),M(""),F("")},[]),ae=m.useCallback(async()=>{if(!i.trim()){t.setError("请输入账号显示名");return}if(e==="acp"){if(!p.trim()){t.setError("ACP provider 需要填写 command");return}if(w==="clowder_default_profile"&&!Q.trim()){t.setError("请选择 ACP Model Profile");return}}else if(!o.trim()||!d.trim()){t.setError("API Key 账号需要填写 baseUrl 和 apiKey");return}t.setBusyId("create"),t.setError(null);try{await t.callApi("/api/provider-profiles",{method:"POST",body:JSON.stringify(e==="acp"?{projectPath:t.mutationProjectPath??void 0,kind:"acp",displayName:i.trim(),command:p.trim(),args:H0(g),cwd:b.trim(),...Na(S)?{env:Na(S)}:{},modelAccessMode:w,...w==="clowder_default_profile"&&Q.trim()?{defaultModelProfileRef:Q.trim()}:{}}:{projectPath:t.mutationProjectPath??void 0,displayName:i.trim(),authType:"api_key",protocol:r,baseUrl:o.trim(),apiKey:d.trim(),models:h})}),de(),await t.refresh()}catch(X){t.setError(X instanceof Error?X.message:String(X))}finally{t.setBusyId(null)}},[g,p,b,S,w,Q,d,o,i,e,h,r,t,de]),J=m.useCallback(async()=>{if(!A.trim()||!z.trim()||!B.trim()||!L.trim()){t.setError("ACP Model Profile 需要填写显示名、model、baseUrl、apiKey");return}t.setBusyId("create-acp-model"),t.setError(null);try{await t.callApi("/api/acp-model-profiles",{method:"POST",body:JSON.stringify({projectPath:t.mutationProjectPath??void 0,displayName:A.trim(),...N?{provider:N}:{},model:z.trim(),baseUrl:B.trim(),apiKey:L.trim()})}),ce(),await t.refresh()}catch(X){t.setError(X instanceof Error?X.message:String(X))}finally{t.setBusyId(null)}},[z,L,B,A,N,t,ce]);return{providerCreateSectionProps:{kind:e,displayName:i,protocol:r,baseUrl:o,apiKey:d,models:h,command:p,args:g,cwd:b,envText:S,modelAccessMode:w,defaultModelProfileRef:Q,acpModelProfiles:t.acpModelProfiles,busy:!1,onKindChange:n,onDisplayNameChange:s,onProtocolChange:a,onBaseUrlChange:c,onApiKeyChange:u,onModelsChange:f,onCommandChange:O,onArgsChange:x,onCwdChange:y,onEnvTextChange:P,onModelAccessModeChange:C,onDefaultModelProfileRefChange:T,onCreate:ae},acpModelCreateSectionProps:{displayName:A,provider:N,model:z,baseUrl:B,apiKey:L,busy:!1,onDisplayNameChange:$,onProviderChange:R,onModelChange:I,onBaseUrlChange:M,onApiKeyChange:F,onCreate:J}}}function HS(){const t=E(I=>I.currentProjectPath),e=t&&t!=="default"?t:null,[n,i]=m.useState(!0),[s,r]=m.useState(null),[a,o]=m.useState(null),[c,d]=m.useState(null),[u,h]=m.useState(null),f=e,p=(a==null?void 0:a.projectPath)??e,O=m.useCallback(async(I,B)=>{const M=await G(I,{...B,headers:{"content-type":"application/json",...B.headers??{}}}),L=await M.json().catch(()=>({}));if(!M.ok)throw new Error(L.error??`请求失败 (${M.status})`);return L},[]),g=m.useCallback(async I=>{r(null);try{const B=new URLSearchParams;I&&B.set("projectPath",I);const[M,L]=await Promise.all([G(`/api/provider-profiles?${B.toString()}`),G(`/api/acp-model-profiles?${B.toString()}`)]);if(!M.ok){const F=await M.json().catch(()=>({}));r(F.error??"加载失败");return}if(!L.ok){const F=await L.json().catch(()=>({}));r(F.error??"加载失败");return}o(await M.json()),d(await L.json())}catch{r("网络错误")}finally{i(!1)}},[]);m.useEffect(()=>{i(!0),g(f??void 0)},[g,f]);const x=m.useCallback(async()=>{await g(p??void 0)},[g,p]),b=m.useCallback(async I=>{h(I),r(null);try{await O(`/api/provider-profiles/${I}`,{method:"DELETE",body:JSON.stringify({projectPath:p??void 0})}),await x()}catch(B){r(B instanceof Error?B.message:String(B))}finally{h(null)}},[O,p,x]),y=m.useCallback(async(I,B)=>{h(I),r(null);try{await O(`/api/provider-profiles/${I}`,{method:"PATCH",body:JSON.stringify({projectPath:p??void 0,...B})}),await x()}catch(M){r(M instanceof Error?M.message:String(M))}finally{h(null)}},[O,p,x]),S=m.useCallback(async I=>{h(`${I}:test`),r(null);try{await O(`/api/provider-profiles/${I}/test`,{method:"POST",body:JSON.stringify({projectPath:p??void 0})})}catch(B){r(B instanceof Error?B.message:String(B))}finally{h(null)}},[O,p]),P=m.useCallback(async(I,B)=>{h(I),r(null);try{await O(`/api/acp-model-profiles/${I}`,{method:"PATCH",body:JSON.stringify({projectPath:p??void 0,...B})}),await x()}catch(M){r(M instanceof Error?M.message:String(M))}finally{h(null)}},[O,p,x]),w=m.useCallback(async I=>{h(I),r(null);try{await O(`/api/acp-model-profiles/${I}`,{method:"DELETE",body:JSON.stringify({projectPath:p??void 0})}),await x()}catch(B){r(B instanceof Error?B.message:String(B))}finally{h(null)}},[O,p,x]),C=m.useMemo(()=>YS((a==null?void 0:a.providers)??[],a==null?void 0:a.visibleBuiltinClients),[a==null?void 0:a.providers,a==null?void 0:a.visibleBuiltinClients]),Q=m.useMemo(()=>C.filter(I=>I.builtin),[C]),T=m.useMemo(()=>C.filter(I=>!I.builtin),[C]),A=m.useMemo(()=>[...Q,...T],[Q,T]),$=(c==null?void 0:c.profiles)??[],{providerCreateSectionProps:N,acpModelCreateSectionProps:R}=GS({acpModelProfiles:$,mutationProjectPath:p,callApi:O,refresh:x,setBusyId:h,setError:r}),z=m.useCallback(I=>u===Es(I)||u===`${Es(I)}:test`,[u]);return{loading:n,error:s,data:a,busyId:u,displayCards:A,acpModelProfiles:$,isProfileBusy:z,providerCreateSectionProps:{...N,busy:u==="create"},acpModelCreateSectionProps:{...R,busy:u==="create-acp-model"},saveProfile:y,deleteProfile:b,testProfile:S,saveAcpModelProfile:P,deleteAcpModelProfile:w}}function KS(){const{loading:t,error:e,data:n,busyId:i,displayCards:s,acpModelProfiles:r,isProfileBusy:a,providerCreateSectionProps:o,acpModelCreateSectionProps:c,saveProfile:d,deleteProfile:u,testProfile:h,saveAcpModelProfile:f,deleteAcpModelProfile:p}=HS();return t?l.jsx("p",{className:"text-sm text-gray-400",children:"加载中..."}):n?l.jsxs("div",{className:"space-y-4",children:[e?l.jsx("p",{className:"rounded-lg bg-red-50 px-3 py-2 text-sm text-red-500",children:e}):null,l.jsx(WS,{}),l.jsx("div",{role:"group","aria-label":"Provider Profile List",className:"space-y-4",children:l.jsx("div",{className:"grid grid-cols-1 gap-3",children:s.map(O=>l.jsx(qS,{profile:O,acpModelProfiles:r,busy:a(O),onSave:g=>d(Es(O),g),onDelete:()=>u(Es(O)),onTest:()=>h(Es(O))},O.id))})}),l.jsx(FS,{...o}),l.jsx(ZS,{profiles:r,busyId:i,onSave:f,onDelete:p}),l.jsx(US,{...c}),l.jsx("p",{className:"text-xs leading-5 text-[#B59A88]",children:"secrets are stored in `.office-claw/provider-profiles.secrets.local.json` and `.office-claw/acp-model-profiles.secrets.local.json`."})]}):l.jsx("p",{className:"text-sm text-gray-400",children:"暂无数据"})}const JS={opus:"通用智能体 Opus",sonnet:"通用智能体 Sonnet","opus-45":"通用智能体 Opus 4.5",codex:"办公智能体 Codex",gpt52:"办公智能体 GPT-5.4",spark:"办公智能体 Spark",gemini:"协作智能体 Gemini",gemini25:"协作智能体 Gemini 2.5",dare:"通用智能体",antigravity:"通用智能体","antig-opus":"通用智能体 Opus",opencode:"通用智能体"};function Is(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:String(t)}function e3(t){return JS[t]??t}function t3(){const[t,e]=m.useState(null),[n,i]=m.useState(!1),[s,r]=m.useState(null),a=m.useCallback(async(d=!1)=>{i(!0),r(null);try{const h=await G(d?"/api/usage/daily?days=7&refresh=1":"/api/usage/daily?days=7");h.ok?e(await h.json()):r(`获取失败 (${h.status})`)}catch{r("无法连接到服务器")}finally{i(!1)}},[]);m.useEffect(()=>{a()},[a]);const o=(t==null?void 0:t.daily)??[],c=t==null?void 0:t.grandTotal;return l.jsxs("section",{className:"rounded-xl border border-gray-200 bg-white p-4 space-y-3",children:[l.jsxs("div",{className:"flex items-center justify-between",children:[l.jsx("h3",{className:"text-sm font-semibold text-gray-800",children:"近 7 日配额消耗"}),l.jsx("button",{type:"button",onClick:()=>a(!0),disabled:n,className:"px-3 py-1 text-xs rounded-md bg-gray-800 text-white hover:bg-gray-700 disabled:opacity-50",children:n?"加载中...":"刷新"})]}),s&&l.jsx("div",{className:"text-xs text-red-500 bg-red-50 rounded px-2 py-1",children:s}),!s&&o.length===0&&!n&&l.jsx("div",{className:"text-xs text-gray-400 py-2",children:"暂无消耗记录"}),o.map(d=>{const u=Object.entries(d.agents).sort((h,f)=>f[1].inputTokens+f[1].outputTokens-(h[1].inputTokens+h[1].outputTokens));return l.jsxs("div",{className:"border-t border-gray-100 pt-2 space-y-1",children:[l.jsxs("div",{className:"flex items-center justify-between text-xs",children:[l.jsx("span",{className:"font-semibold text-gray-600",children:d.date}),l.jsxs("span",{className:"text-gray-400",children:[d.total.invocations," 次调用"]})]}),u.map(([h,f])=>l.jsx(n3,{agentId:h,usage:f},h))]},d.date)}),c&&c.invocations>0&&l.jsxs("div",{className:"border-t-2 border-gray-200 pt-2 flex items-center justify-between text-xs text-gray-500",children:[l.jsxs("span",{className:"font-semibold text-gray-700",children:["7 日合计 ",c.invocations," 次"]}),l.jsxs("span",{className:"flex gap-3",children:[l.jsxs("span",{className:"font-semibold text-gray-700",children:["总 ",Is(c.inputTokens+c.outputTokens)]}),l.jsxs("span",{children:["入 ",Is(c.inputTokens)]}),l.jsxs("span",{children:["出 ",Is(c.outputTokens)]}),c.costUsd>0&&l.jsxs("span",{className:"text-amber-600 font-semibold",children:["$",c.costUsd.toFixed(2)]})]})]})]})}function n3({agentId:t,usage:e}){return l.jsxs("div",{className:"flex items-center justify-between gap-2 text-xs",children:[l.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[l.jsx("span",{className:"font-medium text-gray-700 truncate",children:e3(t)}),l.jsxs("span",{className:"text-gray-400",children:[e.participations,"次"]})]}),l.jsxs("div",{className:"flex items-center gap-3 text-gray-500 shrink-0",children:[l.jsxs("span",{title:"输入 tokens",children:["入 ",Is(e.inputTokens)]}),l.jsxs("span",{title:"输出 tokens",children:["出 ",Is(e.outputTokens)]})]})]})}const i3={anthropic:"Claude",openai:"Codex",google:"Gemini",dare:"Dare",opencode:"OpenCode"},s3={anthropic:"claude",openai:"codex",google:"gemini",dare:"dare",opencode:"opencode"};function r3(t){switch(t){case"anthropic":return"Claude (OAuth)";case"openai":return"Codex (OAuth)";case"google":return"Gemini (OAuth)";case"dare":return"Dare (client-auth)";case"opencode":return"OpenCode (client-auth)"}}function LO(t){return[...new Set(t.filter(Boolean))]}function XO(t){return t.mentionPatterns[0]??`@${t.id}`}function a3(t){switch(t.provider){case"anthropic":return"claude";case"openai":return"codex";case"google":return"gemini";case"dare":return"dare";case"opencode":return"opencode";default:return null}}function Lh(t,e){return LO(t.filter(n=>{var s,r;return(((s=n.accountRef)==null?void 0:s.trim())||((r=n.providerProfileId)==null?void 0:r.trim())||a3(n))===e}).map(XO))}function o3(t,e){var n;switch(t){case"claude":return(e==null?void 0:e.claude.usageItems)??[];case"codex":return(e==null?void 0:e.codex.usageItems)??[];case"gemini":return((n=e==null?void 0:e.gemini)==null?void 0:n.usageItems)??[];default:return[]}}function l3(t){switch(t){case"claude":case"codex":return"暂无数据,点击刷新获取";case"gemini":return"暂无数据(需 ClaudeBar 推送)";case"dare":return"Dare 不单独上报官方额度,实际额度取决于绑定账号";case"opencode":return"OpenCode 不单独上报官方额度,实际额度取决于绑定账号";default:return"暂无数据"}}function c3(t,e,n){var d,u;const s=(e.filter(h=>h.builtin).length>0?e.filter(h=>h.builtin):Object.entries(s3).map(([h,f])=>({id:f,displayName:r3(h),client:h,builtin:!0,authType:"oauth"}))).map(h=>({id:h.id,title:h.displayName||i3[h.client??"anthropic"],items:o3(h.id,t),memberTags:Lh(n,h.id),emptyText:l3(h.id)})),r=e.filter(h=>h.authType==="api_key"&&!h.builtin).map(h=>({id:h.id,title:h.displayName,items:[],memberTags:Lh(n,h.id),emptyText:"按账单周期计费,暂不展示官方用量"})),a=LO(n.filter(h=>h.provider==="antigravity").map(XO)),o=a.length>0||(((d=t==null?void 0:t.antigravity)==null?void 0:d.usageItems.length)??0)>0?[{id:"antigravity",title:"Antigravity Bridge",items:((u=t==null?void 0:t.antigravity)==null?void 0:u.usageItems)??[],memberTags:a,emptyText:"暂无数据(需 Bridge 上报)"}]:[],c=[{id:"builtin",title:"内置账号额度(按账号配置)",description:"固定内置账号包括 Claude / Codex / Gemini / Dare / OpenCode,每个账号下方反向显示绑定成员。",pools:s},{id:"api-key",title:"API Key 额度(按账号配置)",description:"独立 API Key 账号不预绑定 client;成员绑定后在对应账号下方反向显示。",tone:"success",pools:r}];return o.length>0&&c.push({id:"antigravity",title:"Antigravity Bridge(独立通道)",description:"Bridge 通道单独展示,不混入账号池。",pools:o}),c}function Di(t){return t.percentKind==="remaining"?100-t.usedPercent:t.usedPercent}function ZO(t){return t>=80?"text-rose-500":t>=50?"text-amber-500":"text-emerald-500"}function d3(t){return t>=80?"bg-rose-500":t>=50?"bg-amber-400":"bg-emerald-500"}function u3(t){return t.percentKind==="remaining"?`${t.usedPercent}% 剩余`:`${t.usedPercent}% 已用`}function h3(t,e){if(e<80)return null;switch(t){case"claude-session":case"claude-weekly-all":return"Opus 额度紧张,建议降级 Sonnet 或推迟重活";case"claude-weekly-sonnet":return"Sonnet 额度也紧张,考虑切到办公智能体";case"codex-main":return"编码额度紧张,建议切到 @spark";case"codex-spark":return"Spark 额度紧张,仅剩 @gpt52 可用";case"codex-review":return"Review 额度紧张,建议切到 @gpt52 review";case"gemini-pro":return"Gemini Pro 额度紧张,建议切到 Flash";case"gemini-flash":return"Gemini Flash 额度也紧张";default:return null}}function f3({percent:t,utilization:e}){const n=Math.max(0,Math.min(100,t)),i=d3(e);return l.jsx("div",{className:"w-full h-1.5 bg-gray-200 rounded-full overflow-hidden",children:l.jsx("div",{className:`h-full rounded-full ${i}`,style:{width:`${n}%`}})})}function p3({item:t}){const e=Di(t),n=ZO(e),i=h3(t.poolId,e);return l.jsxs("div",{className:"py-1.5",children:[l.jsxs("div",{className:"flex items-center justify-between gap-2",children:[l.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[l.jsx("span",{className:`text-sm ${n}`,"aria-hidden":"true",children:"●"}),l.jsx("span",{className:"text-sm text-gray-700 truncate",children:t.label})]}),l.jsx("span",{className:`text-sm font-semibold whitespace-nowrap ${e>=80?"text-rose-600":"text-gray-900"}`,children:u3(t)})]}),l.jsx("div",{className:"mt-1 ml-5",children:l.jsx(f3,{percent:t.percentKind==="remaining"?t.usedPercent:100-t.usedPercent,utilization:e})}),(t.resetsText||t.resetsAt)&&l.jsx("div",{className:"mt-0.5 ml-5 text-xs text-gray-400",children:t.resetsText??`resets ${new Date(t.resetsAt).toLocaleString()}`}),i&&l.jsx("div",{className:"mt-0.5 ml-5 text-xs text-amber-600",children:i})]})}const O3=3e4,m3=1800*1e3;function g3(t){var n,i;if(!t)return 0;let e=0;for(const s of t.codex.usageItems)e=Math.max(e,Di(s));for(const s of t.claude.usageItems??[])e=Math.max(e,Di(s));for(const s of((n=t.gemini)==null?void 0:n.usageItems)??[])e=Math.max(e,Di(s));for(const s of((i=t.antigravity)==null?void 0:i.usageItems)??[])e=Math.max(e,Di(s));return e}function x3(t,e){var i,s,r,a;if(e||(i=t==null?void 0:t.codex)!=null&&i.error||(s=t==null?void 0:t.claude)!=null&&s.error||(r=t==null?void 0:t.gemini)!=null&&r.error||(a=t==null?void 0:t.antigravity)!=null&&a.error)return"high";const n=g3(t);return n>=95?"high":n>=80?"warn":"ok"}function b3({currentRisk:t,previousRisk:e,lastAlertAt:n,nowMs:i,windowMs:s=m3}){return t!=="high"?!1:e!=="high"?!0:i-n>=s}function y3(){var P,w,C,Q;const{agents:t}=Zn(),[e,n]=m.useState(null),[i,s]=m.useState(null),[r,a]=m.useState([]),[o,c]=m.useState(null),[d,u]=m.useState(!1),[h,f]=m.useState(null),p=m.useRef("ok"),O=m.useRef(0),g=x3(e,h),x=m.useCallback(async()=>{try{const T=await G("/api/quota");if(!T.ok){s(`配额数据加载失败 (${T.status}),显示的可能是过期数据`);return}n(await T.json()),s(null)}catch{s("配额数据加载失败,显示的可能是过期数据")}},[]);m.useEffect(()=>{x();const T=setInterval(x,O3);return()=>clearInterval(T)},[x]),m.useEffect(()=>{let T=!1;return c(null),G("/api/provider-profiles").then(async A=>A.ok?await A.json():(T||c(`账号配置加载失败 (${A.status}),额度池成员归属可能不完整`),null)).then(A=>{!T&&A&&(a(A.providers??[]),c(null))}).catch(()=>{T||c("账号配置加载失败,额度池成员归属可能不完整")}),()=>{T=!0}},[]),m.useEffect(()=>{const T=p.current,A=Date.now(),$=b3({currentRisk:g,previousRisk:T,lastAlertAt:O.current,nowMs:A});p.current=g,$&&(typeof window>"u"||!("Notification"in window)||!("serviceWorker"in navigator)||Notification.permission!=="granted"||navigator.serviceWorker.getRegistration().then(N=>{if(N)return O.current=A,N.showNotification("配额高风险预警",{body:"有额度池进入高风险,请检查配额看板。",tag:"quota-alert"})}).catch(()=>{}))},[g]);const b=m.useCallback(async()=>{u(!0),f(null);try{const T=await G("/api/quota/refresh/official",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({interactive:!0})});if(!T.ok){const A=await T.json().catch(()=>({}));f(A.error??"获取官方额度失败")}await x()}catch{f("获取官方额度失败,请稍后重试")}finally{u(!1)}},[x]),y=c3(e,r,t),S=[...new Set([i,o,h,(P=e==null?void 0:e.codex)==null?void 0:P.error,(w=e==null?void 0:e.claude)==null?void 0:w.error,(C=e==null?void 0:e.gemini)==null?void 0:C.error,(Q=e==null?void 0:e.antigravity)==null?void 0:Q.error].filter(Boolean))];return l.jsxs("section",{className:"space-y-3 rounded-[20px] border border-[#F1E7DF] bg-[#FFFDFC] p-[18px]",children:[l.jsxs("div",{className:"flex items-center justify-between gap-3",children:[l.jsx("h3",{className:"text-[17px] font-bold text-[#2D2118]",children:"配额看板"}),l.jsxs("div",{className:"flex items-center gap-3",children:[e!=null&&e.fetchedAt?l.jsx("span",{className:"text-xs text-[#B59A88]",children:new Date(e.fetchedAt).toLocaleTimeString()}):null,l.jsx("button",{type:"button",onClick:b,disabled:d,className:"rounded-full bg-[#2D3947] px-3 py-1.5 text-xs font-semibold text-white transition hover:bg-[#24303D] disabled:opacity-50",children:d?"刷新中...":"刷新全部"})]})]}),S.length>0&&l.jsx("div",{className:"rounded-[16px] border border-[#F5C7C7] bg-[#FFF4F4] px-3 py-2 text-xs text-[#C74E4E]",children:S.map(T=>l.jsx("div",{children:T},T))}),y.map(T=>l.jsx(v3,{group:T},T.id)),l.jsxs("section",{className:"rounded-[16px] border border-[#E8C9AF] bg-[#FFF4EC] px-4 py-3",children:[l.jsx("p",{className:"text-[13px] font-bold text-[#C8946B]",children:"F127 变化说明"}),l.jsxs("p",{className:"mt-1 text-[13px] leading-6 text-[#8A776B]",children:["1. 从预算看板改名为配额看板",l.jsx("br",{}),"2. 按账号配置维度(非 Provider)分组",l.jsx("br",{}),"3. 每个额度池反向显示关联成员标签",l.jsx("br",{}),"4. 风险阈值提示保留不变"]})]})]})}function v3({group:t}){return l.jsxs("section",{className:`rounded-[20px] border px-4 py-4 ${t.tone==="success"?"border-[#CFE5D5] bg-[#F2FAF4]":"border-[#F1E7DF] bg-[#FFFDFC]"}`,children:[l.jsx("h4",{className:"text-[17px] font-bold text-[#2D2118]",children:t.title}),l.jsx("p",{className:`mt-1 text-[13px] leading-6 ${t.tone==="success"?"text-[#6C7A6D]":"text-[#8A776B]"}`,children:t.description}),l.jsx("div",{className:"mt-3 space-y-3",children:t.pools.length>0?t.pools.map(e=>l.jsx(S3,{title:e.title,items:e.items,memberTags:e.memberTags,emptyText:e.emptyText},e.id)):l.jsx("div",{className:"rounded-[14px] bg-white/80 px-4 py-3 text-xs text-[#8A776B]",children:"暂无 API Key 账号"})})]})}function S3({title:t,items:e,memberTags:n,emptyText:i}){const s=e.length>0?Math.max(...e.map(Di)):-1,r=s>=0?ZO(s):"text-gray-300";return l.jsxs("div",{className:"rounded-[16px] border border-[#F1E7DF] bg-[#FFFCF8] px-4 py-3",children:[l.jsxs("div",{className:"mb-1 flex flex-wrap items-center gap-2",children:[l.jsx("span",{className:`text-xs ${r}`,"aria-hidden":"true",children:"●"}),l.jsx("span",{className:"text-xs font-semibold tracking-wide text-[#6A5A50]",children:t}),n.map(a=>l.jsx("span",{className:"rounded-full bg-[#F3EDFA] px-2 py-0.5 text-[11px] font-medium text-[#8B68B7]",children:a},a))]}),e.length>0?e.map(a=>l.jsx(p3,{item:a},a.label)):i&&l.jsx("div",{className:"ml-5 text-xs text-[#B59A88]",children:i})]})}function w3({title:t,children:e}){return l.jsxs("section",{className:"rounded-lg border border-gray-200 bg-gray-50/70 p-3",children:[l.jsx("h3",{className:"text-xs font-semibold text-gray-700 mb-2",children:t}),e]})}function k3(t){const e={};return t.reviewAvoidOpus&&(e.review={avoidAgentIds:["opus"],reason:"budget"}),t.architecturePreferOpus&&(e.architecture={preferAgentIds:["opus"]}),Object.keys(e).length>0?{v:1,scopes:e}:null}function Q3(){const t=E(x=>x.currentThreadId),[e,n]=m.useState(null),[i,s]=m.useState(null),[r,a]=m.useState(!1),[o,c]=m.useState(null),[d,u]=m.useState(!1),[h,f]=m.useState(!1),p=m.useMemo(()=>{const x=e==null?void 0:e.routingPolicy;return!x||x.v!==1?null:x},[e]),O=m.useCallback(async()=>{var x,b,y,S;s(null);try{const P=await G(`/api/threads/${encodeURIComponent(t)}`);if(!P.ok){s("线程信息加载失败");return}const w=await P.json();n(w);const C=w.routingPolicy,Q=((b=(x=C==null?void 0:C.scopes)==null?void 0:x.review)==null?void 0:b.avoidAgentIds)??[],T=((S=(y=C==null?void 0:C.scopes)==null?void 0:y.architecture)==null?void 0:S.preferAgentIds)??[];u(Q.includes("opus")),f(T.includes("opus"))}catch{s("网络错误")}},[t]);m.useEffect(()=>{O()},[O]);const g=m.useCallback(async()=>{a(!0),s(null);try{const x=k3({reviewAvoidOpus:d,architecturePreferOpus:h}),b=await G(`/api/threads/${encodeURIComponent(t)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({routingPolicy:x})});if(!b.ok){s("保存失败");return}const y=await b.json();n(y),c(Date.now())}catch{s("网络错误")}finally{a(!1)}},[t,d,h]);return l.jsxs("div",{className:"space-y-4",children:[l.jsx(y3,{}),l.jsxs(w3,{title:"路由策略(约束子模块)",children:[l.jsx("p",{className:"text-[11px] text-gray-500 mb-3",children:"默认是自治路由;这里只放你明确要求的硬约束(比如预算)。显式 @ 指名永远优先。"}),i&&l.jsx("p",{className:"text-sm text-red-500 bg-red-50 rounded-lg px-3 py-2 mb-3",children:i}),l.jsxs("div",{className:"space-y-3",children:[l.jsxs("div",{className:"flex items-start justify-between gap-3",children:[l.jsxs("div",{children:[l.jsx("div",{className:"text-sm font-medium text-gray-800",children:"Review scope"}),l.jsx("div",{className:"text-[11px] text-gray-500",children:"当消息明显是 review/合入/PR 场景时生效"})]}),l.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[l.jsx("input",{type:"checkbox",checked:d,onChange:x=>u(x.target.checked)}),"避开 @opus(budget)"]})]}),l.jsxs("div",{className:"flex items-start justify-between gap-3",children:[l.jsxs("div",{children:[l.jsx("div",{className:"text-sm font-medium text-gray-800",children:"Architecture scope"}),l.jsx("div",{className:"text-[11px] text-gray-500",children:"当消息明显是 架构/设计/tradeoff 场景时生效"})]}),l.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[l.jsx("input",{type:"checkbox",checked:h,onChange:x=>f(x.target.checked)}),"优先 @opus"]})]}),l.jsxs("div",{className:"flex items-center justify-between gap-3 pt-2",children:[l.jsxs("div",{className:"text-[11px] text-gray-500",children:[p?"当前已启用策略":"当前未启用策略",o?` · 已保存 ${new Date(o).toLocaleTimeString()}`:""]}),l.jsx("button",{onClick:g,disabled:r,className:"px-3 py-2 text-sm rounded-lg bg-blue-600 text-white disabled:opacity-60",children:r?"保存中...":"保存"})]})]})]}),l.jsx(t3,{})]})}function C3(t){const e="=".repeat((4-t.length%4)%4),n=(t+e).replace(/-/g,"+").replace(/_/g,"/"),i=atob(n),s=new Uint8Array(i.length);for(let r=0;r<i.length;r++)s[r]=i.charCodeAt(r);return s}const ul="开发模式下若无法订阅系统通知,请用 ENABLE_PWA_IN_DEV=1 启动,或改用 build+start 进行推送验证。";function hl(){return!1}function P3(){const[t,e]=m.useState(!1),[n,i]=m.useState("unsupported"),[s,r]=m.useState(!1),[a,o]=m.useState(!1),[c,d]=m.useState(null),[u,h]=m.useState(null),[f,p]=m.useState(null),O=m.useRef(null),g=m.useCallback(async()=>{try{const P=await G("/api/push/status");if(!P.ok)return d(null),null;const w=await P.json();return d(w),w}catch{return d(null),null}},[]);m.useEffect(()=>{(async()=>{if(!(typeof window>"u")){if(!("serviceWorker"in navigator)||!("PushManager"in window)){i("unsupported"),h("当前浏览器不支持系统推送通知。");return}e(!0),i(Notification.permission);try{await g();const w=await navigator.serviceWorker.getRegistration();if(!w){r(!1),h(hl()?ul:"Service Worker 未注册,系统通知暂不可用。请刷新页面后重试。");return}const C=await w.pushManager.getSubscription();r(C!==null),h(null)}catch{h("Service Worker 尚未就绪,系统通知暂不可用。请稍后重试。")}}})()},[g]);const x=m.useCallback(async()=>{if(O.current)return O.current;try{const P=await G("/api/push/vapid-public-key");if(!P.ok)return null;const w=await P.json();return!w.enabled||!w.key?null:(O.current=w.key,w.key)}catch{return null}},[]),b=m.useCallback(async()=>{o(!0),p(null);try{const P=await Notification.requestPermission();if(i(P),P!=="granted"){p("通知权限未授权,无法开启系统通知。");return}const w=await x();if(!w){console.warn("[push] VAPID key not available — push disabled on server"),p("推送服务未配置(VAPID key 不可用)。");return}const C=await navigator.serviceWorker.getRegistration();if(!C)throw new Error(hl()?ul:"Service Worker 未注册,暂无法订阅系统通知。");const Q=await C.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:C3(w).buffer}),T=Q.toJSON(),A=await G("/api/push/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({subscription:{endpoint:T.endpoint,keys:T.keys},userAgent:navigator.userAgent})});if(!A.ok){let $=null;try{const N=await A.json();typeof N.error=="string"&&N.error.trim().length>0&&($=N.error)}catch{}throw await Q.unsubscribe().catch(()=>{}),new Error($??`Push subscribe failed (HTTP ${A.status})`)}r(!0),h(null),await g()}catch(P){console.error("[push] Subscribe failed:",P);const w=P instanceof Error?P.message:"开启推送失败,请稍后重试。";p(w),r(!1)}finally{o(!1)}},[g,x]),y=m.useCallback(async()=>{o(!0),p(null);try{const P=await navigator.serviceWorker.getRegistration();if(!P){r(!1),h(hl()?ul:"Service Worker 未注册,当前设备没有可取消的系统通知订阅。");return}const w=await P.pushManager.getSubscription();if(w){const C=w.endpoint;await w.unsubscribe(),await G("/api/push/subscribe",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({endpoint:C})})}r(!1),await g()}catch(P){console.error("[push] Unsubscribe failed:",P);const w=P instanceof Error?P.message:"关闭推送失败,请稍后重试。";p(w)}finally{o(!1)}},[g]),S=m.useCallback(async()=>{p(null);const P=new AbortController,w=setTimeout(()=>P.abort(),1e4);try{const C=await G("/api/push/test",{method:"POST",signal:P.signal}),Q=await C.json().catch(()=>({})),T=typeof Q.message=="string"&&Q.message.trim().length>0?Q.message:typeof Q.error=="string"&&Q.error.trim().length>0?Q.error:null;if(!C.ok){const A=T??`请求失败(HTTP ${C.status})`;return p(A),await g(),{ok:!1,message:A,deliverySummary:Q.deliverySummary??null}}return await g(),{ok:!0,message:T??"测试推送已发送",deliverySummary:Q.deliverySummary??null}}catch(C){return C instanceof DOMException&&C.name==="AbortError"?(p("请求超时,请检查 API 连接或推送配置"),await g(),{ok:!1,message:"请求超时,请检查 API 连接或推送配置",deliverySummary:null}):(console.error("[push] Test push failed:",C),p("网络异常,测试通知发送失败"),await g(),{ok:!1,message:"网络异常,测试通知发送失败",deliverySummary:null})}finally{clearTimeout(w)}},[g]);return{isSupported:t,permission:n,isSubscribed:s,isLoading:a,environmentHint:u,lastError:f,status:c,subscribe:b,unsubscribe:y,sendTest:S}}const T3={push_vapid_key_missing:"服务端未配置 VAPID 公钥,请先补齐推送密钥环境变量。",push_not_configured:"Push 服务未启用,请确认后端已加载推送服务配置。",push_subscription_missing:"当前设备未订阅,点击“开启”并允许系统通知。",push_last_delivery_failed:"最近一次系统通知投递失败,请查看网络/代理后重试。"};function $3(t){return t==="granted"?"已授权":t==="denied"?"已拒绝":t==="default"?"未选择":"不支持"}function j3(t,e){return t==="ok"?"正常":t==="error"?`失败${e?` (${e})`:""}`:"未测试"}function A3(){const{isSupported:t,permission:e,isSubscribed:n,isLoading:i,environmentHint:s,lastError:r,status:a,subscribe:o,unsubscribe:c,sendTest:d}=P3(),u=Ut(S=>S.addToast),[h,f]=m.useState(!1),[p,O]=m.useState(null),[g,x]=m.useState(null),b=async()=>{if(!h){f(!0);try{const S=await d();O(S.deliverySummary??null),x(S.message);const P=S.deliverySummary?`(成功 ${S.deliverySummary.delivered} / 失败 ${S.deliverySummary.failed} / 清理 ${S.deliverySummary.removed})`:"";u({type:S.ok?"success":"error",title:S.ok?"系统通知已请求发送":"系统通知发送失败",message:`${S.message}${P}`,duration:S.ok?3e3:5e3})}finally{f(!1)}}};if(!t)return l.jsxs("div",{className:"space-y-3",children:[l.jsx("h3",{className:"text-base font-semibold text-gray-800",children:"推送通知"}),l.jsxs("div",{className:"rounded-xl border border-amber-200 bg-amber-50 px-4 py-4 space-y-2",children:[l.jsx("p",{className:"text-sm text-amber-900 font-medium",children:s??"当前浏览器不支持推送通知。"}),l.jsx("p",{className:"text-xs text-amber-700",children:"iPhone 用户请将 OfficeClaw 添加到主屏幕后再开启推送(Safari 普通标签页不支持 Web Push)。"})]})]});const y=((a==null?void 0:a.errorHints)??[]).map(S=>T3[S]??null).filter(S=>!!S);return l.jsxs("div",{className:"space-y-5",children:[l.jsxs("div",{className:"space-y-1",children:[l.jsx("h3",{className:"text-base font-semibold text-gray-800",children:"推送通知"}),l.jsx("p",{className:"text-sm text-gray-600",children:"开启后,智能体回复、权限请求等会推送到系统通知栏(即使不在 OfficeClaw 页面)。"})]}),l.jsxs("div",{className:"rounded-xl border border-gray-200 bg-white p-4 space-y-3",children:[l.jsx("div",{className:"text-sm font-medium text-gray-800",children:"通知能力矩阵"}),l.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-2 text-xs",children:[l.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-3 py-2",children:[l.jsx("div",{className:"text-gray-500",children:"浏览器支持"}),l.jsx("div",{className:"font-semibold text-emerald-700",children:"已支持"})]}),l.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-3 py-2",children:[l.jsx("div",{className:"text-gray-500",children:"权限状态"}),l.jsx("div",{className:`font-semibold ${e==="granted"?"text-emerald-700":e==="denied"?"text-rose-700":"text-amber-700"}`,children:$3(e)})]}),l.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-3 py-2",children:[l.jsx("div",{className:"text-gray-500",children:"推送服务"}),l.jsx("div",{className:`font-semibold ${a!=null&&a.capability.enabled?"text-emerald-700":"text-amber-700"}`,children:a!=null&&a.capability.enabled?"已启用":"未启用"})]}),l.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-3 py-2",children:[l.jsx("div",{className:"text-gray-500",children:"设备订阅"}),l.jsxs("div",{className:`font-semibold ${a!=null&&a.subscription.count?"text-emerald-700":"text-amber-700"}`,children:[(a==null?void 0:a.subscription.count)??0," 台"]})]}),l.jsxs("div",{className:"rounded-lg border border-gray-200 bg-gray-50 px-3 py-2",children:[l.jsx("div",{className:"text-gray-500",children:"最近投递"}),l.jsx("div",{className:`font-semibold ${(a==null?void 0:a.delivery.lastResult)==="ok"?"text-emerald-700":(a==null?void 0:a.delivery.lastResult)==="error"?"text-rose-700":"text-gray-700"}`,children:j3((a==null?void 0:a.delivery.lastResult)??"not_attempted",(a==null?void 0:a.delivery.lastError)??null)})]})]}),a&&l.jsxs("p",{className:"text-xs text-gray-500",children:["服务状态:",a.capability.enabled?"已启用":"未启用"," · ","VAPID:",a.capability.vapidPublicKeyConfigured?"已配置":"未配置"," · ","PushService:",a.capability.pushServiceConfigured?"可用":"不可用"," · ","设备订阅:",a.subscription.count," 台"," · ","最近投递:",a.delivery.lastResult==="ok"?"成功":a.delivery.lastResult==="error"?"失败":"未测试"]})]}),y.length>0&&l.jsxs("div",{className:"rounded-xl border border-amber-200 bg-amber-50 px-4 py-3",children:[l.jsx("div",{className:"text-sm font-medium text-amber-900",children:"修复建议"}),l.jsx("ul",{className:"mt-2 space-y-1 text-xs text-amber-800 list-disc pl-4",children:y.map(S=>l.jsx("li",{children:S},S))})]}),(a==null?void 0:a.subscription.targets)&&a.subscription.targets.length>0&&l.jsxs("div",{className:"rounded-xl border border-gray-200 bg-white px-4 py-3",children:[l.jsx("div",{className:"text-sm font-medium text-gray-800",children:"已绑定设备"}),l.jsx("ul",{className:"mt-2 space-y-1 text-xs text-gray-600",children:a.subscription.targets.slice(0,3).map(S=>l.jsxs("li",{className:"flex items-center justify-between gap-2",children:[l.jsx("span",{children:S.uaFamily.toUpperCase()}),l.jsx("span",{className:"truncate",children:S.endpoint})]},`${S.endpoint}-${S.createdAt}`))})]}),p&&l.jsxs("div",{className:"rounded-xl border border-slate-200 bg-slate-50 px-4 py-3 text-xs text-slate-700 space-y-1",children:[l.jsx("div",{className:"text-sm font-medium text-slate-900",children:"最近测试"}),g&&l.jsx("p",{children:g}),l.jsxs("p",{children:["尝试 ",p.attempted," · 成功 ",p.delivered," · 失败 ",p.failed," · 清理"," ",p.removed]})]}),s&&l.jsx("div",{className:"bg-amber-50 border border-amber-200 rounded-lg px-4 py-3",children:l.jsx("p",{className:"text-xs text-amber-700",children:s})}),r&&l.jsx("div",{className:"bg-rose-50 border border-rose-200 rounded-lg px-4 py-3",children:l.jsx("p",{className:"text-xs text-rose-700",children:r})}),l.jsxs("div",{className:"flex items-center justify-between rounded-xl border border-gray-200 bg-gray-50 px-4 py-3",children:[l.jsxs("div",{children:[l.jsx("p",{className:"text-sm font-medium text-gray-700",children:n?"已开启推送":"推送已关闭"}),l.jsx("p",{className:"text-xs text-gray-500",children:n?"智能体消息会推送到通知栏":"点击开启接收智能体推送"})]}),l.jsx("button",{onClick:n?c:o,disabled:i,className:`px-4 py-1.5 text-sm rounded-lg font-medium transition-colors ${n?"bg-gray-200 text-gray-700 hover:bg-gray-300":"bg-blue-600 text-white hover:bg-blue-700"} disabled:opacity-50`,children:i?"处理中...":n?"关闭":"开启"})]}),n&&l.jsx("button",{type:"button",onClick:()=>{b()},disabled:h||i,className:"text-xs text-blue-600 hover:text-blue-800 underline",children:h?"发送中...":"发送测试通知"}),l.jsx("p",{className:"text-[11px] text-gray-500",children:"iPhone 路线(Phase 3):PWA Web Push。请先“添加到主屏幕”再开启通知。"})]})}const Xh=Object.entries(e2).filter(([t])=>!t.startsWith("_comment"));function fl({title:t,children:e}){return l.jsxs("section",{className:"rounded-lg border border-gray-200 bg-gray-50/70 p-3",children:[l.jsx("h3",{className:"mb-2 text-xs font-semibold text-gray-700",children:t}),e]})}function N3({onAdd:t}){const[e,n]=m.useState(""),[i,s]=m.useState(""),r=m.useRef(null),a=()=>{!e.trim()||!i.trim()||(t(e.trim(),i.trim()),n(""),s(""))},o=d=>{d.key==="Enter"&&!d.nativeEvent.isComposing&&a()},c=d=>{var u;if(d.key==="Enter"&&!d.nativeEvent.isComposing&&e.trim()&&!i.trim()){(u=r.current)==null||u.focus();return}o(d)};return l.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[l.jsx("input",{type:"text",value:e,onChange:d=>n(d.target.value),placeholder:"识别词",className:"ui-input flex-1 rounded px-2 py-1.5 text-xs",onKeyDown:c}),l.jsx("span",{className:"text-xs text-gray-400",children:"→"}),l.jsx("input",{ref:r,type:"text",value:i,onChange:d=>s(d.target.value),placeholder:"纠正词",className:"ui-input flex-1 rounded px-2 py-1.5 text-xs",onKeyDown:o}),l.jsx("button",{onClick:a,disabled:!e.trim()||!i.trim(),className:"rounded bg-blue-500 px-2.5 py-1.5 text-xs text-white transition-colors hover:bg-blue-600 disabled:cursor-not-allowed disabled:opacity-40",children:"添加"})]})}function R3({term:t,index:e,onUpdate:n,onRemove:i}){const[s,r]=m.useState(!1),[a,o]=m.useState(t.from),[c,d]=m.useState(t.to),u=()=>{o(t.from),d(t.to),r(!0)},h=()=>{!a.trim()||!c.trim()||(n(e,a.trim(),c.trim()),r(!1))},f=()=>r(!1),p=O=>{O.nativeEvent.isComposing||(O.key==="Enter"&&h(),O.key==="Escape"&&f())};return s?l.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[l.jsx("input",{type:"text",value:a,onChange:O=>o(O.target.value),onKeyDown:p,className:"ui-input flex-1 rounded px-1.5 py-0.5"}),l.jsx("span",{className:"text-gray-400",children:"→"}),l.jsx("input",{type:"text",value:c,onChange:O=>d(O.target.value),onKeyDown:p,className:"ui-input flex-1 rounded px-1.5 py-0.5"}),l.jsx("button",{onClick:h,disabled:!a.trim()||!c.trim(),className:"text-blue-500 hover:text-blue-700 disabled:opacity-40",title:"保存",children:"✓"}),l.jsx("button",{onClick:f,className:"text-gray-400 hover:text-gray-600",title:"取消",children:"✕"})]}):l.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[l.jsx("code",{className:"rounded bg-blue-50 px-1.5 py-0.5 text-blue-700",children:t.from}),l.jsx("span",{className:"text-gray-400",children:"→"}),l.jsx("code",{className:"rounded bg-green-50 px-1.5 py-0.5 text-green-700",children:t.to}),l.jsxs("div",{className:"ml-auto flex items-center gap-1",children:[l.jsx("button",{onClick:u,className:"text-gray-400 transition-colors hover:text-blue-500",title:"编辑",children:"✎"}),l.jsx("button",{onClick:()=>i(e),className:"text-gray-400 transition-colors hover:text-red-500",title:"删除",children:"×"})]})]})}function _3(){const{settings:t,addTerm:e,updateTerm:n,removeTerm:i,setLanguage:s,resetAll:r}=Z2(),[a,o]=m.useState(!1);return l.jsxs(l.Fragment,{children:[l.jsxs(fl,{title:"自定义术语纠正",children:[l.jsx("p",{className:"mb-2 text-[11px] text-gray-500",children:"添加你的识别纠正规则。自定义规则优先于内置词典。"}),t.customTerms.length>0?l.jsx("div",{className:"mb-1 space-y-1.5",children:t.customTerms.map((c,d)=>l.jsx(R3,{term:c,index:d,onUpdate:n,onRemove:i},`${c.from}-${d}`))}):l.jsx("p",{className:"text-[11px] italic text-gray-400",children:"暂无自定义规则"}),l.jsx(N3,{onAdd:e})]}),l.jsxs(fl,{title:"内置词典",children:[l.jsx("button",{onClick:()=>o(!a),className:"text-[11px] text-blue-500 transition-colors hover:text-blue-700",children:a?"收起":`查看全部 ${Xh.length} 条内置规则`}),a&&l.jsx("div",{className:"mt-2 max-h-48 space-y-1 overflow-y-auto",children:Xh.map(([c,d])=>l.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-500",children:[l.jsx("code",{className:"rounded bg-gray-100 px-1.5 py-0.5",children:c}),l.jsx("span",{children:"→"}),l.jsx("code",{className:"rounded bg-gray-100 px-1.5 py-0.5",children:d})]},c))})]}),l.jsx(fl,{title:"语言设置",children:l.jsxs("div",{className:"flex items-center gap-3",children:[l.jsx("label",{className:"text-xs text-gray-600",children:"转写语言"}),l.jsxs("select",{value:t.language,onChange:c=>s(c.target.value),className:"rounded border border-gray-300 px-2 py-1.5 text-xs focus:border-blue-400 focus:outline-none",children:[l.jsx("option",{value:"zh",children:"中文"}),l.jsx("option",{value:"en",children:"English"}),l.jsx("option",{value:"",children:"自动检测"})]})]})}),l.jsx("div",{className:"flex justify-end",children:l.jsx("button",{onClick:r,className:"text-xs text-gray-400 transition-colors hover:text-red-500",children:"重置所有设置"})})]})}function Zh(){const t=E(H=>H.hubState),e=E(H=>H.closeHub),{agents:n,getAgentById:i,refresh:s}=Zn(),{clientLabels:r,uiHints:a}=NO(),o=new Set(a.hiddenHubTabs),c=m.useMemo(()=>Ad.map(H=>({...H,tabs:H.tabs.filter(V=>!o.has(V.id))})).filter(H=>H.tabs.length>0),[a.hiddenHubTabs.join()]),d=(t==null?void 0:t.open)??!1,u=t==null?void 0:t.tab,h=u?Lv(u,i):void 0,[f,p]=m.useState("agents"),[O,g]=m.useState("agents"),[x,b]=m.useState(null),[y,S]=m.useState(null),[P,w]=m.useState(!1),[C,Q]=m.useState(!1),[T,A]=m.useState(!1),[$,N]=m.useState(null),[R,z]=m.useState(null),[I,B]=m.useState(null),[M,L]=m.useState(""),F=d?`open:${h??""}`:"closed";if(F!==M&&(L(F),d))if(!h)g("agents"),p("agents");else{const H=Iv(h);g((H==null?void 0:H.id)??"agents"),p(H?h:"agents")}m.useEffect(()=>{if(!d)return;Ev.some(V=>V.id===f)||p("agents")},[d,f]);const de=m.useCallback(H=>{g(V=>V===H?null:H)},[]),ce=m.useCallback(H=>{p(H)},[]),ae=m.useCallback(()=>{N(null),z(null),Q(!0)},[]),J=m.useCallback(H=>{z(null),N(H),Q(!0)},[]),X=m.useCallback(()=>{A(!0)},[]),ne=m.useCallback(()=>{Q(!1),N(null),z(null)},[]),ue=m.useCallback(()=>{A(!1)},[]);m.useEffect(()=>{d&&f==="capabilities"&&w(!0)},[d,f]);const je=m.useCallback(async()=>{S(null);try{const H=await G("/api/config");if(H.ok){const V=await H.json();b(V.config)}else S("配置加载失败")}catch{S("网络错误")}},[]),ve=m.useCallback(async()=>{await Promise.all([je(),s()])},[je,s]),$e=m.useCallback(async H=>{var V;B(H.id),S(null);try{const Y=await G(`/api/agents/${H.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({available:((V=H.roster)==null?void 0:V.available)===!1})});if(!Y.ok){const le=await Y.json().catch(()=>({}));S(le.error??`成员状态切换失败 (${Y.status})`);return}await Promise.all([je(),s()])}catch{S("成员状态切换失败")}finally{B(null)}},[je,s]);m.useEffect(()=>{d&&je()},[d,je]);const Qe=m.useRef(null);return m.useEffect(()=>{if(!d)return;const H=Qe.current;H&&H.focus()},[d]),m.useEffect(()=>{if(!d)return;const H=V=>{V.key==="Escape"&&e()};return window.addEventListener("keydown",H),()=>window.removeEventListener("keydown",H)},[d,e]),d?l.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-[var(--overlay-backdrop-medium)]",children:l.jsxs("div",{ref:Qe,tabIndex:-1,className:"rounded-2xl shadow-xl max-w-4xl w-full mx-4 h-[85vh] flex flex-col outline-none",style:{background:"var(--surface-app)"},children:[l.jsxs("div",{className:"flex items-center justify-between px-5 pt-4 pb-3",style:{flexShrink:0},children:[l.jsx("h2",{className:"text-base font-bold text-[var(--text-primary)]",children:"OfficeClaw Hub"}),l.jsx("button",{onClick:e,className:"text-lg text-[var(--text-label-secondary)] transition-colors hover:text-[var(--text-primary)]",title:"关闭","aria-label":"关闭",children:"×"})]}),l.jsxs("div",{className:"flex-1 overflow-y-auto px-5 pb-4 space-y-3",style:{minHeight:0},children:[y&&l.jsx("p",{className:"rounded-lg bg-[var(--state-error-surface)] px-3 py-2 text-sm text-[var(--state-error-text)]",children:y}),l.jsx("div",{className:"space-y-2",children:c.map(H=>l.jsx(Xv,{group:H,expanded:O===H.id,activeTab:f,onToggle:()=>de(H.id),onSelectTab:ce},H.id))}),l.jsxs("div",{className:"rounded-xl bg-[var(--surface-panel)] p-4 shadow-[var(--card-shadow)]",children:[(f==="capabilities"||P)&&l.jsx("div",{className:f==="capabilities"?"":"hidden",children:l.jsx(Y2,{hideSkillMountStatus:a.hideSkillMountStatus})}),f==="agents"&&(x?l.jsx(Uv,{config:x,members:n,clientLabels:Object.keys(r).length>0?r:void 0,onAddMember:ae,onEditCoCreator:X,onEditMember:J,onToggleAvailability:$e,togglingAgentId:I}):y?null:l.jsx("p",{className:"text-sm text-[var(--text-label-secondary)]",children:"加载中..."})),f==="system"&&(x?l.jsx(Yv,{config:x,hiddenHubTabs:a.hiddenHubTabs}):y?null:l.jsx("p",{className:"text-sm text-[var(--text-label-secondary)]",children:"加载中..."})),f==="commands"&&l.jsx(SS,{}),f==="routing"&&l.jsx(Q3,{}),f==="env"&&l.jsx(MS,{hiddenCategories:a.hiddenEnvCategories,hideAgentGuides:a.hideAgentGuides}),f==="provider-profiles"&&l.jsx(KS,{}),f==="voice"&&l.jsx(_3,{}),f==="notify"&&l.jsx(A3,{}),f==="governance"&&l.jsx(IS,{}),f==="rescue"&&l.jsx(mS,{}),f==="skills"&&l.jsx(G2,{})]})]}),l.jsx(pS,{open:C,member:$,configAgent:$?x==null?void 0:x.agents[$.id]:void 0,draft:R,onClose:ne,onSaved:ve}),l.jsx(gS,{open:T,coCreator:x==null?void 0:x.coCreator,onClose:ue,onSaved:ve})]})}):null}function M3(){const t=E(e=>e.openHub);return l.jsx("button",{type:"button",onClick:()=>t(),className:"ui-icon-button","aria-label":"OfficeClaw Hub",title:"OfficeClaw Hub",children:l.jsxs("svg",{className:"h-5 w-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[l.jsx("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),l.jsx("circle",{cx:"12",cy:"12",r:"3"})]})})}function E3({sidebarOpen:t,onToggleSidebar:e,threadId:n,authPendingCount:i,targetAgents:s=[],viewMode:r,onToggleViewMode:a,onOpenMobileStatus:o,defaultVoiceAgentId:c}){const{theme:d,toggleTheme:u}=n2(),{getAgentById:h}=Zn(),f=s.map(O=>({id:O,rowAgent:h(O)})).filter(O=>!!O.rowAgent),p=d==="business"?"暖色":d==="warm"?"暗黑":"商务";return l.jsx("header",{className:"safe-area-top relative h-0 overflow-visible",children:l.jsxs("div",{className:"absolute right-5 top-2 z-20 hidden items-center gap-1",children:[f.length>0&&l.jsx("div",{className:"mr-2 hidden items-center gap-2 md:flex",children:f.map(({id:O,rowAgent:g})=>l.jsxs("div",{className:"flex items-center gap-2",title:g.displayName,children:[l.jsx("img",{src:g.avatar,alt:g.displayName,className:"h-6 w-6 rounded-full"}),l.jsx("span",{className:"text-sm text-[var(--text-primary)]",children:g.displayName})]},O))}),l.jsx("button",{type:"button",onClick:o,className:"ui-icon-button lg:hidden",title:"状态面板","aria-label":"状态面板",children:l.jsx("svg",{className:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor",children:l.jsx("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z",clipRule:"evenodd"})})}),l.jsxs("div",{className:"flex items-center gap-1 hidden",children:[l.jsx(M3,{}),l.jsx("button",{type:"button",onClick:u,className:"ui-icon-button",title:`切换到${p}主题`,"aria-label":`Switch to ${p} theme`,children:d==="warm"?l.jsxs("svg",{className:"h-5 w-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[l.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),l.jsx("path",{d:"M9 11h6M9 15h6M9 7h6"})]}):d==="dark"?l.jsx("svg",{className:"h-5 w-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:l.jsx("path",{d:"M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8Z"})}):l.jsxs("svg",{className:"h-5 w-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[l.jsx("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),l.jsx("path",{d:"M2 17h20"})]})})]})]})})}function I3(t){const e=new Map;let n=new Set;for(let i=t.length-1;i>=0;i-=1){const s=t[i];if(s.type==="user"||s.type==="connector"){n=new Set;continue}if(s.type!=="assistant")continue;const r=Ui(s.toolEvents,s.origin==="stream"?s.content:void 0,{padUnmatchedToolResults:!s.isStreaming&&s.variant!=="error"});if(r.length===0)continue;const a=So(r);if(a.length===0)continue;const o=a.map(c=>c.name.toLowerCase()).filter((c,d,u)=>n.has(c)&&u.indexOf(c)===d);o.length>0&&e.set(s.id,o);for(const c of a)n.add(c.name.toLowerCase())}return e}const pl=1e3,L3=[{label:"回答不准确",value:"not_accurate"},{label:"回答不完整",value:"not_complete"},{label:"存在事实错误",value:"factual_error"},{label:"与问题不相关",value:"not_relevant"},{label:"其他",value:"other"}];function X3(){return l.jsxs("svg",{viewBox:"0 0 16 16","aria-hidden":!0,className:"h-4 w-4",children:[l.jsx("path",{d:"M4.5 4.5L11.5 11.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"}),l.jsx("path",{d:"M11.5 4.5L4.5 11.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]})}function Z3({messageId:t,catId:e,alwaysVisible:n,value:i,onSubmit:s}){const[r,a]=m.useState(!1),[o,c]=m.useState(""),[d,u]=m.useState(""),[h,f]=m.useState(!1),p=Ut(w=>w.addToast),O=i===1?"like":i===-1?"dislike":"none",g=n?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none group-hover:opacity-100 group-hover:pointer-events-auto",x=!!o&&!h,b=m.useMemo(()=>`${d.length}/${pl}`,[d.length]),y=m.useCallback(async()=>{if(!(O==="like"||h)){f(!0);try{await s(t,1)}catch{p({type:"error",title:"提交失败",message:"请稍后重试",duration:2600})}finally{f(!1)}}},[p,t,s,O,h]),S=m.useCallback(w=>{u(w.length>pl?w.slice(0,pl):w)},[]),P=m.useCallback(async()=>{if(x){f(!0);try{const w=o==="other"?`other:${d.trim()}`:o;await s(t,-1,w),a(!1),c(""),u(""),p({type:"success",title:"反馈已提交",message:"",duration:2400})}catch(w){p({type:"error",title:"提交失败",message:w instanceof Error&&w.message?w.message:"网络异常",duration:2600})}finally{f(!1)}}},[p,x,d,t,s,o]);return l.jsxs(l.Fragment,{children:[l.jsx("div",{className:`${g} transition-opacity`,children:l.jsxs("div",{className:"message-feedback-actions",children:[l.jsx(Aa,{content:O==="like"?"已点赞":"点赞",forceShow:!0,className:"relative inline-flex",gap:2,children:l.jsx("button",{type:"button",onClick:()=>void y(),"aria-label":"点赞",disabled:h,className:`inline-flex h-6 w-6 items-center justify-center rounded-[8px] transition-colors hover:bg-[rgba(0,0,0,0.04)] focus-visible:bg-[rgba(0,0,0,0.04)] disabled:opacity-50 ${O==="like"?"is-active-like":""}`,"data-testid":"message-feedback-like",children:l.jsx("img",{src:O==="like"?"/icons/chart/liked.svg":"/icons/chart/like.svg",alt:"","aria-hidden":"true",className:"message-feedback-icon"})})}),l.jsx(Aa,{content:O==="dislike"?"已点踩":"点踩",forceShow:!0,className:"relative inline-flex",gap:2,children:l.jsx("button",{type:"button",onClick:()=>{O!=="dislike"&&a(!0)},"aria-label":"点踩",disabled:h,className:`inline-flex h-6 w-6 items-center justify-center rounded-[8px] transition-colors hover:bg-[rgba(0,0,0,0.04)] focus-visible:bg-[rgba(0,0,0,0.04)] disabled:opacity-50 ${O==="dislike"?"is-active-dislike":""}`,"data-testid":"message-feedback-dislike",children:l.jsx("img",{src:O==="dislike"?"/icons/chart/disliked.svg":"/icons/chart/dislike.svg",alt:"","aria-hidden":"true",className:"message-feedback-icon"})})})]})}),r?l.jsx("div",{className:"message-feedback-dialog-mask",role:"dialog","aria-modal":"true","aria-label":"点踩反馈弹窗",children:l.jsx("div",{className:"message-feedback-dialog",children:l.jsxs("div",{className:"message-feedback-dialog-content relative",children:[l.jsxs("div",{className:"message-feedback-dialog-header",children:[l.jsx("h3",{className:"message-feedback-dialog-title",children:"告诉我们哪里不满意"}),l.jsx(Ft,{variant:"ghost",size:"sm",onlyIcon:!0,hasBorder:!1,"aria-label":"关闭",onClick:()=>a(!1),className:"message-feedback-dialog-close",children:l.jsx(X3,{})})]}),l.jsx("div",{className:"message-feedback-reason-grid",children:L3.map(w=>l.jsxs("label",{className:"message-feedback-reason-option",children:[l.jsx("input",{type:"radio",name:`message-feedback-${t}`,checked:o===w.value,onChange:()=>c(w.value)}),l.jsx("span",{children:w.label})]},w.value))}),l.jsxs("div",{className:"message-feedback-detail-shell",children:[l.jsx("textarea",{className:"ui-textarea message-feedback-detail-input",value:d,onChange:w=>S(w.target.value),placeholder:"可补充具体原因"}),l.jsx("span",{className:"message-feedback-detail-counter",children:b})]}),l.jsx("div",{className:"message-feedback-dialog-actions",children:l.jsx(Ft,{variant:"default",size:"sm",onClick:P,disabled:!x,children:"提交"})})]})})}):null]})}const D3=1500;function q3({text:t,alwaysVisible:e,className:n}){const[i,s]=m.useState(!1),r=m.useRef(null),a=m.useCallback(()=>{r.current&&(clearTimeout(r.current),r.current=null)},[]);m.useEffect(()=>a,[a]);const o=m.useCallback(async()=>{if(t.trim())try{await navigator.clipboard.writeText(t),s(!0),a(),r.current=setTimeout(()=>{s(!1),r.current=null},D3)}catch{}},[a,t]),c=e?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none group-hover:opacity-100 group-hover:pointer-events-auto";return l.jsx("div",{"data-testid":"message-copy-button-wrapper",className:`mt-[8px] mb-[8px] ${c} transition-opacity ${n??""}`.trim(),children:l.jsx(Aa,{content:i?"已复制":"复制",forceShow:!0,className:"relative inline-flex",gap:2,children:l.jsx("button",{type:"button","aria-label":i?"已复制":"复制",onClick:()=>void o(),className:"inline-flex h-6 w-6 items-center justify-center rounded-[8px] transition-colors hover:bg-[rgba(0,0,0,0.04)] focus-visible:bg-[rgba(0,0,0,0.04)]","data-testid":"message-copy-button",children:l.jsx("img",{src:"/icons/copy.svg",alt:"","aria-hidden":"true",className:"h-4 w-4"})})})})}function W3(t){return!(t.type!=="user"&&t.type!=="assistant"||!t.content.trim()||t.type==="assistant"&&t.isStreaming||t.type==="user"&&t.agentId)}function z3({message:t,threadId:e,isLastCopyVisible:n=!1,feedbackValue:i,onSubmitFeedback:s,children:r}){const[a,o]=m.useState({type:"none"}),c=E(w=>w.removeMessage),d=bd(),u=t.type==="user"&&!t.agentId,h=W3(t),f=h&&t.type==="assistant"&&!!t.agentId&&!!s,p=!u&&!!t.agentId;m.useCallback(()=>{o({type:"edit",editedContent:t.content})},[t.content]),m.useCallback(()=>o({type:"branch-direct"}),[]);const O=m.useCallback(async()=>{o({type:"none"});try{(await G(`/api/messages/${t.id}`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:vi(),mode:"soft"})})).ok&&c(t.id)}catch{}},[t.id,c]),g=m.useCallback(async()=>{if(a.type!=="hard-delete")return;const w=a.threadTitle??"确认删除";o({type:"none"});try{(await G(`/api/messages/${t.id}`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:vi(),mode:"hard",confirmTitle:w})})).ok&&c(t.id)}catch{}},[a,t.id,c]),x=m.useCallback(()=>{a.type==="edit"&&o({type:"branch-confirm",editedContent:a.editedContent})},[a]),b=m.useCallback(async()=>{if(a.type!=="branch-confirm")return;const{editedContent:w}=a;o({type:"none"});try{const C=await G(`/api/threads/${e}/branch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fromMessageId:t.id,editedContent:w!==t.content?w:void 0,userId:vi()})});if(C.ok){const{threadId:Q}=await C.json();d(`/thread/${Q}`)}}catch{}},[a,t.id,t.content,e,d]),y=m.useRef(!1),S=m.useCallback(async()=>{if(!y.current){y.current=!0,o({type:"none"});try{const w=await G(`/api/threads/${e}/branch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fromMessageId:t.id,userId:vi()})});if(w.ok){const{threadId:C}=await w.json();d(`/thread/${C}`)}}catch{}finally{y.current=!1}}},[t.id,e,d]),P=m.useCallback(()=>o({type:"none"}),[]);return l.jsxs("div",{className:"chat-layout-rail group relative",children:[r,(h||f)&&l.jsxs("div",{className:`mt-[8px] mb-[8px] flex items-center gap-1 ${u?"justify-end":"justify-start"} ${p?"pl-11":""}`,children:[f&&l.jsx(Z3,{messageId:t.id,catId:t.agentId,alwaysVisible:!0,value:i,onSubmit:s}),h&&l.jsx(q3,{text:t.content,alwaysVisible:n,className:"!m-0"})]}),l.jsx(Tr,{open:a.type==="soft-delete",title:"删除消息",message:"确认删除此消息?删除后可恢复。",confirmLabel:"删除",color:"danger",onConfirm:O,onCancel:P}),l.jsx(Tr,{open:a.type==="hard-delete",title:"永久删除",message:"此操作不可恢复。请输入会话标题以确认。",requireInput:a.type==="hard-delete"?a.threadTitle??"确认删除":void 0,inputPlaceholder:a.type==="hard-delete"&&a.threadTitle?"输入会话标题":'输入 "确认删除"',confirmLabel:"永久删除",color:"danger",onConfirm:g,onCancel:P}),a.type==="edit"&&l.jsx("div",{className:"fixed inset-0 bg-black/30 flex items-center justify-center z-50",children:l.jsxs("div",{className:"bg-white rounded-xl shadow-xl p-6 max-w-lg w-full mx-4",children:[l.jsx("h3",{className:"text-base font-semibold mb-2",children:"编辑消息"}),l.jsx("textarea",{value:a.editedContent,onChange:w=>o({...a,editedContent:w.target.value}),className:"ui-textarea w-full rounded-lg px-3 py-2 text-sm mb-4 h-32"}),l.jsxs("div",{className:"flex justify-end gap-2",children:[l.jsx("button",{onClick:P,className:"px-4 py-2 text-sm text-gray-600 hover:bg-gray-100 rounded-lg",children:"取消"}),l.jsx("button",{onClick:x,disabled:!a.editedContent.trim(),className:"px-4 py-2 text-sm text-white bg-blue-500 hover:bg-blue-600 rounded-lg disabled:opacity-40",children:"保存"})]})]})}),l.jsx(Tr,{open:a.type==="branch-confirm",title:"创建分支",message:"编辑将从此消息创建一个新的会话分支。原会话保留不变。是否继续?",confirmLabel:"创建分支",onConfirm:b,onCancel:P}),l.jsx(Tr,{open:a.type==="branch-direct",title:"从这里分支",message:"将从此消息创建一个新的会话分支,复制到这条消息为止的所有历史。原会话保留不变。",confirmLabel:"创建分支",onConfirm:S,onCancel:P})]})}function B3(t){const[e,n]=m.useState(0);return m.useEffect(()=>{if(!t){n(0);return}n(Date.now()-t);const i=setInterval(()=>{n(Date.now()-t)},100);return()=>clearInterval(i)},[t]),e}function V3({status:t}){switch(t){case"pending":return l.jsx("span",{className:"inline-block w-2 h-2 rounded-full bg-gray-300 animate-pulse"});case"streaming":return l.jsx("span",{className:"inline-block w-2 h-2 rounded-full bg-green-400 animate-pulse"});case"done":return l.jsx("span",{className:"text-green-500 text-xs",children:"✓"});case"error":return l.jsx("span",{className:"text-red-500 text-xs",children:"✗"});case"alive_but_silent":return l.jsx("span",{className:"inline-block w-2 h-2 rounded-full bg-amber-400 animate-pulse"});case"suspected_stall":return l.jsx("span",{className:"inline-block w-2 h-2 rounded-full bg-orange-500 animate-pulse"});default:return null}}function F3({agentId:t,status:e,invocation:n}){const{getAgentById:i}=Zn(),s=i(t),r=B3(e==="streaming"?n==null?void 0:n.startedAt:void 0),a=e==="done"&&(n==null?void 0:n.durationMs)!=null?zu(n.durationMs):e==="streaming"&&r>0?zu(r):null,o=s?ja(s.color.primary,.12):void 0;return l.jsxs("div",{className:"flex items-center gap-1.5 px-2.5 py-1 rounded-full",style:{backgroundColor:o??"#f3f4f6"},children:[l.jsx(V3,{status:e}),l.jsx("span",{className:"text-xs font-medium",style:{color:(s==null?void 0:s.color.primary)??"#4b5563"},children:s?V0(s):t}),a&&l.jsx("span",{className:"text-xs text-gray-500 ml-0.5",children:a})]})}function U3(t,e){let n=0,i=0,s=0,r=0;const a=e?e.map(o=>t[o]).filter(Boolean):Object.values(t);for(const o of a){const c=o.usage;c&&(r++,c.inputTokens!=null&&(n+=c.inputTokens),c.outputTokens!=null&&(i+=c.outputTokens),c.totalTokens!=null&&c.inputTokens==null&&(n+=c.totalTokens),c.costUsd!=null&&(s+=c.costUsd))}return r===0?null:{...n>0?{inputTokens:n}:{},...i>0?{outputTokens:i}:{},...s>0?{costUsd:s}:{}}}function Y3({onStop:t}){const{targetAgents:e,agentStatuses:n,agentInvocations:i}=E();if(e.length===0)return null;const s=U3(i,e);return l.jsxs("div",{className:"hidden px-5 py-2.5 bg-gradient-to-r from-opus-bg via-codex-bg to-gemini-bg border-b border-gray-200",children:[l.jsxs("div",{className:"flex items-center gap-4",children:[l.jsx("span",{className:"text-sm font-medium text-gray-600",children:"独立观点采样中"}),e.map(r=>l.jsx(F3,{agentId:r,status:n[r]??"pending",invocation:i[r]},r)),t&&l.jsxs("button",{onClick:()=>t(),className:"ml-auto flex items-center gap-1 px-2.5 py-1 rounded-full bg-red-50 text-red-500 hover:bg-red-100 hover:text-red-600 transition-colors text-xs font-medium",title:"停止所有智能体","aria-label":"Stop all agents","data-testid":"parallel-stop-button",children:[l.jsx("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 20 20",fill:"currentColor",children:l.jsx("rect",{x:"4",y:"4",width:"12",height:"12",rx:"2"})}),"停止"]})]}),s&&l.jsxs("div",{className:"flex items-center gap-3 mt-1.5 text-[11px] text-gray-500","data-testid":"parallel-usage-summary",children:[s.inputTokens!=null&&l.jsxs("span",{children:["In: ",l.jsx("span",{className:"font-medium text-gray-600",children:Wu(s.inputTokens)})]}),s.outputTokens!=null&&l.jsxs("span",{children:["Out: ",l.jsx("span",{className:"font-medium text-gray-600",children:Wu(s.outputTokens)})]}),s.costUsd!=null&&l.jsxs("span",{children:["Cost: ",l.jsx("span",{className:"font-medium text-amber-600",children:i2(s.costUsd)})]})]})]})}function G3(){const t=E(i=>i.currentThreadId),e=E(i=>Object.values(i.pptStudioSessions??{}).filter(s=>s.threadId===i.currentThreadId)),n=E(i=>i.upsertPptStudioSlides);return m.useEffect(()=>{const i=e.filter(a=>{var o;return!((o=a.projectRoot)!=null&&o.trim())&&a.pagesDir});if(i.length===0)return;let s=!1;async function r(){try{const a=await G("/api/projects/cwd");if(!a.ok||s)return;const o=await a.json(),c=typeof o.path=="string"&&o.path.trim()?o.path.trim():null;if(!c||s)return;for(const d of i)n(t,{projectRoot:c,pagesDir:d.pagesDir,deckTitle:d.deckTitle,expectedSlideCount:d.expectedSlideCount,status:d.status,slides:d.slides})}catch{}}return r(),()=>{s=!0}},[t,n,e.filter(i=>{var s;return!((s=i.projectRoot)!=null&&s.trim())}).map(i=>i.pagesDir).join(",")]),m.useEffect(()=>{const i=e.filter(a=>{var o;return((o=a.projectRoot)==null?void 0:o.trim())&&a.pagesDir});if(i.length===0)return;let s=!1;return(async()=>{for(const a of i){if(s)break;try{const{projectRoot:o,pagesDir:c}=W0(a.projectRoot,a.pagesDir),d=new URLSearchParams({projectRoot:o,pagesDir:c}),u=await G(`/api/ppt-studio/session?${d.toString()}`);if(!u.ok||s)continue;const h=await u.json();if(s)break;const f=h.slides.length>0?Math.max(...h.slides.map(p=>p.pageNumber)):0;n(t,{projectRoot:a.projectRoot,pagesDir:a.pagesDir,deckTitle:h.deckTitle,status:h.status,expectedSlideCount:f,slides:h.slides.map(p=>({...p,slideId:`slide-${p.pageNumber}`}))},{slideMerge:"replace",source:"live"})}catch{}}})(),()=>{s=!0}},[t,n,e.filter(i=>{var s;return(s=i.projectRoot)==null?void 0:s.trim()}).map(i=>{const s=i.slides.length>0?Math.max(...i.slides.map(r=>r.pageNumber)):0;return`${i.projectRoot}:${i.pagesDir}:${i.slides.length}:${s}:${i.expectedSlideCount??""}`}).join("|")]),null}const DO=1024;let H3=0,Wt=class{constructor(e,n){this.from=e,this.to=n}};class Re{constructor(e={}){this.id=H3++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=kt.match(e)),n=>{let i=e(n);return i===void 0?null:[this,i]}}}Re.closedBy=new Re({deserialize:t=>t.split(" ")});Re.openedBy=new Re({deserialize:t=>t.split(" ")});Re.group=new Re({deserialize:t=>t.split(" ")});Re.isolate=new Re({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});Re.contextHash=new Re({perNode:!0});Re.lookAhead=new Re({perNode:!0});Re.mounted=new Re({perNode:!0});class Gi{constructor(e,n,i,s=!1){this.tree=e,this.overlay=n,this.parser=i,this.bracketed=s}static get(e){return e&&e.props&&e.props[Re.mounted.id]}}const K3=Object.create(null);class kt{constructor(e,n,i,s=0){this.name=e,this.props=n,this.id=i,this.flags=s}static define(e){let n=e.props&&e.props.length?Object.create(null):K3,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new kt(e.name||"",n,e.id,i);if(e.props){for(let r of e.props)if(Array.isArray(r)||(r=r(s)),r){if(r[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");n[r[0].id]=r[1]}}return s}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let n=this.prop(Re.group);return n?n.indexOf(e)>-1:!1}return this.id==e}static match(e){let n=Object.create(null);for(let i in e)for(let s of i.split(" "))n[s]=e[i];return i=>{for(let s=i.prop(Re.group),r=-1;r<(s?s.length:0);r++){let a=n[r<0?i.name:s[r]];if(a)return a}}}}kt.none=new kt("",Object.create(null),0,8);class Md{constructor(e){this.types=e;for(let n=0;n<e.length;n++)if(e[n].id!=n)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let n=[];for(let i of this.types){let s=null;for(let r of e){let a=r(i);if(a){s||(s=Object.assign({},i.props));let o=a[1],c=a[0];c.combine&&c.id in s&&(o=c.combine(s[c.id],o)),s[c.id]=o}}n.push(s?new kt(i.name,s,i.id,i.flags):i)}return new Md(n)}}const Ir=new WeakMap,Dh=new WeakMap;var qe;(function(t){t[t.ExcludeBuffers=1]="ExcludeBuffers",t[t.IncludeAnonymous=2]="IncludeAnonymous",t[t.IgnoreMounts=4]="IgnoreMounts",t[t.IgnoreOverlays=8]="IgnoreOverlays",t[t.EnterBracketed=16]="EnterBracketed"})(qe||(qe={}));class Ke{constructor(e,n,i,s,r){if(this.type=e,this.children=n,this.positions=i,this.length=s,this.props=null,r&&r.length){this.props=Object.create(null);for(let[a,o]of r)this.props[typeof a=="number"?a:a.id]=o}}toString(){let e=Gi.get(this);if(e&&!e.overlay)return e.tree.toString();let n="";for(let i of this.children){let s=i.toString();s&&(n&&(n+=","),n+=s)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(n.length?"("+n+")":""):n}cursor(e=0){return new Ia(this.topNode,e)}cursorAt(e,n=0,i=0){let s=Ir.get(this)||this.topNode,r=new Ia(s);return r.moveTo(e,n),Ir.set(this,r._tree),r}get topNode(){return new Yt(this,0,0,null)}resolve(e,n=0){let i=Us(Ir.get(this)||this.topNode,e,n,!1);return Ir.set(this,i),i}resolveInner(e,n=0){let i=Us(Dh.get(this)||this.topNode,e,n,!0);return Dh.set(this,i),i}resolveStack(e,n=0){return tw(this,e,n)}iterate(e){let{enter:n,leave:i,from:s=0,to:r=this.length}=e,a=e.mode||0,o=(a&qe.IncludeAnonymous)>0;for(let c=this.cursor(a|qe.IncludeAnonymous);;){let d=!1;if(c.from<=r&&c.to>=s&&(!o&&c.type.isAnonymous||n(c)!==!1)){if(c.firstChild())continue;d=!0}for(;d&&i&&(o||!c.type.isAnonymous)&&i(c),!c.nextSibling();){if(!c.parent())return;d=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let n in this.props)e.push([+n,this.props[n]]);return e}balance(e={}){return this.children.length<=8?this:Ld(kt.none,this.children,this.positions,0,this.children.length,0,this.length,(n,i,s)=>new Ke(this.type,n,i,s,this.propValues),e.makeTree||((n,i,s)=>new Ke(kt.none,n,i,s)))}static build(e){return nw(e)}}Ke.empty=new Ke(kt.none,[],[],0);class Ed{constructor(e,n){this.buffer=e,this.index=n}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Ed(this.buffer,this.index)}}class ni{constructor(e,n,i){this.buffer=e,this.length=n,this.set=i}get type(){return kt.none}toString(){let e=[];for(let n=0;n<this.buffer.length;)e.push(this.childString(n)),n=this.buffer[n+3];return e.join(",")}childString(e){let n=this.buffer[e],i=this.buffer[e+3],s=this.set.types[n],r=s.name;if(/\W/.test(r)&&!s.isError&&(r=JSON.stringify(r)),e+=4,i==e)return r;let a=[];for(;e<i;)a.push(this.childString(e)),e=this.buffer[e+3];return r+"("+a.join(",")+")"}findChild(e,n,i,s,r){let{buffer:a}=this,o=-1;for(let c=e;c!=n&&!(qO(r,s,a[c+1],a[c+2])&&(o=c,i>0));c=a[c+3]);return o}slice(e,n,i){let s=this.buffer,r=new Uint16Array(n-e),a=0;for(let o=e,c=0;o<n;){r[c++]=s[o++],r[c++]=s[o++]-i;let d=r[c++]=s[o++]-i;r[c++]=s[o++]-e,a=Math.max(a,d)}return new ni(r,a,this.set)}}function qO(t,e,n,i){switch(t){case-2:return n<e;case-1:return i>=e&&n<e;case 0:return n<e&&i>e;case 1:return n<=e&&i>e;case 2:return i>e;case 4:return!0}}function Us(t,e,n,i){for(var s;t.from==t.to||(n<1?t.from>=e:t.from>e)||(n>-1?t.to<=e:t.to<e);){let a=!i&&t instanceof Yt&&t.index<0?null:t.parent;if(!a)return t;t=a}let r=i?0:qe.IgnoreOverlays;if(i)for(let a=t,o=a.parent;o;a=o,o=a.parent)a instanceof Yt&&a.index<0&&((s=o.enter(e,n,r))===null||s===void 0?void 0:s.from)!=a.from&&(t=o);for(;;){let a=t.enter(e,n,r);if(!a)return t;t=a}}class WO{cursor(e=0){return new Ia(this,e)}getChild(e,n=null,i=null){let s=qh(this,e,n,i);return s.length?s[0]:null}getChildren(e,n=null,i=null){return qh(this,e,n,i)}resolve(e,n=0){return Us(this,e,n,!1)}resolveInner(e,n=0){return Us(this,e,n,!0)}matchContext(e){return Oc(this.parent,e)}enterUnfinishedNodesBefore(e){let n=this.childBefore(e),i=this;for(;n;){let s=n.lastChild;if(!s||s.to!=n.to)break;s.type.isError&&s.from==s.to?(i=n,n=s.prevSibling):n=s}return i}get node(){return this}get next(){return this.parent}}let Yt=class fa extends WO{constructor(e,n,i,s){super(),this._tree=e,this.from=n,this.index=i,this._parent=s}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,n,i,s,r=0){for(let a=this;;){for(let{children:o,positions:c}=a._tree,d=n>0?o.length:-1;e!=d;e+=n){let u=o[e],h=c[e]+a.from,f;if(!(!(r&qe.EnterBracketed&&u instanceof Ke&&(f=Gi.get(u))&&!f.overlay&&f.bracketed&&i>=h&&i<=h+u.length)&&!qO(s,i,h,h+u.length))){if(u instanceof ni){if(r&qe.ExcludeBuffers)continue;let p=u.findChild(0,u.buffer.length,n,i-h,s);if(p>-1)return new mn(new J3(a,u,e,h),null,p)}else if(r&qe.IncludeAnonymous||!u.type.isAnonymous||Id(u)){let p;if(!(r&qe.IgnoreMounts)&&(p=Gi.get(u))&&!p.overlay)return new fa(p.tree,h,e,a);let O=new fa(u,h,e,a);return r&qe.IncludeAnonymous||!O.type.isAnonymous?O:O.nextChild(n<0?u.children.length-1:0,n,i,s,r)}}}if(r&qe.IncludeAnonymous||!a.type.isAnonymous||(a.index>=0?e=a.index+n:e=n<0?-1:a._parent._tree.children.length,a=a._parent,!a))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,n,i=0){let s;if(!(i&qe.IgnoreOverlays)&&(s=Gi.get(this._tree))&&s.overlay){let r=e-this.from,a=i&qe.EnterBracketed&&s.bracketed;for(let{from:o,to:c}of s.overlay)if((n>0||a?o<=r:o<r)&&(n<0||a?c>=r:c>r))return new fa(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,n,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function qh(t,e,n,i){let s=t.cursor(),r=[];if(!s.firstChild())return r;if(n!=null){for(let a=!1;!a;)if(a=s.type.is(n),!s.nextSibling())return r}for(;;){if(i!=null&&s.type.is(i))return r;if(s.type.is(e)&&r.push(s.node),!s.nextSibling())return i==null?r:[]}}function Oc(t,e,n=e.length-1){for(let i=t;n>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[n]&&e[n]!=i.name)return!1;n--}}return!0}class J3{constructor(e,n,i,s){this.parent=e,this.buffer=n,this.index=i,this.start=s}}class mn extends WO{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,n,i){super(),this.context=e,this._parent=n,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,n,i){let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],e,n-this.context.start,i);return r<0?null:new mn(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,n,i=0){if(i&qe.ExcludeBuffers)return null;let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],n>0?1:-1,e-this.context.start,n);return r<0?null:new mn(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,n=e.buffer[this.index+3];return n<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new mn(this.context,this._parent,n):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new mn(this.context,this._parent,e.findChild(n,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],n=[],{buffer:i}=this.context,s=this.index+4,r=i.buffer[this.index+3];if(r>s){let a=i.buffer[this.index+1];e.push(i.slice(s,r,a)),n.push(0)}return new Ke(this.type,e,n,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function zO(t){if(!t.length)return null;let e=0,n=t[0];for(let r=1;r<t.length;r++){let a=t[r];(a.from>n.from||a.to<n.to)&&(n=a,e=r)}let i=n instanceof Yt&&n.index<0?null:n.parent,s=t.slice();return i?s[e]=i:s.splice(e,1),new ew(s,n)}class ew{constructor(e,n){this.heads=e,this.node=n}get next(){return zO(this.heads)}}function tw(t,e,n){let i=t.resolveInner(e,n),s=null;for(let r=i instanceof Yt?i:i.context.parent;r;r=r.parent)if(r.index<0){let a=r.parent;(s||(s=[i])).push(a.resolve(e,n)),r=a}else{let a=Gi.get(r.tree);if(a&&a.overlay&&a.overlay[0].from<=e&&a.overlay[a.overlay.length-1].to>=e){let o=new Yt(a.tree,a.overlay[0].from+r.from,-1,r);(s||(s=[i])).push(Us(o,e,n,!1))}}return s?zO(s):i}class Ia{get name(){return this.type.name}constructor(e,n=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=n&~qe.EnterBracketed,e instanceof Yt)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,n){this.index=e;let{start:i,buffer:s}=this.buffer;return this.type=n||s.set.types[s.buffer[e]],this.from=i+s.buffer[e+1],this.to=i+s.buffer[e+2],!0}yield(e){return e?e instanceof Yt?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,n,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,n,i,this.mode));let{buffer:s}=this.buffer,r=s.findChild(this.index+4,s.buffer[this.index+3],e,n-this.buffer.start,i);return r<0?!1:(this.stack.push(this.index),this.yieldBuf(r))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,n,i=this.mode){return this.buffer?i&qe.ExcludeBuffers?!1:this.enterChild(1,e,n):this.yield(this._tree.enter(e,n,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&qe.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&qe.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:n}=this.buffer,i=this.stack.length-1;if(e<0){let s=i<0?0:this.stack[i]+4;if(this.index!=s)return this.yieldBuf(n.findChild(s,this.index,-1,0,4))}else{let s=n.buffer[this.index+3];if(s<(i<0?n.buffer.length:n.buffer[this.stack[i]+3]))return this.yieldBuf(s)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let n,i,{buffer:s}=this;if(s){if(e>0){if(this.index<s.buffer.buffer.length)return!1}else for(let r=0;r<this.index;r++)if(s.buffer.buffer[r+3]<this.index)return!1;({index:n,parent:i}=s)}else({index:n,_parent:i}=this._tree);for(;i;{index:n,_parent:i}=i)if(n>-1)for(let r=n+e,a=e<0?-1:i._tree.children.length;r!=a;r+=e){let o=i._tree.children[r];if(this.mode&qe.IncludeAnonymous||o instanceof ni||!o.type.isAnonymous||Id(o))return!1}return!0}move(e,n){if(n&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,n=0){for(;(this.from==this.to||(n<1?this.from>=e:this.from>e)||(n>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,n););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,n=null,i=0;if(e&&e.context==this.buffer)e:for(let s=this.index,r=this.stack.length;r>=0;){for(let a=e;a;a=a._parent)if(a.index==s){if(s==this.index)return a;n=a,i=r+1;break e}s=this.stack[--r]}for(let s=i;s<this.stack.length;s++)n=new mn(this.buffer,n,this.stack[s]);return this.bufferNode=new mn(this.buffer,n,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,n){for(let i=0;;){let s=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){i++;continue}this.type.isAnonymous||(s=!0)}for(;;){if(s&&n&&n(this),s=this.type.isAnonymous,!i)return;if(this.nextSibling())break;this.parent(),i--,s=!0}}}matchContext(e){if(!this.buffer)return Oc(this.node.parent,e);let{buffer:n}=this.buffer,{types:i}=n.set;for(let s=e.length-1,r=this.stack.length-1;s>=0;r--){if(r<0)return Oc(this._tree,e,s);let a=i[n.buffer[this.stack[r]]];if(!a.isAnonymous){if(e[s]&&e[s]!=a.name)return!1;s--}}return!0}}function Id(t){return t.children.some(e=>e instanceof ni||!e.type.isAnonymous||Id(e))}function nw(t){var e;let{buffer:n,nodeSet:i,maxBufferLength:s=DO,reused:r=[],minRepeatType:a=i.types.length}=t,o=Array.isArray(n)?new Ed(n,n.length):n,c=i.types,d=0,u=0;function h(w,C,Q,T,A,$){let{id:N,start:R,end:z,size:I}=o,B=u,M=d;if(I<0)if(o.next(),I==-1){let ae=r[N];Q.push(ae),T.push(R-w);return}else if(I==-3){d=N;return}else if(I==-4){u=N;return}else throw new RangeError(`Unrecognized record size: ${I}`);let L=c[N],F,de,ce=R-w;if(z-R<=s&&(de=x(o.pos-C,A))){let ae=new Uint16Array(de.size-de.skip),J=o.pos-de.size,X=ae.length;for(;o.pos>J;)X=b(de.start,ae,X);F=new ni(ae,z-de.start,i),ce=de.start-w}else{let ae=o.pos-I;o.next();let J=[],X=[],ne=N>=a?N:-1,ue=0,je=z;for(;o.pos>ae;)ne>=0&&o.id==ne&&o.size>=0?(o.end<=je-s&&(O(J,X,R,ue,o.end,je,ne,B,M),ue=J.length,je=o.end),o.next()):$>2500?f(R,ae,J,X):h(R,ae,J,X,ne,$+1);if(ne>=0&&ue>0&&ue<J.length&&O(J,X,R,ue,R,je,ne,B,M),J.reverse(),X.reverse(),ne>-1&&ue>0){let ve=p(L,M);F=Ld(L,J,X,0,J.length,0,z-R,ve,ve)}else F=g(L,J,X,z-R,B-z,M)}Q.push(F),T.push(ce)}function f(w,C,Q,T){let A=[],$=0,N=-1;for(;o.pos>C;){let{id:R,start:z,end:I,size:B}=o;if(B>4)o.next();else{if(N>-1&&z<N)break;N<0&&(N=I-s),A.push(R,z,I),$++,o.next()}}if($){let R=new Uint16Array($*4),z=A[A.length-2];for(let I=A.length-3,B=0;I>=0;I-=3)R[B++]=A[I],R[B++]=A[I+1]-z,R[B++]=A[I+2]-z,R[B++]=B;Q.push(new ni(R,A[2]-z,i)),T.push(z-w)}}function p(w,C){return(Q,T,A)=>{let $=0,N=Q.length-1,R,z;if(N>=0&&(R=Q[N])instanceof Ke){if(!N&&R.type==w&&R.length==A)return R;(z=R.prop(Re.lookAhead))&&($=T[N]+R.length+z)}return g(w,Q,T,A,$,C)}}function O(w,C,Q,T,A,$,N,R,z){let I=[],B=[];for(;w.length>T;)I.push(w.pop()),B.push(C.pop()+Q-A);w.push(g(i.types[N],I,B,$-A,R-$,z)),C.push(A-Q)}function g(w,C,Q,T,A,$,N){if($){let R=[Re.contextHash,$];N=N?[R].concat(N):[R]}if(A>25){let R=[Re.lookAhead,A];N=N?[R].concat(N):[R]}return new Ke(w,C,Q,T,N)}function x(w,C){let Q=o.fork(),T=0,A=0,$=0,N=Q.end-s,R={size:0,start:0,skip:0};e:for(let z=Q.pos-w;Q.pos>z;){let I=Q.size;if(Q.id==C&&I>=0){R.size=T,R.start=A,R.skip=$,$+=4,T+=4,Q.next();continue}let B=Q.pos-I;if(I<0||B<z||Q.start<N)break;let M=Q.id>=a?4:0,L=Q.start;for(Q.next();Q.pos>B;){if(Q.size<0)if(Q.size==-3||Q.size==-4)M+=4;else break e;else Q.id>=a&&(M+=4);Q.next()}A=L,T+=I,$+=M}return(C<0||T==w)&&(R.size=T,R.start=A,R.skip=$),R.size>4?R:void 0}function b(w,C,Q){let{id:T,start:A,end:$,size:N}=o;if(o.next(),N>=0&&T<a){let R=Q;if(N>4){let z=o.pos-(N-4);for(;o.pos>z;)Q=b(w,C,Q)}C[--Q]=R,C[--Q]=$-w,C[--Q]=A-w,C[--Q]=T}else N==-3?d=T:N==-4&&(u=T);return Q}let y=[],S=[];for(;o.pos>0;)h(t.start||0,t.bufferStart||0,y,S,-1,0);let P=(e=t.length)!==null&&e!==void 0?e:y.length?S[0]+y[0].length:0;return new Ke(c[t.topID],y.reverse(),S.reverse(),P)}const Wh=new WeakMap;function pa(t,e){if(!t.isAnonymous||e instanceof ni||e.type!=t)return 1;let n=Wh.get(e);if(n==null){n=1;for(let i of e.children){if(i.type!=t||!(i instanceof Ke)){n=1;break}n+=pa(t,i)}Wh.set(e,n)}return n}function Ld(t,e,n,i,s,r,a,o,c){let d=0;for(let O=i;O<s;O++)d+=pa(t,e[O]);let u=Math.ceil(d*1.5/8),h=[],f=[];function p(O,g,x,b,y){for(let S=x;S<b;){let P=S,w=g[S],C=pa(t,O[S]);for(S++;S<b;S++){let Q=pa(t,O[S]);if(C+Q>=u)break;C+=Q}if(S==P+1){if(C>u){let Q=O[P];p(Q.children,Q.positions,0,Q.children.length,g[P]+y);continue}h.push(O[P])}else{let Q=g[S-1]+O[S-1].length-w;h.push(Ld(t,O,g,P,S,w,Q,null,c))}f.push(w+y-r)}}return p(e,n,i,s,0),(o||c)(h,f,a)}class Xd{constructor(){this.map=new WeakMap}setBuffer(e,n,i){let s=this.map.get(e);s||this.map.set(e,s=new Map),s.set(n,i)}getBuffer(e,n){let i=this.map.get(e);return i&&i.get(n)}set(e,n){e instanceof mn?this.setBuffer(e.context.buffer,e.index,n):e instanceof Yt&&this.map.set(e.tree,n)}get(e){return e instanceof mn?this.getBuffer(e.context.buffer,e.index):e instanceof Yt?this.map.get(e.tree):void 0}cursorSet(e,n){e.buffer?this.setBuffer(e.buffer.buffer,e.index,n):this.map.set(e.tree,n)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class Mn{constructor(e,n,i,s,r=!1,a=!1){this.from=e,this.to=n,this.tree=i,this.offset=s,this.open=(r?1:0)|(a?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,n=[],i=!1){let s=[new Mn(0,e.length,e,0,!1,i)];for(let r of n)r.to>e.length&&s.push(r);return s}static applyChanges(e,n,i=128){if(!n.length)return e;let s=[],r=1,a=e.length?e[0]:null;for(let o=0,c=0,d=0;;o++){let u=o<n.length?n[o]:null,h=u?u.fromA:1e9;if(h-c>=i)for(;a&&a.from<h;){let f=a;if(c>=f.from||h<=f.to||d){let p=Math.max(f.from,c)-d,O=Math.min(f.to,h)-d;f=p>=O?null:new Mn(p,O,f.tree,f.offset+d,o>0,!!u)}if(f&&s.push(f),a.to>h)break;a=r<e.length?e[r++]:null}if(!u)break;c=u.toA,d=u.toA-u.toB}return s}}class BO{startParse(e,n,i){return typeof e=="string"&&(e=new iw(e)),i=i?i.length?i.map(s=>new Wt(s.from,s.to)):[new Wt(0,0)]:[new Wt(0,e.length)],this.createParse(e,n||[],i)}parse(e,n,i){let s=this.startParse(e,n,i);for(;;){let r=s.advance();if(r)return r}}}class iw{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,n){return this.string.slice(e,n)}}function sw(t){return(e,n,i,s)=>new aw(e,t,n,i,s)}class zh{constructor(e,n,i,s,r,a){this.parser=e,this.parse=n,this.overlay=i,this.bracketed=s,this.target=r,this.from=a}}function Bh(t){if(!t.length||t.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(t))}class rw{constructor(e,n,i,s,r,a,o,c){this.parser=e,this.predicate=n,this.mounts=i,this.index=s,this.start=r,this.bracketed=a,this.target=o,this.prev=c,this.depth=0,this.ranges=[]}}const mc=new Re({perNode:!0});class aw{constructor(e,n,i,s,r){this.nest=n,this.input=i,this.fragments=s,this.ranges=r,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let i=this.baseParse.advance();if(!i)return null;if(this.baseParse=null,this.baseTree=i,this.startInner(),this.stoppedAt!=null)for(let s of this.inner)s.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let i=this.baseTree;return this.stoppedAt!=null&&(i=new Ke(i.type,i.children,i.positions,i.length,i.propValues.concat([[mc,this.stoppedAt]]))),i}let e=this.inner[this.innerDone],n=e.parse.advance();if(n){this.innerDone++;let i=Object.assign(Object.create(null),e.target.props);i[Re.mounted.id]=new Gi(n,e.overlay,e.parser,e.bracketed),e.target.props=i}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let n=this.innerDone;n<this.inner.length;n++)this.inner[n].from<e&&(e=Math.min(e,this.inner[n].parse.parsedPos));return e}stopAt(e){if(this.stoppedAt=e,this.baseParse)this.baseParse.stopAt(e);else for(let n=this.innerDone;n<this.inner.length;n++)this.inner[n].parse.stopAt(e)}startInner(){let e=new cw(this.fragments),n=null,i=null,s=new Ia(new Yt(this.baseTree,this.ranges[0].from,0,null),qe.IncludeAnonymous|qe.IgnoreMounts);e:for(let r,a;;){let o=!0,c;if(this.stoppedAt!=null&&s.from>=this.stoppedAt)o=!1;else if(e.hasNode(s)){if(n){let d=n.mounts.find(u=>u.frag.from<=s.from&&u.frag.to>=s.to&&u.mount.overlay);if(d)for(let u of d.mount.overlay){let h=u.from+d.pos,f=u.to+d.pos;h>=s.from&&f<=s.to&&!n.ranges.some(p=>p.from<f&&p.to>h)&&n.ranges.push({from:h,to:f})}}o=!1}else if(i&&(a=ow(i.ranges,s.from,s.to)))o=a!=2;else if(!s.type.isAnonymous&&(r=this.nest(s,this.input))&&(s.from<s.to||!r.overlay)){s.tree||(lw(s),n&&n.depth++,i&&i.depth++);let d=e.findMounts(s.from,r.parser);if(typeof r.overlay=="function")n=new rw(r.parser,r.overlay,d,this.inner.length,s.from,!!r.bracketed,s.tree,n);else{let u=Uh(this.ranges,r.overlay||(s.from<s.to?[new Wt(s.from,s.to)]:[]));u.length&&Bh(u),(u.length||!r.overlay)&&this.inner.push(new zh(r.parser,u.length?r.parser.startParse(this.input,Yh(d,u),u):r.parser.startParse(""),r.overlay?r.overlay.map(h=>new Wt(h.from-s.from,h.to-s.from)):null,!!r.bracketed,s.tree,u.length?u[0].from:s.from)),r.overlay?u.length&&(i={ranges:u,depth:0,prev:i}):o=!1}}else if(n&&(c=n.predicate(s))&&(c===!0&&(c=new Wt(s.from,s.to)),c.from<c.to)){let d=n.ranges.length-1;d>=0&&n.ranges[d].to==c.from?n.ranges[d]={from:n.ranges[d].from,to:c.to}:n.ranges.push(c)}if(o&&s.firstChild())n&&n.depth++,i&&i.depth++;else for(;!s.nextSibling();){if(!s.parent())break e;if(n&&!--n.depth){let d=Uh(this.ranges,n.ranges);d.length&&(Bh(d),this.inner.splice(n.index,0,new zh(n.parser,n.parser.startParse(this.input,Yh(n.mounts,d),d),n.ranges.map(u=>new Wt(u.from-n.start,u.to-n.start)),n.bracketed,n.target,d[0].from))),n=n.prev}i&&!--i.depth&&(i=i.prev)}}}}function ow(t,e,n){for(let i of t){if(i.from>=n)break;if(i.to>e)return i.from<=e&&i.to>=n?2:1}return 0}function Vh(t,e,n,i,s,r){if(e<n){let a=t.buffer[e+1];i.push(t.slice(e,n,a)),s.push(a-r)}}function lw(t){let{node:e}=t,n=[],i=e.context.buffer;do n.push(t.index),t.parent();while(!t.tree);let s=t.tree,r=s.children.indexOf(i),a=s.children[r],o=a.buffer,c=[r];function d(u,h,f,p,O,g){let x=n[g],b=[],y=[];Vh(a,u,x,b,y,p);let S=o[x+1],P=o[x+2];c.push(b.length);let w=g?d(x+4,o[x+3],a.set.types[o[x]],S,P-S,g-1):e.toTree();return b.push(w),y.push(S-p),Vh(a,o[x+3],h,b,y,p),new Ke(f,b,y,O)}s.children[r]=d(0,o.length,kt.none,0,a.length,n.length-1);for(let u of c){let h=t.tree.children[u],f=t.tree.positions[u];t.yield(new Yt(h,f+t.from,u,t._tree))}}class Fh{constructor(e,n){this.offset=n,this.done=!1,this.cursor=e.cursor(qe.IncludeAnonymous|qe.IgnoreMounts)}moveTo(e){let{cursor:n}=this,i=e-this.offset;for(;!this.done&&n.from<i;)n.to>=e&&n.enter(i,1,qe.IgnoreOverlays|qe.ExcludeBuffers)||n.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let n=this.cursor.tree;;){if(n==e.tree)return!0;if(n.children.length&&n.positions[0]==0&&n.children[0]instanceof Ke)n=n.children[0];else break}return!1}}let cw=class{constructor(e){var n;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let i=this.curFrag=e[0];this.curTo=(n=i.tree.prop(mc))!==null&&n!==void 0?n:i.to,this.inner=new Fh(i.tree,-i.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let n=this.curFrag=this.fragments[this.fragI];this.curTo=(e=n.tree.prop(mc))!==null&&e!==void 0?e:n.to,this.inner=new Fh(n.tree,-n.offset)}}findMounts(e,n){var i;let s=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let r=this.inner.cursor.node;r;r=r.parent){let a=(i=r.tree)===null||i===void 0?void 0:i.prop(Re.mounted);if(a&&a.parser==n)for(let o=this.fragI;o<this.fragments.length;o++){let c=this.fragments[o];if(c.from>=r.to)break;c.tree==this.curFrag.tree&&s.push({frag:c,pos:r.from-c.offset,mount:a})}}}return s}};function Uh(t,e){let n=null,i=e;for(let s=1,r=0;s<t.length;s++){let a=t[s-1].to,o=t[s].from;for(;r<i.length;r++){let c=i[r];if(c.from>=o)break;c.to<=a||(n||(i=n=e.slice()),c.from<a?(n[r]=new Wt(c.from,a),c.to>o&&n.splice(r+1,0,new Wt(o,c.to))):c.to>o?n[r--]=new Wt(o,c.to):n.splice(r--,1))}}return i}function dw(t,e,n,i){let s=0,r=0,a=!1,o=!1,c=-1e9,d=[];for(;;){let u=s==t.length?1e9:a?t[s].to:t[s].from,h=r==e.length?1e9:o?e[r].to:e[r].from;if(a!=o){let f=Math.max(c,n),p=Math.min(u,h,i);f<p&&d.push(new Wt(f,p))}if(c=Math.min(u,h),c==1e9)break;u==c&&(a?(a=!1,s++):a=!0),h==c&&(o?(o=!1,r++):o=!0)}return d}function Yh(t,e){let n=[];for(let{pos:i,mount:s,frag:r}of t){let a=i+(s.overlay?s.overlay[0].from:0),o=a+s.tree.length,c=Math.max(r.from,a),d=Math.min(r.to,o);if(s.overlay){let u=s.overlay.map(f=>new Wt(f.from+i,f.to+i)),h=dw(e,u,c,d);for(let f=0,p=c;;f++){let O=f==h.length,g=O?d:h[f].from;if(g>p&&n.push(new Mn(p,g,s.tree,-a,r.from>=p||r.openStart,r.to<=g||r.openEnd)),O)break;p=h[f].to}}else n.push(new Mn(c,d,s.tree,-a,r.from>=a||r.openStart,r.to<=o||r.openEnd))}return n}var Gh={};class La{constructor(e,n,i,s,r,a,o,c,d,u=0,h){this.p=e,this.stack=n,this.state=i,this.reducePos=s,this.pos=r,this.score=a,this.buffer=o,this.bufferBase=c,this.curContext=d,this.lookAhead=u,this.parent=h}toString(){return`[${this.stack.filter((e,n)=>n%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,n,i=0){let s=e.parser.context;return new La(e,[],n,i,i,0,[],0,s?new Hh(s,s.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,n){this.stack.push(this.state,n,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var n;let i=e>>19,s=e&65535,{parser:r}=this.p,a=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),o=r.dynamicPrecedence(s);if(o&&(this.score+=o),i==0){this.pushState(r.getGoto(this.state,s,!0),this.reducePos),s<r.minRepeatTerm&&this.storeNode(s,this.reducePos,this.reducePos,a?8:4,!0),this.reduceContext(s,this.reducePos);return}let c=this.stack.length-(i-1)*3-(e&262144?6:0),d=c?this.stack[c-2]:this.p.ranges[0].from,u=this.reducePos-d;u>=2e3&&!(!((n=this.p.parser.nodeSet.types[s])===null||n===void 0)&&n.isAnonymous)&&(d==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=d,this.p.lastBigReductionSize=u));let h=c?this.stack[c-1]:0,f=this.bufferBase+this.buffer.length-h;if(s<r.minRepeatTerm||e&131072){let p=r.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(s,d,p,f+4,!0)}if(e&262144)this.state=this.stack[c];else{let p=this.stack[c-3];this.state=r.getGoto(p,s,!0)}for(;this.stack.length>c;)this.stack.pop();this.reduceContext(s,d)}storeNode(e,n,i,s=4,r=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let a=this,o=this.buffer.length;if(o==0&&a.parent&&(o=a.bufferBase-a.parent.bufferBase,a=a.parent),o>0&&a.buffer[o-4]==0&&a.buffer[o-1]>-1){if(n==i)return;if(a.buffer[o-2]>=n){a.buffer[o-2]=i;return}}}if(!r||this.pos==i)this.buffer.push(e,n,i,s);else{let a=this.buffer.length;if(a>0&&(this.buffer[a-4]!=0||this.buffer[a-1]<0)){let o=!1;for(let c=a;c>0&&this.buffer[c-2]>i;c-=4)if(this.buffer[c-1]>=0){o=!0;break}if(o)for(;a>0&&this.buffer[a-2]>i;)this.buffer[a]=this.buffer[a-4],this.buffer[a+1]=this.buffer[a-3],this.buffer[a+2]=this.buffer[a-2],this.buffer[a+3]=this.buffer[a-1],a-=4,s>4&&(s-=4)}this.buffer[a]=e,this.buffer[a+1]=n,this.buffer[a+2]=i,this.buffer[a+3]=s}}shift(e,n,i,s){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let r=e,{parser:a}=this.p;this.pos=s;let o=a.stateFlag(r,1);!o&&(s>i||n<=a.maxNode)&&(this.reducePos=s),this.pushState(r,o?i:Math.min(i,this.reducePos)),this.shiftContext(n,i),n<=a.maxNode&&this.buffer.push(n,i,s,4)}else this.pos=s,this.shiftContext(n,i),n<=this.p.parser.maxNode&&this.buffer.push(n,i,s,4)}apply(e,n,i,s){e&65536?this.reduce(e):this.shift(e,n,i,s)}useNode(e,n){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let s=this.pos;this.reducePos=this.pos=s+e.length,this.pushState(n,s),this.buffer.push(i,s,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,n=e.buffer.length;for(;n>0&&e.buffer[n-2]>e.reducePos;)n-=4;let i=e.buffer.slice(n),s=e.bufferBase+n;for(;e&&s==e.bufferBase;)e=e.parent;return new La(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,s,this.curContext,this.lookAhead,e)}recoverByDelete(e,n){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,n,4),this.storeNode(0,this.pos,n,i?8:4),this.pos=this.reducePos=n,this.score-=190}canShift(e){for(let n=new uw(this);;){let i=this.p.parser.stateSlot(n.state,4)||this.p.parser.hasAction(n.state,e);if(i==0)return!1;if((i&65536)==0)return!0;n.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let n=this.p.parser.nextStates(this.state);if(n.length>8||this.stack.length>=120){let s=[];for(let r=0,a;r<n.length;r+=2)(a=n[r+1])!=this.state&&this.p.parser.hasAction(a,e)&&s.push(n[r],a);if(this.stack.length<120)for(let r=0;s.length<8&&r<n.length;r+=2){let a=n[r+1];s.some((o,c)=>c&1&&o==a)||s.push(n[r],a)}n=s}let i=[];for(let s=0;s<n.length&&i.length<4;s+=2){let r=n[s+1];if(r==this.state)continue;let a=this.split();a.pushState(r,this.pos),a.storeNode(0,a.pos,a.pos,4,!0),a.shiftContext(n[s],this.pos),a.reducePos=this.pos,a.score-=200,i.push(a)}return i}forceReduce(){let{parser:e}=this.p,n=e.stateSlot(this.state,5);if((n&65536)==0)return!1;if(!e.validAction(this.state,n)){let i=n>>19,s=n&65535,r=this.stack.length-i*3;if(r<0||e.getGoto(this.stack[r],s,!1)<0){let a=this.findForcedReduction();if(a==null)return!1;n=a}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(n),!0}findForcedReduction(){let{parser:e}=this.p,n=[],i=(s,r)=>{if(!n.includes(s))return n.push(s),e.allActions(s,a=>{if(!(a&393216))if(a&65536){let o=(a>>19)-r;if(o>1){let c=a&65535,d=this.stack.length-o*3;if(d>=0&&e.getGoto(this.stack[d],c,!1)>=0)return o<<19|65536|c}}else{let o=i(a,r+1);if(o!=null)return o}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let n=0;n<this.stack.length;n+=3)if(this.stack[n]!=e.stack[n])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,n){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(n)))}reduceContext(e,n){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(n)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let n=new Hh(this.curContext.tracker,e);n.hash!=this.curContext.hash&&this.emitContext(),this.curContext=n}}setLookAhead(e){return e<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=e,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class Hh{constructor(e,n){this.tracker=e,this.context=n,this.hash=e.strict?e.hash(n):0}}class uw{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let n=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let s=this.start.p.parser.getGoto(this.stack[this.base-3],n,!0);this.state=s}}class Xa{constructor(e,n,i){this.stack=e,this.pos=n,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,n=e.bufferBase+e.buffer.length){return new Xa(e,n,n-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new Xa(this.stack,this.pos,this.index)}}function $s(t,e=Uint16Array){if(typeof t!="string")return t;let n=null;for(let i=0,s=0;i<t.length;){let r=0;for(;;){let a=t.charCodeAt(i++),o=!1;if(a==126){r=65535;break}a>=92&&a--,a>=34&&a--;let c=a-32;if(c>=46&&(c-=46,o=!0),r+=c,o)break;r*=46}n?n[s++]=r:n=new e(r)}return n}class Oa{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const Kh=new Oa;class hw{constructor(e,n){this.input=e,this.ranges=n,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Kh,this.rangeIndex=0,this.pos=this.chunkPos=n[0].from,this.range=n[0],this.end=n[n.length-1].to,this.readNext()}resolveOffset(e,n){let i=this.range,s=this.rangeIndex,r=this.pos+e;for(;r<i.from;){if(!s)return null;let a=this.ranges[--s];r-=i.from-a.to,i=a}for(;n<0?r>i.to:r>=i.to;){if(s==this.ranges.length-1)return null;let a=this.ranges[++s];r+=a.from-i.to,i=a}return r}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let n of this.ranges)if(n.to>e)return Math.max(e,n.from);return this.end}peek(e){let n=this.chunkOff+e,i,s;if(n>=0&&n<this.chunk.length)i=this.pos+e,s=this.chunk.charCodeAt(n);else{let r=this.resolveOffset(e,1);if(r==null)return-1;if(i=r,i>=this.chunk2Pos&&i<this.chunk2Pos+this.chunk2.length)s=this.chunk2.charCodeAt(i-this.chunk2Pos);else{let a=this.rangeIndex,o=this.range;for(;o.to<=i;)o=this.ranges[++a];this.chunk2=this.input.chunk(this.chunk2Pos=i),i+this.chunk2.length>o.to&&(this.chunk2=this.chunk2.slice(0,o.to-i)),s=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),s}acceptToken(e,n=0){let i=n?this.resolveOffset(n,-1):this.pos;if(i==null||i<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=i}acceptTokenTo(e,n){this.token.value=e,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:n}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=n,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),n=this.pos+e.length;this.chunk=n>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,n){if(n?(this.token=n,n.start=e,n.lookAhead=e+1,n.value=n.extended=-1):this.token=Kh,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,n){if(e>=this.chunkPos&&n<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,n-this.chunkPos);if(e>=this.chunk2Pos&&n<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,n-this.chunk2Pos);if(e>=this.range.from&&n<=this.range.to)return this.input.read(e,n);let i="";for(let s of this.ranges){if(s.from>=n)break;s.to>e&&(i+=this.input.read(Math.max(s.from,e),Math.min(s.to,n)))}return i}}class Hi{constructor(e,n){this.data=e,this.id=n}token(e,n){let{parser:i}=n.p;VO(this.data,e,n,this.id,i.data,i.tokenPrecTable)}}Hi.prototype.contextual=Hi.prototype.fallback=Hi.prototype.extend=!1;class Za{constructor(e,n,i){this.precTable=n,this.elseToken=i,this.data=typeof e=="string"?$s(e):e}token(e,n){let i=e.pos,s=0;for(;;){let r=e.next<0,a=e.resolveOffset(1,1);if(VO(this.data,e,n,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(r||s++,a==null)break;e.reset(a,e.token)}s&&(e.reset(i,e.token),e.acceptToken(this.elseToken,s))}}Za.prototype.contextual=Hi.prototype.fallback=Hi.prototype.extend=!1;class ot{constructor(e,n={}){this.token=e,this.contextual=!!n.contextual,this.fallback=!!n.fallback,this.extend=!!n.extend}}function VO(t,e,n,i,s,r){let a=0,o=1<<i,{dialect:c}=n.p.parser;e:for(;(o&t[a])!=0;){let d=t[a+1];for(let p=a+3;p<d;p+=2)if((t[p+1]&o)>0){let O=t[p];if(c.allows(O)&&(e.token.value==-1||e.token.value==O||fw(O,e.token.value,s,r))){e.acceptToken(O);break}}let u=e.next,h=0,f=t[a+2];if(e.next<0&&f>h&&t[d+f*3-3]==65535){a=t[d+f*3-1];continue e}for(;h<f;){let p=h+f>>1,O=d+p+(p<<1),g=t[O],x=t[O+1]||65536;if(u<g)f=p;else if(u>=x)h=p+1;else{a=t[O+2],e.advance();continue e}}break}}function Jh(t,e,n){for(let i=e,s;(s=t[i])!=65535;i++)if(s==n)return i-e;return-1}function fw(t,e,n,i){let s=Jh(n,i,e);return s<0||Jh(n,i,t)<s}const Mt=typeof process<"u"&&Gh&&/\bparse\b/.test(Gh.LOG);let Ol=null;function ef(t,e,n){let i=t.cursor(qe.IncludeAnonymous);for(i.moveTo(e);;)if(!(n<0?i.childBefore(e):i.childAfter(e)))for(;;){if((n<0?i.to<e:i.from>e)&&!i.type.isError)return n<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(t.length,Math.max(i.from+1,e+25));if(n<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return n<0?0:t.length}}class pw{constructor(e,n){this.fragments=e,this.nodeSet=n,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?ef(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?ef(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let n=this.trees.length-1;if(n<0)return this.nextFragment(),null;let i=this.trees[n],s=this.index[n];if(s==i.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let r=i.children[s],a=this.start[n]+i.positions[s];if(a>e)return this.nextStart=a,null;if(r instanceof Ke){if(a==e){if(a<this.safeFrom)return null;let o=a+r.length;if(o<=this.safeTo){let c=r.prop(Re.lookAhead);if(!c||o+c<this.fragment.to)return r}}this.index[n]++,a+r.length>=Math.max(this.safeFrom,e)&&(this.trees.push(r),this.start.push(a),this.index.push(0))}else this.index[n]++,this.nextStart=a+r.length}}}class Ow{constructor(e,n){this.stream=n,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new Oa)}getActions(e){let n=0,i=null,{parser:s}=e.p,{tokenizers:r}=s,a=s.stateSlot(e.state,3),o=e.curContext?e.curContext.hash:0,c=0;for(let d=0;d<r.length;d++){if((1<<d&a)==0)continue;let u=r[d],h=this.tokens[d];if(!(i&&!u.fallback)&&((u.contextual||h.start!=e.pos||h.mask!=a||h.context!=o)&&(this.updateCachedToken(h,u,e),h.mask=a,h.context=o),h.lookAhead>h.end+25&&(c=Math.max(h.lookAhead,c)),h.value!=0)){let f=n;if(h.extended>-1&&(n=this.addActions(e,h.extended,h.end,n)),n=this.addActions(e,h.value,h.end,n),!u.extend&&(i=h,n>f))break}}for(;this.actions.length>n;)this.actions.pop();return c&&e.setLookAhead(c),!i&&e.pos==this.stream.end&&(i=new Oa,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,n=this.addActions(e,i.value,i.end,n)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let n=new Oa,{pos:i,p:s}=e;return n.start=i,n.end=Math.min(i+1,s.stream.end),n.value=i==s.stream.end?s.parser.eofTerm:0,n}updateCachedToken(e,n,i){let s=this.stream.clipPos(i.pos);if(n.token(this.stream.reset(s,e),i),e.value>-1){let{parser:r}=i.p;for(let a=0;a<r.specialized.length;a++)if(r.specialized[a]==e.value){let o=r.specializers[a](this.stream.read(e.start,e.end),i);if(o>=0&&i.p.parser.dialect.allows(o>>1)){(o&1)==0?e.value=o>>1:e.extended=o>>1;break}}}else e.value=0,e.end=this.stream.clipPos(s+1)}putAction(e,n,i,s){for(let r=0;r<s;r+=3)if(this.actions[r]==e)return s;return this.actions[s++]=e,this.actions[s++]=n,this.actions[s++]=i,s}addActions(e,n,i,s){let{state:r}=e,{parser:a}=e.p,{data:o}=a;for(let c=0;c<2;c++)for(let d=a.stateSlot(r,c?2:1);;d+=3){if(o[d]==65535)if(o[d+1]==1)d=Nn(o,d+2);else{s==0&&o[d+1]==2&&(s=this.putAction(Nn(o,d+2),n,i,s));break}o[d]==n&&(s=this.putAction(Nn(o,d+1),n,i,s))}return s}}class mw{constructor(e,n,i,s){this.parser=e,this.input=n,this.ranges=s,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new hw(n,s),this.tokens=new Ow(e,this.stream),this.topTerm=e.top[1];let{from:r}=s[0];this.stacks=[La.start(this,e.top[0],r)],this.fragments=i.length&&this.stream.end-r>e.bufferLength*4?new pw(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,n=this.minStackPos,i=this.stacks=[],s,r;if(this.bigReductionCount>300&&e.length==1){let[a]=e;for(;a.forceReduce()&&a.stack.length&&a.stack[a.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let a=0;a<e.length;a++){let o=e[a];for(;;){if(this.tokens.mainToken=null,o.pos>n)i.push(o);else{if(this.advanceStack(o,i,e))continue;{s||(s=[],r=[]),s.push(o);let c=this.tokens.getMainToken(o);r.push(c.value,c.end)}}break}}if(!i.length){let a=s&&xw(s);if(a)return Mt&&console.log("Finish with "+this.stackID(a)),this.stackToTree(a);if(this.parser.strict)throw Mt&&s&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+n);this.recovering||(this.recovering=5)}if(this.recovering&&s){let a=this.stoppedAt!=null&&s[0].pos>this.stoppedAt?s[0]:this.runRecovery(s,r,i);if(a)return Mt&&console.log("Force-finish "+this.stackID(a)),this.stackToTree(a.forceAll())}if(this.recovering){let a=this.recovering==1?1:this.recovering*3;if(i.length>a)for(i.sort((o,c)=>c.score-o.score);i.length>a;)i.pop();i.some(o=>o.reducePos>n)&&this.recovering--}else if(i.length>1){e:for(let a=0;a<i.length-1;a++){let o=i[a];for(let c=a+1;c<i.length;c++){let d=i[c];if(o.sameState(d)||o.buffer.length>500&&d.buffer.length>500)if((o.score-d.score||o.buffer.length-d.buffer.length)>0)i.splice(c--,1);else{i.splice(a--,1);continue e}}}i.length>12&&(i.sort((a,o)=>o.score-a.score),i.splice(12,i.length-12))}this.minStackPos=i[0].pos;for(let a=1;a<i.length;a++)i[a].pos<this.minStackPos&&(this.minStackPos=i[a].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,n,i){let s=e.pos,{parser:r}=this,a=Mt?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&s>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let d=e.curContext&&e.curContext.tracker.strict,u=d?e.curContext.hash:0;for(let h=this.fragments.nodeAt(s);h;){let f=this.parser.nodeSet.types[h.type.id]==h.type?r.getGoto(e.state,h.type.id):-1;if(f>-1&&h.length&&(!d||(h.prop(Re.contextHash)||0)==u))return e.useNode(h,f),Mt&&console.log(a+this.stackID(e)+` (via reuse of ${r.getName(h.type.id)})`),!0;if(!(h instanceof Ke)||h.children.length==0||h.positions[0]>0)break;let p=h.children[0];if(p instanceof Ke&&h.positions[0]==0)h=p;else break}}let o=r.stateSlot(e.state,4);if(o>0)return e.reduce(o),Mt&&console.log(a+this.stackID(e)+` (via always-reduce ${r.getName(o&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let c=this.tokens.getActions(e);for(let d=0;d<c.length;){let u=c[d++],h=c[d++],f=c[d++],p=d==c.length||!i,O=p?e:e.split(),g=this.tokens.mainToken;if(O.apply(u,h,g?g.start:O.pos,f),Mt&&console.log(a+this.stackID(O)+` (via ${(u&65536)==0?"shift":`reduce of ${r.getName(u&65535)}`} for ${r.getName(h)} @ ${s}${O==e?"":", split"})`),p)return!0;O.pos>s?n.push(O):i.push(O)}return!1}advanceFully(e,n){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return tf(e,n),!0}}runRecovery(e,n,i){let s=null,r=!1;for(let a=0;a<e.length;a++){let o=e[a],c=n[a<<1],d=n[(a<<1)+1],u=Mt?this.stackID(o)+" -> ":"";if(o.deadEnd&&(r||(r=!0,o.restart(),Mt&&console.log(u+this.stackID(o)+" (restarted)"),this.advanceFully(o,i))))continue;let h=o.split(),f=u;for(let p=0;p<10&&h.forceReduce()&&(Mt&&console.log(f+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,i));p++)Mt&&(f=this.stackID(h)+" -> ");for(let p of o.recoverByInsert(c))Mt&&console.log(u+this.stackID(p)+" (via recover-insert)"),this.advanceFully(p,i);this.stream.end>o.pos?(d==o.pos&&(d++,c=0),o.recoverByDelete(c,d),Mt&&console.log(u+this.stackID(o)+` (via recover-delete ${this.parser.getName(c)})`),tf(o,i)):(!s||s.score<h.score)&&(s=h)}return s}stackToTree(e){return e.close(),Ke.build({buffer:Xa.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let n=(Ol||(Ol=new WeakMap)).get(e);return n||Ol.set(e,n=String.fromCodePoint(this.nextStackID++)),n+e}}function tf(t,e){for(let n=0;n<e.length;n++){let i=e[n];if(i.pos==t.pos&&i.sameState(t)){e[n].score<t.score&&(e[n]=t);return}}e.push(t)}class gw{constructor(e,n,i){this.source=e,this.flags=n,this.disabled=i}allows(e){return!this.disabled||this.disabled[e]==0}}const ml=t=>t;class Co{constructor(e){this.start=e.start,this.shift=e.shift||ml,this.reduce=e.reduce||ml,this.reuse=e.reuse||ml,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class Sn extends BO{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let n=e.nodeNames.split(" ");this.minRepeatTerm=n.length;for(let o=0;o<e.repeatNodeCount;o++)n.push("");let i=Object.keys(e.topRules).map(o=>e.topRules[o][1]),s=[];for(let o=0;o<n.length;o++)s.push([]);function r(o,c,d){s[o].push([c,c.deserialize(String(d))])}if(e.nodeProps)for(let o of e.nodeProps){let c=o[0];typeof c=="string"&&(c=Re[c]);for(let d=1;d<o.length;){let u=o[d++];if(u>=0)r(u,c,o[d++]);else{let h=o[d+-u];for(let f=-u;f>0;f--)r(o[d++],c,h);d++}}}this.nodeSet=new Md(n.map((o,c)=>kt.define({name:c>=this.minRepeatTerm?void 0:o,id:c,props:s[c],top:i.indexOf(c)>-1,error:c==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(c)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=DO;let a=$s(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let o=0;o<this.specializerSpecs.length;o++)this.specialized[o]=this.specializerSpecs[o].term;this.specializers=this.specializerSpecs.map(nf),this.states=$s(e.states,Uint32Array),this.data=$s(e.stateData),this.goto=$s(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(o=>typeof o=="number"?new Hi(a,o):o),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,n,i){let s=new mw(this,e,n,i);for(let r of this.wrappers)s=r(s,e,n,i);return s}getGoto(e,n,i=!1){let s=this.goto;if(n>=s[0])return-1;for(let r=s[n+1];;){let a=s[r++],o=a&1,c=s[r++];if(o&&i)return c;for(let d=r+(a>>1);r<d;r++)if(s[r]==e)return c;if(o)return-1}}hasAction(e,n){let i=this.data;for(let s=0;s<2;s++)for(let r=this.stateSlot(e,s?2:1),a;;r+=3){if((a=i[r])==65535)if(i[r+1]==1)a=i[r=Nn(i,r+2)];else{if(i[r+1]==2)return Nn(i,r+2);break}if(a==n||a==0)return Nn(i,r+1)}return 0}stateSlot(e,n){return this.states[e*6+n]}stateFlag(e,n){return(this.stateSlot(e,0)&n)>0}validAction(e,n){return!!this.allActions(e,i=>i==n?!0:null)}allActions(e,n){let i=this.stateSlot(e,4),s=i?n(i):void 0;for(let r=this.stateSlot(e,1);s==null;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=Nn(this.data,r+2);else break;s=n(Nn(this.data,r+1))}return s}nextStates(e){let n=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=Nn(this.data,i+2);else break;if((this.data[i+2]&1)==0){let s=this.data[i+1];n.some((r,a)=>a&1&&r==s)||n.push(this.data[i],s)}}return n}configure(e){let n=Object.assign(Object.create(Sn.prototype),this);if(e.props&&(n.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);n.top=i}return e.tokenizers&&(n.tokenizers=this.tokenizers.map(i=>{let s=e.tokenizers.find(r=>r.from==i);return s?s.to:i})),e.specializers&&(n.specializers=this.specializers.slice(),n.specializerSpecs=this.specializerSpecs.map((i,s)=>{let r=e.specializers.find(o=>o.from==i.external);if(!r)return i;let a=Object.assign(Object.assign({},i),{external:r.to});return n.specializers[s]=nf(a),a})),e.contextTracker&&(n.context=e.contextTracker),e.dialect&&(n.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(n.strict=e.strict),e.wrap&&(n.wrappers=n.wrappers.concat(e.wrap)),e.bufferLength!=null&&(n.bufferLength=e.bufferLength),n}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let n=this.dynamicPrecedences;return n==null?0:n[e]||0}parseDialect(e){let n=Object.keys(this.dialects),i=n.map(()=>!1);if(e)for(let r of e.split(" ")){let a=n.indexOf(r);a>=0&&(i[a]=!0)}let s=null;for(let r=0;r<n.length;r++)if(!i[r])for(let a=this.dialects[n[r]],o;(o=this.data[a++])!=65535;)(s||(s=new Uint8Array(this.maxTerm+1)))[o]=1;return new gw(e,i,s)}static deserialize(e){return new Sn(e)}}function Nn(t,e){return t[e]|t[e+1]<<16}function xw(t){let e=null;for(let n of t){let i=n.p.stoppedAt;(n.pos==n.p.stream.end||i!=null&&n.pos>i)&&n.p.parser.stateFlag(n.state,2)&&(!e||e.score<n.score)&&(e=n)}return e}function nf(t){if(t.external){let e=t.extend?1:0;return(n,i)=>t.external(n,i)<<1|e}return t.get}let bw=0;class qt{constructor(e,n,i,s){this.name=e,this.set=n,this.base=i,this.modified=s,this.id=bw++}toString(){let{name:e}=this;for(let n of this.modified)n.name&&(e=`${n.name}(${e})`);return e}static define(e,n){let i=typeof e=="string"?e:"?";if(e instanceof qt&&(n=e),n!=null&&n.base)throw new Error("Can not derive from a modified tag");let s=new qt(i,[],null,[]);if(s.set.push(s),n)for(let r of n.set)s.set.push(r);return s}static defineModifier(e){let n=new Da(e);return i=>i.modified.indexOf(n)>-1?i:Da.get(i.base||i,i.modified.concat(n).sort((s,r)=>s.id-r.id))}}let yw=0;class Da{constructor(e){this.name=e,this.instances=[],this.id=yw++}static get(e,n){if(!n.length)return e;let i=n[0].instances.find(o=>o.base==e&&vw(n,o.modified));if(i)return i;let s=[],r=new qt(e.name,s,e,n);for(let o of n)o.instances.push(r);let a=Sw(n);for(let o of e.set)if(!o.modified.length)for(let c of a)s.push(Da.get(o,c));return r}}function vw(t,e){return t.length==e.length&&t.every((n,i)=>n==e[i])}function Sw(t){let e=[[]];for(let n=0;n<t.length;n++)for(let i=0,s=e.length;i<s;i++)e.push(e[i].concat(t[n]));return e.sort((n,i)=>i.length-n.length)}function ci(t){let e=Object.create(null);for(let n in t){let i=t[n];Array.isArray(i)||(i=[i]);for(let s of n.split(" "))if(s){let r=[],a=2,o=s;for(let h=0;;){if(o=="..."&&h>0&&h+3==s.length){a=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);if(!f)throw new RangeError("Invalid path: "+s);if(r.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),h+=f[0].length,h==s.length)break;let p=s[h++];if(h==s.length&&p=="!"){a=0;break}if(p!="/")throw new RangeError("Invalid path: "+s);o=s.slice(h)}let c=r.length-1,d=r[c];if(!d)throw new RangeError("Invalid path: "+s);let u=new Ys(i,a,c>0?r.slice(0,c):null);e[d]=u.sort(e[d])}}return FO.add(e)}const FO=new Re({combine(t,e){let n,i,s;for(;t||e;){if(!t||e&&t.depth>=e.depth?(s=e,e=e.next):(s=t,t=t.next),n&&n.mode==s.mode&&!s.context&&!n.context)continue;let r=new Ys(s.tags,s.mode,s.context);n?n.next=r:i=r,n=r}return i}});class Ys{constructor(e,n,i,s){this.tags=e,this.mode=n,this.context=i,this.next=s}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}}Ys.empty=new Ys([],2,null);function UO(t,e){let n=Object.create(null);for(let r of t)if(!Array.isArray(r.tag))n[r.tag.id]=r.class;else for(let a of r.tag)n[a.id]=r.class;let{scope:i,all:s=null}=e||{};return{style:r=>{let a=s;for(let o of r)for(let c of o.set){let d=n[c.id];if(d){a=a?a+" "+d:d;break}}return a},scope:i}}function ww(t,e){let n=null;for(let i of t){let s=i.style(e);s&&(n=n?n+" "+s:s)}return n}function kw(t,e,n,i=0,s=t.length){let r=new Qw(i,Array.isArray(e)?e:[e],n);r.highlightRange(t.cursor(),i,s,"",r.highlighters),r.flush(s)}class Qw{constructor(e,n,i){this.at=e,this.highlighters=n,this.span=i,this.class=""}startSpan(e,n){n!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=n)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,n,i,s,r){let{type:a,from:o,to:c}=e;if(o>=i||c<=n)return;a.isTop&&(r=this.highlighters.filter(p=>!p.scope||p.scope(a)));let d=s,u=Cw(e)||Ys.empty,h=ww(r,u.tags);if(h&&(d&&(d+=" "),d+=h,u.mode==1&&(s+=(s?" ":"")+h)),this.startSpan(Math.max(n,o),d),u.opaque)return;let f=e.tree&&e.tree.prop(Re.mounted);if(f&&f.overlay){let p=e.node.enter(f.overlay[0].from+o,1),O=this.highlighters.filter(x=>!x.scope||x.scope(f.tree.type)),g=e.firstChild();for(let x=0,b=o;;x++){let y=x<f.overlay.length?f.overlay[x]:null,S=y?y.from+o:c,P=Math.max(n,b),w=Math.min(i,S);if(P<w&&g)for(;e.from<w&&(this.highlightRange(e,P,w,s,r),this.startSpan(Math.min(w,e.to),d),!(e.to>=S||!e.nextSibling())););if(!y||S>i)break;b=y.to+o,b>n&&(this.highlightRange(p.cursor(),Math.max(n,y.from+o),Math.min(i,b),"",O),this.startSpan(Math.min(i,b),d))}g&&e.parent()}else if(e.firstChild()){f&&(s="");do if(!(e.to<=n)){if(e.from>=i)break;this.highlightRange(e,n,i,s,r),this.startSpan(Math.min(i,e.to),d)}while(e.nextSibling());e.parent()}}}function Cw(t){let e=t.type.prop(FO);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}const ee=qt.define,Lr=ee(),Fn=ee(),sf=ee(Fn),rf=ee(Fn),Un=ee(),Xr=ee(Un),gl=ee(Un),un=ee(),Oi=ee(un),ln=ee(),cn=ee(),gc=ee(),vs=ee(gc),Zr=ee(),k={comment:Lr,lineComment:ee(Lr),blockComment:ee(Lr),docComment:ee(Lr),name:Fn,variableName:ee(Fn),typeName:sf,tagName:ee(sf),propertyName:rf,attributeName:ee(rf),className:ee(Fn),labelName:ee(Fn),namespace:ee(Fn),macroName:ee(Fn),literal:Un,string:Xr,docString:ee(Xr),character:ee(Xr),attributeValue:ee(Xr),number:gl,integer:ee(gl),float:ee(gl),bool:ee(Un),regexp:ee(Un),escape:ee(Un),color:ee(Un),url:ee(Un),keyword:ln,self:ee(ln),null:ee(ln),atom:ee(ln),unit:ee(ln),modifier:ee(ln),operatorKeyword:ee(ln),controlKeyword:ee(ln),definitionKeyword:ee(ln),moduleKeyword:ee(ln),operator:cn,derefOperator:ee(cn),arithmeticOperator:ee(cn),logicOperator:ee(cn),bitwiseOperator:ee(cn),compareOperator:ee(cn),updateOperator:ee(cn),definitionOperator:ee(cn),typeOperator:ee(cn),controlOperator:ee(cn),punctuation:gc,separator:ee(gc),bracket:vs,angleBracket:ee(vs),squareBracket:ee(vs),paren:ee(vs),brace:ee(vs),content:un,heading:Oi,heading1:ee(Oi),heading2:ee(Oi),heading3:ee(Oi),heading4:ee(Oi),heading5:ee(Oi),heading6:ee(Oi),contentSeparator:ee(un),list:ee(un),quote:ee(un),emphasis:ee(un),strong:ee(un),link:ee(un),monospace:ee(un),strikethrough:ee(un),inserted:ee(),deleted:ee(),changed:ee(),invalid:ee(),meta:Zr,documentMeta:ee(Zr),annotation:ee(Zr),processingInstruction:ee(Zr),definition:qt.defineModifier("definition"),constant:qt.defineModifier("constant"),function:qt.defineModifier("function"),standard:qt.defineModifier("standard"),local:qt.defineModifier("local"),special:qt.defineModifier("special")};for(let t in k){let e=k[t];e instanceof qt&&(e.name=t)}UO([{tag:k.link,class:"tok-link"},{tag:k.heading,class:"tok-heading"},{tag:k.emphasis,class:"tok-emphasis"},{tag:k.strong,class:"tok-strong"},{tag:k.keyword,class:"tok-keyword"},{tag:k.atom,class:"tok-atom"},{tag:k.bool,class:"tok-bool"},{tag:k.url,class:"tok-url"},{tag:k.labelName,class:"tok-labelName"},{tag:k.inserted,class:"tok-inserted"},{tag:k.deleted,class:"tok-deleted"},{tag:k.literal,class:"tok-literal"},{tag:k.string,class:"tok-string"},{tag:k.number,class:"tok-number"},{tag:[k.regexp,k.escape,k.special(k.string)],class:"tok-string2"},{tag:k.variableName,class:"tok-variableName"},{tag:k.local(k.variableName),class:"tok-variableName tok-local"},{tag:k.definition(k.variableName),class:"tok-variableName tok-definition"},{tag:k.special(k.variableName),class:"tok-variableName2"},{tag:k.definition(k.propertyName),class:"tok-propertyName tok-definition"},{tag:k.typeName,class:"tok-typeName"},{tag:k.namespace,class:"tok-namespace"},{tag:k.className,class:"tok-className"},{tag:k.macroName,class:"tok-macroName"},{tag:k.propertyName,class:"tok-propertyName"},{tag:k.operator,class:"tok-operator"},{tag:k.comment,class:"tok-comment"},{tag:k.meta,class:"tok-meta"},{tag:k.invalid,class:"tok-invalid"},{tag:k.punctuation,class:"tok-punctuation"}]);const Pw=122,af=1,Tw=123,$w=124,YO=2,jw=125,Aw=3,Nw=4,GO=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Rw=58,_w=40,HO=95,Mw=91,ma=45,Ew=46,Iw=35,Lw=37,Xw=38,Zw=92,Dw=10,qw=42;function Gs(t){return t>=65&&t<=90||t>=97&&t<=122||t>=161}function Zd(t){return t>=48&&t<=57}function of(t){return Zd(t)||t>=97&&t<=102||t>=65&&t<=70}const KO=(t,e,n)=>(i,s)=>{for(let r=!1,a=0,o=0;;o++){let{next:c}=i;if(Gs(c)||c==ma||c==HO||r&&Zd(c))!r&&(c!=ma||o>0)&&(r=!0),a===o&&c==ma&&a++,i.advance();else if(c==Zw&&i.peek(1)!=Dw){if(i.advance(),of(i.next)){do i.advance();while(of(i.next));i.next==32&&i.advance()}else i.next>-1&&i.advance();r=!0}else{r&&i.acceptToken(a==2&&s.canShift(YO)?e:c==_w?n:t);break}}},Ww=new ot(KO(Tw,YO,$w)),zw=new ot(KO(jw,Aw,Nw)),Bw=new ot(t=>{if(GO.includes(t.peek(-1))){let{next:e}=t;(Gs(e)||e==HO||e==Iw||e==Ew||e==qw||e==Mw||e==Rw&&Gs(t.peek(1))||e==ma||e==Xw)&&t.acceptToken(Pw)}}),Vw=new ot(t=>{if(!GO.includes(t.peek(-1))){let{next:e}=t;if(e==Lw&&(t.advance(),t.acceptToken(af)),Gs(e)){do t.advance();while(Gs(t.next)||Zd(t.next));t.acceptToken(af)}}}),Fw=ci({"AtKeyword import charset namespace keyframes media supports":k.definitionKeyword,"from to selector":k.keyword,NamespaceName:k.namespace,KeyframeName:k.labelName,KeyframeRangeName:k.operatorKeyword,TagName:k.tagName,ClassName:k.className,PseudoClassName:k.constant(k.className),IdName:k.labelName,"FeatureName PropertyName":k.propertyName,AttributeName:k.attributeName,NumberLiteral:k.number,KeywordQuery:k.keyword,UnaryQueryOp:k.operatorKeyword,"CallTag ValueName":k.atom,VariableName:k.variableName,Callee:k.operatorKeyword,Unit:k.unit,"UniversalSelector NestingSelector":k.definitionOperator,"MatchOp CompareOp":k.compareOperator,"ChildOp SiblingOp, LogicOp":k.logicOperator,BinOp:k.arithmeticOperator,Important:k.modifier,Comment:k.blockComment,ColorLiteral:k.color,"ParenthesizedContent StringLiteral":k.string,":":k.punctuation,"PseudoOp #":k.derefOperator,"; ,":k.separator,"( )":k.paren,"[ ]":k.squareBracket,"{ }":k.brace}),Uw={__proto__:null,lang:38,"nth-child":38,"nth-last-child":38,"nth-of-type":38,"nth-last-of-type":38,dir:38,"host-context":38,if:84,url:124,"url-prefix":124,domain:124,regexp:124},Yw={__proto__:null,or:98,and:98,not:106,only:106,layer:170},Gw={__proto__:null,selector:112,layer:166},Hw={__proto__:null,"@import":162,"@media":174,"@charset":178,"@namespace":182,"@keyframes":188,"@supports":200,"@scope":204},Kw={__proto__:null,to:207},Jw=Sn.deserialize({version:14,states:"EbQYQdOOO#qQdOOP#xO`OOOOQP'#Cf'#CfOOQP'#Ce'#CeO#}QdO'#ChO$nQaO'#CcO$xQdO'#CkO%TQdO'#DpO%YQdO'#DrO%_QdO'#DuO%_QdO'#DxOOQP'#FV'#FVO&eQhO'#EhOOQS'#FU'#FUOOQS'#Ek'#EkQYQdOOO&lQdO'#EOO&PQhO'#EUO&lQdO'#EWO'aQdO'#EYO'lQdO'#E]O'tQhO'#EcO(VQdO'#EeO(bQaO'#CfO)VQ`O'#D{O)[Q`O'#F`O)gQdO'#F`QOQ`OOP)qO&jO'#CaPOOO)C@t)C@tOOQP'#Cj'#CjOOQP,59S,59SO#}QdO,59SO)|QdO,59VO%TQdO,5:[O%YQdO,5:^O%_QdO,5:aO%_QdO,5:cO%_QdO,5:dO%_QdO'#ErO*XQ`O,58}O*aQdO'#DzOOQS,58},58}OOQP'#Cn'#CnOOQO'#Dn'#DnOOQP,59V,59VO*hQ`O,59VO*mQ`O,59VOOQP'#Dq'#DqOOQP,5:[,5:[OOQO'#Ds'#DsO*rQpO,5:^O+]QaO,5:aO+sQaO,5:dOOQW'#DZ'#DZO,ZQhO'#DdO,xQhO'#FaO'tQhO'#DbO-WQ`O'#DhOOQW'#F['#F[O-]Q`O,5;SO-eQ`O'#DeOOQS-E8i-E8iOOQ['#Cs'#CsO-jQdO'#CtO.QQdO'#CzO.hQdO'#C}O/OQ!pO'#DPO1RQ!jO,5:jOOQO'#DU'#DUO*mQ`O'#DTO1cQ!nO'#FXO3`Q`O'#DVO3eQ`O'#DkOOQ['#FX'#FXO-`Q`O,5:pO3jQ!bO,5:rOOQS'#E['#E[O3rQ`O,5:tO3wQdO,5:tOOQO'#E_'#E_O4PQ`O,5:wO4UQhO,5:}O%_QdO'#DgOOQS,5;P,5;PO-eQ`O,5;PO4^QdO,5;PO4fQdO,5:gO4vQdO'#EtO5TQ`O,5;zO5TQ`O,5;zPOOO'#Ej'#EjP5`O&jO,58{POOO,58{,58{OOQP1G.n1G.nOOQP1G.q1G.qO*hQ`O1G.qO*mQ`O1G.qOOQP1G/v1G/vO5kQpO1G/xO5sQaO1G/{O6ZQaO1G/}O6qQaO1G0OO7XQaO,5;^OOQO-E8p-E8pOOQS1G.i1G.iO7cQ`O,5:fO7hQdO'#DoO7oQdO'#CrOOQP1G/x1G/xO&lQdO1G/xO7vQ!jO'#DZO8UQ!bO,59vO8^QhO,5:OOOQO'#F]'#F]O8XQ!bO,59zO'tQhO,59xO8fQhO'#EvO8sQ`O,5;{O9OQhO,59|O9uQhO'#DiOOQW,5:S,5:SOOQS1G0n1G0nOOQW,5:P,5:PO9|Q!fO'#FYOOQS'#FY'#FYOOQS'#Em'#EmO;^QdO,59`OOQ[,59`,59`O;tQdO,59fOOQ[,59f,59fO<[QdO,59iOOQ[,59i,59iOOQ[,59k,59kO&lQdO,59mO<rQhO'#EQOOQW'#EQ'#EQO=WQ`O1G0UO1[QhO1G0UOOQ[,59o,59oO'tQhO'#DXOOQ[,59q,59qO=]Q#tO,5:VOOQS1G0[1G0[OOQS1G0^1G0^OOQS1G0`1G0`O=hQ`O1G0`O=mQdO'#E`OOQS1G0c1G0cOOQS1G0i1G0iO=xQaO,5:RO-`Q`O1G0kOOQS1G0k1G0kO-eQ`O1G0kO>PQ!fO1G0ROOQO1G0R1G0ROOQO,5;`,5;`O>gQdO,5;`OOQO-E8r-E8rO>tQ`O1G1fPOOO-E8h-E8hPOOO1G.g1G.gOOQP7+$]7+$]OOQP7+%d7+%dO&lQdO7+%dOOQS1G0Q1G0QO?PQaO'#F_O?ZQ`O,5:ZO?`Q!fO'#ElO@^QdO'#FWO@hQ`O,59^O@mQ!bO7+%dO&lQdO1G/bO@uQhO1G/fOOQW1G/j1G/jOOQW1G/d1G/dOAWQhO,5;bOOQO-E8t-E8tOAfQhO'#DZOAtQhO'#F^OBPQ`O'#F^OBUQ`O,5:TOOQS-E8k-E8kOOQ[1G.z1G.zOOQ[1G/Q1G/QOOQ[1G/T1G/TOOQ[1G/X1G/XOBZQdO,5:lOOQS7+%p7+%pOB`Q`O7+%pOBeQhO'#DYOBmQ`O,59sO'tQhO,59sOOQ[1G/q1G/qOBuQ`O1G/qOOQS7+%z7+%zOBzQbO'#DPOOQO'#Eb'#EbOCYQ`O'#EaOOQO'#Ea'#EaOCeQ`O'#EwOCmQdO,5:zOOQS,5:z,5:zOOQ[1G/m1G/mOOQS7+&V7+&VO-`Q`O7+&VOCxQ!fO'#EsO&lQdO'#EsOEPQdO7+%mOOQO7+%m7+%mOOQO1G0z1G0zOEdQ!bO<<IOOElQdO'#EqOEvQ`O,5;yOOQP1G/u1G/uOOQS-E8j-E8jOFOQdO'#EpOFYQ`O,5;rOOQ]1G.x1G.xOOQP<<IO<<IOOFbQdO7+$|OOQO'#D]'#D]OFiQ!bO7+%QOFqQhO'#EoOF{Q`O,5;xO&lQdO,5;xOOQW1G/o1G/oOOQO'#ES'#ESOGTQ`O1G0WOOQS<<I[<<I[O&lQdO,59tOGnQhO1G/_OOQ[1G/_1G/_OGuQ`O1G/_OOQW-E8l-E8lOOQ[7+%]7+%]OOQO,5:{,5:{O=pQdO'#ExOCeQ`O,5;cOOQS,5;c,5;cOOQS-E8u-E8uOOQS1G0f1G0fOOQS<<Iq<<IqOG}Q!fO,5;_OOQS-E8q-E8qOOQO<<IX<<IXOOQPAN>jAN>jOIUQaO,5;]OOQO-E8o-E8oOI`QdO,5;[OOQO-E8n-E8nOOQW<<Hh<<HhOOQW<<Hl<<HlOIjQhO<<HlOI{QhO,5;ZOJWQ`O,5;ZOOQO-E8m-E8mOJ]QdO1G1dOBZQdO'#EuOJgQ`O7+%rOOQW7+%r7+%rOJoQ!bO1G/`OOQ[7+$y7+$yOJzQhO7+$yPKRQ`O'#EnOOQO,5;d,5;dOOQO-E8v-E8vOOQS1G0}1G0}OKWQ`OAN>WO&lQdO1G0uOK]Q`O7+'OOOQO,5;a,5;aOOQO-E8s-E8sOOQW<<I^<<I^OOQ[<<He<<HePOQW,5;Y,5;YOOQWG23rG23rOKeQdO7+&a",stateData:"Kx~O#sOS#tQQ~OW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#oRO~OQiOW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#ohO~O#m$SP~P!dO#tmO~O#ooO~O]qO`rOarOjsOmtO!juO!mwO#nvO~OpzO!^xO~P$SOc!QO#o|O#p}O~O#o!RO~O#o!TO~OW[OZ[O]TO`VOaVOjWOmXO!jYO!mZO#oRO~OS!]Oe!YO!V![O!Y!`O#q!XOp$TP~Ok$TP~P&POQ!jOe!cOm!dOp!eOr!mOt!mOz!kO!`!lO#o!bO#p!hO#}!fO~Ot!qO!`!lO#o!pO~Ot!sO#o!sO~OS!]Oe!YO!V![O!Y!`O#q!XO~Oe!vOpzO#Z!xO~O]YX`YX`!pXaYXjYXmYXpYX!^YX!jYX!mYX#nYX~O`!zO~Ok!{O#m$SXo$SX~O#m$SXo$SX~P!dO#u#OO#v#OO#w#QO~Oc#UO#o|O#p}O~OpzO!^xO~Oo$SP~P!dOe#`O~Oe#aO~Ol#bO!h#cO~O]qO`rOarOjsOmtO~Op!ia!^!ia!j!ia!m!ia#n!iad!ia~P*zOp!la!^!la!j!la!m!la#n!lad!la~P*zOR#gOS!]Oe!YOr#gOt#gO!V![O!Y!`O#q#dO#}!fO~O!R#iO!^#jOk$TXp$TX~Oe#mO~Ok#oOpzO~Oe!vO~O]#rO`#rOd#uOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl#wO~P&lO]#rO`#rOi#rOj#rOk#rOo#yO~P&lOP#zOSsXesXksXvsX!VsX!YsX!usX!wsX#qsX!TsXQsX]sX`sXdsXisXjsXmsXpsXrsXtsXzsX!`sX#osX#psX#}sXlsXosX!^sX!qsX#msX~Ov#{O!u#|O!w#}Ok$TP~P'tOe#aOS#{Xk#{Xv#{X!V#{X!Y#{X!u#{X!w#{X#q#{XQ#{X]#{X`#{Xd#{Xi#{Xj#{Xm#{Xp#{Xr#{Xt#{Xz#{X!`#{X#o#{X#p#{X#}#{Xl#{Xo#{X!^#{X!q#{X#m#{X~Oe$RO~Oe$TO~Ok$VOv#{O~Ok$WO~Ot$XO!`!lO~Op$YO~OpzO!R#iO~OpzO#Z$`O~O!q$bOk!oa#m!oao!oa~P&lOk#hX#m#hXo#hX~P!dOk!{O#m$Sao$Sa~O#u#OO#v#OO#w$hO~Ol$jO!h$kO~Op!ii!^!ii!j!ii!m!ii#n!iid!ii~P*zOp!ki!^!ki!j!ki!m!ki#n!kid!ki~P*zOp!li!^!li!j!li!m!li#n!lid!li~P*zOp#fa!^#fa~P$SOo$lO~Od$RP~P%_Od#zP~P&lO`!PXd}X!R}X!T!PX~O`$sO!T$tO~Od$uO!R#iO~Ok#jXp#jX!^#jX~P'tO!^#jOk$Tap$Ta~O!R#iOk!Uap!Ua!^!Uad!Ua`!Ua~OS!]Oe!YO!V![O!Y!`O#q$yO~Od$QP~P9dOv#{OQ#|X]#|X`#|Xd#|Xe#|Xi#|Xj#|Xk#|Xm#|Xp#|Xr#|Xt#|Xz#|X!`#|X#o#|X#p#|X#}#|Xl#|Xo#|X~O]#rO`#rOd%OOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl%PO~P&lO]#rO`#rOi#rOj#rOk#rOo%QO~P&lOe%SOS!tXk!tX!V!tX!Y!tX#q!tX~Ok%TO~Od%YOt%ZO!a%ZO~Ok%[O~Oo%cO#o%^O#}%]O~Od%dO~P$SOv#{O!^%hO!q%jOk!oi#m!oio!oi~P&lOk#ha#m#hao#ha~P!dOk!{O#m$Sio$Si~O!^%mOd$RX~P$SOd%oO~Ov#{OQ#`Xd#`Xe#`Xm#`Xp#`Xr#`Xt#`Xz#`X!^#`X!`#`X#o#`X#p#`X#}#`X~O!^%qOd#zX~P&lOd%sO~Ol%tOv#{O~OR#gOr#gOt#gO#q%vO#}!fO~O!R#iOk#jap#ja!^#ja~O`!PXd}X!R}X!^}X~O!R#iO!^%xOd$QX~O`%zO~Od%{O~O#o%|O~Ok&OO~O`&PO!R#iO~Od&ROk&QO~Od&UO~OP#zOpsX!^sXdsX~O#}%]Op#TX!^#TX~OpzO!^&WO~Oo&[O#o%^O#}%]O~Ov#{OQ#gXe#gXk#gXm#gXp#gXr#gXt#gXz#gX!^#gX!`#gX!q#gX#m#gX#o#gX#p#gX#}#gXo#gX~O!^%hO!q&`Ok!oq#m!oqo!oq~P&lOl&aOv#{O~Od#eX!^#eX~P%_O!^%mOd$Ra~Od#dX!^#dX~P&lO!^%qOd#za~Od&fO~P&lOd&gO!T&hO~Od#cX!^#cX~P9dO!^%xOd$Qa~O]&mOd&oO~OS#bae#ba!V#ba!Y#ba#q#ba~Od&qO~PG]Od&qOk&rO~Ov#{OQ#gae#gak#gam#gap#gar#gat#gaz#ga!^#ga!`#ga!q#ga#m#ga#o#ga#p#ga#}#gao#ga~Od#ea!^#ea~P$SOd#da!^#da~P&lOR#gOr#gOt#gO#q%vO#}%]O~O!R#iOd#ca!^#ca~O`&xO~O!^%xOd$Qi~P&lO]&mOd&|O~Ov#{Od|ik|i~Od&}O~PG]Ok'OO~Od'PO~O!^%xOd$Qq~Od#cq!^#cq~P&lO#s!a#t#}]#}v!m~",goto:"2h$UPPPPP$VP$YP$c$uP$cP%X$cPP%_PPP%e%o%oPPPPP%oPP%oP&]P%oP%o'W%oP't'w'}'}(^'}P'}P'}P'}'}P(m'}(yP(|PP)p)v$c)|$c*SP$cP$c$cP*Y*{+YP$YP+aP+dP$YP$YP$YP+j$YP+m+p+s+z$YP$YPP$YP,P,V,f,|-[-b-l-r-x.O.U.`.f.l.rPPPPPPPPPPP.x/R/w/z0|P1U1u2O2R2U2[RnQ_^OP`kz!{$dq[OPYZ`kuvwxz!v!{#`$d%mqSOPYZ`kuvwxz!v!{#`$d%mQpTR#RqQ!OVR#SrQ#S!QS$Q!i!jR$i#U!V!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'Q!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QU#g!Y$t&hU%`$Y%b&WR&V%_!V!iac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QR$S!kQ%W$RR&S%Xk!^]bf!Y![!g#i#j#m$P$R%X%xQ#e!YQ${#mQ%w$tQ&j%xR&w&hQ!ygQ#p!`Q$^!xR%f$`R#n!]!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QQ!qdR$X!rQ!PVR#TrQ#S!PR$i#TQ!SWR#VsQ!UXR#WtQ{UQ!wgQ#^yQ#o!_Q$U!nQ$[!uQ$_!yQ%e$^Q&Y%aQ&]%fR&v&XSjPzQ!}kQ$c!{R%k$dZiPkz!{$dR$P!gQ%}%SR&z&mR!rdR!teR$Z!tS%a$Y%bR&t&WV%_$Y%b&WQ#PmR$g#PQ`OSkPzU!a`k$dR$d!{Q$p#aY%p$p%u&d&l'QQ%u$sQ&d%qQ&l%zR'Q&xQ#t!cQ#v!dQ#x!eV$}#t#v#xQ%X$RR&T%XQ%y$zS&k%y&yR&y&lQ%r$pR&e%rQ%n$mR&c%nQyUR#]yQ%i$aR&_%iQ!|jS$e!|$fR$f!}Q&n%}R&{&nQ#k!ZR$x#kQ%b$YR&Z%bQ&X%aR&u&X__OP`kz!{$d^UOP`kz!{$dQ!VYQ!WZQ#XuQ#YvQ#ZwQ#[xQ$]!vQ$m#`R&b%mR$q#aQ!gaQ!oc[#q!c!d!e#t#v#xQ$a!zd$o#a$p$s%q%u%z&d&l&x'QQ$r#cQ%R#{S%g$a%iQ%l$kQ&^%hR&p&P]#s!c!d!e#t#v#xW!Z]b!g$PQ!ufQ#f!YQ#l![Q$v#iQ$w#jQ$z#mS%V$R%XR&i%xQ#h!YQ%w$tR&w&hR$|#mR$n#`QlPR#_zQ!_]Q!nbQ$O!gR%U$P",nodeNames:"⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to AtRule Styles",maxTerm:143,nodeProps:[["isolate",-2,5,36,""],["openedBy",20,"(",28,"[",31,"{"],["closedBy",21,")",29,"]",32,"}"]],propSources:[Fw],skippedNodes:[0,5,106],repeatNodeCount:15,tokenData:"JQ~R!YOX$qX^%i^p$qpq%iqr({rs-ust/itu6Wuv$qvw7Qwx7cxy9Qyz9cz{9h{|:R|}>t}!O?V!O!P?t!P!Q@]!Q![AU![!]BP!]!^B{!^!_C^!_!`DY!`!aDm!a!b$q!b!cEn!c!}$q!}#OG{#O#P$q#P#QH^#Q#R6W#R#o$q#o#pHo#p#q6W#q#rIQ#r#sIc#s#y$q#y#z%i#z$f$q$f$g%i$g#BY$q#BY#BZ%i#BZ$IS$q$IS$I_%i$I_$I|$q$I|$JO%i$JO$JT$q$JT$JU%i$JU$KV$q$KV$KW%i$KW&FU$q&FU&FV%i&FV;'S$q;'S;=`Iz<%lO$q`$tSOy%Qz;'S%Q;'S;=`%c<%lO%Q`%VS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q`%fP;=`<%l%Q~%nh#s~OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Q~'ah#s~!a`OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Qj)OUOy%Qz#]%Q#]#^)b#^;'S%Q;'S;=`%c<%lO%Qj)gU!a`Oy%Qz#a%Q#a#b)y#b;'S%Q;'S;=`%c<%lO%Qj*OU!a`Oy%Qz#d%Q#d#e*b#e;'S%Q;'S;=`%c<%lO%Qj*gU!a`Oy%Qz#c%Q#c#d*y#d;'S%Q;'S;=`%c<%lO%Qj+OU!a`Oy%Qz#f%Q#f#g+b#g;'S%Q;'S;=`%c<%lO%Qj+gU!a`Oy%Qz#h%Q#h#i+y#i;'S%Q;'S;=`%c<%lO%Qj,OU!a`Oy%Qz#T%Q#T#U,b#U;'S%Q;'S;=`%c<%lO%Qj,gU!a`Oy%Qz#b%Q#b#c,y#c;'S%Q;'S;=`%c<%lO%Qj-OU!a`Oy%Qz#h%Q#h#i-b#i;'S%Q;'S;=`%c<%lO%Qj-iS!qY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q~-xWOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c<%lO-u~.gOt~~.jRO;'S-u;'S;=`.s;=`O-u~.vXOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c;=`<%l-u<%lO-u~/fP;=`<%l-uj/nYjYOy%Qz!Q%Q!Q![0^![!c%Q!c!i0^!i#T%Q#T#Z0^#Z;'S%Q;'S;=`%c<%lO%Qj0cY!a`Oy%Qz!Q%Q!Q![1R![!c%Q!c!i1R!i#T%Q#T#Z1R#Z;'S%Q;'S;=`%c<%lO%Qj1WY!a`Oy%Qz!Q%Q!Q![1v![!c%Q!c!i1v!i#T%Q#T#Z1v#Z;'S%Q;'S;=`%c<%lO%Qj1}YrY!a`Oy%Qz!Q%Q!Q![2m![!c%Q!c!i2m!i#T%Q#T#Z2m#Z;'S%Q;'S;=`%c<%lO%Qj2tYrY!a`Oy%Qz!Q%Q!Q![3d![!c%Q!c!i3d!i#T%Q#T#Z3d#Z;'S%Q;'S;=`%c<%lO%Qj3iY!a`Oy%Qz!Q%Q!Q![4X![!c%Q!c!i4X!i#T%Q#T#Z4X#Z;'S%Q;'S;=`%c<%lO%Qj4`YrY!a`Oy%Qz!Q%Q!Q![5O![!c%Q!c!i5O!i#T%Q#T#Z5O#Z;'S%Q;'S;=`%c<%lO%Qj5TY!a`Oy%Qz!Q%Q!Q![5s![!c%Q!c!i5s!i#T%Q#T#Z5s#Z;'S%Q;'S;=`%c<%lO%Qj5zSrY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qd6ZUOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qd6tS!hS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qb7VSZQOy%Qz;'S%Q;'S;=`%c<%lO%Q~7fWOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z<%lO7c~8RRO;'S7c;'S;=`8[;=`O7c~8_XOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z;=`<%l7c<%lO7c~8}P;=`<%l7cj9VSeYOy%Qz;'S%Q;'S;=`%c<%lO%Q~9hOd~n9oUWQvWOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qj:YWvW!mQOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj:wU!a`Oy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Qj;bY!a`#}YOy%Qz!Q%Q!Q![;Z![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj<VY!a`Oy%Qz{%Q{|<u|}%Q}!O<u!O!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj<zU!a`Oy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj=eU!a`#}YOy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj>O[!a`#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj>yS!^YOy%Qz;'S%Q;'S;=`%c<%lO%Qj?[WvWOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj?yU]YOy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Q~@bTvWOy%Qz{@q{;'S%Q;'S;=`%c<%lO%Q~@xS!a`#t~Oy%Qz;'S%Q;'S;=`%c<%lO%QjAZ[#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%QjBUU`YOy%Qz![%Q![!]Bh!];'S%Q;'S;=`%c<%lO%QbBoSaQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjCQSkYOy%Qz;'S%Q;'S;=`%c<%lO%QhCcU!TWOy%Qz!_%Q!_!`Cu!`;'S%Q;'S;=`%c<%lO%QhC|S!TW!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QlDaS!TW!hSOy%Qz;'S%Q;'S;=`%c<%lO%QjDtV!jQ!TWOy%Qz!_%Q!_!`Cu!`!aEZ!a;'S%Q;'S;=`%c<%lO%QbEbS!jQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjEqYOy%Qz}%Q}!OFa!O!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjFfW!a`Oy%Qz!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjGV[iY!a`Oy%Qz}%Q}!OGO!O!Q%Q!Q![GO![!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjHQSmYOy%Qz;'S%Q;'S;=`%c<%lO%QnHcSl^Oy%Qz;'S%Q;'S;=`%c<%lO%QjHtSpYOy%Qz;'S%Q;'S;=`%c<%lO%QjIVSoYOy%Qz;'S%Q;'S;=`%c<%lO%QfIhU!mQOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Q`I}P;=`<%l$q",tokenizers:[Bw,Vw,Ww,zw,1,2,3,4,new Za("m~RRYZ[z{a~~g~aO#v~~dP!P!Qg~lO#w~~",28,129)],topRules:{StyleSheet:[0,6],Styles:[1,105]},dynamicPrecedences:{76:1},specialized:[{term:124,get:t=>Uw[t]||-1},{term:125,get:t=>Yw[t]||-1},{term:4,get:t=>Gw[t]||-1},{term:25,get:t=>Hw[t]||-1},{term:123,get:t=>Kw[t]||-1}],tokenPrec:1963});let xc=[],JO=[];(()=>{let t="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,n=0;e<t.length;e++)(e%2?JO:xc).push(n=n+t[e])})();function ek(t){if(t<768)return!1;for(let e=0,n=xc.length;;){let i=e+n>>1;if(t<xc[i])n=i;else if(t>=JO[i])e=i+1;else return!0;if(e==n)return!1}}function lf(t){return t>=127462&&t<=127487}const cf=8205;function tk(t,e,n=!0,i=!0){return(n?em:nk)(t,e,i)}function em(t,e,n){if(e==t.length)return e;e&&tm(t.charCodeAt(e))&&nm(t.charCodeAt(e-1))&&e--;let i=xl(t,e);for(e+=df(i);e<t.length;){let s=xl(t,e);if(i==cf||s==cf||n&&ek(s))e+=df(s),i=s;else if(lf(s)){let r=0,a=e-2;for(;a>=0&&lf(xl(t,a));)r++,a-=2;if(r%2==0)break;e+=2}else break}return e}function nk(t,e,n){for(;e>0;){let i=em(t,e-2,n);if(i<e)return i;e--}return 0}function xl(t,e){let n=t.charCodeAt(e);if(!nm(n)||e+1==t.length)return n;let i=t.charCodeAt(e+1);return tm(i)?(n-55296<<10)+(i-56320)+65536:n}function tm(t){return t>=56320&&t<57344}function nm(t){return t>=55296&&t<56320}function df(t){return t<65536?1:2}class Ze{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,n,i){[e,n]=ss(this,e,n);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(n,this.length,s,1),fn.from(s,this.length-(n-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,n=this.length){[e,n]=ss(this,e,n);let i=[];return this.decompose(e,n,i,0),fn.from(i,n-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let n=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Ls(this),r=new Ls(e);for(let a=n,o=n;;){if(s.next(a),r.next(a),a=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(o+=s.value.length,s.done||o>=i)return!0}}iter(e=1){return new Ls(this,e)}iterRange(e,n=this.length){return new im(this,e,n)}iterLines(e,n){let i;if(e==null)i=this.iter();else{n==null&&(n=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,n==this.lines+1?this.length:n<=1?0:this.line(n-1).to))}return new sm(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?Ze.empty:e.length<=32?new it(e):fn.from(it.split(e,[]))}}class it extends Ze{constructor(e,n=ik(e)){super(),this.text=e,this.length=n}get lines(){return this.text.length}get children(){return null}lineInner(e,n,i,s){for(let r=0;;r++){let a=this.text[r],o=s+a.length;if((n?i:o)>=e)return new sk(s,o,i,a);s=o+1,i++}}decompose(e,n,i,s){let r=e<=0&&n>=this.length?this:new it(uf(this.text,e,n),Math.min(n,this.length)-Math.max(0,e));if(s&1){let a=i.pop(),o=ga(r.text,a.text.slice(),0,r.length);if(o.length<=32)i.push(new it(o,a.length+r.length));else{let c=o.length>>1;i.push(new it(o.slice(0,c)),new it(o.slice(c)))}}else i.push(r)}replace(e,n,i){if(!(i instanceof it))return super.replace(e,n,i);[e,n]=ss(this,e,n);let s=ga(this.text,ga(i.text,uf(this.text,0,e)),n),r=this.length+i.length-(n-e);return s.length<=32?new it(s,r):fn.from(it.split(s,[]),r)}sliceString(e,n=this.length,i=`
|
|
27
|
+
`){[e,n]=ss(this,e,n);let s="";for(let r=0,a=0;r<=n&&a<this.text.length;a++){let o=this.text[a],c=r+o.length;r>e&&a&&(s+=i),e<c&&n>r&&(s+=o.slice(Math.max(0,e-r),n-r)),r=c+1}return s}flatten(e){for(let n of this.text)e.push(n)}scanIdentical(){return 0}static split(e,n){let i=[],s=-1;for(let r of e)i.push(r),s+=r.length+1,i.length==32&&(n.push(new it(i,s)),i=[],s=-1);return s>-1&&n.push(new it(i,s)),n}}class fn extends Ze{constructor(e,n){super(),this.children=e,this.length=n,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,n,i,s){for(let r=0;;r++){let a=this.children[r],o=s+a.length,c=i+a.lines-1;if((n?c:o)>=e)return a.lineInner(e,n,i,s);s=o+1,i=c+1}}decompose(e,n,i,s){for(let r=0,a=0;a<=n&&r<this.children.length;r++){let o=this.children[r],c=a+o.length;if(e<=c&&n>=a){let d=s&((a<=e?1:0)|(c>=n?2:0));a>=e&&c<=n&&!d?i.push(o):o.decompose(e-a,n-a,i,d)}a=c+1}}replace(e,n,i){if([e,n]=ss(this,e,n),i.lines<this.lines)for(let s=0,r=0;s<this.children.length;s++){let a=this.children[s],o=r+a.length;if(e>=r&&n<=o){let c=a.replace(e-r,n-r,i),d=this.lines-a.lines+c.lines;if(c.lines<d>>4&&c.lines>d>>6){let u=this.children.slice();return u[s]=c,new fn(u,this.length-(n-e)+i.length)}return super.replace(r,o,c)}r=o+1}return super.replace(e,n,i)}sliceString(e,n=this.length,i=`
|
|
28
|
+
`){[e,n]=ss(this,e,n);let s="";for(let r=0,a=0;r<this.children.length&&a<=n;r++){let o=this.children[r],c=a+o.length;a>e&&r&&(s+=i),e<c&&n>a&&(s+=o.sliceString(e-a,n-a,i)),a=c+1}return s}flatten(e){for(let n of this.children)n.flatten(e)}scanIdentical(e,n){if(!(e instanceof fn))return 0;let i=0,[s,r,a,o]=n>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=n,r+=n){if(s==a||r==o)return i;let c=this.children[s],d=e.children[r];if(c!=d)return i+c.scanIdentical(d,n);i+=c.length+1}}static from(e,n=e.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let p of e)i+=p.lines;if(i<32){let p=[];for(let O of e)O.flatten(p);return new it(p,n)}let s=Math.max(32,i>>5),r=s<<1,a=s>>1,o=[],c=0,d=-1,u=[];function h(p){let O;if(p.lines>r&&p instanceof fn)for(let g of p.children)h(g);else p.lines>a&&(c>a||!c)?(f(),o.push(p)):p instanceof it&&c&&(O=u[u.length-1])instanceof it&&p.lines+O.lines<=32?(c+=p.lines,d+=p.length+1,u[u.length-1]=new it(O.text.concat(p.text),O.length+1+p.length)):(c+p.lines>s&&f(),c+=p.lines,d+=p.length+1,u.push(p))}function f(){c!=0&&(o.push(u.length==1?u[0]:fn.from(u,d)),d=-1,c=u.length=0)}for(let p of e)h(p);return f(),o.length==1?o[0]:new fn(o,n)}}Ze.empty=new it([""],0);function ik(t){let e=-1;for(let n of t)e+=n.length+1;return e}function ga(t,e,n=0,i=1e9){for(let s=0,r=0,a=!0;r<t.length&&s<=i;r++){let o=t[r],c=s+o.length;c>=n&&(c>i&&(o=o.slice(0,i-s)),s<n&&(o=o.slice(n-s)),a?(e[e.length-1]+=o,a=!1):e.push(o)),s=c+1}return e}function uf(t,e,n){return ga(t,[""],e,n)}class Ls{constructor(e,n=1){this.dir=n,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[n>0?1:(e instanceof it?e.text.length:e.children.length)<<1]}nextInner(e,n){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],a=r>>1,o=s instanceof it?s.text.length:s.children.length;if(a==(n>0?o:0)){if(i==0)return this.done=!0,this.value="",this;n>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(n>0?0:1)){if(this.offsets[i]+=n,e==0)return this.lineBreak=!0,this.value=`
|
|
29
|
+
`,this;e--}else if(s instanceof it){let c=s.text[a+(n<0?-1:0)];if(this.offsets[i]+=n,c.length>Math.max(0,e))return this.value=e==0?c:n>0?c.slice(e):c.slice(0,c.length-e),this;e-=c.length}else{let c=s.children[a+(n<0?-1:0)];e>c.length?(e-=c.length,this.offsets[i]+=n):(n<0&&this.offsets[i]--,this.nodes.push(c),this.offsets.push(n>0?1:(c instanceof it?c.text.length:c.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class im{constructor(e,n,i){this.value="",this.done=!1,this.cursor=new Ls(e,n>i?-1:1),this.pos=n>i?e.length:0,this.from=Math.min(n,i),this.to=Math.max(n,i)}nextInner(e,n){if(n<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,n<0?this.pos-this.to:this.from-this.pos);let i=n<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*n,this.value=s.length<=i?s:n<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class sm{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:n,lineBreak:i,value:s}=this.inner.next(e);return n&&this.afterBreak?(this.value="",this.afterBreak=!1):n?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(Ze.prototype[Symbol.iterator]=function(){return this.iter()},Ls.prototype[Symbol.iterator]=im.prototype[Symbol.iterator]=sm.prototype[Symbol.iterator]=function(){return this});class sk{constructor(e,n,i,s){this.from=e,this.to=n,this.number=i,this.text=s}get length(){return this.to-this.from}}function ss(t,e,n){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,n))]}function ut(t,e,n=!0,i=!0){return tk(t,e,n,i)}function rk(t){return t>=56320&&t<57344}function ak(t){return t>=55296&&t<56320}function Tt(t,e){let n=t.charCodeAt(e);if(!ak(n)||e+1==t.length)return n;let i=t.charCodeAt(e+1);return rk(i)?(n-55296<<10)+(i-56320)+65536:n}function Dd(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function pn(t){return t<65536?1:2}const bc=/\r\n?|\n/;var Ot=(function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t})(Ot||(Ot={}));class yn{constructor(e){this.sections=e}get length(){let e=0;for(let n=0;n<this.sections.length;n+=2)e+=this.sections[n];return e}get newLength(){let e=0;for(let n=0;n<this.sections.length;n+=2){let i=this.sections[n+1];e+=i<0?this.sections[n]:i}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let n=0,i=0,s=0;n<this.sections.length;){let r=this.sections[n++],a=this.sections[n++];a<0?(e(i,s,r),s+=r):s+=a,i+=r}}iterChangedRanges(e,n=!1){yc(this,e,n)}get invertedDesc(){let e=[];for(let n=0;n<this.sections.length;){let i=this.sections[n++],s=this.sections[n++];s<0?e.push(i,s):e.push(s,i)}return new yn(e)}composeDesc(e){return this.empty?e:e.empty?this:rm(this,e)}mapDesc(e,n=!1){return e.empty?this:vc(this,e,n)}mapPos(e,n=-1,i=Ot.Simple){let s=0,r=0;for(let a=0;a<this.sections.length;){let o=this.sections[a++],c=this.sections[a++],d=s+o;if(c<0){if(d>e)return r+(e-s);r+=o}else{if(i!=Ot.Simple&&d>=e&&(i==Ot.TrackDel&&s<e&&d>e||i==Ot.TrackBefore&&s<e||i==Ot.TrackAfter&&d>e))return null;if(d>e||d==e&&n<0&&!o)return e==s||n<0?r:r+c;r+=c}s=d}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return r}touchesRange(e,n=e){for(let i=0,s=0;i<this.sections.length&&s<=n;){let r=this.sections[i++],a=this.sections[i++],o=s+r;if(a>=0&&s<=n&&o>=e)return s<e&&o>n?"cover":!0;s=o}return!1}toString(){let e="";for(let n=0;n<this.sections.length;){let i=this.sections[n++],s=this.sections[n++];e+=(e?" ":"")+i+(s>=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(n=>typeof n!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new yn(e)}static create(e){return new yn(e)}}class ct extends yn{constructor(e,n){super(e),this.inserted=n}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return yc(this,(n,i,s,r,a)=>e=e.replace(s,s+(i-n),a),!1),e}mapDesc(e,n=!1){return vc(this,e,n,!0)}invert(e){let n=this.sections.slice(),i=[];for(let s=0,r=0;s<n.length;s+=2){let a=n[s],o=n[s+1];if(o>=0){n[s]=o,n[s+1]=a;let c=s>>1;for(;i.length<c;)i.push(Ze.empty);i.push(a?e.slice(r,r+a):Ze.empty)}r+=a}return new ct(n,i)}compose(e){return this.empty?e:e.empty?this:rm(this,e,!0)}map(e,n=!1){return e.empty?this:vc(this,e,n,!0)}iterChanges(e,n=!1){yc(this,e,n)}get desc(){return yn.create(this.sections)}filter(e){let n=[],i=[],s=[],r=new Hs(this);e:for(let a=0,o=0;;){let c=a==e.length?1e9:e[a++];for(;o<c||o==c&&r.len==0;){if(r.done)break e;let u=Math.min(r.len,c-o);bt(s,u,-1);let h=r.ins==-1?-1:r.off==0?r.ins:0;bt(n,u,h),h>0&&Jn(i,n,r.text),r.forward(u),o+=u}let d=e[a++];for(;o<d;){if(r.done)break e;let u=Math.min(r.len,d-o);bt(n,u,-1),bt(s,u,r.ins==-1?-1:r.off==0?r.ins:0),r.forward(u),o+=u}}return{changes:new ct(n,i),filtered:yn.create(s)}}toJSON(){let e=[];for(let n=0;n<this.sections.length;n+=2){let i=this.sections[n],s=this.sections[n+1];s<0?e.push(i):s==0?e.push([i]):e.push([i].concat(this.inserted[n>>1].toJSON()))}return e}static of(e,n,i){let s=[],r=[],a=0,o=null;function c(u=!1){if(!u&&!s.length)return;a<n&&bt(s,n-a,-1);let h=new ct(s,r);o=o?o.compose(h.map(o)):h,s=[],r=[],a=0}function d(u){if(Array.isArray(u))for(let h of u)d(h);else if(u instanceof ct){if(u.length!=n)throw new RangeError(`Mismatched change set length (got ${u.length}, expected ${n})`);c(),o=o?o.compose(u.map(o)):u}else{let{from:h,to:f=h,insert:p}=u;if(h>f||h<0||f>n)throw new RangeError(`Invalid change range ${h} to ${f} (in doc of length ${n})`);let O=p?typeof p=="string"?Ze.of(p.split(i||bc)):p:Ze.empty,g=O.length;if(h==f&&g==0)return;h<a&&c(),h>a&&bt(s,h-a,-1),bt(s,f-h,g),Jn(r,s,O),a=f}}return d(e),c(!o),o}static empty(e){return new ct(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let n=[],i=[];for(let s=0;s<e.length;s++){let r=e[s];if(typeof r=="number")n.push(r,-1);else{if(!Array.isArray(r)||typeof r[0]!="number"||r.some((a,o)=>o&&typeof a!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)n.push(r[0],0);else{for(;i.length<s;)i.push(Ze.empty);i[s]=Ze.of(r.slice(1)),n.push(r[0],i[s].length)}}}return new ct(n,i)}static createSet(e,n){return new ct(e,n)}}function bt(t,e,n,i=!1){if(e==0&&n<=0)return;let s=t.length-2;s>=0&&n<=0&&n==t[s+1]?t[s]+=e:s>=0&&e==0&&t[s]==0?t[s+1]+=n:i?(t[s]+=e,t[s+1]+=n):t.push(e,n)}function Jn(t,e,n){if(n.length==0)return;let i=e.length-2>>1;if(i<t.length)t[t.length-1]=t[t.length-1].append(n);else{for(;t.length<i;)t.push(Ze.empty);t.push(n)}}function yc(t,e,n){let i=t.inserted;for(let s=0,r=0,a=0;a<t.sections.length;){let o=t.sections[a++],c=t.sections[a++];if(c<0)s+=o,r+=o;else{let d=s,u=r,h=Ze.empty;for(;d+=o,u+=c,c&&i&&(h=h.append(i[a-2>>1])),!(n||a==t.sections.length||t.sections[a+1]<0);)o=t.sections[a++],c=t.sections[a++];e(s,d,r,u,h),s=d,r=u}}}function vc(t,e,n,i=!1){let s=[],r=i?[]:null,a=new Hs(t),o=new Hs(e);for(let c=-1;;){if(a.done&&o.len||o.done&&a.len)throw new Error("Mismatched change set lengths");if(a.ins==-1&&o.ins==-1){let d=Math.min(a.len,o.len);bt(s,d,-1),a.forward(d),o.forward(d)}else if(o.ins>=0&&(a.ins<0||c==a.i||a.off==0&&(o.len<a.len||o.len==a.len&&!n))){let d=o.len;for(bt(s,o.ins,-1);d;){let u=Math.min(a.len,d);a.ins>=0&&c<a.i&&a.len<=u&&(bt(s,0,a.ins),r&&Jn(r,s,a.text),c=a.i),a.forward(u),d-=u}o.next()}else if(a.ins>=0){let d=0,u=a.len;for(;u;)if(o.ins==-1){let h=Math.min(u,o.len);d+=h,u-=h,o.forward(h)}else if(o.ins==0&&o.len<u)u-=o.len,o.next();else break;bt(s,d,c<a.i?a.ins:0),r&&c<a.i&&Jn(r,s,a.text),c=a.i,a.forward(a.len-u)}else{if(a.done&&o.done)return r?ct.createSet(s,r):yn.create(s);throw new Error("Mismatched change set lengths")}}}function rm(t,e,n=!1){let i=[],s=n?[]:null,r=new Hs(t),a=new Hs(e);for(let o=!1;;){if(r.done&&a.done)return s?ct.createSet(i,s):yn.create(i);if(r.ins==0)bt(i,r.len,0,o),r.next();else if(a.len==0&&!a.done)bt(i,0,a.ins,o),s&&Jn(s,i,a.text),a.next();else{if(r.done||a.done)throw new Error("Mismatched change set lengths");{let c=Math.min(r.len2,a.len),d=i.length;if(r.ins==-1){let u=a.ins==-1?-1:a.off?0:a.ins;bt(i,c,u,o),s&&u&&Jn(s,i,a.text)}else a.ins==-1?(bt(i,r.off?0:r.len,c,o),s&&Jn(s,i,r.textBit(c))):(bt(i,r.off?0:r.len,a.off?0:a.ins,o),s&&!a.off&&Jn(s,i,a.text));o=(r.ins>c||a.ins>=0&&a.len>c)&&(o||i.length>d),r.forward2(c),a.forward(c)}}}}class Hs{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,n=this.i-2>>1;return n>=e.length?Ze.empty:e[n]}textBit(e){let{inserted:n}=this.set,i=this.i-2>>1;return i>=n.length&&!e?Ze.empty:n[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class Si{constructor(e,n,i){this.from=e,this.to=n,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,n=-1){let i,s;return this.empty?i=s=e.mapPos(this.from,n):(i=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),i==this.from&&s==this.to?this:new Si(i,s,this.flags)}extend(e,n=e){if(e<=this.anchor&&n>=this.anchor)return q.range(e,n);let i=Math.abs(e-this.anchor)>Math.abs(n-this.anchor)?e:n;return q.range(this.anchor,i)}eq(e,n=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!n||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return q.range(e.anchor,e.head)}static create(e,n,i){return new Si(e,n,i)}}class q{constructor(e,n){this.ranges=e,this.mainIndex=n}map(e,n=-1){return e.empty?this:q.create(this.ranges.map(i=>i.map(e,n)),this.mainIndex)}eq(e,n=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;i<this.ranges.length;i++)if(!this.ranges[i].eq(e.ranges[i],n))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new q([this.main],0)}addRange(e,n=!0){return q.create([e].concat(this.ranges),n?0:this.mainIndex+1)}replaceRange(e,n=this.mainIndex){let i=this.ranges.slice();return i[n]=e,q.create(i,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new q(e.ranges.map(n=>Si.fromJSON(n)),e.main)}static single(e,n=e){return new q([q.range(e,n)],0)}static create(e,n=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,s=0;s<e.length;s++){let r=e[s];if(r.empty?r.from<=i:r.from<i)return q.normalized(e.slice(),n);i=r.to}return new q(e,n)}static cursor(e,n=0,i,s){return Si.create(e,e,(n==0?0:n<0?8:16)|(i==null?7:Math.min(6,i))|(s??16777215)<<6)}static range(e,n,i,s){let r=(i??16777215)<<6|(s==null?7:Math.min(6,s));return n<e?Si.create(n,e,48|r):Si.create(e,n,(n>e?8:0)|r)}static normalized(e,n=0){let i=e[n];e.sort((s,r)=>s.from-r.from),n=e.indexOf(i);for(let s=1;s<e.length;s++){let r=e[s],a=e[s-1];if(r.empty?r.from<=a.to:r.from<a.to){let o=a.from,c=Math.max(r.to,a.to);s<=n&&n--,e.splice(--s,2,r.anchor>r.head?q.range(c,o):q.range(o,c))}}return new q(e,n)}}function am(t,e){for(let n of t.ranges)if(n.to>e)throw new RangeError("Selection points outside of document")}let qd=0;class se{constructor(e,n,i,s,r){this.combine=e,this.compareInput=n,this.compare=i,this.isStatic=s,this.id=qd++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(e={}){return new se(e.combine||(n=>n),e.compareInput||((n,i)=>n===i),e.compare||(e.combine?(n,i)=>n===i:Wd),!!e.static,e.enables)}of(e){return new xa([],this,0,e)}compute(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new xa(e,this,1,n)}computeN(e,n){if(this.isStatic)throw new Error("Can't compute a static facet");return new xa(e,this,2,n)}from(e,n){return n||(n=i=>i),this.compute([e],i=>n(i.field(e)))}}function Wd(t,e){return t==e||t.length==e.length&&t.every((n,i)=>n===e[i])}class xa{constructor(e,n,i,s){this.dependencies=e,this.facet=n,this.type=i,this.value=s,this.id=qd++}dynamicSlot(e){var n;let i=this.value,s=this.facet.compareInput,r=this.id,a=e[r]>>1,o=this.type==2,c=!1,d=!1,u=[];for(let h of this.dependencies)h=="doc"?c=!0:h=="selection"?d=!0:(((n=e[h.id])!==null&&n!==void 0?n:1)&1)==0&&u.push(e[h.id]);return{create(h){return h.values[a]=i(h),1},update(h,f){if(c&&f.docChanged||d&&(f.docChanged||f.selection)||Sc(h,u)){let p=i(h);if(o?!hf(p,h.values[a],s):!s(p,h.values[a]))return h.values[a]=p,1}return 0},reconfigure:(h,f)=>{let p,O=f.config.address[r];if(O!=null){let g=Wa(f,O);if(this.dependencies.every(x=>x instanceof se?f.facet(x)===h.facet(x):x instanceof gt?f.field(x,!1)==h.field(x,!1):!0)||(o?hf(p=i(h),g,s):s(p=i(h),g)))return h.values[a]=g,0}else p=i(h);return h.values[a]=p,1}}}}function hf(t,e,n){if(t.length!=e.length)return!1;for(let i=0;i<t.length;i++)if(!n(t[i],e[i]))return!1;return!0}function Sc(t,e){let n=!1;for(let i of e)Xs(t,i)&1&&(n=!0);return n}function ok(t,e,n){let i=n.map(c=>t[c.id]),s=n.map(c=>c.type),r=i.filter(c=>!(c&1)),a=t[e.id]>>1;function o(c){let d=[];for(let u=0;u<i.length;u++){let h=Wa(c,i[u]);if(s[u]==2)for(let f of h)d.push(f);else d.push(h)}return e.combine(d)}return{create(c){for(let d of i)Xs(c,d);return c.values[a]=o(c),1},update(c,d){if(!Sc(c,r))return 0;let u=o(c);return e.compare(u,c.values[a])?0:(c.values[a]=u,1)},reconfigure(c,d){let u=Sc(c,i),h=d.config.facets[e.id],f=d.facet(e);if(h&&!u&&Wd(n,h))return c.values[a]=f,0;let p=o(c);return e.compare(p,f)?(c.values[a]=f,0):(c.values[a]=p,1)}}}const Dr=se.define({static:!0});class gt{constructor(e,n,i,s,r){this.id=e,this.createF=n,this.updateF=i,this.compareF=s,this.spec=r,this.provides=void 0}static define(e){let n=new gt(qd++,e.create,e.update,e.compare||((i,s)=>i===s),e);return e.provide&&(n.provides=e.provide(n)),n}create(e){let n=e.facet(Dr).find(i=>i.field==this);return((n==null?void 0:n.create)||this.createF)(e)}slot(e){let n=e[this.id]>>1;return{create:i=>(i.values[n]=this.create(i),1),update:(i,s)=>{let r=i.values[n],a=this.updateF(r,s);return this.compareF(r,a)?0:(i.values[n]=a,1)},reconfigure:(i,s)=>{let r=i.facet(Dr),a=s.facet(Dr),o;return(o=r.find(c=>c.field==this))&&o!=a.find(c=>c.field==this)?(i.values[n]=o.create(i),1):s.config.address[this.id]!=null?(i.values[n]=s.field(this),0):(i.values[n]=this.create(i),1)}}}init(e){return[this,Dr.of({field:this,create:e})]}get extension(){return this}}const bi={lowest:4,low:3,default:2,high:1,highest:0};function Ss(t){return e=>new om(e,t)}const di={highest:Ss(bi.highest),high:Ss(bi.high),default:Ss(bi.default),low:Ss(bi.low),lowest:Ss(bi.lowest)};class om{constructor(e,n){this.inner=e,this.prec=n}}class Po{of(e){return new wc(this,e)}reconfigure(e){return Po.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class wc{constructor(e,n){this.compartment=e,this.inner=n}}class qa{constructor(e,n,i,s,r,a){for(this.base=e,this.compartments=n,this.dynamicSlots=i,this.address=s,this.staticValues=r,this.facets=a,this.statusTemplate=[];this.statusTemplate.length<i.length;)this.statusTemplate.push(0)}staticFacet(e){let n=this.address[e.id];return n==null?e.default:this.staticValues[n>>1]}static resolve(e,n,i){let s=[],r=Object.create(null),a=new Map;for(let f of lk(e,n,a))f instanceof gt?s.push(f):(r[f.facet.id]||(r[f.facet.id]=[])).push(f);let o=Object.create(null),c=[],d=[];for(let f of s)o[f.id]=d.length<<1,d.push(p=>f.slot(p));let u=i==null?void 0:i.config.facets;for(let f in r){let p=r[f],O=p[0].facet,g=u&&u[f]||[];if(p.every(x=>x.type==0))if(o[O.id]=c.length<<1|1,Wd(g,p))c.push(i.facet(O));else{let x=O.combine(p.map(b=>b.value));c.push(i&&O.compare(x,i.facet(O))?i.facet(O):x)}else{for(let x of p)x.type==0?(o[x.id]=c.length<<1|1,c.push(x.value)):(o[x.id]=d.length<<1,d.push(b=>x.dynamicSlot(b)));o[O.id]=d.length<<1,d.push(x=>ok(x,O,p))}}let h=d.map(f=>f(o));return new qa(e,a,h,o,c,r)}}function lk(t,e,n){let i=[[],[],[],[],[]],s=new Map;function r(a,o){let c=s.get(a);if(c!=null){if(c<=o)return;let d=i[c].indexOf(a);d>-1&&i[c].splice(d,1),a instanceof wc&&n.delete(a.compartment)}if(s.set(a,o),Array.isArray(a))for(let d of a)r(d,o);else if(a instanceof wc){if(n.has(a.compartment))throw new RangeError("Duplicate use of compartment in extensions");let d=e.get(a.compartment)||a.inner;n.set(a.compartment,d),r(d,o)}else if(a instanceof om)r(a.inner,a.prec);else if(a instanceof gt)i[o].push(a),a.provides&&r(a.provides,o);else if(a instanceof xa)i[o].push(a),a.facet.extensions&&r(a.facet.extensions,bi.default);else{let d=a.extension;if(!d)throw new Error(`Unrecognized extension value in extension set (${a}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(d,o)}}return r(t,bi.default),i.reduce((a,o)=>a.concat(o))}function Xs(t,e){if(e&1)return 2;let n=e>>1,i=t.status[n];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;t.status[n]=4;let s=t.computeSlot(t,t.config.dynamicSlots[n]);return t.status[n]=2|s}function Wa(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}const lm=se.define(),kc=se.define({combine:t=>t.some(e=>e),static:!0}),cm=se.define({combine:t=>t.length?t[0]:void 0,static:!0}),dm=se.define(),um=se.define(),hm=se.define(),fm=se.define({combine:t=>t.length?t[0]:!1});class Dn{constructor(e,n){this.type=e,this.value=n}static define(){return new ck}}class ck{of(e){return new Dn(this,e)}}class dk{constructor(e){this.map=e}of(e){return new Pe(this,e)}}class Pe{constructor(e,n){this.type=e,this.value=n}map(e){let n=this.type.map(this.value,e);return n===void 0?void 0:n==this.value?this:new Pe(this.type,n)}is(e){return this.type==e}static define(e={}){return new dk(e.map||(n=>n))}static mapEffects(e,n){if(!e.length)return e;let i=[];for(let s of e){let r=s.map(n);r&&i.push(r)}return i}}Pe.reconfigure=Pe.define();Pe.appendConfig=Pe.define();class at{constructor(e,n,i,s,r,a){this.startState=e,this.changes=n,this.selection=i,this.effects=s,this.annotations=r,this.scrollIntoView=a,this._doc=null,this._state=null,i&&am(i,n.newLength),r.some(o=>o.type==at.time)||(this.annotations=r.concat(at.time.of(Date.now())))}static create(e,n,i,s,r,a){return new at(e,n,i,s,r,a)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let n of this.annotations)if(n.type==e)return n.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let n=this.annotation(at.userEvent);return!!(n&&(n==e||n.length>e.length&&n.slice(0,e.length)==e&&n[e.length]=="."))}}at.time=Dn.define();at.userEvent=Dn.define();at.addToHistory=Dn.define();at.remote=Dn.define();function uk(t,e){let n=[];for(let i=0,s=0;;){let r,a;if(i<t.length&&(s==e.length||e[s]>=t[i]))r=t[i++],a=t[i++];else if(s<e.length)r=e[s++],a=e[s++];else return n;!n.length||n[n.length-1]<r?n.push(r,a):n[n.length-1]<a&&(n[n.length-1]=a)}}function pm(t,e,n){var i;let s,r,a;return n?(s=e.changes,r=ct.empty(e.changes.length),a=t.changes.compose(e.changes)):(s=e.changes.map(t.changes),r=t.changes.mapDesc(e.changes,!0),a=t.changes.compose(s)),{changes:a,selection:e.selection?e.selection.map(r):(i=t.selection)===null||i===void 0?void 0:i.map(s),effects:Pe.mapEffects(t.effects,s).concat(Pe.mapEffects(e.effects,r)),annotations:t.annotations.length?t.annotations.concat(e.annotations):e.annotations,scrollIntoView:t.scrollIntoView||e.scrollIntoView}}function Qc(t,e,n){let i=e.selection,s=Ki(e.annotations);return e.userEvent&&(s=s.concat(at.userEvent.of(e.userEvent))),{changes:e.changes instanceof ct?e.changes:ct.of(e.changes||[],n,t.facet(cm)),selection:i&&(i instanceof q?i:q.single(i.anchor,i.head)),effects:Ki(e.effects),annotations:s,scrollIntoView:!!e.scrollIntoView}}function Om(t,e,n){let i=Qc(t,e.length?e[0]:{},t.doc.length);e.length&&e[0].filter===!1&&(n=!1);for(let r=1;r<e.length;r++){e[r].filter===!1&&(n=!1);let a=!!e[r].sequential;i=pm(i,Qc(t,e[r],a?i.changes.newLength:t.doc.length),a)}let s=at.create(t,i.changes,i.selection,i.effects,i.annotations,i.scrollIntoView);return fk(n?hk(s):s)}function hk(t){let e=t.startState,n=!0;for(let s of e.facet(dm)){let r=s(t);if(r===!1){n=!1;break}Array.isArray(r)&&(n=n===!0?r:uk(n,r))}if(n!==!0){let s,r;if(n===!1)r=t.changes.invertedDesc,s=ct.empty(e.doc.length);else{let a=t.changes.filter(n);s=a.changes,r=a.filtered.mapDesc(a.changes).invertedDesc}t=at.create(e,s,t.selection&&t.selection.map(r),Pe.mapEffects(t.effects,r),t.annotations,t.scrollIntoView)}let i=e.facet(um);for(let s=i.length-1;s>=0;s--){let r=i[s](t);r instanceof at?t=r:Array.isArray(r)&&r.length==1&&r[0]instanceof at?t=r[0]:t=Om(e,Ki(r),!1)}return t}function fk(t){let e=t.startState,n=e.facet(hm),i=t;for(let s=n.length-1;s>=0;s--){let r=n[s](t);r&&Object.keys(r).length&&(i=pm(i,Qc(e,r,t.changes.newLength),!0))}return i==t?t:at.create(e,t.changes,t.selection,i.effects,i.annotations,i.scrollIntoView)}const pk=[];function Ki(t){return t==null?pk:Array.isArray(t)?t:[t]}var Je=(function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t})(Je||(Je={}));const Ok=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Cc;try{Cc=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function mk(t){if(Cc)return Cc.test(t);for(let e=0;e<t.length;e++){let n=t[e];if(/\w/.test(n)||n>""&&(n.toUpperCase()!=n.toLowerCase()||Ok.test(n)))return!0}return!1}function gk(t){return e=>{if(!/\S/.test(e))return Je.Space;if(mk(e))return Je.Word;for(let n=0;n<t.length;n++)if(e.indexOf(t[n])>-1)return Je.Word;return Je.Other}}class Xe{constructor(e,n,i,s,r,a){this.config=e,this.doc=n,this.selection=i,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=r,a&&(a._state=this);for(let o=0;o<this.config.dynamicSlots.length;o++)Xs(this,o<<1);this.computeSlot=null}field(e,n=!0){let i=this.config.address[e.id];if(i==null){if(n)throw new RangeError("Field is not present in this state");return}return Xs(this,i),Wa(this,i)}update(...e){return Om(this,e,!0)}applyTransaction(e){let n=this.config,{base:i,compartments:s}=n;for(let o of e.effects)o.is(Po.reconfigure)?(n&&(s=new Map,n.compartments.forEach((c,d)=>s.set(d,c)),n=null),s.set(o.value.compartment,o.value.extension)):o.is(Pe.reconfigure)?(n=null,i=o.value):o.is(Pe.appendConfig)&&(n=null,i=Ki(i).concat(o.value));let r;n?r=e.startState.values.slice():(n=qa.resolve(i,s,this),r=new Xe(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(c,d)=>d.reconfigure(c,this),null).values);let a=e.startState.facet(kc)?e.newSelection:e.newSelection.asSingle();new Xe(n,e.newDoc,a,r,(o,c)=>c.update(o,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:e},range:q.cursor(n.from+e.length)}))}changeByRange(e){let n=this.selection,i=e(n.ranges[0]),s=this.changes(i.changes),r=[i.range],a=Ki(i.effects);for(let o=1;o<n.ranges.length;o++){let c=e(n.ranges[o]),d=this.changes(c.changes),u=d.map(s);for(let f=0;f<o;f++)r[f]=r[f].map(u);let h=s.mapDesc(d,!0);r.push(c.range.map(h)),s=s.compose(u),a=Pe.mapEffects(a,u).concat(Pe.mapEffects(Ki(c.effects),h))}return{changes:s,selection:q.create(r,n.mainIndex),effects:a}}changes(e=[]){return e instanceof ct?e:ct.of(e,this.doc.length,this.facet(Xe.lineSeparator))}toText(e){return Ze.of(e.split(this.facet(Xe.lineSeparator)||bc))}sliceDoc(e=0,n=this.doc.length){return this.doc.sliceString(e,n,this.lineBreak)}facet(e){let n=this.config.address[e.id];return n==null?e.default:(Xs(this,n),Wa(this,n))}toJSON(e){let n={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let i in e){let s=e[i];s instanceof gt&&this.config.address[s.id]!=null&&(n[i]=s.spec.toJSON(this.field(e[i]),this))}return n}static fromJSON(e,n={},i){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let s=[];if(i){for(let r in i)if(Object.prototype.hasOwnProperty.call(e,r)){let a=i[r],o=e[r];s.push(a.init(c=>a.spec.fromJSON(o,c)))}}return Xe.create({doc:e.doc,selection:q.fromJSON(e.selection),extensions:n.extensions?s.concat([n.extensions]):s})}static create(e={}){let n=qa.resolve(e.extensions||[],new Map),i=e.doc instanceof Ze?e.doc:Ze.of((e.doc||"").split(n.staticFacet(Xe.lineSeparator)||bc)),s=e.selection?e.selection instanceof q?e.selection:q.single(e.selection.anchor,e.selection.head):q.single(0);return am(s,i.length),n.staticFacet(kc)||(s=s.asSingle()),new Xe(n,i,s,n.dynamicSlots.map(()=>null),(r,a)=>a.create(r),null)}get tabSize(){return this.facet(Xe.tabSize)}get lineBreak(){return this.facet(Xe.lineSeparator)||`
|
|
30
|
+
`}get readOnly(){return this.facet(fm)}phrase(e,...n){for(let i of this.facet(Xe.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return n.length&&(e=e.replace(/\$(\$|\d*)/g,(i,s)=>{if(s=="$")return"$";let r=+(s||1);return!r||r>n.length?i:n[r-1]})),e}languageDataAt(e,n,i=-1){let s=[];for(let r of this.facet(lm))for(let a of r(this,n,i))Object.prototype.hasOwnProperty.call(a,e)&&s.push(a[e]);return s}charCategorizer(e){let n=this.languageDataAt("wordChars",e);return gk(n.length?n[0]:"")}wordAt(e){let{text:n,from:i,length:s}=this.doc.lineAt(e),r=this.charCategorizer(e),a=e-i,o=e-i;for(;a>0;){let c=ut(n,a,!1);if(r(n.slice(c,a))!=Je.Word)break;a=c}for(;o<s;){let c=ut(n,o);if(r(n.slice(o,c))!=Je.Word)break;o=c}return a==o?null:q.range(a+i,o+i)}}Xe.allowMultipleSelections=kc;Xe.tabSize=se.define({combine:t=>t.length?t[0]:4});Xe.lineSeparator=cm;Xe.readOnly=fm;Xe.phrases=se.define({compare(t,e){let n=Object.keys(t),i=Object.keys(e);return n.length==i.length&&n.every(s=>t[s]==e[s])}});Xe.languageData=lm;Xe.changeFilter=dm;Xe.transactionFilter=um;Xe.transactionExtender=hm;Po.reconfigure=Pe.define();function kn(t,e,n={}){let i={};for(let s of t)for(let r of Object.keys(s)){let a=s[r],o=i[r];if(o===void 0)i[r]=a;else if(!(o===a||a===void 0))if(Object.hasOwnProperty.call(n,r))i[r]=n[r](o,a);else throw new Error("Config merge conflict for field "+r)}for(let s in e)i[s]===void 0&&(i[s]=e[s]);return i}class ii{eq(e){return this==e}range(e,n=e){return Ks.create(e,n,this)}}ii.prototype.startSide=ii.prototype.endSide=0;ii.prototype.point=!1;ii.prototype.mapMode=Ot.TrackDel;function zd(t,e){return t==e||t.constructor==e.constructor&&t.eq(e)}class Ks{constructor(e,n,i){this.from=e,this.to=n,this.value=i}static create(e,n,i){return new Ks(e,n,i)}}function Pc(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class Bd{constructor(e,n,i,s){this.from=e,this.to=n,this.value=i,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,n,i,s=0){let r=i?this.to:this.from;for(let a=s,o=r.length;;){if(a==o)return a;let c=a+o>>1,d=r[c]-e||(i?this.value[c].endSide:this.value[c].startSide)-n;if(c==a)return d>=0?a:o;d>=0?o=c:a=c+1}}between(e,n,i,s){for(let r=this.findIndex(n,-1e9,!0),a=this.findIndex(i,1e9,!1,r);r<a;r++)if(s(this.from[r]+e,this.to[r]+e,this.value[r])===!1)return!1}map(e,n){let i=[],s=[],r=[],a=-1,o=-1;for(let c=0;c<this.value.length;c++){let d=this.value[c],u=this.from[c]+e,h=this.to[c]+e,f,p;if(u==h){let O=n.mapPos(u,d.startSide,d.mapMode);if(O==null||(f=p=O,d.startSide!=d.endSide&&(p=n.mapPos(u,d.endSide),p<f)))continue}else if(f=n.mapPos(u,d.startSide),p=n.mapPos(h,d.endSide),f>p||f==p&&d.startSide>0&&d.endSide<=0)continue;(p-f||d.endSide-d.startSide)<0||(a<0&&(a=f),d.point&&(o=Math.max(o,p-f)),i.push(d),s.push(f-a),r.push(p-a))}return{mapped:i.length?new Bd(s,r,i,o):null,pos:a}}}class Le{constructor(e,n,i,s){this.chunkPos=e,this.chunk=n,this.nextLayer=i,this.maxPoint=s}static create(e,n,i,s){return new Le(e,n,i,s)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let n of this.chunk)e+=n.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:n=[],sort:i=!1,filterFrom:s=0,filterTo:r=this.length}=e,a=e.filter;if(n.length==0&&!a)return this;if(i&&(n=n.slice().sort(Pc)),this.isEmpty)return n.length?Le.of(n):this;let o=new mm(this,null,-1).goto(0),c=0,d=[],u=new In;for(;o.value||c<n.length;)if(c<n.length&&(o.from-n[c].from||o.startSide-n[c].value.startSide)>=0){let h=n[c++];u.addInner(h.from,h.to,h.value)||d.push(h)}else o.rangeIndex==1&&o.chunkIndex<this.chunk.length&&(c==n.length||this.chunkEnd(o.chunkIndex)<n[c].from)&&(!a||s>this.chunkEnd(o.chunkIndex)||r<this.chunkPos[o.chunkIndex])&&u.addChunk(this.chunkPos[o.chunkIndex],this.chunk[o.chunkIndex])?o.nextChunk():((!a||s>o.to||r<o.from||a(o.from,o.to,o.value))&&(u.addInner(o.from,o.to,o.value)||d.push(Ks.create(o.from,o.to,o.value))),o.next());return u.finishInner(this.nextLayer.isEmpty&&!d.length?Le.empty:this.nextLayer.update({add:d,filter:a,filterFrom:s,filterTo:r}))}map(e){if(e.empty||this.isEmpty)return this;let n=[],i=[],s=-1;for(let a=0;a<this.chunk.length;a++){let o=this.chunkPos[a],c=this.chunk[a],d=e.touchesRange(o,o+c.length);if(d===!1)s=Math.max(s,c.maxPoint),n.push(c),i.push(e.mapPos(o));else if(d===!0){let{mapped:u,pos:h}=c.map(o,e);u&&(s=Math.max(s,u.maxPoint),n.push(u),i.push(h))}}let r=this.nextLayer.map(e);return n.length==0?r:new Le(i,n,r||Le.empty,s)}between(e,n,i){if(!this.isEmpty){for(let s=0;s<this.chunk.length;s++){let r=this.chunkPos[s],a=this.chunk[s];if(n>=r&&e<=r+a.length&&a.between(r,e-r,n-r,i)===!1)return}this.nextLayer.between(e,n,i)}}iter(e=0){return Js.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,n=0){return Js.from(e).goto(n)}static compare(e,n,i,s,r=-1){let a=e.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=r),o=n.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=r),c=ff(a,o,i),d=new ws(a,c,r),u=new ws(o,c,r);i.iterGaps((h,f,p)=>pf(d,h,u,f,p,s)),i.empty&&i.length==0&&pf(d,0,u,0,0,s)}static eq(e,n,i=0,s){s==null&&(s=999999999);let r=e.filter(u=>!u.isEmpty&&n.indexOf(u)<0),a=n.filter(u=>!u.isEmpty&&e.indexOf(u)<0);if(r.length!=a.length)return!1;if(!r.length)return!0;let o=ff(r,a),c=new ws(r,o,0).goto(i),d=new ws(a,o,0).goto(i);for(;;){if(c.to!=d.to||!Tc(c.active,d.active)||c.point&&(!d.point||!zd(c.point,d.point)))return!1;if(c.to>s)return!0;c.next(),d.next()}}static spans(e,n,i,s,r=-1){let a=new ws(e,null,r).goto(n),o=n,c=a.openStart;for(;;){let d=Math.min(a.to,i);if(a.point){let u=a.activeForPoint(a.to),h=a.pointFrom<n?u.length+1:a.point.startSide<0?u.length:Math.min(u.length,c);s.point(o,d,a.point,u,h,a.pointRank),c=Math.min(a.openEnd(d),u.length)}else d>o&&(s.span(o,d,a.active,c),c=a.openEnd(d));if(a.to>i)return c+(a.point&&a.to>i?1:0);o=a.to,a.next()}}static of(e,n=!1){let i=new In;for(let s of e instanceof Ks?[e]:n?xk(e):e)i.add(s.from,s.to,s.value);return i.finish()}static join(e){if(!e.length)return Le.empty;let n=e[e.length-1];for(let i=e.length-2;i>=0;i--)for(let s=e[i];s!=Le.empty;s=s.nextLayer)n=new Le(s.chunkPos,s.chunk,n,Math.max(s.maxPoint,n.maxPoint));return n}}Le.empty=new Le([],[],null,-1);function xk(t){if(t.length>1)for(let e=t[0],n=1;n<t.length;n++){let i=t[n];if(Pc(e,i)>0)return t.slice().sort(Pc);e=i}return t}Le.empty.nextLayer=Le.empty;class In{finishChunk(e){this.chunks.push(new Bd(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,n,i){this.addInner(e,n,i)||(this.nextLayer||(this.nextLayer=new In)).add(e,n,i)}addInner(e,n,i){let s=e-this.lastTo||i.startSide-this.last.endSide;if(s<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return s<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(n-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=n,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,n-e)),!0)}addChunk(e,n){if((e-this.lastTo||n.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,n.maxPoint),this.chunks.push(n),this.chunkPos.push(e);let i=n.value.length-1;return this.last=n.value[i],this.lastFrom=n.from[i]+e,this.lastTo=n.to[i]+e,!0}finish(){return this.finishInner(Le.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let n=Le.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,n}}function ff(t,e,n){let i=new Map;for(let r of t)for(let a=0;a<r.chunk.length;a++)r.chunk[a].maxPoint<=0&&i.set(r.chunk[a],r.chunkPos[a]);let s=new Set;for(let r of e)for(let a=0;a<r.chunk.length;a++){let o=i.get(r.chunk[a]);o!=null&&(n?n.mapPos(o):o)==r.chunkPos[a]&&!(n!=null&&n.touchesRange(o,o+r.chunk[a].length))&&s.add(r.chunk[a])}return s}class mm{constructor(e,n,i,s=0){this.layer=e,this.skip=n,this.minPoint=i,this.rank=s}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,n=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,n,!1),this}gotoInner(e,n,i){for(;this.chunkIndex<this.layer.chunk.length;){let s=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(s)||this.layer.chunkEnd(this.chunkIndex)<e||s.maxPoint<this.minPoint))break;this.chunkIndex++,i=!1}if(this.chunkIndex<this.layer.chunk.length){let s=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],n,!0);(!i||this.rangeIndex<s)&&this.setRangeIndex(s)}this.next()}forward(e,n){(this.to-e||this.endSide-n)<0&&this.gotoInner(e,n,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],n=this.layer.chunk[this.chunkIndex],i=e+n.from[this.rangeIndex];if(this.from=i,this.to=e+n.to[this.rangeIndex],this.value=n.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}}class Js{constructor(e){this.heap=e}static from(e,n=null,i=-1){let s=[];for(let r=0;r<e.length;r++)for(let a=e[r];!a.isEmpty;a=a.nextLayer)a.maxPoint>=i&&s.push(new mm(a,n,i,r));return s.length==1?s[0]:new Js(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,n=-1e9){for(let i of this.heap)i.goto(e,n);for(let i=this.heap.length>>1;i>=0;i--)bl(this.heap,i);return this.next(),this}forward(e,n){for(let i of this.heap)i.forward(e,n);for(let i=this.heap.length>>1;i>=0;i--)bl(this.heap,i);(this.to-e||this.value.endSide-n)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),bl(this.heap,0)}}}function bl(t,e){for(let n=t[e];;){let i=(e<<1)+1;if(i>=t.length)break;let s=t[i];if(i+1<t.length&&s.compare(t[i+1])>=0&&(s=t[i+1],i++),n.compare(s)<0)break;t[i]=n,t[e]=s,e=i}}class ws{constructor(e,n,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Js.from(e,n,i)}goto(e,n=-1e9){return this.cursor.goto(e,n),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=n,this.openStart=-1,this.next(),this}forward(e,n){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-n)<0;)this.removeActive(this.minActive);this.cursor.forward(e,n)}removeActive(e){qr(this.active,e),qr(this.activeTo,e),qr(this.activeRank,e),this.minActive=Of(this.active,this.activeTo)}addActive(e){let n=0,{value:i,to:s,rank:r}=this.cursor;for(;n<this.activeRank.length&&(r-this.activeRank[n]||s-this.activeTo[n])>0;)n++;Wr(this.active,n,i),Wr(this.activeTo,n,s),Wr(this.activeRank,n,r),e&&Wr(e,n,this.cursor.from),this.minActive=Of(this.active,this.activeTo)}next(){let e=this.to,n=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let s=this.minActive;if(s>-1&&(this.activeTo[s]-this.cursor.from||this.active[s].endSide-this.cursor.startSide)<0){if(this.activeTo[s]>e){this.to=this.activeTo[s],this.endSide=this.active[s].endSide;break}this.removeActive(s),i&&qr(i,s)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let r=this.cursor.value;if(!r.point)this.addActive(i),this.cursor.next();else if(n&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=r,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=r.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(i){this.openStart=0;for(let s=i.length-1;s>=0&&i[s]<e;s--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let n=[];for(let i=this.active.length-1;i>=0&&!(this.activeRank[i]<this.pointRank);i--)(this.activeTo[i]>e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&n.push(this.active[i]);return n.reverse()}openEnd(e){let n=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)n++;return n}}function pf(t,e,n,i,s,r){t.goto(e),n.goto(i);let a=i+s,o=i,c=i-e,d=!!r.boundChange;for(let u=!1;;){let h=t.to+c-n.to,f=h||t.endSide-n.endSide,p=f<0?t.to+c:n.to,O=Math.min(p,a);if(t.point||n.point?(t.point&&n.point&&zd(t.point,n.point)&&Tc(t.activeForPoint(t.to),n.activeForPoint(n.to))||r.comparePoint(o,O,t.point,n.point),u=!1):(u&&r.boundChange(o),O>o&&!Tc(t.active,n.active)&&r.compareRange(o,O,t.active,n.active),d&&O<a&&(h||t.openEnd(p)!=n.openEnd(p))&&(u=!0)),p>a)break;o=p,f<=0&&t.next(),f>=0&&n.next()}}function Tc(t,e){if(t.length!=e.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!=e[n]&&!zd(t[n],e[n]))return!1;return!0}function qr(t,e){for(let n=e,i=t.length-1;n<i;n++)t[n]=t[n+1];t.pop()}function Wr(t,e,n){for(let i=t.length-1;i>=e;i--)t[i+1]=t[i];t[e]=n}function Of(t,e){let n=-1,i=1e9;for(let s=0;s<e.length;s++)(e[s]-i||t[s].endSide-t[n].endSide)<0&&(n=s,i=e[s]);return n}function fs(t,e,n=t.length){let i=0;for(let s=0;s<n&&s<t.length;)t.charCodeAt(s)==9?(i+=e-i%e,s++):(i++,s=ut(t,s));return i}function $c(t,e,n,i){for(let s=0,r=0;;){if(r>=e)return s;if(s==t.length)break;r+=t.charCodeAt(s)==9?n-r%n:1,s=ut(t,s)}return i===!0?-1:t.length}const jc="ͼ",mf=typeof Symbol>"u"?"__"+jc:Symbol.for(jc),Ac=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),gf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class si{constructor(e,n){this.rules=[];let{finish:i}=n||{};function s(a){return/^@/.test(a)?[a]:a.split(/,\s*/)}function r(a,o,c,d){let u=[],h=/^@(\w+)\b/.exec(a[0]),f=h&&h[1]=="keyframes";if(h&&o==null)return c.push(a[0]+";");for(let p in o){let O=o[p];if(/&/.test(p))r(p.split(/,\s*/).map(g=>a.map(x=>g.replace(/&/,x))).reduce((g,x)=>g.concat(x)),O,c);else if(O&&typeof O=="object"){if(!h)throw new RangeError("The value of a property ("+p+") should be a primitive value.");r(s(p),O,u,f)}else O!=null&&u.push(p.replace(/_.*/,"").replace(/[A-Z]/g,g=>"-"+g.toLowerCase())+": "+O+";")}(u.length||f)&&c.push((i&&!h&&!d?a.map(i):a).join(", ")+" {"+u.join(" ")+"}")}for(let a in e)r(s(a),e[a],this.rules)}getRules(){return this.rules.join(`
|
|
31
|
+
`)}static newName(){let e=gf[mf]||1;return gf[mf]=e+1,jc+e.toString(36)}static mount(e,n,i){let s=e[Ac],r=i&&i.nonce;s?r&&s.setNonce(r):s=new bk(e,r),s.mount(Array.isArray(n)?n:[n],e)}}let xf=new Map;class bk{constructor(e,n){let i=e.ownerDocument||e,s=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&s.CSSStyleSheet){let r=xf.get(i);if(r)return e[Ac]=r;this.sheet=new s.CSSStyleSheet,xf.set(i,this)}else this.styleTag=i.createElement("style"),n&&this.styleTag.setAttribute("nonce",n);this.modules=[],e[Ac]=this}mount(e,n){let i=this.sheet,s=0,r=0;for(let a=0;a<e.length;a++){let o=e[a],c=this.modules.indexOf(o);if(c<r&&c>-1&&(this.modules.splice(c,1),r--,c=-1),c==-1){if(this.modules.splice(r++,0,o),i)for(let d=0;d<o.rules.length;d++)i.insertRule(o.rules[d],s++)}else{for(;r<c;)s+=this.modules[r++].rules.length;s+=o.rules.length,r++}}if(i)n.adoptedStyleSheets.indexOf(this.sheet)<0&&(n.adoptedStyleSheets=[this.sheet,...n.adoptedStyleSheets]);else{let a="";for(let c=0;c<this.modules.length;c++)a+=this.modules[c].getRules()+`
|
|
32
|
+
`;this.styleTag.textContent=a;let o=n.head||n;this.styleTag.parentNode!=o&&o.insertBefore(this.styleTag,o.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}}var ri={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},er={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},yk=typeof navigator<"u"&&/Mac/.test(navigator.platform),vk=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var pt=0;pt<10;pt++)ri[48+pt]=ri[96+pt]=String(pt);for(var pt=1;pt<=24;pt++)ri[pt+111]="F"+pt;for(var pt=65;pt<=90;pt++)ri[pt]=String.fromCharCode(pt+32),er[pt]=String.fromCharCode(pt);for(var yl in ri)er.hasOwnProperty(yl)||(er[yl]=ri[yl]);function Sk(t){var e=yk&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||vk&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",n=!e&&t.key||(t.shiftKey?er:ri)[t.keyCode]||t.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}function We(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,n=arguments[1];if(n&&typeof n=="object"&&n.nodeType==null&&!Array.isArray(n)){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var s=n[i];typeof s=="string"?t.setAttribute(i,s):s!=null&&(t[i]=s)}e++}for(;e<arguments.length;e++)gm(t,arguments[e]);return t}function gm(t,e){if(typeof e=="string")t.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)t.appendChild(e);else if(Array.isArray(e))for(var n=0;n<e.length;n++)gm(t,e[n]);else throw new RangeError("Unsupported child node: "+e)}let vt=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},Nc=typeof document<"u"?document:{documentElement:{style:{}}};const Rc=/Edge\/(\d+)/.exec(vt.userAgent),xm=/MSIE \d/.test(vt.userAgent),_c=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(vt.userAgent),To=!!(xm||_c||Rc),bf=!To&&/gecko\/(\d+)/i.test(vt.userAgent),vl=!To&&/Chrome\/(\d+)/.exec(vt.userAgent),wk="webkitFontSmoothing"in Nc.documentElement.style,Mc=!To&&/Apple Computer/.test(vt.vendor),yf=Mc&&(/Mobile\/\w+/.test(vt.userAgent)||vt.maxTouchPoints>2);var re={mac:yf||/Mac/.test(vt.platform),windows:/Win/.test(vt.platform),linux:/Linux|X11/.test(vt.platform),ie:To,ie_version:xm?Nc.documentMode||6:_c?+_c[1]:Rc?+Rc[1]:0,gecko:bf,gecko_version:bf?+(/Firefox\/(\d+)/.exec(vt.userAgent)||[0,0])[1]:0,chrome:!!vl,chrome_version:vl?+vl[1]:0,ios:yf,android:/Android\b/.test(vt.userAgent),webkit_version:wk?+(/\bAppleWebKit\/(\d+)/.exec(vt.userAgent)||[0,0])[1]:0,safari:Mc,safari_version:Mc?+(/\bVersion\/(\d+(\.\d+)?)/.exec(vt.userAgent)||[0,0])[1]:0,tabSize:Nc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function Vd(t,e){for(let n in t)n=="class"&&e.class?e.class+=" "+t.class:n=="style"&&e.style?e.style+=";"+t.style:e[n]=t[n];return e}const za=Object.create(null);function Fd(t,e,n){if(t==e)return!0;t||(t=za),e||(e=za);let i=Object.keys(t),s=Object.keys(e);if(i.length-0!=s.length-0)return!1;for(let r of i)if(r!=n&&(s.indexOf(r)==-1||t[r]!==e[r]))return!1;return!0}function kk(t,e){for(let n=t.attributes.length-1;n>=0;n--){let i=t.attributes[n].name;e[i]==null&&t.removeAttribute(i)}for(let n in e){let i=e[n];n=="style"?t.style.cssText=i:t.getAttribute(n)!=i&&t.setAttribute(n,i)}}function vf(t,e,n){let i=!1;if(e)for(let s in e)n&&s in n||(i=!0,s=="style"?t.style.cssText="":t.removeAttribute(s));if(n)for(let s in n)e&&e[s]==n[s]||(i=!0,s=="style"?t.style.cssText=n[s]:t.setAttribute(s,n[s]));return i}function Qk(t){let e=Object.create(null);for(let n=0;n<t.attributes.length;n++){let i=t.attributes[n];e[i.name]=i.value}return e}class Qn{eq(e){return!1}updateDOM(e,n){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,n,i){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}}var mt=(function(t){return t[t.Text=0]="Text",t[t.WidgetBefore=1]="WidgetBefore",t[t.WidgetAfter=2]="WidgetAfter",t[t.WidgetRange=3]="WidgetRange",t})(mt||(mt={}));class Se extends ii{constructor(e,n,i,s){super(),this.startSide=e,this.endSide=n,this.widget=i,this.spec=s}get heightRelevant(){return!1}static mark(e){return new mr(e)}static widget(e){let n=Math.max(-1e4,Math.min(1e4,e.side||0)),i=!!e.block;return n+=i&&!e.inlineOrder?n>0?3e8:-4e8:n>0?1e8:-1e8,new $i(e,n,n,i,e.widget||null,!1)}static replace(e){let n=!!e.block,i,s;if(e.isBlockGap)i=-5e8,s=4e8;else{let{start:r,end:a}=bm(e,n);i=(r?n?-3e8:-1:5e8)-1,s=(a?n?2e8:1:-6e8)+1}return new $i(e,i,s,n,e.widget||null,!0)}static line(e){return new gr(e)}static set(e,n=!1){return Le.of(e,n)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Se.none=Le.empty;class mr extends Se{constructor(e){let{start:n,end:i}=bm(e);super(n?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?Vd(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||za}eq(e){return this==e||e instanceof mr&&this.tagName==e.tagName&&Fd(this.attrs,e.attrs)}range(e,n=e){if(e>=n)throw new RangeError("Mark decorations may not be empty");return super.range(e,n)}}mr.prototype.point=!1;class gr extends Se{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof gr&&this.spec.class==e.spec.class&&Fd(this.spec.attributes,e.spec.attributes)}range(e,n=e){if(n!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,n)}}gr.prototype.mapMode=Ot.TrackBefore;gr.prototype.point=!0;class $i extends Se{constructor(e,n,i,s,r,a){super(n,i,r,e),this.block=s,this.isReplace=a,this.mapMode=s?n<=0?Ot.TrackBefore:Ot.TrackAfter:Ot.TrackDel}get type(){return this.startSide!=this.endSide?mt.WidgetRange:this.startSide<=0?mt.WidgetBefore:mt.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof $i&&Ck(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,n=e){if(this.isReplace&&(e>n||e==n&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&n!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,n)}}$i.prototype.point=!0;function bm(t,e=!1){let{inclusiveStart:n,inclusiveEnd:i}=t;return n==null&&(n=t.inclusive),i==null&&(i=t.inclusive),{start:n??e,end:i??e}}function Ck(t,e){return t==e||!!(t&&e&&t.compare(e))}function Ji(t,e,n,i=0){let s=n.length-1;s>=0&&n[s]+i>=t?n[s]=Math.max(n[s],e):n.push(t,e)}class tr extends ii{constructor(e,n){super(),this.tagName=e,this.attributes=n}eq(e){return e==this||e instanceof tr&&this.tagName==e.tagName&&Fd(this.attributes,e.attributes)}static create(e){return new tr(e.tagName,e.attributes||za)}static set(e,n=!1){return Le.of(e,n)}}tr.prototype.startSide=tr.prototype.endSide=-1;function nr(t){let e;return t.nodeType==11?e=t.getSelection?t:t.ownerDocument:e=t,e.getSelection()}function Ec(t,e){return e?t==e||t.contains(e.nodeType!=1?e.parentNode:e):!1}function Zs(t,e){if(!e.anchorNode)return!1;try{return Ec(t,e.anchorNode)}catch{return!1}}function ba(t){return t.nodeType==3?ir(t,0,t.nodeValue.length).getClientRects():t.nodeType==1?t.getClientRects():[]}function Ds(t,e,n,i){return n?Sf(t,e,n,i,-1)||Sf(t,e,n,i,1):!1}function ai(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e}function Ba(t){return t.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}function Sf(t,e,n,i,s){for(;;){if(t==n&&e==i)return!0;if(e==(s<0?0:Ln(t))){if(t.nodeName=="DIV")return!1;let r=t.parentNode;if(!r||r.nodeType!=1)return!1;e=ai(t)+(s<0?0:1),t=r}else if(t.nodeType==1){if(t=t.childNodes[e+(s<0?-1:0)],t.nodeType==1&&t.contentEditable=="false")return!1;e=s<0?Ln(t):0}else return!1}}function Ln(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function Va(t,e){let n=e?t.left:t.right;return{left:n,right:n,top:t.top,bottom:t.bottom}}function Pk(t){let e=t.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}function ym(t,e){let n=e.width/t.offsetWidth,i=e.height/t.offsetHeight;return(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.width-t.offsetWidth)<1)&&(n=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-t.offsetHeight)<1)&&(i=1),{scaleX:n,scaleY:i}}function Tk(t,e,n,i,s,r,a,o){let c=t.ownerDocument,d=c.defaultView||window;for(let u=t,h=!1;u&&!h;)if(u.nodeType==1){let f,p=u==c.body,O=1,g=1;if(p)f=Pk(d);else{if(/^(fixed|sticky)$/.test(getComputedStyle(u).position)&&(h=!0),u.scrollHeight<=u.clientHeight&&u.scrollWidth<=u.clientWidth){u=u.assignedSlot||u.parentNode;continue}let y=u.getBoundingClientRect();({scaleX:O,scaleY:g}=ym(u,y)),f={left:y.left,right:y.left+u.clientWidth*O,top:y.top,bottom:y.top+u.clientHeight*g}}let x=0,b=0;if(s=="nearest")e.top<f.top?(b=e.top-(f.top+a),n>0&&e.bottom>f.bottom+b&&(b=e.bottom-f.bottom+a)):e.bottom>f.bottom&&(b=e.bottom-f.bottom+a,n<0&&e.top-b<f.top&&(b=e.top-(f.top+a)));else{let y=e.bottom-e.top,S=f.bottom-f.top;b=(s=="center"&&y<=S?e.top+y/2-S/2:s=="start"||s=="center"&&n<0?e.top-a:e.bottom-S+a)-f.top}if(i=="nearest"?e.left<f.left?(x=e.left-(f.left+r),n>0&&e.right>f.right+x&&(x=e.right-f.right+r)):e.right>f.right&&(x=e.right-f.right+r,n<0&&e.left<f.left+x&&(x=e.left-(f.left+r))):x=(i=="center"?e.left+(e.right-e.left)/2-(f.right-f.left)/2:i=="start"==o?e.left-r:e.right-(f.right-f.left)+r)-f.left,x||b)if(p)d.scrollBy(x,b);else{let y=0,S=0;if(b){let P=u.scrollTop;u.scrollTop+=b/g,S=(u.scrollTop-P)*g}if(x){let P=u.scrollLeft;u.scrollLeft+=x/O,y=(u.scrollLeft-P)*O}e={left:e.left-y,top:e.top-S,right:e.right-y,bottom:e.bottom-S},y&&Math.abs(y-x)<1&&(i="nearest"),S&&Math.abs(S-b)<1&&(s="nearest")}if(p)break;(e.top<f.top||e.bottom>f.bottom||e.left<f.left||e.right>f.right)&&(e={left:Math.max(e.left,f.left),right:Math.min(e.right,f.right),top:Math.max(e.top,f.top),bottom:Math.min(e.bottom,f.bottom)}),u=u.assignedSlot||u.parentNode}else if(u.nodeType==11)u=u.host;else break}function vm(t,e=!0){let n=t.ownerDocument,i=null,s=null;for(let r=t.parentNode;r&&!(r==n.body||(!e||i)&&s);)if(r.nodeType==1)!s&&r.scrollHeight>r.clientHeight&&(s=r),e&&!i&&r.scrollWidth>r.clientWidth&&(i=r),r=r.assignedSlot||r.parentNode;else if(r.nodeType==11)r=r.host;else break;return{x:i,y:s}}class $k{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:n,focusNode:i}=e;this.set(n,Math.min(e.anchorOffset,n?Ln(n):0),i,Math.min(e.focusOffset,i?Ln(i):0))}set(e,n,i,s){this.anchorNode=e,this.anchorOffset=n,this.focusNode=i,this.focusOffset=s}}let gi=null;re.safari&&re.safari_version>=26&&(gi=!1);function Sm(t){if(t.setActive)return t.setActive();if(gi)return t.focus(gi);let e=[];for(let n=t;n&&(e.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(t.focus(gi==null?{get preventScroll(){return gi={preventScroll:!0},!0}}:void 0),!gi){gi=!1;for(let n=0;n<e.length;){let i=e[n++],s=e[n++],r=e[n++];i.scrollTop!=s&&(i.scrollTop=s),i.scrollLeft!=r&&(i.scrollLeft=r)}}}let wf;function ir(t,e,n=e){let i=wf||(wf=document.createRange());return i.setEnd(t,n),i.setStart(t,e),i}function es(t,e,n,i){let s={key:e,code:e,keyCode:n,which:n,cancelable:!0};i&&({altKey:s.altKey,ctrlKey:s.ctrlKey,shiftKey:s.shiftKey,metaKey:s.metaKey}=i);let r=new KeyboardEvent("keydown",s);r.synthetic=!0,t.dispatchEvent(r);let a=new KeyboardEvent("keyup",s);return a.synthetic=!0,t.dispatchEvent(a),r.defaultPrevented||a.defaultPrevented}function jk(t){for(;t;){if(t&&(t.nodeType==9||t.nodeType==11&&t.host))return t;t=t.assignedSlot||t.parentNode}return null}function Ak(t,e){let n=e.focusNode,i=e.focusOffset;if(!n||e.anchorNode!=n||e.anchorOffset!=i)return!1;for(i=Math.min(i,Ln(n));;)if(i){if(n.nodeType!=1)return!1;let s=n.childNodes[i-1];s.contentEditable=="false"?i--:(n=s,i=Ln(n))}else{if(n==t)return!0;i=ai(n),n=n.parentNode}}function wm(t){return t instanceof Window?t.pageYOffset>Math.max(0,t.document.documentElement.scrollHeight-t.innerHeight-4):t.scrollTop>Math.max(1,t.scrollHeight-t.clientHeight-4)}function km(t,e){for(let n=t,i=e;;){if(n.nodeType==3&&i>0)return{node:n,offset:i};if(n.nodeType==1&&i>0){if(n.contentEditable=="false")return null;n=n.childNodes[i-1],i=Ln(n)}else if(n.parentNode&&!Ba(n))i=ai(n),n=n.parentNode;else return null}}function Qm(t,e){for(let n=t,i=e;;){if(n.nodeType==3&&i<n.nodeValue.length)return{node:n,offset:i};if(n.nodeType==1&&i<n.childNodes.length){if(n.contentEditable=="false")return null;n=n.childNodes[i],i=0}else if(n.parentNode&&!Ba(n))i=ai(n)+1,n=n.parentNode;else return null}}class tn{constructor(e,n,i=!0){this.node=e,this.offset=n,this.precise=i}static before(e,n){return new tn(e.parentNode,ai(e),n)}static after(e,n){return new tn(e.parentNode,ai(e)+1,n)}}var Be=(function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t})(Be||(Be={}));const ji=Be.LTR,Ud=Be.RTL;function Cm(t){let e=[];for(let n=0;n<t.length;n++)e.push(1<<+t[n]);return e}const Nk=Cm("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),Rk=Cm("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),Ic=Object.create(null),dn=[];for(let t of["()","[]","{}"]){let e=t.charCodeAt(0),n=t.charCodeAt(1);Ic[e]=n,Ic[n]=-e}function Pm(t){return t<=247?Nk[t]:1424<=t&&t<=1524?2:1536<=t&&t<=1785?Rk[t-1536]:1774<=t&&t<=2220?4:8192<=t&&t<=8204?256:64336<=t&&t<=65023?4:1}const _k=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class gn{get dir(){return this.level%2?Ud:ji}constructor(e,n,i){this.from=e,this.to=n,this.level=i}side(e,n){return this.dir==n==e?this.to:this.from}forward(e,n){return e==(this.dir==n)}static find(e,n,i,s){let r=-1;for(let a=0;a<e.length;a++){let o=e[a];if(o.from<=n&&o.to>=n){if(o.level==i)return a;(r<0||(s!=0?s<0?o.from<n:o.to>n:e[r].level>o.level))&&(r=a)}}if(r<0)throw new RangeError("Index out of range");return r}}function Tm(t,e){if(t.length!=e.length)return!1;for(let n=0;n<t.length;n++){let i=t[n],s=e[n];if(i.from!=s.from||i.to!=s.to||i.direction!=s.direction||!Tm(i.inner,s.inner))return!1}return!0}const ze=[];function Mk(t,e,n,i,s){for(let r=0;r<=i.length;r++){let a=r?i[r-1].to:e,o=r<i.length?i[r].from:n,c=r?256:s;for(let d=a,u=c,h=c;d<o;d++){let f=Pm(t.charCodeAt(d));f==512?f=u:f==8&&h==4&&(f=16),ze[d]=f==4?2:f,f&7&&(h=f),u=f}for(let d=a,u=c,h=c;d<o;d++){let f=ze[d];if(f==128)d<o-1&&u==ze[d+1]&&u&24?f=ze[d]=u:ze[d]=256;else if(f==64){let p=d+1;for(;p<o&&ze[p]==64;)p++;let O=d&&u==8||p<n&&ze[p]==8?h==1?1:8:256;for(let g=d;g<p;g++)ze[g]=O;d=p-1}else f==8&&h==1&&(ze[d]=1);u=f,f&7&&(h=f)}}}function Ek(t,e,n,i,s){let r=s==1?2:1;for(let a=0,o=0,c=0;a<=i.length;a++){let d=a?i[a-1].to:e,u=a<i.length?i[a].from:n;for(let h=d,f,p,O;h<u;h++)if(p=Ic[f=t.charCodeAt(h)])if(p<0){for(let g=o-3;g>=0;g-=3)if(dn[g+1]==-p){let x=dn[g+2],b=x&2?s:x&4?x&1?r:s:0;b&&(ze[h]=ze[dn[g]]=b),o=g;break}}else{if(dn.length==189)break;dn[o++]=h,dn[o++]=f,dn[o++]=c}else if((O=ze[h])==2||O==1){let g=O==s;c=g?0:1;for(let x=o-3;x>=0;x-=3){let b=dn[x+2];if(b&2)break;if(g)dn[x+2]|=2;else{if(b&4)break;dn[x+2]|=4}}}}}function Ik(t,e,n,i){for(let s=0,r=i;s<=n.length;s++){let a=s?n[s-1].to:t,o=s<n.length?n[s].from:e;for(let c=a;c<o;){let d=ze[c];if(d==256){let u=c+1;for(;;)if(u==o){if(s==n.length)break;u=n[s++].to,o=s<n.length?n[s].from:e}else if(ze[u]==256)u++;else break;let h=r==1,f=(u<e?ze[u]:i)==1,p=h==f?h?1:2:i;for(let O=u,g=s,x=g?n[g-1].to:t;O>c;)O==x&&(O=n[--g].from,x=g?n[g-1].to:t),ze[--O]=p;c=u}else r=d,c++}}}function Lc(t,e,n,i,s,r,a){let o=i%2?2:1;if(i%2==s%2)for(let c=e,d=0;c<n;){let u=!0,h=!1;if(d==r.length||c<r[d].from){let g=ze[c];g!=o&&(u=!1,h=g==16)}let f=!u&&o==1?[]:null,p=u?i:i+1,O=c;e:for(;;)if(d<r.length&&O==r[d].from){if(h)break e;let g=r[d];if(!u)for(let x=g.to,b=d+1;;){if(x==n)break e;if(b<r.length&&r[b].from==x)x=r[b++].to;else{if(ze[x]==o)break e;break}}if(d++,f)f.push(g);else{g.from>c&&a.push(new gn(c,g.from,p));let x=g.direction==ji!=!(p%2);Xc(t,x?i+1:i,s,g.inner,g.from,g.to,a),c=g.to}O=g.to}else{if(O==n||(u?ze[O]!=o:ze[O]==o))break;O++}f?Lc(t,c,O,i+1,s,f,a):c<O&&a.push(new gn(c,O,p)),c=O}else for(let c=n,d=r.length;c>e;){let u=!0,h=!1;if(!d||c>r[d-1].to){let g=ze[c-1];g!=o&&(u=!1,h=g==16)}let f=!u&&o==1?[]:null,p=u?i:i+1,O=c;e:for(;;)if(d&&O==r[d-1].to){if(h)break e;let g=r[--d];if(!u)for(let x=g.from,b=d;;){if(x==e)break e;if(b&&r[b-1].to==x)x=r[--b].from;else{if(ze[x-1]==o)break e;break}}if(f)f.push(g);else{g.to<c&&a.push(new gn(g.to,c,p));let x=g.direction==ji!=!(p%2);Xc(t,x?i+1:i,s,g.inner,g.from,g.to,a),c=g.from}O=g.from}else{if(O==e||(u?ze[O-1]!=o:ze[O-1]==o))break;O--}f?Lc(t,O,c,i+1,s,f,a):O<c&&a.push(new gn(O,c,p)),c=O}}function Xc(t,e,n,i,s,r,a){let o=e%2?2:1;Mk(t,s,r,i,o),Ek(t,s,r,i,o),Ik(s,r,i,o),Lc(t,s,r,e,n,i,a)}function Lk(t,e,n){if(!t)return[new gn(0,0,e==Ud?1:0)];if(e==ji&&!n.length&&!_k.test(t))return $m(t.length);if(n.length)for(;t.length>ze.length;)ze[ze.length]=256;let i=[],s=e==ji?0:1;return Xc(t,s,s,n,0,t.length,i),i}function $m(t){return[new gn(0,t,0)]}let jm="";function Xk(t,e,n,i,s){var r;let a=i.head-t.from,o=gn.find(e,a,(r=i.bidiLevel)!==null&&r!==void 0?r:-1,i.assoc),c=e[o],d=c.side(s,n);if(a==d){let f=o+=s?1:-1;if(f<0||f>=e.length)return null;c=e[o=f],a=c.side(!s,n),d=c.side(s,n)}let u=ut(t.text,a,c.forward(s,n));(u<c.from||u>c.to)&&(u=d),jm=t.text.slice(Math.min(a,u),Math.max(a,u));let h=o==(s?e.length-1:0)?null:e[o+(s?1:-1)];return h&&u==d&&h.level+(s?0:1)<c.level?q.cursor(h.side(!s,n)+t.from,h.forward(s,n)?1:-1,h.level):q.cursor(u+t.from,c.forward(s,n)?-1:1,c.level)}function Zk(t,e,n){for(let i=e;i<n;i++){let s=Pm(t.charCodeAt(i));if(s==1)return ji;if(s==2||s==4)return Ud}return ji}const Am=se.define(),Nm=se.define(),Rm=se.define(),_m=se.define(),Zc=se.define(),Mm=se.define(),Em=se.define(),Yd=se.define(),Gd=se.define(),Im=se.define({combine:t=>t.some(e=>e)}),Lm=se.define({combine:t=>t.some(e=>e)}),Xm=se.define();class ts{constructor(e,n="nearest",i="nearest",s=5,r=5,a=!1){this.range=e,this.y=n,this.x=i,this.yMargin=s,this.xMargin=r,this.isSnapshot=a}map(e){return e.empty?this:new ts(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new ts(q.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const zr=Pe.define({map:(t,e)=>t.map(e)}),Zm=Pe.define();function At(t,e,n){let i=t.facet(_m);i.length?i[0](e):window.onerror&&window.onerror(String(e),n,void 0,void 0,e)||(n?console.error(n+":",e):console.error(e))}const Rn=se.define({combine:t=>t.length?t[0]:!0});let Dk=0;const qi=se.define({combine(t){return t.filter((e,n)=>{for(let i=0;i<n;i++)if(t[i].plugin==e.plugin)return!1;return!0})}});class st{constructor(e,n,i,s,r){this.id=e,this.create=n,this.domEventHandlers=i,this.domEventObservers=s,this.baseExtensions=r(this),this.extension=this.baseExtensions.concat(qi.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(qi.of({plugin:this,arg:e}))}static define(e,n){const{eventHandlers:i,eventObservers:s,provide:r,decorations:a}=n||{};return new st(Dk++,e,i,s,o=>{let c=[];return a&&c.push($o.of(d=>{let u=d.plugin(o);return u?a(u):Se.none})),r&&c.push(r(o)),c})}static fromClass(e,n){return st.define((i,s)=>new e(i,s),n)}}class Sl{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let n=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(n)}catch(i){if(At(n.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(n){At(e.state,n,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var n;if(!((n=this.value)===null||n===void 0)&&n.destroy)try{this.value.destroy()}catch(i){At(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Dm=se.define(),Hd=se.define(),$o=se.define(),qm=se.define(),Kd=se.define(),xr=se.define(),Wm=se.define();function kf(t,e){let n=t.state.facet(Wm);if(!n.length)return n;let i=n.map(r=>r instanceof Function?r(t):r),s=[];return Le.spans(i,e.from,e.to,{point(){},span(r,a,o,c){let d=r-e.from,u=a-e.from,h=s;for(let f=o.length-1;f>=0;f--,c--){let p=o[f].spec.bidiIsolate,O;if(p==null&&(p=Zk(e.text,d,u)),c>0&&h.length&&(O=h[h.length-1]).to==d&&O.direction==p)O.to=u,h=O.inner;else{let g={from:d,to:u,direction:p,inner:[]};h.push(g),h=g.inner}}}}),s}const zm=se.define();function Jd(t){let e=0,n=0,i=0,s=0;for(let r of t.state.facet(zm)){let a=r(t);a&&(a.left!=null&&(e=Math.max(e,a.left)),a.right!=null&&(n=Math.max(n,a.right)),a.top!=null&&(i=Math.max(i,a.top)),a.bottom!=null&&(s=Math.max(s,a.bottom)))}return{left:e,right:n,top:i,bottom:s}}const js=se.define();class zt{constructor(e,n,i,s){this.fromA=e,this.toA=n,this.fromB=i,this.toB=s}join(e){return new zt(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let n=e.length,i=this;for(;n>0;n--){let s=e[n-1];if(!(s.fromA>i.toA)){if(s.toA<i.fromA)break;i=i.join(s),e.splice(n-1,1)}}return e.splice(n,0,i),e}static extendWithRanges(e,n){if(n.length==0)return e;let i=[];for(let s=0,r=0,a=0;;){let o=s<e.length?e[s].fromB:1e9,c=r<n.length?n[r]:1e9,d=Math.min(o,c);if(d==1e9)break;let u=d+a,h=d,f=u;for(;;)if(r<n.length&&n[r]<=h){let p=n[r+1];r+=2,h=Math.max(h,p);for(let O=s;O<e.length&&e[O].fromB<=h;O++)a=e[O].toA-e[O].toB;f=Math.max(f,p+a)}else if(s<e.length&&e[s].fromB<=h){let p=e[s++];h=Math.max(h,p.toB),f=Math.max(f,p.toA),a=p.toA-p.toB}else break;i.push(new zt(u,f,d,h))}return i}}class Fa{constructor(e,n,i){this.view=e,this.state=n,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=ct.empty(this.startState.doc.length);for(let r of i)this.changes=this.changes.compose(r.changes);let s=[];this.changes.iterChangedRanges((r,a,o,c)=>s.push(new zt(r,a,o,c))),this.changedRanges=s}static create(e,n,i){return new Fa(e,n,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const qk=[];class nt{constructor(e,n,i=0){this.dom=e,this.length=n,this.flags=i,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return qk}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let n=this.domAttrs;n&&kk(this.dom,n)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,n=this.posAtStart){let i=n;for(let s of this.children){if(s==e)return i;i+=s.length+s.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,n){return null}domPosFor(e,n){let i=ai(this.dom),s=this.length?e>0:n>0;return new tn(this.parent.dom,i+(s?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof Ao)return e;return null}static get(e){return e.cmTile}}class jo extends nt{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let n=this.dom,i=null,s,r=(e==null?void 0:e.node)==n?e:null,a=0;for(let o of this.children){if(o.sync(e),a+=o.length+o.breakAfter,s=i?i.nextSibling:n.firstChild,r&&s!=o.dom&&(r.written=!0),o.dom.parentNode==n)for(;s&&s!=o.dom;)s=Qf(s);else n.insertBefore(o.dom,s);i=o.dom}for(s=i?i.nextSibling:n.firstChild,r&&s&&(r.written=!0);s;)s=Qf(s);this.length=a}}function Qf(t){let e=t.nextSibling;return t.parentNode.removeChild(t),e}class Ao extends jo{constructor(e,n){super(n),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let n=nt.get(e);if(n&&this.owns(n))return n;e=e.parentNode}}blockTiles(e){for(let n=[],i=this,s=0,r=0;;)if(s==i.children.length){if(!n.length)return;i=i.parent,i.breakAfter&&r++,s=n.pop()}else{let a=i.children[s++];if(a instanceof En)n.push(s),i=a,s=0;else{let o=r+a.length,c=e(a,r);if(c!==void 0)return c;r=o+a.breakAfter}}}resolveBlock(e,n){let i,s=-1,r,a=-1;if(this.blockTiles((o,c)=>{let d=c+o.length;if(e>=c&&e<=d){if(o.isWidget()&&n>=-1&&n<=1){if(o.flags&32)return!0;o.flags&16&&(i=void 0)}(c<e||e==d&&(n<-1?o.length:o.covers(1)))&&(!i||!o.isWidget()&&i.isWidget())&&(i=o,s=e-c),(d>e||e==c&&(n>1?o.length:o.covers(-1)))&&(!r||!o.isWidget()&&r.isWidget())&&(r=o,a=e-c)}}),!i&&!r)throw new Error("No tile at position "+e);return i&&n<0||!r?{tile:i,offset:s}:{tile:r,offset:a}}}class En extends jo{constructor(e,n){super(e),this.wrapper=n}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,n){let i=new En(n||document.createElement(e.tagName),e);return n||(i.flags|=4),i}}class rs extends jo{constructor(e,n){super(e),this.attrs=n}isLine(){return!0}static start(e,n,i){let s=new rs(n||document.createElement("div"),e);return(!n||!i)&&(s.flags|=4),s}get domAttrs(){return this.attrs}resolveInline(e,n,i){let s=null,r=-1,a=null,o=-1;function c(u,h){for(let f=0,p=0;f<u.children.length&&p<=h;f++){let O=u.children[f],g=p+O.length;g>=h&&(O.isComposite()?c(O,h-p):(!a||a.isHidden&&(n>0||i&&zk(a,O)))&&(g>h||O.flags&32)?(a=O,o=h-p):(p<h||O.flags&16&&!O.isHidden)&&(s=O,r=h-p)),p=g}}c(this,e);let d=(n<0?s:a)||s||a;return d?{tile:d,offset:d==s?r:o}:null}coordsIn(e,n){let i=this.resolveInline(e,n,!0);return i?i.tile.coordsIn(Math.max(0,i.offset),n):Wk(this)}domIn(e,n){let i=this.resolveInline(e,n);if(i){let{tile:s,offset:r}=i;if(this.dom.contains(s.dom))return s.isText()?new tn(s.dom,Math.min(s.dom.nodeValue.length,r)):s.domPosFor(r,s.flags&16?1:s.flags&32?-1:n);let a=i.tile.parent,o=!1;for(let c of a.children){if(o)return new tn(c.dom,0);c==i.tile&&(o=!0)}}return new tn(this.dom,0)}}function Wk(t){let e=t.dom.lastChild;if(!e)return t.dom.getBoundingClientRect();let n=ba(e);return n[n.length-1]||null}function zk(t,e){let n=t.coordsIn(0,1),i=e.coordsIn(0,1);return n&&i&&i.top<n.bottom}class jt extends jo{constructor(e,n){super(e),this.mark=n}get domAttrs(){return this.mark.attrs}static of(e,n){let i=new jt(n||document.createElement(e.tagName),e);return n||(i.flags|=4),i}}class wi extends nt{constructor(e,n){super(e,n.length),this.text=n}sync(e){this.flags&2||(super.sync(e),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text))}isText(){return!0}toString(){return JSON.stringify(this.text)}coordsIn(e,n){let i=this.dom.nodeValue.length;e>i&&(e=i);let s=e,r=e,a=0;e==0&&n<0||e==i&&n>=0?re.chrome||re.gecko||(e?(s--,a=1):r<i&&(r++,a=-1)):n<0?s--:r<i&&r++;let o=ir(this.dom,s,r).getClientRects();if(!o.length)return null;let c=o[(a?a<0:n>=0)?0:o.length-1];return re.safari&&!a&&c.width==0&&(c=Array.prototype.find.call(o,d=>d.width)||c),a?Va(c,a<0):c||null}static of(e,n){let i=new wi(n||document.createTextNode(e),e);return n||(i.flags|=2),i}}class Ai extends nt{constructor(e,n,i,s){super(e,n,s),this.widget=i}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,n){return this.coordsInWidget(e,n,!1)}coordsInWidget(e,n,i){let s=this.widget.coordsAt(this.dom,e,n);if(s)return s;if(i)return Va(this.dom.getBoundingClientRect(),this.length?e==0:n<=0);{let r=this.dom.getClientRects(),a=null;if(!r.length)return null;let o=this.flags&16?!0:this.flags&32?!1:e>0;for(let c=o?r.length-1:0;a=r[c],!(e>0?c==0:c==r.length-1||a.top<a.bottom);c+=o?-1:1);return Va(a,!o)}}get overrideDOMText(){if(!this.length)return Ze.empty;let{root:e}=this;if(!e)return Ze.empty;let n=this.posAtStart;return e.view.state.doc.slice(n,n+this.length)}destroy(){super.destroy(),this.widget.destroy(this.dom)}static of(e,n,i,s,r){return r||(r=e.toDOM(n),e.editable||(r.contentEditable="false")),new Ai(r,i,e,s)}}class Ua extends nt{constructor(e){let n=document.createElement("img");n.className="cm-widgetBuffer",n.setAttribute("aria-hidden","true"),super(n,0,e)}get isHidden(){return!0}get overrideDOMText(){return Ze.empty}coordsIn(e){return this.dom.getBoundingClientRect()}}class Bk{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,n,i){let{tile:s,index:r,beforeBreak:a,parents:o}=this;for(;e||n>0;)if(s.isComposite())if(a){if(!e)break;i&&i.break(),e--,a=!1}else if(r==s.children.length){if(!e&&!o.length)break;i&&i.leave(s),a=!!s.breakAfter,{tile:s,index:r}=o.pop(),r++}else{let c=s.children[r],d=c.breakAfter;(n>0?c.length<=e:c.length<e)&&(!i||i.skip(c,0,c.length)!==!1||!c.isComposite)?(a=!!d,r++,e-=c.length):(o.push({tile:s,index:r}),s=c,r=0,i&&c.isComposite()&&i.enter(c))}else if(r==s.length)a=!!s.breakAfter,{tile:s,index:r}=o.pop(),r++;else if(e){let c=Math.min(e,s.length-r);i&&i.skip(s,r,r+c),e-=c,r+=c}else break;return this.tile=s,this.index=r,this.beforeBreak=a,this}get root(){return this.parents.length?this.parents[0].tile:this.tile}}class Vk{constructor(e,n,i,s){this.from=e,this.to=n,this.wrapper=i,this.rank=s}}class Fk{constructor(e,n,i){this.cache=e,this.root=n,this.blockWrappers=i,this.curLine=null,this.lastBlock=null,this.afterWidget=null,this.pos=0,this.wrappers=[],this.wrapperPos=0}addText(e,n,i,s){var r;this.flushBuffer();let a=this.ensureMarks(n,i),o=a.lastChild;if(o&&o.isText()&&!(o.flags&8)&&o.length+e.length<512){this.cache.reused.set(o,2);let c=a.children[a.children.length-1]=new wi(o.dom,o.text+e);c.parent=a}else a.append(s||wi.of(e,(r=this.cache.find(wi))===null||r===void 0?void 0:r.dom));this.pos+=e.length,this.afterWidget=null}addComposition(e,n){let i=this.curLine;i.dom!=n.line.dom&&(i.setDOM(this.cache.reused.has(n.line)?wl(n.line.dom):n.line.dom),this.cache.reused.set(n.line,2));let s=i;for(let o=n.marks.length-1;o>=0;o--){let c=n.marks[o],d=s.lastChild;if(d instanceof jt&&d.mark.eq(c.mark))d.dom!=c.dom&&d.setDOM(wl(c.dom)),s=d;else{if(this.cache.reused.get(c)){let h=nt.get(c.dom);h&&h.setDOM(wl(c.dom))}let u=jt.of(c.mark,c.dom);s.append(u),s=u}this.cache.reused.set(c,2)}let r=nt.get(e.text);r&&this.cache.reused.set(r,2);let a=new wi(e.text,e.text.nodeValue);a.flags|=8,s.append(a)}addInlineWidget(e,n,i){let s=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);s||this.flushBuffer();let r=this.ensureMarks(n,i);!s&&!(e.flags&16)&&r.append(this.getBuffer(1)),r.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,n,i){this.flushBuffer(),this.ensureMarks(n,i).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let n=this.afterWidget||this.lastBlock;n.length+=e,this.pos+=e}addLineStart(e,n){var i;e||(e=Bm);let s=rs.start(e,n||((i=this.cache.find(rs))===null||i===void 0?void 0:i.dom),!!n);this.getBlockPos().append(this.lastBlock=this.curLine=s)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,n){var i;let s=this.curLine;for(let r=e.length-1;r>=0;r--){let a=e[r],o;if(n>0&&(o=s.lastChild)&&o instanceof jt&&o.mark.eq(a))s=o,n--;else{let c=jt.of(a,(i=this.cache.find(jt,d=>d.mark.eq(a)))===null||i===void 0?void 0:i.dom);s.append(c),s=c,n=0}}return s}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!Cf(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(re.ios&&Cf(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(kl,0,32)||new Ai(kl.toDOM(),0,kl,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to<this.pos&&this.wrappers.splice(e,1);for(let e=this.blockWrappers;e.value&&e.from<=this.pos;e.next())if(e.to>=this.pos){let n=new Vk(e.from,e.to,e.value,e.rank),i=this.wrappers.length;for(;i>0&&(this.wrappers[i-1].rank-n.rank||this.wrappers[i-1].to-n.to)<0;)i--;this.wrappers.splice(i,0,n)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let n=this.root;for(let i of this.wrappers){let s=n.lastChild;if(i.from<this.pos&&s instanceof En&&s.wrapper.eq(i.wrapper))n=s;else{let r=En.of(i.wrapper,(e=this.cache.find(En,a=>a.wrapper.eq(i.wrapper)))===null||e===void 0?void 0:e.dom);n.append(r),n=r}}return n}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let n=2|(e<0?16:32),i=this.cache.find(Ua,void 0,1);return i&&(i.flags=n),i||new Ua(n)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class Uk{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:s,lineBreak:r,done:a}=this.cursor.next(this.skipCount);if(this.skipCount=0,a)throw new Error("Ran out of text content when drawing inline views");this.text=s;let o=this.textOff=Math.min(e,s.length);return r?null:s.slice(0,o)}let n=Math.min(this.text.length,this.textOff+e),i=this.text.slice(this.textOff,n);return this.textOff=n,i}}const Ya=[Ai,rs,wi,jt,Ua,En,Ao];for(let t=0;t<Ya.length;t++)Ya[t].bucket=t;class Yk{constructor(e){this.view=e,this.buckets=Ya.map(()=>[]),this.index=Ya.map(()=>0),this.reused=new Map}add(e){let n=e.constructor.bucket,i=this.buckets[n];i.length<6?i.push(e):i[this.index[n]=(this.index[n]+1)%6]=e}find(e,n,i=2){let s=e.bucket,r=this.buckets[s],a=this.index[s];for(let o=r.length-1;o>=0;o--){let c=(o+a)%r.length,d=r[c];if((!n||n(d))&&!this.reused.has(d))return r.splice(c,1),c<a&&this.index[s]--,this.reused.set(d,i),d}return null}findWidget(e,n,i){let s=this.buckets[0];if(s.length)for(let r=0,a=0;;r++){if(r==s.length){if(a)return null;a=1,r=0}let o=s[r];if(!this.reused.has(o)&&(a==0?o.widget.compare(e):o.widget.constructor==e.constructor&&e.updateDOM(o.dom,this.view)))return s.splice(r,1),r<this.index[0]&&this.index[0]--,o.widget==e&&o.length==n&&(o.flags&497)==i?(this.reused.set(o,1),o):(this.reused.set(o,2),new Ai(o.dom,n,e,o.flags&-498|i))}}reuse(e){return this.reused.set(e,1),e}maybeReuse(e,n=2){if(!this.reused.has(e))return this.reused.set(e,n),e.dom}clear(){for(let e=0;e<this.buckets.length;e++)this.buckets[e].length=this.index[e]=0}}class Gk{constructor(e,n,i,s,r){this.view=e,this.decorations=s,this.disallowBlockEffectsFor=r,this.openWidget=!1,this.openMarks=0,this.cache=new Yk(e),this.text=new Uk(e.state.doc),this.builder=new Fk(this.cache,new Ao(e,e.contentDOM),Le.iter(i)),this.cache.reused.set(n,2),this.old=new Bk(n),this.reuseWalker={skip:(a,o,c)=>{if(this.cache.add(a),a.isComposite())return!1},enter:a=>this.cache.add(a),leave:()=>{},break:()=>{}}}run(e,n){let i=n&&this.getCompositionContext(n.text);for(let s=0,r=0,a=0;;){let o=a<e.length?e[a++]:null,c=o?o.fromA:this.old.root.length;if(c>s){let d=c-s;this.preserve(d,!a,!o),s=c,r+=d}if(!o)break;n&&o.fromA<=n.range.fromA&&o.toA>=n.range.toA?(this.forward(o.fromA,n.range.fromA,n.range.fromA<n.range.toA?1:-1),this.emit(r,n.range.fromB),this.cache.clear(),this.builder.addComposition(n,i),this.text.skip(n.range.toB-n.range.fromB),this.forward(n.range.fromA,o.toA),this.emit(n.range.toB,o.toB)):(this.forward(o.fromA,o.toA),this.emit(r,o.toB)),r=o.toB,s=o.toA}return this.builder.curLine&&this.builder.endLine(),this.builder.root}preserve(e,n,i){let s=Jk(this.old),r=this.openMarks;this.old.advance(e,i?1:-1,{skip:(a,o,c)=>{if(a.isWidget())if(this.openWidget)this.builder.continueWidget(c-o);else{let d=c>0||o<a.length?Ai.of(a.widget,this.view,c-o,a.flags&496,this.cache.maybeReuse(a)):this.cache.reuse(a);d.flags&256?(d.flags&=-2,this.builder.addBlockWidget(d)):(this.builder.ensureLine(null),this.builder.addInlineWidget(d,s,r),r=s.length)}else if(a.isText())this.builder.ensureLine(null),!o&&c==a.length&&!this.cache.reused.has(a)?this.builder.addText(a.text,s,r,this.cache.reuse(a)):(this.cache.add(a),this.builder.addText(a.text.slice(o,c),s,r)),r=s.length;else if(a.isLine())a.flags&=-2,this.cache.reused.set(a,1),this.builder.addLine(a);else if(a instanceof Ua)this.cache.add(a);else if(a instanceof jt)this.builder.ensureLine(null),this.builder.addMark(a,s,r),this.cache.reused.set(a,1),r=s.length;else return!1;this.openWidget=!1},enter:a=>{a.isLine()?this.builder.addLineStart(a.attrs,this.cache.maybeReuse(a)):(this.cache.add(a),a instanceof jt&&s.unshift(a.mark)),this.openWidget=!1},leave:a=>{a.isLine()?s.length&&(s.length=r=0):a instanceof jt&&(s.shift(),r=Math.min(r,s.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,n){let i=null,s=this.builder,r=0,a=Le.spans(this.decorations,e,n,{point:(o,c,d,u,h,f)=>{if(d instanceof $i){if(this.disallowBlockEffectsFor[f]){if(d.block)throw new RangeError("Block decorations may not be specified via plugins");if(c>this.view.state.doc.lineAt(o).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(r=u.length,h>u.length)s.continueWidget(c-o);else{let p=d.widget||(d.block?as.block:as.inline),O=Hk(d),g=this.cache.findWidget(p,c-o,O)||Ai.of(p,this.view,c-o,O);d.block?(d.startSide>0&&s.addLineStartIfNotCovered(i),s.addBlockWidget(g)):(s.ensureLine(i),s.addInlineWidget(g,u,h))}i=null}else i=Kk(i,d);c>o&&this.text.skip(c-o)},span:(o,c,d,u)=>{for(let h=o;h<c;){let f=this.text.next(Math.min(512,c-h));f==null?(s.addLineStartIfNotCovered(i),s.addBreak(),h++):(s.ensureLine(i),s.addText(f,d,h==o?u:d.length),h+=f.length),i=null}}});s.addLineStartIfNotCovered(i),this.openWidget=a>r,this.openMarks=a}forward(e,n,i=1){n-e<=10?this.old.advance(n-e,i,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(n-e-10,-1),this.old.advance(5,i,this.reuseWalker))}getCompositionContext(e){let n=[],i=null;for(let s=e.parentNode;;s=s.parentNode){let r=nt.get(s);if(s==this.view.contentDOM)break;r instanceof jt?n.push(r):r!=null&&r.isLine()?i=r:r instanceof En||(s.nodeName=="DIV"&&!i&&s!=this.view.contentDOM?i=new rs(s,Bm):i||n.push(jt.of(new mr({tagName:s.nodeName.toLowerCase(),attributes:Qk(s)}),s)))}return{line:i,marks:n}}}function Cf(t,e){let n=i=>{for(let s of i.children)if((e?s.isText():s.length)||n(s))return!0;return!1};return n(t)}function Hk(t){let e=t.isReplace?(t.startSide<0?64:0)|(t.endSide>0?128:0):t.startSide>0?32:16;return t.block&&(e|=256),e}const Bm={class:"cm-line"};function Kk(t,e){let n=e.spec.attributes,i=e.spec.class;return!n&&!i||(t||(t={class:"cm-line"}),n&&Vd(n,t),i&&(t.class+=" "+i)),t}function Jk(t){let e=[];for(let n=t.parents.length;n>1;n--){let i=n==t.parents.length?t.tile:t.parents[n].tile;i instanceof jt&&e.push(i.mark)}return e}function wl(t){let e=nt.get(t);return e&&e.setDOM(t.cloneNode()),t}class as extends Qn{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}as.inline=new as("span");as.block=new as("div");const kl=new class extends Qn{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class Pf{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=Se.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new Ao(e,e.contentDOM),this.updateInner([new zt(0,0,0,e.state.doc.length)],null)}update(e){var n;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:u,toA:h})=>h<this.minWidthFrom||u>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let s=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((n=this.domChanged)===null||n===void 0)&&n.newSel?s=this.domChanged.newSel.head:!l4(e.changes,this.hasComposition)&&!e.selectionSet&&(s=e.state.selection.main.head));let r=s>-1?t4(this.view,e.changes,s):null;if(this.domChanged=null,this.hasComposition){let{from:u,to:h}=this.hasComposition;i=new zt(u,h,e.changes.mapPos(u,-1),e.changes.mapPos(h,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(re.ie||re.chrome)&&!r&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let a=this.decorations,o=this.blockWrappers;this.updateDeco();let c=s4(a,this.decorations,e.changes);c.length&&(i=zt.extendWithRanges(i,c));let d=a4(o,this.blockWrappers,e.changes);return d.length&&(i=zt.extendWithRanges(i,d)),r&&!i.some(u=>u.fromA<=r.range.fromA&&u.toA>=r.range.toA)&&(i=r.range.addToSet(i.slice())),this.tile.flags&2&&i.length==0?!1:(this.updateInner(i,r),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,n){this.view.viewState.mustMeasureContent=!0;let{observer:i}=this.view;i.ignore(()=>{if(n||e.length){let a=this.tile,o=new Gk(this.view,a,this.blockWrappers,this.decorations,this.dynamicDecorationMap);n&&nt.get(n.text)&&o.cache.reused.set(nt.get(n.text),2),this.tile=o.run(e,n),Dc(a,o.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=re.chrome||re.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(r),r&&(r.written||i.selectionRange.focusNode!=r.node||!this.tile.dom.contains(r.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let s=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let r of this.tile.children)r.isWidget()&&r.widget instanceof Ql&&s.push(r.dom);i.updateGaps(s)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let n of e.transactions)for(let i of n.effects)i.is(Zm)&&(this.editContextFormatting=i.value)}updateSelection(e=!1,n=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let{dom:i}=this.tile,s=this.view.root.activeElement,r=s==i,a=!r&&!(this.view.state.facet(Rn)||i.tabIndex>-1)&&Zs(i,this.view.observer.selectionRange)&&!(s&&i.contains(s));if(!(r||n||a))return;let o=this.forceSelection;this.forceSelection=!1;let c=this.view.state.selection.main,d,u;if(c.empty?u=d=this.inlineDOMNearPos(c.anchor,c.assoc||1):(u=this.inlineDOMNearPos(c.head,c.head==c.from?1:-1),d=this.inlineDOMNearPos(c.anchor,c.anchor==c.from?1:-1)),re.gecko&&c.empty&&!this.hasComposition&&e4(d)){let f=document.createTextNode("");this.view.observer.ignore(()=>d.node.insertBefore(f,d.node.childNodes[d.offset]||null)),d=u=new tn(f,0),o=!0}let h=this.view.observer.selectionRange;(o||!h.focusNode||(!Ds(d.node,d.offset,h.anchorNode,h.anchorOffset)||!Ds(u.node,u.offset,h.focusNode,h.focusOffset))&&!this.suppressWidgetCursorChange(h,c))&&(this.view.observer.ignore(()=>{re.android&&re.chrome&&i.contains(h.focusNode)&&o4(h.focusNode,i)&&(i.blur(),i.focus({preventScroll:!0}));let f=nr(this.view.root);if(f)if(c.empty){if(re.gecko){let p=n4(d.node,d.offset);if(p&&p!=3){let O=(p==1?km:Qm)(d.node,d.offset);O&&(d=new tn(O.node,O.offset))}}f.collapse(d.node,d.offset),c.bidiLevel!=null&&f.caretBidiLevel!==void 0&&(f.caretBidiLevel=c.bidiLevel)}else if(f.extend){f.collapse(d.node,d.offset);try{f.extend(u.node,u.offset)}catch{}}else{let p=document.createRange();c.anchor>c.head&&([d,u]=[u,d]),p.setEnd(u.node,u.offset),p.setStart(d.node,d.offset),f.removeAllRanges(),f.addRange(p)}a&&this.view.root.activeElement==i&&(i.blur(),s&&s.focus())}),this.view.observer.setSelectionRange(d,u)),this.impreciseAnchor=d.precise?null:new tn(h.anchorNode,h.anchorOffset),this.impreciseHead=u.precise?null:new tn(h.focusNode,h.focusOffset)}suppressWidgetCursorChange(e,n){return this.hasComposition&&n.empty&&Ds(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==n.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,n=e.state.selection.main,i=nr(e.root),{anchorNode:s,anchorOffset:r}=e.observer.selectionRange;if(!i||!n.empty||!n.assoc||!i.modify)return;let a=this.lineAt(n.head,n.assoc);if(!a)return;let o=a.posAtStart;if(n.head==o||n.head==o+a.length)return;let c=this.coordsAt(n.head,-1),d=this.coordsAt(n.head,1);if(!c||!d||c.bottom>d.top)return;let u=this.domAtPos(n.head+n.assoc,n.assoc);i.collapse(u.node,u.offset),i.modify("move",n.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=n.from&&i.collapse(s,r)}posFromDOM(e,n){let i=this.tile.nearest(e);if(!i)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let s=i.posAtStart;if(i.isComposite()){let r;if(e==i.dom)r=i.dom.childNodes[n];else{let a=Ln(e)==0?0:n==0?-1:1;for(;;){let o=e.parentNode;if(o==i.dom)break;a==0&&o.firstChild!=o.lastChild&&(e==o.firstChild?a=-1:a=1),e=o}a<0?r=e:r=e.nextSibling}if(r==i.dom.firstChild)return s;for(;r&&!nt.get(r);)r=r.nextSibling;if(!r)return s+i.length;for(let a=0,o=s;;a++){let c=i.children[a];if(c.dom==r)return o;o+=c.length+c.breakAfter}}else return i.isText()?e==i.dom?s+n:s+(n?i.length:0):s}domAtPos(e,n){let{tile:i,offset:s}=this.tile.resolveBlock(e,n);return i.isWidget()?i.domPosFor(e,n):i.domIn(s,n)}inlineDOMNearPos(e,n){let i,s=-1,r=!1,a,o=-1,c=!1;return this.tile.blockTiles((d,u)=>{if(d.isWidget()){if(d.flags&32&&u>=e)return!0;d.flags&16&&(r=!0)}else{let h=u+d.length;if(u<=e&&(i=d,s=e-u,r=h<e),h>=e&&!a&&(a=d,o=e-u,c=u>e),u>e&&a)return!0}}),!i&&!a?this.domAtPos(e,n):(r&&a?i=null:c&&i&&(a=null),i&&n<0||!a?i.domIn(s,n):a.domIn(o,n))}coordsAt(e,n){let{tile:i,offset:s}=this.tile.resolveBlock(e,n);return i.isWidget()?i.widget instanceof Ql?null:i.coordsInWidget(s,n,!0):i.coordsIn(s,n)}lineAt(e,n){let{tile:i}=this.tile.resolveBlock(e,n);return i.isLine()?i:null}coordsForChar(e){let{tile:n,offset:i}=this.tile.resolveBlock(e,1);if(!n.isLine())return null;function s(r,a){if(r.isComposite())for(let o of r.children){if(o.length>=a){let c=s(o,a);if(c)return c}if(a-=o.length,a<0)break}else if(r.isText()&&a<r.length){let o=ut(r.text,a);if(o==a)return null;let c=ir(r.dom,a,o).getClientRects();for(let d=0;d<c.length;d++){let u=c[d];if(d==c.length-1||u.top<u.bottom&&u.left<u.right)return u}}return null}return s(n,i)}measureVisibleLineHeights(e){let n=[],{from:i,to:s}=e,r=this.view.contentDOM.clientWidth,a=r>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=-1,c=this.view.textDirection==Be.LTR,d=0,u=(h,f,p)=>{for(let O=0;O<h.children.length&&!(f>s);O++){let g=h.children[O],x=f+g.length,b=g.dom.getBoundingClientRect(),{height:y}=b;if(p&&!O&&(d+=b.top-p.top),g instanceof En)x>i&&u(g,f,b);else if(f>=i&&(d>0&&n.push(-d),n.push(y+d),d=0,a)){let S=g.dom.lastChild,P=S?ba(S):[];if(P.length){let w=P[P.length-1],C=c?w.right-b.left:b.right-w.left;C>o&&(o=C,this.minWidth=r,this.minWidthFrom=f,this.minWidthTo=x)}}p&&O==h.children.length-1&&(d+=p.bottom-b.bottom),f=x+g.breakAfter}};return u(this.tile,0,null),n}textDirectionAt(e){let{tile:n}=this.tile.resolveBlock(e,1);return getComputedStyle(n.dom).direction=="rtl"?Be.RTL:Be.LTR}measureTextSize(){let e=this.tile.blockTiles(a=>{if(a.isLine()&&a.children.length&&a.length<=20){let o=0,c;for(let d of a.children){if(!d.isText()||/[^ -~]/.test(d.text))return;let u=ba(d.dom);if(u.length!=1)return;o+=u[0].width,c=u[0].height}if(o)return{lineHeight:a.dom.getBoundingClientRect().height,charWidth:o/a.length,textHeight:c}}});if(e)return e;let n=document.createElement("div"),i,s,r;return n.className="cm-line",n.style.width="99999px",n.style.position="absolute",n.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(n);let a=ba(n.firstChild)[0];i=n.getBoundingClientRect().height,s=a&&a.width?a.width/27:7,r=a&&a.height?a.height:i,n.remove()}),{lineHeight:i,charWidth:s,textHeight:r}}computeBlockGapDeco(){let e=[],n=this.view.viewState;for(let i=0,s=0;;s++){let r=s==n.viewports.length?null:n.viewports[s],a=r?r.from-1:this.view.state.doc.length;if(a>i){let o=(n.lineBlockAt(a).bottom-n.lineBlockAt(i).top)/this.view.scaleY;e.push(Se.replace({widget:new Ql(o),block:!0,inclusive:!0,isBlockGap:!0}).range(i,a))}if(!r)break;i=r.to+1}return Se.set(e)}updateDeco(){let e=1,n=this.view.state.facet($o).map(r=>(this.dynamicDecorationMap[e++]=typeof r=="function")?r(this.view):r),i=!1,s=this.view.state.facet(Kd).map((r,a)=>{let o=typeof r=="function";return o&&(i=!0),o?r(this.view):r});for(s.length&&(this.dynamicDecorationMap[e++]=i,n.push(Le.join(s))),this.decorations=[this.editContextFormatting,...n,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e<this.decorations.length;)this.dynamicDecorationMap[e++]=!1;this.blockWrappers=this.view.state.facet(qm).map(r=>typeof r=="function"?r(this.view):r)}scrollIntoView(e){if(e.isSnapshot){let d=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=d.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let d of this.view.state.facet(Xm))try{if(d(this.view,e.range,e))return!0}catch(u){At(this.view.state,u,"scroll handler")}let{range:n}=e,i=this.coordsAt(n.head,n.empty?n.assoc:n.head>n.anchor?-1:1),s;if(!i)return;!n.empty&&(s=this.coordsAt(n.anchor,n.anchor>n.head?-1:1))&&(i={left:Math.min(i.left,s.left),top:Math.min(i.top,s.top),right:Math.max(i.right,s.right),bottom:Math.max(i.bottom,s.bottom)});let r=Jd(this.view),a={left:i.left-r.left,top:i.top-r.top,right:i.right+r.right,bottom:i.bottom+r.bottom},{offsetWidth:o,offsetHeight:c}=this.view.scrollDOM;if(Tk(this.view.scrollDOM,a,n.head<n.anchor?-1:1,e.x,e.y,Math.max(Math.min(e.xMargin,o),-o),Math.max(Math.min(e.yMargin,c),-c),this.view.textDirection==Be.LTR),window.visualViewport&&window.innerHeight-window.visualViewport.height>1&&(i.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||i.bottom<window.pageYOffset+window.visualViewport.offsetTop)){let d=this.view.docView.lineAt(n.head,1);d&&d.dom.scrollIntoView({block:"nearest"})}}lineHasWidget(e){let n=i=>i.isWidget()||i.children.some(n);return n(this.tile.resolveBlock(e,1).tile)}destroy(){Dc(this.tile)}}function Dc(t,e){let n=e==null?void 0:e.get(t);if(n!=1){n==null&&t.destroy();for(let i of t.children)Dc(i,e)}}function e4(t){return t.node.nodeType==1&&t.node.firstChild&&(t.offset==0||t.node.childNodes[t.offset-1].contentEditable=="false")&&(t.offset==t.node.childNodes.length||t.node.childNodes[t.offset].contentEditable=="false")}function Vm(t,e){let n=t.observer.selectionRange;if(!n.focusNode)return null;let i=km(n.focusNode,n.focusOffset),s=Qm(n.focusNode,n.focusOffset),r=i||s;if(s&&i&&s.node!=i.node){let o=nt.get(s.node);if(!o||o.isText()&&o.text!=s.node.nodeValue)r=s;else if(t.docView.lastCompositionAfterCursor){let c=nt.get(i.node);!c||c.isText()&&c.text!=i.node.nodeValue||(r=s)}}if(t.docView.lastCompositionAfterCursor=r!=i,!r)return null;let a=e-r.offset;return{from:a,to:a+r.node.nodeValue.length,node:r.node}}function t4(t,e,n){let i=Vm(t,n);if(!i)return null;let{node:s,from:r,to:a}=i,o=s.nodeValue;if(/[\n\r]/.test(o)||t.state.doc.sliceString(i.from,i.to)!=o)return null;let c=e.invertedDesc;return{range:new zt(c.mapPos(r),c.mapPos(a),r,a),text:s}}function n4(t,e){return t.nodeType!=1?0:(e&&t.childNodes[e-1].contentEditable=="false"?1:0)|(e<t.childNodes.length&&t.childNodes[e].contentEditable=="false"?2:0)}let i4=class{constructor(){this.changes=[]}compareRange(e,n){Ji(e,n,this.changes)}comparePoint(e,n){Ji(e,n,this.changes)}boundChange(e){Ji(e,e,this.changes)}};function s4(t,e,n){let i=new i4;return Le.compare(t,e,n,i),i.changes}class r4{constructor(){this.changes=[]}compareRange(e,n){Ji(e,n,this.changes)}comparePoint(){}boundChange(e){Ji(e,e,this.changes)}}function a4(t,e,n){let i=new r4;return Le.compare(t,e,n,i),i.changes}function o4(t,e){for(let n=t;n&&n!=e;n=n.assignedSlot||n.parentNode)if(n.nodeType==1&&n.contentEditable=="false")return!0;return!1}function l4(t,e){let n=!1;return e&&t.iterChangedRanges((i,s)=>{i<e.to&&s>e.from&&(n=!0)}),n}class Ql extends Qn{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function c4(t,e,n=1){let i=t.charCategorizer(e),s=t.doc.lineAt(e),r=e-s.from;if(s.length==0)return q.cursor(e);r==0?n=1:r==s.length&&(n=-1);let a=r,o=r;n<0?a=ut(s.text,r,!1):o=ut(s.text,r);let c=i(s.text.slice(a,o));for(;a>0;){let d=ut(s.text,a,!1);if(i(s.text.slice(d,a))!=c)break;a=d}for(;o<s.length;){let d=ut(s.text,o);if(i(s.text.slice(o,d))!=c)break;o=d}return q.range(a+s.from,o+s.from)}function d4(t,e,n,i,s){let r=Math.round((i-e.left)*t.defaultCharacterWidth);if(t.lineWrapping&&n.height>t.defaultLineHeight*1.5){let o=t.viewState.heightOracle.textHeight,c=Math.floor((s-n.top-(t.defaultLineHeight-o)*.5)/o);r+=c*t.viewState.heightOracle.lineLength}let a=t.state.sliceDoc(n.from,n.to);return n.from+$c(a,r,t.state.tabSize)}function qc(t,e,n){let i=t.lineBlockAt(e);if(Array.isArray(i.type)){let s;for(let r of i.type){if(r.from>e)break;if(!(r.to<e)){if(r.from<e&&r.to>e)return r;(!s||r.type==mt.Text&&(s.type!=r.type||(n<0?r.from<e:r.to>e)))&&(s=r)}}return s||i}return i}function u4(t,e,n,i){let s=qc(t,e.head,e.assoc||-1),r=!i||s.type!=mt.Text||!(t.lineWrapping||s.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>s.from?e.head-1:e.head);if(r){let a=t.dom.getBoundingClientRect(),o=t.textDirectionAt(s.from),c=t.posAtCoords({x:n==(o==Be.LTR)?a.right-1:a.left+1,y:(r.top+r.bottom)/2});if(c!=null)return q.cursor(c,n?-1:1)}return q.cursor(n?s.to:s.from,n?-1:1)}function Tf(t,e,n,i){let s=t.state.doc.lineAt(e.head),r=t.bidiSpans(s),a=t.textDirectionAt(s.from);for(let o=e,c=null;;){let d=Xk(s,r,a,o,n),u=jm;if(!d){if(s.number==(n?t.state.doc.lines:1))return o;u=`
|
|
33
|
+
`,s=t.state.doc.line(s.number+(n?1:-1)),r=t.bidiSpans(s),d=t.visualLineSide(s,!n)}if(c){if(!c(u))return o}else{if(!i)return d;c=i(u)}o=d}}function h4(t,e,n){let i=t.state.charCategorizer(e),s=i(n);return r=>{let a=i(r);return s==Je.Space&&(s=a),s==a}}function f4(t,e,n,i){let s=e.head,r=n?1:-1;if(s==(n?t.state.doc.length:0))return q.cursor(s,e.assoc);let a=e.goalColumn,o,c=t.contentDOM.getBoundingClientRect(),d=t.coordsAtPos(s,(e.empty?e.assoc:0)||(n?1:-1)),u=t.documentTop;if(d)a==null&&(a=d.left-c.left),o=r<0?d.top:d.bottom;else{let O=t.viewState.lineBlockAt(s);a==null&&(a=Math.min(c.right-c.left,t.defaultCharacterWidth*(s-O.from))),o=(r<0?O.top:O.bottom)+u}let h=c.left+a,f=i??t.viewState.heightOracle.textHeight>>1,p=Wc(t,{x:h,y:o+f*r},!1,r);return q.cursor(p.pos,p.assoc,void 0,a)}function qs(t,e,n){for(;;){let i=0;for(let s of t)s.between(e-1,e+1,(r,a,o)=>{if(e>r&&e<a){let c=i||n||(e-r<a-e?-1:1);e=c<0?r:a,i=c}});if(!i)return e}}function Fm(t,e){let n=null;for(let i=0;i<e.ranges.length;i++){let s=e.ranges[i],r=null;if(s.empty){let a=qs(t,s.from,0);a!=s.from&&(r=q.cursor(a,-1))}else{let a=qs(t,s.from,-1),o=qs(t,s.to,1);(a!=s.from||o!=s.to)&&(r=q.range(s.from==s.anchor?a:o,s.from==s.head?a:o))}r&&(n||(n=e.ranges.slice()),n[i]=r)}return n?q.create(n,e.mainIndex):e}function Cl(t,e,n){let i=qs(t.state.facet(xr).map(s=>s(t)),n.from,e.head>n.from?-1:1);return i==n.from?n:q.cursor(i,i<n.from?1:-1)}class On{constructor(e,n){this.pos=e,this.assoc=n}}function Wc(t,e,n,i){let s=t.contentDOM.getBoundingClientRect(),r=s.top+t.viewState.paddingTop,{x:a,y:o}=e,c=o-r,d;for(;;){if(c<0)return new On(0,1);if(c>t.viewState.docHeight)return new On(t.state.doc.length,-1);if(d=t.elementAtHeight(c),i==null)break;if(d.type==mt.Text){if(i<0?d.to<t.viewport.from:d.from>t.viewport.to)break;let f=t.docView.coordsAt(i<0?d.from:d.to,i>0?-1:1);if(f&&(i<0?f.top<=c+r:f.bottom>=c+r))break}let h=t.viewState.heightOracle.textHeight/2;c=i>0?d.bottom+h:d.top-h}if(t.viewport.from>=d.to||t.viewport.to<=d.from){if(n)return null;if(d.type==mt.Text){let h=d4(t,s,d,a,o);return new On(h,h==d.from?1:-1)}}if(d.type!=mt.Text)return c<(d.top+d.bottom)/2?new On(d.from,1):new On(d.to,-1);let u=t.docView.lineAt(d.from,2);return(!u||u.length!=d.length)&&(u=t.docView.lineAt(d.from,-2)),new p4(t,a,o,t.textDirectionAt(d.from)).scanTile(u,d.from)}class p4{constructor(e,n,i,s){this.view=e,this.x=n,this.y=i,this.baseDir=s,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to<e)&&(this.line=this.view.state.doc.lineAt(e),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(e,n){let{line:i,spans:s}=this.bidiSpansAt(e);return s[gn.find(s,e-i.from,-1,n)].level==this.baseDir}dirAt(e,n){let{line:i,spans:s}=this.bidiSpansAt(e);return s[gn.find(s,e-i.from,-1,n)].dir}bidiIn(e,n){let{spans:i,line:s}=this.bidiSpansAt(e);return i.length>1||i.length&&(i[0].level!=this.baseDir||i[0].to+s.from<n)}scan(e,n){let i=0,s=e.length-1,r=new Set,a=this.bidiIn(e[0],e[s]),o,c,d=-1,u=1e9,h;e:for(;i<s;){let p=s-i,O=i+s>>1;t:if(r.has(O)){let x=i+Math.floor(Math.random()*p);for(let b=0;b<p;b++){if(!r.has(x)){O=x;break t}x++,x==s&&(x=i)}break e}r.add(O);let g=n(O);if(g)for(let x=0;x<g.length;x++){let b=g[x],y=0;if(b.bottom<this.y)(!o||o.bottom<b.bottom)&&(o=b),y=1;else if(b.top>this.y)(!c||c.top>b.top)&&(c=b),y=-1;else{let S=b.left>this.x?this.x-b.left:b.right<this.x?this.x-b.right:0,P=Math.abs(S);P<u&&(d=O,u=P,h=b),S&&(y=S<0==(this.baseDir==Be.LTR)?-1:1)}y==-1&&(!a||this.baseDirAt(e[O],1))?s=O:y==1&&(!a||this.baseDirAt(e[O+1],-1))&&(i=O+1)}}if(!h){let p=o&&(!c||this.y-o.bottom<c.top-this.y)?o:c;return this.y=(p.top+p.bottom)/2,this.scan(e,n)}let f=(a?this.dirAt(e[d],1):this.baseDir)==Be.LTR;return{i:d,after:this.x>(h.left+h.right)/2==f}}scanText(e,n){let i=[];for(let r=0;r<e.length;r=ut(e.text,r))i.push(n+r);i.push(n+e.length);let s=this.scan(i,r=>{let a=i[r]-n,o=i[r+1]-n;return ir(e.dom,a,o).getClientRects()});return s.after?new On(i[s.i+1],-1):new On(i[s.i],1)}scanTile(e,n){if(!e.length)return new On(n,1);if(e.children.length==1){let o=e.children[0];if(o.isText())return this.scanText(o,n);if(o.isComposite())return this.scanTile(o,n)}let i=[n];for(let o=0,c=n;o<e.children.length;o++)i.push(c+=e.children[o].length);let s=this.scan(i,o=>{let c=e.children[o];return c.flags&48?null:(c.dom.nodeType==1?c.dom:ir(c.dom,0,c.length)).getClientRects()}),r=e.children[s.i],a=i[s.i];return r.isText()?this.scanText(r,a):r.isComposite()?this.scanTile(r,a):s.after?new On(i[s.i+1],-1):new On(a,1)}}const Li="";class O4{constructor(e,n){this.points=e,this.view=n,this.text="",this.lineSeparator=n.state.facet(Xe.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Li}readRange(e,n){if(!e)return this;let i=e.parentNode;for(let s=e;;){this.findPointBefore(i,s);let r=this.text.length;this.readNode(s);let a=nt.get(s),o=s.nextSibling;if(o==n){a!=null&&a.breakAfter&&!o&&i!=this.view.contentDOM&&this.lineBreak();break}let c=nt.get(o);(a&&c?a.breakAfter:(a?a.breakAfter:Ba(s))||Ba(o)&&(s.nodeName!="BR"||a!=null&&a.isWidget())&&this.text.length>r)&&!g4(o,n)&&this.lineBreak(),s=o}return this.findPointBefore(i,n),this}readTextNode(e){let n=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,n.length));for(let i=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let r=-1,a=1,o;if(this.lineSeparator?(r=n.indexOf(this.lineSeparator,i),a=this.lineSeparator.length):(o=s.exec(n))&&(r=o.index,a=o[0].length),this.append(n.slice(i,r<0?n.length:r)),r<0)break;if(this.lineBreak(),a>1)for(let c of this.points)c.node==e&&c.pos>this.text.length&&(c.pos-=a-1);i=r+a}}readNode(e){let n=nt.get(e),i=n&&n.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let s=i.iter();!s.next().done;)s.lineBreak?this.lineBreak():this.append(s.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,n){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==n&&(i.pos=this.text.length)}findPointInside(e,n){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+(m4(e,i.node,i.offset)?n:0))}}function m4(t,e,n){for(;;){if(!e||n<Ln(e))return!1;if(e==t)return!0;n=ai(e)+1,e=e.parentNode}}function g4(t,e){let n;for(;!(t==e||!t);t=t.nextSibling){let i=nt.get(t);if(!(i!=null&&i.isWidget()))return!1;i&&(n||(n=[])).push(i)}if(n)for(let i of n){let s=i.overrideDOMText;if(s!=null&&s.length)return!1}return!0}class $f{constructor(e,n){this.node=e,this.offset=n,this.pos=-1}}class x4{constructor(e,n,i,s){this.typeOver=s,this.bounds=null,this.text="",this.domChanged=n>-1;let{impreciseHead:r,impreciseAnchor:a}=e.docView;if(e.state.readOnly&&n>-1)this.newSel=null;else if(n>-1&&(this.bounds=Um(e.docView.tile,n,i,0))){let o=r||a?[]:y4(e),c=new O4(o,e);c.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=c.text,this.newSel=v4(o,this.bounds.from)}else{let o=e.observer.selectionRange,c=r&&r.node==o.focusNode&&r.offset==o.focusOffset||!Ec(e.contentDOM,o.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(o.focusNode,o.focusOffset),d=a&&a.node==o.anchorNode&&a.offset==o.anchorOffset||!Ec(e.contentDOM,o.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(o.anchorNode,o.anchorOffset),u=e.viewport;if((re.ios||re.chrome)&&e.state.selection.main.empty&&c!=d&&(u.from>0||u.to<e.state.doc.length)){let h=Math.min(c,d),f=Math.max(c,d),p=u.from-h,O=u.to-f;(p==0||p==1||h==0)&&(O==0||O==-1||f==e.state.doc.length)&&(c=0,d=e.state.doc.length)}e.inputState.composing>-1&&e.state.selection.ranges.length>1?this.newSel=e.state.selection.replaceRange(q.range(d,c)):this.newSel=q.single(d,c)}}}function Um(t,e,n,i){if(t.isComposite()){let s=-1,r=-1,a=-1,o=-1;for(let c=0,d=i,u=i;c<t.children.length;c++){let h=t.children[c],f=d+h.length;if(d<e&&f>n)return Um(h,e,n,d);if(f>=e&&s==-1&&(s=c,r=d),d>n&&h.dom.parentNode==t.dom){a=c,o=u;break}u=f,d=f+h.breakAfter}return{from:r,to:o<0?i+t.length:o,startDOM:(s?t.children[s-1].dom.nextSibling:null)||t.dom.firstChild,endDOM:a<t.children.length&&a>=0?t.children[a].dom:null}}else return t.isText()?{from:i,to:i+t.length,startDOM:t.dom,endDOM:t.dom.nextSibling}:null}function Ym(t,e){let n,{newSel:i}=e,{state:s}=t,r=s.selection.main,a=t.inputState.lastKeyTime>Date.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:c}=e.bounds,d=r.from,u=null;(a===8||re.android&&e.text.length<c-o)&&(d=r.to,u="end");let h=s.doc.sliceString(o,c,Li),f,p;!r.empty&&r.from>=o&&r.to<=c&&(e.typeOver||h!=e.text)&&h.slice(0,r.from-o)==e.text.slice(0,r.from-o)&&h.slice(r.to-o)==e.text.slice(f=e.text.length-(h.length-(r.to-o)))?n={from:r.from,to:r.to,insert:Ze.of(e.text.slice(r.from-o,f).split(Li))}:(p=Gm(h,e.text,d-o,u))&&(re.chrome&&a==13&&p.toB==p.from+2&&e.text.slice(p.from,p.toB)==Li+Li&&p.toB--,n={from:o+p.from,to:o+p.toA,insert:Ze.of(e.text.slice(p.from,p.toB).split(Li))})}else i&&(!t.hasFocus&&s.facet(Rn)||Ga(i,r))&&(i=null);if(!n&&!i)return!1;if((re.mac||re.android)&&n&&n.from==n.to&&n.from==r.head-1&&/^\. ?$/.test(n.insert.toString())&&t.contentDOM.getAttribute("autocorrect")=="off"?(i&&n.insert.length==2&&(i=q.single(i.main.anchor-1,i.main.head-1)),n={from:n.from,to:n.to,insert:Ze.of([n.insert.toString().replace("."," ")])}):s.doc.lineAt(r.from).to<r.to&&t.docView.lineHasWidget(r.to)&&t.inputState.insertingTextAt>Date.now()-50?n={from:r.from,to:r.to,insert:s.toText(t.inputState.insertingText)}:re.chrome&&n&&n.from==n.to&&n.from==r.head&&n.insert.toString()==`
|
|
34
|
+
`&&t.lineWrapping&&(i&&(i=q.single(i.main.anchor-1,i.main.head-1)),n={from:r.from,to:r.to,insert:Ze.of([" "])}),n)return eu(t,n,i,a);if(i&&!Ga(i,r)){let o=!1,c="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(o=!0),c=t.inputState.lastSelectionOrigin,c=="select.pointer"&&(i=Fm(s.facet(xr).map(d=>d(t)),i))),t.dispatch({selection:i,scrollIntoView:o,userEvent:c}),!0}else return!1}function eu(t,e,n,i=-1){if(re.ios&&t.inputState.flushIOSKey(e))return!0;let s=t.state.selection.main;if(re.android&&(e.to==s.to&&(e.from==s.from||e.from==s.from-1&&t.state.sliceDoc(e.from,s.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&es(t.contentDOM,"Enter",13)||(e.from==s.from-1&&e.to==s.to&&e.insert.length==0||i==8&&e.insert.length<e.to-e.from&&e.to>s.head)&&es(t.contentDOM,"Backspace",8)||e.from==s.from&&e.to==s.to+1&&e.insert.length==0&&es(t.contentDOM,"Delete",46)))return!0;let r=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let a,o=()=>a||(a=b4(t,e,n));return t.state.facet(Mm).some(c=>c(t,e.from,e.to,r,o))||t.dispatch(o()),!0}function b4(t,e,n){let i,s=t.state,r=s.selection.main,a=-1;if(e.from==e.to&&e.from<r.from||e.from>r.to){let c=e.from<r.from?-1:1,d=c<0?r.from:r.to,u=qs(s.facet(xr).map(h=>h(t)),d,c);e.from==u&&(a=u)}if(a>-1)i={changes:e,selection:q.cursor(e.from+e.insert.length,-1)};else if(e.from>=r.from&&e.to<=r.to&&e.to-e.from>=(r.to-r.from)/3&&(!n||n.main.empty&&n.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let c=r.from<e.from?s.sliceDoc(r.from,e.from):"",d=r.to>e.to?s.sliceDoc(e.to,r.to):"";i=s.replaceSelection(t.state.toText(c+e.insert.sliceString(0,void 0,t.state.lineBreak)+d))}else{let c=s.changes(e),d=n&&n.main.to<=c.newLength?n.main:void 0;if(s.selection.ranges.length>1&&(t.inputState.composing>=0||t.inputState.compositionPendingChange)&&e.to<=r.to+10&&e.to>=r.to-10){let u=t.state.sliceDoc(e.from,e.to),h,f=n&&Vm(t,n.main.head);if(f){let O=e.insert.length-(e.to-e.from);h={from:f.from,to:f.to-O}}else h=t.state.doc.lineAt(r.head);let p=r.to-e.to;i=s.changeByRange(O=>{if(O.from==r.from&&O.to==r.to)return{changes:c,range:d||O.map(c)};let g=O.to-p,x=g-u.length;if(t.state.sliceDoc(x,g)!=u||g>=h.from&&x<=h.to)return{range:O};let b=s.changes({from:x,to:g,insert:e.insert}),y=O.to-r.to;return{changes:b,range:d?q.range(Math.max(0,d.anchor+y),Math.max(0,d.head+y)):O.map(b)}})}else i={changes:c,selection:d&&s.selection.replaceRange(d)}}let o="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,o+=".compose",t.inputState.compositionFirstChange&&(o+=".start",t.inputState.compositionFirstChange=!1)),s.update(i,{userEvent:o,scrollIntoView:!0})}function Gm(t,e,n,i){let s=Math.min(t.length,e.length),r=0;for(;r<s&&t.charCodeAt(r)==e.charCodeAt(r);)r++;if(r==s&&t.length==e.length)return null;let a=t.length,o=e.length;for(;a>0&&o>0&&t.charCodeAt(a-1)==e.charCodeAt(o-1);)a--,o--;if(i=="end"){let c=Math.max(0,r-Math.min(a,o));n-=a+c-r}if(a<r&&t.length<e.length){let c=n<=r&&n>=a?r-n:0;r-=c,o=r+(o-a),a=r}else if(o<r){let c=n<=r&&n>=o?r-n:0;r-=c,a=r+(a-o),o=r}return{from:r,toA:a,toB:o}}function y4(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:n,anchorOffset:i,focusNode:s,focusOffset:r}=t.observer.selectionRange;return n&&(e.push(new $f(n,i)),(s!=n||r!=i)&&e.push(new $f(s,r))),e}function v4(t,e){if(t.length==0)return null;let n=t[0].pos,i=t.length==2?t[1].pos:n;return n>-1&&i>-1?q.single(n+e,i+e):null}function Ga(t,e){return e.head==t.main.head&&e.anchor==t.main.anchor}class S4{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,re.safari&&e.contentDOM.addEventListener("input",()=>null),re.gecko&&I4(e.contentDOM.ownerDocument)}handleEvent(e){!j4(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,n){let i=this.handlers[e];if(i){for(let s of i.observers)s(this.view,n);for(let s of i.handlers){if(n.defaultPrevented)break;if(s(this.view,n)){n.preventDefault();break}}}}ensureHandlers(e){let n=w4(e),i=this.handlers,s=this.view.contentDOM;for(let r in n)if(r!="scroll"){let a=!n[r].handlers.length,o=i[r];o&&a!=!o.handlers.length&&(s.removeEventListener(r,this.handleEvent),o=null),o||s.addEventListener(r,this.handleEvent,{passive:a})}for(let r in i)r!="scroll"&&!n[r]&&s.removeEventListener(r,this.handleEvent);this.handlers=n}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&Km.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),re.android&&re.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let n;return re.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((n=Hm.find(i=>i.keyCode==e.keyCode))&&!e.ctrlKey||k4.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=n||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let n=this.pendingIOSKey;return!n||n.key=="Enter"&&e&&e.from<e.to&&/^\S+$/.test(e.insert.toString())?!1:(this.pendingIOSKey=void 0,es(this.view.contentDOM,n.key,n.keyCode,n instanceof KeyboardEvent?n:void 0))}ignoreDuringComposition(e){return!/^key/.test(e.type)||e.synthetic?!1:this.composing>0?!0:re.safari&&!re.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function jf(t,e){return(n,i)=>{try{return e.call(t,i,n)}catch(s){At(n.state,s)}}}function w4(t){let e=Object.create(null);function n(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of t){let s=i.spec,r=s&&s.plugin.domEventHandlers,a=s&&s.plugin.domEventObservers;if(r)for(let o in r){let c=r[o];c&&n(o).handlers.push(jf(i.value,c))}if(a)for(let o in a){let c=a[o];c&&n(o).observers.push(jf(i.value,c))}}for(let i in sn)n(i).handlers.push(sn[i]);for(let i in _t)n(i).observers.push(_t[i]);return e}const Hm=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],k4="dthko",Km=[16,17,18,20,91,92,224,225],Br=6;function Vr(t){return Math.max(0,t)*.7+8}function Q4(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}class C4{constructor(e,n,i,s){this.view=e,this.startEvent=n,this.style=i,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=n,this.scrollParents=vm(e.contentDOM),this.atoms=e.state.facet(xr).map(a=>a(e));let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=n.shiftKey,this.multiple=e.state.facet(Xe.allowMultipleSelections)&&P4(e,n),this.dragging=$4(e,n)&&tg(n)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&Q4(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let n=0,i=0,s=0,r=0,a=this.view.win.innerWidth,o=this.view.win.innerHeight;this.scrollParents.x&&({left:s,right:a}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:r,bottom:o}=this.scrollParents.y.getBoundingClientRect());let c=Jd(this.view);e.clientX-c.left<=s+Br?n=-Vr(s-e.clientX):e.clientX+c.right>=a-Br&&(n=Vr(e.clientX-a)),e.clientY-c.top<=r+Br?i=-Vr(r-e.clientY):e.clientY+c.bottom>=o-Br&&(i=Vr(e.clientY-o)),this.setScrollSpeed(n,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,n){this.scrollSpeed={x:e,y:n},e||n?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:n}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),n&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=n,n=0),(e||n)&&this.view.win.scrollBy(e,n),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:n}=this,i=Fm(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!i.eq(n.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(n=>n.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function P4(t,e){let n=t.state.facet(Am);return n.length?n[0](e):re.mac?e.metaKey:e.ctrlKey}function T4(t,e){let n=t.state.facet(Nm);return n.length?n[0](e):re.mac?!e.altKey:!e.ctrlKey}function $4(t,e){let{main:n}=t.state.selection;if(n.empty)return!1;let i=nr(t.root);if(!i||i.rangeCount==0)return!0;let s=i.getRangeAt(0).getClientRects();for(let r=0;r<s.length;r++){let a=s[r];if(a.left<=e.clientX&&a.right>=e.clientX&&a.top<=e.clientY&&a.bottom>=e.clientY)return!0}return!1}function j4(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let n=e.target,i;n!=t.contentDOM;n=n.parentNode)if(!n||n.nodeType==11||(i=nt.get(n))&&i.isWidget()&&!i.isHidden&&i.widget.ignoreEvent(e))return!1;return!0}const sn=Object.create(null),_t=Object.create(null),Jm=re.ie&&re.ie_version<15||re.ios&&re.webkit_version<604;function A4(t){let e=t.dom.parentNode;if(!e)return;let n=e.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus(),setTimeout(()=>{t.focus(),n.remove(),eg(t,n.value)},50)}function No(t,e,n){for(let i of t.facet(e))n=i(n,t);return n}function eg(t,e){e=No(t.state,Yd,e);let{state:n}=t,i,s=1,r=n.toText(e),a=r.lines==n.selection.ranges.length;if(zc!=null&&n.selection.ranges.every(c=>c.empty)&&zc==r.toString()){let c=-1;i=n.changeByRange(d=>{let u=n.doc.lineAt(d.from);if(u.from==c)return{range:d};c=u.from;let h=n.toText((a?r.line(s++).text:e)+n.lineBreak);return{changes:{from:u.from,insert:h},range:q.cursor(d.from+h.length)}})}else a?i=n.changeByRange(c=>{let d=r.line(s++);return{changes:{from:c.from,to:c.to,insert:d.text},range:q.cursor(c.from+d.length)}}):i=n.replaceSelection(r);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}_t.scroll=t=>{t.inputState.lastScrollTop=t.scrollDOM.scrollTop,t.inputState.lastScrollLeft=t.scrollDOM.scrollLeft};_t.wheel=_t.mousewheel=t=>{t.inputState.lastWheelEvent=Date.now()};sn.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);_t.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")};_t.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};sn.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let n=null;for(let i of t.state.facet(Rm))if(n=i(t,e),n)break;if(!n&&e.button==0&&(n=R4(t,e)),n){let i=!t.hasFocus;t.inputState.startMouseSelection(new C4(t,e,n,i)),i&&t.observer.ignore(()=>{Sm(t.contentDOM);let r=t.root.activeElement;r&&!r.contains(t.contentDOM)&&r.blur()});let s=t.inputState.mouseSelection;if(s)return s.start(e),s.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function Af(t,e,n,i){if(i==1)return q.cursor(e,n);if(i==2)return c4(t.state,e,n);{let s=t.docView.lineAt(e,n),r=t.state.doc.lineAt(s?s.posAtEnd:e),a=s?s.posAtStart:r.from,o=s?s.posAtEnd:r.to;return o<t.state.doc.length&&o==r.to&&o++,q.range(a,o)}}const N4=re.ie&&re.ie_version<=11;let Nf=null,Rf=0,_f=0;function tg(t){if(!N4)return t.detail;let e=Nf,n=_f;return Nf=t,_f=Date.now(),Rf=!e||n>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(Rf+1)%3:1}function R4(t,e){let n=t.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),i=tg(e),s=t.state.selection;return{update(r){r.docChanged&&(n.pos=r.changes.mapPos(n.pos),s=s.map(r.changes))},get(r,a,o){let c=t.posAndSideAtCoords({x:r.clientX,y:r.clientY},!1),d,u=Af(t,c.pos,c.assoc,i);if(n.pos!=c.pos&&!a){let h=Af(t,n.pos,n.assoc,i),f=Math.min(h.from,u.from),p=Math.max(h.to,u.to);u=f<u.from?q.range(f,p):q.range(p,f)}return a?s.replaceRange(s.main.extend(u.from,u.to)):o&&i==1&&s.ranges.length>1&&(d=_4(s,c.pos))?d:o?s.addRange(u):q.create([u])}}}function _4(t,e){for(let n=0;n<t.ranges.length;n++){let{from:i,to:s}=t.ranges[n];if(i<=e&&s>=e)return q.create(t.ranges.slice(0,n).concat(t.ranges.slice(n+1)),t.mainIndex==n?0:t.mainIndex-(t.mainIndex>n?1:0))}return null}sn.dragstart=(t,e)=>{let{selection:{main:n}}=t.state;if(e.target.draggable){let s=t.docView.tile.nearest(e.target);if(s&&s.isWidget()){let r=s.posAtStart,a=r+s.length;(r>=n.to||a<=n.from)&&(n=q.range(r,a))}}let{inputState:i}=t;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=n,e.dataTransfer&&(e.dataTransfer.setData("Text",No(t.state,Gd,t.state.sliceDoc(n.from,n.to))),e.dataTransfer.effectAllowed="copyMove"),!1};sn.dragend=t=>(t.inputState.draggedContent=null,!1);function Mf(t,e,n,i){if(n=No(t.state,Yd,n),!n)return;let s=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:r}=t.inputState,a=i&&r&&T4(t,e)?{from:r.from,to:r.to}:null,o={from:s,insert:n},c=t.state.changes(a?[a,o]:o);t.focus(),t.dispatch({changes:c,selection:{anchor:c.mapPos(s,-1),head:c.mapPos(s,1)},userEvent:a?"move.drop":"input.drop"}),t.inputState.draggedContent=null}sn.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let n=e.dataTransfer.files;if(n&&n.length){let i=Array(n.length),s=0,r=()=>{++s==n.length&&Mf(t,e,i.filter(a=>a!=null).join(t.state.lineBreak),!1)};for(let a=0;a<n.length;a++){let o=new FileReader;o.onerror=r,o.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(o.result)||(i[a]=o.result),r()},o.readAsText(n[a])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return Mf(t,e,i,!0),!0}return!1};sn.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let n=Jm?null:e.clipboardData;return n?(eg(t,n.getData("text/plain")||n.getData("text/uri-list")),!0):(A4(t),!1)};function M4(t,e){let n=t.dom.parentNode;if(!n)return;let i=n.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),t.focus()},50)}function E4(t){let e=[],n=[],i=!1;for(let s of t.selection.ranges)s.empty||(e.push(t.sliceDoc(s.from,s.to)),n.push(s));if(!e.length){let s=-1;for(let{from:r}of t.selection.ranges){let a=t.doc.lineAt(r);a.number>s&&(e.push(a.text),n.push({from:a.from,to:Math.min(t.doc.length,a.to+1)})),s=a.number}i=!0}return{text:No(t,Gd,e.join(t.lineBreak)),ranges:n,linewise:i}}let zc=null;sn.copy=sn.cut=(t,e)=>{if(!Zs(t.contentDOM,t.observer.selectionRange))return!1;let{text:n,ranges:i,linewise:s}=E4(t.state);if(!n&&!s)return!1;zc=s?n:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let r=Jm?null:e.clipboardData;return r?(r.clearData(),r.setData("text/plain",n),!0):(M4(t,n),!1)};const ng=Dn.define();function ig(t,e){let n=[];for(let i of t.facet(Em)){let s=i(t,e);s&&n.push(s)}return n.length?t.update({effects:n,annotations:ng.of(!0)}):null}function sg(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let n=ig(t.state,e);n?t.dispatch(n):t.update([])}},10)}_t.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),sg(t)};_t.blur=t=>{t.observer.clearSelectionRange(),sg(t)};_t.compositionstart=_t.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};_t.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,re.chrome&&re.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};_t.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};sn.beforeinput=(t,e)=>{var n,i;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(t.inputState.insertingText=e.data,t.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&t.observer.editContext){let r=(n=e.dataTransfer)===null||n===void 0?void 0:n.getData("text/plain"),a=e.getTargetRanges();if(r&&a.length){let o=a[0],c=t.posAtDOM(o.startContainer,o.startOffset),d=t.posAtDOM(o.endContainer,o.endOffset);return eu(t,{from:c,to:d,insert:t.state.toText(r)},null),!0}}let s;if(re.chrome&&re.android&&(s=Hm.find(r=>r.inputType==e.inputType))&&(t.observer.delayAndroidKey(s.key,s.keyCode),s.key=="Backspace"||s.key=="Delete")){let r=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var a;(((a=window.visualViewport)===null||a===void 0?void 0:a.height)||0)>r+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return re.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),re.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>_t.compositionend(t,e),20),!1};const Ef=new Set;function I4(t){Ef.has(t)||(Ef.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}const If=["pre-wrap","normal","pre-line","break-spaces"];let os=!1;function Lf(){os=!1}class L4{constructor(e){this.lineWrapping=e,this.doc=Ze.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,n){let i=this.doc.lineAt(n).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((n-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return If.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let n=!1;for(let i=0;i<e.length;i++){let s=e[i];s<0?i++:this.heightSamples[Math.floor(s*10)]||(n=!0,this.heightSamples[Math.floor(s*10)]=!0)}return n}refresh(e,n,i,s,r,a){let o=If.indexOf(e)>-1,c=Math.abs(n-this.lineHeight)>.3||this.lineWrapping!=o||Math.abs(i-this.charWidth)>.1;if(this.lineWrapping=o,this.lineHeight=n,this.charWidth=i,this.textHeight=s,this.lineLength=r,c){this.heightSamples={};for(let d=0;d<a.length;d++){let u=a[d];u<0?d++:this.heightSamples[Math.floor(u*10)]=!0}}return c}}class X4{constructor(e,n){this.from=e,this.heights=n,this.index=0}get more(){return this.index<this.heights.length}}class Jt{constructor(e,n,i,s,r){this.from=e,this.length=n,this.top=i,this.height=s,this._content=r}get type(){return typeof this._content=="number"?mt.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof $i?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(e){let n=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new Jt(this.from,this.length+e.length,this.top,this.height+e.height,n)}}var Fe=(function(t){return t[t.ByPos=0]="ByPos",t[t.ByHeight=1]="ByHeight",t[t.ByPosNoHeight=2]="ByPosNoHeight",t})(Fe||(Fe={}));const ya=.001;class wt{constructor(e,n,i=2){this.length=e,this.height=n,this.flags=i}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>ya&&(os=!0),this.height=e)}replace(e,n,i){return wt.of(i)}decomposeLeft(e,n){n.push(this)}decomposeRight(e,n){n.push(this)}applyChanges(e,n,i,s){let r=this,a=i.doc;for(let o=s.length-1;o>=0;o--){let{fromA:c,toA:d,fromB:u,toB:h}=s[o],f=r.lineAt(c,Fe.ByPosNoHeight,i.setDoc(n),0,0),p=f.to>=d?f:r.lineAt(d,Fe.ByPosNoHeight,i,0,0);for(h+=p.to-d,d=p.to;o>0&&f.from<=s[o-1].toA;)c=s[o-1].fromA,u=s[o-1].fromB,o--,c<f.from&&(f=r.lineAt(c,Fe.ByPosNoHeight,i,0,0));u+=f.from-c,c=f.from;let O=tu.build(i.setDoc(a),e,u,h);r=Ha(r,r.replace(c,d,O))}return r.updateHeight(i,0)}static empty(){return new Lt(0,0,0)}static of(e){if(e.length==1)return e[0];let n=0,i=e.length,s=0,r=0;for(;;)if(n==i)if(s>r*2){let o=e[n-1];o.break?e.splice(--n,1,o.left,null,o.right):e.splice(--n,1,o.left,o.right),i+=1+o.break,s-=o.size}else if(r>s*2){let o=e[i];o.break?e.splice(i,1,o.left,null,o.right):e.splice(i,1,o.left,o.right),i+=2+o.break,r-=o.size}else break;else if(s<r){let o=e[n++];o&&(s+=o.size)}else{let o=e[--i];o&&(r+=o.size)}let a=0;return e[n-1]==null?(a=1,n--):e[n]==null&&(a=1,i++),new D4(wt.of(e.slice(0,n)),a,wt.of(e.slice(i)))}}function Ha(t,e){return t==e?t:(t.constructor!=e.constructor&&(os=!0),e)}wt.prototype.size=1;const Z4=Se.replace({});class rg extends wt{constructor(e,n,i){super(e,n),this.deco=i,this.spaceAbove=0}mainBlock(e,n){return new Jt(n,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(e,n,i,s){return this.spaceAbove&&e<i+this.spaceAbove?new Jt(s,0,i,this.spaceAbove,Z4):this.mainBlock(i,s)}lineAt(e,n,i,s,r){let a=this.mainBlock(s,r);return this.spaceAbove?this.blockAt(0,i,s,r).join(a):a}forEachLine(e,n,i,s,r,a){e<=r+this.length&&n>=r&&a(this.lineAt(0,Fe.ByPos,i,s,r))}setMeasuredHeight(e){let n=e.heights[e.index++];n<0?(this.spaceAbove=-n,n=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(n)}updateHeight(e,n=0,i=!1,s){return s&&s.from<=n&&s.more&&this.setMeasuredHeight(s),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Lt extends rg{constructor(e,n,i){super(e,n,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=i}mainBlock(e,n){return new Jt(n,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,n,i){let s=i[0];return i.length==1&&(s instanceof Lt||s instanceof ft&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof ft?s=new Lt(s.length,this.height,this.spaceAbove):s.height=this.height,this.outdated||(s.outdated=!1),s):wt.of(i)}updateHeight(e,n=0,i=!1,s){return s&&s.from<=n&&s.more?this.setMeasuredHeight(s):(i||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class ft extends wt{constructor(e){super(e,0)}heightMetrics(e,n){let i=e.doc.lineAt(n).number,s=e.doc.lineAt(n+this.length).number,r=s-i+1,a,o=0;if(e.lineWrapping){let c=Math.min(this.height,e.lineHeight*r);a=c/r,this.length>r+1&&(o=(this.height-c)/(this.length-r-1))}else a=this.height/r;return{firstLine:i,lastLine:s,perLine:a,perChar:o}}blockAt(e,n,i,s){let{firstLine:r,lastLine:a,perLine:o,perChar:c}=this.heightMetrics(n,s);if(n.lineWrapping){let d=s+(e<n.lineHeight?0:Math.round(Math.max(0,Math.min(1,(e-i)/this.height))*this.length)),u=n.doc.lineAt(d),h=o+u.length*c,f=Math.max(i,e-h/2);return new Jt(u.from,u.length,f,h,0)}else{let d=Math.max(0,Math.min(a-r,Math.floor((e-i)/o))),{from:u,length:h}=n.doc.line(r+d);return new Jt(u,h,i+o*d,o,0)}}lineAt(e,n,i,s,r){if(n==Fe.ByHeight)return this.blockAt(e,i,s,r);if(n==Fe.ByPosNoHeight){let{from:p,to:O}=i.doc.lineAt(e);return new Jt(p,O-p,0,0,0)}let{firstLine:a,perLine:o,perChar:c}=this.heightMetrics(i,r),d=i.doc.lineAt(e),u=o+d.length*c,h=d.number-a,f=s+o*h+c*(d.from-r-h);return new Jt(d.from,d.length,Math.max(s,Math.min(f,s+this.height-u)),u,0)}forEachLine(e,n,i,s,r,a){e=Math.max(e,r),n=Math.min(n,r+this.length);let{firstLine:o,perLine:c,perChar:d}=this.heightMetrics(i,r);for(let u=e,h=s;u<=n;){let f=i.doc.lineAt(u);if(u==e){let O=f.number-o;h+=c*O+d*(e-r-O)}let p=c+d*f.length;a(new Jt(f.from,f.length,h,p,0)),h+=p,u=f.to+1}}replace(e,n,i){let s=this.length-n;if(s>0){let r=i[i.length-1];r instanceof ft?i[i.length-1]=new ft(r.length+s):i.push(null,new ft(s-1))}if(e>0){let r=i[0];r instanceof ft?i[0]=new ft(e+r.length):i.unshift(new ft(e-1),null)}return wt.of(i)}decomposeLeft(e,n){n.push(new ft(e-1),null)}decomposeRight(e,n){n.push(null,new ft(this.length-e-1))}updateHeight(e,n=0,i=!1,s){let r=n+this.length;if(s&&s.from<=n+this.length&&s.more){let a=[],o=Math.max(n,s.from),c=-1;for(s.from>n&&a.push(new ft(s.from-n-1).updateHeight(e,n));o<=r&&s.more;){let u=e.doc.lineAt(o).length;a.length&&a.push(null);let h=s.heights[s.index++],f=0;h<0&&(f=-h,h=s.heights[s.index++]),c==-1?c=h:Math.abs(h-c)>=ya&&(c=-2);let p=new Lt(u,h,f);p.outdated=!1,a.push(p),o+=u+1}o<=r&&a.push(null,new ft(r-o).updateHeight(e,o));let d=wt.of(a);return(c<0||Math.abs(d.height-this.height)>=ya||Math.abs(c-this.heightMetrics(e,n).perLine)>=ya)&&(os=!0),Ha(this,d)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(n,n+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class D4 extends wt{constructor(e,n,i){super(e.length+n+i.length,e.height+i.height,n|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,n,i,s){let r=i+this.left.height;return e<r?this.left.blockAt(e,n,i,s):this.right.blockAt(e,n,r,s+this.left.length+this.break)}lineAt(e,n,i,s,r){let a=s+this.left.height,o=r+this.left.length+this.break,c=n==Fe.ByHeight?e<a:e<o,d=c?this.left.lineAt(e,n,i,s,r):this.right.lineAt(e,n,i,a,o);if(this.break||(c?d.to<o:d.from>o))return d;let u=n==Fe.ByPosNoHeight?Fe.ByPosNoHeight:Fe.ByPos;return c?d.join(this.right.lineAt(o,u,i,a,o)):this.left.lineAt(o,u,i,s,r).join(d)}forEachLine(e,n,i,s,r,a){let o=s+this.left.height,c=r+this.left.length+this.break;if(this.break)e<c&&this.left.forEachLine(e,n,i,s,r,a),n>=c&&this.right.forEachLine(e,n,i,o,c,a);else{let d=this.lineAt(c,Fe.ByPos,i,s,r);e<d.from&&this.left.forEachLine(e,d.from-1,i,s,r,a),d.to>=e&&d.from<=n&&a(d),n>d.to&&this.right.forEachLine(d.to+1,n,i,o,c,a)}}replace(e,n,i){let s=this.left.length+this.break;if(n<s)return this.balanced(this.left.replace(e,n,i),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-s,n-s,i));let r=[];e>0&&this.decomposeLeft(e,r);let a=r.length;for(let o of i)r.push(o);if(e>0&&Xf(r,a-1),n<this.length){let o=r.length;this.decomposeRight(n,r),Xf(r,o)}return wt.of(r)}decomposeLeft(e,n){let i=this.left.length;if(e<=i)return this.left.decomposeLeft(e,n);n.push(this.left),this.break&&(i++,e>=i&&n.push(null)),e>i&&this.right.decomposeLeft(e-i,n)}decomposeRight(e,n){let i=this.left.length,s=i+this.break;if(e>=s)return this.right.decomposeRight(e-s,n);e<i&&this.left.decomposeRight(e,n),this.break&&e<s&&n.push(null),n.push(this.right)}balanced(e,n){return e.size>2*n.size||n.size>2*e.size?wt.of(this.break?[e,null,n]:[e,n]):(this.left=Ha(this.left,e),this.right=Ha(this.right,n),this.setHeight(e.height+n.height),this.outdated=e.outdated||n.outdated,this.size=e.size+n.size,this.length=e.length+this.break+n.length,this)}updateHeight(e,n=0,i=!1,s){let{left:r,right:a}=this,o=n+r.length+this.break,c=null;return s&&s.from<=n+r.length&&s.more?c=r=r.updateHeight(e,n,i,s):r.updateHeight(e,n,i),s&&s.from<=o+a.length&&s.more?c=a=a.updateHeight(e,o,i,s):a.updateHeight(e,o,i),c?this.balanced(r,a):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Xf(t,e){let n,i;t[e]==null&&(n=t[e-1])instanceof ft&&(i=t[e+1])instanceof ft&&t.splice(e-1,3,new ft(n.length+1+i.length))}const q4=5;class tu{constructor(e,n){this.pos=e,this.oracle=n,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,n){if(this.lineStart>-1){let i=Math.min(n,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof Lt?s.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new Lt(i-this.pos,-1,0)),this.writtenTo=i,n>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=n}point(e,n,i){if(e<n||i.heightRelevant){let s=i.widget?i.widget.estimatedHeight:0,r=i.widget?i.widget.lineBreaks:0;s<0&&(s=this.oracle.lineHeight);let a=n-e;i.block?this.addBlock(new rg(a,s,i)):(a||r||s>=q4)&&this.addLineDeco(s,r,a)}else n>e&&this.span(e,n);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:n}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=n,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new Lt(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,n){let i=new ft(n-e);return this.oracle.doc.lineAt(e).to==n&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Lt)return e;let n=new Lt(0,-1,0);return this.nodes.push(n),n}addBlock(e){this.enterLine();let n=e.deco;n&&n.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,n&&n.endSide>0&&(this.covering=e)}addLineDeco(e,n,i){let s=this.ensureLine();s.length+=i,s.collapsed+=i,s.widgetHeight=Math.max(s.widgetHeight,e),s.breaks+=n,this.writtenTo=this.pos=this.pos+i}finish(e){let n=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(n instanceof Lt)&&!this.isCovered?this.nodes.push(new Lt(0,-1,0)):(this.writtenTo<this.pos||n==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let i=e;for(let s of this.nodes)s instanceof Lt&&s.updateHeight(this.oracle,i),i+=s?s.length:1;return this.nodes}static build(e,n,i,s){let r=new tu(i,e);return Le.spans(n,i,s,r,0),r.finish(i)}}function W4(t,e,n){let i=new z4;return Le.compare(t,e,n,i,0),i.changes}class z4{constructor(){this.changes=[]}compareRange(){}comparePoint(e,n,i,s){(e<n||i&&i.heightRelevant||s&&s.heightRelevant)&&Ji(e,n,this.changes,5)}}function B4(t,e){let n=t.getBoundingClientRect(),i=t.ownerDocument,s=i.defaultView||window,r=Math.max(0,n.left),a=Math.min(s.innerWidth,n.right),o=Math.max(0,n.top),c=Math.min(s.innerHeight,n.bottom);for(let d=t.parentNode;d&&d!=i.body;)if(d.nodeType==1){let u=d,h=window.getComputedStyle(u);if((u.scrollHeight>u.clientHeight||u.scrollWidth>u.clientWidth)&&h.overflow!="visible"){let f=u.getBoundingClientRect();r=Math.max(r,f.left),a=Math.min(a,f.right),o=Math.max(o,f.top),c=Math.min(d==t.parentNode?s.innerHeight:c,f.bottom)}d=h.position=="absolute"||h.position=="fixed"?u.offsetParent:u.parentNode}else if(d.nodeType==11)d=d.host;else break;return{left:r-n.left,right:Math.max(r,a)-n.left,top:o-(n.top+e),bottom:Math.max(o,c)-(n.top+e)}}function V4(t){let e=t.getBoundingClientRect(),n=t.ownerDocument.defaultView||window;return e.left<n.innerWidth&&e.right>0&&e.top<n.innerHeight&&e.bottom>0}function F4(t,e){let n=t.getBoundingClientRect();return{left:0,right:n.right-n.left,top:e,bottom:n.bottom-(n.top+e)}}class Pl{constructor(e,n,i,s){this.from=e,this.to=n,this.size=i,this.displaySize=s}static same(e,n){if(e.length!=n.length)return!1;for(let i=0;i<e.length;i++){let s=e[i],r=n[i];if(s.from!=r.from||s.to!=r.to||s.size!=r.size)return!1}return!0}draw(e,n){return Se.replace({widget:new U4(this.displaySize*(n?e.scaleY:e.scaleX),n)}).range(this.from,this.to)}}class U4 extends Qn{constructor(e,n){super(),this.size=e,this.vertical=n}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}}class Zf{constructor(e,n){this.view=e,this.state=n,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scaleX=1,this.scaleY=1,this.scrollOffset=0,this.scrolledToBottom=!1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=Df,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=Be.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let i=n.facet(Hd).some(s=>typeof s!="function"&&s.class=="cm-lineWrapping");this.heightOracle=new L4(i),this.stateDeco=qf(n),this.heightMap=wt.empty().applyChanges(this.stateDeco,Ze.empty,this.heightOracle.setDoc(n.doc),[new zt(0,0,0,n.doc.length)]);for(let s=0;s<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());s++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Se.set(this.lineGaps.map(s=>s.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:n}=this.state.selection;for(let i=0;i<=1;i++){let s=i?n.head:n.anchor;if(!e.some(({from:r,to:a})=>s>=r&&s<=a)){let{from:r,to:a}=this.lineBlockAt(s);e.push(new Fr(r,a))}}return this.viewports=e.sort((i,s)=>i.from-s.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?Df:new nu(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(As(e,this.scaler))})}update(e,n=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=qf(this.state);let s=e.changedRanges,r=zt.extendWithRanges(s,W4(i,this.stateDeco,e?e.changes:ct.empty(this.state.doc.length))),a=this.heightMap.height,o=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);Lf(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),r),(this.heightMap.height!=a||os)&&(e.flags|=2),o?(this.scrollAnchorPos=e.changes.mapPos(o.from,-1),this.scrollAnchorHeight=o.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=a);let c=r.length?this.mapViewport(this.viewport,e.changes):this.viewport;(n&&(n.range.head<c.from||n.range.head>c.to)||!this.viewportIsAppropriate(c))&&(c=this.getViewport(0,n));let d=c.from!=this.viewport.from||c.to!=this.viewport.to;this.viewport=c,e.flags|=this.updateForViewport(),(d||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),n&&(this.scrollTarget=n),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Lm)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,n=e.contentDOM,i=window.getComputedStyle(n),s=this.heightOracle,r=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?Be.RTL:Be.LTR;let a=this.heightOracle.mustRefreshForWrapping(r)||this.mustMeasureContent==="refresh",o=n.getBoundingClientRect(),c=a||this.mustMeasureContent||this.contentDOMHeight!=o.height;this.contentDOMHeight=o.height,this.mustMeasureContent=!1;let d=0,u=0;if(o.width&&o.height){let{scaleX:w,scaleY:C}=ym(n,o);(w>.005&&Math.abs(this.scaleX-w)>.005||C>.005&&Math.abs(this.scaleY-C)>.005)&&(this.scaleX=w,this.scaleY=C,d|=16,a=c=!0)}let h=(parseInt(i.paddingTop)||0)*this.scaleY,f=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=h||this.paddingBottom!=f)&&(this.paddingTop=h,this.paddingBottom=f,d|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(c=!0),this.editorWidth=e.scrollDOM.clientWidth,d|=16);let p=vm(this.view.contentDOM,!1).y;p!=this.scrollParent&&(this.scrollParent=p,this.scrollAnchorHeight=-1,this.scrollOffset=0);let O=this.getScrollOffset();this.scrollOffset!=O&&(this.scrollAnchorHeight=-1,this.scrollOffset=O),this.scrolledToBottom=wm(this.scrollParent||e.win);let g=(this.printing?F4:B4)(n,this.paddingTop),x=g.top-this.pixelViewport.top,b=g.bottom-this.pixelViewport.bottom;this.pixelViewport=g;let y=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(y!=this.inView&&(this.inView=y,y&&(c=!0)),!this.inView&&!this.scrollTarget&&!V4(e.dom))return 0;let S=o.width;if((this.contentDOMWidth!=S||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=o.width,this.editorHeight=e.scrollDOM.clientHeight,d|=16),c){let w=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(w)&&(a=!0),a||s.lineWrapping&&Math.abs(S-this.contentDOMWidth)>s.charWidth){let{lineHeight:C,charWidth:Q,textHeight:T}=e.docView.measureTextSize();a=C>0&&s.refresh(r,C,Q,T,Math.max(5,S/Q),w),a&&(e.docView.minWidth=0,d|=16)}x>0&&b>0?u=Math.max(x,b):x<0&&b<0&&(u=Math.min(x,b)),Lf();for(let C of this.viewports){let Q=C.from==this.viewport.from?w:e.docView.measureVisibleLineHeights(C);this.heightMap=(a?wt.empty().applyChanges(this.stateDeco,Ze.empty,this.heightOracle,[new zt(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,a,new X4(C.from,Q))}os&&(d|=2)}let P=!this.viewportIsAppropriate(this.viewport,u)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return P&&(d&2&&(d|=this.updateScaler()),this.viewport=this.getViewport(u,this.scrollTarget),d|=this.updateForViewport()),(d&2||P)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(a?[]:this.lineGaps,e)),d|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),d}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,n){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),s=this.heightMap,r=this.heightOracle,{visibleTop:a,visibleBottom:o}=this,c=new Fr(s.lineAt(a-i*1e3,Fe.ByHeight,r,0,0).from,s.lineAt(o+(1-i)*1e3,Fe.ByHeight,r,0,0).to);if(n){let{head:d}=n.range;if(d<c.from||d>c.to){let u=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),h=s.lineAt(d,Fe.ByPos,r,0,0),f;n.y=="center"?f=(h.top+h.bottom)/2-u/2:n.y=="start"||n.y=="nearest"&&d<c.from?f=h.top:f=h.bottom-u,c=new Fr(s.lineAt(f-1e3/2,Fe.ByHeight,r,0,0).from,s.lineAt(f+u+1e3/2,Fe.ByHeight,r,0,0).to)}}return c}mapViewport(e,n){let i=n.mapPos(e.from,-1),s=n.mapPos(e.to,1);return new Fr(this.heightMap.lineAt(i,Fe.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(s,Fe.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:n},i=0){if(!this.inView)return!0;let{top:s}=this.heightMap.lineAt(e,Fe.ByPos,this.heightOracle,0,0),{bottom:r}=this.heightMap.lineAt(n,Fe.ByPos,this.heightOracle,0,0),{visibleTop:a,visibleBottom:o}=this;return(e==0||s<=a-Math.max(10,Math.min(-i,250)))&&(n==this.state.doc.length||r>=o+Math.max(10,Math.min(i,250)))&&s>a-2*1e3&&r<o+2*1e3}mapLineGaps(e,n){if(!e.length||n.empty)return e;let i=[];for(let s of e)n.touchesRange(s.from,s.to)||i.push(new Pl(n.mapPos(s.from),n.mapPos(s.to),s.size,s.displaySize));return i}ensureLineGaps(e,n){let i=this.heightOracle.lineWrapping,s=i?1e4:2e3,r=s>>1,a=s<<1;if(this.defaultTextDirection!=Be.LTR&&!i)return[];let o=[],c=(u,h,f,p)=>{if(h-u<r)return;let O=this.state.selection.main,g=[O.from];O.empty||g.push(O.to);for(let b of g)if(b>u&&b<h){c(u,b-10,f,p),c(b+10,h,f,p);return}let x=G4(e,b=>b.from>=f.from&&b.to<=f.to&&Math.abs(b.from-u)<r&&Math.abs(b.to-h)<r&&!g.some(y=>b.from<y&&b.to>y));if(!x){if(h<f.to&&n&&i&&n.visibleRanges.some(S=>S.from<=h&&S.to>=h)){let S=n.moveToLineBoundary(q.cursor(h),!1,!0).head;S>u&&(h=S)}let b=this.gapSize(f,u,h,p),y=i||b<2e6?b:2e6;x=new Pl(u,h,b,y)}o.push(x)},d=u=>{if(u.length<a||u.type!=mt.Text)return;let h=Y4(u.from,u.to,this.stateDeco);if(h.total<a)return;let f=this.scrollTarget?this.scrollTarget.range.head:null,p,O;if(i){let g=s/this.heightOracle.lineLength*this.heightOracle.lineHeight,x,b;if(f!=null){let y=Yr(h,f),S=((this.visibleBottom-this.visibleTop)/2+g)/u.height;x=y-S,b=y+S}else x=(this.visibleTop-u.top-g)/u.height,b=(this.visibleBottom-u.top+g)/u.height;p=Ur(h,x),O=Ur(h,b)}else{let g=h.total*this.heightOracle.charWidth,x=s*this.heightOracle.charWidth,b=0;if(g>2e6)for(let C of e)C.from>=u.from&&C.from<u.to&&C.size!=C.displaySize&&C.from*this.heightOracle.charWidth+b<this.pixelViewport.left&&(b=C.size-C.displaySize);let y=this.pixelViewport.left+b,S=this.pixelViewport.right+b,P,w;if(f!=null){let C=Yr(h,f),Q=((S-y)/2+x)/g;P=C-Q,w=C+Q}else P=(y-x)/g,w=(S+x)/g;p=Ur(h,P),O=Ur(h,w)}p>u.from&&c(u.from,p,u,h),O<u.to&&c(O,u.to,u,h)};for(let u of this.viewportLines)Array.isArray(u.type)?u.type.forEach(d):d(u);return o}gapSize(e,n,i,s){let r=Yr(s,i)-Yr(s,n);return this.heightOracle.lineWrapping?e.height*r:s.total*this.heightOracle.charWidth*r}updateLineGaps(e){Pl.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Se.set(e.map(n=>n.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let n=this.stateDeco;this.lineGaps.length&&(n=n.concat(this.lineGapDeco));let i=[];Le.spans(n,this.viewport.from,this.viewport.to,{span(r,a){i.push({from:r,to:a})},point(){}},20);let s=0;if(i.length!=this.visibleRanges.length)s=12;else for(let r=0;r<i.length&&!(s&8);r++){let a=this.visibleRanges[r],o=i[r];(a.from!=o.from||a.to!=o.to)&&(s|=4,e&&e.mapPos(a.from,-1)==o.from&&e.mapPos(a.to,1)==o.to||(s|=8))}return this.visibleRanges=i,s}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(n=>n.from<=e&&n.to>=e)||As(this.heightMap.lineAt(e,Fe.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(n=>n.top<=e&&n.bottom>=e)||As(this.heightMap.lineAt(this.scaler.fromDOM(e),Fe.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let n=this.lineBlockAtHeight(e+8);return n.from>=this.viewport.from||this.viewportLines[0].top-e>200?n:this.viewportLines[0]}elementAtHeight(e){return As(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Fr{constructor(e,n){this.from=e,this.to=n}}function Y4(t,e,n){let i=[],s=t,r=0;return Le.spans(n,t,e,{span(){},point(a,o){a>s&&(i.push({from:s,to:a}),r+=a-s),s=o}},20),s<e&&(i.push({from:s,to:e}),r+=e-s),{total:r,ranges:i}}function Ur({total:t,ranges:e},n){if(n<=0)return e[0].from;if(n>=1)return e[e.length-1].to;let i=Math.floor(t*n);for(let s=0;;s++){let{from:r,to:a}=e[s],o=a-r;if(i<=o)return r+i;i-=o}}function Yr(t,e){let n=0;for(let{from:i,to:s}of t.ranges){if(e<=s){n+=e-i;break}n+=s-i}return n/t.total}function G4(t,e){for(let n of t)if(e(n))return n}const Df={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}};function qf(t){let e=t.facet($o).filter(i=>typeof i!="function"),n=t.facet(Kd).filter(i=>typeof i!="function");return n.length&&e.push(Le.join(n)),e}class nu{constructor(e,n,i){let s=0,r=0,a=0;this.viewports=i.map(({from:o,to:c})=>{let d=n.lineAt(o,Fe.ByPos,e,0,0).top,u=n.lineAt(c,Fe.ByPos,e,0,0).bottom;return s+=u-d,{from:o,to:c,top:d,bottom:u,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(n.height-s);for(let o of this.viewports)o.domTop=a+(o.top-r)*this.scale,a=o.domBottom=o.domTop+(o.bottom-o.top),r=o.bottom}toDOM(e){for(let n=0,i=0,s=0;;n++){let r=n<this.viewports.length?this.viewports[n]:null;if(!r||e<r.top)return s+(e-i)*this.scale;if(e<=r.bottom)return r.domTop+(e-r.top);i=r.bottom,s=r.domBottom}}fromDOM(e){for(let n=0,i=0,s=0;;n++){let r=n<this.viewports.length?this.viewports[n]:null;if(!r||e<r.domTop)return i+(e-s)/this.scale;if(e<=r.domBottom)return r.top+(e-r.domTop);i=r.bottom,s=r.domBottom}}eq(e){return e instanceof nu?this.scale==e.scale&&this.viewports.length==e.viewports.length&&this.viewports.every((n,i)=>n.from==e.viewports[i].from&&n.to==e.viewports[i].to):!1}}function As(t,e){if(e.scale==1)return t;let n=e.toDOM(t.top),i=e.toDOM(t.bottom);return new Jt(t.from,t.length,n,i-n,Array.isArray(t._content)?t._content.map(s=>As(s,e)):t._content)}const Gr=se.define({combine:t=>t.join(" ")}),Bc=se.define({combine:t=>t.indexOf(!0)>-1}),Vc=si.newName(),ag=si.newName(),og=si.newName(),lg={"&light":"."+ag,"&dark":"."+og};function Fc(t,e,n){return new si(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,s=>{if(s=="&")return t;if(!n||!n[s])throw new RangeError(`Unsupported selector: ${s}`);return n[s]}):t+" "+i}})}const H4=Fc("."+Vc,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},lg),K4={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Tl=re.ie&&re.ie_version<=11;class J4{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new $k,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(n=>{for(let i of n)this.queue.push(i);(re.ie&&re.ie_version<=11||re.ios&&e.composing)&&n.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&re.android&&e.constructor.EDIT_CONTEXT!==!1&&!(re.chrome&&re.chrome_version<126)&&(this.editContext=new tQ(e),e.state.facet(Rn)&&(e.contentDOM.editContext=this.editContext.editContext)),Tl&&(this.onCharData=n=>{this.queue.push({target:n.target,type:"characterData",oldValue:n.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var n;((n=this.view.docView)===null||n===void 0?void 0:n.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(n=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),n.length>0&&n[n.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(n=>{n.length>0&&n[n.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((n,i)=>n!=e[i]))){this.gapIntersection.disconnect();for(let n of e)this.gapIntersection.observe(n);this.gaps=e}}onSelectionChange(e){let n=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,s=this.selectionRange;if(i.state.facet(Rn)?i.root.activeElement!=this.dom:!Zs(this.dom,s))return;let r=s.anchorNode&&i.docView.tile.nearest(s.anchorNode);if(r&&r.isWidget()&&r.widget.ignoreEvent(e)){n||(this.selectionChanged=!1);return}(re.ie&&re.ie_version<=11||re.android&&re.chrome)&&!i.state.selection.main.empty&&s.focusNode&&Ds(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,n=nr(e.root);if(!n)return!1;let i=re.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&eQ(this.view,n)||n;if(!i||this.selectionRange.eq(i))return!1;let s=Zs(this.dom,i);return s&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&Ak(this.dom,i)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(i),s&&(this.selectionChanged=!0),!0)}setSelectionRange(e,n){this.selectionRange.set(e.node,e.offset,n.node,n.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,n=null;for(let i=this.dom;i;)if(i.nodeType==1)!n&&e<this.scrollTargets.length&&this.scrollTargets[e]==i?e++:n||(n=this.scrollTargets.slice(0,e)),n&&n.push(i),i=i.assignedSlot||i.parentNode;else if(i.nodeType==11)i=i.host;else break;if(e<this.scrollTargets.length&&!n&&(n=this.scrollTargets.slice(0,e)),n){for(let i of this.scrollTargets)i.removeEventListener("scroll",this.onScroll);for(let i of this.scrollTargets=n)i.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,K4),Tl&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),Tl&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,n){var i;if(!this.delayedAndroidKey){let s=()=>{let r=this.delayedAndroidKey;r&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=r.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&r.force&&es(this.dom,r.key,r.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:n,force:this.lastChange<Date.now()-50||!!(!((i=this.delayedAndroidKey)===null||i===void 0)&&i.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let n=-1,i=-1,s=!1;for(let r of e){let a=this.readMutation(r);a&&(a.typeOver&&(s=!0),n==-1?{from:n,to:i}=a:(n=Math.min(a.from,n),i=Math.max(a.to,i)))}return{from:n,to:i,typeOver:s}}readChange(){let{from:e,to:n,typeOver:i}=this.processRecords(),s=this.selectionChanged&&Zs(this.dom,this.selectionRange);if(e<0&&!s)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new x4(this.view,e,n,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let n=this.readChange();if(!n)return this.view.requestMeasure(),!1;let i=this.view.state,s=Ym(this.view,n);return this.view.state==i&&(n.domChanged||n.newSel&&!Ga(this.view.state.selection,n.newSel.main))&&this.view.update([]),s}readMutation(e){let n=this.view.docView.tile.nearest(e.target);if(!n||n.isWidget())return null;if(n.markDirty(e.type=="attributes"),e.type=="childList"){let i=Wf(n,e.previousSibling||e.target.previousSibling,-1),s=Wf(n,e.nextSibling||e.target.nextSibling,1);return{from:i?n.posAfter(i):n.posAtStart,to:s?n.posBefore(s):n.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:n.posAtStart,to:n.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(Rn)!=e.state.facet(Rn)&&(e.view.contentDOM.editContext=e.state.facet(Rn)?this.editContext.editContext:null))}destroy(){var e,n,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(n=this.gapIntersection)===null||n===void 0||n.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function Wf(t,e,n){for(;e;){let i=nt.get(e);if(i&&i.parent==t)return i;let s=e.parentNode;e=s!=t.dom?s:n>0?e.nextSibling:e.previousSibling}return null}function zf(t,e){let n=e.startContainer,i=e.startOffset,s=e.endContainer,r=e.endOffset,a=t.docView.domAtPos(t.state.selection.main.anchor,1);return Ds(a.node,a.offset,s,r)&&([n,i,s,r]=[s,r,n,i]),{anchorNode:n,anchorOffset:i,focusNode:s,focusOffset:r}}function eQ(t,e){if(e.getComposedRanges){let s=e.getComposedRanges(t.root)[0];if(s)return zf(t,s)}let n=null;function i(s){s.preventDefault(),s.stopImmediatePropagation(),n=s.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),n?zf(t,n):null}class tQ{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let n=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let s=e.state.selection.main,{anchor:r,head:a}=s,o=this.toEditorPos(i.updateRangeStart),c=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:o,drifted:!1});let d=c-o>i.text.length;o==this.from&&r<this.from?o=r:c==this.to&&r>this.to&&(c=r);let u=Gm(e.state.sliceDoc(o,c),i.text,(d?s.from:s.to)-o,d?"end":null);if(!u){let f=q.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));Ga(f,s)||e.dispatch({selection:f,userEvent:"select"});return}let h={from:u.from+o,to:u.toA+o,insert:Ze.of(i.text.slice(u.from,u.toB).split(`
|
|
35
|
+
`))};if((re.mac||re.android)&&h.from==a-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:o,to:c,insert:Ze.of([i.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let f=this.to-this.from+(h.to-h.from+h.insert.length);eu(e,h,q.single(this.toEditorPos(i.selectionStart,f),this.toEditorPos(i.selectionEnd,f)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),h.from<h.to&&!h.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(n.text.slice(Math.max(0,i.updateRangeStart-1),Math.min(n.text.length,i.updateRangeStart+1)))&&this.handlers.compositionend(i)},this.handlers.characterboundsupdate=i=>{let s=[],r=null;for(let a=this.toEditorPos(i.rangeStart),o=this.toEditorPos(i.rangeEnd);a<o;a++){let c=e.coordsForChar(a);r=c&&new DOMRect(c.left,c.top,c.right-c.left,c.bottom-c.top)||r||new DOMRect,s.push(r)}n.updateCharacterBounds(i.rangeStart,s)},this.handlers.textformatupdate=i=>{let s=[];for(let r of i.getTextFormats()){let a=r.underlineStyle,o=r.underlineThickness;if(!/none/i.test(a)&&!/none/i.test(o)){let c=this.toEditorPos(r.rangeStart),d=this.toEditorPos(r.rangeEnd);if(c<d){let u=`text-decoration: underline ${/^[a-z]/.test(a)?a+" ":a=="Dashed"?"dashed ":a=="Squiggle"?"wavy ":""}${/thin/i.test(o)?1:2}px`;s.push(Se.mark({attributes:{style:u}}).range(c,d))}}}e.dispatch({effects:Zm.of(Se.set(s))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)n.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let s=nr(i.root);s&&s.rangeCount&&this.editContext.updateSelectionBounds(s.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let n=0,i=!1,s=this.pendingContextChange;return e.changes.iterChanges((r,a,o,c,d)=>{if(i)return;let u=d.length-(a-r);if(s&&a>=s.to)if(s.from==r&&s.to==a&&s.insert.eq(d)){s=this.pendingContextChange=null,n+=u,this.to+=u;return}else s=null,this.revertPending(e.state);if(r+=n,a+=n,a<=this.from)this.from+=u,this.to+=u;else if(r<this.to){if(r<this.from||a>this.to||this.to-this.from+d.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(r),this.toContextPos(a),d.toString()),this.to+=u}n+=u}),s&&!i&&this.revertPending(e.state),!i}update(e){let n=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(s=>!s.isUserEvent("input.type")&&s.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||n)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:n}=e.selection.main;this.from=Math.max(0,n-1e4),this.to=Math.min(e.doc.length,n+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let n=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(n.from),this.toContextPos(n.from+n.insert.length),e.doc.sliceString(n.from,n.to))}setSelection(e){let{main:n}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,n.anchor))),s=this.toContextPos(n.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=s)&&this.editContext.updateSelection(i,s)}rangeIsValid(e){let{head:n}=e.selection.main;return!(this.from>0&&n-this.from<500||this.to<e.doc.length&&this.to-n<500||this.to-this.from>1e4*3)}toEditorPos(e,n=this.to-this.from){e=Math.min(e,n);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let n=this.composing;return n&&n.drifted?n.contextBase+(e-n.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class ie{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var n;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:i}=e;this.dispatchTransactions=e.dispatchTransactions||i&&(s=>s.forEach(r=>i(r,this)))||(s=>this.update(s)),this.dispatch=this.dispatch.bind(this),this._root=e.root||jk(e.parent)||document,this.viewState=new Zf(this,e.state||Xe.create(e)),e.scrollTo&&e.scrollTo.is(zr)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(qi).map(s=>new Sl(s));for(let s of this.plugins)s.update(this);this.observer=new J4(this),this.inputState=new S4(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Pf(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((n=document.fonts)===null||n===void 0)&&n.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let n=e.length==1&&e[0]instanceof at?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(n,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let n=!1,i=!1,s,r=this.state;for(let f of e){if(f.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=f.state}if(this.destroyed){this.viewState.state=r;return}let a=this.hasFocus,o=0,c=null;e.some(f=>f.annotation(ng))?(this.inputState.notifiedFocused=a,o=1):a!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=a,c=ig(r,a),c||(o=1));let d=this.observer.delayedAndroidKey,u=null;if(d?(this.observer.clearDelayedAndroidKey(),u=this.observer.readChange(),(u&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(u=null)):this.observer.clear(),r.facet(Xe.phrases)!=this.state.facet(Xe.phrases))return this.setState(r);s=Fa.create(this,r,e),s.flags|=o;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(h&&(h=h.map(f.changes)),f.scrollIntoView){let{main:p}=f.state.selection;h=new ts(p.empty?p:q.cursor(p.head,p.head>p.anchor?-1:1))}for(let p of f.effects)p.is(zr)&&(h=p.value.clip(this.state))}this.viewState.update(s,h),this.bidiCache=Ka.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),n=this.docView.update(s),this.state.facet(js)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(n,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(Gr)!=s.state.facet(Gr)&&(this.viewState.mustMeasureContent=!0),(n||i||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),n&&this.docViewUpdate(),!s.empty)for(let f of this.state.facet(Zc))try{f(s)}catch(p){At(this.state,p,"update listener")}(c||u)&&Promise.resolve().then(()=>{c&&this.state==c.startState&&this.dispatch(c),u&&!Ym(this,u)&&d.force&&es(this.contentDOM,d.key,d.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let n=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new Zf(this,e),this.plugins=e.facet(qi).map(i=>new Sl(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView.destroy(),this.docView=new Pf(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}n&&this.focus(),this.requestMeasure()}updatePlugins(e){let n=e.startState.facet(qi),i=e.state.facet(qi);if(n!=i){let s=[];for(let r of i){let a=n.indexOf(r);if(a<0)s.push(new Sl(r));else{let o=this.plugins[a];o.mustUpdate=e,s.push(o)}}for(let r of this.plugins)r.mustUpdate!=e&&r.destroy(this);this.plugins=s,this.pluginMap.clear()}else for(let s of this.plugins)s.mustUpdate=e;for(let s=0;s<this.plugins.length;s++)this.plugins[s].update(this);n!=i&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let e of this.plugins){let n=e.value;if(n&&n.docViewUpdate)try{n.docViewUpdate(this)}catch(i){At(this.state,i,"doc view update listener")}}}measure(e=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let n=null,i=this.viewState.scrollParent,s=this.viewState.getScrollOffset(),{scrollAnchorPos:r,scrollAnchorHeight:a}=this.viewState;Math.abs(s-this.viewState.scrollOffset)>1&&(a=-1),this.viewState.scrollAnchorHeight=-1;try{for(let o=0;;o++){if(a<0)if(wm(i||this.win))r=-1,a=this.viewState.heightMap.height;else{let p=this.viewState.scrollAnchorAt(s);r=p.from,a=p.top}this.updateState=1;let c=this.viewState.measure();if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(o>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let d=[];c&4||([this.measureRequests,d]=[d,this.measureRequests]);let u=d.map(p=>{try{return p.read(this)}catch(O){return At(this.state,O),Bf}}),h=Fa.create(this,this.state,[]),f=!1;h.flags|=c,n?n.flags|=c:n=h,this.updateState=2,h.empty||(this.updatePlugins(h),this.inputState.update(h),this.updateAttrs(),f=this.docView.update(h),f&&this.docViewUpdate());for(let p=0;p<d.length;p++)if(u[p]!=Bf)try{let O=d[p];O.write&&O.write(u[p],this)}catch(O){At(this.state,O)}if(f&&this.docView.updateSelection(!0),!h.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,a=-1;continue}else{let O=((r<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(r).top)-a)/this.scaleY;if((O>1||O<-1)&&(i==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){s=s+O,i?i.scrollTop+=O:this.win.scrollBy(0,O),a=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(n&&!n.empty)for(let o of this.state.facet(Zc))o(n)}get themeClasses(){return Vc+" "+(this.state.facet(Bc)?og:ag)+" "+this.state.facet(Gr)}updateAttrs(){let e=Vf(this,Dm,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),n={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(Rn)?"true":"false",class:"cm-content",style:`${re.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(n["aria-readonly"]="true"),Vf(this,Hd,n);let i=this.observer.ignore(()=>{let s=vf(this.contentDOM,this.contentAttrs,n),r=vf(this.dom,this.editorAttrs,e);return s||r});return this.editorAttrs=e,this.contentAttrs=n,i}showAnnouncements(e){let n=!0;for(let i of e)for(let s of i.effects)if(s.is(ie.announce)){n&&(this.announceDOM.textContent=""),n=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(js);let e=this.state.facet(ie.cspNonce);si.mount(this.root,this.styleModules.concat(H4).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let n=0;n<this.measureRequests.length;n++)if(this.measureRequests[n].key===e.key){this.measureRequests[n]=e;return}}this.measureRequests.push(e)}}plugin(e){let n=this.pluginMap.get(e);return(n===void 0||n&&n.plugin!=e)&&this.pluginMap.set(e,n=this.plugins.find(i=>i.plugin==e)||null),n&&n.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,n,i){return Cl(this,e,Tf(this,e,n,i))}moveByGroup(e,n){return Cl(this,e,Tf(this,e,n,i=>h4(this,e.head,i)))}visualLineSide(e,n){let i=this.bidiSpans(e),s=this.textDirectionAt(e.from),r=i[n?i.length-1:0];return q.cursor(r.side(n,s)+e.from,r.forward(!n,s)?1:-1)}moveToLineBoundary(e,n,i=!0){return u4(this,e,n,i)}moveVertically(e,n,i){return Cl(this,e,f4(this,e,n,i))}domAtPos(e,n=1){return this.docView.domAtPos(e,n)}posAtDOM(e,n=0){return this.docView.posFromDOM(e,n)}posAtCoords(e,n=!0){this.readMeasured();let i=Wc(this,e,n);return i&&i.pos}posAndSideAtCoords(e,n=!0){return this.readMeasured(),Wc(this,e,n)}coordsAtPos(e,n=1){this.readMeasured();let i=this.docView.coordsAt(e,n);if(!i||i.left==i.right)return i;let s=this.state.doc.lineAt(e),r=this.bidiSpans(s),a=r[gn.find(r,e-s.from,-1,n)];return Va(i,a.dir==Be.LTR==n>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Im)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>nQ)return $m(e.length);let n=this.textDirectionAt(e.from),i;for(let r of this.bidiCache)if(r.from==e.from&&r.dir==n&&(r.fresh||Tm(r.isolates,i=kf(this,e))))return r.order;i||(i=kf(this,e));let s=Lk(e.text,n,i);return this.bidiCache.push(new Ka(e.from,e.to,n,i,!0,s)),s}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||re.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Sm(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,n={}){return zr.of(new ts(typeof e=="number"?q.cursor(e):e,n.y,n.x,n.yMargin,n.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:n}=this.scrollDOM,i=this.viewState.scrollAnchorAt(e);return zr.of(new ts(q.cursor(i.from),"start","start",i.top-e,n,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return st.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return st.define(()=>({}),{eventObservers:e})}static theme(e,n){let i=si.newName(),s=[Gr.of(i),js.of(Fc(`.${i}`,e))];return n&&n.dark&&s.push(Bc.of(!0)),s}static baseTheme(e){return di.lowest(js.of(Fc("."+Vc,e,lg)))}static findFromDOM(e){var n;let i=e.querySelector(".cm-content"),s=i&&nt.get(i)||nt.get(e);return((n=s==null?void 0:s.root)===null||n===void 0?void 0:n.view)||null}}ie.styleModule=js;ie.inputHandler=Mm;ie.clipboardInputFilter=Yd;ie.clipboardOutputFilter=Gd;ie.scrollHandler=Xm;ie.focusChangeEffect=Em;ie.perLineTextDirection=Im;ie.exceptionSink=_m;ie.updateListener=Zc;ie.editable=Rn;ie.mouseSelectionStyle=Rm;ie.dragMovesSelection=Nm;ie.clickAddsSelectionRange=Am;ie.decorations=$o;ie.blockWrappers=qm;ie.outerDecorations=Kd;ie.atomicRanges=xr;ie.bidiIsolatedRanges=Wm;ie.scrollMargins=zm;ie.darkTheme=Bc;ie.cspNonce=se.define({combine:t=>t.length?t[0]:""});ie.contentAttributes=Hd;ie.editorAttributes=Dm;ie.lineWrapping=ie.contentAttributes.of({class:"cm-lineWrapping"});ie.announce=Pe.define();const nQ=4096,Bf={};class Ka{constructor(e,n,i,s,r,a){this.from=e,this.to=n,this.dir=i,this.isolates=s,this.fresh=r,this.order=a}static update(e,n){if(n.empty&&!e.some(r=>r.fresh))return e;let i=[],s=e.length?e[e.length-1].dir:Be.LTR;for(let r=Math.max(0,e.length-10);r<e.length;r++){let a=e[r];a.dir==s&&!n.touchesRange(a.from,a.to)&&i.push(new Ka(n.mapPos(a.from,1),n.mapPos(a.to,-1),a.dir,a.isolates,!1,a.order))}return i}}function Vf(t,e,n){for(let i=t.state.facet(e),s=i.length-1;s>=0;s--){let r=i[s],a=typeof r=="function"?r(t):r;a&&Vd(a,n)}return n}const iQ=re.mac?"mac":re.windows?"win":re.linux?"linux":"key";function sQ(t,e){const n=t.split(/-(?!$)/);let i=n[n.length-1];i=="Space"&&(i=" ");let s,r,a,o;for(let c=0;c<n.length-1;++c){const d=n[c];if(/^(cmd|meta|m)$/i.test(d))o=!0;else if(/^a(lt)?$/i.test(d))s=!0;else if(/^(c|ctrl|control)$/i.test(d))r=!0;else if(/^s(hift)?$/i.test(d))a=!0;else if(/^mod$/i.test(d))e=="mac"?o=!0:r=!0;else throw new Error("Unrecognized modifier name: "+d)}return s&&(i="Alt-"+i),r&&(i="Ctrl-"+i),o&&(i="Meta-"+i),a&&(i="Shift-"+i),i}function Hr(t,e,n){return e.altKey&&(t="Alt-"+t),e.ctrlKey&&(t="Ctrl-"+t),e.metaKey&&(t="Meta-"+t),n!==!1&&e.shiftKey&&(t="Shift-"+t),t}const rQ=di.default(ie.domEventHandlers({keydown(t,e){return dg(cg(e.state),t,e,"editor")}})),Ro=se.define({enables:rQ}),Ff=new WeakMap;function cg(t){let e=t.facet(Ro),n=Ff.get(e);return n||Ff.set(e,n=lQ(e.reduce((i,s)=>i.concat(s),[]))),n}function aQ(t,e,n){return dg(cg(t.state),e,t,n)}let Hn=null;const oQ=4e3;function lQ(t,e=iQ){let n=Object.create(null),i=Object.create(null),s=(a,o)=>{let c=i[a];if(c==null)i[a]=o;else if(c!=o)throw new Error("Key binding "+a+" is used both as a regular binding and as a multi-stroke prefix")},r=(a,o,c,d,u)=>{var h,f;let p=n[a]||(n[a]=Object.create(null)),O=o.split(/ (?!$)/).map(b=>sQ(b,e));for(let b=1;b<O.length;b++){let y=O.slice(0,b).join(" ");s(y,!0),p[y]||(p[y]={preventDefault:!0,stopPropagation:!1,run:[S=>{let P=Hn={view:S,prefix:y,scope:a};return setTimeout(()=>{Hn==P&&(Hn=null)},oQ),!0}]})}let g=O.join(" ");s(g,!1);let x=p[g]||(p[g]={preventDefault:!1,stopPropagation:!1,run:((f=(h=p._any)===null||h===void 0?void 0:h.run)===null||f===void 0?void 0:f.slice())||[]});c&&x.run.push(c),d&&(x.preventDefault=!0),u&&(x.stopPropagation=!0)};for(let a of t){let o=a.scope?a.scope.split(" "):["editor"];if(a.any)for(let d of o){let u=n[d]||(n[d]=Object.create(null));u._any||(u._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:h}=a;for(let f in u)u[f].run.push(p=>h(p,Uc))}let c=a[e]||a.key;if(c)for(let d of o)r(d,c,a.run,a.preventDefault,a.stopPropagation),a.shift&&r(d,"Shift-"+c,a.shift,a.preventDefault,a.stopPropagation)}return n}let Uc=null;function dg(t,e,n,i){Uc=e;let s=Sk(e),r=Tt(s,0),a=pn(r)==s.length&&s!=" ",o="",c=!1,d=!1,u=!1;Hn&&Hn.view==n&&Hn.scope==i&&(o=Hn.prefix+" ",Km.indexOf(e.keyCode)<0&&(d=!0,Hn=null));let h=new Set,f=x=>{if(x){for(let b of x.run)if(!h.has(b)&&(h.add(b),b(n)))return x.stopPropagation&&(u=!0),!0;x.preventDefault&&(x.stopPropagation&&(u=!0),d=!0)}return!1},p=t[i],O,g;return p&&(f(p[o+Hr(s,e,!a)])?c=!0:a&&(e.altKey||e.metaKey||e.ctrlKey)&&!(re.windows&&e.ctrlKey&&e.altKey)&&!(re.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(O=ri[e.keyCode])&&O!=s?(f(p[o+Hr(O,e,!0)])||e.shiftKey&&(g=er[e.keyCode])!=s&&g!=O&&f(p[o+Hr(g,e,!1)]))&&(c=!0):a&&e.shiftKey&&f(p[o+Hr(s,e,!0)])&&(c=!0),!c&&f(p._any)&&(c=!0)),d&&(c=!0),c&&u&&e.stopPropagation(),Uc=null,c}class br{constructor(e,n,i,s,r){this.className=e,this.left=n,this.top=i,this.width=s,this.height=r}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,n){return n.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,n,i){if(i.empty){let s=e.coordsAtPos(i.head,i.assoc||1);if(!s)return[];let r=ug(e);return[new br(n,s.left-r.left,s.top-r.top,null,s.bottom-s.top)]}else return cQ(e,n,i)}}function ug(t){let e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==Be.LTR?e.left:e.right-t.scrollDOM.clientWidth*t.scaleX)-t.scrollDOM.scrollLeft*t.scaleX,top:e.top-t.scrollDOM.scrollTop*t.scaleY}}function Uf(t,e,n,i){let s=t.coordsAtPos(e,n*2);if(!s)return i;let r=t.dom.getBoundingClientRect(),a=(s.top+s.bottom)/2,o=t.posAtCoords({x:r.left+1,y:a}),c=t.posAtCoords({x:r.right-1,y:a});return o==null||c==null?i:{from:Math.max(i.from,Math.min(o,c)),to:Math.min(i.to,Math.max(o,c))}}function cQ(t,e,n){if(n.to<=t.viewport.from||n.from>=t.viewport.to)return[];let i=Math.max(n.from,t.viewport.from),s=Math.min(n.to,t.viewport.to),r=t.textDirection==Be.LTR,a=t.contentDOM,o=a.getBoundingClientRect(),c=ug(t),d=a.querySelector(".cm-line"),u=d&&window.getComputedStyle(d),h=o.left+(u?parseInt(u.paddingLeft)+Math.min(0,parseInt(u.textIndent)):0),f=o.right-(u?parseInt(u.paddingRight):0),p=qc(t,i,1),O=qc(t,s,-1),g=p.type==mt.Text?p:null,x=O.type==mt.Text?O:null;if(g&&(t.lineWrapping||p.widgetLineBreaks)&&(g=Uf(t,i,1,g)),x&&(t.lineWrapping||O.widgetLineBreaks)&&(x=Uf(t,s,-1,x)),g&&x&&g.from==x.from&&g.to==x.to)return y(S(n.from,n.to,g));{let w=g?S(n.from,null,g):P(p,!1),C=x?S(null,n.to,x):P(O,!0),Q=[];return(g||p).to<(x||O).from-(g&&x?1:0)||p.widgetLineBreaks>1&&w.bottom+t.defaultLineHeight/2<C.top?Q.push(b(h,w.bottom,f,C.top)):w.bottom<C.top&&t.elementAtHeight((w.bottom+C.top)/2).type==mt.Text&&(w.bottom=C.top=(w.bottom+C.top)/2),y(w).concat(Q).concat(y(C))}function b(w,C,Q,T){return new br(e,w-c.left,C-c.top,Math.max(0,Q-w),T-C)}function y({top:w,bottom:C,horizontal:Q}){let T=[];for(let A=0;A<Q.length;A+=2)T.push(b(Q[A],w,Q[A+1],C));return T}function S(w,C,Q){let T=1e9,A=-1e9,$=[];function N(I,B,M,L,F){let de=t.coordsAtPos(I,I==Q.to?-2:2),ce=t.coordsAtPos(M,M==Q.from?2:-2);!de||!ce||(T=Math.min(de.top,ce.top,T),A=Math.max(de.bottom,ce.bottom,A),F==Be.LTR?$.push(r&&B?h:de.left,r&&L?f:ce.right):$.push(!r&&L?h:ce.left,!r&&B?f:de.right))}let R=w??Q.from,z=C??Q.to;for(let I of t.visibleRanges)if(I.to>R&&I.from<z)for(let B=Math.max(I.from,R),M=Math.min(I.to,z);;){let L=t.state.doc.lineAt(B);for(let F of t.bidiSpans(L)){let de=F.from+L.from,ce=F.to+L.from;if(de>=M)break;ce>B&&N(Math.max(de,B),w==null&&de<=R,Math.min(ce,M),C==null&&ce>=z,F.dir)}if(B=L.to+1,B>=M)break}return $.length==0&&N(R,w==null,z,C==null,t.textDirection),{top:T,bottom:A,horizontal:$}}function P(w,C){let Q=o.top+(C?w.top:w.bottom);return{top:Q,bottom:Q,horizontal:[]}}}function dQ(t,e){return t.constructor==e.constructor&&t.eq(e)}class uQ{constructor(e,n){this.view=e,this.layer=n,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),n.above&&this.dom.classList.add("cm-layer-above"),n.class&&this.dom.classList.add(n.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),n.mount&&n.mount(this.dom,e)}update(e){e.startState.facet(va)!=e.state.facet(va)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let n=0,i=e.facet(va);for(;n<i.length&&i[n]!=this.layer;)n++;this.dom.style.zIndex=String((this.layer.above?150:-1)-n)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:e,scaleY:n}=this.view;(e!=this.scaleX||n!=this.scaleY)&&(this.scaleX=e,this.scaleY=n,this.dom.style.transform=`scale(${1/e}, ${1/n})`)}draw(e){if(e.length!=this.drawn.length||e.some((n,i)=>!dQ(n,this.drawn[i]))){let n=this.dom.firstChild,i=0;for(let s of e)s.update&&n&&s.constructor&&this.drawn[i].constructor&&s.update(n,this.drawn[i])?(n=n.nextSibling,i++):this.dom.insertBefore(s.draw(),n);for(;n;){let s=n.nextSibling;n.remove(),n=s}this.drawn=e,re.safari&&re.safari_version>=26&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const va=se.define();function hg(t){return[st.define(e=>new uQ(e,t)),va.of(t)]}const sr=se.define({combine(t){return kn(t,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,n)=>Math.min(e,n),drawRangeCursor:(e,n)=>e||n})}});function hQ(t={}){return[sr.of(t),fQ,pQ,OQ,Lm.of(!0)]}function fg(t){return t.startState.facet(sr)!=t.state.facet(sr)}const fQ=hg({above:!0,markers(t){let{state:e}=t,n=e.facet(sr),i=[];for(let s of e.selection.ranges){let r=s==e.selection.main;if(s.empty||n.drawRangeCursor){let a=r?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",o=s.empty?s:q.cursor(s.head,s.head>s.anchor?-1:1);for(let c of br.forRange(t,a,o))i.push(c)}}return i},update(t,e){t.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let n=fg(t);return n&&Yf(t.state,e),t.docChanged||t.selectionSet||n},mount(t,e){Yf(e.state,t)},class:"cm-cursorLayer"});function Yf(t,e){e.style.animationDuration=t.facet(sr).cursorBlinkRate+"ms"}const pQ=hg({above:!1,markers(t){return t.state.selection.ranges.map(e=>e.empty?[]:br.forRange(t,"cm-selectionBackground",e)).reduce((e,n)=>e.concat(n))},update(t,e){return t.docChanged||t.selectionSet||t.viewportChanged||fg(t)},class:"cm-selectionLayer"}),OQ=di.highest(ie.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),pg=Pe.define({map(t,e){return t==null?null:e.mapPos(t)}}),Ns=gt.define({create(){return null},update(t,e){return t!=null&&(t=e.changes.mapPos(t)),e.effects.reduce((n,i)=>i.is(pg)?i.value:n,t)}}),mQ=st.fromClass(class{constructor(t){this.view=t,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(t){var e;let n=t.state.field(Ns);n==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(t.startState.field(Ns)!=n||t.docChanged||t.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:t}=this,e=t.state.field(Ns),n=e!=null&&t.coordsAtPos(e);if(!n)return null;let i=t.scrollDOM.getBoundingClientRect();return{left:n.left-i.left+t.scrollDOM.scrollLeft*t.scaleX,top:n.top-i.top+t.scrollDOM.scrollTop*t.scaleY,height:n.bottom-n.top}}drawCursor(t){if(this.cursor){let{scaleX:e,scaleY:n}=this.view;t?(this.cursor.style.left=t.left/e+"px",this.cursor.style.top=t.top/n+"px",this.cursor.style.height=t.height/n+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(t){this.view.state.field(Ns)!=t&&this.view.dispatch({effects:pg.of(t)})}},{eventObservers:{dragover(t){this.setDropPos(this.view.posAtCoords({x:t.clientX,y:t.clientY}))},dragleave(t){(t.target==this.view.contentDOM||!this.view.contentDOM.contains(t.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function gQ(){return[Ns,mQ]}function Gf(t,e,n,i,s){e.lastIndex=0;for(let r=t.iterRange(n,i),a=n,o;!r.next().done;a+=r.value.length)if(!r.lineBreak)for(;o=e.exec(r.value);)s(a+o.index,o)}function xQ(t,e){let n=t.visibleRanges;if(n.length==1&&n[0].from==t.viewport.from&&n[0].to==t.viewport.to)return n;let i=[];for(let{from:s,to:r}of n)s=Math.max(t.state.doc.lineAt(s).from,s-e),r=Math.min(t.state.doc.lineAt(r).to,r+e),i.length&&i[i.length-1].to>=s?i[i.length-1].to=r:i.push({from:s,to:r});return i}class bQ{constructor(e){const{regexp:n,decoration:i,decorate:s,boundary:r,maxLength:a=1e3}=e;if(!n.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=n,s)this.addMatch=(o,c,d,u)=>s(u,d,d+o[0].length,o,c);else if(typeof i=="function")this.addMatch=(o,c,d,u)=>{let h=i(o,c,d);h&&u(d,d+o[0].length,h)};else if(i)this.addMatch=(o,c,d,u)=>u(d,d+o[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=r,this.maxLength=a}createDeco(e){let n=new In,i=n.add.bind(n);for(let{from:s,to:r}of xQ(e,this.maxLength))Gf(e.state.doc,this.regexp,s,r,(a,o)=>this.addMatch(o,e,a,i));return n.finish()}updateDeco(e,n){let i=1e9,s=-1;return e.docChanged&&e.changes.iterChanges((r,a,o,c)=>{c>=e.view.viewport.from&&o<=e.view.viewport.to&&(i=Math.min(o,i),s=Math.max(c,s))}),e.viewportMoved||s-i>1e3?this.createDeco(e.view):s>-1?this.updateRange(e.view,n.map(e.changes),i,s):n}updateRange(e,n,i,s){for(let r of e.visibleRanges){let a=Math.max(r.from,i),o=Math.min(r.to,s);if(o>=a){let c=e.state.doc.lineAt(a),d=c.to<o?e.state.doc.lineAt(o):c,u=Math.max(r.from,c.from),h=Math.min(r.to,d.to);if(this.boundary){for(;a>c.from;a--)if(this.boundary.test(c.text[a-1-c.from])){u=a;break}for(;o<d.to;o++)if(this.boundary.test(d.text[o-d.from])){h=o;break}}let f=[],p,O=(g,x,b)=>f.push(b.range(g,x));if(c==d)for(this.regexp.lastIndex=u-c.from;(p=this.regexp.exec(c.text))&&p.index<h-c.from;)this.addMatch(p,e,p.index+c.from,O);else Gf(e.state.doc,this.regexp,u,h,(g,x)=>this.addMatch(x,e,g,O));n=n.update({filterFrom:u,filterTo:h,filter:(g,x)=>g<u||x>h,add:f})}}return n}}const Yc=/x/.unicode!=null?"gu":"g",yQ=new RegExp(`[\0-\b
|
|
36
|
+
--\u2028\u2029\uFEFF-]`,Yc),vQ={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let $l=null;function SQ(){var t;if($l==null&&typeof document<"u"&&document.body){let e=document.body.style;$l=((t=e.tabSize)!==null&&t!==void 0?t:e.MozTabSize)!=null}return $l||!1}const Sa=se.define({combine(t){let e=kn(t,{render:null,specialChars:yQ,addSpecialChars:null});return(e.replaceTabs=!SQ())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Yc)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Yc)),e}});function wQ(t={}){return[Sa.of(t),kQ()]}let Hf=null;function kQ(){return Hf||(Hf=st.fromClass(class{constructor(t){this.view=t,this.decorations=Se.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(t.state.facet(Sa)),this.decorations=this.decorator.createDeco(t)}makeDecorator(t){return new bQ({regexp:t.specialChars,decoration:(e,n,i)=>{let{doc:s}=n.state,r=Tt(e[0],0);if(r==9){let a=s.lineAt(i),o=n.state.tabSize,c=fs(a.text,o,i-a.from);return Se.replace({widget:new TQ((o-c%o)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[r]||(this.decorationCache[r]=Se.replace({widget:new PQ(t,r)}))},boundary:t.replaceTabs?void 0:/[^]/})}update(t){let e=t.state.facet(Sa);t.startState.facet(Sa)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(t.view)):this.decorations=this.decorator.updateDeco(t,this.decorations)}},{decorations:t=>t.decorations}))}const QQ="•";function CQ(t){return t>=32?QQ:t==10?"":String.fromCharCode(9216+t)}class PQ extends Qn{constructor(e,n){super(),this.options=e,this.code=n}eq(e){return e.code==this.code}toDOM(e){let n=CQ(this.code),i=e.state.phrase("Control character")+" "+(vQ[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,i,n);if(s)return s;let r=document.createElement("span");return r.textContent=n,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}}class TQ extends Qn{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function $Q(){return AQ}const jQ=Se.line({class:"cm-activeLine"}),AQ=st.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=-1,n=[];for(let i of t.state.selection.ranges){let s=t.lineBlockAt(i.head);s.from>e&&(n.push(jQ.range(s.from)),e=s.from)}return Se.set(n)}},{decorations:t=>t.decorations}),Gc=2e3;function NQ(t,e,n){let i=Math.min(e.line,n.line),s=Math.max(e.line,n.line),r=[];if(e.off>Gc||n.off>Gc||e.col<0||n.col<0){let a=Math.min(e.off,n.off),o=Math.max(e.off,n.off);for(let c=i;c<=s;c++){let d=t.doc.line(c);d.length<=o&&r.push(q.range(d.from+a,d.to+o))}}else{let a=Math.min(e.col,n.col),o=Math.max(e.col,n.col);for(let c=i;c<=s;c++){let d=t.doc.line(c),u=$c(d.text,a,t.tabSize,!0);if(u<0)r.push(q.cursor(d.to));else{let h=$c(d.text,o,t.tabSize);r.push(q.range(d.from+u,d.from+h))}}}return r}function RQ(t,e){let n=t.coordsAtPos(t.viewport.from);return n?Math.round(Math.abs((n.left-e)/t.defaultCharacterWidth)):-1}function Kf(t,e){let n=t.posAtCoords({x:e.clientX,y:e.clientY},!1),i=t.state.doc.lineAt(n),s=n-i.from,r=s>Gc?-1:s==i.length?RQ(t,e.clientX):fs(i.text,t.state.tabSize,n-i.from);return{line:i.number,col:r,off:s}}function _Q(t,e){let n=Kf(t,e),i=t.state.selection;return n?{update(s){if(s.docChanged){let r=s.changes.mapPos(s.startState.doc.line(n.line).from),a=s.state.doc.lineAt(r);n={line:a.number,col:n.col,off:Math.min(n.off,a.length)},i=i.map(s.changes)}},get(s,r,a){let o=Kf(t,s);if(!o)return i;let c=NQ(t.state,n,o);return c.length?a?q.create(c.concat(i.ranges)):q.create(c):i}}:null}function MQ(t){let e=(n=>n.altKey&&n.button==0);return ie.mouseSelectionStyle.of((n,i)=>e(i)?_Q(n,i):null)}const EQ={Alt:[18,t=>!!t.altKey],Control:[17,t=>!!t.ctrlKey],Shift:[16,t=>!!t.shiftKey],Meta:[91,t=>!!t.metaKey]},IQ={style:"cursor: crosshair"};function LQ(t={}){let[e,n]=EQ[t.key||"Alt"],i=st.fromClass(class{constructor(s){this.view=s,this.isDown=!1}set(s){this.isDown!=s&&(this.isDown=s,this.view.update([]))}},{eventObservers:{keydown(s){this.set(s.keyCode==e||n(s))},keyup(s){(s.keyCode==e||!n(s))&&this.set(!1)},mousemove(s){this.set(n(s))}}});return[i,ie.contentAttributes.of(s=>{var r;return!((r=s.plugin(i))===null||r===void 0)&&r.isDown?IQ:null})]}const Kr="-10000px";class Og{constructor(e,n,i,s){this.facet=n,this.createTooltipView=i,this.removeTooltipView=s,this.input=e.state.facet(n),this.tooltips=this.input.filter(a=>a);let r=null;this.tooltipViews=this.tooltips.map(a=>r=i(a,r))}update(e,n){var i;let s=e.state.facet(this.facet),r=s.filter(c=>c);if(s===this.input){for(let c of this.tooltipViews)c.update&&c.update(e);return!1}let a=[],o=n?[]:null;for(let c=0;c<r.length;c++){let d=r[c],u=-1;if(d){for(let h=0;h<this.tooltips.length;h++){let f=this.tooltips[h];f&&f.create==d.create&&(u=h)}if(u<0)a[c]=this.createTooltipView(d,c?a[c-1]:null),o&&(o[c]=!!d.above);else{let h=a[c]=this.tooltipViews[u];o&&(o[c]=n[u]),h.update&&h.update(e)}}}for(let c of this.tooltipViews)a.indexOf(c)<0&&(this.removeTooltipView(c),(i=c.destroy)===null||i===void 0||i.call(c));return n&&(o.forEach((c,d)=>n[d]=c),n.length=o.length),this.input=s,this.tooltips=r,this.tooltipViews=a,!0}}function XQ(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const jl=se.define({combine:t=>{var e,n,i;return{position:re.ios?"absolute":((e=t.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((n=t.find(s=>s.parent))===null||n===void 0?void 0:n.parent)||null,tooltipSpace:((i=t.find(s=>s.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||XQ}}}),Jf=new WeakMap,iu=st.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(jl);this.position=e.position,this.parent=e.parent,this.classes=t.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new Og(t,su,(n,i)=>this.createTooltip(n,i),n=>{this.resizeObserver&&this.resizeObserver.unobserve(n.dom),n.dom.remove()}),this.above=this.manager.tooltips.map(n=>!!n.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(n=>{Date.now()>this.lastTransaction-50&&n.length>0&&n[n.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let n=e||t.geometryChanged,i=t.state.facet(jl);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;n=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let s of this.manager.tooltipViews)this.container.appendChild(s.dom);n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}createTooltip(t,e){let n=t.create(this.view),i=e?e.dom:null;if(n.dom.classList.add("cm-tooltip"),t.arrow&&!n.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",n.dom.appendChild(s)}return n.dom.style.position=this.position,n.dom.style.top=Kr,n.dom.style.left="0px",this.container.insertBefore(n.dom,i),n.mount&&n.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(n.dom),n}destroy(){var t,e,n;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(t=i.destroy)===null||t===void 0||t.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(n=this.intersectionObserver)===null||n===void 0||n.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,n=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:r}=this.manager.tooltipViews[0];if(re.safari){let a=r.getBoundingClientRect();n=Math.abs(a.top+1e4)>1||Math.abs(a.left)>1}else n=!!r.offsetParent&&r.offsetParent!=this.container.ownerDocument.body}if(n||this.position=="absolute")if(this.parent){let r=this.parent.getBoundingClientRect();r.width&&r.height&&(t=r.width/this.parent.offsetWidth,e=r.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),s=Jd(this.view);return{visible:{left:i.left+s.left,top:i.top+s.top,right:i.right-s.right,bottom:i.bottom-s.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((r,a)=>{let o=this.manager.tooltipViews[a];return o.getCoords?o.getCoords(r.pos):this.view.coordsAtPos(r.pos)}),size:this.manager.tooltipViews.map(({dom:r})=>r.getBoundingClientRect()),space:this.view.state.facet(jl).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:n}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let o of this.manager.tooltipViews)o.dom.style.position="absolute"}let{visible:n,space:i,scaleX:s,scaleY:r}=t,a=[];for(let o=0;o<this.manager.tooltips.length;o++){let c=this.manager.tooltips[o],d=this.manager.tooltipViews[o],{dom:u}=d,h=t.pos[o],f=t.size[o];if(!h||c.clip!==!1&&(h.bottom<=Math.max(n.top,i.top)||h.top>=Math.min(n.bottom,i.bottom)||h.right<Math.max(n.left,i.left)-.1||h.left>Math.min(n.right,i.right)+.1)){u.style.top=Kr;continue}let p=c.arrow?d.dom.querySelector(".cm-tooltip-arrow"):null,O=p?7:0,g=f.right-f.left,x=(e=Jf.get(d))!==null&&e!==void 0?e:f.bottom-f.top,b=d.offset||DQ,y=this.view.textDirection==Be.LTR,S=f.width>i.right-i.left?y?i.left:i.right-f.width:y?Math.max(i.left,Math.min(h.left-(p?14:0)+b.x,i.right-g)):Math.min(Math.max(i.left,h.left-g+(p?14:0)-b.x),i.right-g),P=this.above[o];!c.strictSide&&(P?h.top-x-O-b.y<i.top:h.bottom+x+O+b.y>i.bottom)&&P==i.bottom-h.bottom>h.top-i.top&&(P=this.above[o]=!P);let w=(P?h.top-i.top:i.bottom-h.bottom)-O;if(w<x&&d.resize!==!1){if(w<this.view.defaultLineHeight){u.style.top=Kr;continue}Jf.set(d,x),u.style.height=(x=w)/r+"px"}else u.style.height&&(u.style.height="");let C=P?h.top-x-O-b.y:h.bottom+O+b.y,Q=S+g;if(d.overlap!==!0)for(let T of a)T.left<Q&&T.right>S&&T.top<C+x&&T.bottom>C&&(C=P?T.top-x-2-O:T.bottom+O+2);if(this.position=="absolute"?(u.style.top=(C-t.parent.top)/r+"px",ep(u,(S-t.parent.left)/s)):(u.style.top=C/r+"px",ep(u,S/s)),p){let T=h.left+(y?b.x:-b.x)-(S+14-7);p.style.left=T/s+"px"}d.overlap!==!0&&a.push({left:S,top:C,right:Q,bottom:C+x}),u.classList.toggle("cm-tooltip-above",P),u.classList.toggle("cm-tooltip-below",!P),d.positioned&&d.positioned(t.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let t of this.manager.tooltipViews)t.dom.style.top=Kr}},{eventObservers:{scroll(){this.maybeMeasure()}}});function ep(t,e){let n=parseInt(t.style.left,10);(isNaN(n)||Math.abs(e-n)>1)&&(t.style.left=e+"px")}const ZQ=ie.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),DQ={x:0,y:0},su=se.define({enables:[iu,ZQ]}),Ja=se.define({combine:t=>t.reduce((e,n)=>e.concat(n),[])});class _o{static create(e){return new _o(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Og(e,Ja,(n,i)=>this.createHostedView(n,i),n=>n.dom.remove())}createHostedView(e,n){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,n?n.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let n of this.manager.tooltipViews)n.mount&&n.mount(e);this.mounted=!0}positioned(e){for(let n of this.manager.tooltipViews)n.positioned&&n.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let n of this.manager.tooltipViews)(e=n.destroy)===null||e===void 0||e.call(n)}passProp(e){let n;for(let i of this.manager.tooltipViews){let s=i[e];if(s!==void 0){if(n===void 0)n=s;else if(n!==s)return}}return n}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const qQ=su.compute([Ja],t=>{let e=t.facet(Ja);return e.length===0?null:{pos:Math.min(...e.map(n=>n.pos)),end:Math.max(...e.map(n=>{var i;return(i=n.end)!==null&&i!==void 0?i:n.pos})),create:_o.create,above:e[0].above,arrow:e.some(n=>n.arrow)}});class WQ{constructor(e,n,i,s,r){this.view=e,this.source=n,this.field=i,this.setHover=s,this.hoverTime=r,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:e,lastMove:n}=this,i=e.docView.tile.nearest(n.target);if(!i)return;let s,r=1;if(i.isWidget())s=i.posAtStart;else{if(s=e.posAtCoords(n),s==null)return;let o=e.coordsAtPos(s);if(!o||n.y<o.top||n.y>o.bottom||n.x<o.left-e.defaultCharacterWidth||n.x>o.right+e.defaultCharacterWidth)return;let c=e.bidiSpans(e.state.doc.lineAt(s)).find(u=>u.from<=s&&u.to>=s),d=c&&c.dir==Be.RTL?-1:1;r=n.x<o.left?-d:d}let a=this.source(e,s,r);if(a!=null&&a.then){let o=this.pending={pos:s};a.then(c=>{this.pending==o&&(this.pending=null,c&&!(Array.isArray(c)&&!c.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(c)?c:[c])}))},c=>At(e.state,c,"hover tooltip"))}else a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])})}get tooltip(){let e=this.view.plugin(iu),n=e?e.manager.tooltips.findIndex(i=>i.create==_o.create):-1;return n>-1?e.manager.tooltipViews[n]:null}mousemove(e){var n,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:s,tooltip:r}=this;if(s.length&&r&&!zQ(r.dom,e)||this.pending){let{pos:a}=s[0]||this.pending,o=(i=(n=s[0])===null||n===void 0?void 0:n.end)!==null&&i!==void 0?i:a;(a==o?this.view.posAtCoords(this.lastMove)!=a:!BQ(this.view,a,o,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:n}=this;if(n.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let n=i=>{e.removeEventListener("mouseleave",n),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",n)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const Jr=4;function zQ(t,e){let{left:n,right:i,top:s,bottom:r}=t.getBoundingClientRect(),a;if(a=t.querySelector(".cm-tooltip-arrow")){let o=a.getBoundingClientRect();s=Math.min(o.top,s),r=Math.max(o.bottom,r)}return e.clientX>=n-Jr&&e.clientX<=i+Jr&&e.clientY>=s-Jr&&e.clientY<=r+Jr}function BQ(t,e,n,i,s,r){let a=t.scrollDOM.getBoundingClientRect(),o=t.documentTop+t.documentPadding.top+t.contentHeight;if(a.left>i||a.right<i||a.top>s||Math.min(a.bottom,o)<s)return!1;let c=t.posAtCoords({x:i,y:s},!1);return c>=e&&c<=n}function VQ(t,e={}){let n=Pe.define(),i=gt.define({create(){return[]},update(s,r){if(s.length&&(e.hideOnChange&&(r.docChanged||r.selection)?s=[]:e.hideOn&&(s=s.filter(a=>!e.hideOn(r,a))),r.docChanged)){let a=[];for(let o of s){let c=r.changes.mapPos(o.pos,-1,Ot.TrackDel);if(c!=null){let d=Object.assign(Object.create(null),o);d.pos=c,d.end!=null&&(d.end=r.changes.mapPos(d.end)),a.push(d)}}s=a}for(let a of r.effects)a.is(n)&&(s=a.value),a.is(FQ)&&(s=[]);return s},provide:s=>Ja.from(s)});return{active:i,extension:[i,st.define(s=>new WQ(s,t,i,n,e.hoverTime||300)),qQ]}}function mg(t,e){let n=t.plugin(iu);if(!n)return null;let i=n.manager.tooltips.indexOf(e);return i<0?null:n.manager.tooltipViews[i]}const FQ=Pe.define(),tp=se.define({combine(t){let e,n;for(let i of t)e=e||i.topContainer,n=n||i.bottomContainer;return{topContainer:e,bottomContainer:n}}});function ru(t,e){let n=t.plugin(gg),i=n?n.specs.indexOf(e):-1;return i>-1?n.panels[i]:null}const gg=st.fromClass(class{constructor(t){this.input=t.state.facet(rr),this.specs=this.input.filter(n=>n),this.panels=this.specs.map(n=>n(t));let e=t.state.facet(tp);this.top=new ea(t,!0,e.topContainer),this.bottom=new ea(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(n=>n.top)),this.bottom.sync(this.panels.filter(n=>!n.top));for(let n of this.panels)n.dom.classList.add("cm-panel"),n.mount&&n.mount()}update(t){let e=t.state.facet(tp);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new ea(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new ea(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let n=t.state.facet(rr);if(n!=this.input){let i=n.filter(c=>c),s=[],r=[],a=[],o=[];for(let c of i){let d=this.specs.indexOf(c),u;d<0?(u=c(t.view),o.push(u)):(u=this.panels[d],u.update&&u.update(t)),s.push(u),(u.top?r:a).push(u)}this.specs=i,this.panels=s,this.top.sync(r),this.bottom.sync(a);for(let c of o)c.dom.classList.add("cm-panel"),c.mount&&c.mount()}else for(let i of this.panels)i.update&&i.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>ie.scrollMargins.of(e=>{let n=e.plugin(t);return n&&{top:n.top.scrollMargin(),bottom:n.bottom.scrollMargin()}})});class ea{constructor(e,n,i){this.view=e,this.top=n,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let n of this.panels)n.destroy&&e.indexOf(n)<0&&n.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let n=this.container||this.view.dom;n.insertBefore(this.dom,this.top?n.firstChild:null)}let e=this.dom.firstChild;for(let n of this.panels)if(n.dom.parentNode==this.dom){for(;e!=n.dom;)e=np(e);e=e.nextSibling}else this.dom.insertBefore(n.dom,e);for(;e;)e=np(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function np(t){let e=t.nextSibling;return t.remove(),e}const rr=se.define({enables:gg});function UQ(t,e){let n,i=new Promise(a=>n=a),s=a=>YQ(a,e,n);t.state.field(Al,!1)?t.dispatch({effects:xg.of(s)}):t.dispatch({effects:Pe.appendConfig.of(Al.init(()=>[s]))});let r=bg.of(s);return{close:r,result:i.then(a=>((t.win.queueMicrotask||(c=>t.win.setTimeout(c,10)))(()=>{t.state.field(Al).indexOf(s)>-1&&t.dispatch({effects:r})}),a))}}const Al=gt.define({create(){return[]},update(t,e){for(let n of e.effects)n.is(xg)?t=[n.value].concat(t):n.is(bg)&&(t=t.filter(i=>i!=n.value));return t},provide:t=>rr.computeN([t],e=>e.field(t))}),xg=Pe.define(),bg=Pe.define();function YQ(t,e,n){let i=e.content?e.content(t,()=>a(null)):null;if(!i){if(i=We("form"),e.input){let o=We("input",e.input);/^(text|password|number|email|tel|url)$/.test(o.type)&&o.classList.add("cm-textfield"),o.name||(o.name="input"),i.appendChild(We("label",(e.label||"")+": ",o))}else i.appendChild(document.createTextNode(e.label||""));i.appendChild(document.createTextNode(" ")),i.appendChild(We("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let s=i.nodeName=="FORM"?[i]:i.querySelectorAll("form");for(let o=0;o<s.length;o++){let c=s[o];c.addEventListener("keydown",d=>{d.keyCode==27?(d.preventDefault(),a(null)):d.keyCode==13&&(d.preventDefault(),a(c))}),c.addEventListener("submit",d=>{d.preventDefault(),a(c)})}let r=We("div",i,We("button",{onclick:()=>a(null),"aria-label":t.state.phrase("close"),class:"cm-dialog-close",type:"button"},["×"]));e.class&&(r.className=e.class),r.classList.add("cm-dialog");function a(o){r.contains(r.ownerDocument.activeElement)&&t.focus(),n(o)}return{dom:r,top:e.top,mount:()=>{if(e.focus){let o;typeof e.focus=="string"?o=i.querySelector(e.focus):o=i.querySelector("input")||i.querySelector("button"),o&&"select"in o?o.select():o&&"focus"in o&&o.focus()}}}}class Xn extends ii{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}Xn.prototype.elementClass="";Xn.prototype.toDOM=void 0;Xn.prototype.mapMode=Ot.TrackBefore;Xn.prototype.startSide=Xn.prototype.endSide=-1;Xn.prototype.point=!0;const wa=se.define(),GQ=se.define(),HQ={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Le.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},Ws=se.define();function KQ(t){return[yg(),Ws.of({...HQ,...t})]}const ip=se.define({combine:t=>t.some(e=>e)});function yg(t){return[JQ]}const JQ=st.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(Ws).map(e=>new rp(t,e)),this.fixed=!t.state.facet(ip);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(t){if(this.updateGutters(t)){let e=this.prevViewport,n=t.view.viewport,i=Math.min(e.to,n.to)-Math.max(e.from,n.from);this.syncGutters(i<(n.to-n.from)*.8)}if(t.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(ip)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let n=Le.iter(this.view.state.facet(wa),this.view.viewport.from),i=[],s=this.gutters.map(r=>new e6(r,this.view.viewport,-this.view.documentPadding.top));for(let r of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(r.type)){let a=!0;for(let o of r.type)if(o.type==mt.Text&&a){Hc(n,i,o.from);for(let c of s)c.line(this.view,o,i);a=!1}else if(o.widget)for(let c of s)c.widget(this.view,o)}else if(r.type==mt.Text){Hc(n,i,r.from);for(let a of s)a.line(this.view,r,i)}else if(r.widget)for(let a of s)a.widget(this.view,r);for(let r of s)r.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet(Ws),n=t.state.facet(Ws),i=t.docChanged||t.heightChanged||t.viewportChanged||!Le.eq(t.startState.facet(wa),t.state.facet(wa),t.view.viewport.from,t.view.viewport.to);if(e==n)for(let s of this.gutters)s.update(t)&&(i=!0);else{i=!0;let s=[];for(let r of n){let a=e.indexOf(r);a<0?s.push(new rp(this.view,r)):(this.gutters[a].update(t),s.push(this.gutters[a]))}for(let r of this.gutters)r.dom.remove(),s.indexOf(r)<0&&r.destroy();for(let r of s)r.config.side=="after"?this.getDOMAfter().appendChild(r.dom):this.dom.appendChild(r.dom);this.gutters=s}return i}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>ie.scrollMargins.of(e=>{let n=e.plugin(t);if(!n||n.gutters.length==0||!n.fixed)return null;let i=n.dom.offsetWidth*e.scaleX,s=n.domAfter?n.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Be.LTR?{left:i,right:s}:{right:i,left:s}})});function sp(t){return Array.isArray(t)?t:[t]}function Hc(t,e,n){for(;t.value&&t.from<=n;)t.from==n&&e.push(t.value),t.next()}class e6{constructor(e,n,i){this.gutter=e,this.height=i,this.i=0,this.cursor=Le.iter(e.markers,n.from)}addElement(e,n,i){let{gutter:s}=this,r=(n.top-this.height)/e.scaleY,a=n.height/e.scaleY;if(this.i==s.elements.length){let o=new vg(e,a,r,i);s.elements.push(o),s.dom.appendChild(o.dom)}else s.elements[this.i].update(e,a,r,i);this.height=n.bottom,this.i++}line(e,n,i){let s=[];Hc(this.cursor,s,n.from),i.length&&(s=s.concat(i));let r=this.gutter.config.lineMarker(e,n,s);r&&s.unshift(r);let a=this.gutter;s.length==0&&!a.config.renderEmptyElements||this.addElement(e,n,s)}widget(e,n){let i=this.gutter.config.widgetMarker(e,n.widget,n),s=i?[i]:null;for(let r of e.state.facet(GQ)){let a=r(e,n.widget,n);a&&(s||(s=[])).push(a)}s&&this.addElement(e,n,s)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let n=e.elements.pop();e.dom.removeChild(n.dom),n.destroy()}}}class rp{constructor(e,n){this.view=e,this.config=n,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in n.domEventHandlers)this.dom.addEventListener(i,s=>{let r=s.target,a;if(r!=this.dom&&this.dom.contains(r)){for(;r.parentNode!=this.dom;)r=r.parentNode;let c=r.getBoundingClientRect();a=(c.top+c.bottom)/2}else a=s.clientY;let o=e.lineBlockAtHeight(a-e.documentTop);n.domEventHandlers[i](e,o,s)&&s.preventDefault()});this.markers=sp(n.markers(e)),n.initialSpacer&&(this.spacer=new vg(e,0,0,[n.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let n=this.markers;if(this.markers=sp(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let s=this.config.updateSpacer(this.spacer.markers[0],e);s!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[s])}let i=e.view.viewport;return!Le.eq(this.markers,n,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class vg{constructor(e,n,i,s){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,n,i,s)}update(e,n,i,s){this.height!=n&&(this.height=n,this.dom.style.height=n+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),t6(this.markers,s)||this.setMarkers(e,s)}setMarkers(e,n){let i="cm-gutterElement",s=this.dom.firstChild;for(let r=0,a=0;;){let o=a,c=r<n.length?n[r++]:null,d=!1;if(c){let u=c.elementClass;u&&(i+=" "+u);for(let h=a;h<this.markers.length;h++)if(this.markers[h].compare(c)){o=h,d=!0;break}}else o=this.markers.length;for(;a<o;){let u=this.markers[a++];if(u.toDOM){u.destroy(s);let h=s.nextSibling;s.remove(),s=h}}if(!c)break;c.toDOM&&(d?s=s.nextSibling:this.dom.insertBefore(c.toDOM(e),s)),d&&a++}this.dom.className=i,this.markers=n}destroy(){this.setMarkers(null,[])}}function t6(t,e){if(t.length!=e.length)return!1;for(let n=0;n<t.length;n++)if(!t[n].compare(e[n]))return!1;return!0}const n6=se.define(),i6=se.define(),Wi=se.define({combine(t){return kn(t,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,n){let i=Object.assign({},e);for(let s in n){let r=i[s],a=n[s];i[s]=r?(o,c,d)=>r(o,c,d)||a(o,c,d):a}return i}})}});class Nl extends Xn{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Rl(t,e){return t.state.facet(Wi).formatNumber(e,t.state)}const s6=Ws.compute([Wi],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(n6)},lineMarker(e,n,i){return i.some(s=>s.toDOM)?null:new Nl(Rl(e,e.state.doc.lineAt(n.from).number))},widgetMarker:(e,n,i)=>{for(let s of e.state.facet(i6)){let r=s(e,n,i);if(r)return r}return null},lineMarkerChange:e=>e.startState.facet(Wi)!=e.state.facet(Wi),initialSpacer(e){return new Nl(Rl(e,ap(e.state.doc.lines)))},updateSpacer(e,n){let i=Rl(n.view,ap(n.view.state.doc.lines));return i==e.number?e:new Nl(i)},domEventHandlers:t.facet(Wi).domEventHandlers,side:"before"}));function r6(t={}){return[Wi.of(t),yg(),s6]}function ap(t){let e=9;for(;e<t;)e=e*10+9;return e}const a6=new class extends Xn{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},o6=wa.compute(["selection"],t=>{let e=[],n=-1;for(let i of t.selection.ranges){let s=t.doc.lineAt(i.head).from;s>n&&(n=s,e.push(a6.range(s)))}return Le.of(e)});function l6(){return o6}var _l;const zi=new Re;function Sg(t){return se.define({combine:t?e=>e.concat(t):void 0})}const au=new Re;class nn{constructor(e,n,i=[],s=""){this.data=e,this.name=s,Xe.prototype.hasOwnProperty("tree")||Object.defineProperty(Xe.prototype,"tree",{get(){return Ue(this)}}),this.parser=n,this.extension=[oi.of(this),Xe.languageData.of((r,a,o)=>{let c=op(r,a,o),d=c.type.prop(zi);if(!d)return[];let u=r.facet(d),h=c.type.prop(au);if(h){let f=c.resolve(a-c.from,o);for(let p of h)if(p.test(f,r)){let O=r.facet(p.facet);return p.type=="replace"?O:O.concat(u)}}return u})].concat(i)}isActiveAt(e,n,i=-1){return op(e,n,i).type.prop(zi)==this.data}findRegions(e){let n=e.facet(oi);if((n==null?void 0:n.data)==this.data)return[{from:0,to:e.doc.length}];if(!n||!n.allowsNesting)return[];let i=[],s=(r,a)=>{if(r.prop(zi)==this.data){i.push({from:a,to:a+r.length});return}let o=r.prop(Re.mounted);if(o){if(o.tree.prop(zi)==this.data){if(o.overlay)for(let c of o.overlay)i.push({from:c.from+a,to:c.to+a});else i.push({from:a,to:a+r.length});return}else if(o.overlay){let c=i.length;if(s(o.tree,o.overlay[0].from+a),i.length>c)return}}for(let c=0;c<r.children.length;c++){let d=r.children[c];d instanceof Ke&&s(d,r.positions[c]+a)}};return s(Ue(e),0),i}get allowsNesting(){return!0}}nn.setState=Pe.define();function op(t,e,n){let i=t.facet(oi),s=Ue(t).topNode;if(!i||i.allowsNesting)for(let r=s;r;r=r.enter(e,n,qe.ExcludeBuffers|qe.EnterBracketed))r.type.isTop&&(s=r);return s}class wn extends nn{constructor(e,n,i){super(e,n,[],i),this.parser=n}static define(e){let n=Sg(e.languageData);return new wn(n,e.parser.configure({props:[zi.add(i=>i.isTop?n:void 0)]}),e.name)}configure(e,n){return new wn(this.data,this.parser.configure(e),n||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function Ue(t){let e=t.field(nn.state,!1);return e?e.tree:Ke.empty}class c6{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,n){let i=this.cursorPos-this.string.length;return e<i||n>=this.cursorPos?this.doc.sliceString(e,n):this.string.slice(e-i,n-i)}}let ks=null;class eo{constructor(e,n,i=[],s,r,a,o,c){this.parser=e,this.state=n,this.fragments=i,this.tree=s,this.treeLen=r,this.viewport=a,this.skipped=o,this.scheduleOn=c,this.parse=null,this.tempSkipped=[]}static create(e,n,i){return new eo(e,n,[],Ke.empty,0,i,[],null)}startParse(){return this.parser.startParse(new c6(this.state.doc),this.fragments)}work(e,n){return n!=null&&n>=this.state.doc.length&&(n=void 0),this.tree!=Ke.empty&&this.isDone(n??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let s=Date.now()+e;e=()=>Date.now()>s}for(this.parse||(this.parse=this.startParse()),n!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>n)&&n<this.state.doc.length&&this.parse.stopAt(n);;){let s=this.parse.advance();if(s)if(this.fragments=this.withoutTempSkipped(Mn.addTree(s,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(i=this.parse.stoppedAt)!==null&&i!==void 0?i:this.state.doc.length,this.tree=s,this.parse=null,this.treeLen<(n??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,n;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(n=this.parse.advance()););}),this.treeLen=e,this.tree=n,this.fragments=this.withoutTempSkipped(Mn.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let n=ks;ks=this;try{return e()}finally{ks=n}}withoutTempSkipped(e){for(let n;n=this.tempSkipped.pop();)e=lp(e,n.from,n.to);return e}changes(e,n){let{fragments:i,tree:s,treeLen:r,viewport:a,skipped:o}=this;if(this.takeTree(),!e.empty){let c=[];if(e.iterChangedRanges((d,u,h,f)=>c.push({fromA:d,toA:u,fromB:h,toB:f})),i=Mn.applyChanges(i,c),s=Ke.empty,r=0,a={from:e.mapPos(a.from,-1),to:e.mapPos(a.to,1)},this.skipped.length){o=[];for(let d of this.skipped){let u=e.mapPos(d.from,1),h=e.mapPos(d.to,-1);u<h&&o.push({from:u,to:h})}}}return new eo(this.parser,n,i,s,r,a,o,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let n=this.skipped.length;for(let i=0;i<this.skipped.length;i++){let{from:s,to:r}=this.skipped[i];s<e.to&&r>e.from&&(this.fragments=lp(this.fragments,s,r),this.skipped.splice(i--,1))}return this.skipped.length>=n?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,n){this.skipped.push({from:e,to:n})}static getSkippingParser(e){return new class extends BO{createParse(n,i,s){let r=s[0].from,a=s[s.length-1].to;return{parsedPos:r,advance(){let c=ks;if(c){for(let d of s)c.tempSkipped.push(d);e&&(c.scheduleOn=c.scheduleOn?Promise.all([c.scheduleOn,e]):e)}return this.parsedPos=a,new Ke(kt.none,[],[],a-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let n=this.fragments;return this.treeLen>=e&&n.length&&n[0].from==0&&n[0].to>=e}static get(){return ks}}function lp(t,e,n){return Mn.applyChanges(t,[{fromA:e,toA:n,fromB:e,toB:n}])}class ls{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let n=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),n.viewport.to);return n.work(20,i)||n.takeTree(),new ls(n)}static init(e){let n=Math.min(3e3,e.doc.length),i=eo.create(e.facet(oi).parser,e,{from:0,to:n});return i.work(20,n)||i.takeTree(),new ls(i)}}nn.state=gt.define({create:ls.init,update(t,e){for(let n of e.effects)if(n.is(nn.setState))return n.value;return e.startState.facet(oi)!=e.state.facet(oi)?ls.init(e.state):t.apply(e)}});let wg=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(wg=t=>{let e=-1,n=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(n):cancelIdleCallback(e)});const Ml=typeof navigator<"u"&&(!((_l=navigator.scheduling)===null||_l===void 0)&&_l.isInputPending)?()=>navigator.scheduling.isInputPending():null,d6=st.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let n=this.view.state.field(nn.state).context;(n.updateViewport(e.view.viewport)||this.view.viewport.to>n.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(n)}scheduleWork(){if(this.working)return;let{state:e}=this.view,n=e.field(nn.state);(n.tree!=n.context.tree||!n.context.isDone(e.doc.length))&&(this.working=wg(this.work))}work(e){this.working=null;let n=Date.now();if(this.chunkEnd<n&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=n+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:i,viewport:{to:s}}=this.view,r=i.field(nn.state);if(r.tree==r.context.tree&&r.context.isDone(s+1e5))return;let a=Date.now()+Math.min(this.chunkBudget,100,e&&!Ml?Math.max(25,e.timeRemaining()-5):1e9),o=r.context.treeLen<s&&i.doc.length>s+1e3,c=r.context.work(()=>Ml&&Ml()||Date.now()>a,s+(o?0:1e5));this.chunkBudget-=Date.now()-n,(c||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:nn.setState.of(new ls(r.context))})),this.chunkBudget>0&&!(c&&!o)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(n=>At(this.view.state,n)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),oi=se.define({combine(t){return t.length?t[0]:null},enables:t=>[nn.state,d6,ie.contentAttributes.compute([t],e=>{let n=e.facet(t);return n&&n.name?{"data-language":n.name}:{}})]});class _i{constructor(e,n=[]){this.language=e,this.support=n,this.extension=[e,n]}}const u6=se.define(),Mo=se.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(n=>n!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function to(t){let e=t.facet(Mo);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function ar(t,e){let n="",i=t.tabSize,s=t.facet(Mo)[0];if(s==" "){for(;e>=i;)n+=" ",e-=i;s=" "}for(let r=0;r<e;r++)n+=s;return n}function ou(t,e){t instanceof Xe&&(t=new Eo(t));for(let i of t.state.facet(u6)){let s=i(t,e);if(s!==void 0)return s}let n=Ue(t.state);return n.length>=e?h6(t,n,e):null}class Eo{constructor(e,n={}){this.state=e,this.options=n,this.unit=to(e)}lineAt(e,n=1){let i=this.state.doc.lineAt(e),{simulateBreak:s,simulateDoubleBreak:r}=this.options;return s!=null&&s>=i.from&&s<=i.to?r&&s==e?{text:"",from:e}:(n<0?s<e:s<=e)?{text:i.text.slice(s-i.from),from:s}:{text:i.text.slice(0,s-i.from),from:i.from}:i}textAfterPos(e,n=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:i,from:s}=this.lineAt(e,n);return i.slice(e-s,Math.min(i.length,e+100-s))}column(e,n=1){let{text:i,from:s}=this.lineAt(e,n),r=this.countColumn(i,e-s),a=this.options.overrideIndentation?this.options.overrideIndentation(s):-1;return a>-1&&(r+=a-this.countColumn(i,i.search(/\S|$/))),r}countColumn(e,n=e.length){return fs(e,this.state.tabSize,n)}lineIndent(e,n=1){let{text:i,from:s}=this.lineAt(e,n),r=this.options.overrideIndentation;if(r){let a=r(s);if(a>-1)return a}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const ui=new Re;function h6(t,e,n){let i=e.resolveStack(n),s=e.resolveInner(n,-1).resolve(n,0).enterUnfinishedNodesBefore(n);if(s!=i.node){let r=[];for(let a=s;a&&!(a.from<i.node.from||a.to>i.node.to||a.from==i.node.from&&a.type==i.node.type);a=a.parent)r.push(a);for(let a=r.length-1;a>=0;a--)i={node:r[a],next:i}}return kg(i,t,n)}function kg(t,e,n){for(let i=t;i;i=i.next){let s=p6(i.node);if(s)return s(lu.create(e,n,i))}return 0}function f6(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function p6(t){let e=t.type.prop(ui);if(e)return e;let n=t.firstChild,i;if(n&&(i=n.type.prop(Re.closedBy))){let s=t.lastChild,r=s&&i.indexOf(s.name)>-1;return a=>Qg(a,!0,1,void 0,r&&!f6(a)?s.from:void 0)}return t.parent==null?O6:null}function O6(){return 0}class lu extends Eo{constructor(e,n,i){super(e.state,e.options),this.base=e,this.pos=n,this.context=i}get node(){return this.context.node}static create(e,n,i){return new lu(e,n,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let n=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(n.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(m6(i,e))break;n=this.state.doc.lineAt(i.from)}return this.lineIndent(n.from)}continue(){return kg(this.context.next,this.base,this.pos)}}function m6(t,e){for(let n=e;n;n=n.parent)if(t==n)return!0;return!1}function g6(t){let e=t.node,n=e.childAfter(e.from),i=e.lastChild;if(!n)return null;let s=t.options.simulateBreak,r=t.state.doc.lineAt(n.from),a=s==null||s<=r.from?r.to:Math.min(r.to,s);for(let o=n.to;;){let c=e.childAfter(o);if(!c||c==i)return null;if(!c.type.isSkipped){if(c.from>=a)return null;let d=/^ */.exec(r.text.slice(n.to-r.from))[0].length;return{from:n.from,to:n.to+d}}o=c.to}}function ka({closing:t,align:e=!0,units:n=1}){return i=>Qg(i,e,n,t)}function Qg(t,e,n,i,s){let r=t.textAfter,a=r.match(/^\s*/)[0].length,o=i&&r.slice(a,a+i.length)==i||s==t.pos+a,c=e?g6(t):null;return c?o?t.column(c.from):t.column(c.to):t.baseIndent+(o?0:t.unit*n)}const x6=t=>t.baseIndent;function Ci({except:t,units:e=1}={}){return n=>{let i=t&&t.test(n.textAfter);return n.baseIndent+(i?0:e*n.unit)}}const b6=200;function y6(){return Xe.transactionFilter.of(t=>{if(!t.docChanged||!t.isUserEvent("input.type")&&!t.isUserEvent("input.complete"))return t;let e=t.startState.languageDataAt("indentOnInput",t.startState.selection.main.head);if(!e.length)return t;let n=t.newDoc,{head:i}=t.newSelection.main,s=n.lineAt(i);if(i>s.from+b6)return t;let r=n.sliceString(s.from,i);if(!e.some(d=>d.test(r)))return t;let{state:a}=t,o=-1,c=[];for(let{head:d}of a.selection.ranges){let u=a.doc.lineAt(d);if(u.from==o)continue;o=u.from;let h=ou(a,u.from);if(h==null)continue;let f=/^\s*/.exec(u.text)[0],p=ar(a,h);f!=p&&c.push({from:u.from,to:u.from+f.length,insert:p})}return c.length?[t,{changes:c,sequential:!0}]:t})}const v6=se.define(),hi=new Re;function Io(t){let e=t.firstChild,n=t.lastChild;return e&&e.to<n.from?{from:e.to,to:n.type.isError?t.to:n.from}:null}function S6(t,e,n){let i=Ue(t);if(i.length<n)return null;let s=i.resolveStack(n,1),r=null;for(let a=s;a;a=a.next){let o=a.node;if(o.to<=n||o.from>n)continue;if(r&&o.from<e)break;let c=o.type.prop(hi);if(c&&(o.to<i.length-50||i.length==t.doc.length||!w6(o))){let d=c(o,t);d&&d.from<=n&&d.from>=e&&d.to>n&&(r=d)}}return r}function w6(t){let e=t.lastChild;return e&&e.to==t.to&&e.type.isError}function no(t,e,n){for(let i of t.facet(v6)){let s=i(t,e,n);if(s)return s}return S6(t,e,n)}function Cg(t,e){let n=e.mapPos(t.from,1),i=e.mapPos(t.to,-1);return n>=i?void 0:{from:n,to:i}}const Lo=Pe.define({map:Cg}),yr=Pe.define({map:Cg});function Pg(t){let e=[];for(let{head:n}of t.state.selection.ranges)e.some(i=>i.from<=n&&i.to>=n)||e.push(t.lineBlockAt(n));return e}const Ni=gt.define({create(){return Se.none},update(t,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((n,i)=>t=cp(t,n,i)),t=t.map(e.changes);for(let n of e.effects)if(n.is(Lo)&&!k6(t,n.value.from,n.value.to)){let{preparePlaceholder:i}=e.state.facet(jg),s=i?Se.replace({widget:new A6(i(e.state,n.value))}):dp;t=t.update({add:[s.range(n.value.from,n.value.to)]})}else n.is(yr)&&(t=t.update({filter:(i,s)=>n.value.from!=i||n.value.to!=s,filterFrom:n.value.from,filterTo:n.value.to}));return e.selection&&(t=cp(t,e.selection.main.head)),t},provide:t=>ie.decorations.from(t),toJSON(t,e){let n=[];return t.between(0,e.doc.length,(i,s)=>{n.push(i,s)}),n},fromJSON(t){if(!Array.isArray(t)||t.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let n=0;n<t.length;){let i=t[n++],s=t[n++];if(typeof i!="number"||typeof s!="number")throw new RangeError("Invalid JSON for fold state");e.push(dp.range(i,s))}return Se.set(e,!0)}});function cp(t,e,n=e){let i=!1;return t.between(e,n,(s,r)=>{s<n&&r>e&&(i=!0)}),i?t.update({filterFrom:e,filterTo:n,filter:(s,r)=>s>=n||r<=e}):t}function io(t,e,n){var i;let s=null;return(i=t.field(Ni,!1))===null||i===void 0||i.between(e,n,(r,a)=>{(!s||s.from>r)&&(s={from:r,to:a})}),s}function k6(t,e,n){let i=!1;return t.between(e,e,(s,r)=>{s==e&&r==n&&(i=!0)}),i}function Tg(t,e){return t.field(Ni,!1)?e:e.concat(Pe.appendConfig.of(Ag()))}const Q6=t=>{for(let e of Pg(t)){let n=no(t.state,e.from,e.to);if(n)return t.dispatch({effects:Tg(t.state,[Lo.of(n),$g(t,n)])}),!0}return!1},C6=t=>{if(!t.state.field(Ni,!1))return!1;let e=[];for(let n of Pg(t)){let i=io(t.state,n.from,n.to);i&&e.push(yr.of(i),$g(t,i,!1))}return e.length&&t.dispatch({effects:e}),e.length>0};function $g(t,e,n=!0){let i=t.state.doc.lineAt(e.from).number,s=t.state.doc.lineAt(e.to).number;return ie.announce.of(`${t.state.phrase(n?"Folded lines":"Unfolded lines")} ${i} ${t.state.phrase("to")} ${s}.`)}const P6=t=>{let{state:e}=t,n=[];for(let i=0;i<e.doc.length;){let s=t.lineBlockAt(i),r=no(e,s.from,s.to);r&&n.push(Lo.of(r)),i=(r?t.lineBlockAt(r.to):s).to+1}return n.length&&t.dispatch({effects:Tg(t.state,n)}),!!n.length},T6=t=>{let e=t.state.field(Ni,!1);if(!e||!e.size)return!1;let n=[];return e.between(0,t.state.doc.length,(i,s)=>{n.push(yr.of({from:i,to:s}))}),t.dispatch({effects:n}),!0},$6=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:Q6},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:C6},{key:"Ctrl-Alt-[",run:P6},{key:"Ctrl-Alt-]",run:T6}],j6={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},jg=se.define({combine(t){return kn(t,j6)}});function Ag(t){return[Ni,_6]}function Ng(t,e){let{state:n}=t,i=n.facet(jg),s=a=>{let o=t.lineBlockAt(t.posAtDOM(a.target)),c=io(t.state,o.from,o.to);c&&t.dispatch({effects:yr.of(c)}),a.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(t,s,e);let r=document.createElement("span");return r.textContent=i.placeholderText,r.setAttribute("aria-label",n.phrase("folded code")),r.title=n.phrase("unfold"),r.className="cm-foldPlaceholder",r.onclick=s,r}const dp=Se.replace({widget:new class extends Qn{toDOM(t){return Ng(t,null)}}});class A6 extends Qn{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Ng(e,this.value)}}const N6={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class El extends Xn{constructor(e,n){super(),this.config=e,this.open=n}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let n=document.createElement("span");return n.textContent=this.open?this.config.openText:this.config.closedText,n.title=e.state.phrase(this.open?"Fold line":"Unfold line"),n}}function R6(t={}){let e={...N6,...t},n=new El(e,!0),i=new El(e,!1),s=st.fromClass(class{constructor(a){this.from=a.viewport.from,this.markers=this.buildMarkers(a)}update(a){(a.docChanged||a.viewportChanged||a.startState.facet(oi)!=a.state.facet(oi)||a.startState.field(Ni,!1)!=a.state.field(Ni,!1)||Ue(a.startState)!=Ue(a.state)||e.foldingChanged(a))&&(this.markers=this.buildMarkers(a.view))}buildMarkers(a){let o=new In;for(let c of a.viewportLineBlocks){let d=io(a.state,c.from,c.to)?i:no(a.state,c.from,c.to)?n:null;d&&o.add(c.from,c.from,d)}return o.finish()}}),{domEventHandlers:r}=e;return[s,KQ({class:"cm-foldGutter",markers(a){var o;return((o=a.plugin(s))===null||o===void 0?void 0:o.markers)||Le.empty},initialSpacer(){return new El(e,!1)},domEventHandlers:{...r,click:(a,o,c)=>{if(r.click&&r.click(a,o,c))return!0;let d=io(a.state,o.from,o.to);if(d)return a.dispatch({effects:yr.of(d)}),!0;let u=no(a.state,o.from,o.to);return u?(a.dispatch({effects:Lo.of(u)}),!0):!1}}}),Ag()]}const _6=ie.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Xo{constructor(e,n){this.specs=e;let i;function s(o){let c=si.newName();return(i||(i=Object.create(null)))["."+c]=o,c}const r=typeof n.all=="string"?n.all:n.all?s(n.all):void 0,a=n.scope;this.scope=a instanceof nn?o=>o.prop(zi)==a.data:a?o=>o==a:void 0,this.style=UO(e.map(o=>({tag:o.tag,class:o.class||s(Object.assign({},o,{tag:null}))})),{all:r}).style,this.module=i?new si(i):null,this.themeType=n.themeType}static define(e,n){return new Xo(e,n||{})}}const Kc=se.define(),Rg=se.define({combine(t){return t.length?[t[0]]:null}});function Il(t){let e=t.facet(Kc);return e.length?e:t.facet(Rg)}function M6(t,e){let n=[I6],i;return t instanceof Xo&&(t.module&&n.push(ie.styleModule.of(t.module)),i=t.themeType),e!=null&&e.fallback?n.push(Rg.of(t)):i?n.push(Kc.computeN([ie.darkTheme],s=>s.facet(ie.darkTheme)==(i=="dark")?[t]:[])):n.push(Kc.of(t)),n}class E6{constructor(e){this.markCache=Object.create(null),this.tree=Ue(e.state),this.decorations=this.buildDeco(e,Il(e.state)),this.decoratedTo=e.viewport.to}update(e){let n=Ue(e.state),i=Il(e.state),s=i!=Il(e.startState),{viewport:r}=e.view,a=e.changes.mapPos(this.decoratedTo,1);n.length<r.to&&!s&&n.type==this.tree.type&&a>=r.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=a):(n!=this.tree||e.viewportChanged||s)&&(this.tree=n,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=r.to)}buildDeco(e,n){if(!n||!this.tree.length)return Se.none;let i=new In;for(let{from:s,to:r}of e.visibleRanges)kw(this.tree,n,(a,o,c)=>{i.add(a,o,this.markCache[c]||(this.markCache[c]=Se.mark({class:c})))},s,r);return i.finish()}}const I6=di.high(st.fromClass(E6,{decorations:t=>t.decorations})),L6=Xo.define([{tag:k.meta,color:"#404740"},{tag:k.link,textDecoration:"underline"},{tag:k.heading,textDecoration:"underline",fontWeight:"bold"},{tag:k.emphasis,fontStyle:"italic"},{tag:k.strong,fontWeight:"bold"},{tag:k.strikethrough,textDecoration:"line-through"},{tag:k.keyword,color:"#708"},{tag:[k.atom,k.bool,k.url,k.contentSeparator,k.labelName],color:"#219"},{tag:[k.literal,k.inserted],color:"#164"},{tag:[k.string,k.deleted],color:"#a11"},{tag:[k.regexp,k.escape,k.special(k.string)],color:"#e40"},{tag:k.definition(k.variableName),color:"#00f"},{tag:k.local(k.variableName),color:"#30a"},{tag:[k.typeName,k.namespace],color:"#085"},{tag:k.className,color:"#167"},{tag:[k.special(k.variableName),k.macroName],color:"#256"},{tag:k.definition(k.propertyName),color:"#00c"},{tag:k.comment,color:"#940"},{tag:k.invalid,color:"#f00"}]),X6=ie.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),_g=1e4,Mg="()[]{}",Eg=se.define({combine(t){return kn(t,{afterCursor:!0,brackets:Mg,maxScanDistance:_g,renderMatch:q6})}}),Z6=Se.mark({class:"cm-matchingBracket"}),D6=Se.mark({class:"cm-nonmatchingBracket"});function q6(t){let e=[],n=t.matched?Z6:D6;return e.push(n.range(t.start.from,t.start.to)),t.end&&e.push(n.range(t.end.from,t.end.to)),e}function up(t){let e=[],n=t.facet(Eg);for(let i of t.selection.ranges){if(!i.empty)continue;let s=xn(t,i.head,-1,n)||i.head>0&&xn(t,i.head-1,1,n)||n.afterCursor&&(xn(t,i.head,1,n)||i.head<t.doc.length&&xn(t,i.head+1,-1,n));s&&(e=e.concat(n.renderMatch(s,t)))}return Se.set(e,!0)}const W6=st.fromClass(class{constructor(t){this.paused=!1,this.decorations=up(t.state)}update(t){(t.docChanged||t.selectionSet||this.paused)&&(t.view.composing?(this.decorations=this.decorations.map(t.changes),this.paused=!0):(this.decorations=up(t.state),this.paused=!1))}},{decorations:t=>t.decorations}),z6=[W6,X6];function B6(t={}){return[Eg.of(t),z6]}const cu=new Re;function Jc(t,e,n){let i=t.prop(e<0?Re.openedBy:Re.closedBy);if(i)return i;if(t.name.length==1){let s=n.indexOf(t.name);if(s>-1&&s%2==(e<0?1:0))return[n[s+e]]}return null}function ed(t){let e=t.type.prop(cu);return e?e(t.node):t}function xn(t,e,n,i={}){let s=i.maxScanDistance||_g,r=i.brackets||Mg,a=Ue(t),o=a.resolveInner(e,n);for(let c=o;c;c=c.parent){let d=Jc(c.type,n,r);if(d&&c.from<c.to){let u=ed(c);if(u&&(n>0?e>=u.from&&e<u.to:e>u.from&&e<=u.to))return V6(t,e,n,c,u,d,r)}}return F6(t,e,n,a,o.type,s,r)}function V6(t,e,n,i,s,r,a){let o=i.parent,c={from:s.from,to:s.to},d=0,u=o==null?void 0:o.cursor();if(u&&(n<0?u.childBefore(i.from):u.childAfter(i.to)))do if(n<0?u.to<=i.from:u.from>=i.to){if(d==0&&r.indexOf(u.type.name)>-1&&u.from<u.to){let h=ed(u);return{start:c,end:h?{from:h.from,to:h.to}:void 0,matched:!0}}else if(Jc(u.type,n,a))d++;else if(Jc(u.type,-n,a)){if(d==0){let h=ed(u);return{start:c,end:h&&h.from<h.to?{from:h.from,to:h.to}:void 0,matched:!1}}d--}}while(n<0?u.prevSibling():u.nextSibling());return{start:c,matched:!1}}function F6(t,e,n,i,s,r,a){let o=n<0?t.sliceDoc(e-1,e):t.sliceDoc(e,e+1),c=a.indexOf(o);if(c<0||c%2==0!=n>0)return null;let d={from:n<0?e-1:e,to:n>0?e+1:e},u=t.doc.iterRange(e,n>0?t.doc.length:0),h=0;for(let f=0;!u.next().done&&f<=r;){let p=u.value;n<0&&(f+=p.length);let O=e+f*n;for(let g=n>0?0:p.length-1,x=n>0?p.length:-1;g!=x;g+=n){let b=a.indexOf(p[g]);if(!(b<0||i.resolveInner(O+g,1).type!=s))if(b%2==0==n>0)h++;else{if(h==1)return{start:d,end:{from:O+g,to:O+g+1},matched:b>>1==c>>1};h--}}n>0&&(f+=p.length)}return u.done?{start:d,matched:!1}:null}const U6=Object.create(null),hp=[kt.none],fp=[],pp=Object.create(null),Y6=Object.create(null);for(let[t,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Y6[t]=G6(U6,e);function Ll(t,e){fp.indexOf(t)>-1||(fp.push(t),console.warn(e))}function G6(t,e){let n=[];for(let o of e.split(" ")){let c=[];for(let d of o.split(".")){let u=t[d]||k[d];u?typeof u=="function"?c.length?c=c.map(u):Ll(d,`Modifier ${d} used at start of tag`):c.length?Ll(d,`Tag ${d} used as modifier`):c=Array.isArray(u)?u:[u]:Ll(d,`Unknown highlighting tag ${d}`)}for(let d of c)n.push(d)}if(!n.length)return 0;let i=e.replace(/ /g,"_"),s=i+" "+n.map(o=>o.id),r=pp[s];if(r)return r.id;let a=pp[s]=kt.define({id:hp.length,name:i,props:[ci({[i]:n})]});return hp.push(a),a.id}Be.RTL,Be.LTR;let Xl=null;function Zl(){if(!Xl&&typeof document=="object"&&document.body){let{style:t}=document.body,e=[],n=new Set;for(let i in t)i!="cssText"&&i!="cssFloat"&&typeof t[i]=="string"&&(/[A-Z]/.test(i)&&(i=i.replace(/[A-Z]/g,s=>"-"+s.toLowerCase())),n.has(i)||(e.push(i),n.add(i)));Xl=e.sort().map(i=>({type:"property",label:i,apply:i+": "}))}return Xl||[]}const Op=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(t=>({type:"class",label:t})),mp=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(t=>({type:"keyword",label:t})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(t=>({type:"constant",label:t}))),H6=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(t=>({type:"type",label:t})),K6=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(t=>({type:"keyword",label:t})),Pn=/^(\w[\w-]*|-\w[\w-]*|)$/,J6=/^-(-[\w-]*)?$/;function eC(t,e){var n;if((t.name=="("||t.type.isError)&&(t=t.parent||t),t.name!="ArgList")return!1;let i=(n=t.parent)===null||n===void 0?void 0:n.firstChild;return(i==null?void 0:i.name)!="Callee"?!1:e.sliceString(i.from,i.to)=="var"}const gp=new Xd,tC=["Declaration"];function nC(t){for(let e=t;;){if(e.type.isTop)return e;if(!(e=e.parent))return t}}function Ig(t,e,n){if(e.to-e.from>4096){let i=gp.get(e);if(i)return i;let s=[],r=new Set,a=e.cursor(qe.IncludeAnonymous);if(a.firstChild())do for(let o of Ig(t,a.node,n))r.has(o.label)||(r.add(o.label),s.push(o));while(a.nextSibling());return gp.set(e,s),s}else{let i=[],s=new Set;return e.cursor().iterate(r=>{var a;if(n(r)&&r.matchContext(tC)&&((a=r.node.nextSibling)===null||a===void 0?void 0:a.name)==":"){let o=t.sliceString(r.from,r.to);s.has(o)||(s.add(o),i.push({label:o,type:"variable"}))}}),i}}const iC=t=>e=>{let{state:n,pos:i}=e,s=Ue(n).resolveInner(i,-1),r=s.type.isError&&s.from==s.to-1&&n.doc.sliceString(s.from,s.to)=="-";if(s.name=="PropertyName"||(r||s.name=="TagName")&&/^(Block|Styles)$/.test(s.resolve(s.to).name))return{from:s.from,options:Zl(),validFor:Pn};if(s.name=="ValueName")return{from:s.from,options:mp,validFor:Pn};if(s.name=="PseudoClassName")return{from:s.from,options:Op,validFor:Pn};if(t(s)||(e.explicit||r)&&eC(s,n.doc))return{from:t(s)||r?s.from:i,options:Ig(n.doc,nC(s),t),validFor:J6};if(s.name=="TagName"){for(let{parent:c}=s;c;c=c.parent)if(c.name=="Block")return{from:s.from,options:Zl(),validFor:Pn};return{from:s.from,options:H6,validFor:Pn}}if(s.name=="AtKeyword")return{from:s.from,options:K6,validFor:Pn};if(!e.explicit)return null;let a=s.resolve(i),o=a.childBefore(i);return o&&o.name==":"&&a.name=="PseudoClassSelector"?{from:i,options:Op,validFor:Pn}:o&&o.name==":"&&a.name=="Declaration"||a.name=="ArgList"?{from:i,options:mp,validFor:Pn}:a.name=="Block"||a.name=="Styles"?{from:i,options:Zl(),validFor:Pn}:null},sC=iC(t=>t.name=="VariableName"),so=wn.define({name:"css",parser:Jw.configure({props:[ui.add({Declaration:Ci()}),hi.add({"Block KeyframeList":Io})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function Lg(){return new _i(so,so.data.of({autocomplete:sC}))}const rC=55,aC=1,oC=56,lC=2,cC=57,dC=3,xp=4,uC=5,du=6,Xg=7,Zg=8,Dg=9,qg=10,hC=11,fC=12,pC=13,Dl=58,OC=14,mC=15,bp=59,Wg=21,gC=23,zg=24,xC=25,td=27,Bg=28,bC=29,yC=32,vC=35,SC=37,wC=38,kC=0,QC=1,CC={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},PC={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},yp={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function TC(t){return t==45||t==46||t==58||t>=65&&t<=90||t==95||t>=97&&t<=122||t>=161}let vp=null,Sp=null,wp=0;function nd(t,e){let n=t.pos+e;if(wp==n&&Sp==t)return vp;let i=t.peek(e),s="";for(;TC(i);)s+=String.fromCharCode(i),i=t.peek(++e);return Sp=t,wp=n,vp=s?s.toLowerCase():i==$C||i==jC?void 0:null}const Vg=60,ro=62,uu=47,$C=63,jC=33,AC=45;function kp(t,e){this.name=t,this.parent=e}const NC=[du,qg,Xg,Zg,Dg],RC=new Co({start:null,shift(t,e,n,i){return NC.indexOf(e)>-1?new kp(nd(i,1)||"",t):t},reduce(t,e){return e==Wg&&t?t.parent:t},reuse(t,e,n,i){let s=e.type.id;return s==du||s==SC?new kp(nd(i,1)||"",t):t},strict:!1}),_C=new ot((t,e)=>{if(t.next!=Vg){t.next<0&&e.context&&t.acceptToken(Dl);return}t.advance();let n=t.next==uu;n&&t.advance();let i=nd(t,0);if(i===void 0)return;if(!i)return t.acceptToken(n?mC:OC);let s=e.context?e.context.name:null;if(n){if(i==s)return t.acceptToken(hC);if(s&&PC[s])return t.acceptToken(Dl,-2);if(e.dialectEnabled(kC))return t.acceptToken(fC);for(let r=e.context;r;r=r.parent)if(r.name==i)return;t.acceptToken(pC)}else{if(i=="script")return t.acceptToken(Xg);if(i=="style")return t.acceptToken(Zg);if(i=="textarea")return t.acceptToken(Dg);if(CC.hasOwnProperty(i))return t.acceptToken(qg);s&&yp[s]&&yp[s][i]?t.acceptToken(Dl,-1):t.acceptToken(du)}},{contextual:!0}),MC=new ot(t=>{for(let e=0,n=0;;n++){if(t.next<0){n&&t.acceptToken(bp);break}if(t.next==AC)e++;else if(t.next==ro&&e>=2){n>=3&&t.acceptToken(bp,-2);break}else e=0;t.advance()}});function EC(t){for(;t;t=t.parent)if(t.name=="svg"||t.name=="math")return!0;return!1}const IC=new ot((t,e)=>{if(t.next==uu&&t.peek(1)==ro){let n=e.dialectEnabled(QC)||EC(e.context);t.acceptToken(n?uC:xp,2)}else t.next==ro&&t.acceptToken(xp,1)});function hu(t,e,n){let i=2+t.length;return new ot(s=>{for(let r=0,a=0,o=0;;o++){if(s.next<0){o&&s.acceptToken(e);break}if(r==0&&s.next==Vg||r==1&&s.next==uu||r>=2&&r<i&&s.next==t.charCodeAt(r-2))r++,a++;else if(r==i&&s.next==ro){o>a?s.acceptToken(e,-a):s.acceptToken(n,-(a-2));break}else if((s.next==10||s.next==13)&&o){s.acceptToken(e,1);break}else r=a=0;s.advance()}})}const LC=hu("script",rC,aC),XC=hu("style",oC,lC),ZC=hu("textarea",cC,dC),DC=ci({"Text RawText IncompleteTag IncompleteCloseTag":k.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":k.angleBracket,TagName:k.tagName,"MismatchedCloseTag/TagName":[k.tagName,k.invalid],AttributeName:k.attributeName,"AttributeValue UnquotedAttributeValue":k.attributeValue,Is:k.definitionOperator,"EntityReference CharacterReference":k.character,Comment:k.blockComment,ProcessingInst:k.processingInstruction,DoctypeDecl:k.documentMeta}),qC=Sn.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:RC,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[DC],skippedNodes:[0],repeatNodeCount:9,tokenData:"!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|caPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bXaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UVaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pTaPOv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!dpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({WaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!b`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!b`!dpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYlWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]`aP!b`!dp!_^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebiSlWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXiSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vciSaP!b`!dpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!ahaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WiiSlWd!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QciSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXjSaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[LC,XC,ZC,IC,_C,MC,0,1,2,3,4,5],topRules:{Document:[0,16]},dialects:{noMatch:0,selfClosing:515},tokenPrec:517});function Fg(t,e){let n=Object.create(null);for(let i of t.getChildren(zg)){let s=i.getChild(xC),r=i.getChild(td)||i.getChild(Bg);s&&(n[e.read(s.from,s.to)]=r?r.type.id==td?e.read(r.from+1,r.to-1):e.read(r.from,r.to):"")}return n}function Qp(t,e){let n=t.getChild(gC);return n?e.read(n.from,n.to):" "}function ql(t,e,n){let i;for(let s of n)if(!s.attrs||s.attrs(i||(i=Fg(t.node.parent.firstChild,e))))return{parser:s.parser,bracketed:!0};return null}function Ug(t=[],e=[]){let n=[],i=[],s=[],r=[];for(let o of t)(o.tag=="script"?n:o.tag=="style"?i:o.tag=="textarea"?s:r).push(o);let a=e.length?Object.create(null):null;for(let o of e)(a[o.name]||(a[o.name]=[])).push(o);return sw((o,c)=>{let d=o.type.id;if(d==bC)return ql(o,c,n);if(d==yC)return ql(o,c,i);if(d==vC)return ql(o,c,s);if(d==Wg&&r.length){let u=o.node,h=u.firstChild,f=h&&Qp(h,c),p;if(f){for(let O of r)if(O.tag==f&&(!O.attrs||O.attrs(p||(p=Fg(h,c))))){let g=u.lastChild,x=g.type.id==wC?g.from:u.to;if(x>h.to)return{parser:O.parser,overlay:[{from:h.to,to:x}]}}}}if(a&&d==zg){let u=o.node,h;if(h=u.firstChild){let f=a[c.read(h.from,h.to)];if(f)for(let p of f){if(p.tagName&&p.tagName!=Qp(u.parent,c))continue;let O=u.lastChild;if(O.type.id==td){let g=O.from+1,x=O.lastChild,b=O.to-(x&&x.isError?0:1);if(b>g)return{parser:p.parser,overlay:[{from:g,to:b}],bracketed:!0}}else if(O.type.id==Bg)return{parser:p.parser,overlay:[{from:O.from,to:O.to}]}}}}return null})}const WC=316,zC=317,Cp=1,BC=2,VC=3,FC=4,UC=318,YC=320,GC=321,HC=5,KC=6,JC=0,id=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Yg=125,e7=59,sd=47,t7=42,n7=43,i7=45,s7=60,r7=44,a7=63,o7=46,l7=91,c7=new Co({start:!1,shift(t,e){return e==HC||e==KC||e==YC?t:e==GC},strict:!1}),d7=new ot((t,e)=>{let{next:n}=t;(n==Yg||n==-1||e.context)&&t.acceptToken(UC)},{contextual:!0,fallback:!0}),u7=new ot((t,e)=>{let{next:n}=t,i;id.indexOf(n)>-1||n==sd&&((i=t.peek(1))==sd||i==t7)||n!=Yg&&n!=e7&&n!=-1&&!e.context&&t.acceptToken(WC)},{contextual:!0}),h7=new ot((t,e)=>{t.next==l7&&!e.context&&t.acceptToken(zC)},{contextual:!0}),f7=new ot((t,e)=>{let{next:n}=t;if(n==n7||n==i7){if(t.advance(),n==t.next){t.advance();let i=!e.context&&e.canShift(Cp);t.acceptToken(i?Cp:BC)}}else n==a7&&t.peek(1)==o7&&(t.advance(),t.advance(),(t.next<48||t.next>57)&&t.acceptToken(VC))},{contextual:!0});function Wl(t,e){return t>=65&&t<=90||t>=97&&t<=122||t==95||t>=192||!e&&t>=48&&t<=57}const p7=new ot((t,e)=>{if(t.next!=s7||!e.dialectEnabled(JC)||(t.advance(),t.next==sd))return;let n=0;for(;id.indexOf(t.next)>-1;)t.advance(),n++;if(Wl(t.next,!0)){for(t.advance(),n++;Wl(t.next,!1);)t.advance(),n++;for(;id.indexOf(t.next)>-1;)t.advance(),n++;if(t.next==r7)return;for(let i=0;;i++){if(i==7){if(!Wl(t.next,!0))return;break}if(t.next!="extends".charCodeAt(i))break;t.advance(),n++}}t.acceptToken(FC,-n)}),O7=ci({"get set async static":k.modifier,"for while do if else switch try catch finally return throw break continue default case defer":k.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":k.operatorKeyword,"let var const using function class extends":k.definitionKeyword,"import export from":k.moduleKeyword,"with debugger new":k.keyword,TemplateString:k.special(k.string),super:k.atom,BooleanLiteral:k.bool,this:k.self,null:k.null,Star:k.modifier,VariableName:k.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":k.function(k.variableName),VariableDefinition:k.definition(k.variableName),Label:k.labelName,PropertyName:k.propertyName,PrivatePropertyName:k.special(k.propertyName),"CallExpression/MemberExpression/PropertyName":k.function(k.propertyName),"FunctionDeclaration/VariableDefinition":k.function(k.definition(k.variableName)),"ClassDeclaration/VariableDefinition":k.definition(k.className),"NewExpression/VariableName":k.className,PropertyDefinition:k.definition(k.propertyName),PrivatePropertyDefinition:k.definition(k.special(k.propertyName)),UpdateOp:k.updateOperator,"LineComment Hashbang":k.lineComment,BlockComment:k.blockComment,Number:k.number,String:k.string,Escape:k.escape,ArithOp:k.arithmeticOperator,LogicOp:k.logicOperator,BitOp:k.bitwiseOperator,CompareOp:k.compareOperator,RegExp:k.regexp,Equals:k.definitionOperator,Arrow:k.function(k.punctuation),": Spread":k.punctuation,"( )":k.paren,"[ ]":k.squareBracket,"{ }":k.brace,"InterpolationStart InterpolationEnd":k.special(k.brace),".":k.derefOperator,", ;":k.separator,"@":k.meta,TypeName:k.typeName,TypeDefinition:k.definition(k.typeName),"type enum interface implements namespace module declare":k.definitionKeyword,"abstract global Privacy readonly override":k.modifier,"is keyof unique infer asserts":k.operatorKeyword,JSXAttributeValue:k.attributeValue,JSXText:k.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":k.angleBracket,"JSXIdentifier JSXNameSpacedName":k.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":k.attributeName,"JSXBuiltin/JSXIdentifier":k.standard(k.tagName)}),m7={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546},g7={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},x7={__proto__:null,"<":193},b7=Sn.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-E<j-E<jO9kQ`O,5=_O!$rQ`O,5=_O!$wQlO,5;ZO!&zQMhO'#EkO!(eQ`O,5;ZO!(jQlO'#DyO!(tQpO,5;dO!(|QpO,5;dO%[QlO,5;dOOQ['#FT'#FTOOQ['#FV'#FVO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eOOQ['#FZ'#FZO!)[QlO,5;tOOQ!0Lf,5;y,5;yOOQ!0Lf,5;z,5;zOOQ!0Lf,5;|,5;|O%[QlO'#IpO!+_Q!0LrO,5<iO%[QlO,5;eO!&zQMhO,5;eO!+|QMhO,5;eO!-nQMhO'#E^O%[QlO,5;wOOQ!0Lf,5;{,5;{O!-uQ,UO'#FjO!.rQ,UO'#KXO!.^Q,UO'#KXO!.yQ,UO'#KXOOQO'#KX'#KXO!/_Q,UO,5<SOOOW,5<`,5<`O!/pQlO'#FvOOOW'#Io'#IoO7VO7dO,5<QO!/wQ,UO'#FxOOQ!0Lf,5<Q,5<QO!0hQ$IUO'#CyOOQ!0Lh'#C}'#C}O!0{O#@ItO'#DRO!1iQMjO,5<eO!1pQ`O,5<hO!3YQ(CWO'#GXO!3jQ`O'#GYO!3oQ`O'#GYO!5_Q(CWO'#G^O!6dQpO'#GbOOQO'#Gn'#GnO!,TQMhO'#GmOOQO'#Gp'#GpO!,TQMhO'#GoO!7VQ$IUO'#JlOOQ!0Lh'#Jl'#JlO!7aQ`O'#JkO!7oQ`O'#JjO!7wQ`O'#CuOOQ!0Lh'#C{'#C{O!8YQ`O'#C}OOQ!0Lh'#DV'#DVOOQ!0Lh'#DX'#DXO!8_Q`O,5<eO1SQ`O'#DZO!,TQMhO'#GPO!,TQMhO'#GRO!8gQ`O'#GTO!8lQ`O'#GUO!3oQ`O'#G[O!,TQMhO'#GaO<]Q`O'#JkO!8qQ`O'#EqO!9`Q`O,5<gOOQ!0Lb'#Cr'#CrO!9hQ`O'#ErO!:bQpO'#EsOOQ!0Lb'#KR'#KRO!:iQ!0LrO'#KaO9uQ!0LrO,5=cO`QlO,5>tOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!<hQ!0MxO,5:bO!:]QpO,5:`O!?RQ!0MxO,5:jO%[QlO,5:jO!AiQ!0MxO,5:lOOQO,5@z,5@zO!BYQMhO,5=_O!BhQ!0LrO'#JiO9`Q`O'#JiO!ByQ!0LrO,59ZO!CUQpO,59ZO!C^QMhO,59ZO:dQMhO,59ZO!CiQ`O,5;ZO!CqQ`O'#HbO!DVQ`O'#KdO%[QlO,5;}O!:]QpO,5<PO!D_Q`O,5=zO!DdQ`O,5=zO!DiQ`O,5=zO!DwQ`O,5=zO9uQ!0LrO,5=zO<]Q`O,5=jOOQO'#Cy'#CyO!EOQpO,5=gO!EWQMhO,5=hO!EcQ`O,5=jO!EhQ!bO,5=mO!EpQ`O'#K`O?YQ`O'#HWO9kQ`O'#HYO!EuQ`O'#HYO:dQMhO'#H[O!EzQ`O'#H[OOQ[,5=p,5=pO!FPQ`O'#H]O!FbQ`O'#CoO!FgQ`O,59PO!FqQ`O,59PO!HvQlO,59POOQ[,59P,59PO!IWQ!0LrO,59PO%[QlO,59PO!KcQlO'#HeOOQ['#Hf'#HfOOQ['#Hg'#HgO`QlO,5=}O!KyQ`O,5=}O`QlO,5>TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-E<f-E<fO#)kQ!0MSO,5;RODWQpO,5:rO#)uQpO,5:rODWQpO,5;RO!ByQ!0LrO,5:rOOQ!0Lb'#Ej'#EjOOQO,5;R,5;RO%[QlO,5;RO#*SQ!0LrO,5;RO#*_Q!0LrO,5;RO!CUQpO,5:rOOQO,5;X,5;XO#*mQ!0LrO,5;RPOOO'#I^'#I^P#+RO&2DjO,58|POOO,58|,58|OOOO-E<^-E<^OOQ!0Lh1G.p1G.pOOOO-E<_-E<_OOOO,59},59}O#+^Q!bO,59}OOOO-E<a-E<aOOQ!0Lf1G/g1G/gO#+cQ!fO,5?OO+}QlO,5?OOOQO,5?U,5?UO#+mQlO'#IdOOQO-E<b-E<bO#+zQ`O,5@`O#,SQ!fO,5@`O#,ZQ`O,5@nOOQ!0Lf1G/m1G/mO%[QlO,5@oO#,cQ`O'#IjOOQO-E<h-E<hO#,ZQ`O,5@nOOQ!0Lb1G0x1G0xOOQ!0Ln1G/x1G/xOOQ!0Ln1G0Y1G0YO%[QlO,5@lO#,wQ!0LrO,5@lO#-YQ!0LrO,5@lO#-aQ`O,5@kO9eQ`O,5@kO#-iQ`O,5@kO#-wQ`O'#ImO#-aQ`O,5@kOOQ!0Lb1G0w1G0wO!(tQpO,5:uO!)PQpO,5:uOOQS,5:w,5:wO#.iQdO,5:wO#.qQMhO1G2yO9kQ`O1G2yOOQ!0Lf1G0u1G0uO#/PQ!0MxO1G0uO#0UQ!0MvO,5;VOOQ!0Lh'#GW'#GWO#0rQ!0MzO'#JlO!$wQlO1G0uO#2}Q!fO'#JwO%[QlO'#JwO#3XQ`O,5:eOOQ!0Lh'#D_'#D_OOQ!0Lf1G1O1G1OO%[QlO1G1OOOQ!0Lf1G1f1G1fO#3^Q`O1G1OO#5rQ!0MxO1G1PO#5yQ!0MxO1G1PO#8aQ!0MxO1G1PO#8hQ!0MxO1G1PO#;OQ!0MxO1G1PO#=fQ!0MxO1G1PO#=mQ!0MxO1G1PO#=tQ!0MxO1G1PO#@[Q!0MxO1G1PO#@cQ!0MxO1G1PO#BpQ?MtO'#CiO#DkQ?MtO1G1`O#DrQ?MtO'#JsO#EVQ!0MxO,5?[OOQ!0Lb-E<n-E<nO#GdQ!0MxO1G1PO#HaQ!0MzO1G1POOQ!0Lf1G1P1G1PO#IdQMjO'#J|O#InQ`O,5:xO#IsQ!0MxO1G1cO#JgQ,UO,5<WO#JoQ,UO,5<XO#JwQ,UO'#FoO#K`Q`O'#FnOOQO'#KY'#KYOOQO'#In'#InO#KeQ,UO1G1nOOQ!0Lf1G1n1G1nOOOW1G1y1G1yO#KvQ?MtO'#JrO#LQQ`O,5<bO!)[QlO,5<bOOOW-E<m-E<mOOQ!0Lf1G1l1G1lO#LVQpO'#KXOOQ!0Lf,5<d,5<dO#L_QpO,5<dO#LdQMhO'#DTOOOO'#Ib'#IbO#LkO#@ItO,59mOOQ!0Lh,59m,59mO%[QlO1G2PO!8lQ`O'#IrO#LvQ`O,5<zOOQ!0Lh,5<w,5<wO!,TQMhO'#IuO#MdQMjO,5=XO!,TQMhO'#IwO#NVQMjO,5=ZO!&zQMhO,5=]OOQO1G2S1G2SO#NaQ!dO'#CrO#NtQ(CWO'#ErO$ |QpO'#GbO$!dQ!dO,5<sO$!kQ`O'#K[O9eQ`O'#K[O$!yQ`O,5<uO$#aQ!dO'#C{O!,TQMhO,5<tO$#kQ`O'#GZO$$PQ`O,5<tO$$UQ!dO'#GWO$$cQ!dO'#K]O$$mQ`O'#K]O!&zQMhO'#K]O$$rQ`O,5<xO$$wQlO'#JvO$%RQpO'#GcO#$`QpO'#GcO$%dQ`O'#GgO!3oQ`O'#GkO$%iQ!0LrO'#ItO$%tQpO,5<|OOQ!0Lp,5<|,5<|O$%{QpO'#GcO$&YQpO'#GdO$&kQpO'#GdO$&pQMjO,5=XO$'QQMjO,5=ZOOQ!0Lh,5=^,5=^O!,TQMhO,5@VO!,TQMhO,5@VO$'bQ`O'#IyO$'vQ`O,5@UO$(OQ`O,59aOOQ!0Lh,59i,59iO$(TQ`O,5@VO$)TQ$IYO,59uOOQ!0Lh'#Jp'#JpO$)vQMjO,5<kO$*iQMjO,5<mO@zQ`O,5<oOOQ!0Lh,5<p,5<pO$*sQ`O,5<vO$*xQMjO,5<{O$+YQ`O'#KPO!$wQlO1G2RO$+_Q`O1G2RO9eQ`O'#KSO9eQ`O'#EtO%[QlO'#EtO9eQ`O'#I{O$+dQ!0LrO,5@{OOQ[1G2}1G2}OOQ[1G4`1G4`OOQ!0Lf1G/|1G/|OOQ!0Lf1G/z1G/zO$-fQ!0MxO1G0UOOQ[1G2y1G2yO!&zQMhO1G2yO%[QlO1G2yO#.tQ`O1G2yO$/jQMhO'#EkOOQ!0Lb,5@T,5@TO$/wQ!0LrO,5@TOOQ[1G.u1G.uO!ByQ!0LrO1G.uO!CUQpO1G.uO!C^QMhO1G.uO$0YQ`O1G0uO$0_Q`O'#CiO$0jQ`O'#KeO$0rQ`O,5=|O$0wQ`O'#KeO$0|Q`O'#KeO$1[Q`O'#JRO$1jQ`O,5AOO$1rQ!fO1G1iOOQ!0Lf1G1k1G1kO9kQ`O1G3fO@zQ`O1G3fO$1yQ`O1G3fO$2OQ`O1G3fO!DiQ`O1G3fO9uQ!0LrO1G3fOOQ[1G3f1G3fO!EcQ`O1G3UO!&zQMhO1G3RO$2TQ`O1G3ROOQ[1G3S1G3SO!&zQMhO1G3SO$2YQ`O1G3SO$2bQpO'#HQOOQ[1G3U1G3UO!6_QpO'#I}O!EhQ!bO1G3XOOQ[1G3X1G3XOOQ[,5=r,5=rO$2jQMhO,5=tO9kQ`O,5=tO$%dQ`O,5=vO9`Q`O,5=vO!CUQpO,5=vO!C^QMhO,5=vO:dQMhO,5=vO$2xQ`O'#KcO$3TQ`O,5=wOOQ[1G.k1G.kO$3YQ!0LrO1G.kO@zQ`O1G.kO$3eQ`O1G.kO9uQ!0LrO1G.kO$5mQ!fO,5AQO$5zQ`O,5AQO9eQ`O,5AQO$6VQlO,5>PO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5<iO$BOQ!fO1G4jOOQO1G4p1G4pO%[QlO,5?OO$BYQ`O1G5zO$BbQ`O1G6YO$BjQ!fO1G6ZO9eQ`O,5?UO$BtQ!0MxO1G6WO%[QlO1G6WO$CUQ!0LrO1G6WO$CgQ`O1G6VO$CgQ`O1G6VO9eQ`O1G6VO$CoQ`O,5?XO9eQ`O,5?XOOQO,5?X,5?XO$DTQ`O,5?XO$+YQ`O,5?XOOQO-E<k-E<kOOQS1G0a1G0aOOQS1G0c1G0cO#.lQ`O1G0cOOQ[7+(e7+(eO!&zQMhO7+(eO%[QlO7+(eO$DcQ`O7+(eO$DnQMhO7+(eO$D|Q!0MzO,5=XO$GXQ!0MzO,5=ZO$IdQ!0MzO,5=XO$KuQ!0MzO,5=ZO$NWQ!0MzO,59uO%!]Q!0MzO,5<kO%$hQ!0MzO,5<mO%&sQ!0MzO,5<{OOQ!0Lf7+&a7+&aO%)UQ!0MxO7+&aO%)xQlO'#IfO%*VQ`O,5@cO%*_Q!fO,5@cOOQ!0Lf1G0P1G0PO%*iQ`O7+&jOOQ!0Lf7+&j7+&jO%*nQ?MtO,5:fO%[QlO7+&zO%*xQ?MtO,5:bO%+VQ?MtO,5:jO%+aQ?MtO,5:lO%+kQMhO'#IiO%+uQ`O,5@hOOQ!0Lh1G0d1G0dOOQO1G1r1G1rOOQO1G1s1G1sO%+}Q!jO,5<ZO!)[QlO,5<YOOQO-E<l-E<lOOQ!0Lf7+'Y7+'YOOOW7+'e7+'eOOOW1G1|1G1|O%,YQ`O1G1|OOQ!0Lf1G2O1G2OOOOO,59o,59oO%,_Q!dO,59oOOOO-E<`-E<`OOQ!0Lh1G/X1G/XO%,fQ!0MxO7+'kOOQ!0Lh,5?^,5?^O%-YQMhO1G2fP%-aQ`O'#IrPOQ!0Lh-E<p-E<pO%-}QMjO,5?aOOQ!0Lh-E<s-E<sO%.pQMjO,5?cOOQ!0Lh-E<u-E<uO%.zQ!dO1G2wO%/RQ!dO'#CrO%/iQMhO'#KSO$$wQlO'#JvOOQ!0Lh1G2_1G2_O%/sQ`O'#IqO%0[Q`O,5@vO%0[Q`O,5@vO%0dQ`O,5@vO%0oQ`O,5@vOOQO1G2a1G2aO%0}QMjO1G2`O$+YQ`O'#K[O!,TQMhO1G2`O%1_Q(CWO'#IsO%1lQ`O,5@wO!&zQMhO,5@wO%1tQ!dO,5@wOOQ!0Lh1G2d1G2dO%4UQ!fO'#CiO%4`Q`O,5=POOQ!0Lb,5<},5<}O%4hQpO,5<}OOQ!0Lb,5=O,5=OOCwQ`O,5<}O%4sQpO,5<}OOQ!0Lb,5=R,5=RO$+YQ`O,5=VOOQO,5?`,5?`OOQO-E<r-E<rOOQ!0Lp1G2h1G2hO#$`QpO,5<}O$$wQlO,5=PO%5RQ`O,5=OO%5^QpO,5=OO!,TQMhO'#IuO%6WQMjO1G2sO!,TQMhO'#IwO%6yQMjO1G2uO%7TQMjO1G5qO%7_QMjO1G5qOOQO,5?e,5?eOOQO-E<w-E<wOOQO1G.{1G.{O!,TQMhO1G5qO!,TQMhO1G5qO!:]QpO,59wO%[QlO,59wOOQ!0Lh,5<j,5<jO%7lQ`O1G2ZO!,TQMhO1G2bO%7qQ!0MxO7+'mOOQ!0Lf7+'m7+'mO!$wQlO7+'mO%8eQ`O,5;`OOQ!0Lb,5?g,5?gOOQ!0Lb-E<y-E<yO%8jQ!dO'#K^O#(ZQ`O7+(eO4UQ!fO7+(eO$DfQ`O7+(eO%8tQ!0MvO'#CiO%9XQ!0MvO,5=SO%9lQ`O,5=SO%9tQ`O,5=SOOQ!0Lb1G5o1G5oOOQ[7+$a7+$aO!ByQ!0LrO7+$aO!CUQpO7+$aO!$wQlO7+&aO%9yQ`O'#JQO%:bQ`O,5APOOQO1G3h1G3hO9kQ`O,5APO%:bQ`O,5APO%:jQ`O,5APOOQO,5?m,5?mOOQO-E=P-E=POOQ!0Lf7+'T7+'TO%:oQ`O7+)QO9uQ!0LrO7+)QO9kQ`O7+)QO@zQ`O7+)QO%:tQ`O7+)QOOQ[7+)Q7+)QOOQ[7+(p7+(pO%:yQ!0MvO7+(mO!&zQMhO7+(mO!E^Q`O7+(nOOQ[7+(n7+(nO!&zQMhO7+(nO%;TQ`O'#KbO%;`Q`O,5=lOOQO,5?i,5?iOOQO-E<{-E<{OOQ[7+(s7+(sO%<rQpO'#HZOOQ[1G3`1G3`O!&zQMhO1G3`O%[QlO1G3`O%<yQ`O1G3`O%=UQMhO1G3`O9uQ!0LrO1G3bO$%dQ`O1G3bO9`Q`O1G3bO!CUQpO1G3bO!C^QMhO1G3bO%=dQ`O'#JPO%=xQ`O,5@}O%>QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-E<c-E<cOOQO,5?V,5?VOOQO-E<i-E<iO!CUQpO1G/sOOQO-E<e-E<eOOQ!0Ln1G0]1G0]OOQ!0Lf7+%u7+%uO#(ZQ`O7+%uOOQ!0Lf7+&`7+&`O?YQ`O7+&`O!CUQpO7+&`OOQO7+%x7+%xO$AlQ!0MxO7+&XOOQO7+&X7+&XO%[QlO7+&XO%@nQ!0LrO7+&XO!ByQ!0LrO7+%xO!CUQpO7+%xO%@yQ!0LrO7+&XO%AXQ!0MxO7++rO%[QlO7++rO%AiQ`O7++qO%AiQ`O7++qOOQO1G4s1G4sO9eQ`O1G4sO%AqQ`O1G4sOOQS7+%}7+%}O#(ZQ`O<<LPO4UQ!fO<<LPO%BPQ`O<<LPOOQ[<<LP<<LPO!&zQMhO<<LPO%[QlO<<LPO%BXQ`O<<LPO%BdQ!0MzO,5?aO%DoQ!0MzO,5?cO%FzQ!0MzO1G2`O%I]Q!0MzO1G2sO%KhQ!0MzO1G2uO%MsQ!fO,5?QO%[QlO,5?QOOQO-E<d-E<dO%M}Q`O1G5}OOQ!0Lf<<JU<<JUO%NVQ?MtO1G0uO&!^Q?MtO1G1PO&!eQ?MtO1G1PO&$fQ?MtO1G1PO&$mQ?MtO1G1PO&&nQ?MtO1G1PO&(oQ?MtO1G1PO&(vQ?MtO1G1PO&(}Q?MtO1G1PO&+OQ?MtO1G1PO&+VQ?MtO1G1PO&+^Q!0MxO<<JfO&-UQ?MtO1G1PO&.RQ?MvO1G1PO&/UQ?MvO'#JlO&1[Q?MtO1G1cO&1iQ?MtO1G0UO&1sQMjO,5?TOOQO-E<g-E<gO!)[QlO'#FqOOQO'#KZ'#KZOOQO1G1u1G1uO&1}Q`O1G1tO&2SQ?MtO,5?[OOOW7+'h7+'hOOOO1G/Z1G/ZO&2^Q!dO1G4xOOQ!0Lh7+(Q7+(QP!&zQMhO,5?^O!,TQMhO7+(cO&2eQ`O,5?]O9eQ`O,5?]O$+YQ`O,5?]OOQO-E<o-E<oO&2sQ`O1G6bO&2sQ`O1G6bO&2{Q`O1G6bO&3WQMjO7+'zO&3hQ!dO,5?_O&3rQ`O,5?_O!&zQMhO,5?_OOQO-E<q-E<qO&3wQ!dO1G6cO&4RQ`O1G6cO&4ZQ`O1G2kO!&zQMhO1G2kOOQ!0Lb1G2i1G2iOOQ!0Lb1G2j1G2jO%4hQpO1G2iO!CUQpO1G2iOCwQ`O1G2iOOQ!0Lb1G2q1G2qO&4`QpO1G2iO&4nQ`O1G2kO$+YQ`O1G2jOCwQ`O1G2jO$$wQlO1G2kO&4vQ`O1G2jO&5jQMjO,5?aOOQ!0Lh-E<t-E<tO&6]QMjO,5?cOOQ!0Lh-E<v-E<vO!,TQMhO7++]O&6gQMjO7++]O&6qQMjO7++]OOQ!0Lh1G/c1G/cO&7OQ`O1G/cOOQ!0Lh7+'u7+'uO&7TQMjO7+'|O&7eQ!0MxO<<KXOOQ!0Lf<<KX<<KXO&8XQ`O1G0zO!&zQMhO'#IzO&8^Q`O,5@xO&:`Q!fO<<LPO!&zQMhO1G2nO&:gQ!0LrO1G2nOOQ[<<G{<<G{O!ByQ!0LrO<<G{O&:xQ!0MxO<<I{OOQ!0Lf<<I{<<I{OOQO,5?l,5?lO&;lQ`O,5?lO&;qQ`O,5?lOOQO-E=O-E=OO&<PQ`O1G6kO&<PQ`O1G6kO9kQ`O1G6kO@zQ`O<<LlOOQ[<<Ll<<LlO&<XQ`O<<LlO9uQ!0LrO<<LlO9kQ`O<<LlOOQ[<<LX<<LXO%:yQ!0MvO<<LXOOQ[<<LY<<LYO!E^Q`O<<LYO&<^QpO'#I|O&<iQ`O,5@|O!)[QlO,5@|OOQ[1G3W1G3WOOQO'#JO'#JOO9uQ!0LrO'#JOO&<qQpO,5=uOOQ[,5=u,5=uO&<xQpO'#EgO&=PQpO'#GeO&=UQ`O7+(zO&=ZQ`O7+(zOOQ[7+(z7+(zO!&zQMhO7+(zO%[QlO7+(zO&=cQ`O7+(zOOQ[7+(|7+(|O9uQ!0LrO7+(|O$%dQ`O7+(|O9`Q`O7+(|O!CUQpO7+(|O&=nQ`O,5?kOOQO-E<}-E<}OOQO'#H^'#H^O&=yQ`O1G6iO9uQ!0LrO<<GqOOQ[<<Gq<<GqO@zQ`O<<GqO&>RQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<<Ly<<LyOOQ[<<L{<<L{OOQ[-E=Q-E=QOOQ[1G3z1G3zO&>nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<<Ia<<IaOOQ!0Lf<<Iz<<IzO?YQ`O<<IzOOQO<<Is<<IsO$AlQ!0MxO<<IsO%[QlO<<IsOOQO<<Id<<IdO!ByQ!0LrO<<IdO&?SQ!0LrO<<IsO&?_Q!0MxO<= ^O&?oQ`O<= ]OOQO7+*_7+*_O9eQ`O7+*_OOQ[ANAkANAkO&?wQ!fOANAkO!&zQMhOANAkO#(ZQ`OANAkO4UQ!fOANAkO&@OQ`OANAkO%[QlOANAkO&@WQ!0MzO7+'zO&BiQ!0MzO,5?aO&DtQ!0MzO,5?cO&GPQ!0MzO7+'|O&IbQ!fO1G4lO&IlQ?MtO7+&aO&KpQ?MvO,5=XO&MwQ?MvO,5=ZO&NXQ?MvO,5=XO&NiQ?MvO,5=ZO&NyQ?MvO,59uO'#PQ?MvO,5<kO'%SQ?MvO,5<mO''hQ?MvO,5<{O')^Q?MtO7+'kO')kQ?MtO7+'mO')xQ`O,5<]OOQO7+'`7+'`OOQ!0Lh7+*d7+*dO')}QMjO<<K}OOQO1G4w1G4wO'*UQ`O1G4wO'*aQ`O1G4wO'*oQ`O7++|O'*oQ`O7++|O!&zQMhO1G4yO'*wQ!dO1G4yO'+RQ`O7++}O'+ZQ`O7+(VO'+fQ!dO7+(VOOQ!0Lb7+(T7+(TOOQ!0Lb7+(U7+(UO!CUQpO7+(TOCwQ`O7+(TO'+pQ`O7+(VO!&zQMhO7+(VO$+YQ`O7+(UO'+uQ`O7+(VOCwQ`O7+(UO'+}QMjO<<NwO!,TQMhO<<NwOOQ!0Lh7+$}7+$}O',XQ!dO,5?fOOQO-E<x-E<xO',cQ!0MvO7+(YO!&zQMhO7+(YOOQ[AN=gAN=gO9kQ`O1G5WOOQO1G5W1G5WO',sQ`O1G5WO',xQ`O7+,VO',xQ`O7+,VO9uQ!0LrOANBWO@zQ`OANBWOOQ[ANBWANBWO'-QQ`OANBWOOQ[ANAsANAsOOQ[ANAtANAtO'-VQ`O,5?hOOQO-E<z-E<zO'-bQ?MtO1G6hOOQO,5?j,5?jOOQO-E<|-E<|OOQ[1G3a1G3aO'-lQ`O,5=POOQ[<<Lf<<LfO!&zQMhO<<LfO&=UQ`O<<LfO'-qQ`O<<LfO%[QlO<<LfOOQ[<<Lh<<LhO9uQ!0LrO<<LhO$%dQ`O<<LhO9`Q`O<<LhO'-yQpO1G5VO'.UQ`O7+,TOOQ[AN=]AN=]O9uQ!0LrOAN=]OOQ[<= r<= rOOQ[<= s<= sO'.^Q`O<= rO'.cQ`O<= sOOQ[<<Lq<<LqO'.hQ`O<<LqO'.mQlO<<LqOOQ[1G3{1G3{O?YQ`O7+)lO'.tQ`O<<JQO'/PQ?MtO<<JQOOQO<<Hy<<HyOOQ!0LfAN?fAN?fOOQOAN?_AN?_O$AlQ!0MxOAN?_OOQOAN?OAN?OO%[QlOAN?_OOQO<<My<<MyOOQ[G27VG27VO!&zQMhOG27VO#(ZQ`OG27VO'/ZQ!fOG27VO4UQ!fOG27VO'/bQ`OG27VO'/jQ?MtO<<JfO'/wQ?MvO1G2`O'1mQ?MvO,5?aO'3pQ?MvO,5?cO'5sQ?MvO1G2sO'7vQ?MvO1G2uO'9yQ?MtO<<KXO':WQ?MtO<<I{OOQO1G1w1G1wO!,TQMhOANAiOOQO7+*c7+*cO':eQ`O7+*cO':pQ`O<= hO':xQ!dO7+*eOOQ!0Lb<<Kq<<KqO$+YQ`O<<KqOCwQ`O<<KqO';SQ`O<<KqO!&zQMhO<<KqOOQ!0Lb<<Ko<<KoO!CUQpO<<KoO';_Q!dO<<KqOOQ!0Lb<<Kp<<KpO';iQ`O<<KqO!&zQMhO<<KqO$+YQ`O<<KpO';nQMjOANDcO';xQ!0MvO<<KtOOQO7+*r7+*rO9kQ`O7+*rO'<YQ`O<= qOOQ[G27rG27rO9uQ!0LrOG27rO@zQ`OG27rO!)[QlO1G5SO'<bQ`O7+,SO'<jQ`O1G2kO&=UQ`OANBQOOQ[ANBQANBQO!&zQMhOANBQO'<oQ`OANBQOOQ[ANBSANBSO9uQ!0LrOANBSO$%dQ`OANBSOOQO'#H_'#H_OOQO7+*q7+*qOOQ[G22wG22wOOQ[ANE^ANE^OOQ[ANE_ANE_OOQ[ANB]ANB]O'<wQ`OANB]OOQ[<<MW<<MWO!)[QlOAN?lOOQOG24yG24yO$AlQ!0MxOG24yO#(ZQ`OLD,qOOQ[LD,qLD,qO!&zQMhOLD,qO'<|Q!fOLD,qO'=TQ?MvO7+'zO'>yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<<M}<<M}OOQ!0LbANA]ANA]O$+YQ`OANA]OCwQ`OANA]O'EVQ!dOANA]OOQ!0LbANAZANAZO'E^Q`OANA]O!&zQMhOANA]O'EiQ!dOANA]OOQ!0LbANA[ANA[OOQO<<N^<<N^OOQ[LD-^LD-^O9uQ!0LrOLD-^O'EsQ?MtO7+*nOOQO'#Gf'#GfOOQ[G27lG27lO&=UQ`OG27lO!&zQMhOG27lOOQ[G27nG27nO9uQ!0LrOG27nOOQ[G27wG27wO'E}Q?MtOG25WOOQOLD*eLD*eOOQ[!$(!]!$(!]O#(ZQ`O!$(!]O!&zQMhO!$(!]O'FXQ!0MzOG27TOOQ!0LbG26wG26wO$+YQ`OG26wO'HjQ`OG26wOCwQ`OG26wO'HuQ!dOG26wO!&zQMhOG26wOOQ[!$(!x!$(!xOOQ[LD-WLD-WO&=UQ`OLD-WOOQ[LD-YLD-YOOQ[!)9Ew!)9EwO#(ZQ`O!)9EwOOQ!0LbLD,cLD,cO$+YQ`OLD,cOCwQ`OLD,cO'H|Q`OLD,cO'IXQ!dOLD,cOOQ[!$(!r!$(!rOOQ[!.K;c!.K;cO'I`Q?MvOG27TOOQ!0Lb!$( }!$( }O$+YQ`O!$( }OCwQ`O!$( }O'KUQ`O!$( }OOQ!0Lb!)9Ei!)9EiO$+YQ`O!)9EiOCwQ`O!)9EiOOQ!0Lb!.K;T!.K;TO$+YQ`O!.K;TOOQ!0Lb!4/0o!4/0oO!)[QlO'#DzO1PQ`O'#EXO'KaQ!fO'#JrO'KhQ!L^O'#DvO'KoQlO'#EOO'KvQ!fO'#CiO'N^Q!fO'#CiO!)[QlO'#EQO'NnQlO,5;ZO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO'#IpO(!qQ`O,5<iO!)[QlO,5;eO(!yQMhO,5;eO($dQMhO,5;eO!)[QlO,5;wO!&zQMhO'#GmO(!yQMhO'#GmO!&zQMhO'#GoO(!yQMhO'#GoO1SQ`O'#DZO1SQ`O'#DZO!&zQMhO'#GPO(!yQMhO'#GPO!&zQMhO'#GRO(!yQMhO'#GRO!&zQMhO'#GaO(!yQMhO'#GaO!)[QlO,5:jO($kQpO'#D_O($uQpO'#JvO!)[QlO,5@oO'NnQlO1G0uO(%PQ?MtO'#CiO!)[QlO1G2PO!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO(%ZQ!dO'#CrO!&zQMhO,5<tO(!yQMhO,5<tO'NnQlO1G2RO!)[QlO7+&zO!&zQMhO1G2`O(!yQMhO1G2`O!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO!&zQMhO1G2bO(!yQMhO1G2bO'NnQlO7+'mO'NnQlO7+&aO!&zQMhOANAiO(!yQMhOANAiO(%nQ`O'#EoO(%sQ`O'#EoO(%{Q`O'#F]O(&QQ`O'#EyO(&VQ`O'#KTO(&bQ`O'#KRO(&mQ`O,5;ZO(&rQMjO,5<eO(&yQ`O'#GYO('OQ`O'#GYO('TQ`O,5<eO(']Q`O,5<gO('eQ`O,5;ZO('mQ?MtO1G1`O('tQ`O,5<tO('yQ`O,5<tO((OQ`O,5<vO((TQ`O,5<vO((YQ`O1G2RO((_Q`O1G0uO((dQMjO<<K}O((kQMjO<<K}O((rQMhO'#F|O9`Q`O'#F{OAuQ`O'#EnO!)[QlO,5;tO!3oQ`O'#GYO!3oQ`O'#GYO!3oQ`O'#G[O!3oQ`O'#G[O!,TQMhO7+(cO!,TQMhO7+(cO%.zQ!dO1G2wO%.zQ!dO1G2wO!&zQMhO,5=]O!&zQMhO,5=]",stateData:"()x~O'|OS'}OSTOS(ORQ~OPYOQYOSfOY!VOaqOdzOeyOl!POpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!uwO!xxO!|]O$W|O$niO%h}O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO&W!WO&^!XO&`!YO&b!ZO&d![O&g!]O&m!^O&s!_O&u!`O&w!aO&y!bO&{!cO(TSO(VTO(YUO(aVO(o[O~OWtO~P`OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa!wOs!nO!S!oO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!xO#W!pO#X!pO#[!zO#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O(O!{O~OP]XR]X[]Xa]Xj]Xr]X!Q]X!S]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X'z]X(a]X(r]X(y]X(z]X~O!g%RX~P(qO_!}O(V#PO(W!}O(X#PO~O_#QO(X#PO(Y#PO(Z#QO~Ox#SO!U#TO(b#TO(c#VO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T<ZO(VTO(YUO(aVO(o[O~O![#ZO!]#WO!Y(hP!Y(vP~P+}O!^#cO~P`OPYOQYOSfOd!jOe!iOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(VTO(YUO(aVO(o[O~Op#mO![#iO!|]O#i#lO#j#iO(T<[O!k(sP~P.iO!l#oO(T#nO~O!x#sO!|]O%h#tO~O#k#uO~O!g#vO#k#uO~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!]$_O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa(fX'z(fX'w(fX!k(fX!Y(fX!_(fX%i(fX!g(fX~P1qO#S$dO#`$eO$Q$eOP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX!_(gX%i(gX~Oa(gX'z(gX'w(gX!Y(gX!k(gXv(gX!g(gX~P4UO#`$eO~O$]$hO$_$gO$f$mO~OSfO!_$nO$i$oO$k$qO~Oh%VOj%dOk%dOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T$sO(VTO(YUO(a$uO(y$}O(z%POg(^P~Ol%[O~P7eO!l%eO~O!S%hO!_%iO(T%gO~O!g%mO~Oa%nO'z%nO~O!Q%rO~P%[O(U!lO~P%[O%n%vO~P%[Oh%VO!l%eO(T%gO(U!lO~Oe%}O!l%eO(T%gO~Oj$RO~O!_&PO(T%gO(U!lO(VTO(YUO`)WP~O!Q&SO!l&RO%j&VO&T&WO~P;SO!x#sO~O%s&YO!S)SX!_)SX(T)SX~O(T&ZO~Ol!PO!u&`O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO~Od&eOe&dO!x&bO%h&cO%{&aO~P<bOd&hOeyOl!PO!_&gO!u&`O!xxO!|]O%h}O%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO~Ob&kO#`&nO%j&iO(U!lO~P=gO!l&oO!u&sO~O!l#oO~O!_XO~Oa%nO'x&{O'z%nO~Oa%nO'x'OO'z%nO~Oa%nO'x'QO'z%nO~O'w]X!Y]Xv]X!k]X&[]X!_]X%i]X!g]X~P(qO!b'_O!c'WO!d'WO(U!lO(VTO(YUO~Os'UO!S'TO!['XO(e'SO!^(iP!^(xP~P@nOn'bO!_'`O(T%gO~Oe'gO!l%eO(T%gO~O!Q&SO!l&RO~Os!nO!S!oO!|<VO#T!pO#U!pO#W!pO#X!pO(U!lO(VTO(YUO(e!mO(o!sO~O!b'mO!c'lO!d'lO#V!pO#['nO#]'nO~PBYOa%nOh%VO!g#vO!l%eO'z%nO(r'pO~O!p'tO#`'rO~PChOs!nO!S!oO(VTO(YUO(e!mO(o!sO~O!_XOs(mX!S(mX!b(mX!c(mX!d(mX!|(mX#T(mX#U(mX#V(mX#W(mX#X(mX#[(mX#](mX(U(mX(V(mX(Y(mX(e(mX(o(mX~O!c'lO!d'lO(U!lO~PDWO(P'xO(Q'xO(R'zO~O_!}O(V'|O(W!}O(X'|O~O_#QO(X'|O(Y'|O(Z#QO~Ov(OO~P%[Ox#SO!U#TO(b#TO(c(RO~O![(TO!Y'WX!Y'^X!]'WX!]'^X~P+}O!](VO!Y(hX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!](VO!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~O!Y(hX~PHRO!Y([O~O!Y(uX!](uX!g(uX!k(uX(r(uX~O#`(uX#k#dX!^(uX~PJUO#`(]O!Y(wX!](wX~O!](^O!Y(vX~O!Y(aO~O#`$eO~PJUO!^(bO~P`OR#zO!Q#yO!S#{O!l#xO(aVOP!na[!naj!nar!na!]!na!p!na#R!na#n!na#o!na#p!na#q!na#r!na#s!na#t!na#u!na#v!na#x!na#z!na#{!na(r!na(y!na(z!na~Oa!na'z!na'w!na!Y!na!k!nav!na!_!na%i!na!g!na~PKlO!k(cO~O!g#vO#`(dO(r'pO!](tXa(tX'z(tX~O!k(tX~PNXO!S%hO!_%iO!|]O#i(iO#j(hO(T%gO~O!](jO!k(sX~O!k(lO~O!S%hO!_%iO#j(hO(T%gO~OP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~O!g#vO!k(gX~P! uOR(nO!Q(mO!l#xO#S$dO!|!{a!S!{a~O!x!{a%h!{a!_!{a#i!{a#j!{a(T!{a~P!#vO!x(rO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~O#k(xO~O![(zO!k(kP~P%[O(e(|O(o[O~O!S)OO!l#xO(e(|O(o[O~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S*YO!_*ZO!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op*`O}O(T&ZO~O!l+SO~O(T(vO~Op+WO!S%hO![#iO!_%iO!|]O#i#lO#j#iO(T%gO!k(sP~O!g#vO#k+XO~O!S%hOTX'z)TX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa!ja!]!ja'z!ja'w!ja!Y!ja!k!jav!ja!_!ja%i!ja!g!ja~P!:tOR#zO!Q#yO!S#{O!l#xO(aVOP!ra[!raj!rar!ra!]!ra!p!ra#R!ra#n!ra#o!ra#p!ra#q!ra#r!ra#s!ra#t!ra#u!ra#v!ra#x!ra#z!ra#{!ra(r!ra(y!ra(z!ra~Oa!ra'z!ra'w!ra!Y!ra!k!rav!ra!_!ra%i!ra!g!ra~P!=[OR#zO!Q#yO!S#{O!l#xO(aVOP!ta[!taj!tar!ta!]!ta!p!ta#R!ta#n!ta#o!ta#p!ta#q!ta#r!ta#s!ta#t!ta#u!ta#v!ta#x!ta#z!ta#{!ta(r!ta(y!ta(z!ta~Oa!ta'z!ta'w!ta!Y!ta!k!tav!ta!_!ta%i!ta!g!ta~P!?rOh%VOn+gO!_'`O%i+fO~O!g+iOa(]X!_(]X'z(]X!](]X~Oa%nO!_XO'z%nO~Oh%VO!l%eO~Oh%VO!l%eO(T%gO~O!g#vO#k(xO~Ob+tO%j+uO(T+qO(VTO(YUO!^)XP~O!]+vO`)WX~O[+zO~O`+{O~O!_&PO(T%gO(U!lO`)WP~O%j,OO~P;SOh%VO#`,SO~Oh%VOn,VO!_$|O~O!_,XO~O!Q,ZO!_XO~O%n%vO~O!x,`O~Oe,eO~Ob,fO(T#nO(VTO(YUO!^)VP~Oe%}O~O%j!QO(T&ZO~P=gO[,kO`,jO~OPYOQYOSfOdzOeyOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!iuO!lZO!oYO!pYO!qYO!svO!xxO!|]O$niO%h}O(VTO(YUO(aVO(o[O~O!_!eO!u!gO$W!kO(T!dO~P!FyO`,jOa%nO'z%nO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa,pOl!OO!uwO%l!OO%m!OO%n!OO~P!IcO!l&oO~O&^,vO~O!_,xO~O&o,zO&q,{OP&laQ&laS&laY&laa&lad&lae&lal&lap&lar&las&lat&laz&la|&la!O&la!S&la!W&la!X&la!_&la!i&la!l&la!o&la!p&la!q&la!s&la!u&la!x&la!|&la$W&la$n&la%h&la%j&la%l&la%m&la%n&la%q&la%s&la%v&la%w&la%y&la&W&la&^&la&`&la&b&la&d&la&g&la&m&la&s&la&u&la&w&la&y&la&{&la'w&la(T&la(V&la(Y&la(a&la(o&la!^&la&e&lab&la&j&la~O(T-QO~Oh!eX!]!RX!^!RX!g!RX!g!eX!l!eX#`!RX~O!]!eX!^!eX~P#!iO!g-VO#`-UOh(jX!]#hX!^#hX!g(jX!l(jX~O!](jX!^(jX~P##[Oh%VO!g-XO!l%eO!]!aX!^!aX~Os!nO!S!oO(VTO(YUO(e!mO~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO#z<gO#{<hO(aVO(r$YO(y#|O(z#}O~O$O.{O~P#BwO#S$dO#`<nO$Q<nO$O(gX!^(gX~P! uOa'da!]'da'z'da'w'da!k'da!Y'dav'da!_'da%i'da!g'da~P!:tO[#mia#mij#mir#mi!]#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO(y#mi(z#mi~P#EyOn>]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]<iO!^(fX~P#BwO!^/ZO~O!g)hO$f({X~O$f/]O~Ov/^O~P!&zOx)yO(b)zO(c/aO~O!S/dO~O(y$}On%aa!Q%aa'y%aa(z%aa!]%aa#`%aa~Og%aa$O%aa~P#L{O(z%POn%ca!Q%ca'y%ca(y%ca!]%ca#`%ca~Og%ca$O%ca~P#MnO!]fX!gfX!kfX!k$zX(rfX~P!0SOp%WOPP~P!1uOr*sO!b*qO!c*kO!d*kO!l*bO#[*rO%`*mO(U!lO(VTO(YUO~Os<}O!S/nO![+[O!^*pO(e<|O!^(xP~P$ [O!k/oO~P#/sO!]/pO!g#vO(r'pO!k)OX~O!k/uO~OnoX!QoX'yoX(yoX(zoX~O!g#vO!koX~P$#OOp/wO!S%hO![*^O!_%iO(T%gO!k)OP~O#k/xO~O!Y$zX!]$zX!g%RX~P!0SO!]/yO!Y)PX~P#/sO!g/{O~O!Y/}O~OpkO(T0OO~P.iOh%VOr0TO!g#vO!l%eO(r'pO~O!g+iO~Oa%nO!]0XO'z%nO~O!^0ZO~P!5iO!c0[O!d0[O(U!lO~P#$`Os!nO!S0]O(VTO(YUO(e!mO~O#[0_O~Og%aa!]%aa#`%aa$O%aa~P!1WOg%ca!]%ca#`%ca$O%ca~P!1WOj%dOk%dOl%dO(T&ZOg'mX!]'mX~O!]*yOg(^a~Og0hO~On0jO#`0iOg(_a!](_a~OR0kO!Q0kO!S0lO#S$dOn}a'y}a(y}a(z}a!]}a#`}a~Og}a$O}a~P$(cO!Q*OO'y*POn$sa(y$sa(z$sa!]$sa#`$sa~Og$sa$O$sa~P$)_O!Q*OO'y*POn$ua(y$ua(z$ua!]$ua#`$ua~Og$ua$O$ua~P$*QO#k0oO~Og%Ta!]%Ta#`%Ta$O%Ta~P!1WO!g#vO~O#k0rO~O!]+^Oa)Ta'z)Ta~OR#zO!Q#yO!S#{O!l#xO(aVOP!ri[!rij!rir!ri!]!ri!p!ri#R!ri#n!ri#o!ri#p!ri#q!ri#r!ri#s!ri#t!ri#u!ri#v!ri#x!ri#z!ri#{!ri(r!ri(y!ri(z!ri~Oa!ri'z!ri'w!ri!Y!ri!k!riv!ri!_!ri%i!ri!g!ri~P$+oOh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op0{O%]0|O(T0zO~P$.VO!g+iOa(]a!_(]a'z(]a!](]a~O#k1SO~O[]X!]fX!^fX~O!]1TO!^)XX~O!^1VO~O[1WO~Ob1YO(T+qO(VTO(YUO~O!_&PO(T%gO`'uX!]'uX~O!]+vO`)Wa~O!k1]O~P!:tO[1`O~O`1aO~O#`1fO~On1iO!_$|O~O(e(|O!^)UP~Oh%VOn1rO!_1oO%i1qO~O[1|O!]1zO!^)VX~O!^1}O~O`2POa%nO'z%nO~O(T#nO(VTO(YUO~O#S$dO#`$eO$Q$eOP(gXR(gX[(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~Oj2SO&[2TOa(gX~P$3pOj2SO#`$eO&[2TO~Oa2VO~P%[Oa2XO~O&e2[OP&ciQ&ciS&ciY&cia&cid&cie&cil&cip&cir&cis&cit&ciz&ci|&ci!O&ci!S&ci!W&ci!X&ci!_&ci!i&ci!l&ci!o&ci!p&ci!q&ci!s&ci!u&ci!x&ci!|&ci$W&ci$n&ci%h&ci%j&ci%l&ci%m&ci%n&ci%q&ci%s&ci%v&ci%w&ci%y&ci&W&ci&^&ci&`&ci&b&ci&d&ci&g&ci&m&ci&s&ci&u&ci&w&ci&y&ci&{&ci'w&ci(T&ci(V&ci(Y&ci(a&ci(o&ci!^&cib&ci&j&ci~Ob2bO!^2`O&j2aO~P`O!_XO!l2dO~O&q,{OP&liQ&liS&liY&lia&lid&lie&lil&lip&lir&lis&lit&liz&li|&li!O&li!S&li!W&li!X&li!_&li!i&li!l&li!o&li!p&li!q&li!s&li!u&li!x&li!|&li$W&li$n&li%h&li%j&li%l&li%m&li%n&li%q&li%s&li%v&li%w&li%y&li&W&li&^&li&`&li&b&li&d&li&g&li&m&li&s&li&u&li&w&li&y&li&{&li'w&li(T&li(V&li(Y&li(a&li(o&li!^&li&e&lib&li&j&li~O!Y2jO~O!]!aa!^!aa~P#BwOs!nO!S!oO![2pO(e!mO!]'XX!^'XX~P@nO!]-]O!^(ia~O!]'_X!^'_X~P!9|O!]-`O!^(xa~O!^2wO~P'_Oa%nO#`3QO'z%nO~Oa%nO!g#vO#`3QO'z%nO~Oa%nO!g#vO!p3UO#`3QO'z%nO(r'pO~Oa%nO'z%nO~P!:tO!]$_Ov$qa~O!Y'Wi!]'Wi~P!:tO!](VO!Y(hi~O!](^O!Y(vi~O!Y(wi!](wi~P!:tO!](ti!k(tia(ti'z(ti~P!:tO#`3WO!](ti!k(tia(ti'z(ti~O!](jO!k(si~O!S%hO!_%iO!|]O#i3]O#j3[O(T%gO~O!S%hO!_%iO#j3[O(T%gO~On3dO!_'`O%i3cO~Oh%VOn3dO!_'`O%i3cO~O#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aav%aa!_%aa%i%aa!g%aa~P#L{O#k%caP%caR%ca[%caa%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%cav%ca!_%ca%i%ca!g%ca~P#MnO#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!]%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aa#`%aav%aa!_%aa%i%aa!g%aa~P#/sO#k%caP%caR%ca[%caa%caj%car%ca!S%ca!]%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%ca#`%cav%ca!_%ca%i%ca!g%ca~P#/sO#k}aP}a[}aa}aj}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a'z}a(a}a(r}a!k}a!Y}a'w}av}a!_}a%i}a!g}a~P$(cO#k$saP$saR$sa[$saa$saj$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa'z$sa(a$sa(r$sa!k$sa!Y$sa'w$sav$sa!_$sa%i$sa!g$sa~P$)_O#k$uaP$uaR$ua[$uaa$uaj$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua'z$ua(a$ua(r$ua!k$ua!Y$ua'w$uav$ua!_$ua%i$ua!g$ua~P$*QO#k%TaP%TaR%Ta[%Taa%Taj%Tar%Ta!S%Ta!]%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta'z%Ta(a%Ta(r%Ta!k%Ta!Y%Ta'w%Ta#`%Tav%Ta!_%Ta%i%Ta!g%Ta~P#/sOa#cq!]#cq'z#cq'w#cq!Y#cq!k#cqv#cq!_#cq%i#cq!g#cq~P!:tO![3lO!]'YX!k'YX~P%[O!].tO!k(ka~O!].tO!k(ka~P!:tO!Y3oO~O$O!na!^!na~PKlO$O!ja!]!ja!^!ja~P#BwO$O!ra!^!ra~P!=[O$O!ta!^!ta~P!?rOg']X!]']X~P!,TO!]/POg(pa~OSfO!_4TO$d4UO~O!^4YO~Ov4ZO~P#/sOa$mq!]$mq'z$mq'w$mq!Y$mq!k$mqv$mq!_$mq%i$mq!g$mq~P!:tO!Y4]O~P!&zO!S4^O~O!Q*OO'y*PO(z%POn'ia(y'ia!]'ia#`'ia~Og'ia$O'ia~P%-fO!Q*OO'y*POn'ka(y'ka(z'ka!]'ka#`'ka~Og'ka$O'ka~P%.XO(r$YO~P#/sO!YfX!Y$zX!]fX!]$zX!g%RX#`fX~P!0SOp%WO(T=WO~P!1uOp4bO!S%hO![4aO!_%iO(T%gO!]'eX!k'eX~O!]/pO!k)Oa~O!]/pO!g#vO!k)Oa~O!]/pO!g#vO(r'pO!k)Oa~Og$|i!]$|i#`$|i$O$|i~P!1WO![4jO!Y'gX!]'gX~P!3tO!]/yO!Y)Pa~O!]/yO!Y)Pa~P#/sOP]XR]X[]Xj]Xr]X!Q]X!S]X!Y]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~Oj%YX!g%YX~P%2OOj4oO!g#vO~Oh%VO!g#vO!l%eO~Oh%VOr4tO!l%eO(r'pO~Or4yO!g#vO(r'pO~Os!nO!S4zO(VTO(YUO(e!mO~O(y$}On%ai!Q%ai'y%ai(z%ai!]%ai#`%ai~Og%ai$O%ai~P%5oO(z%POn%ci!Q%ci'y%ci(y%ci!]%ci#`%ci~Og%ci$O%ci~P%6bOg(_i!](_i~P!1WO#`5QOg(_i!](_i~P!1WO!k5VO~Oa$oq!]$oq'z$oq'w$oq!Y$oq!k$oqv$oq!_$oq%i$oq!g$oq~P!:tO!Y5ZO~O!]5[O!_)QX~P#/sOa$zX!_$zX%^]X'z$zX!]$zX~P!0SO%^5_OaoX!_oX'zoX!]oX~P$#OOp5`O(T#nO~O%^5_O~Ob5fO%j5gO(T+qO(VTO(YUO!]'tX!^'tX~O!]1TO!^)Xa~O[5kO~O`5lO~O[5pO~Oa%nO'z%nO~P#/sO!]5uO#`5wO!^)UX~O!^5xO~Or6OOs!nO!S*iO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!pO#W!pO#X!pO#[5}O#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O!^5|O~P%;eOn6TO!_1oO%i6SO~Oh%VOn6TO!_1oO%i6SO~Ob6[O(T#nO(VTO(YUO!]'sX!^'sX~O!]1zO!^)Va~O(VTO(YUO(e6^O~O`6bO~Oj6eO&[6fO~PNXO!k6gO~P%[Oa6iO~Oa6iO~P%[Ob2bO!^6nO&j2aO~P`O!g6pO~O!g6rOh(ji!](ji!^(ji!g(ji!l(jir(ji(r(ji~O!]#hi!^#hi~P#BwO#`6sO!]#hi!^#hi~O!]!ai!^!ai~P#BwOa%nO#`6|O'z%nO~Oa%nO!g#vO#`6|O'z%nO~O!](tq!k(tqa(tq'z(tq~P!:tO!](jO!k(sq~O!S%hO!_%iO#j7TO(T%gO~O!_'`O%i7WO~On7[O!_'`O%i7WO~O#k'iaP'iaR'ia['iaa'iaj'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia'z'ia(a'ia(r'ia!k'ia!Y'ia'w'iav'ia!_'ia%i'ia!g'ia~P%-fO#k'kaP'kaR'ka['kaa'kaj'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka'z'ka(a'ka(r'ka!k'ka!Y'ka'w'kav'ka!_'ka%i'ka!g'ka~P%.XO#k$|iP$|iR$|i[$|ia$|ij$|ir$|i!S$|i!]$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i'z$|i(a$|i(r$|i!k$|i!Y$|i'w$|i#`$|iv$|i!_$|i%i$|i!g$|i~P#/sO#k%aiP%aiR%ai[%aia%aij%air%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai'z%ai(a%ai(r%ai!k%ai!Y%ai'w%aiv%ai!_%ai%i%ai!g%ai~P%5oO#k%ciP%ciR%ci[%cia%cij%cir%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci'z%ci(a%ci(r%ci!k%ci!Y%ci'w%civ%ci!_%ci%i%ci!g%ci~P%6bO!]'Ya!k'Ya~P!:tO!].tO!k(ki~O$O#ci!]#ci!^#ci~P#BwOP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mij#mir#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#n#mi~P%NdO#n<_O~P%NdOP$[OR#zOr<kO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO[#mij#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#r#mi~P&!lO#r<aO~P&!lOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO(aVO#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#v#mi~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO(aVO(z#}O#z#mi#{#mi$O#mi(r#mi(y#mi!]#mi!^#mi~O#x<eO~P&&uO#x#mi~P&&uO#v<cO~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO(aVO(y#|O(z#}O#{#mi$O#mi(r#mi!]#mi!^#mi~O#z#mi~P&)UO#z<gO~P&)UOa#|y!]#|y'z#|y'w#|y!Y#|y!k#|yv#|y!_#|y%i#|y!g#|y~P!:tO[#mij#mir#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi!]#mi!^#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO(y#mi(z#mi~P&,QOn>^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOr<QO!g#vO(r'pO~Ov(fX~P1qO!Q%rO~P!)[O(U!lO~P!)[O!YfX!]fX#`fX~P%2OOP]XR]X[]Xj]Xr]X!Q]X!S]X!]]X!]fX!l]X!p]X#R]X#S]X#`]X#`fX#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~O!gfX!k]X!kfX(rfX~P'LTOP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_XO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]<iO!^$qa~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<tO!S${O!_$|O!i>WO!l$xO#j<zO$W%`O$t<vO$v<xO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Ol)dO~P(!yOr!eX(r!eX~P#!iOr(jX(r(jX~P##[O!^]X!^fX~P'LTO!YfX!Y$zX!]fX!]$zX#`fX~P!0SO#k<^O~O!g#vO#k<^O~O#`<nO~Oj<bO~O#`=OO!](wX!^(wX~O#`<nO!](uX!^(uX~O#k=PO~Og=RO~P!1WO#k=XO~O#k=YO~Og=RO(T&ZO~O!g#vO#k=ZO~O!g#vO#k=PO~O$O=[O~P#BwO#k=]O~O#k=^O~O#k=cO~O#k=dO~O#k=eO~O#k=fO~O$O=gO~P!1WO$O=hO~P!1WOl=sO~P7eOk#S#T#U#W#X#[#i#j#u$n$t$v$y%]%^%h%i%j%q%s%v%w%y%{~(OT#o!X'|(U#ps#n#qr!Q'}$]'}(T$_(e~",goto:"$9Y)]PPPPPP)^PP)aP)rP+W/]PPPP6mPP7TPP=QPPP@tPA^PA^PPPA^PCfPA^PA^PA^PCjPCoPD^PIWPPPI[PPPPI[L_PPPLeMVPI[PI[PP! eI[PPPI[PI[P!#lI[P!'S!(X!(bP!)U!)Y!)U!,gPPPPPPP!-W!(XPP!-h!/YP!2iI[I[!2n!5z!:h!:h!>gPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#<e#<k#<n)aP#<q)aP#<z#<z#<zP)aP)aP)aP)aPP)aP#=Q#=TP#=T)aP#=XP#=[P)aP)aP)aP)aP)aP)a)aPP#=b#=h#=s#=y#>P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{<Y%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_S#q]<V!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU+P%]<s<tQ+t&PQ,f&gQ,m&oQ0x+gQ0}+iQ1Y+uQ2R,kQ3`.gQ5`0|Q5f1TQ6[1zQ7Y3dQ8`5gR9e7['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>R>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o>U<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hW%Ti%V*y>PS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^T)z$u){V+P%]<s<tW'[!e%i*Z-`S(}#y#zQ+c%rQ+y&SS.b(m(nQ1j,XQ5T0kR8i5u'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vT#TV#U'RkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vS(o#p'iQ)P#zS+b%q.|S.c(n(pR3^.d'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS#q]<VQ&t!XQ&u!YQ&w![Q&x!]R2Z,vQ'a!hQ+e%wQ-h'cS.e(q+hQ2x-gW3b.h.i0w0yQ6w2yW7U3_3a3e5^U9a7V7X7ZU:q9c9d9fS;b:p:sQ;p;cR;x;qU!wQ'`-eT5y1o5{!Q_OXZ`st!V!Z#d#h%e%m&i&k&r&t&u&w(j,s,x.[2[2_]!pQ!r'`-e1o5{T#q]<V%^{OPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S(}#y#zS.b(m(n!s=l$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uS<P;|;}R<S<QQ#wbQ's!uS(e#g2US(g#m+WQ+Y%fQ+j%xQ+p&OU-r'k't'wQ.W(fU/r*]*`/wQ0S*jQ0V*lQ1O+kQ1u,aS3R-s-vQ3Z.`S4e/s/tQ4n0PS4q0R0^Q4u0WQ6W1vQ7P3US7q4`4bQ7u4fU7|4r4x4{Q8P4wQ8v6XS9q7r7sQ9u7yQ9}8RQ:O8SQ:c8wQ:y9rS:z9v9xQ;S:QQ;^:dS;f:{;PS;r;g;hS;z;s;uS<O;{;}Q<R<PQ<T<SQ=o=jQ={=tR=|=uV!wQ'`-e%^aOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S#wz!j!r=i$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!P<d)^)q-Z.|2k2n3p3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!f$Vc#Y%q(S(Y(t(y)W)X)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!T<f)^)q-Z.|2k2n3p3v3w3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!^$Zc#Y%q(S(Y(t(y)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<WQ4_/kz>S)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^Q+T%aQ/c*Oo4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!U$yi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n=r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hQ=w>TQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hnoOXst!Z#d%m&r&t&u&w,s,x2[2_S*f${*YQ-R'OQ-S'QR4i/y%[%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f<o#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<p<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!d=S(u)c*[*e.j.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f<q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!h=U(u)c*[*e.k.l.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|<jQ-|<WR<j)qQ/q*]W4c/q4d7t9sU4d/r/s/tS7t4e4fR9s7u$e*Q$v(u)c)e*[*e*t*u+Q+R+V.l.m.o.p.q/_/g/i/k/v/|0d0e0v1e3f3g3h3}4R4[4g4h4l4|5O5R5S5W5r7]7^7_7`7e7f7h7i7j7p7w7z8U8X8Z9h9i9j9t9|:R:S:t:u:v:w:x:};R;e;j;v;y=p=}>O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.l<oQ.m<qQ.o<uQ.p<wQ.q<yQ/_)yQ/g*RQ/i*TQ/k*VQ/v*aS/|*g/mQ0d*wQ0e*xl0v+f,V.f1i1q3c6S7W8q9b:`:r;[;dQ1e,SQ3f=SQ3g=UQ3h=XS3}<l<mQ4R/PS4[/d4^Q4g/xQ4h/yQ4l/{Q4|0`Q5O0bQ5R0iQ5S0jQ5W0oQ5r1fQ7]=]Q7^=_Q7_=aQ7`=cQ7e<pQ7f<rQ7h<vQ7i<xQ7j<zQ7p4_Q7w4jQ7z4oQ8U5QQ8X5[Q8Z5_Q9h=YQ9i=TQ9j=VQ9t7vQ9|8QQ:R8VQ:S8[Q:t=^Q:u=`Q:v=bQ:w=dQ:x9pQ:}9yQ;R:PQ;e=gQ;j;QQ;v;kQ;y=hQ=p>PQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.n<sR7g<tnpOXst!Z#d%m&r&t&u&w,s,x2[2_Q!fPS#fZ#oQ&|!`W'h!o*i0]4zQ(P#SQ)Q#{Q)r$nS,l&k&nQ,q&oQ-O&{S-T'T/nQ-g'bQ.x)OQ/[)sQ0s+]Q0y+gQ2W,pQ2y-iQ3a.gQ4W/VQ5U0lQ6Q1rQ6c2SQ6d2TQ6h2VQ6j2XQ6o2aQ7Z3dQ7m4TQ8s6TQ9P6eQ9Q6fQ9S6iQ9f7[Q:a8tR:k9T#[cOPXZst!Z!`!o#d#o#{%m&k&n&o&r&t&u&w&{'T'b)O*i+]+g,p,s,x-i.g/n0]0l1r2S2T2V2X2[2_2a3d4z6T6e6f6i7[8t9TQ#YWQ#eYQ%quQ%svS%uw!gS(S#W(VQ(Y#ZQ(t#uQ(y#xQ)R$OQ)S$PQ)T$QQ)U$RQ)V$SQ)W$TQ)X$UQ)Y$VQ)Z$WQ)[$XQ)^$ZQ)`$_Q)b$aQ)g$eW)q$n)s/V4TQ+d%tQ+x&RS-Z'X2pQ-x'rS-}(T.PQ.S(]Q.U(dQ.s(xQ.v(zQ.z<UQ.|<XQ.}<YQ/O<]Q/b)}Q0p+XQ2k-UQ2n-XQ3O-qQ3V.VQ3k.tQ3p<^Q3q<_Q3r<`Q3s<aQ3t<bQ3u<cQ3v<dQ3w<eQ3x<fQ3y<gQ3z<hQ3{.{Q3|<kQ4P<nQ4Q<{Q4X<iQ5X0rQ5c1SQ6u=OQ6{3QQ7Q3WQ7a3lQ7b=PQ7k=RQ7l=ZQ8k5wQ9X6sQ9]6|Q9g=[Q9m=eQ9n=fQ:o9_Q;W:ZQ;`:mQ<W#SR=v>SR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i<VR)f$dY!uQ'`-e1o5{Q'k!rS'u!v!yS'w!z5}S-t'l'mQ-v'nR3T-uT#kZ%eS#jZ%eS%km,oU(g#h#i#lS.Y(h(iQ.^(jQ0t+^Q3Y.ZU3Z.[.]._S7S3[3]R9`7Td#^W#W#Z%h(T(^*Y+Z.T/mr#gZm#h#i#l%e(h(i(j+^.Z.[.]._3[3]7TS*]$x*bQ/t*^Q2U,oQ2l-VQ4`/pQ6q2dQ7s4aQ9W6rT=m'X+[V#aW%h*YU#`W%h*YS(U#W(^U(Z#Z+Z/mS-['X+[T.O(T.TV'^!e%i*ZQ$lfR)x$qT)m$l)nR4V/UT*_$x*bT*h${*YQ0w+fQ1g,VQ3_.fQ5t1iQ6P1qQ7X3cQ8r6SQ9c7WQ:^8qQ:p9bQ;Z:`Q;c:rQ;n;[R;q;dnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&l!VR,h&itmOXst!U!V!Z#d%m&i&r&t&u&w,s,x2[2_R,o&oT%lm,oR1k,XR,g&gQ&U|S+}&V&WR1^,OR+s&PT&p!W&sT&q!W&sT2^,x2_",nodeNames:"⚠ ArithOp ArithOp ?. JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:c7,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[O7],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$<r#p#q$=h#q#r$>x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__WS$i&j(Wp(Z!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]WS$i&j(Z!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S%9[C}i$i&j(o%1l(Wp(Z!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr%9[EoP;=`<%lCr07[FRk$i&j(Wp(Z!b$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$i&j(Wp(Z!b$]#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv07[JPP;=`<%lEr(KWJ_`$i&j(Wp(Z!b#p(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWKl_$i&j$Q(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,#xLva(z+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWNW`$i&j#z(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At! c_(Y';W$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$i&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$d`$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(WpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$d`(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b/5|!'t_!l/.^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&U!)O_!k!Lf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z-!n!*[b$i&j(Wp(Z!b(U%&f#q(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW!+o`$i&j(Wp(Z!b#n(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;x!,|`$i&j(Wp(Z!br+4YOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,$U!.Z_!]+Jf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!/ec$i&j(Wp(Z!b!Q.2^OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!0ya$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!2Z_![!L^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!3eg$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!5Vg$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!6wc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!8_c$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!9uf$i&j(Wp(Z!b#o(ChOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcxz!;Zz{#-}{!P!;Z!P!Q#/d!Q!^!;Z!^!_#(i!_!`#7S!`!a#8i!a!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z?O!;fb$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z>^!<w`$i&j(Z!b!X7`OY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eq!Q!^!<n!^!_!Gr!_!}!<n!}#O!KS#O#P!Dy#P#o!<n#o#p!Gr#p;'S!<n;'S;=`!L]<%lO!<n<z!>Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!?Td$i&j!X7`O!^&c!_#W&c#W#X!>|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c<z!C][$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#O!CW#O#P!DR#P#Q!=y#Q#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DWX$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DvP;=`<%l!CW<z!EOX$i&jOY!=yYZ&cZ!^!=y!^!_!@c!_#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!EnP;=`<%l!=y>^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!<n#Q#o!KS#o#p!JU#p;'S!KS;'S;=`!LV<%lO!KS>^!LYP;=`<%l!KS>^!L`P;=`<%l!<n=l!Ll`$i&j(Wp!X7`OY!LcYZ&cZr!Lcrs!=ys!P!Lc!P!Q!Mn!Q!^!Lc!^!_# o!_!}!Lc!}#O#%P#O#P!Dy#P#o!Lc#o#p# o#p;'S!Lc;'S;=`#&Y<%lO!Lc=l!Mwl$i&j(Wp!X7`OY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#W(r#W#X!Mn#X#Z(r#Z#[!Mn#[#](r#]#^!Mn#^#a(r#a#b!Mn#b#g(r#g#h!Mn#h#i(r#i#j!Mn#j#k!Mn#k#m(r#m#n!Mn#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r8Q# vZ(Wp!X7`OY# oZr# ors!@cs!P# o!P!Q#!i!Q!}# o!}#O#$R#O#P!Bq#P;'S# o;'S;=`#$y<%lO# o8Q#!pe(Wp!X7`OY)rZr)rs#O)r#P#W)r#W#X#!i#X#Z)r#Z#[#!i#[#])r#]#^#!i#^#a)r#a#b#!i#b#g)r#g#h#!i#h#i)r#i#j#!i#j#k#!i#k#m)r#m#n#!i#n;'S)r;'S;=`*Z<%lO)r8Q#$WX(WpOY#$RZr#$Rrs!Ars#O#$R#O#P!B[#P#Q# o#Q;'S#$R;'S;=`#$s<%lO#$R8Q#$vP;=`<%l#$R8Q#$|P;=`<%l# o=l#%W^$i&j(WpOY#%PYZ&cZr#%Prs!CWs!^#%P!^!_#$R!_#O#%P#O#P!DR#P#Q!Lc#Q#o#%P#o#p#$R#p;'S#%P;'S;=`#&S<%lO#%P=l#&VP;=`<%l#%P=l#&]P;=`<%l!Lc?O#&kn$i&j(Wp(Z!b!X7`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#W%Z#W#X#&`#X#Z%Z#Z#[#&`#[#]%Z#]#^#&`#^#a%Z#a#b#&`#b#g%Z#g#h#&`#h#i%Z#i#j#&`#j#k#&`#k#m%Z#m#n#&`#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z9d#(r](Wp(Z!b!X7`OY#(iZr#(irs!Grsw#(iwx# ox!P#(i!P!Q#)k!Q!}#(i!}#O#+`#O#P!Bq#P;'S#(i;'S;=`#,`<%lO#(i9d#)th(Wp(Z!b!X7`OY*gZr*grs'}sw*gwx)rx#O*g#P#W*g#W#X#)k#X#Z*g#Z#[#)k#[#]*g#]#^#)k#^#a*g#a#b#)k#b#g*g#g#h#)k#h#i*g#i#j#)k#j#k#)k#k#m*g#m#n#)k#n;'S*g;'S;=`+Z<%lO*g9d#+gZ(Wp(Z!bOY#+`Zr#+`rs!JUsw#+`wx#$Rx#O#+`#O#P!B[#P#Q#(i#Q;'S#+`;'S;=`#,Y<%lO#+`9d#,]P;=`<%l#+`9d#,cP;=`<%l#(i?O#,o`$i&j(Wp(Z!bOY#,fYZ&cZr#,frs!KSsw#,fwx#%Px!^#,f!^!_#+`!_#O#,f#O#P!DR#P#Q!;Z#Q#o#,f#o#p#+`#p;'S#,f;'S;=`#-q<%lO#,f?O#-tP;=`<%l#,f?O#-zP;=`<%l!;Z07[#.[b$i&j(Wp(Z!b(O0/l!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z07[#/o_$i&j(Wp(Z!bT0/lOY#/dYZ&cZr#/drs#0nsw#/dwx#4Ox!^#/d!^!_#5}!_#O#/d#O#P#1p#P#o#/d#o#p#5}#p;'S#/d;'S;=`#6|<%lO#/d06j#0w]$i&j(Z!bT0/lOY#0nYZ&cZw#0nwx#1px!^#0n!^!_#3R!_#O#0n#O#P#1p#P#o#0n#o#p#3R#p;'S#0n;'S;=`#3x<%lO#0n05W#1wX$i&jT0/lOY#1pYZ&cZ!^#1p!^!_#2d!_#o#1p#o#p#2d#p;'S#1p;'S;=`#2{<%lO#1p0/l#2iST0/lOY#2dZ;'S#2d;'S;=`#2u<%lO#2d0/l#2xP;=`<%l#2d05W#3OP;=`<%l#1p01O#3YW(Z!bT0/lOY#3RZw#3Rwx#2dx#O#3R#O#P#2d#P;'S#3R;'S;=`#3r<%lO#3R01O#3uP;=`<%l#3R06j#3{P;=`<%l#0n05x#4X]$i&j(WpT0/lOY#4OYZ&cZr#4Ors#1ps!^#4O!^!_#5Q!_#O#4O#O#P#1p#P#o#4O#o#p#5Q#p;'S#4O;'S;=`#5w<%lO#4O00^#5XW(WpT0/lOY#5QZr#5Qrs#2ds#O#5Q#O#P#2d#P;'S#5Q;'S;=`#5q<%lO#5Q00^#5tP;=`<%l#5Q05x#5zP;=`<%l#4O01p#6WY(Wp(Z!bT0/lOY#5}Zr#5}rs#3Rsw#5}wx#5Qx#O#5}#O#P#2d#P;'S#5};'S;=`#6v<%lO#5}01p#6yP;=`<%l#5}07[#7PP;=`<%l#/d)3h#7ab$i&j$Q(Ch(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;ZAt#8vb$Z#t$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z'Ad#:Zp$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#U%Z#U#V#?i#V#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#<jk$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-<U(Wp(Z!b$n7`OY*gZr*grs'}sw*gwx)rx!P*g!P!Q#MO!Q!^*g!^!_#Mt!_!`$ f!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#MXX$k&j(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El#M}Z#r(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Np!`#O*g#P;'S*g;'S;=`+Z<%lO*g(El#NyX$Q(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El$ oX#s(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g*)x$!ga#`*!Y$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$#l!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(K[$#w_#k(Cl$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x$%Vag!*r#s(Ch$f#|$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$&[!`!a$'f!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$&g_#s(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$'qa#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$(v!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$)R`#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(Kd$*`a(r(Ct$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!a%Z!a!b$+e!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$+p`$i&j#{(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`$,}_!|$Ip$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f$.X_!S0,v$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/]Z$i&jO!^$0O!^!_$0f!_#i$0O#i#j$0k#j#l$0O#l#m$2^#m#o$0O#o#p$0f#p;'S$0O;'S;=`$4i<%lO$0O(n$0VT_#S$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0kO_#S(n$0p[$i&jO!Q&c!Q![$1f![!^&c!_!c&c!c!i$1f!i#T&c#T#Z$1f#Z#o&c#o#p$3|#p;'S&c;'S;=`&w<%lO&c(n$1kZ$i&jO!Q&c!Q![$2^![!^&c!_!c&c!c!i$2^!i#T&c#T#Z$2^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2cZ$i&jO!Q&c!Q![$3U![!^&c!_!c&c!c!i$3U!i#T&c#T#Z$3U#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3ZZ$i&jO!Q&c!Q![$0O![!^&c!_!c&c!c!i$0O!i#T&c#T#Z$0O#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$4PR!Q![$4Y!c!i$4Y#T#Z$4Y#S$4]S!Q![$4Y!c!i$4Y#T#Z$4Y#q#r$0f(n$4lP;=`<%l$0O#1[$4z_!Y#)l$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$6U`#x(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;p$7c_$i&j(Wp(Z!b(a+4QOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$8qk$i&j(Wp(Z!b(T,2j$_#t(e$I[OY%ZYZ&cZr%Zrs&}st%Ztu$8buw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$8b![!^%Z!^!_*g!_!c%Z!c!}$8b!}#O%Z#O#P&c#P#R%Z#R#S$8b#S#T%Z#T#o$8b#o#p*g#p$g%Z$g;'S$8b;'S;=`$<l<%lO$8b+d$:qk$i&j(Wp(Z!b$_#tOY%ZYZ&cZr%Zrs&}st%Ztu$:fuw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$:f![!^%Z!^!_*g!_!c%Z!c!}$:f!}#O%Z#O#P&c#P#R%Z#R#S$:f#S#T%Z#T#o$:f#o#p*g#p$g%Z$g;'S$:f;'S;=`$<f<%lO$:f+d$<iP;=`<%l$:f07[$<oP;=`<%l$8b#Jf$<{X!_#Hb(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g,#x$=sa(y+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+e#q;'S%Z;'S;=`+a<%lO%Z)>v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[u7,h7,f7,p7,2,3,4,5,6,7,8,9,10,11,12,13,14,d7,new Za("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new Za("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{Script:[0,7],SingleExpression:[1,276],SingleClassItem:[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:327,get:t=>m7[t]||-1},{term:343,get:t=>g7[t]||-1},{term:95,get:t=>x7[t]||-1}],tokenPrec:15201});class Gg{constructor(e,n,i,s){this.state=e,this.pos=n,this.explicit=i,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let n=Ue(this.state).resolveInner(this.pos,-1);for(;n&&e.indexOf(n.name)<0;)n=n.parent;return n?{from:n.from,to:this.pos,text:this.state.sliceDoc(n.from,this.pos),type:n.type}:null}matchBefore(e){let n=this.state.doc.lineAt(this.pos),i=Math.max(n.from,this.pos-250),s=n.text.slice(i-n.from,this.pos-n.from),r=s.search(Hg(e,!1));return r<0?null:{from:i+r,to:this.pos,text:s.slice(r)}}get aborted(){return this.abortListeners==null}addEventListener(e,n,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(n),i&&i.onDocChange&&(this.abortOnDocChange=!0))}}function Pp(t){let e=Object.keys(t).join(""),n=/\w/.test(e);return n&&(e=e.replace(/\w/g,"")),`[${n?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function y7(t){let e=Object.create(null),n=Object.create(null);for(let{label:s}of t){e[s[0]]=!0;for(let r=1;r<s.length;r++)n[s[r]]=!0}let i=Pp(e)+Pp(n)+"*$";return[new RegExp("^"+i),new RegExp(i)]}function Zo(t){let e=t.map(s=>typeof s=="string"?{label:s}:s),[n,i]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:y7(e);return s=>{let r=s.matchBefore(i);return r||s.explicit?{from:r?r.from:s.pos,options:e,validFor:n}:null}}function fu(t,e){return n=>{for(let i=Ue(n.state).resolveInner(n.pos,-1);i;i=i.parent){if(t.indexOf(i.name)>-1)return null;if(i.type.isTop)break}return e(n)}}class Tp{constructor(e,n,i,s){this.completion=e,this.source=n,this.match=i,this.score=s}}function Pi(t){return t.selection.main.from}function Hg(t,e){var n;let{source:i}=t,s=e&&i[0]!="^",r=i[i.length-1]!="$";return!s&&!r?t:new RegExp(`${s?"^":""}(?:${i})${r?"$":""}`,(n=t.flags)!==null&&n!==void 0?n:t.ignoreCase?"i":"")}const pu=Dn.define();function v7(t,e,n,i){let{main:s}=t.selection,r=n-s.from,a=i-s.from;return{...t.changeByRange(o=>{if(o!=s&&n!=i&&t.sliceDoc(o.from+r,o.from+a)!=t.sliceDoc(n,i))return{range:o};let c=t.toText(e);return{changes:{from:o.from+r,to:i==s.from?o.to:o.from+a,insert:c},range:q.cursor(o.from+r+c.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const $p=new WeakMap;function S7(t){if(!Array.isArray(t))return t;let e=$p.get(t);return e||$p.set(t,e=Zo(t)),e}const ao=Pe.define(),or=Pe.define();class w7{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let n=0;n<e.length;){let i=Tt(e,n),s=pn(i);this.chars.push(i);let r=e.slice(n,n+s),a=r.toUpperCase();this.folded.push(Tt(a==r?r.toLowerCase():a,0)),n+=s}this.astral=e.length!=this.chars.length}ret(e,n){return this.score=e,this.matched=n,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:n,folded:i,any:s,precise:r,byWord:a}=this;if(n.length==1){let y=Tt(e,0),S=pn(y),P=S==e.length?0:-100;if(y!=n[0])if(y==i[0])P+=-200;else return null;return this.ret(P,[0,S])}let o=e.indexOf(this.pattern);if(o==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let c=n.length,d=0;if(o<0){for(let y=0,S=Math.min(e.length,200);y<S&&d<c;){let P=Tt(e,y);(P==n[d]||P==i[d])&&(s[d++]=y),y+=pn(P)}if(d<c)return null}let u=0,h=0,f=!1,p=0,O=-1,g=-1,x=/[a-z]/.test(e),b=!0;for(let y=0,S=Math.min(e.length,200),P=0;y<S&&h<c;){let w=Tt(e,y);o<0&&(u<c&&w==n[u]&&(r[u++]=y),p<c&&(w==n[p]||w==i[p]?(p==0&&(O=y),g=y+1,p++):p=0));let C,Q=w<255?w>=48&&w<=57||w>=97&&w<=122?2:w>=65&&w<=90?1:0:(C=Dd(w))!=C.toLowerCase()?1:C!=C.toUpperCase()?2:0;(!y||Q==1&&x||P==0&&Q!=0)&&(n[h]==w||i[h]==w&&(f=!0)?a[h++]=y:a.length&&(b=!1)),P=Q,y+=pn(w)}return h==c&&a[0]==0&&b?this.result(-100+(f?-200:0),a,e):p==c&&O==0?this.ret(-200-e.length+(g==e.length?0:-100),[0,g]):o>-1?this.ret(-700-e.length,[o,o+this.pattern.length]):p==c?this.ret(-900-e.length,[O,g]):h==c?this.result(-100+(f?-200:0)+-700+(b?0:-1100),a,e):n.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,n,i){let s=[],r=0;for(let a of n){let o=a+(this.astral?pn(Tt(i,a)):1);r&&s[r-1]==a?s[r-1]=o:(s[r++]=a,s[r++]=o)}return this.ret(e-i.length,s)}}class k7{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let n=e.slice(0,this.pattern.length),i=n==this.pattern?0:n.toLowerCase()==this.folded?-200:null;return i==null?null:(this.matched=[0,n.length],this.score=i+(e.length==this.pattern.length?0:-100),this)}}const dt=se.define({combine(t){return kn(t,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:Q7,filterStrict:!1,compareCompletions:(e,n)=>(e.sortText||e.label).localeCompare(n.sortText||n.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,n)=>e&&n,closeOnBlur:(e,n)=>e&&n,icons:(e,n)=>e&&n,tooltipClass:(e,n)=>i=>jp(e(i),n(i)),optionClass:(e,n)=>i=>jp(e(i),n(i)),addToOptions:(e,n)=>e.concat(n),filterStrict:(e,n)=>e||n})}});function jp(t,e){return t?e?t+" "+e:t:e}function Q7(t,e,n,i,s,r){let a=t.textDirection==Be.RTL,o=a,c=!1,d="top",u,h,f=e.left-s.left,p=s.right-e.right,O=i.right-i.left,g=i.bottom-i.top;if(o&&f<Math.min(O,p)?o=!1:!o&&p<Math.min(O,f)&&(o=!0),O<=(o?f:p))u=Math.max(s.top,Math.min(n.top,s.bottom-g))-e.top,h=Math.min(400,o?f:p);else{c=!0,h=Math.min(400,(a?e.right:s.right-e.left)-30);let y=s.bottom-e.bottom;y>=g||y>e.top?u=n.bottom-e.top:(d="bottom",u=e.bottom-n.top)}let x=(e.bottom-e.top)/r.offsetHeight,b=(e.right-e.left)/r.offsetWidth;return{style:`${d}: ${u/x}px; max-width: ${h/b}px`,class:"cm-completionInfo-"+(c?a?"left-narrow":"right-narrow":o?"left":"right")}}const Ou=Pe.define();function C7(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(n){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),n.type&&i.classList.add(...n.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(n,i,s,r){let a=document.createElement("span");a.className="cm-completionLabel";let o=n.displayLabel||n.label,c=0;for(let d=0;d<r.length;){let u=r[d++],h=r[d++];u>c&&a.appendChild(document.createTextNode(o.slice(c,u)));let f=a.appendChild(document.createElement("span"));f.appendChild(document.createTextNode(o.slice(u,h))),f.className="cm-completionMatchedText",c=h}return c<o.length&&a.appendChild(document.createTextNode(o.slice(c))),a},position:50},{render(n){if(!n.detail)return null;let i=document.createElement("span");return i.className="cm-completionDetail",i.textContent=n.detail,i},position:80}),e.sort((n,i)=>n.position-i.position).map(n=>n.render)}function zl(t,e,n){if(t<=n)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let s=Math.floor(e/n);return{from:s*n,to:(s+1)*n}}let i=Math.floor((t-e)/n);return{from:t-(i+1)*n,to:t-i*n}}class P7{constructor(e,n,i){this.view=e,this.stateField=n,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:c=>this.placeInfo(c),key:this},this.space=null,this.currentClass="";let s=e.state.field(n),{options:r,selected:a}=s.open,o=e.state.facet(dt);this.optionContent=C7(o),this.optionClass=o.optionClass,this.tooltipClass=o.tooltipClass,this.range=zl(r.length,a,o.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",c=>{let{options:d}=e.state.field(n).open;for(let u=c.target,h;u&&u!=this.dom;u=u.parentNode)if(u.nodeName=="LI"&&(h=/-(\d+)$/.exec(u.id))&&+h[1]<d.length){this.applyCompletion(e,d[+h[1]]),c.preventDefault();return}if(c.target==this.list){let u=this.list.classList.contains("cm-completionListIncompleteTop")&&c.clientY<this.list.firstChild.getBoundingClientRect().top?this.range.from-1:this.list.classList.contains("cm-completionListIncompleteBottom")&&c.clientY>this.list.lastChild.getBoundingClientRect().bottom?this.range.to:null;u!=null&&(e.dispatch({effects:Ou.of(u)}),c.preventDefault())}}),this.dom.addEventListener("focusout",c=>{let d=e.state.field(this.stateField,!1);d&&d.tooltip&&e.state.facet(dt).closeOnBlur&&c.relatedTarget!=e.contentDOM&&e.dispatch({effects:or.of(null)})}),this.showOptions(r,s.id)}mount(){this.updateSel()}showOptions(e,n){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,n,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var n;let i=e.state.field(this.stateField),s=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=s){let{options:r,selected:a,disabled:o}=i.open;(!s.open||s.open.options!=r)&&(this.range=zl(r.length,a,e.state.facet(dt).maxRenderedOptions),this.showOptions(r,i.id)),this.updateSel(),o!=((n=s.open)===null||n===void 0?void 0:n.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!o)}}updateTooltipClass(e){let n=this.tooltipClass(e);if(n!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of n.split(" "))i&&this.dom.classList.add(i);this.currentClass=n}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),n=e.open;(n.selected>-1&&n.selected<this.range.from||n.selected>=this.range.to)&&(this.range=zl(n.options.length,n.selected,this.view.state.facet(dt).maxRenderedOptions),this.showOptions(n.options,e.id));let i=this.updateSelectedOption(n.selected);if(i){this.destroyInfo();let{completion:s}=n.options[n.selected],{info:r}=s;if(!r)return;let a=typeof r=="string"?document.createTextNode(r):r(s);if(!a)return;"then"in a?a.then(o=>{o&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(o,s)}).catch(o=>At(this.view.state,o,"completion info")):(this.addInfoPane(a,s),i.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,n){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",i.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:s,destroy:r}=e;i.appendChild(s),this.infoDestroy=r||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let n=null;for(let i=this.list.firstChild,s=this.range.from;i;i=i.nextSibling,s++)i.nodeName!="LI"||!i.id?s--:s==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),n=i):i.hasAttribute("aria-selected")&&(i.removeAttribute("aria-selected"),i.removeAttribute("aria-describedby"));return n&&$7(this.list,n),n}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let n=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),r=this.space;if(!r){let a=this.dom.ownerDocument.documentElement;r={left:0,top:0,right:a.clientWidth,bottom:a.clientHeight}}return s.top>Math.min(r.bottom,n.bottom)-10||s.bottom<Math.max(r.top,n.top)+10?null:this.view.state.facet(dt).positionInfo(this.view,n,s,i,r,this.dom)}placeInfo(e){this.info&&(e?(e.style&&(this.info.style.cssText=e.style),this.info.className="cm-tooltip cm-completionInfo "+(e.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(e,n,i){const s=document.createElement("ul");s.id=n,s.setAttribute("role","listbox"),s.setAttribute("aria-expanded","true"),s.setAttribute("aria-label",this.view.state.phrase("Completions")),s.addEventListener("mousedown",a=>{a.target==s&&a.preventDefault()});let r=null;for(let a=i.from;a<i.to;a++){let{completion:o,match:c}=e[a],{section:d}=o;if(d){let f=typeof d=="string"?d:d.name;if(f!=r&&(a>i.from||i.from==0))if(r=f,typeof d!="string"&&d.header)s.appendChild(d.header(d));else{let p=s.appendChild(document.createElement("completion-section"));p.textContent=f}}const u=s.appendChild(document.createElement("li"));u.id=n+"-"+a,u.setAttribute("role","option");let h=this.optionClass(o);h&&(u.className=h);for(let f of this.optionContent){let p=f(o,this.view.state,this.view,c);p&&u.appendChild(p)}}return i.from&&s.classList.add("cm-completionListIncompleteTop"),i.to<e.length&&s.classList.add("cm-completionListIncompleteBottom"),s}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function T7(t,e){return n=>new P7(n,t,e)}function $7(t,e){let n=t.getBoundingClientRect(),i=e.getBoundingClientRect(),s=n.height/t.offsetHeight;i.top<n.top?t.scrollTop-=(n.top-i.top)/s:i.bottom>n.bottom&&(t.scrollTop+=(i.bottom-n.bottom)/s)}function Ap(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function j7(t,e){let n=[],i=null,s=null,r=u=>{n.push(u);let{section:h}=u.completion;if(h){i||(i=[]);let f=typeof h=="string"?h:h.name;i.some(p=>p.name==f)||i.push(typeof h=="string"?{name:f}:h)}},a=e.facet(dt);for(let u of t)if(u.hasResult()){let h=u.result.getMatch;if(u.result.filter===!1)for(let f of u.result.options)r(new Tp(f,u.source,h?h(f):[],1e9-n.length));else{let f=e.sliceDoc(u.from,u.to),p,O=a.filterStrict?new k7(f):new w7(f);for(let g of u.result.options)if(p=O.match(g.label)){let x=g.displayLabel?h?h(g,p.matched):[]:p.matched,b=p.score+(g.boost||0);if(r(new Tp(g,u.source,x,b)),typeof g.section=="object"&&g.section.rank==="dynamic"){let{name:y}=g.section;s||(s=Object.create(null)),s[y]=Math.max(b,s[y]||-1e9)}}}}if(i){let u=Object.create(null),h=0,f=(p,O)=>(p.rank==="dynamic"&&O.rank==="dynamic"?s[O.name]-s[p.name]:0)||(typeof p.rank=="number"?p.rank:1e9)-(typeof O.rank=="number"?O.rank:1e9)||(p.name<O.name?-1:1);for(let p of i.sort(f))h-=1e5,u[p.name]=h;for(let p of n){let{section:O}=p.completion;O&&(p.score+=u[typeof O=="string"?O:O.name])}}let o=[],c=null,d=a.compareCompletions;for(let u of n.sort((h,f)=>f.score-h.score||d(h.completion,f.completion))){let h=u.completion;!c||c.label!=h.label||c.detail!=h.detail||c.type!=null&&h.type!=null&&c.type!=h.type||c.apply!=h.apply||c.boost!=h.boost?o.push(u):Ap(u.completion)>Ap(c)&&(o[o.length-1]=u),c=u.completion}return o}class Bi{constructor(e,n,i,s,r,a){this.options=e,this.attrs=n,this.tooltip=i,this.timestamp=s,this.selected=r,this.disabled=a}setSelected(e,n){return e==this.selected||e>=this.options.length?this:new Bi(this.options,Np(n,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,n,i,s,r,a){if(s&&!a&&e.some(d=>d.isPending))return s.setDisabled();let o=j7(e,n);if(!o.length)return s&&e.some(d=>d.isPending)?s.setDisabled():null;let c=n.facet(dt).selectOnOpen?0:-1;if(s&&s.selected!=c&&s.selected!=-1){let d=s.options[s.selected].completion;for(let u=0;u<o.length;u++)if(o[u].completion==d){c=u;break}}return new Bi(o,Np(i,c),{pos:e.reduce((d,u)=>u.hasResult()?Math.min(d,u.from):d,1e8),create:E7,above:r.aboveCursor},s?s.timestamp:Date.now(),c,!1)}map(e){return new Bi(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new Bi(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class oo{constructor(e,n,i){this.active=e,this.id=n,this.open=i}static start(){return new oo(_7,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:n}=e,i=n.facet(dt),r=(i.override||n.languageDataAt("autocomplete",Pi(n)).map(S7)).map(c=>(this.active.find(u=>u.source==c)||new Bt(c,this.active.some(u=>u.state!=0)?1:0)).update(e,i));r.length==this.active.length&&r.every((c,d)=>c==this.active[d])&&(r=this.active);let a=this.open,o=e.effects.some(c=>c.is(mu));a&&e.docChanged&&(a=a.map(e.changes)),e.selection||r.some(c=>c.hasResult()&&e.changes.touchesRange(c.from,c.to))||!A7(r,this.active)||o?a=Bi.build(r,n,this.id,a,i,o):a&&a.disabled&&!r.some(c=>c.isPending)&&(a=null),!a&&r.every(c=>!c.isPending)&&r.some(c=>c.hasResult())&&(r=r.map(c=>c.hasResult()?new Bt(c.source,0):c));for(let c of e.effects)c.is(Ou)&&(a=a&&a.setSelected(c.value,this.id));return r==this.active&&a==this.open?this:new oo(r,this.id,a)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?N7:R7}}function A7(t,e){if(t==e)return!0;for(let n=0,i=0;;){for(;n<t.length&&!t[n].hasResult();)n++;for(;i<e.length&&!e[i].hasResult();)i++;let s=n==t.length,r=i==e.length;if(s||r)return s==r;if(t[n++].result!=e[i++].result)return!1}}const N7={"aria-autocomplete":"list"},R7={};function Np(t,e){let n={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":t};return e>-1&&(n["aria-activedescendant"]=t+"-"+e),n}const _7=[];function Kg(t,e){if(t.isUserEvent("input.complete")){let i=t.annotation(pu);if(i&&e.activateOnCompletion(i))return 12}let n=t.isUserEvent("input.type");return n&&e.activateOnTyping?5:n?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}class Bt{constructor(e,n,i=!1){this.source=e,this.state=n,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,n){let i=Kg(e,n),s=this;(i&8||i&16&&this.touches(e))&&(s=new Bt(s.source,0)),i&4&&s.state==0&&(s=new Bt(this.source,1)),s=s.updateFor(e,i);for(let r of e.effects)if(r.is(ao))s=new Bt(s.source,1,r.value);else if(r.is(or))s=new Bt(s.source,0);else if(r.is(mu))for(let a of r.value)a.source==s.source&&(s=a);return s}updateFor(e,n){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(Pi(e.state))}}class ns extends Bt{constructor(e,n,i,s,r,a){super(e,3,n),this.limit=i,this.result=s,this.from=r,this.to=a}hasResult(){return!0}updateFor(e,n){var i;if(!(n&3))return this.map(e.changes);let s=this.result;s.map&&!e.changes.empty&&(s=s.map(s,e.changes));let r=e.changes.mapPos(this.from),a=e.changes.mapPos(this.to,1),o=Pi(e.state);if(o>a||!s||n&2&&(Pi(e.startState)==this.from||o<this.limit))return new Bt(this.source,n&4?1:0);let c=e.changes.mapPos(this.limit);return M7(s.validFor,e.state,r,a)?new ns(this.source,this.explicit,c,s,r,a):s.update&&(s=s.update(s,r,a,new Gg(e.state,o,!1)))?new ns(this.source,this.explicit,c,s,s.from,(i=s.to)!==null&&i!==void 0?i:Pi(e.state)):new Bt(this.source,1,this.explicit)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new ns(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new Bt(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}}function M7(t,e,n,i){if(!t)return!1;let s=e.sliceDoc(n,i);return typeof t=="function"?t(s,n,i,e):Hg(t,!0).test(s)}const mu=Pe.define({map(t,e){return t.map(n=>n.map(e))}}),$t=gt.define({create(){return oo.start()},update(t,e){return t.update(e)},provide:t=>[su.from(t,e=>e.tooltip),ie.contentAttributes.from(t,e=>e.attrs)]});function gu(t,e){const n=e.completion.apply||e.completion.label;let i=t.state.field($t).active.find(s=>s.source==e.source);return i instanceof ns?(typeof n=="string"?t.dispatch({...v7(t.state,n,i.from,i.to),annotations:pu.of(e.completion)}):n(t,e.completion,i.from,i.to),!0):!1}const E7=T7($t,gu);function ta(t,e="option"){return n=>{let i=n.state.field($t,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp<n.state.facet(dt).interactionDelay)return!1;let s=1,r;e=="page"&&(r=mg(n,i.open.tooltip))&&(s=Math.max(2,Math.floor(r.dom.offsetHeight/r.dom.querySelector("li").offsetHeight)-1));let{length:a}=i.open.options,o=i.open.selected>-1?i.open.selected+s*(t?1:-1):t?0:a-1;return o<0?o=e=="page"?0:a-1:o>=a&&(o=e=="page"?a-1:0),n.dispatch({effects:Ou.of(o)}),!0}}const I7=t=>{let e=t.state.field($t,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<t.state.facet(dt).interactionDelay?!1:gu(t,e.open.options[e.open.selected])},Bl=t=>t.state.field($t,!1)?(t.dispatch({effects:ao.of(!0)}),!0):!1,L7=t=>{let e=t.state.field($t,!1);return!e||!e.active.some(n=>n.state!=0)?!1:(t.dispatch({effects:or.of(null)}),!0)};class X7{constructor(e,n){this.active=e,this.context=n,this.time=Date.now(),this.updates=[],this.done=void 0}}const Z7=50,D7=1e3,q7=st.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field($t).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field($t),n=t.state.facet(dt);if(!t.selectionSet&&!t.docChanged&&t.startState.field($t)==e)return;let i=t.transactions.some(r=>{let a=Kg(r,n);return a&8||(r.selection||r.docChanged)&&!(a&3)});for(let r=0;r<this.running.length;r++){let a=this.running[r];if(i||a.context.abortOnDocChange&&t.docChanged||a.updates.length+t.transactions.length>Z7&&Date.now()-a.time>D7){for(let o of a.context.abortListeners)try{o()}catch(c){At(this.view.state,c)}a.context.abortListeners=null,this.running.splice(r--,1)}else a.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(r=>r.effects.some(a=>a.is(ao)))&&(this.pendingStart=!0);let s=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(r=>r.isPending&&!this.running.some(a=>a.active.source==r.source))?setTimeout(()=>this.startUpdate(),s):-1,this.composing!=0)for(let r of t.transactions)r.isUserEvent("input.type")?this.composing=2:this.composing==2&&r.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field($t);for(let n of e.active)n.isPending&&!this.running.some(i=>i.active.source==n.source)&&this.startQuery(n);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(dt).updateSyncTime))}startQuery(t){let{state:e}=this.view,n=Pi(e),i=new Gg(e,n,t.explicit,this.view),s=new X7(t,i);this.running.push(s),Promise.resolve(t.source(i)).then(r=>{s.context.aborted||(s.done=r||null,this.scheduleAccept())},r=>{this.view.dispatch({effects:or.of(null)}),At(this.view.state,r)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(dt).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],n=this.view.state.facet(dt),i=this.view.state.field($t);for(let s=0;s<this.running.length;s++){let r=this.running[s];if(r.done===void 0)continue;if(this.running.splice(s--,1),r.done){let o=Pi(r.updates.length?r.updates[0].startState:this.view.state),c=Math.min(o,r.done.from+(r.active.explicit?0:1)),d=new ns(r.active.source,r.active.explicit,c,r.done,r.done.from,(t=r.done.to)!==null&&t!==void 0?t:o);for(let u of r.updates)d=d.update(u,n);if(d.hasResult()){e.push(d);continue}}let a=i.active.find(o=>o.source==r.active.source);if(a&&a.isPending)if(r.done==null){let o=new Bt(r.active.source,0);for(let c of r.updates)o=o.update(c,n);o.isPending||e.push(o)}else this.startQuery(a)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:mu.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field($t,!1);if(e&&e.tooltip&&this.view.state.facet(dt).closeOnBlur){let n=e.open&&mg(this.view,e.open.tooltip);(!n||!n.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:or.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:ao.of(!1)}),20),this.composing=0}}}),W7=typeof navigator=="object"&&/Win/.test(navigator.platform),z7=di.highest(ie.domEventHandlers({keydown(t,e){let n=e.state.field($t,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||t.key.length>1||t.ctrlKey&&!(W7&&t.altKey)||t.metaKey)return!1;let i=n.open.options[n.open.selected],s=n.active.find(a=>a.source==i.source),r=i.completion.commitCharacters||s.result.commitCharacters;return r&&r.indexOf(t.key)>-1&&gu(e,i),!1}})),Jg=ie.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class B7{constructor(e,n,i,s){this.field=e,this.line=n,this.from=i,this.to=s}}class xu{constructor(e,n,i){this.field=e,this.from=n,this.to=i}map(e){let n=e.mapPos(this.from,-1,Ot.TrackDel),i=e.mapPos(this.to,1,Ot.TrackDel);return n==null||i==null?null:new xu(this.field,n,i)}}class bu{constructor(e,n){this.lines=e,this.fieldPositions=n}instantiate(e,n){let i=[],s=[n],r=e.doc.lineAt(n),a=/^\s*/.exec(r.text)[0];for(let c of this.lines){if(i.length){let d=a,u=/^\t*/.exec(c)[0].length;for(let h=0;h<u;h++)d+=e.facet(Mo);s.push(n+d.length-u),c=d+c.slice(u)}i.push(c),n+=c.length+1}let o=this.fieldPositions.map(c=>new xu(c.field,s[c.line]+c.from,s[c.line]+c.to));return{text:i,ranges:o}}static parse(e){let n=[],i=[],s=[],r;for(let a of e.split(/\r\n?|\n/)){for(;r=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(a);){let o=r[1]?+r[1]:null,c=r[2]||r[3]||"",d=-1,u=c.replace(/\\[{}]/g,h=>h[1]);for(let h=0;h<n.length;h++)(o!=null?n[h].seq==o:u&&n[h].name==u)&&(d=h);if(d<0){let h=0;for(;h<n.length&&(o==null||n[h].seq!=null&&n[h].seq<o);)h++;n.splice(h,0,{seq:o,name:u}),d=h;for(let f of s)f.field>=d&&f.field++}for(let h of s)if(h.line==i.length&&h.from>r.index){let f=r[2]?3+(r[1]||"").length:2;h.from-=f,h.to-=f}s.push(new B7(d,i.length,r.index,r.index+u.length)),a=a.slice(0,r.index)+c+a.slice(r.index+r[0].length)}a=a.replace(/\\([{}])/g,(o,c,d)=>{for(let u of s)u.line==i.length&&u.from>d&&(u.from--,u.to--);return c}),i.push(a)}return new bu(i,s)}}let V7=Se.widget({widget:new class extends Qn{toDOM(){let t=document.createElement("span");return t.className="cm-snippetFieldPosition",t}ignoreEvent(){return!1}}}),F7=Se.mark({class:"cm-snippetField"});class ps{constructor(e,n){this.ranges=e,this.active=n,this.deco=Se.set(e.map(i=>(i.from==i.to?V7:F7).range(i.from,i.to)),!0)}map(e){let n=[];for(let i of this.ranges){let s=i.map(e);if(!s)return null;n.push(s)}return new ps(n,this.active)}selectionInsideField(e){return e.ranges.every(n=>this.ranges.some(i=>i.field==this.active&&i.from<=n.from&&i.to>=n.to))}}const vr=Pe.define({map(t,e){return t&&t.map(e)}}),U7=Pe.define(),lr=gt.define({create(){return null},update(t,e){for(let n of e.effects){if(n.is(vr))return n.value;if(n.is(U7)&&t)return new ps(t.ranges,n.value)}return t&&e.docChanged&&(t=t.map(e.changes)),t&&e.selection&&!t.selectionInsideField(e.selection)&&(t=null),t},provide:t=>ie.decorations.from(t,e=>e?e.deco:Se.none)});function yu(t,e){return q.create(t.filter(n=>n.field==e).map(n=>q.range(n.from,n.to)))}function Y7(t){let e=bu.parse(t);return(n,i,s,r)=>{let{text:a,ranges:o}=e.instantiate(n.state,s),{main:c}=n.state.selection,d={changes:{from:s,to:r==c.from?c.to:r,insert:Ze.of(a)},scrollIntoView:!0,annotations:i?[pu.of(i),at.userEvent.of("input.complete")]:void 0};if(o.length&&(d.selection=yu(o,0)),o.some(u=>u.field>0)){let u=new ps(o,0),h=d.effects=[vr.of(u)];n.state.field(lr,!1)===void 0&&h.push(Pe.appendConfig.of([lr,e9,t9,Jg]))}n.dispatch(n.state.update(d))}}function e1(t){return({state:e,dispatch:n})=>{let i=e.field(lr,!1);if(!i||t<0&&i.active==0)return!1;let s=i.active+t,r=t>0&&!i.ranges.some(a=>a.field==s+t);return n(e.update({selection:yu(i.ranges,s),effects:vr.of(r?null:new ps(i.ranges,s)),scrollIntoView:!0})),!0}}const G7=({state:t,dispatch:e})=>t.field(lr,!1)?(e(t.update({effects:vr.of(null)})),!0):!1,H7=e1(1),K7=e1(-1),J7=[{key:"Tab",run:H7,shift:K7},{key:"Escape",run:G7}],Rp=se.define({combine(t){return t.length?t[0]:J7}}),e9=di.highest(Ro.compute([Rp],t=>t.facet(Rp)));function et(t,e){return{...e,apply:Y7(t)}}const t9=ie.domEventHandlers({mousedown(t,e){let n=e.state.field(lr,!1),i;if(!n||(i=e.posAtCoords({x:t.clientX,y:t.clientY}))==null)return!1;let s=n.ranges.find(r=>r.from<=i&&r.to>=i);return!s||s.field==n.active?!1:(e.dispatch({selection:yu(n.ranges,s.field),effects:vr.of(n.ranges.some(r=>r.field>s.field)?new ps(n.ranges,s.field):null),scrollIntoView:!0}),!0)}}),cr={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},ki=Pe.define({map(t,e){let n=e.mapPos(t,-1,Ot.TrackAfter);return n??void 0}}),vu=new class extends ii{};vu.startSide=1;vu.endSide=-1;const t1=gt.define({create(){return Le.empty},update(t,e){if(t=t.map(e.changes),e.selection){let n=e.state.doc.lineAt(e.selection.main.head);t=t.update({filter:i=>i>=n.from&&i<=n.to})}for(let n of e.effects)n.is(ki)&&(t=t.update({add:[vu.range(n.value,n.value+1)]}));return t}});function n9(){return[s9,t1]}const Vl="()[]{}<>«»»«[]{}";function n1(t){for(let e=0;e<Vl.length;e+=2)if(Vl.charCodeAt(e)==t)return Vl.charAt(e+1);return Dd(t<128?t:t+1)}function i1(t,e){return t.languageDataAt("closeBrackets",e)[0]||cr}const i9=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),s9=ie.inputHandler.of((t,e,n,i)=>{if((i9?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let s=t.state.selection.main;if(i.length>2||i.length==2&&pn(Tt(i,0))==1||e!=s.from||n!=s.to)return!1;let r=o9(t.state,i);return r?(t.dispatch(r),!0):!1}),r9=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=i1(t,t.selection.main.head).brackets||cr.brackets,s=null,r=t.changeByRange(a=>{if(a.empty){let o=l9(t.doc,a.head);for(let c of i)if(c==o&&Do(t.doc,a.head)==n1(Tt(c,0)))return{changes:{from:a.head-c.length,to:a.head+c.length},range:q.cursor(a.head-c.length)}}return{range:s=a}});return s||e(t.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!s},a9=[{key:"Backspace",run:r9}];function o9(t,e){let n=i1(t,t.selection.main.head),i=n.brackets||cr.brackets;for(let s of i){let r=n1(Tt(s,0));if(e==s)return r==s?u9(t,s,i.indexOf(s+s+s)>-1,n):c9(t,s,r,n.before||cr.before);if(e==r&&s1(t,t.selection.main.from))return d9(t,s,r)}return null}function s1(t,e){let n=!1;return t.field(t1).between(0,t.doc.length,i=>{i==e&&(n=!0)}),n}function Do(t,e){let n=t.sliceString(e,e+2);return n.slice(0,pn(Tt(n,0)))}function l9(t,e){let n=t.sliceString(e-2,e);return pn(Tt(n,0))==n.length?n:n.slice(1)}function c9(t,e,n,i){let s=null,r=t.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:n,from:a.to}],effects:ki.of(a.to+e.length),range:q.range(a.anchor+e.length,a.head+e.length)};let o=Do(t.doc,a.head);return!o||/\s/.test(o)||i.indexOf(o)>-1?{changes:{insert:e+n,from:a.head},effects:ki.of(a.head+e.length),range:q.cursor(a.head+e.length)}:{range:s=a}});return s?null:t.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function d9(t,e,n){let i=null,s=t.changeByRange(r=>r.empty&&Do(t.doc,r.head)==n?{changes:{from:r.head,to:r.head+n.length,insert:n},range:q.cursor(r.head+n.length)}:i={range:r});return i?null:t.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function u9(t,e,n,i){let s=i.stringPrefixes||cr.stringPrefixes,r=null,a=t.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:e,from:o.to}],effects:ki.of(o.to+e.length),range:q.range(o.anchor+e.length,o.head+e.length)};let c=o.head,d=Do(t.doc,c),u;if(d==e){if(_p(t,c))return{changes:{insert:e+e,from:c},effects:ki.of(c+e.length),range:q.cursor(c+e.length)};if(s1(t,c)){let f=n&&t.sliceDoc(c,c+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:c,to:c+f.length,insert:f},range:q.cursor(c+f.length)}}}else{if(n&&t.sliceDoc(c-2*e.length,c)==e+e&&(u=Mp(t,c-2*e.length,s))>-1&&_p(t,u))return{changes:{insert:e+e+e+e,from:c},effects:ki.of(c+e.length),range:q.cursor(c+e.length)};if(t.charCategorizer(c)(d)!=Je.Word&&Mp(t,c,s)>-1&&!h9(t,c,e,s))return{changes:{insert:e+e,from:c},effects:ki.of(c+e.length),range:q.cursor(c+e.length)}}return{range:r=o}});return r?null:t.update(a,{scrollIntoView:!0,userEvent:"input.type"})}function _p(t,e){let n=Ue(t).resolveInner(e+1);return n.parent&&n.from==e}function h9(t,e,n,i){let s=Ue(t).resolveInner(e,-1),r=i.reduce((a,o)=>Math.max(a,o.length),0);for(let a=0;a<5;a++){let o=t.sliceDoc(s.from,Math.min(s.to,s.from+n.length+r)),c=o.indexOf(n);if(!c||c>-1&&i.indexOf(o.slice(0,c))>-1){let u=s.firstChild;for(;u&&u.from==s.from&&u.to-u.from>n.length+c;){if(t.sliceDoc(u.to-n.length,u.to)==n)return!1;u=u.firstChild}return!0}let d=s.to==e&&s.parent;if(!d)break;s=d}return!1}function Mp(t,e,n){let i=t.charCategorizer(e);if(i(t.sliceDoc(e-1,e))!=Je.Word)return e;for(let s of n){let r=e-s.length;if(t.sliceDoc(r,e)==s&&i(t.sliceDoc(r-1,r))!=Je.Word)return r}return-1}function f9(t={}){return[z7,$t,dt.of(t),q7,p9,Jg]}const r1=[{key:"Ctrl-Space",run:Bl},{mac:"Alt-`",run:Bl},{mac:"Alt-i",run:Bl},{key:"Escape",run:L7},{key:"ArrowDown",run:ta(!0)},{key:"ArrowUp",run:ta(!1)},{key:"PageDown",run:ta(!0,"page")},{key:"PageUp",run:ta(!1,"page")},{key:"Enter",run:I7}],p9=di.highest(Ro.computeN([dt],t=>t.facet(dt).defaultKeymap?[r1]:[])),a1=[et("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),et("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),et("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),et("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),et("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),et(`try {
|
|
37
|
+
\${}
|
|
38
|
+
} catch (\${error}) {
|
|
39
|
+
\${}
|
|
40
|
+
}`,{label:"try",detail:"/ catch block",type:"keyword"}),et("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),et(`if (\${}) {
|
|
41
|
+
\${}
|
|
42
|
+
} else {
|
|
43
|
+
\${}
|
|
44
|
+
}`,{label:"if",detail:"/ else block",type:"keyword"}),et(`class \${name} {
|
|
45
|
+
constructor(\${params}) {
|
|
46
|
+
\${}
|
|
47
|
+
}
|
|
48
|
+
}`,{label:"class",detail:"definition",type:"keyword"}),et('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),et('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],O9=a1.concat([et("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),et("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),et("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Ep=new Xd,o1=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Qs(t){return(e,n)=>{let i=e.node.getChild("VariableDefinition");return i&&n(i,t),!0}}const m9=["FunctionDeclaration"],g9={FunctionDeclaration:Qs("function"),ClassDeclaration:Qs("class"),ClassExpression:()=>!0,EnumDeclaration:Qs("constant"),TypeAliasDeclaration:Qs("type"),NamespaceDeclaration:Qs("namespace"),VariableDefinition(t,e){t.matchContext(m9)||e(t,"variable")},TypeDefinition(t,e){e(t,"type")},__proto__:null};function l1(t,e){let n=Ep.get(e);if(n)return n;let i=[],s=!0;function r(a,o){let c=t.sliceString(a.from,a.to);i.push({label:c,type:o})}return e.cursor(qe.IncludeAnonymous).iterate(a=>{if(s)s=!1;else if(a.name){let o=g9[a.name];if(o&&o(a,r)||o1.has(a.name))return!1}else if(a.to-a.from>8192){for(let o of l1(t,a.node))i.push(o);return!1}}),Ep.set(e,i),i}const Ip=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,c1=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function x9(t){let e=Ue(t.state).resolveInner(t.pos,-1);if(c1.indexOf(e.name)>-1)return null;let n=e.name=="VariableName"||e.to-e.from<20&&Ip.test(t.state.sliceDoc(e.from,e.to));if(!n&&!t.explicit)return null;let i=[];for(let s=e;s;s=s.parent)o1.has(s.name)&&(i=i.concat(l1(t.state.doc,s)));return{options:i,from:n?e.from:t.pos,validFor:Ip}}const vn=wn.define({name:"javascript",parser:b7.configure({props:[ui.add({IfStatement:Ci({except:/^\s*({|else\b)/}),TryStatement:Ci({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:x6,SwitchBody:t=>{let e=t.textAfter,n=/^\s*\}/.test(e),i=/^\s*(case|default)\b/.test(e);return t.baseIndent+(n?0:i?1:2)*t.unit},Block:ka({closing:"}"}),ArrowFunction:t=>t.baseIndent+t.unit,"TemplateString BlockComment":()=>null,"Statement Property":Ci({except:/^\s*{/}),JSXElement(t){let e=/^\s*<\//.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},JSXEscape(t){let e=/\s*\}/.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},"JSXOpenTag JSXSelfClosingTag"(t){return t.column(t.node.from)+t.unit}}),hi.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Io,BlockComment(t){return{from:t.from+2,to:t.to-2}},JSXElement(t){let e=t.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let n=t.lastChild;return{from:e.to,to:n.type.isError?t.to:n.from}},"JSXSelfClosingTag JSXOpenTag"(t){var e;let n=(e=t.firstChild)===null||e===void 0?void 0:e.nextSibling,i=t.lastChild;return!n||n.type.isError?null:{from:n.to,to:i.type.isError?t.to:i.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),d1={test:t=>/^JSX/.test(t.name),facet:Sg({commentTokens:{block:{open:"{/*",close:"*/}"}}})},u1=vn.configure({dialect:"ts"},"typescript"),h1=vn.configure({dialect:"jsx",props:[au.add(t=>t.isTop?[d1]:void 0)]}),f1=vn.configure({dialect:"jsx ts",props:[au.add(t=>t.isTop?[d1]:void 0)]},"typescript");let p1=t=>({label:t,type:"keyword"});const O1="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(p1),b9=O1.concat(["declare","implements","private","protected","public"].map(p1));function Rs(t={}){let e=t.jsx?t.typescript?f1:h1:t.typescript?u1:vn,n=t.typescript?O9.concat(b9):a1.concat(O1);return new _i(e,[vn.data.of({autocomplete:fu(c1,Zo(n))}),vn.data.of({autocomplete:x9}),t.jsx?S9:[]])}function y9(t){for(;;){if(t.name=="JSXOpenTag"||t.name=="JSXSelfClosingTag"||t.name=="JSXFragmentTag")return t;if(t.name=="JSXEscape"||!t.parent)return null;t=t.parent}}function Lp(t,e,n=t.length){for(let i=e==null?void 0:e.firstChild;i;i=i.nextSibling)if(i.name=="JSXIdentifier"||i.name=="JSXBuiltin"||i.name=="JSXNamespacedName"||i.name=="JSXMemberExpression")return t.sliceString(i.from,Math.min(i.to,n));return""}const v9=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),S9=ie.inputHandler.of((t,e,n,i,s)=>{if((v9?t.composing:t.compositionStarted)||t.state.readOnly||e!=n||i!=">"&&i!="/"||!vn.isActiveAt(t.state,e,-1))return!1;let r=s(),{state:a}=r,o=a.changeByRange(c=>{var d;let{head:u}=c,h=Ue(a).resolveInner(u-1,-1),f;if(h.name=="JSXStartTag"&&(h=h.parent),!(a.doc.sliceString(u-1,u)!=i||h.name=="JSXAttributeValue"&&h.to>u)){if(i==">"&&h.name=="JSXFragmentTag")return{range:c,changes:{from:u,insert:"</>"}};if(i=="/"&&h.name=="JSXStartCloseTag"){let p=h.parent,O=p.parent;if(O&&p.from==u-2&&((f=Lp(a.doc,O.firstChild,u))||((d=O.firstChild)===null||d===void 0?void 0:d.name)=="JSXFragmentTag")){let g=`${f}>`;return{range:q.cursor(u+g.length,-1),changes:{from:u,insert:g}}}}else if(i==">"){let p=y9(h);if(p&&p.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(a.doc.sliceString(u,u+2))&&(f=Lp(a.doc,p,u)))return{range:c,changes:{from:u,insert:`</${f}>`}}}}return{range:c}});return o.changes.empty?!1:(t.dispatch([r,a.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),Cs=["_blank","_self","_top","_parent"],Fl=["ascii","utf-8","utf-16","latin1","latin1"],Ul=["get","post","put","delete"],Yl=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Et=["true","false"],Oe={},w9={a:{attrs:{href:null,ping:null,type:null,media:null,target:Cs,hreflang:null}},abbr:Oe,address:Oe,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:Oe,aside:Oe,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:Oe,base:{attrs:{href:null,target:Cs}},bdi:Oe,bdo:Oe,blockquote:{attrs:{cite:null}},body:Oe,br:Oe,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Yl,formmethod:Ul,formnovalidate:["novalidate"],formtarget:Cs,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:Oe,center:Oe,cite:Oe,code:Oe,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:Oe,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:Oe,div:Oe,dl:Oe,dt:Oe,em:Oe,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:Oe,figure:Oe,footer:Oe,form:{attrs:{action:null,name:null,"accept-charset":Fl,autocomplete:["on","off"],enctype:Yl,method:Ul,novalidate:["novalidate"],target:Cs}},h1:Oe,h2:Oe,h3:Oe,h4:Oe,h5:Oe,h6:Oe,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:Oe,hgroup:Oe,hr:Oe,html:{attrs:{manifest:null}},i:Oe,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Yl,formmethod:Ul,formnovalidate:["novalidate"],formtarget:Cs,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:Oe,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:Oe,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:Oe,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Fl,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:Oe,noscript:Oe,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:Oe,param:{attrs:{name:null,value:null}},pre:Oe,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:Oe,rt:Oe,ruby:Oe,samp:Oe,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Fl}},section:Oe,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:Oe,source:{attrs:{src:null,type:null,media:null}},span:Oe,strong:Oe,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:Oe,summary:Oe,sup:Oe,table:Oe,tbody:Oe,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:Oe,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:Oe,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:Oe,time:{attrs:{datetime:null}},title:Oe,tr:Oe,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:Oe,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:Oe},m1={accesskey:null,class:null,contenteditable:Et,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:Et,autocorrect:Et,autocapitalize:Et,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":Et,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Et,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Et,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Et,"aria-hidden":Et,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Et,"aria-multiselectable":Et,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Et,"aria-relevant":null,"aria-required":Et,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},g1="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(t=>"on"+t);for(let t of g1)m1[t]=null;class lo{constructor(e,n){this.tags={...w9,...e},this.globalAttrs={...m1,...n},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}lo.default=new lo;function cs(t,e,n=t.length){if(!e)return"";let i=e.firstChild,s=i&&i.getChild("TagName");return s?t.sliceString(s.from,Math.min(s.to,n)):""}function ds(t,e=!1){for(;t;t=t.parent)if(t.name=="Element")if(e)e=!1;else return t;return null}function x1(t,e,n){let i=n.tags[cs(t,ds(e))];return(i==null?void 0:i.children)||n.allTags}function Su(t,e){let n=[];for(let i=ds(e);i&&!i.type.isTop;i=ds(i.parent)){let s=cs(t,i);if(s&&i.lastChild.name=="CloseTag")break;s&&n.indexOf(s)<0&&(e.name=="EndTag"||e.from>=i.firstChild.to)&&n.push(s)}return n}const b1=/^[:\-\.\w\u00b7-\uffff]*$/;function Xp(t,e,n,i,s){let r=/\s*>/.test(t.sliceDoc(s,s+5))?"":">",a=ds(n,n.name=="StartTag"||n.name=="TagName");return{from:i,to:s,options:x1(t.doc,a,e).map(o=>({label:o,type:"type"})).concat(Su(t.doc,n).map((o,c)=>({label:"/"+o,apply:"/"+o+r,type:"type",boost:99-c}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function Zp(t,e,n,i){let s=/\s*>/.test(t.sliceDoc(i,i+5))?"":">";return{from:n,to:i,options:Su(t.doc,e).map((r,a)=>({label:r,apply:r+s,type:"type",boost:99-a})),validFor:b1}}function k9(t,e,n,i){let s=[],r=0;for(let a of x1(t.doc,n,e))s.push({label:"<"+a,type:"type"});for(let a of Su(t.doc,n))s.push({label:"</"+a+">",type:"type",boost:99-r++});return{from:i,to:i,options:s,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function Q9(t,e,n,i,s){let r=ds(n),a=r?e.tags[cs(t.doc,r)]:null,o=a&&a.attrs?Object.keys(a.attrs):[],c=a&&a.globalAttrs===!1?o:o.length?o.concat(e.globalAttrNames):e.globalAttrNames;return{from:i,to:s,options:c.map(d=>({label:d,type:"property"})),validFor:b1}}function C9(t,e,n,i,s){var r;let a=(r=n.parent)===null||r===void 0?void 0:r.getChild("AttributeName"),o=[],c;if(a){let d=t.sliceDoc(a.from,a.to),u=e.globalAttrs[d];if(!u){let h=ds(n),f=h?e.tags[cs(t.doc,h)]:null;u=(f==null?void 0:f.attrs)&&f.attrs[d]}if(u){let h=t.sliceDoc(i,s).toLowerCase(),f='"',p='"';/^['"]/.test(h)?(c=h[0]=='"'?/^[^"]*$/:/^[^']*$/,f="",p=t.sliceDoc(s,s+1)==h[0]?"":h[0],h=h.slice(1),i++):c=/^[^\s<>='"]*$/;for(let O of u)o.push({label:O,apply:f+O+p,type:"constant"})}}return{from:i,to:s,options:o,validFor:c}}function P9(t,e){let{state:n,pos:i}=e,s=Ue(n).resolveInner(i,-1),r=s.resolve(i);for(let a=i,o;r==s&&(o=s.childBefore(a));){let c=o.lastChild;if(!c||!c.type.isError||c.from<c.to)break;r=s=o,a=c.from}return s.name=="TagName"?s.parent&&/CloseTag$/.test(s.parent.name)?Zp(n,s,s.from,i):Xp(n,t,s,s.from,i):s.name=="StartTag"||s.name=="IncompleteTag"?Xp(n,t,s,i,i):s.name=="StartCloseTag"||s.name=="IncompleteCloseTag"?Zp(n,s,i,i):s.name=="OpenTag"||s.name=="SelfClosingTag"||s.name=="AttributeName"?Q9(n,t,s,s.name=="AttributeName"?s.from:i,i):s.name=="Is"||s.name=="AttributeValue"||s.name=="UnquotedAttributeValue"?C9(n,t,s,s.name=="Is"?i:s.from,i):e.explicit&&(r.name=="Element"||r.name=="Text"||r.name=="Document")?k9(n,t,s,i):null}function T9(t){let{extraTags:e,extraGlobalAttributes:n}=t,i=n||e?new lo(e,n):lo.default;return s=>P9(i,s)}const $9=vn.parser.configure({top:"SingleExpression"}),y1=[{tag:"script",attrs:t=>t.type=="text/typescript"||t.lang=="ts",parser:u1.parser},{tag:"script",attrs:t=>t.type=="text/babel"||t.type=="text/jsx",parser:h1.parser},{tag:"script",attrs:t=>t.type=="text/typescript-jsx",parser:f1.parser},{tag:"script",attrs(t){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(t.type)},parser:$9},{tag:"script",attrs(t){return!t.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(t.type)},parser:vn.parser},{tag:"style",attrs(t){return(!t.lang||t.lang=="css")&&(!t.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(t.type))},parser:so.parser}],v1=[{name:"style",parser:so.parser.configure({top:"Styles"})}].concat(g1.map(t=>({name:t,parser:vn.parser}))),S1=wn.define({name:"html",parser:qC.configure({props:[ui.add({Element(t){let e=/^(\s*)(<\/)?/.exec(t.textAfter);return t.node.to<=t.pos+e[0].length?t.continue():t.lineIndent(t.node.from)+(e[2]?0:t.unit)},"OpenTag CloseTag SelfClosingTag"(t){return t.column(t.node.from)+t.unit},Document(t){if(t.pos+/\s*/.exec(t.textAfter)[0].length<t.node.to)return t.continue();let e=null,n;for(let i=t.node;;){let s=i.lastChild;if(!s||s.name!="Element"||s.to!=i.to)break;e=i=s}return e&&!((n=e.lastChild)&&(n.name=="CloseTag"||n.name=="SelfClosingTag"))?t.lineIndent(e.from)+t.unit:null}}),hi.add({Element(t){let e=t.firstChild,n=t.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:n.name=="CloseTag"?n.from:t.to}}}),cu.add({"OpenTag CloseTag":t=>t.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),Qa=S1.configure({wrap:Ug(y1,v1)});function j9(t={}){let e="",n;t.matchClosingTags===!1&&(e="noMatch"),t.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(t.nestedLanguages&&t.nestedLanguages.length||t.nestedAttributes&&t.nestedAttributes.length)&&(n=Ug((t.nestedLanguages||[]).concat(y1),(t.nestedAttributes||[]).concat(v1)));let i=n?S1.configure({wrap:n,dialect:e}):e?Qa.configure({dialect:e}):Qa;return new _i(i,[Qa.data.of({autocomplete:T9(t)}),t.autoCloseTags!==!1?A9:[],Rs().support,Lg().support])}const Dp=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),A9=ie.inputHandler.of((t,e,n,i,s)=>{if(t.composing||t.state.readOnly||e!=n||i!=">"&&i!="/"||!Qa.isActiveAt(t.state,e,-1))return!1;let r=s(),{state:a}=r,o=a.changeByRange(c=>{var d,u,h;let f=a.doc.sliceString(c.from-1,c.to)==i,{head:p}=c,O=Ue(a).resolveInner(p,-1),g;if(f&&i==">"&&O.name=="EndTag"){let x=O.parent;if(((u=(d=x.parent)===null||d===void 0?void 0:d.lastChild)===null||u===void 0?void 0:u.name)!="CloseTag"&&(g=cs(a.doc,x.parent,p))&&!Dp.has(g)){let b=p+(a.doc.sliceString(p,p+1)===">"?1:0),y=`</${g}>`;return{range:c,changes:{from:p,to:b,insert:y}}}}else if(f&&i=="/"&&O.name=="IncompleteCloseTag"){let x=O.parent;if(O.from==p-2&&((h=x.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(g=cs(a.doc,x,p))&&!Dp.has(g)){let b=p+(a.doc.sliceString(p,p+1)===">"?1:0),y=`${g}>`;return{range:q.cursor(p+y.length,-1),changes:{from:p,to:b,insert:y}}}}return{range:c}});return o.changes.empty?!1:(t.dispatch([r,a.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),N9=ci({String:k.string,Number:k.number,"True False":k.bool,PropertyName:k.propertyName,Null:k.null,", :":k.separator,"[ ]":k.squareBracket,"{ }":k.brace}),R9=Sn.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[N9],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),_9=wn.define({name:"json",parser:R9.configure({props:[ui.add({Object:Ci({except:/^\s*\}/}),Array:Ci({except:/^\s*\]/})}),hi.add({"Object Array":Io})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function M9(){return new _i(_9)}const E9=1,w1=194,k1=195,I9=196,qp=197,L9=198,X9=199,Z9=200,D9=2,Q1=3,Wp=201,q9=24,W9=25,z9=49,B9=50,V9=55,F9=56,U9=57,Y9=59,G9=60,H9=61,K9=62,J9=63,eP=65,tP=238,nP=71,iP=241,sP=242,rP=243,aP=244,oP=245,lP=246,cP=247,dP=248,C1=72,uP=249,hP=250,fP=251,pP=252,OP=253,mP=254,gP=255,xP=256,bP=73,yP=77,vP=263,SP=112,wP=130,kP=151,QP=152,CP=155,Ri=10,dr=13,wu=32,qo=9,ku=35,PP=40,TP=46,rd=123,zp=125,P1=39,T1=34,Bp=92,$P=111,jP=120,AP=78,NP=117,RP=85,_P=new Set([W9,z9,B9,vP,eP,wP,F9,U9,tP,K9,J9,C1,bP,yP,G9,H9,kP,QP,CP,SP]);function Gl(t){return t==Ri||t==dr}function Hl(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}const MP=new ot((t,e)=>{let n;if(t.next<0)t.acceptToken(X9);else if(e.context.flags&Ca)Gl(t.next)&&t.acceptToken(L9,1);else if(((n=t.peek(-1))<0||Gl(n))&&e.canShift(qp)){let i=0;for(;t.next==wu||t.next==qo;)t.advance(),i++;(t.next==Ri||t.next==dr||t.next==ku)&&t.acceptToken(qp,-i)}else Gl(t.next)&&t.acceptToken(I9,1)},{contextual:!0}),EP=new ot((t,e)=>{let n=e.context;if(n.flags)return;let i=t.peek(-1);if(i==Ri||i==dr){let s=0,r=0;for(;;){if(t.next==wu)s++;else if(t.next==qo)s+=8-s%8;else break;t.advance(),r++}s!=n.indent&&t.next!=Ri&&t.next!=dr&&t.next!=ku&&(s<n.indent?t.acceptToken(k1,-r):t.acceptToken(w1))}}),Ca=1,$1=2,Tn=4,$n=8,jn=16,An=32;function Pa(t,e,n){this.parent=t,this.indent=e,this.flags=n,this.hash=(t?t.hash+t.hash<<8:0)+e+(e<<4)+n+(n<<6)}const IP=new Pa(null,0,0);function LP(t){let e=0;for(let n=0;n<t.length;n++)e+=t.charCodeAt(n)==qo?8-e%8:1;return e}const Vp=new Map([[iP,0],[sP,Tn],[rP,$n],[aP,$n|Tn],[oP,jn],[lP,jn|Tn],[cP,jn|$n],[dP,jn|$n|Tn],[uP,An],[hP,An|Tn],[fP,An|$n],[pP,An|$n|Tn],[OP,An|jn],[mP,An|jn|Tn],[gP,An|jn|$n],[xP,An|jn|$n|Tn]].map(([t,e])=>[t,e|$1])),XP=new Co({start:IP,reduce(t,e,n,i){return t.flags&Ca&&_P.has(e)||(e==nP||e==C1)&&t.flags&$1?t.parent:t},shift(t,e,n,i){return e==w1?new Pa(t,LP(i.read(i.pos,n.pos)),0):e==k1?t.parent:e==q9||e==V9||e==Y9||e==Q1?new Pa(t,0,Ca):Vp.has(e)?new Pa(t,0,Vp.get(e)|t.flags&Ca):t},hash(t){return t.hash}}),ZP=new ot(t=>{for(let e=0;e<5;e++){if(t.next!="print".charCodeAt(e))return;t.advance()}if(!/\w/.test(String.fromCharCode(t.next)))for(let e=0;;e++){let n=t.peek(e);if(!(n==wu||n==qo)){n!=PP&&n!=TP&&n!=Ri&&n!=dr&&n!=ku&&t.acceptToken(E9);return}}}),DP=new ot((t,e)=>{let{flags:n}=e.context,i=n&Tn?T1:P1,s=(n&$n)>0,r=!(n&jn),a=(n&An)>0,o=t.pos;for(;!(t.next<0);)if(a&&t.next==rd)if(t.peek(1)==rd)t.advance(2);else{if(t.pos==o){t.acceptToken(Q1,1);return}break}else if(r&&t.next==Bp){if(t.pos==o){t.advance();let c=t.next;c>=0&&(t.advance(),qP(t,c)),t.acceptToken(D9);return}break}else if(t.next==Bp&&!r&&t.peek(1)>-1)t.advance(2);else if(t.next==i&&(!s||t.peek(1)==i&&t.peek(2)==i)){if(t.pos==o){t.acceptToken(Wp,s?3:1);return}break}else if(t.next==Ri){if(s)t.advance();else if(t.pos==o){t.acceptToken(Wp);return}break}else t.advance();t.pos>o&&t.acceptToken(Z9)});function qP(t,e){if(e==$P)for(let n=0;n<2&&t.next>=48&&t.next<=55;n++)t.advance();else if(e==jP)for(let n=0;n<2&&Hl(t.next);n++)t.advance();else if(e==NP)for(let n=0;n<4&&Hl(t.next);n++)t.advance();else if(e==RP)for(let n=0;n<8&&Hl(t.next);n++)t.advance();else if(e==AP&&t.next==rd){for(t.advance();t.next>=0&&t.next!=zp&&t.next!=P1&&t.next!=T1&&t.next!=Ri;)t.advance();t.next==zp&&t.advance()}}const WP=ci({'async "*" "**" FormatConversion FormatSpec':k.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":k.controlKeyword,"in not and or is del":k.operatorKeyword,"from def class global nonlocal lambda":k.definitionKeyword,import:k.moduleKeyword,"with as print":k.keyword,Boolean:k.bool,None:k.null,VariableName:k.variableName,"CallExpression/VariableName":k.function(k.variableName),"FunctionDefinition/VariableName":k.function(k.definition(k.variableName)),"ClassDefinition/VariableName":k.definition(k.className),PropertyName:k.propertyName,"CallExpression/MemberExpression/PropertyName":k.function(k.propertyName),Comment:k.lineComment,Number:k.number,String:k.string,FormatString:k.special(k.string),Escape:k.escape,UpdateOp:k.updateOperator,"ArithOp!":k.arithmeticOperator,BitOp:k.bitwiseOperator,CompareOp:k.compareOperator,AssignOp:k.definitionOperator,Ellipsis:k.punctuation,At:k.meta,"( )":k.paren,"[ ]":k.squareBracket,"{ }":k.brace,".":k.derefOperator,", ;":k.separator}),zP={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},BP=Sn.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyO<POWO,5:aOOQS,5:a,5:aO<[QdO'#HwOOOW'#Dw'#DwOOOW'#Fz'#FzO<lOWO,5:bOOQS,5:b,5:bOOQS'#F}'#F}O<zQtO,5:iO?lQtO,5=`O@VQ#xO,5=`O@vQtO,5=`OOQS,5:},5:}OA_QeO'#GWOBqQdO,5;^OOQV,5=^,5=^OB|QtO'#IPOCkQdO,5;tOOQS-E:[-E:[OOQV,5;s,5;sO4dQdO'#FQOOQV-E9o-E9oOCsQtO,59]OEzQtO,59iOFeQdO'#HVOFpQdO'#HVO1XQdO'#HVOF{QdO'#DTOGTQdO,59mOGYQdO'#HZO'vQdO'#HZO0rQdO,5=tOOQS,5=t,5=tO0rQdO'#EROOQS'#ES'#ESOGwQdO'#GPOHXQdO,58|OHXQdO,58|O*xQdO,5:oOHgQtO'#H]OOQS,5:r,5:rOOQS,5:z,5:zOHzQdO,5;OOI]QdO'#IOO1XQdO'#H}OOQS,5;Q,5;QOOQS'#GT'#GTOIqQtO,5;QOJPQdO,5;QOJUQdO'#IQOOQS,5;T,5;TOJdQdO'#H|OOQS,5;W,5;WOJuQdO,5;YO4iQdO,5;`O4iQdO,5;cOJ}QtO'#ITO'vQdO'#ITOKXQdO,5;eO4VQdO,5;eO0rQdO,5;jO1XQdO,5;lOK^QeO'#EuOLjQgO,5;fO!!kQdO'#IUO4iQdO,5;jO!!vQdO,5;lO!#OQdO,5;qO!#ZQtO,5;vO'vQdO,5;vPOOO,5=[,5=[P!#bOSO,5=[P!#jOdO,5=[O!&bQtO1G.jO!&iQtO1G.jO!)YQtO1G.jO!)dQtO1G.jO!+}QtO1G.jO!,bQtO1G.jO!,uQdO'#HcO!-TQtO'#GuO0rQdO'#HcO!-_QdO'#HbOOQS,5:Z,5:ZO!-gQdO,5:ZO!-lQdO'#HeO!-wQdO'#HeO!.[QdO,5>OOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5<jOOQS,5<j,5<jOOQS-E9|-E9|OOQS,5<r,5<rOOQS-E:U-E:UOOQV1G0x1G0xO1XQdO'#GRO!7dQtO,5>kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5<k,5<kOOQS-E9}-E9}O!9wQdO1G.hOOQS1G0Z1G0ZO!:VQdO,5=wO!:gQdO,5=wO0rQdO1G0jO0rQdO1G0jO!:xQdO,5>jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!<RQdO,5>lO!<aQdO,5>lO!<oQdO,5>hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5<m,5<mOOQS-E:P-E:POOQS7+&z7+&zOOQS1G3]1G3]OOQS,5<^,5<^OOQS-E9p-E9pOOQS7+$s7+$sO#)bQdO,5=`O#){QdO,5=`O#*^QtO,5<aO#*qQdO1G3cOOQS-E9s-E9sOOQS7+&U7+&UO#+RQdO7+&UO#+aQdO,5<nO#+uQdO1G4UOOQS-E:Q-E:QO#,WQdO1G4UOOQS1G4T1G4TOOQS7+&W7+&WO#,iQdO7+&WOOQS,5<p,5<pO#,tQdO1G4WOOQS-E:S-E:SOOQS,5<l,5<lO#-SQdO1G4SOOQS-E:O-E:OO1XQdO'#EqO#-jQdO'#EqO#-uQdO'#IRO#-}QdO,5;[OOQS7+&`7+&`O0rQdO7+&`O#.SQgO7+&fO!JmQdO'#GXO4iQdO7+&fO4iQdO7+&iO#2QQtO,5<tO'vQdO,5<tO#2[QdO1G4ZOOQS-E:W-E:WO#2fQdO1G4ZO4iQdO7+&kO0rQdO7+&kOOQV7+&p7+&pO!KrQ!fO7+&rO!KzQdO7+&rO`QeO1G0{OOQV-E:X-E:XO4iQdO7+&lO4iQdO7+&lOOQV,5<u,5<uO#2nQdO,5<uO!JmQdO,5<uOOQV7+&l7+&lO#2yQgO7+&lO#6tQdO,5<vO#7PQdO1G4[OOQS-E:Y-E:YO#7^QdO1G4[O#7fQdO'#IWO#7tQdO'#IWO1XQdO'#IWOOQS'#IW'#IWO#8PQdO'#IVOOQS,5;n,5;nO#8XQdO,5;nO0rQdO'#FUOOQV7+&r7+&rO4iQdO7+&rOOQV7+&w7+&wO4iQdO7+&wO#8^QfO,5;xOOQV7+&|7+&|POOO7+(b7+(bO#8cQdO1G3iOOQS,5<c,5<cO#8qQdO1G3hOOQS-E9u-E9uO#9UQdO,5<dO#9aQdO,5<dO#9tQdO1G3kOOQS-E9v-E9vO#:UQdO1G3kO#:^QdO1G3kO#:nQdO1G3kO#:UQdO1G3kOOQS<<H[<<H[O#:yQtO1G1zOOQS<<Hk<<HkP#;WQdO'#FtO8vQdO1G3bO#;eQdO1G3bO#;jQdO<<HkOOQS<<Hl<<HlO#;zQdO7+)QOOQS<<Hs<<HsO#<[QtO1G1yP#<{QdO'#FsO#=YQdO7+)RO#=jQdO7+)RO#=rQdO<<HwO#=wQdO7+({OOQS<<Hy<<HyO#>nQdO,5<bO'vQdO,5<bOOQS-E9t-E9tOOQS<<Hw<<HwOOQS,5<g,5<gO0rQdO,5<gO#>sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<<IpO1XQdO1G2YP1XQdO'#GSO#AOQdO7+)pO#AaQdO7+)pOOQS<<Ir<<IrP1XQdO'#GUP0rQdO'#GQOOQS,5;],5;]O#ArQdO,5>mO#BQQdO,5>mOOQS1G0v1G0vOOQS<<Iz<<IzOOQV-E:V-E:VO4iQdO<<JQOOQV,5<s,5<sO4iQdO,5<sOOQV<<JQ<<JQOOQV<<JT<<JTO#BYQtO1G2`P#BdQdO'#GYO#BkQdO7+)uO#BuQgO<<JVO4iQdO<<JVOOQV<<J^<<J^O4iQdO<<J^O!KrQ!fO<<J^O#FpQgO7+&gOOQV<<JW<<JWO#FzQgO<<JWOOQV1G2a1G2aO1XQdO1G2aO#JuQdO1G2aO4iQdO<<JWO1XQdO1G2bP0rQdO'#G[O#KQQdO7+)vO#K_QdO7+)vOOQS'#FT'#FTO0rQdO,5>rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<<Jc<<JcO#LhQdO1G1dOOQS7+)T7+)TP#LmQdO'#FwO#L}QdO1G2OO#MbQdO1G2OO#MrQdO1G2OP#M}QdO'#FxO#N[QdO7+)VO#NlQdO7+)VO#NlQdO7+)VO#NtQdO7+)VO$ UQdO7+(|O8vQdO7+(|OOQSAN>VAN>VO$ oQdO<<LmOOQSAN>cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<<MT<<MTO$#nQdO7+(fOOQSAN?[AN?[OOQS7+'t7+'tO$$XQdO<<M[OOQS,5<q,5<qO$$jQdO1G4XOOQS-E:T-E:TOOQVAN?lAN?lOOQV1G2_1G2_O4iQdOAN?qO$$xQgOAN?qOOQVAN?xAN?xO4iQdOAN?xOOQV<<JR<<JRO4iQdOAN?rO4iQdO7+'{OOQV7+'{7+'{O1XQdO7+'{OOQVAN?rAN?rOOQS7+'|7+'|O$(sQdO<<MbOOQS1G4^1G4^O0rQdO1G4^OOQS,5<w,5<wO$)QQdO1G4]OOQS-E:Z-E:ZOOQU'#G_'#G_O$)cQfO7+'OO$)nQdO'#F_O$*uQdO7+'jO$+VQdO7+'jOOQS7+'j7+'jO$+bQdO<<LqO$+rQdO<<LqO$+rQdO<<LqO$+zQdO'#H^OOQS<<Lh<<LhO$,UQdO<<LhOOQS7+'h7+'hOOQS'#D|'#D|OOOO1G4R1G4RO$,oQdO1G4RO$,wQdO1G4RP!=hQdO'#GVOOQVG25]G25]O4iQdOG25]OOQVG25dG25dOOQVG25^G25^OOQV<<Kg<<KgO4iQdO<<KgOOQS7+)x7+)xP$-SQdO'#G]OOQU-E:]-E:]OOQV<<Jj<<JjO$-vQtO'#FaOOQS'#Fc'#FcO$.WQdO'#FbO$.xQdO'#FbOOQS'#Fb'#FbO$.}QdO'#IYO$)nQdO'#FiO$)nQdO'#FiO$/fQdO'#FjO$)nQdO'#FkO$/mQdO'#IZOOQS'#IZ'#IZO$0[QdO,5;yOOQS<<KU<<KUO$0dQdO<<KUO$0tQdOANB]O$1UQdOANB]O$1^QdO'#H_OOQS'#H_'#H_O1sQdO'#DcO$1wQdO,5=xOOQSANBSANBSOOOO7+)m7+)mO$2`QdO7+)mOOQVLD*wLD*wOOQVANARANARO5uQ!fO'#GaO$2hQtO,5<SO$)nQdO'#FmOOQS,5<W,5<WOOQS'#Fd'#FdO$3YQdO,5;|O$3_QdO,5;|OOQS'#Fg'#FgO$)nQdO'#G`O$4PQdO,5<QO$4kQdO,5>tO$4{QdO,5>tO1XQdO,5<PO$5^QdO,5<TO$5cQdO,5<TO$)nQdO'#I[O$5hQdO'#I[O$5mQdO,5<UOOQS,5<V,5<VO0rQdO'#FpOOQU1G1e1G1eO4iQdO1G1eOOQSAN@pAN@pO$5rQdOG27wO$6SQdO,59}OOQS1G3d1G3dOOOO<<MX<<MXOOQS,5<{,5<{OOQS-E:_-E:_O$6XQtO'#FaO$6`QdO'#I]O$6nQdO'#I]O$6vQdO,5<XOOQS1G1h1G1hO$6{QdO1G1hO$7QQdO,5<zOOQS-E:^-E:^O$7lQdO,5=OO$8TQdO1G4`OOQS-E:b-E:bOOQS1G1k1G1kOOQS1G1o1G1oO$8eQdO,5>vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5<YO$8sQdO,5>wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5<ZP$)nQdO'#GcO$;XQdO1G2hO$)nQdO1G2hP$;gQdO'#GbO$;nQdO<<MhO$;xQdO1G1uO$<WQdO7+(SO8vQdO'#C}O8vQdO,59bO8vQdO,59bO8vQdO,59bO$<fQtO,5=`O8vQdO1G.|O0rQdO1G/XO0rQdO7+$pP$<yQdO'#GOO'vQdO'#GtO$=WQdO,59bO$=]QdO,59bO$=dQdO,59mO$=iQdO1G/UO1sQdO'#DRO8vQdO,59j",stateData:"$>S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!<S!<VP!<_!<h!=d!=g]eOn#g$j)t,P'}`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r{!cQ#c#p$R$d$p%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g}!dQ#c#p$R$d$p$u%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!P!eQ#c#p$R$d$p$u$v%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!R!fQ#c#p$R$d$p$u$v$w%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!T!gQ#c#p$R$d$p$u$v$w$x%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!V!hQ#c#p$R$d$p$u$v$w$x$y%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g!Z!hQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0g'}TOTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0r&eVOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0r%oXOYZ[dnrxy}!P!Q!U!i!k#[#d#g#y#{#}$Q$h$j$}%S%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#vqQ/[.kR0o0q't`OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rh#jhz{$W$Z&l&q)S)X+f+g-RW#rq&].k0qQ$]|Q$a!OQ$n!VQ$o!WW$|!i'm*d,gS&[#s#tQ'S$iQ(s&UQ)U&nU)Y&s)Z+jW)a&w+m-T-{Q*Q']W*R'_,`-h.TQ+l)`S,_*S*TQ-Q+eQ-_,TQ-c,WQ.R-al.W-l.^._.a.z.|/R/j/o/t/y0U0Z0^Q/S.`Q/a.tQ/l/OU0P/u0S0[X0V/z0W0_0`R&Z#r!_!wYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZR%^!vQ!{YQ%x#[Q&d#}Q&g$QR,{+YT.j-s/s!Y!jQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gQ&X#kQ'c$oR*^'dR'l$|Q%V!mR/_.r'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rS#a_#b!P.[-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`'|_OTYZ[adnoprtxy}!P!Q!R!U!X!c!d!e!f!g!h!i!k!o!p!q!s!t!z#O#S#T#[#d#g#x#y#{#}$Q$e$g$h$j$q$}%S%Z%^%`%c%g%l%n%w%|&O&Z&_&h&j&k&u&x&|'P'W'Z'l'm'p'r's'w'|(O(S(W(](^(d(g(p(r(z(})^)e)g)k)l)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+Q+U+V+Y+a+c+d+k+x+y,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0l0n0rT#a_#bT#^^#_R(o%xa(l%x(n(o+`,{-y-z.oT+[(k+]R-z,{Q$PsQ+l)aQ,^*RR-e,_X#}s$O$P&fQ&y$aQ'a$nQ'd$oR)s'SQ)b&wV-S+m-T-{ZgOn$j)t,PXkOn)t,PQ$k!TQ&z$bQ&{$cQ'^$mQ'b$oQ)q'RQ)x'WQ){'XQ)|'YQ*Z'`S*]'c'dQ+s)gQ+u)hQ+v)iQ+z)oS+|)r*[Q,Q)vQ,R)wS,S)y)zQ,d*^Q-V+rQ-W+tQ-Y+{S-Z+},OQ-`,UQ-b,VQ-|-XQ.O-[Q.P-^Q.Q-_Q.p-}Q.q.RQ/W.dR/r/XWkOn)t,PR#mjQ'`$nS)r'S'aR,O)sQ,]*RR-f,^Q*['`Q+})rR-[,OZiOjn)t,PQ'f$pR*`'gT-j,e-ku.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^t.c-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^Q/S.`X0V/z0W0_0`!P.Z-l.^._.`.a.t.z.|/R/j/o/t/u/y/z0S0U0W0Z0[0^0_0`Q.w.YR/f.xg.z.].{/b/i/n/|0O0Q0]0a0bu.b-l.^._.a.t.z.|/R/j/o/t/u/y0S0U0Z0[0^X.u.W.b/a0PR/c.tV0R/u0S0[R/X.dQnOS#on,PR,P)tQ&^#uR(x&^S%m#R#wS(_%m(bT(b%p&`Q%a!yQ%h!}W(P%a%h(U(YQ(U%eR(Y%jQ&i$RR)O&iQ(e%qQ*{(`T+R(e*{Q'n%OR*e'nS'q%R%SY*i'q*j,m-q.hU*j'r's'tU,m*k*l*mS-q,n,oR.h-rQ#Y]R%t#YQ#_^R%y#_Q(h%vS+W(h+XR+X(iQ+](kR,|+]Q#b_R%{#bQ#ebQ%}#cW&Q#e%}({+bQ({&cR+b0gQ$OsS&e$O&fR&f$PQ&v$_R)_&vQ&V#jR(t&VQ&m$VS)T&m+hR+h)UQ$Z{R&p$ZQ&t$]R)[&tQ+n)bR-U+nQ#hfR&S#hQ)f&zR+q)fQ&}$dS)m&})nR)n'OQ'V$kR)u'VQ'[$lS*P'[,ZR,Z*QQ,a*VR-i,aWjOn)t,PR#ljQ-k,eR.U-kd.{.]/b/i/n/|0O0Q0]0a0bR/h.{U.s.W/a0PR/`.sQ/{/nS0X/{0YR0Y/|S/v/b/cR0T/vQ.}.]R/k.}R!ZPXmOn)t,PWlOn)t,PR'T$jYfOn$j)t,PR&R#g[sOn#g$j)t,PR&d#}&dQOYZ[dnprxy}!P!Q!U!i!k!o!p!q!s!t#[#d#g#y#{#}$Q$h$j$}%S%Z%^%`%g%l%n%w%|&Z&_&j&k&u&x'P'W'Z'l'm'p'r's'w(O(W(^(d(g(p(r(z)^)e)g)p)t)z*O*Y*d*g*h*k*q*r*t*v*y*z*}+U+V+Y+a+d+k,P,X,Y,],g,h,i,k,l,o,q,s,u,w,y,z-O-d-f-m-p-s.f.g/V/Z/s0c0d0e0f0h0i0j0k0n0rQ!nTQ#caQ#poU$Rt%c(SS$d!R$gQ$p!XQ$u!cQ$v!dQ$w!eQ$x!fQ$y!gQ$z!hQ%e!zQ%j#OQ%p#SQ%q#TQ&`#xQ'O$eQ'g$qQ(q&OU(|&h(}+cW)j&|)l+x+yQ*o'|Q*x(]Q+w)kQ,v+QR0g0lQ!yYQ!}ZQ$b!PQ$c!QQ%R!kQ't%S^'{%`%g(O(W*q*t*v^*f'p*h,k,l-p.g/ZQ*l'rQ*m'sQ+t)gQ,j*gQ,n*kQ-n,hQ-o,iQ-r,oQ.e-mR/Y.f[bOn#g$j)t,P!^!vYZ!P!Q!k%S%`%g'p'r's(O(W)g*g*h*k*q*t*v,h,i,k,l,o-m-p.f.g/ZQ#R[Q#fdS#wrxQ$UyW$_}$Q'P)pS$l!U$hW${!i'm*d,gS%v#[+Y`&P#d%|(p(r(z+a-O0kQ&a#yQ&b#{Q&c#}Q'j$}Q'z%^W([%l(^*y*}Q(`%nQ(i%wQ(v&ZS(y&_0iQ)P&jQ)Q&kU)]&u)^+kQ)d&xQ)y'WY)}'Z*O,X,Y-dQ*b'lS*n'w0jW+P(d*z,s,wW+T(g+V,y,zQ+p)eQ,U)zQ,c*YQ,x+UQ-P+dQ-e,]Q-v,uQ.S-fR/q/VhUOn#d#g$j%|&_'w(p(r)t,P%U!uYZ[drxy}!P!Q!U!i!k#[#y#{#}$Q$h$}%S%^%`%g%l%n%w&Z&j&k&u&x'P'W'Z'l'm'p'r's(O(W(^(d(g(z)^)e)g)p)z*O*Y*d*g*h*k*q*t*v*y*z*}+U+V+Y+a+d+k,X,Y,],g,h,i,k,l,o,s,u,w,y,z-O-d-f-m-p.f.g/V/Z0i0j0kQ#qpW%W!o!s0d0nQ%X!pQ%Y!qQ%[!tQ%f0cS'v%Z0hQ'x0eQ'y0fQ,p*rQ-u,qS.i-s/sR0p0rU#uq.k0qR(w&][cOn#g$j)t,PZ!xY#[#}$Q+YQ#W[Q#zrR$TxQ%b!yQ%i!}Q%o#RQ'j${Q(V%eQ(Z%jQ(c%pQ(f%qQ*|(`Q,f*bQ-t,pQ.m-uR/].lQ$StQ(R%cR*s(SQ.l-sR/}/sR#QZR#V[R%Q!iQ%O!iV*c'm*d,g!Z!lQ!n#c#p$R$d$p$u$v$w$x$y$z%e%j%p%q&`'O'g(q(|)j*o*x+w,v0gR%T!kT#]^#_Q%x#[R,{+YQ(m%xS+_(n(oQ,}+`Q-x,{S.n-y-zR/^.oT+Z(k+]Q$`}Q&g$QQ)o'PR+{)pQ$XzQ)W&qR+i)XQ$XzQ&o$WQ)W&qR+i)XQ#khW$Vz$W&q)XQ$[{Q&r$ZZ)R&l)S+f+g-RR$^|R)c&wXlOn)t,PQ$f!RR'Q$gQ$m!UR'R$hR*X'_Q*V'_V-g,`-h.TQ.d-lQ/P.^R/Q._U.]-l.^._Q/U.aQ/b.tQ/g.zU/i.|/j/yQ/n/RQ/|/oQ0O/tU0Q/u0S0[Q0]0UQ0a0ZR0b0^R/T.`R/d.t",nodeNames:"⚠ print Escape { Comment Script AssignStatement * BinaryExpression BitOp BitOp BitOp BitOp ArithOp ArithOp @ ArithOp ** UnaryExpression ArithOp BitOp AwaitExpression await ) ( ParenthesizedExpression BinaryExpression or and CompareOp in not is UnaryExpression ConditionalExpression if else LambdaExpression lambda ParamList VariableName AssignOp , : NamedExpression AssignOp YieldExpression yield from TupleExpression ComprehensionExpression async for LambdaExpression ] [ ArrayExpression ArrayComprehensionExpression } { DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression CallExpression ArgList AssignOp MemberExpression . PropertyName Number String FormatString FormatReplacement FormatSelfDoc FormatConversion FormatSpec FormatReplacement FormatSelfDoc ContinuedString Ellipsis None Boolean TypeDef AssignOp UpdateStatement UpdateOp ExpressionStatement DeleteStatement del PassStatement pass BreakStatement break ContinueStatement continue ReturnStatement return YieldStatement PrintStatement RaiseStatement raise ImportStatement import as ScopeStatement global nonlocal AssertStatement assert TypeDefinition type TypeParamList TypeParam StatementGroup ; IfStatement Body elif WhileStatement while ForStatement TryStatement try except finally WithStatement with FunctionDefinition def ParamList AssignOp TypeDef ClassDefinition class DecoratedStatement Decorator At MatchStatement match MatchBody MatchClause case CapturePattern LiteralPattern ArithOp ArithOp AsPattern OrPattern LogicOp AttributePattern SequencePattern MappingPattern StarPattern ClassPattern PatternArgList KeywordPattern KeywordPattern Guard",maxTerm:277,context:XP,nodeProps:[["isolate",-5,4,71,72,73,77,""],["group",-15,6,85,87,88,90,92,94,96,98,99,100,102,105,108,110,"Statement Statement",-22,8,18,21,25,40,49,50,56,57,60,61,62,63,64,67,70,71,72,79,80,81,82,"Expression",-10,114,116,119,121,122,126,128,133,135,138,"Statement",-9,143,144,147,148,150,151,152,153,154,"Pattern"],["openedBy",23,"(",54,"[",58,"{"],["closedBy",24,")",55,"]",59,"}"]],propSources:[WP],skippedNodes:[0,4],repeatNodeCount:34,tokenData:"!2|~R!`OX%TXY%oY[%T[]%o]p%Tpq%oqr'ars)Yst*xtu%Tuv,dvw-hwx.Uxy/tyz0[z{0r{|2S|}2p}!O3W!O!P4_!P!Q:Z!Q!R;k!R![>_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[ZP,EP,MP,DP,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:t=>zP[t]||-1}],tokenPrec:7668}),Fp=new Xd,j1=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function na(t){return(e,n,i)=>{if(i)return!1;let s=e.node.getChild("VariableName");return s&&n(s,t),!0}}const VP={FunctionDefinition:na("function"),ClassDefinition:na("class"),ForStatement(t,e,n){if(n){for(let i=t.node.firstChild;i;i=i.nextSibling)if(i.name=="VariableName")e(i,"variable");else if(i.name=="in")break}},ImportStatement(t,e){var n,i;let{node:s}=t,r=((n=s.firstChild)===null||n===void 0?void 0:n.name)=="from";for(let a=s.getChild("import");a;a=a.nextSibling)a.name=="VariableName"&&((i=a.nextSibling)===null||i===void 0?void 0:i.name)!="as"&&e(a,r?"variable":"namespace")},AssignStatement(t,e){for(let n=t.node.firstChild;n;n=n.nextSibling)if(n.name=="VariableName")e(n,"variable");else if(n.name==":"||n.name=="AssignOp")break},ParamList(t,e){for(let n=null,i=t.node.firstChild;i;i=i.nextSibling)i.name=="VariableName"&&(!n||!/\*|AssignOp/.test(n.name))&&e(i,"variable"),n=i},CapturePattern:na("variable"),AsPattern:na("variable"),__proto__:null};function A1(t,e){let n=Fp.get(e);if(n)return n;let i=[],s=!0;function r(a,o){let c=t.sliceString(a.from,a.to);i.push({label:c,type:o})}return e.cursor(qe.IncludeAnonymous).iterate(a=>{if(a.name){let o=VP[a.name];if(o&&o(a,r,s)||!s&&j1.has(a.name))return!1;s=!1}else if(a.to-a.from>8192){for(let o of A1(t,a.node))i.push(o);return!1}}),Fp.set(e,i),i}const Up=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,N1=["String","FormatString","Comment","PropertyName"];function FP(t){let e=Ue(t.state).resolveInner(t.pos,-1);if(N1.indexOf(e.name)>-1)return null;let n=e.name=="VariableName"||e.to-e.from<20&&Up.test(t.state.sliceDoc(e.from,e.to));if(!n&&!t.explicit)return null;let i=[];for(let s=e;s;s=s.parent)j1.has(s.name)&&(i=i.concat(A1(t.state.doc,s)));return{options:i,from:n?e.from:t.pos,validFor:Up}}const UP=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(t=>({label:t,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(t=>({label:t,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(t=>({label:t,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(t=>({label:t,type:"function"}))),YP=[et("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),et("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),et("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),et("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),et(`if \${}:
|
|
49
|
+
|
|
50
|
+
`,{label:"if",detail:"block",type:"keyword"}),et("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),et("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),et("import ${module}",{label:"import",detail:"statement",type:"keyword"}),et("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],GP=fu(N1,Zo(UP.concat(YP)));function Kl(t){let{node:e,pos:n}=t,i=t.lineIndent(n,-1),s=null;for(;;){let r=e.childBefore(n);if(r)if(r.name=="Comment")n=r.from;else if(r.name=="Body"||r.name=="MatchBody")t.baseIndentFor(r)+t.unit<=i&&(s=r),e=r;else if(r.name=="MatchClause")e=r;else if(r.type.is("Statement"))e=r;else break;else break}return s}function Jl(t,e){let n=t.baseIndentFor(e),i=t.lineAt(t.pos,-1),s=i.from+i.text.length;return/^\s*($|#)/.test(i.text)&&t.node.to<s+100&&!/\S/.test(t.state.sliceDoc(s,t.node.to))&&t.lineIndent(t.pos,-1)<=n||/^\s*(else:|elif |except |finally:|case\s+[^=:]+:)/.test(t.textAfter)&&t.lineIndent(t.pos,-1)>n?null:n+t.unit}const ec=wn.define({name:"python",parser:BP.configure({props:[ui.add({Body:t=>{var e;let n=/^\s*(#|$)/.test(t.textAfter)&&Kl(t)||t.node;return(e=Jl(t,n))!==null&&e!==void 0?e:t.continue()},MatchBody:t=>{var e;let n=Kl(t);return(e=Jl(t,n||t.node))!==null&&e!==void 0?e:t.continue()},IfStatement:t=>/^\s*(else:|elif )/.test(t.textAfter)?t.baseIndent:t.continue(),"ForStatement WhileStatement":t=>/^\s*else:/.test(t.textAfter)?t.baseIndent:t.continue(),TryStatement:t=>/^\s*(except[ :]|finally:|else:)/.test(t.textAfter)?t.baseIndent:t.continue(),MatchStatement:t=>/^\s*case /.test(t.textAfter)?t.baseIndent+t.unit:t.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":ka({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":ka({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":ka({closing:"]"}),MemberExpression:t=>t.baseIndent+t.unit,"String FormatString":()=>null,Script:t=>{var e;let n=Kl(t);return(e=n&&Jl(t,n))!==null&&e!==void 0?e:t.continue()}}),hi.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":Io,Body:(t,e)=>({from:t.from+1,to:t.to-(t.to==e.doc.length?0:1)}),"String FormatString":(t,e)=>({from:e.doc.lineAt(t.from).to,to:t.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function HP(){return new _i(ec,[ec.data.of({autocomplete:FP}),ec.data.of({autocomplete:GP})])}const KP=36,Yp=1,JP=2,Ii=3,tc=4,e8=5,t8=6,n8=7,i8=8,s8=9,r8=10,a8=11,o8=12,l8=13,c8=14,d8=15,u8=16,h8=17,Gp=18,f8=19,R1=20,_1=21,Hp=22,p8=23,O8=24;function ad(t){return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57}function m8(t){return t>=48&&t<=57||t>=97&&t<=102||t>=65&&t<=70}function xi(t,e,n){for(let i=!1;;){if(t.next<0)return;if(t.next==e&&!i){t.advance();return}i=n&&!i&&t.next==92,t.advance()}}function g8(t,e){e:for(;;){if(t.next<0)return;if(t.next==36){t.advance();for(let n=0;n<e.length;n++){if(t.next!=e.charCodeAt(n))continue e;t.advance()}if(t.next==36){t.advance();return}}else t.advance()}}function x8(t,e){let n="[{<(".indexOf(String.fromCharCode(e)),i=n<0?e:"]}>)".charCodeAt(n);for(;;){if(t.next<0)return;if(t.next==i&&t.peek(1)==39){t.advance(2);return}t.advance()}}function od(t,e){for(;!(t.next!=95&&!ad(t.next));)e!=null&&(e+=String.fromCharCode(t.next)),t.advance();return e}function b8(t){if(t.next==39||t.next==34||t.next==96){let e=t.next;t.advance(),xi(t,e,!1)}else od(t)}function Kp(t,e){for(;t.next==48||t.next==49;)t.advance();e&&t.next==e&&t.advance()}function Jp(t,e){for(;;){if(t.next==46){if(e)break;e=!0}else if(t.next<48||t.next>57)break;t.advance()}if(t.next==69||t.next==101)for(t.advance(),(t.next==43||t.next==45)&&t.advance();t.next>=48&&t.next<=57;)t.advance()}function e0(t){for(;!(t.next<0||t.next==10);)t.advance()}function mi(t,e){for(let n=0;n<e.length;n++)if(e.charCodeAt(n)==t)return!0;return!1}const nc=` \r
|
|
51
|
+
`;function M1(t,e,n){let i=Object.create(null);i.true=i.false=e8,i.null=i.unknown=t8;for(let s of t.split(" "))s&&(i[s]=R1);for(let s of e.split(" "))s&&(i[s]=_1);for(let s of(n||"").split(" "))s&&(i[s]=O8);return i}const y8="array binary bit boolean char character clob date decimal double float int integer interval large national nchar nclob numeric object precision real smallint time timestamp varchar varying ",v8="absolute action add after all allocate alter and any are as asc assertion at authorization before begin between both breadth by call cascade cascaded case cast catalog check close collate collation column commit condition connect connection constraint constraints constructor continue corresponding count create cross cube current current_date current_default_transform_group current_transform_group_for_type current_path current_role current_time current_timestamp current_user cursor cycle data day deallocate declare default deferrable deferred delete depth deref desc describe descriptor deterministic diagnostics disconnect distinct do domain drop dynamic each else elseif end end-exec equals escape except exception exec execute exists exit external fetch first for foreign found from free full function general get global go goto grant group grouping handle having hold hour identity if immediate in indicator initially inner inout input insert intersect into is isolation join key language last lateral leading leave left level like limit local localtime localtimestamp locator loop map match method minute modifies module month names natural nesting new next no none not of old on only open option or order ordinality out outer output overlaps pad parameter partial path prepare preserve primary prior privileges procedure public read reads recursive redo ref references referencing relative release repeat resignal restrict result return returns revoke right role rollback rollup routine row rows savepoint schema scroll search second section select session session_user set sets signal similar size some space specific specifictype sql sqlexception sqlstate sqlwarning start state static system_user table temporary then timezone_hour timezone_minute to trailing transaction translation treat trigger under undo union unique unnest until update usage user using value values view when whenever where while with without work write year zone ",ld={backslashEscapes:!1,hashComments:!1,spaceAfterDashes:!1,slashComments:!1,doubleQuotedStrings:!1,doubleDollarQuotedStrings:!1,unquotedBitLiterals:!1,treatBitsAsBytes:!1,charSetCasts:!1,plsqlQuotingMechanism:!1,operatorChars:"*+-%<>!=&|~^/",specialVar:"?",identifierQuotes:'"',caseInsensitiveIdentifiers:!1,words:M1(v8,y8)};function S8(t,e,n,i){let s={};for(let r in ld)s[r]=(t.hasOwnProperty(r)?t:ld)[r];return e&&(s.words=M1(e,n||"",i)),s}function E1(t){return new ot(e=>{var n;let{next:i}=e;if(e.advance(),mi(i,nc)){for(;mi(e.next,nc);)e.advance();e.acceptToken(KP)}else if(i==36&&t.doubleDollarQuotedStrings){let s=od(e,"");e.next==36&&(e.advance(),g8(e,s),e.acceptToken(Ii))}else if(i==39||i==34&&t.doubleQuotedStrings)xi(e,i,t.backslashEscapes),e.acceptToken(Ii);else if(i==35&&t.hashComments||i==47&&e.next==47&&t.slashComments)e0(e),e.acceptToken(Yp);else if(i==45&&e.next==45&&(!t.spaceAfterDashes||e.peek(1)==32))e0(e),e.acceptToken(Yp);else if(i==47&&e.next==42){e.advance();for(let s=1;;){let r=e.next;if(e.next<0)break;if(e.advance(),r==42&&e.next==47){if(s--,e.advance(),!s)break}else r==47&&e.next==42&&(s++,e.advance())}e.acceptToken(JP)}else if((i==101||i==69)&&e.next==39)e.advance(),xi(e,39,!0),e.acceptToken(Ii);else if((i==110||i==78)&&e.next==39&&t.charSetCasts)e.advance(),xi(e,39,t.backslashEscapes),e.acceptToken(Ii);else if(i==95&&t.charSetCasts)for(let s=0;;s++){if(e.next==39&&s>1){e.advance(),xi(e,39,t.backslashEscapes),e.acceptToken(Ii);break}if(!ad(e.next))break;e.advance()}else if(t.plsqlQuotingMechanism&&(i==113||i==81)&&e.next==39&&e.peek(1)>0&&!mi(e.peek(1),nc)){let s=e.peek(1);e.advance(2),x8(e,s),e.acceptToken(Ii)}else if(mi(i,t.identifierQuotes)){const s=i==91?93:i;xi(e,s,!1),e.acceptToken(f8)}else if(i==40)e.acceptToken(n8);else if(i==41)e.acceptToken(i8);else if(i==123)e.acceptToken(s8);else if(i==125)e.acceptToken(r8);else if(i==91)e.acceptToken(a8);else if(i==93)e.acceptToken(o8);else if(i==59)e.acceptToken(l8);else if(t.unquotedBitLiterals&&i==48&&e.next==98)e.advance(),Kp(e),e.acceptToken(Hp);else if((i==98||i==66)&&(e.next==39||e.next==34)){const s=e.next;e.advance(),t.treatBitsAsBytes?(xi(e,s,t.backslashEscapes),e.acceptToken(p8)):(Kp(e,s),e.acceptToken(Hp))}else if(i==48&&(e.next==120||e.next==88)||(i==120||i==88)&&e.next==39){let s=e.next==39;for(e.advance();m8(e.next);)e.advance();s&&e.next==39&&e.advance(),e.acceptToken(tc)}else if(i==46&&e.next>=48&&e.next<=57)Jp(e,!0),e.acceptToken(tc);else if(i==46)e.acceptToken(c8);else if(i>=48&&i<=57)Jp(e,!1),e.acceptToken(tc);else if(mi(i,t.operatorChars)){for(;mi(e.next,t.operatorChars);)e.advance();e.acceptToken(d8)}else if(mi(i,t.specialVar))e.next==i&&e.advance(),b8(e),e.acceptToken(h8);else if(i==58||i==44)e.acceptToken(u8);else if(ad(i)){let s=od(e,String.fromCharCode(i));e.acceptToken(e.next==46||e.peek(-s.length-1)==46?Gp:(n=t.words[s.toLowerCase()])!==null&&n!==void 0?n:Gp)}})}const I1=E1(ld),w8=Sn.deserialize({version:14,states:"%vQ]QQOOO#wQRO'#DSO$OQQO'#CwO%eQQO'#CxO%lQQO'#CyO%sQQO'#CzOOQQ'#DS'#DSOOQQ'#C}'#C}O'UQRO'#C{OOQQ'#Cv'#CvOOQQ'#C|'#C|Q]QQOOQOQQOOO'`QQO'#DOO(xQRO,59cO)PQQO,59cO)UQQO'#DSOOQQ,59d,59dO)cQQO,59dOOQQ,59e,59eO)jQQO,59eOOQQ,59f,59fO)qQQO,59fOOQQ-E6{-E6{OOQQ,59b,59bOOQQ-E6z-E6zOOQQ,59j,59jOOQQ-E6|-E6|O+VQRO1G.}O+^QQO,59cOOQQ1G/O1G/OOOQQ1G/P1G/POOQQ1G/Q1G/QP+kQQO'#C}O+rQQO1G.}O)PQQO,59cO,PQQO'#Cw",stateData:",[~OtOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O^]ORvXSvXTvXUvXVvXXvXZvX]vX_vX`vXavXbvXcvXdvXevXfvXgvXhvX~OsvX~P!jOa_Ob_Oc_O~ORUOSUOTUOUUOVROXSOZTO^tO_UO`UOa`Ob`Oc`OdUOeUOfUOgUOhUO~OWaO~P$ZOYcO~P$ZO[eO~P$ZORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O]hOsoX~P%zOajObjOcjO~O^]ORkaSkaTkaUkaVkaXkaZka]ka_ka`kaakabkackadkaekafkagkahka~Oska~P'kO^]O~OWvXYvX[vX~P!jOWnO~P$ZOYoO~P$ZO[pO~P$ZO^]ORkiSkiTkiUkiVkiXkiZki]ki_ki`kiakibkickidkiekifkigkihki~Oski~P)xOWkaYka[ka~P'kO]hO~P$ZOWkiYki[ki~P)xOasObsOcsO~O",goto:"#hwPPPPPPPPPPPPPPPPPPPPPPPPPPx||||!Y!^!d!xPPP#[TYOZeUORSTWZbdfqT[OZQZORiZSWOZQbRQdSQfTZgWbdfqQ^PWk^lmrQl_Qm`RrseVORSTWZbdfq",nodeNames:"⚠ LineComment BlockComment String Number Bool Null ( ) { } [ ] ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Bits Bytes Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:38,nodeProps:[["isolate",-4,1,2,3,19,""]],skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,I1],topRules:{Script:[0,25]},tokenPrec:0});function cd(t){let e=t.cursor().moveTo(t.from,-1);for(;/Comment/.test(e.name);)e.moveTo(e.from,-1);return e.node}function ur(t,e){let n=t.sliceString(e.from,e.to),i=/^([`'"\[])(.*)([`'"\]])$/.exec(n);return i?i[2]:n}function co(t){return t&&(t.name=="Identifier"||t.name=="QuotedIdentifier")}function k8(t,e){if(e.name=="CompositeIdentifier"){let n=[];for(let i=e.firstChild;i;i=i.nextSibling)co(i)&&n.push(ur(t,i));return n}return[ur(t,e)]}function t0(t,e){for(let n=[];;){if(!e||e.name!=".")return n;let i=cd(e);if(!co(i))return n;n.unshift(ur(t,i)),e=cd(i)}}function Q8(t,e){let n=Ue(t).resolveInner(e,-1),i=P8(t.doc,n);return n.name=="Identifier"||n.name=="QuotedIdentifier"||n.name=="Keyword"?{from:n.from,quoted:n.name=="QuotedIdentifier"?t.doc.sliceString(n.from,n.from+1):null,parents:t0(t.doc,cd(n)),aliases:i}:n.name=="."?{from:e,quoted:null,parents:t0(t.doc,n),aliases:i}:{from:e,quoted:null,parents:[],empty:!0,aliases:i}}const C8=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));function P8(t,e){let n;for(let s=e;!n;s=s.parent){if(!s)return null;s.name=="Statement"&&(n=s)}let i=null;for(let s=n.firstChild,r=!1,a=null;s;s=s.nextSibling){let o=s.name=="Keyword"?t.sliceString(s.from,s.to).toLowerCase():null,c=null;if(!r)r=o=="from";else if(o=="as"&&a&&co(s.nextSibling))c=ur(t,s.nextSibling);else{if(o&&C8.has(o))break;a&&co(s)&&(c=ur(t,s))}c&&(i||(i=Object.create(null)),i[c]=k8(t,a)),a=/Identifier$/.test(s.name)?s:null}return i}function T8(t,e,n){return n.map(i=>({...i,label:i.label[0]==t?i.label:t+i.label+e,apply:void 0}))}const $8=/^\w*$/,j8=/^[`'"\[]?\w*[`'"\]]?$/;function n0(t){return t.self&&typeof t.self.label=="string"}class Qu{constructor(e,n){this.idQuote=e,this.idCaseInsensitive=n,this.list=[],this.children=void 0}child(e){let n=this.children||(this.children=Object.create(null)),i=n[e];return i||(e&&!this.list.some(s=>s.label==e)&&this.list.push(i0(e,"type",this.idQuote,this.idCaseInsensitive)),n[e]=new Qu(this.idQuote,this.idCaseInsensitive))}maybeChild(e){return this.children?this.children[e]:null}addCompletion(e){let n=this.list.findIndex(i=>i.label==e.label);n>-1?this.list[n]=e:this.list.push(e)}addCompletions(e){for(let n of e)this.addCompletion(typeof n=="string"?i0(n,"property",this.idQuote,this.idCaseInsensitive):n)}addNamespace(e){Array.isArray(e)?this.addCompletions(e):n0(e)?this.addNamespace(e.children):this.addNamespaceObject(e)}addNamespaceObject(e){for(let n of Object.keys(e)){let i=e[n],s=null,r=n.replace(/\\?\./g,o=>o=="."?"\0":o).split("\0"),a=this;n0(i)&&(s=i.self,i=i.children);for(let o=0;o<r.length;o++)s&&o==r.length-1&&a.addCompletion(s),a=a.child(r[o].replace(/\\\./g,"."));a.addNamespace(i)}}}function i0(t,e,n,i){return new RegExp("^[a-z_][a-z_\\d]*$",i?"i":"").test(t)?{label:t,type:e}:{label:t,type:e,apply:n+t+L1(n)}}function L1(t){return t==="["?"]":t}function A8(t,e,n,i,s,r){var a;let o=((a=r==null?void 0:r.spec.identifierQuotes)===null||a===void 0?void 0:a[0])||'"',c=new Qu(o,!!(r!=null&&r.spec.caseInsensitiveIdentifiers)),d=s?c.child(s):null;return c.addNamespace(t),e&&(d||c).addCompletions(e),n&&c.addCompletions(n),d&&c.addCompletions(d.list),i&&c.addCompletions((d||c).child(i).list),u=>{let{parents:h,from:f,quoted:p,empty:O,aliases:g}=Q8(u.state,u.pos);if(O&&!u.explicit)return null;g&&h.length==1&&(h=g[h[0]]||h);let x=c;for(let y of h){for(;!x.children||!x.children[y];)if(x==c&&d)x=d;else if(x==d&&i)x=x.child(i);else return null;let S=x.maybeChild(y);if(!S)return null;x=S}let b=x.list;if(x==c&&g&&(b=b.concat(Object.keys(g).map(y=>({label:y,type:"constant"})))),p){let y=p[0],S=L1(y),P=u.state.sliceDoc(u.pos,u.pos+1)==S;return{from:f,to:P?u.pos+1:void 0,options:T8(y,S,b),validFor:j8}}else return{from:f,options:b,validFor:$8}}}function N8(t){return t==_1?"type":t==R1?"keyword":"variable"}function R8(t,e,n){let i=Object.keys(t).map(s=>n(e?s.toUpperCase():s,N8(t[s])));return fu(["QuotedIdentifier","String","LineComment","BlockComment","."],Zo(i))}let _8=w8.configure({props:[ui.add({Statement:Ci()}),hi.add({Statement(t,e){return{from:Math.min(t.from+100,e.doc.lineAt(t.from).to),to:t.to}},BlockComment(t){return{from:t.from+2,to:t.to-2}}}),ci({Keyword:k.keyword,Type:k.typeName,Builtin:k.standard(k.name),Bits:k.number,Bytes:k.string,Bool:k.bool,Null:k.null,Number:k.number,String:k.string,Identifier:k.name,QuotedIdentifier:k.special(k.string),SpecialVar:k.special(k.name),LineComment:k.lineComment,BlockComment:k.blockComment,Operator:k.operator,"Semi Punctuation":k.punctuation,"( )":k.paren,"{ }":k.brace,"[ ]":k.squareBracket})]});class uo{constructor(e,n,i){this.dialect=e,this.language=n,this.spec=i}get extension(){return this.language.extension}configureLanguage(e,n){return new uo(this.dialect,this.language.configure(e,n),this.spec)}static define(e){let n=S8(e,e.keywords,e.types,e.builtin),i=wn.define({name:"sql",parser:_8.configure({tokenizers:[{from:I1,to:E1(n)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new uo(n,i,e)}}function M8(t,e){return{label:t,type:e,boost:-1}}function E8(t,e=!1,n){return R8(t.dialect.words,e,n||M8)}function I8(t){return t.schema?A8(t.schema,t.tables,t.schemas,t.defaultTable,t.defaultSchema,t.dialect||Cu):()=>null}function L8(t){return t.schema?(t.dialect||Cu).language.data.of({autocomplete:I8(t)}):[]}function X8(t={}){let e=t.dialect||Cu;return new _i(e.language,[L8(t),e.language.data.of({autocomplete:E8(e,t.upperCaseKeywords,t.keywordCompletion)})])}const Cu=uo.define({}),dd=1,Z8=2,D8=3,q8=4,W8=5,z8=36,B8=37,V8=38,F8=11,U8=13;function Y8(t){return t==45||t==46||t==58||t>=65&&t<=90||t==95||t>=97&&t<=122||t>=161}function G8(t){return t==9||t==10||t==13||t==32}let s0=null,r0=null,a0=0;function ud(t,e){let n=t.pos+e;if(r0==t&&a0==n)return s0;for(;G8(t.peek(e));)e++;let i="";for(;;){let s=t.peek(e);if(!Y8(s))break;i+=String.fromCharCode(s),e++}return r0=t,a0=n,s0=i||null}function o0(t,e){this.name=t,this.parent=e}const H8=new Co({start:null,shift(t,e,n,i){return e==dd?new o0(ud(i,1)||"",t):t},reduce(t,e){return e==F8&&t?t.parent:t},reuse(t,e,n,i){let s=e.type.id;return s==dd||s==U8?new o0(ud(i,1)||"",t):t},strict:!1}),K8=new ot((t,e)=>{if(t.next==60){if(t.advance(),t.next==47){t.advance();let n=ud(t,0);if(!n)return t.acceptToken(W8);if(e.context&&n==e.context.name)return t.acceptToken(Z8);for(let i=e.context;i;i=i.parent)if(i.name==n)return t.acceptToken(D8,-2);t.acceptToken(q8)}else if(t.next!=33&&t.next!=63)return t.acceptToken(dd)}},{contextual:!0});function Pu(t,e){return new ot(n=>{let i=0,s=e.charCodeAt(0);e:for(;!(n.next<0);n.advance(),i++)if(n.next==s){for(let r=1;r<e.length;r++)if(n.peek(r)!=e.charCodeAt(r))continue e;break}i&&n.acceptToken(t)})}const J8=Pu(z8,"-->"),eT=Pu(B8,"?>"),tT=Pu(V8,"]]>"),nT=ci({Text:k.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":k.angleBracket,TagName:k.tagName,"MismatchedCloseTag/TagName":[k.tagName,k.invalid],AttributeName:k.attributeName,AttributeValue:k.attributeValue,Is:k.definitionOperator,"EntityReference CharacterReference":k.character,Comment:k.blockComment,ProcessingInst:k.processingInstruction,DoctypeDecl:k.documentMeta,Cdata:k.special(k.string)}),iT=Sn.deserialize({version:14,states:",lOQOaOOOrOxO'#CfOzOpO'#CiO!tOaO'#CgOOOP'#Cg'#CgO!{OrO'#CrO#TOtO'#CsO#]OpO'#CtOOOP'#DT'#DTOOOP'#Cv'#CvQQOaOOOOOW'#Cw'#CwO#eOxO,59QOOOP,59Q,59QOOOO'#Cx'#CxO#mOpO,59TO#uO!bO,59TOOOP'#C|'#C|O$TOaO,59RO$[OpO'#CoOOOP,59R,59ROOOQ'#C}'#C}O$dOrO,59^OOOP,59^,59^OOOS'#DO'#DOO$lOtO,59_OOOP,59_,59_O$tOpO,59`O$|OpO,59`OOOP-E6t-E6tOOOW-E6u-E6uOOOP1G.l1G.lOOOO-E6v-E6vO%UO!bO1G.oO%UO!bO1G.oO%dOpO'#CkO%lO!bO'#CyO%zO!bO1G.oOOOP1G.o1G.oOOOP1G.w1G.wOOOP-E6z-E6zOOOP1G.m1G.mO&VOpO,59ZO&_OpO,59ZOOOQ-E6{-E6{OOOP1G.x1G.xOOOS-E6|-E6|OOOP1G.y1G.yO&gOpO1G.zO&gOpO1G.zOOOP1G.z1G.zO&oO!bO7+$ZO&}O!bO7+$ZOOOP7+$Z7+$ZOOOP7+$c7+$cO'YOpO,59VO'bOpO,59VO'mO!bO,59eOOOO-E6w-E6wO'{OpO1G.uO'{OpO1G.uOOOP1G.u1G.uO(TOpO7+$fOOOP7+$f7+$fO(]O!bO<<GuOOOP<<Gu<<GuOOOP<<G}<<G}O'bOpO1G.qO'bOpO1G.qO(hO#tO'#CnO(vO&jO'#CnOOOO1G.q1G.qO)UOpO7+$aOOOP7+$a7+$aOOOP<<HQ<<HQOOOPAN=aAN=aOOOPAN=iAN=iO'bOpO7+$]OOOO7+$]7+$]OOOO'#Cz'#CzO)^O#tO,59YOOOO,59Y,59YOOOO'#C{'#C{O)lO&jO,59YOOOP<<G{<<G{OOOO<<Gw<<GwOOOO-E6x-E6xOOOO1G.t1G.tOOOO-E6y-E6y",stateData:")z~OPQOSVOTWOVWOWWOXWOiXOyPO!QTO!SUO~OvZOx]O~O^`Oz^O~OPQOQcOSVOTWOVWOWWOXWOyPO!QTO!SUO~ORdO~P!SOteO!PgO~OuhO!RjO~O^lOz^O~OvZOxoO~O^qOz^O~O[vO`sOdwOz^O~ORyO~P!SO^{Oz^O~OteO!P}O~OuhO!R!PO~O^!QOz^O~O[!SOz^O~O[!VO`sOd!WOz^O~Oa!YOz^O~Oz^O[mX`mXdmX~O[!VO`sOd!WO~O^!]Oz^O~O[!_Oz^O~O[!aOz^O~O[!cO`sOd!dOz^O~O[!cO`sOd!dO~Oa!eOz^O~Oz^O{!gO}!hO~Oz^O[ma`madma~O[!kOz^O~O[!lOz^O~O[!mO`sOd!nO~OW!qOX!qO{!sO|!qO~OW!tOX!tO}!sO!O!tO~O[!vOz^O~OW!qOX!qO{!yO|!qO~OW!tOX!tO}!yO!O!tO~O",goto:"%cxPPPPPPPPPPyyP!PP!VPP!`!jP!pyyyP!v!|#S$[$k$q$w$}%TPPPP%ZXWORYbXRORYb_t`qru!T!U!bQ!i!YS!p!e!fR!w!oQdRRybXSORYbQYORmYQ[PRn[Q_QQkVjp_krz!R!T!X!Z!^!`!f!j!oQr`QzcQ!RlQ!TqQ!XsQ!ZtQ!^{Q!`!QQ!f!YQ!j!]R!o!eQu`S!UqrU![u!U!bR!b!TQ!r!gR!x!rQ!u!hR!z!uQbRRxbQfTR|fQiUR!OiSXOYTaRb",nodeNames:"⚠ StartTag StartCloseTag MissingCloseTag StartCloseTag StartCloseTag Document Text EntityReference CharacterReference Cdata Element EndTag OpenTag TagName Attribute AttributeName Is AttributeValue CloseTag SelfCloseEndTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag DoctypeDecl",maxTerm:50,context:H8,nodeProps:[["closedBy",1,"SelfCloseEndTag EndTag",13,"CloseTag MissingCloseTag"],["openedBy",12,"StartTag StartCloseTag",19,"OpenTag",20,"StartTag"],["isolate",-6,13,18,19,21,22,24,""]],propSources:[nT],skippedNodes:[0],repeatNodeCount:9,tokenData:"!)v~R!YOX$qXY)iYZ)iZ]$q]^)i^p$qpq)iqr$qrs*vsv$qvw+fwx/ix}$q}!O0[!O!P$q!P!Q2z!Q![$q![!]4n!]!^$q!^!_8U!_!`!#t!`!a!$l!a!b!%d!b!c$q!c!}4n!}#P$q#P#Q!'W#Q#R$q#R#S4n#S#T$q#T#o4n#o%W$q%W%o4n%o%p$q%p&a4n&a&b$q&b1p4n1p4U$q4U4d4n4d4e$q4e$IS4n$IS$I`$q$I`$Ib4n$Ib$Kh$q$Kh%#t4n%#t&/x$q&/x&Et4n&Et&FV$q&FV;'S4n;'S;:j8O;:j;=`)c<%l?&r$q?&r?Ah4n?Ah?BY$q?BY?Mn4n?MnO$qi$zXVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qa%nVVP!O`Ov%gwx&Tx!^%g!^!_&o!_;'S%g;'S;=`'W<%lO%gP&YTVPOv&Tw!^&T!_;'S&T;'S;=`&i<%lO&TP&lP;=`<%l&T`&tS!O`Ov&ox;'S&o;'S;=`'Q<%lO&o`'TP;=`<%l&oa'ZP;=`<%l%gX'eWVP|WOr'^rs&Tsv'^w!^'^!^!_'}!_;'S'^;'S;=`(i<%lO'^W(ST|WOr'}sv'}w;'S'};'S;=`(c<%lO'}W(fP;=`<%l'}X(lP;=`<%l'^h(vV|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oh)`P;=`<%l(oi)fP;=`<%l$qo)t`VP|W!O`zUOX$qXY)iYZ)iZ]$q]^)i^p$qpq)iqr$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk+PV{YVP!O`Ov%gwx&Tx!^%g!^!_&o!_;'S%g;'S;=`'W<%lO%g~+iast,n![!]-r!c!}-r#R#S-r#T#o-r%W%o-r%p&a-r&b1p-r4U4d-r4e$IS-r$I`$Ib-r$Kh%#t-r&/x&Et-r&FV;'S-r;'S;:j/c?&r?Ah-r?BY?Mn-r~,qQ!Q![,w#l#m-V~,zQ!Q![,w!]!^-Q~-VOX~~-YR!Q![-c!c!i-c#T#Z-c~-fS!Q![-c!]!^-Q!c!i-c#T#Z-c~-ug}!O-r!O!P-r!Q![-r![!]-r!]!^/^!c!}-r#R#S-r#T#o-r$}%O-r%W%o-r%p&a-r&b1p-r1p4U-r4U4d-r4e$IS-r$I`$Ib-r$Je$Jg-r$Kh%#t-r&/x&Et-r&FV;'S-r;'S;:j/c?&r?Ah-r?BY?Mn-r~/cOW~~/fP;=`<%l-rk/rW}bVP|WOr'^rs&Tsv'^w!^'^!^!_'}!_;'S'^;'S;=`(i<%lO'^k0eZVP|W!O`Or$qrs%gsv$qwx'^x}$q}!O1W!O!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk1aZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a2S!a;'S$q;'S;=`)c<%lO$qk2_X!PQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qm3TZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a3v!a;'S$q;'S;=`)c<%lO$qm4RXdSVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qo4{!P`S^QVP|W!O`Or$qrs%gsv$qwx'^x}$q}!O4n!O!P4n!P!Q$q!Q![4n![!]4n!]!^$q!^!_(o!_!c$q!c!}4n!}#R$q#R#S4n#S#T$q#T#o4n#o$}$q$}%O4n%O%W$q%W%o4n%o%p$q%p&a4n&a&b$q&b1p4n1p4U4n4U4d4n4d4e$q4e$IS4n$IS$I`$q$I`$Ib4n$Ib$Je$q$Je$Jg4n$Jg$Kh$q$Kh%#t4n%#t&/x$q&/x&Et4n&Et&FV$q&FV;'S4n;'S;:j8O;:j;=`)c<%l?&r$q?&r?Ah4n?Ah?BY$q?BY?Mn4n?MnO$qo8RP;=`<%l4ni8]Y|W!O`Oq(oqr8{rs&osv(owx'}x!a(o!a!b!#U!b;'S(o;'S;=`)]<%lO(oi9S_|W!O`Or(ors&osv(owx'}x}(o}!O:R!O!f(o!f!g;e!g!}(o!}#ODh#O#W(o#W#XLp#X;'S(o;'S;=`)]<%lO(oi:YX|W!O`Or(ors&osv(owx'}x}(o}!O:u!O;'S(o;'S;=`)]<%lO(oi;OV!QP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oi;lX|W!O`Or(ors&osv(owx'}x!q(o!q!r<X!r;'S(o;'S;=`)]<%lO(oi<`X|W!O`Or(ors&osv(owx'}x!e(o!e!f<{!f;'S(o;'S;=`)]<%lO(oi=SX|W!O`Or(ors&osv(owx'}x!v(o!v!w=o!w;'S(o;'S;=`)]<%lO(oi=vX|W!O`Or(ors&osv(owx'}x!{(o!{!|>c!|;'S(o;'S;=`)]<%lO(oi>jX|W!O`Or(ors&osv(owx'}x!r(o!r!s?V!s;'S(o;'S;=`)]<%lO(oi?^X|W!O`Or(ors&osv(owx'}x!g(o!g!h?y!h;'S(o;'S;=`)]<%lO(oi@QY|W!O`Or?yrs@psv?yvwA[wxBdx!`?y!`!aCr!a;'S?y;'S;=`Db<%lO?ya@uV!O`Ov@pvxA[x!`@p!`!aAy!a;'S@p;'S;=`B^<%lO@pPA_TO!`A[!`!aAn!a;'SA[;'S;=`As<%lOA[PAsOiPPAvP;=`<%lA[aBQSiP!O`Ov&ox;'S&o;'S;=`'Q<%lO&oaBaP;=`<%l@pXBiX|WOrBdrsA[svBdvwA[w!`Bd!`!aCU!a;'SBd;'S;=`Cl<%lOBdXC]TiP|WOr'}sv'}w;'S'};'S;=`(c<%lO'}XCoP;=`<%lBdiC{ViP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oiDeP;=`<%l?yiDoZ|W!O`Or(ors&osv(owx'}x!e(o!e!fEb!f#V(o#V#WIr#W;'S(o;'S;=`)]<%lO(oiEiX|W!O`Or(ors&osv(owx'}x!f(o!f!gFU!g;'S(o;'S;=`)]<%lO(oiF]X|W!O`Or(ors&osv(owx'}x!c(o!c!dFx!d;'S(o;'S;=`)]<%lO(oiGPX|W!O`Or(ors&osv(owx'}x!v(o!v!wGl!w;'S(o;'S;=`)]<%lO(oiGsX|W!O`Or(ors&osv(owx'}x!c(o!c!dH`!d;'S(o;'S;=`)]<%lO(oiHgX|W!O`Or(ors&osv(owx'}x!}(o!}#OIS#O;'S(o;'S;=`)]<%lO(oiI]V|W!O`yPOr(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oiIyX|W!O`Or(ors&osv(owx'}x#W(o#W#XJf#X;'S(o;'S;=`)]<%lO(oiJmX|W!O`Or(ors&osv(owx'}x#T(o#T#UKY#U;'S(o;'S;=`)]<%lO(oiKaX|W!O`Or(ors&osv(owx'}x#h(o#h#iK|#i;'S(o;'S;=`)]<%lO(oiLTX|W!O`Or(ors&osv(owx'}x#T(o#T#UH`#U;'S(o;'S;=`)]<%lO(oiLwX|W!O`Or(ors&osv(owx'}x#c(o#c#dMd#d;'S(o;'S;=`)]<%lO(oiMkX|W!O`Or(ors&osv(owx'}x#V(o#V#WNW#W;'S(o;'S;=`)]<%lO(oiN_X|W!O`Or(ors&osv(owx'}x#h(o#h#iNz#i;'S(o;'S;=`)]<%lO(oi! RX|W!O`Or(ors&osv(owx'}x#m(o#m#n! n#n;'S(o;'S;=`)]<%lO(oi! uX|W!O`Or(ors&osv(owx'}x#d(o#d#e!!b#e;'S(o;'S;=`)]<%lO(oi!!iX|W!O`Or(ors&osv(owx'}x#X(o#X#Y?y#Y;'S(o;'S;=`)]<%lO(oi!#_V!SP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(ok!$PXaQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qo!$wX[UVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk!%mZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a!&`!a;'S$q;'S;=`)c<%lO$qk!&kX!RQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk!'aZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_#P$q#P#Q!(S#Q;'S$q;'S;=`)c<%lO$qk!(]ZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a!)O!a;'S$q;'S;=`)c<%lO$qk!)ZXxQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$q",tokenizers:[K8,J8,eT,tT,0,1,2,3,4],topRules:{Document:[0,6]},tokenPrec:0});function Ta(t,e){let n=e&&e.getChild("TagName");return n?t.sliceString(n.from,n.to):""}function ic(t,e){let n=e&&e.firstChild;return!n||n.name!="OpenTag"?"":Ta(t,n)}function sT(t,e,n){let i=e&&e.getChildren("Attribute").find(r=>r.from<=n&&r.to>=n),s=i&&i.getChild("AttributeName");return s?t.sliceString(s.from,s.to):""}function sc(t){for(let e=t&&t.parent;e;e=e.parent)if(e.name=="Element")return e;return null}function rT(t,e){var n;let i=Ue(t).resolveInner(e,-1),s=null;for(let r=i;!s&&r.parent;r=r.parent)(r.name=="OpenTag"||r.name=="CloseTag"||r.name=="SelfClosingTag"||r.name=="MismatchedCloseTag")&&(s=r);if(s&&(s.to>e||s.lastChild.type.isError)){let r=s.parent;if(i.name=="TagName")return s.name=="CloseTag"||s.name=="MismatchedCloseTag"?{type:"closeTag",from:i.from,context:r}:{type:"openTag",from:i.from,context:sc(r)};if(i.name=="AttributeName")return{type:"attrName",from:i.from,context:s};if(i.name=="AttributeValue")return{type:"attrValue",from:i.from,context:s};let a=i==s||i.name=="Attribute"?i.childBefore(e):i;return(a==null?void 0:a.name)=="StartTag"?{type:"openTag",from:e,context:sc(r)}:(a==null?void 0:a.name)=="StartCloseTag"&&a.to<=e?{type:"closeTag",from:e,context:r}:(a==null?void 0:a.name)=="Is"?{type:"attrValue",from:e,context:s}:a?{type:"attrName",from:e,context:s}:null}else if(i.name=="StartCloseTag")return{type:"closeTag",from:e,context:i.parent};for(;i.parent&&i.to==e&&!(!((n=i.lastChild)===null||n===void 0)&&n.type.isError);)i=i.parent;return i.name=="Element"||i.name=="Text"||i.name=="Document"?{type:"tag",from:e,context:i.name=="Element"?i:sc(i)}:null}class aT{constructor(e,n,i){this.attrs=n,this.attrValues=i,this.children=[],this.name=e.name,this.completion=Object.assign(Object.assign({type:"type"},e.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"</"+this.name+">",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=e.textContent?e.textContent.map(s=>({label:s,type:"text"})):[]}}const rc=/^[:\-\.\w\u00b7-\uffff]*$/;function l0(t){return Object.assign(Object.assign({type:"property"},t.completion||{}),{label:t.name})}function c0(t){return typeof t=="string"?{label:`"${t}"`,type:"constant"}:/^"/.test(t.label)?t:Object.assign(Object.assign({},t),{label:`"${t.label}"`})}function oT(t,e){let n=[],i=[],s=Object.create(null);for(let c of e){let d=l0(c);n.push(d),c.global&&i.push(d),c.values&&(s[c.name]=c.values.map(c0))}let r=[],a=[],o=Object.create(null);for(let c of t){let d=i,u=s;c.attributes&&(d=d.concat(c.attributes.map(f=>typeof f=="string"?n.find(p=>p.label==f)||{label:f,type:"property"}:(f.values&&(u==s&&(u=Object.create(u)),u[f.name]=f.values.map(c0)),l0(f)))));let h=new aT(c,d,u);o[h.name]=h,r.push(h),c.top&&a.push(h)}a.length||(a=r);for(let c=0;c<r.length;c++){let d=t[c],u=r[c];if(d.children)for(let h of d.children)o[h]&&u.children.push(o[h]);else u.children=r}return c=>{var d;let{doc:u}=c.state,h=rT(c.state,c.pos);if(!h||h.type=="tag"&&!c.explicit)return null;let{type:f,from:p,context:O}=h;if(f=="openTag"){let g=a,x=ic(u,O);if(x){let b=o[x];g=(b==null?void 0:b.children)||r}return{from:p,options:g.map(b=>b.completion),validFor:rc}}else if(f=="closeTag"){let g=ic(u,O);return g?{from:p,to:c.pos+(u.sliceString(c.pos,c.pos+1)==">"?1:0),options:[((d=o[g])===null||d===void 0?void 0:d.closeNameCompletion)||{label:g+">",type:"type"}],validFor:rc}:null}else if(f=="attrName"){let g=o[Ta(u,O)];return{from:p,options:(g==null?void 0:g.attrs)||i,validFor:rc}}else if(f=="attrValue"){let g=sT(u,O,p);if(!g)return null;let x=o[Ta(u,O)],b=((x==null?void 0:x.attrValues)||s)[g];return!b||!b.length?null:{from:p,to:c.pos+(u.sliceString(c.pos,c.pos+1)=='"'?1:0),options:b,validFor:/^"[^"]*"?$/}}else if(f=="tag"){let g=ic(u,O),x=o[g],b=[],y=O&&O.lastChild;g&&(!y||y.name!="CloseTag"||Ta(u,y)!=g)&&b.push(x?x.closeCompletion:{label:"</"+g+">",type:"type",boost:2});let S=b.concat(((x==null?void 0:x.children)||(O?r:a)).map(P=>P.openCompletion));if(O&&(x!=null&&x.text.length)){let P=O.firstChild;P.to>c.pos-20&&!/\S/.test(c.state.sliceDoc(P.to,c.pos))&&(S=S.concat(x.text))}return{from:p,options:S,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}else return null}}const hd=wn.define({name:"xml",parser:iT.configure({props:[ui.add({Element(t){let e=/^\s*<\//.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},"OpenTag CloseTag SelfClosingTag"(t){return t.column(t.node.from)+t.unit}}),hi.add({Element(t){let e=t.firstChild,n=t.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:n.name=="CloseTag"?n.from:t.to}}}),cu.add({"OpenTag CloseTag":t=>t.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/$/}});function lT(t={}){let e=[hd.data.of({autocomplete:oT(t.elements||[],t.attributes||[])})];return t.autoCloseTags!==!1&&e.push(cT),new _i(hd,e)}function d0(t,e,n=t.length){if(!e)return"";let i=e.firstChild,s=i&&i.getChild("TagName");return s?t.sliceString(s.from,Math.min(s.to,n)):""}const cT=ie.inputHandler.of((t,e,n,i,s)=>{if(t.composing||t.state.readOnly||e!=n||i!=">"&&i!="/"||!hd.isActiveAt(t.state,e,-1))return!1;let r=s(),{state:a}=r,o=a.changeByRange(c=>{var d,u,h;let{head:f}=c,p=a.doc.sliceString(f-1,f)==i,O=Ue(a).resolveInner(f,-1),g;if(p&&i==">"&&O.name=="EndTag"){let x=O.parent;if(((u=(d=x.parent)===null||d===void 0?void 0:d.lastChild)===null||u===void 0?void 0:u.name)!="CloseTag"&&(g=d0(a.doc,x.parent,f))){let b=f+(a.doc.sliceString(f,f+1)===">"?1:0),y=`</${g}>`;return{range:c,changes:{from:f,to:b,insert:y}}}}else if(p&&i=="/"&&O.name=="StartCloseTag"){let x=O.parent;if(O.from==f-2&&((h=x.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(g=d0(a.doc,x,f))){let b=f+(a.doc.sliceString(f,f+1)===">"?1:0),y=`${g}>`;return{range:q.cursor(f+y.length,-1),changes:{from:f,to:b,insert:y}}}}return{range:c}});return o.changes.empty?!1:(t.dispatch([r,a.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),dT=t=>{let{state:e}=t,n=e.doc.lineAt(e.selection.main.from),i=$u(t.state,n.from);return i.line?uT(t):i.block?fT(t):!1};function Tu(t,e){return({state:n,dispatch:i})=>{if(n.readOnly)return!1;let s=t(e,n);return s?(i(n.update(s)),!0):!1}}const uT=Tu(mT,0),hT=Tu(X1,0),fT=Tu((t,e)=>X1(t,e,OT(e)),0);function $u(t,e){let n=t.languageDataAt("commentTokens",e,1);return n.length?n[0]:{}}const Ps=50;function pT(t,{open:e,close:n},i,s){let r=t.sliceDoc(i-Ps,i),a=t.sliceDoc(s,s+Ps),o=/\s*$/.exec(r)[0].length,c=/^\s*/.exec(a)[0].length,d=r.length-o;if(r.slice(d-e.length,d)==e&&a.slice(c,c+n.length)==n)return{open:{pos:i-o,margin:o&&1},close:{pos:s+c,margin:c&&1}};let u,h;s-i<=2*Ps?u=h=t.sliceDoc(i,s):(u=t.sliceDoc(i,i+Ps),h=t.sliceDoc(s-Ps,s));let f=/^\s*/.exec(u)[0].length,p=/\s*$/.exec(h)[0].length,O=h.length-p-n.length;return u.slice(f,f+e.length)==e&&h.slice(O,O+n.length)==n?{open:{pos:i+f+e.length,margin:/\s/.test(u.charAt(f+e.length))?1:0},close:{pos:s-p-n.length,margin:/\s/.test(h.charAt(O-1))?1:0}}:null}function OT(t){let e=[];for(let n of t.selection.ranges){let i=t.doc.lineAt(n.from),s=n.to<=i.to?i:t.doc.lineAt(n.to);s.from>i.from&&s.from==n.to&&(s=n.to==i.to+1?i:t.doc.lineAt(n.to-1));let r=e.length-1;r>=0&&e[r].to>i.from?e[r].to=s.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:s.to})}return e}function X1(t,e,n=e.selection.ranges){let i=n.map(r=>$u(e,r.from).block);if(!i.every(r=>r))return null;let s=n.map((r,a)=>pT(e,i[a],r.from,r.to));if(t!=2&&!s.every(r=>r))return{changes:e.changes(n.map((r,a)=>s[a]?[]:[{from:r.from,insert:i[a].open+" "},{from:r.to,insert:" "+i[a].close}]))};if(t!=1&&s.some(r=>r)){let r=[];for(let a=0,o;a<s.length;a++)if(o=s[a]){let c=i[a],{open:d,close:u}=o;r.push({from:d.pos-c.open.length,to:d.pos+d.margin},{from:u.pos-u.margin,to:u.pos+c.close.length})}return{changes:r}}return null}function mT(t,e,n=e.selection.ranges){let i=[],s=-1;e:for(let{from:r,to:a}of n){let o=i.length,c=1e9,d;for(let u=r;u<=a;){let h=e.doc.lineAt(u);if(d==null&&(d=$u(e,h.from).line,!d))continue e;if(h.from>s&&(r==a||a>h.from)){s=h.from;let f=/^\s*/.exec(h.text)[0].length,p=f==h.length,O=h.text.slice(f,f+d.length)==d?f:-1;f<h.text.length&&f<c&&(c=f),i.push({line:h,comment:O,token:d,indent:f,empty:p,single:!1})}u=h.to+1}if(c<1e9)for(let u=o;u<i.length;u++)i[u].indent<i[u].line.text.length&&(i[u].indent=c);i.length==o+1&&(i[o].single=!0)}if(t!=2&&i.some(r=>r.comment<0&&(!r.empty||r.single))){let r=[];for(let{line:o,token:c,indent:d,empty:u,single:h}of i)(h||!u)&&r.push({from:o.from+d,insert:c+" "});let a=e.changes(r);return{changes:a,selection:e.selection.map(a,1)}}else if(t!=1&&i.some(r=>r.comment>=0)){let r=[];for(let{line:a,comment:o,token:c}of i)if(o>=0){let d=a.from+o,u=d+c.length;a.text[u-a.from]==" "&&u++,r.push({from:d,to:u})}return{changes:r}}return null}const fd=Dn.define(),gT=Dn.define(),xT=se.define(),Z1=se.define({combine(t){return kn(t,{minDepth:100,newGroupDelay:500,joinToEvent:(e,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,n)=>(i,s)=>e(i,s)||n(i,s)})}}),D1=gt.define({create(){return bn.empty},update(t,e){let n=e.state.facet(Z1),i=e.annotation(fd);if(i){let c=Nt.fromTransaction(e,i.selection),d=i.side,u=d==0?t.undone:t.done;return c?u=ho(u,u.length,n.minDepth,c):u=z1(u,e.startState.selection),new bn(d==0?i.rest:u,d==0?u:i.rest)}let s=e.annotation(gT);if((s=="full"||s=="before")&&(t=t.isolate()),e.annotation(at.addToHistory)===!1)return e.changes.empty?t:t.addMapping(e.changes.desc);let r=Nt.fromTransaction(e),a=e.annotation(at.time),o=e.annotation(at.userEvent);return r?t=t.addChanges(r,a,o,n,e):e.selection&&(t=t.addSelection(e.startState.selection,a,o,n.newGroupDelay)),(s=="full"||s=="after")&&(t=t.isolate()),t},toJSON(t){return{done:t.done.map(e=>e.toJSON()),undone:t.undone.map(e=>e.toJSON())}},fromJSON(t){return new bn(t.done.map(Nt.fromJSON),t.undone.map(Nt.fromJSON))}});function bT(t={}){return[D1,Z1.of(t),ie.domEventHandlers({beforeinput(e,n){let i=e.inputType=="historyUndo"?q1:e.inputType=="historyRedo"?pd:null;return i?(e.preventDefault(),i(n)):!1}})]}function Wo(t,e){return function({state:n,dispatch:i}){if(!e&&n.readOnly)return!1;let s=n.field(D1,!1);if(!s)return!1;let r=s.pop(t,n,e);return r?(i(r),!0):!1}}const q1=Wo(0,!1),pd=Wo(1,!1),yT=Wo(0,!0),vT=Wo(1,!0);class Nt{constructor(e,n,i,s,r){this.changes=e,this.effects=n,this.mapped=i,this.startSelection=s,this.selectionsAfter=r}setSelAfter(e){return new Nt(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,n,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(e){return new Nt(e.changes&&ct.fromJSON(e.changes),[],e.mapped&&yn.fromJSON(e.mapped),e.startSelection&&q.fromJSON(e.startSelection),e.selectionsAfter.map(q.fromJSON))}static fromTransaction(e,n){let i=Vt;for(let s of e.startState.facet(xT)){let r=s(e);r.length&&(i=i.concat(r))}return!i.length&&e.changes.empty?null:new Nt(e.changes.invert(e.startState.doc),i,void 0,n||e.startState.selection,Vt)}static selection(e){return new Nt(void 0,Vt,void 0,void 0,e)}}function ho(t,e,n,i){let s=e+1>n+20?e-n-1:0,r=t.slice(s,e);return r.push(i),r}function ST(t,e){let n=[],i=!1;return t.iterChangedRanges((s,r)=>n.push(s,r)),e.iterChangedRanges((s,r,a,o)=>{for(let c=0;c<n.length;){let d=n[c++],u=n[c++];o>=d&&a<=u&&(i=!0)}}),i}function wT(t,e){return t.ranges.length==e.ranges.length&&t.ranges.filter((n,i)=>n.empty!=e.ranges[i].empty).length===0}function W1(t,e){return t.length?e.length?t.concat(e):t:e}const Vt=[],kT=200;function z1(t,e){if(t.length){let n=t[t.length-1],i=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-kT));return i.length&&i[i.length-1].eq(e)?t:(i.push(e),ho(t,t.length-1,1e9,n.setSelAfter(i)))}else return[Nt.selection([e])]}function QT(t){let e=t[t.length-1],n=t.slice();return n[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),n}function ac(t,e){if(!t.length)return t;let n=t.length,i=Vt;for(;n;){let s=CT(t[n-1],e,i);if(s.changes&&!s.changes.empty||s.effects.length){let r=t.slice(0,n);return r[n-1]=s,r}else e=s.mapped,n--,i=s.selectionsAfter}return i.length?[Nt.selection(i)]:Vt}function CT(t,e,n){let i=W1(t.selectionsAfter.length?t.selectionsAfter.map(o=>o.map(e)):Vt,n);if(!t.changes)return Nt.selection(i);let s=t.changes.map(e),r=e.mapDesc(t.changes,!0),a=t.mapped?t.mapped.composeDesc(r):r;return new Nt(s,Pe.mapEffects(t.effects,e),a,t.startSelection.map(r),i)}const PT=/^(input\.type|delete)($|\.)/;class bn{constructor(e,n,i=0,s=void 0){this.done=e,this.undone=n,this.prevTime=i,this.prevUserEvent=s}isolate(){return this.prevTime?new bn(this.done,this.undone):this}addChanges(e,n,i,s,r){let a=this.done,o=a[a.length-1];return o&&o.changes&&!o.changes.empty&&e.changes&&(!i||PT.test(i))&&(!o.selectionsAfter.length&&n-this.prevTime<s.newGroupDelay&&s.joinToEvent(r,ST(o.changes,e.changes))||i=="input.type.compose")?a=ho(a,a.length-1,s.minDepth,new Nt(e.changes.compose(o.changes),W1(Pe.mapEffects(e.effects,o.changes),o.effects),o.mapped,o.startSelection,Vt)):a=ho(a,a.length,s.minDepth,e),new bn(a,Vt,n,i)}addSelection(e,n,i,s){let r=this.done.length?this.done[this.done.length-1].selectionsAfter:Vt;return r.length>0&&n-this.prevTime<s&&i==this.prevUserEvent&&i&&/^select($|\.)/.test(i)&&wT(r[r.length-1],e)?this:new bn(z1(this.done,e),this.undone,n,i)}addMapping(e){return new bn(ac(this.done,e),ac(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,n,i){let s=e==0?this.done:this.undone;if(s.length==0)return null;let r=s[s.length-1],a=r.selectionsAfter[0]||(r.startSelection?r.startSelection.map(r.changes.invertedDesc,1):n.selection);if(i&&r.selectionsAfter.length)return n.update({selection:r.selectionsAfter[r.selectionsAfter.length-1],annotations:fd.of({side:e,rest:QT(s),selection:a}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(r.changes){let o=s.length==1?Vt:s.slice(0,s.length-1);return r.mapped&&(o=ac(o,r.mapped)),n.update({changes:r.changes,selection:r.startSelection,effects:r.effects,annotations:fd.of({side:e,rest:o,selection:a}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}}bn.empty=new bn(Vt,Vt);const TT=[{key:"Mod-z",run:q1,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:pd,preventDefault:!0},{linux:"Ctrl-Shift-z",run:pd,preventDefault:!0},{key:"Mod-u",run:yT,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:vT,preventDefault:!0}];function Os(t,e){return q.create(t.ranges.map(e),t.mainIndex)}function rn(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function an({state:t,dispatch:e},n){let i=Os(t.selection,n);return i.eq(t.selection,!0)?!1:(e(rn(t,i)),!0)}function zo(t,e){return q.cursor(e?t.to:t.from)}function B1(t,e){return an(t,n=>n.empty?t.moveByChar(n,e):zo(n,e))}function yt(t){return t.textDirectionAt(t.state.selection.main.head)==Be.LTR}const V1=t=>B1(t,!yt(t)),F1=t=>B1(t,yt(t));function U1(t,e){return an(t,n=>n.empty?t.moveByGroup(n,e):zo(n,e))}const $T=t=>U1(t,!yt(t)),jT=t=>U1(t,yt(t));function AT(t,e,n){if(e.type.prop(n))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function Bo(t,e,n){let i=Ue(t).resolveInner(e.head),s=n?Re.closedBy:Re.openedBy;for(let c=e.head;;){let d=n?i.childAfter(c):i.childBefore(c);if(!d)break;AT(t,d,s)?i=d:c=n?d.to:d.from}let r=i.type.prop(s),a,o;return r&&(a=n?xn(t,i.from,1):xn(t,i.to,-1))&&a.matched?o=n?a.end.to:a.end.from:o=n?i.to:i.from,q.cursor(o,n?-1:1)}const NT=t=>an(t,e=>Bo(t.state,e,!yt(t))),RT=t=>an(t,e=>Bo(t.state,e,yt(t)));function Y1(t,e){return an(t,n=>{if(!n.empty)return zo(n,e);let i=t.moveVertically(n,e);return i.head!=n.head?i:t.moveToLineBoundary(n,e)})}const G1=t=>Y1(t,!1),H1=t=>Y1(t,!0);function K1(t){let e=t.scrollDOM.clientHeight<t.scrollDOM.scrollHeight-2,n=0,i=0,s;if(e){for(let r of t.state.facet(ie.scrollMargins)){let a=r(t);a!=null&&a.top&&(n=Math.max(a==null?void 0:a.top,n)),a!=null&&a.bottom&&(i=Math.max(a==null?void 0:a.bottom,i))}s=t.scrollDOM.clientHeight-n-i}else s=(t.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:i,selfScroll:e,height:Math.max(t.defaultLineHeight,s-5)}}function J1(t,e){let n=K1(t),{state:i}=t,s=Os(i.selection,a=>a.empty?t.moveVertically(a,e,n.height):zo(a,e));if(s.eq(i.selection))return!1;let r;if(n.selfScroll){let a=t.coordsAtPos(i.selection.main.head),o=t.scrollDOM.getBoundingClientRect(),c=o.top+n.marginTop,d=o.bottom-n.marginBottom;a&&a.top>c&&a.bottom<d&&(r=ie.scrollIntoView(s.main.head,{y:"start",yMargin:a.top-c}))}return t.dispatch(rn(i,s),{effects:r}),!0}const u0=t=>J1(t,!1),Od=t=>J1(t,!0);function fi(t,e,n){let i=t.lineBlockAt(e.head),s=t.moveToLineBoundary(e,n);if(s.head==e.head&&s.head!=(n?i.to:i.from)&&(s=t.moveToLineBoundary(e,n,!1)),!n&&s.head==i.from&&i.length){let r=/^\s*/.exec(t.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;r&&e.head!=i.from+r&&(s=q.cursor(i.from+r))}return s}const _T=t=>an(t,e=>fi(t,e,!0)),MT=t=>an(t,e=>fi(t,e,!1)),ET=t=>an(t,e=>fi(t,e,!yt(t))),IT=t=>an(t,e=>fi(t,e,yt(t))),LT=t=>an(t,e=>q.cursor(t.lineBlockAt(e.head).from,1)),XT=t=>an(t,e=>q.cursor(t.lineBlockAt(e.head).to,-1));function ZT(t,e,n){let i=!1,s=Os(t.selection,r=>{let a=xn(t,r.head,-1)||xn(t,r.head,1)||r.head>0&&xn(t,r.head-1,1)||r.head<t.doc.length&&xn(t,r.head+1,-1);if(!a||!a.end)return r;i=!0;let o=a.start.from==r.head?a.end.to:a.end.from;return q.cursor(o)});return i?(e(rn(t,s)),!0):!1}const DT=({state:t,dispatch:e})=>ZT(t,e);function Gt(t,e){let n=Os(t.state.selection,i=>{let s=e(i);return q.range(i.anchor,s.head,s.goalColumn,s.bidiLevel||void 0)});return n.eq(t.state.selection)?!1:(t.dispatch(rn(t.state,n)),!0)}function ex(t,e){return Gt(t,n=>t.moveByChar(n,e))}const tx=t=>ex(t,!yt(t)),nx=t=>ex(t,yt(t));function ix(t,e){return Gt(t,n=>t.moveByGroup(n,e))}const qT=t=>ix(t,!yt(t)),WT=t=>ix(t,yt(t)),zT=t=>Gt(t,e=>Bo(t.state,e,!yt(t))),BT=t=>Gt(t,e=>Bo(t.state,e,yt(t)));function sx(t,e){return Gt(t,n=>t.moveVertically(n,e))}const rx=t=>sx(t,!1),ax=t=>sx(t,!0);function ox(t,e){return Gt(t,n=>t.moveVertically(n,e,K1(t).height))}const h0=t=>ox(t,!1),f0=t=>ox(t,!0),VT=t=>Gt(t,e=>fi(t,e,!0)),FT=t=>Gt(t,e=>fi(t,e,!1)),UT=t=>Gt(t,e=>fi(t,e,!yt(t))),YT=t=>Gt(t,e=>fi(t,e,yt(t))),GT=t=>Gt(t,e=>q.cursor(t.lineBlockAt(e.head).from)),HT=t=>Gt(t,e=>q.cursor(t.lineBlockAt(e.head).to)),p0=({state:t,dispatch:e})=>(e(rn(t,{anchor:0})),!0),O0=({state:t,dispatch:e})=>(e(rn(t,{anchor:t.doc.length})),!0),m0=({state:t,dispatch:e})=>(e(rn(t,{anchor:t.selection.main.anchor,head:0})),!0),g0=({state:t,dispatch:e})=>(e(rn(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),KT=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),JT=({state:t,dispatch:e})=>{let n=Vo(t).map(({from:i,to:s})=>q.range(i,Math.min(s+1,t.doc.length)));return e(t.update({selection:q.create(n),userEvent:"select"})),!0},e$=({state:t,dispatch:e})=>{let n=Os(t.selection,i=>{let s=Ue(t),r=s.resolveStack(i.from,1);if(i.empty){let a=s.resolveStack(i.from,-1);a.node.from>=r.node.from&&a.node.to<=r.node.to&&(r=a)}for(let a=r;a;a=a.next){let{node:o}=a;if((o.from<i.from&&o.to>=i.to||o.to>i.to&&o.from<=i.from)&&a.next)return q.range(o.to,o.from)}return i});return n.eq(t.selection)?!1:(e(rn(t,n)),!0)};function lx(t,e){let{state:n}=t,i=n.selection,s=n.selection.ranges.slice();for(let r of n.selection.ranges){let a=n.doc.lineAt(r.head);if(e?a.to<t.state.doc.length:a.from>0)for(let o=r;;){let c=t.moveVertically(o,e);if(c.head<a.from||c.head>a.to){s.some(d=>d.head==c.head)||s.push(c);break}else{if(c.head==o.head)break;o=c}}}return s.length==i.ranges.length?!1:(t.dispatch(rn(n,q.create(s,s.length-1))),!0)}const t$=t=>lx(t,!1),n$=t=>lx(t,!0),i$=({state:t,dispatch:e})=>{let n=t.selection,i=null;return n.ranges.length>1?i=q.create([n.main]):n.main.empty||(i=q.create([q.cursor(n.main.head)])),i?(e(rn(t,i)),!0):!1};function Sr(t,e){if(t.state.readOnly)return!1;let n="delete.selection",{state:i}=t,s=i.changeByRange(r=>{let{from:a,to:o}=r;if(a==o){let c=e(r);c<a?(n="delete.backward",c=ia(t,c,!1)):c>a&&(n="delete.forward",c=ia(t,c,!0)),a=Math.min(a,c),o=Math.max(o,c)}else a=ia(t,a,!1),o=ia(t,o,!0);return a==o?{range:r}:{changes:{from:a,to:o},range:q.cursor(a,a<r.head?-1:1)}});return s.changes.empty?!1:(t.dispatch(i.update(s,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?ie.announce.of(i.phrase("Selection deleted")):void 0})),!0)}function ia(t,e,n){if(t instanceof ie)for(let i of t.state.facet(ie.atomicRanges).map(s=>s(t)))i.between(e,e,(s,r)=>{s<e&&r>e&&(e=n?r:s)});return e}const cx=(t,e,n)=>Sr(t,i=>{let s=i.from,{state:r}=t,a=r.doc.lineAt(s),o,c;if(n&&!e&&s>a.from&&s<a.from+200&&!/[^ \t]/.test(o=a.text.slice(0,s-a.from))){if(o[o.length-1]==" ")return s-1;let d=fs(o,r.tabSize),u=d%to(r)||to(r);for(let h=0;h<u&&o[o.length-1-h]==" ";h++)s--;c=s}else c=ut(a.text,s-a.from,e,e)+a.from,c==s&&a.number!=(e?r.doc.lines:1)?c+=e?1:-1:!e&&/[\ufe00-\ufe0f]/.test(a.text.slice(c-a.from,s-a.from))&&(c=ut(a.text,c-a.from,!1,!1)+a.from);return c}),md=t=>cx(t,!1,!0),dx=t=>cx(t,!0,!1),ux=(t,e)=>Sr(t,n=>{let i=n.head,{state:s}=t,r=s.doc.lineAt(i),a=s.charCategorizer(i);for(let o=null;;){if(i==(e?r.to:r.from)){i==n.head&&r.number!=(e?s.doc.lines:1)&&(i+=e?1:-1);break}let c=ut(r.text,i-r.from,e)+r.from,d=r.text.slice(Math.min(i,c)-r.from,Math.max(i,c)-r.from),u=a(d);if(o!=null&&u!=o)break;(d!=" "||i!=n.head)&&(o=u),i=c}return i}),hx=t=>ux(t,!1),s$=t=>ux(t,!0),r$=t=>Sr(t,e=>{let n=t.lineBlockAt(e.head).to;return e.head<n?n:Math.min(t.state.doc.length,e.head+1)}),a$=t=>Sr(t,e=>{let n=t.moveToLineBoundary(e,!1).head;return e.head>n?n:Math.max(0,e.head-1)}),o$=t=>Sr(t,e=>{let n=t.moveToLineBoundary(e,!0).head;return e.head<n?n:Math.min(t.state.doc.length,e.head+1)}),l$=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=t.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:Ze.of(["",""])},range:q.cursor(i.from)}));return e(t.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},c$=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=t.changeByRange(i=>{if(!i.empty||i.from==0||i.from==t.doc.length)return{range:i};let s=i.from,r=t.doc.lineAt(s),a=s==r.from?s-1:ut(r.text,s-r.from,!1)+r.from,o=s==r.to?s+1:ut(r.text,s-r.from,!0)+r.from;return{changes:{from:a,to:o,insert:t.doc.slice(s,o).append(t.doc.slice(a,s))},range:q.cursor(o)}});return n.changes.empty?!1:(e(t.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Vo(t){let e=[],n=-1;for(let i of t.selection.ranges){let s=t.doc.lineAt(i.from),r=t.doc.lineAt(i.to);if(!i.empty&&i.to==r.from&&(r=t.doc.lineAt(i.to-1)),n>=s.number){let a=e[e.length-1];a.to=r.to,a.ranges.push(i)}else e.push({from:s.from,to:r.to,ranges:[i]});n=r.number+1}return e}function fx(t,e,n){if(t.readOnly)return!1;let i=[],s=[];for(let r of Vo(t)){if(n?r.to==t.doc.length:r.from==0)continue;let a=t.doc.lineAt(n?r.to+1:r.from-1),o=a.length+1;if(n){i.push({from:r.to,to:a.to},{from:r.from,insert:a.text+t.lineBreak});for(let c of r.ranges)s.push(q.range(Math.min(t.doc.length,c.anchor+o),Math.min(t.doc.length,c.head+o)))}else{i.push({from:a.from,to:r.from},{from:r.to,insert:t.lineBreak+a.text});for(let c of r.ranges)s.push(q.range(c.anchor-o,c.head-o))}}return i.length?(e(t.update({changes:i,scrollIntoView:!0,selection:q.create(s,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}const d$=({state:t,dispatch:e})=>fx(t,e,!1),u$=({state:t,dispatch:e})=>fx(t,e,!0);function px(t,e,n){if(t.readOnly)return!1;let i=[];for(let r of Vo(t))n?i.push({from:r.from,insert:t.doc.slice(r.from,r.to)+t.lineBreak}):i.push({from:r.to,insert:t.lineBreak+t.doc.slice(r.from,r.to)});let s=t.changes(i);return e(t.update({changes:s,selection:t.selection.map(s,n?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const h$=({state:t,dispatch:e})=>px(t,e,!1),f$=({state:t,dispatch:e})=>px(t,e,!0),p$=t=>{if(t.state.readOnly)return!1;let{state:e}=t,n=e.changes(Vo(e).map(({from:s,to:r})=>(s>0?s--:r<e.doc.length&&r++,{from:s,to:r}))),i=Os(e.selection,s=>{let r;if(t.lineWrapping){let a=t.lineBlockAt(s.head),o=t.coordsAtPos(s.head,s.assoc||1);o&&(r=a.bottom+t.documentTop-o.bottom+t.defaultLineHeight/2)}return t.moveVertically(s,!0,r)}).map(n);return t.dispatch({changes:n,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function O$(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let n=Ue(t).resolveInner(e),i=n.childBefore(e),s=n.childAfter(e),r;return i&&s&&i.to<=e&&s.from>=e&&(r=i.type.prop(Re.closedBy))&&r.indexOf(s.name)>-1&&t.doc.lineAt(i.to).from==t.doc.lineAt(s.from).from&&!/\S/.test(t.sliceDoc(i.to,s.from))?{from:i.to,to:s.from}:null}const x0=Ox(!1),m$=Ox(!0);function Ox(t){return({state:e,dispatch:n})=>{if(e.readOnly)return!1;let i=e.changeByRange(s=>{let{from:r,to:a}=s,o=e.doc.lineAt(r),c=!t&&r==a&&O$(e,r);t&&(r=a=(a<=o.to?o:e.doc.lineAt(a)).to);let d=new Eo(e,{simulateBreak:r,simulateDoubleBreak:!!c}),u=ou(d,r);for(u==null&&(u=fs(/^\s*/.exec(e.doc.lineAt(r).text)[0],e.tabSize));a<o.to&&/\s/.test(o.text[a-o.from]);)a++;c?{from:r,to:a}=c:r>o.from&&r<o.from+100&&!/\S/.test(o.text.slice(0,r))&&(r=o.from);let h=["",ar(e,u)];return c&&h.push(ar(e,d.lineIndent(o.from,-1))),{changes:{from:r,to:a,insert:Ze.of(h)},range:q.cursor(r+1+h[1].length)}});return n(e.update(i,{scrollIntoView:!0,userEvent:"input"})),!0}}function ju(t,e){let n=-1;return t.changeByRange(i=>{let s=[];for(let a=i.from;a<=i.to;){let o=t.doc.lineAt(a);o.number>n&&(i.empty||i.to>o.from)&&(e(o,s,i),n=o.number),a=o.to+1}let r=t.changes(s);return{changes:s,range:q.range(r.mapPos(i.anchor,1),r.mapPos(i.head,1))}})}const g$=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=Object.create(null),i=new Eo(t,{overrideIndentation:r=>{let a=n[r];return a??-1}}),s=ju(t,(r,a,o)=>{let c=ou(i,r.from);if(c==null)return;/\S/.test(r.text)||(c=0);let d=/^\s*/.exec(r.text)[0],u=ar(t,c);(d!=u||o.from<r.from+d.length)&&(n[r.from]=c,a.push({from:r.from,to:r.from+d.length,insert:u}))});return s.changes.empty||e(t.update(s,{userEvent:"indent"})),!0},x$=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(ju(t,(n,i)=>{i.push({from:n.from,insert:t.facet(Mo)})}),{userEvent:"input.indent"})),!0),b$=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(ju(t,(n,i)=>{let s=/^\s*/.exec(n.text)[0];if(!s)return;let r=fs(s,t.tabSize),a=0,o=ar(t,Math.max(0,r-to(t)));for(;a<s.length&&a<o.length&&s.charCodeAt(a)==o.charCodeAt(a);)a++;i.push({from:n.from+a,to:n.from+s.length,insert:o.slice(a)})}),{userEvent:"delete.dedent"})),!0),y$=t=>(t.setTabFocusMode(),!0),v$=[{key:"Ctrl-b",run:V1,shift:tx,preventDefault:!0},{key:"Ctrl-f",run:F1,shift:nx},{key:"Ctrl-p",run:G1,shift:rx},{key:"Ctrl-n",run:H1,shift:ax},{key:"Ctrl-a",run:LT,shift:GT},{key:"Ctrl-e",run:XT,shift:HT},{key:"Ctrl-d",run:dx},{key:"Ctrl-h",run:md},{key:"Ctrl-k",run:r$},{key:"Ctrl-Alt-h",run:hx},{key:"Ctrl-o",run:l$},{key:"Ctrl-t",run:c$},{key:"Ctrl-v",run:Od}],S$=[{key:"ArrowLeft",run:V1,shift:tx,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:$T,shift:qT,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:ET,shift:UT,preventDefault:!0},{key:"ArrowRight",run:F1,shift:nx,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:jT,shift:WT,preventDefault:!0},{mac:"Cmd-ArrowRight",run:IT,shift:YT,preventDefault:!0},{key:"ArrowUp",run:G1,shift:rx,preventDefault:!0},{mac:"Cmd-ArrowUp",run:p0,shift:m0},{mac:"Ctrl-ArrowUp",run:u0,shift:h0},{key:"ArrowDown",run:H1,shift:ax,preventDefault:!0},{mac:"Cmd-ArrowDown",run:O0,shift:g0},{mac:"Ctrl-ArrowDown",run:Od,shift:f0},{key:"PageUp",run:u0,shift:h0},{key:"PageDown",run:Od,shift:f0},{key:"Home",run:MT,shift:FT,preventDefault:!0},{key:"Mod-Home",run:p0,shift:m0},{key:"End",run:_T,shift:VT,preventDefault:!0},{key:"Mod-End",run:O0,shift:g0},{key:"Enter",run:x0,shift:x0},{key:"Mod-a",run:KT},{key:"Backspace",run:md,shift:md,preventDefault:!0},{key:"Delete",run:dx,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:hx,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:s$,preventDefault:!0},{mac:"Mod-Backspace",run:a$,preventDefault:!0},{mac:"Mod-Delete",run:o$,preventDefault:!0}].concat(v$.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),w$=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:NT,shift:zT},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:RT,shift:BT},{key:"Alt-ArrowUp",run:d$},{key:"Shift-Alt-ArrowUp",run:h$},{key:"Alt-ArrowDown",run:u$},{key:"Shift-Alt-ArrowDown",run:f$},{key:"Mod-Alt-ArrowUp",run:t$},{key:"Mod-Alt-ArrowDown",run:n$},{key:"Escape",run:i$},{key:"Mod-Enter",run:m$},{key:"Alt-l",mac:"Ctrl-l",run:JT},{key:"Mod-i",run:e$,preventDefault:!0},{key:"Mod-[",run:b$},{key:"Mod-]",run:x$},{key:"Mod-Alt-\\",run:g$},{key:"Shift-Mod-k",run:p$},{key:"Shift-Mod-\\",run:DT},{key:"Mod-/",run:dT},{key:"Alt-A",run:hT},{key:"Ctrl-m",mac:"Shift-Alt-m",run:y$}].concat(S$),b0=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t;class us{constructor(e,n,i=0,s=e.length,r,a){this.test=a,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,s),this.bufferStart=i,this.normalize=r?o=>r(b0(o)):b0,this.query=this.normalize(n)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Tt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let n=Dd(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=pn(e);let s=this.normalize(n);if(s.length)for(let r=0,a=i;;r++){let o=s.charCodeAt(r),c=this.match(o,a,this.bufferPos+this.bufferStart);if(r==s.length-1){if(c)return this.value=c,this;break}a==i&&r<n.length&&n.charCodeAt(r)==o&&a++}}}match(e,n,i){let s=null;for(let r=0;r<this.matches.length;r+=2){let a=this.matches[r],o=!1;this.query.charCodeAt(a)==e&&(a==this.query.length-1?s={from:this.matches[r+1],to:i}:(this.matches[r]++,o=!0)),o||(this.matches.splice(r,2),r-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?s={from:n,to:i}:this.matches.push(1,n)),s&&this.test&&!this.test(s.from,s.to,this.buffer,this.bufferStart)&&(s=null),s}}typeof Symbol<"u"&&(us.prototype[Symbol.iterator]=function(){return this});const mx={from:-1,to:-1,match:/.*/.exec("")},Au="gm"+(/x/.unicode==null?"":"u");class gx{constructor(e,n,i,s=0,r=e.length){if(this.text=e,this.to=r,this.curLine="",this.done=!1,this.value=mx,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new xx(e,n,i,s,r);this.re=new RegExp(n,Au+(i!=null&&i.ignoreCase?"i":"")),this.test=i==null?void 0:i.test,this.iter=e.iter();let a=e.lineAt(s);this.curLineStart=a.from,this.matchPos=fo(e,s),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let n=this.matchPos<=this.to&&this.re.exec(this.curLine);if(n){let i=this.curLineStart+n.index,s=i+n[0].length;if(this.matchPos=fo(this.text,s+(i==s?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(i<s||i>this.value.to)&&(!this.test||this.test(i,s,n)))return this.value={from:i,to:s,match:n},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const oc=new WeakMap;class is{constructor(e,n){this.from=e,this.text=n}get to(){return this.from+this.text.length}static get(e,n,i){let s=oc.get(e);if(!s||s.from>=i||s.to<=n){let o=new is(n,e.sliceString(n,i));return oc.set(e,o),o}if(s.from==n&&s.to==i)return s;let{text:r,from:a}=s;return a>n&&(r=e.sliceString(n,a)+r,a=n),s.to<i&&(r+=e.sliceString(s.to,i)),oc.set(e,new is(a,r)),new is(n,r.slice(n-a,i-a))}}class xx{constructor(e,n,i,s,r){this.text=e,this.to=r,this.done=!1,this.value=mx,this.matchPos=fo(e,s),this.re=new RegExp(n,Au+(i!=null&&i.ignoreCase?"i":"")),this.test=i==null?void 0:i.test,this.flat=is.get(e,s,this.chunkEnd(s+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,n=this.re.exec(this.flat.text);if(n&&!n[0]&&n.index==e&&(this.re.lastIndex=e+1,n=this.re.exec(this.flat.text)),n){let i=this.flat.from+n.index,s=i+n[0].length;if((this.flat.to>=this.to||n.index+n[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,s,n)))return this.value={from:i,to:s,match:n},this.matchPos=fo(this.text,s+(i==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=is.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(gx.prototype[Symbol.iterator]=xx.prototype[Symbol.iterator]=function(){return this});function k$(t){try{return new RegExp(t,Au),!0}catch{return!1}}function fo(t,e){if(e>=t.length)return e;let n=t.lineAt(e),i;for(;e<n.to&&(i=n.text.charCodeAt(e-n.from))>=56320&&i<57344;)e++;return e}const Q$=t=>{let{state:e}=t,n=String(e.doc.lineAt(t.state.selection.main.head).number),{close:i,result:s}=UQ(t,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:n},focus:!0,submitLabel:e.phrase("go")});return s.then(r=>{let a=r&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(r.elements.line.value);if(!a){t.dispatch({effects:i});return}let o=e.doc.lineAt(e.selection.main.head),[,c,d,u,h]=a,f=u?+u.slice(1):0,p=d?+d:o.number;if(d&&h){let x=p/100;c&&(x=x*(c=="-"?-1:1)+o.number/e.doc.lines),p=Math.round(e.doc.lines*x)}else d&&c&&(p=p*(c=="-"?-1:1)+o.number);let O=e.doc.line(Math.max(1,Math.min(e.doc.lines,p))),g=q.cursor(O.from+Math.max(0,Math.min(f,O.length)));t.dispatch({effects:[i,ie.scrollIntoView(g.from,{y:"center"})],selection:g})}),!0},C$={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},P$=se.define({combine(t){return kn(t,C$,{highlightWordAroundCursor:(e,n)=>e||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function T$(t){return[R$,N$]}const $$=Se.mark({class:"cm-selectionMatch"}),j$=Se.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function y0(t,e,n,i){return(n==0||t(e.sliceDoc(n-1,n))!=Je.Word)&&(i==e.doc.length||t(e.sliceDoc(i,i+1))!=Je.Word)}function A$(t,e,n,i){return t(e.sliceDoc(n,n+1))==Je.Word&&t(e.sliceDoc(i-1,i))==Je.Word}const N$=st.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(P$),{state:n}=t,i=n.selection;if(i.ranges.length>1)return Se.none;let s=i.main,r,a=null;if(s.empty){if(!e.highlightWordAroundCursor)return Se.none;let c=n.wordAt(s.head);if(!c)return Se.none;a=n.charCategorizer(s.head),r=n.sliceDoc(c.from,c.to)}else{let c=s.to-s.from;if(c<e.minSelectionLength||c>200)return Se.none;if(e.wholeWords){if(r=n.sliceDoc(s.from,s.to),a=n.charCategorizer(s.head),!(y0(a,n,s.from,s.to)&&A$(a,n,s.from,s.to)))return Se.none}else if(r=n.sliceDoc(s.from,s.to),!r)return Se.none}let o=[];for(let c of t.visibleRanges){let d=new us(n.doc,r,c.from,c.to);for(;!d.next().done;){let{from:u,to:h}=d.value;if((!a||y0(a,n,u,h))&&(s.empty&&u<=s.from&&h>=s.to?o.push(j$.range(u,h)):(u>=s.to||h<=s.from)&&o.push($$.range(u,h)),o.length>e.maxMatches))return Se.none}}return Se.set(o)}},{decorations:t=>t.decorations}),R$=ie.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),_$=({state:t,dispatch:e})=>{let{selection:n}=t,i=q.create(n.ranges.map(s=>t.wordAt(s.head)||q.cursor(s.head)),n.mainIndex);return i.eq(n)?!1:(e(t.update({selection:i})),!0)};function M$(t,e){let{main:n,ranges:i}=t.selection,s=t.wordAt(n.head),r=s&&s.from==n.from&&s.to==n.to;for(let a=!1,o=new us(t.doc,e,i[i.length-1].to);;)if(o.next(),o.done){if(a)return null;o=new us(t.doc,e,0,Math.max(0,i[i.length-1].from-1)),a=!0}else{if(a&&i.some(c=>c.from==o.value.from))continue;if(r){let c=t.wordAt(o.value.from);if(!c||c.from!=o.value.from||c.to!=o.value.to)continue}return o.value}}const E$=({state:t,dispatch:e})=>{let{ranges:n}=t.selection;if(n.some(r=>r.from===r.to))return _$({state:t,dispatch:e});let i=t.sliceDoc(n[0].from,n[0].to);if(t.selection.ranges.some(r=>t.sliceDoc(r.from,r.to)!=i))return!1;let s=M$(t,i);return s?(e(t.update({selection:t.selection.addRange(q.range(s.from,s.to),!1),effects:ie.scrollIntoView(s.to)})),!0):!1},ms=se.define({combine(t){return kn(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new G$(e),scrollToMatch:e=>ie.scrollIntoView(e)})}});class bx{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||k$(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(n,i)=>i=="n"?`
|
|
52
|
+
`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new q$(this):new X$(this)}getCursor(e,n=0,i){let s=e.doc?e:Xe.create({doc:e});return i==null&&(i=s.doc.length),this.regexp?Zi(this,s,n,i):Xi(this,s,n,i)}}class yx{constructor(e){this.spec=e}}function I$(t,e,n){return(i,s,r,a)=>{if(n&&!n(i,s,r,a))return!1;let o=i>=a&&s<=a+r.length?r.slice(i-a,s-a):e.doc.sliceString(i,s);return t(o,e,i,s)}}function Xi(t,e,n,i){let s;return t.wholeWord&&(s=L$(e.doc,e.charCategorizer(e.selection.main.head))),t.test&&(s=I$(t.test,e,s)),new us(e.doc,t.unquoted,n,i,t.caseSensitive?void 0:r=>r.toLowerCase(),s)}function L$(t,e){return(n,i,s,r)=>((r>n||r+s.length<i)&&(r=Math.max(0,n-2),s=t.sliceString(r,Math.min(t.length,i+2))),(e(po(s,n-r))!=Je.Word||e(Oo(s,n-r))!=Je.Word)&&(e(Oo(s,i-r))!=Je.Word||e(po(s,i-r))!=Je.Word))}class X$ extends yx{constructor(e){super(e)}nextMatch(e,n,i){let s=Xi(this.spec,e,i,e.doc.length).nextOverlapping();if(s.done){let r=Math.min(e.doc.length,n+this.spec.unquoted.length);s=Xi(this.spec,e,0,r).nextOverlapping()}return s.done||s.value.from==n&&s.value.to==i?null:s.value}prevMatchInRange(e,n,i){for(let s=i;;){let r=Math.max(n,s-1e4-this.spec.unquoted.length),a=Xi(this.spec,e,r,s),o=null;for(;!a.nextOverlapping().done;)o=a.value;if(o)return o;if(r==n)return null;s-=1e4}}prevMatch(e,n,i){let s=this.prevMatchInRange(e,0,n);return s||(s=this.prevMatchInRange(e,Math.max(0,i-this.spec.unquoted.length),e.doc.length)),s&&(s.from!=n||s.to!=i)?s:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,n){let i=Xi(this.spec,e,0,e.doc.length),s=[];for(;!i.next().done;){if(s.length>=n)return null;s.push(i.value)}return s}highlight(e,n,i,s){let r=Xi(this.spec,e,Math.max(0,n-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}function Z$(t,e,n){return(i,s,r)=>(!n||n(i,s,r))&&t(r[0],e,i,s)}function Zi(t,e,n,i){let s;return t.wholeWord&&(s=D$(e.charCategorizer(e.selection.main.head))),t.test&&(s=Z$(t.test,e,s)),new gx(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:s},n,i)}function po(t,e){return t.slice(ut(t,e,!1),e)}function Oo(t,e){return t.slice(e,ut(t,e))}function D$(t){return(e,n,i)=>!i[0].length||(t(po(i.input,i.index))!=Je.Word||t(Oo(i.input,i.index))!=Je.Word)&&(t(Oo(i.input,i.index+i[0].length))!=Je.Word||t(po(i.input,i.index+i[0].length))!=Je.Word)}class q$ extends yx{nextMatch(e,n,i){let s=Zi(this.spec,e,i,e.doc.length).next();return s.done&&(s=Zi(this.spec,e,0,n).next()),s.done?null:s.value}prevMatchInRange(e,n,i){for(let s=1;;s++){let r=Math.max(n,i-s*1e4),a=Zi(this.spec,e,r,i),o=null;for(;!a.next().done;)o=a.value;if(o&&(r==n||o.from>r+10))return o;if(r==n)return null}}prevMatch(e,n,i){return this.prevMatchInRange(e,0,n)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(n,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let s=i.length;s>0;s--){let r=+i.slice(0,s);if(r>0&&r<e.match.length)return e.match[r]+i.slice(s)}return n})}matchAll(e,n){let i=Zi(this.spec,e,0,e.doc.length),s=[];for(;!i.next().done;){if(s.length>=n)return null;s.push(i.value)}return s}highlight(e,n,i,s){let r=Zi(this.spec,e,Math.max(0,n-250),Math.min(i+250,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}const hr=Pe.define(),Nu=Pe.define(),ei=gt.define({create(t){return new lc(gd(t).create(),null)},update(t,e){for(let n of e.effects)n.is(hr)?t=new lc(n.value.create(),t.panel):n.is(Nu)&&(t=new lc(t.query,n.value?Ru:null));return t},provide:t=>rr.from(t,e=>e.panel)});class lc{constructor(e,n){this.query=e,this.panel=n}}const W$=Se.mark({class:"cm-searchMatch"}),z$=Se.mark({class:"cm-searchMatch cm-searchMatch-selected"}),B$=st.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(ei))}update(t){let e=t.state.field(ei);(e!=t.startState.field(ei)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return Se.none;let{view:n}=this,i=new In;for(let s=0,r=n.visibleRanges,a=r.length;s<a;s++){let{from:o,to:c}=r[s];for(;s<a-1&&c>r[s+1].from-500;)c=r[++s].to;t.highlight(n.state,o,c,(d,u)=>{let h=n.state.selection.ranges.some(f=>f.from==d&&f.to==u);i.add(d,u,h?z$:W$)})}return i.finish()}},{decorations:t=>t.decorations});function wr(t){return e=>{let n=e.state.field(ei,!1);return n&&n.query.spec.valid?t(e,n):wx(e)}}const mo=wr((t,{query:e})=>{let{to:n}=t.state.selection.main,i=e.nextMatch(t.state,n,n);if(!i)return!1;let s=q.single(i.from,i.to),r=t.state.facet(ms);return t.dispatch({selection:s,effects:[_u(t,i),r.scrollToMatch(s.main,t)],userEvent:"select.search"}),Sx(t),!0}),go=wr((t,{query:e})=>{let{state:n}=t,{from:i}=n.selection.main,s=e.prevMatch(n,i,i);if(!s)return!1;let r=q.single(s.from,s.to),a=t.state.facet(ms);return t.dispatch({selection:r,effects:[_u(t,s),a.scrollToMatch(r.main,t)],userEvent:"select.search"}),Sx(t),!0}),V$=wr((t,{query:e})=>{let n=e.matchAll(t.state,1e3);return!n||!n.length?!1:(t.dispatch({selection:q.create(n.map(i=>q.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),F$=({state:t,dispatch:e})=>{let n=t.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:i,to:s}=n.main,r=[],a=0;for(let o=new us(t.doc,t.sliceDoc(i,s));!o.next().done;){if(r.length>1e3)return!1;o.value.from==i&&(a=r.length),r.push(q.range(o.value.from,o.value.to))}return e(t.update({selection:q.create(r,a),userEvent:"select.search.matches"})),!0},v0=wr((t,{query:e})=>{let{state:n}=t,{from:i,to:s}=n.selection.main;if(n.readOnly)return!1;let r=e.nextMatch(n,i,i);if(!r)return!1;let a=r,o=[],c,d,u=[];a.from==i&&a.to==s&&(d=n.toText(e.getReplacement(a)),o.push({from:a.from,to:a.to,insert:d}),a=e.nextMatch(n,a.from,a.to),u.push(ie.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(i).number)+".")));let h=t.state.changes(o);return a&&(c=q.single(a.from,a.to).map(h),u.push(_u(t,a)),u.push(n.facet(ms).scrollToMatch(c.main,t))),t.dispatch({changes:h,selection:c,effects:u,userEvent:"input.replace"}),!0}),U$=wr((t,{query:e})=>{if(t.state.readOnly)return!1;let n=e.matchAll(t.state,1e9).map(s=>{let{from:r,to:a}=s;return{from:r,to:a,insert:e.getReplacement(s)}});if(!n.length)return!1;let i=t.state.phrase("replaced $ matches",n.length)+".";return t.dispatch({changes:n,effects:ie.announce.of(i),userEvent:"input.replace.all"}),!0});function Ru(t){return t.state.facet(ms).createPanel(t)}function gd(t,e){var n,i,s,r,a;let o=t.selection.main,c=o.empty||o.to>o.from+100?"":t.sliceDoc(o.from,o.to);if(e&&!c)return e;let d=t.facet(ms);return new bx({search:((n=e==null?void 0:e.literal)!==null&&n!==void 0?n:d.literal)?c:c.replace(/\n/g,"\\n"),caseSensitive:(i=e==null?void 0:e.caseSensitive)!==null&&i!==void 0?i:d.caseSensitive,literal:(s=e==null?void 0:e.literal)!==null&&s!==void 0?s:d.literal,regexp:(r=e==null?void 0:e.regexp)!==null&&r!==void 0?r:d.regexp,wholeWord:(a=e==null?void 0:e.wholeWord)!==null&&a!==void 0?a:d.wholeWord})}function vx(t){let e=ru(t,Ru);return e&&e.dom.querySelector("[main-field]")}function Sx(t){let e=vx(t);e&&e==t.root.activeElement&&e.select()}const wx=t=>{let e=t.state.field(ei,!1);if(e&&e.panel){let n=vx(t);if(n&&n!=t.root.activeElement){let i=gd(t.state,e.query.spec);i.valid&&t.dispatch({effects:hr.of(i)}),n.focus(),n.select()}}else t.dispatch({effects:[Nu.of(!0),e?hr.of(gd(t.state,e.query.spec)):Pe.appendConfig.of(K$)]});return!0},kx=t=>{let e=t.state.field(ei,!1);if(!e||!e.panel)return!1;let n=ru(t,Ru);return n&&n.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:Nu.of(!1)}),!0},Y$=[{key:"Mod-f",run:wx,scope:"editor search-panel"},{key:"F3",run:mo,shift:go,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:mo,shift:go,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:kx,scope:"editor search-panel"},{key:"Mod-Shift-l",run:F$},{key:"Mod-Alt-g",run:Q$},{key:"Mod-d",run:E$,preventDefault:!0}];class G${constructor(e){this.view=e;let n=this.query=e.state.field(ei).query.spec;this.commit=this.commit.bind(this),this.searchField=We("input",{value:n.search,placeholder:It(e,"Find"),"aria-label":It(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=We("input",{value:n.replace,placeholder:It(e,"Replace"),"aria-label":It(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=We("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=We("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=We("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function i(s,r,a){return We("button",{class:"cm-button",name:s,onclick:r,type:"button"},a)}this.dom=We("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,i("next",()=>mo(e),[It(e,"next")]),i("prev",()=>go(e),[It(e,"previous")]),i("select",()=>V$(e),[It(e,"all")]),We("label",null,[this.caseField,It(e,"match case")]),We("label",null,[this.reField,It(e,"regexp")]),We("label",null,[this.wordField,It(e,"by word")]),...e.state.readOnly?[]:[We("br"),this.replaceField,i("replace",()=>v0(e),[It(e,"replace")]),i("replaceAll",()=>U$(e),[It(e,"replace all")])],We("button",{name:"close",onclick:()=>kx(e),"aria-label":It(e,"close"),type:"button"},["×"])])}commit(){let e=new bx({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:hr.of(e)}))}keydown(e){aQ(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?go:mo)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),v0(this.view))}update(e){for(let n of e.transactions)for(let i of n.effects)i.is(hr)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(ms).top}}function It(t,e){return t.state.phrase(e)}const sa=30,ra=/[\s\.,:;?!]/;function _u(t,{from:e,to:n}){let i=t.state.doc.lineAt(e),s=t.state.doc.lineAt(n).to,r=Math.max(i.from,e-sa),a=Math.min(s,n+sa),o=t.state.sliceDoc(r,a);if(r!=i.from){for(let c=0;c<sa;c++)if(!ra.test(o[c+1])&&ra.test(o[c])){o=o.slice(c);break}}if(a!=s){for(let c=o.length-1;c>o.length-sa;c--)if(!ra.test(o[c-1])&&ra.test(o[c])){o=o.slice(0,c);break}}return ie.announce.of(`${t.state.phrase("current match")}. ${o} ${t.state.phrase("on line")} ${i.number}.`)}const H$=ie.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),K$=[ei,di.low(B$),H$];class S0{constructor(e,n,i){this.from=e,this.to=n,this.diagnostic=i}}class yi{constructor(e,n,i){this.diagnostics=e,this.panel=n,this.selected=i}static init(e,n,i){let s=i.facet(fr).markerFilter;s&&(e=s(e,i));let r=e.slice().sort((p,O)=>p.from-O.from||p.to-O.to),a=new In,o=[],c=0,d=i.doc.iter(),u=0,h=i.doc.length;for(let p=0;;){let O=p==r.length?null:r[p];if(!O&&!o.length)break;let g,x;if(o.length)g=c,x=o.reduce((S,P)=>Math.min(S,P.to),O&&O.from>g?O.from:1e8);else{if(g=O.from,g>h)break;x=O.to,o.push(O),p++}for(;p<r.length;){let S=r[p];if(S.from==g&&(S.to>S.from||S.to==g))o.push(S),p++,x=Math.min(S.to,x);else{x=Math.min(S.from,x);break}}x=Math.min(x,h);let b=!1;if(o.some(S=>S.from==g&&(S.to==x||x==h))&&(b=g==x,!b&&x-g<10)){let S=g-(u+d.value.length);S>0&&(d.next(S),u=g);for(let P=g;;){if(P>=x){b=!0;break}if(!d.lineBreak&&u+d.value.length>P)break;P=u+d.value.length,u+=d.value.length,d.next()}}let y=uj(o);if(b)a.add(g,g,Se.widget({widget:new oj(y),diagnostics:o.slice()}));else{let S=o.reduce((P,w)=>w.markClass?P+" "+w.markClass:P,"");a.add(g,x,Se.mark({class:"cm-lintRange cm-lintRange-"+y+S,diagnostics:o.slice(),inclusiveEnd:o.some(P=>P.to>x)}))}if(c=x,c==h)break;for(let S=0;S<o.length;S++)o[S].to<=c&&o.splice(S--,1)}let f=a.finish();return new yi(f,n,li(f))}}function li(t,e=null,n=0){let i=null;return t.between(n,1e9,(s,r,{spec:a})=>{if(!(e&&a.diagnostics.indexOf(e)<0))if(!i)i=new S0(s,r,e||a.diagnostics[0]);else{if(a.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new S0(i.from,r,i.diagnostic)}}),i}function J$(t,e){let n=e.pos,i=e.end||n,s=t.state.facet(fr).hideOn(t,n,i);if(s!=null)return s;let r=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(a=>a.is(Qx))||t.changes.touchesRange(r.from,Math.max(r.to,i)))}function ej(t,e){return t.field(Xt,!1)?e:e.concat(Pe.appendConfig.of(hj))}const Qx=Pe.define(),Mu=Pe.define(),Cx=Pe.define(),Xt=gt.define({create(){return new yi(Se.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let n=t.diagnostics.map(e.changes),i=null,s=t.panel;if(t.selected){let r=e.changes.mapPos(t.selected.from,1);i=li(n,t.selected.diagnostic,r)||li(n,null,r)}!n.size&&s&&e.state.facet(fr).autoPanel&&(s=null),t=new yi(n,s,i)}for(let n of e.effects)if(n.is(Qx)){let i=e.state.facet(fr).autoPanel?n.value.length?pr.open:null:t.panel;t=yi.init(n.value,i,e.state)}else n.is(Mu)?t=new yi(t.diagnostics,n.value?pr.open:null,t.selected):n.is(Cx)&&(t=new yi(t.diagnostics,t.panel,n.value));return t},provide:t=>[rr.from(t,e=>e.panel),ie.decorations.from(t,e=>e.diagnostics)]}),tj=Se.mark({class:"cm-lintRange cm-lintRange-active"});function nj(t,e,n){let{diagnostics:i}=t.state.field(Xt),s,r=-1,a=-1;i.between(e-(n<0?1:0),e+(n>0?1:0),(c,d,{spec:u})=>{if(e>=c&&e<=d&&(c==d||(e>c||n>0)&&(e<d||n<0)))return s=u.diagnostics,r=c,a=d,!1});let o=t.state.facet(fr).tooltipFilter;return s&&o&&(s=o(s,t.state)),s?{pos:r,end:a,above:t.state.doc.lineAt(r).to<a,create(){return{dom:ij(t,s)}}}:null}function ij(t,e){return We("ul",{class:"cm-tooltip-lint"},e.map(n=>Tx(t,n,!1)))}const sj=t=>{let e=t.state.field(Xt,!1);(!e||!e.panel)&&t.dispatch({effects:ej(t.state,[Mu.of(!0)])});let n=ru(t,pr.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},w0=t=>{let e=t.state.field(Xt,!1);return!e||!e.panel?!1:(t.dispatch({effects:Mu.of(!1)}),!0)},rj=t=>{let e=t.state.field(Xt,!1);if(!e)return!1;let n=t.state.selection.main,i=li(e.diagnostics,null,n.to+1);return!i&&(i=li(e.diagnostics,null,0),!i||i.from==n.from&&i.to==n.to)?!1:(t.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)},aj=[{key:"Mod-Shift-m",run:sj,preventDefault:!0},{key:"F8",run:rj}],fr=se.define({combine(t){return{sources:t.map(e=>e.source).filter(e=>e!=null),...kn(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:k0,tooltipFilter:k0,needsRefresh:(e,n)=>e?n?i=>e(i)||n(i):e:n,hideOn:(e,n)=>e?n?(i,s,r)=>e(i,s,r)||n(i,s,r):e:n,autoPanel:(e,n)=>e||n})}}});function k0(t,e){return t?e?(n,i)=>e(t(n,i),i):t:e}function Px(t){let e=[];if(t)e:for(let{name:n}of t){for(let i=0;i<n.length;i++){let s=n[i];if(/[a-zA-Z]/.test(s)&&!e.some(r=>r.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function Tx(t,e,n){var i;let s=n?Px(e.actions):[];return We("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},We("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((r,a)=>{let o=!1,c=p=>{if(p.preventDefault(),o)return;o=!0;let O=li(t.state.field(Xt).diagnostics,e);O&&r.apply(t,O.from,O.to)},{name:d}=r,u=s[a]?d.indexOf(s[a]):-1,h=u<0?d:[d.slice(0,u),We("u",d.slice(u,u+1)),d.slice(u+1)],f=r.markClass?" "+r.markClass:"";return We("button",{type:"button",class:"cm-diagnosticAction"+f,onclick:c,onmousedown:c,"aria-label":` Action: ${d}${u<0?"":` (access key "${s[a]})"`}.`},h)}),e.source&&We("div",{class:"cm-diagnosticSource"},e.source))}class oj extends Qn{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return We("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class Q0{constructor(e,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=Tx(e,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class pr{constructor(e){this.view=e,this.items=[];let n=s=>{if(!(s.ctrlKey||s.altKey||s.metaKey)){if(s.keyCode==27)w0(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:r}=this.items[this.selectedIndex],a=Px(r.actions);for(let o=0;o<a.length;o++)if(a[o].toUpperCase().charCodeAt(0)==s.keyCode){let c=li(this.view.state.field(Xt).diagnostics,r);c&&r.actions[o].apply(e,c.from,c.to)}}else return;s.preventDefault()}},i=s=>{for(let r=0;r<this.items.length;r++)this.items[r].dom.contains(s.target)&&this.moveSelection(r)};this.list=We("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:i}),this.dom=We("div",{class:"cm-panel-lint"},this.list,We("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>w0(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(Xt).selected;if(!e)return-1;for(let n=0;n<this.items.length;n++)if(this.items[n].diagnostic==e.diagnostic)return n;return-1}update(){let{diagnostics:e,selected:n}=this.view.state.field(Xt),i=0,s=!1,r=null,a=new Set;for(e.between(0,this.view.state.doc.length,(o,c,{spec:d})=>{for(let u of d.diagnostics){if(a.has(u))continue;a.add(u);let h=-1,f;for(let p=i;p<this.items.length;p++)if(this.items[p].diagnostic==u){h=p;break}h<0?(f=new Q0(this.view,u),this.items.splice(i,0,f),s=!0):(f=this.items[h],h>i&&(this.items.splice(i,h-i),s=!0)),n&&f.diagnostic==n.diagnostic?f.dom.hasAttribute("aria-selected")||(f.dom.setAttribute("aria-selected","true"),r=f):f.dom.hasAttribute("aria-selected")&&f.dom.removeAttribute("aria-selected"),i++}});i<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)s=!0,this.items.pop();this.items.length==0&&(this.items.push(new Q0(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),r?(this.list.setAttribute("aria-activedescendant",r.id),this.view.requestMeasure({key:this,read:()=>({sel:r.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:o,panel:c})=>{let d=c.height/this.list.offsetHeight;o.top<c.top?this.list.scrollTop-=(c.top-o.top)/d:o.bottom>c.bottom&&(this.list.scrollTop+=(o.bottom-c.bottom)/d)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function n(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)n();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)n()}moveSelection(e){if(this.selectedIndex<0)return;let n=this.view.state.field(Xt),i=li(n.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:Cx.of(i)})}static open(e){return new pr(e)}}function lj(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(t)}</svg>')`}function aa(t){return lj(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${t}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const cj=ie.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:aa("#d11")},".cm-lintRange-warning":{backgroundImage:aa("orange")},".cm-lintRange-info":{backgroundImage:aa("#999")},".cm-lintRange-hint":{backgroundImage:aa("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:"#86714a80"},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:"#2e343e"}}});function dj(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function uj(t){let e="hint",n=1;for(let i of t){let s=dj(i.severity);s>n&&(n=s,e=i.severity)}return e}const hj=[Xt,ie.decorations.compute([Xt],t=>{let{selected:e,panel:n}=t.field(Xt);return!e||!n||e.from==e.to?Se.none:Se.set([tj.range(e.from,e.to)])}),VQ(nj,{hideOn:J$}),cj],fj=[r6(),l6(),wQ(),bT(),R6(),hQ(),gQ(),Xe.allowMultipleSelections.of(!0),y6(),M6(L6,{fallback:!0}),B6(),n9(),f9(),MQ(),LQ(),$Q(),T$(),Ro.of([...a9,...w$,...Y$,...TT,...$6,...r1,...aj])],$x=m.createContext(null);function pj({children:t,setPreviewHeaderActions:e}){return l.jsx($x.Provider,{value:e,children:t})}function Fo(){return m.useContext($x)}const Oj=ie.theme({"&":{backgroundColor:"#ffffff",color:"#1f2937",fontSize:"13px",fontFamily:"'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'Menlo', 'Monaco', 'Consolas', monospace"},".cm-content":{padding:"12px 0"},".cm-gutters":{backgroundColor:"#f9fafb",borderRight:"1px solid #e5e7eb",color:"#9ca3af"},".cm-activeLineGutter":{backgroundColor:"#eff6ff"},".cm-activeLine":{backgroundColor:"#eff6ff"},".cm-cursor":{borderLeftColor:"#3b82f6"},".cm-selectionBackground, ::selection":{backgroundColor:"#bfdbfe"},"&.cm-focused .cm-selectionBackground":{backgroundColor:"#bfdbfe"},".cm-line":{padding:"0 12px 0 4px"}});function mj(t){const e=t.lastIndexOf(".");return e>=0?t.slice(e+1).toLowerCase():""}function gj(t){switch(mj(t)){case"ts":return Rs({typescript:!0});case"tsx":return Rs({typescript:!0,jsx:!0});case"js":case"mjs":case"cjs":return Rs();case"jsx":return Rs({jsx:!0});case"json":case"jsonc":case"json5":return M9();case"css":case"scss":case"less":case"sass":return Lg();case"html":case"htm":case"vue":case"svelte":case"astro":return j9();case"py":case"pyw":return HP();case"sql":return X8();case"xml":case"svg":return lT();default:return null}}function xj({path:t,displayName:e,threadId:n,projectPath:i}){const s=Fo(),r=hs(n,t),a=K0(t,i,r),o=m.useRef(null),c=a.status==="ok"?a.content:null,d=a.status==="ok"?a.content:"";return m.useLayoutEffect(()=>{if(s){if(a.status!=="ok"){s(null);return}return s(l.jsx(J0,{text:d,copyKindLabel:"代码"})),()=>s(null)}},[s,a.status,d]),m.useEffect(()=>{if(c===null||!o.current)return;const u=gj(e||t),h=new ie({state:Xe.create({doc:c,extensions:[fj,Oj,Xe.readOnly.of(!0),ie.lineWrapping,...u?[u]:[]]}),parent:o.current});return()=>h.destroy()},[c,e,t]),a.status==="loading"||a.status==="idle"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-gray-500",children:"加载中…"}):a.status==="error"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-red-600",children:a.message}):l.jsx("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:l.jsx("div",{ref:o,className:"min-h-0 flex-1 overflow-auto text-[13px] [&_.cm-editor]:h-full [&_.cm-editor]:min-h-0 [&_.cm-scroller]:overflow-auto"})})}function bj({path:t,displayName:e,threadId:n,projectPath:i}){const s=hs(n,t),r=w2(t,i,s);return m.useMemo(()=>r.status==="loading"||r.status==="idle"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-gray-500",children:"加载中…"}):r.status==="error"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-red-600",children:r.message}):l.jsx("div",{className:"flex min-h-0 flex-1 flex-col px-4 py-3",children:l.jsx(k2,{contentBase64:r.contentBase64,title:e})}),[e,r])}function jx(t){const e=t.replace(/\\/g,"/"),n=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return n<=0?t:t.slice(0,n)||t}async function Ax(t,e){try{const n=await G("/api/projects/open-local-folder",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,...e?{projectPath:e}:{}})});if(!n.ok){const i=await n.json().catch(()=>null);Ut.getState().addToast({type:"error",title:"打开文件夹失败",message:(i==null?void 0:i.error)||`HTTP ${n.status}`,duration:5e3})}}catch(n){Ut.getState().addToast({type:"error",title:"打开文件夹失败",message:n instanceof Error?n.message:"未知错误",duration:5e3})}}async function yj(t,e){try{const n=await G("/api/projects/open-local",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,...e?{projectPath:e}:{}})});if(!n.ok){const i=await n.json().catch(()=>null);Ut.getState().addToast({type:"error",title:"打开文件失败",message:(i==null?void 0:i.error)||`HTTP ${n.status}`,duration:5e3})}}catch(n){Ut.getState().addToast({type:"error",title:"打开文件失败",message:n instanceof Error?n.message:"未知错误",duration:5e3})}}const Ht="/images/file-browser-tree";function vj(t){return t.isDirectory?void 0:(t.name.split(/[/\\]/).pop()??t.name).toLowerCase()===".gitignore"?`${Ht}/gitignore.svg`:{ppt:`${Ht}/ppt.svg`,markdown:`${Ht}/markdown.svg`,docx:`${Ht}/word.svg`,pdf:`${Ht}/pdf.svg`,xlsx:`${Ht}/xlsx.svg`,txt:`${Ht}/public-file.svg`,html:`${Ht}/code.svg`,image:`${Ht}/image.svg`,code:`${Ht}/code.svg`,other:`${Ht}/public-file.svg`}[t.kind]}const Sj=20,wj=8;function kj(t){if(!t)return"";const e=new Date(t),n=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0"),s=String(e.getHours()).padStart(2,"0"),r=String(e.getMinutes()).padStart(2,"0");return`${n}/${i} ${s}:${r}`}function Nx({entry:t,file:e,isActive:n,depth:i=0,onClick:s,variant:r="list",flattenActions:a=!1}){const c=Td[t.kind].Icon,d=vj(t),u=r==="tree",h=r==="list",f=u?wj+i*Sj:10+i*14,p="w-[18px] shrink-0",O=m.useCallback(b=>{b==null||b.stopPropagation(),Ax(jx(t.path))},[t.path]),g=m.useCallback(b=>{b==null||b.stopPropagation(),yj(t.path)},[t.path]),x=m.useMemo(()=>[{label:"默认应用打开",icon:l.jsx("img",{src:"/images/file-browser-tree/public-file.svg",alt:"","aria-hidden":!0,className:"size-4 shrink-0"}),onClick:g},{label:"在文件夹中显示",icon:l.jsx("span",{className:"flex size-4 items-center justify-center text-[#8C8C8C]",children:l.jsx(Vs,{width:16,height:16})}),onClick:O}],[g,O]);return l.jsxs("div",{className:`group relative flex w-full items-center rounded-[4px] ${n?"bg-[#F0F4FF]":""} ${h?"min-h-[52px]":"min-h-[40px]"}`,children:[l.jsxs("button",{type:"button",title:t.path,onClick:()=>s(t.path),className:`flex w-full items-center gap-2 rounded-[4px] py-2 text-left text-[13px] leading-[20px] transition-colors ${n?"text-[#1F1F1F]":"text-[#434343] hover:bg-[#F7F7F9]"} ${h?"min-h-[52px]":"min-h-[40px]"} ${a?"pr-[68px]":"pr-[32px]"}`,style:{paddingLeft:f},children:[u?l.jsx("span",{className:p,"aria-hidden":!0}):null,l.jsx("span",{className:`shrink-0 ${t.isDirectory?"text-[#737373]":""}`,children:t.isDirectory?l.jsx(cO,{}):d?l.jsx("img",{src:d,alt:"",className:"size-4 shrink-0 object-contain",width:16,height:16,draggable:!1}):l.jsx(c,{width:16,height:16})}),l.jsxs("div",{className:"flex min-w-0 flex-1 flex-col justify-center gap-[2px]",children:[l.jsx("span",{className:"min-w-0 truncate",children:t.name}),h&&(e!=null&&e.fallbackGeneratedAt)?l.jsx("span",{className:"truncate text-[12px] leading-[18px] text-[#8C8C8C]",children:kj(e.fallbackGeneratedAt)}):null]})]}),a?l.jsxs("div",{className:"absolute right-2 top-1/2 flex -translate-y-1/2 shrink-0 items-center gap-0.5",children:[l.jsx("button",{type:"button",onClick:g,className:"flex size-8 items-center justify-center rounded-md text-[#8C8C8C] transition-colors hover:bg-[rgba(0,0,0,0.06)] hover:text-[#434343]",title:"默认应用打开",children:l.jsx("img",{src:"/images/file-browser-tree/public-file.svg",alt:"","aria-hidden":!0,className:"size-4 shrink-0"})}),l.jsx("button",{type:"button",onClick:O,className:"flex size-8 items-center justify-center rounded-md text-[#8C8C8C] transition-colors hover:bg-[rgba(0,0,0,0.06)] hover:text-[#434343]",title:"在文件夹中显示",children:l.jsx(Vs,{width:16,height:16})})]}):l.jsx(nO,{align:"right",menuWidth:180,menuItemClassName:"flex h-8 w-full items-center gap-2 px-3 text-left text-sm text-[#191919] transition-colors hover:bg-[#F5F5F7]",trigger:l.jsx("button",{type:"button",className:`absolute right-2 top-1/2 flex size-6 shrink-0 -translate-y-1/2 items-center justify-center rounded-md text-[#8C8C8C] transition-colors hover:bg-[rgba(0,0,0,0.06)] hover:text-[#434343] ${n?"opacity-100":"opacity-0 hover:opacity-100 group-hover:opacity-100"}`,title:"更多","aria-label":"更多",children:l.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[l.jsx("circle",{cx:"2.5",cy:"7",r:"1.5"}),l.jsx("circle",{cx:"7",cy:"7",r:"1.5"}),l.jsx("circle",{cx:"11.5",cy:"7",r:"1.5"})]})}),options:x})]})}function Qj({artifacts:t,selectedFilePath:e,onSelect:n,filterQuery:i="",flattenActions:s=!1}){const r=m.useMemo(()=>{const a=i.trim().toLowerCase();return a?t.filter(o=>o.name.toLowerCase().includes(a)):t},[t,i]);return t.length===0?l.jsx("div",{className:"flex flex-1 flex-col items-center justify-center p-4 text-center",children:l.jsx("p",{className:"text-[13px] text-gray-400",children:"暂无产物文件"})}):r.length===0?l.jsx("div",{className:"flex flex-1 flex-col items-center justify-center px-4 py-6 text-center",children:l.jsx("p",{className:"text-[13px] text-[#BFBFBF]",children:"没有匹配的文件"})}):l.jsx("ul",{className:"flex-1 overflow-y-auto px-0.5 py-1",children:r.map(a=>l.jsx("li",{children:l.jsx(Nx,{entry:{name:a.name,path:a.path,kind:a.kind,isDirectory:!1},file:a,isActive:e===a.path,onClick:n,flattenActions:s})},a.path))})}function Cj({value:t,onChange:e}){return l.jsxs("div",{className:"relative mb-3 shrink-0",children:[l.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",className:"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-[#BFBFBF]","aria-hidden":!0,children:[l.jsx("title",{children:"搜索"}),l.jsx("path",{d:"M7 12A5 5 0 1 0 7 2a5 5 0 0 0 0 10zm0-1a4 4 0 1 1 0-8 4 4 0 0 1 0 8z",fill:"currentColor"}),l.jsx("path",{d:"M10.5 10.5L14 14",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}),l.jsx("input",{type:"search",value:t,onChange:n=>e(n.target.value),placeholder:"输入关键字搜索",className:"h-9 w-full rounded-lg border border-[#F0F0F0] bg-[#FAFAFA] py-2 pl-9 pr-3 text-[13px] leading-[18px] text-[#1F1F1F] placeholder:text-[#BFBFBF] outline-none transition-colors focus:border-[#D9D9D9] focus:bg-white",autoComplete:"off",spellCheck:!1})]})}function Rx(t){const[e,n]=m.useState([]),[i,s]=m.useState("idle"),r=m.useRef(0),[a,o]=m.useState(0);m.useEffect(()=>{if(!t||t==="default"){n([]),s("idle");return}s("loading");const d=new AbortController,u=new URLSearchParams({path:t,maxDepth:"4"});return G(`/api/projects/list-files?${u.toString()}`,{method:"GET",signal:d.signal,timeoutMs:15e3}).then(async h=>{if(!h.ok)throw new Error(`HTTP ${h.status}`);const p=((await h.json()).entries??[]).map(O=>({name:O.name,path:O.path,isDirectory:O.isDirectory,kind:O.isDirectory?"other":vo(O.path,O.name)}));n(p),s("loaded")}).catch(h=>{h.name!=="AbortError"&&s("error")}),()=>d.abort()},[t,a]);const c=m.useCallback(()=>{r.current+=1,o(r.current)},[]);return{entries:e,status:i,reload:c}}function Vi(t){return t.replace(/\\/g,"/")}function Pj(t,e,n){const i=e.trim().toLowerCase();if(!i)return t;const s=Vi(n).replace(/[/\\]+$/,""),r=new Set;function a(c){for(const d of t){const u=Vi(d.path);u.startsWith(`${c}/`)&&r.add(u)}}function o(c){let d=c;for(;d.length>s.length;){const u=d.lastIndexOf("/");if(u<s.length||u<=0)break;d=d.slice(0,u),r.add(d)}}for(const c of t){if(!c.name.toLowerCase().includes(i))continue;const d=Vi(c.path);r.add(d),c.isDirectory&&a(d),o(d)}return t.filter(c=>r.has(Vi(c.path)))}function Tj({expanded:t}){return l.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:`shrink-0 text-[#8C8C8C] transition-transform duration-150 ease-out ${t?"rotate-0":"-rotate-90"}`,"aria-hidden":!0,children:[l.jsx("title",{children:t?"收起":"展开"}),l.jsx("path",{d:"M3 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})]})}function $j({expanded:t}){return t?l.jsx(Vs,{}):l.jsx(cO,{})}const cc=20,jj=8;function _x({entry:t,depth:e,allEntries:n,expandedDirs:i,selectedFilePath:s,onToggleDir:r,onSelect:a,flattenActions:o}){const c=jj+e*cc;if(!t.isDirectory)return l.jsx(Nx,{entry:t,isActive:s===t.path,depth:e,variant:"tree",onClick:a,flattenActions:o});const d=i.has(t.path),u=n.filter(h=>h.path===t.path?!1:h.path.replace(/[\\/][^\\/]+$/,"")===t.path);return l.jsxs(l.Fragment,{children:[l.jsxs("button",{type:"button",title:t.path,onClick:()=>r(t.path),className:"group flex min-h-[40px] w-full items-center gap-2 rounded-[4px] py-2 pr-2 text-left text-[13px] leading-[20px] text-[#434343] transition-colors hover:bg-[#F7F7F9]",style:{paddingLeft:c},children:[l.jsx("span",{className:"flex w-[18px] shrink-0 justify-center",children:l.jsx(Tj,{expanded:d})}),l.jsx("span",{className:"shrink-0 text-[#737373]",children:l.jsx($j,{expanded:d})}),l.jsx("span",{className:"min-w-0 truncate font-normal",children:t.name})]}),d&&u.length>0?l.jsx("ul",{role:"presentation",className:"relative mt-0 list-none",children:u.map((h,f)=>{const p=f===0,O=f===u.length-1;return l.jsxs("li",{className:"relative",children:[l.jsx("div",{className:"absolute z-10 border-l border-[#E5E5E5] pointer-events-none",style:{left:`${17+e*cc}px`,top:p?"-12px":"0",bottom:O?"auto":"0",height:O?p?"32px":"20px":"auto"}}),l.jsx("div",{className:"absolute top-[20px] z-10 h-px bg-[#E5E5E5] pointer-events-none",style:{left:`${17+e*cc}px`,width:h.isDirectory?"11px":"25px"}}),l.jsx(_x,{entry:h,depth:e+1,allEntries:n,expandedDirs:i,selectedFilePath:s,onToggleDir:r,onSelect:a,flattenActions:o})]},h.path)})}):null]})}function Aj({projectPath:t,selectedFilePath:e,onSelect:n,filterQuery:i="",flattenActions:s=!1}){const{entries:r,status:a,reload:o}=Rx(t),[c,d]=m.useState(new Set),u=m.useMemo(()=>Pj(r,i,t),[r,i,t]),h=m.useCallback(p=>{d(O=>{const g=new Set(O);return g.has(p)?g.delete(p):g.add(p),g})},[]);if(m.useEffect(()=>{if(!i.trim())return;const O=u.filter(g=>g.isDirectory).map(g=>g.path);d(g=>{const x=new Set(g);for(const b of O)x.add(b);return x})},[i,u]),a==="loading")return l.jsx("div",{className:"flex flex-1 items-center justify-center p-4",children:l.jsx("p",{className:"text-[13px] text-[#BFBFBF]",children:"加载中..."})});if(a==="error")return l.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-2 p-4 text-center",children:[l.jsx("p",{className:"text-[13px] text-[#BFBFBF]",children:"加载文件列表失败"}),l.jsx("button",{type:"button",onClick:o,className:"text-[12px] text-blue-500 hover:underline",children:"重试"})]});if(a==="idle"||!t||t==="default")return l.jsx("div",{className:"flex flex-1 items-center justify-center p-4",children:l.jsx("p",{className:"text-[13px] text-[#BFBFBF]",children:"未找到工作区"})});if(r.length===0)return l.jsx("div",{className:"flex flex-1 items-center justify-center p-4",children:l.jsx("p",{className:"text-[13px] text-[#BFBFBF]",children:"工作区暂无文件"})});if(u.length===0)return l.jsx("div",{className:"flex flex-1 flex-col items-center justify-center px-4 py-6 text-center",children:l.jsx("p",{className:"text-[13px] text-[#BFBFBF]",children:"没有匹配的条目"})});const f=u.filter(p=>{const O=Vi(p.path),g=Vi(t).replace(/[/\\]+$/,""),x=O.startsWith(g)?O.slice(g.length).replace(/^\/+/,""):O;return x.length>0&&!x.includes("/")});return l.jsx("ul",{className:"list-none flex-1 overflow-y-auto py-1 pl-2 pr-0.5",children:f.map(p=>l.jsx("li",{children:l.jsx(_x,{entry:p,depth:0,allEntries:u,expandedDirs:c,selectedFilePath:e,onToggleDir:h,onSelect:n,flattenActions:s})},p.path))})}function Mx({activeTab:t,artifacts:e,projectPath:n,selectedFilePath:i,onSelect:s,flattenActions:r=!1}){const[a,o]=m.useState("");return l.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[l.jsx(Cj,{value:a,onChange:o}),l.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto",children:t==="artifacts"?l.jsx(Qj,{artifacts:e,selectedFilePath:i,onSelect:s,filterQuery:a,flattenActions:r}):l.jsx(Aj,{projectPath:n,selectedFilePath:i,onSelect:s,filterQuery:a,flattenActions:r})})]})}function Nj({contentBase64:t,mimeType:e,title:n}){const[i,s]=m.useState(!1),r=m.useMemo(()=>t?`data:${e};base64,${t}`:null,[t,e]);return!r||i?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-red-600",children:"无法预览该图片"}):l.jsx("div",{className:"flex min-h-0 flex-1 items-center justify-center overflow-hidden rounded-md border border-[var(--border-default,#E5E5E5)] bg-[var(--surface-neutral-white,#fff)] bg-[image:--checkerboard-bg]",style:{"--checkerboard-bg":"repeating-conic-gradient(#F0F0F0 0% 25%, transparent 0% 50%) 0 0 / 16px 16px"},children:l.jsx("img",{src:r,alt:n,onError:()=>s(!0),draggable:!1,className:"max-h-full max-w-full select-none object-contain"})})}function Rj(t){var i,s;const e=((s=(i=t.trim().split(/[?#]/)[0])==null?void 0:i.toLowerCase().match(/\.([^./\\]+)$/))==null?void 0:s[1])??"";return{png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",svg:"image/svg+xml",webp:"image/webp",bmp:"image/bmp",tif:"image/tiff",tiff:"image/tiff",ico:"image/x-icon",avif:"image/avif",heic:"image/heic",heif:"image/heif"}[e]??"image/png"}async function _j(t,e,n){const i=await G("/api/projects/read-local-binary-preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,...e&&e!=="default"?{projectPath:e}:{}}),signal:n}),s=await i.json().catch(()=>null);return i.ok?typeof(s==null?void 0:s.contentBase64)!="string"||!s.contentBase64.length?{ok:!1,message:"无效的响应内容"}:{ok:!0,contentBase64:s.contentBase64,mimeType:Rj(t)}:{ok:!1,message:(s==null?void 0:s.error)??`HTTP ${i.status}`}}function Mj(t,e,n=0,i=0){const[s,r]=m.useState({status:"idle"});return m.useEffect(()=>{if(!(t!=null&&t.trim())){r({status:"idle"});return}const a=t.trim(),o=new AbortController;return r({status:"loading"}),_j(a,e??void 0,o.signal).then(c=>{if(!o.signal.aborted){if(!c.ok){r({status:"error",message:c.message});return}r({status:"ok",contentBase64:c.contentBase64,mimeType:c.mimeType})}}).catch(c=>{o.signal.aborted||r({status:"error",message:c instanceof Error?c.message:"请求失败"})}),()=>o.abort()},[t,e,n,i]),s}function Ej({path:t,displayName:e,threadId:n,projectPath:i}){const s=Fo(),r=hs(n,t),[a,o]=m.useState(0),c=Mj(t,i,r,a),d=Ut(f=>f.addToast),u=m.useCallback(()=>o(f=>f+1),[]),h=m.useCallback(async()=>{try{const f=await G("/api/projects/open-local",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,...i&&i!=="default"?{projectPath:i}:{}})});if(!f.ok){const p=await f.json().catch(()=>null);d({type:"error",title:"打开失败",message:(p==null?void 0:p.error)??`HTTP ${f.status}`,duration:3500});return}d({type:"success",title:"已打开",message:"已在默认程序中打开",duration:2200})}catch(f){d({type:"error",title:"打开失败",message:f instanceof Error?f.message:"请求失败",duration:3500})}},[d,t,i]);return m.useLayoutEffect(()=>{if(s){if(c.status!=="ok"){s(null);return}return s(l.jsxs(l.Fragment,{children:[l.jsx(Ra,{title:"刷新",onClick:u,children:l.jsx("img",{src:"/images/html-preview-toolbar/refresh.svg",alt:"",width:18,height:18,className:"size-[18px] shrink-0 object-contain select-none",draggable:!1})}),l.jsx(Ra,{title:"在默认程序中打开",onClick:h,children:l.jsx("img",{src:"/images/html-preview-toolbar/open-external.svg",alt:"",width:18,height:18,className:"size-[18px] shrink-0 object-contain select-none",draggable:!1})})]})),()=>s(null)}},[s,c.status,u,h]),m.useMemo(()=>c.status==="loading"||c.status==="idle"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-gray-500",children:"加载中…"}):c.status==="error"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-red-600",children:c.message}):l.jsx("div",{className:"flex min-h-0 flex-1 flex-col px-4 py-3",children:l.jsx(Nj,{contentBase64:c.contentBase64,mimeType:c.mimeType,title:e})}),[e,c])}function Ij({contentBase64:t,title:e}){const n=m.useMemo(()=>{if(!t)return null;try{const i=atob(t),s=new Uint8Array(i.length);for(let a=0;a<i.length;a++)s[a]=i.charCodeAt(a);const r=new Blob([s],{type:"application/pdf"});return URL.createObjectURL(r)}catch(i){return console.error("Failed to create PDF blob URL",i),null}},[t]);return n?l.jsx("iframe",{src:`${n}#toolbar=0&navpanes=0&scrollbar=0`,title:e,className:"box-border h-full min-h-[20rem] w-full flex-1 rounded-md border border-[var(--border-default)] bg-[var(--surface-neutral-white,#fff)]"}):l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-red-600",children:"无法预览 PDF 内容"})}async function Lj(t,e,n){const i=await G("/api/projects/read-local-binary-preview",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,...e&&e!=="default"?{projectPath:e}:{}}),signal:n}),s=await i.json().catch(()=>null);return i.ok?typeof(s==null?void 0:s.contentBase64)!="string"||!s.contentBase64.length?{ok:!1,message:"Invalid response"}:{ok:!0,contentBase64:s.contentBase64}:{ok:!1,message:(s==null?void 0:s.error)??`HTTP ${i.status}`}}function Xj(t,e,n=0,i=0){const[s,r]=m.useState({status:"idle"});return m.useEffect(()=>{if(!(t!=null&&t.trim())){r({status:"idle"});return}const a=t.trim(),o=new AbortController;return r({status:"loading"}),Lj(a,e??void 0,o.signal).then(c=>{if(!o.signal.aborted){if(!c.ok){r({status:"error",message:c.message});return}r({status:"ok",contentBase64:c.contentBase64})}}).catch(c=>{o.signal.aborted||r({status:"error",message:c instanceof Error?c.message:"Request failed"})}),()=>o.abort()},[t,e,n,i]),s}function Zj({path:t,displayName:e,threadId:n,projectPath:i}){const s=Fo(),r=hs(n,t),[a,o]=m.useState(0),c=Xj(t,i,r,a),d=Ut(f=>f.addToast),u=m.useCallback(()=>o(f=>f+1),[]),h=m.useCallback(async()=>{try{const f=await G("/api/projects/open-local",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,...i&&i!=="default"?{projectPath:i}:{}})});if(!f.ok){const p=await f.json().catch(()=>null);d({type:"error",title:"打开失败",message:(p==null?void 0:p.error)??`HTTP ${f.status}`,duration:3500});return}d({type:"success",title:"已打开",message:"已在默认程序中打开",duration:2200})}catch(f){d({type:"error",title:"打开失败",message:f instanceof Error?f.message:"请求失败",duration:3500})}},[d,t,i]);return m.useLayoutEffect(()=>{if(s){if(c.status!=="ok"){s(null);return}return s(l.jsxs(l.Fragment,{children:[l.jsx(Ra,{title:"刷新",onClick:u,children:l.jsx("img",{src:"/images/html-preview-toolbar/refresh.svg",alt:"",width:18,height:18,className:"size-[18px] shrink-0 object-contain select-none",draggable:!1})}),l.jsx(Ra,{title:"在默认程序中打开",onClick:h,children:l.jsx("img",{src:"/images/html-preview-toolbar/open-external.svg",alt:"",width:18,height:18,className:"size-[18px] shrink-0 object-contain select-none",draggable:!1})})]})),()=>s(null)}},[s,c.status,u,h]),m.useMemo(()=>c.status==="loading"||c.status==="idle"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-gray-500",children:"加载中…"}):c.status==="error"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-red-600",children:c.message}):l.jsx("div",{className:"flex min-h-0 flex-1 flex-col px-4 py-3",children:l.jsx(Ij,{contentBase64:c.contentBase64,title:e})}),[e,c])}const xo=1280,bo=720,Dj="/images/ppt-preview/placeholder-thumb.webp",qj="/images/ppt-preview/placeholder-main.webp",C0={containerType:"size"},P0={width:`min(100cqw, calc((100cqh - 60px) * ${xo} / ${bo}))`,height:`min(100cqh - 60px, calc(100cqw * ${bo} / ${xo}))`},Wj={width:`${xo}px`,height:`${bo}px`,transformOrigin:"0 0",transform:`scale(min(calc(100cqw / ${xo}px), calc((100cqh - 60px) / ${bo}px)))`};function Ex(t,e,n){if(!(t!=null&&t.trim())||!e)return"";const i=n!=null&&n.trim()?W0(t.trim(),n).projectRoot:t.trim(),s=new URLSearchParams({projectRoot:i,path:e.htmlPath});return e.updatedAt!=null&&s.set("v",String(e.updatedAt)),`${wo}/api/ppt-studio/slide?${s.toString()}`}function zj({slide:t,projectRoot:e,pagesDir:n,isGenerating:i,children:s}){const r=m.useRef(null),a=m.useMemo(()=>Ex(e,t,n),[t,e,n]);return t?l.jsxs("div",{"data-testid":"ppt-canvas-stage",className:"flex min-h-0 min-w-0 flex-1 flex-col items-center justify-center px-4 py-6 bg-white gap-6",style:C0,children:[l.jsx("div",{"data-testid":"ppt-canvas-shell",className:"relative overflow-hidden rounded-[8px] border border-gray-200 bg-white shadow-[0_4px_16px_rgba(0,0,0,0.04)] shrink-0",style:P0,children:l.jsx("iframe",{ref:r,"data-testid":"ppt-canvas-frame",title:`PPT slide ${t.pageNumber}`,src:a,sandbox:"allow-scripts allow-same-origin",className:"absolute left-0 top-0 border-0 bg-white",style:Wj},`ppt-canvas-${t.pageNumber}`)}),s&&l.jsx("div",{className:"shrink-0",children:s})]}):l.jsxs("div",{"data-testid":"ppt-canvas-stage",className:"flex min-h-0 min-w-0 flex-1 flex-col items-center justify-center px-4 py-6 bg-white gap-6",style:C0,children:[l.jsx("div",{"data-testid":"ppt-canvas-shell-placeholder",className:"relative overflow-hidden rounded-[8px] border border-gray-200 bg-white shadow-[0_4px_16px_rgba(0,0,0,0.04)] shrink-0",style:P0,children:l.jsx("img",{src:qj,alt:"",decoding:"async",className:"absolute left-0 top-0 h-full w-full object-cover"})}),s&&l.jsx("div",{className:"shrink-0",children:s})]})}const Bj="border-2 border-blue-200",Vj="bg-white border-2 border-gray-200",Fj=`bg-white ${Bj}`;function Uj(t,e,n,i){if(!n)return i===0;if(t&&n===t.slideId)return!0;if(n.startsWith("placeholder-")){const r=Number.parseInt(n.slice(12),10);return Number.isFinite(r)&&r===e}const s=/^slide-(\d+)$/.exec(n);return s?Number.parseInt(s[1]??"",10)===e:t?n===t.slideId:!1}function Yj({slides:t,activeSlideId:e,projectRoot:n,pagesDir:i,onSelect:s,isGenerating:r}){const a=t,o=m.useRef(null);return m.useEffect(()=>{const c=o.current;if(!c)return;const d=h=>{c.scrollWidth<=c.clientWidth||Math.abs(h.deltaX)>Math.abs(h.deltaY)||(h.preventDefault(),c.scrollLeft+=h.deltaY)},u={passive:!1};return c.addEventListener("wheel",d,u),()=>c.removeEventListener("wheel",d,u)},[a.length]),a.length===0?null:l.jsx("div",{ref:o,"data-testid":"ppt-slide-strip",className:"flex w-full min-w-0 items-center gap-4 overflow-x-auto overflow-y-hidden px-6 py-5",children:a.map((c,d)=>{const u=c,h=u?u.pageNumber:d+1,f=u?u.slideId:`placeholder-${h}`,p=Uj(u,h,e,d);return l.jsx("button",{"data-testid":`ppt-slide-thumb-${h}`,onClick:()=>s(f),className:"group relative flex shrink-0 cursor-pointer flex-col outline-none",children:l.jsxs("div",{className:`relative flex h-[72px] w-[128px] items-center justify-center overflow-hidden rounded-[8px] transition-all ${p?Fj:Vj}`,children:[l.jsx("div",{className:`absolute right-1.5 top-1.5 z-10 flex h-[20px] w-[32px] items-center justify-center rounded-full text-[11px] font-bold shadow-sm transition-colors ${p?"bg-[#1F1F1F] text-white":"bg-[#F2F2F2] text-[#4F4F4F]"}`,children:h}),n&&u?l.jsx("iframe",{title:`PPT slide ${u.pageNumber} thumbnail`,src:Ex(n,u,i),sandbox:"allow-scripts allow-same-origin",tabIndex:-1,className:"pointer-events-none absolute left-0 top-0 h-[720px] w-[1280px] origin-top-left scale-[0.1] border-0 bg-transparent"}):l.jsx("img",{src:Dj,alt:"",decoding:"async",className:"h-full w-full object-cover"})]})},`ppt-page-${h}`)})})}const Gj=3;function Hj(t,e,n,i){const s=t.reduce((c,d)=>Math.max(c,d.pageNumber),0);let r=e>0?e:0;if(r===0&&n&&(r=Math.max(i,t.length,Gj)),r=Math.max(r,s),r===0)return[...t];const a=new Map;for(const c of t)a.set(c.pageNumber,c);const o=[];for(let c=1;c<=r;c++)o.push(a.get(c));return o}const dc="flex h-8 w-8 items-center justify-center rounded-md border border-[#E3E8EF] bg-white text-[#4B5565] shadow-sm transition-colors hover:bg-[#F8FAFC] hover:text-[#1F2937] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#DCE7FF] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:border-[#E3E8EF] disabled:bg-[#F3F5F7] disabled:text-[#99A1AD] disabled:shadow-sm";function uc(t,e){return(t==null?void 0:t.slideId)??`placeholder-${e+1}`}function Kj({pagesDir:t,threadId:e}){const n=E(x=>{const b=x.pptStudioSessions??{};if(b[t])return b[t];const y=Object.values(b).filter(S=>S.threadId===e);return y[y.length-1]??null}),i=E(x=>{var b;return((b=x.threadStates[e])==null?void 0:b.hasActiveInvocation)??!1}),s=E(x=>x.setPptStudioActiveSlide),r=E(x=>x.currentThreadId),a=E(x=>x.setPendingChatInsert),o=(n==null?void 0:n.status)==="generating"||i,c=m.useRef(0),d=m.useMemo(()=>{const x=(n==null?void 0:n.slides)??[],b=(n==null?void 0:n.expectedSlideCount)??0;return Hj(x,b,o,c.current)},[n,o]);m.useEffect(()=>{o?d.length>c.current&&(c.current=d.length):c.current=0},[d.length,o]);const u=m.useMemo(()=>{var x,b;if(!n)return null;if(n.activeSlideId){const y=(x=n.slides)==null?void 0:x.find(S=>S.slideId===n.activeSlideId);if(y)return y;if(n.activeSlideId.startsWith("placeholder-"))return null}return((b=n.slides)==null?void 0:b[0])??null},[n]),h=m.useMemo(()=>n!=null&&n.activeSlideId?d.findIndex((x,b)=>uc(x,b)===n.activeSlideId):d.length?0:-1,[d,n==null?void 0:n.activeSlideId]);m.useEffect(()=>{var x;!n||n.activeSlideId||!((x=n.slides)!=null&&x[0])||s(n.pagesDir,n.slides[0].slideId)},[n,s]);const f=m.useCallback(()=>{if(h>0){const x=d[h-1];n!=null&&n.pagesDir&&s(n.pagesDir,uc(x,h-1))}},[h,d,n==null?void 0:n.pagesDir,s]),p=m.useCallback(()=>{if(h>=0&&h<d.length-1){const x=d[h+1];n!=null&&n.pagesDir&&s(n.pagesDir,uc(x,h+1))}},[h,d,n==null?void 0:n.pagesDir,s]),O=m.useCallback(x=>{n!=null&&n.pagesDir&&s(n.pagesDir,x)},[n==null?void 0:n.pagesDir,s]),g=m.useCallback(()=>{if(!u)return;const x=u.pageNumber,y=`${K2}内容核查${J2}`,S=`第 ${x} 页:核实所有内容的真实性,如果内容正确,请提供可点击的参考链接。否则,请指出错误之处并搜索与参考来源的相关内容。`;a({threadId:r,text:`${y} ${S}`,replaceAll:!0})},[u,r,a]);return n?l.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[l.jsx("div",{className:"relative flex min-h-0 flex-1 flex-col",children:l.jsx(zj,{slide:u,projectRoot:n.projectRoot??null,pagesDir:n.pagesDir,isGenerating:o,children:l.jsxs("div",{"data-testid":"fb-ppt-nav-controls",className:"flex shrink-0 items-center justify-center gap-4",children:[l.jsx("button",{type:"button","aria-label":"上一张幻灯片",title:"上一张幻灯片",onClick:f,disabled:h<=0,className:dc,children:l.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("polyline",{points:"15 18 9 12 15 6"})})}),l.jsx("button",{type:"button","data-testid":"fb-ppt-fact-check","aria-label":"内容核查",title:"内容核查:核实当前页内容真实性",onClick:g,disabled:!u,className:dc,children:l.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[l.jsx("circle",{cx:"11",cy:"11",r:"8"}),l.jsx("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"}),l.jsx("polyline",{points:"9 11 11 13 15 9"})]})}),l.jsx("button",{type:"button","aria-label":"下一张幻灯片",title:"下一张幻灯片",onClick:p,disabled:h===-1||h>=d.length-1,className:dc,children:l.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("polyline",{points:"9 18 15 12 9 6"})})})]})})}),l.jsx("div",{className:"h-auto shrink-0 border-t border-gray-100 bg-white pb-4",children:l.jsx(Yj,{slides:d,activeSlideId:n.activeSlideId??null,projectRoot:n.projectRoot??null,pagesDir:n.pagesDir,isGenerating:o,onSelect:O})})]}):l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-gray-400",children:"PPT 会话加载中…"})}function Jj({path:t,kind:e,displayName:n,threadId:i,projectPath:s}){const r=Fo(),a=hs(i,t),[o,c]=m.useState(0),d=K0(t,s,a,e==="html"?o:0),u=m.useCallback(()=>c(f=>f+1),[]),h=d.status==="ok"?d.content:"";return m.useLayoutEffect(()=>{if(r){if(d.status!=="ok"){r(null);return}return r(e==="markdown"?l.jsx(J0,{text:h,copyKindLabel:"Markdown"}):l.jsx(Q2,{html:h,filePath:t,projectPath:s,onRefresh:u})),()=>r(null)}},[r,d.status,e,h,t,s,u]),d.status==="loading"||d.status==="idle"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-gray-500",children:"加载中…"}):d.status==="error"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-red-600",children:d.message}):e==="markdown"?l.jsx("div",{className:"flex min-h-0 flex-1 flex-col px-4 py-3",children:l.jsx("div",{className:"min-h-0 flex-1 overflow-auto px-6 py-4",children:l.jsx(eO,{source:d.content})})}):l.jsx("div",{className:"flex min-h-0 flex-1 flex-col px-4 py-3",children:l.jsx("div",{className:"min-h-0 flex flex-1 flex-col",children:l.jsx(C2,{html:d.content,title:n})})})}function eA({path:t,displayName:e,threadId:n,projectPath:i}){const s=hs(n,t),r=P2(t,i,s),a=r.status==="ok"?r.contentBase64:null,o=T2(a);return m.useMemo(()=>r.status==="loading"||r.status==="idle"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-gray-500",children:"加载中…"}):r.status==="error"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-red-600",children:r.message}):o.status==="error"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-red-600",children:o.message}):o.status==="parsing"||o.status==="idle"?l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-sm text-gray-400",children:"解析中…"}):l.jsx("div",{className:"flex min-h-0 flex-1 flex-col px-4 py-3",children:l.jsx($2,{sheets:o.sheets,title:e},a)}),[e,a,r,o])}function T0({file:t}){const{Icon:e}=Td[t.kind],[n,i]=m.useState("idle"),[s,r]=m.useState(""),a=m.useCallback(async()=>{if(!t.isVirtual){i("loading"),r("");try{const o=await G("/api/projects/open-local",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t.path})});if(o.ok)i("idle");else{const c=await o.json().catch(()=>null);r((c==null?void 0:c.error)??`打开失败(HTTP ${o.status})`),i("error")}}catch(o){r(o instanceof Error?o.message:"打开失败"),i("error")}}},[t.isVirtual,t.path]);return t.isVirtual?l.jsx("div",{className:"flex flex-1 flex-col items-center justify-center gap-2 px-8 text-center",children:l.jsx("p",{className:"max-w-sm text-[13px] text-gray-500",children:"该条目为生成过程占位,暂不可用系统程序打开。"})}):l.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-4 p-8",children:[l.jsx(e,{width:48,height:48}),l.jsx("p",{className:"max-w-[200px] truncate text-[15px] font-medium text-gray-700",children:t.name}),l.jsx("button",{type:"button",onClick:a,disabled:n==="loading",className:"rounded-md bg-blue-50 px-4 py-1.5 text-[13px] text-blue-600 transition-colors hover:bg-blue-100 disabled:opacity-50",children:n==="loading"?"打开中…":"用默认程序打开"}),n==="error"&&l.jsx("p",{className:"max-w-xs text-center text-[12px] text-red-500",children:s})]})}function tA({selectedFile:t,matchedPptSession:e,threadId:n,resolvedProjectPath:i}){if(!t)return l.jsx("div",{className:"flex flex-1 items-center justify-center p-6 text-[13px] text-[#BFBFBF]",children:"请从列表中选择文件进行预览"});const{kind:s,path:r,name:a}=t;return s==="ppt"?e?l.jsx(Kj,{pagesDir:e.pagesDir,threadId:n}):l.jsx(T0,{file:t}):s==="markdown"||s==="html"?l.jsx(Jj,{path:r,kind:s,displayName:a,threadId:n,projectPath:i}):s==="pdf"?l.jsx(Zj,{path:r,displayName:a,threadId:n,projectPath:i}):s==="docx"?l.jsx(bj,{path:r,displayName:a,threadId:n,projectPath:i}):s==="xlsx"?l.jsx(eA,{path:r,displayName:a,threadId:n,projectPath:i}):s==="code"||s==="txt"?l.jsx(xj,{path:r,displayName:a,threadId:n,projectPath:i}):s==="image"?l.jsx(Ej,{path:r,displayName:a,threadId:n,projectPath:i}):l.jsx(T0,{file:t})}function nA({isNarrow:t,selectedFile:e,artifacts:n,threadId:i,projectPath:s,activeTab:r,onSelectFile:a,onClose:o}){const c=E(S=>S.pptStudioSessions),d=E(S=>S.setActivePptPagesDir),[u,h]=m.useState(!1),[f,p]=m.useState(null),O=s&&s!=="default"?s:void 0;m.useEffect(()=>{e||p(null)},[e]);const g=(()=>{if(!e||e.kind!=="ppt")return null;const S=Object.values(c).filter(P=>P.threadId===i);if(e.isVirtual&&e.pptPagesDir){const P=qu(e.pptPagesDir);return S.find(w=>qu(w.pagesDir)===P)??null}return S.find(P=>{const w=q0(n,P.pagesDir,P.deckTitle);return w&&vd(e.path,w.path)})??null})();m.useEffect(()=>{g!=null&&g.pagesDir&&d(g.pagesDir)},[g==null?void 0:g.pagesDir,d]),m.useEffect(()=>{t||h(!1)},[t]),m.useEffect(()=>{if(!t||!u)return;const S=P=>{P.key==="Escape"&&h(!1)};return document.addEventListener("keydown",S),()=>document.removeEventListener("keydown",S)},[t,u]);const x=(e==null?void 0:e.name)??"文件预览",b=m.useCallback(S=>{a(S),h(!1)},[a]),y=t?l.jsxs("button",{type:"button",onClick:()=>h(S=>!S),className:"flex w-full min-w-0 max-w-full items-center justify-start gap-1.5 rounded-md py-0.5 text-left outline-none transition-colors hover:bg-[#F9F9F9]",title:x,"aria-expanded":u,"aria-haspopup":"listbox",children:[l.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:`shrink-0 text-[#191919] transition-transform ${u?"bg-black/[0.04] rounded":""}`,"aria-hidden":!0,children:[l.jsx("title",{children:u?"收起文件列表":"展开文件列表"}),l.jsx("path",{d:"M2.50008 3.83334C2.96008 3.83334 3.33341 3.46334 3.33341 3.00001C3.33341 2.54001 2.96008 2.16667 2.50008 2.16667C2.03675 2.16667 1.66675 2.54001 1.66675 3.00001C1.66675 3.46334 2.03675 3.83334 2.50008 3.83334ZM5.66675 2.33334L14.0001 2.33334C14.3667 2.33334 14.6667 2.63001 14.6667 3.00001C14.6667 3.36667 14.3667 3.66667 14.0001 3.66667L5.66675 3.66667C5.29675 3.66667 5.00008 3.36667 5.00008 3.00001C5.00008 2.63001 5.29675 2.33334 5.66675 2.33334ZM2.50008 8.83334C2.96008 8.83334 3.33341 8.46334 3.33341 8.00001C3.33341 7.54001 2.96008 7.16667 2.50008 7.16667C2.03675 7.16667 1.66675 7.54001 1.66675 8.00001C1.66675 8.46334 2.03675 8.83334 2.50008 8.83334ZM5.66675 7.33334L14.0001 7.33334C14.3667 7.33334 14.6667 7.63 14.6667 8.00001C14.6667 8.36667 14.3667 8.66667 14.0001 8.66667L5.66675 8.66667C5.29675 8.66667 5.00008 8.36667 5.00008 8.00001C5.00008 7.63 5.29675 7.33334 5.66675 7.33334ZM2.50008 13.8333C2.96008 13.8333 3.33341 13.4633 3.33341 13C3.33341 12.54 2.96008 12.1667 2.50008 12.1667C2.03675 12.1667 1.66675 12.54 1.66675 13C1.66675 13.4633 2.03675 13.8333 2.50008 13.8333ZM5.66675 12.3333L14.0001 12.3333C14.3667 12.3333 14.6667 12.63 14.6667 13C14.6667 13.3667 14.3667 13.6667 14.0001 13.6667L5.66675 13.6667C5.29675 13.6667 5.00008 13.3667 5.00008 13C5.00008 12.63 5.29675 12.3333 5.66675 12.3333Z",fill:"currentColor",fillRule:"evenodd"})]}),l.jsx("span",{className:"min-w-0 shrink truncate text-[14px] font-semibold leading-5 text-[#1F1F1F]",children:x})]}):null;return l.jsx("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:l.jsx(tO,{panelTestId:"file-browser-preview-panel",title:x,titleContent:y,onRequestClose:o,hideBorderLeft:!0,hideHeaderActions:!0,extraHeaderContent:f,children:l.jsxs("div",{className:"relative flex min-h-0 flex-1 flex-col overflow-hidden",children:[l.jsx("div",{className:"flex min-h-0 flex-1 flex-col",children:l.jsx(pj,{setPreviewHeaderActions:p,children:l.jsx(tA,{selectedFile:e,matchedPptSession:g,threadId:i,resolvedProjectPath:O})})}),t&&u?l.jsxs(l.Fragment,{children:[l.jsx("button",{type:"button",className:"absolute inset-0 z-40 cursor-default bg-transparent","aria-label":"关闭文件列表",onClick:()=>h(!1)}),l.jsx("div",{className:"absolute left-[14px] right-[14px] top-[8px] z-50 flex max-h-[min(52vh,420px)] min-h-0 flex-col overflow-hidden rounded-xl border border-[#F0F0F0] bg-white p-3 shadow-[0_8px_24px_rgba(0,0,0,0.12)]",children:l.jsx(Mx,{activeTab:r,artifacts:n,projectPath:s,selectedFilePath:(e==null?void 0:e.path)??null,onSelect:b,flattenActions:!0})})]}):null]})})})}function iA({isNarrow:t,activeTab:e,artifacts:n,projectPath:i,selectedFilePath:s,onSelect:r}){return t?null:l.jsx("div",{className:"flex h-full w-[296px] shrink-0 flex-col overflow-hidden border-r border-[#F0F0F0] bg-white px-[14px] pb-3 pt-3",children:l.jsx(Mx,{activeTab:e,artifacts:n,projectPath:i,selectedFilePath:s,onSelect:r})})}const sA=[{id:"tasks",label:"任务列表"},{id:"artifacts",label:"工作产物"},{id:"workspace",label:"全部文件"}];function rA(){return l.jsx(Vs,{width:18,height:18})}function aA({exit:t}){return t?l.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,children:[l.jsx("title",{children:"退出全屏"}),l.jsx("path",{fill:"currentColor",fillRule:"nonzero",d:"M5.96105 8.53895C6.78948 8.53895 7.46105 9.21052 7.46105 10.0389L7.46105 13.5C7.46105 13.7761 7.23719 14 6.96105 14C6.68491 14 6.46105 13.7761 6.46105 13.5L6.46067 10.2453L3.15939 13.5477C2.96413 13.743 2.64755 13.743 2.45228 13.5477C2.25702 13.3525 2.25702 13.0359 2.45228 12.8406L5.754 9.53867L2.5 9.53895C2.24687 9.53895 2.03767 9.35085 2.00456 9.1068L2 9.03895C2 8.76281 2.22386 8.53895 2.5 8.53895L5.96105 8.53895ZM9.03895 2C9.31509 2 9.53895 2.22386 9.53895 2.5L9.53867 5.754L12.8406 2.45228C13.0359 2.25702 13.3525 2.25702 13.5477 2.45228C13.743 2.64755 13.743 2.96413 13.5477 3.15939L10.2453 6.46067L13.5 6.46105C13.7531 6.46105 13.9623 6.64915 13.9954 6.8932L14 6.96105C14 7.23719 13.7761 7.46105 13.5 7.46105L10.0389 7.46105C9.21052 7.46105 8.53895 6.78948 8.53895 5.96105L8.53895 2.5C8.53895 2.22386 8.76281 2 9.03895 2Z"})]}):l.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,children:[l.jsx("title",{children:"全屏预览"}),l.jsx("path",{fill:"currentColor",fillRule:"nonzero",d:"M2.5 8.53895C2.77614 8.53895 3 8.76281 3 9.03895L3 12.292L6.30166 8.99123C6.49692 8.79597 6.8135 8.79597 7.00877 8.99123C7.20403 9.1865 7.20403 9.50308 7.00877 9.69834L3.70667 13L6.96105 13C7.21418 13 7.42338 13.1881 7.45649 13.4322L7.46105 13.5C7.46105 13.7761 7.23719 14 6.96105 14L3.5 14C2.67157 14 2 13.3284 2 12.5L2 9.03895C2 8.76281 2.22386 8.53895 2.5 8.53895ZM12.5 2C13.3284 2 14 2.67157 14 3.5L14 6.96105C14 7.23719 13.7761 7.46105 13.5 7.46105C13.2239 7.46105 13 7.23719 13 6.96105L13 3.70667L9.69834 7.00877C9.50308 7.20403 9.1865 7.20403 8.99123 7.00877C8.79597 6.8135 8.79597 6.49692 8.99123 6.30166L12.2927 2.99933L9.03895 3C8.78582 3 8.57662 2.8119 8.54351 2.56785L8.53895 2.5C8.53895 2.22386 8.76281 2 9.03895 2L12.5 2Z"})]})}function oA({activeTab:t,onTabChange:e,onClose:n,showFileActions:i=!1,canOpenFolder:s=!1,isFullScreen:r=!1,onOpenFolder:a,onToggleFullscreen:o}){return l.jsxs("div",{className:"flex min-h-[48px] shrink-0 items-center gap-2 border-b border-[#F0F0F0] bg-white px-4 py-3",children:[l.jsx("div",{className:"flex min-w-0 flex-1 flex-nowrap items-center gap-2 overflow-x-auto",children:sA.map(c=>l.jsx("button",{type:"button",onClick:()=>e(c.id),className:`shrink-0 rounded-lg px-[14px] py-2 text-[14px] font-medium leading-5 transition-colors ${t===c.id?"bg-[#F5F5F7] text-[#1F1F1F]":"text-[#8C8C8C] hover:bg-[#FAFAFA] hover:text-[#434343]"}`,children:c.label},c.id))}),l.jsxs("div",{className:"flex shrink-0 items-center gap-0.5",children:[i&&s&&a?l.jsx("button",{type:"button",onClick:()=>{a()},className:"flex size-8 items-center justify-center rounded-md text-[#434343] transition-colors hover:bg-[#F5F5F7]",title:"打开文件所在文件夹",children:l.jsx(rA,{})}):null,o?l.jsx("button",{type:"button",onClick:o,className:"flex size-8 items-center justify-center rounded-md text-[#434343] transition-colors hover:bg-[#F5F5F7]",title:r?"退出全屏":"全屏预览",children:l.jsx(aA,{exit:r})}):null,l.jsx("button",{type:"button",onClick:n,className:"flex size-8 shrink-0 items-center justify-center rounded-md text-[#8C8C8C] transition-colors hover:bg-[#F5F5F7] hover:text-[#434343]",title:"关闭","aria-label":"关闭",children:l.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","aria-hidden":!0,children:[l.jsx("title",{children:"关闭"}),l.jsx("path",{d:"M3 3l8 8M11 3l-8 8",strokeWidth:"1.35",strokeLinecap:"round"})]})})]})]})}const lA=2500;function cA(t){for(let e=t.length-1;e>=0;e--){const n=t[e];if(n.type==="user"&&!n.agentId)return{cutoffIndex:e,cutoffTime:n.timestamp}}return null}const en={cardBg:"#F7F7F7",title:"#262626",body:"#595959",bodyMuted:"#8C8C8C",success:"#52C41A",todoRing:"#D9D9D9",blocked:"#FA8C16"},Bn=20;function dA({status:t}){return t==="done"?l.jsxs("svg",{width:Bn,height:Bn,viewBox:"0 0 20 20",fill:"none",className:"shrink-0","aria-label":"已完成",children:[l.jsx("circle",{cx:"10",cy:"10",r:"9",fill:en.success}),l.jsx("path",{d:"M6 10.2l2.4 2.4L14.2 7",stroke:"white",strokeWidth:"1.65",strokeLinecap:"round",strokeLinejoin:"round"})]}):t==="doing"?l.jsx("img",{src:"/loading-small.webp",alt:"进行中",width:Bn,height:Bn,className:"shrink-0 animate-spin select-none",style:{animationDuration:"0.85s"},draggable:!1}):t==="blocked"?l.jsxs("svg",{width:Bn,height:Bn,viewBox:"0 0 20 20",fill:"none",className:"shrink-0","aria-label":"阻塞",children:[l.jsx("circle",{cx:"10",cy:"10",r:"8.25",stroke:en.blocked,strokeWidth:"1.5"}),l.jsx("path",{d:"M10 6v5",stroke:en.blocked,strokeWidth:"1.5",strokeLinecap:"round"}),l.jsx("circle",{cx:"10",cy:"14",r:"0.9",fill:en.blocked})]}):l.jsx("svg",{width:Bn,height:Bn,viewBox:"0 0 20 20",fill:"none",className:"shrink-0","aria-label":"待处理",children:l.jsx("circle",{cx:"10",cy:"10",r:"6",stroke:en.todoRing,strokeWidth:"1.5",fill:"none"})})}function uA(){return l.jsx("div",{className:"flex min-h-0 flex-1 flex-col items-center justify-center px-6 py-10",children:l.jsxs("div",{className:"flex w-full max-w-[min(100%,360px)] flex-col items-center justify-center px-6 py-10",children:[l.jsx("div",{className:"mb-3 flex items-center justify-center",children:l.jsx("img",{src:"/images/task-list/empty-state.svg",alt:"",width:64,height:64,className:"size-16 shrink-0 object-contain select-none",draggable:!1})}),l.jsx("p",{className:"text-[16px] font-semibold",style:{color:en.title},children:"暂无待办"}),l.jsx("p",{className:"mt-1.5 text-center text-[14px] leading-relaxed",style:{color:en.bodyMuted},children:"复杂任务的进展会显示在这里"})]})})}function hA(){const t=Fs(u=>u.tasks),e=E(u=>u.messages),n=E(u=>u.agentInvocations),i=E(u=>u.hasActiveInvocation),{getAgentById:s}=Zn(),{getExpertById:r}=wd(),{formalTasksForDisplay:a}=m.useMemo(()=>{const u=cA(e);if(!u)return{formalTasksForDisplay:t};const{cutoffTime:h}=u,f=h-lA,p=Object.values(n??{}).some(g=>{var x,b;return(((b=(x=g.taskProgress)==null?void 0:x.tasks)==null?void 0:b.length)??0)>0}),O=t.some(g=>g.createdAt>=f);return p||O?{formalTasksForDisplay:t.filter(g=>g.createdAt>=f)}:{formalTasksForDisplay:t.filter(g=>g.createdAt<h)}},[t,e,n]),o=m.useMemo(()=>{var h,f;const u=[];if(!n)return u;for(const[p,O]of Object.entries(n)){const g=(h=O.taskProgress)==null?void 0:h.tasks;if(!g||g.length===0)continue;const x=((f=O.taskProgress)==null?void 0:f.snapshotStatus)==="running"&&i;g.forEach(b=>{let y="todo";b.status==="completed"?y="done":b.status==="in_progress"&&(y=x?"doing":"todo"),u.push({id:b.id||`task_${Math.random()}`,title:b.subject||"未命名任务",status:y,agentId:p})})}return u},[n,i]),c=m.useMemo(()=>{if(a.length===0)return o;const u=new Set(a.map(p=>p.id)),h=a.map(p=>({id:p.id,title:p.title,status:p.status,agentId:p.ownerAgentId??"__unassigned__"})),f=o.filter(p=>!u.has(p.id));return[...h,...f]},[a,o]),d=m.useMemo(()=>{const u=new Map;for(const h of c){const f=u.get(h.agentId)??[];f.push(h),u.set(h.agentId,f)}return u},[c]);return c.length===0?l.jsx(uA,{}):l.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-4 pb-5 pt-2",children:l.jsx("div",{className:"mx-auto flex max-w-full flex-col gap-4",children:Array.from(d.entries()).map(([u,h])=>{const f=u!=="__unassigned__"?s(u):null,p=f?null:r(u),O=f??p,g=(O==null?void 0:O.displayName)??(u!=="__unassigned__"?u:"未分配"),x=h.length;return l.jsxs("div",{className:"rounded-xl px-5 py-6",style:{backgroundColor:en.cardBg},children:[l.jsxs("div",{className:"mb-6 flex items-center gap-2.5",children:[(()=>{var P;const b=u!=="__unassigned__"?s(u):null,y=b?null:r(u),S=b??y;return S!=null&&S.avatar?l.jsx("img",{src:S.avatar,alt:"",className:"h-8 w-8 shrink-0 rounded-full object-cover"}):l.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-[13px] font-semibold text-white",style:{backgroundColor:((P=S==null?void 0:S.color)==null?void 0:P.primary)??"#D9D9D9"},children:g.charAt(0)})})(),l.jsx("span",{className:"truncate text-[16px] font-semibold leading-tight",style:{color:en.title},children:g})]}),l.jsx("div",{className:"flex flex-col ml-[42px]",children:h.map((b,y)=>l.jsxs(m.Fragment,{children:[l.jsxs("div",{className:"flex items-start gap-3",children:[l.jsx("div",{className:"flex w-5 shrink-0 justify-center pt-[1px]",children:l.jsx(dA,{status:b.status})}),l.jsx(Aa,{content:b.title,className:"min-w-0 flex-1",placement:"top",children:l.jsx("span",{className:"block min-w-0 truncate text-[14px] leading-[1.57]",style:{color:b.status==="todo"?en.bodyMuted:en.body},children:b.title})})]}),y<x-1?l.jsxs("div",{className:"flex gap-3","aria-hidden":!0,children:[l.jsx("div",{className:"flex w-5 shrink-0 flex-col items-center px-0 py-1.5",children:l.jsx("div",{className:"h-8 w-px shrink-0 bg-[#E8E8E8]"})}),l.jsx("div",{className:"min-w-0 flex-1"})]}):null]},b.id))})]},u)})})})}function fA(t,e){const n=E(c=>c.fileBrowserInitialTab),[i,s]=m.useState(n??"tasks"),[r,a]=m.useState(e);m.useEffect(()=>{e!==null&&e!==""?(a(e),s("artifacts")):n&&s(n)},[e,n]),m.useEffect(()=>{if(i!=="artifacts"||e!==null&&e!==""||t.length===0)return;const c=t[t.length-1];c&&a(d=>d&&t.some(h=>vd(d,h.path))?d:c.path)},[t,e,i]);const o=m.useCallback(c=>{s(c)},[]);return m.useEffect(()=>(E.setState({fileBrowserSelectedPath:r}),()=>{E.setState({fileBrowserSelectedPath:null})}),[r]),{activeTab:i,selectedFilePath:r,setActiveTab:o,setSelectedFilePath:a}}const $0=960;function pA(t,e){return t?e?"absolute inset-0 z-[100] flex min-h-0 flex-col overflow-hidden bg-white shadow-xl":"fixed inset-0 z-[100] flex h-screen min-h-0 w-screen flex-col overflow-hidden bg-white shadow-xl":"flex h-full min-h-0 w-full flex-col bg-white"}function OA({artifacts:t,projectPath:e,threadId:n,onClose:i,fullScreenContainerRef:s}){const r=E(A=>A.fileBrowserInitialPath),a=E(A=>A.fileBrowserInitialTab),o=E(A=>A.openFileBrowserPanel);m.useEffect(()=>{(r||a)&&o()},[r,a,o]);const{activeTab:c,selectedFilePath:d,setActiveTab:u,setSelectedFilePath:h}=fA(t,r),{entries:f}=Rx(c==="workspace"?e:""),p=m.useRef(null),[O,g]=m.useState(!1),[x,b]=m.useState(!1),y=s!=null;m.useEffect(()=>{const A=p.current;if(!A)return;const $=new ResizeObserver(N=>{var z;const R=((z=N[0])==null?void 0:z.contentRect.width)??A.offsetWidth;g(R<$0)});return $.observe(A),g(A.offsetWidth<$0),()=>$.disconnect()},[]);const S=(()=>{if(!d)return null;const A=t.find(N=>vd(d,N.path));if(A)return A;const $=f.find(N=>N.path===d);return $&&!$.isDirectory?{name:$.name||xd($.path),path:$.path,kind:vo($.path,$.name)}:null})(),P=m.useCallback(A=>h(A),[h]),w=e&&e!=="default"?e:"",C=m.useCallback(async()=>{if(!S||S.isVirtual)return;const A=jx(S.path);await Ax(A,w||void 0)},[w,S]),Q=m.useCallback(()=>{b(A=>!A)},[]),T=c==="artifacts"||c==="workspace";return l.jsxs("div",{ref:p,className:pA(x,y),children:[l.jsx(oA,{activeTab:c,onTabChange:u,onClose:i,showFileActions:T,canOpenFolder:!!S&&!S.isVirtual,isFullScreen:x,onOpenFolder:C,onToggleFullscreen:Q}),c==="tasks"?l.jsx(hA,{}):l.jsxs("div",{className:"flex min-h-0 flex-1",children:[l.jsx(iA,{isNarrow:O,activeTab:c,artifacts:t,projectPath:e,selectedFilePath:d,onSelect:P}),l.jsx(nA,{isNarrow:O,selectedFile:S,artifacts:t,threadId:n,projectPath:e,activeTab:c,onSelectFile:P,onClose:i})]})]})}function mA(t,e){const[n,i]=m.useState(e),s=m.useRef(e);s.current=e;const r=m.useRef(t);r.current=t,m.useEffect(()=>{try{const c=localStorage.getItem(t);if(c!==null){const d=Number(c);Number.isFinite(d)&&i(d)}}catch{}},[t]);const a=m.useCallback(c=>{i(d=>{const u=typeof c=="function"?c(d):c;try{localStorage.setItem(r.current,String(u))}catch{}return u})},[]),o=m.useCallback(()=>{const c=s.current;i(c);try{localStorage.setItem(r.current,String(c))}catch{}},[]);return[n,a,o]}function Ix({direction:t,onResize:e,onDoubleClick:n}){const[i,s]=m.useState(!1),r=m.useRef(0),a=m.useCallback(c=>{c.preventDefault(),s(!0),r.current=t==="horizontal"?c.clientX:c.clientY},[t]);m.useEffect(()=>{if(!i)return;const c=u=>{const h=t==="horizontal"?u.clientX:u.clientY,f=h-r.current;f!==0&&(e(f),r.current=h)},d=()=>s(!1);return document.addEventListener("mousemove",c),document.addEventListener("mouseup",d),()=>{document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",d)}},[i,t,e]);const o=t==="horizontal";return l.jsx("div",{role:"separator","aria-orientation":o?"vertical":"horizontal",onMouseDown:a,onDoubleClick:n,className:`flex-shrink-0 group relative ${o?"w-[5px] cursor-col-resize border-l border-[#e5e7eb] hover:border-cocreator-primary/40 hover:bg-cocreator-primary/10 active:bg-cocreator-primary/20":"h-[5px] cursor-row-resize border-t border-[#e5e7eb] hover:border-cocreator-primary/40 hover:bg-cocreator-primary/10 active:bg-cocreator-primary/20"} ${i?"bg-cocreator-primary/20 border-cocreator-primary/40":""} transition-colors`,children:l.jsx("div",{className:`absolute ${o?"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-0.5 h-8 rounded-full":"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 h-0.5 w-8 rounded-full"} bg-transparent group-hover:bg-cocreator-primary/50 transition-colors ${i?"bg-cocreator-primary/50":""}`})})}const Fi="office-claw:documentPreviewPanelWidth",gA="cat-cafe:pptStudioPanelWidth",xA="cat-cafe:pptStudioPanelWidthV2",j0="cat-cafe:documentPreviewPanelWidth",bA=720,yo=432,A0=1600,yA=1320,vA=Cd+yo+40;function SA(t,e){const n=t.pptStudioSessions??{},i=t.activePptPagesDir?n[t.activePptPagesDir]:null;if(i&&i.threadId===e)return i;const s=Object.values(n).filter(r=>r.threadId===e);return s[s.length-1]??null}function wA(t){var e;if(t!=null&&t.pagesDir&&(e=t.projectRoot)!=null&&e.trim())return{projectRoot:t.projectRoot.trim(),pagesDir:t.pagesDir,...t.deckTitle?{deckTitle:t.deckTitle}:{}}}function oa(t,e){if(e<=0)return Math.min(A0,Math.max(yo,t));const n=Math.max(0,e-Cd),i=Math.min(A0,n);return Math.max(yo,Math.min(t,i))}function kA(){if(!(typeof window>"u"))try{if(localStorage.getItem(Fi)!==null)return;const t=localStorage.getItem(j0);if(t!==null){localStorage.setItem(Fi,t);try{localStorage.removeItem(j0)}catch{}return}const e=localStorage.getItem(xA);if(e!==null){localStorage.setItem(Fi,e);return}const n=localStorage.getItem(gA);if(n===null)return;const i=Number(n);if(!Number.isFinite(i)||i===yA)return;localStorage.setItem(Fi,String(i))}catch{}}function QA(t){return E(e=>SA(e,t))}function CA(t){return m.useMemo(()=>wA(t),[t])}function PA(t){const e=m.useRef(!1);typeof window<"u"&&!e.current&&(e.current=!0,kA());const[n,i]=mA(Fi,bA),[s,r]=m.useState(0),a=m.useRef(null);m.useEffect(()=>{if(typeof window>"u")return;const h=()=>r(window.innerWidth);return h(),window.addEventListener("resize",h),()=>window.removeEventListener("resize",h)},[r]);const o=(t==="pptStudio"||t==="fileBrowser"||t==="outlinePreview")&&s>0&&s<vA,c=m.useCallback(h=>{var f;return oa(h,((f=a.current)==null?void 0:f.clientWidth)??0)},[]),d=m.useCallback(h=>{i(f=>c(f-h))},[c,i]),u=m.useCallback(()=>{var p;const h=((p=a.current)==null?void 0:p.clientWidth)??0,f=oa(Math.round(h*.5),h);i(f)},[i]);return m.useEffect(()=>{if(t!=="pptStudio"&&t!=="fileBrowser"&&t!=="outlinePreview")return;const h=a.current;if(!h)return;const f=()=>{const O=h.clientWidth;if(!(O<=0)){try{if(localStorage.getItem(Fi)===null){const g=oa(Math.round(O*.5),O);i(g);return}}catch{}i(g=>oa(g,O))}};f();const p=new ResizeObserver(f);return p.observe(h),()=>p.disconnect()},[t,i]),{containerRef:a,pptStudioPaneWidth:o?void 0:t==="pptStudio"||t==="fileBrowser"||t==="outlinePreview"?c(n):void 0,isCompactPreviewLayout:o,handlePptStudioPanelResize:d,resetPptStudioPanelWidth:u}}function TA({rightPanelMode:t,pptStudioPaneWidth:e,isCompactPreviewLayout:n=!1,onResize:i,onReset:s,fullScreenContainerRef:r,artifacts:a=[],projectPath:o="",threadId:c="",onCloseFileBrowser:d}){const u=E(x=>x.setRightPanelMode);if(t==="status")return null;const h=t==="fileBrowser"||t==="pptStudio",f=h,p=h?"file-browser-secondary-pane":void 0,O=d??(()=>u("status"));return l.jsxs(l.Fragment,{children:[f?l.jsx("div",{"data-testid":"file-browser-pane-resizer",className:"flex shrink-0",children:n?null:l.jsx(Ix,{direction:"horizontal",onResize:i,onDoubleClick:s})}):null,l.jsx("aside",{"data-testid":p,className:f?n?"flex min-h-0 min-w-0 flex-1 overflow-hidden":"flex min-h-0 min-w-0 shrink-0 overflow-hidden":"hidden xl:flex min-h-0 min-w-0 overflow-hidden",style:e?{width:`${e}px`,flexShrink:0,flexGrow:0,flexBasis:`${e}px`,minWidth:`${yo}px`,maxWidth:`${e}px`}:void 0,children:h?l.jsx(OA,{artifacts:a,projectPath:o,threadId:c,onClose:O,fullScreenContainerRef:r}):null})]})}const $A="outline_confirm",jA="outline_use_edited";function AA({active:t,fullScreenContainerRef:e,pendingQuestion:n,onSubmit:i}){const[s,r]=m.useState(t.isConfirmed?"confirmed":"pending"),[a,o]=m.useState(null),c=m.useRef(null),d=E(x=>x.updateOutlinePreviewText),u=E(x=>x.setOutlinePreviewMode),h=E(x=>x.closeOutlinePreview),f=E(x=>x.currentThreadId),p=E(x=>x.setOutlinePreviewConfirmed);m.useEffect(()=>{t.isConfirmed&&r("confirmed")},[t.isConfirmed]),m.useEffect(()=>{n&&t&&n.requestId!==t.requestId&&(console.warn("[OutlinePreviewPanel] requestId mismatch:",{pendingRequestId:n.requestId,activeRequestId:t.requestId}),h())},[n,t,h]),m.useEffect(()=>{t&&t.threadId!==f&&(console.warn("[OutlinePreviewPanel] threadId mismatch, auto-closing:",{activeThreadId:t.threadId,currentThreadId:f}),h())},[t,f,h]),m.useEffect(()=>{var x;t.panelMode==="edit"&&((x=c.current)==null||x.focus())},[t.panelMode]);const O=m.useCallback(()=>{var S;if(o(null),!n){o("缺少问题数据,无法提交");return}if(n.requestId!==t.requestId){o("请求 ID 不匹配,请刷新页面");return}if(!((S=n.questions[0])!=null&&S.question)){o("问题内容缺失");return}const x=t.editedText.trim()!==t.initialText.trim(),b=x?jA:$A,y=x?t.editedText.trim():null;if(x&&!y){o("编辑内容不能为空");return}r("confirmed"),p(!0),setTimeout(()=>{var P;i({request_id:t.requestId,source:t.source,answers:[{question:((P=n==null?void 0:n.questions[0])==null?void 0:P.question)??"",selected_options:[b],custom_input:y}]}),h()},1200)},[t,n,i,h,p]),g=m.useCallback(x=>{d(x.target.value)},[d]);return l.jsx(tO,{panelTestId:"outline-preview-panel",title:t.title,fullScreenContainerRef:e,onRequestClose:h,hideBorderLeft:!0,headerActions:s==="pending"?l.jsxs("div",{className:"flex items-center",children:[l.jsx("button",{type:"button",onClick:()=>u("preview"),className:`flex h-6 w-6 items-center justify-center rounded transition-colors ${t.panelMode==="preview"?"border border-black":"bg-gray-100 hover:bg-gray-200"}`,title:"预览","aria-label":"预览模式",children:l.jsx("img",{src:"/icons/eye.svg",alt:"","aria-hidden":"true",className:`w-[14px] h-[14px] ${t.panelMode==="preview"?"brightness-0":"brightness-0 opacity-0.4"}`})}),l.jsx("button",{type:"button",onClick:()=>u("edit"),className:`flex h-6 w-6 items-center justify-center rounded transition-colors ${t.panelMode==="edit"?"border border-black":"bg-gray-100 hover:bg-gray-200"}`,title:"编辑","aria-label":"编辑模式",children:l.jsx("img",{src:"/icons/edit.svg",alt:"","aria-hidden":"true",className:`w-[14px] h-[14px] ${t.panelMode==="edit"?"brightness-0":"brightness-0 opacity-0.4"}`})}),l.jsx("div",{className:"w-2"}),l.jsx(Ft,{variant:"default",size:"sm",onClick:O,"data-testid":"outline-preview-panel-confirm",children:"确认大纲"})]}):l.jsx(Ft,{variant:"default",size:"sm",disabled:!0,children:"已确认"}),children:l.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[a&&l.jsx("div",{className:"px-4 pt-2 text-sm text-red-500","data-testid":"outline-preview-panel-error",children:a}),l.jsx("div",{className:"min-h-0 flex-1 overflow-auto px-4 py-3","data-testid":"outline-preview-panel-content",children:t.panelMode==="preview"?l.jsx(eO,{source:t.editedText,className:"text-sm"}):l.jsx("textarea",{ref:c,value:t.editedText,onChange:g,className:"ui-textarea block h-full min-h-0 w-full resize-none overflow-y-auto text-sm leading-relaxed border-none focus:outline-none",placeholder:"请编辑大纲内容...","data-testid":"outline-preview-panel-textarea"})})]})})}const N0=360;function NA({fullScreenContainerRef:t,previewPaneWidth:e,isCompactPreviewLayout:n=!1,onResize:i,onReset:s}){const r=E(u=>u.activeOutlinePreview),a=E(u=>u.currentThreadId),{pendingQuestion:o,submitAnswer:c}=CO(a);if(!r)return null;const d=async u=>{await c(u)};return l.jsxs(l.Fragment,{children:[n?null:l.jsx("div",{"data-testid":"outline-preview-pane-resizer",className:"flex shrink-0",children:l.jsx(Ix,{direction:"horizontal",onResize:i,onDoubleClick:s})}),l.jsx("aside",{"data-testid":"outline-preview-secondary-pane",className:n?"flex min-h-0 min-w-0 flex-1 overflow-hidden":"flex min-h-0 min-w-0 shrink-0 overflow-hidden",style:!n&&e?{width:`${e}px`,flexShrink:0,flexGrow:0,flexBasis:`${e}px`,minWidth:`${N0}px`,maxWidth:`${e}px`}:n?{minWidth:`${N0}px`}:void 0,children:l.jsx("div",{className:"flex h-full min-h-0 w-full min-w-0",children:l.jsx(AA,{active:r,fullScreenContainerRef:t,pendingQuestion:o,onSubmit:d})})})]})}const R0="office-claw:chat-layout-changed";function RA(t,e){return t.scrollHeight-t.clientHeight-t.scrollTop<=e}function _A({scrollContainerRef:t,messagesEndRef:e,thresholdPx:n=120,recomputeSignal:i}){const[s,r]=m.useState(!1),a=m.useCallback(()=>{const d=t.current;d&&r(!RA(d,n))},[t,n]);m.useEffect(()=>{const d=t.current;if(d)return a(),d.addEventListener("scroll",a,{passive:!0}),window.addEventListener("resize",a),()=>{d.removeEventListener("scroll",a),window.removeEventListener("resize",a)}},[t,a]),m.useEffect(()=>{if(typeof window>"u")return;const d=t.current,u=e.current;if(!d||!u||typeof window.IntersectionObserver!="function")return;const h=new window.IntersectionObserver(([f])=>{f&&r(!f.isIntersecting)},{root:d,threshold:0,rootMargin:`0px 0px ${n}px 0px`});return h.observe(u),()=>h.disconnect()},[t,e,n]),m.useEffect(()=>{const d=()=>a();return window.addEventListener(R0,d),()=>window.removeEventListener(R0,d)},[a]),m.useEffect(()=>{a()},[a,i]);const o=m.useCallback(()=>{var d;(d=e.current)==null||d.scrollIntoView({behavior:"smooth"})},[e]),c=m.useMemo(()=>"absolute bottom-2 right-8 z-10 w-8 h-8 left-1/2 -translate-x-4 rounded-full border border-gray-200 bg-white shadow-md flex items-center justify-center text-xs text-gray-700 hover:bg-white hover:border-gray-300 transition-colors",[]);return s?l.jsx("button",{type:"button","aria-label":"到最新",className:c,onClick:o,title:"跳到对话底部",children:l.jsxs("svg",{viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",width:"16.000000",height:"16.000000",fill:"none",children:[l.jsx("rect",{id:"svg",width:"16.000000",height:"16.000000",x:"0.000000",y:"0.000000"}),l.jsxs("g",{id:"ic_public_sort_down-向下/model/border/ic_public_sort_down1",children:[l.jsx("path",{id:"path1",d:"M0.00182263 7.49389C0.00182263 6.3222 -0.00227829 5.1505 0.00182263 3.97881C-0.000534654 3.41183 0.0691532 2.84684 0.209212 2.29743C0.516196 1.13452 1.2737 0.444393 2.43543 0.176661C3.01794 0.0508048 3.61291 -0.00816143 4.20879 0.000906865C6.45571 0.000906865 8.70282 0.000906865 10.9501 0.000906865C11.5177 -0.00261629 12.0836 0.0622952 12.6356 0.194236C13.8325 0.48716 14.5507 1.24525 14.8243 2.43803C14.9473 3.00176 15.0061 3.57761 14.9995 4.15456C14.9995 6.4257 14.9995 8.69703 14.9995 10.9686C15.0026 11.5306 14.9379 12.091 14.8068 12.6376C14.5138 13.8351 13.7522 14.5498 12.5594 14.8234C11.9769 14.9488 11.382 15.0078 10.7861 14.9992C8.54855 14.9992 6.3112 14.9992 4.07404 14.9992C3.50215 15.0039 2.93176 14.9399 2.37509 14.8088C1.17293 14.5159 0.451167 13.7543 0.178163 12.5556C0.038731 11.9463 0.00182263 11.3353 0.00182263 10.719C0.00182263 9.64415 0.00182263 8.56912 0.00182263 7.49389Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"nonzero"}),l.jsx("path",{id:"path1",d:"M0.00182263 3.97881C-0.000534654 3.41183 0.0691532 2.84684 0.209212 2.29743C0.516196 1.13452 1.2737 0.444393 2.43543 0.176661C3.01794 0.0508048 3.61291 -0.00816143 4.20879 0.000906865C6.45571 0.000906865 8.70282 0.000906865 10.9501 0.000906865C11.5177 -0.00261629 12.0836 0.0622952 12.6356 0.194236C13.8325 0.48716 14.5507 1.24525 14.8243 2.43803C14.9473 3.00176 15.0061 3.57761 14.9995 4.15456C14.9995 6.4257 14.9995 8.69703 14.9995 10.9686C15.0026 11.5306 14.9379 12.091 14.8068 12.6376C14.5138 13.8351 13.7522 14.5498 12.5594 14.8234C11.9769 14.9488 11.382 15.0078 10.7861 14.9992C8.54855 14.9992 6.3112 14.9992 4.07404 14.9992C3.50215 15.0039 2.93176 14.9399 2.37509 14.8088C1.17293 14.5159 0.451167 13.7543 0.178163 12.5556C0.038731 11.9463 0.00182263 11.3353 0.00182263 10.719C0.00182263 9.64415 0.00182263 8.56912 0.00182263 7.49389C0.00182263 6.3222 -0.00227829 5.1505 0.00182263 3.97881Z",fillRule:"nonzero",stroke:"rgb(255,255,255)",strokeOpacity:"0",strokeWidth:"1"}),l.jsx("path",{id:"path2",d:"M0.00182263 7.49389C0.00182263 6.3222 -0.00227829 5.1505 0.00182263 3.97881C-0.000534654 3.41183 0.0691532 2.84684 0.209212 2.29743C0.516196 1.13452 1.2737 0.444393 2.43543 0.176661C3.01794 0.0508048 3.61291 -0.00816143 4.20879 0.000906865C6.45571 0.000906865 8.70282 0.000906865 10.9501 0.000906865C11.5177 -0.00261629 12.0836 0.0622952 12.6356 0.194236C13.8325 0.48716 14.5507 1.24525 14.8243 2.43803C14.9473 3.00176 15.0061 3.57761 14.9995 4.15456C14.9995 6.4257 14.9995 8.69703 14.9995 10.9686C15.0026 11.5306 14.9379 12.091 14.8068 12.6376C14.5138 13.8351 13.7522 14.5498 12.5594 14.8234C11.9769 14.9488 11.382 15.0078 10.7861 14.9992C8.54855 14.9992 6.3112 14.9992 4.07404 14.9992C3.50215 15.0039 2.93176 14.9399 2.37509 14.8088C1.17293 14.5159 0.451167 13.7543 0.178163 12.5556C0.038731 11.9463 0.00182263 11.3353 0.00182263 10.719C0.00182263 9.64415 0.00182263 8.56912 0.00182263 7.49389Z",opacity:"0.200000003",fill:"rgb(0,0,0)",fillOpacity:"0",fillRule:"nonzero"}),l.jsx("path",{id:"path2",d:"M0.00182263 3.97881C-0.000534654 3.41183 0.0691532 2.84684 0.209212 2.29743C0.516196 1.13452 1.2737 0.444393 2.43543 0.176661C3.01794 0.0508048 3.61291 -0.00816143 4.20879 0.000906865C6.45571 0.000906865 8.70282 0.000906865 10.9501 0.000906865C11.5177 -0.00261629 12.0836 0.0622952 12.6356 0.194236C13.8325 0.48716 14.5507 1.24525 14.8243 2.43803C14.9473 3.00176 15.0061 3.57761 14.9995 4.15456C14.9995 6.4257 14.9995 8.69703 14.9995 10.9686C15.0026 11.5306 14.9379 12.091 14.8068 12.6376C14.5138 13.8351 13.7522 14.5498 12.5594 14.8234C11.9769 14.9488 11.382 15.0078 10.7861 14.9992C8.54855 14.9992 6.3112 14.9992 4.07404 14.9992C3.50215 15.0039 2.93176 14.9399 2.37509 14.8088C1.17293 14.5159 0.451167 13.7543 0.178163 12.5556C0.038731 11.9463 0.00182263 11.3353 0.00182263 10.719C0.00182263 9.64415 0.00182263 8.56912 0.00182263 7.49389C0.00182263 6.3222 -0.00227829 5.1505 0.00182263 3.97881Z",opacity:"0.200000003",fillRule:"nonzero",stroke:"rgb(255,255,255)",strokeOpacity:"0",strokeWidth:"1"}),l.jsx("circle",{id:"path3",cx:"8",cy:"8",r:"8",fill:"rgb(255,255,255)",fillOpacity:"0"}),l.jsx("circle",{id:"path3",cx:"8",cy:"8",r:"8",stroke:"rgb(0,0,0)",strokeOpacity:"0",strokeWidth:"1"}),l.jsx("path",{id:"path4",d:"M2 9.18268L7.8345 15L13.6667 9.18384M7.8345 15L7.8345 1",stroke:"rgb(25,25,25)",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1"}),l.jsx("path",{id:"path5",d:"M8.16786 1C8.35196 1 8.50119 1.14927 8.50117 1.33336L8.49967 14.531L13.7646 9.28115C13.885 9.16115 14.074 9.15217 14.2047 9.25402C14.3347 9.38438 14.3657 9.62321 14.2354 9.7532L8.40321 15.5694C8.37319 15.5993 8.33889 15.6223 8.30228 15.6385L8.26497 15.6523L8.22656 15.6615L8.1875 15.6661L8.14821 15.6661L8.11433 15.662L8.072 15.6523C8.02517 15.6356 7.96541 15.6035 7.93094 15.569L2.09798 9.75206C1.97764 9.63208 1.96812 9.44301 2.0696 9.3121C2.19958 9.18173 2.43832 9.14998 2.56869 9.27996L7.83333 14.529L7.8345 1.33331C7.83452 1.16236 7.96321 1.02148 8.12899 1.00224L8.16786 1Z",fill:"rgb(255,255,255)",fillOpacity:"0",fillRule:"nonzero"}),l.jsx("path",{id:"path5",d:"M8.50117 1.33336L8.49967 14.531L13.7646 9.28115C13.885 9.16115 14.074 9.15217 14.2047 9.25402C14.3347 9.38438 14.3657 9.62321 14.2354 9.7532L8.40321 15.5694C8.37319 15.5993 8.33889 15.6223 8.30228 15.6385L8.26497 15.6523L8.22656 15.6615L8.1875 15.6661L8.14821 15.6661L8.11433 15.662L8.072 15.6523C8.02517 15.6356 7.96541 15.6035 7.93094 15.569L2.09798 9.75206C1.97764 9.63208 1.96812 9.44301 2.0696 9.3121C2.19958 9.18173 2.43832 9.14998 2.56869 9.27996L7.83333 14.529L7.8345 1.33331C7.83452 1.16236 7.96321 1.02148 8.12899 1.00224L8.16786 1C8.35196 1 8.50119 1.14927 8.50117 1.33336Z",fillRule:"nonzero",stroke:"rgb(255,255,255)",strokeOpacity:"0",strokeLinejoin:"round",strokeWidth:"1"})]})]})}):null}function MA({className:t="w-5 h-5"}){return l.jsxs("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:t,children:[l.jsx("path",{d:"M12 15C15 15 17.5 17 17.5 19.5C17.5 21 16 22.5 12 22.5C8 22.5 6.5 21 6.5 19.5C6.5 17 9 15 12 15Z"}),l.jsx("ellipse",{cx:"6",cy:"11.5",rx:"2.5",ry:"3"}),l.jsx("ellipse",{cx:"12",cy:"10",rx:"3",ry:"3.5"}),l.jsx("ellipse",{cx:"18",cy:"11.5",rx:"2.5",ry:"3"})]})}function Lx(t){const e=Object.values(t);return e.length===0?"idle":e.some(n=>n==="error")?"error":e.some(n=>n==="streaming"||n==="pending")?"working":e.some(n=>n==="done")?"done":"idle"}const EA=40,IA=160,LA=300;function XA({onAssignToPane:t}){const{threads:e,splitPaneThreadIds:n,getThreadState:i}=E(),s=new Set(n),[r,a]=m.useState(IA),o=m.useRef(!1),c=m.useRef(null);m.useEffect(()=>()=>{var p;(p=c.current)==null||p.call(c)},[]);const d=e.filter(p=>p.id!=="default"&&!s.has(p.id)),u=e.filter(p=>s.has(p.id)),h=r<80,f=m.useCallback(p=>{p.preventDefault(),o.current=!0;const O=p.clientX,g=r,x=y=>{if(!o.current)return;const S=y.clientX-O;a(Math.min(LA,Math.max(EA,g+S)))},b=()=>{o.current=!1,document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",b),c.current=null};document.addEventListener("mousemove",x),document.addEventListener("mouseup",b),c.current=()=>{document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",b)}},[r]);return l.jsxs("aside",{className:"relative flex-shrink-0 border-r border-cocreator-light bg-white flex flex-col h-full",style:{width:r},children:[l.jsxs("div",{className:"flex-1 overflow-y-auto py-2 px-1 space-y-0.5",children:[u.length>0&&l.jsx("div",{className:"px-1 mb-1",children:l.jsx("span",{className:"text-[9px] text-gray-400 uppercase tracking-wider",children:h?"":"窗格中"})}),u.map(p=>l.jsx(_0,{thread:p,isInPane:!0,isCollapsed:h,getThreadState:i},p.id)),u.length>0&&d.length>0&&l.jsx("div",{className:"mx-1 border-t border-gray-200 my-1.5"}),d.length>0&&l.jsx("div",{className:"px-1 mb-1",children:l.jsx("span",{className:"text-[9px] text-gray-400 uppercase tracking-wider",children:h?"":"可添加"})}),d.map(p=>l.jsx(_0,{thread:p,isCollapsed:h,getThreadState:i,onClick:()=>t(p.id)},p.id))]}),l.jsx("div",{className:"absolute top-0 right-0 w-1.5 h-full cursor-col-resize hover:bg-cocreator-primary/20 active:bg-cocreator-primary/30 transition-colors",onMouseDown:f})]})}function _0({thread:t,isInPane:e,isCollapsed:n,getThreadState:i,onClick:s}){const r=i(t.id),a=Lx(r.agentStatuses),o=a==="error"?"bg-red-400":a==="working"?"bg-amber-400 animate-pulse":a==="done"?"bg-green-400":"",c=t.participants[0],d=U2(t.title??t.id,t.id);return l.jsxs("button",{onClick:s,className:`relative w-full flex items-center gap-2 rounded-md px-1.5 py-1.5 text-left transition-colors ${e?"bg-cocreator-bg/60":"hover:bg-gray-100"} ${s?"cursor-pointer":"cursor-default"}`,title:d,children:[l.jsxs("div",{className:"relative flex-shrink-0 w-6 h-6 flex items-center justify-center",children:[c?l.jsx(ko,{agentId:c,size:20}):l.jsx("span",{className:"text-xs font-medium text-gray-500",children:d.charAt(0).toUpperCase()}),o&&l.jsx("span",{className:`absolute -top-0.5 -right-0.5 w-2 h-2 rounded-full ${o}`})]}),!n&&l.jsx("span",{className:"text-xs text-gray-700 truncate flex-1 min-w-0",children:d}),r.unreadCount>0&&l.jsx("span",{className:`text-[8px] ${r.hasUserMention?"bg-red-500":"bg-amber-500"} text-white rounded-full min-w-[14px] px-0.5 text-center leading-3 flex-shrink-0`,children:r.unreadCount>9?"9+":r.unreadCount})]})}function ZA({msg:t}){const e=t.type==="user"&&!t.agentId;return l.jsxs("div",{className:`flex gap-1.5 ${e?"justify-end":""}`,children:[!e&&t.agentId&&l.jsx(ko,{agentId:t.agentId,size:16}),l.jsxs("p",{className:`text-xs leading-relaxed truncate max-w-[90%] px-2 py-1 rounded-lg ${e?"bg-cocreator-bg text-cafe-black":"bg-gray-50 text-gray-700"} ${t.isStreaming?"opacity-70":""}`,children:[t.content.slice(0,120),t.content.length>120?"...":"",t.isStreaming&&l.jsx("span",{className:"animate-pulse ml-1",children:"|"})]})]})}function DA({threadId:t,threadTitle:e,threadState:n,isSelected:i,onSelect:s,onDoubleClick:r}){const a=Lx(n.agentStatuses),o=m.useMemo(()=>n.messages.slice(-5),[n.messages]),c=a==="error"?"text-red-500":a==="working"?"text-amber-500":a==="done"?"text-green-500":"text-gray-400";return l.jsxs("div",{className:`flex flex-col rounded-lg border-2 transition-colors cursor-pointer overflow-hidden ${i?"border-cocreator-primary shadow-sm":"border-gray-200 hover:border-gray-300"}`,onClick:()=>s(t),onDoubleClick:()=>r(t),children:[l.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-1.5 bg-gray-50 border-b border-gray-100 flex-shrink-0",children:[l.jsx("span",{className:`text-xs ${c}`,children:a!=="idle"?"●":""}),l.jsx("span",{className:"text-xs font-medium text-gray-700 truncate flex-1",children:e}),n.isLoading&&l.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-400 animate-pulse"}),n.unreadCount>0&&l.jsx("span",{className:"text-[9px] bg-amber-500 text-white rounded-full px-1 min-w-[14px] text-center",children:n.unreadCount>99?"99+":n.unreadCount})]}),l.jsx("div",{className:"flex-1 overflow-y-auto p-2 space-y-1.5 min-h-0",children:o.length===0?l.jsx("div",{className:"flex items-center justify-center h-full",children:l.jsx("span",{className:"text-xs text-gray-300",children:"无消息"})}):o.map(d=>l.jsx(ZA,{msg:d},d.id))})]})}function qA({index:t}){return l.jsxs("div",{className:"flex flex-col items-center justify-center rounded-lg border-2 border-dashed border-gray-200 transition-colors",children:[l.jsx("span",{className:"text-2xl text-gray-200 mb-1",children:"+"}),l.jsxs("span",{className:"text-xs text-gray-400",children:["窗格 ",t+1]}),l.jsx("span",{className:"text-[10px] text-gray-300 mt-0.5",children:"点击左侧 thread 分配到此处"})]})}const WA=4;function zA({onSend:t,onStop:e,uploadStatus:n,uploadError:i,onZoomToThread:s}){var S,P;const{threads:r,splitPaneThreadIds:a,splitPaneTargetId:o,setSplitPaneTarget:c,setSplitPaneThreadIds:d,getThreadState:u}=E(),h=new Map;for(const w of r)h.set(w.id,w);const f=m.useMemo(()=>{const w=[];for(let C=0;C<WA;C++)w.push(a[C]??null);return w},[a]),p=m.useCallback(w=>c(w),[c]),O=m.useCallback(w=>s(w),[s]),g=m.useCallback(w=>{if(a.includes(w))return;const C=[...a],Q=f.indexOf(null);if(Q>=0){for(;C.length<=Q;)C.push("");C[Q]=w}else{const T=o?f.indexOf(o):0,A=T>=0?T:0;C[A]=w}d(C.filter(Boolean)),c(w)},[a,o,f,d,c]),x=o?u(o):null,b=(x==null?void 0:x.hasActiveInvocation)??!1,y=m.useCallback(()=>{const w=o??a[0];w?s(w):E.getState().setViewMode("single")},[o,a,s]);return l.jsxs("div",{className:"flex flex-col h-screen h-dvh",children:[l.jsxs("header",{className:"border-b border-cocreator-light px-5 py-3 bg-cocreator-bg flex items-center gap-2 flex-shrink-0",children:[l.jsx(MA,{className:"w-6 h-6 text-cocreator-primary"}),l.jsxs("div",{className:"flex-1 min-w-0",children:[l.jsx("h1",{className:"text-lg font-bold text-cafe-black",children:"OfficeClaw"}),l.jsx("p",{className:"text-xs text-gray-500",children:"分屏模式"})]}),l.jsx("span",{className:"text-[10px] text-gray-400 hidden sm:inline mr-1",children:"⌘\\ 切换"}),l.jsx("button",{onClick:y,className:"p-1 rounded-lg hover:bg-cocreator-light transition-colors","aria-label":"切换单屏模式",title:"返回单屏",children:l.jsx("svg",{className:"w-5 h-5 text-gray-500",viewBox:"0 0 20 20",fill:"currentColor",children:l.jsx("rect",{x:"2",y:"2",width:"16",height:"16",rx:"2"})})})]}),l.jsxs("div",{className:"flex flex-1 min-h-0",children:[l.jsx(XA,{onAssignToPane:g}),l.jsxs("div",{className:"flex flex-col flex-1 min-w-0",children:[l.jsx("div",{className:"flex-1 grid grid-cols-2 grid-rows-2 gap-2 p-2 min-h-0",children:f.map((w,C)=>{if(!w)return l.jsx(qA,{index:C},`empty-${C}`);const Q=h.get(w);return l.jsx(DA,{threadId:w,threadTitle:(Q==null?void 0:Q.title)??"未命名会话",threadState:u(w),isSelected:o===w,onSelect:p,onDoubleClick:O},w)})}),l.jsxs("div",{className:"border-t border-cocreator-light bg-white px-3 py-2",children:[l.jsx("div",{className:"flex items-center gap-2 mb-1",children:l.jsx("span",{className:"text-[10px] text-gray-400",children:o?`发往: ${((S=h.get(o))==null?void 0:S.title)??o}`:"请选择一个窗格"})}),l.jsx(rO,{threadId:o??void 0,onSend:(w,C,Q,T,A)=>t(w,C,o??void 0,Q,T,A),onStop:()=>e(o??void 0),disabled:!o,activeWorkspacePath:((P=h.get(o??""))==null?void 0:P.projectPath)??null,hasActiveInvocation:b,uploadStatus:n,uploadError:i},o??"no-target")]})]})]})]})}function M0(t){const e=Math.floor(t/1e3),n=Math.floor(e/60),i=e%60;return n>0?`${n}m ${i}s`:`${i}s`}function BA({className:t,style:e}){return l.jsxs("svg",{className:t,style:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[l.jsx("line",{x1:"10",x2:"14",y1:"2",y2:"2"}),l.jsx("line",{x1:"12",x2:"12",y1:"14",y2:"10"}),l.jsx("circle",{cx:"12",cy:"14",r:"8"})]})}function VA({className:t,style:e}){return l.jsxs("svg",{className:t,style:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[l.jsx("path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"}),l.jsx("line",{x1:"12",x2:"12",y1:"9",y2:"13"}),l.jsx("line",{x1:"12",x2:"12.01",y1:"17",y2:"17"})]})}function FA({className:t}){return l.jsx("svg",{className:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("rect",{width:"18",height:"18",x:"3",y:"3",rx:"2"})})}function UA({onCancel:t}={}){var h;const e=E(f=>f.targetAgents),n=E(f=>f.agentStatuses),i=E(f=>f.agentInvocations),s=E(f=>f.currentThreadId),{getAgentById:r}=Zn();if(e.length!==1)return null;const a=e[0],o=n[a]??"pending";if(o==="done")return null;const c=r(a),d=(c==null?void 0:c.displayName)??a,u=(h=i==null?void 0:i[a])==null?void 0:h.livenessWarning;if(o==="alive_but_silent"&&u){const f=M0(u.silenceDurationMs);return l.jsx("div",{"data-testid":"liveness-warning",className:"px-5 py-3 border-b",style:{backgroundColor:"#FFF8E7",borderColor:"#D4A64A33"},children:l.jsxs("div",{className:"flex items-center gap-2.5",children:[l.jsx(BA,{className:"w-4 h-4 animate-pulse",style:{color:"#D4A64A"}}),l.jsxs("div",{className:"flex flex-col gap-0.5",children:[l.jsxs("span",{className:"text-[13px] font-semibold",style:{color:"#1A1918"},children:[d," 静默等待中… ",f]}),l.jsx("span",{className:"text-xs",style:{color:"#6D6C6A"},children:u.state==="busy-silent"?"进程存活且 CPU 活跃,可能正在执行工具或等待 API 响应":"进程存活,等待响应中"})]})]})})}if(o==="suspected_stall"&&u){const f=M0(u.silenceDurationMs);return l.jsx("div",{"data-testid":"liveness-warning",className:"px-5 py-3 border-b",style:{backgroundColor:"#FFF0ED",borderColor:"#D0806833"},children:l.jsxs("div",{className:"flex items-center justify-between gap-3",children:[l.jsxs("div",{className:"flex items-center gap-2.5 min-w-0",children:[l.jsx(VA,{className:"w-4 h-4 flex-shrink-0",style:{color:"#D08068"}}),l.jsxs("div",{className:"flex flex-col gap-0.5 min-w-0",children:[l.jsxs("span",{className:"text-[13px] font-semibold",style:{color:"#1A1918"},children:[d," 可能卡住了 — ",f," 无输出"]}),l.jsx("span",{className:"text-xs",style:{color:"#6D6C6A"},children:u.state==="idle-silent"?"进程存活但 CPU 平坦,未检测到工具执行或 API 活动":"进程可能无响应"})]})]}),t&&s&&l.jsxs("button",{"data-testid":"cancel-btn",onClick:()=>t(s),className:"flex items-center gap-1.5 px-4 py-2 rounded-[10px] text-[13px] font-semibold text-white flex-shrink-0 transition-opacity hover:opacity-90",style:{backgroundColor:"#D08068"},children:[l.jsx(FA,{className:"w-3.5 h-3.5"}),"取消"]})]})})}return l.jsx("div",{className:"hidden px-5 py-2 border-b border-gray-200 bg-gray-50",children:l.jsxs("div",{className:"flex items-center gap-2",children:[l.jsx("span",{className:"text-base leading-none animate-pulse",role:"img","aria-label":"paw",children:"⏳"}),l.jsxs("span",{className:"text-sm text-gray-500",children:[d,o==="streaming"?"回复中...":"思考中..."]})]})})}function YA(){const t=E(c=>c.activeInvocations),e=E(c=>c.currentThreadId),{getAgentById:n}=Zn(),[,i]=m.useState(0),s=Object.values(t??{}).reduce((c,d)=>(c.some(u=>u.agentId===d.agentId)||c.push({agentId:d.agentId,startedAt:d.startedAt??Date.now()}),c),[]),r=m.useMemo(()=>{const c=new Map;for(const{agentId:d}of s){const u=n(d);u?c.set(d,{label:V0(u),color:u.color.primary}):c.set(d,{label:d,color:"#9B7EBD"})}return c},[s,n]);m.useEffect(()=>{if(s.length===0)return;const c=setInterval(()=>i(d=>d+1),1e3);return()=>clearInterval(c)},[s.length]);const a=m.useCallback(async c=>{e&&await G(`/api/threads/${e}/cancel/${c}`,{method:"POST"})},[e]),o=m.useCallback(async()=>{e&&await Promise.all(s.map(({agentId:c})=>a(c)))},[e,s,a]);return s.length===0?null:l.jsxs("div",{className:"chat-layout-rail hidden items-center gap-2 border-b border-[#9B7EBD]/10 py-1.5 text-xs",children:[l.jsx("span",{className:"text-gray-400 font-medium shrink-0",children:"执行中"}),s.map(({agentId:c,startedAt:d})=>{const u=r.get(c)??{label:c,color:"#9B7EBD"};return l.jsx(GA,{agentId:c,label:u.label,color:u.color,startedAt:d,onStop:a},c)}),s.length>1&&l.jsx("button",{type:"button",onClick:o,className:"ml-auto text-xs text-gray-400 hover:text-red-500 transition-colors shrink-0",children:"全部停止"})]})}function GA({agentId:t,label:e,color:n,startedAt:i,onStop:s}){const r=Math.floor((Date.now()-i)/1e3),a=Math.floor(r/60),o=r%60,c=`${a}:${o.toString().padStart(2,"0")}`;return l.jsxs("span",{className:"flex items-center gap-1.5 px-2 py-0.5 rounded-full bg-white/50",children:[l.jsx("span",{className:"w-1.5 h-1.5 rounded-full animate-pulse",style:{backgroundColor:n}}),l.jsx("span",{className:"text-gray-600 font-medium",children:e}),l.jsx("span",{className:"text-gray-400 tabular-nums",children:c}),l.jsx("button",{type:"button",onClick:()=>s(t),className:"ml-0.5 text-gray-400 hover:text-red-500 transition-colors","aria-label":`Stop ${t}`,children:l.jsx("svg",{className:"w-3 h-3",viewBox:"0 0 20 20",fill:"currentColor",children:l.jsx("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})})})]})}function E0(t){return!t.toolEvents||t.toolEvents.length===0?null:Math.max(t.timestamp,...t.toolEvents.map(e=>e.timestamp??t.timestamp))}function HA(t,e){const n=new Map,i=t.filter(s=>s.type==="assistant"&&!!s.agentId&&Array.isArray(s.toolEvents)&&s.toolEvents.length>0);for(const s of e){const r=i.filter(o=>o.agentId===s.agentId).sort((o,c)=>{if(o.isStreaming!==c.isStreaming)return o.isStreaming?-1:1;const d=Math.abs((E0(o)??o.timestamp)-s.createdAt),u=Math.abs((E0(c)??c.timestamp)-s.createdAt);return d!==u?d-u:c.timestamp-o.timestamp})[0];if(!r)continue;const a=n.get(r.id)??[];a.push(s),n.set(r.id,a)}return n}function KA(t){if(!t)return null;const e=t.replace(/[\\/]+$/,""),n=e.split(/[/\\]/).filter(Boolean);return n[n.length-1]??e??null}function JA(t){return!(t.type!=="user"&&t.type!=="assistant"||!t.content.trim()||t.type==="assistant"&&t.isStreaming||t.type==="user"&&t.agentId)}function eN(t){return l.jsx(tN,{threadId:t.threadId})}function tN({threadId:t}){var Zu;const{isDesktopHost:e,isMaximized:n}=Hx(),i=bd(),{messages:s,isLoading:r,hasActiveInvocation:a,intentMode:o,targetAgents:c,agentStatuses:d,agentInvocations:u,setCurrentThread:h,viewMode:f,setViewMode:p,clearUnread:O,confirmUnreadAck:g,armUnreadSuppression:x,consumePendingNewThreadSend:b}=E(),y=E(W=>W.uiThinkingExpandedByDefault),S=E(W=>W.threads),P=typeof window<"u"?new URLSearchParams(window.location.search):null,w=(P==null?void 0:P.get("export"))==="true",C=(P==null?void 0:P.get("research"))==="multi",{clearTasks:Q}=Fs(),{agents:T,getAgentById:A}=Zn(),$=m.useMemo(()=>{var fe;const W=T.find(Me=>{var Pt;return((Pt=Me.roster)==null?void 0:Pt.available)!==!1});return(W==null?void 0:W.id)??((fe=T[0])==null?void 0:fe.id)??""},[T]),N=E(W=>W.rightPanelMode??"status"),R=E(W=>W.openFileBrowserPanel),z=E(W=>W.pptStudioSessions),I=E(W=>W.activeOutlinePreview),B=QA(t),M=Fs(W=>(W.tasks??[]).filter(fe=>fe.threadId===t).length),L=m.useMemo(()=>Object.values(u??{}).some(W=>{var fe,Me;return(((Me=(fe=W.taskProgress)==null?void 0:fe.tasks)==null?void 0:Me.length)??0)>0}),[u]),F=m.useRef(!1);m.useEffect(()=>{if(!(M>0||L&&a)){F.current=!1;return}F.current||(F.current=!0,N==="status"&&R())},[M,a,L,R,N]);const[de,ce]=m.useState(!1),[ae,J]=m.useState(!1),[X,ne]=m.useState(null),{containerRef:ue,handlePptStudioPanelResize:je,pptStudioPaneWidth:ve,resetPptStudioPanelWidth:$e,isCompactPreviewLayout:Qe}=PA(N),{handleAgentMessage:H,handleStop:V,resetRefs:Y,resetRefsForThreadSwitch:le,resetTimeout:me,clearDoneTimeout:Ee}=jy(),{handleScroll:Ae,scrollContainerRef:De,messagesEndRef:Ie,scrollToBottom:Ye,followLayoutChangeIfPinned:Ve,isLoadingHistory:Ge,hasMore:v}=rv(t),{feedbackByMessageId:U,submitFeedback:_}=av(t),Z=E(W=>{var Wn;const fe=(Wn=W.threadStates)==null?void 0:Wn[t],Pt=((W.currentThreadId===t?W.queue:(fe==null?void 0:fe.queue)??[])??[]).filter(xs=>xs.status==="queued").length,qn=W.currentThreadId===t?W.queuePaused:(fe==null?void 0:fe.queuePaused)??!1;return`${Pt}:${qn?1:0}`}),{handleSend:te,uploadStatus:D,uploadError:he}=hv(t,{resetRefs:Y}),{pending:pe,respond:we,handleAuthRequest:xe,handleAuthResponse:be,clearPending:oe}=Ay(t),{pendingQuestion:ye,submitAnswer:He,handleQuestionRequest:xt,handleQuestionResponse:tt}=CO(t),Qt=m.useRef(new Set),Ct=CA(B),Zt=m.useCallback((W,fe,Me,Pt,qn,Wn)=>{const Cr=(!Me||Me===t)&&Ct?{...Wn,pptContext:Ct}:Wn;te(W,fe,Me,Pt,qn,Cr)},[Ct,te,t]);m.useEffect(()=>{const W=fe=>{const Me=fe.detail.text;Me&&(Ye("smooth"),Zt(Me))};return window.addEventListener("office-claw:interactive-send",W),()=>window.removeEventListener("office-claw:interactive-send",W)},[Zt,Ye]);const{addMessage:Cn}=E();m.useMemo(()=>{const W={total:s.length,assistant:0,system:0,evidence:0,followup:0};for(const fe of s)(fe.type==="assistant"||fe.type==="user"&&!!fe.agentId)&&W.assistant++,fe.type==="system"&&(W.system++,fe.variant==="evidence"&&W.evidence++,fe.variant==="a2a_followup"&&W.followup++);return W},[s]);const pi=E(W=>W.setCurrentProject),Ne=E(W=>W.threads),Ce=m.useRef(t),ke=m.useMemo(()=>{var W;return((W=Ne==null?void 0:Ne.find(fe=>fe.id===t))==null?void 0:W.projectPath)??null},[Ne,t]),j=m.useMemo(()=>KA(ke),[ke]);m.useEffect(()=>{Ce.current!==t&&(h(t),le(t),Q(),Ce.current=t),h(t)},[t,Q,le,h]),m.useEffect(()=>{typeof Ve=="function"&&Ve("auto")},[Ve,Z]),m.useEffect(()=>{if(typeof Ve!="function")return;const W=setTimeout(()=>{Ve("smooth")},150);return()=>clearTimeout(W)},[Ve,N]),m.useEffect(()=>{const W=Ne==null?void 0:Ne.find(fe=>fe.id===t);W&&pi(W.projectPath||"default")},[t,Ne,pi]);const lt=ov({threadId:t,userId:vi(),handleAgentMessage:H,resetTimeout:me,clearDoneTimeout:Ee,handleAuthRequest:xe,handleAuthResponse:be,handleAskUserQuestionRequest:xt,handleAskUserQuestionResponse:tt,onNavigateToThread:W=>i(`/thread/${W}`)}),K=m.useMemo(()=>HA(s,pe),[pe,s]),ge=m.useMemo(()=>I3(s),[s]),Te=m.useMemo(()=>{for(let W=s.length-1;W>=0;W-=1){const fe=s[W];if(fe&&JA(fe))return fe.id}return null},[s]);m.useEffect(()=>{const W=Qt.current,fe=pe.some(Me=>!W.has(Me.requestId));Qt.current=new Set(pe.map(Me=>Me.requestId)),fe&&Ve("smooth")},[pe,Ve]);const _e=m.useMemo(()=>{const W=s[s.length-1];return!W||W.type!=="user"||W.agentId||!r||!a?null:o===null||!s.some(Me=>{var Pt,qn,Wn,xs,Cr;return Me.type==="assistant"&&Me.timestamp>=W.timestamp&&(Me.isStreaming||Me.content.trim().length>0||!!Me.thinking||!!((Pt=Me.toolEvents)!=null&&Pt.length)||!!((qn=Me.contentBlocks)!=null&&qn.length)||!!((Cr=(xs=(Wn=Me.extra)==null?void 0:Wn.rich)==null?void 0:xs.blocks)!=null&&Cr.length))})?W.timestamp:null},[a,o,r,s]),Dt=m.useMemo(()=>{const W=s[s.length-1];if(!W||W.type!=="user"||W.agentId)return $;if(c.length>0)return c[0];const fe=Array.from(W.content.matchAll(B0())).map(Me=>{var Pt;return Sd()[((Pt=Me[1])==null?void 0:Pt.toLowerCase())??""]}).filter(Me=>!!Me&&Me!=="__co-creator__");return fe.length>0?fe[0]:$},[$,s,c]),ht=m.useCallback(()=>{X&&(Cn({id:`intent-recognition-stopped-${X.timestamp}`,type:"assistant",agentId:X.agentId,content:"stopped",timestamp:X.timestamp+1,variant:"intent_recognition"}),ne(null))},[X,Cn]);m.useEffect(()=>{if(!X)return;const W=s[s.length-1];if(!W){ne(null);return}if(_e!=null&&_e!==X.timestamp){ne(null);return}_e==null&&W.timestamp!==X.timestamp&&ne(null)},[s,_e,X]);const Mi=o==="execute"&&_e==null,gs=m.useCallback(()=>{J(!0)},[]),Uo=m.useCallback(async W=>{await He(W)},[He]),kr=m.useCallback(W=>{var fe;return l.jsx(z3,{message:W,threadId:t,isLastCopyVisible:W.id===Te,feedbackValue:((fe=U[W.id])==null?void 0:fe.vote)??null,onSubmitFeedback:_,children:l.jsx(QO,{message:W,threadId:t,getAgentById:A,suppressedGeneratedFileNames:ge.get(W.id),pendingAuthRequests:K.get(W.id),onAuthRespond:we,onOpenSecurityManagement:gs})},W.id)},[t,A,ge,K,Te,U,_,we,gs]);wv(),D2(),gv(),fv();const Qr=E(W=>W.splitPaneThreadIds),Eu=E(W=>W.setSplitPaneThreadIds),Iu=E(W=>W.setSplitPaneTarget),Xx=m.useMemo(()=>{const W=new Set(S.map(fe=>fe.id));for(const fe of Qr)W.add(fe);return[...W]},[S,Qr]),{cancelInvocation:Yo,awaitThreadRoom:Lu=async()=>"timed_out"}=q2(lt,t,Xx);m.useEffect(()=>{let W=!1;return(async()=>{try{await Lu(t)}catch(Me){console.warn("[chat] awaitThreadRoom failed, continuing with best-effort send",{threadId:t,error:Me})}if(W)return;const fe=b(t);fe&&(Ye("smooth"),Zt(fe.content,fe.images,void 0,fe.whisper,fe.deliveryMode,fe.sendOptions))})(),()=>{W=!0}},[Lu,b,Zt,Ye,t]),m.useEffect(()=>{f==="split"&&Qr.length===0&&t!=="default"&&(Eu([t]),Iu(t))},[f,Qr.length,t,Eu,Iu]),m.useEffect(()=>{O(t)},[t,O]);const Zx=m.useMemo(()=>{const W=s[s.length-1];return W?[t,W.id,W.timestamp,W.origin??"none",W.isStreaming?"streaming":"done",W.deliveredAt??"none"].join("|"):`${t}:empty`},[s,t]);m.useEffect(()=>{x(t),G(`/api/threads/${encodeURIComponent(t)}/read/latest`,{method:"POST"}).then(W=>{W.ok&&g(t)}).catch(W=>{console.debug("[F069] read ack failed:",W)})},[t,Zx,g,x]);const Go=m.useCallback(W=>{const fe=typeof W=="string"?W:t;fe===t&&_e!=null&&ne({timestamp:_e,agentId:Dt}),oe(),V(Yo,fe)},[V,Yo,Dt,_e,t,oe]),Dx=m.useCallback(W=>{p("single"),i(`/thread/${W}`)},[p,i]);if(f==="split")return l.jsxs(l.Fragment,{children:[l.jsx(zA,{onSend:Zt,onStop:Go,uploadStatus:D,uploadError:he,onZoomToThread:Dx}),l.jsx(Zh,{})]});if(w)return l.jsx("div",{className:"min-h-screen bg-white",children:l.jsx("div",{className:"max-w-4xl mx-auto p-4",children:s.map(W=>kr(W))})});const qx=N==="outlinePreview"&&I!=null,Xu=N!=="status"&&(N!=="outlinePreview"||I!=null)&&(t!=="default"||qx||N==="fileBrowser"),Wx=m.useMemo(()=>{const W=s.flatMap(Me=>Me.toolEvents&&Me.toolEvents.length>0?Ui(Me.toolEvents,void 0,{}):[]),fe=So(W);return Kx(fe,z,t)},[s,z,t]);return l.jsxs(l.Fragment,{children:[l.jsx("div",{ref:ue,className:"flex h-full w-full min-h-0 min-w-0 overflow-x-auto",children:l.jsxs("div",{className:"relative flex h-full min-h-0 min-w-0 flex-1",style:{minWidth:Cd},children:[l.jsxs("div",{className:`chat-layout-container relative min-w-0 flex-1 flex-col ${Qe?"hidden":"flex"}`,children:[l.jsx(E3,{sidebarOpen:!0,onToggleSidebar:()=>{},threadId:t,authPendingCount:pe.length,targetAgents:c,viewMode:f,onToggleViewMode:()=>p(f==="single"?"split":"single"),onOpenMobileStatus:()=>ce(!0),defaultVoiceAgentId:c[0]||$}),o==="ideate"&&l.jsx(Y3,{onStop:Go}),Mi&&l.jsx(UA,{onCancel:Yo}),l.jsxs("main",{ref:De,onScroll:Ae,className:`ui-shell-surface flex-1 min-h-0 overflow-y-auto px-0 py-6 ${e&&n?"chat-scrollbar-maximized-inset":""}`,"data-chat-container":!0,children:[Ge&&l.jsx("div",{className:"absolute flex items-center justify-center w-full h-[90%]",children:l.jsx(x2,{})}),!v&&s.length>0&&l.jsx("div",{className:"text-center py-3 text-xs text-gray-300 hidden",children:"没有更多消息..."}),s.length===0&&!Ge?l.jsx(W2,{onAgentsClick:()=>i("/agents"),onChannelsClick:()=>i("/channels")}):s.map(W=>kr(W)),_e!=null&&kr({id:`intent-recognition-${_e}`,type:"assistant",agentId:Dt,content:"",timestamp:_e,variant:"intent_recognition"}),_e==null&&X!=null&&kr({id:`intent-recognition-stopped-${X.timestamp}`,type:"assistant",agentId:X.agentId,content:"stopped",timestamp:X.timestamp,variant:"intent_recognition"}),ye&&l.jsx("div",{className:"chat-layout-rail",style:{paddingLeft:"44px"},children:(Zu=ye.questions[0])!=null&&Zu.preview?l.jsx(Rv,{requestId:ye.requestId,source:ye.source,questions:ye.questions,onSubmit:Uo}):l.jsx(Cv,{requestId:ye.requestId,source:ye.source,questions:ye.questions,expiresAtMs:ye.expiresAtMs,onSubmit:Uo,onCancel:Uo})}),l.jsx("div",{ref:Ie})]}),l.jsx("div",{className:"relative",children:l.jsx(_A,{scrollContainerRef:De,messagesEndRef:Ie,recomputeSignal:kv(t,s,y?1:0),observerKey:t})}),l.jsx(YA,{}),C&&l.jsx("div",{className:"mx-4 mb-2 rounded-lg border border-emerald-200 bg-emerald-50 px-3 py-2 text-xs text-emerald-700",children:"多智能体研究模式 - 文章上下文已注入。请输入研究问题,智能体会自动调用 multi_mention 邀请其他智能体参与分析。"}),l.jsx(rO,{threadId:t,onSend:(W,fe,Me,Pt,qn)=>{ht(),Ye("smooth"),Zt(W,fe,void 0,Me,Pt,qn)},onStop:Go,disabled:a,folderSelectionEnabled:!1,selectedFolderName:j,selectedFolderTitle:ke,activeWorkspacePath:ke,hasActiveInvocation:a,uploadStatus:D,uploadError:he},t)]}),Xu&&N!=="outlinePreview"&&l.jsx(TA,{rightPanelMode:N,pptStudioPaneWidth:ve,isCompactPreviewLayout:Qe,onResize:je,onReset:$e,fullScreenContainerRef:ue,artifacts:Wx,projectPath:ke??"",threadId:t}),Xu&&N==="outlinePreview"&&l.jsx(NA,{fullScreenContainerRef:ue,previewPaneWidth:ve,isCompactPreviewLayout:Qe,onResize:je,onReset:$e})]})}),l.jsx(Zh,{}),l.jsx(G3,{}),l.jsx(s2,{open:ae,onClose:()=>J(!1)})]})}function MN(){const{threadId:t}=Jx();return l.jsx(eN,{mode:"thread",threadId:t??""})}export{MN as default};
|
|
53
|
+
//# sourceMappingURL=ThreadPage-B0jElW5R.js.map
|